diff options
151 files changed, 3954 insertions, 2107 deletions
@@ -40,6 +40,7 @@ Gilles Roudiere <gilles.roudiere@gmail.com> <gilles.roudiere@laas.fr> Gordon MacPherson <gordon@gordonite.tech> Guilherme Felipe <guilhermefelipecgs@gmail.com> Hanif Bin Ariffin <hanif.ariffin.4326@gmail.com> +HaSa1002 <johawitt@outlook.de> Hein-Pieter van Braam-Stewart <hp@tmm.cx> Hubert Jarosz <marqin.pl@gmail.com> Hubert Jarosz <marqin.pl@gmail.com> <marqin.pl+git@gmail.com> diff --git a/AUTHORS.md b/AUTHORS.md index 2faaf2d2c0..8c26d2892b 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -163,6 +163,7 @@ name is available. Ray Koopa (RayKoopa) Rémi Verschelde (akien-mga) Rhody Lugo (rraallvv) + Ricardo Subtil (Ev1lbl0w) Roberto F. Arroyo (robfram) Robin Hübner (profan) romulox-x @@ -32,6 +32,7 @@ generous deed immortalized in the next stable release of Godot Engine. Garry Newman Gordon MacPherson Hunter Dickson + Kyle Szklenski ## Mini sponsors @@ -39,6 +40,8 @@ generous deed immortalized in the next stable release of Godot Engine. Alejandro Saucedo alex brown Andrew Dunai + Ben Nolan + blurp CD Christian Baune Christoffer Sundbom @@ -58,6 +61,7 @@ generous deed immortalized in the next stable release of Godot Engine. John G Gentzel Jonah Stich Justin Arnold + Kamil Brzezinski Marcel Kräml Matthieu Huvé Maxim Karsten @@ -67,6 +71,7 @@ generous deed immortalized in the next stable release of Godot Engine. Patrick Horn Patrick Schmidt Péter Magyar + Rami Ronnie Cheng Slobodan Milnovic Stephan Lanfermann @@ -75,6 +80,7 @@ generous deed immortalized in the next stable release of Godot Engine. Tristan Pemble VilliHaukka Violin Iliev + Xwdit ## Gold donors @@ -82,7 +88,7 @@ generous deed immortalized in the next stable release of Godot Engine. albinaask Alvaro A Baena R Asher Glick - Bernhard Werner + Barugon Carlo Cabanilla Chris Goddard Christopher Case @@ -96,11 +102,9 @@ generous deed immortalized in the next stable release of Godot Engine. Florian Rämisch Forge Gamejunkey - Grady Hoojib Jakub Grzesik Javier Roman - Jeff Nyte Joan Fons Johnny IV Young Jon Woodward @@ -115,13 +119,9 @@ generous deed immortalized in the next stable release of Godot Engine. Matthew Hillier Michael m kaersten - Mohamed Ikbel Boulabiar Monster Vial Officine Pixel S.n.c. - Pixel Booty - Rami Rene - Rene Tailleur Retro Village Rob Messick Roland Fredenhagen @@ -142,7 +142,6 @@ generous deed immortalized in the next stable release of Godot Engine. Xeno Coliseum Zaven Muradyan - Aaron Winter Adam Nakonieczny Adrian Adamiak Aleksey Korotkevich @@ -154,14 +153,12 @@ generous deed immortalized in the next stable release of Godot Engine. Andreas Funke André Frélicot Andrew Cunningham - Anm Antanas Paskauskas Antoni Batchelli Arisaka Mayuki Arthur S. Muszynski - Aubin Detrez - Barugon Ben Botwin + Brandon Hawkinson Caleb Sizemore Can Eris Charlie Whitfield @@ -170,8 +167,6 @@ generous deed immortalized in the next stable release of Godot Engine. Chris Petrich Chris Serino Christian Leth Jeppesen - Cody Brooks - Conrad Curry Craig Ostrin Craig Smith Cristopher @@ -191,15 +186,13 @@ generous deed immortalized in the next stable release of Godot Engine. Gabrielius Vaiškūnas Gary Hulst gavlig + General Chicken GGGames.org - GiulianoB - Green Fox Guilherme Felipe de C. G. da Silva Harvey Fong Heath Hayes Horváth Péter Hu Hund - Idilio Alfaro Jake Burga James Couzens Jared @@ -209,6 +202,7 @@ generous deed immortalized in the next stable release of Godot Engine. Joel Höglund Johnathan Kupferer Jose Malheiro + Jose Manuel Muñoz Perez Joseph Crane Joshie Sparks Joshua Flores @@ -223,9 +217,11 @@ generous deed immortalized in the next stable release of Godot Engine. kickmaniac kinfox Kos + kuku Lachie Lain Ballard Laszlo Kiss + leetNightshade Leo Fidel R Liban Liam Smyth Luc-Frédéric Langis @@ -234,10 +230,8 @@ generous deed immortalized in the next stable release of Godot Engine. Marcelo Dornbusch Lopes Marcus Dobler Marcus Richter - Marisa Clardy + Marek Belski Mark Barrett - Mark Diaz - Markus Fehr Martin Eigel Martin Kotz Martin Soucek @@ -249,16 +243,17 @@ generous deed immortalized in the next stable release of Godot Engine. Michael Dürwald Michael Noll Michael Policastro + MightyPossum MikadoSC MuffinManKen Nick Abousselam Nick Barovic Oliver Dick Oscar Campos - Patrick Brock Patrick Ting Paul Hocker Paul Von Zimmerman + Pavel Kotlyar Pedro Silva Pete Goodwin Petr Malac @@ -266,6 +261,7 @@ generous deed immortalized in the next stable release of Godot Engine. pl Raymond Harris Raz A + Rene Tailleur Ricardo Alcantara Robert Larnach Robert Willes @@ -277,11 +273,11 @@ generous deed immortalized in the next stable release of Godot Engine. Ryan Scott Ryszard Sommefeldt Samuel Judd - Scott Pilet Sean Morgan Sebastian Hutter Sébastien Serban Serafimescu + Sergey Fonaryov Sergey Minakov Shishir Tandale SKison @@ -290,12 +286,11 @@ generous deed immortalized in the next stable release of Godot Engine. Stephan Hennion Steven Landow Stoned Xander - TheLevelOfDetail Thomas Bjarnelöf Thomas Kurz Tim Howard - tinyBigGAMES LLC Tobias Bocanegra + Todd Smith Turntsnaco tweaklab Valryia @@ -303,7 +298,6 @@ generous deed immortalized in the next stable release of Godot Engine. Vlad Ceru Opran VoidPointer voxelv - William Foster Wojciech Chojnacki xzibiting Yuancheng Zhang @@ -341,9 +335,9 @@ generous deed immortalized in the next stable release of Godot Engine. Alexander Walter (SilvanuZ) Alexandre Beaudoin alex clavelle + Alex Schmidt Allan Davis Allen Schade - Ancient Phoenix Anders Marstein Kruke Andreas Krampitz Andre Stackhouse @@ -352,11 +346,11 @@ generous deed immortalized in the next stable release of Godot Engine. Andrew Thomas Ano Nim Anthony Avina + Anton Bouwer aomimezura11 AP Condomines Arch Toasty Arda Erol - Aria Armin Preiml Arseniy M Ashley Claymore @@ -365,10 +359,10 @@ generous deed immortalized in the next stable release of Godot Engine. AzulCrescent Balázs Batári Bartosz Bielecki - Bekhoucha Danyl Benedikt Ben Vercammen Bernd Jänichen + Bernhard Werner Bjarne Voigtländer Black Block blackjacksike @@ -383,6 +377,7 @@ generous deed immortalized in the next stable release of Godot Engine. Bronson Zgeb Bùi Việt Thành Burney Waring + bwhirt Caleb Gartner Cameron Meyer Carlos Cejudo @@ -401,8 +396,8 @@ generous deed immortalized in the next stable release of Godot Engine. Christian Winter Christoffer Dahlblom Christophe Gagnier + Christopher Chin Christopher Schmitt - Christoph Woinke Chris Truebe Clay Heaton Cody Parker @@ -422,6 +417,7 @@ generous deed immortalized in the next stable release of Godot Engine. Dmitry Fisher Dmytro Korchynskyi Dominik Wetzel + Douglas Plumley Dragontrapper Dr Ewan Murray Dr.Raccoon @@ -435,11 +431,10 @@ generous deed immortalized in the next stable release of Godot Engine. Elgenzay Elias Nykrem Ephemeral - Eric Ellingson + Eric Walkingshaw Eric Williams Erkki Seppälä Evan Rose - Fain Faisal Alkubaisi Fancy Ants Studios Fekinox @@ -449,15 +444,15 @@ generous deed immortalized in the next stable release of Godot Engine. Francois Holland Frank FuDiggity - Gadzhi Kharkharov gamedev by Celio Game Endeavor + Gareth Knowles Gary Thomas George Marques - Gerard Ruiz Torruella + georgios katsanakis + GFizz Greg Lincoln Greg Olson - GREGORY C FEIN Greyson Richey Grid Guillaume Audirac @@ -467,7 +462,6 @@ generous deed immortalized in the next stable release of Godot Engine. Hal A helija Heribert Hirth - Hieu Thanh Hunter Jones Ian Williams Iiari @@ -484,10 +478,9 @@ generous deed immortalized in the next stable release of Godot Engine. James James A F Manley James Thomas - Jamiee H Jamie Massey + Jan Vetulani JARKKO PARVIAINEN - Jasiek Vetulani Jason Uechi Jean-Baptiste LEPESME Jeff Hungerford @@ -496,6 +489,7 @@ generous deed immortalized in the next stable release of Godot Engine. Jhon Adams Joe Klemmer John Gabriel + Jonah Branch Jonas Jonas Bernemann Jonas Rudlang @@ -507,21 +501,23 @@ generous deed immortalized in the next stable release of Godot Engine. Jon Sully Jordy Goodridge Jorge Antunes - Jorge Javier Araya Navarro + Jorge Araya Navarro Jose C. Rubio Joseph Catrambone Josh Taylor Josue David + jromkjrom Juanfran + Juan Uys Jueast Julian Murgia June Little Justin Hamilton Justin Oaksford Justin Spedding + Justin W. Flory KaDokta Kalin - Kauzig Keedong Park Keinan Powers Keith Bradner @@ -539,8 +535,8 @@ generous deed immortalized in the next stable release of Godot Engine. KsyTek Games kycho Kyle Jacobs - Kyle Szklenski Kyuppin + Lasse le Dous Laurent CHEA Laurent Tréguier Laxman Pradhan @@ -558,19 +554,16 @@ generous deed immortalized in the next stable release of Godot Engine. Malcolm Marco Lardelli Mark Jad - Mark Krenz Mark Malone Markus Martin Markus Michael Egger Martin FIbik Martin Holas - Martin Linklater Martin Trbola Marvin Mathieu Matt Edwards Matthew Booe - Max Brister Max Fiedler Maxime Blade Maxwell @@ -582,13 +575,13 @@ generous deed immortalized in the next stable release of Godot Engine. Michael Bruce-Lockhart Michael Haney Michał Skwarek + MidoriBunn 'tis BS Mikayla Mike Birkhead Mike Cunningham Mitchell J. Wagner Molinghu Molly Jameson - MoM MrAZIE Nathan Fish Nathaniel @@ -612,30 +605,31 @@ generous deed immortalized in the next stable release of Godot Engine. OKV Oleg Reva Oleksandr Kryvonos - Olivier Omar Delarosa + Oriol Muñoz Princep Oscar Domingo Parinya Teerakasemsuk patricio lara briones + Patrick Brock Patrick Dully Patrick Nafarrete Paul Gieske - Paul Mason Paweł Kowal Paweł Łyczkowski Peter Höglund + Peter Richmond Petrus Prinsloo Philip Cohoe - Phillip Zolla + Pierre Caye Piotr Góral Pipo Point08 Preethi Vaidyanathan pwab - pyacier Rad Cat Rafa Laguna Raffaele Aramo + Rami Hanano RAMupgrade Remi Rampin Rémi Verschelde @@ -652,6 +646,7 @@ generous deed immortalized in the next stable release of Godot Engine. Ronan Ross Squires Ryan Groom + Sam Caulfield Sam Edson Samuele Zolfanelli scapegoat57 @@ -659,8 +654,9 @@ generous deed immortalized in the next stable release of Godot Engine. Scott Longley Sean Lynch Sebastian Michailidis - Sebastian Vetter SeongWan Kim + Serenitor + Sergey Sergiy Onenko Shane Shane Sicienski @@ -683,6 +679,7 @@ generous deed immortalized in the next stable release of Godot Engine. tannhauser_gate Tarch Terry + The Liquidator Theodore Lindsey TheVoiceInMyHead thomas @@ -693,8 +690,8 @@ generous deed immortalized in the next stable release of Godot Engine. Tim Erskine Tim Gleason Timothy B. MacDonald - Tobbun Tobias Bradtke + Tom Coxon Toni Duran Tony Zhao Torgeir Lilleskog @@ -712,11 +709,11 @@ generous deed immortalized in the next stable release of Godot Engine. Uther Vaughan Ling Victor - Vigilant Watch Viktor Ismagilov + Vi Watch Vladimir Savin Vladislav Smirnov - Výrus Hemomancer + Vytenis Narušis waka nya Wayne Haak werner mendizabal @@ -725,13 +722,12 @@ generous deed immortalized in the next stable release of Godot Engine. William F Siqueira William Hogben Wyatt Goodin - Xaver Fischer + x1212 xenomat Yegor Smirnov Zack Yang Zak Stephens 蕭惟允 - 郝晨煜 ## Bronze donors diff --git a/SConstruct b/SConstruct index f03fb72ff3..1fec033881 100644 --- a/SConstruct +++ b/SConstruct @@ -61,11 +61,9 @@ elif platform_arg == "javascript": # Use generic POSIX build toolchain for Emscripten. custom_tools = ["cc", "c++", "ar", "link", "textfile", "zip"] -env_base = Environment(tools=custom_tools) -if "TERM" in os.environ: - env_base["ENV"]["TERM"] = os.environ["TERM"] -env_base.AppendENVPath("PATH", os.getenv("PATH")) -env_base.AppendENVPath("PKG_CONFIG_PATH", os.getenv("PKG_CONFIG_PATH")) +# Construct the environment using the user's host env variables. +env_base = Environment(ENV=os.environ, tools=custom_tools) + env_base.disabled_modules = [] env_base.module_version_string = "" env_base.msvc = False diff --git a/core/os/thread.cpp b/core/os/thread.cpp index f1fcfdf7e1..73e31bdb3d 100644 --- a/core/os/thread.cpp +++ b/core/os/thread.cpp @@ -47,7 +47,7 @@ uint64_t Thread::_thread_id_hash(const std::thread::id &p_t) { } Thread::ID Thread::main_thread_id = _thread_id_hash(std::this_thread::get_id()); -thread_local Thread::ID Thread::caller_id = _thread_id_hash(std::this_thread::get_id()); +thread_local Thread::ID Thread::caller_id = 0; void Thread::_set_platform_funcs( Error (*p_set_name_func)(const String &), @@ -112,6 +112,10 @@ Error Thread::set_name(const String &p_name) { return ERR_UNAVAILABLE; } +Thread::Thread() { + caller_id = _thread_id_hash(std::this_thread::get_id()); +} + Thread::~Thread() { if (id != _thread_id_hash(std::thread::id())) { #ifdef DEBUG_ENABLED diff --git a/core/os/thread.h b/core/os/thread.h index 599585051f..17ac82c650 100644 --- a/core/os/thread.h +++ b/core/os/thread.h @@ -98,6 +98,7 @@ public: ///< waits until thread is finished, and deallocates it. void wait_to_finish(); + Thread(); ~Thread(); #else _FORCE_INLINE_ ID get_id() const { return 0; } diff --git a/core/string/ustring.cpp b/core/string/ustring.cpp index a57c7b2504..9f931ef30b 100644 --- a/core/string/ustring.cpp +++ b/core/string/ustring.cpp @@ -4394,6 +4394,18 @@ String String::property_name_encode() const { return *this; } +// Changes made to the set of invalid characters must also be reflected in the String documentation. +const String String::invalid_node_name_characters = ". : @ / \""; + +String String::validate_node_name() const { + Vector<String> chars = String::invalid_node_name_characters.split(" "); + String name = this->replace(chars[0], ""); + for (int i = 1; i < chars.size(); i++) { + name = name.replace(chars[i], ""); + } + return name; +} + String String::get_basename() const { int pos = rfind("."); if (pos < 0 || pos < MAX(rfind("/"), rfind("\\"))) { diff --git a/core/string/ustring.h b/core/string/ustring.h index 821941036f..1e362d7683 100644 --- a/core/string/ustring.h +++ b/core/string/ustring.h @@ -419,6 +419,10 @@ public: String property_name_encode() const; + // node functions + static const String invalid_node_name_characters; + String validate_node_name() const; + bool is_valid_identifier() const; bool is_valid_integer() const; bool is_valid_float() const; diff --git a/core/variant/variant_call.cpp b/core/variant/variant_call.cpp index 54ca1a911d..90272ad5b4 100644 --- a/core/variant/variant_call.cpp +++ b/core/variant/variant_call.cpp @@ -956,6 +956,8 @@ static void _register_variant_builtin_methods() { bind_method(String, c_unescape, sarray(), varray()); bind_method(String, json_escape, sarray(), varray()); + bind_method(String, validate_node_name, sarray(), varray()); + bind_method(String, is_valid_identifier, sarray(), varray()); bind_method(String, is_valid_integer, sarray(), varray()); bind_method(String, is_valid_float, sarray(), varray()); diff --git a/doc/classes/BaseMaterial3D.xml b/doc/classes/BaseMaterial3D.xml index 31e6ea5e54..fa6cf372ce 100644 --- a/doc/classes/BaseMaterial3D.xml +++ b/doc/classes/BaseMaterial3D.xml @@ -224,6 +224,8 @@ <member name="heightmap_deep_parallax" type="bool" setter="set_heightmap_deep_parallax" getter="is_heightmap_deep_parallax_enabled"> </member> <member name="heightmap_enabled" type="bool" setter="set_feature" getter="get_feature" default="false"> + If [code]true[/code], height mapping is enabled (also called "parallax mapping" or "depth mapping"). See also [member normal_enabled]. + [b]Note:[/b] Height mapping is not supported if triplanar mapping is used on the same material. The value of [member heightmap_enabled] will be ignored if [member uv1_triplanar] is enabled. </member> <member name="heightmap_flip_binormal" type="bool" setter="set_heightmap_deep_parallax_flip_binormal" getter="get_heightmap_deep_parallax_flip_binormal"> </member> diff --git a/doc/classes/ColorPicker.xml b/doc/classes/ColorPicker.xml index aea3542867..2fc4313e47 100644 --- a/doc/classes/ColorPicker.xml +++ b/doc/classes/ColorPicker.xml @@ -91,6 +91,9 @@ <theme_item name="add_preset" type="Texture2D"> The icon for the "Add Preset" button. </theme_item> + <theme_item name="bar_arrow" type="Texture2D"> + The texture for the arrow grabber. + </theme_item> <theme_item name="color_hue" type="Texture2D"> Custom texture for the hue selection slider on the right. </theme_item> diff --git a/doc/classes/PhysicsServer2D.xml b/doc/classes/PhysicsServer2D.xml index 1fa82adb7a..701a430538 100644 --- a/doc/classes/PhysicsServer2D.xml +++ b/doc/classes/PhysicsServer2D.xml @@ -58,7 +58,7 @@ <return type="RID"> </return> <description> - Creates an [Area2D]. + Creates an [Area2D]. After creating an [Area2D] with this method, assign it to a space using [method area_set_space] to use the created [Area2D] in the physics world. </description> </method> <method name="area_get_canvas_instance_id" qualifiers="const"> diff --git a/doc/classes/ProjectSettings.xml b/doc/classes/ProjectSettings.xml index 03a88fd86c..3aa3e12e74 100644 --- a/doc/classes/ProjectSettings.xml +++ b/doc/classes/ProjectSettings.xml @@ -488,7 +488,7 @@ Position offset for tooltips, relative to the mouse cursor's hotspot. </member> <member name="display/window/dpi/allow_hidpi" type="bool" setter="" getter="" default="false"> - If [code]true[/code], allows HiDPI display on Windows and macOS. This setting has no effect on desktop Linux, as DPI-awareness fallbacks are not supported there. + If [code]true[/code], allows HiDPI display on Windows, macOS, and the HTML5 platform. This setting has no effect on desktop Linux, as DPI-awareness fallbacks are not supported there. </member> <member name="display/window/energy_saving/keep_screen_on" type="bool" setter="" getter="" default="true"> If [code]true[/code], keeps the screen on (even in case of inactivity), so the screensaver does not take over. Works on desktop and mobile platforms. diff --git a/doc/classes/String.xml b/doc/classes/String.xml index a90bcd9eb7..475b17d395 100644 --- a/doc/classes/String.xml +++ b/doc/classes/String.xml @@ -909,6 +909,13 @@ [/codeblocks] </description> </method> + <method name="validate_node_name"> + <return type="String"> + </return> + <description> + Removes any characters from the string that are prohibited in [Node] names ([code].[/code] [code]:[/code] [code]@[/code] [code]/[/code] [code]"[/code]). + </description> + </method> <method name="xml_escape"> <return type="String"> </return> diff --git a/drivers/vulkan/vulkan_context.cpp b/drivers/vulkan/vulkan_context.cpp index c564cee757..ad740efec4 100644 --- a/drivers/vulkan/vulkan_context.cpp +++ b/drivers/vulkan/vulkan_context.cpp @@ -1705,7 +1705,7 @@ VulkanContext::~VulkanContext() { vkDestroySemaphore(device, image_ownership_semaphores[i], nullptr); } } - if (inst_initialized && use_validation_layers) { + if (inst_initialized && enabled_debug_utils) { DestroyDebugUtilsMessengerEXT(inst, dbg_messenger, nullptr); } vkDestroyDevice(device, nullptr); diff --git a/editor/animation_track_editor.cpp b/editor/animation_track_editor.cpp index 934c6b95a4..804f02765c 100644 --- a/editor/animation_track_editor.cpp +++ b/editor/animation_track_editor.cpp @@ -5885,7 +5885,7 @@ AnimationTrackEditor::AnimationTrackEditor() { optimize_max_angle->set_value(22); optimize_dialog->get_ok_button()->set_text(TTR("Optimize")); - optimize_dialog->connect("confirmed", callable_mp(this, &AnimationTrackEditor::_edit_menu_pressed), varray(EDIT_CLEAN_UP_ANIMATION_CONFIRM)); + optimize_dialog->connect("confirmed", callable_mp(this, &AnimationTrackEditor::_edit_menu_pressed), varray(EDIT_OPTIMIZE_ANIMATION_CONFIRM)); // diff --git a/editor/editor_themes.cpp b/editor/editor_themes.cpp index 3d40c145f2..fe748b81c3 100644 --- a/editor/editor_themes.cpp +++ b/editor/editor_themes.cpp @@ -1283,6 +1283,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) { theme->set_icon("add_preset", "ColorPicker", theme->get_icon("Add", "EditorIcons")); theme->set_icon("preset_bg", "ColorPicker", theme->get_icon("GuiMiniCheckerboard", "EditorIcons")); theme->set_icon("overbright_indicator", "ColorPicker", theme->get_icon("OverbrightIndicator", "EditorIcons")); + theme->set_icon("bar_arrow", "ColorPicker", theme->get_icon("ColorPickerBarArrow", "EditorIcons")); theme->set_icon("bg", "ColorPickerButton", theme->get_icon("GuiMiniCheckerboard", "EditorIcons")); diff --git a/editor/icons/ColorPickerBarArrow.svg b/editor/icons/ColorPickerBarArrow.svg new file mode 100644 index 0000000000..9d034106ee --- /dev/null +++ b/editor/icons/ColorPickerBarArrow.svg @@ -0,0 +1 @@ +<svg height="20" viewBox="0 0 16 20" width="16" xmlns="http://www.w3.org/2000/svg"><path d="m2 16h12l-6-6z" fill="#e0e0e0" stroke-width="2"/></svg> diff --git a/editor/plugin_config_dialog.cpp b/editor/plugin_config_dialog.cpp index 19c9662162..2a0e7d0732 100644 --- a/editor/plugin_config_dialog.cpp +++ b/editor/plugin_config_dialog.cpp @@ -112,7 +112,7 @@ void PluginConfigDialog::_on_confirmed() { } #endif - emit_signal("plugin_ready", script.operator->(), active_edit->is_pressed() ? subfolder_edit->get_text() : ""); + emit_signal("plugin_ready", script.operator->(), active_edit->is_pressed() ? _to_absolute_plugin_path(subfolder_edit->get_text()) : ""); } else { EditorNode::get_singleton()->get_project_settings()->update_plugins(); } @@ -129,6 +129,10 @@ void PluginConfigDialog::_on_required_text_changed(const String &) { get_ok_button()->set_disabled(script_edit->get_text().get_basename().is_empty() || script_edit->get_text().get_extension() != ext || name_edit->get_text().is_empty()); } +String PluginConfigDialog::_to_absolute_plugin_path(const String &p_plugin_name) { + return "res://addons/" + p_plugin_name + "/plugin.cfg"; +} + void PluginConfigDialog::_notification(int p_what) { switch (p_what) { case NOTIFICATION_VISIBILITY_CHANGED: { diff --git a/editor/plugin_config_dialog.h b/editor/plugin_config_dialog.h index 50ca417d81..f49f14c881 100644 --- a/editor/plugin_config_dialog.h +++ b/editor/plugin_config_dialog.h @@ -56,6 +56,8 @@ class PluginConfigDialog : public ConfirmationDialog { void _on_cancelled(); void _on_required_text_changed(const String &p_text); + static String _to_absolute_plugin_path(const String &p_plugin_name); + protected: virtual void _notification(int p_what); static void _bind_methods(); diff --git a/editor/plugins/asset_library_editor_plugin.cpp b/editor/plugins/asset_library_editor_plugin.cpp index 4d9c5625a3..030ce4655d 100644 --- a/editor/plugins/asset_library_editor_plugin.cpp +++ b/editor/plugins/asset_library_editor_plugin.cpp @@ -969,14 +969,16 @@ HBoxContainer *EditorAssetLibrary::_make_pages(int p_page, int p_page_count, int for (int i = from; i < to; i++) { if (i == p_page) { Button *current = memnew(Button); - current->set_text(itos(i + 1)); + // Keep the extended padding for the currently active page (see below). + current->set_text(vformat(" %d ", i + 1)); current->set_disabled(true); current->set_focus_mode(Control::FOCUS_NONE); hbc->add_child(current); } else { Button *current = memnew(Button); - current->set_text(itos(i + 1)); + // Add padding to make page number buttons easier to click. + current->set_text(vformat(" %d ", i + 1)); current->connect("pressed", callable_mp(this, &EditorAssetLibrary::_search), varray(i)); hbc->add_child(current); @@ -1394,6 +1396,7 @@ EditorAssetLibrary::EditorAssetLibrary(bool p_templates_only) { support = memnew(MenuButton); search_hb2->add_child(support); support->set_text(TTR("Support")); + support->get_popup()->set_hide_on_checkable_item_selection(false); support->get_popup()->add_check_item(TTR("Official"), SUPPORT_OFFICIAL); support->get_popup()->add_check_item(TTR("Community"), SUPPORT_COMMUNITY); support->get_popup()->add_check_item(TTR("Testing"), SUPPORT_TESTING); diff --git a/editor/scene_tree_editor.cpp b/editor/scene_tree_editor.cpp index b6347d3b46..2d739202fb 100644 --- a/editor/scene_tree_editor.cpp +++ b/editor/scene_tree_editor.cpp @@ -776,9 +776,11 @@ void SceneTreeEditor::_renamed() { return; } - String new_name = which->get_text(0); - if (!Node::_validate_node_name(new_name)) { - error->set_text(TTR("Invalid node name, the following characters are not allowed:") + "\n" + Node::invalid_character); + String raw_new_name = which->get_text(0); + String new_name = raw_new_name.validate_node_name(); + + if (new_name != raw_new_name) { + error->set_text(TTR("Invalid node name, the following characters are not allowed:") + "\n" + String::invalid_node_name_characters); error->popup_centered(); if (new_name.is_empty()) { diff --git a/editor/translations/af.po b/editor/translations/af.po index e2a66e1acc..bda0eed750 100644 --- a/editor/translations/af.po +++ b/editor/translations/af.po @@ -1913,8 +1913,8 @@ msgid "Open a File or Directory" msgstr "Open 'n Lêer of Gids" #: 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/editor_properties.cpp editor/import_defaults_editor.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 "Stoor" @@ -4079,6 +4079,21 @@ msgstr "" msgid "Saving..." msgstr "" +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Skep Vouer" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "Ek sien..." + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "Laai Verstek" + #: editor/import_dock.cpp #, fuzzy msgid "%d Files" @@ -5186,7 +5201,6 @@ msgid "Sort:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "" @@ -10397,6 +10411,11 @@ msgstr "" msgid "Plugins" msgstr "" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "Laai Verstek" + #: editor/property_editor.cpp msgid "Preset..." msgstr "" @@ -12425,6 +12444,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12680,11 +12707,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/ar.po b/editor/translations/ar.po index d12383f798..5c03984e01 100644 --- a/editor/translations/ar.po +++ b/editor/translations/ar.po @@ -46,12 +46,13 @@ # Musab Alasaifer <mousablasefer@gmail.com>, 2020. # Yassine Oudjana <y.oudjana@protonmail.com>, 2020. # bruvzg <bruvzg13@gmail.com>, 2020. -# StarlkYT <mrsstarlkps4@gmail.com>, 2020. +# StarlkYT <mrsstarlkps4@gmail.com>, 2020, 2021. +# Games Toon <xxtvgoodxx@gmail.com>, 2021. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-12-29 15:03+0000\n" +"PO-Revision-Date: 2021-03-07 06:04+0000\n" "Last-Translator: StarlkYT <mrsstarlkps4@gmail.com>\n" "Language-Team: Arabic <https://hosted.weblate.org/projects/godot-engine/" "godot/ar/>\n" @@ -61,7 +62,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" -"X-Generator: Weblate 4.4.1-dev\n" +"X-Generator: Weblate 4.5.1\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -1701,9 +1702,8 @@ msgid "Node Dock" msgstr "رصيف العُقد" #: editor/editor_feature_profile.cpp -#, fuzzy msgid "FileSystem Dock" -msgstr "نظام الملفات" +msgstr "قوائم نظام الملفات" #: editor/editor_feature_profile.cpp msgid "Import Dock" @@ -1885,8 +1885,8 @@ 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/editor_properties.cpp editor/import_defaults_editor.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 "حفظ" @@ -2342,6 +2342,9 @@ msgid "" "To restore the Default layout to its base settings, use the Delete Layout " "option and delete the Default layout." msgstr "" +"تم تجاوز اعدادات المحرر الاساسيه.\n" +"لإستعادة اعدادات المحرر, اذهب إلى خيار 'Delete Layout' من ثم إحفظ الاعدادات " +"الاساسيه." #: editor/editor_node.cpp msgid "Layout name not found!" @@ -2406,7 +2409,7 @@ msgstr "ليس هناك مشهد محدد ليتم تشغيله." #: editor/editor_node.cpp msgid "Save scene before running..." -msgstr "" +msgstr "احفظ المشهد قبل التشغيل..." #: editor/editor_node.cpp msgid "Could not start subprocess!" @@ -3147,13 +3150,12 @@ msgid "Open & Run a Script" msgstr "فتح و تشغيل كود" #: editor/editor_node.cpp -#, fuzzy msgid "" "The following files are newer on disk.\n" "What action should be taken?" msgstr "" "الملفات التالية أحدث على القرص.\n" -"ما الإجراء الذي ينبغي اتخاذه؟:" +"ما الإجراء الذي ينبغي اتخاذه؟" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/shader_editor_plugin.cpp @@ -4074,6 +4076,21 @@ msgstr "هل قمت بإرجاع كائن مشتق من العقدة في دال msgid "Saving..." msgstr "جاري الحفظ..." +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "تحديد الوضع" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "إستيراد" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "تحميل الإفتراضي" + #: editor/import_dock.cpp msgid "%d Files" msgstr "%d ملفات" @@ -5145,7 +5162,6 @@ msgid "Sort:" msgstr "ترتيب:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "الفئة:" @@ -7346,9 +7362,8 @@ msgid "Yaw" msgstr "الإنحراف Yaw" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Size" -msgstr "الحجم: " +msgstr "الحجم" #: editor/plugins/spatial_editor_plugin.cpp msgid "Objects Drawn" @@ -10413,6 +10428,11 @@ msgstr "تحميل تلقائي" msgid "Plugins" msgstr "إضافات" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "تحميل الإفتراضي" + #: editor/property_editor.cpp msgid "Preset..." msgstr "إعداد مُسبق..." @@ -10474,9 +10494,8 @@ msgid "Batch Rename" msgstr "إعادة تسمية الدفعة" #: editor/rename_dialog.cpp -#, fuzzy msgid "Replace:" -msgstr "إستبدال: " +msgstr "إستبدال:" #: editor/rename_dialog.cpp #, fuzzy @@ -12463,6 +12482,14 @@ msgstr "" "مُضلع تصادم ثنائي الأبعاد (CollisionPolygon2D) الفارغ ليس له أي تأثير على " "التصادم." +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12799,11 +12826,6 @@ msgstr "" "GIProbes لا يدعم برنامج تشغيل الفيديو GLES2.\n" "استخدم BakedLightmap بدلاً من ذلك." -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "بقعة الضوء بزاوية أكبر من 90 درجة لا يمكنها إلقاء الظلال." diff --git a/editor/translations/bg.po b/editor/translations/bg.po index 595899152d..47fd10411a 100644 --- a/editor/translations/bg.po +++ b/editor/translations/bg.po @@ -1811,8 +1811,8 @@ 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/editor_properties.cpp editor/import_defaults_editor.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 "Запазване" @@ -3895,6 +3895,21 @@ msgstr "" msgid "Saving..." msgstr "Запазване..." +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Режим на избиране" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "Внасяне" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "Задаване на входен порт по подразбиране" + #: editor/import_dock.cpp msgid "%d Files" msgstr "%d Файлове" @@ -4958,7 +4973,6 @@ msgid "Sort:" msgstr "Сортиране:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "Категория:" @@ -10037,6 +10051,11 @@ msgstr "" msgid "Plugins" msgstr "Приставки" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "Внасяне на преводи" + #: editor/property_editor.cpp msgid "Preset..." msgstr "" @@ -12010,6 +12029,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "Празен CollisionPolygon2D не влияе на колизиите." +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12288,11 +12315,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" @@ -12884,9 +12906,6 @@ msgstr "Константите не могат да бъдат променен #~ msgid "Import Large Texture" #~ msgstr "Внасяне на голяма текстура" -#~ msgid "Import Translations" -#~ msgstr "Внасяне на преводи" - #~ msgid "Couldn't import!" #~ msgstr "Неуспешно внасяне!" diff --git a/editor/translations/bn.po b/editor/translations/bn.po index 18ac61a269..ca8fff0724 100644 --- a/editor/translations/bn.po +++ b/editor/translations/bn.po @@ -1926,8 +1926,8 @@ 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/editor_properties.cpp editor/import_defaults_editor.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 "সংরক্ষন করুন" @@ -4307,6 +4307,21 @@ msgstr "" msgid "Saving..." msgstr "সংরক্ষিত হচ্ছে..." +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "মোড (Mode) বাছাই করুন" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "ইম্পোর্ট" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "প্রাথমিক sRGB ব্যবহার করুন" + #: editor/import_dock.cpp #, fuzzy msgid "%d Files" @@ -5468,7 +5483,6 @@ msgid "Sort:" msgstr "সাজান:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "বিভাগ:" @@ -11013,6 +11027,11 @@ msgstr "স্বয়ংক্রিয়-লোড" msgid "Plugins" msgstr "প্লাগইন-সমূহ" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "লোড ডিফল্ট" + #: editor/property_editor.cpp msgid "Preset..." msgstr "প্রিসেট..." @@ -13204,6 +13223,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "সংঘর্ষে ফাঁকা/শুন্য CollisionPolygon2D-এর কোনো প্রভাব নেই।" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -13495,11 +13522,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" @@ -15440,9 +15462,6 @@ msgstr "" #~ msgid "Use Default Light" #~ msgstr "প্রাথমিক লাইট ব্যবহার করুন" -#~ msgid "Use Default sRGB" -#~ msgstr "প্রাথমিক sRGB ব্যবহার করুন" - #~ msgid "Default Light Normal:" #~ msgstr "লাইটের প্রাথমিক নরমাল:" diff --git a/editor/translations/br.po b/editor/translations/br.po index 3651e8fb0e..7600dd4eb1 100644 --- a/editor/translations/br.po +++ b/editor/translations/br.po @@ -1812,8 +1812,8 @@ 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/editor_properties.cpp editor/import_defaults_editor.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 "" @@ -3889,6 +3889,18 @@ msgstr "" msgid "Saving..." msgstr "" +#: editor/import_defaults_editor.cpp +msgid "Select Importer" +msgstr "" + +#: editor/import_defaults_editor.cpp +msgid "Importer:" +msgstr "" + +#: editor/import_defaults_editor.cpp +msgid "Reset to Defaults" +msgstr "" + #: editor/import_dock.cpp msgid "%d Files" msgstr "" @@ -4940,7 +4952,6 @@ msgid "Sort:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "" @@ -9968,6 +9979,10 @@ msgstr "" msgid "Plugins" msgstr "" +#: editor/project_settings_editor.cpp +msgid "Import Defaults" +msgstr "" + #: editor/property_editor.cpp msgid "Preset..." msgstr "" @@ -11917,6 +11932,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12172,11 +12195,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/ca.po b/editor/translations/ca.po index 38f08f66cd..141f2cd58f 100644 --- a/editor/translations/ca.po +++ b/editor/translations/ca.po @@ -1871,8 +1871,8 @@ msgid "Open a File or Directory" msgstr "Obre un Fitxer o Directori" #: 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/editor_properties.cpp editor/import_defaults_editor.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 "Desa" @@ -4105,6 +4105,21 @@ msgstr "" msgid "Saving..." msgstr "Desant..." +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Mode de selecció" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "Importa" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "Carrega Valors predeterminats" + #: editor/import_dock.cpp msgid "%d Files" msgstr "%d Fitxers" @@ -5197,7 +5212,6 @@ msgid "Sort:" msgstr "Ordena:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "Categoria:" @@ -10685,6 +10699,11 @@ msgstr "Càrrega Automàtica" msgid "Plugins" msgstr "Connectors" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "Carrega Valors predeterminats" + #: editor/property_editor.cpp msgid "Preset..." msgstr "Configuració..." @@ -12827,6 +12846,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "Un CollisionPolygon2D buit no té cap efecte en la col·lisió." +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -13148,11 +13175,6 @@ msgstr "" "Les GIProbes no estan suportades pel controlador de vídeo GLES2.\n" "Utilitzeu un BakedLightmap en el seu lloc." -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp #, fuzzy msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." diff --git a/editor/translations/cs.po b/editor/translations/cs.po index 625daea641..2c21fc0e63 100644 --- a/editor/translations/cs.po +++ b/editor/translations/cs.po @@ -11,12 +11,12 @@ # zxey <r.hozak@seznam.cz>, 2018. # Vojtěch Šamla <auzkok@seznam.cz>, 2018, 2019, 2020, 2021. # Peeter Angelo <contact@peeterangelo.com>, 2019. -# VojtechBrezina <vojta.brezina@gmail.com>, 2019. +# VojtechBrezina <vojta.brezina@gmail.com>, 2019, 2021. # Garrom Orc Shaman <garromorcshaman@gmail.com>, 2019. # David Husička <davidek251@seznam.cz>, 2019. # Luboš Nečas <lubosnecas506@seznam.cz>, 2019. # David Kubeš <kubesdavid@email.cz>, 2019. -# Emil Jiří Tywoniak <emil.tywoniak@gmail.com>, 2020. +# Emil Jiří Tywoniak <emil.tywoniak@gmail.com>, 2020, 2021. # Filip Vincůrek <vincurek.f@gmail.com>, 2020. # Ondrej Pavelka <ondrej.pavelka@outlook.com>, 2020. # Zbyněk <zbynek.fiala@gmail.com>, 2020. @@ -28,7 +28,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-01-22 10:21+0000\n" +"PO-Revision-Date: 2021-03-08 15:33+0000\n" "Last-Translator: Václav Blažej <vaclavblazej@seznam.cz>\n" "Language-Team: Czech <https://hosted.weblate.org/projects/godot-engine/godot/" "cs/>\n" @@ -37,7 +37,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 4.5-dev\n" +"X-Generator: Weblate 4.5.1\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -186,11 +186,11 @@ msgstr "Animace: Změna času klíčových snímků" #: editor/animation_track_editor.cpp msgid "Anim Multi Change Transition" -msgstr "Animace: změna přechodů" +msgstr "Animace: Změna přechodů" #: editor/animation_track_editor.cpp msgid "Anim Multi Change Transform" -msgstr "Animace: změna transformací" +msgstr "Animace: Změna transformací" #: editor/animation_track_editor.cpp msgid "Anim Multi Change Keyframe Value" @@ -198,7 +198,7 @@ msgstr "Animace: Změnit hodnotu klíčových snímků" #: editor/animation_track_editor.cpp msgid "Anim Multi Change Call" -msgstr "Animace: změna volání" +msgstr "Animace: Změna více volání" #: editor/animation_track_editor.cpp msgid "Change Animation Length" @@ -292,7 +292,7 @@ msgstr "Čas (s): " #: editor/animation_track_editor.cpp msgid "Toggle Track Enabled" -msgstr "Přepínací stopa povolena" +msgstr "Povolit stopu" #: editor/animation_track_editor.cpp msgid "Continuous" @@ -676,7 +676,7 @@ msgstr "Vybrat vše/nic" #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" -msgstr "Přidat klip audio stopy" +msgstr "Přidat audio klip" #: editor/animation_track_editor_plugins.cpp msgid "Change Audio Track Clip Start Offset" @@ -1299,7 +1299,7 @@ msgstr "Přepnout bypass efektů na zvukové sběrnice" #: editor/editor_audio_buses.cpp msgid "Select Audio Bus Send" -msgstr "Vybrat přenos zvukové sběrnice" +msgstr "Vybrat cíl zvukové sběrnice" #: editor/editor_audio_buses.cpp msgid "Add Audio Bus Effect" @@ -1867,8 +1867,8 @@ msgid "Open a File or Directory" msgstr "Otevřít soubor nebo složku" #: 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/editor_properties.cpp editor/import_defaults_editor.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 "Uložit" @@ -2477,7 +2477,7 @@ msgid "" "The current scene has unsaved changes.\n" "Reload the saved scene anyway? This action cannot be undone." msgstr "" -"Tato scéna obsahuje neuložené změny.\n" +"Aktuální scéna obsahuje neuložené změny.\n" "Přesto znovu načíst? Tuto akci nelze vrátit zpět." #: editor/editor_node.cpp @@ -2538,10 +2538,8 @@ msgstr "" "Nelze povolit rozšiřující plugin: '%s' parsování konfigurace se nezdařilo." #: editor/editor_node.cpp -#, fuzzy msgid "Unable to find script field for addon plugin at: '%s'." -msgstr "" -"Nelze najít záznam skriptu pro rozšiřující plugin v: 'res://addons/%s'." +msgstr "Nelze najít záznam skriptu pro rozšiřující plugin v: '%s'." #: editor/editor_node.cpp msgid "Unable to load addon script from path: '%s'." @@ -3132,13 +3130,12 @@ msgid "Open & Run a Script" msgstr "Otevřít a spustit skript" #: editor/editor_node.cpp -#, fuzzy msgid "" "The following files are newer 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?:" +"Jaká akce se má vykonat?" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/shader_editor_plugin.cpp @@ -4064,6 +4061,21 @@ msgstr "Vrátili jste objekt, který dědí z Node metodou `post_import()`?" msgid "Saving..." msgstr "Ukládání..." +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Režim výběru" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "Import" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "Načíst výchozí" + #: editor/import_dock.cpp msgid "%d Files" msgstr "%d souborů" @@ -5026,9 +5038,8 @@ msgid "Got:" msgstr "Staženo:" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Failed SHA-256 hash check" -msgstr "Neúspěšná kontrola sha256 hashe" +msgstr "Neúspěšná kontrola SHA-256 hashe" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Asset Download Error:" @@ -5131,7 +5142,6 @@ msgid "Sort:" msgstr "Řadit podle:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "Kategorie:" @@ -6302,9 +6312,8 @@ msgid "Can only set point into a ParticlesMaterial process material" msgstr "Bod lze vložit pouze do process materiálu ParticlesMaterial" #: editor/plugins/particles_2d_editor_plugin.cpp -#, fuzzy msgid "Convert to CPUParticles2D" -msgstr "Převést na CPUParticles" +msgstr "Převést na CPUParticles2D" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp @@ -10006,9 +10015,8 @@ msgid "Projects" msgstr "Projekty" #: editor/project_manager.cpp -#, fuzzy msgid "Loading, please wait..." -msgstr "Získávání zrcadel, prosím čekejte..." +msgstr "Načítání, prosím čekejte..." #: editor/project_manager.cpp msgid "Last Modified" @@ -10381,6 +10389,11 @@ msgstr "Autoload" msgid "Plugins" msgstr "Pluginy" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "Načíst výchozí" + #: editor/property_editor.cpp msgid "Preset..." msgstr "Předvolba..." @@ -10634,7 +10647,6 @@ msgid "Can't paste root node into the same scene." msgstr "Nelze manipulovat s uzly z cizí scény!" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Paste Node(s)" msgstr "Vložit uzly" @@ -10765,7 +10777,6 @@ msgid "Attach Script" msgstr "Připojit skript" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Cut Node(s)" msgstr "Vyjmout uzly" @@ -11576,29 +11587,25 @@ msgstr "Přiřaďte uzlu GridMap zdroj MeshLibrary k použití jeho sítě." #: modules/lightmapper_cpu/lightmapper_cpu.cpp msgid "Begin Bake" -msgstr "" +msgstr "Začít zapečení" #: modules/lightmapper_cpu/lightmapper_cpu.cpp msgid "Preparing data structures" -msgstr "" +msgstr "Připravování datových struktur" #: modules/lightmapper_cpu/lightmapper_cpu.cpp -#, fuzzy msgid "Generate buffers" -msgstr "Vygenerovat AABB" +msgstr "Vygenerovat buffery" #: modules/lightmapper_cpu/lightmapper_cpu.cpp -#, fuzzy msgid "Direct lighting" -msgstr "Směry" +msgstr "Přímé osvětlení" #: modules/lightmapper_cpu/lightmapper_cpu.cpp -#, fuzzy msgid "Indirect lighting" -msgstr "Odsadit zprava" +msgstr "Nepřímé osvětlení" #: modules/lightmapper_cpu/lightmapper_cpu.cpp -#, fuzzy msgid "Post processing" msgstr "Následné zpracování" @@ -12112,9 +12119,8 @@ msgid "Select device from the list" msgstr "Vyberte zařízení ze seznamu" #: platform/android/export/export.cpp -#, fuzzy msgid "Unable to find the 'apksigner' tool." -msgstr "Nelze najít nástroj zipalign." +msgstr "Nelze najít nástroj 'apksigner'." #: platform/android/export/export.cpp msgid "" @@ -12136,14 +12142,12 @@ msgstr "" "Úložiště klíčů pro vydání je nakonfigurováno nesprávně v profilu exportu." #: platform/android/export/export.cpp -#, fuzzy msgid "A valid Android SDK path is required in Editor Settings." -msgstr "Nesprávná cesta Android SDK pro vlastní sestavení v Nastavení editoru." +msgstr "Je vyžadována platná cesta Android SDK v Nastavení editoru." #: platform/android/export/export.cpp -#, fuzzy msgid "Invalid Android SDK path in Editor Settings." -msgstr "Nesprávná cesta Android SDK pro vlastní sestavení v Nastavení editoru." +msgstr "Neplatná cesta k Android SDK v Nastavení editoru." #: platform/android/export/export.cpp msgid "Missing 'platform-tools' directory!" @@ -12151,12 +12155,11 @@ msgstr "Chybí složka \"platform-tools\"!" #: platform/android/export/export.cpp msgid "Unable to find Android SDK platform-tools' adb command." -msgstr "" +msgstr "Nelze najít příkaz adb z nástrojů platformy Android SDK." #: platform/android/export/export.cpp -#, fuzzy msgid "Please check in the Android SDK directory specified in Editor Settings." -msgstr "Nesprávná cesta Android SDK pro vlastní sestavení v Nastavení editoru." +msgstr "Zkontrolujte ve složce Android SDK uvedené v Nastavení editoru." #: platform/android/export/export.cpp msgid "Missing 'build-tools' directory!" @@ -12164,7 +12167,7 @@ msgstr "Chybí složka \"build-tools\"!" #: platform/android/export/export.cpp msgid "Unable to find Android SDK build-tools' apksigner command." -msgstr "" +msgstr "Nelze najít apksigner, nástrojů Android SDK." #: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." @@ -12422,6 +12425,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "Prázdný CollisionPolygon2D nemá při kolizi žádný efekt." +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12625,27 +12636,23 @@ msgstr "ARVROrigin musí mít uzel ARVRCamera jako potomka." #: scene/3d/baked_lightmap.cpp msgid "Finding meshes and lights" -msgstr "" +msgstr "Hledat mřížky a světla" #: scene/3d/baked_lightmap.cpp -#, fuzzy msgid "Preparing geometry (%d/%d)" -msgstr "Parsuji geometrii..." +msgstr "Připravuji geometrii (%d/%d)" #: scene/3d/baked_lightmap.cpp -#, fuzzy msgid "Preparing environment" -msgstr "Zobrazit prostředí" +msgstr "Připravuji prostředí" #: scene/3d/baked_lightmap.cpp -#, fuzzy msgid "Generating capture" -msgstr "Generování světelné mapy" +msgstr "Generování snímání" #: scene/3d/baked_lightmap.cpp -#, fuzzy msgid "Saving lightmaps" -msgstr "Generování světelné mapy" +msgstr "Ukládám světelné mapy" #: scene/3d/baked_lightmap.cpp msgid "Done" @@ -12735,11 +12742,6 @@ msgstr "" "Video driver GLES2 nepodporuje GIProby.\n" "Místo toho použijte BakedLightmap." -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "Uzel InterpolatedCamera je zastaralý a bude odstraněn v Godot 4.0." - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "SpotLight s úhlem širším než 90 stupňů nemůže vrhat stíny." @@ -13077,6 +13079,10 @@ msgstr "Odlišnosti mohou být přiřazeny pouze ve vertex funkci." msgid "Constants cannot be modified." msgstr "Konstanty není možné upravovat." +#~ msgid "" +#~ "InterpolatedCamera has been deprecated and will be removed in Godot 4.0." +#~ msgstr "Uzel InterpolatedCamera je zastaralý a bude odstraněn v Godot 4.0." + #~ msgid "No" #~ msgstr "Ne" diff --git a/editor/translations/da.po b/editor/translations/da.po index 0f677c6f96..bc00612eae 100644 --- a/editor/translations/da.po +++ b/editor/translations/da.po @@ -1938,8 +1938,8 @@ msgid "Open a File or Directory" msgstr "Åben en Fil eller Mappe" #: 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/editor_properties.cpp editor/import_defaults_editor.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 "Gem" @@ -4199,6 +4199,21 @@ msgstr "" msgid "Saving..." msgstr "Gemmer..." +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Vælg Node" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "Importer" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "Indlæs Default" + #: editor/import_dock.cpp msgid "%d Files" msgstr "%d Filer" @@ -5334,7 +5349,6 @@ msgid "Sort:" msgstr "Sorter:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "Kategori:" @@ -10638,6 +10652,11 @@ msgstr "" msgid "Plugins" msgstr "" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "Indlæs Default" + #: editor/property_editor.cpp msgid "Preset..." msgstr "Forudindstillet..." @@ -12730,6 +12749,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "En tom CollisionPolygon2D har ingen effekt på kollision." +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -13019,11 +13046,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/de.po b/editor/translations/de.po index 0c8ab619c5..bf3c01ae14 100644 --- a/editor/translations/de.po +++ b/editor/translations/de.po @@ -63,12 +63,16 @@ # Jonathan Hassel <jonathan.hassel@icloud.com>, 2020. # Artur Schönfeld <schoenfeld.artur@ymail.com>, 2020. # kidinashell <kidinashell@protonmail.com>, 2021. +# Daniel Glocker <mystboy666@gmail.com>, 2021. +# Raphipod <podraphi@googlemail.com>, 2021. +# Daniel Plaster <danimineiromc@googlemail.com>, 2021. +# El Captian <elcaptian@posteo.me>, 2021. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-02-21 10:50+0000\n" -"Last-Translator: So Wieso <sowieso@dukun.de>\n" +"PO-Revision-Date: 2021-03-07 06:04+0000\n" +"Last-Translator: El Captian <elcaptian@posteo.me>\n" "Language-Team: German <https://hosted.weblate.org/projects/godot-engine/" "godot/de/>\n" "Language: de\n" @@ -76,7 +80,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.5\n" +"X-Generator: Weblate 4.5.1\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -1921,8 +1925,8 @@ msgid "Open a File or Directory" msgstr "Datei oder Verzeichnis öffnen" #: 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/editor_properties.cpp editor/import_defaults_editor.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 "Speichern" @@ -2443,7 +2447,7 @@ msgid "" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" -"Dies ist ein nicht-lokales Objekt, Änderungen an ihm werden nicht " +"Dies ist ein Laufzeit-Objekt Objekt, Änderungen an ihm werden nicht " "gespeichert.\n" "Die Dokumentation zum Debugging beschreibt den nötigen Arbeitsablauf." @@ -2602,7 +2606,6 @@ msgstr "" "fehlgeschlagen." #: editor/editor_node.cpp -#, fuzzy msgid "Unable to find script field for addon plugin at: '%s'." msgstr "" "Skript-Feld für Erweiterung in ‚res://addons/%s‘ konnte nicht gefunden " @@ -3062,7 +3065,7 @@ msgstr "Dokumentationsvorschläge senden" #: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp msgid "Community" -msgstr "Community" +msgstr "Gemeinschaft" #: editor/editor_node.cpp msgid "About" @@ -4144,6 +4147,21 @@ msgstr "" msgid "Saving..." msgstr "Speichere..." +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Auswahlmodus" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "Import" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "Nutze Standard-sRGB" + #: editor/import_dock.cpp msgid "%d Files" msgstr "%d Dateien" @@ -4907,7 +4925,7 @@ msgstr "Abspielmodus:" #: editor/plugins/animation_tree_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "AnimationTree" -msgstr "AnimationTree" +msgstr "AnimationsBaum" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "New name:" @@ -5114,9 +5132,8 @@ msgid "Got:" msgstr "Erhalten:" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Failed SHA-256 hash check" -msgstr "Sha256-Prüfung fehlgeschlagen" +msgstr "Sha256 Checksummen prüfung fehlgeschlagen" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Asset Download Error:" @@ -5219,7 +5236,6 @@ msgid "Sort:" msgstr "Sortiere:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "Kategorie:" @@ -5274,7 +5290,7 @@ msgstr "" msgid "Failed determining lightmap size. Maximum lightmap size too small?" msgstr "" "Die Größe des Lightmaps kann nicht bestimmt werden. Möglicherweise ist die " -"maximale Lightmap-Größe zu klein." +"maximale Lightmap-Größe zu klein?" #: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "" @@ -7354,7 +7370,7 @@ msgstr "Knochen in Ruhe-Pose setzen" #: editor/plugins/skeleton_2d_editor_plugin.cpp msgid "Skeleton2D" -msgstr "Skeleton2D" +msgstr "Skelett2D" #: editor/plugins/skeleton_2d_editor_plugin.cpp msgid "Make Rest Pose (From Bones)" @@ -7462,7 +7478,7 @@ msgstr "Zeichenaufrufe" #: editor/plugins/spatial_editor_plugin.cpp msgid "Vertices" -msgstr "Vertices" +msgstr "Eckpunkte" #: editor/plugins/spatial_editor_plugin.cpp msgid "Top View." @@ -8515,7 +8531,7 @@ msgstr "Keine Textur zum Entfernen ausgewählt." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Create from scene? This will overwrite all current tiles." -msgstr "Aus Szene erstellen? Alle aktuellen Kacheln werden überschrieben!" +msgstr "Aus Szene erstellen? Alle aktuellen Kacheln werden überschrieben." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Merge from scene?" @@ -9649,7 +9665,7 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" -msgstr "VisualShader" +msgstr "VisuellerShader" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Edit Visual Property" @@ -10514,6 +10530,11 @@ msgstr "Autoload" msgid "Plugins" msgstr "Erweiterungen" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "Standard laden" + #: editor/property_editor.cpp msgid "Preset..." msgstr "Voreinstellungen..." @@ -10765,14 +10786,12 @@ msgid "Instance Child Scene" msgstr "Szene hier instantiieren" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Can't paste root node into the same scene." -msgstr "Bearbeiten von Nodes einer fremden Szene ist nicht möglich!" +msgstr "Einfügen der Wurzelnode in dieselbe Szene nicht möglich." #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Paste Node(s)" -msgstr "Nodes einfügen" +msgstr "Node(s) einfügen" #: editor/scene_tree_dock.cpp msgid "Detach Script" @@ -10902,9 +10921,8 @@ msgid "Attach Script" msgstr "Skript hinzufügen" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Cut Node(s)" -msgstr "Nodes trennen" +msgstr "Node(s) trennen" #: editor/scene_tree_dock.cpp msgid "Remove Node(s)" @@ -11546,7 +11564,7 @@ msgstr "Bibliotheken: " #: modules/gdnative/register_types.cpp msgid "GDNative" -msgstr "GDNative" +msgstr "GDNativ" #: modules/gdscript/gdscript_functions.cpp msgid "Step argument is zero!" @@ -12577,6 +12595,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "Ein leeres CollisionPolygon2D hat keinen Effekt auf Kollisionen." +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12906,11 +12932,6 @@ msgstr "" "GIProbes werden vom GLES2-Videotreiber nicht unterstützt.\n" "BakedLightmaps können als Alternative verwendet werden." -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "InterpolatedCamera ist veraltet und wird in Godot 4.0 entfernt werden." - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" @@ -13269,6 +13290,11 @@ msgstr "Varyings können nur in Vertex-Funktion zugewiesen werden." msgid "Constants cannot be modified." msgstr "Konstanten können nicht verändert werden." +#~ msgid "" +#~ "InterpolatedCamera has been deprecated and will be removed in Godot 4.0." +#~ msgstr "" +#~ "InterpolatedCamera ist veraltet und wird in Godot 4.0 entfernt werden." + #~ msgid "No" #~ msgstr "Nein" @@ -15112,9 +15138,6 @@ msgstr "Konstanten können nicht verändert werden." #~ msgid "Use Default Light" #~ msgstr "Nutze Standardlicht" -#~ msgid "Use Default sRGB" -#~ msgstr "Nutze Standard-sRGB" - #~ msgid "Default Light Normal:" #~ msgstr "Standardlichtnormale:" diff --git a/editor/translations/editor.pot b/editor/translations/editor.pot index 21d516e8ee..d11d4f42ac 100644 --- a/editor/translations/editor.pot +++ b/editor/translations/editor.pot @@ -1790,8 +1790,8 @@ 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/editor_properties.cpp editor/import_defaults_editor.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 "" @@ -3867,6 +3867,18 @@ msgstr "" msgid "Saving..." msgstr "" +#: editor/import_defaults_editor.cpp +msgid "Select Importer" +msgstr "" + +#: editor/import_defaults_editor.cpp +msgid "Importer:" +msgstr "" + +#: editor/import_defaults_editor.cpp +msgid "Reset to Defaults" +msgstr "" + #: editor/import_dock.cpp msgid "%d Files" msgstr "" @@ -4918,7 +4930,6 @@ msgid "Sort:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "" @@ -9946,6 +9957,10 @@ msgstr "" msgid "Plugins" msgstr "" +#: editor/project_settings_editor.cpp +msgid "Import Defaults" +msgstr "" + #: editor/property_editor.cpp msgid "Preset..." msgstr "" @@ -11895,6 +11910,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12150,11 +12173,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/el.po b/editor/translations/el.po index f6205b3b50..8cd3397399 100644 --- a/editor/translations/el.po +++ b/editor/translations/el.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-02-15 10:51+0000\n" +"PO-Revision-Date: 2021-03-03 15:50+0000\n" "Last-Translator: Michalis <michalisntovas@yahoo.gr>\n" "Language-Team: Greek <https://hosted.weblate.org/projects/godot-engine/godot/" "el/>\n" @@ -24,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: Weblate 4.5-dev\n" +"X-Generator: Weblate 4.5.1-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -1867,8 +1867,8 @@ 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/editor_properties.cpp editor/import_defaults_editor.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 "Αποθήκευση" @@ -4088,6 +4088,21 @@ msgstr "" msgid "Saving..." msgstr "Αποθήκευση..." +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Επιλογή Λειτουργίας" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "Εισαγωγή" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "Χρήση προεπιλεγμένου sRGB" + #: editor/import_dock.cpp msgid "%d Files" msgstr "%d αρχεία" @@ -5163,7 +5178,6 @@ msgid "Sort:" msgstr "Ταξινόμηση:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "Κατηγορία:" @@ -8662,7 +8676,7 @@ msgstr "Κανένα αρχείο δεν προστέθηκε στο στάδι #: editor/plugins/version_control_editor_plugin.cpp msgid "Commit" -msgstr "Δέσμευση" +msgstr "Υποβολή" #: editor/plugins/version_control_editor_plugin.cpp msgid "VCS Addon is not initialized" @@ -10473,6 +10487,11 @@ msgstr "Αυτόματη φόρτωση" msgid "Plugins" msgstr "Πρόσθετα" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "Φόρτωση προεπιλογής" + #: editor/property_editor.cpp msgid "Preset..." msgstr "Διαμόρφωση..." @@ -12547,6 +12566,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "Ένα άδειο ColisionPollygon2D δεν επηρεάζει τη σύγκρουση." +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12874,11 +12901,6 @@ msgstr "" "Τα GIProbes δεν υποστηρίζονται από το πρόγραμμα οδήγησης οθόνης GLES2.\n" "Εναλλακτικά, χρησιμοποιήστε ένα BakedLightmap." -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "Η InterpolatedCamera έχει καταργηθεί και θα αφαιρεθεί στο Godot 4.0." - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" @@ -13226,6 +13248,11 @@ msgstr "Τα «varying» μπορούν να ανατεθούν μόνο στη msgid "Constants cannot be modified." msgstr "Οι σταθερές δεν μπορούν να τροποποιηθούν." +#~ msgid "" +#~ "InterpolatedCamera has been deprecated and will be removed in Godot 4.0." +#~ msgstr "" +#~ "Η InterpolatedCamera έχει καταργηθεί και θα αφαιρεθεί στο Godot 4.0." + #~ msgid "No" #~ msgstr "Όχι" @@ -15054,9 +15081,6 @@ msgstr "Οι σταθερές δεν μπορούν να τροποποιηθο #~ msgid "Use Default Light" #~ msgstr "Χρήση προεπιλεγμέου φωτός" -#~ msgid "Use Default sRGB" -#~ msgstr "Χρήση προεπιλεγμένου sRGB" - #~ msgid "Default Light Normal:" #~ msgstr "Προεπιλεγμένο διάνυσμα κανονικής ανάκλασης φωτός:" diff --git a/editor/translations/eo.po b/editor/translations/eo.po index bbc0d13358..46e3a6b28d 100644 --- a/editor/translations/eo.po +++ b/editor/translations/eo.po @@ -1836,8 +1836,8 @@ msgid "Open a File or Directory" msgstr "Malfermi dosieron aŭ dosierujon" #: editor/editor_file_dialog.cpp editor/editor_node.cpp -#: editor/editor_properties.cpp editor/inspector_dock.cpp -#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_properties.cpp editor/import_defaults_editor.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 "Konservi" @@ -3979,6 +3979,20 @@ msgstr "" msgid "Saving..." msgstr "" +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Selektu nodo(j)n por enporti" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "Enporti" + +#: editor/import_defaults_editor.cpp +msgid "Reset to Defaults" +msgstr "" + #: editor/import_dock.cpp #, fuzzy msgid "%d Files" @@ -5036,7 +5050,6 @@ msgid "Sort:" msgstr "Ordigi:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "" @@ -10102,6 +10115,11 @@ msgstr "" msgid "Plugins" msgstr "" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "Enporti dokon" + #: editor/property_editor.cpp msgid "Preset..." msgstr "" @@ -12076,6 +12094,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12331,11 +12357,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/es.po b/editor/translations/es.po index 20a252e6a4..85b79a7605 100644 --- a/editor/translations/es.po +++ b/editor/translations/es.po @@ -63,8 +63,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-02-15 10:51+0000\n" -"Last-Translator: SteamGoblin <SteamGoblin860@gmail.com>\n" +"PO-Revision-Date: 2021-02-27 00:47+0000\n" +"Last-Translator: Javier Ocampos <xavier.ocampos@gmail.com>\n" "Language-Team: Spanish <https://hosted.weblate.org/projects/godot-engine/" "godot/es/>\n" "Language: es\n" @@ -72,7 +72,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.5-dev\n" +"X-Generator: Weblate 4.5\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -578,7 +578,7 @@ msgstr "Agrupar las pistas por nodo o mostrarlas como una lista plana." #: editor/animation_track_editor.cpp msgid "Snap:" -msgstr "Snap:" +msgstr "Ajuste:" #: editor/animation_track_editor.cpp msgid "Animation step value." @@ -1642,7 +1642,7 @@ msgid "" "Etc' in Project Settings." msgstr "" "La plataforma de destino requiere compresión de texturas 'ETC' para GLES2. " -"Activa 'Import Etc' en Ajustes del Proyecto." +"Activa 'Import Etc' en Configuración del Proyecto." #: editor/editor_export.cpp msgid "" @@ -1650,7 +1650,7 @@ msgid "" "'Import Etc 2' in Project Settings." msgstr "" "La plataforma de destino requiere compresión de texturas 'ETC2' para GLES3. " -"Activa 'Import Etc 2' en Ajustes del Proyecto." +"Activa 'Import Etc 2' en Configuración del Proyecto." #: editor/editor_export.cpp msgid "" @@ -1661,8 +1661,8 @@ msgid "" msgstr "" "La plataforma de destino requiere compresión de texturas 'ETC' para usar " "GLES2 como controlador de respaldo.\n" -"Activa 'Import Etc' en Ajustes del Proyecto, o desactiva 'Driver Fallback " -"Enabled'." +"Activa 'Import Etc' en Configuración del Proyecto, o desactiva 'Driver " +"Fallback Enabled'." #: editor/editor_export.cpp msgid "" @@ -1670,7 +1670,7 @@ msgid "" "'Import Pvrtc' in Project Settings." msgstr "" "La plataforma de destino requiere compresión de texturas 'PVRTC' para GLES2. " -"Activa 'Import Pvrtc' en Ajustes del Proyecto." +"Activa 'Import Pvrtc' en Configuración del Proyecto." #: editor/editor_export.cpp msgid "" @@ -1678,7 +1678,8 @@ msgid "" "Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings." msgstr "" "La plataforma de destino requiere compresión de texturas 'ETC2' o 'PVRTC' " -"para GLES3. Activa 'Import Etc 2' o 'Import Pvrtc' en Ajustes del Proyecto." +"para GLES3. Activa 'Import Etc 2' o 'Import Pvrtc' en Configuración del " +"Proyecto." #: editor/editor_export.cpp msgid "" @@ -1689,7 +1690,7 @@ msgid "" msgstr "" "La plataforma del objetivo requiere compresión de texturas 'PVRTC' para el " "driver fallback de GLES2.\n" -"Activa Import Pvrtc' en la Ajustes del Proyecto, o desactiva 'Driver " +"Activa Import Pvrtc' en Configuración del Proyecto, o desactiva 'Driver " "Fallback Enabled'." #: editor/editor_export.cpp platform/android/export/export.cpp @@ -1921,8 +1922,8 @@ msgid "Open a File or Directory" msgstr "Abrir un archivo o directorio" #: 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/editor_properties.cpp editor/import_defaults_editor.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 "Guardar" @@ -1993,7 +1994,7 @@ msgstr "Mostrar/Ocultar archivos ocultos." #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." -msgstr "Ver ítems como un grid de miniaturas." +msgstr "Ver ítems como una cuadrícula de miniaturas." #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a list." @@ -2600,11 +2601,8 @@ msgstr "" "configuración de '%s'." #: editor/editor_node.cpp -#, fuzzy msgid "Unable to find script field for addon plugin at: '%s'." -msgstr "" -"No se pudo encontrar el campo del script para el plugin addon en: 'res://" -"addons/%s'." +msgstr "No se pudo encontrar el campo script para el plugin de addon en: '%s'." #: editor/editor_node.cpp msgid "Unable to load addon script from path: '%s'." @@ -2664,8 +2662,8 @@ msgid "" "category." msgstr "" "No se ha definido ninguna escena principal, ¿seleccionar una?\n" -"Es posible cambiarla más tarde en \"Ajustes del Proyecto\" bajo la categoría " -"'application'." +"Es posible cambiarla más tarde en \"Configuración del Proyecto\" bajo la " +"categoría 'application'." #: editor/editor_node.cpp msgid "" @@ -2674,8 +2672,8 @@ msgid "" "category." msgstr "" "La escena seleccionada '%s' no existe, ¿seleccionar una válida?\n" -"Es posible cambiarla más tarde en \"Ajustes del Proyecto\" bajo la categoría " -"'application'." +"Es posible cambiarla más tarde en \"Configuración del Proyecto\" bajo la " +"categoría 'application'." #: editor/editor_node.cpp msgid "" @@ -2685,8 +2683,8 @@ msgid "" 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 " -"'application'." +"Es posible cambiarla más tarde en \"Configuración del Proyecto\" bajo la " +"categoría 'application'." #: editor/editor_node.cpp msgid "Save Layout" @@ -2847,7 +2845,7 @@ msgstr "Proyecto" #: editor/editor_node.cpp msgid "Project Settings..." -msgstr "Ajustes del Proyecto..." +msgstr "Configuración del Proyecto..." #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Version Control" @@ -3208,13 +3206,12 @@ msgid "Open & Run a Script" msgstr "Abrir y Ejecutar un Script" #: editor/editor_node.cpp -#, fuzzy msgid "" "The following files are newer on disk.\n" "What action should be taken?" msgstr "" "Los siguientes archivos son nuevos en disco.\n" -"¿Qué es lo que quieres hacer?:" +"¿Qué acción se debería tomar?" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/shader_editor_plugin.cpp @@ -3969,7 +3966,7 @@ msgid "" "ProjectSettings." msgstr "" "Incluye los archivos con las siguientes extensiones. Añádelos o elimínalos " -"en Ajustes del proyecto." +"en Configuración del Proyecto." #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp @@ -4147,6 +4144,21 @@ msgstr "¿Devolviste un objeto derivado de Node en el método `post_import()`?" msgid "Saving..." msgstr "Guardando..." +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Modo de Selección" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "Importación" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "Usar sRGB predeterminado" + #: editor/import_dock.cpp msgid "%d Files" msgstr "%d archivos" @@ -4419,7 +4431,7 @@ msgstr "Seleccionar y mover puntos, crear puntos con clic derecho." #: 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 "Activar snap y mostrar grid." +msgstr "Activar ajuste y mostrar cuadrícula." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -5119,9 +5131,8 @@ msgid "Got:" msgstr "Tiene:" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Failed SHA-256 hash check" -msgstr "Fallo en la comprobación del hash sha256" +msgstr "Fallo en la comprobación del hash SHA-256" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Asset Download Error:" @@ -5224,7 +5235,6 @@ msgid "Sort:" msgstr "Ordenar:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "Categoría:" @@ -5311,15 +5321,15 @@ msgstr "Vista Previa" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Configure Snap" -msgstr "Configurar Snap" +msgstr "Configurar Ajuste" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Grid Offset:" -msgstr "Grid Offset:" +msgstr "Desplazamiento de Cuadrícula:" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Grid Step:" -msgstr "Grid Step:" +msgstr "Paso de Cuadrícula:" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Primary Line Every:" @@ -5483,11 +5493,11 @@ msgstr "Ancho Inferior" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "VCenter Wide" -msgstr "Ancho Centro Vert." +msgstr "Centro Vert. Ancho" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "HCenter Wide" -msgstr "Ancho Centro Horiz." +msgstr "Centro Horiz. Ancho" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Full Rect" @@ -5647,48 +5657,48 @@ msgstr "Modo de Regla" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Toggle smart snapping." -msgstr "Alternar acople inteligente." +msgstr "Act./Desact. ajuste inteligente." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Smart Snap" -msgstr "Usar Snap Inteligente" +msgstr "Usar Ajuste Inteligente" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Toggle grid snapping." -msgstr "Act./Desact. grid snapping." +msgstr "Act./Desact. ajuste de cuadrícula." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Grid Snap" -msgstr "Usar Grid Snap" +msgstr "Usar Ajuste de Cuadrícula" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snapping Options" -msgstr "Opciones de Snapping" +msgstr "Opciones de Ajuste" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" -msgstr "Usar Snap de Rotación" +msgstr "Usar Ajuste de Rotación" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Scale Snap" -msgstr "Usar Snap de Escalado" +msgstr "Usar Ajuste de Escalado" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap Relative" -msgstr "Snap Relativo" +msgstr "Ajuste Relativo" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Pixel Snap" -msgstr "Usar Pixel Snap" +msgstr "Usar Ajuste de Píxeles" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Smart Snapping" -msgstr "Snapping Inteligente" +msgstr "Ajuste Inteligente" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Configure Snap..." -msgstr "Configurar Snap..." +msgstr "Configurar Ajuste..." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap to Parent" @@ -5757,7 +5767,7 @@ msgstr "Ver" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Always Show Grid" -msgstr "Mostrar Siempre el Grid" +msgstr "Mostrar Siempre la Cuadrícula" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Helpers" @@ -5846,11 +5856,11 @@ msgstr "Limpiar Pose" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Multiply grid step by 2" -msgstr "Multiplicar grid step por 2" +msgstr "Multiplicar paso de cuadrícula por 2" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Divide grid step by 2" -msgstr "Dividir grid step por 2" +msgstr "Dividir paso de cuadrícula por 2" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Pan View" @@ -6767,43 +6777,43 @@ msgstr "Limpiar UV" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Grid Settings" -msgstr "Configuración del Grid" +msgstr "Configuración de la Cuadrícula" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Snap" -msgstr "Snap" +msgstr "Ajuste" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Enable Snap" -msgstr "Activar Snap" +msgstr "Activar Ajuste" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Grid" -msgstr "Grid" +msgstr "Cuadrícula" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Show Grid" -msgstr "Ver Grid" +msgstr "Ver Cuadrícula" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Configure Grid:" -msgstr "Configurar Grid:" +msgstr "Configurar Cuadrícula:" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Grid Offset X:" -msgstr "Grid Offset X:" +msgstr "Desplazamiento de Cuadrícula en X:" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Grid Offset Y:" -msgstr "Grid Offset Y:" +msgstr "Desplazamiento de Cuadrícula en Y:" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Grid Step X:" -msgstr "Grid Step X:" +msgstr "Paso de Cuadrícula en X:" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Grid Step Y:" -msgstr "Grid Step Y:" +msgstr "Paso de Cuadrícula en Y:" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Sync Bones to Polygon" @@ -7768,7 +7778,7 @@ msgstr "Ver Origen" #: editor/plugins/spatial_editor_plugin.cpp msgid "View Grid" -msgstr "Ver Grid" +msgstr "Ver Cuadrícula" #: editor/plugins/spatial_editor_plugin.cpp #: modules/gridmap/grid_map_editor_plugin.cpp @@ -7777,19 +7787,19 @@ msgstr "Configuración..." #: editor/plugins/spatial_editor_plugin.cpp msgid "Snap Settings" -msgstr "Ajustes de Snap" +msgstr "Configuración de Ajuste" #: editor/plugins/spatial_editor_plugin.cpp msgid "Translate Snap:" -msgstr "Snap de Traslación:" +msgstr "Ajuste de Traslación:" #: editor/plugins/spatial_editor_plugin.cpp msgid "Rotate Snap (deg.):" -msgstr "Snap de Rotación (grados):" +msgstr "Ajuste de Rotación (grados):" #: editor/plugins/spatial_editor_plugin.cpp msgid "Scale Snap (%):" -msgstr "Snap de Escala (%):" +msgstr "Ajuste de Escala (%):" #: editor/plugins/spatial_editor_plugin.cpp msgid "Viewport Settings" @@ -8058,7 +8068,7 @@ msgstr "Asignar Margen" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" -msgstr "Modo Snap:" +msgstr "Modo de Ajuste:" #: editor/plugins/texture_region_editor_plugin.cpp #: scene/resources/visual_shader.cpp @@ -8067,11 +8077,11 @@ msgstr "Ninguno" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Pixel Snap" -msgstr "Pixel Snap" +msgstr "Ajuste de Píxeles" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Grid Snap" -msgstr "Grid Snap" +msgstr "Ajuste de Cuadrícula" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Auto Slice" @@ -8489,7 +8499,8 @@ msgstr "Mantener el polígono dentro del region Rect." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Enable snap and show grid (configurable via the Inspector)." -msgstr "Activar snap y mostrar grid (configurable a través del Inspector)." +msgstr "" +"Activar ajuste y mostrar cuadrícula (configurable a través del Inspector)." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Display Tile Names (Hold Alt Key)" @@ -9680,7 +9691,7 @@ msgid "" msgstr "" "No se pudo exportar el proyecto para la plataforma '%s'.\n" "Esto puede ser debido a un problema de configuración en el preset de " -"exportación o en los ajustes de exportación." +"exportación o en la configuración de exportación." #: editor/project_export.cpp msgid "Release" @@ -10070,8 +10081,8 @@ msgid "" "the \"Application\" category." msgstr "" "No se puede ejecutar el proyecto: no hay una escena principal definida.\n" -"Por favor, edita el proyecto y configura la escena principal en los Ajustes " -"del proyecto, en la categoría \"Application\"." +"Por favor, edita el proyecto y configura la escena principal en " +"Configuración del Proyecto, en la categoría \"Application\"." #: editor/project_manager.cpp msgid "" @@ -10137,9 +10148,8 @@ msgid "Projects" msgstr "Proyectos" #: editor/project_manager.cpp -#, fuzzy msgid "Loading, please wait..." -msgstr "Obteniendo mirrors, por favor espera..." +msgstr "Cargando, espera por favor..." #: editor/project_manager.cpp msgid "Last Modified" @@ -10418,7 +10428,7 @@ msgstr "Cambiar Modo de Filtro Local" #: editor/project_settings_editor.cpp msgid "Project Settings (project.godot)" -msgstr "Ajustes del Proyecto (project.godot)" +msgstr "Configuración del Proyecto (project.godot)" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "General" @@ -10512,6 +10522,11 @@ msgstr "AutoLoad" msgid "Plugins" msgstr "Plugins" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "Cargar Valores por Defecto" + #: editor/property_editor.cpp msgid "Preset..." msgstr "Preset..." @@ -10762,14 +10777,12 @@ msgid "Instance Child Scene" msgstr "Instanciar Escena Hija" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Can't paste root node into the same scene." -msgstr "¡No se puede operar sobre los nodos de una escena externa!" +msgstr "No se puede pegar el nodo raíz en la misma escena." #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Paste Node(s)" -msgstr "Pegar Nodos" +msgstr "Pegar Nodo(s)" #: editor/scene_tree_dock.cpp msgid "Detach Script" @@ -10899,9 +10912,8 @@ msgid "Attach Script" msgstr "Añadir Script" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Cut Node(s)" -msgstr "Cortar Nodos" +msgstr "Cortar Nodos(s)" #: editor/scene_tree_dock.cpp msgid "Remove Node(s)" @@ -11612,7 +11624,7 @@ msgstr "Plano:" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Delete Selection" -msgstr "GridMap Eliminar Seleccionados" +msgstr "Eliminar Selección de GridMap" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Fill Selection" @@ -11620,7 +11632,7 @@ msgstr "Rellenar Selección en GridMap" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paste Selection" -msgstr "Pegar lo Seleccionado en GridMap" +msgstr "Pegar Selección en GridMap" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -11628,7 +11640,7 @@ msgstr "Pintar GridMap" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Grid Map" -msgstr "Grid Map" +msgstr "Mapeo de Cuadrícula" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Snap View" @@ -11765,7 +11777,7 @@ msgstr "Estableciendo la configuración..." #: modules/recast/navigation_mesh_generator.cpp msgid "Calculating grid size..." -msgstr "Calculando tamaño de grid..." +msgstr "Calculando tamaño la cuadrícula..." #: modules/recast/navigation_mesh_generator.cpp msgid "Creating heightfield..." @@ -12590,6 +12602,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "Un CollisionPolygon2D vacío no tiene ningún efecto en las colisiones." +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12910,11 +12930,6 @@ msgstr "" "Las GIProbes no están soportadas por el controlador de vídeo GLES2.\n" "Usa un BakedLightmap en su lugar." -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "InterpolatedCamera ha sido desaprobado y será eliminado en Godot 4.0." - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" @@ -13206,7 +13221,7 @@ msgid "" "Default Environment as specified in Project Settings (Rendering -> " "Environment -> Default Environment) could not be loaded." msgstr "" -"El Entorno por Defecto como se especifica en los Ajustes del Proyecto " +"El Entorno por Defecto como se especifica en Configuración del Proyecto " "(Rendering -> Environment -> Default Environment) no se ha podido cargar." #: scene/main/viewport.cpp @@ -13264,6 +13279,11 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice." msgid "Constants cannot be modified." msgstr "Las constantes no pueden modificarse." +#~ msgid "" +#~ "InterpolatedCamera has been deprecated and will be removed in Godot 4.0." +#~ msgstr "" +#~ "InterpolatedCamera ha sido desaprobado y será eliminado en Godot 4.0." + #~ msgid "No" #~ msgstr "No" @@ -15148,9 +15168,6 @@ msgstr "Las constantes no pueden modificarse." #~ msgid "Use Default Light" #~ msgstr "Usar iluminación predeterminada" -#~ msgid "Use Default sRGB" -#~ msgstr "Usar sRGB predeterminado" - #~ msgid "Default Light Normal:" #~ msgstr "Iluminación por normales predeterminada:" diff --git a/editor/translations/es_AR.po b/editor/translations/es_AR.po index a95f85e753..5f9231e891 100644 --- a/editor/translations/es_AR.po +++ b/editor/translations/es_AR.po @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-02-21 10:50+0000\n" +"PO-Revision-Date: 2021-02-27 00:47+0000\n" "Last-Translator: Lisandro Lorea <lisandrolorea@gmail.com>\n" "Language-Team: Spanish (Argentina) <https://hosted.weblate.org/projects/" "godot-engine/godot/es_AR/>\n" @@ -1876,8 +1876,8 @@ msgid "Open a File or Directory" msgstr "Abrir un Archivo o Directorio" #: 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/editor_properties.cpp editor/import_defaults_editor.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 "Guardar" @@ -2556,11 +2556,8 @@ msgstr "" "configuración." #: editor/editor_node.cpp -#, fuzzy msgid "Unable to find script field for addon plugin at: '%s'." -msgstr "" -"No se pudo encontrar el campo script para el plugin de addon en: 'res://" -"addons/%s'." +msgstr "No se pudo encontrar el campo script para el plugin de addon en: '%s'." #: editor/editor_node.cpp msgid "Unable to load addon script from path: '%s'." @@ -4098,6 +4095,21 @@ msgstr "¿Devolviste un objeto derivado de Node en el método `post_import()`?" msgid "Saving..." msgstr "Guardando..." +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Modo Seleccionar" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "Importar" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "Usar sRGB por Defecto" + #: editor/import_dock.cpp msgid "%d Files" msgstr "%d Archivos" @@ -5071,9 +5083,8 @@ msgid "Got:" msgstr "Recibido:" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Failed SHA-256 hash check" -msgstr "Fallo el chequeo del hash sha256" +msgstr "Fallo el chequeo del hash SHA-256" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Asset Download Error:" @@ -5176,7 +5187,6 @@ msgid "Sort:" msgstr "Ordenar:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "Categoría:" @@ -10456,6 +10466,11 @@ msgstr "AutoLoad" msgid "Plugins" msgstr "Plugins" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "Cargar Valores por Defecto" + #: editor/property_editor.cpp msgid "Preset..." msgstr "Preseteo..." @@ -10706,14 +10721,12 @@ msgid "Instance Child Scene" msgstr "Instanciar Escena Hija" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Can't paste root node into the same scene." -msgstr "No se puede operar sobre los nodos de una escena externa!" +msgstr "No se puede pegar el nodo raiz en la misma escena." #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Paste Node(s)" -msgstr "Pegar Nodos" +msgstr "Pegar Nodo(s)" #: editor/scene_tree_dock.cpp msgid "Detach Script" @@ -10844,9 +10857,8 @@ msgid "Attach Script" msgstr "Adjuntar Script" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Cut Node(s)" -msgstr "Cortar Nodos" +msgstr "Cortar Nodo(s)" #: editor/scene_tree_dock.cpp msgid "Remove Node(s)" @@ -12525,6 +12537,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "Un CollisionPolygon2D vacío no tiene efecto en la colisión." +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12845,11 +12865,6 @@ msgstr "" "Las GIProbes no están soportadas por el controlador de video GLES2.\n" "Usá un BakedLightmap en su lugar." -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "InterpolatedCamera ha sido deprecado y será eliminado en Godot 4.0." - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" @@ -13194,6 +13209,10 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice." msgid "Constants cannot be modified." msgstr "Las constantes no pueden modificarse." +#~ msgid "" +#~ "InterpolatedCamera has been deprecated and will be removed in Godot 4.0." +#~ msgstr "InterpolatedCamera ha sido deprecado y será eliminado en Godot 4.0." + #~ msgid "No" #~ msgstr "No" @@ -14862,9 +14881,6 @@ msgstr "Las constantes no pueden modificarse." #~ msgid "Use Default Light" #~ msgstr "Usar Luz por Defecto" -#~ msgid "Use Default sRGB" -#~ msgstr "Usar sRGB por Defecto" - #~ msgid "Default Light Normal:" #~ msgstr "Normales de Luces por Defecto:" diff --git a/editor/translations/et.po b/editor/translations/et.po index e6f2c1aac4..ba7272db84 100644 --- a/editor/translations/et.po +++ b/editor/translations/et.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2021-02-05 09:20+0000\n" +"PO-Revision-Date: 2021-03-07 06:04+0000\n" "Last-Translator: Kritzmensch <streef.gtx@gmail.com>\n" "Language-Team: Estonian <https://hosted.weblate.org/projects/godot-engine/" "godot/et/>\n" @@ -18,7 +18,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.5-dev\n" +"X-Generator: Weblate 4.5.1\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -697,7 +697,7 @@ msgstr "" #: editor/code_editor.cpp msgid "Replace" -msgstr "" +msgstr "Asenda" #: editor/code_editor.cpp msgid "Replace All" @@ -814,7 +814,7 @@ msgstr "" #: editor/connections_dialog.cpp msgid "Oneshot" -msgstr "" +msgstr "Ainulaadne" #: editor/connections_dialog.cpp msgid "Disconnects the signal after its first emission." @@ -840,7 +840,7 @@ msgstr "Sulge" #: editor/connections_dialog.cpp msgid "Connect" -msgstr "" +msgstr "Ühenda" #: editor/connections_dialog.cpp msgid "Signal:" @@ -860,12 +860,12 @@ msgstr "" #: editor/connections_dialog.cpp msgid "Connect..." -msgstr "" +msgstr "Ühenda..." #: editor/connections_dialog.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Disconnect" -msgstr "" +msgstr "Katkesta ühendus" #: editor/connections_dialog.cpp msgid "Connect a Signal to a Method" @@ -898,7 +898,7 @@ msgstr "" #: editor/connections_dialog.cpp msgid "Edit..." -msgstr "" +msgstr "Muuda..." #: editor/connections_dialog.cpp msgid "Go To Method" @@ -910,7 +910,7 @@ msgstr "" #: editor/create_dialog.cpp editor/project_settings_editor.cpp msgid "Change" -msgstr "" +msgstr "Muuda" #: editor/create_dialog.cpp msgid "Create New %s" @@ -968,20 +968,20 @@ msgstr "" #: editor/dependency_editor.cpp #: modules/gdnative/gdnative_library_editor_plugin.cpp msgid "Dependencies" -msgstr "" +msgstr "Sõltuvused" #: editor/dependency_editor.cpp msgid "Resource" -msgstr "" +msgstr "Ressurss" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp #: editor/project_manager.cpp editor/project_settings_editor.cpp msgid "Path" -msgstr "" +msgstr "Tee" #: editor/dependency_editor.cpp msgid "Dependencies:" -msgstr "" +msgstr "Sõltuvused:" #: editor/dependency_editor.cpp msgid "Fix Broken" @@ -1213,7 +1213,7 @@ msgstr "" #: editor/editor_asset_installer.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Success!" -msgstr "" +msgstr "Õnnestus!" #: editor/editor_asset_installer.cpp msgid "Package Contents:" @@ -1221,7 +1221,7 @@ msgstr "" #: editor/editor_asset_installer.cpp editor/editor_node.cpp msgid "Install" -msgstr "" +msgstr "Paigalda" #: editor/editor_asset_installer.cpp msgid "Package Installer" @@ -1285,7 +1285,7 @@ msgstr "Vaigista" #: editor/editor_audio_buses.cpp msgid "Bypass" -msgstr "" +msgstr "Jäta vahele" #: editor/editor_audio_buses.cpp msgid "Bus options" @@ -1306,7 +1306,7 @@ msgstr "" #: editor/editor_audio_buses.cpp msgid "Audio" -msgstr "" +msgstr "Heli" #: editor/editor_audio_buses.cpp msgid "Add Audio Bus" @@ -1830,8 +1830,8 @@ msgid "Open a File or Directory" msgstr "Ava kaust või kataloog" #: 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/editor_properties.cpp editor/import_defaults_editor.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 "Salvesta" @@ -2171,7 +2171,7 @@ msgstr "Imporditud ressursse ei saa salvestada." #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: scene/gui/dialogs.cpp msgid "OK" -msgstr "" +msgstr "Olgu" #: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp msgid "Error saving resource!" @@ -2427,7 +2427,7 @@ msgstr "Välju" #: editor/editor_node.cpp msgid "Yes" -msgstr "" +msgstr "Jah" #: editor/editor_node.cpp msgid "Exit the editor?" @@ -3048,7 +3048,7 @@ msgstr "Laadimisvead" #: editor/editor_node.cpp editor/plugins/tile_map_editor_plugin.cpp msgid "Select" -msgstr "" +msgstr "Vali" #: editor/editor_node.cpp msgid "Open 2D Editor" @@ -3088,7 +3088,7 @@ msgstr "" #: editor/editor_plugin.cpp msgid "Thumbnail..." -msgstr "" +msgstr "Pisipilt..." #: editor/editor_plugin_settings.cpp msgid "Main Script:" @@ -3145,7 +3145,7 @@ msgstr "" #: editor/editor_profiler.cpp msgid "Inclusive" -msgstr "" +msgstr "Kaasav" #: editor/editor_profiler.cpp msgid "Self" @@ -3169,11 +3169,11 @@ msgstr "" #: editor/editor_properties.cpp editor/script_create_dialog.cpp msgid "On" -msgstr "" +msgstr "Sees" #: editor/editor_properties.cpp msgid "Layer" -msgstr "" +msgstr "Kiht" #: editor/editor_properties.cpp msgid "Bit %d, value %d" @@ -3181,11 +3181,11 @@ msgstr "" #: editor/editor_properties.cpp msgid "[Empty]" -msgstr "" +msgstr "[Tühi]" #: editor/editor_properties.cpp editor/plugins/root_motion_editor_plugin.cpp msgid "Assign..." -msgstr "" +msgstr "Määra..." #: editor/editor_properties.cpp msgid "Invalid RID" @@ -3243,7 +3243,7 @@ msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp editor/property_editor.cpp #: editor/scene_tree_dock.cpp scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" -msgstr "" +msgstr "Kleebi" #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Convert To %s" @@ -3255,7 +3255,7 @@ msgstr "" #: editor/editor_properties_array_dict.cpp msgid "Size: " -msgstr "" +msgstr "Suurus: " #: editor/editor_properties_array_dict.cpp msgid "Page: " @@ -3339,7 +3339,7 @@ msgstr "" #: editor/export_template_manager.cpp msgid "(Installed)" -msgstr "" +msgstr "(Paigaldatud)" #: editor/export_template_manager.cpp #: editor/plugins/asset_library_editor_plugin.cpp @@ -3352,11 +3352,11 @@ msgstr "" #: editor/export_template_manager.cpp msgid "(Missing)" -msgstr "" +msgstr "(Puudub)" #: editor/export_template_manager.cpp msgid "(Current)" -msgstr "" +msgstr "(Praegune)" #: editor/export_template_manager.cpp msgid "Retrieving mirrors, please wait..." @@ -3477,7 +3477,7 @@ msgstr "" #: editor/export_template_manager.cpp msgid "Connected" -msgstr "" +msgstr "Ühendatud" #: editor/export_template_manager.cpp #: editor/plugins/asset_library_editor_plugin.cpp @@ -3538,7 +3538,7 @@ msgstr "" #: editor/filesystem_dock.cpp msgid "Favorites" -msgstr "" +msgstr "Lemmikud" #: editor/filesystem_dock.cpp msgid "Status: Import of file failed. Please fix file and reimport manually." @@ -3922,6 +3922,21 @@ msgstr "" msgid "Saving..." msgstr "" +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Valimisrežiim" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "Impordi" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "Laadi vaikimisi" + #: editor/import_dock.cpp msgid "%d Files" msgstr "" @@ -4973,7 +4988,6 @@ msgid "Sort:" msgstr "Sordi:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "Kategooria:" @@ -10010,6 +10024,11 @@ msgstr "" msgid "Plugins" msgstr "Pistikprogrammid" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "Laadi vaikimisi" + #: editor/property_editor.cpp msgid "Preset..." msgstr "" @@ -11345,7 +11364,7 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp msgid "Signals:" -msgstr "" +msgstr "Signaalid:" #: modules/visual_script/visual_script_editor.cpp msgid "Create a new signal." @@ -11963,6 +11982,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12219,11 +12246,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" @@ -12421,7 +12443,7 @@ msgstr "" #: scene/gui/dialogs.cpp msgid "Alert!" -msgstr "" +msgstr "Tähelepanu!" #: scene/gui/dialogs.cpp msgid "Please Confirm..." @@ -12455,7 +12477,7 @@ msgstr "" #: scene/gui/tree.cpp msgid "(Other)" -msgstr "" +msgstr "(Muu)" #: scene/main/scene_tree.cpp msgid "" diff --git a/editor/translations/eu.po b/editor/translations/eu.po index ef200e15d6..95e87167e5 100644 --- a/editor/translations/eu.po +++ b/editor/translations/eu.po @@ -1804,8 +1804,8 @@ msgid "Open a File or Directory" msgstr "Ireki fitxategia edo direktorioa" #: 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/editor_properties.cpp editor/import_defaults_editor.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 "Gorde" @@ -3886,6 +3886,20 @@ msgstr "" msgid "Saving..." msgstr "" +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Hautatu inportatu nahi dituzun nodoak" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "Inportatu azala" + +#: editor/import_defaults_editor.cpp +msgid "Reset to Defaults" +msgstr "" + #: editor/import_dock.cpp msgid "%d Files" msgstr "%d fitxategi" @@ -4939,7 +4953,6 @@ msgid "Sort:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "" @@ -9977,6 +9990,11 @@ msgstr "" msgid "Plugins" msgstr "" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "Inportatu profila(k)" + #: editor/property_editor.cpp msgid "Preset..." msgstr "" @@ -11930,6 +11948,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12185,11 +12211,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/fa.po b/editor/translations/fa.po index 29d3139e9c..910212f856 100644 --- a/editor/translations/fa.po +++ b/editor/translations/fa.po @@ -1846,8 +1846,8 @@ 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/editor_properties.cpp editor/import_defaults_editor.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 "ذخیره" @@ -4001,6 +4001,21 @@ msgstr "" msgid "Saving..." msgstr "" +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "انتخاب حالت" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "وارد کردن" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "بارگیری پیش فرض" + #: editor/import_dock.cpp #, fuzzy msgid "%d Files" @@ -5125,7 +5140,6 @@ msgid "Sort:" msgstr "مرتبسازی:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "طبقهبندی:" @@ -10454,6 +10468,11 @@ msgstr "AutoLoad" msgid "Plugins" msgstr "افزونهها" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "بارگیری پیش فرض" + #: editor/property_editor.cpp msgid "Preset..." msgstr "" @@ -12569,6 +12588,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "یک CollisionPolygon2D خالی جلوه بر برخورد ندارد." +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12859,11 +12886,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/fi.po b/editor/translations/fi.po index 16daaed9b0..36e6c631be 100644 --- a/editor/translations/fi.po +++ b/editor/translations/fi.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-02-21 10:51+0000\n" +"PO-Revision-Date: 2021-02-27 00:47+0000\n" "Last-Translator: Tapani Niemi <tapani.niemi@kapsi.fi>\n" "Language-Team: Finnish <https://hosted.weblate.org/projects/godot-engine/" "godot/fi/>\n" @@ -1857,8 +1857,8 @@ msgid "Open a File or Directory" msgstr "Avaa tiedosto tai hakemisto" #: 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/editor_properties.cpp editor/import_defaults_editor.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 "Tallenna" @@ -2530,9 +2530,8 @@ msgid "Unable to enable addon plugin at: '%s' parsing of config failed." msgstr "Lisäosan '%s' aktivointi epäonnistui, virheellinen asetustiedosto." #: editor/editor_node.cpp -#, fuzzy msgid "Unable to find script field for addon plugin at: '%s'." -msgstr "Skriptikenttää ei löytynyt lisäosan tiedostosta: 'res://addons/%s'." +msgstr "Skriptikenttää ei löytynyt lisäosan tiedostosta: '%s'." #: editor/editor_node.cpp msgid "Unable to load addon script from path: '%s'." @@ -4056,6 +4055,21 @@ msgstr "" msgid "Saving..." msgstr "Tallennetaan..." +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Valintatila" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "Tuonti" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "Lataa oletus" + #: editor/import_dock.cpp msgid "%d Files" msgstr "%d tiedostoa" @@ -5025,9 +5039,8 @@ msgid "Got:" msgstr "Saatiin:" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Failed SHA-256 hash check" -msgstr "sha256-hajautusarvon tarkistus epäonnistui" +msgstr "SHA-256 hajautusarvon tarkistus epäonnistui" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Asset Download Error:" @@ -5130,7 +5143,6 @@ msgid "Sort:" msgstr "Lajittele:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "Kategoria:" @@ -10396,6 +10408,11 @@ msgstr "Automaattilataus" msgid "Plugins" msgstr "Liitännäiset" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "Lataa oletus" + #: editor/property_editor.cpp msgid "Preset..." msgstr "Esiasetus..." @@ -10645,14 +10662,12 @@ msgid "Instance Child Scene" msgstr "Luo aliskenen ilmentymä" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Can't paste root node into the same scene." -msgstr "Ei voida suorittaa ulkopuolisen skenen solmuille!" +msgstr "Juurisolmua ei voida liittää samaan skeneen." #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Paste Node(s)" -msgstr "Liitä solmut" +msgstr "Liitä solmu(t)" #: editor/scene_tree_dock.cpp msgid "Detach Script" @@ -10784,9 +10799,8 @@ msgid "Attach Script" msgstr "Liitä skripti" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Cut Node(s)" -msgstr "Leikkaa solmut" +msgstr "Leikkaa solmu(t)" #: editor/scene_tree_dock.cpp msgid "Remove Node(s)" @@ -12449,6 +12463,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "Tyhjällä CollisionPolygon2D solmulla ei ole vaikutusta törmäyksessä." +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12767,11 +12789,6 @@ msgstr "" "GIProbe ei ole tuettu GLES2 näyttöajurissa.\n" "Käytä sen sijaan BakedLightmap resurssia." -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "InterpolatedCamera on vanhentunut ja poistetaan Godot 4.0 versiossa." - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" @@ -13115,6 +13132,11 @@ msgstr "Varying tyypin voi sijoittaa vain vertex-funktiossa." msgid "Constants cannot be modified." msgstr "Vakioita ei voi muokata." +#~ msgid "" +#~ "InterpolatedCamera has been deprecated and will be removed in Godot 4.0." +#~ msgstr "" +#~ "InterpolatedCamera on vanhentunut ja poistetaan Godot 4.0 versiossa." + #~ msgid "No" #~ msgstr "Ei" diff --git a/editor/translations/fil.po b/editor/translations/fil.po index dc84dd744f..e9c24cf0f2 100644 --- a/editor/translations/fil.po +++ b/editor/translations/fil.po @@ -1804,8 +1804,8 @@ 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/editor_properties.cpp editor/import_defaults_editor.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 "" @@ -3884,6 +3884,18 @@ msgstr "" msgid "Saving..." msgstr "" +#: editor/import_defaults_editor.cpp +msgid "Select Importer" +msgstr "" + +#: editor/import_defaults_editor.cpp +msgid "Importer:" +msgstr "" + +#: editor/import_defaults_editor.cpp +msgid "Reset to Defaults" +msgstr "" + #: editor/import_dock.cpp msgid "%d Files" msgstr "" @@ -4936,7 +4948,6 @@ msgid "Sort:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "" @@ -9972,6 +9983,10 @@ msgstr "" msgid "Plugins" msgstr "" +#: editor/project_settings_editor.cpp +msgid "Import Defaults" +msgstr "" + #: editor/property_editor.cpp msgid "Preset..." msgstr "" @@ -11928,6 +11943,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12183,11 +12206,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/fr.po b/editor/translations/fr.po index 44002bf560..7b9d411e6d 100644 --- a/editor/translations/fr.po +++ b/editor/translations/fr.po @@ -1938,8 +1938,8 @@ msgid "Open a File or Directory" msgstr "Ouvrir un fichier ou un répertoire" #: 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/editor_properties.cpp editor/import_defaults_editor.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 "Enregistrer" @@ -2624,8 +2624,7 @@ msgstr "" #: editor/editor_node.cpp msgid "Unable to find script field for addon plugin at: '%s'." -msgstr "" -"Impossible de trouver le champ de script pour le plugin dans : « %s »." +msgstr "Impossible de trouver le champ de script pour le plugin dans : « %s »." #: editor/editor_node.cpp msgid "Unable to load addon script from path: '%s'." @@ -4168,17 +4167,29 @@ msgstr "" msgid "Saving..." msgstr "Enregistrement…" +#: editor/import_defaults_editor.cpp +msgid "Select Importer" +msgstr "Sélectionnez un importeur" + +#: editor/import_defaults_editor.cpp +msgid "Importer:" +msgstr "Importeur :" + +#: editor/import_defaults_editor.cpp +msgid "Reset to Defaults" +msgstr "Réinitialiser" + #: editor/import_dock.cpp msgid "%d Files" msgstr "%d fichiers" #: editor/import_dock.cpp msgid "Set as Default for '%s'" -msgstr "Définir comme défaut pour « %s »" +msgstr "Définir comme préréglage pour « %s »" #: editor/import_dock.cpp msgid "Clear Default for '%s'" -msgstr "Effacer le préréglage par défaut pour « %s »" +msgstr "Effacer le préréglage pour « %s »" #: editor/import_dock.cpp msgid "Import As:" @@ -4186,7 +4197,7 @@ msgstr "Importer comme :" #: editor/import_dock.cpp msgid "Preset" -msgstr "Pré-réglage" +msgstr "Préréglage" #: editor/import_dock.cpp msgid "Reimport" @@ -5247,7 +5258,6 @@ msgid "Sort:" msgstr "Trier :" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "Catégorie :" @@ -6030,7 +6040,7 @@ msgstr "Modifier la tangente de courbes" #: editor/plugins/curve_editor_plugin.cpp msgid "Load Curve Preset" -msgstr "Charger un pré-réglage de courbe" +msgstr "Charger un préréglage de courbe" #: editor/plugins/curve_editor_plugin.cpp msgid "Add Point" @@ -9700,7 +9710,7 @@ msgstr "Exécutable" #: editor/project_export.cpp msgid "Delete preset '%s'?" -msgstr "Supprimer le pré-réglage « %s » ?" +msgstr "Supprimer le préréglage « %s » ?" #: editor/project_export.cpp msgid "" @@ -9738,7 +9748,7 @@ msgstr "Modèles d'exportation manquants ou corrompus pour cette plateforme :" #: editor/project_export.cpp msgid "Presets" -msgstr "Pré-réglages" +msgstr "Préréglages" #: editor/project_export.cpp editor/project_settings_editor.cpp msgid "Add..." @@ -9749,9 +9759,9 @@ msgid "" "If checked, the preset will be available for use in one-click deploy.\n" "Only one preset per platform may be marked as runnable." msgstr "" -"Si cette option est activée, le pré-réglage sera disponible pour le " +"Si cette option est activée, le préréglage sera disponible pour le " "déploiement en un clic.\n" -"Un seul pré-réglage par plateforme peut être marqué comme exécutable." +"Un seul préréglage par plateforme peut être marqué comme exécutable." #: editor/project_export.cpp msgid "Export Path" @@ -10551,9 +10561,13 @@ msgstr "AutoLoad" msgid "Plugins" msgstr "Extensions" +#: editor/project_settings_editor.cpp +msgid "Import Defaults" +msgstr "Préréglage des importeurs" + #: editor/property_editor.cpp msgid "Preset..." -msgstr "Pré-réglage…" +msgstr "Préréglage…" #: editor/property_editor.cpp msgid "Zero" @@ -12631,6 +12645,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "Un CollisionPolygon2D vide n'a pas d'effet sur les collisions." +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12955,11 +12977,6 @@ msgstr "" "Les GIProps ne sont pas supporter par le pilote de vidéos GLES2.\n" "A la place utilisez une BakedLightMap." -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "InterpolatedCamera a été déprécié et sera supprimé dans Godot 4.0." - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" @@ -13163,7 +13180,7 @@ msgid "" msgstr "" "Couleur : #%s\n" "Clic gauche : Définir la couleur\n" -"Clic droit : Supprimer le pré-réglage" +"Clic droit : Supprimer le préréglage" #: scene/gui/color_picker.cpp msgid "Pick a color from the editor window." @@ -13183,7 +13200,7 @@ msgstr "Alterner entre les valeurs hexadécimales ou brutes." #: scene/gui/color_picker.cpp msgid "Add current color as a preset." -msgstr "Ajouter la couleur courante comme pré-réglage." +msgstr "Ajouter la couleur courante comme préréglage." #: scene/gui/container.cpp msgid "" @@ -13313,6 +13330,10 @@ msgstr "Les variations ne peuvent être affectées que dans la fonction vertex." msgid "Constants cannot be modified." msgstr "Les constantes ne peuvent être modifiées." +#~ msgid "" +#~ "InterpolatedCamera has been deprecated and will be removed in Godot 4.0." +#~ msgstr "InterpolatedCamera a été déprécié et sera supprimé dans Godot 4.0." + #~ msgid "No" #~ msgstr "Non" diff --git a/editor/translations/ga.po b/editor/translations/ga.po index 6bddf1e53c..4e537d9882 100644 --- a/editor/translations/ga.po +++ b/editor/translations/ga.po @@ -1798,8 +1798,8 @@ 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/editor_properties.cpp editor/import_defaults_editor.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 "" @@ -3879,6 +3879,18 @@ msgstr "" msgid "Saving..." msgstr "" +#: editor/import_defaults_editor.cpp +msgid "Select Importer" +msgstr "" + +#: editor/import_defaults_editor.cpp +msgid "Importer:" +msgstr "" + +#: editor/import_defaults_editor.cpp +msgid "Reset to Defaults" +msgstr "" + #: editor/import_dock.cpp #, fuzzy msgid "%d Files" @@ -4933,7 +4945,6 @@ msgid "Sort:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "" @@ -9967,6 +9978,10 @@ msgstr "" msgid "Plugins" msgstr "" +#: editor/project_settings_editor.cpp +msgid "Import Defaults" +msgstr "" + #: editor/property_editor.cpp msgid "Preset..." msgstr "" @@ -11923,6 +11938,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12178,11 +12201,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/gl.po b/editor/translations/gl.po index 323fc16ec4..5559444f0c 100644 --- a/editor/translations/gl.po +++ b/editor/translations/gl.po @@ -1852,8 +1852,8 @@ msgid "Open a File or Directory" msgstr "Abrir un Arquivo ou Directorio" #: 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/editor_properties.cpp editor/import_defaults_editor.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 "Gardar" @@ -4044,6 +4044,21 @@ msgstr "" msgid "Saving..." msgstr "Gardando..." +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Elixir Modo" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "Importación" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "Cargar Valores por Defecto" + #: editor/import_dock.cpp msgid "%d Files" msgstr "%d Arquivos" @@ -5101,7 +5116,6 @@ msgid "Sort:" msgstr "Ordenar:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "Categoría:" @@ -10264,6 +10278,11 @@ msgstr "AutoCargador" msgid "Plugins" msgstr "Características Adicionais (Plugins)" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "Cargar Valores por Defecto" + #: editor/property_editor.cpp msgid "Preset..." msgstr "" @@ -12236,6 +12255,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12521,11 +12548,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/he.po b/editor/translations/he.po index 7b3e8815ec..ab97d97c0a 100644 --- a/editor/translations/he.po +++ b/editor/translations/he.po @@ -1871,8 +1871,8 @@ 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/editor_properties.cpp editor/import_defaults_editor.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 "שמירה" @@ -4055,6 +4055,21 @@ msgstr "" msgid "Saving..." msgstr "שמירה…" +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "נא לבחור מפרקים לייצוא" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "ייבוא" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "טעינת בררת המחדל" + #: editor/import_dock.cpp msgid "%d Files" msgstr "%d קבצים" @@ -5143,7 +5158,6 @@ msgid "Sort:" msgstr "מיון:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "קטגוריה:" @@ -10439,6 +10453,11 @@ msgstr "" msgid "Plugins" msgstr "" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "טעינת בררת המחדל" + #: editor/property_editor.cpp msgid "Preset..." msgstr "ערכה מוגדרת…" @@ -12470,6 +12489,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "ל־CollisionPolygon2D ריק אין השפעה על התנגשות." +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12767,11 +12794,6 @@ msgstr "" "מנהל הווידאו GLES2 אינו תומך ב- GIProbes.\n" "השתמש ב-BakedLightmap במקום." -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "SpotLight עם זווית רחבה מ-90 מעלות אינו יכול להטיל צללים." diff --git a/editor/translations/hi.po b/editor/translations/hi.po index a4d46d6147..034451542b 100644 --- a/editor/translations/hi.po +++ b/editor/translations/hi.po @@ -1852,8 +1852,8 @@ 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/editor_properties.cpp editor/import_defaults_editor.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 "सेव कीजिये" @@ -4035,6 +4035,21 @@ msgstr "" msgid "Saving..." msgstr "" +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "आयात करने के लिए नोड (एस) का चयन करें" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "इंपोर्ट" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "प्रायिक लोड कीजिये" + #: editor/import_dock.cpp msgid "%d Files" msgstr "" @@ -5086,7 +5101,6 @@ msgid "Sort:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "" @@ -10214,6 +10228,11 @@ msgstr "" msgid "Plugins" msgstr "प्लगइन्स" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "प्रायिक लोड कीजिये" + #: editor/property_editor.cpp msgid "Preset..." msgstr "" @@ -12217,6 +12236,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12474,11 +12501,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/hr.po b/editor/translations/hr.po index 4803018028..047363db63 100644 --- a/editor/translations/hr.po +++ b/editor/translations/hr.po @@ -1812,8 +1812,8 @@ msgid "Open a File or Directory" msgstr "Otvori datoteku ili direktorij" #: 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/editor_properties.cpp editor/import_defaults_editor.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 "Spremi" @@ -3893,6 +3893,21 @@ msgstr "" msgid "Saving..." msgstr "" +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Odaberi Sve/Ništa" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "Uvoz" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "Učitaj Zadano" + #: editor/import_dock.cpp msgid "%d Files" msgstr "%d Fajlovi" @@ -4944,7 +4959,6 @@ msgid "Sort:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "" @@ -9985,6 +9999,11 @@ msgstr "" msgid "Plugins" msgstr "" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "Učitaj Zadano" + #: editor/property_editor.cpp msgid "Preset..." msgstr "" @@ -11944,6 +11963,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12199,11 +12226,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/hu.po b/editor/translations/hu.po index db3403fdf1..3966959f91 100644 --- a/editor/translations/hu.po +++ b/editor/translations/hu.po @@ -1855,8 +1855,8 @@ msgid "Open a File or Directory" msgstr "Fájl vagy Könyvtár Megnyitása" #: 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/editor_properties.cpp editor/import_defaults_editor.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 "Mentés" @@ -4047,6 +4047,21 @@ msgstr "" msgid "Saving..." msgstr "Mentés..." +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Kiválasztó Mód" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "Importálás" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "Alapértelmezett Betöltése" + #: editor/import_dock.cpp msgid "%d Files" msgstr "%d fájl" @@ -5110,7 +5125,6 @@ msgid "Sort:" msgstr "Rendezés:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "Kategória:" @@ -10215,6 +10229,11 @@ msgstr "" msgid "Plugins" msgstr "Bővítmények" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "Alapértelmezett Betöltése" + #: editor/property_editor.cpp msgid "Preset..." msgstr "Beépített Beállítások..." @@ -12187,6 +12206,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12447,11 +12474,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/id.po b/editor/translations/id.po index 91e4392ab4..5dc5b9751a 100644 --- a/editor/translations/id.po +++ b/editor/translations/id.po @@ -28,12 +28,13 @@ # Richard Urban <redasuio1@gmail.com>, 2020. # yusuf afandi <afandi.yusuf.04@gmail.com>, 2020. # Habib Rohman <revolusi147id@gmail.com>, 2020. +# Hanz <hanzhaxors@gmail.com>, 2021. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-11-13 22:59+0000\n" -"Last-Translator: Habib Rohman <revolusi147id@gmail.com>\n" +"PO-Revision-Date: 2021-03-08 15:33+0000\n" +"Last-Translator: Hanz <hanzhaxors@gmail.com>\n" "Language-Team: Indonesian <https://hosted.weblate.org/projects/godot-engine/" "godot/id/>\n" "Language: id\n" @@ -41,7 +42,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.4-dev\n" +"X-Generator: Weblate 4.5.1\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -57,7 +58,8 @@ msgstr "String dengan panjang 1 (karakter) yang diharapkan." #: 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 "Tidak cukup bytes untuk mendekode bytes, atau format tidak valid." +msgstr "" +"Tidak cukup bytes untuk merubah bytes ke nilai asal, atau format tidak valid." #: core/math/expression.cpp msgid "Invalid input %i (not passed) in expression" @@ -65,8 +67,7 @@ msgstr "Masukkan tidak sah %i (tidak diberikan) dalam ekspresi" #: core/math/expression.cpp msgid "self can't be used because instance is null (not passed)" -msgstr "" -"self tidak dapat digunakan karena tidak memiliki instance (tidak lolos)" +msgstr "self tidak dapat digunakan karena instance adalah null" #: core/math/expression.cpp msgid "Invalid operands to operator %s, %s and %s." @@ -74,7 +75,7 @@ msgstr "operan salah untuk operator %s, %s dan %s." #: core/math/expression.cpp msgid "Invalid index of type %s for base type %s" -msgstr "Tipe index %s tidak valid untuk tipe dasar %s" +msgstr "Tipe indeks %s tidak valid untuk tipe dasar %s" #: core/math/expression.cpp msgid "Invalid named index '%s' for base type %s" @@ -1052,14 +1053,14 @@ msgid "Owners Of:" msgstr "Pemilik Dari:" #: editor/dependency_editor.cpp -#, fuzzy msgid "" "Remove selected files from the project? (no undo)\n" "You can find the removed files in the system trash to restore them." -msgstr "Hapus berkas yang dipilih dari proyek? (tidak bisa dibatalkan)" +msgstr "" +"Hapus berkas yang dipilih dari proyek? (tidak bisa dibatalkan)\n" +"Anda bisa menemukan berkas yang telah dihapus di tong sampah." #: editor/dependency_editor.cpp -#, fuzzy msgid "" "The files being removed are required by other resources in order for them to " "work.\n" @@ -1068,7 +1069,8 @@ msgid "" msgstr "" "File-file yang telah dihapus diperlukan oleh resource lain agar mereka dapat " "bekerja.\n" -"Hapus saja? (tidak bisa dibatalkan/undo)" +"Hapus saja? (tidak bisa dibatalkan)\n" +"Anda bisa menemukan berkas yang telah dihapus di tong sampah." #: editor/dependency_editor.cpp msgid "Cannot remove:" @@ -1621,34 +1623,31 @@ msgstr "" "Enabled'." #: editor/editor_export.cpp -#, fuzzy msgid "" "Target platform requires 'PVRTC' texture compression for GLES2. Enable " "'Import Pvrtc' in Project Settings." msgstr "" -"Platform target membutuhkan kompresi tekstur 'ETC' untuk GLES2. Aktifkan " -"'Impor Lainnya' di Pengaturan Proyek." +"Platform target membutuhkan kompresi tekstur 'PVRTC' untuk GLES2. Aktifkan " +"'Impor Pvrtc' di Pengaturan Proyek." #: editor/editor_export.cpp -#, fuzzy msgid "" "Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. " "Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings." msgstr "" -"Platform target membutuhkan kompresi tekstur 'ETC2' untuk GLES3. Aktifkan " -"'Impor Lainnya 2' di Pengaturan Proyek." +"Platform target membutuhkan kompresi tekstur 'ETC2' atau 'PVRTC' untuk " +"GLES3. Aktifkan 'Impor Lainnya 2' atau 'Import Pvrtc' di Pengaturan Proyek." #: editor/editor_export.cpp -#, fuzzy msgid "" "Target platform requires 'PVRTC' texture compression for the driver fallback " "to GLES2.\n" "Enable 'Import Pvrtc' in Project Settings, or disable 'Driver Fallback " "Enabled'." msgstr "" -"Platform target membutuhkan kompressi tekstur 'ETC' untuk mengembalikan " +"Platform target membutuhkan kompressi tekstur 'PVRTC' untuk mengembalikan " "driver ke GLES2. \n" -"Aktifkan 'Impor Lainnya' di Pengaturan Proyek, atau matikan 'Driver Fallback " +"Aktifkan 'Impor Pvrtc' di Pengaturan Proyek, atau matikan 'Driver Fallback " "Enabled'." #: editor/editor_export.cpp platform/android/export/export.cpp @@ -1877,8 +1876,8 @@ msgid "Open a File or Directory" msgstr "Buka sebuah File atau Direktori" #: 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/editor_properties.cpp editor/import_defaults_editor.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 "Simpan" @@ -2330,6 +2329,8 @@ msgid "" "An error occurred while trying to save the editor layout.\n" "Make sure the editor's user data path is writable." msgstr "" +"Terjadi kesalahan ketika mencoba menyimpan layout editor.\n" +"Pastikan jalur data pengguna editor dapat ditulis." #: editor/editor_node.cpp msgid "" @@ -2337,13 +2338,15 @@ msgid "" "To restore the Default layout to its base settings, use the Delete Layout " "option and delete the Default layout." msgstr "" +"Penataan editor default telah dirubah.\n" +"Untuk mengembalikan penataan editor default ke asalnya, gunakan opsi Hapus " +"Penataan dan hapus Penataan Default." #: editor/editor_node.cpp msgid "Layout name not found!" msgstr "Nama layout tidak ditemukan!" #: editor/editor_node.cpp -#, fuzzy msgid "Restored the Default layout to its base settings." msgstr "Mengembalikan semula layout default ke pengaturan-pengaturan awal." @@ -2402,7 +2405,7 @@ msgstr "Tidak ada skena yang didefinisikan untuk dijalankan." #: editor/editor_node.cpp msgid "Save scene before running..." -msgstr "" +msgstr "Simpan skena sebelum menjalankan..." #: editor/editor_node.cpp msgid "Could not start subprocess!" @@ -2481,7 +2484,6 @@ msgid "Reload Saved Scene" msgstr "Muat ulang scene yang sudah disimpan" #: editor/editor_node.cpp -#, fuzzy msgid "" "The current scene has unsaved changes.\n" "Reload the saved scene anyway? This action cannot be undone." @@ -2548,10 +2550,9 @@ msgstr "" "gagal." #: editor/editor_node.cpp -#, fuzzy msgid "Unable to find script field for addon plugin at: '%s'." msgstr "" -"Tidak dapat mencari bidang script untuk addon plugin pada: 'res://addons/%s'." +"Tidak dapat mencari bidang skrip untuk addon plugin pada: 'res://addons/%s'." #: editor/editor_node.cpp msgid "Unable to load addon script from path: '%s'." @@ -2855,12 +2856,10 @@ msgstr "" "lokal." #: editor/editor_node.cpp -#, fuzzy msgid "Small Deploy with Network Filesystem" -msgstr "Deploy Kecil dengan Jaringan FS" +msgstr "Deploy Kecil dengan Jaringan Berkas" #: editor/editor_node.cpp -#, fuzzy msgid "" "When this option is enabled, using one-click deploy for Android will only " "export an executable without the project data.\n" @@ -2869,9 +2868,9 @@ msgid "" "On Android, deploying will use the USB cable for faster performance. This " "option speeds up testing for projects with large assets." msgstr "" -"Ketika opsi ini aktif, ekspor atau deploy akan menghasilkan minimal " -"executable.\n" -"Berkas sistem akan tersedia dari proyek dari editor melalui jaringan.\n" +"Ketika opsi ini aktif, menggunakan 'one-click deploy' hanya akan mengekspor " +"executable tanpa data proyek.\n" +"Berkas sistem akan tersedia dari proyek oleh editor melalui jaringan.\n" "Pada Android, deploy akan menggunakan kabel USB untuk performa yang lebih " "cepat. Opsi ini mempercepat pengujian dengan jejak kaki yang besar." @@ -2880,34 +2879,29 @@ msgid "Visible Collision Shapes" msgstr "Collision Shapes Terlihat" #: editor/editor_node.cpp -#, fuzzy msgid "" "When this option is enabled, collision shapes and raycast nodes (for 2D and " "3D) will be visible in the running project." msgstr "" "Collision shapes dan raycast nodes (untuk 2D dan 3D) akan terlihat pada saat " -"permainan berjalan jika opsi ini aktif." +"proyek berjalan jika opsi ini aktif." #: editor/editor_node.cpp msgid "Visible Navigation" msgstr "Navigasi Terlihat" #: editor/editor_node.cpp -#, fuzzy msgid "" "When this option is enabled, navigation meshes and polygons will be visible " "in the running project." msgstr "" -"Navigasi meshes dan poligon akan terlihat saat game berjalan jika opsi ini " -"aktif." +"Navigasi dan poligon akan terlihat saat game berjalan jika opsi ini aktif." #: editor/editor_node.cpp -#, fuzzy msgid "Synchronize Scene Changes" msgstr "Sinkronkan Perubahan Skena" #: editor/editor_node.cpp -#, fuzzy msgid "" "When this option is enabled, any changes made to the scene in the editor " "will be replicated in the running project.\n" @@ -2915,17 +2909,15 @@ msgid "" "filesystem option is enabled." msgstr "" "Ketika opsi ini aktif, perubahan yang dibuat pada skena melalui editor akan " -"direplika pada gim yang sedang berjalan.\n" +"direplika pada proyek yang sedang berjalan.\n" "Ketika penggunaan remote pada sebuah perangkat, akan lebih efisien dengan " -"berkas sistem jaringan." +"opsi berkas sistem jaringan." #: editor/editor_node.cpp -#, fuzzy msgid "Synchronize Script Changes" -msgstr "Sinkronkan Perubahan Script" +msgstr "Sinkronkan Perubahan skrip" #: editor/editor_node.cpp -#, fuzzy msgid "" "When this option is enabled, any script that is saved will be reloaded in " "the running project.\n" @@ -2934,8 +2926,8 @@ msgid "" msgstr "" "Ketika opsi ini aktif, perubahan script yang tersimpan akan di muat kembali " "pada permainan yang sedang berjalan.\n" -"Ketika penggunaan remote pada sebuah perngakat, akan lebih efisien jika " -"jaringan filesystem." +"Ketika penggunaan remote pada sebuah perangakat, akan lebih efisien dengan " +"opsi jaringan berkas-berkas." #: editor/editor_node.cpp editor/script_create_dialog.cpp msgid "Editor" @@ -3154,13 +3146,12 @@ msgid "Open & Run a Script" msgstr "Buka & Jalankan Skrip" #: editor/editor_node.cpp -#, fuzzy msgid "" "The following files are newer on disk.\n" "What action should be taken?" msgstr "" -"Berkas berikut lebih baru dalam diska.\n" -"Aksi apa yang ingin diambil?:" +"Berkas berikut lebih baru dalam disk.\n" +"Aksi apa yang ingin diambil?" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/shader_editor_plugin.cpp @@ -3422,7 +3413,6 @@ msgid "Add Key/Value Pair" msgstr "Tambahkan pasangan Key/Value" #: editor/editor_run_native.cpp -#, fuzzy msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the Export menu or define an existing preset " @@ -3456,11 +3446,10 @@ msgid "Did you forget the '_run' method?" msgstr "Apakah anda lupa dengan fungsi '_run' ?" #: editor/editor_spin_slider.cpp -#, fuzzy msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes." msgstr "" -"Tahan Ctrl untuk meletakkan Getter. Tahan Shift untuk meletakkan generic " -"signature." +"Tahan Ctrl untuk membulatkan bilangan. Tahan Shift untuk meletakkan bilangan " +"yang lebih presisi." #: editor/editor_sub_scene.cpp msgid "Select Node(s) to Import" @@ -3744,6 +3733,11 @@ msgid "" "\n" "Do you wish to overwrite them?" msgstr "" +"file dan/atau berkas-berkas berikut mempunyai konflik di '%s':\n" +"\n" +"%s\n" +"\n" +"Apakah Anda ingin melanjutkan (overwrite)?" #: editor/filesystem_dock.cpp msgid "Renaming file:" @@ -3775,7 +3769,7 @@ msgstr "Buka Skena" #: editor/filesystem_dock.cpp msgid "Instance" -msgstr "Instansi" +msgstr "hal" #: editor/filesystem_dock.cpp msgid "Add to Favorites" @@ -3824,9 +3818,8 @@ msgid "Duplicate..." msgstr "Gandakan..." #: editor/filesystem_dock.cpp -#, fuzzy msgid "Move to Trash" -msgstr "Pindahkan Autoload" +msgstr "Pindahkan ke tong sampah" #: editor/filesystem_dock.cpp editor/plugins/animation_player_editor_plugin.cpp msgid "Rename..." @@ -3937,12 +3930,10 @@ msgid "Searching..." msgstr "Mencari..." #: editor/find_in_files.cpp -#, fuzzy msgid "%d match in %d file." msgstr "Ditemukan %d kecocokan." #: editor/find_in_files.cpp -#, fuzzy msgid "%d matches in %d file." msgstr "Ditemukan %d kecocokan." @@ -4085,6 +4076,21 @@ msgstr "" msgid "Saving..." msgstr "Menyimpan..." +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Mode Seleksi" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "Impor" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "Muat Default" + #: editor/import_dock.cpp msgid "%d Files" msgstr "%d Berkas" @@ -5153,7 +5159,6 @@ msgid "Sort:" msgstr "Sortir:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "Kategori:" @@ -10444,6 +10449,11 @@ msgstr "Muat Otomatis" msgid "Plugins" msgstr "Pengaya" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "Muat Default" + #: editor/property_editor.cpp msgid "Preset..." msgstr "Prasetel..." @@ -12504,6 +12514,14 @@ msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "" "Sebuah CollisionPolygon2D yang kosong tidak memiliki efek pada collision." +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12824,11 +12842,6 @@ msgstr "" "GIProbes tidak didukung oleh driver video GLES2.\n" "Gunakan BakedLightmap sebagai gantinya." -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/is.po b/editor/translations/is.po index 6de37d39fb..8d36556c04 100644 --- a/editor/translations/is.po +++ b/editor/translations/is.po @@ -1835,8 +1835,8 @@ 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/editor_properties.cpp editor/import_defaults_editor.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 "" @@ -3923,6 +3923,19 @@ msgstr "" msgid "Saving..." msgstr "" +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Afrita val" + +#: editor/import_defaults_editor.cpp +msgid "Importer:" +msgstr "" + +#: editor/import_defaults_editor.cpp +msgid "Reset to Defaults" +msgstr "" + #: editor/import_dock.cpp msgid "%d Files" msgstr "" @@ -4988,7 +5001,6 @@ msgid "Sort:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "" @@ -10079,6 +10091,10 @@ msgstr "" msgid "Plugins" msgstr "" +#: editor/project_settings_editor.cpp +msgid "Import Defaults" +msgstr "" + #: editor/property_editor.cpp msgid "Preset..." msgstr "" @@ -12050,6 +12066,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12305,11 +12329,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/it.po b/editor/translations/it.po index 2daa387575..1d399091c3 100644 --- a/editor/translations/it.po +++ b/editor/translations/it.po @@ -60,8 +60,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-02-21 10:50+0000\n" -"Last-Translator: Micila Micillotto <micillotto@gmail.com>\n" +"PO-Revision-Date: 2021-03-07 06:04+0000\n" +"Last-Translator: Riteo Siuga <lorenzocerqua@tutanota.com>\n" "Language-Team: Italian <https://hosted.weblate.org/projects/godot-engine/" "godot/it/>\n" "Language: it\n" @@ -69,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 4.5\n" +"X-Generator: Weblate 4.5.1\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -192,7 +192,7 @@ msgstr "Elimina delle chiavi d'animazione" #: editor/animation_track_editor.cpp msgid "Anim Change Keyframe Time" -msgstr "Cambia Intervallo Fotogramma Principale Animazione" +msgstr "Cambia il tempo di un fotogramma chiave" #: editor/animation_track_editor.cpp msgid "Anim Change Transition" @@ -204,7 +204,7 @@ msgstr "Cambia la trasformazione di un'animazione" #: editor/animation_track_editor.cpp msgid "Anim Change Keyframe Value" -msgstr "Cambia Valore Fotogramma Principale Animazione" +msgstr "Cambia il valore del fotogramma chiave di un'animazione" #: editor/animation_track_editor.cpp msgid "Anim Change Call" @@ -212,32 +212,32 @@ msgstr "Cambia la chiamata di un'animazione" #: editor/animation_track_editor.cpp msgid "Anim Multi Change Keyframe Time" -msgstr "Cambia Multipli Intervalli Fotogramma Principale Animazione" +msgstr "Cambia il tempo di più fotogrammi chiave" #: editor/animation_track_editor.cpp msgid "Anim Multi Change Transition" -msgstr "Cambi Multipli Transizione Animazione" +msgstr "Cambia la transizione di più animazioni" #: editor/animation_track_editor.cpp msgid "Anim Multi Change Transform" -msgstr "Cambi Multipli Trasformazione Animazione" +msgstr "Cambia le trasformazioni di più animazioni" #: editor/animation_track_editor.cpp msgid "Anim Multi Change Keyframe Value" -msgstr "Cambia Multipli Valori Fotogramma Principale Animazione" +msgstr "Cambia il valore di più fotogrammi chiave di un'Animazione" #: editor/animation_track_editor.cpp msgid "Anim Multi Change Call" -msgstr "Cambi Multipli Chiamata Animazione" +msgstr "Cambia la chiamata di metodo di più animazioni" #: editor/animation_track_editor.cpp msgid "Change Animation Length" -msgstr "Cambia Lunghezza Animazione" +msgstr "Cambia la durata dell'animazione" #: editor/animation_track_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Change Animation Loop" -msgstr "Cambia Loop Animazione" +msgstr "Commuta ciclicità animazione" #: editor/animation_track_editor.cpp msgid "Property Track" @@ -253,7 +253,7 @@ msgstr "Traccia di chiamate di metodo" #: editor/animation_track_editor.cpp msgid "Bezier Curve Track" -msgstr "Traccia di curve di Bézier" +msgstr "Traccia curva di Bézier" #: editor/animation_track_editor.cpp msgid "Audio Playback Track" @@ -273,11 +273,11 @@ msgstr "Durata dell'animazione (secondi)" #: editor/animation_track_editor.cpp msgid "Add Track" -msgstr "Aggiungi una traccia" +msgstr "Aggiungi Traccia" #: editor/animation_track_editor.cpp msgid "Animation Looping" -msgstr "Ciclicità animazione" +msgstr "Ciclicità Animazione" #: editor/animation_track_editor.cpp #: modules/visual_script/visual_script_editor.cpp @@ -286,15 +286,15 @@ msgstr "Funzioni:" #: editor/animation_track_editor.cpp msgid "Audio Clips:" -msgstr "Clip audio:" +msgstr "Clip Audio:" #: editor/animation_track_editor.cpp msgid "Anim Clips:" -msgstr "Clip animazione:" +msgstr "Clip Animazione:" #: editor/animation_track_editor.cpp msgid "Change Track Path" -msgstr "Cambia il percorso della traccia" +msgstr "Cambia Percorso Traccia" #: editor/animation_track_editor.cpp msgid "Toggle this track on/off." @@ -302,11 +302,11 @@ msgstr "Attiva/Disattiva questa traccia." #: editor/animation_track_editor.cpp msgid "Update Mode (How this property is set)" -msgstr "Modalità di aggiornamento (come viene impostata questa proprietà)" +msgstr "Modalità Aggiornamento (come viene impostata questa proprietà)" #: editor/animation_track_editor.cpp msgid "Interpolation Mode" -msgstr "Modalità d'interpolazione" +msgstr "Modalità Interpolazione" #: editor/animation_track_editor.cpp msgid "Loop Wrap Mode (Interpolate end with beginning on loop)" @@ -322,7 +322,7 @@ msgstr "Tempo (s): " #: editor/animation_track_editor.cpp msgid "Toggle Track Enabled" -msgstr "Abilita/Disabilita una traccia" +msgstr "Abilita/DisabilitaTraccia" #: editor/animation_track_editor.cpp msgid "Continuous" @@ -376,23 +376,24 @@ msgstr "Elimina Fotogrammi Chiave Selezionati" #: editor/animation_track_editor.cpp msgid "Change Animation Update Mode" -msgstr "Cambia la modalità d'aggiornamento di un'animazione" +msgstr "Cambia Modalità Aggiornamento Animazione" #: editor/animation_track_editor.cpp msgid "Change Animation Interpolation Mode" -msgstr "Cambia la modalità d'interpolazione di un'animazione" +msgstr "Cambia Modalità Interpolazione Animazione" #: editor/animation_track_editor.cpp msgid "Change Animation Loop Mode" -msgstr "Cambia la modalità del ciclo di un'animazione" +msgstr "Cambia Modalità Loop Animazione" #: editor/animation_track_editor.cpp msgid "Remove Anim Track" -msgstr "Rimuovi la traccia di un'animazione" +msgstr "Rimuovi una traccia d'animazione" #: editor/animation_track_editor.cpp +#, fuzzy msgid "Create NEW track for %s and insert key?" -msgstr "Crea NUOVA traccia per %s ed inserire fotogramma chiave?" +msgstr "Creare una NUOVA traccia per %s e inserirci la chiave?" #: editor/animation_track_editor.cpp msgid "Create %d NEW tracks and insert keys?" @@ -520,11 +521,11 @@ msgstr "Gli appunti sono vuoti" #: editor/animation_track_editor.cpp msgid "Paste Tracks" -msgstr "Incolla delle tracce" +msgstr "Incolla Tracce" #: editor/animation_track_editor.cpp msgid "Anim Scale Keys" -msgstr "Scala delle chiavi d'animazione" +msgstr "Scala Chiavi Animazione" #: editor/animation_track_editor.cpp msgid "" @@ -656,15 +657,15 @@ msgstr "Ottimizzatore anim." #: editor/animation_track_editor.cpp msgid "Max. Linear Error:" -msgstr "Max errore lineare:" +msgstr "Max Errore Lineare:" #: editor/animation_track_editor.cpp msgid "Max. Angular Error:" -msgstr "Max errore angolare:" +msgstr "Max Errore Angolare:" #: editor/animation_track_editor.cpp msgid "Max Optimizable Angle:" -msgstr "Max angolo ottimizzabile:" +msgstr "Max Angolo Ottimizzabile:" #: editor/animation_track_editor.cpp msgid "Optimize" @@ -709,7 +710,7 @@ msgstr "Copia" #: editor/animation_track_editor.cpp msgid "Select All/None" -msgstr "Seleziona tutto/nulla" +msgstr "De/Seleziona Tutto" #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" @@ -725,23 +726,23 @@ msgstr "Cambia Offset Fine Clip Traccia Audio" #: editor/array_property_edit.cpp msgid "Resize Array" -msgstr "Ridimensiona lista" +msgstr "Ridimensiona Array" #: editor/array_property_edit.cpp msgid "Change Array Value Type" -msgstr "Cambia il tipo del valore della lista" +msgstr "Cambia Tipo Valore Array" #: editor/array_property_edit.cpp msgid "Change Array Value" -msgstr "Cambia il valore della lista" +msgstr "Cambia Valore Array" #: editor/code_editor.cpp msgid "Go to Line" -msgstr "Vai alla linea" +msgstr "Vai alla Linea" #: editor/code_editor.cpp msgid "Line Number:" -msgstr "Numero della linea:" +msgstr "Numero Linea:" #: editor/code_editor.cpp msgid "%d replaced." @@ -757,11 +758,11 @@ msgstr "%d corrispondenze." #: editor/code_editor.cpp editor/find_in_files.cpp msgid "Match Case" -msgstr "Distingui le maiuscole" +msgstr "Distingui Maiuscole" #: editor/code_editor.cpp editor/find_in_files.cpp msgid "Whole Words" -msgstr "Parole intere" +msgstr "Parole Intere" #: editor/code_editor.cpp msgid "Replace" @@ -769,11 +770,11 @@ msgstr "Sostituisci" #: editor/code_editor.cpp msgid "Replace All" -msgstr "Rimpiazza tutti" +msgstr "Rimpiazza Tutti" #: editor/code_editor.cpp msgid "Selection Only" -msgstr "Solo nella selezione" +msgstr "Solo Selezione" #: editor/code_editor.cpp editor/plugins/script_text_editor.cpp #: editor/plugins/text_editor.cpp @@ -810,7 +811,7 @@ msgstr "Numeri di riga e di colonna." #: editor/connections_dialog.cpp msgid "Method in target node must be specified." -msgstr "Il metodo del nodo designato deve essere specificato." +msgstr "Il metodo del nodo selezionato deve essere specificato." #: editor/connections_dialog.cpp msgid "Method name must be a valid identifier." @@ -1912,8 +1913,8 @@ msgid "Open a File or Directory" msgstr "Apri un file o una cartella" #: 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/editor_properties.cpp editor/import_defaults_editor.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 "Salva" @@ -2593,11 +2594,9 @@ msgstr "" "configurazione fallita." #: editor/editor_node.cpp -#, fuzzy msgid "Unable to find script field for addon plugin at: '%s'." msgstr "" -"Impossibile trovare il campo dello script per il componente aggiuntivo in: " -"'res://addons/%s'." +"Impossibile trovare il campo script per il plugin addon in posizione: '%s'." #: editor/editor_node.cpp msgid "Unable to load addon script from path: '%s'." @@ -3158,13 +3157,13 @@ msgid "" "the \"Use Custom Build\" option should be enabled in the Android export " "preset." msgstr "" -"Questo imposterà il tuo progetto per le build custom per Android, " -"installando i source templates in \"res://android/build\".\n" -"Puoi, allora, applicare le modifiche e costruire il tuo APK custom durante " -"l'esportazione (aggiungere moduli, cambiare il AndroidManifest.xml, ed " -"altro).\n" -"Nota che, in ordine per creare le build custom invece di usare gli APK pre-" -"costruiti, l'opzione \"Use Custom Build\" sarà abilitata nel preset " +"Questo predisporrà il progetto per le build personalizzate per Android " +"installando i template sorgente in \"res://android/build\".\n" +"Potrai allora applicare le modifiche e costruire il tuo APK personalizzato " +"durante l'esportazione (aggiungere moduli, cambiare l'AndroidManifest.xml, " +"eccetera).\n" +"Nota che per creare delle build personalizzate, invece di usare gli APK pre-" +"costruiti, l'opzione \"Use Custom Build\" va attivata nella preimpostazione " "d'esportazione per Android." #: editor/editor_node.cpp @@ -3174,30 +3173,30 @@ msgid "" "Remove the \"res://android/build\" directory manually before attempting this " "operation again." msgstr "" -"Il modello della build Android è già installato in questo progetto e non " -"sarà sovrascritto.\n" -"Rimuovi la cartella \"res://android/build\" manualmente prima di ritentare " +"Il template della build Android è già installato in questo progetto e non " +"verrà sovrascritto.\n" +"Rimuovi manualmente la cartella \"res://android/build\" prima di ritentare " "questa operazione." #: editor/editor_node.cpp msgid "Import Templates From ZIP File" -msgstr "Importa template da un file ZIP" +msgstr "Importa Template Da File ZIP" #: editor/editor_node.cpp msgid "Template Package" -msgstr "Pacchetto Modello" +msgstr "Pacchetto Template" #: 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 "Open & Run a Script" -msgstr "Apri ed esegui uno script" +msgstr "Apri ed Esegui uno Script" #: editor/editor_node.cpp msgid "" @@ -4135,6 +4134,21 @@ msgstr "" msgid "Saving..." msgstr "Salvataggio..." +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Modalità di selezione" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "Importare" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "Usa sRGB Default" + #: editor/import_dock.cpp msgid "%d Files" msgstr "%d File" @@ -5107,9 +5121,8 @@ msgid "Got:" msgstr "Ottenuto:" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Failed SHA-256 hash check" -msgstr "Check hash sha256 fallito" +msgstr "Check has SHA-256 fallito" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Asset Download Error:" @@ -5212,7 +5225,6 @@ msgid "Sort:" msgstr "Ordina:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "Categoria:" @@ -10510,6 +10522,11 @@ msgstr "AutoLoad" msgid "Plugins" msgstr "Plugins" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "Carica Predefiniti" + #: editor/property_editor.cpp msgid "Preset..." msgstr "Preset…" @@ -10760,14 +10777,12 @@ msgid "Instance Child Scene" msgstr "Istanzia Scena Figlia" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Can't paste root node into the same scene." -msgstr "Impossibile operare su nodi da scena esterna!" +msgstr "Non si può incollare il noto root nella stessa scena." #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Paste Node(s)" -msgstr "Incolla nodi" +msgstr "Incolla Nodo(i)" #: editor/scene_tree_dock.cpp msgid "Detach Script" @@ -10896,9 +10911,8 @@ msgid "Attach Script" msgstr "Allega Script" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Cut Node(s)" -msgstr "Taglia nodi" +msgstr "Taglia Nodo(i)" #: editor/scene_tree_dock.cpp msgid "Remove Node(s)" @@ -12579,6 +12593,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "Un CollisionPolygon2D vuoto non ha effetti sulla collisione." +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12903,11 +12925,6 @@ msgstr "" "Le GIProbes non sono supportate dal driver video GLES2.\n" "In alternativa, usa una BakedLightmap." -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "\"InterpolatedCamera\" è stata deprecata e sarà rimossa in Godot 4.0." - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" @@ -13166,9 +13183,9 @@ msgid "" "functions. Making them visible for editing is fine, but they will hide upon " "running." msgstr "" -"I popup saranno nascosti di predefinita finchè non chiami popup() o una " -"delle qualsiasi funzioni popup*(). Farli diventare visibili per modificarli " -"va bene, ma scompariranno all'esecuzione." +"I popup saranno nascosti di default finchè non chiami popup(), o una delle " +"qualsiasi funzioni popup*(). Farli diventare visibili per modificarli va " +"bene, ma scompariranno durante l'esecuzione." #: scene/gui/range.cpp msgid "If \"Exp Edit\" is enabled, \"Min Value\" must be greater than 0." @@ -13251,6 +13268,11 @@ msgstr "" msgid "Constants cannot be modified." msgstr "Le constanti non possono essere modificate." +#~ msgid "" +#~ "InterpolatedCamera has been deprecated and will be removed in Godot 4.0." +#~ msgstr "" +#~ "\"InterpolatedCamera\" è stata deprecata e sarà rimossa in Godot 4.0." + #~ msgid "No" #~ msgstr "No" @@ -14914,9 +14936,6 @@ msgstr "Le constanti non possono essere modificate." #~ msgid "Use Default Light" #~ msgstr "Usa Luce Default" -#~ msgid "Use Default sRGB" -#~ msgstr "Usa sRGB Default" - #~ msgid "Default Light Normal:" #~ msgstr "Normale Luce di Default:" diff --git a/editor/translations/ja.po b/editor/translations/ja.po index 6c7ce36693..8afa2de349 100644 --- a/editor/translations/ja.po +++ b/editor/translations/ja.po @@ -36,8 +36,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-02-21 10:50+0000\n" -"Last-Translator: nitenook <admin@alterbaum.net>\n" +"PO-Revision-Date: 2021-03-08 15:33+0000\n" +"Last-Translator: Wataru Onuki <bettawat@yahoo.co.jp>\n" "Language-Team: Japanese <https://hosted.weblate.org/projects/godot-engine/" "godot/ja/>\n" "Language: ja\n" @@ -45,7 +45,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.5\n" +"X-Generator: Weblate 4.5.1\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -1881,8 +1881,8 @@ 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/editor_properties.cpp editor/import_defaults_editor.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 "保存" @@ -2554,11 +2554,8 @@ msgid "Unable to enable addon plugin at: '%s' parsing of config failed." msgstr "アドオンプラグインを有効にできません: '%s' 設定の解析に失敗しました。" #: editor/editor_node.cpp -#, fuzzy msgid "Unable to find script field for addon plugin at: '%s'." -msgstr "" -"アドオンプラグインのスクリプトフィールドが 'res://addons/%s' から見つかりませ" -"ん。" +msgstr "アドオンプラグインのスクリプトフィールドが '%s' で見つかりません。" #: editor/editor_node.cpp msgid "Unable to load addon script from path: '%s'." @@ -4082,6 +4079,21 @@ msgstr "" msgid "Saving..." msgstr "保存中..." +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "選択モード" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "インポート" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "デフォルトを読込む" + #: editor/import_dock.cpp msgid "%d Files" msgstr "%d ファイル" @@ -5046,9 +5058,8 @@ msgid "Got:" msgstr "取得:" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Failed SHA-256 hash check" -msgstr "sha256 ハッシュチェック失敗" +msgstr "SHA-256 ハッシュチェック失敗" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Asset Download Error:" @@ -5151,7 +5162,6 @@ msgid "Sort:" msgstr "ソート:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "カテゴリー:" @@ -10409,6 +10419,11 @@ msgstr "自動読み込み" msgid "Plugins" msgstr "プラグイン" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "デフォルトを読込む" + #: editor/property_editor.cpp msgid "Preset..." msgstr "プリセット..." @@ -10658,12 +10673,10 @@ msgid "Instance Child Scene" msgstr "子シーンをインスタンス化" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Can't paste root node into the same scene." -msgstr "別のシーンからノードを操作することはできません!" +msgstr "ルートノードは同じシーンに貼り付けできません。" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Paste Node(s)" msgstr "ノードを貼り付け" @@ -10793,9 +10806,8 @@ msgid "Attach Script" msgstr "スクリプトをアタッチ" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Cut Node(s)" -msgstr "ノードを切り取る" +msgstr "ノードを切り取り" #: editor/scene_tree_dock.cpp msgid "Remove Node(s)" @@ -11618,19 +11630,16 @@ msgid "Generate buffers" msgstr "バッファを生成" #: modules/lightmapper_cpu/lightmapper_cpu.cpp -#, fuzzy msgid "Direct lighting" -msgstr "方向" +msgstr "直接光" #: modules/lightmapper_cpu/lightmapper_cpu.cpp -#, fuzzy msgid "Indirect lighting" -msgstr "右インデント" +msgstr "間接光" #: modules/lightmapper_cpu/lightmapper_cpu.cpp -#, fuzzy msgid "Post processing" -msgstr "ポストプロセス" +msgstr "後処理" #: modules/lightmapper_cpu/lightmapper_cpu.cpp #, fuzzy @@ -12460,6 +12469,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "空の CollisionPolygon2D は、衝突判定を持ちません。" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12781,11 +12798,6 @@ msgstr "" "GIProbesはGLES2ビデオドライバではサポートされていません。\n" "代わりにBakedLightmapを使用してください。" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "InterpolatedCamera は廃止予定であり、Godot 4.0で除去されます。" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "90度を超える角度のスポットライトは、シャドウを投影できません。" @@ -13124,6 +13136,10 @@ msgstr "Varying変数は頂点関数にのみ割り当てることができま msgid "Constants cannot be modified." msgstr "定数は変更できません。" +#~ msgid "" +#~ "InterpolatedCamera has been deprecated and will be removed in Godot 4.0." +#~ msgstr "InterpolatedCamera は廃止予定であり、Godot 4.0で除去されます。" + #~ msgid "No" #~ msgstr "いいえ" diff --git a/editor/translations/ka.po b/editor/translations/ka.po index b9f4a92e47..6828baf211 100644 --- a/editor/translations/ka.po +++ b/editor/translations/ka.po @@ -1900,8 +1900,8 @@ 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/editor_properties.cpp editor/import_defaults_editor.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 "" @@ -4028,6 +4028,19 @@ msgstr "" msgid "Saving..." msgstr "" +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "წავშალოთ მონიშნული ფაილები?" + +#: editor/import_defaults_editor.cpp +msgid "Importer:" +msgstr "" + +#: editor/import_defaults_editor.cpp +msgid "Reset to Defaults" +msgstr "" + #: editor/import_dock.cpp msgid "%d Files" msgstr "" @@ -5113,7 +5126,6 @@ msgid "Sort:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "" @@ -10287,6 +10299,10 @@ msgstr "" msgid "Plugins" msgstr "" +#: editor/project_settings_editor.cpp +msgid "Import Defaults" +msgstr "" + #: editor/property_editor.cpp msgid "Preset..." msgstr "" @@ -12295,6 +12311,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12550,11 +12574,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/ko.po b/editor/translations/ko.po index 872cb1550c..b898f397f4 100644 --- a/editor/translations/ko.po +++ b/editor/translations/ko.po @@ -16,7 +16,7 @@ # Jiyoon Kim <kimjiy@dickinson.edu>, 2019. # Ervin <zetsmart@gmail.com>, 2019. # Tilto_ <tilto0822@develable.xyz>, 2020. -# Myeongjin Lee <aranet100@gmail.com>, 2020. +# Myeongjin Lee <aranet100@gmail.com>, 2020, 2021. # Doyun Kwon <caen4516@gmail.com>, 2020. # Jun Hyung Shin <shmishmi79@gmail.com>, 2020. # Yongjin Jo <wnrhd114@gmail.com>, 2020. @@ -25,8 +25,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-10-31 23:15+0000\n" -"Last-Translator: Yungjoong Song <yungjoong.song@gmail.com>\n" +"PO-Revision-Date: 2021-03-08 15:33+0000\n" +"Last-Translator: Myeongjin Lee <aranet100@gmail.com>\n" "Language-Team: Korean <https://hosted.weblate.org/projects/godot-engine/" "godot/ko/>\n" "Language: ko\n" @@ -34,7 +34,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.3.2-dev\n" +"X-Generator: Weblate 4.5.1\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -704,7 +704,7 @@ msgstr "행 번호:" #: editor/code_editor.cpp msgid "%d replaced." -msgstr "%d개가 바뀌었습니다." +msgstr "%d개 찾아 바꿈." #: editor/code_editor.cpp editor/editor_help.cpp msgid "%d match." @@ -1044,22 +1044,23 @@ msgid "Owners Of:" msgstr "소유자:" #: editor/dependency_editor.cpp -#, fuzzy msgid "" "Remove selected files from the project? (no undo)\n" "You can find the removed files in the system trash to restore them." -msgstr "프로젝트에서 선택한 파일을 삭제할까요? (되돌릴 수 없습니다)" +msgstr "" +"프로젝트에서 선택된 파일을 제거하시겠습니다? (되돌릴 수 없음)\n" +"시스템 휴지통에서 제거된 파일을 찾고 복원할 수 있습니다." #: editor/dependency_editor.cpp -#, fuzzy msgid "" "The files being removed are required by other resources in order for them to " "work.\n" "Remove them anyway? (no undo)\n" "You can find the removed files in the system trash to restore them." msgstr "" -"삭제하려는 파일은 다른 리소스가 동작하기 위해 필요한 파일입니다.\n" -"무시하고 삭제할까요? (되돌릴 수 없습니다)" +"제거하려는 파일은 다른 리소스가 동작하기 위해 필요합니다.\n" +"무시하고 제거하시겠습니까? (되돌릴 수 없음)\n" +"시스템 휴지통에서 제거된 파일을 찾고 복원할 수 있습니다." #: editor/dependency_editor.cpp msgid "Cannot remove:" @@ -1864,8 +1865,8 @@ 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/editor_properties.cpp editor/import_defaults_editor.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 "저장" @@ -2314,6 +2315,8 @@ msgid "" "An error occurred while trying to save the editor layout.\n" "Make sure the editor's user data path is writable." msgstr "" +"편집기 레이아웃의 저장을 하려는 동안 오류가 발생했습니다.\n" +"편집기의 사용자 데이터 경로가 쓰기 가능한지 확인해주세요." #: editor/editor_node.cpp msgid "" @@ -2321,15 +2324,17 @@ msgid "" "To restore the Default layout to its base settings, use the Delete Layout " "option and delete the Default layout." msgstr "" +"기본 편집기 레이아웃이 덮어 쓰여져 있습니디.\n" +"기본 레이아웃을 원래 설정으로 복구하려면, 레이아웃 삭제 옵션을 사용하여 기본 " +"레이아웃을 삭제하세요." #: editor/editor_node.cpp msgid "Layout name not found!" msgstr "레이아웃 이름을 찾을 수 없습니다!" #: editor/editor_node.cpp -#, fuzzy msgid "Restored the Default layout to its base settings." -msgstr "기본 레이아웃을 초기화하였습니다." +msgstr "기본 레이아웃을 원래 설정으로 복구하였습니다." #: editor/editor_node.cpp msgid "" @@ -2384,7 +2389,7 @@ msgstr "실행할 씬이 설정되지 않았습니다." #: editor/editor_node.cpp msgid "Save scene before running..." -msgstr "" +msgstr "씬을 실행하기 전에 저장..." #: editor/editor_node.cpp msgid "Could not start subprocess!" @@ -2507,8 +2512,8 @@ 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" @@ -2529,9 +2534,9 @@ msgstr "" "실패했습니다." #: editor/editor_node.cpp -#, fuzzy msgid "Unable to find script field for addon plugin at: '%s'." -msgstr "다음 경로에서 애드온 플러그인을 찾을 수 없음: 'res://addons/%s'." +msgstr "" +"다음 경로에서 애드온 플러그인을 위한 스크립트 필드를 찾을 수 없습니다: '%s'." #: editor/editor_node.cpp msgid "Unable to load addon script from path: '%s'." @@ -2894,17 +2899,16 @@ msgid "Synchronize Script Changes" msgstr "스크립트 변경사항 동기화" #: editor/editor_node.cpp -#, fuzzy msgid "" "When this option is enabled, any script that is saved will be reloaded in " "the running project.\n" "When used remotely on a device, this is more efficient when the network " "filesystem option is enabled." msgstr "" -"이 설정이 활성화된 경우, 어떤 스크립트든 저장하면 실행중인 게임에도 새로고침" -"되어 반영됩니다.\n" -"원격 장치에서 사용중인 경우 네트워크 파일 시스템 기능을 활성화하면 더욱 효율" -"적입니다." +"이 옵션이 활성화된 경우, 어떤 스크립트든지 저장되면 실행 중인 프로젝트를 다" +"시 불러오게 됩니다.\n" +"기기에서 원격으로 사용 중인 경우, 네트워크 파일 시스템 옵션이 활성화되어 있다" +"면 더욱 효율적입니다." #: editor/editor_node.cpp editor/script_create_dialog.cpp msgid "Editor" @@ -3120,13 +3124,12 @@ msgid "Open & Run a Script" msgstr "스크립트 열기 & 실행" #: editor/editor_node.cpp -#, fuzzy msgid "" "The following files are newer on disk.\n" "What action should be taken?" msgstr "" -"해당 파일은 디스크에 있는 게 더 최신입니다.\n" -"어떻게 할 건가요?:" +"다음 파일은 디스크에 있는 게 더 최신입니다.\n" +"조치을 어떻게 취해야 합니까?" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/shader_editor_plugin.cpp @@ -3385,14 +3388,14 @@ msgid "Add Key/Value Pair" msgstr "키/값 쌍 추가" #: editor/editor_run_native.cpp -#, fuzzy msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the Export menu or define an existing preset " "as runnable." msgstr "" -"이 플랫폼으로 실행할 수 있는 내보내기 프리셋이 없습니다.\n" -"내보내기 메뉴에서 실행할 수 있는 프리셋을 추가해주세요." +"이 플랫폼을 위한 실행할 수 있는 내보내기 프리셋이 없습니다.\n" +"내보내기 메뉴에서 실행할 수 있는 프리셋을 추가하거나 기존 프리셋을 실행할 수 " +"있도록 지정해주세요." #: editor/editor_run_script.cpp msgid "Write your logic in the _run() method." @@ -3705,6 +3708,11 @@ msgid "" "\n" "Do you wish to overwrite them?" msgstr "" +"다음 파일이나 폴더가 대상 위치 '%s'의 항목과 충돌합니다:\n" +"\n" +"%s\n" +"\n" +"이를 덮어쓰시겠습니까?" #: editor/filesystem_dock.cpp msgid "Renaming file:" @@ -3785,9 +3793,8 @@ msgid "Duplicate..." msgstr "복제..." #: editor/filesystem_dock.cpp -#, fuzzy msgid "Move to Trash" -msgstr "오토로드 이동" +msgstr "휴지통으로 이동" #: editor/filesystem_dock.cpp editor/plugins/animation_player_editor_plugin.cpp msgid "Rename..." @@ -3898,19 +3905,16 @@ msgid "Searching..." msgstr "검색 중..." #: editor/find_in_files.cpp -#, fuzzy msgid "%d match in %d file." -msgstr "%d개 일치." +msgstr "파일 %d$2개 중 %d$1개 일치." #: editor/find_in_files.cpp -#, fuzzy msgid "%d matches in %d file." -msgstr "%d개 일치." +msgstr "파일 %d$2개 중 %d$1개 일치." #: editor/find_in_files.cpp -#, fuzzy msgid "%d matches in %d files." -msgstr "%d개 일치." +msgstr "파일 %d$2개 중 %d$1개 일치." #: editor/groups_editor.cpp msgid "Add to Group" @@ -4046,6 +4050,21 @@ msgstr "`post_import()` 메소드에서 Node에서 상속받은 객체를 반환 msgid "Saving..." msgstr "저장 중..." +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "모드 선택" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "가져오기" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "기본 sRGB 사용" + #: editor/import_dock.cpp msgid "%d Files" msgstr "파일 %d개" @@ -5009,9 +5028,8 @@ msgid "Got:" msgstr "받음:" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Failed SHA-256 hash check" -msgstr "sha256 해시 확인 실패" +msgstr "SHA-256 해시 확인 실패" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Asset Download Error:" @@ -5114,7 +5132,6 @@ msgid "Sort:" msgstr "정렬:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "카테고리:" @@ -5143,14 +5160,12 @@ msgid "Assets ZIP File" msgstr "애셋 ZIP 파일" #: editor/plugins/baked_lightmap_editor_plugin.cpp -#, fuzzy msgid "" "Can't determine a save path for lightmap images.\n" "Save your scene and try again." msgstr "" -"라이트맵 이미지의 저장 경로를 파악할 수 없습니다.\n" -"(같은 경로에 이미지를 저장할 수 있도록) 씬을 저장하거나, BakedLightmap 속성에" -"서 저장 경로를 지정하세요." +"라이트맵 이미지를 위한 저장 경로를 결정할 수 없습니다.\n" +"당신의 씬을 저장하고 다시 시도하세요." #: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "" @@ -5167,26 +5182,30 @@ msgstr "라이트맵 이미지 생성 실패. 작성 가능한 경로인지 확 #: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Failed determining lightmap size. Maximum lightmap size too small?" msgstr "" +"라이트맵 크기를 결정하는 데 실패했습니다. 최대 라이트맵 크기가 너무 작나요?" #: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "" "Some mesh is invalid. Make sure the UV2 channel values are contained within " "the [0.0,1.0] square region." msgstr "" +"일부 메시가 잘못되었습니다. UV2 채널 값이 [0.0,1.0] 정사각형 영역 안에 포함되" +"어 있는지 확인해주세요." #: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "" "Godot editor was built without ray tracing support, lightmaps can't be baked." msgstr "" +"Godot 편집기가 레이 트레이싱 지원 없이 빌드되어 있어, 라이트맵이 구워질 수 없" +"습니다." #: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Bake Lightmaps" msgstr "라이트맵 굽기" #: editor/plugins/baked_lightmap_editor_plugin.cpp -#, fuzzy msgid "Select lightmap bake file:" -msgstr "템플릿 파일 선택" +msgstr "라이트맵을 구울 파일 선택:" #: editor/plugins/camera_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -5255,50 +5274,43 @@ msgstr "수평 및 수직 가이드 만들기" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)" -msgstr "CanvasItem \"%s\" Pivot Offset (%d, %d)로 설정" +msgstr "CanvasItem \"%s\"의 피벗 오프셋을 (%d, %d)로 설정" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Rotate %d CanvasItems" -msgstr "CanvasItem 회전" +msgstr "CanvasItem %d개 회전" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Rotate CanvasItem \"%s\" to %d degrees" -msgstr "CanvasItem 회전" +msgstr "CanvasItem \"%s\"를 %d도로 회전" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Move CanvasItem \"%s\" Anchor" -msgstr "CanvasItem 이동" +msgstr "CanvasItem \"%s\" 앵커 이동" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Scale Node2D \"%s\" to (%s, %s)" -msgstr "" +msgstr "Node2D \"%s\"를 (%s, %s)로 크기 조절" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Resize Control \"%s\" to (%d, %d)" -msgstr "" +msgstr "컨트롤 \"%s\"를 (%d, %d)로 크기 조절" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Scale %d CanvasItems" -msgstr "CanvasItem 규모" +msgstr "CanvasItem %d개 크기 조절" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Scale CanvasItem \"%s\" to (%s, %s)" -msgstr "CanvasItem 규모" +msgstr "CanvasItem \"%s\"를 (%s, %s)로 크기 조절" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Move %d CanvasItems" -msgstr "CanvasItem 이동" +msgstr "CanvasItem %d개 이동" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Move CanvasItem \"%s\" to (%d, %d)" -msgstr "CanvasItem 이동" +msgstr "CanvasItem \"%s\"를 (%d, %d)로 이동" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" @@ -5504,7 +5516,7 @@ msgstr "회전모드" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Scale Mode" -msgstr "크기조절 모드" +msgstr "크기 조절 모드" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -5553,7 +5565,7 @@ msgstr "회전 스냅 사용" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Scale Snap" -msgstr "스마트 스냅 사용" +msgstr "크기 조절 스냅 사용" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap Relative" @@ -5671,11 +5683,11 @@ msgstr "선택 항목 중앙으로" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Frame Selection" -msgstr "선택 항목 전체 화면으로" +msgstr "프레임 선택" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Preview Canvas Scale" -msgstr "캔버스 규모 미리 보기" +msgstr "캔버스 크기 조절 미리 보기" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Translation mask for inserting keys." @@ -5937,7 +5949,7 @@ msgstr "기울기 편집됨" #: editor/plugins/item_list_editor_plugin.cpp msgid "Item %d" -msgstr "항목 %d" +msgstr "항목 %d개" #: editor/plugins/item_list_editor_plugin.cpp msgid "Items" @@ -6277,9 +6289,8 @@ msgid "Can only set point into a ParticlesMaterial process material" msgstr "ParticlesMaterial 프로세스 머티리얼 안에만 점을 설정할 수 있습니다" #: editor/plugins/particles_2d_editor_plugin.cpp -#, fuzzy msgid "Convert to CPUParticles2D" -msgstr "CPU파티클로 변환" +msgstr "CPUParticles2D로 변환" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp @@ -6567,18 +6578,16 @@ msgid "Move Points" msgstr "점 이동" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Command: Rotate" -msgstr "드래그: 회전" +msgstr "Command: 회전" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Shift: Move All" msgstr "Shift: 모두 이동" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Shift+Command: Scale" -msgstr "Shift+Ctrl: 크기 조절" +msgstr "Shift+Command: 크기 조절" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Ctrl: Rotate" @@ -6625,14 +6634,12 @@ msgid "Radius:" msgstr "반지름:" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Copy Polygon to UV" -msgstr "폴리곤 & UV 만들기" +msgstr "폴리곤을 UV로 복사" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Copy UV to Polygon" -msgstr "Polygon2D로 변환" +msgstr "UV를 폴리곤으로 복사" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Clear UV" @@ -6891,7 +6898,7 @@ msgstr "모두 저장" #: editor/plugins/script_editor_plugin.cpp msgid "Soft Reload Script" -msgstr "스크립트 새로고침" +msgstr "스크립트 일반 새로고침" #: editor/plugins/script_editor_plugin.cpp msgid "Copy Script Path" @@ -7118,7 +7125,7 @@ msgstr "주석 토글" #: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" -msgstr "행 펼치기/접기" +msgstr "행 접기/펼치기" #: editor/plugins/script_text_editor.cpp msgid "Fold All Lines" @@ -7162,7 +7169,7 @@ msgstr "파일에서 찾기..." #: editor/plugins/script_text_editor.cpp msgid "Contextual Help" -msgstr "상황에 맞는 도움" +msgstr "상황에 맞는 도움말" #: editor/plugins/script_text_editor.cpp msgid "Toggle Bookmark" @@ -7178,7 +7185,7 @@ msgstr "이전 북마크로 이동" #: editor/plugins/script_text_editor.cpp msgid "Remove All Bookmarks" -msgstr "모든 북마크 삭제" +msgstr "모든 북마크 제거" #: editor/plugins/script_text_editor.cpp msgid "Go to Function..." @@ -7195,7 +7202,7 @@ msgstr "중단점 토글" #: editor/plugins/script_text_editor.cpp msgid "Remove All Breakpoints" -msgstr "중단점 모두 삭제" +msgstr "중단점 모두 제거" #: editor/plugins/script_text_editor.cpp msgid "Go to Next Breakpoint" @@ -7314,9 +7321,8 @@ msgid "Yaw" msgstr "요" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Size" -msgstr "크기: " +msgstr "크기" #: editor/plugins/spatial_editor_plugin.cpp msgid "Objects Drawn" @@ -7544,7 +7550,7 @@ msgstr "" #: editor/plugins/spatial_editor_plugin.cpp msgid "Use Local Space" -msgstr "로컬 스페이스 사용" +msgstr "로컬 공간 사용" #: editor/plugins/spatial_editor_plugin.cpp msgid "Use Snap" @@ -7601,7 +7607,7 @@ msgstr "변형" #: editor/plugins/spatial_editor_plugin.cpp msgid "Snap Object to Floor" -msgstr "객체를 바닥에 스냅" +msgstr "개체를 바닥에 스냅" #: editor/plugins/spatial_editor_plugin.cpp msgid "Transform Dialog..." @@ -7814,7 +7820,7 @@ msgstr "선택한 프레임 없음" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add %d Frame(s)" -msgstr "%d개의 프레임 추가" +msgstr "프레임 %d개 추가" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Frame" @@ -7861,9 +7867,8 @@ msgid "New Animation" msgstr "새 애니메이션" #: editor/plugins/sprite_frames_editor_plugin.cpp -#, fuzzy msgid "Speed:" -msgstr "속도 (FPS):" +msgstr "속도:" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Loop" @@ -8121,7 +8126,7 @@ msgstr "테마 파일" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Erase Selection" -msgstr "선택 지우기" +msgstr "선택 항목 지우기" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Fix Invalid Tiles" @@ -8181,13 +8186,12 @@ msgid "Paint Tile" msgstr "타일 칠하기" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "" "Shift+LMB: Line Draw\n" "Shift+Command+LMB: Rectangle Paint" msgstr "" -"Shift+우클릭: 선 그리기\n" -"Shift+Ctrl+우클릭: 사각 영역 페인트" +"Shift+좌클릭: 선 그리기\n" +"Shift+Command+좌클릭: 사각 영역 페인트" #: editor/plugins/tile_map_editor_plugin.cpp msgid "" @@ -8227,7 +8231,7 @@ msgstr "TileSet에 텍스처를 추가합니다." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove selected Texture from TileSet." -msgstr "선택한 텍스처를 TileSet에서 삭제." +msgstr "선택한 텍스처를 TileSet에서 제거합니다." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Create from Scene" @@ -8342,23 +8346,20 @@ msgid "Create a new rectangle." msgstr "새로운 사각형을 만듭니다." #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "New Rectangle" -msgstr "사각 영역 칠하기" +msgstr "새 사각 영역" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Create a new polygon." msgstr "새로운 폴리곤을 만듭니다." #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "New Polygon" -msgstr "폴리곤 이동" +msgstr "새 폴리곤" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Delete Selected Shape" -msgstr "선택 항목 삭제" +msgstr "선택된 모양 삭제" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Keep polygon inside region Rect." @@ -8719,7 +8720,6 @@ msgid "Add Node to Visual Shader" msgstr "노드를 비주얼 셰이더에 추가" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Node(s) Moved" msgstr "노드 이동됨" @@ -8741,9 +8741,8 @@ msgid "Visual Shader Input Type Changed" msgstr "비주얼 셰이더 입력 유형 변경됨" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "UniformRef Name Changed" -msgstr "Uniform 이름 설정" +msgstr "UniformRef 이름 변경됨" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Vertex" @@ -8924,7 +8923,7 @@ msgstr "꼭짓점과 프래그먼트 셰이더 모드에 대한 '%s' 입력 매 #: editor/plugins/visual_shader_editor_plugin.cpp msgid "'%s' input parameter for fragment and light shader modes." -msgstr "꼭짓점과 프래그먼트 셰이더 모드에 대한 '%s' 입력 매개변수." +msgstr "프래그먼트과 조명 셰이더 모드에 대한 '%s' 입력 매개변수." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "'%s' input parameter for fragment shader mode." @@ -9017,7 +9016,7 @@ msgstr "매개변수의 역쌍곡탄젠트 값을 반환합니다." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "" "Finds the nearest integer that is greater than or equal to the parameter." -msgstr "매개변수보다 크거나 같은 가장 가까운 정수를 찾아요." +msgstr "매개변수보다 크거나 같은 가장 가까운 정수를 찾습니다." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Constrains a value to lie between two further values." @@ -9045,7 +9044,7 @@ msgstr "2가 밑인 지수 함수." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Finds the nearest integer less than or equal to the parameter." -msgstr "매개변수보다 적거나 같은 가장 가까운 정수를 찾아요." +msgstr "매개변수보다 적거나 같은 가장 가까운 정수를 찾습니다." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Computes the fractional part of the argument." @@ -9098,11 +9097,11 @@ msgstr "1.0 / 스칼라" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Finds the nearest integer to the parameter." -msgstr "매개변수에서 가장 가까운 정수를 찾아요." +msgstr "매개변수에서 가장 가까운 정수를 찾습니다." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Finds the nearest even integer to the parameter." -msgstr "매개변수에서 가장 가까운 짝수 정수를 찾아요." +msgstr "매개변수에서 가장 가까운 짝수 정수를 찾습니다." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Clamps the value between 0.0 and 1.0." @@ -9741,8 +9740,8 @@ msgid "" "Couldn't load project.godot in project path (error %d). It may be missing or " "corrupted." msgstr "" -"프로젝트 경로에서 project.godot을 불러올 수 없습니다 (error %d). 누락되거나 " -"손상된 모양입니다." +"프로젝트 경로에서 project.godot을 불러올 수 없습니다 (오류 %d). 누락되거나 손" +"상된 모양입니다." #: editor/project_manager.cpp msgid "Couldn't edit project.godot in project path." @@ -9802,7 +9801,7 @@ msgstr "OpenGL ES 3.0" #: editor/project_manager.cpp msgid "Not supported by your GPU drivers." -msgstr "" +msgstr "당신의 GPU 드라이버에 의해 지원되지 않습니다." #: editor/project_manager.cpp msgid "" @@ -9974,9 +9973,8 @@ msgid "Projects" msgstr "프로젝트" #: editor/project_manager.cpp -#, fuzzy msgid "Loading, please wait..." -msgstr "미러를 검색 중입니다. 기다려주세요..." +msgstr "로드 중, 기다려 주세요..." #: editor/project_manager.cpp msgid "Last Modified" @@ -10348,6 +10346,11 @@ msgstr "오토로드" msgid "Plugins" msgstr "플러그인(Plugin)" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "기본값 불러오기" + #: editor/property_editor.cpp msgid "Preset..." msgstr "프리셋..." @@ -10426,7 +10429,7 @@ msgstr "정규 표현식 사용" #: editor/rename_dialog.cpp msgid "Advanced Options" -msgstr "고급 설정" +msgstr "고급 옵션" #: editor/rename_dialog.cpp msgid "Substitute" @@ -10458,7 +10461,7 @@ msgid "" "Compare counter options." msgstr "" "순차 정수 카운터.\n" -"카운터 설정과 비교합니다." +"카운터 옵션과 비교합니다." #: editor/rename_dialog.cpp msgid "Per-level Counter" @@ -10595,12 +10598,10 @@ msgid "Instance Child Scene" msgstr "자식 씬 인스턴스화" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Can't paste root node into the same scene." -msgstr "다른 씬에서 수행할 수 없는 작업입니다!" +msgstr "루트 노드를 같은 씬 안으로 붙여넣을 수 없습니다." #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Paste Node(s)" msgstr "노드 붙여넣기" @@ -10730,7 +10731,6 @@ msgid "Attach Script" msgstr "스크립트 붙이기" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Cut Node(s)" msgstr "노드 잘라내기" @@ -11539,36 +11539,31 @@ msgstr "메시를 사용하려면 이 GridMap에 MeshLibrary 리소스를 주세 #: modules/lightmapper_cpu/lightmapper_cpu.cpp msgid "Begin Bake" -msgstr "" +msgstr "굽기 시작" #: modules/lightmapper_cpu/lightmapper_cpu.cpp msgid "Preparing data structures" -msgstr "" +msgstr "데이터 구조 준비 중" #: modules/lightmapper_cpu/lightmapper_cpu.cpp -#, fuzzy msgid "Generate buffers" -msgstr "AABB 만들기" +msgstr "버퍼 생성" #: modules/lightmapper_cpu/lightmapper_cpu.cpp -#, fuzzy msgid "Direct lighting" -msgstr "방향" +msgstr "조명 방향" #: modules/lightmapper_cpu/lightmapper_cpu.cpp -#, fuzzy msgid "Indirect lighting" -msgstr "들여쓰기" +msgstr "간접 조명" #: modules/lightmapper_cpu/lightmapper_cpu.cpp -#, fuzzy msgid "Post processing" msgstr "후처리" #: modules/lightmapper_cpu/lightmapper_cpu.cpp -#, fuzzy msgid "Plotting lightmaps" -msgstr "구분하는 조명:" +msgstr "구분하는 조명" #: modules/mono/csharp_script.cpp msgid "Class name can't be a reserved keyword" @@ -11580,11 +11575,11 @@ msgstr "내부 예외 스택 추적의 끝" #: modules/recast/navigation_mesh_editor_plugin.cpp msgid "Bake NavMesh" -msgstr "NavMesh 베이크" +msgstr "NavMesh 굽기" #: modules/recast/navigation_mesh_editor_plugin.cpp msgid "Clear the navigation mesh." -msgstr "내비게이션 메시 지우기." +msgstr "내비게이션 메시를 지웁니다." #: modules/recast/navigation_mesh_generator.cpp msgid "Setting up Configuration..." @@ -12082,15 +12077,15 @@ msgstr "목록에서 기기 선택" #: platform/android/export/export.cpp msgid "Unable to find the 'apksigner' tool." -msgstr "" +msgstr "'apksigner' 도구를 찾을 수 없습니다." #: platform/android/export/export.cpp msgid "" "Android build template not installed in the project. Install it from the " "Project menu." msgstr "" -"프로젝트에 안드로이드 빌드 템플릿을 설치하지 않았습니다. 프로젝트 메뉴에서 설" -"치하세요." +"프로젝트에 Android 빌드 템플릿을 설치하지 않았습니다. 프로젝트 메뉴에서 설치" +"하세요." #: platform/android/export/export.cpp msgid "Debug keystore not configured in the Editor Settings nor in the preset." @@ -12101,35 +12096,32 @@ msgid "Release keystore incorrectly configured in the export preset." msgstr "내보내기 프리셋에 배포 keystorke가 잘못 설정되어 있습니다." #: platform/android/export/export.cpp -#, fuzzy msgid "A valid Android SDK path is required in Editor Settings." -msgstr "편집기 설정에서 맞춤 빌드에 잘못된 안드로이드 SDK 경로입니다." +msgstr "편집기 설정에서 올바른 Android SDK 경로가 필요합니다." #: platform/android/export/export.cpp -#, fuzzy msgid "Invalid Android SDK path in Editor Settings." -msgstr "편집기 설정에서 맞춤 빌드에 잘못된 안드로이드 SDK 경로입니다." +msgstr "편집기 설정에서 잘못된 Android SDK 경로입니다." #: platform/android/export/export.cpp msgid "Missing 'platform-tools' directory!" -msgstr "" +msgstr "'platform-tools' 디렉터리가 없습니다!" #: platform/android/export/export.cpp msgid "Unable to find Android SDK platform-tools' adb command." -msgstr "" +msgstr "Android SDK platform-tools의 adb 명령을 찾을 수 없습니다." #: platform/android/export/export.cpp -#, fuzzy msgid "Please check in the Android SDK directory specified in Editor Settings." -msgstr "편집기 설정에서 맞춤 빌드에 잘못된 안드로이드 SDK 경로입니다." +msgstr "편집기 설정에서 지정된 Android SDK 디렉터리를 확인해주세요." #: platform/android/export/export.cpp msgid "Missing 'build-tools' directory!" -msgstr "" +msgstr "'build-tools' 디렉터리가 없습니다!" #: platform/android/export/export.cpp msgid "Unable to find Android SDK build-tools' apksigner command." -msgstr "" +msgstr "Android SDK build-tools의 apksigner 명령을 찾을 수 없습니다." #: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." @@ -12193,8 +12185,8 @@ msgid "" "Trying to build from a custom built template, but no version info for it " "exists. Please reinstall from the 'Project' menu." msgstr "" -"맞춤 빌드 템플릿으로 빌드하려 했으나, 버전 정보가가 없습니다. '프로젝트' 메뉴" -"에서 다시 설치해주세요." +"맞춤 빌드 템플릿으로 빌드하려 했으나, 버전 정보가 없습니다. '프로젝트' 메뉴에" +"서 다시 설치해주세요." #: platform/android/export/export.cpp msgid "" @@ -12203,32 +12195,34 @@ msgid "" " Godot Version: %s\n" "Please reinstall Android build template from 'Project' menu." msgstr "" -"안드로이드 빌드 버전이 맞지 않음:\n" -" 설치한 템플릿: %s\n" +"Android 빌드 버전이 맞지 않음:\n" +" 설치된 템플릿: %s\n" " Godot 버전: %s\n" -"'프로젝트' 메뉴에서 안드로이드 빌드 템플릿을 다시 설치해주세요." +"'프로젝트' 메뉴에서 Android 빌드 템플릿을 다시 설치해주세요." #: platform/android/export/export.cpp msgid "Building Android Project (gradle)" -msgstr "안드로이드 프로젝트 빌드 중 (gradle)" +msgstr "Android 프로젝트 빌드 중 (gradle)" #: platform/android/export/export.cpp msgid "" "Building of Android project failed, check output for the error.\n" "Alternatively visit docs.godotengine.org for Android build documentation." msgstr "" -"안드로이드 프로젝트의 빌드에 실패했, 출력한 오류를 확인하세요.\n" -"또는 docs.godotengine.org에서 안드로이드 빌드 문서를 찾아 보세요." +"Android 프로젝트의 빌드에 실패했습니다, 출력된 오류를 확인하세요.\n" +"또는 docs.godotengine.org에서 Andoid 빌드 문서를 찾아보세요." #: platform/android/export/export.cpp msgid "Moving output" -msgstr "" +msgstr "출력 이동 중" #: platform/android/export/export.cpp msgid "" "Unable to copy and rename export file, check gradle project directory for " "outputs." msgstr "" +"내보내기 파일을 복사하고 이름을 바꿀 수 없습니다, 출력에 대한 gradle 프로젝" +"트 디렉터리를 확인하세요." #: platform/iphone/export/export.cpp msgid "Identifier is missing." @@ -12378,6 +12372,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "빈 CollisionPolygon2D는 충돌에 영향을 주지 않습니다." +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12414,23 +12416,23 @@ msgstr "" #: scene/2d/joints_2d.cpp msgid "Node A and Node B must be PhysicsBody2Ds" -msgstr "" +msgstr "노드 A와 노드 B는 PhysicsBody2D여야 합니다" #: scene/2d/joints_2d.cpp msgid "Node A must be a PhysicsBody2D" -msgstr "" +msgstr "노드 A는 PhysicsBody2D여야 합니다" #: scene/2d/joints_2d.cpp msgid "Node B must be a PhysicsBody2D" -msgstr "" +msgstr "노드 B는 PhysicsBody2D여야 합니다" #: scene/2d/joints_2d.cpp msgid "Joint is not connected to two PhysicsBody2Ds" -msgstr "" +msgstr "관절이 PhysicsBody2D 두 곳과 연결되어 있지 않습니다" #: scene/2d/joints_2d.cpp msgid "Node A and Node B must be different PhysicsBody2Ds" -msgstr "" +msgstr "노드 A와 노드 B는 서로 다른 PhysicsBody2D여야 합니다" #: scene/2d/light_2d.cpp msgid "" @@ -12579,27 +12581,23 @@ msgstr "ARVROrigin은 자식으로 ARVRCamera 노드가 필요합니다." #: scene/3d/baked_lightmap.cpp msgid "Finding meshes and lights" -msgstr "" +msgstr "메시 및 조명 찾는 중" #: scene/3d/baked_lightmap.cpp -#, fuzzy msgid "Preparing geometry (%d/%d)" -msgstr "형태 분석 중..." +msgstr "형태 준비 중 (%d/%d)" #: scene/3d/baked_lightmap.cpp -#, fuzzy msgid "Preparing environment" -msgstr "환경 보기" +msgstr "환경 준비 중" #: scene/3d/baked_lightmap.cpp -#, fuzzy msgid "Generating capture" -msgstr "라이트맵 생성 중" +msgstr "캡처 생성 중" #: scene/3d/baked_lightmap.cpp -#, fuzzy msgid "Saving lightmaps" -msgstr "라이트맵 생성 중" +msgstr "라이트맵 저장 중" #: scene/3d/baked_lightmap.cpp msgid "Done" @@ -12690,11 +12688,6 @@ msgstr "" "GIProbe는 GLES2 비디오 드라이버에서 지원하지 않습니다.\n" "대신 BakedLightmap을 사용하세요." -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "InterpolatedCamera는 더 이상 사용되지 않으며 Godot 4.0에서 제거됩니다." - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "SpotLight의 각도를 90도 이상으로 잡게되면 그림자를 투영할 수 없습니다." @@ -12759,23 +12752,23 @@ msgstr "" #: scene/3d/physics_joint.cpp msgid "Node A and Node B must be PhysicsBodies" -msgstr "" +msgstr "노드 A와 노드 B는 PhysicsBody여야 합니다" #: scene/3d/physics_joint.cpp msgid "Node A must be a PhysicsBody" -msgstr "" +msgstr "노드 A는 PhysicsBody여야 합니다" #: scene/3d/physics_joint.cpp msgid "Node B must be a PhysicsBody" -msgstr "" +msgstr "노드 B는 PhysicsBodies여야 합니다" #: scene/3d/physics_joint.cpp msgid "Joint is not connected to any PhysicsBodies" -msgstr "" +msgstr "관절이 어떠한 PhysicsBody에도 연결되어 있지 않습니다" #: scene/3d/physics_joint.cpp msgid "Node A and Node B must be different PhysicsBodies" -msgstr "" +msgstr "노드 A와 노드 B는 서로 다른 PhysicsBody여야 합니다" #: scene/3d/remote_transform.cpp msgid "" @@ -12940,9 +12933,8 @@ msgid "Must use a valid extension." msgstr "올바른 확장자를 사용해야 합니다." #: scene/gui/graph_edit.cpp -#, fuzzy msgid "Enable grid minimap." -msgstr "스냅 켜기" +msgstr "그리드 미니맵을 활성화합니다." #: scene/gui/popup.cpp msgid "" @@ -13000,6 +12992,8 @@ msgid "" "The sampler port is connected but not used. Consider changing the source to " "'SamplerPort'." msgstr "" +"샘플러 포트가 연결되어 있지만 사용되지 않습이다. 소스를 'SamplerPort'로 변경" +"하는 것을 고려해주세요." #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." @@ -13029,6 +13023,11 @@ msgstr "Varying은 꼭짓점 함수에만 지정할 수 있습니다." msgid "Constants cannot be modified." msgstr "상수는 수정할 수 없습니다." +#~ msgid "" +#~ "InterpolatedCamera has been deprecated and will be removed in Godot 4.0." +#~ msgstr "" +#~ "InterpolatedCamera는 더 이상 사용되지 않으며 Godot 4.0에서 제거됩니다." + #~ msgid "No" #~ msgstr "아니오" @@ -14815,9 +14814,6 @@ msgstr "상수는 수정할 수 없습니다." #~ msgid "Use Default Light" #~ msgstr "기본 Light 사용" -#~ msgid "Use Default sRGB" -#~ msgstr "기본 sRGB 사용" - #~ msgid "Default Light Normal:" #~ msgstr "기본 라이트 노말:" diff --git a/editor/translations/lt.po b/editor/translations/lt.po index 313d6144e3..585e4d4447 100644 --- a/editor/translations/lt.po +++ b/editor/translations/lt.po @@ -1854,8 +1854,8 @@ 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/editor_properties.cpp editor/import_defaults_editor.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 "" @@ -3986,6 +3986,20 @@ msgstr "" msgid "Saving..." msgstr "" +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Pasirinkite Nodus, kuriuos norite importuoti" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "Importuoti Animacijas..." + +#: editor/import_defaults_editor.cpp +msgid "Reset to Defaults" +msgstr "" + #: editor/import_dock.cpp #, fuzzy msgid "%d Files" @@ -5080,7 +5094,6 @@ msgid "Sort:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "Kategorija:" @@ -10257,6 +10270,10 @@ msgstr "" msgid "Plugins" msgstr "Priedai" +#: editor/project_settings_editor.cpp +msgid "Import Defaults" +msgstr "" + #: editor/property_editor.cpp msgid "Preset..." msgstr "" @@ -12263,6 +12280,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12518,11 +12543,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/lv.po b/editor/translations/lv.po index 8f70ed94f7..5512d59238 100644 --- a/editor/translations/lv.po +++ b/editor/translations/lv.po @@ -1841,8 +1841,8 @@ 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/editor_properties.cpp editor/import_defaults_editor.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 "" @@ -3923,6 +3923,20 @@ msgstr "" msgid "Saving..." msgstr "" +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Izvēlēties Šablona Failu" + +#: editor/import_defaults_editor.cpp +msgid "Importer:" +msgstr "" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "Ielādēt Noklusējumu" + #: editor/import_dock.cpp msgid "%d Files" msgstr "%d Failā" @@ -4974,7 +4988,6 @@ msgid "Sort:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "" @@ -10082,6 +10095,11 @@ msgstr "" msgid "Plugins" msgstr "" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "Ielādēt Noklusējumu" + #: editor/property_editor.cpp msgid "Preset..." msgstr "" @@ -12065,6 +12083,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12320,11 +12346,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/mi.po b/editor/translations/mi.po index 301383d787..260543a475 100644 --- a/editor/translations/mi.po +++ b/editor/translations/mi.po @@ -1788,8 +1788,8 @@ 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/editor_properties.cpp editor/import_defaults_editor.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 "" @@ -3865,6 +3865,18 @@ msgstr "" msgid "Saving..." msgstr "" +#: editor/import_defaults_editor.cpp +msgid "Select Importer" +msgstr "" + +#: editor/import_defaults_editor.cpp +msgid "Importer:" +msgstr "" + +#: editor/import_defaults_editor.cpp +msgid "Reset to Defaults" +msgstr "" + #: editor/import_dock.cpp msgid "%d Files" msgstr "" @@ -4916,7 +4928,6 @@ msgid "Sort:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "" @@ -9944,6 +9955,10 @@ msgstr "" msgid "Plugins" msgstr "" +#: editor/project_settings_editor.cpp +msgid "Import Defaults" +msgstr "" + #: editor/property_editor.cpp msgid "Preset..." msgstr "" @@ -11893,6 +11908,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12148,11 +12171,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/mk.po b/editor/translations/mk.po index 1b01a6f792..cd72ecd259 100644 --- a/editor/translations/mk.po +++ b/editor/translations/mk.po @@ -1795,8 +1795,8 @@ 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/editor_properties.cpp editor/import_defaults_editor.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 "" @@ -3872,6 +3872,18 @@ msgstr "" msgid "Saving..." msgstr "" +#: editor/import_defaults_editor.cpp +msgid "Select Importer" +msgstr "" + +#: editor/import_defaults_editor.cpp +msgid "Importer:" +msgstr "" + +#: editor/import_defaults_editor.cpp +msgid "Reset to Defaults" +msgstr "" + #: editor/import_dock.cpp msgid "%d Files" msgstr "" @@ -4923,7 +4935,6 @@ msgid "Sort:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "" @@ -9951,6 +9962,10 @@ msgstr "" msgid "Plugins" msgstr "" +#: editor/project_settings_editor.cpp +msgid "Import Defaults" +msgstr "" + #: editor/property_editor.cpp msgid "Preset..." msgstr "" @@ -11900,6 +11915,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12155,11 +12178,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/ml.po b/editor/translations/ml.po index 71693f68dd..fb9de4a419 100644 --- a/editor/translations/ml.po +++ b/editor/translations/ml.po @@ -1798,8 +1798,8 @@ 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/editor_properties.cpp editor/import_defaults_editor.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 "" @@ -3877,6 +3877,18 @@ msgstr "" msgid "Saving..." msgstr "" +#: editor/import_defaults_editor.cpp +msgid "Select Importer" +msgstr "" + +#: editor/import_defaults_editor.cpp +msgid "Importer:" +msgstr "" + +#: editor/import_defaults_editor.cpp +msgid "Reset to Defaults" +msgstr "" + #: editor/import_dock.cpp msgid "%d Files" msgstr "" @@ -4931,7 +4943,6 @@ msgid "Sort:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "" @@ -9961,6 +9972,10 @@ msgstr "" msgid "Plugins" msgstr "" +#: editor/project_settings_editor.cpp +msgid "Import Defaults" +msgstr "" + #: editor/property_editor.cpp msgid "Preset..." msgstr "" @@ -11911,6 +11926,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12166,11 +12189,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/mr.po b/editor/translations/mr.po index a07cd2a007..cf3a24a739 100644 --- a/editor/translations/mr.po +++ b/editor/translations/mr.po @@ -1795,8 +1795,8 @@ 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/editor_properties.cpp editor/import_defaults_editor.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 "" @@ -3872,6 +3872,18 @@ msgstr "" msgid "Saving..." msgstr "" +#: editor/import_defaults_editor.cpp +msgid "Select Importer" +msgstr "" + +#: editor/import_defaults_editor.cpp +msgid "Importer:" +msgstr "" + +#: editor/import_defaults_editor.cpp +msgid "Reset to Defaults" +msgstr "" + #: editor/import_dock.cpp msgid "%d Files" msgstr "" @@ -4923,7 +4935,6 @@ msgid "Sort:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "" @@ -9952,6 +9963,10 @@ msgstr "" msgid "Plugins" msgstr "" +#: editor/project_settings_editor.cpp +msgid "Import Defaults" +msgstr "" + #: editor/property_editor.cpp msgid "Preset..." msgstr "" @@ -11901,6 +11916,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12156,11 +12179,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/ms.po b/editor/translations/ms.po index 9019b6b0e4..c0a7f7cea2 100644 --- a/editor/translations/ms.po +++ b/editor/translations/ms.po @@ -1865,8 +1865,8 @@ msgid "Open a File or Directory" msgstr "Buka Fail atau Direktori" #: 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/editor_properties.cpp editor/import_defaults_editor.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 "Simpan" @@ -4192,6 +4192,21 @@ msgstr "" msgid "Saving..." msgstr "" +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Pilih Nod(Nod-nod) untuk Diimport" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "Import" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "Muatkan Lalai" + #: editor/import_dock.cpp msgid "%d Files" msgstr "" @@ -5248,7 +5263,6 @@ msgid "Sort:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "" @@ -10302,6 +10316,11 @@ msgstr "" msgid "Plugins" msgstr "" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "Muatkan Lalai" + #: editor/property_editor.cpp msgid "Preset..." msgstr "" @@ -12263,6 +12282,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12518,11 +12545,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/nb.po b/editor/translations/nb.po index 1289275b3d..9e69510739 100644 --- a/editor/translations/nb.po +++ b/editor/translations/nb.po @@ -3,24 +3,25 @@ # Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). # This file is distributed under the same license as the Godot source code. # Allan Nordhøy <epost@anotheragency.no>, 2017-2018, 2019, 2020, 2021. -# Anonymous <GentleSaucepan@protonmail.com>, 2017. +# Anonymous <GentleSaucepan@protonmail.com>, 2017, 2021. # Elias <eliasnykrem@gmail.com>, 2018. # flesk <eivindkn@gmail.com>, 2017, 2019. -# Frank T. Rambol <frank@d-fect.com>, 2018. +# Frank T. Rambol <frank@d-fect.com>, 2018, 2021. # Jørgen Aarmo Lund <jorgen.aarmo@gmail.com>, 2016, 2019. -# NicolaiF <nico-fre@hotmail.com>, 2017-2018, 2019. +# NicolaiF <nico-fre@hotmail.com>, 2017-2018, 2019, 2021. # Norwegian Disaster <stian.furu.overbye@gmail.com>, 2017. # passeride <lukas@passeride.com>, 2017. # Byzantin <kasper-hoel@hotmail.com>, 2018. # Hans-Marius Øverås <hansmariusoveras@gmail.com>, 2019. # Revolution <revosw@gmail.com>, 2019. # Petter Reinholdtsen <pere-weblate@hungry.com>, 2019, 2020. +# Patrick Sletvold <patricksletvold@hotmail.com>, 2021. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-01-12 13:32+0000\n" -"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n" +"PO-Revision-Date: 2021-02-27 00:47+0000\n" +"Last-Translator: Anonymous <GentleSaucepan@protonmail.com>\n" "Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/godot-" "engine/godot/nb_NO/>\n" "Language: nb\n" @@ -28,7 +29,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.4.1-dev\n" +"X-Generator: Weblate 4.5\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -200,7 +201,6 @@ msgid "Change Animation Loop" msgstr "Endre Animasjonssløyfe" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Property Track" msgstr "Egenskapsspor" @@ -209,24 +209,20 @@ msgid "3D Transform Track" msgstr "3D transformasjonsspor" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Call Method Track" msgstr "Kall metode-spor" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Bezier Curve Track" -msgstr "Bezier-kurvespor" +msgstr "Bézier-kurvespor" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Audio Playback Track" msgstr "Lydavspillingsspor" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Animation Playback Track" -msgstr "Stopp avspilling av animasjon. (S)" +msgstr "Animasjonavspillingspor" #: editor/animation_track_editor.cpp msgid "Animation length (frames)" @@ -241,7 +237,6 @@ msgid "Add Track" msgstr "Legg til Spor" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Animation Looping" msgstr "Animasjonsløkke" @@ -260,23 +255,20 @@ msgid "Anim Clips:" msgstr "Anim-klipp:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Track Path" -msgstr "Endre Array-verdi" +msgstr "Endre sporsti" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Toggle this track on/off." -msgstr "Vis/skjul distraksjonsfri modus." +msgstr "Slå spor på/av." #: editor/animation_track_editor.cpp msgid "Update Mode (How this property is set)" msgstr "Oppdateringsmodus (Hvordan denne egenskapen settes)" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Interpolation Mode" -msgstr "Animasjonsnode" +msgstr "Interpolasjonsmodus" #: editor/animation_track_editor.cpp msgid "Loop Wrap Mode (Interpolate end with beginning on loop)" @@ -334,7 +326,7 @@ msgstr "Pakk Inn Sløyfeinterp" #: editor/animation_track_editor.cpp #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Key" -msgstr "Sett inn Nøkkel" +msgstr "Sett inn nøkkel" #: editor/animation_track_editor.cpp msgid "Duplicate Key(s)" @@ -345,19 +337,16 @@ msgid "Delete Key(s)" msgstr "Fjern Nøkler" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Animation Update Mode" -msgstr "Endre Animasjonsnavn:" +msgstr "Endre oppdateringsmetode for animasjon" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Animation Interpolation Mode" -msgstr "Animasjonsnode" +msgstr "Endre interpolasjonsmodus for animasjon" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Animation Loop Mode" -msgstr "Endre Anim-Løkke" +msgstr "Endre løkkemodus for animasjon" #: editor/animation_track_editor.cpp msgid "Remove Anim Track" @@ -412,9 +401,8 @@ msgid "Rearrange Tracks" msgstr "Omorganiser Spor" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Transform tracks only apply to Spatial-based nodes." -msgstr "Transformasjonsspor kan kun brukes på Spatial-baserte noder." +msgstr "Transformeringsspor virker kun på Spatial-baserte noder." #: editor/animation_track_editor.cpp msgid "" @@ -438,47 +426,40 @@ msgstr "" "En animansjonsavspiller kan ikke animere seg selv, kun andre avspillere." #: editor/animation_track_editor.cpp -#, fuzzy msgid "Not possible to add a new track without a root" msgstr "Ikke mulig å legge til et nytt spor uten en rot" #: editor/animation_track_editor.cpp msgid "Invalid track for Bezier (no suitable sub-properties)" -msgstr "" +msgstr "Ugyldig spor for Bézier (ingen passende underegenskaper)" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Add Bezier Track" -msgstr "Anim Legg til Spor" +msgstr "Legg til Bézier-spor" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Track path is invalid, so can't add a key." msgstr "Sporsti er ugyldig, så kan ikke legge til en nøkkel." #: editor/animation_track_editor.cpp -#, fuzzy msgid "Track is not of type Spatial, can't insert key" -msgstr "Spor er ikke av type Spatial, kan ikke legge til nøkkel" +msgstr "Spor er ikke av typen Spatial, kan ikke sette inn nøkkel" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Add Transform Track Key" -msgstr "3D transformasjonsspor" +msgstr "Legg til transformasjons-spornøkkel" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Add Track Key" -msgstr "Anim Legg til Spor" +msgstr "Legg til spornøkkel" #: editor/animation_track_editor.cpp msgid "Track path is invalid, so can't add a method key." msgstr "Sporsti er ugyldig, så kan ikke legge til en metodenøkkel." #: editor/animation_track_editor.cpp -#, fuzzy msgid "Add Method Track Key" -msgstr "Kall metode-spor" +msgstr "Legg til metode-spornøkkel" #: editor/animation_track_editor.cpp msgid "Method not found in object: " @@ -489,26 +470,22 @@ msgid "Anim Move Keys" msgstr "Anim Flytt Nøkler" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Clipboard is empty" -msgstr "Ressurs-utklippstavle er tom!" +msgstr "Utklippstavlen er tom" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Paste Tracks" -msgstr "Lim inn Parametre" +msgstr "Sett in spor" #: editor/animation_track_editor.cpp msgid "Anim Scale Keys" msgstr "Anim Skalér Nøkler" #: editor/animation_track_editor.cpp -#, fuzzy msgid "" "This option does not work for Bezier editing, as it's only a single track." msgstr "" -"Dette valget virker ikke på Bezier-redigering, siden det kun er ett enkelt " -"spor." +"Dette valget virker ikke på Bézier-redigering, da det kun er ett enkelt spor." #: editor/animation_track_editor.cpp msgid "" @@ -522,10 +499,19 @@ msgid "" "Alternatively, use an import preset that imports animations to separate " "files." msgstr "" +"Denne animasjonen hører til en importert scene, så endringer på importerte " +"spor vil ikke bli lagret.\n" +"\n" +"For å legge til egendefinerte spor, gå til scenens importinstillinger og " +"sett\n" +"\"Animasjon > Lagring\" til \"Filer\", aktiver \"Animasjon > Behold egne spor" +"\", og importer på nytt.\n" +"Alternativt, bruk et importoppsett som importerer animasjonen som separate " +"filer." #: editor/animation_track_editor.cpp msgid "Warning: Editing imported animation" -msgstr "" +msgstr "Advarsel: Redigerer importert animasjon" #: editor/animation_track_editor.cpp #, fuzzy @@ -570,9 +556,8 @@ msgid "Edit" msgstr "Rediger" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Animation properties." -msgstr "Animasjon" +msgstr "Animasjon egenskaper." #: editor/animation_track_editor.cpp #, fuzzy @@ -589,26 +574,23 @@ msgstr "Skaler Fra Peker" #: editor/animation_track_editor.cpp modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" -msgstr "Dupliser Utvalg" +msgstr "Dupliser utvalg" #: editor/animation_track_editor.cpp msgid "Duplicate Transposed" -msgstr "Dupliser Transponert" +msgstr "Dupliser transponert" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Delete Selection" -msgstr "Slett Valgte" +msgstr "Slett valgte" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Go to Next Step" -msgstr "Gå til Neste Steg" +msgstr "Gå til neste steg" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Go to Previous Step" -msgstr "Gå til Forrige Steg" +msgstr "Gå til forrige steg" #: editor/animation_track_editor.cpp msgid "Optimize Animation" @@ -671,9 +653,8 @@ msgid "Scale Ratio:" msgstr "Skaler Størrelsesforhold:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Select Tracks to Copy" -msgstr "Velg spor å kopiere:" +msgstr "Velg spor å kopiere" #: editor/animation_track_editor.cpp editor/editor_log.cpp #: editor/editor_properties.cpp @@ -690,9 +671,8 @@ msgid "Select All/None" msgstr "Kutt Noder" #: editor/animation_track_editor_plugins.cpp -#, fuzzy msgid "Add Audio Track Clip" -msgstr "Lydklipp:" +msgstr "Legg til lyd-spor klipp" #: editor/animation_track_editor_plugins.cpp msgid "Change Audio Track Clip Start Offset" @@ -723,19 +703,16 @@ msgid "Line Number:" msgstr "Linjenummer:" #: editor/code_editor.cpp -#, fuzzy msgid "%d replaced." -msgstr "Erstatt..." +msgstr "%d erstattet." #: editor/code_editor.cpp editor/editor_help.cpp -#, fuzzy msgid "%d match." -msgstr "%d samsvar." +msgstr "%d samsvarer." #: editor/code_editor.cpp editor/editor_help.cpp -#, fuzzy msgid "%d matches." -msgstr "Ingen Treff" +msgstr "%d sammsvarer." #: editor/code_editor.cpp editor/find_in_files.cpp msgid "Match Case" @@ -760,7 +737,7 @@ msgstr "Kun Valgte" #: editor/code_editor.cpp editor/plugins/script_text_editor.cpp #: editor/plugins/text_editor.cpp msgid "Standard" -msgstr "" +msgstr "Standard" #: editor/code_editor.cpp editor/plugins/script_editor_plugin.cpp msgid "Toggle Scripts Panel" @@ -791,9 +768,8 @@ msgid "Line and column numbers." msgstr "Linje- og kolonnenummer." #: editor/connections_dialog.cpp -#, fuzzy msgid "Method in target node must be specified." -msgstr "Metode i mål-Node må spesifiseres!" +msgstr "Metode i målnoden må spesifiseres." #: editor/connections_dialog.cpp #, fuzzy @@ -820,13 +796,12 @@ msgid "Connect to Script:" msgstr "Kan ikke koble til tjener:" #: editor/connections_dialog.cpp -#, fuzzy msgid "From Signal:" -msgstr "Signaler:" +msgstr "Fra signal:" #: editor/connections_dialog.cpp msgid "Scene does not contain any script." -msgstr "" +msgstr "Scenen inneholder ikke noen skript." #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp @@ -854,14 +829,12 @@ msgid "Extra Call Arguments:" msgstr "Ekstra Call Argumenter:" #: editor/connections_dialog.cpp -#, fuzzy msgid "Receiver Method:" -msgstr "Lim inn Noder" +msgstr "Mottakermetode:" #: editor/connections_dialog.cpp -#, fuzzy msgid "Advanced" -msgstr "Snapping innstillinger" +msgstr "Avansert" #: editor/connections_dialog.cpp msgid "Deferred" @@ -1064,9 +1037,8 @@ msgid "Fix Broken" msgstr "Reparer Ødelagt" #: editor/dependency_editor.cpp -#, fuzzy msgid "Dependency Editor" -msgstr "Avhengighetsredigeringsverktøy" +msgstr "Redigeringsverktøy for avhengigheter" #: editor/dependency_editor.cpp msgid "Search Replacement Resource:" @@ -1087,14 +1059,15 @@ msgid "Owners Of:" msgstr "Eiere Av:" #: editor/dependency_editor.cpp -#, fuzzy msgid "" "Remove selected files from the project? (no undo)\n" "You can find the removed files in the system trash to restore them." -msgstr "Fjerne valgte filer fra prosjektet? (kan ikke angres)" +msgstr "" +"Fjerne valgte filer fra prosjektet? (kan ikke angres)\n" +"Du kan finne de fjernede filene i systemets papirkurv, og gjenopprette dem " +"derfra." #: editor/dependency_editor.cpp -#, fuzzy msgid "" "The files being removed are required by other resources in order for them to " "work.\n" @@ -1102,7 +1075,9 @@ msgid "" "You can find the removed files in the system trash to restore them." msgstr "" "Filene som fjernes kreves for at andre ressurser skal virke.\n" -"Fjern dem likevel? (kan ikke angres)" +"Fjerne dem likevel? (kan ikke angres)\n" +"Du kan finne de fjernede filene i systemets papirkurv, og gjenopprette dem " +"derfra." #: editor/dependency_editor.cpp msgid "Cannot remove:" @@ -1163,14 +1138,12 @@ msgid "Resources Without Explicit Ownership:" msgstr "Ressurser uten eksplisitt eierskap:" #: editor/dictionary_property_edit.cpp -#, fuzzy msgid "Change Dictionary Key" -msgstr "Endre Ordboksnøkkel" +msgstr "Endre listenøkkel" #: editor/dictionary_property_edit.cpp -#, fuzzy msgid "Change Dictionary Value" -msgstr "Endre Ordboksverdi" +msgstr "Endre listeverdi" #: editor/editor_about.cpp msgid "Thanks from the Godot community!" @@ -1444,7 +1417,6 @@ msgid "There is no '%s' file." msgstr "Det finnes ingen «%s»-fil" #: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Layout" msgstr "Layout" @@ -1453,9 +1425,8 @@ msgid "Invalid file, not an audio bus layout." msgstr "Ugyldig fil, ikke et audio bus oppsett." #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Error saving file: %s" -msgstr "Error ved lagring av TileSet!" +msgstr "Feil ved lagring av filen: %s" #: editor/editor_audio_buses.cpp msgid "Add Bus" @@ -1643,7 +1614,6 @@ msgid "Storing File:" msgstr "Lagrer Fil:" #: editor/editor_export.cpp -#, fuzzy msgid "No export template found at the expected path:" msgstr "Ingen eksportmal funnet på forventet søkesti:" @@ -1770,7 +1740,7 @@ msgstr "Erstatt Alle" #: editor/editor_feature_profile.cpp msgid "Profile must be a valid filename and must not contain '.'" -msgstr "" +msgstr "Profil må være et gyldig filnavn, og kan ikke inneholde '.'" #: editor/editor_feature_profile.cpp #, fuzzy @@ -1797,9 +1767,8 @@ msgid "Class Options:" msgstr "Beskrivelse:" #: editor/editor_feature_profile.cpp -#, fuzzy msgid "Enable Contextual Editor" -msgstr "Åpne den neste Editoren" +msgstr "Aktiver kontekstavhengig redigeringsverktøy" #: editor/editor_feature_profile.cpp #, fuzzy @@ -1817,7 +1786,7 @@ msgstr "Søk i klasser" #: editor/editor_feature_profile.cpp msgid "File '%s' format is invalid, import aborted." -msgstr "" +msgstr "Filformatet til '%s' er ugyldig, importen ble avbrutt." #: editor/editor_feature_profile.cpp msgid "" @@ -1826,9 +1795,8 @@ msgid "" msgstr "" #: editor/editor_feature_profile.cpp -#, fuzzy msgid "Error saving profile to path: '%s'." -msgstr "Error ved lagring av TileSet!" +msgstr "Feil ved lagring av profilen til stien: '%s'." #: editor/editor_feature_profile.cpp msgid "Unset" @@ -1961,8 +1929,8 @@ msgid "Open a File or Directory" msgstr "Åpne ei fil eller mappe" #: 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/editor_properties.cpp editor/import_defaults_editor.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 "Lagre" @@ -2252,9 +2220,8 @@ msgid "Set" msgstr "Sett" #: editor/editor_inspector.cpp -#, fuzzy msgid "Set Multiple:" -msgstr "Sett Mange:" +msgstr "Sett mange:" #: editor/editor_log.cpp msgid "Output:" @@ -2286,9 +2253,8 @@ msgstr "Stopp" #: editor/editor_network_profiler.cpp editor/editor_profiler.cpp #: editor/plugins/animation_state_machine_editor.cpp editor/rename_dialog.cpp -#, fuzzy msgid "Start" -msgstr "Start!" +msgstr "Start" #: editor/editor_network_profiler.cpp msgid "%s/s" @@ -2370,7 +2336,7 @@ msgstr "Kan ikke åpne '%s'. Filen kan ha blitt flyttet eller slettet." #: editor/editor_node.cpp msgid "Error while parsing '%s'." -msgstr "Error ved parsing av '%s'." +msgstr "Feil ved parsing av '%s'." #: editor/editor_node.cpp msgid "Unexpected end of file '%s'." @@ -2401,7 +2367,6 @@ msgid "This operation can't be done without a tree root." msgstr "Denne operasjonen kan ikke gjennomføres uten en trerot." #: editor/editor_node.cpp -#, fuzzy msgid "" "This scene can't be saved because there is a cyclic instancing inclusion.\n" "Please resolve it and then attempt to save again." @@ -2428,7 +2393,7 @@ msgstr "Kan ikke laste MeshLibrary for sammenslåing!" #: editor/editor_node.cpp msgid "Error saving MeshLibrary!" -msgstr "Error ved lagring av MeshLibrary!" +msgstr "Feil ved lagring av MeshLibrary!" #: editor/editor_node.cpp msgid "Can't load TileSet for merging!" @@ -2436,7 +2401,7 @@ msgstr "Kan ikke laste TileSet for sammenslåing!" #: editor/editor_node.cpp msgid "Error saving TileSet!" -msgstr "Error ved lagring av TileSet!" +msgstr "Feil ved lagring av TileSet!" #: editor/editor_node.cpp msgid "" @@ -2619,7 +2584,7 @@ msgstr "Ja" #: editor/editor_node.cpp msgid "Exit the editor?" -msgstr "Avslutt editoren?" +msgstr "Avslutt redigeringsverktøyet?" #: editor/editor_node.cpp msgid "Open Project Manager?" @@ -2686,7 +2651,8 @@ msgstr "" msgid "" "Unable to load addon script from path: '%s' Base type is not EditorPlugin." msgstr "" -"Kan ikke laste addon skript fra bane: Basistype '%s' er ikke en EditorPlugin." +"Kan ikke laste addon-skript fra stien: Basistypen '%s' er ikke en " +"EditorPlugin." #: editor/editor_node.cpp msgid "Unable to load addon script from path: '%s' Script is not in tool mode." @@ -2924,7 +2890,7 @@ msgstr "Versjon:" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Set Up Version Control" -msgstr "" +msgstr "Sett opp versjonskontroll" #: editor/editor_node.cpp msgid "Shut Down Version Control" @@ -2940,9 +2906,8 @@ msgid "Install Android Build Template..." msgstr "" #: editor/editor_node.cpp -#, fuzzy msgid "Open Project Data Folder" -msgstr "Åpne ProsjektManager?" +msgstr "Åpne prosjektdatamappe" #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" @@ -3029,17 +2994,16 @@ msgid "Synchronize Scene Changes" msgstr "Synkroniser Sceneendringer" #: editor/editor_node.cpp -#, fuzzy msgid "" "When this option is enabled, any changes made to the scene in the editor " "will be replicated in the running project.\n" "When used remotely on a device, this is more efficient when the network " "filesystem option is enabled." msgstr "" -"Når denne innstillingen er aktivert, alle endringer gjort til scenen i " -"editoren vil bli replikert i det kjørende spillet.\n" -"Når det brukes eksternt på en enhet, dette er mer effektivt med et " -"nettverksfilsystem." +"Når denne innstillingen er aktivert, vil alle endringer gjort i scenen i " +"redigeringsverktøyet bli gjenspeilet i det kjørende spillet.\n" +"Når det brukes eksternt på en enhet, er dette mer effektivt med et " +"nettverksfilsystem aktivert." #: editor/editor_node.cpp #, fuzzy @@ -3189,9 +3153,8 @@ msgid "Save & Restart" msgstr "Lagre & Avslutt" #: editor/editor_node.cpp -#, fuzzy msgid "Spins when the editor window redraws." -msgstr "Snurrer når editorvinduet rendrer om!" +msgstr "Snurrer når redigeringsvinduet tegner opp på nytt." #: editor/editor_node.cpp #, fuzzy @@ -3279,11 +3242,12 @@ msgid "Open & Run a Script" msgstr "Åpne & Kjør et Skript" #: editor/editor_node.cpp -#, fuzzy msgid "" "The following files are newer on disk.\n" "What action should be taken?" -msgstr "De følgende filene feilet ekstrahering fra pakke:" +msgstr "" +"Følgende filer er nyere på disken.\n" +"Hvilken handling skal utføres?" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/shader_editor_plugin.cpp @@ -3302,7 +3266,7 @@ msgstr "Ny Arvet" #: editor/editor_node.cpp msgid "Load Errors" -msgstr "Last Errors" +msgstr "Last feil" #: editor/editor_node.cpp editor/plugins/tile_map_editor_plugin.cpp msgid "Select" @@ -3310,11 +3274,11 @@ msgstr "Velg" #: editor/editor_node.cpp msgid "Open 2D Editor" -msgstr "Åpne 2D Editor" +msgstr "Åpne 2D-redigeringsverktøy" #: editor/editor_node.cpp msgid "Open 3D Editor" -msgstr "Åpne 3D Editor" +msgstr "Åpne 3D-redigeringsverktøy" #: editor/editor_node.cpp msgid "Open Script Editor" @@ -3326,16 +3290,15 @@ msgstr "Åpne Assets-Bibliotek" #: editor/editor_node.cpp msgid "Open the next Editor" -msgstr "Åpne den neste Editoren" +msgstr "Åpne det neste redigeringsverktøyet" #: editor/editor_node.cpp msgid "Open the previous Editor" -msgstr "Åpne den forrige Editoren" +msgstr "Åpne det forrige redigeringsverktøy" #: editor/editor_node.h -#, fuzzy msgid "Warning!" -msgstr "Advarsler" +msgstr "Advarsel!" #: editor/editor_path.cpp #, fuzzy @@ -3399,9 +3362,8 @@ msgid "Average Time (sec)" msgstr "Gjennomsnittstid (sek)" #: editor/editor_profiler.cpp -#, fuzzy msgid "Frame %" -msgstr "Frame %" +msgstr "Bilde %" #: editor/editor_profiler.cpp msgid "Physics Frame %" @@ -3416,9 +3378,8 @@ msgid "Self" msgstr "Selv" #: editor/editor_profiler.cpp -#, fuzzy msgid "Frame #:" -msgstr "Frame #:" +msgstr "Bilde #:" #: editor/editor_profiler.cpp #, fuzzy @@ -3595,7 +3556,7 @@ msgstr "" #: editor/editor_sub_scene.cpp msgid "Select Node(s) to Import" -msgstr "Velg Node(r) for Importering" +msgstr "Velg node(r) som skal importeres" #: editor/editor_sub_scene.cpp editor/project_manager.cpp #, fuzzy @@ -3645,9 +3606,8 @@ msgid "Retrieving mirrors, please wait..." msgstr "Henter fillager, vennligst vent..." #: editor/export_template_manager.cpp -#, fuzzy msgid "Remove template version '%s'?" -msgstr "Fjern mal versjon '%s'?" +msgstr "Fjern malversjon '%s'?" #: editor/export_template_manager.cpp msgid "Can't open export templates zip." @@ -3663,9 +3623,8 @@ msgid "No version.txt found inside templates." msgstr "Ingen version.txt funnet i mal." #: editor/export_template_manager.cpp -#, fuzzy msgid "Error creating path for templates:" -msgstr "Feil ved laging av sti for mal:\n" +msgstr "Feil ved laging av sti for maler:" #: editor/export_template_manager.cpp msgid "Extracting Export Templates" @@ -3850,14 +3809,12 @@ msgid "Cannot move/rename resources root." msgstr "Kan ikke flytte/endre navn ressursrot" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Cannot move a folder into itself." -msgstr "Kan ikke flytte mappe inn i seg selv.\n" +msgstr "Kan ikke flytte en mappe inn i seg selv." #: editor/filesystem_dock.cpp -#, fuzzy msgid "Error moving:" -msgstr "Error ved flytting:\n" +msgstr "Feil ved flytting:" #: editor/filesystem_dock.cpp #, fuzzy @@ -3865,9 +3822,8 @@ msgid "Error duplicating:" msgstr "Feil ved innlasting:" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Unable to update dependencies:" -msgstr "Kan ikke oppdatere av avhengigheter:\n" +msgstr "Kan ikke oppdatere avhengigheter:" #: editor/filesystem_dock.cpp editor/scene_tree_editor.cpp msgid "No name provided." @@ -4133,9 +4089,8 @@ msgid "Remove from Group" msgstr "Fjern fra Gruppe" #: editor/groups_editor.cpp -#, fuzzy msgid "Group name already exists." -msgstr "ERROR: Animasjonsnavnet finnes allerede!" +msgstr "Gruppenavnet finnes allerede." #: editor/groups_editor.cpp #, fuzzy @@ -4177,9 +4132,8 @@ msgid "Empty groups will be automatically removed." msgstr "" #: editor/groups_editor.cpp -#, fuzzy msgid "Group Editor" -msgstr "Åpne SkriptEditor" +msgstr "Redigeringsverktøy for grupper" #: editor/groups_editor.cpp #, fuzzy @@ -4237,7 +4191,7 @@ msgstr "Importerer Scene..." #: editor/import/resource_importer_scene.cpp msgid "Generating Lightmaps" -msgstr "Genererer Lyskart" +msgstr "Genererer lyskart" #: editor/import/resource_importer_scene.cpp msgid "Generating for Mesh: " @@ -4258,7 +4212,7 @@ msgstr "Ugyldig/ødelagt skript for post-import (sjekk konsoll):" #: editor/import/resource_importer_scene.cpp msgid "Error running post-import script:" -msgstr "Error ved kjøring av post-import script:" +msgstr "Feil ved kjøring av post-import script:" #: editor/import/resource_importer_scene.cpp msgid "Did you return a Node-derived object in the `post_import()` method?" @@ -4268,6 +4222,21 @@ msgstr "" msgid "Saving..." msgstr "Lagrer..." +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Velg Modus" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "Importer" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "Last Standard" + #: editor/import_dock.cpp msgid "%d Files" msgstr "%d Filer" @@ -4334,9 +4303,8 @@ msgid "Copy Params" msgstr "Kopier Parametre" #: editor/inspector_dock.cpp -#, fuzzy msgid "Edit Resource Clipboard" -msgstr "Ressurs-utklippstavle er tom!" +msgstr "Rediger ressurs-utklippstavlen" #: editor/inspector_dock.cpp msgid "Copy Resource" @@ -4447,16 +4415,14 @@ msgid "Create points." msgstr "Slett punkter" #: editor/plugins/abstract_polygon_2d_editor.cpp -#, fuzzy msgid "" "Edit points.\n" "LMB: Move Point\n" "RMB: Erase Point" msgstr "" -"Endre eksisterende polygon:\n" -"Venstreklikk: Flytt Punkt.\n" -"Ctrl+Venstreklikk: Splitt Segment.\n" -"Høyreklikk: Fjern Punkt." +"Rediger punkter.\n" +"Venstreklikk: Flytt punkt\n" +"Høyreklikk: Fjern punkt" #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/animation_blend_space_1d_editor.cpp @@ -4471,7 +4437,7 @@ msgstr "Rediger Poly" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "Insert Point" -msgstr "Sett inn Punkt" +msgstr "Sett inn punkt" #: editor/plugins/abstract_polygon_2d_editor.cpp #, fuzzy @@ -4588,9 +4554,8 @@ msgid "Open Animation Node" msgstr "Animasjonsnode" #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Triangle already exists." -msgstr "ERROR: Animasjonsnavnet finnes allerede!" +msgstr "Triangelet finnes allerede." #: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy @@ -4792,14 +4757,12 @@ msgid "Remove Animation" msgstr "Fjern Animasjon" #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "Invalid animation name!" -msgstr "ERROR: Ugyldig animasjonsnavn!" +msgstr "Ugyldig animasjonsnavn!" #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "Animation name already exists!" -msgstr "ERROR: Animasjonsnavnet finnes allerede!" +msgstr "Animasjonsnavnet finnes allerede!" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -4824,14 +4787,12 @@ msgid "Duplicate Animation" msgstr "Dupliser Animasjon" #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "No animation to copy!" -msgstr "ERROR: Ingen animasjon å kopiere!" +msgstr "Ingen animasjon å kopiere!" #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "No animation resource on clipboard!" -msgstr "ERROR: Ingen animasjonsressurs på utklippstavlen!" +msgstr "Ingen animasjonsressurs på utklippstavlen!" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Pasted Animation" @@ -4842,9 +4803,8 @@ msgid "Paste Animation" msgstr "Lim inn Animasjon" #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "No animation to edit!" -msgstr "ERROR: Ingen animasjon å endre!" +msgstr "Ingen animasjon å redigere!" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Play selected animation backwards from current pos. (A)" @@ -4968,7 +4928,7 @@ msgstr "Animasjonsnavn:" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp msgid "Error!" -msgstr "Error!" +msgstr "Feil!" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Blend Times:" @@ -4990,9 +4950,8 @@ msgid "Move Node" msgstr "Flytt Modus" #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Transition exists!" -msgstr "Overgang" +msgstr "Overgang eksisterer!" #: editor/plugins/animation_state_machine_editor.cpp #, fuzzy @@ -5002,7 +4961,7 @@ msgstr "Overgang" #: editor/plugins/animation_state_machine_editor.cpp #: modules/visual_script/visual_script_editor.cpp msgid "Add Node" -msgstr "" +msgstr "Legg til node" #: editor/plugins/animation_state_machine_editor.cpp msgid "End" @@ -5313,6 +5272,7 @@ msgid "Failed SHA-256 hash check" msgstr "Feilet sha256 hash-sjekk" #: editor/plugins/asset_library_editor_plugin.cpp +#, fuzzy msgid "Asset Download Error:" msgstr "Asset Nedlasting Error:" @@ -5350,7 +5310,7 @@ msgstr "Prøv på nytt" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Download Error" -msgstr "Nedlastningserror" +msgstr "Nedlastningsfeil" #: editor/plugins/asset_library_editor_plugin.cpp #, fuzzy @@ -5424,7 +5384,6 @@ msgid "Sort:" msgstr "Sorter:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "Kategori:" @@ -6026,7 +5985,7 @@ msgstr "Plasser Utvalg I Midten" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Frame Selection" -msgstr "" +msgstr "Bildeutvalg" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Preview Canvas Scale" @@ -6112,7 +6071,7 @@ msgstr "Lag Node" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp msgid "Error instancing scene from %s" -msgstr "Error ved instansiering av scene fra %s" +msgstr "Feil ved instansiering av scene fra %s" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy @@ -6138,7 +6097,7 @@ msgstr "Rediger Poly" #: editor/plugins/collision_polygon_editor_plugin.cpp msgid "Edit Poly (Remove Point)" -msgstr "Rediger Poly (Fjern Punkt)" +msgstr "Rediger Poly (fjern punkt)" #: editor/plugins/collision_shape_2d_editor_plugin.cpp #, fuzzy @@ -6498,11 +6457,12 @@ msgid "Remove item %d?" msgstr "Fjern element %d?" #: editor/plugins/mesh_library_editor_plugin.cpp -#, fuzzy msgid "" "Update from existing scene?:\n" "%s" -msgstr "Oppdater fra Scene" +msgstr "" +"Oppdater fra eksisterende scene?:\n" +"%s" #: editor/plugins/mesh_library_editor_plugin.cpp #, fuzzy @@ -6915,9 +6875,8 @@ msgid "Paint Bone Weights" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Open Polygon 2D UV editor." -msgstr "Åpne 2D Editor" +msgstr "Åpne 2D-redigeringsverktøy for polygon-UV" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" @@ -7069,7 +7028,7 @@ msgstr "Skaler Polygon" #: editor/plugins/resource_preloader_editor_plugin.cpp msgid "ERROR: Couldn't load resource!" -msgstr "ERROR: Kunne ikke laste ressurs!" +msgstr "FEIL: Kunne ikke laste ressurs!" #: editor/plugins/resource_preloader_editor_plugin.cpp msgid "Add Resource" @@ -7132,16 +7091,12 @@ msgid "Clear Recent Files" msgstr "Fjern Nylige Filer" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Close and save changes?" -msgstr "" -"Lukk og lagre endringer?\n" -"\"" +msgstr "Lukke og lagre endringer?" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Error writing TextFile:" -msgstr "Error ved lagring av TileSet!" +msgstr "Feil ved lagring av TextFile:" #: editor/plugins/script_editor_plugin.cpp #, fuzzy @@ -7149,29 +7104,24 @@ msgid "Could not load file at:" msgstr "Kunne ikke opprette mappe." #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Error saving file!" -msgstr "Error ved lagring av TileSet!" +msgstr "Feil ved lagring av filen!" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Error while saving theme." -msgstr "Error ved lasting av tema" +msgstr "Feil ved lagring av tema" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Error Saving" -msgstr "Error ved lagring" +msgstr "Feil ved lagring" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Error importing theme." -msgstr "Error ved importering av tema" +msgstr "Feil ved importering av tema." #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Error Importing" -msgstr "Error ved importering" +msgstr "Feil ved importering" #: editor/plugins/script_editor_plugin.cpp #, fuzzy @@ -7211,11 +7161,11 @@ msgstr "Importer Tema" #: editor/plugins/script_editor_plugin.cpp msgid "Error while saving theme" -msgstr "Error ved lasting av tema" +msgstr "Feil ved lagring av tema" #: editor/plugins/script_editor_plugin.cpp msgid "Error saving" -msgstr "Error ved lagring" +msgstr "Feil ved lagring" #: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." @@ -7741,9 +7691,8 @@ msgid "Yaw" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Size" -msgstr "Størrelse: " +msgstr "Størrelse" #: editor/plugins/spatial_editor_plugin.cpp msgid "Objects Drawn" @@ -8904,11 +8853,12 @@ msgid "Delete selected Rect." msgstr "Slett valgte filer?" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "" "Select current edited sub-tile.\n" "Click on another Tile to edit it." -msgstr "Velg Gjeldende Mappe" +msgstr "" +"Velg gjeldende redigerte underflis.\n" +"Klikk på en annen flis for å redigere den." #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy @@ -8916,13 +8866,16 @@ msgid "Delete polygon." msgstr "Slett punkter" #: 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 "Velg Gjeldende Mappe" +msgstr "" +"Venstreklikk: Sett bit på.\n" +"Høyreklikk: Sett bit av.\n" +"Skift+venstreklikk: Sett jokertegn-bit.\n" +"Klikk på en annen flis for å redigere den." #: editor/plugins/tile_set_editor_plugin.cpp msgid "" @@ -8938,11 +8891,12 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "" "Select sub-tile to change its z index.\n" "Click on another Tile to edit it." -msgstr "Velg Gjeldende Mappe" +msgstr "" +"Velg underflis for å endre z-indeksen.\n" +"Klikk på en annen flis for å redigere den." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Set Tile Region" @@ -10143,9 +10097,8 @@ msgid "Export Project" msgstr "Eksporter Prosjekt" #: editor/project_export.cpp -#, fuzzy msgid "Export mode?" -msgstr "Eksporter Prosjekt" +msgstr "Eksportmodus?" #: editor/project_export.cpp #, fuzzy @@ -10235,8 +10188,8 @@ msgid "" "Couldn't load project.godot in project path (error %d). It may be missing or " "corrupted." msgstr "" -"Kunne ikke laste project.godot i prosjekt sti (error %d). Den kan være " -"manglet eller korruptert." +"Kunne ikke laste project.godot i prosjektstien (feil %d). Den kan mangle " +"eller være korrupt." #: editor/project_manager.cpp msgid "Couldn't edit project.godot in project path." @@ -10407,25 +10360,28 @@ 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 -#, 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)" +msgstr "" +"Fjern %s prosjekter fra listen?\n" +"Innhold i prosjektmappene vil ikke påvirkes." #: 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)" +msgstr "" +"Fjern dette prosjektet fra listen?\n" +"Innhold i prosjektmappen vil ikke påvirkes." #: editor/project_manager.cpp -#, fuzzy msgid "" "Remove all missing projects from the list?\n" "The project folders' contents won't be modified." -msgstr "Fjern prosjekt fra listen? (Mappeinnhold vil ikke bli modifisert)" +msgstr "" +"Fjern alle manglende prosjekter fra listen?\n" +"Innhold i prosjektmappene vil ikke påvirkes." #: editor/project_manager.cpp msgid "" @@ -10525,9 +10481,8 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -#, fuzzy msgid "An action with the name '%s' already exists." -msgstr "ERROR: Animasjonsnavnet finnes allerede!" +msgstr "En handling med navnet '%s' finnes allerede." #: editor/project_settings_editor.cpp msgid "Rename Input Action Event" @@ -10828,10 +10783,14 @@ msgstr "" msgid "Plugins" msgstr "Innstikkmoduler" -#: editor/property_editor.cpp +#: editor/project_settings_editor.cpp #, fuzzy +msgid "Import Defaults" +msgstr "Last Standard" + +#: editor/property_editor.cpp msgid "Preset..." -msgstr "Preset..." +msgstr "Forhåndsinnstilt..." #: editor/property_editor.cpp msgid "Zero" @@ -10892,9 +10851,8 @@ msgid "Batch Rename" msgstr "Endre navn" #: editor/rename_dialog.cpp -#, fuzzy msgid "Replace:" -msgstr "Erstatt: " +msgstr "Erstatt:" #: editor/rename_dialog.cpp msgid "Prefix:" @@ -10933,9 +10891,8 @@ msgid "Node type" msgstr "Finn Node Type" #: editor/rename_dialog.cpp -#, fuzzy msgid "Current scene name" -msgstr "Gjeldende scene er ikke lagret. Åpne likevel?" +msgstr "Navn på gjeldende scene" #: editor/rename_dialog.cpp #, fuzzy @@ -11134,14 +11091,12 @@ msgid "Make node as Root" msgstr "Lagre Scene" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes and any children?" -msgstr "Kutt Noder" +msgstr "Slett %d noder og eventuelle barn?" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes?" -msgstr "Kutt Noder" +msgstr "Slett %d noder?" #: editor/scene_tree_dock.cpp msgid "Delete the root node \"%s\"?" @@ -11152,9 +11107,8 @@ msgid "Delete node \"%s\" and its children?" msgstr "" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete node \"%s\"?" -msgstr "Kutt Noder" +msgstr "Slett noden \"%s\"?" #: editor/scene_tree_dock.cpp msgid "Can not perform with the root node." @@ -11446,19 +11400,16 @@ msgid "Select a Node" msgstr "" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Path is empty." -msgstr "Ressurs-utklippstavle er tom!" +msgstr "Stien er tom." #: editor/script_create_dialog.cpp -#, fuzzy msgid "Filename is empty." -msgstr "Ressurs-utklippstavle er tom!" +msgstr "Filnavnet er tomt." #: editor/script_create_dialog.cpp -#, fuzzy msgid "Path is not local." -msgstr "Sti leder ikke Node!" +msgstr "Stien er ikke lokal." #: editor/script_create_dialog.cpp #, fuzzy @@ -11505,9 +11456,8 @@ msgid "N/A" msgstr "" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Open Script / Choose Location" -msgstr "Åpne SkriptEditor" +msgstr "Åpne skript / Velg plassering" #: editor/script_create_dialog.cpp #, fuzzy @@ -11602,19 +11552,16 @@ msgid "Warning:" msgstr "Advarsler:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Error:" -msgstr "Error!" +msgstr "Feil:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Error" -msgstr "Last Errors" +msgstr "C++-feil" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Error:" -msgstr "Last Errors" +msgstr "C++-feil:" #: editor/script_editor_debugger.cpp #, fuzzy @@ -11645,9 +11592,8 @@ msgid "Child process connected." msgstr "Frakoblet" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Copy Error" -msgstr "Last Errors" +msgstr "Kopier feil" #: editor/script_editor_debugger.cpp msgid "Video RAM" @@ -11912,7 +11858,7 @@ msgstr "" #: modules/gdscript/gdscript_functions.cpp msgid "Not a script with an instance" -msgstr "" +msgstr "Ikke et skript med en instans" #: modules/gdscript/gdscript_functions.cpp msgid "Not based on a script" @@ -12278,25 +12224,24 @@ msgid "Name is not a valid identifier:" msgstr "Navn er ikke en gyldig identifikator:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Name already in use by another func/var/signal:" -msgstr "Navn er allerede i bruk av en annen func/var/signal:" +msgstr "Navnet er allerede i bruk av annen funk/var/signal:" #: modules/visual_script/visual_script_editor.cpp msgid "Rename Function" -msgstr "" +msgstr "Endre navn på funksjonen" #: modules/visual_script/visual_script_editor.cpp msgid "Rename Variable" -msgstr "" +msgstr "Endre navn på variabelen" #: modules/visual_script/visual_script_editor.cpp msgid "Rename Signal" -msgstr "" +msgstr "Endre navn på signalet" #: modules/visual_script/visual_script_editor.cpp msgid "Add Function" -msgstr "" +msgstr "Legg til funksjon" #: modules/visual_script/visual_script_editor.cpp #, fuzzy @@ -12305,11 +12250,11 @@ msgstr "Fjern punkt" #: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" -msgstr "" +msgstr "Legg til variabel" #: modules/visual_script/visual_script_editor.cpp msgid "Add Signal" -msgstr "" +msgstr "Legg til signal" #: modules/visual_script/visual_script_editor.cpp #, fuzzy @@ -12323,7 +12268,7 @@ msgstr "Fjern punkt" #: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" -msgstr "" +msgstr "Endre uttrykk" #: modules/visual_script/visual_script_editor.cpp msgid "Remove VisualScript Nodes" @@ -12343,6 +12288,8 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature." msgstr "" +"Hold Ctrl for å slippe en Getter. Hold Skift for å slippe en generisk " +"signatur." #: modules/visual_script/visual_script_editor.cpp #, fuzzy @@ -12351,7 +12298,7 @@ msgstr "Hold Meta for å slippe en enkel referanse til noden." #: modules/visual_script/visual_script_editor.cpp msgid "Hold Ctrl to drop a simple reference to the node." -msgstr "Hold Ctrl for å slippe en simpel referanse til noden." +msgstr "Hold Ctrl for å slippe en enkel referanse til noden." #: modules/visual_script/visual_script_editor.cpp #, fuzzy @@ -12471,19 +12418,19 @@ msgstr "Fjern Funksjon" #: modules/visual_script/visual_script_editor.cpp msgid "Remove Variable" -msgstr "" +msgstr "Fjern variabel" #: modules/visual_script/visual_script_editor.cpp msgid "Editing Variable:" -msgstr "" +msgstr "Redigerer variabel:" #: modules/visual_script/visual_script_editor.cpp msgid "Remove Signal" -msgstr "" +msgstr "Fjern signal" #: modules/visual_script/visual_script_editor.cpp msgid "Editing Signal:" -msgstr "" +msgstr "Redigerer signal:" #: modules/visual_script/visual_script_editor.cpp #, fuzzy @@ -12577,7 +12524,7 @@ msgstr "Sti leder ikke Node!" #: modules/visual_script/visual_script_func_nodes.cpp msgid "Invalid index property name '%s' in node %s." -msgstr "Ugyldig indeks egenskap navn '%s' i node %s." +msgstr "Ugyldig navn for indeksegenskap '%s' i noden %s." #: modules/visual_script/visual_script_nodes.cpp msgid ": Invalid argument of type: " @@ -12927,6 +12874,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -13115,9 +13070,8 @@ msgid "Saving lightmaps" msgstr "Genererer Lyskart" #: scene/3d/baked_lightmap.cpp -#, fuzzy msgid "Done" -msgstr "Ferdig!" +msgstr "Ferdig" #: scene/3d/collision_object.cpp msgid "" @@ -13185,11 +13139,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" @@ -13319,9 +13268,8 @@ msgid "In node '%s', invalid animation: '%s'." msgstr "" #: scene/animation/animation_tree.cpp -#, fuzzy msgid "Invalid animation: '%s'." -msgstr "ERROR: Ugyldig animasjonsnavn!" +msgstr "Ugyldig animasjon: '%s'." #: scene/animation/animation_tree.cpp #, fuzzy diff --git a/editor/translations/nl.po b/editor/translations/nl.po index 1202219ee6..52c63ffa85 100644 --- a/editor/translations/nl.po +++ b/editor/translations/nl.po @@ -1899,8 +1899,8 @@ msgid "Open a File or Directory" msgstr "Bestand of map openen" #: 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/editor_properties.cpp editor/import_defaults_editor.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 "Opslaan" @@ -4113,6 +4113,21 @@ msgstr "" msgid "Saving..." msgstr "Opslaan..." +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Selecteermodus" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "Importeren" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "Laad standaard" + #: editor/import_dock.cpp msgid "%d Files" msgstr "%d Bestanden" @@ -5185,7 +5200,6 @@ msgid "Sort:" msgstr "Sorteren op:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "Categorie:" @@ -10471,6 +10485,11 @@ msgstr "Automatisch Laden" msgid "Plugins" msgstr "Plugins" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "Laad standaard" + #: editor/property_editor.cpp msgid "Preset..." msgstr "Voorinstelling..." @@ -12523,6 +12542,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "Lege CollisionPolygon2D hebben geen botsingsfunctie." +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12840,11 +12867,6 @@ msgstr "" "GIProbes worden niet ondersteund door het GLES2 grafische stuurprogramma.\n" "Gebruik in plaats daarvan een BakedLightmap." -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/or.po b/editor/translations/or.po index 269276221d..19b87260d6 100644 --- a/editor/translations/or.po +++ b/editor/translations/or.po @@ -1794,8 +1794,8 @@ 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/editor_properties.cpp editor/import_defaults_editor.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 "" @@ -3871,6 +3871,18 @@ msgstr "" msgid "Saving..." msgstr "" +#: editor/import_defaults_editor.cpp +msgid "Select Importer" +msgstr "" + +#: editor/import_defaults_editor.cpp +msgid "Importer:" +msgstr "" + +#: editor/import_defaults_editor.cpp +msgid "Reset to Defaults" +msgstr "" + #: editor/import_dock.cpp msgid "%d Files" msgstr "" @@ -4922,7 +4934,6 @@ msgid "Sort:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "" @@ -9950,6 +9961,10 @@ msgstr "" msgid "Plugins" msgstr "" +#: editor/project_settings_editor.cpp +msgid "Import Defaults" +msgstr "" + #: editor/property_editor.cpp msgid "Preset..." msgstr "" @@ -11899,6 +11914,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12154,11 +12177,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/pl.po b/editor/translations/pl.po index 3cf039dd3b..173e86753f 100644 --- a/editor/translations/pl.po +++ b/editor/translations/pl.po @@ -51,7 +51,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-02-21 10:51+0000\n" +"PO-Revision-Date: 2021-02-27 00:47+0000\n" "Last-Translator: Tomek <kobewi4e@gmail.com>\n" "Language-Team: Polish <https://hosted.weblate.org/projects/godot-engine/" "godot/pl/>\n" @@ -1891,8 +1891,8 @@ msgid "Open a File or Directory" msgstr "Otwórz plik lub katalog" #: 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/editor_properties.cpp editor/import_defaults_editor.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 "Zapisz" @@ -2563,9 +2563,8 @@ msgstr "" "Nie można włączyć dodatku: \"%s\" - parsowanie konfiguracji nie powiodło się." #: editor/editor_node.cpp -#, fuzzy msgid "Unable to find script field for addon plugin at: '%s'." -msgstr "Nie można odnaleźć pola skryptu w dodatku: \"res://addons/%s\"." +msgstr "Nie można odnaleźć pola skryptu w dodatku: \"%s\"." #: editor/editor_node.cpp msgid "Unable to load addon script from path: '%s'." @@ -4092,6 +4091,21 @@ msgstr "Czy zwracasz obiekt dziedziczący po Node w metodzie `post_import()`?" msgid "Saving..." msgstr "Zapisywanie..." +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Tryb zaznaczenia" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "Importuj" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "Użyj domyślnie sRGB" + #: editor/import_dock.cpp msgid "%d Files" msgstr "%d plików" @@ -5060,9 +5074,8 @@ msgid "Got:" msgstr "Otrzymano:" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Failed SHA-256 hash check" -msgstr "Nie udało się przeprowadzić testu integralności sha256" +msgstr "Test SHA-256 nieudany" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Asset Download Error:" @@ -5165,7 +5178,6 @@ msgid "Sort:" msgstr "Sortuj:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "Kategoria:" @@ -8551,7 +8563,7 @@ msgstr "Edytuj wielokąt nawigacji" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Paste Tile Bitmask" -msgstr "Wklej maskę bitową Kafelka" +msgstr "Wklej maskę bitową kafelka" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Clear Tile Bitmask" @@ -10435,6 +10447,11 @@ msgstr "Autoładowanie" msgid "Plugins" msgstr "Wtyczki" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "Wczytaj domyślny" + #: editor/property_editor.cpp msgid "Preset..." msgstr "Ustawienie predefiniowane..." @@ -10684,14 +10701,12 @@ msgid "Instance Child Scene" msgstr "Dodaj instancję sceny" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Can't paste root node into the same scene." -msgstr "Nie można operować węzłami z innej sceny!" +msgstr "Nie można wkleić korzenia do tej samej sceny." #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Paste Node(s)" -msgstr "Wklej węzły" +msgstr "Wklej węzeł/y" #: editor/scene_tree_dock.cpp msgid "Detach Script" @@ -10820,9 +10835,8 @@ msgid "Attach Script" msgstr "Dołącz skrypt" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Cut Node(s)" -msgstr "Wytnij węzły" +msgstr "Wytnij węzeł/y" #: editor/scene_tree_dock.cpp msgid "Remove Node(s)" @@ -12486,6 +12500,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "Pusty CollisionPolygon2D nie ma wpływu na kolizje." +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12807,12 +12829,6 @@ msgstr "" "GIProbes nie są obsługiwane przez sterownik wideo GLES2.\n" "Zamiast tego użyj BakedLightmap." -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" -"Węzeł InterpolatedCamera jest przestarzały i będzie usunięty w Godocie 4.0." - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "SpotLight z kątem szerszym niż 90 stopni nie może rzucać cieni." @@ -13152,6 +13168,12 @@ msgstr "Varying może być przypisane tylko w funkcji wierzchołków." msgid "Constants cannot be modified." msgstr "Stałe nie mogą być modyfikowane." +#~ msgid "" +#~ "InterpolatedCamera has been deprecated and will be removed in Godot 4.0." +#~ msgstr "" +#~ "Węzeł InterpolatedCamera jest przestarzały i będzie usunięty w Godocie " +#~ "4.0." + #~ msgid "No" #~ msgstr "Nie" @@ -14772,9 +14794,6 @@ msgstr "Stałe nie mogą być modyfikowane." #~ msgid "Use Default Light" #~ msgstr "Użyj domyślnego światła" -#~ msgid "Use Default sRGB" -#~ msgstr "Użyj domyślnie sRGB" - #~ msgid "Ambient Light Color:" #~ msgstr "Kolor światła otoczenia:" diff --git a/editor/translations/pr.po b/editor/translations/pr.po index ca53ec3af2..09d967e01d 100644 --- a/editor/translations/pr.po +++ b/editor/translations/pr.po @@ -1862,8 +1862,8 @@ 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/editor_properties.cpp editor/import_defaults_editor.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 "" @@ -4004,6 +4004,19 @@ msgstr "" msgid "Saving..." msgstr "" +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Slit th' Node" + +#: editor/import_defaults_editor.cpp +msgid "Importer:" +msgstr "" + +#: editor/import_defaults_editor.cpp +msgid "Reset to Defaults" +msgstr "" + #: editor/import_dock.cpp #, fuzzy msgid "%d Files" @@ -5091,7 +5104,6 @@ msgid "Sort:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "" @@ -10291,6 +10303,10 @@ msgstr "" msgid "Plugins" msgstr "" +#: editor/project_settings_editor.cpp +msgid "Import Defaults" +msgstr "" + #: editor/property_editor.cpp msgid "Preset..." msgstr "" @@ -12346,6 +12362,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12601,11 +12625,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/pt.po b/editor/translations/pt.po index 939735e8da..28325d59bc 100644 --- a/editor/translations/pt.po +++ b/editor/translations/pt.po @@ -1867,8 +1867,8 @@ msgid "Open a File or Directory" msgstr "Abrir um Ficheiro ou Diretoria" #: 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/editor_properties.cpp editor/import_defaults_editor.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 "Guardar" @@ -4076,6 +4076,21 @@ msgstr "Devolveu um objeto derivado de Nó no método `post_import()`?" msgid "Saving..." msgstr "A guardar..." +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Modo Seleção" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "Importar" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "Carregar Predefinição" + #: editor/import_dock.cpp msgid "%d Files" msgstr "%d Ficheiros" @@ -5147,7 +5162,6 @@ msgid "Sort:" msgstr "Ordenar:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "Categoria:" @@ -10404,6 +10418,11 @@ msgstr "Carregamento automático" msgid "Plugins" msgstr "Plugins" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "Carregar Predefinição" + #: editor/property_editor.cpp msgid "Preset..." msgstr "Predefinição..." @@ -12459,6 +12478,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "Um CollisionPolygon2D vazio não tem efeito na colisão." +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12772,11 +12799,6 @@ msgstr "" "Sondas GI não são suportadas pelo driver vídeo GLES2.\n" "Em vez disso, use um BakedLightmap." -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "InterpolatedCamerda foi descontinuada e será removida no Godot 4.0." - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "Uma SpotLight com ângulo superior a 90 graus não cria sombras." @@ -13117,6 +13139,10 @@ msgstr "Variações só podem ser atribuídas na função vértice." msgid "Constants cannot be modified." msgstr "Constantes não podem ser modificadas." +#~ msgid "" +#~ "InterpolatedCamera has been deprecated and will be removed in Godot 4.0." +#~ msgstr "InterpolatedCamerda foi descontinuada e será removida no Godot 4.0." + #~ msgid "No" #~ msgstr "Não" diff --git a/editor/translations/pt_BR.po b/editor/translations/pt_BR.po index f4535819c2..4270648266 100644 --- a/editor/translations/pt_BR.po +++ b/editor/translations/pt_BR.po @@ -1959,8 +1959,8 @@ msgid "Open a File or Directory" msgstr "Abrir Arquivo ou Diretório" #: 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/editor_properties.cpp editor/import_defaults_editor.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 "Salvar" @@ -4173,6 +4173,21 @@ msgstr "Você retornou um objeto derivado de Nó no método `post_import()`?" msgid "Saving..." msgstr "Salvando..." +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Modo de Seleção" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "Importar" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "Usar sRGB Padrão" + #: editor/import_dock.cpp msgid "%d Files" msgstr "%d Arquivos" @@ -5250,7 +5265,6 @@ msgid "Sort:" msgstr "Ordenar:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "Categoria:" @@ -10519,6 +10533,11 @@ msgstr "O AutoLoad" msgid "Plugins" msgstr "Plugins" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "Carregar Padrão" + #: editor/property_editor.cpp msgid "Preset..." msgstr "Predefinição..." @@ -12576,6 +12595,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "Um nó CollisionPolygon2D vazio não é efetivo para colisão." +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12895,11 +12922,6 @@ msgstr "" "GIProbes não são suportados pelo driver de vídeo GLES2.\n" "Use um BakedLightmap em vez disso." -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "IntepolatedCamera foi depreciada e será removida no Godot 4.0." - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "Um SpotLight com um ângulo maior que 90 graus não pode criar sombras." @@ -13243,6 +13265,10 @@ msgstr "Variáveis só podem ser atribuídas na função de vértice." msgid "Constants cannot be modified." msgstr "Constantes não podem serem modificadas." +#~ msgid "" +#~ "InterpolatedCamera has been deprecated and will be removed in Godot 4.0." +#~ msgstr "IntepolatedCamera foi depreciada e será removida no Godot 4.0." + #~ msgid "No" #~ msgstr "Não" @@ -14902,9 +14928,6 @@ msgstr "Constantes não podem serem modificadas." #~ msgid "Use Default Light" #~ msgstr "Usar Luz Padrão" -#~ msgid "Use Default sRGB" -#~ msgstr "Usar sRGB Padrão" - #~ msgid "Default Light Normal:" #~ msgstr "Luz Normal Padrão:" diff --git a/editor/translations/ro.po b/editor/translations/ro.po index 1843f25bf0..33f5264d71 100644 --- a/editor/translations/ro.po +++ b/editor/translations/ro.po @@ -1874,8 +1874,8 @@ msgid "Open a File or Directory" msgstr "Deschideți un Fişier sau Director" #: 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/editor_properties.cpp editor/import_defaults_editor.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 "Salvați" @@ -4056,6 +4056,21 @@ msgstr "" msgid "Saving..." msgstr "Se Salvează..." +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Selectare mod" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "Importare" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "Încărcați Implicit" + #: editor/import_dock.cpp msgid "%d Files" msgstr "%d Fișiere" @@ -5153,7 +5168,6 @@ msgid "Sort:" msgstr "Sorare:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "Categorie:" @@ -10451,6 +10465,11 @@ msgstr "" msgid "Plugins" msgstr "Plugin-uri" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "Încărcați Implicit" + #: editor/property_editor.cpp msgid "Preset..." msgstr "Presetare..." @@ -12477,6 +12496,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12737,11 +12764,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/ru.po b/editor/translations/ru.po index a38646e2e8..eec73e585a 100644 --- a/editor/translations/ru.po +++ b/editor/translations/ru.po @@ -96,7 +96,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-02-21 10:51+0000\n" +"PO-Revision-Date: 2021-02-27 00:47+0000\n" "Last-Translator: Danil Alexeev <danil@alexeev.xyz>\n" "Language-Team: Russian <https://hosted.weblate.org/projects/godot-engine/" "godot/ru/>\n" @@ -1939,8 +1939,8 @@ 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/editor_properties.cpp editor/import_defaults_editor.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 "Сохранить" @@ -2615,9 +2615,8 @@ msgstr "" "конфигурации." #: editor/editor_node.cpp -#, fuzzy msgid "Unable to find script field for addon plugin at: '%s'." -msgstr "Не удаётся найти поле script для плагина: «res://addons/%s»." +msgstr "Не удаётся найти поле script для плагина: «%s»." #: editor/editor_node.cpp msgid "Unable to load addon script from path: '%s'." @@ -4144,6 +4143,21 @@ msgstr "Вы вернули производный от Node объект в м msgid "Saving..." msgstr "Сохранение..." +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Режим выделения" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "Импорт" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "Использовать sRGB" + #: editor/import_dock.cpp msgid "%d Files" msgstr "%d файлов" @@ -5100,7 +5114,7 @@ msgstr "Время ожидания." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." -msgstr "Несовпадение хэша загрузки, возможно файл был изменён." +msgstr "Несовпадение хеша загрузки, возможно файл был изменён." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Expected:" @@ -5111,9 +5125,8 @@ msgid "Got:" msgstr "Получено:" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Failed SHA-256 hash check" -msgstr "Не удалось проверить sha256 хэш" +msgstr "Не удалось проверить хеш SHA-256" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Asset Download Error:" @@ -5216,7 +5229,6 @@ msgid "Sort:" msgstr "Сортировка:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "Категория:" @@ -10479,6 +10491,11 @@ msgstr "Автозагрузка" msgid "Plugins" msgstr "Плагины" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "Загрузить по умолчанию" + #: editor/property_editor.cpp msgid "Preset..." msgstr "Предустановка..." @@ -10730,14 +10747,12 @@ msgid "Instance Child Scene" msgstr "Добавить дочернюю сцену" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Can't paste root node into the same scene." -msgstr "Не могу работать с узлами из внешней сцены!" +msgstr "Невозможно вставить корневой узел в ту же сцену." #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Paste Node(s)" -msgstr "Вставить узлы" +msgstr "Вставить узел(узлы)" #: editor/scene_tree_dock.cpp msgid "Detach Script" @@ -10867,9 +10882,8 @@ msgid "Attach Script" msgstr "Прикрепить скрипт" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Cut Node(s)" -msgstr "Вырезать узлы" +msgstr "Вырезать узел(узлы)" #: editor/scene_tree_dock.cpp msgid "Remove Node(s)" @@ -12526,6 +12540,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "Пустой CollisionPolygon2D не влияет на столкновения." +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12848,11 +12870,6 @@ msgstr "" "GIProbes не поддерживаются видеодрайвером GLES2.\n" "Вместо этого используйте BakedLightmap." -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "InterpolatedCamera устарела и будет удалена в Godot 4.0." - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "SpotLight с углом более 90 градусов не может отбрасывать тени." @@ -13193,6 +13210,10 @@ msgstr "Изменения могут быть назначены только msgid "Constants cannot be modified." msgstr "Константы не могут быть изменены." +#~ msgid "" +#~ "InterpolatedCamera has been deprecated and will be removed in Godot 4.0." +#~ msgstr "InterpolatedCamera устарела и будет удалена в Godot 4.0." + #~ msgid "No" #~ msgstr "Нет" @@ -14856,9 +14877,6 @@ msgstr "Константы не могут быть изменены." #~ msgid "Use Default Light" #~ msgstr "Использовать стандартный свет" -#~ msgid "Use Default sRGB" -#~ msgstr "Использовать sRGB" - #~ msgid "Default Light Normal:" #~ msgstr "Образец стандартного освещения:" diff --git a/editor/translations/si.po b/editor/translations/si.po index 062cf64646..0c3a01f0e4 100644 --- a/editor/translations/si.po +++ b/editor/translations/si.po @@ -1818,8 +1818,8 @@ 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/editor_properties.cpp editor/import_defaults_editor.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 "" @@ -3900,6 +3900,18 @@ msgstr "" msgid "Saving..." msgstr "" +#: editor/import_defaults_editor.cpp +msgid "Select Importer" +msgstr "" + +#: editor/import_defaults_editor.cpp +msgid "Importer:" +msgstr "" + +#: editor/import_defaults_editor.cpp +msgid "Reset to Defaults" +msgstr "" + #: editor/import_dock.cpp msgid "%d Files" msgstr "" @@ -4962,7 +4974,6 @@ msgid "Sort:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "" @@ -10029,6 +10040,10 @@ msgstr "" msgid "Plugins" msgstr "" +#: editor/project_settings_editor.cpp +msgid "Import Defaults" +msgstr "" + #: editor/property_editor.cpp msgid "Preset..." msgstr "" @@ -11997,6 +12012,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12252,11 +12275,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/sk.po b/editor/translations/sk.po index 9c179f743b..68da1b1221 100644 --- a/editor/translations/sk.po +++ b/editor/translations/sk.po @@ -1851,8 +1851,8 @@ msgid "Open a File or Directory" msgstr "Otvoriť súbor / priečinok" #: 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/editor_properties.cpp editor/import_defaults_editor.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 "Uložiť" @@ -4040,6 +4040,21 @@ msgstr "Vrátili ste Node-derived objekt v `post_import()` metóde?" msgid "Saving..." msgstr "Ukladám..." +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Vybrať Režim" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "Import" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "Načítať predvolené" + #: editor/import_dock.cpp msgid "%d Files" msgstr "%d Súbory" @@ -5109,7 +5124,6 @@ msgid "Sort:" msgstr "Zoradiť:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "Kategória:" @@ -10346,6 +10360,11 @@ msgstr "" msgid "Plugins" msgstr "Pluginy" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "Načítať predvolené" + #: editor/property_editor.cpp msgid "Preset..." msgstr "" @@ -12371,6 +12390,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "Prázdny CollisionPolygon2D nemá žiaden efekt na kolíziu." +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12642,11 +12669,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/sl.po b/editor/translations/sl.po index 1c6d1c566b..69819f0a36 100644 --- a/editor/translations/sl.po +++ b/editor/translations/sl.po @@ -1936,8 +1936,8 @@ msgid "Open a File or Directory" msgstr "Odpri Datoteko ali Mapo" #: 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/editor_properties.cpp editor/import_defaults_editor.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 "Shrani" @@ -4209,6 +4209,21 @@ msgstr "" msgid "Saving..." msgstr "Shranjevanje..." +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Izberi Način" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "Uvozi" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "Naložite Prevzeto" + #: editor/import_dock.cpp #, fuzzy msgid "%d Files" @@ -5349,7 +5364,6 @@ msgid "Sort:" msgstr "Razvrsti:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "Kategorija:" @@ -10687,6 +10701,11 @@ msgstr "" msgid "Plugins" msgstr "Vtičniki" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "Naložite Prevzeto" + #: editor/property_editor.cpp msgid "Preset..." msgstr "Prednastavitev..." @@ -12767,6 +12786,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "Prazen CollisionPolygon2D nima vpliva na collision." +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -13033,11 +13060,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/sq.po b/editor/translations/sq.po index 09b3b2af2e..f53d0b630a 100644 --- a/editor/translations/sq.po +++ b/editor/translations/sq.po @@ -1887,8 +1887,8 @@ msgid "Open a File or Directory" msgstr "Hap një Skedar ose Direktori" #: 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/editor_properties.cpp editor/import_defaults_editor.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 "Ruaj" @@ -4132,6 +4132,21 @@ msgstr "" msgid "Saving..." msgstr "Duke Ruajtur..." +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Zgjidh Nyjet Për ti Importuar" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "Importo" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "Ngarko të Parazgjedhur" + #: editor/import_dock.cpp #, fuzzy msgid "%d Files" @@ -5205,7 +5220,6 @@ msgid "Sort:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "" @@ -10337,6 +10351,11 @@ msgstr "" msgid "Plugins" msgstr "" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "Ngarko të Parazgjedhur" + #: editor/property_editor.cpp msgid "Preset..." msgstr "" @@ -12350,6 +12369,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12607,11 +12634,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/sr_Cyrl.po b/editor/translations/sr_Cyrl.po index 26c5abcbc8..4fe901f414 100644 --- a/editor/translations/sr_Cyrl.po +++ b/editor/translations/sr_Cyrl.po @@ -2030,8 +2030,8 @@ 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/editor_properties.cpp editor/import_defaults_editor.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 "Сачувај" @@ -4415,6 +4415,21 @@ msgstr "" msgid "Saving..." msgstr "Чување..." +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Одабери режим" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "Увоз" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "Учитај уобичајено" + #: editor/import_dock.cpp #, fuzzy msgid "%d Files" @@ -5612,7 +5627,6 @@ msgid "Sort:" msgstr "Сортирање:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "Категорија:" @@ -11617,6 +11631,11 @@ msgstr "Ауто-Учитавање" msgid "Plugins" msgstr "Прикључци" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "Учитај уобичајено" + #: editor/property_editor.cpp msgid "Preset..." msgstr "Поставке..." @@ -14013,6 +14032,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "Непријатењ СударниМногоугао2Д нема утицаја на судар." +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp #, fuzzy msgid "" @@ -14367,11 +14394,6 @@ msgstr "" " \n" "Као замену користи ИспеченеСенкеМапу." -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp #, fuzzy msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." diff --git a/editor/translations/sr_Latn.po b/editor/translations/sr_Latn.po index 47cb13691e..3d979c3fc6 100644 --- a/editor/translations/sr_Latn.po +++ b/editor/translations/sr_Latn.po @@ -1827,8 +1827,8 @@ 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/editor_properties.cpp editor/import_defaults_editor.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 "" @@ -3916,6 +3916,19 @@ msgstr "" msgid "Saving..." msgstr "" +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Uduplaj Selekciju" + +#: editor/import_defaults_editor.cpp +msgid "Importer:" +msgstr "" + +#: editor/import_defaults_editor.cpp +msgid "Reset to Defaults" +msgstr "" + #: editor/import_dock.cpp msgid "%d Files" msgstr "" @@ -4985,7 +4998,6 @@ msgid "Sort:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "" @@ -10110,6 +10122,10 @@ msgstr "" msgid "Plugins" msgstr "" +#: editor/project_settings_editor.cpp +msgid "Import Defaults" +msgstr "" + #: editor/property_editor.cpp msgid "Preset..." msgstr "" @@ -12088,6 +12104,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12343,11 +12367,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/sv.po b/editor/translations/sv.po index 420918548f..a7bc3d6288 100644 --- a/editor/translations/sv.po +++ b/editor/translations/sv.po @@ -1899,8 +1899,8 @@ msgid "Open a File or Directory" msgstr "Öppna en Fil eller Katalog" #: 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/editor_properties.cpp editor/import_defaults_editor.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 "Spara" @@ -4152,6 +4152,21 @@ msgstr "" msgid "Saving..." msgstr "Sparar..." +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Välj Node" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "Importera" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "Ladda Standard" + #: editor/import_dock.cpp msgid "%d Files" msgstr "%d Filer" @@ -5266,7 +5281,6 @@ msgid "Sort:" msgstr "Sortera:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "Kategori:" @@ -10576,6 +10590,11 @@ msgstr "" msgid "Plugins" msgstr "" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "Ladda Standard" + #: editor/property_editor.cpp msgid "Preset..." msgstr "" @@ -12646,6 +12665,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "En tom CollisionPolygon2D har ingen effekt på kollision." +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12924,11 +12951,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/ta.po b/editor/translations/ta.po index d1bc762e93..9f9f40b54b 100644 --- a/editor/translations/ta.po +++ b/editor/translations/ta.po @@ -1823,8 +1823,8 @@ 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/editor_properties.cpp editor/import_defaults_editor.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 "" @@ -3907,6 +3907,19 @@ msgstr "" msgid "Saving..." msgstr "" +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "அனைத்து தேர்வுகள்" + +#: editor/import_defaults_editor.cpp +msgid "Importer:" +msgstr "" + +#: editor/import_defaults_editor.cpp +msgid "Reset to Defaults" +msgstr "" + #: editor/import_dock.cpp msgid "%d Files" msgstr "" @@ -4970,7 +4983,6 @@ msgid "Sort:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "" @@ -10029,6 +10041,10 @@ msgstr "" msgid "Plugins" msgstr "" +#: editor/project_settings_editor.cpp +msgid "Import Defaults" +msgstr "" + #: editor/property_editor.cpp msgid "Preset..." msgstr "" @@ -11996,6 +12012,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12251,11 +12275,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/te.po b/editor/translations/te.po index 02a7a33269..50c0fb5a4b 100644 --- a/editor/translations/te.po +++ b/editor/translations/te.po @@ -1797,8 +1797,8 @@ 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/editor_properties.cpp editor/import_defaults_editor.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 "" @@ -3874,6 +3874,18 @@ msgstr "" msgid "Saving..." msgstr "" +#: editor/import_defaults_editor.cpp +msgid "Select Importer" +msgstr "" + +#: editor/import_defaults_editor.cpp +msgid "Importer:" +msgstr "" + +#: editor/import_defaults_editor.cpp +msgid "Reset to Defaults" +msgstr "" + #: editor/import_dock.cpp msgid "%d Files" msgstr "" @@ -4925,7 +4937,6 @@ msgid "Sort:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "" @@ -9954,6 +9965,10 @@ msgstr "" msgid "Plugins" msgstr "" +#: editor/project_settings_editor.cpp +msgid "Import Defaults" +msgstr "" + #: editor/property_editor.cpp msgid "Preset..." msgstr "" @@ -11903,6 +11918,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12158,11 +12181,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/th.po b/editor/translations/th.po index 2026248122..76a2d3c125 100644 --- a/editor/translations/th.po +++ b/editor/translations/th.po @@ -1836,8 +1836,8 @@ 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/editor_properties.cpp editor/import_defaults_editor.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 "บันทึก" @@ -3987,6 +3987,21 @@ msgstr "คุณส่งคืนออบเจกต์โหนดย่อ msgid "Saving..." msgstr "กำลังบันทึก..." +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "โหมดเลือก" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "นำเข้า" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "โหลดค่าเริ่มต้น" + #: editor/import_dock.cpp msgid "%d Files" msgstr "ไฟล์ %d" @@ -5047,7 +5062,6 @@ msgid "Sort:" msgstr "เรียงตาม:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "หมวดหมู่:" @@ -10231,6 +10245,11 @@ msgstr "ออโต้โหลด" msgid "Plugins" msgstr "ปลั๊กอิน" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "โหลดค่าเริ่มต้น" + #: editor/property_editor.cpp msgid "Preset..." msgstr "พรีเซ็ต..." @@ -12240,6 +12259,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "CollisionPolygon2D ที่ว่างเปล่าจะไม่มีผลทางกายภาพ" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12529,11 +12556,6 @@ msgstr "" "ไดรเวอร์วีดีโอ GLES2 ไม่สนับสนุน GIProbe\n" "ใช้ BakedLightmap แทน" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "InterpolatedCamera เลิกใช้งานแล้วและจะถูกลบออกใน Godot 4.0" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "SpotLight ที่มีมุมมากกว่า 90 ไม่สามารถสร้างเงา" @@ -12854,6 +12876,10 @@ msgstr "Varyings สามารถกำหนดในังก์ชันเ msgid "Constants cannot be modified." msgstr "ค่าคงที่ไม่สามารถแก้ไขได้" +#~ msgid "" +#~ "InterpolatedCamera has been deprecated and will be removed in Godot 4.0." +#~ msgstr "InterpolatedCamera เลิกใช้งานแล้วและจะถูกลบออกใน Godot 4.0" + #~ msgid "No" #~ msgstr "ไม่" diff --git a/editor/translations/tr.po b/editor/translations/tr.po index 568265764b..ecd57ee2cd 100644 --- a/editor/translations/tr.po +++ b/editor/translations/tr.po @@ -61,8 +61,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-02-21 10:51+0000\n" -"Last-Translator: Cem Eren Fukara <cefukara@hotmail.com>\n" +"PO-Revision-Date: 2021-03-03 15:50+0000\n" +"Last-Translator: Oğuz Ersen <oguzersen@protonmail.com>\n" "Language-Team: Turkish <https://hosted.weblate.org/projects/godot-engine/" "godot/tr/>\n" "Language: tr\n" @@ -70,7 +70,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.5\n" +"X-Generator: Weblate 4.5.1-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -1721,7 +1721,7 @@ msgstr "Dock Nod" #: editor/editor_feature_profile.cpp msgid "FileSystem Dock" -msgstr "Dosya sistemi" +msgstr "Dosya Sistemi" #: editor/editor_feature_profile.cpp msgid "Import Dock" @@ -1904,8 +1904,8 @@ msgid "Open a File or Directory" msgstr "Bir Dosya ya da Dizin Aç" #: 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/editor_properties.cpp editor/import_defaults_editor.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 "Kaydet" @@ -4111,6 +4111,21 @@ msgstr "`Post_import ()` yönteminde Node türevi bir nesne döndürdünüz mü? msgid "Saving..." msgstr "Kaydediliyor..." +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Kip Seç" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "İçe Aktar" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "Önyüklü sRGB'yi Kullan" + #: editor/import_dock.cpp msgid "%d Files" msgstr "%d Dosya" @@ -5183,7 +5198,6 @@ msgid "Sort:" msgstr "Sırala:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "Kategori:" @@ -10439,6 +10453,11 @@ msgstr "Otomatik Yükle" msgid "Plugins" msgstr "Eklentiler" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "Varsayılanı Yükle" + #: editor/property_editor.cpp msgid "Preset..." msgstr "Ön ayar..." @@ -12480,6 +12499,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "Boş bir CollisionPolygon2D'nin çarpışmaya hiçbir etkisi yoktur." +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12799,13 +12826,6 @@ msgstr "" "GIProbes GLES2 video sürücüsü tarafından desteklenmez.\n" "Bunun yerine bir BakedLightmap kullanın." -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" -"InterpolatedCamera kullanımdan kaldırılmıştır ve Godot 4.0'da " -"kaldırılacaktır." - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "90 dereceden geniş açılı SpotIşık gölge oluşturamaz." @@ -13149,6 +13169,12 @@ msgstr "varyings yalnızca vertex işlevinde atanabilir." msgid "Constants cannot be modified." msgstr "Sabit değerler değiştirilemez." +#~ msgid "" +#~ "InterpolatedCamera has been deprecated and will be removed in Godot 4.0." +#~ msgstr "" +#~ "InterpolatedCamera kullanımdan kaldırılmıştır ve Godot 4.0'da " +#~ "kaldırılacaktır." + #~ msgid "No" #~ msgstr "Hayır" @@ -14782,9 +14808,6 @@ msgstr "Sabit değerler değiştirilemez." #~ msgid "Use Default Light" #~ msgstr "Önyüklü Işık Kullan" -#~ msgid "Use Default sRGB" -#~ msgstr "Önyüklü sRGB'yi Kullan" - #~ msgid "Default Light Normal:" #~ msgstr "Önyüklü Işığın Olağanı:" diff --git a/editor/translations/tzm.po b/editor/translations/tzm.po index 67b5af0d44..c4614c7eb3 100644 --- a/editor/translations/tzm.po +++ b/editor/translations/tzm.po @@ -1795,8 +1795,8 @@ 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/editor_properties.cpp editor/import_defaults_editor.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 "" @@ -3872,6 +3872,18 @@ msgstr "" msgid "Saving..." msgstr "" +#: editor/import_defaults_editor.cpp +msgid "Select Importer" +msgstr "" + +#: editor/import_defaults_editor.cpp +msgid "Importer:" +msgstr "" + +#: editor/import_defaults_editor.cpp +msgid "Reset to Defaults" +msgstr "" + #: editor/import_dock.cpp msgid "%d Files" msgstr "" @@ -4923,7 +4935,6 @@ msgid "Sort:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "" @@ -9951,6 +9962,10 @@ msgstr "" msgid "Plugins" msgstr "" +#: editor/project_settings_editor.cpp +msgid "Import Defaults" +msgstr "" + #: editor/property_editor.cpp msgid "Preset..." msgstr "" @@ -11900,6 +11915,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12155,11 +12178,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/uk.po b/editor/translations/uk.po index 74f5becfea..4cdbe25d02 100644 --- a/editor/translations/uk.po +++ b/editor/translations/uk.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: Ukrainian (Godot Engine)\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-02-21 10:51+0000\n" +"PO-Revision-Date: 2021-02-22 21:30+0000\n" "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n" "Language-Team: Ukrainian <https://hosted.weblate.org/projects/godot-engine/" "godot/uk/>\n" @@ -1873,8 +1873,8 @@ 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/editor_properties.cpp editor/import_defaults_editor.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 "Зберегти" @@ -2548,10 +2548,8 @@ msgstr "" "налаштування." #: editor/editor_node.cpp -#, fuzzy msgid "Unable to find script field for addon plugin at: '%s'." -msgstr "" -"Не вдалося знайти поле скрипт для доповнення плагіну в: 'res://addons/%s'." +msgstr "Не вдалося знайти поле скрипту для додатка тут: «%s»." #: editor/editor_node.cpp msgid "Unable to load addon script from path: '%s'." @@ -4084,6 +4082,21 @@ msgstr "Повернули об'єкт, що походить від Node, у м msgid "Saving..." msgstr "Збереження..." +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Режим виділення" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "Імпорт" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "Завантажити типовий" + #: editor/import_dock.cpp msgid "%d Files" msgstr "%d файлів" @@ -5056,9 +5069,8 @@ msgid "Got:" msgstr "Отримав:" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Failed SHA-256 hash check" -msgstr "Помилка перевірки хешування sha256" +msgstr "Не вдалося пройти перевірку хешу SHA-256" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Asset Download Error:" @@ -5161,7 +5173,6 @@ msgid "Sort:" msgstr "Сортувати:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "Категорія:" @@ -10438,6 +10449,11 @@ msgstr "Автозавантаження" msgid "Plugins" msgstr "Плаґіни (додатки)" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "Завантажити типовий" + #: editor/property_editor.cpp msgid "Preset..." msgstr "Заздалегідь установлений..." @@ -10689,12 +10705,10 @@ msgid "Instance Child Scene" msgstr "Створити екземпляр дочірньої сцени" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Can't paste root node into the same scene." -msgstr "Не можна працювати із вузлами зі сторонньої сцени!" +msgstr "Не можна вставляти кореневий вузол до сцени цього кореневого вузла." #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Paste Node(s)" msgstr "Вставити вузли" @@ -10825,7 +10839,6 @@ msgid "Attach Script" msgstr "Долучити скрипт" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Cut Node(s)" msgstr "Вирізати вузли" @@ -12508,6 +12521,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "Порожній CollisionPolygon2D ніяк не вплине на зіткнення." +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12829,12 +12850,6 @@ msgstr "" "У драйвері GLES2 не передбачено підтримки GIProbes.\n" "Скористайтеся замість них BakedLightmap." -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" -"InterpolatedCamera вважається застарілою, її буде вилучено у Godot 4.0." - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "SpotLight з кутом, який є більшим за 90 градусів, не може давати тіні." @@ -13180,6 +13195,11 @@ msgstr "Змінні величини можна пов'язувати лише msgid "Constants cannot be modified." msgstr "Сталі не можна змінювати." +#~ msgid "" +#~ "InterpolatedCamera has been deprecated and will be removed in Godot 4.0." +#~ msgstr "" +#~ "InterpolatedCamera вважається застарілою, її буде вилучено у Godot 4.0." + #~ msgid "No" #~ msgstr "Ні" diff --git a/editor/translations/ur_PK.po b/editor/translations/ur_PK.po index eccfc5f710..a2e1decab6 100644 --- a/editor/translations/ur_PK.po +++ b/editor/translations/ur_PK.po @@ -1829,8 +1829,8 @@ 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/editor_properties.cpp editor/import_defaults_editor.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 "" @@ -3950,6 +3950,20 @@ msgstr "" msgid "Saving..." msgstr "" +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr ".تمام کا انتخاب" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr ".سپورٹ" + +#: editor/import_defaults_editor.cpp +msgid "Reset to Defaults" +msgstr "" + #: editor/import_dock.cpp #, fuzzy msgid "%d Files" @@ -5026,7 +5040,6 @@ msgid "Sort:" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "" @@ -10201,6 +10214,10 @@ msgstr "" msgid "Plugins" msgstr "" +#: editor/project_settings_editor.cpp +msgid "Import Defaults" +msgstr "" + #: editor/property_editor.cpp msgid "Preset..." msgstr "" @@ -12207,6 +12224,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12462,11 +12487,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/vi.po b/editor/translations/vi.po index 3d01339f40..94692dc9b2 100644 --- a/editor/translations/vi.po +++ b/editor/translations/vi.po @@ -15,13 +15,15 @@ # Steve Dang <bynguu@outlook.com>, 2020. # Harry Mitchell <minhyh0987@gmail.com>, 2020. # HSGamer <huynhqtienvtag@gmail.com>, 2020. -# LetterC67 <hoangdeptoong@gmail.com>, 2020. +# LetterC67 <hoangdeptoong@gmail.com>, 2020, 2021. +# Rev <revolnoom7801@gmail.com>, 2021. +# SyliawDeV <thanhlongstranger@gmail.com>, 2021. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-08-11 14:04+0000\n" -"Last-Translator: LetterC67 <hoangdeptoong@gmail.com>\n" +"PO-Revision-Date: 2021-03-08 15:33+0000\n" +"Last-Translator: Rev <revolnoom7801@gmail.com>\n" "Language-Team: Vietnamese <https://hosted.weblate.org/projects/godot-engine/" "godot/vi/>\n" "Language: vi\n" @@ -29,12 +31,13 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.5.1\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." -msgstr "Hàm convert() có loại đối số không hợp lệ, sử dụng các hằng TYPE_*." +msgstr "" +"Hàm convert() có loại đối số không hợp lệ, hãy sử dụng các hằng TYPE_*." #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp msgid "Expected a string of length 1 (a character)." @@ -171,9 +174,8 @@ msgid "Anim Change Call" msgstr "Đổi Function Gọi Animation" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Anim Multi Change Keyframe Time" -msgstr "Đổi thời gian khung hình" +msgstr "Đổi nhiều thời gian khung hình" #: editor/animation_track_editor.cpp #, fuzzy @@ -206,26 +208,25 @@ msgstr "Chỉnh Vòng Lặp Hoạt Ảnh" #: editor/animation_track_editor.cpp msgid "Property Track" -msgstr "" +msgstr "Theo dõi đặc tính" #: editor/animation_track_editor.cpp msgid "3D Transform Track" -msgstr "" +msgstr "Theo dõi chuyển đổi 3D" #: editor/animation_track_editor.cpp msgid "Call Method Track" -msgstr "" +msgstr "Gọi phương thức theo dõi" #: editor/animation_track_editor.cpp msgid "Bezier Curve Track" -msgstr "" +msgstr "Theo dõi đường cong Bezier" #: editor/animation_track_editor.cpp msgid "Audio Playback Track" -msgstr "" +msgstr "Bản nhạc phát lại âm thanh" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Animation Playback Track" msgstr "Ngưng chạy animation. (S)" @@ -238,7 +239,6 @@ msgid "Animation length (seconds)" msgstr "Độ dài hoạt ảnh (giây)" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Add Track" msgstr "Thêm Track Animation" @@ -257,7 +257,7 @@ msgstr "Âm thanh:" #: editor/animation_track_editor.cpp msgid "Anim Clips:" -msgstr "" +msgstr "Hoạt ảnh:" #: editor/animation_track_editor.cpp msgid "Change Track Path" @@ -265,7 +265,7 @@ msgstr "Thay đổi đường dẫn Track" #: editor/animation_track_editor.cpp msgid "Toggle this track on/off." -msgstr "Bật tắt track này on/off." +msgstr "Bật hoặc tắt track này, on/off" #: editor/animation_track_editor.cpp msgid "Update Mode (How this property is set)" @@ -383,7 +383,7 @@ msgstr "Chèn Anim" #: editor/animation_track_editor.cpp msgid "AnimationPlayer can't animate itself, only other players." -msgstr "AnimationPlayer không thể tự tạo hoạt ảnh, chỉ các player khác." +msgstr "AnimationPlayer không thể tự tạo hoạt ảnh, phải nhờ các Player khác." #: editor/animation_track_editor.cpp msgid "Anim Create & Insert" @@ -407,7 +407,7 @@ msgstr "Sắp xếp lại Tracks" #: editor/animation_track_editor.cpp msgid "Transform tracks only apply to Spatial-based nodes." -msgstr "" +msgstr "Các chuyển đổi chỉ có thể áp dụng cho các node Spatial" #: editor/animation_track_editor.cpp msgid "" @@ -416,7 +416,7 @@ msgid "" "-AudioStreamPlayer2D\n" "-AudioStreamPlayer3D" msgstr "" -"Các bản âm thanh chỉ có thể trỏ đến các nút:\n" +"Các bản âm thanh chỉ có thể trỏ đến các loại:\n" "-AudioStreamPlayer\n" "-AudioStreamPlayer2D\n" "-AudioStreamPlayer3D" @@ -428,10 +428,11 @@ msgstr "Các bản hoạt ảnh chỉ có thể trỏ tới các nút AnimationP #: editor/animation_track_editor.cpp msgid "An animation player can't animate itself, only other players." msgstr "" +"Animation player không tự tạo hoạt ảnh được, phải thông qua các player khác." #: editor/animation_track_editor.cpp msgid "Not possible to add a new track without a root" -msgstr "" +msgstr "Không thể thêm track mới mà không có root." #: editor/animation_track_editor.cpp msgid "Invalid track for Bezier (no suitable sub-properties)" @@ -482,14 +483,13 @@ msgid "Paste Tracks" msgstr "Dán Tracks" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Anim Scale Keys" -msgstr "Anim Scale Keys" +msgstr "Key để scale hoạt ảnh" #: editor/animation_track_editor.cpp msgid "" "This option does not work for Bezier editing, as it's only a single track." -msgstr "" +msgstr "Tùy chọn này không áp lên Bezier được, vì nó chỉ là một track." #: editor/animation_track_editor.cpp msgid "" @@ -503,6 +503,16 @@ msgid "" "Alternatively, use an import preset that imports animations to separate " "files." msgstr "" +"Cáianimation này thuộc về một cảnh đã nhập, vì vậy những thay đổi đối với " +"các bản nhạc đã nhập sẽ không được lưu.\n" +"\n" +"Để bật khả năng thêm các bản nhạc tùy chỉnh, hãy điều hướng đến cài đặt nhập " +"của cảnh và đặt\n" +"\"animation > Lưu trữ\" thành \"Tệp\", bật \"Hoạt hình> Giữ các bản nhạc tùy " +"chỉnh\", sau đó nhập lại.(vn)\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", sau đó nhập lại (english).\n" +"Hoặc, sử dụng cài đặt trước nhập khẩu nhập hình ảnh động để tách các tệp." #: editor/animation_track_editor.cpp msgid "Warning: Editing imported animation" @@ -536,7 +546,7 @@ msgstr "Giây" #: editor/animation_track_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "FPS" -msgstr "" +msgstr "Khung hình(FPS)" #: editor/animation_track_editor.cpp editor/editor_properties.cpp #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -554,7 +564,7 @@ msgstr "Thuộc tính hoạt cảnh." #: editor/animation_track_editor.cpp msgid "Copy Tracks" -msgstr "" +msgstr "Sao Chép Tracks" #: editor/animation_track_editor.cpp msgid "Scale Selection" @@ -570,7 +580,7 @@ msgstr "Nhân đôi lựa chọn" #: editor/animation_track_editor.cpp msgid "Duplicate Transposed" -msgstr "" +msgstr "Chuyển đổi trùng lặp" #: editor/animation_track_editor.cpp msgid "Delete Selection" @@ -598,7 +608,7 @@ msgstr "Chọn node để được làm diễn hoạt:" #: editor/animation_track_editor.cpp msgid "Use Bezier Curves" -msgstr "" +msgstr "Sử dụng đường cong Bezier" #: editor/animation_track_editor.cpp msgid "Anim. Optimizer" @@ -606,15 +616,15 @@ msgstr "Tối ưu hóa Animation" #: editor/animation_track_editor.cpp msgid "Max. Linear Error:" -msgstr "" +msgstr "Sai lệch tuyến tính lớn nhất:" #: editor/animation_track_editor.cpp msgid "Max. Angular Error:" -msgstr "" +msgstr "Sai lệch góc lớn nhất:" #: editor/animation_track_editor.cpp msgid "Max Optimizable Angle:" -msgstr "" +msgstr "Góc lớn nhất có thể tối ưu:" #: editor/animation_track_editor.cpp msgid "Optimize" @@ -622,7 +632,7 @@ msgstr "Tối ưu" #: editor/animation_track_editor.cpp msgid "Remove invalid keys" -msgstr "Gỡ bỏ các khoá không hợp lệ" +msgstr "Xóa các khoá không hợp lệ" #: editor/animation_track_editor.cpp msgid "Remove unresolved and empty tracks" @@ -659,9 +669,8 @@ msgid "Copy" msgstr "Sao chép" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Select All/None" -msgstr "Chọn Không có" +msgstr "Chọn tất cả/ hoặc không" #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" @@ -669,19 +678,19 @@ msgstr "Thêm Track Âm thanh" #: editor/animation_track_editor_plugins.cpp msgid "Change Audio Track Clip Start Offset" -msgstr "" +msgstr "Thay đổi thời điểm bắt đầu phát track âm thanh." #: editor/animation_track_editor_plugins.cpp msgid "Change Audio Track Clip End Offset" -msgstr "" +msgstr "Thay đổi thời điểm kết thúc track âm thanh" #: editor/array_property_edit.cpp msgid "Resize Array" -msgstr "Đổi lại size Array" +msgstr "Thay đổi kích thước mảng" #: editor/array_property_edit.cpp msgid "Change Array Value Type" -msgstr "Đổi loại giá trị Array" +msgstr "Đổi kiểu giá trị Array" #: editor/array_property_edit.cpp msgid "Change Array Value" @@ -768,9 +777,8 @@ msgid "Method in target node must be specified." msgstr "Phương thức trong nút đích phải được chỉ định." #: editor/connections_dialog.cpp -#, fuzzy msgid "Method name must be a valid identifier." -msgstr "Phương thức trong nút đích phải được chỉ định." +msgstr "Tên phương thức phải được chỉ định." #: editor/connections_dialog.cpp msgid "" @@ -822,9 +830,8 @@ msgid "Extra Call Arguments:" msgstr "Mở rộng Đối số được gọi:" #: editor/connections_dialog.cpp -#, fuzzy msgid "Receiver Method:" -msgstr "Lọc các nút" +msgstr "Hàm nhận:" #: editor/connections_dialog.cpp msgid "Advanced" @@ -846,7 +853,7 @@ msgstr "Một lần" #: editor/connections_dialog.cpp msgid "Disconnects the signal after its first emission." -msgstr "Ngắt kết nối tín hiệu sau lần phát xạ đầu tiên." +msgstr "Ngắt kết nối tín hiệu sau lần phát đầu tiên." #: editor/connections_dialog.cpp msgid "Cannot connect signal" @@ -864,7 +871,7 @@ msgstr "Không thể kết nối tín hiệu" #: editor/run_settings_dialog.cpp editor/settings_config_dialog.cpp #: modules/visual_script/visual_script_editor.cpp msgid "Close" -msgstr "Tắt" +msgstr "Đóng" #: editor/connections_dialog.cpp msgid "Connect" @@ -912,9 +919,8 @@ msgid "Signals" msgstr "Tín hiệu (Signal)" #: editor/connections_dialog.cpp -#, fuzzy msgid "Filter signals" -msgstr "Lọc tệp tin ..." +msgstr "Lọc tín hiệu" #: editor/connections_dialog.cpp msgid "Are you sure you want to remove all connections from this signal?" @@ -978,7 +984,6 @@ msgid "Search Replacement For:" msgstr "Tìm kiếm thay thế cho:" #: editor/dependency_editor.cpp -#, fuzzy msgid "Dependencies For:" msgstr "Phần phụ thuộc cho:" @@ -1026,7 +1031,7 @@ msgstr "Trình chỉnh sửa Phụ thuộc" #: editor/dependency_editor.cpp msgid "Search Replacement Resource:" -msgstr "" +msgstr "Tìm kiếm tài nguyên thay thế:" #: editor/dependency_editor.cpp editor/editor_file_dialog.cpp #: editor/editor_help_search.cpp editor/editor_node.cpp @@ -1090,13 +1095,12 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "Xoá vĩnh viễn các đối tượng %d? (Không thể hoàn lại!)" #: editor/dependency_editor.cpp -#, fuzzy msgid "Show Dependencies" -msgstr "Phần phụ thuộc cho:" +msgstr "Hiện các phần phụ thuộc" #: editor/dependency_editor.cpp msgid "Orphan Resource Explorer" -msgstr "" +msgstr "Tìm tài nguyên mất gốc" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp @@ -1464,15 +1468,15 @@ msgstr "" #: editor/editor_autoload_settings.cpp msgid "Keyword cannot be used as an autoload name." -msgstr "" +msgstr "Từ khóa không thể dùng làm tên một nạp tự động." #: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" -msgstr "" +msgstr "Nạp tự động '%s' đã tồn tại!" #: editor/editor_autoload_settings.cpp msgid "Rename Autoload" -msgstr "" +msgstr "Đổi tên" #: editor/editor_autoload_settings.cpp msgid "Toggle AutoLoad Globals" @@ -1875,8 +1879,8 @@ msgid "Open a File or Directory" msgstr "Mở một tệp tin hoặc thư mục" #: 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/editor_properties.cpp editor/import_defaults_editor.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 "Lưu" @@ -2787,9 +2791,8 @@ msgid "Project Settings..." msgstr "Cài đặt Dự Án" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Version Control" -msgstr "Phiên bản:" +msgstr "Theo dõi phiên bản" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Set Up Version Control" @@ -2975,9 +2978,8 @@ msgid "Q&A" msgstr "Hỏi và Đáp" #: editor/editor_node.cpp -#, fuzzy msgid "Report a Bug" -msgstr "Nhập vào lại" +msgstr "Báo lỗi" #: editor/editor_node.cpp msgid "Send Docs Feedback" @@ -2989,7 +2991,7 @@ msgstr "Cộng đồng" #: editor/editor_node.cpp msgid "About" -msgstr "Thông tin chúng tôi" +msgstr "Về chúng tôi" #: editor/editor_node.cpp msgid "Play the project." @@ -3001,7 +3003,7 @@ msgstr "Chạy" #: editor/editor_node.cpp msgid "Pause the scene execution for debugging." -msgstr "" +msgstr "Dừng chạy Cảnh để gỡ lỗi." #: editor/editor_node.cpp msgid "Pause Scene" @@ -3029,7 +3031,7 @@ msgstr "Chạy Cảnh Tuỳ Chọn" #: editor/editor_node.cpp msgid "Changing the video driver requires restarting the editor." -msgstr "Thay đổi trình điều kiển Video, yêu cầu khởi động lại Trình biên tập." +msgstr "Thay đổi trình điều khiển Video cần phải khởi động lại Trình biên tập." #: editor/editor_node.cpp editor/project_settings_editor.cpp #: editor/settings_config_dialog.cpp @@ -3041,14 +3043,12 @@ msgid "Spins when the editor window redraws." msgstr "" #: editor/editor_node.cpp -#, fuzzy msgid "Update Continuously" -msgstr "Liên tục" +msgstr "Cập nhật Liên tục" #: editor/editor_node.cpp -#, fuzzy msgid "Update When Changed" -msgstr "Đối số đã thay đổi" +msgstr "Cập nhật khi có thay đổi" #: editor/editor_node.cpp msgid "Hide Update Spinner" @@ -3064,7 +3064,7 @@ msgstr "Quan Sát Viên" #: editor/editor_node.cpp msgid "Expand Bottom Panel" -msgstr "Mở rộng bảng điều khiển phía dưới" +msgstr "Mở rộng bảng điều khiển dưới" #: editor/editor_node.cpp msgid "Output" @@ -3093,7 +3093,7 @@ msgid "" "the \"Use Custom Build\" option should be enabled in the Android export " "preset." msgstr "" -"Điều này sẽ thiết lập dự án của bạn cho các bản dựng Android tùy chỉnh bằng " +"Việc này sẽ thiết lập dự án của bạn cho các bản dựng Android tùy chỉnh bằng " "cách cài đặt nguồn mẫu thành \"res://android/build\".\n" "Bạn có thể áp dụng các sửa đổi và xây dựng APK tùy chỉnh khi xuất (thêm các " "mô-đun, thay đổi AndroidManifest.xml, ...).\n" @@ -3136,16 +3136,18 @@ msgid "" "The following files are newer on disk.\n" "What action should be taken?" msgstr "" +"Các tệp sau xuất hiện trên ổ cứng gần đây hơn.\n" +"Bạn muốn làm gì đây?" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/shader_editor_plugin.cpp msgid "Reload" -msgstr "" +msgstr "Tải lại" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/shader_editor_plugin.cpp msgid "Resave" -msgstr "" +msgstr "Lưu lại" #: editor/editor_node.cpp msgid "New Inherited" @@ -3184,9 +3186,8 @@ msgid "Open the previous Editor" msgstr "" #: editor/editor_node.h -#, fuzzy msgid "Warning!" -msgstr "Cảnh báo" +msgstr "Cảnh báo!" #: editor/editor_path.cpp msgid "No sub-resources found." @@ -3201,9 +3202,8 @@ msgid "Thumbnail..." msgstr "" #: editor/editor_plugin_settings.cpp -#, fuzzy msgid "Main Script:" -msgstr "Tạo Script" +msgstr "Mã lệnh chính:" #: editor/editor_plugin_settings.cpp msgid "Edit Plugin" @@ -3244,7 +3244,7 @@ msgstr "" #: editor/editor_profiler.cpp msgid "Average Time (sec)" -msgstr "" +msgstr "Thời gian trung bình (giây)" #: editor/editor_profiler.cpp msgid "Frame %" @@ -3289,7 +3289,7 @@ msgstr "" #: editor/editor_properties.cpp msgid "Bit %d, value %d" -msgstr "" +msgstr "Bit %d, giá trị %d" #: editor/editor_properties.cpp msgid "[Empty]" @@ -4057,6 +4057,21 @@ msgstr "" msgid "Saving..." msgstr "Đang lưu ..." +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "Chế độ chọn" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "Nhập vào" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "Nạp mặc định" + #: editor/import_dock.cpp #, fuzzy msgid "%d Files" @@ -5143,7 +5158,6 @@ msgid "Sort:" msgstr "Sắp xếp:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "Danh mục:" @@ -10414,6 +10428,11 @@ msgstr "" msgid "Plugins" msgstr "" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "Nạp mặc định" + #: editor/property_editor.cpp msgid "Preset..." msgstr "Cài sẵn ..." @@ -12465,6 +12484,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12720,11 +12747,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/zh_CN.po b/editor/translations/zh_CN.po index 3b0394b1d7..ac2d4a61f6 100644 --- a/editor/translations/zh_CN.po +++ b/editor/translations/zh_CN.po @@ -43,7 +43,7 @@ # Song DongHui <14729626293@163.com>, 2019. # simano clio <sim2cle@gmail.com>, 2019. # ByonkoGalilei <byonko@qq.com>, 2019. -# qjyqjyqjyqjy <qjyqjyqjyqjy@sina.com.cn>, 2019. +# qjyqjyqjyqjy <qjyqjyqjyqjy@sina.com.cn>, 2019, 2021. # liushuyu011 <liushuyu011@gmail.com>, 2019. # DS <dseqrasd@126.com>, 2019. # ZeroAurora <zeroaurora@qq.com>, 2019. @@ -76,11 +76,12 @@ # twoBornottwoB <305766341@qq.com>, 2021. # Magian <magian1127@gmail.com>, 2021. # Weiduo Xie <xwditfr@gmail.com>, 2021. +# suplife <2634557184@qq.com>, 2021. msgid "" msgstr "" "Project-Id-Version: Chinese (Simplified) (Godot Engine)\n" "POT-Creation-Date: 2018-01-20 12:15+0200\n" -"PO-Revision-Date: 2021-02-21 10:51+0000\n" +"PO-Revision-Date: 2021-03-08 15:33+0000\n" "Last-Translator: Haoyu Qiu <timothyqiu32@gmail.com>\n" "Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/" "godot-engine/godot/zh_Hans/>\n" @@ -89,7 +90,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.5\n" +"X-Generator: Weblate 4.5.1\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -98,13 +99,13 @@ msgstr "convert() 的参数类型无效,请使用 TYPE_* 常量。" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp msgid "Expected a string of length 1 (a character)." -msgstr "应为长度 1 的字符串(1 字符)。" +msgstr "应为长度为 1 的字符串(1 字符)。" #: 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 "没有足够的字节可解码或格式无效。" +msgstr "解码字节数不够,或格式无效。" #: core/math/expression.cpp msgid "Invalid input %i (not passed) in expression" @@ -1898,8 +1899,8 @@ 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/editor_properties.cpp editor/import_defaults_editor.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 "保存" @@ -2554,9 +2555,8 @@ msgid "Unable to enable addon plugin at: '%s' parsing of config failed." msgstr "无法在 “%s” 上启用加载项插件:配置解析失败。" #: editor/editor_node.cpp -#, fuzzy msgid "Unable to find script field for addon plugin at: '%s'." -msgstr "无法在 “res://addons/%s” 中找到加载项插件的脚本字段。" +msgstr "无法在 “%s” 上找到加载项的 script 字段。" #: editor/editor_node.cpp msgid "Unable to load addon script from path: '%s'." @@ -4044,6 +4044,21 @@ msgstr "有在 `post_import()` 方法中返回继承了 Node 的对象吗?" msgid "Saving..." msgstr "保存中..." +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "选择模式" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "导入" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "使用默认sRGB" + #: editor/import_dock.cpp msgid "%d Files" msgstr "%d 个文件" @@ -4704,7 +4719,7 @@ msgstr "过渡已存在!" #: editor/plugins/animation_state_machine_editor.cpp msgid "Add Transition" -msgstr "添加转换" +msgstr "添加过渡" #: editor/plugins/animation_state_machine_editor.cpp #: modules/visual_script/visual_script_editor.cpp @@ -4745,7 +4760,7 @@ msgstr "节点已移除" #: editor/plugins/animation_state_machine_editor.cpp msgid "Transition Removed" -msgstr "转换已移除" +msgstr "过渡已移除" #: editor/plugins/animation_state_machine_editor.cpp msgid "Set Start Node (Autoplay)" @@ -4968,7 +4983,7 @@ msgstr "无法将响应保存到:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Write error." -msgstr "写错误。" +msgstr "写入错误。" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" @@ -4999,7 +5014,6 @@ msgid "Got:" msgstr "获得:" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Failed SHA-256 hash check" msgstr "SHA-256 哈希值校验失败" @@ -5104,7 +5118,6 @@ msgid "Sort:" msgstr "排序:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "分类:" @@ -10274,6 +10287,11 @@ msgstr "自动加载" msgid "Plugins" msgstr "插件" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "加载默认" + #: editor/property_editor.cpp msgid "Preset..." msgstr "预设..." @@ -10521,12 +10539,10 @@ msgid "Instance Child Scene" msgstr "实例化子场景" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Can't paste root node into the same scene." -msgstr "无法操作外部场景的节点!" +msgstr "不能将根节点粘贴进相同场景。" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Paste Node(s)" msgstr "粘贴节点" @@ -10653,7 +10669,6 @@ msgid "Attach Script" msgstr "添加脚本" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Cut Node(s)" msgstr "剪切节点" @@ -12269,6 +12284,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "空的 CollisionPolygon2D 不起任何碰撞检测作用。" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12555,11 +12578,6 @@ msgstr "" "GLES2 视频驱动程序不支持 GIProbes。\n" "请改用 BakedLightmap。" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "InterpolatedCamera 已废弃,将在 Godot 4.0 中删除。" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "角度宽于 90 度的 SpotLight 无法投射出阴影。" @@ -12884,6 +12902,10 @@ msgstr "变量只能在顶点函数中指定。" msgid "Constants cannot be modified." msgstr "不允许修改常量。" +#~ msgid "" +#~ "InterpolatedCamera has been deprecated and will be removed in Godot 4.0." +#~ msgstr "InterpolatedCamera 已废弃,将在 Godot 4.0 中删除。" + #~ msgid "No" #~ msgstr "否" @@ -14531,9 +14553,6 @@ msgstr "不允许修改常量。" #~ msgid "Use Default Light" #~ msgstr "使用默认光照" -#~ msgid "Use Default sRGB" -#~ msgstr "使用默认sRGB" - #~ msgid "Default Light Normal:" #~ msgstr "默认光照法线:" diff --git a/editor/translations/zh_HK.po b/editor/translations/zh_HK.po index 728ecba4ba..2009ba8f20 100644 --- a/editor/translations/zh_HK.po +++ b/editor/translations/zh_HK.po @@ -1922,8 +1922,8 @@ 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/editor_properties.cpp editor/import_defaults_editor.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 "儲存" @@ -4173,6 +4173,21 @@ msgstr "" msgid "Saving..." msgstr "儲存中..." +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "選擇模式" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "導入" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "預設" + #: editor/import_dock.cpp #, fuzzy msgid "%d Files" @@ -5313,7 +5328,6 @@ msgid "Sort:" msgstr "排序:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "分類:" @@ -10643,6 +10657,11 @@ msgstr "" msgid "Plugins" msgstr "插件" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "預設" + #: editor/property_editor.cpp msgid "Preset..." msgstr "" @@ -12735,6 +12754,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12992,11 +13019,6 @@ msgid "" "Use a BakedLightmap instead." msgstr "" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "" diff --git a/editor/translations/zh_TW.po b/editor/translations/zh_TW.po index 7ac1142466..5708d11522 100644 --- a/editor/translations/zh_TW.po +++ b/editor/translations/zh_TW.po @@ -29,7 +29,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-02-21 10:51+0000\n" +"PO-Revision-Date: 2021-02-27 00:47+0000\n" "Last-Translator: BinotaLIU <me@binota.org>\n" "Language-Team: Chinese (Traditional) <https://hosted.weblate.org/projects/" "godot-engine/godot/zh_Hant/>\n" @@ -1851,8 +1851,8 @@ 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/editor_properties.cpp editor/import_defaults_editor.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 "保存" @@ -2505,9 +2505,8 @@ msgid "Unable to enable addon plugin at: '%s' parsing of config failed." msgstr "無法在「%s」上啟用擴充功能,解析組態設定失敗。" #: editor/editor_node.cpp -#, fuzzy msgid "Unable to find script field for addon plugin at: '%s'." -msgstr "無法在擴充功能「res://addons/%s」中無法找到腳本欄位。" +msgstr "無法在擴充功能「r%s」中找到腳本欄位。" #: editor/editor_node.cpp msgid "Unable to load addon script from path: '%s'." @@ -3995,6 +3994,21 @@ msgstr "是否有在 `post_import()` 方法內回傳繼承 Node 之物件?" msgid "Saving..." msgstr "正在保存..." +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Select Importer" +msgstr "選擇模式" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Importer:" +msgstr "匯入" + +#: editor/import_defaults_editor.cpp +#, fuzzy +msgid "Reset to Defaults" +msgstr "載入預設" + #: editor/import_dock.cpp msgid "%d Files" msgstr "%d 個檔案" @@ -4950,7 +4964,6 @@ msgid "Got:" msgstr "獲得:" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Failed SHA-256 hash check" msgstr "SHA-256 雜湊檢查失敗" @@ -5055,7 +5068,6 @@ msgid "Sort:" msgstr "排序:" #: editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_settings_editor.cpp msgid "Category:" msgstr "分類:" @@ -10226,6 +10238,11 @@ msgstr "Autoload" msgid "Plugins" msgstr "外掛" +#: editor/project_settings_editor.cpp +#, fuzzy +msgid "Import Defaults" +msgstr "載入預設" + #: editor/property_editor.cpp msgid "Preset..." msgstr "預設設定..." @@ -10473,12 +10490,10 @@ msgid "Instance Child Scene" msgstr "實體化子場景" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Can't paste root node into the same scene." -msgstr "無法對外部場景的節點進行操作!" +msgstr "無法將跟節點貼到相同的場景中。" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Paste Node(s)" msgstr "貼上節點" @@ -10605,7 +10620,6 @@ msgid "Attach Script" msgstr "附加腳本" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Cut Node(s)" msgstr "剪下節點" @@ -12225,6 +12239,14 @@ msgstr "" msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "空白的 CollisionPolygon2D 不會產生任何碰撞效果。" +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + #: scene/2d/collision_shape_2d.cpp msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -12510,11 +12532,6 @@ msgstr "" "GLES2 視訊驅動程式不支援 GIProbes。\n" "請改為使用 BakedLightmap。" -#: scene/3d/interpolated_camera.cpp -msgid "" -"InterpolatedCamera has been deprecated and will be removed in Godot 4.0." -msgstr "InterpolatedCamera 已停止維護,且將於 Godot 4.0 中移除。" - #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." msgstr "角度大於 90 度的 SpotLight 無法投射出陰影。" @@ -12840,6 +12857,10 @@ msgstr "Varying 變數只可在頂點函式中指派。" msgid "Constants cannot be modified." msgstr "不可修改常數。" +#~ msgid "" +#~ "InterpolatedCamera has been deprecated and will be removed in Godot 4.0." +#~ msgstr "InterpolatedCamera 已停止維護,且將於 Godot 4.0 中移除。" + #~ msgid "No" #~ msgstr "否" diff --git a/misc/dist/html/editor.html b/misc/dist/html/editor.html index 535721f418..3bf87f3506 100644 --- a/misc/dist/html/editor.html +++ b/misc/dist/html/editor.html @@ -2,8 +2,18 @@ <html xmlns='http://www.w3.org/1999/xhtml' lang='' xml:lang=''> <head> <meta charset='utf-8' /> - <meta name='viewport' content='width=device-width, user-scalable=no' /> + <meta name='viewport' content='width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no' /> + <meta name="mobile-web-app-capable" content="yes" /> + <meta name="apple-mobile-web-app-capable" content="yes" /> + <meta name="application-name" content="Godot" /> + <meta name="apple-mobile-web-app-title" content="Godot" /> + <meta name="theme-color" content="#478cbf" /> + <meta name="msapplication-navbutton-color" content="#478cbf" /> + <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" /> + <meta name="msapplication-starturl" content="/latest" /> <link id='-gd-engine-icon' rel='icon' type='image/png' href='favicon.png' /> + <link rel="apple-touch-icon" type="image/png" href="favicon.png" /> + <link rel="manifest" href="manifest.json" /> <title>Godot Engine Web Editor (@GODOT_VERSION@)</title> <style> *:focus { @@ -250,7 +260,13 @@ <div id='status-notice' class='godot' style='display: none;'></div> </div> </div> - + <script> + window.addEventListener("load", () => { + if ("serviceWorker" in navigator) { + navigator.serviceWorker.register("service.worker.js"); + } + }); + </script> <script src='godot.tools.js'></script> <script>//<![CDATA[ diff --git a/misc/dist/html/manifest.json b/misc/dist/html/manifest.json new file mode 100644 index 0000000000..6e0053c23c --- /dev/null +++ b/misc/dist/html/manifest.json @@ -0,0 +1,18 @@ +{ + "name": "Godot Engine", + "short_name": "Godot", + "description": "Multi-platform 2D and 3D game engine with a feature-rich editor", + "lang": "en", + "start_url": "/godot.tools.html", + "display": "standalone", + "orientation": "landscape", + "theme_color": "#478cbf", + "icons": [ + { + "src": "favicon.png", + "sizes": "256x256", + "type": "image/png" + } + ], + "background_color": "#333b4f" +} diff --git a/misc/dist/html/offline.html b/misc/dist/html/offline.html new file mode 100644 index 0000000000..000c21b4d3 --- /dev/null +++ b/misc/dist/html/offline.html @@ -0,0 +1,42 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8" /> + <meta http-equiv="X-UA-Compatible" content="IE=edge" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <title>You are offline</title> + <style> + html { + background-color: #333b4f; + color: #e0e0e0; + } + + body { + font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + margin: 2rem; + } + + p { + margin-block: 1rem; + } + + button { + display: block; + padding: 1rem 2rem; + margin: 3rem auto 0; + } + </style> +</head> +<body> + <h1>You are offline</h1> + <p>This application requires an Internet connection to run for the first time.</p> + <p>Press the button below to try reloading:</p> + <button type="button">Reload</button> + + <script> + document.querySelector("button").addEventListener("click", () => { + window.location.reload(); + }); + </script> +</body> +</html> diff --git a/misc/dist/html/service-worker.js b/misc/dist/html/service-worker.js new file mode 100644 index 0000000000..d4eaed2b17 --- /dev/null +++ b/misc/dist/html/service-worker.js @@ -0,0 +1,84 @@ +// This service worker is required to expose an exported Godot project as a +// Progressive Web App. It provides an offline fallback page telling the user +// that they need an Internet conneciton to run the project if desired. +// Incrementing CACHE_VERSION will kick off the install event and force +// previously cached resources to be updated from the network. +const CACHE_VERSION = "@GODOT_VERSION@"; +const CACHE_NAME = "@GODOT_NAME@-cache"; +const OFFLINE_URL = "offline.html"; +// Files that will be cached on load. +const CACHED_FILES = [ + "godot.tools.html", + "offline.html", + "godot.tools.js", + "godot.tools.worker.js", + "godot.tools.audio.worklet.js", + "logo.svg", + "favicon.png", +]; + +// Files that we might not want the user to preload, and will only be cached on first load. +const CACHABLE_FILES = [ + "godot.tools.wasm", +]; +const FULL_CACHE = CACHED_FILES.concat(CACHABLE_FILES); + +self.addEventListener("install", (event) => { + event.waitUntil(async function () { + const cache = await caches.open(CACHE_NAME); + // Clear old cache (including optionals). + await Promise.all(FULL_CACHE.map(path => cache.delete(path))); + // Insert new one. + const done = await cache.addAll(CACHED_FILES); + return done; + }()); +}); + +self.addEventListener("activate", (event) => { + event.waitUntil(async function () { + if ("navigationPreload" in self.registration) { + await self.registration.navigationPreload.enable(); + } + }()); + // Tell the active service worker to take control of the page immediately. + self.clients.claim(); +}); + +self.addEventListener("fetch", (event) => { + const isNavigate = event.request.mode === "navigate"; + const url = event.request.url || ""; + const referrer = event.request.referrer || ""; + const base = referrer.slice(0, referrer.lastIndexOf("/") + 1); + const local = url.startsWith(base) ? url.replace(base, "") : ""; + const isCachable = FULL_CACHE.some(v => v === local) || (base === referrer && base.endsWith(CACHED_FILES[0])); + if (isNavigate || isCachable) { + event.respondWith(async function () { + try { + // Use the preloaded response, if it's there + let request = event.request.clone(); + let response = await event.preloadResponse; + if (!response) { + // Or, go over network. + response = await fetch(event.request); + } + if (isCachable) { + // Update the cache + const cache = await caches.open(CACHE_NAME); + cache.put(request, response.clone()); + } + return response; + } catch (error) { + const cache = await caches.open(CACHE_NAME); + if (event.request.mode === "navigate") { + // Check if we have full cache. + const cached = await Promise.all(FULL_CACHE.map(name => cache.match(name))); + const missing = cached.some(v => v === undefined); + const cachedResponse = missing ? await caches.match(OFFLINE_URL) : await caches.match(CACHED_FILES[0]); + return cachedResponse; + } + const cachedResponse = await caches.match(event.request); + return cachedResponse; + } + }()); + } +}); diff --git a/modules/gltf/gltf_document.cpp b/modules/gltf/gltf_document.cpp index 4868347a74..0a4d4055b4 100644 --- a/modules/gltf/gltf_document.cpp +++ b/modules/gltf/gltf_document.cpp @@ -72,6 +72,7 @@ #include "scene/3d/node_3d.h" #include "scene/3d/skeleton_3d.h" #include "scene/animation/animation_player.h" +#include "scene/main/node.h" #include "scene/resources/surface_tool.h" #include <limits> @@ -449,14 +450,8 @@ Error GLTFDocument::_serialize_nodes(Ref<GLTFState> state) { return OK; } -String GLTFDocument::_sanitize_scene_name(const String &name) { - RegEx regex("([^a-zA-Z0-9_ -]+)"); - String p_name = regex.sub(name, "", true); - return p_name; -} - String GLTFDocument::_gen_unique_name(Ref<GLTFState> state, const String &p_name) { - const String s_name = _sanitize_scene_name(p_name); + const String s_name = p_name.validate_node_name(); String name; int index = 1; @@ -464,7 +459,7 @@ String GLTFDocument::_gen_unique_name(Ref<GLTFState> state, const String &p_name name = s_name; if (index > 1) { - name += " " + itos(index); + name += itos(index); } if (!state->unique_names.has(name)) { break; @@ -477,6 +472,39 @@ String GLTFDocument::_gen_unique_name(Ref<GLTFState> state, const String &p_name return name; } +String GLTFDocument::_sanitize_animation_name(const String &p_name) { + // Animations disallow the normal node invalid characters as well as "," and "[" + // (See animation/animation_player.cpp::add_animation) + + // TODO: Consider adding invalid_characters or a validate_animation_name to animation_player to mirror Node. + String name = p_name.validate_node_name(); + name = name.replace(",", ""); + name = name.replace("[", ""); + return name; +} + +String GLTFDocument::_gen_unique_animation_name(Ref<GLTFState> state, const String &p_name) { + const String s_name = _sanitize_animation_name(p_name); + + String name; + int index = 1; + while (true) { + name = s_name; + + if (index > 1) { + name += itos(index); + } + if (!state->unique_animation_names.has(name)) { + break; + } + index++; + } + + state->unique_animation_names.insert(name); + + return name; +} + String GLTFDocument::_sanitize_bone_name(const String &name) { String p_name = name.camelcase_to_underscore(true); @@ -4729,7 +4757,7 @@ Error GLTFDocument::_parse_animations(Ref<GLTFState> state) { if (name.begins_with("loop") || name.ends_with("loop") || name.begins_with("cycle") || name.ends_with("cycle")) { animation->set_loop(true); } - animation->set_name(_sanitize_scene_name(name)); + animation->set_name(_gen_unique_animation_name(state, name)); } for (int j = 0; j < channels.size(); j++) { diff --git a/modules/gltf/gltf_document.h b/modules/gltf/gltf_document.h index ddf307e6a7..bda1ce87d6 100644 --- a/modules/gltf/gltf_document.h +++ b/modules/gltf/gltf_document.h @@ -162,8 +162,9 @@ private: Error _parse_nodes(Ref<GLTFState> state); String _get_type_name(const GLTFType p_component); String _get_accessor_type_name(const GLTFDocument::GLTFType p_type); - String _sanitize_scene_name(const String &name); String _gen_unique_name(Ref<GLTFState> state, const String &p_name); + String _sanitize_animation_name(const String &name); + String _gen_unique_animation_name(Ref<GLTFState> state, const String &p_name); String _sanitize_bone_name(const String &name); String _gen_unique_bone_name(Ref<GLTFState> state, const GLTFSkeletonIndex skel_i, diff --git a/modules/gltf/gltf_state.cpp b/modules/gltf/gltf_state.cpp index 86f8f44612..ff9778e7d8 100644 --- a/modules/gltf/gltf_state.cpp +++ b/modules/gltf/gltf_state.cpp @@ -71,6 +71,8 @@ void GLTFState::_bind_methods() { ClassDB::bind_method(D_METHOD("set_lights", "lights"), &GLTFState::set_lights); ClassDB::bind_method(D_METHOD("get_unique_names"), &GLTFState::get_unique_names); ClassDB::bind_method(D_METHOD("set_unique_names", "unique_names"), &GLTFState::set_unique_names); + ClassDB::bind_method(D_METHOD("get_unique_animation_names"), &GLTFState::get_unique_animation_names); + ClassDB::bind_method(D_METHOD("set_unique_animation_names", "unique_animation_names"), &GLTFState::set_unique_animation_names); ClassDB::bind_method(D_METHOD("get_skeletons"), &GLTFState::get_skeletons); ClassDB::bind_method(D_METHOD("set_skeletons", "skeletons"), &GLTFState::set_skeletons); ClassDB::bind_method(D_METHOD("get_skeleton_to_node"), &GLTFState::get_skeleton_to_node); @@ -98,6 +100,7 @@ void GLTFState::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "cameras", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_INTERNAL | PROPERTY_USAGE_EDITOR), "set_cameras", "get_cameras"); // Vector<Ref<GLTFCamera>> ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "lights", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_INTERNAL | PROPERTY_USAGE_EDITOR), "set_lights", "get_lights"); // Vector<Ref<GLTFLight>> ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "unique_names", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_INTERNAL | PROPERTY_USAGE_EDITOR), "set_unique_names", "get_unique_names"); // Set<String> + ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "unique_animation_names", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_INTERNAL | PROPERTY_USAGE_EDITOR), "set_unique_animation_names", "get_unique_animation_names"); // Set<String> ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "skeletons", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_INTERNAL | PROPERTY_USAGE_EDITOR), "set_skeletons", "get_skeletons"); // Vector<Ref<GLTFSkeleton>> ADD_PROPERTY(PropertyInfo(Variant::DICTIONARY, "skeleton_to_node", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_INTERNAL | PROPERTY_USAGE_EDITOR), "set_skeleton_to_node", "get_skeleton_to_node"); // Map<GLTFSkeletonIndex, ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "animations", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_INTERNAL | PROPERTY_USAGE_EDITOR), "set_animations", "get_animations"); // Vector<Ref<GLTFAnimation>> @@ -255,6 +258,14 @@ void GLTFState::set_unique_names(Array p_unique_names) { GLTFDocument::set_from_array(unique_names, p_unique_names); } +Array GLTFState::get_unique_animation_names() { + return GLTFDocument::to_array(unique_animation_names); +} + +void GLTFState::set_unique_animation_names(Array p_unique_animation_names) { + GLTFDocument::set_from_array(unique_animation_names, p_unique_animation_names); +} + Array GLTFState::get_skeletons() { return GLTFDocument::to_array(skeletons); } diff --git a/modules/gltf/gltf_state.h b/modules/gltf/gltf_state.h index 4ce5aa9491..9030962b03 100644 --- a/modules/gltf/gltf_state.h +++ b/modules/gltf/gltf_state.h @@ -80,6 +80,7 @@ class GLTFState : public Resource { Vector<Ref<GLTFCamera>> cameras; Vector<Ref<GLTFLight>> lights; Set<String> unique_names; + Set<String> unique_animation_names; Vector<Ref<GLTFSkeleton>> skeletons; Map<GLTFSkeletonIndex, GLTFNodeIndex> skeleton_to_node; @@ -147,6 +148,9 @@ public: Array get_unique_names(); void set_unique_names(Array p_unique_names); + Array get_unique_animation_names(); + void set_unique_animation_names(Array p_unique_names); + Array get_skeletons(); void set_skeletons(Array p_skeletons); diff --git a/modules/mono/glue/GodotSharp/GodotSharp/Core/GodotUnhandledExceptionEvent.cs b/modules/mono/glue/GodotSharp/GodotSharp/Core/GodotUnhandledExceptionEvent.cs new file mode 100644 index 0000000000..702a6c76ba --- /dev/null +++ b/modules/mono/glue/GodotSharp/GodotSharp/Core/GodotUnhandledExceptionEvent.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Godot +{ + public static partial class GD + { + /// <summary> + /// Fires when an unhandled exception occurs, regardless of project settings. + /// </summary> + public static event EventHandler<UnhandledExceptionArgs> UnhandledException; + + private static void OnUnhandledException(Exception e) + { + UnhandledException?.Invoke(null, new UnhandledExceptionArgs(e)); + } + } +} diff --git a/modules/mono/glue/GodotSharp/GodotSharp/Core/UnhandledExceptionArgs.cs b/modules/mono/glue/GodotSharp/GodotSharp/Core/UnhandledExceptionArgs.cs new file mode 100644 index 0000000000..be01674568 --- /dev/null +++ b/modules/mono/glue/GodotSharp/GodotSharp/Core/UnhandledExceptionArgs.cs @@ -0,0 +1,20 @@ +using System; + +namespace Godot +{ + /// <summary> + /// Event arguments for when unhandled exceptions occur. + /// </summary> + public class UnhandledExceptionArgs + { + /// <summary> + /// Exception object + /// </summary> + public Exception Exception { get; private set; } + + internal UnhandledExceptionArgs(Exception exception) + { + Exception = exception; + } + } +} diff --git a/modules/mono/glue/GodotSharp/GodotSharp/GodotSharp.csproj b/modules/mono/glue/GodotSharp/GodotSharp/GodotSharp.csproj index e98eabaff2..54aaaf1f92 100644 --- a/modules/mono/glue/GodotSharp/GodotSharp/GodotSharp.csproj +++ b/modules/mono/glue/GodotSharp/GodotSharp/GodotSharp.csproj @@ -40,6 +40,7 @@ <Compile Include="Core\GodotSynchronizationContext.cs" /> <Compile Include="Core\GodotTaskScheduler.cs" /> <Compile Include="Core\GodotTraceListener.cs" /> + <Compile Include="Core\GodotUnhandledExceptionEvent.cs" /> <Compile Include="Core\Interfaces\IAwaitable.cs" /> <Compile Include="Core\Interfaces\IAwaiter.cs" /> <Compile Include="Core\Interfaces\ISerializationListener.cs" /> @@ -59,6 +60,7 @@ <Compile Include="Core\StringName.cs" /> <Compile Include="Core\Transform.cs" /> <Compile Include="Core\Transform2D.cs" /> + <Compile Include="Core\UnhandledExceptionArgs.cs" /> <Compile Include="Core\Vector2.cs" /> <Compile Include="Core\Vector2i.cs" /> <Compile Include="Core\Vector3.cs" /> diff --git a/modules/mono/mono_gd/gd_mono_internals.cpp b/modules/mono/mono_gd/gd_mono_internals.cpp index 65e2680905..fa93c6533a 100644 --- a/modules/mono/mono_gd/gd_mono_internals.cpp +++ b/modules/mono/mono_gd/gd_mono_internals.cpp @@ -43,7 +43,6 @@ #include <mono/metadata/exception.h> namespace GDMonoInternals { - void tie_managed_to_unmanaged(MonoObject *managed, Object *unmanaged) { // This method should not fail @@ -113,9 +112,11 @@ void tie_managed_to_unmanaged(MonoObject *managed, Object *unmanaged) { void unhandled_exception(MonoException *p_exc) { mono_print_unhandled_exception((MonoObject *)p_exc); + gd_unhandled_exception_event(p_exc); if (GDMono::get_singleton()->get_unhandled_exception_policy() == GDMono::POLICY_TERMINATE_APP) { // Too bad 'mono_invoke_unhandled_exception_hook' is not exposed to embedders + mono_unhandled_exception((MonoObject *)p_exc); GDMono::unhandled_exception_hook((MonoObject *)p_exc, nullptr); GD_UNREACHABLE(); } else { @@ -127,4 +128,14 @@ void unhandled_exception(MonoException *p_exc) { #endif } } + +void gd_unhandled_exception_event(MonoException *p_exc) { + MonoImage *mono_image = GDMono::get_singleton()->get_core_api_assembly()->get_image(); + + MonoClass *gd_klass = mono_class_from_name(mono_image, "Godot", "GD"); + MonoMethod *unhandled_exception_method = mono_class_get_method_from_name(gd_klass, "OnUnhandledException", -1); + void *args[1]; + args[0] = p_exc; + mono_runtime_invoke(unhandled_exception_method, nullptr, (void **)args, nullptr); +} } // namespace GDMonoInternals diff --git a/modules/mono/mono_gd/gd_mono_internals.h b/modules/mono/mono_gd/gd_mono_internals.h index 34d2d35b2d..26eb270eee 100644 --- a/modules/mono/mono_gd/gd_mono_internals.h +++ b/modules/mono/mono_gd/gd_mono_internals.h @@ -38,7 +38,6 @@ #include "core/object/class_db.h" namespace GDMonoInternals { - void tie_managed_to_unmanaged(MonoObject *managed, Object *unmanaged); /** @@ -46,6 +45,8 @@ void tie_managed_to_unmanaged(MonoObject *managed, Object *unmanaged); * Use GDMonoUtils::debug_unhandled_exception(MonoException *) instead. */ void unhandled_exception(MonoException *p_exc); + +void gd_unhandled_exception_event(MonoException *p_exc); } // namespace GDMonoInternals #endif // GD_MONO_INTERNALS_H diff --git a/modules/text_server_adv/bitmap_font_adv.cpp b/modules/text_server_adv/bitmap_font_adv.cpp index e33556b232..df7b42eac6 100644 --- a/modules/text_server_adv/bitmap_font_adv.cpp +++ b/modules/text_server_adv/bitmap_font_adv.cpp @@ -361,6 +361,10 @@ Error BitmapFontDataAdvanced::load_from_file(const String &p_filename, int p_bas base_size = height; } + if (hb_handle) { + hb_font_destroy(hb_handle); + } + hb_handle = hb_bmp_font_create(this, base_size, nullptr); valid = true; memdelete(f); @@ -379,12 +383,10 @@ Error BitmapFontDataAdvanced::bitmap_new(float p_height, float p_ascent, int p_b char_map.clear(); textures.clear(); kerning_map.clear(); - - for (Map<float, hb_font_t *>::Element *E = cache.front(); E; E = E->next()) { - hb_font_destroy(E->get()); + if (hb_handle) { + hb_font_destroy(hb_handle); } - cache.clear(); - + hb_handle = hb_bmp_font_create(this, base_size, nullptr); valid = true; return OK; @@ -466,10 +468,7 @@ float BitmapFontDataAdvanced::get_base_size() const { hb_font_t *BitmapFontDataAdvanced::get_hb_handle(int p_size) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND_V(!valid, nullptr); - if (!cache.has(p_size)) { - cache[p_size] = hb_bmp_font_create(this, p_size, nullptr); - } - return cache[p_size]; + return hb_handle; } bool BitmapFontDataAdvanced::has_char(char32_t p_char) const { @@ -516,6 +515,10 @@ Vector2 BitmapFontDataAdvanced::get_size(uint32_t p_char, int p_size) const { return c->rect.size * (float(p_size) / float(base_size)); } +float BitmapFontDataAdvanced::get_font_scale(int p_size) const { + return float(p_size) / float(base_size); +} + Vector2 BitmapFontDataAdvanced::get_kerning(uint32_t p_char, uint32_t p_next, int p_size) const { _THREAD_SAFE_METHOD_ ERR_FAIL_COND_V(!valid, Vector2()); @@ -543,13 +546,13 @@ Vector2 BitmapFontDataAdvanced::draw_glyph(RID p_canvas, int p_size, const Vecto ERR_FAIL_COND_V(c->texture_idx < -1 || c->texture_idx >= textures.size(), Vector2()); if (c->texture_idx != -1) { Point2i cpos = p_pos; - cpos += c->align * (float(p_size) / float(base_size)); - cpos.y -= ascent * (float(p_size) / float(base_size)); + cpos += (c->align + Vector2(0, -ascent)) * (float(p_size) / float(base_size)); + Size2i csize = c->rect.size * (float(p_size) / float(base_size)); if (RenderingServer::get_singleton() != nullptr) { //if (distance_field_hint) { // Not implemented. // RenderingServer::get_singleton()->canvas_item_set_distance_field_mode(p_canvas, true); //} - RenderingServer::get_singleton()->canvas_item_add_texture_rect_region(p_canvas, Rect2(cpos, c->rect.size * (float(p_size) / float(base_size))), textures[c->texture_idx]->get_rid(), c->rect, p_color, false, false); + RenderingServer::get_singleton()->canvas_item_add_texture_rect_region(p_canvas, Rect2(cpos, csize), textures[c->texture_idx]->get_rid(), c->rect, p_color, false, false); //if (distance_field_hint) { // RenderingServer::get_singleton()->canvas_item_set_distance_field_mode(p_canvas, false); //} @@ -576,7 +579,7 @@ Vector2 BitmapFontDataAdvanced::draw_glyph_outline(RID p_canvas, int p_size, int } BitmapFontDataAdvanced::~BitmapFontDataAdvanced() { - for (Map<float, hb_font_t *>::Element *E = cache.front(); E; E = E->next()) { - hb_font_destroy(E->get()); + if (hb_handle) { + hb_font_destroy(hb_handle); } } diff --git a/modules/text_server_adv/bitmap_font_adv.h b/modules/text_server_adv/bitmap_font_adv.h index da7c2b00ac..7b620021e1 100644 --- a/modules/text_server_adv/bitmap_font_adv.h +++ b/modules/text_server_adv/bitmap_font_adv.h @@ -63,11 +63,11 @@ private: HashMap<uint32_t, Character> char_map; Map<KerningPairKey, int> kerning_map; - Map<float, hb_font_t *> cache; + hb_font_t *hb_handle = nullptr; float height = 0.f; float ascent = 0.f; - float base_size = 0.f; + int base_size = 0; bool distance_field_hint = false; public: @@ -101,6 +101,7 @@ public: virtual bool has_outline() const override { return false; }; virtual float get_base_size() const override; + virtual float get_font_scale(int p_size) const override; virtual hb_font_t *get_hb_handle(int p_size) override; diff --git a/modules/text_server_fb/bitmap_font_fb.cpp b/modules/text_server_fb/bitmap_font_fb.cpp index c58f8cbba1..313f170f04 100644 --- a/modules/text_server_fb/bitmap_font_fb.cpp +++ b/modules/text_server_fb/bitmap_font_fb.cpp @@ -319,14 +319,13 @@ Vector2 BitmapFontDataFallback::draw_glyph(RID p_canvas, int p_size, const Vecto ERR_FAIL_COND_V(c->texture_idx < -1 || c->texture_idx >= textures.size(), Vector2()); if (c->texture_idx != -1) { Point2i cpos = p_pos; - cpos += c->align * (float(p_size) / float(base_size)); - cpos.y -= ascent * (float(p_size) / float(base_size)); - + cpos += (c->align + Vector2(0, -ascent)) * (float(p_size) / float(base_size)); + Size2i csize = c->rect.size * (float(p_size) / float(base_size)); if (RenderingServer::get_singleton() != nullptr) { //if (distance_field_hint) { // Not implemented. // RenderingServer::get_singleton()->canvas_item_set_distance_field_mode(p_canvas, true); //} - RenderingServer::get_singleton()->canvas_item_add_texture_rect_region(p_canvas, Rect2(cpos, c->rect.size * (float(p_size) / float(base_size))), textures[c->texture_idx]->get_rid(), c->rect, p_color, false, false); + RenderingServer::get_singleton()->canvas_item_add_texture_rect_region(p_canvas, Rect2(cpos, csize), textures[c->texture_idx]->get_rid(), c->rect, p_color, false, false); //if (distance_field_hint) { // RenderingServer::get_singleton()->canvas_item_set_distance_field_mode(p_canvas, false); //} diff --git a/platform/javascript/SCsub b/platform/javascript/SCsub index 72e999b38d..a760e36982 100644 --- a/platform/javascript/SCsub +++ b/platform/javascript/SCsub @@ -86,40 +86,6 @@ wrap_list = [ ] js_wrapped = env.Textfile("#bin/godot", [env.File(f) for f in wrap_list], TEXTFILESUFFIX="${PROGSUFFIX}.wrapped.js") -zip_dir = env.Dir("#bin/.javascript_zip") -binary_name = "godot.tools" if env["tools"] else "godot" -out_files = [ - zip_dir.File(binary_name + ".js"), - zip_dir.File(binary_name + ".wasm"), - zip_dir.File(binary_name + ".html"), - zip_dir.File(binary_name + ".audio.worklet.js"), -] -html_file = "#misc/dist/html/full-size.html" -if env["tools"]: - subst_dict = {"@GODOT_VERSION@": env.GetBuildVersion()} - html_file = env.Substfile( - target="#bin/godot${PROGSUFFIX}.html", source="#misc/dist/html/editor.html", SUBST_DICT=subst_dict - ) - -in_files = [js_wrapped, build[1], html_file, "#platform/javascript/js/libs/audio.worklet.js"] -if env["gdnative_enabled"]: - in_files.append(build[2]) # Runtime - out_files.append(zip_dir.File(binary_name + ".side.wasm")) -elif env["threads_enabled"]: - in_files.append(build[2]) # Worker - out_files.append(zip_dir.File(binary_name + ".worker.js")) - -if env["tools"]: - in_files.append("#misc/dist/html/logo.svg") - out_files.append(zip_dir.File("logo.svg")) - in_files.append("#icon.png") - out_files.append(zip_dir.File("favicon.png")) - -zip_files = env.InstallAs(out_files, in_files) -env.Zip( - "#bin/godot", - zip_files, - ZIPROOT=zip_dir, - ZIPSUFFIX="${PROGSUFFIX}${ZIPSUFFIX}", - ZIPCOMSTR="Archiving $SOURCES as $TARGET", -) +# Extra will be the thread worker, or the GDNative side, or None +extra = build[2] if len(build) > 2 else None +env.CreateTemplateZip(js_wrapped, build[1], extra) diff --git a/platform/javascript/detect.py b/platform/javascript/detect.py index 4297088c09..e80ef374ec 100644 --- a/platform/javascript/detect.py +++ b/platform/javascript/detect.py @@ -7,7 +7,7 @@ from emscripten_helpers import ( add_js_libraries, add_js_pre, add_js_externs, - get_build_version, + create_template_zip, ) from methods import get_compiler_version from SCons.Util import WhereIs @@ -147,12 +147,12 @@ def configure(env): env.AddMethod(add_js_pre, "AddJSPre") env.AddMethod(add_js_externs, "AddJSExterns") - # Add method for getting build version string. - env.AddMethod(get_build_version, "GetBuildVersion") - # Add method that joins/compiles our Engine files. env.AddMethod(create_engine_file, "CreateEngineFile") + # Add method for creating the final zip file + env.AddMethod(create_template_zip, "CreateTemplateZip") + # Closure compiler extern and support for ecmascript specs (const, let, etc). env["ENV"]["EMCC_CLOSURE_ARGS"] = "--language_in ECMASCRIPT6" diff --git a/platform/javascript/display_server_javascript.cpp b/platform/javascript/display_server_javascript.cpp index a605f22e16..12e06e24dc 100644 --- a/platform/javascript/display_server_javascript.cpp +++ b/platform/javascript/display_server_javascript.cpp @@ -683,7 +683,7 @@ DisplayServerJavaScript::DisplayServerJavaScript(const String &p_rendering_drive godot_js_config_canvas_id_get(canvas_id, 256); // Handle contextmenu, webglcontextlost - godot_js_display_setup_canvas(p_resolution.x, p_resolution.y, p_mode == WINDOW_MODE_FULLSCREEN); + godot_js_display_setup_canvas(p_resolution.x, p_resolution.y, p_mode == WINDOW_MODE_FULLSCREEN, OS::get_singleton()->is_hidpi_allowed() ? 1 : 0); // Check if it's windows. swap_cancel_ok = godot_js_display_is_swap_ok_cancel() == 1; diff --git a/platform/javascript/emscripten_helpers.py b/platform/javascript/emscripten_helpers.py index d08555916b..04fbba8a41 100644 --- a/platform/javascript/emscripten_helpers.py +++ b/platform/javascript/emscripten_helpers.py @@ -15,7 +15,7 @@ def run_closure_compiler(target, source, env, for_signature): return " ".join(cmd) -def get_build_version(env): +def get_build_version(): import version name = "custom_build" @@ -30,6 +30,65 @@ def create_engine_file(env, target, source, externs): return env.Textfile(target, [env.File(s) for s in source]) +def create_template_zip(env, js, wasm, extra): + binary_name = "godot.tools" if env["tools"] else "godot" + zip_dir = env.Dir("#bin/.javascript_zip") + in_files = [ + js, + wasm, + "#platform/javascript/js/libs/audio.worklet.js", + ] + out_files = [ + zip_dir.File(binary_name + ".js"), + zip_dir.File(binary_name + ".wasm"), + zip_dir.File(binary_name + ".audio.worklet.js"), + ] + # GDNative/Threads specific + if env["gdnative_enabled"]: + in_files.append(extra) # Runtime + out_files.append(zip_dir.File(binary_name + ".side.wasm")) + elif env["threads_enabled"]: + in_files.append(extra) # Worker + out_files.append(zip_dir.File(binary_name + ".worker.js")) + + service_worker = "#misc/dist/html/service-worker.js" + if env["tools"]: + # HTML + html = "#misc/dist/html/editor.html" + subst_dict = {"@GODOT_VERSION@": get_build_version(), "@GODOT_NAME@": "GodotEngine"} + html = env.Substfile(target="#bin/godot${PROGSUFFIX}.html", source=html, SUBST_DICT=subst_dict) + in_files.append(html) + out_files.append(zip_dir.File(binary_name + ".html")) + # And logo/favicon + in_files.append("#misc/dist/html/logo.svg") + out_files.append(zip_dir.File("logo.svg")) + in_files.append("#icon.png") + out_files.append(zip_dir.File("favicon.png")) + # PWA + service_worker = env.Substfile( + target="#bin/godot${PROGSUFFIX}.service.worker.js", source=service_worker, SUBST_DICT=subst_dict + ) + in_files.append(service_worker) + out_files.append(zip_dir.File("service.worker.js")) + in_files.append("#misc/dist/html/manifest.json") + out_files.append(zip_dir.File("manifest.json")) + in_files.append("#misc/dist/html/offline.html") + out_files.append(zip_dir.File("offline.html")) + else: + # HTML + in_files.append("#misc/dist/html/full-size.html") + out_files.append(zip_dir.File(binary_name + ".html")) + + zip_files = env.InstallAs(out_files, in_files) + env.Zip( + "#bin/godot", + zip_files, + ZIPROOT=zip_dir, + ZIPSUFFIX="${PROGSUFFIX}${ZIPSUFFIX}", + ZIPCOMSTR="Archiving $SOURCES as $TARGET", + ) + + def add_js_libraries(env, libraries): env.Append(JS_LIBS=env.File(libraries)) diff --git a/platform/javascript/godot_js.h b/platform/javascript/godot_js.h index 5aa8677a54..f86aadd2c2 100644 --- a/platform/javascript/godot_js.h +++ b/platform/javascript/godot_js.h @@ -92,7 +92,7 @@ extern int godot_js_display_gamepad_sample_get(int p_idx, float r_btns[16], int3 extern void godot_js_display_notification_cb(void (*p_callback)(int p_notification), int p_enter, int p_exit, int p_in, int p_out); extern void godot_js_display_paste_cb(void (*p_callback)(const char *p_text)); extern void godot_js_display_drop_files_cb(void (*p_callback)(char **p_filev, int p_filec)); -extern void godot_js_display_setup_canvas(int p_width, int p_height, int p_fullscreen); +extern void godot_js_display_setup_canvas(int p_width, int p_height, int p_fullscreen, int p_hidpi); #ifdef __cplusplus } #endif diff --git a/platform/javascript/js/libs/library_godot_audio.js b/platform/javascript/js/libs/library_godot_audio.js index 8e385e9176..ac4055516c 100644 --- a/platform/javascript/js/libs/library_godot_audio.js +++ b/platform/javascript/js/libs/library_godot_audio.js @@ -238,6 +238,9 @@ const GodotAudioWorklet = { close: function () { return new Promise(function (resolve, reject) { + if (GodotAudioWorklet.promise === null) { + return; + } GodotAudioWorklet.promise.then(function () { GodotAudioWorklet.worklet.port.postMessage({ 'cmd': 'stop', @@ -247,7 +250,7 @@ const GodotAudioWorklet = { GodotAudioWorklet.worklet = null; GodotAudioWorklet.promise = null; resolve(); - }); + }).catch(function (err) { /* aborted? */ }); }); }, }, diff --git a/platform/javascript/js/libs/library_godot_display.js b/platform/javascript/js/libs/library_godot_display.js index c72b6b3691..b4f1fee4ed 100644 --- a/platform/javascript/js/libs/library_godot_display.js +++ b/platform/javascript/js/libs/library_godot_display.js @@ -400,6 +400,10 @@ const GodotDisplayScreen = { $GodotDisplayScreen__deps: ['$GodotConfig', '$GodotOS', '$GL', 'emscripten_webgl_get_current_context'], $GodotDisplayScreen: { desired_size: [0, 0], + hidpi: true, + getPixelRatio: function () { + return GodotDisplayScreen.hidpi ? window.devicePixelRatio || 1 : 1; + }, isFullscreen: function () { const elem = document.fullscreenElement || document.mozFullscreenElement || document.webkitFullscreenElement || document.msFullscreenElement; @@ -477,7 +481,7 @@ const GodotDisplayScreen = { } return 0; } - const scale = window.devicePixelRatio || 1; + const scale = GodotDisplayScreen.getPixelRatio(); if (isFullscreen || wantsFullWindow) { // We need to match screen size. width = window.innerWidth * scale; @@ -555,7 +559,7 @@ const GodotDisplay = { godot_js_display_pixel_ratio_get__sig: 'f', godot_js_display_pixel_ratio_get: function () { - return window.devicePixelRatio || 1; + return GodotDisplayScreen.getPixelRatio(); }, godot_js_display_fullscreen_request__sig: 'i', @@ -581,7 +585,7 @@ const GodotDisplay = { godot_js_display_screen_size_get__sig: 'vii', godot_js_display_screen_size_get: function (width, height) { - const scale = window.devicePixelRatio || 1; + const scale = GodotDisplayScreen.getPixelRatio(); GodotRuntime.setHeapValue(width, window.screen.width * scale, 'i32'); GodotRuntime.setHeapValue(height, window.screen.height * scale, 'i32'); }, @@ -776,8 +780,8 @@ const GodotDisplay = { GodotDisplayListeners.add(canvas, 'drop', GodotDisplayDragDrop.handler(dropFiles)); }, - godot_js_display_setup_canvas__sig: 'viii', - godot_js_display_setup_canvas: function (p_width, p_height, p_fullscreen) { + godot_js_display_setup_canvas__sig: 'viiii', + godot_js_display_setup_canvas: function (p_width, p_height, p_fullscreen, p_hidpi) { const canvas = GodotConfig.canvas; GodotDisplayListeners.add(canvas, 'contextmenu', function (ev) { ev.preventDefault(); @@ -786,6 +790,7 @@ const GodotDisplay = { alert('WebGL context lost, please reload the page'); // eslint-disable-line no-alert ev.preventDefault(); }, false); + GodotDisplayScreen.hidpi = !!p_hidpi; switch (GodotConfig.canvas_resize_policy) { case 0: // None GodotDisplayScreen.desired_size = [canvas.width, canvas.height]; diff --git a/platform/linuxbsd/display_server_x11.cpp b/platform/linuxbsd/display_server_x11.cpp index d7f7054acb..3bc859e17d 100644 --- a/platform/linuxbsd/display_server_x11.cpp +++ b/platform/linuxbsd/display_server_x11.cpp @@ -4030,7 +4030,10 @@ DisplayServerX11::DisplayServerX11(const String &p_rendering_driver, WindowMode use_prime = 0; } - if (getenv("LD_LIBRARY_PATH")) { + // Some tools use fake libGL libraries and have them override the real one using + // LD_LIBRARY_PATH, so we skip them. *But* Steam also sets LD_LIBRARY_PATH for its + // runtime and includes system `/lib` and `/lib64`... so ignore Steam. + if (use_prime == -1 && getenv("LD_LIBRARY_PATH") && !getenv("STEAM_RUNTIME_LIBRARY_PATH")) { String ld_library_path(getenv("LD_LIBRARY_PATH")); Vector<String> libraries = ld_library_path.split(":"); diff --git a/scene/2d/camera_2d.cpp b/scene/2d/camera_2d.cpp index c5ac4e1a05..9030cc4263 100644 --- a/scene/2d/camera_2d.cpp +++ b/scene/2d/camera_2d.cpp @@ -569,6 +569,7 @@ void Camera2D::_set_old_smoothing(float p_enable) { void Camera2D::set_enable_follow_smoothing(bool p_enabled) { smoothing_enabled = p_enabled; + notify_property_list_changed(); } bool Camera2D::is_follow_smoothing_enabled() const { @@ -642,6 +643,12 @@ bool Camera2D::is_margin_drawing_enabled() const { return margin_drawing_enabled; } +void Camera2D::_validate_property(PropertyInfo &property) const { + if (!smoothing_enabled && property.name == "smoothing_speed") { + property.usage = PROPERTY_USAGE_NOEDITOR; + } +} + void Camera2D::_bind_methods() { ClassDB::bind_method(D_METHOD("set_offset", "offset"), &Camera2D::set_offset); ClassDB::bind_method(D_METHOD("get_offset"), &Camera2D::get_offset); diff --git a/scene/2d/camera_2d.h b/scene/2d/camera_2d.h index 252d2686fc..220e208eb0 100644 --- a/scene/2d/camera_2d.h +++ b/scene/2d/camera_2d.h @@ -97,8 +97,10 @@ protected: protected: virtual Transform2D get_camera_transform(); + void _notification(int p_what); static void _bind_methods(); + void _validate_property(PropertyInfo &property) const override; public: void set_offset(const Vector2 &p_offset); diff --git a/scene/2d/light_2d.cpp b/scene/2d/light_2d.cpp index 15fcb08422..58e15e3cca 100644 --- a/scene/2d/light_2d.cpp +++ b/scene/2d/light_2d.cpp @@ -159,6 +159,7 @@ int Light2D::get_item_shadow_cull_mask() const { void Light2D::set_shadow_enabled(bool p_enabled) { shadow = p_enabled; RS::get_singleton()->canvas_light_set_shadow_enabled(canvas_light, shadow); + notify_property_list_changed(); } bool Light2D::is_shadow_enabled() const { @@ -221,6 +222,12 @@ float Light2D::get_shadow_smooth() const { return shadow_smooth; } +void Light2D::_validate_property(PropertyInfo &property) const { + if (!shadow && (property.name == "shadow_color" || property.name == "shadow_filter" || property.name == "shadow_filter_smooth" || property.name == "shadow_item_cull_mask")) { + property.usage = PROPERTY_USAGE_NOEDITOR; + } +} + void Light2D::_bind_methods() { ClassDB::bind_method(D_METHOD("set_enabled", "enabled"), &Light2D::set_enabled); ClassDB::bind_method(D_METHOD("is_enabled"), &Light2D::is_enabled); diff --git a/scene/2d/light_2d.h b/scene/2d/light_2d.h index 4279baf15b..de8a2bb6d0 100644 --- a/scene/2d/light_2d.h +++ b/scene/2d/light_2d.h @@ -77,6 +77,7 @@ protected: _FORCE_INLINE_ RID _get_light() const { return canvas_light; } void _notification(int p_what); static void _bind_methods(); + void _validate_property(PropertyInfo &property) const override; public: void set_enabled(bool p_enabled); diff --git a/scene/2d/polygon_2d.cpp b/scene/2d/polygon_2d.cpp index a60a32f1d2..2bb75e5967 100644 --- a/scene/2d/polygon_2d.cpp +++ b/scene/2d/polygon_2d.cpp @@ -88,13 +88,13 @@ bool Polygon2D::_edit_is_selected_on_click(const Point2 &p_point, double p_toler } return Geometry2D::is_point_in_polygon(p_point - get_offset(), polygon2d); } +#endif void Polygon2D::_validate_property(PropertyInfo &property) const { if (!invert && property.name == "invert_border") { property.usage = PROPERTY_USAGE_NOEDITOR; } } -#endif void Polygon2D::_skeleton_bone_setup_changed() { update(); diff --git a/scene/2d/polygon_2d.h b/scene/2d/polygon_2d.h index 43a66aad13..b329251277 100644 --- a/scene/2d/polygon_2d.h +++ b/scene/2d/polygon_2d.h @@ -72,13 +72,10 @@ class Polygon2D : public Node2D { void _skeleton_bone_setup_changed(); -#ifdef TOOLS_ENABLED - void _validate_property(PropertyInfo &property) const override; -#endif - protected: void _notification(int p_what); static void _bind_methods(); + void _validate_property(PropertyInfo &property) const override; public: #ifdef TOOLS_ENABLED diff --git a/scene/3d/decal.cpp b/scene/3d/decal.cpp index b5eab35605..7d6abe458a 100644 --- a/scene/3d/decal.cpp +++ b/scene/3d/decal.cpp @@ -154,13 +154,11 @@ Vector<Face3> Decal::get_faces(uint32_t p_usage_flags) const { return Vector<Face3>(); } -#ifdef TOOLS_ENABLED void Decal::_validate_property(PropertyInfo &property) const { if (!distance_fade_enabled && (property.name == "distance_fade_begin" || property.name == "distance_fade_length")) { property.usage = PROPERTY_USAGE_NOEDITOR; } } -#endif void Decal::_bind_methods() { ClassDB::bind_method(D_METHOD("set_extents", "extents"), &Decal::set_extents); diff --git a/scene/3d/decal.h b/scene/3d/decal.h index 20d86ee16c..ce19e76de1 100644 --- a/scene/3d/decal.h +++ b/scene/3d/decal.h @@ -62,12 +62,9 @@ private: float distance_fade_begin = 10.0; float distance_fade_length = 1.0; -#ifdef TOOLS_ENABLED - void _validate_property(PropertyInfo &property) const override; -#endif - protected: static void _bind_methods(); + void _validate_property(PropertyInfo &property) const override; public: void set_extents(const Vector3 &p_extents); diff --git a/scene/3d/light_3d.cpp b/scene/3d/light_3d.cpp index 87f54022b3..f109640aef 100644 --- a/scene/3d/light_3d.cpp +++ b/scene/3d/light_3d.cpp @@ -204,7 +204,7 @@ bool Light3D::is_editor_only() const { } void Light3D::_validate_property(PropertyInfo &property) const { - if (!shadow && (property.name == "shadow_color" || property.name == "shadow_color" || property.name == "shadow_bias" || property.name == "shadow_normal_bias" || property.name == "shadow_reverse_cull_face" || property.name == "shadow_transmittance_bias" || property.name == "shadow_blur")) { + if (!shadow && (property.name == "shadow_color" || property.name == "shadow_bias" || property.name == "shadow_normal_bias" || property.name == "shadow_reverse_cull_face" || property.name == "shadow_transmittance_bias" || property.name == "shadow_fog_fade" || property.name == "shadow_blur")) { property.usage = PROPERTY_USAGE_NOEDITOR; } diff --git a/scene/3d/sprite_3d.cpp b/scene/3d/sprite_3d.cpp index f881181ccd..b7a3135bd5 100644 --- a/scene/3d/sprite_3d.cpp +++ b/scene/3d/sprite_3d.cpp @@ -625,11 +625,9 @@ void Sprite3D::_validate_property(PropertyInfo &property) const { property.usage |= PROPERTY_USAGE_KEYING_INCREMENTS; } -#ifdef TOOLS_ENABLED if (!region && property.name == "region_rect") { property.usage = PROPERTY_USAGE_NOEDITOR; } -#endif } void Sprite3D::_bind_methods() { diff --git a/scene/3d/vehicle_body_3d.cpp b/scene/3d/vehicle_body_3d.cpp index 0d25e2f21f..8b774444b9 100644 --- a/scene/3d/vehicle_body_3d.cpp +++ b/scene/3d/vehicle_body_3d.cpp @@ -407,7 +407,7 @@ real_t VehicleBody3D::_ray_cast(int p_idx, PhysicsDirectBodyState3D *s) { PhysicsDirectSpaceState3D *ss = s->get_space_state(); - bool col = ss->intersect_ray(source, target, rr, exclude); + bool col = ss->intersect_ray(source, target, rr, exclude, get_collision_mask()); wheel.m_raycastInfo.m_groundObject = nullptr; diff --git a/scene/gui/color_picker.cpp b/scene/gui/color_picker.cpp index e8586b72e9..bddbe30f53 100644 --- a/scene/gui/color_picker.cpp +++ b/scene/gui/color_picker.cpp @@ -113,6 +113,24 @@ void ColorPicker::_update_controls() { btn_hsv->set_disabled(false); } + if (raw_mode_enabled) { + for (int i = 0; i < 3; i++) { + scroll[i]->add_theme_icon_override("grabber", Ref<Texture2D>()); + scroll[i]->add_theme_icon_override("grabber_highlight", Ref<Texture2D>()); + scroll[i]->add_theme_style_override("slider", Ref<StyleBox>()); + scroll[i]->add_theme_style_override("grabber_area", Ref<StyleBox>()); + scroll[i]->add_theme_style_override("grabber_area_highlight", Ref<StyleBox>()); + } + } else { + for (int i = 0; i < 3; i++) { + scroll[i]->add_theme_icon_override("grabber", get_theme_icon("bar_arrow")); + scroll[i]->add_theme_icon_override("grabber_highlight", get_theme_icon("bar_arrow")); + scroll[i]->add_theme_style_override("slider", Ref<StyleBoxEmpty>(memnew(StyleBoxEmpty))); + scroll[i]->add_theme_style_override("grabber_area", Ref<StyleBoxEmpty>(memnew(StyleBoxEmpty))); + scroll[i]->add_theme_style_override("grabber_area_highlight", Ref<StyleBoxEmpty>(memnew(StyleBoxEmpty))); + } + } + if (edit_alpha) { values[3]->show(); scroll[3]->show(); @@ -243,6 +261,9 @@ void ColorPicker::_update_color(bool p_update_sliders) { sample->update(); uv_edit->update(); w_edit->update(); + for (int i = 0; i < 4; i++) { + scroll[i]->update(); + } updating = false; } @@ -456,6 +477,69 @@ void ColorPicker::_hsv_draw(int p_which, Control *c) { } } +void ColorPicker::_slider_draw(int p_which) { + Vector<Vector2> pos; + pos.resize(4); + Vector<Color> col; + col.resize(4); + Size2 size = scroll[p_which]->get_size(); + Color left_color; + Color right_color; +#ifdef TOOLS_ENABLED + const real_t margin = 4 * EDSCALE; +#else + const real_t margin = 4; +#endif + + if (p_which == 3) { + scroll[p_which]->draw_texture_rect(get_theme_icon("preset_bg", "ColorPicker"), Rect2(Point2(0, margin), Size2(size.x, margin)), true); + + left_color = color; + left_color.a = 0; + right_color = color; + right_color.a = 1; + } else { + if (raw_mode_enabled) { + return; + } + if (hsv_mode_enabled) { + if (p_which == 0) { + Ref<Texture2D> hue = get_theme_icon("color_hue", "ColorPicker"); + scroll[p_which]->draw_set_transform(Point2(), -Math_PI / 2, Size2(1.0, 1.0)); + scroll[p_which]->draw_texture_rect(hue, Rect2(Vector2(margin * -2, 0), Vector2(scroll[p_which]->get_size().x, margin)), false, Color(1, 1, 1), true); + return; + } + Color s_col; + Color v_col; + s_col.set_hsv(h, 0, v); + left_color = (p_which == 1) ? s_col : Color(0, 0, 0); + s_col.set_hsv(h, 1, v); + v_col.set_hsv(h, s, 1); + right_color = (p_which == 1) ? s_col : v_col; + } else { + left_color = Color( + p_which == 0 ? 0 : color.r, + p_which == 1 ? 0 : color.g, + p_which == 2 ? 0 : color.b); + right_color = Color( + p_which == 0 ? 1 : color.r, + p_which == 1 ? 1 : color.g, + p_which == 2 ? 1 : color.b); + } + } + + col.set(0, left_color); + col.set(1, right_color); + col.set(2, right_color); + col.set(3, left_color); + pos.set(0, Vector2(0, margin)); + pos.set(1, Vector2(size.x, margin)); + pos.set(2, Vector2(size.x, margin * 2)); + pos.set(3, Vector2(0, margin * 2)); + + scroll[p_which]->draw_polygon(pos, col); +} + void ColorPicker::_uv_input(const Ref<InputEvent> &p_event) { Ref<InputEventMouseButton> bev = p_event; @@ -799,10 +883,16 @@ ColorPicker::ColorPicker() : scroll[i]->set_h_size_flags(SIZE_EXPAND_FILL); scroll[i]->connect("value_changed", callable_mp(this, &ColorPicker::_value_changed)); + scroll[i]->connect("draw", callable_mp(this, &ColorPicker::_slider_draw), make_binds(i)); vbr->add_child(hbc); } labels[3]->set_text("A"); + scroll[3]->add_theme_icon_override("grabber", get_theme_icon("bar_arrow")); + scroll[3]->add_theme_icon_override("grabber_highlight", get_theme_icon("bar_arrow")); + scroll[3]->add_theme_style_override("slider", Ref<StyleBoxEmpty>(memnew(StyleBoxEmpty))); + scroll[3]->add_theme_style_override("grabber_area", Ref<StyleBoxEmpty>(memnew(StyleBoxEmpty))); + scroll[3]->add_theme_style_override("grabber_area_highlight", Ref<StyleBoxEmpty>(memnew(StyleBoxEmpty))); HBoxContainer *hhb = memnew(HBoxContainer); vbr->add_child(hhb); diff --git a/scene/gui/color_picker.h b/scene/gui/color_picker.h index 7915527bc0..24e1746c41 100644 --- a/scene/gui/color_picker.h +++ b/scene/gui/color_picker.h @@ -91,6 +91,7 @@ private: void _text_type_toggled(); void _sample_draw(); void _hsv_draw(int p_which, Control *c); + void _slider_draw(int p_which); void _uv_input(const Ref<InputEvent> &p_event); void _w_input(const Ref<InputEvent> &p_event); diff --git a/scene/gui/label.cpp b/scene/gui/label.cpp index b98caf3562..be73fd8f51 100644 --- a/scene/gui/label.cpp +++ b/scene/gui/label.cpp @@ -260,7 +260,8 @@ void Label::_notification(int p_what) { } } } - visible_glyphs = total_glyphs * percent_visible; + + visible_glyphs = MIN(total_glyphs, visible_chars); } Vector2 ofs; @@ -541,6 +542,8 @@ void Label::set_visible_characters(int p_amount) { visible_chars = p_amount; if (get_total_character_count() > 0) { percent_visible = (float)p_amount / (float)get_total_character_count(); + } else { + percent_visible = 1.0; } update(); } diff --git a/scene/gui/line_edit.cpp b/scene/gui/line_edit.cpp index 3e8ebd2429..830ffc092f 100644 --- a/scene/gui/line_edit.cpp +++ b/scene/gui/line_edit.cpp @@ -1154,6 +1154,8 @@ void LineEdit::cursor_set_blink_enabled(const bool p_enabled) { } draw_caret = true; + + notify_property_list_changed(); } bool LineEdit::cursor_get_force_displayed() const { @@ -2075,6 +2077,12 @@ void LineEdit::_get_property_list(List<PropertyInfo> *p_list) const { p_list->push_back(PropertyInfo(Variant::NIL, "opentype_features/_new", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_EDITOR)); } +void LineEdit::_validate_property(PropertyInfo &property) const { + if (!caret_blink_enabled && property.name == "caret_blink_speed") { + property.usage = PROPERTY_USAGE_NOEDITOR; + } +} + void LineEdit::_bind_methods() { ClassDB::bind_method(D_METHOD("_text_changed"), &LineEdit::_text_changed); diff --git a/scene/gui/line_edit.h b/scene/gui/line_edit.h index f1d9de255a..ef36377f2e 100644 --- a/scene/gui/line_edit.h +++ b/scene/gui/line_edit.h @@ -198,15 +198,15 @@ private: void _backspace(bool p_word = false, bool p_all_to_left = false); void _delete(bool p_word = false, bool p_all_to_right = false); - void _gui_input(Ref<InputEvent> p_event); - void _notification(int p_what); - protected: + void _notification(int p_what); static void _bind_methods(); + void _gui_input(Ref<InputEvent> p_event); bool _set(const StringName &p_name, const Variant &p_value); bool _get(const StringName &p_name, Variant &r_ret) const; void _get_property_list(List<PropertyInfo> *p_list) const; + void _validate_property(PropertyInfo &property) const override; public: void set_align(Align p_align); diff --git a/scene/gui/rich_text_label.cpp b/scene/gui/rich_text_label.cpp index 682584d73f..ed319f9fd0 100644 --- a/scene/gui/rich_text_label.cpp +++ b/scene/gui/rich_text_label.cpp @@ -3634,6 +3634,7 @@ void RichTextLabel::set_use_bbcode(bool p_enable) { } use_bbcode = p_enable; set_bbcode(bbcode); + notify_property_list_changed(); } bool RichTextLabel::is_using_bbcode() const { @@ -3771,6 +3772,12 @@ int RichTextLabel::get_content_height() const { return total_height; } +void RichTextLabel::_validate_property(PropertyInfo &property) const { + if (!use_bbcode && property.name == "bbcode_text") { + property.usage = PROPERTY_USAGE_NOEDITOR; + } +} + void RichTextLabel::_bind_methods() { ClassDB::bind_method(D_METHOD("_gui_input"), &RichTextLabel::_gui_input); ClassDB::bind_method(D_METHOD("get_text"), &RichTextLabel::get_text); diff --git a/scene/gui/rich_text_label.h b/scene/gui/rich_text_label.h index 2351aff0a4..e3e457d1f2 100644 --- a/scene/gui/rich_text_label.h +++ b/scene/gui/rich_text_label.h @@ -81,7 +81,9 @@ public: }; protected: + void _notification(int p_what); static void _bind_methods(); + void _validate_property(PropertyInfo &property) const override; private: struct Item; @@ -441,9 +443,6 @@ private: bool fit_content_height = false; -protected: - void _notification(int p_what); - public: String get_text(); void add_text(const String &p_text); diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp index 5a7901c11b..e488e7a914 100644 --- a/scene/gui/text_edit.cpp +++ b/scene/gui/text_edit.cpp @@ -2190,9 +2190,14 @@ void TextEdit::_new_line(bool p_split_current_line, bool p_above) { // No need to move the brace below if we are not taking the text with us. char32_t closing_char = _get_right_pair_symbol(indent_char); - if ((closing_char != 0) && (closing_char == text[cursor.line][cursor.column]) && !p_split_current_line) { - brace_indent = true; - ins += "\n" + ins.substr(1, ins.length() - 2); + if ((closing_char != 0) && (closing_char == text[cursor.line][cursor.column])) { + if (p_split_current_line) { + brace_indent = true; + ins += "\n" + ins.substr(1, ins.length() - 2); + } else { + brace_indent = false; + ins = "\n" + ins.substr(1, ins.length() - 2); + } } } } @@ -2984,8 +2989,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { } else { if (cursor.line < selection.selecting_line || (cursor.line == selection.selecting_line && cursor.column < selection.selecting_column)) { if (selection.shiftclick_left) { - SWAP(selection.from_column, selection.to_column); - SWAP(selection.from_line, selection.to_line); selection.shiftclick_left = !selection.shiftclick_left; } selection.from_column = cursor.column; diff --git a/scene/main/canvas_layer.cpp b/scene/main/canvas_layer.cpp index d9b29daf26..85d7edd64b 100644 --- a/scene/main/canvas_layer.cpp +++ b/scene/main/canvas_layer.cpp @@ -258,13 +258,11 @@ void CanvasLayer::_update_follow_viewport(bool p_force_exit) { } } -#ifdef TOOLS_ENABLED void CanvasLayer::_validate_property(PropertyInfo &property) const { if (!follow_viewport && property.name == "follow_viewport_scale") { property.usage = PROPERTY_USAGE_NOEDITOR; } } -#endif void CanvasLayer::_bind_methods() { ClassDB::bind_method(D_METHOD("set_layer", "layer"), &CanvasLayer::set_layer); diff --git a/scene/main/canvas_layer.h b/scene/main/canvas_layer.h index b20b291367..899039340a 100644 --- a/scene/main/canvas_layer.h +++ b/scene/main/canvas_layer.h @@ -61,13 +61,10 @@ class CanvasLayer : public Node { void _update_locrotscale(); void _update_follow_viewport(bool p_force_exit = false); -#ifdef TOOLS_ENABLED - void _validate_property(PropertyInfo &property) const override; -#endif - protected: void _notification(int p_what); static void _bind_methods(); + void _validate_property(PropertyInfo &property) const override; public: void set_layer(int p_xform); diff --git a/scene/main/node.cpp b/scene/main/node.cpp index 9d8c7981e6..137e1726f9 100644 --- a/scene/main/node.cpp +++ b/scene/main/node.cpp @@ -1021,22 +1021,8 @@ void Node::_set_name_nocheck(const StringName &p_name) { data.name = p_name; } -String Node::invalid_character = ". : @ / \""; - -bool Node::_validate_node_name(String &p_name) { - String name = p_name; - Vector<String> chars = Node::invalid_character.split(" "); - for (int i = 0; i < chars.size(); i++) { - name = name.replace(chars[i], ""); - } - bool is_valid = name == p_name; - p_name = name; - return is_valid; -} - void Node::set_name(const String &p_name) { - String name = p_name; - _validate_node_name(name); + String name = p_name.validate_node_name(); ERR_FAIL_COND(name == ""); data.name = name; diff --git a/scene/main/node.h b/scene/main/node.h index d47d271a10..b1e51d2aee 100644 --- a/scene/main/node.h +++ b/scene/main/node.h @@ -190,12 +190,6 @@ private: _FORCE_INLINE_ bool _can_process(bool p_paused) const; -#ifdef TOOLS_ENABLED - friend class SceneTreeEditor; -#endif - static String invalid_character; - static bool _validate_node_name(String &p_name); - protected: void _block() { data.blocked++; } void _unblock() { data.blocked--; } diff --git a/scene/resources/camera_effects.cpp b/scene/resources/camera_effects.cpp index 00312fc7b2..34c6bc05bc 100644 --- a/scene/resources/camera_effects.cpp +++ b/scene/resources/camera_effects.cpp @@ -145,7 +145,6 @@ void CameraEffects::_update_override_exposure() { // Private methods, constructor and destructor -#ifdef TOOLS_ENABLED void CameraEffects::_validate_property(PropertyInfo &property) const { if ((!dof_blur_far_enabled && (property.name == "dof_blur_far_distance" || property.name == "dof_blur_far_transition")) || (!dof_blur_near_enabled && (property.name == "dof_blur_near_distance" || property.name == "dof_blur_near_transition")) || @@ -153,7 +152,6 @@ void CameraEffects::_validate_property(PropertyInfo &property) const { property.usage = PROPERTY_USAGE_NOEDITOR; } } -#endif void CameraEffects::_bind_methods() { // DOF blur diff --git a/scene/resources/camera_effects.h b/scene/resources/camera_effects.h index 51fb2b6cf7..b9338f4806 100644 --- a/scene/resources/camera_effects.h +++ b/scene/resources/camera_effects.h @@ -57,12 +57,9 @@ private: float override_exposure = 1.0; void _update_override_exposure(); -#ifdef TOOLS_ENABLED - void _validate_property(PropertyInfo &property) const override; -#endif - protected: static void _bind_methods(); + void _validate_property(PropertyInfo &property) const override; public: virtual RID get_rid() const override; diff --git a/scene/resources/default_theme/bar_arrow.png b/scene/resources/default_theme/bar_arrow.png Binary files differnew file mode 100644 index 0000000000..7cf146b8da --- /dev/null +++ b/scene/resources/default_theme/bar_arrow.png diff --git a/scene/resources/default_theme/default_theme.cpp b/scene/resources/default_theme/default_theme.cpp index a94209c75f..0c661cc17d 100644 --- a/scene/resources/default_theme/default_theme.cpp +++ b/scene/resources/default_theme/default_theme.cpp @@ -884,6 +884,7 @@ void fill_default_theme(Ref<Theme> &theme, const Ref<Font> &default_font, const theme->set_icon("color_sample", "ColorPicker", make_icon(color_picker_sample_png)); theme->set_icon("preset_bg", "ColorPicker", make_icon(mini_checkerboard_png)); theme->set_icon("overbright_indicator", "ColorPicker", make_icon(overbright_indicator_png)); + theme->set_icon("bar_arrow", "ColorPicker", make_icon(bar_arrow_png)); theme->set_icon("bg", "ColorPickerButton", make_icon(mini_checkerboard_png)); @@ -1017,7 +1018,7 @@ void make_default_theme(bool p_hidpi, Ref<Font> p_font) { Ref<StyleBox> default_style; Ref<Texture2D> default_icon; Ref<Font> default_font; - int default_font_size = 16; + int default_font_size = 14; if (p_font.is_valid()) { default_font = p_font; } else if (p_hidpi) { diff --git a/scene/resources/default_theme/theme_data.h b/scene/resources/default_theme/theme_data.h index b905c9db69..6b78ba7933 100644 --- a/scene/resources/default_theme/theme_data.h +++ b/scene/resources/default_theme/theme_data.h @@ -14,6 +14,10 @@ static const unsigned char arrow_right_png[] = { 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0xc, 0x8, 0x4, 0x0, 0x0, 0x0, 0xfc, 0x7c, 0x94, 0x6c, 0x0, 0x0, 0x0, 0x2e, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x63, 0x20, 0x17, 0x3c, 0xf8, 0xf, 0x82, 0xf7, 0x13, 0x70, 0x48, 0x3c, 0xf8, 0xf2, 0x50, 0x1b, 0x43, 0x2, 0xa, 0xaf, 0xbe, 0xe0, 0xc6, 0x2e, 0xf1, 0xff, 0xe1, 0x7c, 0x12, 0x24, 0x10, 0x46, 0x11, 0xb6, 0x1c, 0xe1, 0x5c, 0xa, 0x0, 0x0, 0xe0, 0x14, 0x48, 0xb1, 0x3d, 0x1b, 0x7a, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; +static const unsigned char bar_arrow_png[] = { + 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x14, 0x8, 0x4, 0x0, 0x0, 0x0, 0x2e, 0x6b, 0x75, 0xfc, 0x0, 0x0, 0x0, 0x4, 0x67, 0x41, 0x4d, 0x41, 0x0, 0x0, 0xb1, 0x8f, 0xb, 0xfc, 0x61, 0x5, 0x0, 0x0, 0x0, 0x1, 0x73, 0x52, 0x47, 0x42, 0x0, 0xae, 0xce, 0x1c, 0xe9, 0x0, 0x0, 0x0, 0x9, 0x70, 0x48, 0x59, 0x73, 0x0, 0x0, 0xe, 0xc0, 0x0, 0x0, 0xe, 0xc0, 0x1, 0x6a, 0xd6, 0x89, 0x9, 0x0, 0x0, 0x0, 0x65, 0x49, 0x44, 0x41, 0x54, 0x28, 0xcf, 0x63, 0xfc, 0xcf, 0x80, 0x1f, 0x30, 0x8e, 0x20, 0x5, 0x8c, 0x38, 0x24, 0xff, 0x53, 0x5f, 0xc1, 0xb, 0xee, 0x9f, 0x53, 0x18, 0x18, 0xd8, 0x73, 0x24, 0xbe, 0x62, 0x55, 0x70, 0x5f, 0x83, 0x61, 0x15, 0xa3, 0x2e, 0x3, 0x3, 0xc3, 0xd, 0xe6, 0x30, 0xd9, 0xcb, 0x18, 0xa, 0x1e, 0xc6, 0xfd, 0x9f, 0xc6, 0xc0, 0xd, 0x35, 0xea, 0x3b, 0x63, 0x81, 0xfc, 0x2c, 0x14, 0x5, 0xf, 0x2a, 0x18, 0xda, 0xd1, 0x1c, 0x50, 0xa9, 0xd0, 0x1, 0x57, 0xf0, 0x10, 0x53, 0x9a, 0x81, 0x81, 0x81, 0xa1, 0x52, 0xbe, 0x83, 0x81, 0x81, 0xf1, 0x3f, 0x2e, 0x69, 0xa8, 0x12, 0x3a, 0x4, 0x14, 0x0, 0x7b, 0xda, 0x34, 0x1, 0xbb, 0xb5, 0x3e, 0x6c, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 +}; + static const unsigned char bookmark_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, 0x6, 0x0, 0x0, 0x0, 0x1f, 0xf3, 0xff, 0x61, 0x0, 0x0, 0x0, 0x4, 0x73, 0x42, 0x49, 0x54, 0x8, 0x8, 0x8, 0x8, 0x7c, 0x8, 0x64, 0x88, 0x0, 0x0, 0x0, 0x57, 0x49, 0x44, 0x41, 0x54, 0x38, 0x8d, 0xed, 0x93, 0x31, 0xa, 0xc0, 0x30, 0xc, 0x3, 0xa5, 0xd0, 0xff, 0x7f, 0x59, 0x1d, 0x8a, 0x42, 0x8, 0x9, 0x95, 0xc9, 0xd2, 0xa1, 0x9a, 0x8c, 0xf1, 0xdd, 0x62, 0x1b, 0x38, 0xc, 0x87, 0x5a, 0x5, 0xae, 0x79, 0xde, 0x2, 0x1, 0x80, 0x94, 0x39, 0x48, 0x76, 0x49, 0x17, 0xa4, 0xf0, 0x24, 0x61, 0x2b, 0x51, 0x8b, 0xfc, 0x82, 0xcf, 0xb, 0x48, 0x7a, 0xdf, 0x75, 0x81, 0xf, 0xe5, 0x29, 0xf7, 0x92, 0x6b, 0x3, 0x1a, 0x1e, 0xda, 0x7c, 0x3d, 0x77, 0x21, 0x7b, 0xa8, 0x74, 0x2e, 0xcb, 0xd, 0xc8, 0x75, 0x13, 0x28, 0x9, 0xed, 0xc2, 0xc8, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; diff --git a/scene/resources/style_box.cpp b/scene/resources/style_box.cpp index 9b80224c3f..2159f1bc97 100644 --- a/scene/resources/style_box.cpp +++ b/scene/resources/style_box.cpp @@ -460,6 +460,7 @@ Point2 StyleBoxFlat::get_shadow_offset() const { void StyleBoxFlat::set_anti_aliased(const bool &p_anti_aliased) { anti_aliased = p_anti_aliased; emit_changed(); + notify_property_list_changed(); } bool StyleBoxFlat::is_anti_aliased() const { @@ -781,6 +782,12 @@ float StyleBoxFlat::get_style_margin(Side p_side) const { return border_width[p_side]; } +void StyleBoxFlat::_validate_property(PropertyInfo &property) const { + if (!anti_aliased && property.name == "anti_aliasing_size") { + property.usage = PROPERTY_USAGE_NOEDITOR; + } +} + void StyleBoxFlat::_bind_methods() { ClassDB::bind_method(D_METHOD("set_bg_color", "color"), &StyleBoxFlat::set_bg_color); ClassDB::bind_method(D_METHOD("get_bg_color"), &StyleBoxFlat::get_bg_color); diff --git a/scene/resources/style_box.h b/scene/resources/style_box.h index 8a273afbfd..dd5c873a00 100644 --- a/scene/resources/style_box.h +++ b/scene/resources/style_box.h @@ -159,6 +159,7 @@ class StyleBoxFlat : public StyleBox { protected: virtual float get_style_margin(Side p_side) const override; static void _bind_methods(); + void _validate_property(PropertyInfo &property) const override; public: //Color diff --git a/servers/physics_3d/body_3d_sw.cpp b/servers/physics_3d/body_3d_sw.cpp index 82356e77ef..9eff14bbeb 100644 --- a/servers/physics_3d/body_3d_sw.cpp +++ b/servers/physics_3d/body_3d_sw.cpp @@ -51,18 +51,18 @@ void Body3DSW::_update_transform_dependant() { } void Body3DSW::update_inertias() { - //update shapes and motions + // Update shapes and motions. switch (mode) { case PhysicsServer3D::BODY_MODE_RIGID: { - //update tensor for all shapes, not the best way but should be somehow OK. (inspired from bullet) + // Update tensor for all shapes, not the best way but should be somehow OK. (inspired from bullet) real_t total_area = 0; for (int i = 0; i < get_shape_count(); i++) { total_area += get_shape_area(i); } - // We have to recompute the center of mass + // We have to recompute the center of mass. center_of_mass_local.zero(); for (int i = 0; i < get_shape_count(); i++) { @@ -70,21 +70,24 @@ void Body3DSW::update_inertias() { real_t mass = area * this->mass / total_area; - // NOTE: we assume that the shape origin is also its center of mass + // NOTE: we assume that the shape origin is also its center of mass. center_of_mass_local += mass * get_shape_transform(i).origin; } center_of_mass_local /= mass; - // Recompute the inertia tensor + // Recompute the inertia tensor. Basis inertia_tensor; inertia_tensor.set_zero(); + bool inertia_set = false; for (int i = 0; i < get_shape_count(); i++) { if (is_shape_disabled(i)) { continue; } + inertia_set = true; + const Shape3DSW *shape = get_shape(i); real_t area = get_shape_area(i); @@ -102,7 +105,12 @@ void Body3DSW::update_inertias() { inertia_tensor += shape_inertia_tensor + (Basis() * shape_origin.dot(shape_origin) - shape_origin.outer(shape_origin)) * mass; } - // Compute the principal axes of inertia + // Set the inertia to a valid value when there are no valid shapes. + if (!inertia_set) { + inertia_tensor.set_diagonal(Vector3(1.0, 1.0, 1.0)); + } + + // Compute the principal axes of inertia. principal_inertia_axes_local = inertia_tensor.diagonalize().transposed(); _inv_inertia = inertia_tensor.get_main_diagonal().inverse(); diff --git a/servers/rendering/renderer_rd/renderer_scene_gi_rd.cpp b/servers/rendering/renderer_rd/renderer_scene_gi_rd.cpp index 62589cc97c..bfb5b729ef 100644 --- a/servers/rendering/renderer_rd/renderer_scene_gi_rd.cpp +++ b/servers/rendering/renderer_rd/renderer_scene_gi_rd.cpp @@ -31,7 +31,6 @@ #include "renderer_scene_gi_rd.h" #include "core/config/project_settings.h" -#include "renderer_compositor_rd.h" #include "servers/rendering/renderer_rd/renderer_scene_render_rd.h" #include "servers/rendering/rendering_server_default.h" @@ -216,7 +215,7 @@ void RendererSceneGIRD::SDFGI::create(RendererSceneEnvironmentRD *p_env, const V cascade.solid_cell_buffer = RD::get_singleton()->storage_buffer_create(sizeof(SDFGI::Cascade::SolidCell) * solid_cell_count); cascade.solid_cell_dispatch_buffer = RD::get_singleton()->storage_buffer_create(sizeof(uint32_t) * 4, Vector<uint8_t>(), RD::STORAGE_BUFFER_USAGE_DISPATCH_INDIRECT); - cascade.lights_buffer = RD::get_singleton()->storage_buffer_create(sizeof(SDGIShader::Light) * MAX(SDFGI::MAX_STATIC_LIGHTS, SDFGI::MAX_DYNAMIC_LIGHTS)); + cascade.lights_buffer = RD::get_singleton()->storage_buffer_create(sizeof(SDFGIShader::Light) * MAX(SDFGI::MAX_STATIC_LIGHTS, SDFGI::MAX_DYNAMIC_LIGHTS)); { Vector<RD::Uniform> uniforms; { @@ -293,7 +292,7 @@ void RendererSceneGIRD::SDFGI::create(RendererSceneEnvironmentRD *p_env, const V uniforms.push_back(u); } - cascade.sdf_store_uniform_set = RD::get_singleton()->uniform_set_create(uniforms, gi->sdfgi_shader.preprocess.version_get_shader(gi->sdfgi_shader.preprocess_shader, SDGIShader::PRE_PROCESS_STORE), 0); + cascade.sdf_store_uniform_set = RD::get_singleton()->uniform_set_create(uniforms, gi->sdfgi_shader.preprocess.version_get_shader(gi->sdfgi_shader.preprocess_shader, SDFGIShader::PRE_PROCESS_STORE), 0); } { @@ -341,7 +340,7 @@ void RendererSceneGIRD::SDFGI::create(RendererSceneEnvironmentRD *p_env, const V uniforms.push_back(u); } - cascade.scroll_uniform_set = RD::get_singleton()->uniform_set_create(uniforms, gi->sdfgi_shader.preprocess.version_get_shader(gi->sdfgi_shader.preprocess_shader, SDGIShader::PRE_PROCESS_SCROLL), 0); + cascade.scroll_uniform_set = RD::get_singleton()->uniform_set_create(uniforms, gi->sdfgi_shader.preprocess.version_get_shader(gi->sdfgi_shader.preprocess_shader, SDFGIShader::PRE_PROCESS_SCROLL), 0); } { Vector<RD::Uniform> uniforms; @@ -362,7 +361,7 @@ void RendererSceneGIRD::SDFGI::create(RendererSceneEnvironmentRD *p_env, const V uniforms.push_back(u); } - cascade.scroll_occlusion_uniform_set = RD::get_singleton()->uniform_set_create(uniforms, gi->sdfgi_shader.preprocess.version_get_shader(gi->sdfgi_shader.preprocess_shader, SDGIShader::PRE_PROCESS_SCROLL_OCCLUSION), 0); + cascade.scroll_occlusion_uniform_set = RD::get_singleton()->uniform_set_create(uniforms, gi->sdfgi_shader.preprocess.version_get_shader(gi->sdfgi_shader.preprocess_shader, SDFGIShader::PRE_PROCESS_SCROLL_OCCLUSION), 0); } } @@ -476,7 +475,7 @@ void RendererSceneGIRD::SDFGI::create(RendererSceneEnvironmentRD *p_env, const V uniforms.push_back(u); } - sdf_initialize_uniform_set = RD::get_singleton()->uniform_set_create(uniforms, gi->sdfgi_shader.preprocess.version_get_shader(gi->sdfgi_shader.preprocess_shader, SDGIShader::PRE_PROCESS_JUMP_FLOOD_INITIALIZE), 0); + sdf_initialize_uniform_set = RD::get_singleton()->uniform_set_create(uniforms, gi->sdfgi_shader.preprocess.version_get_shader(gi->sdfgi_shader.preprocess_shader, SDFGIShader::PRE_PROCESS_JUMP_FLOOD_INITIALIZE), 0); } { @@ -496,7 +495,7 @@ void RendererSceneGIRD::SDFGI::create(RendererSceneEnvironmentRD *p_env, const V uniforms.push_back(u); } - sdf_initialize_half_uniform_set = RD::get_singleton()->uniform_set_create(uniforms, gi->sdfgi_shader.preprocess.version_get_shader(gi->sdfgi_shader.preprocess_shader, SDGIShader::PRE_PROCESS_JUMP_FLOOD_INITIALIZE_HALF), 0); + sdf_initialize_half_uniform_set = RD::get_singleton()->uniform_set_create(uniforms, gi->sdfgi_shader.preprocess.version_get_shader(gi->sdfgi_shader.preprocess_shader, SDFGIShader::PRE_PROCESS_JUMP_FLOOD_INITIALIZE_HALF), 0); } //jump flood uniform set @@ -517,9 +516,9 @@ void RendererSceneGIRD::SDFGI::create(RendererSceneEnvironmentRD *p_env, const V uniforms.push_back(u); } - jump_flood_uniform_set[0] = RD::get_singleton()->uniform_set_create(uniforms, gi->sdfgi_shader.preprocess.version_get_shader(gi->sdfgi_shader.preprocess_shader, SDGIShader::PRE_PROCESS_JUMP_FLOOD), 0); + jump_flood_uniform_set[0] = RD::get_singleton()->uniform_set_create(uniforms, gi->sdfgi_shader.preprocess.version_get_shader(gi->sdfgi_shader.preprocess_shader, SDFGIShader::PRE_PROCESS_JUMP_FLOOD), 0); SWAP(uniforms.write[0].ids.write[0], uniforms.write[1].ids.write[0]); - jump_flood_uniform_set[1] = RD::get_singleton()->uniform_set_create(uniforms, gi->sdfgi_shader.preprocess.version_get_shader(gi->sdfgi_shader.preprocess_shader, SDGIShader::PRE_PROCESS_JUMP_FLOOD), 0); + jump_flood_uniform_set[1] = RD::get_singleton()->uniform_set_create(uniforms, gi->sdfgi_shader.preprocess.version_get_shader(gi->sdfgi_shader.preprocess_shader, SDFGIShader::PRE_PROCESS_JUMP_FLOOD), 0); } //jump flood half uniform set { @@ -539,9 +538,9 @@ void RendererSceneGIRD::SDFGI::create(RendererSceneEnvironmentRD *p_env, const V uniforms.push_back(u); } - jump_flood_half_uniform_set[0] = RD::get_singleton()->uniform_set_create(uniforms, gi->sdfgi_shader.preprocess.version_get_shader(gi->sdfgi_shader.preprocess_shader, SDGIShader::PRE_PROCESS_JUMP_FLOOD), 0); + jump_flood_half_uniform_set[0] = RD::get_singleton()->uniform_set_create(uniforms, gi->sdfgi_shader.preprocess.version_get_shader(gi->sdfgi_shader.preprocess_shader, SDFGIShader::PRE_PROCESS_JUMP_FLOOD), 0); SWAP(uniforms.write[0].ids.write[0], uniforms.write[1].ids.write[0]); - jump_flood_half_uniform_set[1] = RD::get_singleton()->uniform_set_create(uniforms, gi->sdfgi_shader.preprocess.version_get_shader(gi->sdfgi_shader.preprocess_shader, SDGIShader::PRE_PROCESS_JUMP_FLOOD), 0); + jump_flood_half_uniform_set[1] = RD::get_singleton()->uniform_set_create(uniforms, gi->sdfgi_shader.preprocess.version_get_shader(gi->sdfgi_shader.preprocess_shader, SDFGIShader::PRE_PROCESS_JUMP_FLOOD), 0); } //upscale half size sdf @@ -570,7 +569,7 @@ void RendererSceneGIRD::SDFGI::create(RendererSceneEnvironmentRD *p_env, const V } upscale_jfa_uniform_set_index = (passes & 1) ? 0 : 1; - sdf_upscale_uniform_set = RD::get_singleton()->uniform_set_create(uniforms, gi->sdfgi_shader.preprocess.version_get_shader(gi->sdfgi_shader.preprocess_shader, SDGIShader::PRE_PROCESS_JUMP_FLOOD_UPSCALE), 0); + sdf_upscale_uniform_set = RD::get_singleton()->uniform_set_create(uniforms, gi->sdfgi_shader.preprocess.version_get_shader(gi->sdfgi_shader.preprocess_shader, SDFGIShader::PRE_PROCESS_JUMP_FLOOD_UPSCALE), 0); } //occlusion uniform set @@ -600,7 +599,7 @@ void RendererSceneGIRD::SDFGI::create(RendererSceneEnvironmentRD *p_env, const V uniforms.push_back(u); } - occlusion_uniform_set = RD::get_singleton()->uniform_set_create(uniforms, gi->sdfgi_shader.preprocess.version_get_shader(gi->sdfgi_shader.preprocess_shader, SDGIShader::PRE_PROCESS_OCCLUSION), 0); + occlusion_uniform_set = RD::get_singleton()->uniform_set_create(uniforms, gi->sdfgi_shader.preprocess.version_get_shader(gi->sdfgi_shader.preprocess_shader, SDFGIShader::PRE_PROCESS_OCCLUSION), 0); } for (uint32_t i = 0; i < cascades.size(); i++) { @@ -845,9 +844,9 @@ void RendererSceneGIRD::SDFGI::update_light() { /* Update dynamic light */ RD::ComputeListID compute_list = RD::get_singleton()->compute_list_begin(); - RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.direct_light_pipeline[SDGIShader::DIRECT_LIGHT_MODE_DYNAMIC]); + RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.direct_light_pipeline[SDFGIShader::DIRECT_LIGHT_MODE_DYNAMIC]); - SDGIShader::DirectLightPushConstant push_constant; + SDFGIShader::DirectLightPushConstant push_constant; push_constant.grid_size[0] = cascade_size; push_constant.grid_size[1] = cascade_size; @@ -879,7 +878,7 @@ void RendererSceneGIRD::SDFGI::update_light() { cascades[i].all_dynamic_lights_dirty = false; RD::get_singleton()->compute_list_bind_uniform_set(compute_list, cascade.sdf_direct_light_uniform_set, 0); - RD::get_singleton()->compute_list_set_push_constant(compute_list, &push_constant, sizeof(SDGIShader::DirectLightPushConstant)); + RD::get_singleton()->compute_list_set_push_constant(compute_list, &push_constant, sizeof(SDFGIShader::DirectLightPushConstant)); RD::get_singleton()->compute_list_dispatch_indirect(compute_list, cascade.solid_cell_dispatch_buffer, 0); } RD::get_singleton()->compute_list_end(RD::BARRIER_MASK_COMPUTE); @@ -889,7 +888,7 @@ void RendererSceneGIRD::SDFGI::update_light() { void RendererSceneGIRD::SDFGI::update_probes(RendererSceneEnvironmentRD *p_env, RendererSceneSkyRD::Sky *p_sky) { RD::get_singleton()->draw_command_begin_label("SDFGI Update Probes"); - SDGIShader::IntegratePushConstant push_constant; + SDFGIShader::IntegratePushConstant push_constant; push_constant.grid_size[1] = cascade_size; push_constant.grid_size[2] = cascade_size; push_constant.grid_size[0] = cascade_size; @@ -905,20 +904,20 @@ void RendererSceneGIRD::SDFGI::update_probes(RendererSceneEnvironmentRD *p_env, push_constant.store_ambient_texture = p_env->volumetric_fog_enabled; RID sky_uniform_set = gi->sdfgi_shader.integrate_default_sky_uniform_set; - push_constant.sky_mode = SDGIShader::IntegratePushConstant::SKY_MODE_DISABLED; + push_constant.sky_mode = SDFGIShader::IntegratePushConstant::SKY_MODE_DISABLED; push_constant.y_mult = y_mult; if (reads_sky && p_env) { push_constant.sky_energy = p_env->bg_energy; if (p_env->background == RS::ENV_BG_CLEAR_COLOR) { - push_constant.sky_mode = SDGIShader::IntegratePushConstant::SKY_MODE_COLOR; + push_constant.sky_mode = SDFGIShader::IntegratePushConstant::SKY_MODE_COLOR; Color c = storage->get_default_clear_color().to_linear(); push_constant.sky_color[0] = c.r; push_constant.sky_color[1] = c.g; push_constant.sky_color[2] = c.b; } else if (p_env->background == RS::ENV_BG_COLOR) { - push_constant.sky_mode = SDGIShader::IntegratePushConstant::SKY_MODE_COLOR; + push_constant.sky_mode = SDFGIShader::IntegratePushConstant::SKY_MODE_COLOR; Color c = p_env->bg_color; push_constant.sky_color[0] = c.r; push_constant.sky_color[1] = c.g; @@ -948,7 +947,7 @@ void RendererSceneGIRD::SDFGI::update_probes(RendererSceneEnvironmentRD *p_env, integrate_sky_uniform_set = RD::get_singleton()->uniform_set_create(uniforms, gi->sdfgi_shader.integrate.version_get_shader(gi->sdfgi_shader.integrate_shader, 0), 1); } sky_uniform_set = integrate_sky_uniform_set; - push_constant.sky_mode = SDGIShader::IntegratePushConstant::SKY_MODE_SKY; + push_constant.sky_mode = SDFGIShader::IntegratePushConstant::SKY_MODE_SKY; } } } @@ -956,7 +955,7 @@ void RendererSceneGIRD::SDFGI::update_probes(RendererSceneEnvironmentRD *p_env, render_pass++; RD::ComputeListID compute_list = RD::get_singleton()->compute_list_begin(true); - RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.integrate_pipeline[SDGIShader::INTEGRATE_MODE_PROCESS]); + RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.integrate_pipeline[SDFGIShader::INTEGRATE_MODE_PROCESS]); int32_t probe_divisor = cascade_size / SDFGI::PROBE_DIVISOR; for (uint32_t i = 0; i < cascades.size(); i++) { @@ -968,7 +967,7 @@ void RendererSceneGIRD::SDFGI::update_probes(RendererSceneEnvironmentRD *p_env, RD::get_singleton()->compute_list_bind_uniform_set(compute_list, cascades[i].integrate_uniform_set, 0); RD::get_singleton()->compute_list_bind_uniform_set(compute_list, sky_uniform_set, 1); - RD::get_singleton()->compute_list_set_push_constant(compute_list, &push_constant, sizeof(SDGIShader::IntegratePushConstant)); + RD::get_singleton()->compute_list_set_push_constant(compute_list, &push_constant, sizeof(SDFGIShader::IntegratePushConstant)); RD::get_singleton()->compute_list_dispatch_threads(compute_list, probe_axis_count * probe_axis_count, probe_axis_count, 1); } @@ -982,7 +981,7 @@ void RendererSceneGIRD::SDFGI::store_probes() { RD::get_singleton()->barrier(RD::BARRIER_MASK_COMPUTE, RD::BARRIER_MASK_COMPUTE); RD::get_singleton()->draw_command_begin_label("SDFGI Store Probes"); - SDGIShader::IntegratePushConstant push_constant; + SDFGIShader::IntegratePushConstant push_constant; push_constant.grid_size[1] = cascade_size; push_constant.grid_size[2] = cascade_size; push_constant.grid_size[0] = cascade_size; @@ -1004,7 +1003,7 @@ void RendererSceneGIRD::SDFGI::store_probes() { RENDER_TIMESTAMP("Average Probes"); RD::ComputeListID compute_list = RD::get_singleton()->compute_list_begin(); - RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.integrate_pipeline[SDGIShader::INTEGRATE_MODE_STORE]); + RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.integrate_pipeline[SDFGIShader::INTEGRATE_MODE_STORE]); //convert to octahedral to store push_constant.image_size[0] *= SDFGI::LIGHTPROBE_OCT_SIZE; @@ -1014,7 +1013,7 @@ void RendererSceneGIRD::SDFGI::store_probes() { push_constant.cascade = i; RD::get_singleton()->compute_list_bind_uniform_set(compute_list, cascades[i].integrate_uniform_set, 0); RD::get_singleton()->compute_list_bind_uniform_set(compute_list, gi->sdfgi_shader.integrate_default_sky_uniform_set, 1); - RD::get_singleton()->compute_list_set_push_constant(compute_list, &push_constant, sizeof(SDGIShader::IntegratePushConstant)); + RD::get_singleton()->compute_list_set_push_constant(compute_list, &push_constant, sizeof(SDFGIShader::IntegratePushConstant)); RD::get_singleton()->compute_list_dispatch_threads(compute_list, probe_axis_count * probe_axis_count * SDFGI::LIGHTPROBE_OCT_SIZE, probe_axis_count * SDFGI::LIGHTPROBE_OCT_SIZE, 1); } @@ -1199,7 +1198,7 @@ void RendererSceneGIRD::SDFGI::debug_draw(const CameraMatrix &p_projection, cons RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.debug_pipeline); RD::get_singleton()->compute_list_bind_uniform_set(compute_list, debug_uniform_set, 0); - SDGIShader::DebugPushConstant push_constant; + SDFGIShader::DebugPushConstant push_constant; push_constant.grid_size[0] = cascade_size; push_constant.grid_size[1] = cascade_size; push_constant.grid_size[2] = cascade_size; @@ -1232,7 +1231,7 @@ void RendererSceneGIRD::SDFGI::debug_draw(const CameraMatrix &p_projection, cons push_constant.cam_transform[14] = p_transform.origin.z; push_constant.cam_transform[15] = 1; - RD::get_singleton()->compute_list_set_push_constant(compute_list, &push_constant, sizeof(SDGIShader::DebugPushConstant)); + RD::get_singleton()->compute_list_set_push_constant(compute_list, &push_constant, sizeof(SDFGIShader::DebugPushConstant)); RD::get_singleton()->compute_list_dispatch_threads(compute_list, p_width, p_height, 1); RD::get_singleton()->compute_list_end(); @@ -1242,7 +1241,7 @@ void RendererSceneGIRD::SDFGI::debug_draw(const CameraMatrix &p_projection, cons } void RendererSceneGIRD::SDFGI::debug_probes(RD::DrawListID p_draw_list, RID p_framebuffer, const CameraMatrix &p_camera_with_transform) { - SDGIShader::DebugProbesPushConstant push_constant; + SDFGIShader::DebugProbesPushConstant push_constant; for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { @@ -1302,9 +1301,9 @@ void RendererSceneGIRD::SDFGI::debug_probes(RD::DrawListID p_draw_list, RID p_fr debug_probes_uniform_set = RD::get_singleton()->uniform_set_create(uniforms, gi->sdfgi_shader.debug_probes.version_get_shader(gi->sdfgi_shader.debug_probes_shader, 0), 0); } - RD::get_singleton()->draw_list_bind_render_pipeline(p_draw_list, gi->sdfgi_shader.debug_probes_pipeline[SDGIShader::PROBE_DEBUG_PROBES].get_render_pipeline(RD::INVALID_FORMAT_ID, RD::get_singleton()->framebuffer_get_format(p_framebuffer))); + RD::get_singleton()->draw_list_bind_render_pipeline(p_draw_list, gi->sdfgi_shader.debug_probes_pipeline[SDFGIShader::PROBE_DEBUG_PROBES].get_render_pipeline(RD::INVALID_FORMAT_ID, RD::get_singleton()->framebuffer_get_format(p_framebuffer))); RD::get_singleton()->draw_list_bind_uniform_set(p_draw_list, debug_probes_uniform_set, 0); - RD::get_singleton()->draw_list_set_push_constant(p_draw_list, &push_constant, sizeof(SDGIShader::DebugProbesPushConstant)); + RD::get_singleton()->draw_list_set_push_constant(p_draw_list, &push_constant, sizeof(SDFGIShader::DebugProbesPushConstant)); RD::get_singleton()->draw_list_draw(p_draw_list, false, total_probes, total_points); if (gi->sdfgi_debug_probe_dir != Vector3()) { @@ -1363,9 +1362,9 @@ void RendererSceneGIRD::SDFGI::debug_probes(RD::DrawListID p_draw_list, RID p_fr uint32_t cell_count = probe_cells * 2 * probe_cells * 2 * probe_cells * 2; - RD::get_singleton()->draw_list_bind_render_pipeline(p_draw_list, gi->sdfgi_shader.debug_probes_pipeline[SDGIShader::PROBE_DEBUG_VISIBILITY].get_render_pipeline(RD::INVALID_FORMAT_ID, RD::get_singleton()->framebuffer_get_format(p_framebuffer))); + RD::get_singleton()->draw_list_bind_render_pipeline(p_draw_list, gi->sdfgi_shader.debug_probes_pipeline[SDFGIShader::PROBE_DEBUG_VISIBILITY].get_render_pipeline(RD::INVALID_FORMAT_ID, RD::get_singleton()->framebuffer_get_format(p_framebuffer))); RD::get_singleton()->draw_list_bind_uniform_set(p_draw_list, debug_probes_uniform_set, 0); - RD::get_singleton()->draw_list_set_push_constant(p_draw_list, &push_constant, sizeof(SDGIShader::DebugProbesPushConstant)); + RD::get_singleton()->draw_list_set_push_constant(p_draw_list, &push_constant, sizeof(SDFGIShader::DebugProbesPushConstant)); RD::get_singleton()->draw_list_draw(p_draw_list, false, cell_count, total_points); } } @@ -1446,7 +1445,7 @@ void RendererSceneGIRD::SDFGI::pre_process_gi(const Transform &p_transform, Rend for (uint32_t i = 0; i < cascades.size(); i++) { SDFGI::Cascade &cascade = cascades[i]; - SDGIShader::Light lights[SDFGI::MAX_DYNAMIC_LIGHTS]; + SDFGIShader::Light lights[SDFGI::MAX_DYNAMIC_LIGHTS]; uint32_t idx = 0; for (uint32_t j = 0; j < (uint32_t)p_scene_render->render_state.sdfgi_update_data->directional_lights->size(); j++) { if (idx == SDFGI::MAX_DYNAMIC_LIGHTS) { @@ -1528,7 +1527,7 @@ void RendererSceneGIRD::SDFGI::pre_process_gi(const Transform &p_transform, Rend } if (idx > 0) { - RD::get_singleton()->buffer_update(cascade.lights_buffer, 0, idx * sizeof(SDGIShader::Light), lights, RD::BARRIER_MASK_COMPUTE); + RD::get_singleton()->buffer_update(cascade.lights_buffer, 0, idx * sizeof(SDFGIShader::Light), lights, RD::BARRIER_MASK_COMPUTE); } cascade_dynamic_light_count[i] = idx; @@ -1566,8 +1565,8 @@ void RendererSceneGIRD::SDFGI::render_region(RID p_render_buffers, int p_region, //done rendering! must update SDF //clear dispatch indirect data - SDGIShader::PreprocessPushConstant push_constant; - zeromem(&push_constant, sizeof(SDGIShader::PreprocessPushConstant)); + SDFGIShader::PreprocessPushConstant push_constant; + zeromem(&push_constant, sizeof(SDFGIShader::PreprocessPushConstant)); RENDER_TIMESTAMP("Scroll SDF"); @@ -1594,14 +1593,14 @@ void RendererSceneGIRD::SDFGI::render_region(RID p_render_buffers, int p_region, RD::ComputeListID compute_list = RD::get_singleton()->compute_list_begin(); //must pre scroll existing data because not all is dirty - RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.preprocess_pipeline[SDGIShader::PRE_PROCESS_SCROLL]); + RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.preprocess_pipeline[SDFGIShader::PRE_PROCESS_SCROLL]); RD::get_singleton()->compute_list_bind_uniform_set(compute_list, cascades[cascade].scroll_uniform_set, 0); - RD::get_singleton()->compute_list_set_push_constant(compute_list, &push_constant, sizeof(SDGIShader::PreprocessPushConstant)); + RD::get_singleton()->compute_list_set_push_constant(compute_list, &push_constant, sizeof(SDFGIShader::PreprocessPushConstant)); RD::get_singleton()->compute_list_dispatch_indirect(compute_list, cascades[cascade].solid_cell_dispatch_buffer, 0); // no barrier do all together - RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.preprocess_pipeline[SDGIShader::PRE_PROCESS_SCROLL_OCCLUSION]); + RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.preprocess_pipeline[SDFGIShader::PRE_PROCESS_SCROLL_OCCLUSION]); RD::get_singleton()->compute_list_bind_uniform_set(compute_list, cascades[cascade].scroll_occlusion_uniform_set, 0); Vector3i dirty = cascades[cascade].dirty_regions; @@ -1610,7 +1609,7 @@ void RendererSceneGIRD::SDFGI::render_region(RID p_render_buffers, int p_region, groups.y = cascade_size - ABS(dirty.y); groups.z = cascade_size - ABS(dirty.z); - RD::get_singleton()->compute_list_set_push_constant(compute_list, &push_constant, sizeof(SDGIShader::PreprocessPushConstant)); + RD::get_singleton()->compute_list_set_push_constant(compute_list, &push_constant, sizeof(SDFGIShader::PreprocessPushConstant)); RD::get_singleton()->compute_list_dispatch_threads(compute_list, groups.x, groups.y, groups.z); //no barrier, continue together @@ -1618,7 +1617,7 @@ void RendererSceneGIRD::SDFGI::render_region(RID p_render_buffers, int p_region, { //scroll probes and their history also - SDGIShader::IntegratePushConstant ipush_constant; + SDFGIShader::IntegratePushConstant ipush_constant; ipush_constant.grid_size[1] = cascade_size; ipush_constant.grid_size[2] = cascade_size; ipush_constant.grid_size[0] = cascade_size; @@ -1649,18 +1648,18 @@ void RendererSceneGIRD::SDFGI::render_region(RID p_render_buffers, int p_region, ipush_constant.scroll[1] = dirty.y / probe_divisor; ipush_constant.scroll[2] = dirty.z / probe_divisor; - RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.integrate_pipeline[SDGIShader::INTEGRATE_MODE_SCROLL]); + RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.integrate_pipeline[SDFGIShader::INTEGRATE_MODE_SCROLL]); RD::get_singleton()->compute_list_bind_uniform_set(compute_list, cascades[cascade].integrate_uniform_set, 0); RD::get_singleton()->compute_list_bind_uniform_set(compute_list, gi->sdfgi_shader.integrate_default_sky_uniform_set, 1); - RD::get_singleton()->compute_list_set_push_constant(compute_list, &ipush_constant, sizeof(SDGIShader::IntegratePushConstant)); + RD::get_singleton()->compute_list_set_push_constant(compute_list, &ipush_constant, sizeof(SDFGIShader::IntegratePushConstant)); RD::get_singleton()->compute_list_dispatch_threads(compute_list, probe_axis_count * probe_axis_count, probe_axis_count, 1); RD::get_singleton()->compute_list_add_barrier(compute_list); - RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.integrate_pipeline[SDGIShader::INTEGRATE_MODE_SCROLL_STORE]); + RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.integrate_pipeline[SDFGIShader::INTEGRATE_MODE_SCROLL_STORE]); RD::get_singleton()->compute_list_bind_uniform_set(compute_list, cascades[cascade].integrate_uniform_set, 0); RD::get_singleton()->compute_list_bind_uniform_set(compute_list, gi->sdfgi_shader.integrate_default_sky_uniform_set, 1); - RD::get_singleton()->compute_list_set_push_constant(compute_list, &ipush_constant, sizeof(SDGIShader::IntegratePushConstant)); + RD::get_singleton()->compute_list_set_push_constant(compute_list, &ipush_constant, sizeof(SDFGIShader::IntegratePushConstant)); RD::get_singleton()->compute_list_dispatch_threads(compute_list, probe_axis_count * probe_axis_count, probe_axis_count, 1); RD::get_singleton()->compute_list_add_barrier(compute_list); @@ -1668,7 +1667,7 @@ void RendererSceneGIRD::SDFGI::render_region(RID p_render_buffers, int p_region, if (bounce_feedback > 0.0) { //multibounce requires this to be stored so direct light can read from it - RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.integrate_pipeline[SDGIShader::INTEGRATE_MODE_STORE]); + RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.integrate_pipeline[SDFGIShader::INTEGRATE_MODE_STORE]); //convert to octahedral to store ipush_constant.image_size[0] *= SDFGI::LIGHTPROBE_OCT_SIZE; @@ -1676,7 +1675,7 @@ void RendererSceneGIRD::SDFGI::render_region(RID p_render_buffers, int p_region, RD::get_singleton()->compute_list_bind_uniform_set(compute_list, cascades[cascade].integrate_uniform_set, 0); RD::get_singleton()->compute_list_bind_uniform_set(compute_list, gi->sdfgi_shader.integrate_default_sky_uniform_set, 1); - RD::get_singleton()->compute_list_set_push_constant(compute_list, &ipush_constant, sizeof(SDGIShader::IntegratePushConstant)); + RD::get_singleton()->compute_list_set_push_constant(compute_list, &ipush_constant, sizeof(SDFGIShader::IntegratePushConstant)); RD::get_singleton()->compute_list_dispatch_threads(compute_list, probe_axis_count * probe_axis_count * SDFGI::LIGHTPROBE_OCT_SIZE, probe_axis_count * SDFGI::LIGHTPROBE_OCT_SIZE, 1); } } @@ -1698,9 +1697,9 @@ void RendererSceneGIRD::SDFGI::render_region(RID p_render_buffers, int p_region, push_constant.grid_size >>= 1; uint32_t cascade_half_size = cascade_size >> 1; - RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.preprocess_pipeline[SDGIShader::PRE_PROCESS_JUMP_FLOOD_INITIALIZE_HALF]); + RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.preprocess_pipeline[SDFGIShader::PRE_PROCESS_JUMP_FLOOD_INITIALIZE_HALF]); RD::get_singleton()->compute_list_bind_uniform_set(compute_list, sdf_initialize_half_uniform_set, 0); - RD::get_singleton()->compute_list_set_push_constant(compute_list, &push_constant, sizeof(SDGIShader::PreprocessPushConstant)); + RD::get_singleton()->compute_list_set_push_constant(compute_list, &push_constant, sizeof(SDFGIShader::PreprocessPushConstant)); RD::get_singleton()->compute_list_dispatch_threads(compute_list, cascade_half_size, cascade_half_size, cascade_half_size); RD::get_singleton()->compute_list_add_barrier(compute_list); @@ -1712,7 +1711,7 @@ void RendererSceneGIRD::SDFGI::render_region(RID p_render_buffers, int p_region, uint32_t s = cascade_half_size; - RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.preprocess_pipeline[SDGIShader::PRE_PROCESS_JUMP_FLOOD]); + RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.preprocess_pipeline[SDFGIShader::PRE_PROCESS_JUMP_FLOOD]); int jf_us = 0; //start with regular jump flood for very coarse reads, as this is impossible to optimize @@ -1720,7 +1719,7 @@ void RendererSceneGIRD::SDFGI::render_region(RID p_render_buffers, int p_region, s /= 2; push_constant.step_size = s; RD::get_singleton()->compute_list_bind_uniform_set(compute_list, jump_flood_half_uniform_set[jf_us], 0); - RD::get_singleton()->compute_list_set_push_constant(compute_list, &push_constant, sizeof(SDGIShader::PreprocessPushConstant)); + RD::get_singleton()->compute_list_set_push_constant(compute_list, &push_constant, sizeof(SDFGIShader::PreprocessPushConstant)); RD::get_singleton()->compute_list_dispatch_threads(compute_list, cascade_half_size, cascade_half_size, cascade_half_size); RD::get_singleton()->compute_list_add_barrier(compute_list); jf_us = jf_us == 0 ? 1 : 0; @@ -1733,12 +1732,12 @@ void RendererSceneGIRD::SDFGI::render_region(RID p_render_buffers, int p_region, RENDER_TIMESTAMP("SDFGI Jump Flood Optimized (Half Size)"); //continue with optimized jump flood for smaller reads - RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.preprocess_pipeline[SDGIShader::PRE_PROCESS_JUMP_FLOOD_OPTIMIZED]); + RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.preprocess_pipeline[SDFGIShader::PRE_PROCESS_JUMP_FLOOD_OPTIMIZED]); while (s > 1) { s /= 2; push_constant.step_size = s; RD::get_singleton()->compute_list_bind_uniform_set(compute_list, jump_flood_half_uniform_set[jf_us], 0); - RD::get_singleton()->compute_list_set_push_constant(compute_list, &push_constant, sizeof(SDGIShader::PreprocessPushConstant)); + RD::get_singleton()->compute_list_set_push_constant(compute_list, &push_constant, sizeof(SDFGIShader::PreprocessPushConstant)); RD::get_singleton()->compute_list_dispatch_threads(compute_list, cascade_half_size, cascade_half_size, cascade_half_size); RD::get_singleton()->compute_list_add_barrier(compute_list); jf_us = jf_us == 0 ? 1 : 0; @@ -1748,9 +1747,9 @@ void RendererSceneGIRD::SDFGI::render_region(RID p_render_buffers, int p_region, // restore grid size for last passes push_constant.grid_size = cascade_size; - RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.preprocess_pipeline[SDGIShader::PRE_PROCESS_JUMP_FLOOD_UPSCALE]); + RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.preprocess_pipeline[SDFGIShader::PRE_PROCESS_JUMP_FLOOD_UPSCALE]); RD::get_singleton()->compute_list_bind_uniform_set(compute_list, sdf_upscale_uniform_set, 0); - RD::get_singleton()->compute_list_set_push_constant(compute_list, &push_constant, sizeof(SDGIShader::PreprocessPushConstant)); + RD::get_singleton()->compute_list_set_push_constant(compute_list, &push_constant, sizeof(SDFGIShader::PreprocessPushConstant)); RD::get_singleton()->compute_list_dispatch_threads(compute_list, cascade_size, cascade_size, cascade_size); RD::get_singleton()->compute_list_add_barrier(compute_list); @@ -1758,9 +1757,9 @@ void RendererSceneGIRD::SDFGI::render_region(RID p_render_buffers, int p_region, push_constant.half_size = false; push_constant.step_size = 1; - RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.preprocess_pipeline[SDGIShader::PRE_PROCESS_JUMP_FLOOD_OPTIMIZED]); + RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.preprocess_pipeline[SDFGIShader::PRE_PROCESS_JUMP_FLOOD_OPTIMIZED]); RD::get_singleton()->compute_list_bind_uniform_set(compute_list, jump_flood_uniform_set[upscale_jfa_uniform_set_index], 0); - RD::get_singleton()->compute_list_set_push_constant(compute_list, &push_constant, sizeof(SDGIShader::PreprocessPushConstant)); + RD::get_singleton()->compute_list_set_push_constant(compute_list, &push_constant, sizeof(SDFGIShader::PreprocessPushConstant)); RD::get_singleton()->compute_list_dispatch_threads(compute_list, cascade_size, cascade_size, cascade_size); RD::get_singleton()->compute_list_add_barrier(compute_list); @@ -1768,9 +1767,9 @@ void RendererSceneGIRD::SDFGI::render_region(RID p_render_buffers, int p_region, //full size jumpflood RENDER_TIMESTAMP("SDFGI Jump Flood"); - RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.preprocess_pipeline[SDGIShader::PRE_PROCESS_JUMP_FLOOD_INITIALIZE]); + RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.preprocess_pipeline[SDFGIShader::PRE_PROCESS_JUMP_FLOOD_INITIALIZE]); RD::get_singleton()->compute_list_bind_uniform_set(compute_list, sdf_initialize_uniform_set, 0); - RD::get_singleton()->compute_list_set_push_constant(compute_list, &push_constant, sizeof(SDGIShader::PreprocessPushConstant)); + RD::get_singleton()->compute_list_set_push_constant(compute_list, &push_constant, sizeof(SDFGIShader::PreprocessPushConstant)); RD::get_singleton()->compute_list_dispatch_threads(compute_list, cascade_size, cascade_size, cascade_size); RD::get_singleton()->compute_list_add_barrier(compute_list); @@ -1779,7 +1778,7 @@ void RendererSceneGIRD::SDFGI::render_region(RID p_render_buffers, int p_region, { uint32_t s = cascade_size; - RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.preprocess_pipeline[SDGIShader::PRE_PROCESS_JUMP_FLOOD]); + RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.preprocess_pipeline[SDFGIShader::PRE_PROCESS_JUMP_FLOOD]); int jf_us = 0; //start with regular jump flood for very coarse reads, as this is impossible to optimize @@ -1787,7 +1786,7 @@ void RendererSceneGIRD::SDFGI::render_region(RID p_render_buffers, int p_region, s /= 2; push_constant.step_size = s; RD::get_singleton()->compute_list_bind_uniform_set(compute_list, jump_flood_uniform_set[jf_us], 0); - RD::get_singleton()->compute_list_set_push_constant(compute_list, &push_constant, sizeof(SDGIShader::PreprocessPushConstant)); + RD::get_singleton()->compute_list_set_push_constant(compute_list, &push_constant, sizeof(SDFGIShader::PreprocessPushConstant)); RD::get_singleton()->compute_list_dispatch_threads(compute_list, cascade_size, cascade_size, cascade_size); RD::get_singleton()->compute_list_add_barrier(compute_list); jf_us = jf_us == 0 ? 1 : 0; @@ -1800,12 +1799,12 @@ void RendererSceneGIRD::SDFGI::render_region(RID p_render_buffers, int p_region, RENDER_TIMESTAMP("SDFGI Jump Flood Optimized"); //continue with optimized jump flood for smaller reads - RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.preprocess_pipeline[SDGIShader::PRE_PROCESS_JUMP_FLOOD_OPTIMIZED]); + RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.preprocess_pipeline[SDFGIShader::PRE_PROCESS_JUMP_FLOOD_OPTIMIZED]); while (s > 1) { s /= 2; push_constant.step_size = s; RD::get_singleton()->compute_list_bind_uniform_set(compute_list, jump_flood_uniform_set[jf_us], 0); - RD::get_singleton()->compute_list_set_push_constant(compute_list, &push_constant, sizeof(SDGIShader::PreprocessPushConstant)); + RD::get_singleton()->compute_list_set_push_constant(compute_list, &push_constant, sizeof(SDFGIShader::PreprocessPushConstant)); RD::get_singleton()->compute_list_dispatch_threads(compute_list, cascade_size, cascade_size, cascade_size); RD::get_singleton()->compute_list_add_barrier(compute_list); jf_us = jf_us == 0 ? 1 : 0; @@ -1820,7 +1819,7 @@ void RendererSceneGIRD::SDFGI::render_region(RID p_render_buffers, int p_region, uint32_t probe_size = cascade_size / SDFGI::PROBE_DIVISOR; Vector3i probe_global_pos = cascades[cascade].position / probe_size; - RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.preprocess_pipeline[SDGIShader::PRE_PROCESS_OCCLUSION]); + RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.preprocess_pipeline[SDFGIShader::PRE_PROCESS_OCCLUSION]); RD::get_singleton()->compute_list_bind_uniform_set(compute_list, occlusion_uniform_set, 0); for (int i = 0; i < 8; i++) { //dispatch all at once for performance @@ -1839,7 +1838,7 @@ void RendererSceneGIRD::SDFGI::render_region(RID p_render_buffers, int p_region, push_constant.probe_offset[1] = offset.y; push_constant.probe_offset[2] = offset.z; push_constant.occlusion_index = i; - RD::get_singleton()->compute_list_set_push_constant(compute_list, &push_constant, sizeof(SDGIShader::PreprocessPushConstant)); + RD::get_singleton()->compute_list_set_push_constant(compute_list, &push_constant, sizeof(SDFGIShader::PreprocessPushConstant)); Vector3i groups = Vector3i(probe_size + 1, probe_size + 1, probe_size + 1) - offset; //if offset, it's one less probe per axis to compute RD::get_singleton()->compute_list_dispatch(compute_list, groups.x, groups.y, groups.z); @@ -1850,9 +1849,9 @@ void RendererSceneGIRD::SDFGI::render_region(RID p_render_buffers, int p_region, RENDER_TIMESTAMP("SDFGI Store"); // store - RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.preprocess_pipeline[SDGIShader::PRE_PROCESS_STORE]); + RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.preprocess_pipeline[SDFGIShader::PRE_PROCESS_STORE]); RD::get_singleton()->compute_list_bind_uniform_set(compute_list, cascades[cascade].sdf_store_uniform_set, 0); - RD::get_singleton()->compute_list_set_push_constant(compute_list, &push_constant, sizeof(SDGIShader::PreprocessPushConstant)); + RD::get_singleton()->compute_list_set_push_constant(compute_list, &push_constant, sizeof(SDFGIShader::PreprocessPushConstant)); RD::get_singleton()->compute_list_dispatch_threads(compute_list, cascade_size, cascade_size, cascade_size); RD::get_singleton()->compute_list_end(); @@ -1903,7 +1902,7 @@ void RendererSceneGIRD::SDFGI::render_static_lights(RID p_render_buffers, uint32 update_cascades(); ; //need cascades updated for this - SDGIShader::Light lights[SDFGI::MAX_STATIC_LIGHTS]; + SDFGIShader::Light lights[SDFGI::MAX_STATIC_LIGHTS]; uint32_t light_count[SDFGI::MAX_STATIC_LIGHTS]; for (uint32_t i = 0; i < p_cascade_count; i++) { @@ -1967,7 +1966,7 @@ void RendererSceneGIRD::SDFGI::render_static_lights(RID p_render_buffers, uint32 } if (idx > 0) { - RD::get_singleton()->buffer_update(cc.lights_buffer, 0, idx * sizeof(SDGIShader::Light), lights); + RD::get_singleton()->buffer_update(cc.lights_buffer, 0, idx * sizeof(SDFGIShader::Light), lights); } light_count[i] = idx; @@ -1977,9 +1976,9 @@ void RendererSceneGIRD::SDFGI::render_static_lights(RID p_render_buffers, uint32 /* Static Lights */ RD::ComputeListID compute_list = RD::get_singleton()->compute_list_begin(); - RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.direct_light_pipeline[SDGIShader::DIRECT_LIGHT_MODE_STATIC]); + RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, gi->sdfgi_shader.direct_light_pipeline[SDFGIShader::DIRECT_LIGHT_MODE_STATIC]); - SDGIShader::DirectLightPushConstant dl_push_constant; + SDFGIShader::DirectLightPushConstant dl_push_constant; dl_push_constant.grid_size[0] = cascade_size; dl_push_constant.grid_size[1] = cascade_size; @@ -2004,7 +2003,7 @@ void RendererSceneGIRD::SDFGI::render_static_lights(RID p_render_buffers, uint32 if (dl_push_constant.light_count > 0) { RD::get_singleton()->compute_list_bind_uniform_set(compute_list, cc.sdf_direct_light_uniform_set, 0); - RD::get_singleton()->compute_list_set_push_constant(compute_list, &dl_push_constant, sizeof(SDGIShader::DirectLightPushConstant)); + RD::get_singleton()->compute_list_set_push_constant(compute_list, &dl_push_constant, sizeof(SDFGIShader::DirectLightPushConstant)); RD::get_singleton()->compute_list_dispatch_indirect(compute_list, cc.solid_cell_dispatch_buffer, 0); } } @@ -2879,7 +2878,7 @@ void RendererSceneGIRD::init_sdfgi(RendererSceneSkyRD *p_sky) { String defines = "\n#define OCCLUSION_SIZE " + itos(SDFGI::CASCADE_SIZE / SDFGI::PROBE_DIVISOR) + "\n"; sdfgi_shader.preprocess.initialize(preprocess_modes, defines); sdfgi_shader.preprocess_shader = sdfgi_shader.preprocess.version_create(); - for (int i = 0; i < SDGIShader::PRE_PROCESS_MAX; i++) { + for (int i = 0; i < SDFGIShader::PRE_PROCESS_MAX; i++) { sdfgi_shader.preprocess_pipeline[i] = RD::get_singleton()->compute_pipeline_create(sdfgi_shader.preprocess.version_get_shader(sdfgi_shader.preprocess_shader, i)); } } @@ -2893,7 +2892,7 @@ void RendererSceneGIRD::init_sdfgi(RendererSceneSkyRD *p_sky) { direct_light_modes.push_back("\n#define MODE_PROCESS_DYNAMIC\n"); sdfgi_shader.direct_light.initialize(direct_light_modes, defines); sdfgi_shader.direct_light_shader = sdfgi_shader.direct_light.version_create(); - for (int i = 0; i < SDGIShader::DIRECT_LIGHT_MODE_MAX; i++) { + for (int i = 0; i < SDFGIShader::DIRECT_LIGHT_MODE_MAX; i++) { sdfgi_shader.direct_light_pipeline[i] = RD::get_singleton()->compute_pipeline_create(sdfgi_shader.direct_light.version_get_shader(sdfgi_shader.direct_light_shader, i)); } } @@ -2914,7 +2913,7 @@ void RendererSceneGIRD::init_sdfgi(RendererSceneSkyRD *p_sky) { sdfgi_shader.integrate.initialize(integrate_modes, defines); sdfgi_shader.integrate_shader = sdfgi_shader.integrate.version_create(); - for (int i = 0; i < SDGIShader::INTEGRATE_MODE_MAX; i++) { + for (int i = 0; i < SDFGIShader::INTEGRATE_MODE_MAX; i++) { sdfgi_shader.integrate_pipeline[i] = RD::get_singleton()->compute_pipeline_create(sdfgi_shader.integrate.version_get_shader(sdfgi_shader.integrate_shader, i)); } @@ -2986,7 +2985,7 @@ void RendererSceneGIRD::init_sdfgi(RendererSceneSkyRD *p_sky) { ds.enable_depth_test = true; ds.enable_depth_write = true; ds.depth_compare_operator = RD::COMPARE_OP_LESS_OR_EQUAL; - for (int i = 0; i < SDGIShader::PROBE_DEBUG_MAX; i++) { + for (int i = 0; i < SDFGIShader::PROBE_DEBUG_MAX; i++) { RID debug_probes_shader_version = sdfgi_shader.debug_probes.version_get_shader(sdfgi_shader.debug_probes_shader, i); sdfgi_shader.debug_probes_pipeline[i].setup(debug_probes_shader_version, RD::RENDER_PRIMITIVE_TRIANGLE_STRIPS, rs, RD::PipelineMultisampleState(), ds, RD::PipelineColorBlendState::create_disabled(), 0); } @@ -3041,7 +3040,7 @@ void RendererSceneGIRD::setup_giprobes(RID p_render_buffers, const Transform &p_ for (int i = 0; i < MAX_GIPROBES; i++) { RID texture; if (i < (int)p_gi_probes.size()) { - GIProbeInstance *gipi = gi_probe_instance_owner.getornull(p_gi_probes[i]); + GIProbeInstance *gipi = get_probe_instance(p_gi_probes[i]); if (gipi) { texture = gipi->texture; @@ -3375,6 +3374,27 @@ RID RendererSceneGIRD::gi_probe_instance_create(RID p_base) { return rid; } +void RendererSceneGIRD::gi_probe_instance_set_transform_to_data(RID p_probe, const Transform &p_xform) { + GIProbeInstance *gi_probe = get_probe_instance(p_probe); + ERR_FAIL_COND(!gi_probe); + + gi_probe->transform = p_xform; +} + +bool RendererSceneGIRD::gi_probe_needs_update(RID p_probe) const { + GIProbeInstance *gi_probe = get_probe_instance(p_probe); + ERR_FAIL_COND_V(!gi_probe, false); + + return gi_probe->last_probe_version != storage->gi_probe_get_version(gi_probe->probe); +} + +void RendererSceneGIRD::gi_probe_update(RID p_probe, bool p_update_light_instances, const Vector<RID> &p_light_instances, const PagedArray<RendererSceneRender::GeometryInstance *> &p_dynamic_objects, RendererSceneRenderRD *p_scene_render) { + GIProbeInstance *gi_probe = get_probe_instance(p_probe); + ERR_FAIL_COND(!gi_probe); + + gi_probe->update(p_update_light_instances, p_light_instances, p_dynamic_objects, p_scene_render); +} + void RendererSceneGIRD::debug_giprobe(RID p_gi_probe, RD::DrawListID p_draw_list, RID p_framebuffer, const CameraMatrix &p_camera_with_transform, bool p_lighting, bool p_emission, float p_alpha) { GIProbeInstance *gi_probe = gi_probe_instance_owner.getornull(p_gi_probe); ERR_FAIL_COND(!gi_probe); diff --git a/servers/rendering/renderer_rd/renderer_scene_gi_rd.h b/servers/rendering/renderer_rd/renderer_scene_gi_rd.h index 6cff9b7837..691a2e1841 100644 --- a/servers/rendering/renderer_rd/renderer_scene_gi_rd.h +++ b/servers/rendering/renderer_rd/renderer_scene_gi_rd.h @@ -33,8 +33,10 @@ #include "core/templates/local_vector.h" #include "core/templates/rid_owner.h" +#include "servers/rendering/renderer_compositor.h" #include "servers/rendering/renderer_rd/renderer_scene_environment_rd.h" #include "servers/rendering/renderer_rd/renderer_scene_sky_rd.h" +#include "servers/rendering/renderer_rd/renderer_storage_rd.h" #include "servers/rendering/renderer_rd/shaders/gi.glsl.gen.h" #include "servers/rendering/renderer_rd/shaders/giprobe.glsl.gen.h" #include "servers/rendering/renderer_rd/shaders/giprobe_debug.glsl.gen.h" @@ -55,7 +57,6 @@ private: RendererStorageRD *storage; -public: /* GIPROBE INSTANCE */ struct GIProbeLight { @@ -110,56 +111,6 @@ public: float pad[3]; }; - struct GIProbeInstance { - // access to our containers - RendererStorageRD *storage; - RendererSceneGIRD *gi; - - RID probe; - RID texture; - RID write_buffer; - - struct Mipmap { - RID texture; - RID uniform_set; - RID second_bounce_uniform_set; - RID write_uniform_set; - uint32_t level; - uint32_t cell_offset; - uint32_t cell_count; - }; - Vector<Mipmap> mipmaps; - - struct DynamicMap { - RID texture; //color normally, or emission on first pass - RID fb_depth; //actual depth buffer for the first pass, float depth for later passes - RID depth; //actual depth buffer for the first pass, float depth for later passes - RID normal; //normal buffer for the first pass - RID albedo; //emission buffer for the first pass - RID orm; //orm buffer for the first pass - RID fb; //used for rendering, only valid on first map - RID uniform_set; - uint32_t size; - int mipmap; // mipmap to write to, -1 if no mipmap assigned - }; - - Vector<DynamicMap> dynamic_maps; - - int slot = -1; - uint32_t last_probe_version = 0; - uint32_t last_probe_data_version = 0; - - //uint64_t last_pass = 0; - uint32_t render_index = 0; - - bool has_dynamic_object_data = false; - - Transform transform; - - void update(bool p_update_light_instances, const Vector<RID> &p_light_instances, const PagedArray<RendererSceneRender::GeometryInstance *> &p_dynamic_objects, RendererSceneRenderRD *p_scene_render); - void debug(RD::DrawListID p_draw_list, RID p_framebuffer, const CameraMatrix &p_camera_with_transform, bool p_lighting, bool p_emission, float p_alpha); - }; - GIProbeLight *gi_probe_lights; uint32_t gi_probe_max_lights; RID gi_probe_lights_uniform; @@ -181,10 +132,6 @@ public: RID giprobe_lighting_shader_version_shaders[GI_PROBE_SHADER_VERSION_MAX]; RID giprobe_lighting_shader_version_pipelines[GI_PROBE_SHADER_VERSION_MAX]; - mutable RID_Owner<GIProbeInstance> gi_probe_instance_owner; - - RS::GIProbeQuality gi_probe_quality = RS::GI_PROBE_QUALITY_HIGH; - enum { GI_PROBE_DEBUG_COLOR, GI_PROBE_DEBUG_LIGHT, @@ -211,156 +158,7 @@ public: /* SDFGI */ - struct SDFGI { - enum { - MAX_CASCADES = 8, - CASCADE_SIZE = 128, - PROBE_DIVISOR = 16, - ANISOTROPY_SIZE = 6, - MAX_DYNAMIC_LIGHTS = 128, - MAX_STATIC_LIGHTS = 1024, - LIGHTPROBE_OCT_SIZE = 6, - SH_SIZE = 16 - }; - - struct Cascade { - struct UBO { - float offset[3]; - float to_cell; - int32_t probe_offset[3]; - uint32_t pad; - }; - - //cascade blocks are full-size for volume (128^3), half size for albedo/emission - RID sdf_tex; - RID light_tex; - RID light_aniso_0_tex; - RID light_aniso_1_tex; - - RID light_data; - RID light_aniso_0_data; - RID light_aniso_1_data; - - struct SolidCell { // this struct is unused, but remains as reference for size - uint32_t position; - uint32_t albedo; - uint32_t static_light; - uint32_t static_light_aniso; - }; - - RID solid_cell_dispatch_buffer; //buffer for indirect compute dispatch - RID solid_cell_buffer; - - RID lightprobe_history_tex; - RID lightprobe_average_tex; - - float cell_size; - Vector3i position; - - static const Vector3i DIRTY_ALL; - Vector3i dirty_regions; //(0,0,0 is not dirty, negative is refresh from the end, DIRTY_ALL is refresh all. - - RID sdf_store_uniform_set; - RID sdf_direct_light_uniform_set; - RID scroll_uniform_set; - RID scroll_occlusion_uniform_set; - RID integrate_uniform_set; - RID lights_buffer; - - bool all_dynamic_lights_dirty = true; - }; - - // access to our containers - RendererStorageRD *storage; - RendererSceneGIRD *gi; - - // used for rendering (voxelization) - RID render_albedo; - RID render_emission; - RID render_emission_aniso; - RID render_occlusion[8]; - RID render_geom_facing; - - RID render_sdf[2]; - RID render_sdf_half[2]; - - // used for ping pong processing in cascades - RID sdf_initialize_uniform_set; - RID sdf_initialize_half_uniform_set; - RID jump_flood_uniform_set[2]; - RID jump_flood_half_uniform_set[2]; - RID sdf_upscale_uniform_set; - int upscale_jfa_uniform_set_index; - RID occlusion_uniform_set; - - uint32_t cascade_size = 128; - - LocalVector<Cascade> cascades; - - RID lightprobe_texture; - RID lightprobe_data; - RID occlusion_texture; - RID occlusion_data; - RID ambient_texture; //integrates with volumetric fog - - RID lightprobe_history_scroll; //used for scrolling lightprobes - RID lightprobe_average_scroll; //used for scrolling lightprobes - - uint32_t history_size = 0; - float solid_cell_ratio = 0; - uint32_t solid_cell_count = 0; - - RS::EnvironmentSDFGICascades cascade_mode; - float min_cell_size = 0; - uint32_t probe_axis_count = 0; //amount of probes per axis, this is an odd number because it encloses endpoints - - RID debug_uniform_set; - RID debug_probes_uniform_set; - RID cascades_ubo; - - bool uses_occlusion = false; - float bounce_feedback = 0.0; - bool reads_sky = false; - float energy = 1.0; - float normal_bias = 1.1; - float probe_bias = 1.1; - RS::EnvironmentSDFGIYScale y_scale_mode = RS::ENV_SDFGI_Y_SCALE_DISABLED; - - float y_mult = 1.0; - - uint32_t render_pass = 0; - - int32_t cascade_dynamic_light_count[SDFGI::MAX_CASCADES]; //used dynamically - RID integrate_sky_uniform_set; - - void create(RendererSceneEnvironmentRD *p_env, const Vector3 &p_world_position, uint32_t p_requested_history_size, RendererSceneGIRD *p_gi); - void erase(); - void update(RendererSceneEnvironmentRD *p_env, const Vector3 &p_world_position); - void update_light(); - void update_probes(RendererSceneEnvironmentRD *p_env, RendererSceneSkyRD::Sky *p_sky); - void store_probes(); - int get_pending_region_data(int p_region, Vector3i &r_local_offset, Vector3i &r_local_size, AABB &r_bounds) const; - void update_cascades(); - - void debug_draw(const CameraMatrix &p_projection, const Transform &p_transform, int p_width, int p_height, RID p_render_target, RID p_texture); - void debug_probes(RD::DrawListID p_draw_list, RID p_framebuffer, const CameraMatrix &p_camera_with_transform); - - void pre_process_gi(const Transform &p_transform, RendererSceneRenderRD *p_scene_render); - void render_region(RID p_render_buffers, int p_region, const PagedArray<RendererSceneRender::GeometryInstance *> &p_instances, RendererSceneRenderRD *p_scene_render); - void render_static_lights(RID p_render_buffers, uint32_t p_cascade_count, const uint32_t *p_cascade_indices, const PagedArray<RID> *p_positional_light_cull_result, RendererSceneRenderRD *p_scene_render); - }; - - RS::EnvironmentSDFGIRayCount sdfgi_ray_count = RS::ENV_SDFGI_RAY_COUNT_16; - RS::EnvironmentSDFGIFramesToConverge sdfgi_frames_to_converge = RS::ENV_SDFGI_CONVERGE_IN_10_FRAMES; - RS::EnvironmentSDFGIFramesToUpdateLight sdfgi_frames_to_update_light = RS::ENV_SDFGI_UPDATE_LIGHT_IN_4_FRAMES; - - float sdfgi_solid_cell_ratio = 0.25; - Vector3 sdfgi_debug_probe_pos; - Vector3 sdfgi_debug_probe_dir; - bool sdfgi_debug_probe_enabled = false; - Vector3i sdfgi_debug_probe_index; - - struct SDGIShader { + struct SDFGIShader { enum SDFGIPreprocessShaderVersion { PRE_PROCESS_SCROLL, PRE_PROCESS_SCROLL_OCCLUSION, @@ -528,6 +326,226 @@ public: } sdfgi_shader; +public: + /* GIPROBE INSTANCE */ + + //@TODO GIProbeInstance is still directly used in the render code, we'll address this when we refactor the render code itself. + + struct GIProbeInstance { + // access to our containers + RendererStorageRD *storage; + RendererSceneGIRD *gi; + + RID probe; + RID texture; + RID write_buffer; + + struct Mipmap { + RID texture; + RID uniform_set; + RID second_bounce_uniform_set; + RID write_uniform_set; + uint32_t level; + uint32_t cell_offset; + uint32_t cell_count; + }; + Vector<Mipmap> mipmaps; + + struct DynamicMap { + RID texture; //color normally, or emission on first pass + RID fb_depth; //actual depth buffer for the first pass, float depth for later passes + RID depth; //actual depth buffer for the first pass, float depth for later passes + RID normal; //normal buffer for the first pass + RID albedo; //emission buffer for the first pass + RID orm; //orm buffer for the first pass + RID fb; //used for rendering, only valid on first map + RID uniform_set; + uint32_t size; + int mipmap; // mipmap to write to, -1 if no mipmap assigned + }; + + Vector<DynamicMap> dynamic_maps; + + int slot = -1; + uint32_t last_probe_version = 0; + uint32_t last_probe_data_version = 0; + + //uint64_t last_pass = 0; + uint32_t render_index = 0; + + bool has_dynamic_object_data = false; + + Transform transform; + + void update(bool p_update_light_instances, const Vector<RID> &p_light_instances, const PagedArray<RendererSceneRender::GeometryInstance *> &p_dynamic_objects, RendererSceneRenderRD *p_scene_render); + void debug(RD::DrawListID p_draw_list, RID p_framebuffer, const CameraMatrix &p_camera_with_transform, bool p_lighting, bool p_emission, float p_alpha); + }; + + mutable RID_Owner<GIProbeInstance> gi_probe_instance_owner; + + _FORCE_INLINE_ GIProbeInstance *get_probe_instance(RID p_probe) const { + return gi_probe_instance_owner.getornull(p_probe); + }; + + _FORCE_INLINE_ RID gi_probe_instance_get_texture(RID p_probe) { + GIProbeInstance *gi_probe = get_probe_instance(p_probe); + ERR_FAIL_COND_V(!gi_probe, RID()); + return gi_probe->texture; + }; + + RS::GIProbeQuality gi_probe_quality = RS::GI_PROBE_QUALITY_HIGH; + + /* SDFGI */ + + struct SDFGI { + enum { + MAX_CASCADES = 8, + CASCADE_SIZE = 128, + PROBE_DIVISOR = 16, + ANISOTROPY_SIZE = 6, + MAX_DYNAMIC_LIGHTS = 128, + MAX_STATIC_LIGHTS = 1024, + LIGHTPROBE_OCT_SIZE = 6, + SH_SIZE = 16 + }; + + struct Cascade { + struct UBO { + float offset[3]; + float to_cell; + int32_t probe_offset[3]; + uint32_t pad; + }; + + //cascade blocks are full-size for volume (128^3), half size for albedo/emission + RID sdf_tex; + RID light_tex; + RID light_aniso_0_tex; + RID light_aniso_1_tex; + + RID light_data; + RID light_aniso_0_data; + RID light_aniso_1_data; + + struct SolidCell { // this struct is unused, but remains as reference for size + uint32_t position; + uint32_t albedo; + uint32_t static_light; + uint32_t static_light_aniso; + }; + + RID solid_cell_dispatch_buffer; //buffer for indirect compute dispatch + RID solid_cell_buffer; + + RID lightprobe_history_tex; + RID lightprobe_average_tex; + + float cell_size; + Vector3i position; + + static const Vector3i DIRTY_ALL; + Vector3i dirty_regions; //(0,0,0 is not dirty, negative is refresh from the end, DIRTY_ALL is refresh all. + + RID sdf_store_uniform_set; + RID sdf_direct_light_uniform_set; + RID scroll_uniform_set; + RID scroll_occlusion_uniform_set; + RID integrate_uniform_set; + RID lights_buffer; + + bool all_dynamic_lights_dirty = true; + }; + + // access to our containers + RendererStorageRD *storage; + RendererSceneGIRD *gi; + + // used for rendering (voxelization) + RID render_albedo; + RID render_emission; + RID render_emission_aniso; + RID render_occlusion[8]; + RID render_geom_facing; + + RID render_sdf[2]; + RID render_sdf_half[2]; + + // used for ping pong processing in cascades + RID sdf_initialize_uniform_set; + RID sdf_initialize_half_uniform_set; + RID jump_flood_uniform_set[2]; + RID jump_flood_half_uniform_set[2]; + RID sdf_upscale_uniform_set; + int upscale_jfa_uniform_set_index; + RID occlusion_uniform_set; + + uint32_t cascade_size = 128; + + LocalVector<Cascade> cascades; + + RID lightprobe_texture; + RID lightprobe_data; + RID occlusion_texture; + RID occlusion_data; + RID ambient_texture; //integrates with volumetric fog + + RID lightprobe_history_scroll; //used for scrolling lightprobes + RID lightprobe_average_scroll; //used for scrolling lightprobes + + uint32_t history_size = 0; + float solid_cell_ratio = 0; + uint32_t solid_cell_count = 0; + + RS::EnvironmentSDFGICascades cascade_mode; + float min_cell_size = 0; + uint32_t probe_axis_count = 0; //amount of probes per axis, this is an odd number because it encloses endpoints + + RID debug_uniform_set; + RID debug_probes_uniform_set; + RID cascades_ubo; + + bool uses_occlusion = false; + float bounce_feedback = 0.0; + bool reads_sky = false; + float energy = 1.0; + float normal_bias = 1.1; + float probe_bias = 1.1; + RS::EnvironmentSDFGIYScale y_scale_mode = RS::ENV_SDFGI_Y_SCALE_DISABLED; + + float y_mult = 1.0; + + uint32_t render_pass = 0; + + int32_t cascade_dynamic_light_count[SDFGI::MAX_CASCADES]; //used dynamically + RID integrate_sky_uniform_set; + + void create(RendererSceneEnvironmentRD *p_env, const Vector3 &p_world_position, uint32_t p_requested_history_size, RendererSceneGIRD *p_gi); + void erase(); + void update(RendererSceneEnvironmentRD *p_env, const Vector3 &p_world_position); + void update_light(); + void update_probes(RendererSceneEnvironmentRD *p_env, RendererSceneSkyRD::Sky *p_sky); + void store_probes(); + int get_pending_region_data(int p_region, Vector3i &r_local_offset, Vector3i &r_local_size, AABB &r_bounds) const; + void update_cascades(); + + void debug_draw(const CameraMatrix &p_projection, const Transform &p_transform, int p_width, int p_height, RID p_render_target, RID p_texture); + void debug_probes(RD::DrawListID p_draw_list, RID p_framebuffer, const CameraMatrix &p_camera_with_transform); + + void pre_process_gi(const Transform &p_transform, RendererSceneRenderRD *p_scene_render); + void render_region(RID p_render_buffers, int p_region, const PagedArray<RendererSceneRender::GeometryInstance *> &p_instances, RendererSceneRenderRD *p_scene_render); + void render_static_lights(RID p_render_buffers, uint32_t p_cascade_count, const uint32_t *p_cascade_indices, const PagedArray<RID> *p_positional_light_cull_result, RendererSceneRenderRD *p_scene_render); + }; + + RS::EnvironmentSDFGIRayCount sdfgi_ray_count = RS::ENV_SDFGI_RAY_COUNT_16; + RS::EnvironmentSDFGIFramesToConverge sdfgi_frames_to_converge = RS::ENV_SDFGI_CONVERGE_IN_10_FRAMES; + RS::EnvironmentSDFGIFramesToUpdateLight sdfgi_frames_to_update_light = RS::ENV_SDFGI_UPDATE_LIGHT_IN_4_FRAMES; + + float sdfgi_solid_cell_ratio = 0.25; + Vector3 sdfgi_debug_probe_pos; + Vector3 sdfgi_debug_probe_dir; + bool sdfgi_debug_probe_enabled = false; + Vector3i sdfgi_debug_probe_index; + /* SDFGI UPDATE */ int sdfgi_get_lightprobe_octahedron_size() const { return SDFGI::LIGHTPROBE_OCT_SIZE; } @@ -547,7 +565,6 @@ public: RID full_mask; }; - // struct GI { struct SDFGIData { float grid_size[3]; uint32_t max_cascades; @@ -631,7 +648,6 @@ public: GiShaderRD shader; RID shader_version; RID pipelines[MODE_MAX]; - // } gi; RendererSceneGIRD(); ~RendererSceneGIRD(); @@ -647,6 +663,9 @@ public: void process_gi(RID p_render_buffers, RID p_normal_roughness_buffer, RID p_gi_probe_buffer, RID p_environment, const CameraMatrix &p_projection, const Transform &p_transform, const PagedArray<RID> &p_gi_probes, RendererSceneRenderRD *p_scene_render); RID gi_probe_instance_create(RID p_base); + void gi_probe_instance_set_transform_to_data(RID p_probe, const Transform &p_xform); + bool gi_probe_needs_update(RID p_probe) const; + void gi_probe_update(RID p_probe, bool p_update_light_instances, const Vector<RID> &p_light_instances, const PagedArray<RendererSceneRender::GeometryInstance *> &p_dynamic_objects, RendererSceneRenderRD *p_scene_render); void debug_giprobe(RID p_gi_probe, RD::DrawListID p_draw_list, RID p_framebuffer, const CameraMatrix &p_camera_with_transform, bool p_lighting, bool p_emission, float p_alpha); }; diff --git a/servers/rendering/renderer_rd/renderer_scene_render_forward.cpp b/servers/rendering/renderer_rd/renderer_scene_render_forward.cpp index dd8bfda4d6..874389f7e9 100644 --- a/servers/rendering/renderer_rd/renderer_scene_render_forward.cpp +++ b/servers/rendering/renderer_rd/renderer_scene_render_forward.cpp @@ -2515,7 +2515,7 @@ RID RendererSceneRenderForward::_setup_render_pass_uniform_set(RenderListType p_ RID default_tex = storage->texture_rd_get_default(RendererStorageRD::DEFAULT_RD_TEXTURE_3D_WHITE); for (int i = 0; i < MAX_GI_PROBES; i++) { if (i < (int)p_gi_probes.size()) { - RID tex = gi_probe_instance_get_texture(p_gi_probes[i]); + RID tex = gi.gi_probe_instance_get_texture(p_gi_probes[i]); if (!tex.is_valid()) { tex = default_tex; } diff --git a/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp b/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp index 7a6900b0c4..f9ee01e751 100644 --- a/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp +++ b/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp @@ -1336,33 +1336,23 @@ RID RendererSceneRenderRD::gi_probe_instance_create(RID p_base) { } void RendererSceneRenderRD::gi_probe_instance_set_transform_to_data(RID p_probe, const Transform &p_xform) { - RendererSceneGIRD::GIProbeInstance *gi_probe = gi.gi_probe_instance_owner.getornull(p_probe); - ERR_FAIL_COND(!gi_probe); - - gi_probe->transform = p_xform; + gi.gi_probe_instance_set_transform_to_data(p_probe, p_xform); } bool RendererSceneRenderRD::gi_probe_needs_update(RID p_probe) const { - RendererSceneGIRD::GIProbeInstance *gi_probe = gi.gi_probe_instance_owner.getornull(p_probe); - ERR_FAIL_COND_V(!gi_probe, false); - if (low_end) { return false; } - //return true; - return gi_probe->last_probe_version != storage->gi_probe_get_version(gi_probe->probe); + return gi.gi_probe_needs_update(p_probe); } void RendererSceneRenderRD::gi_probe_update(RID p_probe, bool p_update_light_instances, const Vector<RID> &p_light_instances, const PagedArray<GeometryInstance *> &p_dynamic_objects) { - RendererSceneGIRD::GIProbeInstance *gi_probe = gi.gi_probe_instance_owner.getornull(p_probe); - ERR_FAIL_COND(!gi_probe); - if (low_end) { return; } - gi_probe->update(p_update_light_instances, p_light_instances, p_dynamic_objects, this); + gi.gi_probe_update(p_probe, p_update_light_instances, p_light_instances, p_dynamic_objects, this); } void RendererSceneRenderRD::_debug_sdfgi_probes(RID p_render_buffers, RD::DrawListID p_draw_list, RID p_framebuffer, const CameraMatrix &p_camera_with_transform) { diff --git a/servers/rendering/renderer_rd/renderer_scene_render_rd.h b/servers/rendering/renderer_rd/renderer_scene_render_rd.h index d41dd3358d..eefaf237a4 100644 --- a/servers/rendering/renderer_rd/renderer_scene_render_rd.h +++ b/servers/rendering/renderer_rd/renderer_scene_render_rd.h @@ -1090,59 +1090,16 @@ public: return li->transform; } - // !BAS! Need to check which of these we move into RenderSceneGIRD or whether we keep this the way it is now + /* gi light probes */ RID gi_probe_instance_create(RID p_base); void gi_probe_instance_set_transform_to_data(RID p_probe, const Transform &p_xform); bool gi_probe_needs_update(RID p_probe) const; void gi_probe_update(RID p_probe, bool p_update_light_instances, const Vector<RID> &p_light_instances, const PagedArray<RendererSceneRender::GeometryInstance *> &p_dynamic_objects); - void gi_probe_set_quality(RS::GIProbeQuality p_quality) { gi.gi_probe_quality = p_quality; } - _FORCE_INLINE_ uint32_t gi_probe_instance_get_slot(RID p_probe) { - RendererSceneGIRD::GIProbeInstance *gi_probe = gi.gi_probe_instance_owner.getornull(p_probe); - return gi_probe->slot; - } - _FORCE_INLINE_ RID gi_probe_instance_get_base_probe(RID p_probe) { - RendererSceneGIRD::GIProbeInstance *gi_probe = gi.gi_probe_instance_owner.getornull(p_probe); - return gi_probe->probe; - } - _FORCE_INLINE_ Transform gi_probe_instance_get_transform_to_cell(RID p_probe) { - RendererSceneGIRD::GIProbeInstance *gi_probe = gi.gi_probe_instance_owner.getornull(p_probe); - return storage->gi_probe_get_to_cell_xform(gi_probe->probe) * gi_probe->transform.affine_inverse(); - } - - _FORCE_INLINE_ RID gi_probe_instance_get_texture(RID p_probe) { - RendererSceneGIRD::GIProbeInstance *gi_probe = gi.gi_probe_instance_owner.getornull(p_probe); - return gi_probe->texture; - } - - _FORCE_INLINE_ void gi_probe_instance_set_render_index(RID p_instance, uint32_t p_render_index) { - RendererSceneGIRD::GIProbeInstance *gi_probe = gi.gi_probe_instance_owner.getornull(p_instance); - ERR_FAIL_COND(!gi_probe); - gi_probe->render_index = p_render_index; - } - - _FORCE_INLINE_ uint32_t gi_probe_instance_get_render_index(RID p_instance) { - RendererSceneGIRD::GIProbeInstance *gi_probe = gi.gi_probe_instance_owner.getornull(p_instance); - ERR_FAIL_COND_V(!gi_probe, 0); + /* render buffers */ - return gi_probe->render_index; - } - /* - _FORCE_INLINE_ void gi_probe_instance_set_render_pass(RID p_instance, uint32_t p_render_pass) { - RendererSceneGIRD::GIProbeInstance *g_probe = gi_probe_instance_owner.getornull(p_instance); - ERR_FAIL_COND(!g_probe); - g_probe->last_pass = p_render_pass; - } - - _FORCE_INLINE_ uint32_t gi_probe_instance_get_render_pass(RID p_instance) { - RendererSceneGIRD::GIProbeInstance *g_probe = gi_probe_instance_owner.getornull(p_instance); - ERR_FAIL_COND_V(!g_probe, 0); - - return g_probe->last_pass; - } -*/ RID render_buffers_create(); void render_buffers_configure(RID p_render_buffers, RID p_render_target, int p_width, int p_height, RS::ViewportMSAA p_msaa, RS::ViewportScreenSpaceAA p_screen_space_aa, bool p_use_debanding); void gi_set_use_half_resolution(bool p_enable); diff --git a/tests/test_hashing_context.h b/tests/test_hashing_context.h new file mode 100644 index 0000000000..728a5f2cfa --- /dev/null +++ b/tests/test_hashing_context.h @@ -0,0 +1,165 @@ +/*************************************************************************/ +/* test_hashing_context.h */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2014-2021 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 TEST_HASHING_CONTEXT_H +#define TEST_HASHING_CONTEXT_H + +#include "core/crypto/hashing_context.h" + +#include "tests/test_macros.h" + +namespace TestHashingContext { + +TEST_CASE("[HashingContext] Default - MD5/SHA1/SHA256") { + HashingContext ctx; + + static const uint8_t md5_expected[] = { + 0xd4, 0x1d, 0x8c, 0xd9, 0x8f, 0x00, 0xb2, 0x04, 0xe9, 0x80, 0x09, 0x98, 0xec, 0xf8, 0x42, 0x7e + }; + static const uint8_t sha1_expected[] = { + 0xda, 0x39, 0xa3, 0xee, 0x5e, 0x6b, 0x4b, 0x0d, 0x32, 0x55, 0xbf, 0xef, 0x95, 0x60, 0x18, 0x90, + 0xaf, 0xd8, 0x07, 0x09 + }; + static const uint8_t sha256_expected[] = { + 0xe3, 0xb0, 0xc4, 0x42, 0x98, 0xfc, 0x1c, 0x14, 0x9a, 0xfb, 0xf4, 0xc8, 0x99, 0x6f, 0xb9, 0x24, + 0x27, 0xae, 0x41, 0xe4, 0x64, 0x9b, 0x93, 0x4c, 0xa4, 0x95, 0x99, 0x1b, 0x78, 0x52, 0xb8, 0x55 + }; + + CHECK(ctx.start(HashingContext::HASH_MD5) == OK); + PackedByteArray result = ctx.finish(); + REQUIRE(result.size() == 16); + CHECK(memcmp(result.ptr(), md5_expected, 16) == 0); + + CHECK(ctx.start(HashingContext::HASH_SHA1) == OK); + result = ctx.finish(); + REQUIRE(result.size() == 20); + CHECK(memcmp(result.ptr(), sha1_expected, 20) == 0); + + CHECK(ctx.start(HashingContext::HASH_SHA256) == OK); + result = ctx.finish(); + REQUIRE(result.size() == 32); + CHECK(memcmp(result.ptr(), sha256_expected, 32) == 0); +} + +TEST_CASE("[HashingContext] Multiple updates - MD5/SHA1/SHA256") { + HashingContext ctx; + const String s = "xyz"; + + const PackedByteArray s_byte_parts[] = { + String("x").to_ascii_buffer(), + String("y").to_ascii_buffer(), + String("z").to_ascii_buffer() + }; + + static const uint8_t md5_expected[] = { + 0xd1, 0x6f, 0xb3, 0x6f, 0x09, 0x11, 0xf8, 0x78, 0x99, 0x8c, 0x13, 0x61, 0x91, 0xaf, 0x70, 0x5e + }; + static const uint8_t sha1_expected[] = { + 0x66, 0xb2, 0x74, 0x17, 0xd3, 0x7e, 0x02, 0x4c, 0x46, 0x52, 0x6c, 0x2f, 0x6d, 0x35, 0x8a, 0x75, + 0x4f, 0xc5, 0x52, 0xf3 + }; + static const uint8_t sha256_expected[] = { + 0x36, 0x08, 0xbc, 0xa1, 0xe4, 0x4e, 0xa6, 0xc4, 0xd2, 0x68, 0xeb, 0x6d, 0xb0, 0x22, 0x60, 0x26, + 0x98, 0x92, 0xc0, 0xb4, 0x2b, 0x86, 0xbb, 0xf1, 0xe7, 0x7a, 0x6f, 0xa1, 0x6c, 0x3c, 0x92, 0x82 + }; + + CHECK(ctx.start(HashingContext::HASH_MD5) == OK); + CHECK(ctx.update(s_byte_parts[0]) == OK); + CHECK(ctx.update(s_byte_parts[1]) == OK); + CHECK(ctx.update(s_byte_parts[2]) == OK); + PackedByteArray result = ctx.finish(); + REQUIRE(result.size() == 16); + CHECK(memcmp(result.ptr(), md5_expected, 16) == 0); + + CHECK(ctx.start(HashingContext::HASH_SHA1) == OK); + CHECK(ctx.update(s_byte_parts[0]) == OK); + CHECK(ctx.update(s_byte_parts[1]) == OK); + CHECK(ctx.update(s_byte_parts[2]) == OK); + result = ctx.finish(); + REQUIRE(result.size() == 20); + CHECK(memcmp(result.ptr(), sha1_expected, 20) == 0); + + CHECK(ctx.start(HashingContext::HASH_SHA256) == OK); + CHECK(ctx.update(s_byte_parts[0]) == OK); + CHECK(ctx.update(s_byte_parts[1]) == OK); + CHECK(ctx.update(s_byte_parts[2]) == OK); + result = ctx.finish(); + REQUIRE(result.size() == 32); + CHECK(memcmp(result.ptr(), sha256_expected, 32) == 0); +} + +TEST_CASE("[HashingContext] Invalid use of start") { + HashingContext ctx; + + ERR_PRINT_OFF; + CHECK_MESSAGE( + ctx.start(static_cast<HashingContext::HashType>(-1)) == ERR_UNAVAILABLE, + "Using invalid hash types should fail."); + ERR_PRINT_ON; + + REQUIRE(ctx.start(HashingContext::HASH_MD5) == OK); + + ERR_PRINT_OFF; + CHECK_MESSAGE( + ctx.start(HashingContext::HASH_MD5) == ERR_ALREADY_IN_USE, + "Calling 'start' twice before 'finish' should fail."); + ERR_PRINT_ON; +} + +TEST_CASE("[HashingContext] Invalid use of update") { + HashingContext ctx; + + ERR_PRINT_OFF; + CHECK_MESSAGE( + ctx.update(PackedByteArray()) == ERR_UNCONFIGURED, + "Calling 'update' before 'start' should fail."); + ERR_PRINT_ON; + + REQUIRE(ctx.start(HashingContext::HASH_MD5) == OK); + + ERR_PRINT_OFF; + CHECK_MESSAGE( + ctx.update(PackedByteArray()) == FAILED, + "Calling 'update' with an empty byte array should fail."); + ERR_PRINT_ON; +} + +TEST_CASE("[HashingContext] Invalid use of finish") { + HashingContext ctx; + + ERR_PRINT_OFF; + CHECK_MESSAGE( + ctx.finish() == PackedByteArray(), + "Calling 'finish' before 'start' should return an empty byte array."); + ERR_PRINT_ON; +} +} // namespace TestHashingContext + +#endif // TEST_HASHING_CONTEXT_H diff --git a/tests/test_main.cpp b/tests/test_main.cpp index 7e9f8319a0..f2a546de9b 100644 --- a/tests/test_main.cpp +++ b/tests/test_main.cpp @@ -48,6 +48,7 @@ #include "test_geometry_3d.h" #include "test_gradient.h" #include "test_gui.h" +#include "test_hashing_context.h" #include "test_image.h" #include "test_json.h" #include "test_list.h" diff --git a/tests/test_string.h b/tests/test_string.h index 17f24fb0d8..6febf22765 100644 --- a/tests/test_string.h +++ b/tests/test_string.h @@ -1318,6 +1318,20 @@ TEST_CASE("[String] humanize_size") { CHECK(String::humanize_size(100523550) == "95.86 MiB"); CHECK(String::humanize_size(5345555000) == "4.97 GiB"); } + +TEST_CASE("[String] validate_node_name") { + String numeric_only = "12345"; + CHECK(numeric_only.validate_node_name() == "12345"); + + String name_with_spaces = "Name with spaces"; + CHECK(name_with_spaces.validate_node_name() == "Name with spaces"); + + String name_with_kana = "Name with kana ゴドツ"; + CHECK(name_with_kana.validate_node_name() == "Name with kana ゴドツ"); + + String name_with_invalid_chars = "Name with invalid characters :.@removed!"; + CHECK(name_with_invalid_chars.validate_node_name() == "Name with invalid characters removed!"); +} } // namespace TestString #endif // TEST_STRING_H |