From ba58baf432ed4e057f7b58fc81fe8c154ea1c45d Mon Sep 17 00:00:00 2001 From: Sara <sara@saragerretsen.nl> Date: Mon, 17 Mar 2025 10:43:25 +0100 Subject: [PATCH] feat: updated engine version to 4.4 --- engine/.mailmap | 10 + engine/AUTHORS.md | 20 +- engine/CHANGELOG.md | 6204 +- engine/DONORS.md | 428 +- engine/core/config/project_settings.cpp | 2 +- engine/core/core_constants.cpp | 1 + engine/core/input/input.cpp | 8 +- engine/core/input/input_event.cpp | 2 +- engine/core/input/input_map.h | 2 + engine/core/os/os.h | 8 + engine/core/templates/command_queue_mt.h | 5 +- engine/core/variant/variant_call.cpp | 59 +- engine/doc/classes/@GlobalScope.xml | 3 + engine/doc/classes/Cubemap.xml | 3 +- engine/doc/classes/CubemapArray.xml | 11 +- engine/doc/classes/EditorExportPlatform.xml | 4 +- engine/doc/classes/EditorExportPreset.xml | 4 +- engine/doc/classes/EditorSettings.xml | 4 + .../classes/EditorTranslationParserPlugin.xml | 2 +- engine/doc/classes/ImageTextureLayered.xml | 33 + engine/doc/classes/Input.xml | 4 + engine/doc/classes/Parallax2D.xml | 2 +- engine/doc/classes/ProjectSettings.xml | 87 +- engine/doc/classes/RenderingServer.xml | 2 +- engine/doc/classes/Texture2DArray.xml | 2 +- engine/doc/translations/de.po | 85 +- engine/doc/translations/es.po | 272 +- engine/doc/translations/fr.po | 55 +- engine/doc/translations/ga.po | 605 +- engine/doc/translations/it.po | 568 +- engine/doc/translations/ta.po | 571 +- engine/doc/translations/uk.po | 47478 ++++++++++++++-- engine/doc/translations/zh_CN.po | 29837 +++++++++- engine/doc/translations/zh_TW.po | 390 +- .../metal/rendering_device_driver_metal.mm | 6 + engine/editor/editor_data.cpp | 4 +- engine/editor/editor_dock_manager.cpp | 3 +- engine/editor/editor_settings.cpp | 1 + .../resource_importer_csv_translation.cpp | 14 +- engine/editor/plugins/embedded_process.cpp | 28 +- engine/editor/plugins/embedded_process.h | 1 + engine/editor/plugins/game_view_plugin.cpp | 21 +- .../editor/project_manager/project_dialog.cpp | 2 +- engine/editor/scene_tree_dock.cpp | 1 + engine/editor/translations/editor/ar.po | 529 +- engine/editor/translations/editor/ca.po | 418 +- engine/editor/translations/editor/cs.po | 4399 +- engine/editor/translations/editor/de.po | 683 +- engine/editor/translations/editor/es.po | 2480 +- engine/editor/translations/editor/fa.po | 2443 +- engine/editor/translations/editor/fi.po | 16 +- engine/editor/translations/editor/fr.po | 576 +- engine/editor/translations/editor/ga.po | 9 - engine/editor/translations/editor/gl.po | 6 +- engine/editor/translations/editor/it.po | 222 +- engine/editor/translations/editor/ja.po | 1052 +- engine/editor/translations/editor/ka.po | 158 +- engine/editor/translations/editor/ko.po | 241 +- engine/editor/translations/editor/nl.po | 103 +- engine/editor/translations/editor/pl.po | 2027 +- engine/editor/translations/editor/pt.po | 1201 +- engine/editor/translations/editor/pt_BR.po | 30 +- engine/editor/translations/editor/ro.po | 526 +- engine/editor/translations/editor/ru.po | 1222 +- engine/editor/translations/editor/sk.po | 14 +- engine/editor/translations/editor/th.po | 19 +- engine/editor/translations/editor/tr.po | 2244 +- engine/editor/translations/editor/uk.po | 2042 +- engine/editor/translations/editor/vi.po | 13 +- engine/editor/translations/editor/zh_CN.po | 1861 +- engine/editor/translations/editor/zh_TW.po | 19 +- engine/editor/translations/extractable/fr.po | 41 + engine/editor/translations/properties/cs.po | 4755 +- engine/editor/translations/properties/de.po | 43 +- engine/editor/translations/properties/es.po | 392 +- engine/editor/translations/properties/et.po | 12 +- engine/editor/translations/properties/fa.po | 574 +- engine/editor/translations/properties/fr.po | 39 +- engine/editor/translations/properties/ga.po | 850 +- engine/editor/translations/properties/id.po | 39 +- engine/editor/translations/properties/it.po | 83 +- engine/editor/translations/properties/ja.po | 18 +- engine/editor/translations/properties/ka.po | 46 +- engine/editor/translations/properties/ko.po | 33 +- engine/editor/translations/properties/pl.po | 169 +- engine/editor/translations/properties/pt.po | 43 +- .../editor/translations/properties/pt_BR.po | 33 +- engine/editor/translations/properties/ru.po | 162 +- engine/editor/translations/properties/ta.po | 43 +- engine/editor/translations/properties/tr.po | 923 +- engine/editor/translations/properties/uk.po | 915 +- engine/editor/translations/properties/vi.po | 24 +- .../editor/translations/properties/zh_CN.po | 859 +- .../editor/translations/properties/zh_TW.po | 43 +- engine/editor/uid_upgrade_tool.cpp | 2 +- engine/main/main.cpp | 93 +- .../modules/bcdec/image_decompress_bcdec.cpp | 9 +- engine/modules/gltf/gltf_document.cpp | 84 +- engine/modules/mbedtls/register_types.cpp | 2 +- .../modules/mbedtls/tls_context_mbedtls.cpp | 30 +- .../doc_classes/MobileVRInterface.xml | 1 + .../modules/mono/editor/hostfxr_resolver.cpp | 2 +- engine/modules/openxr/openxr_api.cpp | 6 +- .../platform/android/export/export_plugin.cpp | 6 +- .../platform/android/game_menu_utils_jni.cpp | 29 +- .../editor/src/main/res/values/themes.xml | 3 +- .../lib/src/org/godotengine/godot/Godot.kt | 9 +- .../src/org/godotengine/godot/GodotLib.java | 9 + .../godot/input/GodotInputHandler.java | 17 +- .../platform/android/java_godot_lib_jni.cpp | 11 + engine/platform/android/java_godot_lib_jni.h | 1 + engine/platform/ios/export/export_plugin.cpp | 4 +- .../linuxbsd/crash_handler_linuxbsd.cpp | 4 + .../linuxbsd/x11/display_server_x11.cpp | 45 +- engine/platform/macos/crash_handler_macos.mm | 4 + engine/platform/macos/display_server_macos.mm | 5 +- .../windows/crash_handler_windows_seh.cpp | 5 + .../windows/crash_handler_windows_signal.cpp | 5 + engine/platform/windows/detect.py | 2 +- .../windows/display_server_windows.cpp | 110 +- .../windows/gl_manager_windows_native.cpp | 13 +- engine/platform/windows/joypad_windows.cpp | 11 +- engine/platform/windows/os_windows.cpp | 128 +- engine/platform/windows/os_windows.h | 3 + .../platform/windows/wgl_detect_version.cpp | 15 +- engine/scene/gui/label.cpp | 77 +- engine/scene/gui/tree.cpp | 13 +- engine/scene/property_utils.cpp | 7 + engine/servers/display_server.cpp | 99 +- engine/servers/display_server.h | 4 +- .../storage_rd/material_storage.cpp | 2 +- .../storage_rd/texture_storage.cpp | 7 +- engine/thirdparty/README.md | 1 + .../thirdparty/mbedtls/include/mbedtls/ssl.h | 11 +- engine/thirdparty/mbedtls/library/ssl_misc.h | 5 +- engine/thirdparty/mbedtls/library/ssl_msg.c | 120 +- engine/thirdparty/mbedtls/library/ssl_tls.c | 26 +- .../mbedtls/library/ssl_tls12_server.c | 22 - ...ment-incoming-tls-handshake-messages.patch | 373 + engine/version.py | 4 +- 140 files changed, 108317 insertions(+), 14666 deletions(-) create mode 100644 engine/thirdparty/mbedtls/patches/0002-pr-9981-defragment-incoming-tls-handshake-messages.patch diff --git a/engine/.mailmap b/engine/.mailmap index 825e72bf..3e849efd 100644 --- a/engine/.mailmap +++ b/engine/.mailmap @@ -1,5 +1,6 @@ Aaron Record <aaronjrecord@gmail.com> ajreckof <66184050+ajreckof@users.noreply.github.com> <tbonhoure@ymail.com> +Alexander Hartmann <alex.hart.278@gmail.com> Alexander Holland <alexander.holland@live.de> Alexander Holland <alexander.holland@live.de> <alexander.holland@haw-hamburg.de> Alexander Holland <alexander.holland@live.de> <AlexHolly> @@ -15,6 +16,7 @@ Ariel Manzur <ariel@godotengine.org> <ariel@okamstudio.com> Ariel Manzur <ariel@godotengine.org> <punto@Ariels-Mac-mini.local> Ariel Manzur <ariel@godotengine.org> <punto@Ariels-Mac-mini-2.local> Arman Elgudzhyan <48544263+puchik@users.noreply.github.com> +A Thousand Ships <96648715+AThousandShips@users.noreply.github.com> A Thousand Ships <96648715+AThousandShips@users.noreply.github.com> <over999ships@gmail.com> Bastiaan Olij <mux213@gmail.com> Benjamin <mafortion.benjamin@gmail.com> @@ -30,6 +32,7 @@ CookieBadger <emil.dobetsberger@gmail.com> Dana Olson <dana@shineuponthee.com> <adolson@gmail.com> dankan1890 <mewuidev2@gmail.com> Daniel J. Ramirez <djrmuv@gmail.com> +Dario <dariosamo@gmail.com> David Cambré <david.cambre@gmail.com> <David.Cambre@gmail.com> DmitriySalnikov <salnikov.mine@yandex.ru> DmitriySalnikov <salnikov.mine@yandex.ru> <dimokgamer@gmail.com> @@ -57,6 +60,7 @@ Gilles Roudiere <gilles.roudiere@gmail.com> Gilles Roudiere <gilles.roudiere@gmail.com> <gilles.roudiere@laas.fr> Gordon MacPherson <gordon@gordonite.tech> Guilherme Felipe <guilhermefelipecgs@gmail.com> +Hakim <hakim.rouatbi@gmail.com> Hanif Bin Ariffin <hanif.ariffin.4326@gmail.com> HaSa1002 <johawitt@outlook.de> Hein-Pieter van Braam-Stewart <hp@tmm.cx> @@ -95,6 +99,7 @@ Kanabenki <lucien.menassol@gmail.com> <18357657+Kanabenki@users.noreply.github.c karroffel <therzog@mail.de> karroffel <therzog@mail.de> <thomas.herzog@mail.com> karroffel <therzog@mail.de> <thomas.herzog@simedis.com> +Kasper Arnklit Frandsen <kasper.arnklit@gmail.com> Kelly Thomas <kelly.thomas@hotmail.com.au> Kongfa Waroros <gongpha@hotmail.com> K. S. Ernest (iFire) Lee <ernest.lee@chibifire.com> @@ -107,6 +112,7 @@ Liz Haas <27thLiz@gmail.com> <liu.gam3@gmail.com> Liz Haas <27thLiz@gmail.com> <hinsbart@gmail.com> Liz Haas <27thLiz@gmail.com> <hinsbart@users.noreply.github.com> Liz Haas <27thLiz@gmail.com> <entenflugstuhl@gmail.com> +Logan Lang <devloglogan@gmail.com> Manuele Finocchiaro <m4nu3lf@gmail.com> Manuel Strey <manuel.strey@gmx.de> Marcel Admiraal <madmiraal@users.noreply.github.com> @@ -127,6 +133,7 @@ Micky <micheledevita2@gmail.com> <66727710+Mickeon@users.noreply.github.com> Nathan Franke <natfra@pm.me> <nathanwfranke@gmail.com> Nathan Lovato <nathan@gdquest.com> Nathan Warden <nathan@nathanwarden.com> <nathanwardenlee@icloud.com> +Nazarii <nazarii.yablonskyi.pp.2022@lpnu.ua> Nicholas Huelin <62965063+SirQuartz@users.noreply.github.com> Nils ANDRÉ-CHANG <nils@nilsand.re> Nils ANDRÉ-CHANG <nils@nilsand.re> <nils.andre.chang@gmail.com> @@ -139,6 +146,7 @@ Patrick Exner <patrick.exner1@web.de> Patrick <firefly2442@gmail.com> Paul Batty <p_batty@hotmail.co.uk> Paul Batty <p_batty@hotmail.co.uk> <Paulb23@users.noreply.github.com> +Pāvels Nadtočajevs <7645683+bruvzg@users.noreply.github.com> Pawel Kowal <pkowal1982@gmail.com> <pawel.kowal@javart.eu> Pieter-Jan Briers <pieterjan.briers+git@gmail.com> Pieter-Jan Briers <pieterjan.briers+git@gmail.com> <pieterjan.briers@gmail.com> @@ -160,6 +168,7 @@ Rindbee <idleman@yeah.net> Riteo Siuga <riteo@posteo.net> Robin Hübner <profan@prfn.se> <robinhubner@gmail.com> romulox_x <romulox_x@yahoo.com> +Rudolph Bester <Rudolph.f.Bester@gmail.com> <Rudolph.f.bester@gmail.com> rune-scape <allie.smith.epic@gmail.com> rune-scape <allie.smith.epic@gmail.com> <spartacrafter@gmail.com> Ruslan Mustakov <r.mustakov@gmail.com> <ruslan.mustakov@xored.com> @@ -169,6 +178,7 @@ Silc 'Tokage' Renew <tokage.it.lab@gmail.com> Silc 'Tokage' Renew <tokage.it.lab@gmail.com> <61938263+TokageItLab@users.noreply.github.com> Swarnim Arun <swarnimarun11@gmail.com> TechnoPorg <jonah.janzen@gmail.com> <69441745+TechnoPorg@users.noreply.github.com> +tetrapod00 <145553014+tetrapod00@users.noreply.github.com> Theo Hallenius <redsymbzone@hotmail.com> Tomasz Chabora <kobewi4e@gmail.com> Twarit <wtwarit@gmail.com> diff --git a/engine/AUTHORS.md b/engine/AUTHORS.md index b21270b3..9d495e9d 100644 --- a/engine/AUTHORS.md +++ b/engine/AUTHORS.md @@ -39,23 +39,27 @@ name is available. Alexander Holland (AlexHolly) Alex Drozd (brno32) Alexey Khoroshavin (allkhor) + Allen Pestaluky (allenwp) Alfred Reinold Baudisch (alfredbaudisch) Alistair Leslie-Hughes (alesliehughes) Alket Rexhepi (alketii) Alvin Wong (alvinhochun) Andrea Catania (AndreaCatania) Andreia Gaita (shana) + Andrés Botero (0xafbf) Andrii Doroshenko (Xrayez) Andy Maloney (asmaloney) Andy Moss (MillionOstrich) Angad Kambli (angad-k) Anilforextra (AnilBK) Anish Bhobe (KidRigger) + Anish Mishra (syntaxerror247) Anni Ryynänen (anniryynanen) Anton Yabchinskiy (a12n) Anutrix Aren Villanueva (kurikaesu) Ariel Manzur (punto-) + arkology Arman Elgudzhyan (puchik) Arseny Kapoulkine (zeux) AThousandShips @@ -118,6 +122,7 @@ name is available. Fabrice Cipolla (fabriceci) Ferenc Arn (tagcup) FireForge (fire-forge) + Florent Guiocheau (Flarkk) Florian Kothmeier (Dragoncraft89) follower foxydevloper @@ -131,6 +136,7 @@ name is available. Gilles Roudiere (groud) Gordon MacPherson (RevoluPowered) Guilherme Felipe de C. G. da Silva (guilhermefelipecgs) + Guillaume Mouton (kiroxas) Hakim Rouatbi (hakro) Hanif Bin Ariffin (hbina) Haoyu Qiu (timothyqiu) @@ -181,14 +187,18 @@ name is available. Kostadin Damyanov (Max-Might) K. S. Ernest (iFire) Lee (fire) Kyle Eichlin (likeich) + Lars Pettersson (larspet) lawnjelly Leon Krause (leonkrause) Liz Haas (27thLiz) + Logan Lang (devloglogan) Lucien Menassol (Kanabenki) + Lukas Tenbrink (Ivorforce) Lyuma Maganty Rushyendra (mrushyendra) Magian (magian1127) Mai Lavelle (maiself) + Malcolm Anderson (Meorge) Malcolm Nixon (Malcolmnixon) Manuele Finocchiaro (m4nu3lf) Marcel Admiraal (madmiraal) @@ -236,6 +246,7 @@ name is available. Nathan Franke (nathanfranke) Nathan Lovato (NathanLovato) Nathan Warden (NathanWarden) + Nazarii Yablonskyi (Nazarwadim) Nicholas Huelin (SirQuartz) Nikita Lita (nikitalita) Nils André-Chang (NilsIrl) @@ -245,6 +256,7 @@ name is available. ocean (they/them) (anvilfolk) Omar El Sheikh (The-O-King) Ovnuniarchos + Pablo Andres Fuente (pafuent) Pascal Richter (ShyRed) passivestar Patrick Dawson (pkdawson) @@ -262,7 +274,7 @@ name is available. Pieter-Jan Briers (PJB3005) Poommetee Ketson (Noshyaar) Przemysław Gołąb (n-pigeon) - Radiant (RadiantUwU) + Radiant (radiantgurl) Rafael M. G. (rafallus) Rafał Mikrut (qarmin) Raffaele Picca (RPicster) @@ -282,6 +294,7 @@ name is available. Robert Yevdokimov (ryevdokimov) Robin Hübner (profan) romulox-x + Rudolph Bester (Rudolph-B) Rune Smith (rune-scape) Ruslan Mustakov (endragor) Ryan Roden-Corrent (rrcore) @@ -304,6 +317,7 @@ name is available. Swarnim Arun (minraws) TC (floppyhammer) TechnoPorg + tetrapod00 Thaddeus Crews (Repiteo) Thakee Nathees (ThakeeNathees) thebestnom @@ -313,9 +327,11 @@ name is available. Timothé Bonhoure (ajreckof) Timo (toger5) Tomasz Chabora (KoBeWi) + Travis Lange (TCROC) trollodel Twarit Waikar (IronicallySerious) Umang Kalra (theoway) + Victor Hampel (havi05) Vinzenz Feenstra (vinzenz) Vitika Soni (Vitika9) 박한얼 (volzhs) @@ -326,8 +342,10 @@ name is available. Wilson E. Alvarez (Rubonnek) Xavier Cho (mysticfall) Yaohua Xiong (xiongyaohua) + Yevhen Babiichuk (dustdfg) yg2f (SuperUserNameMan) Yordan Dolchinkov (Jordyfel) + Yufeng Ying (YYF233333) Yuri Rubinsky (Chaosus) Yuri Sizov (YuriSizov) Zae Chao (zaevi) diff --git a/engine/CHANGELOG.md b/engine/CHANGELOG.md index 9bc91738..d77d4482 100644 --- a/engine/CHANGELOG.md +++ b/engine/CHANGELOG.md @@ -7,19 +7,18 @@ previous feature release. It is equivalent to the listings on our Changelogs for earlier feature releases are available in their respective Git branches, and linked at the [end of this file](#Past-releases). -## 4.3 - 2024-08-15 +## 4.4 - 2025-03-03 -- [Release announcement](https://godotengine.org/releases/4.3/) -- [Migration guide](https://docs.godotengine.org/en/latest/tutorials/migrating/upgrading_to_godot_4.3.html) -- [Interactive changelog](https://godotengine.github.io/godot-interactive-changelog/#4.3) -- [Breaking changes](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Amerged+label%3A%22breaks+compat%22+milestone%3A4.3) +- [Release announcement](https://godotengine.org/releases/4.4/) +- [Migration guide](https://docs.godotengine.org/en/latest/tutorials/migrating/upgrading_to_godot_4.4.html) +- [Interactive changelog](https://godotengine.github.io/godot-interactive-changelog/#4.4) +- [Breaking changes](https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Amerged+label%3A%22breaks+compat%22+milestone%3A4.4) Table of contents: - [2D](#2D) - [3D](#3D) - [Animation](#Animation) -- [Assetlib](#Assetlib) - [Audio](#Audio) - [Buildsystem](#Buildsystem) - [C#](#C) @@ -31,6 +30,7 @@ Table of contents: - [GDExtension](#GDExtension) - [GDScript](#GDScript) - [GUI](#GUI) +- [I18n](#I18n) - [Import](#Import) - [Input](#Input) - [Multiplayer](#Multiplayer) @@ -48,3472 +48,2900 @@ Table of contents: #### 2D -- Add temporary pivot for rotating multiple 2D nodes ([GH-58375](https://github.com/godotengine/godot/pull/58375)). -- Reorganize some code to have 2D things grouped together ([GH-66744](https://github.com/godotengine/godot/pull/66744)). -- Add option to toggle visibility of Position gizmos in 2D editor, organize existing options ([GH-75005](https://github.com/godotengine/godot/pull/75005)). -- Changed the way the rotation of a curve at a point is evaluated to match PathFollow2D ([GH-78378](https://github.com/godotengine/godot/pull/78378)). -- Organize 2D audio, camera, and physics in Viewport ([GH-79183](https://github.com/godotengine/godot/pull/79183)). -- Extend minimum/maximum zoom level of TextureRegion editor ([GH-79436](https://github.com/godotengine/godot/pull/79436)). -- Add tooltips for tile source types ([GH-79918](https://github.com/godotengine/godot/pull/79918)). -- Add Texture2D and Texture3D icons ([GH-81169](https://github.com/godotengine/godot/pull/81169)). -- Add a button to clear curve points in the Path2D editor ([GH-81325](https://github.com/godotengine/godot/pull/81325)). -- Improve UV editor zoom behavior ([GH-83731](https://github.com/godotengine/godot/pull/83731)). -- Fix UV editor not using texture transform ([GH-84076](https://github.com/godotengine/godot/pull/84076)). -- Fix slow raycast editing ([GH-84164](https://github.com/godotengine/godot/pull/84164)). -- Add zoom controls to Sprite2DPlugin converter preview ([GH-84353](https://github.com/godotengine/godot/pull/84353)). -- Select newly added nodes on drag and drop in 2D viewport ([GH-84356](https://github.com/godotengine/godot/pull/84356)). -- Fix generating terrain icon with certain image formats ([GH-84507](https://github.com/godotengine/godot/pull/84507)). -- Move tile transforms handling cache to TileData ([GH-84660](https://github.com/godotengine/godot/pull/84660)). -- Add region rect and frames support to Sprite2DPlugin converter ([GH-84754](https://github.com/godotengine/godot/pull/84754)). -- Fix typo in TileMap editor tooltip ([GH-85452](https://github.com/godotengine/godot/pull/85452)). -- Keep scene tiles even if the TileMap is invisible ([GH-85753](https://github.com/godotengine/godot/pull/85753)). -- Move TileMapLayer to its own files ([GH-85791](https://github.com/godotengine/godot/pull/85791)). -- Add descriptions for tile properties ([GH-85868](https://github.com/godotengine/godot/pull/85868)). -- Fix TileMap occluders ([GH-85893](https://github.com/godotengine/godot/pull/85893)). -- Change suffix of SkeletonModification2DTwoBoneIK from m to px ([GH-86056](https://github.com/godotengine/godot/pull/86056)). -- Reset TileMap editor `drag_type` when the toolbar mode is not selected ([GH-86066](https://github.com/godotengine/godot/pull/86066)). -- Fix `UndoRedo history mismatch` when creating a new tile atlas ([GH-86387](https://github.com/godotengine/godot/pull/86387)). -- Fix potential infinite loop when calculating tile editor zoom level ([GH-86568](https://github.com/godotengine/godot/pull/86568)). -- Tweak tile atlas help label positions ([GH-86694](https://github.com/godotengine/godot/pull/86694)). -- Allow `ui_cancel` to unselect all nodes in all edit modes in 2D, matching 3D behavior ([GH-86805](https://github.com/godotengine/godot/pull/86805)). -- Fix `TileMap` quadrant canvas item position not being local ([GH-86847](https://github.com/godotengine/godot/pull/86847)). -- Fix 2D viewport texture drop issue with global history registration ([GH-86933](https://github.com/godotengine/godot/pull/86933)). -- Made tooltip on `TileSet` Paint Button give more information when disabled ([GH-86947](https://github.com/godotengine/godot/pull/86947)). -- Add `CanvasItem::get_canvas_layer_node()` ([GH-87095](https://github.com/godotengine/godot/pull/87095)). -- Make TileMapLayers extend Node2D and work as children of TileMap ([GH-87115](https://github.com/godotengine/godot/pull/87115)). -- Fix some `TileMap` debug drawing truncating to ints ([GH-87160](https://github.com/godotengine/godot/pull/87160)). -- Remove unnecessary `_set_global_invalid` added by mistake ([GH-87328](https://github.com/godotengine/godot/pull/87328)). -- Update the viewport if CanvasItem top level is changed ([GH-87343](https://github.com/godotengine/godot/pull/87343)). -- Change TileMapEditor to TileMapLayerEditor ([GH-87379](https://github.com/godotengine/godot/pull/87379)). -- Add new Parallax2D node ([GH-87391](https://github.com/godotengine/godot/pull/87391)). -- Editor: Fix threading problems with `TileMap` preview ([GH-87470](https://github.com/godotengine/godot/pull/87470)). -- Prevent threading problems in `TileMap` ([GH-87478](https://github.com/godotengine/godot/pull/87478)). -- Fix `Camera2D` is enabled when dragging scene files to the `CanvasItemEditor` ([GH-87743](https://github.com/godotengine/godot/pull/87743)). -- Fix `TextureRegionEditor::_pan_callback` deferred called with only one argument ([GH-87771](https://github.com/godotengine/godot/pull/87771)). -- Fix duplicating/copying `TileMap` ([GH-88105](https://github.com/godotengine/godot/pull/88105)). -- Fix `TileMap::move_layer` incorrectly moving child `TileMapLayer` nodes ([GH-88157](https://github.com/godotengine/godot/pull/88157)). -- Fix regression where a tile's custom material was ignored ([GH-88190](https://github.com/godotengine/godot/pull/88190)). -- Fix `CanvasItem`/`Node3D` editor plugin drag drop transform calculation ([GH-88279](https://github.com/godotengine/godot/pull/88279)). -- Fix TileSet sources duplication ([GH-88280](https://github.com/godotengine/godot/pull/88280)). -- Tweak TileMap editor's missing source message to use "bottom panel" term ([GH-88290](https://github.com/godotengine/godot/pull/88290)). -- Make TileMapLayers internal ([GH-88378](https://github.com/godotengine/godot/pull/88378)). -- Remember frames when selecting `SpriteFrame` frames ([GH-88413](https://github.com/godotengine/godot/pull/88413)). -- Expose pixel snapping settings add pixel-art notes ([GH-88456](https://github.com/godotengine/godot/pull/88456)). -- Fix a memory leak with TileMap runtime updates ([GH-88629](https://github.com/godotengine/godot/pull/88629)). -- Show instantiating or inherit message when using drag to instantiate in 2D ([GH-88829](https://github.com/godotengine/godot/pull/88829)). -- TileSet: Fix crash when deleting dragged polygon point ([GH-88912](https://github.com/godotengine/godot/pull/88912)). -- Remove almost all remaining dependencies of TileMapLayer on TileMap ([GH-88966](https://github.com/godotengine/godot/pull/88966)). -- Disable lock and group buttons when selected item is not CanvasItem ([GH-88997](https://github.com/godotengine/godot/pull/88997)). -- Fix editor crash when unsupported `Resource` is dropped in scene ([GH-89126](https://github.com/godotengine/godot/pull/89126)). -- Update lock and group button state when selection changed in CanvasItemEditor ([GH-89132](https://github.com/godotengine/godot/pull/89132)). -- Expose TileMapLayer ([GH-89179](https://github.com/godotengine/godot/pull/89179)). -- Make CanvasItem's "drawing outside of NOTIFICATION_DRAW" error a macro ([GH-89298](https://github.com/godotengine/godot/pull/89298)). -- Fix center view button appears outside the GenericTilePolygonEditor ([GH-89434](https://github.com/godotengine/godot/pull/89434)). -- Fix call queue problems when loading TileSet ([GH-89493](https://github.com/godotengine/godot/pull/89493)). -- Avoid passing zoom scale for ParallaxLayer mirror ([GH-89572](https://github.com/godotengine/godot/pull/89572)). -- Account for scale in scroll logic for `Parallax2D` ([GH-89627](https://github.com/godotengine/godot/pull/89627)). -- Fix Path2D's add new point's UndoRedo bug ([GH-89874](https://github.com/godotengine/godot/pull/89874)). -- TileSet: Expose `TileData.is_valid_terrain_peering_bit` ([GH-89911](https://github.com/godotengine/godot/pull/89911)). -- Replace Clipper1 library by Clipper2 library ([GH-90153](https://github.com/godotengine/godot/pull/90153)). -- Ensure `Camera2D.position_smoothing_speed` is non-negative ([GH-90167](https://github.com/godotengine/godot/pull/90167)). -- Correctly update TileMapLayer highlighting when disabling it ([GH-90204](https://github.com/godotengine/godot/pull/90204)). -- Fix "no cached rect" errors in TileMapLayer editor ([GH-90207](https://github.com/godotengine/godot/pull/90207)). -- Fix strange visual bug with camera and external change ([GH-90317](https://github.com/godotengine/godot/pull/90317)). -- TileSet: Don't save angular and linear physics velocities if they have their default values ([GH-90384](https://github.com/godotengine/godot/pull/90384)). -- Fix selection rect drawing in `TileSet` editor when create/remove tiles with separation ([GH-90709](https://github.com/godotengine/godot/pull/90709)). -- Fix rendering transform of Y-sorted branch-root ([GH-90749](https://github.com/godotengine/godot/pull/90749)). -- Fix TileMap enabling Y-sort on child nodes ([GH-90752](https://github.com/godotengine/godot/pull/90752)). -- Reuse single erase pattern in tile editor ([GH-90817](https://github.com/godotengine/godot/pull/90817)). -- Editor: Fix crash when editing TileMap ([GH-90849](https://github.com/godotengine/godot/pull/90849)). -- Don't store TileMapLayer data if empty ([GH-90907](https://github.com/godotengine/godot/pull/90907)). -- Fix typo in Camera2D node's anchor mode ([GH-91076](https://github.com/godotengine/godot/pull/91076)). -- Fix Parallax2D physics interpolation ([GH-91706](https://github.com/godotengine/godot/pull/91706)). -- Add support for AtlasTexture in `draw_polygon()` ([GH-91724](https://github.com/godotengine/godot/pull/91724)). -- Fix 2d editor selection persisting after application loses focus ([GH-91732](https://github.com/godotengine/godot/pull/91732)). -- Fix TileMap selection pattern being needlessly reorganized ([GH-91905](https://github.com/godotengine/godot/pull/91905)). -- Allow selecting TileMapLayers by clicking them ([GH-92016](https://github.com/godotengine/godot/pull/92016)). -- Fix tile polygon grid not covering whole tile ([GH-92171](https://github.com/godotengine/godot/pull/92171)). -- Remove some TileMap dependencies from TileMapLayer ([GH-92194](https://github.com/godotengine/godot/pull/92194)). -- Display custom data name instead of indices in TileData inspector ([GH-92322](https://github.com/godotengine/godot/pull/92322)). -- Fix TileSet caching wrong collision layer shapes for shapes comprising several polygons ([GH-92373](https://github.com/godotengine/godot/pull/92373)). -- Optimize usage of position icon in 2D editor ([GH-92392](https://github.com/godotengine/godot/pull/92392)). -- Fix incorrect cull boundary for scaled and repeated Parallax2D children ([GH-92763](https://github.com/godotengine/godot/pull/92763)). -- Implement X-draw-order switch in TileMapLayer ([GH-92787](https://github.com/godotengine/godot/pull/92787)). -- Make texture filtering in TileAtlasView consistent ([GH-92926](https://github.com/godotengine/godot/pull/92926)). -- Update Camera2D gizmos when screen size changes ([GH-92992](https://github.com/godotengine/godot/pull/92992)). -- Fix tile polygon editor grid and missing update ([GH-93047](https://github.com/godotengine/godot/pull/93047)). -- Allow canceling actions in Path2D editor ([GH-93087](https://github.com/godotengine/godot/pull/93087)). -- Store TileMapLayer selection in scene's history ([GH-93475](https://github.com/godotengine/godot/pull/93475)). -- Fix snapping lines don't disappearing after drag anchors ([GH-93527](https://github.com/godotengine/godot/pull/93527)). -- Fix TileSet property painter popup showing clear color ([GH-93609](https://github.com/godotengine/godot/pull/93609)). -- Prevent selecting when a CanvasItem is selected ([GH-93671](https://github.com/godotengine/godot/pull/93671)). -- Fix some TileMapLayer editing problems ([GH-93747](https://github.com/godotengine/godot/pull/93747)). -- Fix RMB erasing of tiles ([GH-93850](https://github.com/godotengine/godot/pull/93850)). -- Fix crash in tile physics editor ([GH-93971](https://github.com/godotengine/godot/pull/93971)). -- Fix crash in the TileMapLayer editor when using editable children ([GH-93974](https://github.com/godotengine/godot/pull/93974)). -- Add pixel snap for `Parallax2D` ([GH-94014](https://github.com/godotengine/godot/pull/94014)). -- Remove unused assignment in Parallax2D ([GH-94035](https://github.com/godotengine/godot/pull/94035)). -- Fixes/node configuration warning dialog text ([GH-94147](https://github.com/godotengine/godot/pull/94147)). -- Make sure that selected tile source is remembered ([GH-94356](https://github.com/godotengine/godot/pull/94356)). +- Expose `Geometry2D.bresenham_line()` method ([GH-74714](https://github.com/godotengine/godot/pull/74714)). +- Add helper methods to check for tile transforms ([GH-81973](https://github.com/godotengine/godot/pull/81973)). +- Implement multiple occlusion polygons within each TileSet occlusion layer ([GH-93029](https://github.com/godotengine/godot/pull/93029)). +- Fix pink GradientTexture2D ([GH-94744](https://github.com/godotengine/godot/pull/94744)). +- Add error checks for bad configuration in `PathFollow2D/3D` `set_progress_ratio` ([GH-94886](https://github.com/godotengine/godot/pull/94886)). +- Close expanded tile editor when inspector updates ([GH-95034](https://github.com/godotengine/godot/pull/95034)). +- Fix usage of `add_inspector_plugin()` ([GH-95249](https://github.com/godotengine/godot/pull/95249)). +- Fix snapping when zoomed in `Polygon2D` UV editor ([GH-95259](https://github.com/godotengine/godot/pull/95259)). +- Fix polygon drawing for transposed tiles in `TileSet` editor ([GH-95337](https://github.com/godotengine/godot/pull/95337)). +- Make `Polygon2D::bones` property internal ([GH-95376](https://github.com/godotengine/godot/pull/95376)). +- Tweak missing tile source message in the TileSet editor ([GH-95440](https://github.com/godotengine/godot/pull/95440)). +- Enable `SpriteFramesEditor` to "guess" the amount of rows and columns of a sprite sheet when loading it for the first time ([GH-95475](https://github.com/godotengine/godot/pull/95475)). +- Add a zoom speed setting to the 2D editor ([GH-95906](https://github.com/godotengine/godot/pull/95906)). +- Add a way to know when a TileMapLayer's cell is modified ([GH-96188](https://github.com/godotengine/godot/pull/96188)). +- Fix Path2D splitting ([GH-96237](https://github.com/godotengine/godot/pull/96237)). +- Fix TileSet Scattering setting vanishing when changing tools ([GH-96280](https://github.com/godotengine/godot/pull/96280)). +- Fix Path2D editor not updating gizmos on selection in scene tree ([GH-96404](https://github.com/godotengine/godot/pull/96404)). +- Fix Polygon2D UV editor error when opening grid settings ([GH-96411](https://github.com/godotengine/godot/pull/96411)). +- Fix polygon node losing its UV toolbar ([GH-96466](https://github.com/godotengine/godot/pull/96466)). +- Add Create Curve button to Path2D editor ([GH-96619](https://github.com/godotengine/godot/pull/96619)). +- Fix Animated Path2D doesn't update PathFollow2D progress when scene is running ([GH-96629](https://github.com/godotengine/godot/pull/96629)). +- Fix 2D editor view showing both lock/unlock, group/ungroup buttons when starting a saved project with empty scene ([GH-96681](https://github.com/godotengine/godot/pull/96681)). +- Allow opening of polygon editor without texture ([GH-96731](https://github.com/godotengine/godot/pull/96731)). +- Fix undoing "Move tiles" `TileMapLayer` action when drag/drop areas overlap ([GH-96844](https://github.com/godotengine/godot/pull/96844)). +- Fix immediate mesh modifications that don't call set_mesh ([GH-97770](https://github.com/godotengine/godot/pull/97770)). +- Restore `arc_tolerance` value when using Clipper2's `InflatePaths` ([GH-98017](https://github.com/godotengine/godot/pull/98017)). +- Fix error when undo tile deletion in TileSetAtlasSourceEditor ([GH-98293](https://github.com/godotengine/godot/pull/98293)). +- Optimize ImageLoaderSVG::create_image_from_utf8_buffer ([GH-98329](https://github.com/godotengine/godot/pull/98329)). +- Fix incorrect Transform2D docs ([GH-98442](https://github.com/godotengine/godot/pull/98442)). +- Improve `make_canvas_position_local()` description ([GH-98490](https://github.com/godotengine/godot/pull/98490)). +- Make possible to scale multiple nodes at once in the canvas editor ([GH-98534](https://github.com/godotengine/godot/pull/98534)). +- Fix duplicated Delete shortcut entries in Tiles Editor ([GH-98629](https://github.com/godotengine/godot/pull/98629)). +- Compile certain `CanvasItem._edit_*()` functions with `DEBUG_ENABLED` ([GH-98736](https://github.com/godotengine/godot/pull/98736)). +- Fix setting TileMap data compatibility format broken by #98898 ([GH-99259](https://github.com/godotengine/godot/pull/99259)). +- Enable editing of controls inside viewports in editor ([GH-99401](https://github.com/godotengine/godot/pull/99401)). +- Move UV editor to bottom dock, rename to Polygon editor ([GH-99439](https://github.com/godotengine/godot/pull/99439)). +- Fix undo redo for the texture region editor ([GH-99471](https://github.com/godotengine/godot/pull/99471)). +- Change how multi selection scale is applied to canvas item ([GH-99506](https://github.com/godotengine/godot/pull/99506)). +- Remove double `is_editor_hint()` check inside `NOTIFICATION_READY` for `Camera2D` node ([GH-99664](https://github.com/godotengine/godot/pull/99664)). +- Ensure primitive meshes are created before connected to `changed` signal ([GH-99740](https://github.com/godotengine/godot/pull/99740)). +- Disable Clear Guides menu item when no guides exist ([GH-99742](https://github.com/godotengine/godot/pull/99742)). +- Show "transparent background" texture only behind actual texture in `TexturePreview` class + add borders for readability ([GH-100569](https://github.com/godotengine/godot/pull/100569)). +- Speed up `Line2D._edit_get_rect()` ([GH-101082](https://github.com/godotengine/godot/pull/101082)). +- Fix converting root Sprite2D ([GH-101087](https://github.com/godotengine/godot/pull/101087)). +- Don't print error when updating terrains tree without layer ([GH-101096](https://github.com/godotengine/godot/pull/101096)). +- Don't show "Drawing rect" when not actually drawing ([GH-101098](https://github.com/godotengine/godot/pull/101098)). +- Add `has_custom_data()` to TileData ([GH-101488](https://github.com/godotengine/godot/pull/101488)). +- Add property guards to shape 2D's ([GH-101747](https://github.com/godotengine/godot/pull/101747)). +- Fix editor `Parallax2D` grid snap movement ([GH-101808](https://github.com/godotengine/godot/pull/101808)). +- Remove Parallax2D's experimental flag ([GH-101983](https://github.com/godotengine/godot/pull/101983)). +- Editor: Fix node selection within SubViewports using size 2d override ([GH-102390](https://github.com/godotengine/godot/pull/102390)). +- Fix multiple issues with 'add alternative tile' tileset editor button ([GH-102640](https://github.com/godotengine/godot/pull/102640)). +- Fix TileMapLayer bug where dirty cells could be marked twice ([GH-102688](https://github.com/godotengine/godot/pull/102688)). +- Prevent errors when Line2D has 0 length ([GH-102778](https://github.com/godotengine/godot/pull/102778)). +- Sprite2D: Use correct name to hide `region_filter_clip_enabled` ([GH-102790](https://github.com/godotengine/godot/pull/102790)). +- Fix `Camera2D` limits drawing ([GH-102868](https://github.com/godotengine/godot/pull/102868)). +- Fix Line2D not rendering anything when total length is not computed ([GH-102870](https://github.com/godotengine/godot/pull/102870)). #### 3D -- Fix PathFollow3D update issues ([GH-80233](https://github.com/godotengine/godot/pull/80233)). -- Make ShaderMaterial always the last option in inspector resource dropdowns ([GH-81996](https://github.com/godotengine/godot/pull/81996)). -- Prompt require editor restart to user when gizmo color changed ([GH-82872](https://github.com/godotengine/godot/pull/82872)). -- Reduce minimum capsule/cylinder mesh rings to 0 ([GH-82887](https://github.com/godotengine/godot/pull/82887)). -- Expose 3D Delaunay tetrahedralization in `Geometry3D` ([GH-83353](https://github.com/godotengine/godot/pull/83353)). -- Improve Curve3D debug drawing ([GH-83698](https://github.com/godotengine/godot/pull/83698)). -- Optimize Path3DGizmo mesh generation ([GH-83741](https://github.com/godotengine/godot/pull/83741)). -- Use screen-aligned quads for origin lines to avoid issues on NVidia ([GH-83895](https://github.com/godotengine/godot/pull/83895)). -- Select newly added nodes on drag and drop in 3D viewport ([GH-84347](https://github.com/godotengine/godot/pull/84347)). -- Fix material drag and drop ([GH-84486](https://github.com/godotengine/godot/pull/84486)). -- Fix `Node3D` children using `top_level` in different position in-editor versus runtime ([GH-84643](https://github.com/godotengine/godot/pull/84643)). -- Only allow MeshInstance3D-inherited nodes in MultiMesh Populate Surface dialog ([GH-84933](https://github.com/godotengine/godot/pull/84933)). -- Notify CSGPolygon about transform changes in Path3D ([GH-85455](https://github.com/godotengine/godot/pull/85455)). -- Prevent `Camera3D.current` from being set to `true` automatically in the editor ([GH-85594](https://github.com/godotengine/godot/pull/85594)). -- Add static body creation equivalent for all collision shape sibling creations ([GH-86627](https://github.com/godotengine/godot/pull/86627)). -- Clarify the FOV setting in the 3D editor camera is vertical FOV ([GH-86690](https://github.com/godotengine/godot/pull/86690)). -- Fix AABB Ray intersection - return inside ([GH-86755](https://github.com/godotengine/godot/pull/86755)). -- Prevent division by 0 when creating vertices of a PrismMesh ([GH-86931](https://github.com/godotengine/godot/pull/86931)). -- Use SceneStringNames in Skeleton3DEditorPlugin ([GH-87048](https://github.com/godotengine/godot/pull/87048)). -- Fix position and basis of 3D Scenes instantiated via drag and drop ([GH-87126](https://github.com/godotengine/godot/pull/87126)). -- Properly change GridMap floors while selecting ([GH-87131](https://github.com/godotengine/godot/pull/87131)). -- Do not commit transforms and handles if no changes were made ([GH-87161](https://github.com/godotengine/godot/pull/87161)). -- Rename camera `near` and `far` private members to avoid conflict with `Windows.h` defines ([GH-87164](https://github.com/godotengine/godot/pull/87164)). -- Show warning for GeometryInstance3D transparency in Mobile/Compatibility ([GH-87231](https://github.com/godotengine/godot/pull/87231)). -- Make viewport message dependent on framerate not physics step ([GH-87631](https://github.com/godotengine/godot/pull/87631)). -- Fix a regression that breaks gizmo transforming when 'View Gizmos' is off ([GH-87769](https://github.com/godotengine/godot/pull/87769)). -- Use subgizmos for Path3D position editing and declutter the UI ([GH-87901](https://github.com/godotengine/godot/pull/87901)). -- Fix a regression when multiple nodes are selected and drag transform is attempted w/o gizmo ([GH-87922](https://github.com/godotengine/godot/pull/87922)). -- Fix new region select with selection when over geometry ([GH-87948](https://github.com/godotengine/godot/pull/87948)). -- Show modifier key functionality on all the editor tools ([GH-87989](https://github.com/godotengine/godot/pull/87989)). -- Add ability to hide grid per viewport ([GH-88584](https://github.com/godotengine/godot/pull/88584)). -- Fix 3D editor project settings update ([GH-88645](https://github.com/godotengine/godot/pull/88645)). -- Show instantiating message with position when using to drag to instantiate in 3D ([GH-88774](https://github.com/godotengine/godot/pull/88774)). -- Include tangent in SurfaceTool vertex compare operator ([GH-88890](https://github.com/godotengine/godot/pull/88890)). -- Don't access Node3D/Node2D/Control global transform in `reparent` unless needed ([GH-89003](https://github.com/godotengine/godot/pull/89003)). -- Make `Label3D` obey auto translation ([GH-89056](https://github.com/godotengine/godot/pull/89056)). -- Expose PrimitiveMesh's `request_update` method ([GH-89170](https://github.com/godotengine/godot/pull/89170)). -- Match #89126 for 3D: check for `Resource` type instead of extension ([GH-89177](https://github.com/godotengine/godot/pull/89177)). -- Use 3D editor gizmo helper for FogVolume to allow dragging individual faces ([GH-89320](https://github.com/godotengine/godot/pull/89320)). -- GLTF export: Remove snapping and fix validation ([GH-89352](https://github.com/godotengine/godot/pull/89352)). -- GLTF export: Use sparse accessors for morph targets ([GH-89356](https://github.com/godotengine/godot/pull/89356)). -- Disable all 3D nodes, physics, and resources when compiling without 3D ([GH-89381](https://github.com/godotengine/godot/pull/89381)). -- Add Gizmo to display 3D custom AABB ([GH-89538](https://github.com/godotengine/godot/pull/89538)). -- UX and stability improvements for `Path3D` node ([GH-89847](https://github.com/godotengine/godot/pull/89847)). -- Fix Path3D picking working incorrectly when viewport is in half resolution ([GH-89901](https://github.com/godotengine/godot/pull/89901)). -- Support "clear points" function in Path3D topmenu bar ([GH-89933](https://github.com/godotengine/godot/pull/89933)). -- Allow wrapping for begin rotate transformation to bring it in line with Blender ([GH-90098](https://github.com/godotengine/godot/pull/90098)). -- Allow drag and dropping ShaderMaterial in 3D viewport ([GH-90102](https://github.com/godotengine/godot/pull/90102)). -- Fix gizmo on top material option having no effect ([GH-90183](https://github.com/godotengine/godot/pull/90183)). -- Fix 3d axes flickering in the negative direction when extremely zoomed out ([GH-90255](https://github.com/godotengine/godot/pull/90255)). -- Fix `Node3D.set_global_rotation()` resetting node scale ([GH-90584](https://github.com/godotengine/godot/pull/90584)). -- Fix `RayCast3D`'s debug draw transform not updating ([GH-90800](https://github.com/godotengine/godot/pull/90800)). -- Expose `create_from_arrays` in SurfaceTool and cleanup some naming ([GH-90834](https://github.com/godotengine/godot/pull/90834)). -- Subscribe to correct tracker signals ([GH-91031](https://github.com/godotengine/godot/pull/91031)). -- Fix `Path3D` tilt gizmo raycasting against local plane ([GH-91109](https://github.com/godotengine/godot/pull/91109)). -- Simplify the GPUParticles3D editor gizmo to improve readability ([GH-91226](https://github.com/godotengine/godot/pull/91226)). -- Add MultiNodeEdit support to MeshInstance3D editor ([GH-91620](https://github.com/godotengine/godot/pull/91620)). -- Disallow selection of ownerless nodes ([GH-92188](https://github.com/godotengine/godot/pull/92188)). -- Fix bounding box glitch ([GH-92275](https://github.com/godotengine/godot/pull/92275)). -- Fix null `debug_shape` being updated when `CollisionObject3D`'s transform changed ([GH-92302](https://github.com/godotengine/godot/pull/92302)). -- Make CSG shape dirty after changing Snap ([GH-93242](https://github.com/godotengine/godot/pull/93242)). -- Improve `SurfaceTool::generate_tangents` UV error message ([GH-93326](https://github.com/godotengine/godot/pull/93326)). -- Fix invalid inheritance of `OccluderInstance3D` ([GH-93354](https://github.com/godotengine/godot/pull/93354)). -- Fix Subviewport keeps using removed Camera3D child ([GH-93377](https://github.com/godotengine/godot/pull/93377)). -- Fix crash in Node3DEditorViewport selecting on empty scene ([GH-93404](https://github.com/godotengine/godot/pull/93404)). -- Improve viewport rotation gizmo drawing ([GH-93639](https://github.com/godotengine/godot/pull/93639)). -- Add alternative shortcut for Align Transform to View in the 3D editor ([GH-93675](https://github.com/godotengine/godot/pull/93675)). -- Fix "selectable nodes at position clicked" feature in 3D editor ([GH-94387](https://github.com/godotengine/godot/pull/94387)). +- Add `ArrayMesh::surface_remove` ([GH-76371](https://github.com/godotengine/godot/pull/76371)). +- Add 3D translation sensitivity to Editor Settings ([GH-81714](https://github.com/godotengine/godot/pull/81714)). +- Improve display for lightmap probes in the editor ([GH-83863](https://github.com/godotengine/godot/pull/83863)). +- Ignore locked nodes when click selecting in 3d editor ([GH-84831](https://github.com/godotengine/godot/pull/84831)). +- Add option to bake a mesh from animated skeleton pose ([GH-85018](https://github.com/godotengine/godot/pull/85018)). +- Add ShadowCastingSetting to MeshLibrary / GridMap items ([GH-85443](https://github.com/godotengine/godot/pull/85443)). +- Add `closed` property to `Curve3D` ([GH-86195](https://github.com/godotengine/godot/pull/86195)). +- Fix CSGShape3D's `_mesh_changed` to be thread safe ([GH-86538](https://github.com/godotengine/godot/pull/86538)). +- Fix `CSGShape3D` debug collision shapes being visible in editor ([GH-86699](https://github.com/godotengine/godot/pull/86699)). +- Clear drag preview material on `NOTIFICATION_DRAG_END` ([GH-87135](https://github.com/godotengine/godot/pull/87135)). +- Add ability to hide editor transform gizmo ([GH-87793](https://github.com/godotengine/godot/pull/87793)). +- Offset drag instantiated scenes that result in a collision by its bounds to mitigate overlap ([GH-88511](https://github.com/godotengine/godot/pull/88511)). +- Add CollisionShape3D custom debug colors ([GH-90644](https://github.com/godotengine/godot/pull/90644)). +- Adjust orthographic camera gizmo with respect to `keep_aspect` setting ([GH-90690](https://github.com/godotengine/godot/pull/90690)). +- Add Camera3D preview in Inspector ([GH-90778](https://github.com/godotengine/godot/pull/90778)). +- Optimize Editor `_init_grid()` ([GH-92734](https://github.com/godotengine/godot/pull/92734)). +- Add CSG options to bake to static mesh and collision shape ([GH-93252](https://github.com/godotengine/godot/pull/93252)). +- Allow tool scripts to alter transform of Node3DEditorViewport camera ([GH-93503](https://github.com/godotengine/godot/pull/93503)). +- Make viewport grid visible on all three planes in orthogonal camera view ([GH-93869](https://github.com/godotengine/godot/pull/93869)). +- Fix mesh corruption of CSG by using elalish/manifold ([GH-94321](https://github.com/godotengine/godot/pull/94321)). +- Add flag to enable use of accurate path tangents for polygon rotation in `CSGPolygon3D` ([GH-94479](https://github.com/godotengine/godot/pull/94479)). +- Fix gizmos without visible geometry not being selectable ([GH-94553](https://github.com/godotengine/godot/pull/94553)). +- Improve time to close scene with many 3D gizmos ([GH-94698](https://github.com/godotengine/godot/pull/94698)). +- Make primitive meshes react to texel size change ([GH-94726](https://github.com/godotengine/godot/pull/94726)). +- Fix Pressing Escape doesn't exit freelook in the 3D editor ([GH-95154](https://github.com/godotengine/godot/pull/95154)). +- Fix copy-paste and cut-paste in GridMap ([GH-95322](https://github.com/godotengine/godot/pull/95322)). +- Correct rotation gizmo plane math for off-center perspective view ([GH-95402](https://github.com/godotengine/godot/pull/95402)). +- Fix crash by ensuring selected node is a descendant of the edited scene ([GH-95420](https://github.com/godotengine/godot/pull/95420)). +- Fix incorrect warning on SkeletonModifier ([GH-95548](https://github.com/godotengine/godot/pull/95548)). +- Remember "View Grid" (per-viewport) setting between editor sessions ([GH-95874](https://github.com/godotengine/godot/pull/95874)). +- PathFollow3D update transform immediately by default ([GH-96140](https://github.com/godotengine/godot/pull/96140)). +- Fix crash when selecting ownerless 3D node ([GH-96199](https://github.com/godotengine/godot/pull/96199)). +- Fix instant transformations not being committed when used in succession ([GH-96530](https://github.com/godotengine/godot/pull/96530)). +- Cleanup Path3D editor ([GH-96651](https://github.com/godotengine/godot/pull/96651)). +- Use `thread_local` for `bones_backup` ([GH-96713](https://github.com/godotengine/godot/pull/96713)). +- Fix issue where editable children of 3D nodes would be selected ([GH-96765](https://github.com/godotengine/godot/pull/96765)). +- Hide white circle outline during instant transformations ([GH-96766](https://github.com/godotengine/godot/pull/96766)). +- Move GridMapEditor to bottom panel ([GH-96922](https://github.com/godotengine/godot/pull/96922)). +- Add quad mesh to material preview ([GH-97030](https://github.com/godotengine/godot/pull/97030)). +- Remove redundant `_3D_DISABLED` check from csg module ([GH-97479](https://github.com/godotengine/godot/pull/97479)). +- Editor: Improve cylinder gizmos ([GH-97535](https://github.com/godotengine/godot/pull/97535)). +- Improve global bone pose calculation in `Skeleton3D` ([GH-97538](https://github.com/godotengine/godot/pull/97538)). +- Improve UI of sun angle in the sun/preview env popup ([GH-97747](https://github.com/godotengine/godot/pull/97747)). +- Improve "No meshes to bake" LightmapGI error dialog in the editor ([GH-98297](https://github.com/godotengine/godot/pull/98297)). +- Fix `Camera3D::project_position()` when `depth == zfar` ([GH-98489](https://github.com/godotengine/godot/pull/98489)). +- Fix normals of very large `SphereMesh` and `CapsuleMesh` ([GH-98610](https://github.com/godotengine/godot/pull/98610)). +- Improve Mesh UV1/UV2 preview in the editor ([GH-98716](https://github.com/godotengine/godot/pull/98716)). +- Fix wrong checked menu item in 3D editor ([GH-98911](https://github.com/godotengine/godot/pull/98911)). +- Fix Gridmap shortcut conflicts with 3d editor ([GH-99170](https://github.com/godotengine/godot/pull/99170)). +- GridMap: Fix hidden gizmo at start-up ([GH-99354](https://github.com/godotengine/godot/pull/99354)). +- Update gridmap editor nodes when the gridmap node transform changes ([GH-99393](https://github.com/godotengine/godot/pull/99393)). +- Expose GridMapEditorPlugin to scripts and add methods to manipulate to the selection and selected palette item ([GH-99639](https://github.com/godotengine/godot/pull/99639)). +- Clean up UI of ReflectionProbe ([GH-99920](https://github.com/godotengine/godot/pull/99920)). +- Print better manifold errors and avoid crash on non manifold csg input ([GH-99959](https://github.com/godotengine/godot/pull/99959)). +- Adjust VoxelGI gizmo opacity ([GH-99969](https://github.com/godotengine/godot/pull/99969)). +- Allow Viewport children to lock, group, and insert keyframes ([GH-99994](https://github.com/godotengine/godot/pull/99994)). +- Mend gaps in meshes caused by trigonometric funcs ([GH-100020](https://github.com/godotengine/godot/pull/100020)). +- Enable Emulate Numpad by default in the 3D editor settings ([GH-100059](https://github.com/godotengine/godot/pull/100059)). +- Add ruler mode to 3D ([GH-100162](https://github.com/godotengine/godot/pull/100162)). +- Fix 3D editor snap setting values not being displayed correctly ([GH-100306](https://github.com/godotengine/godot/pull/100306)). +- Fix 3D CSG not reacting to child node order changes ([GH-100340](https://github.com/godotengine/godot/pull/100340)). +- Push some warnings for CSG non manifold and other errors ([GH-100361](https://github.com/godotengine/godot/pull/100361)). +- Remove solid boxes in gizmos of VoxelGI and ReflectionProbe ([GH-100370](https://github.com/godotengine/godot/pull/100370)). +- Fix errors when undoing collision generation for multiple meshes with different parents ([GH-100500](https://github.com/godotengine/godot/pull/100500)). +- Update the warnings for CSGShape3D ([GH-100526](https://github.com/godotengine/godot/pull/100526)). +- Fix crash when duplicating `Decal` or `Light3D` nodes ([GH-100632](https://github.com/godotengine/godot/pull/100632)). +- Follow-up of `ArrayMesh::surface_remove` addition ([GH-100643](https://github.com/godotengine/godot/pull/100643)). +- Fix 3D camera override when there is no camera in scene tree ([GH-100698](https://github.com/godotengine/godot/pull/100698)). +- Remove unused editor setting `editors/grid_map/editor_side` ([GH-100702](https://github.com/godotengine/godot/pull/100702)). +- Fix gaps in CSGPolygon3D spin mode at 360 degrees ([GH-100826](https://github.com/godotengine/godot/pull/100826)). +- Add an editor setting for the GridMap grid color ([GH-101101](https://github.com/godotengine/godot/pull/101101)). +- Make the GridMap editor cursor translucent ([GH-101103](https://github.com/godotengine/godot/pull/101103)). +- LightmapGI: Including `modules_enabled.gen.h` to properly check the configuration warning ([GH-101323](https://github.com/godotengine/godot/pull/101323)). +- Add ability to cancel rotation from viewport rotation gizmo ([GH-101369](https://github.com/godotengine/godot/pull/101369)). +- Make GridMap editor Preview Size setting take effect immediately after change ([GH-101455](https://github.com/godotengine/godot/pull/101455)). +- Fix SceneTreeDock::_new_scene_from()'s reset_scale in 3D ([GH-101943](https://github.com/godotengine/godot/pull/101943)). +- Fix visible viewport gizmos when preview camera is enabled on startup ([GH-102014](https://github.com/godotengine/godot/pull/102014)). +- Fix collision reposition with `CSGShape3D` ([GH-102286](https://github.com/godotengine/godot/pull/102286)). +- Physics Interpolation - Fix client interpolation pump ([GH-102653](https://github.com/godotengine/godot/pull/102653)). +- Add changeable freelook speed in Game Window ([GH-102704](https://github.com/godotengine/godot/pull/102704)). +- Fix stale VoxelGI warnings ([GH-102843](https://github.com/godotengine/godot/pull/102843)). #### Animation -- Autocomplete properties in `tween_property` ([GH-76591](https://github.com/godotengine/godot/pull/76591)). -- Add useful functions to `FilterEdit` in `AnimationBlendTreeEditor` ([GH-76654](https://github.com/godotengine/godot/pull/76654)). -- Simplify right-click track insertion code ([GH-80860](https://github.com/godotengine/godot/pull/80860)). -- Fix reset value when adding new Bezier track ([GH-82012](https://github.com/godotengine/godot/pull/82012)). -- Add `set_custom_interpolator()` to PropertyTweener ([GH-82306](https://github.com/godotengine/godot/pull/82306)). -- Refactor function `calculate_length_and_rotation()` from Skeleton2D ([GH-83397](https://github.com/godotengine/godot/pull/83397)). -- Fix setting bezier track handle mode from inspector ([GH-83533](https://github.com/godotengine/godot/pull/83533)). -- Make AnimationPlayerEditor read-only edit rules more permissive ([GH-84268](https://github.com/godotengine/godot/pull/84268)). -- Fix errors and warnings when loading Skeleton2D Modifications ([GH-84474](https://github.com/godotengine/godot/pull/84474)). -- Make AnimationTree reference AnimationPlayer instead of AnimationMixer ([GH-84583](https://github.com/godotengine/godot/pull/84583)). -- Replace memory allocation point of ValueTrack correctly in AnimationMixer ([GH-85001](https://github.com/godotengine/godot/pull/85001)). -- Fix imported track flag on sliced animations ([GH-85061](https://github.com/godotengine/godot/pull/85061)). -- Improve usability of zooming in the animation editor ([GH-85142](https://github.com/godotengine/godot/pull/85142)). -- Fix custom type icon sizes in animation tracks ([GH-85367](https://github.com/godotengine/godot/pull/85367)). -- Prevent a crash when calling `AnimationMixer::restore` with an invalid resource ([GH-85428](https://github.com/godotengine/godot/pull/85428)). -- Add multi-selection for `SpriteFramesEditor` ([GH-85494](https://github.com/godotengine/godot/pull/85494)). -- Copy track update mode when adding reset key ([GH-85540](https://github.com/godotengine/godot/pull/85540)). -- Fix AnimationPlayer seeking for Discrete keys ([GH-85569](https://github.com/godotengine/godot/pull/85569)). -- Make unstore AnimationLibrary if AnimationTree is assigned AnimationPlayer ([GH-85575](https://github.com/godotengine/godot/pull/85575)). -- Fix Tween loop initial value ([GH-85681](https://github.com/godotengine/godot/pull/85681)). -- Remove differences of the code between old AnimationTree and AnimationMixer ([GH-85794](https://github.com/godotengine/godot/pull/85794)). -- Fix linear interpolation not working with mixed (int/float) keyframes ([GH-86046](https://github.com/godotengine/godot/pull/86046)). -- Fix animated tile random start time not scaled to animation duration ([GH-86210](https://github.com/godotengine/godot/pull/86210)). -- Make default `blend_left` consider current blend amount ([GH-86221](https://github.com/godotengine/godot/pull/86221)). -- Fix discrete key retrieval method after start ([GH-86227](https://github.com/godotengine/godot/pull/86227)). -- Fix `blend_node` crash with invalid AnimationNode reference ([GH-86321](https://github.com/godotengine/godot/pull/86321)). -- Add `cubic_interpolate_in_time_variant()` to Animation ([GH-86601](https://github.com/godotengine/godot/pull/86601)). -- Add some options to Project Settings to silence warnings in AnimationMixer caching ([GH-86608](https://github.com/godotengine/godot/pull/86608)). -- Add a `CallbackModeDiscrete` property to `AnimationMixer` to handle the case of blending Continuous and Discrete tracks ([GH-86629](https://github.com/godotengine/godot/pull/86629)). -- Make default options of int value track refer to RESET animation ([GH-86630](https://github.com/godotengine/godot/pull/86630)). -- Fix some animation state corruptions on activate and reset on save ([GH-86644](https://github.com/godotengine/godot/pull/86644)). -- Fix invalid 3-to-4 renames of `add_animation` to `add_animation_library` ([GH-86647](https://github.com/godotengine/godot/pull/86647)). -- Make the retrieval of audio tracks consistent and implement trimming to AnimationTrackEditor shortcut and clean-up ([GH-86661](https://github.com/godotengine/godot/pull/86661)). -- Fix TrackCache conflict when tracks have same name but different type ([GH-86687](https://github.com/godotengine/godot/pull/86687)). -- Add `AnimationMixer::capture()` and `AnimationPlayer::play_with_capture()` as substitute of update mode capture ([GH-86715](https://github.com/godotengine/godot/pull/86715)). -- Add autocompletion options for AnimatedSprite's other play methods ([GH-86733](https://github.com/godotengine/godot/pull/86733)). -- Add icon, tooltip, rename button in AnimationLibraryEditor for clarity ([GH-86736](https://github.com/godotengine/godot/pull/86736)). -- Add autocompletion for SpriteFrames' methods ([GH-86754](https://github.com/godotengine/godot/pull/86754)). -- Add autocompletion for AnimationLibrary & AnimationMixer's methods ([GH-86799](https://github.com/godotengine/godot/pull/86799)). -- Copy InterpolationType / LoopMode for all track & UseBlend option for audio when adding reset keys ([GH-86867](https://github.com/godotengine/godot/pull/86867)). -- Add Autocompletion for AnimationNodeStateMachine & AnimationNodeBlendTree ([GH-86884](https://github.com/godotengine/godot/pull/86884)). -- Add autocompletion to AnimationNode ([GH-86888](https://github.com/godotengine/godot/pull/86888)). -- Skeleton3D: Convert 3.x skeletons ([GH-87050](https://github.com/godotengine/godot/pull/87050)). -- Add auto fit timeline and bezier scale on animation editor ([GH-87078](https://github.com/godotengine/godot/pull/87078)). -- Rework AnimationNode process for retrieving the semantic time info ([GH-87171](https://github.com/godotengine/godot/pull/87171)). -- Implement consistent functionality for select, copy, paste, and duplicate in AnimationPlayer ([GH-87250](https://github.com/godotengine/godot/pull/87250)). -- Fix passing int to tween's `from` with float property will be forced to interpolate as int ([GH-87459](https://github.com/godotengine/godot/pull/87459)). -- Allow `Node.create_tween()` outside SceneTree ([GH-87701](https://github.com/godotengine/godot/pull/87701)). -- Fix cubic interpolation wrong argument for the time ([GH-87772](https://github.com/godotengine/godot/pull/87772)). -- Fix quaternion keyframe optimization for collinear rotation over 180 degrees ([GH-87817](https://github.com/godotengine/godot/pull/87817)). -- Fix vertical zoom factor in Animation Bezier Editor ([GH-87857](https://github.com/godotengine/godot/pull/87857)). -- Fix unintentional translations in AnimationTree ([GH-87887](https://github.com/godotengine/godot/pull/87887)). -- Implement a base class `SkeletonModifier3D` as refactoring for nodes that may modify `Skeleton3D` ([GH-87888](https://github.com/godotengine/godot/pull/87888)). -- Fix converted 3.x `Skeleton3D` missing pose ([GH-88009](https://github.com/godotengine/godot/pull/88009)). -- Fix wrongly named compat binding ([GH-88110](https://github.com/godotengine/godot/pull/88110)). -- Improve AnimationMixer warnings ([GH-88247](https://github.com/godotengine/godot/pull/88247)). -- Remove unused signals in AnimationBezierTrackEdit ([GH-88302](https://github.com/godotengine/godot/pull/88302)). -- Implement Cut Selected Keys in AnimationPlayer ([GH-88350](https://github.com/godotengine/godot/pull/88350)). -- Fix Bezier Editor HandleMode UndoRedo History mismatch ([GH-88352](https://github.com/godotengine/godot/pull/88352)). -- Fix Bezier Editor throwing error when adding key with Ctrl+Click ([GH-88360](https://github.com/godotengine/godot/pull/88360)). -- Fix various bugs in Animation key right click actions ([GH-88445](https://github.com/godotengine/godot/pull/88445)). -- Fix crash with animation audio track offset ([GH-88446](https://github.com/godotengine/godot/pull/88446)). -- Fix Animation Bezier Editor key selection bugs ([GH-88459](https://github.com/godotengine/godot/pull/88459)). -- Fix some conditions for BezierTrack to distinguish between ValueTrack ([GH-88488](https://github.com/godotengine/godot/pull/88488)). -- Make `ANIMATION_CALLBACK_MODE_DISCRETE_DOMINANT` be default for AnimationPlayer ([GH-88492](https://github.com/godotengine/godot/pull/88492)). -- Fix snapping multiple keys in Animation ([GH-88498](https://github.com/godotengine/godot/pull/88498)). -- Fix AnimationMixer breaking animations with redundant check ([GH-88557](https://github.com/godotengine/godot/pull/88557)). -- Force non-numeric ValueTrack to use Discrete with Dominant ([GH-88661](https://github.com/godotengine/godot/pull/88661)). -- Make `Skeleton3D::add_bone` return the new bone index ([GH-88791](https://github.com/godotengine/godot/pull/88791)). -- Add new scene import option to import as Skeleton ([GH-88819](https://github.com/godotengine/godot/pull/88819)). -- Retargeting option to use a template for silhouette ([GH-88824](https://github.com/godotengine/godot/pull/88824)). -- Improvements to `Tween` memory management ([GH-88856](https://github.com/godotengine/godot/pull/88856)). -- Fix `BoneAttachment3D` responding to only local transform changes ([GH-88884](https://github.com/godotengine/godot/pull/88884)). -- Fix animation player error dialog focus ([GH-88926](https://github.com/godotengine/godot/pull/88926)). -- Fix wrong line of making flag to discrete in AnimationMixer ([GH-89329](https://github.com/godotengine/godot/pull/89329)). -- Make AnimationMixer consider Discrete for RESET track ([GH-89389](https://github.com/godotengine/godot/pull/89389)). -- Move the line of infinity loop checking in AnimationStateMachine ([GH-89575](https://github.com/godotengine/godot/pull/89575)). -- Add option to import skeleton rest as RESET animation ([GH-89629](https://github.com/godotengine/godot/pull/89629)). -- Fix AnimationPlayer pin behavior ([GH-89732](https://github.com/godotengine/godot/pull/89732)). -- Fix SpriteFrames editor visibility problems ([GH-89754](https://github.com/godotengine/godot/pull/89754)). -- Fix AnimationPlaybackTrack seeking behavior overall ([GH-89794](https://github.com/godotengine/godot/pull/89794)). -- Expose `SkeletonProfile.set/is_required` ([GH-89970](https://github.com/godotengine/godot/pull/89970)). -- Fix setting animation save paths on import breaking on Windows ([GH-90003](https://github.com/godotengine/godot/pull/90003)). -- Fix loop condition in bone mapping ([GH-90019](https://github.com/godotengine/godot/pull/90019)). -- Add tips detection to auto mapping in bone mapper ([GH-90050](https://github.com/godotengine/godot/pull/90050)). -- Apply "Remove Immutable Tracks" after post-import ([GH-90064](https://github.com/godotengine/godot/pull/90064)). -- Remove unavailable property binding `reset_on_save` from Skeleton3D ([GH-90231](https://github.com/godotengine/godot/pull/90231)). -- Fix Skeleton3D build error with `deprecated=no` ([GH-90308](https://github.com/godotengine/godot/pull/90308)). -- Separate value/bezier track caching process in AnimationMixer ([GH-90438](https://github.com/godotengine/godot/pull/90438)). -- Static allocation bones copy for SkeletonModifier ([GH-90517](https://github.com/godotengine/godot/pull/90517)). -- Remove `bone_pose_updated` signal and replace it with the `skeleton_updated` signal ([GH-90575](https://github.com/godotengine/godot/pull/90575)). -- Add SkeletonIK3D `get`/`set_interpolation` compat from #87888 ([GH-90780](https://github.com/godotengine/godot/pull/90780)). -- Set animation step from importers. Increase default step from 10 to 30FPS ([GH-90894](https://github.com/godotengine/godot/pull/90894)). -- Make seeking animation playback track consider internal seeking ([GH-90960](https://github.com/godotengine/godot/pull/90960)). -- Modify allocation process of the PhysicalBoneSimulator in Skeleton3D ([GH-91122](https://github.com/godotengine/godot/pull/91122)). -- Make adding track process to set interpolation type on creating RESET ([GH-91237](https://github.com/godotengine/godot/pull/91237)). -- Make activating on ready in AnimationPlayer respect the property value ([GH-91242](https://github.com/godotengine/godot/pull/91242)). -- Add `auto_capture` option to AnimationPlayer ([GH-91437](https://github.com/godotengine/godot/pull/91437)). -- Add argument options to AnimationPlayer for auto capture ([GH-91481](https://github.com/godotengine/godot/pull/91481)). -- Avoid incorrect computing anchor of Control node when reset on save with `saving` flag ([GH-91495](https://github.com/godotengine/godot/pull/91495)). -- Allow users to override `SkeletonModifier3D._process_modification` ([GH-91507](https://github.com/godotengine/godot/pull/91507)). -- Editor: Don't open `AnimationLibrary` as a scene ([GH-91522](https://github.com/godotengine/godot/pull/91522)). -- Make retarget keep global rest of unmapped bones if there are no mapped bones on the child ([GH-91560](https://github.com/godotengine/godot/pull/91560)). -- Make silhouette fixer option visibility dependent on availability ([GH-91641](https://github.com/godotengine/godot/pull/91641)). -- Invert start offset on AnimationNode custom timeline ([GH-91822](https://github.com/godotengine/godot/pull/91822)). -- Fix errors on pressing autoplay in sprite frames editor ([GH-91830](https://github.com/godotengine/godot/pull/91830)). -- Fix wrong usage of `parameters_base_path` StringName ([GH-91944](https://github.com/godotengine/godot/pull/91944)). -- Skeleton rest fixer: Apply orthonormalized scale to anims ([GH-92012](https://github.com/godotengine/godot/pull/92012)). -- Fix Deterministic blending with Dominant/Recessive doesn't have initial value even if there is no Discrete track ([GH-92126](https://github.com/godotengine/godot/pull/92126)). -- Replace List with LocalVector on Skeleton3D's bone transform update ([GH-92164](https://github.com/godotengine/godot/pull/92164)). -- Support Import As Skeleton Bones on glTF and AnimationLibrary import ([GH-92196](https://github.com/godotengine/godot/pull/92196)). -- Fix mesh instance not updated when changing blend shape values ([GH-92244](https://github.com/godotengine/godot/pull/92244)). -- Add `bake_fps` for FBXDocument, GLTFDocument and both import-export ([GH-92284](https://github.com/godotengine/godot/pull/92284)). -- Fix animation player controls being enabled when no player is selected ([GH-92473](https://github.com/godotengine/godot/pull/92473)). -- Fix error after create a new animation in an empty AnimationPlayer ([GH-92495](https://github.com/godotengine/godot/pull/92495)). -- Add blend point check to `AnimationNodeBlendSpace2D::_process()` ([GH-92636](https://github.com/godotengine/godot/pull/92636)). -- Fix unstable AnimationTrackEditor snapping value ([GH-92670](https://github.com/godotengine/godot/pull/92670)). -- Fix BlendSpace2D sync flagging line ([GH-92739](https://github.com/godotengine/godot/pull/92739)). -- Fix shader for SkeletonGizmo to follow renderer's reversed-z change ([GH-92774](https://github.com/godotengine/godot/pull/92774)). -- Fix seeking Animation immediately after playback for Discrete track ([GH-92861](https://github.com/godotengine/godot/pull/92861)). -- Don't allow creating invalid RESET keys ([GH-92870](https://github.com/godotengine/godot/pull/92870)). -- Expose `get_skeleton()` from `SkeletonModifier3D` ([GH-92896](https://github.com/godotengine/godot/pull/92896)). -- Add `get_concatenated_bone_names()` to `Skeleton3D` for `SkeletonModifier3D`'s enum hints ([GH-92925](https://github.com/godotengine/godot/pull/92925)). -- Fix unbound child bones of the PhysicalBone aren't modified ([GH-92931](https://github.com/godotengine/godot/pull/92931)). -- Restore "Confirm Insert Track" editor setting ([GH-92985](https://github.com/godotengine/godot/pull/92985)). -- Fix force continuous with un-interpolatable value is not applied correctly ([GH-93185](https://github.com/godotengine/godot/pull/93185)). -- AnimationTrackEdit: Cancel key drag when popup is shown ([GH-93257](https://github.com/godotengine/godot/pull/93257)). -- Fix displaying selected Bezier animation keys in inspector ([GH-93408](https://github.com/godotengine/godot/pull/93408)). -- Reset when disabling override pose in BoneAttachment3D ([GH-93482](https://github.com/godotengine/godot/pull/93482)). -- Fix animation Bezier editor crash when using undo after deleting AnimationPlayer ([GH-93492](https://github.com/godotengine/godot/pull/93492)). -- Optimize update flag by SkeletonModifier ([GH-93502](https://github.com/godotengine/godot/pull/93502)). -- Rework migration of `animate_physical_bones` for compatibility ([GH-93504](https://github.com/godotengine/godot/pull/93504)). -- Make AnimationTrackCaches invalid when animation is added ([GH-93505](https://github.com/godotengine/godot/pull/93505)). -- Fix `AnimatedSprite2D/3D::play` using wrong `end_frame` when playing backwards ([GH-93548](https://github.com/godotengine/godot/pull/93548)). -- Revert the default InterpolationType with angle property to Linear ([GH-93696](https://github.com/godotengine/godot/pull/93696)). -- Fix Bezier track init value on caching without RESET animation ([GH-93785](https://github.com/godotengine/godot/pull/93785)). -- Fix sprite frame editor crash with null `frames` pointer ([GH-93846](https://github.com/godotengine/godot/pull/93846)). -- Fix inconsistent behavior of Bezier editor undo operations upon selection of different animation ([GH-93860](https://github.com/godotengine/godot/pull/93860)). -- Fix AnimationPlayer `blend_times` sorting ([GH-93876](https://github.com/godotengine/godot/pull/93876)). -- Clamp bezier handle length to half the length of animation ([GH-93930](https://github.com/godotengine/godot/pull/93930)). -- Fix broken sync between animation TrackEditor and PlayerEditor ([GH-93980](https://github.com/godotengine/godot/pull/93980)). -- Fix property type of Sprite3D `frame_coords` to Vector2i from Vector2 ([GH-93982](https://github.com/godotengine/godot/pull/93982)). -- Fix focus shortcut when in the bezier curve editor ([GH-94054](https://github.com/godotengine/godot/pull/94054)). -- Re-add `Skeleton3D::animate_physical_bones` property ([GH-94291](https://github.com/godotengine/godot/pull/94291)). -- Fix the behavior of after selecting animation on AnimationPlayerEditor to reset position to `0` ([GH-94302](https://github.com/godotengine/godot/pull/94302)). -- Fix StateMachine process when transition to end & optimize StringName ([GH-94304](https://github.com/godotengine/godot/pull/94304)). -- Handle internal seek on AnimationPlayer to process discrete correctly ([GH-94420](https://github.com/godotengine/godot/pull/94420)). -- Add approximate comparing static methods to Animation and make Animation code use them ([GH-94554](https://github.com/godotengine/godot/pull/94554)). -- AnimationMixer: Fix `processed_hashes` type to `Animation::TypeHash` instead of `int` ([GH-94722](https://github.com/godotengine/godot/pull/94722)). -- Fix BlendShapeTrack insertion not working ([GH-94738](https://github.com/godotengine/godot/pull/94738)). -- Determine `break_loop_at_end` 1 frame earlier using prediction by delta ([GH-94858](https://github.com/godotengine/godot/pull/94858)). -- Make NodeTimeInfo be not stored in tscn to prevent AnimationTree version control contamination ([GH-94859](https://github.com/godotengine/godot/pull/94859)). -- Snap current position to the edge on animation finished ([GH-95023](https://github.com/godotengine/godot/pull/95023)). -- Fix crash on reimport scene with animations ([GH-95084](https://github.com/godotengine/godot/pull/95084)). -- Make `Skeleton3D` bone simulator an internal child ([GH-95239](https://github.com/godotengine/godot/pull/95239)). -- Make `Animation::capture_included` read-only ([GH-95377](https://github.com/godotengine/godot/pull/95377)). -- Editor: Fix missing bind for animation editor callback ([GH-95400](https://github.com/godotengine/godot/pull/95400)). -- Prevent to seek doubly on AnimationPlayerEditor ([GH-95405](https://github.com/godotengine/godot/pull/95405)). -- Editor: Fix `AnimationTrackEditor::timeline_changed` signal ([GH-95481](https://github.com/godotengine/godot/pull/95481)). - -#### Assetlib - -- Improve error reporting in the asset library and in related types ([GH-87628](https://github.com/godotengine/godot/pull/87628)). -- Fix broken layout of asset library page ([GH-88761](https://github.com/godotengine/godot/pull/88761)). -- Rename Official support level to Featured in the editor asset library ([GH-89987](https://github.com/godotengine/godot/pull/89987)). +- Add persistent folding to Animation Library Editor ([GH-86481](https://github.com/godotengine/godot/pull/86481)). +- Add per-bone meta to Skeleton3D ([GH-87150](https://github.com/godotengine/godot/pull/87150)). +- Update AnimationPlayer in real-time when keyframe properties change ([GH-91599](https://github.com/godotengine/godot/pull/91599)). +- Fix Bone2D gizmo scaling ([GH-91731](https://github.com/godotengine/godot/pull/91731)). +- Add markers to Animation ([GH-91765](https://github.com/godotengine/godot/pull/91765)). +- Don't lose in/out handles when bezier keyframe inserted on top of existing keyframe ([GH-91854](https://github.com/godotengine/godot/pull/91854)). +- Optimize AnimationMixer blend process ([GH-92838](https://github.com/godotengine/godot/pull/92838)). +- Allow keying properties when selecting multiple nodes ([GH-92842](https://github.com/godotengine/godot/pull/92842)). +- Allow theming animation editor ([GH-93577](https://github.com/godotengine/godot/pull/93577)). +- Add duplicate animation for SpriteFrames ([GH-93624](https://github.com/godotengine/godot/pull/93624)). +- GLTF: Implement `KHR_animation_pointer` for animating custom properties ([GH-94165](https://github.com/godotengine/godot/pull/94165)). +- Add `advance_on_start` option to `NodeAnimation` to handle `advance(0)` for each `NodeAnimation` ([GH-94372](https://github.com/godotengine/godot/pull/94372)). +- Fix animation library copy-paste not preserving resource reference ([GH-94429](https://github.com/godotengine/godot/pull/94429)). +- Add validation to glTF importer for Blendshape and Animation ([GH-94783](https://github.com/godotengine/godot/pull/94783)). +- Fix `AnimationPlayer` crash when it's made the scene root ([GH-94945](https://github.com/godotengine/godot/pull/94945)). +- Fix `Skeleton2D.{_set|_get}` always returning true ([GH-95124](https://github.com/godotengine/godot/pull/95124)). +- Fix drawing leaf `Bone2D` in `Polygon2D` UV editor ([GH-95258](https://github.com/godotengine/godot/pull/95258)). +- Avoid `[]` for `external_animation_library` import option ([GH-95505](https://github.com/godotengine/godot/pull/95505)). +- Fix errors about `UndoRedo` history mismatch when deleting bezier track ([GH-95518](https://github.com/godotengine/godot/pull/95518)). +- Add internal `_finish()` method to Tweener ([GH-95545](https://github.com/godotengine/godot/pull/95545)). +- Add separate timeline snapping control to Animation Editor ([GH-95638](https://github.com/godotengine/godot/pull/95638)). +- Add `BoneAttachment3D::get_skeleton()` method ([GH-95643](https://github.com/godotengine/godot/pull/95643)). +- Add hint for oneshot property & warning when it will be updated continuously by Force Continuous in `AnimationMixer` ([GH-95711](https://github.com/godotengine/godot/pull/95711)). +- Add documentation to clarify un-interpolatable type on animation blending ([GH-95722](https://github.com/godotengine/godot/pull/95722)). +- Fix crash when re-importing model with AnimationPlayer panel open and node selected ([GH-95795](https://github.com/godotengine/godot/pull/95795)). +- Fix animation timeline resize widget allowing invalid internal values ([GH-95947](https://github.com/godotengine/godot/pull/95947)). +- Allow jumping to previous/next keyframe in animation player ([GH-96013](https://github.com/godotengine/godot/pull/96013)). +- Add 3D skeleton preview to Advanced Importer ([GH-96094](https://github.com/godotengine/godot/pull/96094)). +- Revert scaled armature advanced importer preview fix ([GH-96095](https://github.com/godotengine/godot/pull/96095)). +- Add Revert support to SkeletonEditor ([GH-96196](https://github.com/godotengine/godot/pull/96196)). +- Fix Tweeners to emit `finished()` when underlying object is deleted ([GH-96216](https://github.com/godotengine/godot/pull/96216)). +- Fix physical bone update without simulating ([GH-96270](https://github.com/godotengine/godot/pull/96270)). +- Attempt applying RESET pose during import ([GH-96308](https://github.com/godotengine/godot/pull/96308)). +- Add `modf` function and fix animation editor snap behavior ([GH-96328](https://github.com/godotengine/godot/pull/96328)). +- Improve behavior of AnimationPlayer warnings ([GH-96414](https://github.com/godotengine/godot/pull/96414)). +- Fix overlapping in animation timeline display ([GH-96428](https://github.com/godotengine/godot/pull/96428)). +- Use antialiased line drawing in animation Bezier editor ([GH-96559](https://github.com/godotengine/godot/pull/96559)). +- Fix AnimationLibrary loading ([GH-96577](https://github.com/godotengine/godot/pull/96577)). +- Avoid bubbling up changed notification when on new item/key of dictionaries to avoid inspector wipeout ([GH-96623](https://github.com/godotengine/godot/pull/96623)). +- Update AnimationPlayer in real-time when bezier curve properties or bezier editor changes ([GH-96753](https://github.com/godotengine/godot/pull/96753)). +- Fix errors when creating bezier component tracks ([GH-96789](https://github.com/godotengine/godot/pull/96789)). +- Expose the optimize method of the Animation class to gdscript ([GH-96835](https://github.com/godotengine/godot/pull/96835)). +- Fix selection box + scrolling in animation editor ([GH-96902](https://github.com/godotengine/godot/pull/96902)). +- Fix syncing PhysicalBone internal poses individually ([GH-97007](https://github.com/godotengine/godot/pull/97007)). +- Add missing "Quad" capture TransitionType enum hint ([GH-97018](https://github.com/godotengine/godot/pull/97018)). +- Fix non const animation node `_process` virtual function ([GH-97020](https://github.com/godotengine/godot/pull/97020)). +- Fix animation `BezierEditor` uses only half the view ([GH-97111](https://github.com/godotengine/godot/pull/97111)). +- Fix Undo/Redo not working in Bezier Animation Editor when moving keys ([GH-97169](https://github.com/godotengine/godot/pull/97169)). +- Fix animation compression going the wrong way ([GH-97290](https://github.com/godotengine/godot/pull/97290)). +- Ensure `handle_modes` is given default values rather than flagging error if undefined ([GH-97380](https://github.com/godotengine/godot/pull/97380)). +- Move skin registration process into deferred on ready ([GH-97489](https://github.com/godotengine/godot/pull/97489)). +- Core: Fix sorting of `Dictionary` keys ([GH-97542](https://github.com/godotengine/godot/pull/97542)). +- Fix positioning of popup menu in AnimationLibrary editor ([GH-97560](https://github.com/godotengine/godot/pull/97560)). +- Fix keying of property subpaths ([GH-97563](https://github.com/godotengine/godot/pull/97563)). +- Fix mouse clamping in Animation Bezier Editor box select ([GH-97564](https://github.com/godotengine/godot/pull/97564)). +- Allow fractional FPS values in Animation Editor ([GH-97569](https://github.com/godotengine/godot/pull/97569)). +- Convert Vector to LocalVector in animation system ([GH-97687](https://github.com/godotengine/godot/pull/97687)). +- Use `LocalVector` for skeleton ([GH-97744](https://github.com/godotengine/godot/pull/97744)). +- Fix error when stopping empty animation player ([GH-97760](https://github.com/godotengine/godot/pull/97760)). +- Add RetargetModifier3D for realtime retarget to keep original rest ([GH-97824](https://github.com/godotengine/godot/pull/97824)). +- Allow seconds snapping to use minimum intervals of 0.0001 once more ([GH-97833](https://github.com/godotengine/godot/pull/97833)). +- Fix initial skin update timing in Skeleton3D ([GH-98009](https://github.com/godotengine/godot/pull/98009)). +- Fix inverted vertical zoom interaction in animation curve editor ([GH-98031](https://github.com/godotengine/godot/pull/98031)). +- Improve Select Markers dialog in AnimationTree editor ([GH-98224](https://github.com/godotengine/godot/pull/98224)). +- Prioritize proximity to green arrow when selecting overlapping transitions in AnimationNodeStateMachine ([GH-98401](https://github.com/godotengine/godot/pull/98401)). +- Reduce opacity of nodes with no shared transition when selecting an AnimationNodeStateMachine node ([GH-98402](https://github.com/godotengine/godot/pull/98402)). +- Improve Scale Selection in Animation tab ([GH-98419](https://github.com/godotengine/godot/pull/98419)). +- Implement LookAtModifier3D ([GH-98446](https://github.com/godotengine/godot/pull/98446)). +- Fix Skeleton doesn't update skin after deactivating modifiers when it has only one modifier ([GH-98536](https://github.com/godotengine/godot/pull/98536)). +- Add type filters to AnimationPlayer's "Add Track" ([GH-98558](https://github.com/godotengine/godot/pull/98558)). +- Add `Tween.tween_subtween` method for nesting tweens within each other ([GH-98660](https://github.com/godotengine/godot/pull/98660)). +- Fix `capture_cache.animation` was not cached ([GH-98706](https://github.com/godotengine/godot/pull/98706)). +- Fix animation editor snapping value not lowering as intended when holding shift ([GH-98826](https://github.com/godotengine/godot/pull/98826)). +- Add FPS compatible option in second mode of the animation editor snapping ([GH-99013](https://github.com/godotengine/godot/pull/99013)). +- Fix crash when inserting keyframes with empty properties array ([GH-99148](https://github.com/godotengine/godot/pull/99148)). +- Add animation node extension ([GH-99181](https://github.com/godotengine/godot/pull/99181)). +- Sort blend shapes in the inspector by ID instead of alphabetically ([GH-99231](https://github.com/godotengine/godot/pull/99231)). +- Add back `AnimationPlayer.get_argument_options` ([GH-99277](https://github.com/godotengine/godot/pull/99277)). +- Fix key is deselected by changing key time in KeyEdit in FPS mode ([GH-99319](https://github.com/godotengine/godot/pull/99319)). +- Fix spinner in AnimationTrackEdit in FPS mode ([GH-99324](https://github.com/godotengine/godot/pull/99324)). +- Add `explicit_elapse` option to AnimationNodeTimeSeek to handle some processes ([GH-99348](https://github.com/godotengine/godot/pull/99348)). +- Fix issues with animation markers drawing ([GH-99363](https://github.com/godotengine/godot/pull/99363)). +- Add `root_motion_local` option to AnimationMixer to pre-multiply root motion rotation accumulator before blending ([GH-99394](https://github.com/godotengine/godot/pull/99394)). +- Make start/end can be retrieved from each PlaybackData on AnimationPlayer ([GH-99585](https://github.com/godotengine/godot/pull/99585)). +- Make LookAtModifier3D adopt the bone name method ([GH-99612](https://github.com/godotengine/godot/pull/99612)). +- Fix `forward_vector` scale to handle `safe_margin` correctly in LookAtModifier ([GH-99613](https://github.com/godotengine/godot/pull/99613)). +- Make flipping flag consider influence in LookAtModifier3D ([GH-99619](https://github.com/godotengine/godot/pull/99619)). +- Fix orphan strings in `AnimationNodeStateMachine` ([GH-99934](https://github.com/godotengine/godot/pull/99934)). +- Make `backward` be parameter of the `AnimationTree` in the `AnimationNodeAnimation` ([GH-100039](https://github.com/godotengine/godot/pull/100039)). +- Add Show in FileSystem right click option to SpriteFrames ([GH-100276](https://github.com/godotengine/godot/pull/100276)). +- Remove dead code in `AnimationNodeStateMachine` ([GH-100324](https://github.com/godotengine/godot/pull/100324)). +- Fix Sync in BlendSpace1D/2D with BlendModeDiscrete ([GH-100373](https://github.com/godotengine/godot/pull/100373)). +- Make `AnimationNodeExtension` extend `AnimationNode` instead of `AnimationRootNode` ([GH-100416](https://github.com/godotengine/godot/pull/100416)). +- Rename animation node process function to avoid GDExtension name collision ([GH-100442](https://github.com/godotengine/godot/pull/100442)). +- Add an option for tweens to ignore `Engine.time_scale` ([GH-100735](https://github.com/godotengine/godot/pull/100735)). +- Core: Align naming and args of `(SceneTree)Timer` time scale methods ([GH-100752](https://github.com/godotengine/godot/pull/100752)). +- Make transform elements BitField in RetargetModifier ([GH-100811](https://github.com/godotengine/godot/pull/100811)). +- Move enum BoneAxis to SkeletonModifier from LookAtModifier ([GH-101148](https://github.com/godotengine/godot/pull/101148)). +- Fix `LookAtModifier3D` rest space incorrect rotation ([GH-101311](https://github.com/godotengine/godot/pull/101311)). +- Replace `Animation::_clear()` with explicit `.clear()` calls ([GH-101354](https://github.com/godotengine/godot/pull/101354)). +- Implement SpringBoneSimulator3D to wiggle chained bones ([GH-101409](https://github.com/godotengine/godot/pull/101409)). +- Add missing `TOOLS_ENABLED` block to `RetargetModifier3D` ([GH-101448](https://github.com/godotengine/godot/pull/101448)). +- Change reset timing of the AnimationMixer and Skeleton on save ([GH-101450](https://github.com/godotengine/godot/pull/101450)). +- Force update RetargetModifier3D's child skeletons on save ([GH-101451](https://github.com/godotengine/godot/pull/101451)). +- Fix shifted joint radius index in SpringBone gizmo and remove unused `end_bone_tip_radius` property ([GH-101525](https://github.com/godotengine/godot/pull/101525)). +- Add validation for rotation axis to SpringBoneSimulator3D ([GH-101571](https://github.com/godotengine/godot/pull/101571)). +- Fix glitch in `SpringBoneSimulator3D` by storing the previous frame's rotation instead of using no rotation when the axis is flipped ([GH-101651](https://github.com/godotengine/godot/pull/101651)). +- Clarify `SpringBoneSimulator3D`'s gravity units and improve documentation ([GH-101652](https://github.com/godotengine/godot/pull/101652)). +- Fix failure to load joints with individual config in SpringBone ([GH-101729](https://github.com/godotengine/godot/pull/101729)). +- Fix incomplete FPS spinbox display in sprite frames editor ([GH-101798](https://github.com/godotengine/godot/pull/101798)). +- Remove dead variable `end_bone_tip_radius` from SpringBoneSimulator ([GH-101861](https://github.com/godotengine/godot/pull/101861)). +- Add saving flag hack to Skeleton and revert reset timing of animation ([GH-102026](https://github.com/godotengine/godot/pull/102026)). +- Don't expose AnimationNodeStartState and AnimationNodeEndState as internal, this triggers a ClassDB bug ([GH-102433](https://github.com/godotengine/godot/pull/102433)). +- Prevent off-thread errors when generating resource previews for animation nodes ([GH-102692](https://github.com/godotengine/godot/pull/102692)). #### Audio -- Add interactive music support ([GH-64488](https://github.com/godotengine/godot/pull/64488)). -- Overhaul AudioStreamPlayer's documentation ([GH-81858](https://github.com/godotengine/godot/pull/81858)). -- Fix importing WAV files with odd chunk sizes ([GH-85556](https://github.com/godotengine/godot/pull/85556)). -- Fix permanently selected audio bus effects ([GH-85879](https://github.com/godotengine/godot/pull/85879)). -- Fix `OggPacketSequencePlayback::next_ogg_packet()` never returning false ([GH-85996](https://github.com/godotengine/godot/pull/85996)). -- Implement audio stream playback parameters ([GH-86473](https://github.com/godotengine/godot/pull/86473)). -- Optimize `AudioServer::_driver_process()` ([GH-86581](https://github.com/godotengine/godot/pull/86581)). -- Fix `AudioServer::start_playback_stream` does not iterate through given bus volumes ([GH-86584](https://github.com/godotengine/godot/pull/86584)). -- Add autocompletion for ClassDB & AudioServer ([GH-86777](https://github.com/godotengine/godot/pull/86777)). -- Fix playback position label update in Audio Stream Importer ([GH-86824](https://github.com/godotengine/godot/pull/86824)). -- Fix member names of `AudioFrame` to match extension ([GH-87006](https://github.com/godotengine/godot/pull/87006)). -- Fix Dummy audio driver initialization issue on WASAPI output device initialization failure ([GH-87010](https://github.com/godotengine/godot/pull/87010)). -- Add AudioStreamPlayerInternal to unify stream players ([GH-87061](https://github.com/godotengine/godot/pull/87061)). -- Fix a possible crash when importing an OGG file with zero-length packets ([GH-87246](https://github.com/godotengine/godot/pull/87246)). -- Fix AudioStreamPlayer3D autoplay and internal notifications ([GH-87732](https://github.com/godotengine/godot/pull/87732)). -- Fix wrong process method in AudioStreamPlayer ([GH-87830](https://github.com/godotengine/godot/pull/87830)). -- Fix data race regarding `prof_time` in `AudioDriver` and `AudioServer` ([GH-88005](https://github.com/godotengine/godot/pull/88005)). -- AudioEffectPitchShift: Prevent negative size memset (GCC warning) ([GH-88509](https://github.com/godotengine/godot/pull/88509)). -- AudioEffectPitchShift: Actually fix `-Wstringop-overflow warning` ([GH-88658](https://github.com/godotengine/godot/pull/88658)). -- Fix low volume sound output on iOS when Play and Record category is used ([GH-89006](https://github.com/godotengine/godot/pull/89006)). -- WAV importer: Use cubic interpolation on resampler ([GH-89071](https://github.com/godotengine/godot/pull/89071)). -- Add AudioEffectHardLimiter as a rework of audio limiter effect ([GH-89088](https://github.com/godotengine/godot/pull/89088)). -- Fix audio crackling issues due to incorrect WASAPI buffer size ([GH-89283](https://github.com/godotengine/godot/pull/89283)). -- Prevent crash in interactive playback ([GH-90481](https://github.com/godotengine/godot/pull/90481)). -- Move MIDI parsing up from ALSA driver to platform independent driver ([GH-90485](https://github.com/godotengine/godot/pull/90485)). -- Check for NaN in `set_volume_db` functions ([GH-90861](https://github.com/godotengine/godot/pull/90861)). -- Add QOA (Quite OK Audio) as a WAV compression mode ([GH-91014](https://github.com/godotengine/godot/pull/91014)). -- Don't ignore `audio/driver/output_latency.web` ([GH-91141](https://github.com/godotengine/godot/pull/91141)). -- Add sample playback support for Web exports ([GH-91382](https://github.com/godotengine/godot/pull/91382)). -- Use data length on QOA checks instead of min size ([GH-91714](https://github.com/godotengine/godot/pull/91714)). -- Fix error in AudioStreamPlayer2D ([GH-91929](https://github.com/godotengine/godot/pull/91929)). -- Use COM smart pointers in WASAPI driver ([GH-91975](https://github.com/godotengine/godot/pull/91975)). -- Fix polyphonic audio streams with id > 1 cannot be stopped or changed (MSVC mis-optimization) ([GH-93120](https://github.com/godotengine/godot/pull/93120)). -- Fix pausing issues when using Web Audio samples ([GH-93362](https://github.com/godotengine/godot/pull/93362)). -- Remove superfluous non-working sample playing check ([GH-93428](https://github.com/godotengine/godot/pull/93428)). -- Add vertical separation to audio bus ([GH-93507](https://github.com/godotengine/godot/pull/93507)). -- Fix Web samples finished missing signal ([GH-94044](https://github.com/godotengine/godot/pull/94044)). -- Fix audio samples not being able to be "finished" ([GH-94268](https://github.com/godotengine/godot/pull/94268)). -- Fix new stream types `mix()` not returning 0 when inactive ([GH-94514](https://github.com/godotengine/godot/pull/94514)). -- Fix typo that prevented samples finishing ([GH-94800](https://github.com/godotengine/godot/pull/94800)). -- Web: Gracefully handle non-finite audio volumes ([GH-94869](https://github.com/godotengine/godot/pull/94869)). -- Expand columns in the audio interactive transition editor ([GH-95134](https://github.com/godotengine/godot/pull/95134)). -- AudioStreamPolyphonic: Implement stopping with sample playback ([GH-95321](https://github.com/godotengine/godot/pull/95321)). +- Use the Dummy audio driver in the project manager ([GH-38208](https://github.com/godotengine/godot/pull/38208)). +- Optimize cubic hermite algorithm in AudioStreamPlaybackResampled ([GH-83536](https://github.com/godotengine/godot/pull/83536)). +- Expose some AudioStreamPlayback methods (namely `mix_audio()`) ([GH-86539](https://github.com/godotengine/godot/pull/86539)). +- [macOS/iOS] Use hardware sampling rates for audio I/O ([GH-88628](https://github.com/godotengine/godot/pull/88628)). +- Fix `SubViewport`/`AudioStreamPlayer2D` crash ([GH-91123](https://github.com/godotengine/godot/pull/91123)). +- Add missing audio bus button styles ([GH-93443](https://github.com/godotengine/godot/pull/93443)). +- Add runtime file loading to `AudioStreamWAV` ([GH-93831](https://github.com/godotengine/godot/pull/93831)). +- Fix AudioStreamPlayer `get_playback_position()` for web build ([GH-95197](https://github.com/godotengine/godot/pull/95197)). +- Expose `AudioStreamPlayer{2D,3D}::set_playing` and remove `AudioStreamPlayer::{2D,3D}::_is_active` ([GH-95375](https://github.com/godotengine/godot/pull/95375)). +- Add `stop_callable` to `AudioStreamPlayerInternal` ([GH-95386](https://github.com/godotengine/godot/pull/95386)). +- QOA: Remove unnecessary memory allocation ([GH-95463](https://github.com/godotengine/godot/pull/95463)). +- Improve AudioStreamPlayer icons ([GH-95763](https://github.com/godotengine/godot/pull/95763)). +- Fix interactive audio transitions with wrong volume ([GH-95803](https://github.com/godotengine/godot/pull/95803)). +- ResourceImporterWAV: Enable QOA compression by default ([GH-95815](https://github.com/godotengine/godot/pull/95815)). +- Expose `AudioStreamPlaybackInteractive::get_current_clip_index()` ([GH-95839](https://github.com/godotengine/godot/pull/95839)). +- Honor `pitch_scale` value before playing audio sample ([GH-95862](https://github.com/godotengine/godot/pull/95862)). +- Add Web MIDI support ([GH-95928](https://github.com/godotengine/godot/pull/95928)). +- MP3: Remove unnecessary memory allocation ([GH-95999](https://github.com/godotengine/godot/pull/95999)). +- AudioStream(Playback)WAV: Use LocalVectors instead of pointers ([GH-96017](https://github.com/godotengine/godot/pull/96017)). +- WAV: Add missing break on `get_length()` ([GH-96080](https://github.com/godotengine/godot/pull/96080)). +- WAV stream/importer: Improve compression/loop names and descriptions ([GH-96174](https://github.com/godotengine/godot/pull/96174)). +- ResourceImporterWAV: Fix memory leak on QOA import ([GH-96198](https://github.com/godotengine/godot/pull/96198)). +- MP3: Use heap for big struct when setting data ([GH-96240](https://github.com/godotengine/godot/pull/96240)). +- Use `qoa.c` and custom compress procedure ([GH-96346](https://github.com/godotengine/godot/pull/96346)). +- Fix leak when using audio samples instead of streams ([GH-96572](https://github.com/godotengine/godot/pull/96572)). +- Fix AudioStreamPlayer3D still processing when out of range ([GH-96677](https://github.com/godotengine/godot/pull/96677)). +- WAV: Fix one frame overflow at the end ([GH-96768](https://github.com/godotengine/godot/pull/96768)). +- [Editor, Servers] Minor optimizations ([GH-96875](https://github.com/godotengine/godot/pull/96875)). +- AudioStreamMP3: Use a LocalVector to store data ([GH-97026](https://github.com/godotengine/godot/pull/97026)). +- Fix `AudioStreamMicrophone` crash on scene-reload ([GH-97032](https://github.com/godotengine/godot/pull/97032)). +- AudioEffectPitchShift: Fix distortion when pitch is 1.0 ([GH-97109](https://github.com/godotengine/godot/pull/97109)). +- Expose Viewport methods to get current 2D/3D audio listener ([GH-97159](https://github.com/godotengine/godot/pull/97159)). +- Vorbis: Remove redundant bounds check ([GH-97547](https://github.com/godotengine/godot/pull/97547)). +- AudioStreamImport: Allow waveform resize ([GH-97551](https://github.com/godotengine/godot/pull/97551)). +- Fix `AudioStreamPlayback`'s `_stop()` not being called when `AudioStreamPlayer`'s `stop()` is called ([GH-97625](https://github.com/godotengine/godot/pull/97625)). +- Fix freeze when data chunk size in WAV header is larger than the actual size ([GH-97711](https://github.com/godotengine/godot/pull/97711)). +- Web: Make audio bus fetching more resilient to errors ([GH-97739](https://github.com/godotengine/godot/pull/97739)). +- Remove playback fade-in and add comments to `AudioServer` ([GH-98131](https://github.com/godotengine/godot/pull/98131)). +- Fix iOS audio driver attempting to start output too early ([GH-98305](https://github.com/godotengine/godot/pull/98305)). +- Add `AudioServer.get_driver_name()` to get the actual audio driver name ([GH-98435](https://github.com/godotengine/godot/pull/98435)). +- Fix `AudioStreamWAV::save_to_wav` adding extra '.wav' to file if existing ext is not lower case ([GH-98717](https://github.com/godotengine/godot/pull/98717)). +- Fix `fade_beats` defined as `int` in `audio_stream_interactive.h` ([GH-99186](https://github.com/godotengine/godot/pull/99186)). +- Document `AudioStreamPlayer.get_playback_position()` intentionally always returning `0.0` when using `AudioStreamInteractive` ([GH-99200](https://github.com/godotengine/godot/pull/99200)). +- Add `volume_linear` property and getter/setter methods for audio-related classes ([GH-99268](https://github.com/godotengine/godot/pull/99268)). +- Implement `AudioStreamSynchronized::get_bar_beats()`, fix division by zero ([GH-99327](https://github.com/godotengine/godot/pull/99327)). +- Fix code consistency between AudioStreamPlayer2D and AudioStreamPlayer3D ([GH-99734](https://github.com/godotengine/godot/pull/99734)). +- Fix AudioStreamPlayer2D/3D's `get_playback_position` returning `0` right after calling `seek` ([GH-99759](https://github.com/godotengine/godot/pull/99759)). +- TestAudioStreamWAV: use runtime load instead of importer ([GH-100022](https://github.com/godotengine/godot/pull/100022)). +- Prevent WASAPI error spam when device cannot be initialized ([GH-100116](https://github.com/godotengine/godot/pull/100116)). +- Add missing `GDVIRTUAL_BIND()` for `AudioStream::_has_loop()` and `::_get_bar_beats()` ([GH-100126](https://github.com/godotengine/godot/pull/100126)). +- Web: Restore ScriptProcessorNode audio driver fallback ([GH-100245](https://github.com/godotengine/godot/pull/100245)). +- Add AudioStreamMP3 `load_from_file`/`load_from_buffer` and harmonize other audio streams ([GH-100307](https://github.com/godotengine/godot/pull/100307)). +- Fix default `AudioBusLayout` not loading correctly if path is set in Project Settings ([GH-100371](https://github.com/godotengine/godot/pull/100371)). +- Fix a crash trying to save an empty AudioStream ([GH-100422](https://github.com/godotengine/godot/pull/100422)). +- Fix initialization order in `AudioStreamInteractive` to allow `initial_clip` to be properly played ([GH-100552](https://github.com/godotengine/godot/pull/100552)). +- Stop AudioStreamPlayback only if it's not playing ([GH-101097](https://github.com/godotengine/godot/pull/101097)). +- Fix GCC warning about potential stringop-overflow in AudioEffectPitcShift ([GH-101279](https://github.com/godotengine/godot/pull/101279)). +- Fix Theora video issues ([GH-101958](https://github.com/godotengine/godot/pull/101958)). +- Initialize pa_buffer_attr.maxlength to -1 ([GH-102069](https://github.com/godotengine/godot/pull/102069)). +- Web: Fix audio issues with samples and GodotPositionReportingProcessor ([GH-102163](https://github.com/godotengine/godot/pull/102163)). +- AudioFilterSW: Fix audio cutting out due to numerical errors ([GH-102210](https://github.com/godotengine/godot/pull/102210)). +- AudioStreamGenerator: Add mixing rate presets, update docs ([GH-102691](https://github.com/godotengine/godot/pull/102691)). +- Web: Remove position pool system and return false when done instead ([GH-102715](https://github.com/godotengine/godot/pull/102715)). +- Web: Fix issue when pausing an non-started sample ([GH-102955](https://github.com/godotengine/godot/pull/102955)). #### Buildsystem -- Add option in SCons to clone env variables ([GH-70770](https://github.com/godotengine/godot/pull/70770)). -- SCons: Add `stack_size` and `default_pthread_stack_size` options to Web target ([GH-75166](https://github.com/godotengine/godot/pull/75166)). -- SCons: Add `-ffile-prefix-map` GCC/Clang option to make debug file paths relative ([GH-78232](https://github.com/godotengine/godot/pull/78232)). -- MinGW: Force separate debug symbols if executable size is larger than 1.9 GB ([GH-79875](https://github.com/godotengine/godot/pull/79875)). -- Remove lgtm.yml since LGTM is now replaced by Github Code Scanning ([GH-81874](https://github.com/godotengine/godot/pull/81874)). -- Identify pull request builds from GitHub Actions with the PR number ([GH-83448](https://github.com/godotengine/godot/pull/83448)). -- CI: Enable ANGLE static linking ([GH-84175](https://github.com/godotengine/godot/pull/84175)). -- Add `generate_apk=yes` to generate an APK after building ([GH-84440](https://github.com/godotengine/godot/pull/84440)). -- Use Python venv if detected when building VS project ([GH-84593](https://github.com/godotengine/godot/pull/84593)). -- Only build glslang if Vulkan or Direct3D 12 rendering is enabled ([GH-84613](https://github.com/godotengine/godot/pull/84613)). -- Add parameter to allow generation of the Godot native shared libraries from gradle ([GH-84674](https://github.com/godotengine/godot/pull/84674)). -- New Visual Studio project generation logic that supports any platform that wants to opt in ([GH-84885](https://github.com/godotengine/godot/pull/84885)). -- Alias `platform=javascript` SCons option to `platform=web` ([GH-84979](https://github.com/godotengine/godot/pull/84979)). -- SCons: Add two new `COMSTR` environment variables ([GH-85153](https://github.com/godotengine/godot/pull/85153)). -- SCons: Update mypy ([GH-85192](https://github.com/godotengine/godot/pull/85192)). -- Run `Clean` in Windows SCsub to clean up debug files ([GH-85197](https://github.com/godotengine/godot/pull/85197)). -- macOS: Check Apple specific version instead of generic clang version ([GH-85206](https://github.com/godotengine/godot/pull/85206)). -- SCons: Change `Environment` type hints to `SConsEnvironment` ([GH-85322](https://github.com/godotengine/godot/pull/85322)). -- Fix the Web platform team's codeowners link ([GH-85746](https://github.com/godotengine/godot/pull/85746)). -- Refactor and fix `make_virtuals.py` ([GH-85770](https://github.com/godotengine/godot/pull/85770)). -- Fix invalid Python escape sequences ([GH-85818](https://github.com/godotengine/godot/pull/85818)). -- Instruct users to add code/errors as text in issues ([GH-86006](https://github.com/godotengine/godot/pull/86006)). -- Set what were default values for Web platform linker flags `-sSTACK_SIZE` and `-sDEFAULT_PTHREAD_STACK_SIZE` ([GH-86036](https://github.com/godotengine/godot/pull/86036)). -- D3D12: Add missing DLL architecture paths for the 32-bit builds ([GH-86107](https://github.com/godotengine/godot/pull/86107)). -- Mention `etcpak` changes in thirdparty/README.md ([GH-86236](https://github.com/godotengine/godot/pull/86236)). -- [iOS/macOS] Add option to automatically build (and sign / archive) bundles ([GH-86255](https://github.com/godotengine/godot/pull/86255)). -- Allow detecting when building as an engine module ([GH-86269](https://github.com/godotengine/godot/pull/86269)). -- Fix Clang `-Winconsistent-missing-override` warning ([GH-86392](https://github.com/godotengine/godot/pull/86392)). -- Add a python script to install Direct3D 12 SDK components ([GH-86717](https://github.com/godotengine/godot/pull/86717)). -- Fix some build errors with `disable_3d=yes` ([GH-86874](https://github.com/godotengine/godot/pull/86874)). -- SCons: Fix `CCFLAGS`, `LINKFLAGS`, etc. command line overrides ([GH-86964](https://github.com/godotengine/godot/pull/86964)). -- Add `tests/python_build` to clang-format pre-commit hook ignore list ([GH-87000](https://github.com/godotengine/godot/pull/87000)). -- Revamp `godot.natvis` to improve VS debugging experience ([GH-87053](https://github.com/godotengine/godot/pull/87053)). -- SCons: Silence redundant MSVC output ([GH-87154](https://github.com/godotengine/godot/pull/87154)). -- makerst: Suggest using `[code skip-lint]` to skip warnings if intended ([GH-87218](https://github.com/godotengine/godot/pull/87218)). -- Windows: Remove `dxc_path` check ([GH-87247](https://github.com/godotengine/godot/pull/87247)). -- macOS: Fix MoltenVK SDK detection after file location changes in 1.3.275.0 ([GH-87305](https://github.com/godotengine/godot/pull/87305)). -- Update Android dependencies for the project ([GH-87346](https://github.com/godotengine/godot/pull/87346)). -- iOS: Update linker flags for Xcode 15.2 ([GH-87358](https://github.com/godotengine/godot/pull/87358)). -- Linux: Add support for PCK embedding section with non GNU-ld linkers ([GH-87464](https://github.com/godotengine/godot/pull/87464)). -- CI: Update `mymindstorm/setup-emsdk` to v14, should fix cache folder conflicts ([GH-87575](https://github.com/godotengine/godot/pull/87575)). -- SCons: Fix Windows cross-compilation from Linux after #86717 ([GH-87609](https://github.com/godotengine/godot/pull/87609)). -- SCons: Add proper MinGW support to D3D12 deps install script ([GH-87619](https://github.com/godotengine/godot/pull/87619)). -- D3D12: Add support for building with pre-11.0.0 MinGW versions, make PIX runtime opt-in ([GH-87624](https://github.com/godotengine/godot/pull/87624)). -- Undefine yet another macro from Windows headers ([GH-87627](https://github.com/godotengine/godot/pull/87627)). -- Avoid non-constant-expression cannot be narrowed on Windows on mingw ([GH-87720](https://github.com/godotengine/godot/pull/87720)). -- Use raw strings for D3D12 install messages ([GH-87734](https://github.com/godotengine/godot/pull/87734)). -- Wayland: Disable backend at build-time if wayland-scanner is missing ([GH-87765](https://github.com/godotengine/godot/pull/87765)). -- Fix `godot.natvis` after CowData 64-bit promotion ([GH-87848](https://github.com/godotengine/godot/pull/87848)). -- CI scripts: Fix `printf` for format checks ([GH-87864](https://github.com/godotengine/godot/pull/87864)). -- Add basic Emacs `.gitignore` entries ([GH-87878](https://github.com/godotengine/godot/pull/87878)). -- macOS: Check Vulkan SDK version when looking for MoltenVK libs ([GH-87960](https://github.com/godotengine/godot/pull/87960)). -- Fix emscripten 3.1.51 breaking change about `*glGetProcAddress()` ([GH-87981](https://github.com/godotengine/godot/pull/87981)). -- Web: Bump closure compiler spec to `ECMASCRIPT_2021` ([GH-88010](https://github.com/godotengine/godot/pull/88010)). -- SCons: Fix incremental builds breaking when querying the dependency tree from a SCsub ([GH-88025](https://github.com/godotengine/godot/pull/88025)). -- Silence wayland-scanner check in buildsystem ([GH-88028](https://github.com/godotengine/godot/pull/88028)). -- SCons: Use r-strings for wayland-scanner builder command ([GH-88134](https://github.com/godotengine/godot/pull/88134)). -- Add first interaction action to better inform newcomers ([GH-88137](https://github.com/godotengine/godot/pull/88137)). -- Remove 3.x references in the pull request template ([GH-88159](https://github.com/godotengine/godot/pull/88159)). -- Visual Studio: Don't override user options. Add additional vs hint information ([GH-88244](https://github.com/godotengine/godot/pull/88244)). -- C#: Let platforms signal if they support the mono module or not ([GH-88245](https://github.com/godotengine/godot/pull/88245)). -- Visual Studio: Fix user workflows with custom user VS configurations ([GH-88253](https://github.com/godotengine/godot/pull/88253)). -- Avoid unqualified-id "near" and "far" in Node3DEditor/Viewport ([GH-88270](https://github.com/godotengine/godot/pull/88270)). -- Fix gradle build errors when the build path contains non-ASCII characters ([GH-88304](https://github.com/godotengine/godot/pull/88304)). -- Always enable debug symbols when developing with Android Studio ([GH-88382](https://github.com/godotengine/godot/pull/88382)). -- Fix running tests in template builds ([GH-88452](https://github.com/godotengine/godot/pull/88452)). -- Fix formatting in bug report template ([GH-88457](https://github.com/godotengine/godot/pull/88457)). -- Windows: Make D3D12 loading dynamic to support pre-Windows 10 versions ([GH-88496](https://github.com/godotengine/godot/pull/88496)). -- Disable the crash handler if `execinfo=no` scons option is set ([GH-88520](https://github.com/godotengine/godot/pull/88520)). -- OS_LinuxBSD: Add missing RenderServer include for `get_video_adapter_driver_info` ([GH-88525](https://github.com/godotengine/godot/pull/88525)). -- Add `WASM_BIGINT` linker flag to the web build ([GH-88594](https://github.com/godotengine/godot/pull/88594)). -- CI: Update actions to latest versions, use default runner .NET version ([GH-88671](https://github.com/godotengine/godot/pull/88671)). -- Fix some additional errors with 3D disabled ([GH-88704](https://github.com/godotengine/godot/pull/88704)). -- Replace hand-written pre-commit hooks with `pre-commit` Python tool ([GH-88866](https://github.com/godotengine/godot/pull/88866)). -- Visual Studio: Improve performance of parsing project file ([GH-88949](https://github.com/godotengine/godot/pull/88949)). -- Fix compilation errors when `DISABLE_DEPRECATED` is defined ([GH-88958](https://github.com/godotengine/godot/pull/88958)). -- Pre-commit: Update to clang-format 17.0.6 and black 24.2.0 ([GH-88959](https://github.com/godotengine/godot/pull/88959)). -- Fix linking NavigationServer2D/3D with all classes disabled in build profile ([GH-88986](https://github.com/godotengine/godot/pull/88986)). -- macOS: Fix some deprecation warnings ([GH-88987](https://github.com/godotengine/godot/pull/88987)). -- SCons: Set `silence_msvc` to false by default ([GH-89159](https://github.com/godotengine/godot/pull/89159)). -- Fix build on MSVC 2017 ([GH-89168](https://github.com/godotengine/godot/pull/89168)). -- Fix POT generation missing some strings when built-in ones are enabled ([GH-89227](https://github.com/godotengine/godot/pull/89227)). -- Windows: Avoid `scale_with_dpi` constexpr compiler error ([GH-89303](https://github.com/godotengine/godot/pull/89303)). -- Fix MoltenVK detection ([GH-89327](https://github.com/godotengine/godot/pull/89327)). -- Enforce `\n` eol for Python writes ([GH-89333](https://github.com/godotengine/godot/pull/89333)). -- SCons: Ensure `with` statement where applicable ([GH-89361](https://github.com/godotengine/godot/pull/89361)). -- SCons: Convert remaining `run_in_subprocess` to `env.Run` ([GH-89365](https://github.com/godotengine/godot/pull/89365)). -- SCons: Remove `run_in_subprocess` & `subprocess_main` dependencies ([GH-89393](https://github.com/godotengine/godot/pull/89393)). -- Pre-commit: Fix `copyright_headers.py` to run on all relevant files ([GH-89421](https://github.com/godotengine/godot/pull/89421)). -- SCons: Enable the experimental Ninja backend and minimize timestamp changes to generated code ([GH-89452](https://github.com/godotengine/godot/pull/89452)). -- Fix GCC build warning ([GH-89453](https://github.com/godotengine/godot/pull/89453)). -- Fix `compiledb` SCons tool availability ([GH-89481](https://github.com/godotengine/godot/pull/89481)). -- SCons: Disable verbose output for SCU build ([GH-89483](https://github.com/godotengine/godot/pull/89483)). -- CI: Enable submodules on the checkout action ([GH-89552](https://github.com/godotengine/godot/pull/89552)). -- Fix some build errors with `disable_3d=yes` ([GH-89760](https://github.com/godotengine/godot/pull/89760)). -- Fix encoding when reading files ([GH-89858](https://github.com/godotengine/godot/pull/89858)). -- CI: Work around diff size limit for static checks ([GH-89944](https://github.com/godotengine/godot/pull/89944)). -- CI: Improve fetching of changed files ([GH-89980](https://github.com/godotengine/godot/pull/89980)). -- SCons: Fix Ninja compilation with MSVC ([GH-90208](https://github.com/godotengine/godot/pull/90208)). -- SCons: Refactor `selected_platform` conditional ([GH-90214](https://github.com/godotengine/godot/pull/90214)). -- Fix first interaction line breaks ([GH-90221](https://github.com/godotengine/godot/pull/90221)). -- Remove buggy first interaction ([GH-90261](https://github.com/godotengine/godot/pull/90261)). -- SCons: Ensure *all* generated files can be cleaned ([GH-90270](https://github.com/godotengine/godot/pull/90270)). -- Bump GitHub workflows to SCons 4.7 ([GH-90304](https://github.com/godotengine/godot/pull/90304)). -- SCons: Fix SCU build regression on Windows ([GH-90450](https://github.com/godotengine/godot/pull/90450)). -- Replace `black` formatter with `ruff` ([GH-90457](https://github.com/godotengine/godot/pull/90457)). -- Ensure all Visual Studio files are generated with CRLF ([GH-90495](https://github.com/godotengine/godot/pull/90495)). -- mbedTLS: Add patch to fix build errors with some MSVC versions ([GH-90535](https://github.com/godotengine/godot/pull/90535)). -- SCons: Silence MSVC output bloat without hiding errors ([GH-90551](https://github.com/godotengine/godot/pull/90551)). -- Visual Studio: Fix indentation in sln file, VS is VERY PICKY ([GH-90579](https://github.com/godotengine/godot/pull/90579)). -- Fix infinite while loop on empty added file ([GH-90588](https://github.com/godotengine/godot/pull/90588)). -- SCons: Fix `silence_msvc` regression ([GH-90626](https://github.com/godotengine/godot/pull/90626)). -- mbedTLS: Fix build without the module on MinGW ([GH-90691](https://github.com/godotengine/godot/pull/90691)). -- SCons: Make new `debug_paths_relative` option opt-in ([GH-90692](https://github.com/godotengine/godot/pull/90692)). -- Only define `ENGINE_UPDATE_CHECK_ENABLED` in editor builds ([GH-90781](https://github.com/godotengine/godot/pull/90781)). -- SCons: Convert `env_base` to `env` ([GH-90814](https://github.com/godotengine/godot/pull/90814)). -- SCons: Utilize native Variable alias functionality ([GH-90857](https://github.com/godotengine/godot/pull/90857)). -- SCons: Disable `show_progress` with Ninja ([GH-90858](https://github.com/godotengine/godot/pull/90858)). -- Web: Fix building for web on Windows ([GH-90939](https://github.com/godotengine/godot/pull/90939)). -- SCons: Only use alias if SCons v4.3 or later ([GH-91072](https://github.com/godotengine/godot/pull/91072)). -- CI: [macOS] Fix CI with new GitHub runners ([GH-91074](https://github.com/godotengine/godot/pull/91074)). -- SCons: `scons_version` to environment variable ([GH-91080](https://github.com/godotengine/godot/pull/91080)). -- CI: [macOS] Build for both `arm64` and `x86_64` ([GH-91106](https://github.com/godotengine/godot/pull/91106)). -- Web: Fix closure compiler typedef annotation ([GH-91202](https://github.com/godotengine/godot/pull/91202)). -- Fix GCC 14 `-Wtemplate-id-cdtor` warnings ([GH-91208](https://github.com/godotengine/godot/pull/91208)). -- SCons: Colorize warnings/errors during generation ([GH-91220](https://github.com/godotengine/godot/pull/91220)). -- Add a GDB pretty printer to aid in debugging ([GH-91280](https://github.com/godotengine/godot/pull/91280)). -- SCons: Fixes for warn/error colorization ([GH-91318](https://github.com/godotengine/godot/pull/91318)). -- Fix for Android build on Windows ([GH-91339](https://github.com/godotengine/godot/pull/91339)). -- mbedtls: Disable AESCE on Linux ARM32, doesn't compile on our target arch ([GH-91356](https://github.com/godotengine/godot/pull/91356)). -- Fix arm64/Windows build ([GH-91360](https://github.com/godotengine/godot/pull/91360)). -- Update dependencies in D3D12 SDK installer script ([GH-91416](https://github.com/godotengine/godot/pull/91416)). -- CI: Speedup `pre-commit` static check ([GH-91417](https://github.com/godotengine/godot/pull/91417)). -- Remove "AnalyzeTemporaryDtors" from clang-tidy file ([GH-91559](https://github.com/godotengine/godot/pull/91559)). -- Fix missing space in missing sdkmanager error message ([GH-91574](https://github.com/godotengine/godot/pull/91574)). -- CI: Overhaul static checks to use `pre-commit` ([GH-91597](https://github.com/godotengine/godot/pull/91597)). -- SCons: Generate all scripts natively, implement wrapper function ([GH-91624](https://github.com/godotengine/godot/pull/91624)). -- miniupnpc: Disable socket timeout on Windows, matching upstream ([GH-91636](https://github.com/godotengine/godot/pull/91636)). -- Fix `builtin_embree=no` build linking the wrong version of Embree ([GH-91684](https://github.com/godotengine/godot/pull/91684)). -- CI: Use Emscripten 3.1.59 for Web platform ([GH-91687](https://github.com/godotengine/godot/pull/91687)). -- SCons: Process platform-specific flags earlier ([GH-91791](https://github.com/godotengine/godot/pull/91791)). -- SCons: Preserve `Environment` values when updating `Variables` ([GH-91792](https://github.com/godotengine/godot/pull/91792)). -- Web: Fix debug symbols in web builds ([GH-91800](https://github.com/godotengine/godot/pull/91800)). -- Set `execinfo=no` by default when compiling for Linux/*BSD ([GH-91817](https://github.com/godotengine/godot/pull/91817)). -- SCons: Bump minimum supported GCC version to GCC 9 ([GH-91833](https://github.com/godotengine/godot/pull/91833)). -- CI: Re-add `CHANGED_FILES` logic for pre-commit checks ([GH-91835](https://github.com/godotengine/godot/pull/91835)). -- Don't define `NO_EDITOR_SPLASH` in export templates ([GH-91866](https://github.com/godotengine/godot/pull/91866)). -- SCons: Fix generation of `disabled_classes.gen.h` after #91624 ([GH-91870](https://github.com/godotengine/godot/pull/91870)). -- SCons: Fix `silence_msvc` implementation errors ([GH-91890](https://github.com/godotengine/godot/pull/91890)). -- thorvg: Disable webp loader if corresponding module is disabled ([GH-91901](https://github.com/godotengine/godot/pull/91901)). -- CI: Consolidate pysettings via `pyproject.toml` ([GH-91954](https://github.com/godotengine/godot/pull/91954)). -- SCons: Add options to override AR, AR and RC flags ([GH-91972](https://github.com/godotengine/godot/pull/91972)). -- CI: Fix for jsdoc hook in pre-commit ([GH-92013](https://github.com/godotengine/godot/pull/92013)). -- SCons: Minor fixes/adjustments for web compilation ([GH-92026](https://github.com/godotengine/godot/pull/92026)). -- SCons: Restore compatibility with SCons < 4.0.0 ([GH-92041](https://github.com/godotengine/godot/pull/92041)). -- SCons: Bump min version to 3.1.2, test it on CI with one Linux job ([GH-92043](https://github.com/godotengine/godot/pull/92043)). -- SCons: Fix potential Windows ANSI exception ([GH-92087](https://github.com/godotengine/godot/pull/92087)). -- SCons: Convert platform `get_flags` to dictionary ([GH-92124](https://github.com/godotengine/godot/pull/92124)). -- Fix detecting when Gradle is invoked from Studio ([GH-92176](https://github.com/godotengine/godot/pull/92176)). -- Pre-commit: Allow adding downstream hooks without (less) risk of conflicts ([GH-92204](https://github.com/godotengine/godot/pull/92204)). -- Linux: Enable build config `wayland=yes use_sowrap=no` ([GH-92324](https://github.com/godotengine/godot/pull/92324)). -- SCons: Fix `RES` race condition ([GH-92325](https://github.com/godotengine/godot/pull/92325)). -- Fix build with `vulkan=no` and `d3d12=no` after #91505 ([GH-92364](https://github.com/godotengine/godot/pull/92364)). -- Fix use of undeclared identifier `__cpuidex` error on MinGW ([GH-92488](https://github.com/godotengine/godot/pull/92488)). -- Fix multichar warning in `windows_utils.cpp` ([GH-92541](https://github.com/godotengine/godot/pull/92541)). -- SCons: Fix `mono` dependency ([GH-92661](https://github.com/godotengine/godot/pull/92661)). -- CI: Make local python hooks multi-platform ([GH-92697](https://github.com/godotengine/godot/pull/92697)). -- CI: Migrate codespell logic to `pyproject.toml` ([GH-92728](https://github.com/godotengine/godot/pull/92728)). -- Windows: Fix 32-bit MinGW LTO build ([GH-92753](https://github.com/godotengine/godot/pull/92753)). -- Style: Optimize `.svg` files via `svgo`; add as pre-commit hook ([GH-92766](https://github.com/godotengine/godot/pull/92766)). -- Ignore Kate's build file ([GH-92803](https://github.com/godotengine/godot/pull/92803)). -- Fix building glslang on platforms without `<filesystem>` ([GH-92819](https://github.com/godotengine/godot/pull/92819)). -- Android: Change the way `doNotStrip` is set ([GH-92859](https://github.com/godotengine/godot/pull/92859)). -- Replace deprecated `USE_WEBGL2` linker flag ([GH-92988](https://github.com/godotengine/godot/pull/92988)). -- CI: Hotfix for build error with newer clang++ ([GH-92993](https://github.com/godotengine/godot/pull/92993)). -- Web: Fix thread+dlink builds with emscripten 3.1.61+git ([GH-93143](https://github.com/godotengine/godot/pull/93143)). -- Enable usage of asan-enabled versions of prebuilt libraries ([GH-93152](https://github.com/godotengine/godot/pull/93152)). -- CI: Add manual pre-commit hook for `clang-tidy` ([GH-93271](https://github.com/godotengine/godot/pull/93271)). -- Fix building with `use_volk=yes` on MacOS ([GH-93331](https://github.com/godotengine/godot/pull/93331)). -- Fix not using `encoding="utf-8"` when writing to files or reading from them ([GH-93342](https://github.com/godotengine/godot/pull/93342)). -- [Windows/ARM64] Fix raycast/embree ARM64 build with LLVM/MinGW ([GH-93364](https://github.com/godotengine/godot/pull/93364)). -- [LLVM/MinGW] Fix/suppress DX12 related warnings ([GH-93369](https://github.com/godotengine/godot/pull/93369)). -- CI: Keep GHA artifacts for 60 days ([GH-93421](https://github.com/godotengine/godot/pull/93421)). -- Remove private glslang include ([GH-93471](https://github.com/godotengine/godot/pull/93471)). -- Disable `*glGetProcAddress()` on the web ([GH-93489](https://github.com/godotengine/godot/pull/93489)). -- Fix type-limits warning in `windows_utils` ([GH-93491](https://github.com/godotengine/godot/pull/93491)). -- Style: Relocate `godot_gdb_pretty_print.py` ([GH-93511](https://github.com/godotengine/godot/pull/93511)). -- CI: Add editor target to Android builds config ([GH-93553](https://github.com/godotengine/godot/pull/93553)). -- Windows: Fix arch detection via `VCTOOLSINSTALLDIR` if not first in `PATH` ([GH-93589](https://github.com/godotengine/godot/pull/93589)). -- SCons: Fix output with `vsproj=yes` ([GH-93753](https://github.com/godotengine/godot/pull/93753)). -- Web: Remove unnecessary `EMCC_FORCE_STDLIBS` in dlink builds ([GH-93853](https://github.com/godotengine/godot/pull/93853)). -- SCons: Don't override cl flags on msvc ([GH-94078](https://github.com/godotengine/godot/pull/94078)). -- SCons: Default `optimize` to `auto`, fixing `target`/`dev_build` inference for Web ([GH-94107](https://github.com/godotengine/godot/pull/94107)). -- SCons: Pass optimization flags to the linker too, needed by Emscripten ([GH-94109](https://github.com/godotengine/godot/pull/94109)). -- SCons: Fix build fetching `git_timestamp` if git `log.showsignature=true` ([GH-94115](https://github.com/godotengine/godot/pull/94115)). -- Fix VS project generation with SCons 4.8.0+ ([GH-94117](https://github.com/godotengine/godot/pull/94117)). -- Fix a couple GCC 14 `-Wmaybe-uninitialized` warnings ([GH-94133](https://github.com/godotengine/godot/pull/94133)). -- CI: Upload build cache before running tests ([GH-94314](https://github.com/godotengine/godot/pull/94314)). -- CI: Bump SCons version (4.7.0→4.8.0) ([GH-94444](https://github.com/godotengine/godot/pull/94444)). -- Windows: Fix release export template build for ARM64 Windows ([GH-94533](https://github.com/godotengine/godot/pull/94533)). -- Fix `header_guards.py` so it detects the copyright header properly ([GH-94652](https://github.com/godotengine/godot/pull/94652)). -- Web: Fix closure compiler builds, enable it in CI ([GH-94789](https://github.com/godotengine/godot/pull/94789)). -- Automatically enable `doNotStrip` for dev builds ([GH-94887](https://github.com/godotengine/godot/pull/94887)). -- Enable ASTC encoder build when building with ANGLE ([GH-94903](https://github.com/godotengine/godot/pull/94903)). -- SCons: Load optional ninja tool before setting its options ([GH-94993](https://github.com/godotengine/godot/pull/94993)). -- macOS: Fix `generate_bundle` build flag for .NET builds ([GH-95189](https://github.com/godotengine/godot/pull/95189)). -- CI: Update Emscripten to 3.1.64 ([GH-95277](https://github.com/godotengine/godot/pull/95277)). -- Make sure not to generate the compile_commands.json when not asked ([GH-95338](https://github.com/godotengine/godot/pull/95338)). +- Disable unused Basis Universal features to reduce binary size ([GH-85321](https://github.com/godotengine/godot/pull/85321)). +- SCons: Add `num_jobs` as an explicit option so it can be set from other sources ([GH-87376](https://github.com/godotengine/godot/pull/87376)). +- Update CODEOWNERS ([GH-89486](https://github.com/godotengine/godot/pull/89486)). +- Web: Fix browser opening too early with `serve.py` ([GH-90352](https://github.com/godotengine/godot/pull/90352)). +- SCons: Detect MSVC compiler version ([GH-91069](https://github.com/godotengine/godot/pull/91069)). +- Clean up the gradle build logic used to generate the Godot Android binaries ([GH-91271](https://github.com/godotengine/godot/pull/91271)). +- Add support for compiling with VS clang-cl toolset ([GH-92316](https://github.com/godotengine/godot/pull/92316)). +- SCons: Add unobtrusive type hints in SCons files ([GH-93058](https://github.com/godotengine/godot/pull/93058)). +- CI: Update `clang-format` pre-commit hook to latest version ([GH-93313](https://github.com/godotengine/godot/pull/93313)). +- Style: Apply `clang-tidy` fixes ([GH-93401](https://github.com/godotengine/godot/pull/93401)). +- SCons: Improve colored output ([GH-93479](https://github.com/godotengine/godot/pull/93479)). +- Style: Format `.yaml`/`.yml` files ([GH-94091](https://github.com/godotengine/godot/pull/94091)). +- Some improvements for MinGW and LLVM build on Windows ([GH-94747](https://github.com/godotengine/godot/pull/94747)). +- Windows: Add sanitizers for llvm-mingw, increase stack for ASan ([GH-94845](https://github.com/godotengine/godot/pull/94845)). +- SCons: Add method to generate raw cstrings ([GH-94995](https://github.com/godotengine/godot/pull/94995)). +- Remove unnecessary DLL export attributes ([GH-95417](https://github.com/godotengine/godot/pull/95417)). +- Expose more Ninja-related build options ([GH-95504](https://github.com/godotengine/godot/pull/95504)). +- Fix compilation issues caused by `far` identifier ([GH-95768](https://github.com/godotengine/godot/pull/95768)). +- Enable more standards conformance for MSVC ([GH-95800](https://github.com/godotengine/godot/pull/95800)). +- macOS/iOS: Fix various warnings when targeting newer SDKs ([GH-95854](https://github.com/godotengine/godot/pull/95854)). +- SCons: Better validation for platform-specific opt-in drivers ([GH-95921](https://github.com/godotengine/godot/pull/95921)). +- Fix build error in arm32 ([GH-95975](https://github.com/godotengine/godot/pull/95975)). +- Windows: Move `__REQUIRED_RPCNDR_H_VERSION__` to the header ([GH-96085](https://github.com/godotengine/godot/pull/96085)). +- Properly mute `-Wundefined-var-template` Clang warning in SafeBinaryMutex ([GH-96108](https://github.com/godotengine/godot/pull/96108)). +- SCons: Pass `/Zc:__cplusplus` in MSVC builds ([GH-96244](https://github.com/godotengine/godot/pull/96244)). +- Android: Check if `keyStore` path is empty ([GH-96254](https://github.com/godotengine/godot/pull/96254)). +- zstd: Make sure `huf_decompress` is only applied to 64-bit x86 ([GH-96303](https://github.com/godotengine/godot/pull/96303)). +- mingw: Only use `ar --thin` on supported versions ([GH-96373](https://github.com/godotengine/godot/pull/96373)). +- Remove `ARFLAGS` hack for Windows, replace with `TEMPFILE` ([GH-96407](https://github.com/godotengine/godot/pull/96407)). +- SCons: Set appropriate prefix when using clang-cl ([GH-96447](https://github.com/godotengine/godot/pull/96447)). +- Fix SCU global namespace conflict in `resource_format_text.cpp` ([GH-96511](https://github.com/godotengine/godot/pull/96511)). +- Store GLES over GL status in the OS to avoid direct renderer includes in the editor ([GH-96525](https://github.com/godotengine/godot/pull/96525)). +- Core: Optionally delete `Ref` `nullptr` comparisons ([GH-96532](https://github.com/godotengine/godot/pull/96532)). +- Fix iOS Simulator compiler error ([GH-96597](https://github.com/godotengine/godot/pull/96597)). +- Web: Update minimum requirements for emscripten to 3.1.62 ([GH-96610](https://github.com/godotengine/godot/pull/96610)). +- SCons: Make ninja output file consistent ([GH-96712](https://github.com/godotengine/godot/pull/96712)). +- MinGW: Fix GCC ar detection ([GH-96747](https://github.com/godotengine/godot/pull/96747)). +- Improve cache handling ([GH-96752](https://github.com/godotengine/godot/pull/96752)). +- SCons: Make `lto=auto` prefer ThinLTO over full LTO for LLVM targets ([GH-96785](https://github.com/godotengine/godot/pull/96785)). +- SCons: Fix `clang-cl` link/ar flags ([GH-96813](https://github.com/godotengine/godot/pull/96813)). +- [Android editor] Update the Android editor flavors ([GH-96967](https://github.com/godotengine/godot/pull/96967)). +- Fix weird MSVC compilation error ([GH-97059](https://github.com/godotengine/godot/pull/97059)). +- Fix eslint .pre-commit-config.yaml by removing commas ([GH-97077](https://github.com/godotengine/godot/pull/97077)). +- Fix using Binutils `AR` with `TEMPFILE` on Windows ([GH-97188](https://github.com/godotengine/godot/pull/97188)). +- Style: Update `ruff` & `mypy` to latest versions ([GH-97237](https://github.com/godotengine/godot/pull/97237)). +- Remove direct render include in `ExternalTexture` ([GH-97279](https://github.com/godotengine/godot/pull/97279)). +- In make_rst.py, include the parent class in 'Inherits:' even if it is not known ([GH-97337](https://github.com/godotengine/godot/pull/97337)). +- CI: Add MinGW/GCC build to Windows GHA ([GH-97446](https://github.com/godotengine/godot/pull/97446)). +- SCons: Remove MAXLINELENGTH override for MSVC ([GH-97458](https://github.com/godotengine/godot/pull/97458)). +- CI: Update `clang-format` pre-commit hook to 19.1.0 ([GH-97483](https://github.com/godotengine/godot/pull/97483)). +- CI: Support merge queues with default runner ([GH-97503](https://github.com/godotengine/godot/pull/97503)). +- Move Vulkan includes to a central `godot_vulkan.h` header ([GH-97510](https://github.com/godotengine/godot/pull/97510)). +- Use dedicated `print_error` method for colored output for unsupported drivers ([GH-97552](https://github.com/godotengine/godot/pull/97552)). +- Build System: Extract `validate_arch` helper functions ([GH-97555](https://github.com/godotengine/godot/pull/97555)). +- Extract common check functions in windows_detect.py file ([GH-97556](https://github.com/godotengine/godot/pull/97556)). +- Replace comments with printed warning for Metal on x86_64 ([GH-97570](https://github.com/godotengine/godot/pull/97570)). +- Add a few missing CODEOWNERS ([GH-97581](https://github.com/godotengine/godot/pull/97581)). +- SCons: Fix MSVC decode error ([GH-97618](https://github.com/godotengine/godot/pull/97618)). +- SCons: Include pre-release in MSVC detection ([GH-97622](https://github.com/godotengine/godot/pull/97622)). +- SCons: Bump C standard: `C11`→`C17` ([GH-97626](https://github.com/godotengine/godot/pull/97626)). +- SCons: Fix MSVC version check for VS Preview ([GH-97639](https://github.com/godotengine/godot/pull/97639)). +- Enable use of Labels as Values feature in Clang when not wrapped by GCC ([GH-97727](https://github.com/godotengine/godot/pull/97727)). +- Improve detection of ccache on macOS ([GH-97810](https://github.com/godotengine/godot/pull/97810)). +- Make module dependency check recursive ([GH-97813](https://github.com/godotengine/godot/pull/97813)). +- Add loongarch64 support for Linux/*BSD ([GH-97822](https://github.com/godotengine/godot/pull/97822)). +- Update `CODEOWNERS` ([GH-97866](https://github.com/godotengine/godot/pull/97866)). +- macOS: Update Vulkan SDK install script ([GH-97981](https://github.com/godotengine/godot/pull/97981)). +- SCons: Extend `MinGW` support & checks ([GH-98105](https://github.com/godotengine/godot/pull/98105)). +- SCons: Improve cache purging logic ([GH-98154](https://github.com/godotengine/godot/pull/98154)). +- Don't include `core/io/image.h` in `core/os/os.h` ([GH-98237](https://github.com/godotengine/godot/pull/98237)). +- Add some folders which would benefit from scu to scu pipeline ([GH-98261](https://github.com/godotengine/godot/pull/98261)). +- Android & iOS: Enable strict aliasing ([GH-98380](https://github.com/godotengine/godot/pull/98380)). +- Implement `CODEOWNERS` corrections ([GH-98399](https://github.com/godotengine/godot/pull/98399)). +- Fix Linux builds with separate debug symbols file when there is a space in the path ([GH-98506](https://github.com/godotengine/godot/pull/98506)). +- Misc: Check for the available and installed Vulkan SDK versions before downloading and installing ([GH-98608](https://github.com/godotengine/godot/pull/98608)). +- Update the `production` build argument for Android Studio debug builds ([GH-98687](https://github.com/godotengine/godot/pull/98687)). +- Remove duplicate of `get_build_version` ([GH-98697](https://github.com/godotengine/godot/pull/98697)). +- Allow multiple platform API files ([GH-98700](https://github.com/godotengine/godot/pull/98700)). +- Delete stale check, make SCons support globbing with `#` inside path ([GH-98774](https://github.com/godotengine/godot/pull/98774)). +- Add missing checks for non-3D builds in scene debugger ([GH-98777](https://github.com/godotengine/godot/pull/98777)). +- CI: Update clang format/tidy pre-commit versions ([GH-98837](https://github.com/godotengine/godot/pull/98837)). +- Remove pre-Visual Studio 2017 detection code in the buildsystem ([GH-98842](https://github.com/godotengine/godot/pull/98842)). +- SCons: Replace `_find_scu_section_name` function with SCons builtins ([GH-98888](https://github.com/godotengine/godot/pull/98888)). +- CI: Update Linux runners to Ubuntu 24.04 ([GH-98898](https://github.com/godotengine/godot/pull/98898)). +- Web: Ensure editor crossorigin isolation headers ([GH-98901](https://github.com/godotengine/godot/pull/98901)). +- Make SCons SCU build banner less intrusive ([GH-98960](https://github.com/godotengine/godot/pull/98960)). +- Add `Ref` and `HashSet` to `godot.natvis` ([GH-98961](https://github.com/godotengine/godot/pull/98961)). +- Web: Don't cache emsdk ([GH-98965](https://github.com/godotengine/godot/pull/98965)). +- Windows: Fix duplicate .exe extension with mingw on Linux/macOS ([GH-98968](https://github.com/godotengine/godot/pull/98968)). +- Linux: Regenerate X11 wrappers with dynload-wrapper 0.6 ([GH-98976](https://github.com/godotengine/godot/pull/98976)). +- Trim a few no-break and zero-width spaces from codebase ([GH-99031](https://github.com/godotengine/godot/pull/99031)). +- Windows: Rename `PKEY_Device_FriendlyName` to avoid duplicate symbols with newer MinGW SDKs ([GH-99036](https://github.com/godotengine/godot/pull/99036)). +- Windows: Expand `godot.natvis` type coverage ([GH-99042](https://github.com/godotengine/godot/pull/99042)). +- Web: Remove deprecated worker.js file ([GH-99044](https://github.com/godotengine/godot/pull/99044)). +- Unify compatibility aliases ([GH-99046](https://github.com/godotengine/godot/pull/99046)). +- Web: Fix Web Editor plugin being added to SCons multiple times ([GH-99061](https://github.com/godotengine/godot/pull/99061)). +- CI: Update `ruff` & `mypy` pre-commit hooks ([GH-99080](https://github.com/godotengine/godot/pull/99080)). +- Update JavaScript/Java plugins to solve known vulnerabilities ([GH-99123](https://github.com/godotengine/godot/pull/99123)). +- SCons: Bump minimum version of SCons to 4.0 & Python to 3.8 ([GH-99134](https://github.com/godotengine/godot/pull/99134)). +- Delete old unused code for VS project generation ([GH-99138](https://github.com/godotengine/godot/pull/99138)). +- Use pkg-config for miniupnpc and mbedtls ([GH-99171](https://github.com/godotengine/godot/pull/99171)). +- Refactor compiler detection code ([GH-99217](https://github.com/godotengine/godot/pull/99217)). +- Use scons to calculate all the sources needed for vsproj generation ([GH-99274](https://github.com/godotengine/godot/pull/99274)). +- Fix 32-bit Windows build ([GH-99280](https://github.com/godotengine/godot/pull/99280)). +- SCons: Fix up build after cache logic changes ([GH-99291](https://github.com/godotengine/godot/pull/99291)). +- SCons: Address minor `show_progress` issues ([GH-99292](https://github.com/godotengine/godot/pull/99292)). +- Add web support for all missing splash screen properties ([GH-99296](https://github.com/godotengine/godot/pull/99296)). +- CI: Bump SCons to latest (4.8.0 → 4.8.1) ([GH-99332](https://github.com/godotengine/godot/pull/99332)). +- SCons: Move `swappy` option to android and slightly refactor `detect.py` ([GH-99351](https://github.com/godotengine/godot/pull/99351)). +- SCons: Pass `ninja_file` variable in tool instead of default name ([GH-99386](https://github.com/godotengine/godot/pull/99386)). +- Codeowners: Add missing test ownership ([GH-99462](https://github.com/godotengine/godot/pull/99462)). +- SCons: Misc improvements ([GH-99472](https://github.com/godotengine/godot/pull/99472)). +- Prevent cache check mangling access time ([GH-99501](https://github.com/godotengine/godot/pull/99501)). +- Fix broken includes when compiling with `builtin_miniupnpc=false` ([GH-99556](https://github.com/godotengine/godot/pull/99556)). +- Fix path format for SCU builds on Windows ([GH-99629](https://github.com/godotengine/godot/pull/99629)). +- Tweak cache sizes for CI ([GH-99709](https://github.com/godotengine/godot/pull/99709)). +- CI: Remove leading-underscore teams from `CODEOWNERS` ([GH-99717](https://github.com/godotengine/godot/pull/99717)). +- CI: Add explicit problem matchers ([GH-99770](https://github.com/godotengine/godot/pull/99770)). +- basis_universal: Clarify encoder-only dependencies, only used in editor builds ([GH-99860](https://github.com/godotengine/godot/pull/99860)). +- GitHub Actions: Use quiet xmllint output to only print error lines ([GH-100042](https://github.com/godotengine/godot/pull/100042)). +- Make Godot compile on `FreeBSD` ([GH-100047](https://github.com/godotengine/godot/pull/100047)). +- Linux: Relax interdependency between freetype, libpng, and zlib for unvendored builds ([GH-100052](https://github.com/godotengine/godot/pull/100052)). +- thorvg: Regenerate and apply patches ([GH-100140](https://github.com/godotengine/godot/pull/100140)). +- Fix crash within header_guards when a file is too short ([GH-100167](https://github.com/godotengine/godot/pull/100167)). +- SCons: Fix MSVC bypassing disabled warnings ([GH-100185](https://github.com/godotengine/godot/pull/100185)). +- Windows: Fix MinGW debug symbols ([GH-100207](https://github.com/godotengine/godot/pull/100207)). +- SCons: Unconditionally use `env.Decider("MD5-timestamp")` ([GH-100210](https://github.com/godotengine/godot/pull/100210)). +- Windows: Use `dwarf-4` for clang builds on Windows ([GH-100270](https://github.com/godotengine/godot/pull/100270)). +- SCons: Properly set SSE2 as baseline on x86_32 ([GH-100337](https://github.com/godotengine/godot/pull/100337)). +- Exclude known thirdparty/ ubsan errors ([GH-100380](https://github.com/godotengine/godot/pull/100380)). +- Add thirdparty/ ubsan suppressions for TPS demo ([GH-100382](https://github.com/godotengine/godot/pull/100382)). +- Fix `taa_resolve.glsl` path in COPYRIGHT.txt ([GH-100535](https://github.com/godotengine/godot/pull/100535)). +- Web: Security upgrade eslint from 9.12.0 to 9.15.0 ([GH-100553](https://github.com/godotengine/godot/pull/100553)). +- Remove unused headers in core ([GH-100564](https://github.com/godotengine/godot/pull/100564)). +- [Windows, LLVM] Fix `colorize` flag ([GH-100577](https://github.com/godotengine/godot/pull/100577)). +- SCons: Don't update node count when cleaning ([GH-100624](https://github.com/godotengine/godot/pull/100624)). +- Force build editor with regex module, remove checking code ([GH-100751](https://github.com/godotengine/godot/pull/100751)). +- Fix Mold-search in older systems ([GH-100827](https://github.com/godotengine/godot/pull/100827)). +- Style: Add `.clangd` config ([GH-100828](https://github.com/godotengine/godot/pull/100828)). +- .clang-format: Change AllowShortFunctionsOnASingleLine back to `Inline` ([GH-100830](https://github.com/godotengine/godot/pull/100830)). +- Pre-commit: Fix applying ruff to SCsub files ([GH-100870](https://github.com/godotengine/godot/pull/100870)). +- Fix MSVC Variant Workaround ([GH-100904](https://github.com/godotengine/godot/pull/100904)). +- Style: Integrate minor pre-commit/`yaml` adjustments ([GH-100908](https://github.com/godotengine/godot/pull/100908)). +- CI: Fix GHA bug by defining a single concurrency ([GH-100912](https://github.com/godotengine/godot/pull/100912)). +- SCons: Properly `NoCache` all text files ([GH-101008](https://github.com/godotengine/godot/pull/101008)). +- Style: Unify `.editorconfig` logic ([GH-101235](https://github.com/godotengine/godot/pull/101235)). +- SCons: Refactor color output implementation ([GH-101249](https://github.com/godotengine/godot/pull/101249)). +- CI: Ensure problem matchers handle colored output ([GH-101316](https://github.com/godotengine/godot/pull/101316)). +- SCons: Fix missing context for `print_info`/`warning`/`error` when colors are off ([GH-101322](https://github.com/godotengine/godot/pull/101322)). +- SCons: Specify optional dependencies for modules ([GH-101327](https://github.com/godotengine/godot/pull/101327)). +- CI: Install apt dependencies directly, works around issue with `awalsh128/cache-apt-pkgs-action` ([GH-101363](https://github.com/godotengine/godot/pull/101363)). +- Bump version to 4.4-beta ([GH-101552](https://github.com/godotengine/godot/pull/101552)). +- iOS: Weak-link MetalFX ([GH-101614](https://github.com/godotengine/godot/pull/101614)). +- Break after purging cache ([GH-101674](https://github.com/godotengine/godot/pull/101674)). +- CI: Tighten timeout period for all jobs ([GH-101712](https://github.com/godotengine/godot/pull/101712)). +- SCons: Fix handling of platform-specific tools, notably `mingw` ([GH-101726](https://github.com/godotengine/godot/pull/101726)). +- jpeg-compressor: Fix include when compiling with Clang and `FORTIFY_SOURCE >= 1` ([GH-101927](https://github.com/godotengine/godot/pull/101927)). +- Git-ignore built `Godot.app` package ([GH-101989](https://github.com/godotengine/godot/pull/101989)). +- Add missing `cstdint` includes for GCC 15 ([GH-102022](https://github.com/godotengine/godot/pull/102022)). +- Change `VariantUtility` to prevent undef `print_verbose` ([GH-102062](https://github.com/godotengine/godot/pull/102062)). +- Update CI `ruff` & `mypy` pre-commit hooks ([GH-102246](https://github.com/godotengine/godot/pull/102246)). +- Windows: Fix build with MinGW 8.0.0-1 ([GH-102255](https://github.com/godotengine/godot/pull/102255)). +- SCons: Apply new ruff/mypy fixes ([GH-102371](https://github.com/godotengine/godot/pull/102371)). +- CI: Add a Linux job for `template_debug` ([GH-102423](https://github.com/godotengine/godot/pull/102423)). +- Workaround mingw-gcc LTO ICE by re-adding some dead code. ([GH-102506](https://github.com/godotengine/godot/pull/102506)). +- CI: Separate Android editor artifacts ([GH-102543](https://github.com/godotengine/godot/pull/102543)). +- Update MoltenVK install script to include version number in installer name ([GH-102554](https://github.com/godotengine/godot/pull/102554)). +- Wayland: Fix build config with `so_wrap` disabled ([GH-102673](https://github.com/godotengine/godot/pull/102673)). +- CI: Remove outdated reference to ubuntu-20.04 ([GH-102720](https://github.com/godotengine/godot/pull/102720)). +- Remove problematic file from SCU ([GH-102730](https://github.com/godotengine/godot/pull/102730)). +- Windows: Configure MinGW LTO with `-fno-use-linker-plugin -fwhole-program` ([GH-103077](https://github.com/godotengine/godot/pull/103077)). +- Fix libtheora optimizations causing errors in calling function for x86_64 Windows ([GH-103176](https://github.com/godotengine/godot/pull/103176)). +- Windows: Fix unused variable error in `DisplayServerWindows` ([GH-103252](https://github.com/godotengine/godot/pull/103252)). +- Windows: Fix unreachable code in `DisplayServer` ([GH-103286](https://github.com/godotengine/godot/pull/103286)). +- Fix compiling on arm64 Linux with GCC ([GH-103303](https://github.com/godotengine/godot/pull/103303)). +- Add `(void *)` cast directly to `GetProcAddress` calls ([GH-103354](https://github.com/godotengine/godot/pull/103354)). +- CI: Run `apt install` before installing libxml2-utils, GHA cache got flaky ([GH-103484](https://github.com/godotengine/godot/pull/103484)). #### C# -- Add analyzer release tracking ([GH-80343](https://github.com/godotengine/godot/pull/80343)). -- Allow Editor to reload external changes of scripts ([GH-82113](https://github.com/godotengine/godot/pull/82113)). -- Add unit tests for C# source generators ([GH-82955](https://github.com/godotengine/godot/pull/82955)). -- [C#] Enable nullability for variant structs ([GH-82980](https://github.com/godotengine/godot/pull/82980)). -- [C#] Enable nullability for variant classes ([GH-82983](https://github.com/godotengine/godot/pull/82983)). -- [.NET] Fix serialization of delegates capturing variables ([GH-83217](https://github.com/godotengine/godot/pull/83217)). -- Bindings generator langword check ([GH-83504](https://github.com/godotengine/godot/pull/83504)). -- Disable "Activate now" when creating addons ([GH-83578](https://github.com/godotengine/godot/pull/83578)). -- Use `get_instance_binding` instead of set ([GH-84947](https://github.com/godotengine/godot/pull/84947)). -- Bump the `JetBrains.Rider.PathLocator` PackageReference to 1.0.8 ([GH-85460](https://github.com/godotengine/godot/pull/85460)). -- Fix C# script loader does not work reliably ([GH-85504](https://github.com/godotengine/godot/pull/85504)). -- .NET: Add a warning in the inspector when properties might be out of sync ([GH-85869](https://github.com/godotengine/godot/pull/85869)). -- Allow using `[MustBeVariant]` in generic typed attributes ([GH-85908](https://github.com/godotengine/godot/pull/85908)). -- Implement function to throw on null pointers ([GH-85975](https://github.com/godotengine/godot/pull/85975)). -- Correctly free relevant scripts when closing scene tabs ([GH-86008](https://github.com/godotengine/godot/pull/86008)). -- Use string literal instead of nameof ([GH-86373](https://github.com/godotengine/godot/pull/86373)). -- Upgrade TFM for `net472` and some `netstandard2.0` projects ([GH-86454](https://github.com/godotengine/godot/pull/86454)). -- Add unit tests for C# diagnostic analyzers ([GH-86528](https://github.com/godotengine/godot/pull/86528)). -- Fix typo in GD0103 error link ([GH-86592](https://github.com/godotengine/godot/pull/86592)). -- Add code sample language parity check to `make_rst.py` ([GH-86971](https://github.com/godotengine/godot/pull/86971)). -- Fix return type hint for methods ([GH-86972](https://github.com/godotengine/godot/pull/86972)). -- Enforce globalization code quality rules ([GH-87133](https://github.com/godotengine/godot/pull/87133)). -- Enable nullable environment for `GodotTools` ([GH-87137](https://github.com/godotengine/godot/pull/87137)). -- Provide a roslyn analyzers corresponding to the GD0001 and GD0002 ([GH-87253](https://github.com/godotengine/godot/pull/87253)). -- [C#] Fix `Encloses` failing on shared upper bound for `AABB` and `Rect2(I)` ([GH-87264](https://github.com/godotengine/godot/pull/87264)). -- Use SymbolEqualityComparer ([GH-87342](https://github.com/godotengine/godot/pull/87342)). -- Clean a number of C# warnings ([GH-87518](https://github.com/godotengine/godot/pull/87518)). -- Fix incorrect GC handle for non-instantiable types ([GH-87526](https://github.com/godotengine/godot/pull/87526)). -- Fix sorting for generic types when reloading assemblies ([GH-87550](https://github.com/godotengine/godot/pull/87550)). -- Fix not assigning `runtime_initialized` when initializing with AOT ([GH-87597](https://github.com/godotengine/godot/pull/87597)). -- Fix possible deadlock when creating scripts during a background garbage collection ([GH-87669](https://github.com/godotengine/godot/pull/87669)). -- Remove unused code ([GH-87679](https://github.com/godotengine/godot/pull/87679)). -- Fix issues for StringName reference in `CSharpInstanceBridge.Get` ([GH-87682](https://github.com/godotengine/godot/pull/87682)). -- Fix incorrect condition for error filtering ([GH-87790](https://github.com/godotengine/godot/pull/87790)). -- Throw exception when solution file is missing during exporting ([GH-87829](https://github.com/godotengine/godot/pull/87829)). -- Fix duplicate key issue on reload ([GH-87838](https://github.com/godotengine/godot/pull/87838)). -- Improve handling of generic C# types ([GH-87890](https://github.com/godotengine/godot/pull/87890)). -- Add `Callable` `call_deferred()` C# example ([GH-87928](https://github.com/godotengine/godot/pull/87928)). -- Disable signal callback generation in C# ([GH-87952](https://github.com/godotengine/godot/pull/87952)). -- Fix crash when reloading scripts ([GH-88048](https://github.com/godotengine/godot/pull/88048)). -- Fix C# "out of sync" notice with external editors ([GH-88076](https://github.com/godotengine/godot/pull/88076)). -- Fix processing exclusions during export ([GH-88238](https://github.com/godotengine/godot/pull/88238)). -- Fix missing CowData 64-bit promotion for `PackedInt32Array` ([GH-88268](https://github.com/godotengine/godot/pull/88268)). -- Run source generators tests in CI ([GH-88295](https://github.com/godotengine/godot/pull/88295)). -- Various fixes to generic scripts ([GH-88371](https://github.com/godotengine/godot/pull/88371)). -- Match Core implementation of `BinToInt` & `HexToInt` ([GH-88453](https://github.com/godotengine/godot/pull/88453)). -- [.NET] Clean diagnostic rules ([GH-88469](https://github.com/godotengine/godot/pull/88469)). -- Fix building OpenVisualStudio executable ([GH-88475](https://github.com/godotengine/godot/pull/88475)). -- [.NET] Test and fix exports diagnostics ([GH-88495](https://github.com/godotengine/godot/pull/88495)). -- Bump `Rider.PathLocator` nuget version, which provides a fix for detecting Rider installations ([GH-88544](https://github.com/godotengine/godot/pull/88544)). -- [.NET] Better `.editorconfig` setup in `modules/mono/` ([GH-88570](https://github.com/godotengine/godot/pull/88570)). -- Fix Script Editor saves C# files as embedded scripts ([GH-88692](https://github.com/godotengine/godot/pull/88692)). -- Add deprecated message to generated bindings ([GH-88730](https://github.com/godotengine/godot/pull/88730)). -- Revise implementation of C# `Aabb.GetSupport` to match the implementation in `core` ([GH-88919](https://github.com/godotengine/godot/pull/88919)). -- Only check for empty deprecation message if deprecated ([GH-88921](https://github.com/godotengine/godot/pull/88921)). -- Move dotnet-format script to pre-commit ([GH-88933](https://github.com/godotengine/godot/pull/88933)). -- Fix C# epsilon compiler error on double precision build ([GH-88994](https://github.com/godotengine/godot/pull/88994)). -- [.NET] Fix interpolated strings in ScriptPropertyDefVal ([GH-89007](https://github.com/godotengine/godot/pull/89007)). -- Hint fallback property as node when it is a node ([GH-89175](https://github.com/godotengine/godot/pull/89175)). -- Fix warnings in GodotSharp ([GH-89317](https://github.com/godotengine/godot/pull/89317)). -- Implement `InvariantCulture` on Variant strings ([GH-89547](https://github.com/godotengine/godot/pull/89547)). -- Add property `UsingGodotNETSdk` to Godot.NET.Sdk ([GH-89652](https://github.com/godotengine/godot/pull/89652)). -- Fix errors when creating `Variant` from null array ([GH-89756](https://github.com/godotengine/godot/pull/89756)). -- [C#] Fix `Transform3D.InterpolateWith` applying rotation before scale ([GH-89843](https://github.com/godotengine/godot/pull/89843)). -- Fix regression with C# build editor crash due to `EditorHelpHighlighter` ([GH-89861](https://github.com/godotengine/godot/pull/89861)). -- Make internal properties and property accessors public (but hidden) ([GH-90002](https://github.com/godotengine/godot/pull/90002)). -- Add DebugView for Array and Dictionary, based of the DebugView from the .NET Foundation ([GH-90060](https://github.com/godotengine/godot/pull/90060)). -- Fix "Create C# solution" dialog ([GH-90118](https://github.com/godotengine/godot/pull/90118)). -- [.NET] Disable output embedding on macOS, move it to the advanced options on other platforms ([GH-90422](https://github.com/godotengine/godot/pull/90422)). -- Fix ExprMatch for case sensitive matching ([GH-90678](https://github.com/godotengine/godot/pull/90678)). -- Change order of operation for C# types reloading ([GH-90837](https://github.com/godotengine/godot/pull/90837)). -- Don't return MethodInfo for overloaded methods ([GH-90968](https://github.com/godotengine/godot/pull/90968)). -- Enforce using .NET SDK >= 8 ([GH-91079](https://github.com/godotengine/godot/pull/91079)). -- Fill copyright field in .csproj files to ensure that nuget packages will have both license and copyright fields filled ([GH-91144](https://github.com/godotengine/godot/pull/91144)). -- Fix `StringExtensions.CompareTo` IndexOutOfRangeException ([GH-91203](https://github.com/godotengine/godot/pull/91203)). -- Ignore late bound methods in MustBeVariantAnalyzer ([GH-91368](https://github.com/godotengine/godot/pull/91368)). -- Fix generator crash w/ generic arrays ([GH-91375](https://github.com/godotengine/godot/pull/91375)). -- Fix attributes for `sln`/`csproj` files ([GH-91479](https://github.com/godotengine/godot/pull/91479)). -- .NET: Prevent generating mono glue in project folder ([GH-91509](https://github.com/godotengine/godot/pull/91509)). -- [C#] Unexpose `GodotSharp` ([GH-91557](https://github.com/godotengine/godot/pull/91557)). -- CSharpScript should not own method infos of the base class ([GH-91564](https://github.com/godotengine/godot/pull/91564)). -- Fix C# Hint NodeType and ResourceType HintString ([GH-91645](https://github.com/godotengine/godot/pull/91645)). -- Specify a runtime rollforward for OpenVisualStudio ([GH-91670](https://github.com/godotengine/godot/pull/91670)). -- Fix comparison warnings in `StringExtensions.cs` ([GH-91763](https://github.com/godotengine/godot/pull/91763)). -- [C#] Remove useless `isFirstEntry` and useless `source.Append("else ")` ([GH-91924](https://github.com/godotengine/godot/pull/91924)). -- Fix ContextMenu `Copy Error` is off in `MSBuild` Panel ([GH-91996](https://github.com/godotengine/godot/pull/91996)). -- Skip method name when checking CallError ([GH-92800](https://github.com/godotengine/godot/pull/92800)). -- Fix freeze after building C# project with a lot of files ([GH-92893](https://github.com/godotengine/godot/pull/92893)). -- Escape generated members ([GH-93198](https://github.com/godotengine/godot/pull/93198)). -- macOS: Fix codesigning of .NET helper executables when sandboxing is disabled ([GH-94518](https://github.com/godotengine/godot/pull/94518)). -- Replace .NET detection code with `ClassDB::class_exists("CSharpScript")` ([GH-94680](https://github.com/godotengine/godot/pull/94680)). +- Generate strongly-typed method to raise signal events and fix event accessibility ([GH-68233](https://github.com/godotengine/godot/pull/68233)). +- Implement proper generic type name printing for Godot Editor ([GH-88363](https://github.com/godotengine/godot/pull/88363)). +- Fallback to CoreCLR/MonoVM hosting APIs when hostfxr/NativeAOT fails ([GH-88803](https://github.com/godotengine/godot/pull/88803)). +- Add Codium support to C# external editors ([GH-89051](https://github.com/godotengine/godot/pull/89051)). +- Move GodotSharp to .NET8 ([GH-92131](https://github.com/godotengine/godot/pull/92131)). +- Fix inability to use ResourceLoader in C# after threaded load in GDScript ([GH-92888](https://github.com/godotengine/godot/pull/92888)). +- Clear instance bindings callbacks on finalizing the language ([GH-93172](https://github.com/godotengine/godot/pull/93172)). +- Use Godot's LipO implementation instead of Xcode's lipo command ([GH-93230](https://github.com/godotengine/godot/pull/93230)). +- Fix `get_property_list` get wrong order of properties ([GH-93779](https://github.com/godotengine/godot/pull/93779)). +- Fix GD0107 not applying to arrays and dictionaries containing nodes ([GH-94599](https://github.com/godotengine/godot/pull/94599)). +- Change the `VisualShaderNodeCustom` template to use the correct override types and signatures ([GH-94693](https://github.com/godotengine/godot/pull/94693)). +- Fix Vector3 `Slerp` normalization error ([GH-94766](https://github.com/godotengine/godot/pull/94766)). +- Generate signal delegates with typed arrays ([GH-94953](https://github.com/godotengine/godot/pull/94953)). +- Expose `Transform2D.Determinant()` ([GH-95269](https://github.com/godotengine/godot/pull/95269)). +- binder_common: Fix uninitialized marshaling for `PtrToArg<char32_t>` ([GH-95317](https://github.com/godotengine/godot/pull/95317)). +- Add `NotNullWhenAttribute` to `IsInstanceValid` ([GH-95431](https://github.com/godotengine/godot/pull/95431)). +- macOS: Only set entitlements for main binaries, fixing C# signing issues ([GH-95498](https://github.com/godotengine/godot/pull/95498)). +- Move search in files extension list definition to be after Scene level module init ([GH-95502](https://github.com/godotengine/godot/pull/95502)). +- Destroy script before clearing owner ([GH-95676](https://github.com/godotengine/godot/pull/95676)). +- Fix relative paths for global class icons in C# ([GH-95808](https://github.com/godotengine/godot/pull/95808)). +- Add metadata for `char16_t` and `char32_t` ([GH-95840](https://github.com/godotengine/godot/pull/95840)). +- Fix C# code example for `Object._get_property_list` ([GH-96021](https://github.com/godotengine/godot/pull/96021)). +- Fix build logger unable to handle an event without an associated file ([GH-96293](https://github.com/godotengine/godot/pull/96293)). +- Clear existing data directory extracted from PCK ([GH-96301](https://github.com/godotengine/godot/pull/96301)). +- Generate `ReadOnlySpan<T>` Overloads for GodotSharp APIs ([GH-96329](https://github.com/godotengine/godot/pull/96329)). +- Use export platform to determine the target OS and log errors ([GH-96335](https://github.com/godotengine/godot/pull/96335)). +- Fix building with `deprecated=no` ([GH-96570](https://github.com/godotengine/godot/pull/96570)). +- Replace Reflection-Based implementation with Generated one in `CreateManagedForGodotObjectBinding` ([GH-96955](https://github.com/godotengine/godot/pull/96955)). +- Reorder C# script properties to fix editor serialization ([GH-97014](https://github.com/godotengine/godot/pull/97014)). +- Use `char *` with CoreCLR/MonoVM APIs ([GH-97120](https://github.com/godotengine/godot/pull/97120)). +- Add error messages to `BindingsGenerator` ([GH-97194](https://github.com/godotengine/godot/pull/97194)). +- Use dotnet CLI to launch `OpenVisualStudio.dll` ([GH-97198](https://github.com/godotengine/godot/pull/97198)). +- Fix C# `operator *(Transform3D, Aabb)` ([GH-97208](https://github.com/godotengine/godot/pull/97208)). +- Change generated On{SignalName} to EmitSignal{SignalName} ([GH-97588](https://github.com/godotengine/godot/pull/97588)). +- Implement `[ExportToolButton]` ([GH-97894](https://github.com/godotengine/godot/pull/97894)). +- Fix untyped dictionary .NET debug visualization showing keys as values ([GH-97951](https://github.com/godotengine/godot/pull/97951)). +- Fix unhandled GD0303 error for nested generic attribute types ([GH-98059](https://github.com/godotengine/godot/pull/98059)). +- Fix Android mono export with 2 or more cpu architectures fails ([GH-98066](https://github.com/godotengine/godot/pull/98066)). +- Fix exported typed dictionaries in .NET having an incorrect hint ([GH-98340](https://github.com/godotengine/godot/pull/98340)). +- Escape signal parameters ([GH-98459](https://github.com/godotengine/godot/pull/98459)). +- Fix StringName leak when converting `Variant` to `Signal` / `Callable` ([GH-98467](https://github.com/godotengine/godot/pull/98467)). +- Docs: Add notes about C# differences in Variant constructors ([GH-98499](https://github.com/godotengine/godot/pull/98499)). +- Fix generic arrays and dictionaries in .NET not calling `set_typed` ([GH-98545](https://github.com/godotengine/godot/pull/98545)). +- Remove duplicate read/write-only property warning from ScriptPropertiesGenerator ([GH-99206](https://github.com/godotengine/godot/pull/99206)). +- Preserve no-hint behavior for unmarshallable generics in dictionaries ([GH-99485](https://github.com/godotengine/godot/pull/99485)). +- Avoid deadlocks in multi-threaded management of the C# script map ([GH-99539](https://github.com/godotengine/godot/pull/99539)). +- Fix warnings caught by new problem-matchers ([GH-99902](https://github.com/godotengine/godot/pull/99902)). +- Upgrade user project's TargetFramework to `net8.0` ([GH-100195](https://github.com/godotengine/godot/pull/100195)). +- Fix gradle builds for multiple ABIs ([GH-100351](https://github.com/godotengine/godot/pull/100351)). +- Downgrade Microsoft.CodeAnalysis.CSharp to 4.8.0 for compat with SDK 8.0.1xy ([GH-100506](https://github.com/godotengine/godot/pull/100506)). +- Add option to treat warnings as errors ([GH-100568](https://github.com/godotengine/godot/pull/100568)). +- Fix EmitSignal with typed array parameters ([GH-100636](https://github.com/godotengine/godot/pull/100636)). +- Update required .NET SDK version in error messages ([GH-100667](https://github.com/godotengine/godot/pull/100667)). +- Use collection expressions in docs ([GH-100685](https://github.com/godotengine/godot/pull/100685)). +- Add OKHSL properties to Color ([GH-101337](https://github.com/godotengine/godot/pull/101337)). +- Add Obsolete attribute to signal trampolines and emitter functions ([GH-101970](https://github.com/godotengine/godot/pull/101970)). +- Validate project TFM for Android template exports ([GH-102627](https://github.com/godotengine/godot/pull/102627)). +- Show enum property invalid value in inspector ([GH-102743](https://github.com/godotengine/godot/pull/102743)). +- Disallow `[ExportToolButton]` on members that may store the Callable ([GH-102836](https://github.com/godotengine/godot/pull/102836)). #### Codestyle -- Move 2D and 3D resources to their own folders ([GH-50148](https://github.com/godotengine/godot/pull/50148)). -- Add const lvalue ref to container parameters ([GH-51156](https://github.com/godotengine/godot/pull/51156)). -- Use `Packed*Array` over `Vector<T>` in Variant ([GH-67220](https://github.com/godotengine/godot/pull/67220)). -- Use `Packed*Array` over `Vector<T>` in TypedArray ([GH-67226](https://github.com/godotengine/godot/pull/67226)). -- Add shorthand for using singleton string names ([GH-81303](https://github.com/godotengine/godot/pull/81303)). -- Add deprecation notice to a duplicate method of class `Window` ([GH-83014](https://github.com/godotengine/godot/pull/83014)). -- Move 2D-only and 3D-only navigation code to its own subfolder ([GH-83133](https://github.com/godotengine/godot/pull/83133)). -- Add const references in `String` class ([GH-84375](https://github.com/godotengine/godot/pull/84375)). -- Clean unnecessary copy detected by clang-tidy ([GH-84508](https://github.com/godotengine/godot/pull/84508)). -- Remove unnecessary assignments ([GH-85071](https://github.com/godotengine/godot/pull/85071)). -- Unify parameter names for RendererCanvasCull ([GH-85421](https://github.com/godotengine/godot/pull/85421)). -- Remove GridMap navigation_layers leftover ([GH-85447](https://github.com/godotengine/godot/pull/85447)). -- Improve message about resources in use at exit ([GH-85464](https://github.com/godotengine/godot/pull/85464)). -- Style: Mark clang-format 16 as supported for pre-commit hook ([GH-85837](https://github.com/godotengine/godot/pull/85837)). -- Improve DynamicBVH code to make it clearer how the stack/heap works ([GH-86059](https://github.com/godotengine/godot/pull/86059)). -- Update deferred calls to use Callables ([GH-86301](https://github.com/godotengine/godot/pull/86301)). -- Fix various spelling errors across engine solution ([GH-86787](https://github.com/godotengine/godot/pull/86787)). -- Change AudioStreamPlayer autoplay and GLTFBufferView getters to be const ([GH-86907](https://github.com/godotengine/godot/pull/86907)). -- Add const lvalue ref to `core/*` container parameters ([GH-86966](https://github.com/godotengine/godot/pull/86966)). -- Fix `#if *_ENABLED` inconsistencies, should check if defined ([GH-87286](https://github.com/godotengine/godot/pull/87286)). -- Simplify RefCounted check in `free()` ([GH-87331](https://github.com/godotengine/godot/pull/87331)). -- Remove unused `prev_rot` variable ([GH-87345](https://github.com/godotengine/godot/pull/87345)). -- Null check improvements ([GH-87370](https://github.com/godotengine/godot/pull/87370)). -- Replace error checks against `size` with `is_empty` ([GH-87371](https://github.com/godotengine/godot/pull/87371)). -- Remove unnecessary `this->` expressions ([GH-87688](https://github.com/godotengine/godot/pull/87688)). -- Use `_v` shorthand for type traits and `if constexpr` where appropriate ([GH-87871](https://github.com/godotengine/godot/pull/87871)). -- Add PropertyListHelper in all simple cases ([GH-88306](https://github.com/godotengine/godot/pull/88306)). -- Fixed binary representation typo in comment ([GH-88326](https://github.com/godotengine/godot/pull/88326)). -- Remove `_HashUnion` from `StringName` ([GH-88339](https://github.com/godotengine/godot/pull/88339)). -- Core: Codestyle improvements to math types ([GH-88467](https://github.com/godotengine/godot/pull/88467)). -- Use `ED_IS_SHORTCUT` macro instead of `matches_event` ([GH-88547](https://github.com/godotengine/godot/pull/88547)). -- Remove word duplicates in comments and strings, and fix casing and punctuation ([GH-88733](https://github.com/godotengine/godot/pull/88733)). -- Remove self includes in some files ([GH-88918](https://github.com/godotengine/godot/pull/88918)). -- Use `Vector*` component-wise `min/max/clamp` functions where applicable ([GH-89111](https://github.com/godotengine/godot/pull/89111)). -- Core: Move `#includes` from `project_settings.h` into `project_settings.cpp` ([GH-89113](https://github.com/godotengine/godot/pull/89113)). -- Enforce template syntax `typename` over `class` ([GH-89270](https://github.com/godotengine/godot/pull/89270)). -- Refactor how file cache entries are stored ([GH-89301](https://github.com/godotengine/godot/pull/89301)). -- Wayland: Stop unreachable warning ([GH-89306](https://github.com/godotengine/godot/pull/89306)). -- clang-tidy: Enforce `modernize-use-nullptr` ([GH-89422](https://github.com/godotengine/godot/pull/89422)). -- Rename some arguments called "position" ([GH-89721](https://github.com/godotengine/godot/pull/89721)). -- Remove pointless `_notification()` function in `EditorPropertyOTVariation` ([GH-89823](https://github.com/godotengine/godot/pull/89823)). -- Add `override` mark to ResourceFormat class ([GH-89863](https://github.com/godotengine/godot/pull/89863)). -- Android: Remove redundant semicolons from Kotlin/gradle files ([GH-90147](https://github.com/godotengine/godot/pull/90147)). -- Update lingering `do/while(0)` defines ([GH-90218](https://github.com/godotengine/godot/pull/90218)). -- Core: Replace `_NO_DISCARD_` macro with `[[nodiscard]]` ([GH-90582](https://github.com/godotengine/godot/pull/90582)). -- Remove some unused SceneTree properties ([GH-90598](https://github.com/godotengine/godot/pull/90598)). -- Move NavigationMeshSourceGeometryData(2D/3D) to the 2D/3D subfolders ([GH-90729](https://github.com/godotengine/godot/pull/90729)). -- Rename internal `is_ascii_char` to `is_ascii_alphabet_char` ([GH-90931](https://github.com/godotengine/godot/pull/90931)). -- Redefine `GetSimpleTypeT<>` in terms of `<type_traits>` ([GH-91104](https://github.com/godotengine/godot/pull/91104)). -- Misc code cleanup ([GH-91183](https://github.com/godotengine/godot/pull/91183)). -- ResourceImporterWAV: Remove unnecessary var declaration ([GH-91214](https://github.com/godotengine/godot/pull/91214)). -- Remove unused variable `Viewport::gui.last_mouse_focus` ([GH-91400](https://github.com/godotengine/godot/pull/91400)). -- Remove unused code to convert text resource format to binary ([GH-91488](https://github.com/godotengine/godot/pull/91488)). -- Replace `find` with `contains/has` where applicable ([GH-91619](https://github.com/godotengine/godot/pull/91619)). -- Fix various typos with codespell ([GH-91650](https://github.com/godotengine/godot/pull/91650)). -- Style: Trim trailing whitespace and ensure newline at EOF ([GH-91696](https://github.com/godotengine/godot/pull/91696)). -- Web: Update to eslint 9 ([GH-91863](https://github.com/godotengine/godot/pull/91863)). -- Use Core/Scene stringnames consistently ([GH-91909](https://github.com/godotengine/godot/pull/91909)). -- Cleanup unused/underused singleton StringNames ([GH-91948](https://github.com/godotengine/godot/pull/91948)). -- CI: Fix incorrect executable perms ([GH-92053](https://github.com/godotengine/godot/pull/92053)). -- Automatically use property count in PropertyListHelper ([GH-92283](https://github.com/godotengine/godot/pull/92283)). -- Replace `.bind(...).call_deferred()` with `.call_deferred(...)` ([GH-92427](https://github.com/godotengine/godot/pull/92427)). -- Style: Change esthetic -> aesthetic ([GH-93977](https://github.com/godotengine/godot/pull/93977)). +- Fix typo in XRInterface comment ([GH-86652](https://github.com/godotengine/godot/pull/86652)). +- Match the coding style for concatenating String ([GH-92933](https://github.com/godotengine/godot/pull/92933)). +- Core: Integrate Ref `instantiate` where possible ([GH-92986](https://github.com/godotengine/godot/pull/92986)). +- Improve template class conditionals with constexpr (code style) ([GH-94137](https://github.com/godotengine/godot/pull/94137)). +- Fix various typos ([GH-94477](https://github.com/godotengine/godot/pull/94477)). +- iOS: Fix typo in GodotApplicationDelegate ([GH-95272](https://github.com/godotengine/godot/pull/95272)). +- Remove empty `bind_methods()` ([GH-95542](https://github.com/godotengine/godot/pull/95542)). +- Fix glTF capitalization in error messages ([GH-95603](https://github.com/godotengine/godot/pull/95603)). +- Remove spaces and punctuation from the beginning of translatable strings ([GH-95958](https://github.com/godotengine/godot/pull/95958)). +- [Core,Drivers] Improve use of `Ref.is_null/valid` ([GH-96076](https://github.com/godotengine/godot/pull/96076)). +- Core: Fix unreachable code ([GH-96173](https://github.com/godotengine/godot/pull/96173)). +- Fix weird plural of public method names of `EditorDebuggerNode` ([GH-96176](https://github.com/godotengine/godot/pull/96176)). +- Cleanup of raw `nullptr` checks with `Ref` ([GH-96292](https://github.com/godotengine/godot/pull/96292)). +- Style: Add `WARNING:` as new comment admonition ([GH-96923](https://github.com/godotengine/godot/pull/96923)). +- Get rid of easily removable uses of `const_cast` ([GH-97378](https://github.com/godotengine/godot/pull/97378)). +- Rename `Vector4.components` -> `coord` for consistency ([GH-97487](https://github.com/godotengine/godot/pull/97487)). +- Set clang-format `RemoveSemicolon` rule to `true` ([GH-97934](https://github.com/godotengine/godot/pull/97934)). +- Clean up Image ([GH-98084](https://github.com/godotengine/godot/pull/98084)). +- Core: Improve error messages with `vformat` ([GH-98091](https://github.com/godotengine/godot/pull/98091)). +- Remove unnecessary condition in WAV importer ([GH-98980](https://github.com/godotengine/godot/pull/98980)). +- Remove unused OS `_display_driver_id` member ([GH-99071](https://github.com/godotengine/godot/pull/99071)). +- Style: Update `pyproject.toml` syntax ([GH-99240](https://github.com/godotengine/godot/pull/99240)). +- Simplify some UID conversions ([GH-99253](https://github.com/godotengine/godot/pull/99253)). +- Untangle ColorPicker includes ([GH-99516](https://github.com/godotengine/godot/pull/99516)). +- Style: Add 19.1.0 LLVM options to `.clang-format` ([GH-99548](https://github.com/godotengine/godot/pull/99548)). +- Style: Downgrade `.clang-format` arguments to 17.x ([GH-99761](https://github.com/godotengine/godot/pull/99761)). +- Fix various typos and code style issues ([GH-99799](https://github.com/godotengine/godot/pull/99799)). +- Add helper method to get Window from ID ([GH-99843](https://github.com/godotengine/godot/pull/99843)). +- Codestyle improvements in `style_box_flat.cpp` ([GH-99983](https://github.com/godotengine/godot/pull/99983)). +- Move singleton StringName definitions to header ([GH-99984](https://github.com/godotengine/godot/pull/99984)). +- Remove apparent contradiction in vector.h header ([GH-100147](https://github.com/godotengine/godot/pull/100147)). +- Merge identical code piece in ConvexHullComputer ([GH-100250](https://github.com/godotengine/godot/pull/100250)). +- Fix grammar / spelling in comments ([GH-100322](https://github.com/godotengine/godot/pull/100322)). +- Remove unused headers ([GH-100739](https://github.com/godotengine/godot/pull/100739)). +- Android Code Cleanup: Rename constants to uppercase ([GH-100760](https://github.com/godotengine/godot/pull/100760)). +- Improve use of `Ref.is_null/valid` ([GH-100776](https://github.com/godotengine/godot/pull/100776)). +- Style: Enforce `AllowShortFunctionsOnASingleLine` ([GH-100937](https://github.com/godotengine/godot/pull/100937)). +- Tween code improvements ([GH-101202](https://github.com/godotengine/godot/pull/101202)). +- A handful of typo fixes ([GH-101284](https://github.com/godotengine/godot/pull/101284)). +- Style: Enable clang-format's `InsertBraces` config ([GH-101355](https://github.com/godotengine/godot/pull/101355)). +- Typo fix: rename SortableVisbilityMode ([GH-101780](https://github.com/godotengine/godot/pull/101780)). #### Core -- Add colors to the command-line help ([GH-36252](https://github.com/godotengine/godot/pull/36252)). -- Rename `VariantZeroAssigner` to `VariantDefaultInitializer` ([GH-59186](https://github.com/godotengine/godot/pull/59186)). -- Add `merged` method to allow returning Dictionary after merging ([GH-65526](https://github.com/godotengine/godot/pull/65526)). -- Fix recursive resource local to scene (array/dictionary properties on resources) ([GH-71578](https://github.com/godotengine/godot/pull/71578)). -- Add Unicode support to `String.to_*_case()` methods ([GH-75846](https://github.com/godotengine/godot/pull/75846)). -- Optimize `Color::find_named_color()` ([GH-75860](https://github.com/godotengine/godot/pull/75860)). -- Add a `get_or_add` method to Dictionary ([GH-78095](https://github.com/godotengine/godot/pull/78095)). -- Add SceneTree.get_node_count_in_group() ([GH-78206](https://github.com/godotengine/godot/pull/78206)). -- Add typed array support for binary serialization ([GH-78219](https://github.com/godotengine/godot/pull/78219)). -- Set language encoding flag when using `ZIPPacker` ([GH-78732](https://github.com/godotengine/godot/pull/78732)). -- Fix crash caused by stale owner ([GH-78997](https://github.com/godotengine/godot/pull/78997)). -- TextServer: Fix `get_word_breaks` and its uses ([GH-79054](https://github.com/godotengine/godot/pull/79054)). -- Add `--no-header` option ([GH-79179](https://github.com/godotengine/godot/pull/79179)). -- Expose `Vector*` component-wise and scalar `min/max` to scripting ([GH-80223](https://github.com/godotengine/godot/pull/80223)). -- Expose `Script.get_global_name()` ([GH-80487](https://github.com/godotengine/godot/pull/80487)). -- Fix `reparent()` losing owner ([GH-81506](https://github.com/godotengine/godot/pull/81506)). -- Add `is_valid_letter()` to `TextServer` ([GH-81639](https://github.com/godotengine/godot/pull/81639)). -- Add `NodePath::slice` method ([GH-81822](https://github.com/godotengine/godot/pull/81822)). -- Merge `uid_cache.bin` and `global_script_class_cache.cfg` after mounting PCKs ([GH-82084](https://github.com/godotengine/godot/pull/82084)). -- Help compilers optimize `Object::cast_to()` ([GH-82903](https://github.com/godotengine/godot/pull/82903)). -- Implement `Vector2i/3i/4i` methods: `distance_to` and `distance_squared_to` ([GH-83163](https://github.com/godotengine/godot/pull/83163)). -- Fix Basis `is_orthogonal` and `is_rotation` methods, add `is_orthonormal` ([GH-83229](https://github.com/godotengine/godot/pull/83229)). -- Add `const char *` overloads to String class ([GH-84379](https://github.com/godotengine/godot/pull/84379)). -- Add const references detected by clang-tidy ([GH-84445](https://github.com/godotengine/godot/pull/84445)). -- Optimize `String.humanize_size()` ([GH-84462](https://github.com/godotengine/godot/pull/84462)). -- Make `varray()` variadic ([GH-84581](https://github.com/godotengine/godot/pull/84581)). -- Prevent encoding/decoding objects that cannot be instantiated ([GH-84611](https://github.com/godotengine/godot/pull/84611)). -- Prevent crash on conversion of invalid data in `Image` ([GH-84782](https://github.com/godotengine/godot/pull/84782)). -- Fix duplicating sub-scene may get two copies of internal node ([GH-84824](https://github.com/godotengine/godot/pull/84824)). -- When saving a resource with an exported typed array, check whether the type is an external resource ([GH-85024](https://github.com/godotengine/godot/pull/85024)). -- Prevent copying of `SelfList` and `SelfList::List` ([GH-85180](https://github.com/godotengine/godot/pull/85180)). -- Fix crash when hashing empty `CharString` ([GH-85389](https://github.com/godotengine/godot/pull/85389)). -- UndoRedo: Fix `MERGE_ALL` commit from repeating actions ([GH-85390](https://github.com/godotengine/godot/pull/85390)). -- Prevent infinite recursion when printing errors ([GH-85397](https://github.com/godotengine/godot/pull/85397)). -- Add `PackedVector4Array` Variant type ([GH-85474](https://github.com/godotengine/godot/pull/85474)). -- Fix property groups overriding real properties ([GH-85486](https://github.com/godotengine/godot/pull/85486)). -- Issue template: Change version field to "Tested versions", asking to test earlier versions ([GH-85554](https://github.com/godotengine/godot/pull/85554)). -- Fix RegEx `search_all` for zero length matches/lookahead ([GH-85783](https://github.com/godotengine/godot/pull/85783)). -- Do not reload resources and send notification if locale is not changed ([GH-85787](https://github.com/godotengine/godot/pull/85787)). -- Fix `FileAccessPack::get_buffer` updating position past the length of file ([GH-85991](https://github.com/godotengine/godot/pull/85991)). -- Fix `RegEx.sub` truncating string when `end` is used ([GH-86052](https://github.com/godotengine/godot/pull/86052)). -- Include `name` field in MethodInfo operator == ([GH-86259](https://github.com/godotengine/godot/pull/86259)). -- Add `PackedRealArray` as an alias for `Vector<real_t>` ([GH-86324](https://github.com/godotengine/godot/pull/86324)). -- Improve error message in text resource format parser ([GH-86350](https://github.com/godotengine/godot/pull/86350)). -- Add and expose Basis/Transform2D/3D division by float operator ([GH-86364](https://github.com/godotengine/godot/pull/86364)). -- Suggest `--headless` CLI argument in DisplayServer not found error message ([GH-86409](https://github.com/godotengine/godot/pull/86409)). -- Fix data race in PagedArray ([GH-86412](https://github.com/godotengine/godot/pull/86412)). -- Ensure special characters are escaped in TSCN connections and editable hint ([GH-86417](https://github.com/godotengine/godot/pull/86417)). -- Add iteration support to `Array` ([GH-86518](https://github.com/godotengine/godot/pull/86518)). -- Remove traces of the extinct RID preallocate feature ([GH-86570](https://github.com/godotengine/godot/pull/86570)). -- Enhance & fix `WorkerThreadPool` ([GH-86587](https://github.com/godotengine/godot/pull/86587)). -- Initialize pointers in `a_star.cpp` ([GH-86590](https://github.com/godotengine/godot/pull/86590)). -- Improve GDExtension Tools Integration with Editor Debug Tooling ([GH-86721](https://github.com/godotengine/godot/pull/86721)). -- Promote CowData to 64 bits ([GH-86730](https://github.com/godotengine/godot/pull/86730)). -- Optimize comparisons for Object's `get_argument_options` ([GH-86743](https://github.com/godotengine/godot/pull/86743)). -- Add autocompletion for `Engine.get_singleton` & similar ([GH-86753](https://github.com/godotengine/godot/pull/86753)). -- Pseudolocalization: Prevent out of bounds reads ([GH-86827](https://github.com/godotengine/godot/pull/86827)). -- Avoid regressing in progress reporting in resource load ([GH-86845](https://github.com/godotengine/godot/pull/86845)). -- Add autocompletion to `get_node_or_null` ([GH-86891](https://github.com/godotengine/godot/pull/86891)). -- Fix wrong fail condition in compressed texture's `_set_data` ([GH-86950](https://github.com/godotengine/godot/pull/86950)). -- Fix ZIPPacker storing file permissions unexpectedly ([GH-86985](https://github.com/godotengine/godot/pull/86985)). -- Fix² behavior of ResourceFormatLoader `CACHE_MODE_REPLACE` ([GH-87008](https://github.com/godotengine/godot/pull/87008)). -- Give EXR saving methods a default value of false like the bindings ([GH-87062](https://github.com/godotengine/godot/pull/87062)). -- Fix `AABB.encloses` failing on shared upper bound ([GH-87118](https://github.com/godotengine/godot/pull/87118)). -- Fix deadlock in `RemoteDebugger::debug` ([GH-87169](https://github.com/godotengine/godot/pull/87169)). -- Fix inaccuracies in the report of leaked objects ([GH-87222](https://github.com/godotengine/godot/pull/87222)). -- Fix renaming a node to the name of its siblings breaking NodePath ([GH-87252](https://github.com/godotengine/godot/pull/87252)). -- Fix `resource_local_to_scene` in arrays and dictionaries ([GH-87268](https://github.com/godotengine/godot/pull/87268)). -- Display values in vector/quaternion math function errors ([GH-87300](https://github.com/godotengine/godot/pull/87300)). -- Implement maximum undo steps in UndoRedo ([GH-87353](https://github.com/godotengine/godot/pull/87353)). -- Add `--log-file` command line argument to write output log to a file ([GH-87373](https://github.com/godotengine/godot/pull/87373)). -- Fix property of type Node duplication when script is attached to a child node ([GH-87387](https://github.com/godotengine/godot/pull/87387)). -- Explicitly initialize all of `FileAccess::create_func[ACCESS_MAX]` ([GH-87389](https://github.com/godotengine/godot/pull/87389)). -- Add check for negative `buffer_size` inside `StreamPeerGZIP::start_(de)compression` ([GH-87448](https://github.com/godotengine/godot/pull/87448)). -- Remove now unused `year` member from `version.py` ([GH-87543](https://github.com/godotengine/godot/pull/87543)). -- Fix `FileAccessMemory` off by one error in `eof_reached` ([GH-87571](https://github.com/godotengine/godot/pull/87571)). -- Manage time singleton in `register_core_types` ([GH-87635](https://github.com/godotengine/godot/pull/87635)). -- Add methods to get argument count of methods ([GH-87680](https://github.com/godotengine/godot/pull/87680)). -- Fix `ResourceLoader.load_threaded_get_status` returning `[0]` constantly in exported projects ([GH-87711](https://github.com/godotengine/godot/pull/87711)). -- Make Callable `bind` method const ([GH-87778](https://github.com/godotengine/godot/pull/87778)). -- Improve `CowData` and `Memory` metadata alignment ([GH-87814](https://github.com/godotengine/godot/pull/87814)). -- Implement a XOR operator for BitField ([GH-87831](https://github.com/godotengine/godot/pull/87831)). -- Update visuals immediately after resizing `Placeholder*` textures ([GH-87854](https://github.com/godotengine/godot/pull/87854)). -- Fix `rpc` call from name based `Callable`s ([GH-87858](https://github.com/godotengine/godot/pull/87858)). -- Extract `SafeBinaryMutex` to separate header ([GH-87893](https://github.com/godotengine/godot/pull/87893)). -- [TextServer / Font] Do not duplicate images to prevent unnecessary embedding ([GH-87971](https://github.com/godotengine/godot/pull/87971)). -- Add newer Variant types to `typed_array.h` ([GH-87992](https://github.com/godotengine/godot/pull/87992)). -- Expose scene unique id functionality in Resource ([GH-88111](https://github.com/godotengine/godot/pull/88111)). -- Link hash table primes externally to prevent data duplication in binary ([GH-88178](https://github.com/godotengine/godot/pull/88178)). -- Allow Ref `instantiate` to accept constructor args ([GH-88183](https://github.com/godotengine/godot/pull/88183)). -- Link `xid_start` and `xid_continue` externally to prevent data duplication in binary ([GH-88203](https://github.com/godotengine/godot/pull/88203)). -- Fix inherited scenes produce errors in editor when `editable_children` is true ([GH-88426](https://github.com/godotengine/godot/pull/88426)). -- Fix owner when importing meshes ([GH-88497](https://github.com/godotengine/godot/pull/88497)). -- Upgrade some array helper classes to 64 bits ([GH-88551](https://github.com/godotengine/godot/pull/88551)). -- Improve thread safety of resource loading ([GH-88561](https://github.com/godotengine/godot/pull/88561)). -- Enhance cache modes in resource loading ([GH-88664](https://github.com/godotengine/godot/pull/88664)). -- Remove spammy dev-mode message about load deadlock prevention ([GH-88706](https://github.com/godotengine/godot/pull/88706)). -- Fix shared exported variables of inherited scenes ([GH-88741](https://github.com/godotengine/godot/pull/88741)). -- Add all `Viewport.debug_draw` enum options to dropdown ([GH-88755](https://github.com/godotengine/godot/pull/88755)). -- Image: Add static `is_format_compressed` function ([GH-88763](https://github.com/godotengine/godot/pull/88763)). -- Fix inefficient list iteration in Node ([GH-88785](https://github.com/godotengine/godot/pull/88785)). -- Do overflow check in when generating NoiseTexture3D ([GH-88823](https://github.com/godotengine/godot/pull/88823)). -- Add `RandomNumberGenerator::rand_weighted` method ([GH-88883](https://github.com/godotengine/godot/pull/88883)). -- Fix `RandomNumberGenerator::rand_weighted` return type ([GH-89104](https://github.com/godotengine/godot/pull/89104)). -- Add scalar versions of `Vector*` `min/max/clamp/snap(ped)` ([GH-89114](https://github.com/godotengine/godot/pull/89114)). -- Save PackedByteArrays as base64 encoded ([GH-89186](https://github.com/godotengine/godot/pull/89186)). -- Fix `String::begins_with` when both strings are empty ([GH-89194](https://github.com/godotengine/godot/pull/89194)). -- Fix sharing of typed arrays from constructor ([GH-89197](https://github.com/godotengine/godot/pull/89197)). -- Refactor OS exit code to be `EXIT_SUCCESS` by default ([GH-89229](https://github.com/godotengine/godot/pull/89229)). -- Clarify bounce and reflect docs and update param names ([GH-89404](https://github.com/godotengine/godot/pull/89404)). -- Fix error where update wouldn't reconnect the signal it should have reconnected and led to errors and crash ([GH-89447](https://github.com/godotengine/godot/pull/89447)). -- Disconnect one-shot signals before calling callbacks ([GH-89451](https://github.com/godotengine/godot/pull/89451)). -- Add output type to DAP `output` events ([GH-89475](https://github.com/godotengine/godot/pull/89475)). -- Prevent further infinite recursion when printing errors ([GH-89490](https://github.com/godotengine/godot/pull/89490)). -- Fix `rand_weighted` not using the current state ([GH-89619](https://github.com/godotengine/godot/pull/89619)). -- Fix crash on `reparent()` with Node containing internal children ([GH-89628](https://github.com/godotengine/godot/pull/89628)). -- Fix property access on read-only `Dictionary` ([GH-89647](https://github.com/godotengine/godot/pull/89647)). -- Stop possible underrun when processing a string ([GH-89671](https://github.com/godotengine/godot/pull/89671)). -- Properly skip printing version header with `--no-header` ([GH-89679](https://github.com/godotengine/godot/pull/89679)). -- Always look for unique node names in owner if not found in owned nodes ([GH-89686](https://github.com/godotengine/godot/pull/89686)). -- Fix incorrect file sort method ([GH-89857](https://github.com/godotengine/godot/pull/89857)). -- Remove a redundant `MAX` comparison within a loop in `compute_image_metrics` ([GH-89889](https://github.com/godotengine/godot/pull/89889)). -- Return `ERR_UNAVAILABLE` if native dialog is not supported ([GH-89902](https://github.com/godotengine/godot/pull/89902)). -- Fix regression when duplicating a node with a resource attached ([GH-89957](https://github.com/godotengine/godot/pull/89957)). -- Use fixed-width integer types in Variant ([GH-89984](https://github.com/godotengine/godot/pull/89984)). -- Fix `ResourceLoader.load` cache with relative paths ([GH-90038](https://github.com/godotengine/godot/pull/90038)). -- Fix some uses of `float` and `real_t` in `core/math` ([GH-90063](https://github.com/godotengine/godot/pull/90063)). -- Don't allow copying file into its own path ([GH-90069](https://github.com/godotengine/godot/pull/90069)). -- Fix load subtask not being registered leading to false progress values ([GH-90091](https://github.com/godotengine/godot/pull/90091)). -- Fix `Variant::construct` of `Object` ([GH-90134](https://github.com/godotengine/godot/pull/90134)). -- Use WorkerThreadPool for Server threads (enhanced) ([GH-90268](https://github.com/godotengine/godot/pull/90268)). -- Make InstancePlaceholders in charge of resolving node references in instances ([GH-90306](https://github.com/godotengine/godot/pull/90306)). -- IO: Fix marshall decoding when script is NIL ([GH-90335](https://github.com/godotengine/godot/pull/90335)). -- Expose `ClassDB::is_enum_bitfield` as `ClassDB::is_class_enum_bitfield` ([GH-90368](https://github.com/godotengine/godot/pull/90368)). -- Fix `ZIPReader.get_files()` error on empty zip files ([GH-90404](https://github.com/godotengine/godot/pull/90404)). -- CommandQueueMT: Fix flush re-entrancy ([GH-90470](https://github.com/godotengine/godot/pull/90470)). -- Revert pack trimming introduced by #82084 ([GH-90476](https://github.com/godotengine/godot/pull/90476)). -- Use `<type_traits>` where applicable ([GH-90540](https://github.com/godotengine/godot/pull/90540)). -- Don't print warning messages for DisplayServer functions in headless mode ([GH-90549](https://github.com/godotengine/godot/pull/90549)). -- Fix incorrect comparison for `Array` const iterator ([GH-90631](https://github.com/godotengine/godot/pull/90631)). -- Fix `Window.hide()` crash when `force_native` changes ([GH-90637](https://github.com/godotengine/godot/pull/90637)). -- Implement `Object.remove_user_signal(signal: StringName)` ([GH-90674](https://github.com/godotengine/godot/pull/90674)). -- Fix `RefCounted` handling in `marshalls.cpp` ([GH-90693](https://github.com/godotengine/godot/pull/90693)). -- Reduce and prevent unnecessary random-access to `List` ([GH-90705](https://github.com/godotengine/godot/pull/90705)). -- Fix incorrect name of internal Basis global scale getter ([GH-90748](https://github.com/godotengine/godot/pull/90748)). -- Fix binary serialization of objects in typed arrays ([GH-90751](https://github.com/godotengine/godot/pull/90751)). -- CommandQueueMT: Optimize & fix handling of sync/ret commands ([GH-90760](https://github.com/godotengine/godot/pull/90760)). -- WorkerThreadPool: Polish yielding (fix corner case, remove misleading warning) ([GH-90809](https://github.com/godotengine/godot/pull/90809)). -- WorkerThreadPool: Fix yield-over for not-yet-started tasks ([GH-90865](https://github.com/godotengine/godot/pull/90865)). -- Utilize initializer lists in Variant constructors ([GH-90866](https://github.com/godotengine/godot/pull/90866)). -- Use compatible text resource format when possible ([GH-90889](https://github.com/godotengine/godot/pull/90889)). -- Strip ANSI escape codes from file logging ([GH-90900](https://github.com/godotengine/godot/pull/90900)). -- Fix `SurfaceTool.create_from_arrays` crash with bad index ([GH-91198](https://github.com/godotengine/godot/pull/91198)). -- Use unztell64 in FileAccessZIP to ensure 64 bit return ([GH-91210](https://github.com/godotengine/godot/pull/91210)). -- Fix unsafe uses of `Callable.is_null()` ([GH-91247](https://github.com/godotengine/godot/pull/91247)). -- Add a note for `String::reverse` to warn about its implementation ([GH-91321](https://github.com/godotengine/godot/pull/91321)). -- Fix a performance regression when duplicating a node ([GH-91329](https://github.com/godotengine/godot/pull/91329)). -- Revert premul alpha to spell without the T ([GH-91399](https://github.com/godotengine/godot/pull/91399)). -- Fix crash when executing `Image.save_jpg_to_buffer` ([GH-91590](https://github.com/godotengine/godot/pull/91590)). -- Add case-insensitive `String::containsn` ([GH-91611](https://github.com/godotengine/godot/pull/91611)). -- Add `LocalVector::has` for convenience ([GH-91621](https://github.com/godotengine/godot/pull/91621)). -- Let materials' shaders update happen on loader threads ([GH-91630](https://github.com/godotengine/godot/pull/91630)). -- Fix crash when adding a child while duplicating a node ([GH-91677](https://github.com/godotengine/godot/pull/91677)). -- CommandQueueMT: Fix sync command awaiters missing the chance ([GH-91725](https://github.com/godotengine/godot/pull/91725)). -- CommandQueueMT: Pre-allocate memory to avoid a bunch of allocations at startup ([GH-91727](https://github.com/godotengine/godot/pull/91727)). -- Fix memory leak when ASTC compression fails ([GH-91745](https://github.com/godotengine/godot/pull/91745)). -- Add an identity check to resource unregistration from cache ([GH-91897](https://github.com/godotengine/godot/pull/91897)). -- Fix `DisplayServer` overrides ([GH-91900](https://github.com/godotengine/godot/pull/91900)). -- Scene: Add `SceneStringNames::pressed` ([GH-91939](https://github.com/godotengine/godot/pull/91939)). -- Scene: Add `SceneStringNames::id_pressed` ([GH-91949](https://github.com/godotengine/godot/pull/91949)). -- Scene: Add `SceneStringNames::panel` ([GH-91950](https://github.com/godotengine/godot/pull/91950)). -- Use `CoreStringNames::normal` in more places ([GH-91953](https://github.com/godotengine/godot/pull/91953)). -- Re-add Variant class initializer, fix comment ([GH-91955](https://github.com/godotengine/godot/pull/91955)). -- Scene: Add `SceneStringNames::font(_size/_color)` ([GH-92588](https://github.com/godotengine/godot/pull/92588)). -- Scene: Add `SceneStringNames::confirmed` ([GH-92639](https://github.com/godotengine/godot/pull/92639)). -- Scene: Add `SceneStringNames::text/value_changed` ([GH-92640](https://github.com/godotengine/godot/pull/92640)). -- Duplicate properties first before remapping resources ([GH-92678](https://github.com/godotengine/godot/pull/92678)). -- Fix callable not clearing freed pointer ([GH-92722](https://github.com/godotengine/godot/pull/92722)). -- Fix some incorrect uses of `String` over `StringName` ([GH-92723](https://github.com/godotengine/godot/pull/92723)). -- Release Engine before unregistering core types ([GH-92733](https://github.com/godotengine/godot/pull/92733)). -- ResourceLoader: Avoid deadlock when awaiting a loader thread that failed early ([GH-93082](https://github.com/godotengine/godot/pull/93082)). -- Remove no longer needed thread safety measures ([GH-93091](https://github.com/godotengine/godot/pull/93091)). -- ResourceLoader: Let the caller thread use its own message queue override ([GH-93124](https://github.com/godotengine/godot/pull/93124)). -- Crypto: Expose `OS.get_entropy` ([GH-93177](https://github.com/godotengine/godot/pull/93177)). -- Improve PO plural translation rules handling ([GH-93262](https://github.com/godotengine/godot/pull/93262)). -- Fix missing cleanup and null checks for various singletons ([GH-93292](https://github.com/godotengine/godot/pull/93292)). -- Fix cleanup order in `unregister_core_types()` ([GH-93293](https://github.com/godotengine/godot/pull/93293)). -- Fix typo in preprocessor symbol ([GH-93367](https://github.com/godotengine/godot/pull/93367)). -- Fix storing of Node Array properties ([GH-93430](https://github.com/godotengine/godot/pull/93430)). -- Lookup method also in base scripts of a PlaceHolderScriptInstance ([GH-93452](https://github.com/godotengine/godot/pull/93452)). -- ResourceLoader: Fix handling of uncached loads ([GH-93540](https://github.com/godotengine/godot/pull/93540)). -- Fix duplicating nodes with Array properties ([GH-93672](https://github.com/godotengine/godot/pull/93672)). -- ResourceLoader: Support polling and get-before-complete on the main thread ([GH-93695](https://github.com/godotengine/godot/pull/93695)). -- WorkerThreadPool: Fix wrong pointer used in the case of BinaryMutex ([GH-93709](https://github.com/godotengine/godot/pull/93709)). -- Improve `vformat` error reporting on `sprintf` failure ([GH-93897](https://github.com/godotengine/godot/pull/93897)). -- ResourceLoader: Fixup management of thread-specific status ([GH-93928](https://github.com/godotengine/godot/pull/93928)). -- Add a check to prevent user to call `AStarGrid2D::update` when its not needed ([GH-93993](https://github.com/godotengine/godot/pull/93993)). -- Fix UTF-8 misinterpreted as Latin-1 when logging to file ([GH-94006](https://github.com/godotengine/godot/pull/94006)). -- ResourceLoader: Fix error message due to already-awaited tasks being re-awaited ([GH-94070](https://github.com/godotengine/godot/pull/94070)). -- Optimize `Node::is_readable_from_caller_thread()` by prioritizing the most common case ([GH-94230](https://github.com/godotengine/godot/pull/94230)). -- Fix TypedArray encoding when full objects is disabled ([GH-94379](https://github.com/godotengine/godot/pull/94379)). -- Batch of fixes for WorkerThreadPool and ResourceLoader (safe set) ([GH-94526](https://github.com/godotengine/godot/pull/94526)). -- End benchmark of `Main::setup` properly before calling `setup2` ([GH-94587](https://github.com/godotengine/godot/pull/94587)). -- Apply `prefer_wayland` only if no display driver is set ([GH-94774](https://github.com/godotengine/godot/pull/94774)). -- Fix use-after-free in WorkerThreadPool ([GH-94832](https://github.com/godotengine/godot/pull/94832)). -- ResourceLoader: Let resource setup late steps invoke loading in turn ([GH-94910](https://github.com/godotengine/godot/pull/94910)). -- ResourceLoader: Add check to prevent double free crashes ([GH-95186](https://github.com/godotengine/godot/pull/95186)). -- Fix use-after-free in `FileAccess::exists` ([GH-95311](https://github.com/godotengine/godot/pull/95311)). -- ResourceLoader: Fix error on querying progress for uncached loads ([GH-95476](https://github.com/godotengine/godot/pull/95476)). +- Always add decimal when converting float to string ([GH-47502](https://github.com/godotengine/godot/pull/47502)). +- Add `Object` support for `String.format` ([GH-65962](https://github.com/godotengine/godot/pull/65962)). +- RegEx: Fix handling of unset/unknown capture groups ([GH-73973](https://github.com/godotengine/godot/pull/73973)). +- Add a sort method to Dictionary and HashMap ([GH-77213](https://github.com/godotengine/godot/pull/77213)). +- FileAccess: Return error codes from `store_*` methods ([GH-78289](https://github.com/godotengine/godot/pull/78289)). +- Color: Expose OKHSL properties ([GH-82845](https://github.com/godotengine/godot/pull/82845)). +- Enhance SpinLock ([GH-85167](https://github.com/godotengine/godot/pull/85167)). +- Fix `MissingResource` properties being stripped on save ([GH-86600](https://github.com/godotengine/godot/pull/86600)). +- Add way to check if a signal has any connections ([GH-87344](https://github.com/godotengine/godot/pull/87344)). +- Bind and document iterator API virtual methods ([GH-89649](https://github.com/godotengine/godot/pull/89649)). +- Fix "res://" being replaced by resource packs in the editor and on Android ([GH-90425](https://github.com/godotengine/godot/pull/90425)). +- Update `ucaps.h` to contain proper case matchings ([GH-90726](https://github.com/godotengine/godot/pull/90726)). +- Add `Engine.print_to_stdout` setting to control printing ([GH-90955](https://github.com/godotengine/godot/pull/90955)). +- Expose several resource/resource-saver functions ([GH-90969](https://github.com/godotengine/godot/pull/90969)). +- Fix `Node.duplicate()` crash when duplicating a node that cannot be instantiated ([GH-90992](https://github.com/godotengine/godot/pull/90992)). +- Enforce custom nodes to keep their original type ([GH-91341](https://github.com/godotengine/godot/pull/91341)). +- Reduce code duplication in FileAccess ([GH-92167](https://github.com/godotengine/godot/pull/92167)). +- Optimize image conversion for half and float formats ([GH-92291](https://github.com/godotengine/godot/pull/92291)). +- Ensure MovieWriter output is in gamma space when using HDR 2D ([GH-92496](https://github.com/godotengine/godot/pull/92496)). +- Expose `get_cached_ref` from `ResourceCache` ([GH-92530](https://github.com/godotengine/godot/pull/92530)). +- Optimize `String::replace` methods ([GH-92546](https://github.com/godotengine/godot/pull/92546)). +- Optimize some `String` methods ([GH-92548](https://github.com/godotengine/godot/pull/92548)). +- Optimize `String::join` ([GH-92550](https://github.com/godotengine/godot/pull/92550)). +- Implement array based hash map `AHashMap` ([GH-92554](https://github.com/godotengine/godot/pull/92554)). +- Optimize `String::insert` ([GH-92555](https://github.com/godotengine/godot/pull/92555)). +- StringName: `operator==` compares in-place ([GH-92570](https://github.com/godotengine/godot/pull/92570)). +- Scene: Add `SceneStringNames::toggled` ([GH-92637](https://github.com/godotengine/godot/pull/92637)). +- Ability to convert native engine types to JSON and back ([GH-92656](https://github.com/godotengine/godot/pull/92656)). +- Image: Add a method for detecting signed values ([GH-92799](https://github.com/godotengine/godot/pull/92799)). +- Implement `ClassDB::class_call_static_method` ([GH-93141](https://github.com/godotengine/godot/pull/93141)). +- Handle the smoothstep degenerate case of empty range ([GH-93149](https://github.com/godotengine/godot/pull/93149)). +- Fix RefCounted releasing early and not clearing reference ([GH-93299](https://github.com/godotengine/godot/pull/93299)). +- ResourceLoader: Revert workaround resource loading crashes due to buggy TLS ([GH-93336](https://github.com/godotengine/godot/pull/93336)). +- Fix super call in various `get_configuration_warnings` methods ([GH-93353](https://github.com/godotengine/godot/pull/93353)). +- Add optional count argument to `Semaphore::post` ([GH-93605](https://github.com/godotengine/godot/pull/93605)). +- Allow locking/unlocking of `MutexLock` ([GH-93739](https://github.com/godotengine/godot/pull/93739)). +- Allow more image types for some project settings ([GH-93746](https://github.com/godotengine/godot/pull/93746)). +- Fix parsing of `4.` in Expression ([GH-93856](https://github.com/godotengine/godot/pull/93856)). +- Flush delete queue after process frame timers ([GH-93871](https://github.com/godotengine/godot/pull/93871)). +- Fix `Freed Object` booleanization ([GH-93885](https://github.com/godotengine/godot/pull/93885)). +- Remove unused method `_is_gpl_reversed()` ([GH-94068](https://github.com/godotengine/godot/pull/94068)). +- Batch of fixes for `WorkerThreadPool` and `ResourceLoader` ([GH-94169](https://github.com/godotengine/godot/pull/94169)). +- Improve `CowData::insert` performance ([GH-94353](https://github.com/godotengine/godot/pull/94353)). +- VariantParser: Ensure all parse errors have an explanation ([GH-94507](https://github.com/godotengine/godot/pull/94507)). +- Reduce allocations in `String::sprintf` ([GH-94558](https://github.com/godotengine/godot/pull/94558)). +- Avoid potential crash on signal disconnection ([GH-94666](https://github.com/godotengine/godot/pull/94666)). +- Remove unused `initialize_ref` ([GH-94679](https://github.com/godotengine/godot/pull/94679)). +- StringName: Use inline static field definitions ([GH-94683](https://github.com/godotengine/godot/pull/94683)). +- Remove unused PoolAllocator ([GH-94792](https://github.com/godotengine/godot/pull/94792)). +- Fix use-after-free of `ConditionVariable` in `ResourceLoader` ([GH-94801](https://github.com/godotengine/godot/pull/94801)). +- Expose ClassDB methods `get_property_setter` / `get_property_getter` ([GH-94826](https://github.com/godotengine/godot/pull/94826)). +- Add missing CallableCustomMethodPointer for const methods ([GH-94864](https://github.com/godotengine/godot/pull/94864)). +- Remove const_cast in `List::erase` ([GH-94889](https://github.com/godotengine/godot/pull/94889)). +- Fix ResourceLoader is not printing a resource path on loading when `verbose_stdout` is enabled ([GH-94920](https://github.com/godotengine/godot/pull/94920)). +- Mark underscored properties as internal ([GH-94954](https://github.com/godotengine/godot/pull/94954)). +- Assign return value on `Variant` operator failure ([GH-95166](https://github.com/godotengine/godot/pull/95166)). +- RegEx: Add `show_error` parameter to control error printing on compilation fail ([GH-95212](https://github.com/godotengine/godot/pull/95212)). +- Improve `ClassDB::_is_parent_class` performance ([GH-95292](https://github.com/godotengine/godot/pull/95292)). +- Fix `Projection::invert` for orthographic projection ([GH-95303](https://github.com/godotengine/godot/pull/95303)). +- Add callable support for `find` and `rfind` `Array` methods ([GH-95449](https://github.com/godotengine/godot/pull/95449)). +- CowData: remove hardcoded offset and unused argument from `_unref` ([GH-95469](https://github.com/godotengine/godot/pull/95469)). +- ResourceLoader: Use better error handling for possible engine bugs ([GH-95477](https://github.com/godotengine/godot/pull/95477)). +- Run cleanup code on DisplayServer init failure to prevent crash on exit ([GH-95513](https://github.com/godotengine/godot/pull/95513)). +- Fix `split_floats` behavior when spaces are used as separators ([GH-95613](https://github.com/godotengine/godot/pull/95613)). +- Fix drag&drop between window on Windows ([GH-95665](https://github.com/godotengine/godot/pull/95665)). +- Simplify Rect2/AABB `get_support` function ([GH-95790](https://github.com/godotengine/godot/pull/95790)). +- Expand `std::initializer_list` support in container templates ([GH-95920](https://github.com/godotengine/godot/pull/95920)). +- Add `String.is_valid_unicode_identifier()` ([GH-95984](https://github.com/godotengine/godot/pull/95984)). +- Use `MutexLock` in more places ([GH-96166](https://github.com/godotengine/godot/pull/96166)). +- Remove confusing USER prefix from script-logged errors ([GH-96168](https://github.com/godotengine/godot/pull/96168)). +- Improve error message when loading non-PNG splash image ([GH-96197](https://github.com/godotengine/godot/pull/96197)). +- Fix saving subresources of nodes ([GH-96207](https://github.com/godotengine/godot/pull/96207)). +- ResourceLoader: Handle another case of user tokens ([GH-96218](https://github.com/godotengine/godot/pull/96218)). +- WorkerThreadPool: Fix end-of-yield logic potentially leading to deadlocks ([GH-96225](https://github.com/godotengine/godot/pull/96225)). +- Write path instead of name at verbose output of leaked instances ([GH-96317](https://github.com/godotengine/godot/pull/96317)). +- WorkerThreadPool: Print info about thread count at startup ([GH-96322](https://github.com/godotengine/godot/pull/96322)). +- Сheck `r_error` after calling `callp()` ([GH-96344](https://github.com/godotengine/godot/pull/96344)). +- Add support for Transform2D/3D in `lerp()` ([GH-96496](https://github.com/godotengine/godot/pull/96496)). +- StringName: Fix empty hash ([GH-96586](https://github.com/godotengine/godot/pull/96586)). +- Provide a reliable way to see original resources in a directory ([GH-96590](https://github.com/godotengine/godot/pull/96590)). +- ResourceLoader: Add thread-aware resource changed mechanism ([GH-96593](https://github.com/godotengine/godot/pull/96593)). +- ResourceLoader: Add last resort life-time insurance for tokens ([GH-96617](https://github.com/godotengine/godot/pull/96617)). +- Allow Timer nodes to ignore engine time scale ([GH-96626](https://github.com/godotengine/godot/pull/96626)). +- ResourceLoader: Fixup resource changed feature ([GH-96656](https://github.com/godotengine/godot/pull/96656)). +- Make use of languages' thread enter/exit more correct ([GH-96760](https://github.com/godotengine/godot/pull/96760)). +- [Resource Loader] Do not check property type for non registered properties ([GH-96780](https://github.com/godotengine/godot/pull/96780)). +- Object: Let debug lock handle callee destruction within call chain gracefully ([GH-96856](https://github.com/godotengine/godot/pull/96856)). +- Fix `Dictionary.merge()` type validation ([GH-96864](https://github.com/godotengine/godot/pull/96864)). +- Avoid expensive sqrt operation in hot loop of `BitMap.grow_mask` ([GH-96885](https://github.com/godotengine/godot/pull/96885)). +- Ignore `--test` flag when it is an user-provided argument ([GH-96926](https://github.com/godotengine/godot/pull/96926)). +- WorkerThreadPool: Revamp interaction with ScriptServer ([GH-96959](https://github.com/godotengine/godot/pull/96959)). +- Add a more detailed error message when instantiating a scene with missing export properties ([GH-97071](https://github.com/godotengine/godot/pull/97071)). +- Fix path error when saving ProjectSettings ([GH-97115](https://github.com/godotengine/godot/pull/97115)). +- Print error on invalid `call_group()` calls ([GH-97240](https://github.com/godotengine/godot/pull/97240)). +- Universalize UID support in all resource types ([GH-97352](https://github.com/godotengine/godot/pull/97352)). +- Make internal unique scene resource ID deterministic ([GH-97362](https://github.com/godotengine/godot/pull/97362)). +- Make `RID_Owner` lock-free for fetching ([GH-97465](https://github.com/godotengine/godot/pull/97465)). +- Add missing `HashMapComparatorDefault` cases ([GH-97550](https://github.com/godotengine/godot/pull/97550)). +- Fix decompressing textures with dimensions that are not multiples of 4 ([GH-97873](https://github.com/godotengine/godot/pull/97873)). +- Add support for 24-bit color escape sequences, simplify `print_rich` BBCode parsing ([GH-98118](https://github.com/godotengine/godot/pull/98118)). +- Add typed dictionary support for binary serialization ([GH-98120](https://github.com/godotengine/godot/pull/98120)). +- Fix file logging log rotation ([GH-98216](https://github.com/godotengine/godot/pull/98216)). +- Fix `String::num_int64()`, uint64 for valid base check ([GH-98357](https://github.com/godotengine/godot/pull/98357)). +- Allow using RID with `in` operator for Arrays and Dictionaries ([GH-98363](https://github.com/godotengine/godot/pull/98363)). +- Rationalize busy waits ([GH-98385](https://github.com/godotengine/godot/pull/98385)). +- Update `char_range.inc` to Unicode 16 ([GH-98395](https://github.com/godotengine/godot/pull/98395)). +- DirAccessPack: Fix `file_exists` and `dir_exists` in exported projects ([GH-98483](https://github.com/godotengine/godot/pull/98483)). +- Fix `RID_Owner` synchronization ([GH-98488](https://github.com/godotengine/godot/pull/98488)). +- Curve: Check for finiteness before performing calculations in `sample_baked()` functions ([GH-98625](https://github.com/godotengine/godot/pull/98625)). +- Rename `ClassDB::class_call_static_method` -> `class_call_static` ([GH-98679](https://github.com/godotengine/godot/pull/98679)). +- Android: Implement support for accent color retrieval ([GH-98712](https://github.com/godotengine/godot/pull/98712)). +- Fix `Callable.get_bound_arguments{,_count}()` return incorrect data ([GH-98713](https://github.com/godotengine/godot/pull/98713)). +- Improve locale comparison ([GH-98743](https://github.com/godotengine/godot/pull/98743)). +- Docs: Fix AABB is_finite() and is_equal_approx() ([GH-98748](https://github.com/godotengine/godot/pull/98748)). +- Use `SceneStringName` in more places ([GH-98763](https://github.com/godotengine/godot/pull/98763)). +- Remove unnecessary `_3D_DISABLED` checks in `Performance` ([GH-98946](https://github.com/godotengine/godot/pull/98946)). +- Fix a few more super calls in `get_configuration_warnings` methods ([GH-98951](https://github.com/godotengine/godot/pull/98951)). +- Fix deadlocks related to ClassDB queries about global classes ([GH-98963](https://github.com/godotengine/godot/pull/98963)). +- Fix comparison of callables ([GH-99078](https://github.com/godotengine/godot/pull/99078)). +- SpinLock: Overhaul false sharing prevention ([GH-99168](https://github.com/godotengine/godot/pull/99168)). +- Resource UID fixes and improvements ([GH-99226](https://github.com/godotengine/godot/pull/99226)). +- Support uid:// in more places ([GH-99286](https://github.com/godotengine/godot/pull/99286)). +- Use `(r)find_char` instead of `(r)find` for single characters ([GH-99328](https://github.com/godotengine/godot/pull/99328)). +- Fix incorrect Z direction for AABB's position ([GH-99352](https://github.com/godotengine/godot/pull/99352)). +- Defer initializing BasisU encoder until it is needed ([GH-99376](https://github.com/godotengine/godot/pull/99376)). +- Force `get_thread_count()` to `1` if single threaded ([GH-99416](https://github.com/godotengine/godot/pull/99416)). +- ResourceLoader: Report appropriate error code when no suitable loader is found ([GH-99494](https://github.com/godotengine/godot/pull/99494)). +- Do not generate `*.uid` files for JSON, certificates, and translations ([GH-99540](https://github.com/godotengine/godot/pull/99540)). +- Convert line breaks to `\n` and strip line break from the end of string returned by `OS::read_string_from_stdin`/`OS::get_stdin_string` ([GH-99542](https://github.com/godotengine/godot/pull/99542)). +- Fix stringification of Vector4 ([GH-99545](https://github.com/godotengine/godot/pull/99545)). +- Fix stringification of Projection ([GH-99563](https://github.com/godotengine/godot/pull/99563)). +- Fix missing space after period in error message ([GH-99605](https://github.com/godotengine/godot/pull/99605)). +- ResourceLoader: Print load message only when actually loading ([GH-99667](https://github.com/godotengine/godot/pull/99667)). +- Fix default `Environment` project setting and loading ([GH-99739](https://github.com/godotengine/godot/pull/99739)). +- Add `std::initializer_list` constructor for Dictionary ([GH-99751](https://github.com/godotengine/godot/pull/99751)). +- Fix `JSON.{from,to}_native()` issues ([GH-99765](https://github.com/godotengine/godot/pull/99765)). +- Optimize StringBuilder by using `LocalVector` instead of `Vector` ([GH-99775](https://github.com/godotengine/godot/pull/99775)). +- String: Don't repeat calls to `strlen` in `split`, and make `splitter_length` const in `get_slice` ([GH-99777](https://github.com/godotengine/godot/pull/99777)). +- Move StringName `!=` operator to the header file to make it inlineable ([GH-99815](https://github.com/godotengine/godot/pull/99815)). +- Optimize `String::copy_from` and `String::copy_from_unchecked` implementations, improving String allocation speed ([GH-99816](https://github.com/godotengine/godot/pull/99816)). +- Use `strlen()` 3 times instead of custom length check implementations in ustring ([GH-99817](https://github.com/godotengine/godot/pull/99817)). +- Ensure `parse_utf8` has length of string passed in when available ([GH-99834](https://github.com/godotengine/godot/pull/99834)). +- Fix `OS::has_feature()` skipping custom features ([GH-99864](https://github.com/godotengine/godot/pull/99864)). +- Windows: Fix underflow before `delay_usec` ([GH-99871](https://github.com/godotengine/godot/pull/99871)). +- Avoid duplicated `utf8()` calls ([GH-99893](https://github.com/godotengine/godot/pull/99893)). +- FileAccess: Set `last_error` on file read/write errors ([GH-99919](https://github.com/godotengine/godot/pull/99919)). +- Optimize `String::is_valid_filename()` and `String::validate_filename()` ([GH-100015](https://github.com/godotengine/godot/pull/100015)). +- Optimize `_camelcase_to_underscore` (and thus `String.capitalize`) ([GH-100016](https://github.com/godotengine/godot/pull/100016)). +- Optimize string single char contains calls ([GH-100024](https://github.com/godotengine/godot/pull/100024)). +- Scene: Add `SceneStringName::hover` ([GH-100036](https://github.com/godotengine/godot/pull/100036)). +- Optimize String.similarity by avoiding allocation for bigrams ([GH-100041](https://github.com/godotengine/godot/pull/100041)). +- Scene: Add `SceneStringName::FlatButton` ([GH-100049](https://github.com/godotengine/godot/pull/100049)). +- Fix handling of leading `..` in simplify_path ([GH-100075](https://github.com/godotengine/godot/pull/100075)). +- Optimize String construction from statically known strings by evaluating `strlen` at compile-time ([GH-100132](https://github.com/godotengine/godot/pull/100132)). +- Debugger: Fix scene debugger crash when editor shortcuts are invalid ([GH-100218](https://github.com/godotengine/godot/pull/100218)). +- Add move constructor and move assignment to `CowData`, `String`, `Char16String`, `CharString`, and `Vector` ([GH-100239](https://github.com/godotengine/godot/pull/100239)). +- Optimize `String.count` and `String.countn` by avoiding repeated reallocations ([GH-100294](https://github.com/godotengine/godot/pull/100294)). +- Optimize `StringBuilder.as_string` by constructing the string in-place and skipping unnecessary checks ([GH-100295](https://github.com/godotengine/godot/pull/100295)). +- Improve `ResourceUID::id_to_text` performance ([GH-100335](https://github.com/godotengine/godot/pull/100335)). +- Fix deadlock possibility in threaded load of materials ([GH-100363](https://github.com/godotengine/godot/pull/100363)). +- Optimize `SWAP` macro by using move semantics ([GH-100367](https://github.com/godotengine/godot/pull/100367)). +- Fix UBSAN reports ([GH-100386](https://github.com/godotengine/godot/pull/100386)). +- Add move assignment and move constructor to Variant ([GH-100426](https://github.com/godotengine/godot/pull/100426)). +- Rename `String::copy_from` functions to their respective encodings (`parse_latin1`, `parse_wstring`, `parse_utf32`) ([GH-100434](https://github.com/godotengine/godot/pull/100434)). +- Abstract `CowData`'s reallocations into `_realloc` to consolidate duplicate logic ([GH-100474](https://github.com/godotengine/godot/pull/100474)). +- Optimize `CowData` and `LocalVector` functions `.insert` and `.remove_at` by using move semantics ([GH-100477](https://github.com/godotengine/godot/pull/100477)). +- Add move semantics (constructor, assignment) to `StringName` ([GH-100483](https://github.com/godotengine/godot/pull/100483)). +- Add `LocalVector` move semantics (constructor and operator=) ([GH-100560](https://github.com/godotengine/godot/pull/100560)). +- Add move semantics (constructor, operator=) to `List` ([GH-100563](https://github.com/godotengine/godot/pull/100563)). +- Remove unused headers in servers ([GH-100634](https://github.com/godotengine/godot/pull/100634)). +- Increase precision in `linear_to_srgb()` and `srgb_to_linear()` ([GH-100659](https://github.com/godotengine/godot/pull/100659)). +- Make `LocalVector` -> `Vector` automatic conversion safe for non-trivial types ([GH-100683](https://github.com/godotengine/godot/pull/100683)). +- Destruct `CowData` more graciously by avoiding accidentally exposing a half-destructed buffer ([GH-100694](https://github.com/godotengine/godot/pull/100694)). +- Refactor CommandQueueMT to use vararg templates for performance and maintainability ([GH-100770](https://github.com/godotengine/godot/pull/100770)). +- Don't set `Variant::Type` in destructor ([GH-100795](https://github.com/godotengine/godot/pull/100795)). +- Add `Color.from_rgba8` and deprecate Color8 ([GH-100825](https://github.com/godotengine/godot/pull/100825)). +- Fix parsing Resource type as value type of a Dictionary ([GH-100933](https://github.com/godotengine/godot/pull/100933)). +- Fix `NodePath::slice()` incorrect behavior for subname indexing ([GH-100954](https://github.com/godotengine/godot/pull/100954)). +- Fix UID encoding ([GH-100976](https://github.com/godotengine/godot/pull/100976)). +- Fix looking at with 180 degree arc ([GH-100991](https://github.com/godotengine/godot/pull/100991)). +- Thread: Re-add `<new>` include for `std::hardware_destructive_interference_size` ([GH-101004](https://github.com/godotengine/godot/pull/101004)). +- Add static assert checks in `Variant` constructors ([GH-101016](https://github.com/godotengine/godot/pull/101016)). +- Optimize `_count` by replacing a full copy with a CoW copy for the full-string count case ([GH-101033](https://github.com/godotengine/godot/pull/101033)). +- Consolidate `Variant` int and float conversion functions to reduce duplicate logic ([GH-101055](https://github.com/godotengine/godot/pull/101055)). +- Optimize `Thread::get_caller_id()` ([GH-101072](https://github.com/godotengine/godot/pull/101072)). +- Add explicit error messages to Multimesh functions ([GH-101109](https://github.com/godotengine/godot/pull/101109)). +- Optimize calls of `utf8` in a few spots to avoid calling it more than once ([GH-101233](https://github.com/godotengine/godot/pull/101233)). +- Main: Fix missing performance data ([GH-101242](https://github.com/godotengine/godot/pull/101242)). +- Use `AHashMap` for `SurfaceTool` ([GH-101273](https://github.com/godotengine/godot/pull/101273)). +- Use `LocalVector` for `Curve` and `Gradient` ([GH-101282](https://github.com/godotengine/godot/pull/101282)). +- Revert regression of memory unsafe `append_array` (same vector into same vector) ([GH-101386](https://github.com/godotengine/godot/pull/101386)). +- Improve missing UID errors ([GH-101441](https://github.com/godotengine/godot/pull/101441)). +- Fix UID path remap ([GH-101446](https://github.com/godotengine/godot/pull/101446)). +- Optimize `String` `==`, `ends_with` and `begins_with` by using `memcmp` ([GH-101493](https://github.com/godotengine/godot/pull/101493)). +- Lock the `StringName::mutex` after hashing the string, to spend less time hoarding it unnecessarily ([GH-101606](https://github.com/godotengine/godot/pull/101606)). +- Fix index check in MethodBind::get_argument_type ([GH-101627](https://github.com/godotengine/godot/pull/101627)). +- Fix `ResourceLoader.has_cached()` and `ResourceLoader.get_cached_ref()` not handling UIDs ([GH-101752](https://github.com/godotengine/godot/pull/101752)). +- Fix `Quaternion` arc constructor to check dot & Add test for same `Vector3`s ([GH-101797](https://github.com/godotengine/godot/pull/101797)). +- Fix `Basis::get_euler` incorrectly simplifying rotations in some cases ([GH-102144](https://github.com/godotengine/godot/pull/102144)). +- Fix `is_valid_float`, `Variant` parser, `Expression` parser, script highlighter, and `TextServer` not handing capital E in scientific notation ([GH-102396](https://github.com/godotengine/godot/pull/102396)). +- Fix `PackedStringArray.to_byte_array()` to return UTF-8 encoded data instead of pointers ([GH-102515](https://github.com/godotengine/godot/pull/102515)). +- Use atomic flag to prevent `flush_if_pending` from reading unlocked `command_mem` ([GH-103298](https://github.com/godotengine/godot/pull/103298)). #### Documentation -- Overhaul Node documentation ([GH-68560](https://github.com/godotengine/godot/pull/68560)). -- Tweak SceneTree Documentation ([GH-68649](https://github.com/godotengine/godot/pull/68649)). -- Overhaul Array documentation ([GH-69451](https://github.com/godotengine/godot/pull/69451)). -- Use `Signal.emit` instead of `emit_signal` in Object examples ([GH-69662](https://github.com/godotengine/godot/pull/69662)). -- Document the upsides and downsides of packed arrays versus typed arrays ([GH-78257](https://github.com/godotengine/godot/pull/78257)). -- Update typed arrays documentation ([GH-79075](https://github.com/godotengine/godot/pull/79075)). -- Clarify `Tween.set_parallel()` ([GH-79758](https://github.com/godotengine/godot/pull/79758)). -- Clarify that `Callable` will not be encoded with `var_to_bytes` ([GH-79813](https://github.com/godotengine/godot/pull/79813)). -- Clarify when to construct a StringName ahead of time ([GH-79815](https://github.com/godotengine/godot/pull/79815)). -- Explain which nodes receive `NOTIFICATION_WM_SIZE_CHANGED` ([GH-80094](https://github.com/godotengine/godot/pull/80094)). -- Fix physics server force integration docs ([GH-80166](https://github.com/godotengine/godot/pull/80166)). -- Overhaul NodePath documentation ([GH-80183](https://github.com/godotengine/godot/pull/80183)). -- Overhaul OS documentation ([GH-80282](https://github.com/godotengine/godot/pull/80282)). -- Overhaul Engine singleton documentation ([GH-80372](https://github.com/godotengine/godot/pull/80372)). -- Make RST docs consistent with Editor Help docs ([GH-80690](https://github.com/godotengine/godot/pull/80690)). -- Improve docs on how ParallaxLayer mirroring works ([GH-80896](https://github.com/godotengine/godot/pull/80896)). -- Clarify `PackedByteArray.decompress*` limitations with external data ([GH-81689](https://github.com/godotengine/godot/pull/81689)). -- Tweaks to ViewportTexture's Documentation ([GH-81864](https://github.com/godotengine/godot/pull/81864)). -- Document worker thread pool project settings and `TreeItem.uncollapse_tree()` ([GH-82376](https://github.com/godotengine/godot/pull/82376)). -- Clarify some descriptions regarding resource cache ([GH-82884](https://github.com/godotengine/godot/pull/82884)). -- Improve Node's documentation on `process_mode` related members/methods ([GH-82889](https://github.com/godotengine/godot/pull/82889)). -- Rewrite docs for physics damping project settings ([GH-82950](https://github.com/godotengine/godot/pull/82950)). -- Document Bounce = 1.0 not being sufficient for infinite energy conservation ([GH-82968](https://github.com/godotengine/godot/pull/82968)). -- Clarify that some `ParticleProcessMaterial` properties have effect over the lifetime ([GH-83606](https://github.com/godotengine/godot/pull/83606)). -- Clarify emitting behavior of GPU particles ([GH-83622](https://github.com/godotengine/godot/pull/83622)). -- Expanded documentation for vector slide and project ([GH-83691](https://github.com/godotengine/godot/pull/83691)). -- Add instructions to get shape of `RayCast2D/3D` ([GH-83735](https://github.com/godotengine/godot/pull/83735)). -- Improve and clarify texture filtering documentation ([GH-83907](https://github.com/godotengine/godot/pull/83907)). -- Clarify behavior of RayCast when `get_collision_point()` is used inside a collision shape ([GH-84085](https://github.com/godotengine/godot/pull/84085)). -- Complete the docs for Quaternion ([GH-84140](https://github.com/godotengine/godot/pull/84140)). -- Add details about `AudioEffectCapture.clear_buffer()` and `get_buffer()` ([GH-84584](https://github.com/godotengine/godot/pull/84584)). -- Avoid punning enum names in documentation ([GH-84652](https://github.com/godotengine/godot/pull/84652)). -- Clarify that `@GlobalScope.clamp` does not do component-wise clamping ([GH-84656](https://github.com/godotengine/godot/pull/84656)). -- Add performance note to `Array.resize()` ([GH-84666](https://github.com/godotengine/godot/pull/84666)). -- Add description to `AnimationNodeStateMachine.replace_node` ([GH-84734](https://github.com/godotengine/godot/pull/84734)). -- Document changing the window's resizable status at runtime ([GH-84886](https://github.com/godotengine/godot/pull/84886)). -- Update WorkerThreadPool doc to mention every task should be waited so that any allocated resources can be cleaned up ([GH-84926](https://github.com/godotengine/godot/pull/84926)). -- Fix example in `NodePath.get_name()` documentation ([GH-85240](https://github.com/godotengine/godot/pull/85240)). -- Add descriptions to all RDUniform methods ([GH-85336](https://github.com/godotengine/godot/pull/85336)). -- Improve documentation for dynamic properties ([GH-85450](https://github.com/godotengine/godot/pull/85450)). -- Clarify difference between Capture and Record audio effects ([GH-85468](https://github.com/godotengine/godot/pull/85468)). -- Fix documentation for `icon_and_font_color` editor setting ([GH-85491](https://github.com/godotengine/godot/pull/85491)). -- Fix the documentation of `Bone2D::apply_rest` ([GH-85503](https://github.com/godotengine/godot/pull/85503)). -- Improve documentation for `CameraAttributesPhysical.exposure_shutter_speed` ([GH-85599](https://github.com/godotengine/godot/pull/85599)). -- Explain parameter usage in GPUParticles3D and GPUParticles2D ([GH-85717](https://github.com/godotengine/godot/pull/85717)). -- Clarify Shapecast safe/unsafe fraction difference in class reference ([GH-85839](https://github.com/godotengine/godot/pull/85839)). -- Fix missing heading in translated online class reference ([GH-85877](https://github.com/godotengine/godot/pull/85877)). -- Document `AudioServer.playback_speed_scale` in `Engine.time_scale` ([GH-86071](https://github.com/godotengine/godot/pull/86071)). -- Update the description of the method `get_connection_list` in GraphEdit ([GH-86161](https://github.com/godotengine/godot/pull/86161)). -- Add description for rendering/limits/spatial_indexer/threaded_cull_minimum_instances ([GH-86246](https://github.com/godotengine/godot/pull/86246)). -- Add descriptions to remaining properties of RDSamplerState ([GH-86273](https://github.com/godotengine/godot/pull/86273)). -- Remove pointer to deprecated class page from Skeleton3D ([GH-86326](https://github.com/godotengine/godot/pull/86326)). -- Improve RichTextLabel `install_effect()` documentation ([GH-86331](https://github.com/godotengine/godot/pull/86331)). -- Add note that a large value for `Label.outline_size` is not recommended ([GH-86345](https://github.com/godotengine/godot/pull/86345)). -- Clarify doc: `Node.get_child` returns null for invalid index ([GH-86349](https://github.com/godotengine/godot/pull/86349)). -- Fix various typos in documentation ([GH-86549](https://github.com/godotengine/godot/pull/86549)). -- Fix several reported issues in String's documentation ([GH-86639](https://github.com/godotengine/godot/pull/86639)). -- Correct C# syntax in `_validate_property` example for the Object class ([GH-86649](https://github.com/godotengine/godot/pull/86649)). -- Add code examples to Basis' documentation ([GH-86664](https://github.com/godotengine/godot/pull/86664)). -- Link to mentioned articles in the docs instead of just naming them ([GH-86666](https://github.com/godotengine/godot/pull/86666)). -- Fix incorrect VehicleWheel3D Roll Influence description ([GH-86672](https://github.com/godotengine/godot/pull/86672)). -- Update `get_image` doc to mention that it will return an empty image with invalid texture ([GH-86685](https://github.com/godotengine/godot/pull/86685)). -- Improve all documentation about MIDI support ([GH-86693](https://github.com/godotengine/godot/pull/86693)). -- Add C# examples in `Basis.xml` ([GH-86742](https://github.com/godotengine/godot/pull/86742)). -- Fix various typos in documentation ([GH-86820](https://github.com/godotengine/godot/pull/86820)). -- Add documentation to JavaClass & JavaClassWrapper ([GH-86839](https://github.com/godotengine/godot/pull/86839)). -- Specify how CanvasTexture does not work in 3D ([GH-86848](https://github.com/godotengine/godot/pull/86848)). -- Add a few notes to Sprite3D's documentation ([GH-86872](https://github.com/godotengine/godot/pull/86872)). -- Add missing descriptions to TextServer's constants ([GH-86895](https://github.com/godotengine/godot/pull/86895)). -- Post-merge fixes to Node & OS documentation ([GH-86903](https://github.com/godotengine/godot/pull/86903)). -- Fill the documentation of a few overlooked classes ([GH-86927](https://github.com/godotengine/godot/pull/86927)). -- Add missing documentation for AudioStream & AudioStreamPlayback ([GH-86958](https://github.com/godotengine/godot/pull/86958)). -- Add class reference documentation for GDExtension & GDExtensionManager ([GH-86968](https://github.com/godotengine/godot/pull/86968)). -- Add documentation to EditorExportPlatformWeb ([GH-86977](https://github.com/godotengine/godot/pull/86977)). -- Add missing documentation to Viewport ([GH-86994](https://github.com/godotengine/godot/pull/86994)). -- Add missing descriptions for Image's documentation ([GH-86997](https://github.com/godotengine/godot/pull/86997)). -- Add missing descriptions to PrimitiveMesh and SoftBody3D ([GH-87011](https://github.com/godotengine/godot/pull/87011)). -- Add documentation to PhysicsServer2DExtension ([GH-87018](https://github.com/godotengine/godot/pull/87018)). -- Mention `CollisionPolygon2D.polygon` is local to the given CollisionPolygon2D ([GH-87024](https://github.com/godotengine/godot/pull/87024)). -- Add documentation to PhysicsDirectBodyState2DExtension ([GH-87030](https://github.com/godotengine/godot/pull/87030)). -- Add miscellaneous documentation to some classes ([GH-87042](https://github.com/godotengine/godot/pull/87042)). -- Add missing descriptions to remaining signals ([GH-87047](https://github.com/godotengine/godot/pull/87047)). -- Add descriptions to a few RenderingDevice's PipelineDynamicStateFlags ([GH-87082](https://github.com/godotengine/godot/pull/87082)). -- Overhaul AABB's documentation ([GH-87114](https://github.com/godotengine/godot/pull/87114)). -- Add descriptions to the remaining properties of RDPipelineDepthStencilState ([GH-87156](https://github.com/godotengine/godot/pull/87156)). -- Overhaul Basis' documentation ([GH-87175](https://github.com/godotengine/godot/pull/87175)). -- Include `animation.length` in Animation example ([GH-87180](https://github.com/godotengine/godot/pull/87180)). -- Overhaul Quaternion documentation ([GH-87181](https://github.com/godotengine/godot/pull/87181)). -- Replace some "uncommon" words in class reference ([GH-87223](https://github.com/godotengine/godot/pull/87223)). -- Add missing descriptions for SliderJoint3D's `param` methods ([GH-87244](https://github.com/godotengine/godot/pull/87244)). -- Add "missing description" tag to constant & enum documentation ([GH-87259](https://github.com/godotengine/godot/pull/87259)). -- Overhaul Transform3D documentation ([GH-87334](https://github.com/godotengine/godot/pull/87334)). -- Document bone list for SkeletonProfileHumanoid ([GH-87372](https://github.com/godotengine/godot/pull/87372)). -- Use latest doc version in issue template ([GH-87409](https://github.com/godotengine/godot/pull/87409)). -- Tweak Timer documentation ([GH-87436](https://github.com/godotengine/godot/pull/87436)). -- Tweak XROrigin3D documentation ([GH-87444](https://github.com/godotengine/godot/pull/87444)). -- Clarify sizing of main screen plugins ([GH-87445](https://github.com/godotengine/godot/pull/87445)). -- Tweak Joint2D and Joint3D documentation for consistency ([GH-87446](https://github.com/godotengine/godot/pull/87446)). -- Fix several minor class reference issues ([GH-87523](https://github.com/godotengine/godot/pull/87523)). -- Modify display and documentation of attenuation for Light3D ([GH-87583](https://github.com/godotengine/godot/pull/87583)). -- Mention Multiplayer.`get_remote_sender_id`'s 0 after await ([GH-87610](https://github.com/godotengine/godot/pull/87610)). -- Mention and deprecate InputEventJoypadButton's pressure ([GH-87676](https://github.com/godotengine/godot/pull/87676)). -- Add descriptions to the remaining properties of RDPipelineRasterizationState ([GH-87768](https://github.com/godotengine/godot/pull/87768)). -- Minor fix in DisplayServer docs to include Linux & Windows in `FEATURE_NATIVE_DIALOG` ([GH-87913](https://github.com/godotengine/godot/pull/87913)). -- Fix inverted link in docs ([GH-87951](https://github.com/godotengine/godot/pull/87951)). -- Remove duplicate `ARRAY_CUSTOM_RGBA8_UNORM` ref in Mesh docs ([GH-87973](https://github.com/godotengine/godot/pull/87973)). -- Document `OS.execute()` limitations on Android ([GH-87983](https://github.com/godotengine/godot/pull/87983)). -- Fix docs for Color class regarding bits per component ([GH-87985](https://github.com/godotengine/godot/pull/87985)). -- Improve documentation on Android package unique name ([GH-88024](https://github.com/godotengine/godot/pull/88024)). -- Document initial position project settings not affecting run from editor ([GH-88040](https://github.com/godotengine/godot/pull/88040)). -- Document using RichTextLabel's `meta_clicked` to handle clickable URLs ([GH-88255](https://github.com/godotengine/godot/pull/88255)). -- Fix type-o in `OpenXRAPIExtension` docs for `is_environment_blend_mode_alpha_supported()` ([GH-88298](https://github.com/godotengine/godot/pull/88298)). -- Treat deprecated/experimental members as documented ([GH-88401](https://github.com/godotengine/godot/pull/88401)). -- Update many Deprecated/Experimental descriptions for consistency ([GH-88443](https://github.com/godotengine/godot/pull/88443)). -- Fix function description for `Font.get_char_size()` ([GH-88444](https://github.com/godotengine/godot/pull/88444)). -- Fix some leftover references to `hint_albedo` in docs ([GH-88503](https://github.com/godotengine/godot/pull/88503)). -- Fix "dimensionnal" typo ([GH-88559](https://github.com/godotengine/godot/pull/88559)). -- Clarify that `is_pixel_opaque` function gets position in local coordinates ([GH-88593](https://github.com/godotengine/godot/pull/88593)). -- C#: Document that MainLoop needs to be registered in the global class ([GH-88635](https://github.com/godotengine/godot/pull/88635)). -- Add keywords to improve search in the class reference ([GH-88641](https://github.com/godotengine/godot/pull/88641)). -- Docs: Fix some experimental/deprecated hints ([GH-88708](https://github.com/godotengine/godot/pull/88708)). -- Clarify behavior of opening a new file in `FileAccess` ([GH-88758](https://github.com/godotengine/godot/pull/88758)). -- Doc: Fix GDScript casing of `String.num_scientific` ([GH-88767](https://github.com/godotengine/godot/pull/88767)). -- Document that `parse_input_event` doesn't influence the OS ([GH-88810](https://github.com/godotengine/godot/pull/88810)). -- Add necessary elaboration to documentation for `Node3D::get_parent_node_3d` ([GH-88841](https://github.com/godotengine/godot/pull/88841)). -- Explain gutter types in the TextEdit documentation ([GH-88875](https://github.com/godotengine/godot/pull/88875)). -- Clarify C# Color opacity comment ([GH-88909](https://github.com/godotengine/godot/pull/88909)). -- Doc: Fix some incorrect uses of "children" ([GH-88920](https://github.com/godotengine/godot/pull/88920)). -- RTL: Clarify that line, paragraph, and character numbers are zero-indexed ([GH-88956](https://github.com/godotengine/godot/pull/88956)). -- Doc: Clarify some details about deferred calls ([GH-88961](https://github.com/godotengine/godot/pull/88961)). -- Move `rendering/2d/snap/snap_2d_vertices_to_pixel` setting to advanced view ([GH-88963](https://github.com/godotengine/godot/pull/88963)). -- Overhaul some "uncommon" wording in class reference ([GH-89036](https://github.com/godotengine/godot/pull/89036)). -- Document environment glow restrictions in the Compatibility rendering method ([GH-89059](https://github.com/godotengine/godot/pull/89059)). -- [C#] Fix typo in `Color` documentation ([GH-89092](https://github.com/godotengine/godot/pull/89092)). -- Fix documentation of `XMLParser::get_node_name()` ([GH-89141](https://github.com/godotengine/godot/pull/89141)). -- Class reference: Improve TileMap `get_cell_atlas_coords` documentation ([GH-89146](https://github.com/godotengine/godot/pull/89146)). -- Address a few issues in Transform3D documentation ([GH-89147](https://github.com/godotengine/godot/pull/89147)). -- Update file dialog filter documentation ([GH-89150](https://github.com/godotengine/godot/pull/89150)). -- Docs: [C#] Use `PropertyName` constants in more places ([GH-89246](https://github.com/godotengine/godot/pull/89246)). -- Doc: Clarify `bsearch(_custom)` behavior ([GH-89280](https://github.com/godotengine/godot/pull/89280)). -- Reduce indentation in `XRInterface` class document example code ([GH-89282](https://github.com/godotengine/godot/pull/89282)). -- Use `[codeblock lang=text]` more often in class reference ([GH-89316](https://github.com/godotengine/godot/pull/89316)). -- Add keywords to `PhysicsBody{2D,3D}.test_move()` for easier discoverability ([GH-89318](https://github.com/godotengine/godot/pull/89318)). -- Fix RST generation for `[codeblock lang=text]` ([GH-89380](https://github.com/godotengine/godot/pull/89380)). -- Doc: Fix some incorrect uses of `a/an` ([GH-89444](https://github.com/godotengine/godot/pull/89444)). -- Doc: Clarify description for `get_unix_time_from_system` on UTC ([GH-89454](https://github.com/godotengine/godot/pull/89454)). -- Fix description of touch input position ([GH-89509](https://github.com/godotengine/godot/pull/89509)). -- Doc: Fix Parallax2D use of closer/further ([GH-89590](https://github.com/godotengine/godot/pull/89590)). -- Doc: Clarify behavior of `String.format` with keys in replacements ([GH-89608](https://github.com/godotengine/godot/pull/89608)). -- Fix documentation for receiving light from light probes ([GH-89699](https://github.com/godotengine/godot/pull/89699)). -- Doc: Fix casing of some C# names ([GH-89710](https://github.com/godotengine/godot/pull/89710)). -- Improve some notification and translation docs ([GH-89815](https://github.com/godotengine/godot/pull/89815)). -- Add reference to InputEventJoypadButton in `_shortcut_input` doc ([GH-89838](https://github.com/godotengine/godot/pull/89838)). -- Fix wrong return type mention in `AStarGrid2D` docs ([GH-89862](https://github.com/godotengine/godot/pull/89862)). -- Doc: Document loading behavior with relative paths ([GH-90039](https://github.com/godotengine/godot/pull/90039)). -- Doc: Clarify the behavior of `Vector2/3.cross` and mention parallel vectors ([GH-90072](https://github.com/godotengine/godot/pull/90072)). -- Fix small error in Variant doc ([GH-90088](https://github.com/godotengine/godot/pull/90088)). -- Doc: Improve description of `y_sort_enabled` ([GH-90096](https://github.com/godotengine/godot/pull/90096)). -- Clarify `UndoRedo` `MergeMode` and `add_*_reference` docs ([GH-90263](https://github.com/godotengine/godot/pull/90263)). -- Update the location of editor theme ([GH-90307](https://github.com/godotengine/godot/pull/90307)). -- Update links to outdated asset library demos ([GH-90310](https://github.com/godotengine/godot/pull/90310)). -- Doc: Add hint for required ios camera plugin in CameraServer documentation ([GH-90389](https://github.com/godotengine/godot/pull/90389)). -- Fix `RenderingServer.instance_set_transform` docs saying it's not global ([GH-90396](https://github.com/godotengine/godot/pull/90396)). -- Document Area3D wind properties only affecting SoftBody3D ([GH-90407](https://github.com/godotengine/godot/pull/90407)). -- Surface normals are not the same thing as collision normals for `move_and_slide()` ([GH-90460](https://github.com/godotengine/godot/pull/90460)). -- Improve `custom_minimum_size` description ([GH-90521](https://github.com/godotengine/godot/pull/90521)). -- Doc: Fix incorrect reference to `input_pickable` ([GH-90622](https://github.com/godotengine/godot/pull/90622)). -- Doc: Clarify behavior of `FileAccess.get_line` ([GH-90766](https://github.com/godotengine/godot/pull/90766)). -- Update outdated `low_processor_usage_mode` doc ([GH-90785](https://github.com/godotengine/godot/pull/90785)). -- Remove experimental flag from `remove_user_signal()` ([GH-90862](https://github.com/godotengine/godot/pull/90862)). -- Correct AnimationNode documentation where it mentions multiple inputs ([GH-90962](https://github.com/godotengine/godot/pull/90962)). -- Clarify docs for ParticleProcessMaterial `emission_box_extents` ([GH-90967](https://github.com/godotengine/godot/pull/90967)). -- Fix incorrect C# in `OS.get_cmdline_args` docs ([GH-90985](https://github.com/godotengine/godot/pull/90985)). -- Document AudioEffectSpectrumAnalyzerInstance, clarify relationship with AudioEffectSpectrumAnalyzer ([GH-91034](https://github.com/godotengine/godot/pull/91034)). -- Clarify transform inheritance of CanvasItem nodes ([GH-91110](https://github.com/godotengine/godot/pull/91110)). -- Fix syntax error in `camera_attributes_set_exposure` documentation ([GH-91129](https://github.com/godotengine/godot/pull/91129)). -- Docs: Fix FileAccess example conflicting with global scope `load` ([GH-91189](https://github.com/godotengine/godot/pull/91189)). -- Fix documentation typo that flipped the description of `window_set_max_size` and `window_set_min_size` ([GH-91234](https://github.com/godotengine/godot/pull/91234)). -- Make it clear `Node2D.look_at()` aligns the +X axis ([GH-91293](https://github.com/godotengine/godot/pull/91293)). -- Mention ProjectSettings won't be affected by `convert_text_resources_to_binary` ([GH-91300](https://github.com/godotengine/godot/pull/91300)). -- Update Variant documentation comment about `class_name` ([GH-91313](https://github.com/godotengine/godot/pull/91313)). -- Document 0, 90, 180, and 270 degree TileMap cell rotations ([GH-91330](https://github.com/godotengine/godot/pull/91330)). -- Update CryptoKey documentation to mention ECC ([GH-91348](https://github.com/godotengine/godot/pull/91348)). -- Update the description and parameter name for Vector3 reflect to correct how the plane is constructed ([GH-91376](https://github.com/godotengine/godot/pull/91376)). -- Remove text saying low processor mode only works on desktop ([GH-91393](https://github.com/godotengine/godot/pull/91393)). -- Minor `PackedScene` documentation improvements ([GH-91415](https://github.com/godotengine/godot/pull/91415)). -- Fix outdated `AudioEffectSpectrumAnalyzer` documentation ([GH-91423](https://github.com/godotengine/godot/pull/91423)). -- Fix incorrect example in the documentation for the `expand` method in `Rect2` ([GH-91446](https://github.com/godotengine/godot/pull/91446)). -- Class reference: Add self-links to methods, properties, etc ([GH-91537](https://github.com/godotengine/godot/pull/91537)). -- Add notes in Object documentation about TranslationServer methods ([GH-91544](https://github.com/godotengine/godot/pull/91544)). -- Update ResourceLoader docs to clarify behavior when no file is found during load call ([GH-91571](https://github.com/godotengine/godot/pull/91571)). -- Update `area_create` description in `PhysicsServer2D/3D` to clear up possible confusions ([GH-91581](https://github.com/godotengine/godot/pull/91581)). -- Add docs note about remap returning undefined when istart == istop ([GH-91615](https://github.com/godotengine/godot/pull/91615)). -- Add missing bone name return information ([GH-91658](https://github.com/godotengine/godot/pull/91658)). -- Doc: Update Crypto example ([GH-91761](https://github.com/godotengine/godot/pull/91761)). -- Fix a typo in the GridMap docs ([GH-91917](https://github.com/godotengine/godot/pull/91917)). -- Fix hashing context example ([GH-91920](https://github.com/godotengine/godot/pull/91920)). -- TextServer: Add notes about high level text/font classes and getting active server instance ([GH-91974](https://github.com/godotengine/godot/pull/91974)). -- Improve documentation on TreeItem's cell modes ([GH-92112](https://github.com/godotengine/godot/pull/92112)). -- Fix example for Basis * Vector3 in documentation ([GH-92117](https://github.com/godotengine/godot/pull/92117)). -- Clarify `is_polygon_clockwise()` coordinate system ([GH-92154](https://github.com/godotengine/godot/pull/92154)). -- Fix confusing descriptions of ConfirmationDialog ([GH-92242](https://github.com/godotengine/godot/pull/92242)). -- Explain `add_to_end` parameter of `add_property_editor()` ([GH-92272](https://github.com/godotengine/godot/pull/92272)). -- Clarify `velocity_computed` signal description ([GH-92293](https://github.com/godotengine/godot/pull/92293)). -- Fix outdated `vsync_mode` project setting documentation ([GH-92363](https://github.com/godotengine/godot/pull/92363)). -- Improve `Mesh` class description ([GH-92380](https://github.com/godotengine/godot/pull/92380)). -- Improve description of `find_item_by_name()` method in `MeshLibrary` class documentation ([GH-92416](https://github.com/godotengine/godot/pull/92416)). -- Fix `PhysicsMaterial` description being limited to 3D ([GH-92451](https://github.com/godotengine/godot/pull/92451)). -- Fix Light3D BakeMode enum documentation ([GH-92456](https://github.com/godotengine/godot/pull/92456)). -- RTL: Add references to cell and column configuration methods ([GH-92508](https://github.com/godotengine/godot/pull/92508)). -- Fix mismatched parentheses in class reference ([GH-92535](https://github.com/godotengine/godot/pull/92535)). -- Improve `AudioStreamPlaylist` class reference ([GH-92674](https://github.com/godotengine/godot/pull/92674)). -- Clarify the results of `VectorN.normalized()` in the docs ([GH-92707](https://github.com/godotengine/godot/pull/92707)). -- Correct documentation for Omni and Spot light distance attenuation ([GH-92716](https://github.com/godotengine/godot/pull/92716)). -- Remove note about night sky in PhysicalSkyMaterial ([GH-92758](https://github.com/godotengine/godot/pull/92758)). -- Fix description for `Input.vibrate_handheld()` ([GH-92860](https://github.com/godotengine/godot/pull/92860)). -- Update Node docs to change iOS to Android for `NOTIFICATION_WM_GO_BACK_REQUEST` ([GH-93189](https://github.com/godotengine/godot/pull/93189)). -- Doc: Clarify the session-specific nature of `RID` and `ObjectID` ([GH-93190](https://github.com/godotengine/godot/pull/93190)). -- Fix description of `Vector2/3.dot` ([GH-93195](https://github.com/godotengine/godot/pull/93195)). -- Mention inverse of hex functions in `Color` ([GH-93218](https://github.com/godotengine/godot/pull/93218)). -- Animation: Document frame duration units in `SpriteFrames` ([GH-93233](https://github.com/godotengine/godot/pull/93233)). -- Clarify lightmap rebaking being required for LightmapProbe changes ([GH-93373](https://github.com/godotengine/godot/pull/93373)). -- Change suggestion in `CONTRIBUTING.md` to avoid spam ([GH-93468](https://github.com/godotengine/godot/pull/93468)). -- Fix incorrect text in ResourceImporterWAV description ([GH-93497](https://github.com/godotengine/godot/pull/93497)). -- Change "sample" to "stream" in AudioStreamWAV documentation ([GH-93499](https://github.com/godotengine/godot/pull/93499)). -- Add "repeat" keyword alias for InputEvent "echo" in the class reference ([GH-93562](https://github.com/godotengine/godot/pull/93562)). -- Clarify word separator docs about shortcuts ([GH-93665](https://github.com/godotengine/godot/pull/93665)). -- Update note regarding 3D MSAA and foveated rendering ([GH-93685](https://github.com/godotengine/godot/pull/93685)). -- GraphEdit: Add a note about the behavior of `get_children()` ([GH-93732](https://github.com/godotengine/godot/pull/93732)). -- Fix asset pipeline coordinate systems doc url ([GH-93770](https://github.com/godotengine/godot/pull/93770)). -- Fix "icon" parameter in EditorPlugin.add_custom_type is not optional but doc says it is ([GH-93777](https://github.com/godotengine/godot/pull/93777)). -- Doc: Fix inverted Y position description of y-sorting ([GH-93804](https://github.com/godotengine/godot/pull/93804)). -- Fix info about global library in `add_animation_library` method docs ([GH-93818](https://github.com/godotengine/godot/pull/93818)). -- Update documentation for new `EditorExportPlugin` behavior ([GH-93820](https://github.com/godotengine/godot/pull/93820)). -- Fix AnimationMixer docs example code for `get_root_motion_rotation_accumulator` ([GH-93855](https://github.com/godotengine/godot/pull/93855)). -- Clarify that the `Mesh.ARRAY_NORMAL` array will normalize its contents internally ([GH-93872](https://github.com/godotengine/godot/pull/93872)). -- Add `:` to node properties, to differentiate them from node paths ([GH-93890](https://github.com/godotengine/godot/pull/93890)). -- Mention `timeout` unit in `ENetConnection::service` docs ([GH-93927](https://github.com/godotengine/godot/pull/93927)). -- Clarify `get_executable_path` documentation for Mac ([GH-93944](https://github.com/godotengine/godot/pull/93944)). -- Clarify that `ENetConnection`'s `create_host` and `service` must be called on client and server ([GH-93987](https://github.com/godotengine/godot/pull/93987)). -- Update docs for `Animation.track_set_path` and `AnimationMixer.root_motion_track` ([GH-94007](https://github.com/godotengine/godot/pull/94007)). -- Clarify that some exclude properties of physics query parameters are copied ([GH-94059](https://github.com/godotengine/godot/pull/94059)). -- Overhaul Transform2D documentation ([GH-94127](https://github.com/godotengine/godot/pull/94127)). -- Add `push_url` as a keyword for `push_meta` ([GH-94129](https://github.com/godotengine/godot/pull/94129)). -- Clarify that `Resource.duplicate(true)` doesn't duplicate subresources inside `Array` or `Dictionary` properties ([GH-94142](https://github.com/godotengine/godot/pull/94142)). -- Fix unclear `PROPERTY_USAGE_STORAGE`/`EDITOR` description ([GH-94155](https://github.com/godotengine/godot/pull/94155)). -- Docs: Add some notes about native file dialog limitations ([GH-94161](https://github.com/godotengine/godot/pull/94161)). -- Clean up RenderDataExtension's descriptions ([GH-94217](https://github.com/godotengine/godot/pull/94217)). -- Add a note of `loop_mode` for `custom_timeline` to the `NodeAnimation` docs ([GH-94299](https://github.com/godotengine/godot/pull/94299)). -- Clarify `clipboard_get_image()` ([GH-94325](https://github.com/godotengine/godot/pull/94325)). -- Some improvements to TileSetScenesCollectionSource docs ([GH-94329](https://github.com/godotengine/godot/pull/94329)). -- Clarify `is_visible_in_tree()` in CanvasItem ([GH-94331](https://github.com/godotengine/godot/pull/94331)). -- Fix typo in AABB docs ([GH-94389](https://github.com/godotengine/godot/pull/94389)). -- Fix texture compression descriptions in RenderingDevice docs ([GH-94393](https://github.com/godotengine/godot/pull/94393)). -- Add tutorial link to Parallax2D doc ([GH-94433](https://github.com/godotengine/godot/pull/94433)). -- Font: Fix typo in `get_supported_variation_list` example ([GH-94443](https://github.com/godotengine/godot/pull/94443)). -- Add note about `Script.has_source_code` and GDScript binary tokenization ([GH-94527](https://github.com/godotengine/godot/pull/94527)). -- Clarify documentation for `AnimationPlayer.queue` ([GH-94541](https://github.com/godotengine/godot/pull/94541)). -- Add note to `shadow_mesh` docs to warn about improper usage ([GH-94547](https://github.com/godotengine/godot/pull/94547)). -- Update link in CONTRIBUTING.md ([GH-94565](https://github.com/godotengine/godot/pull/94565)). -- Document update spinner never displaying with `--debug-canvas-item-redraw` ([GH-94702](https://github.com/godotengine/godot/pull/94702)). -- Add link to notification docs in SceneTree docs ([GH-94719](https://github.com/godotengine/godot/pull/94719)). -- Update documentation for places to receive InputEventShortcut ([GH-94745](https://github.com/godotengine/godot/pull/94745)). -- Fix typo in Array's `sort()` method description ([GH-94842](https://github.com/godotengine/godot/pull/94842)). -- Fix doc on Vector2.cs's `/` operator ([GH-94850](https://github.com/godotengine/godot/pull/94850)). -- Document alternatives to some static Color methods ([GH-94879](https://github.com/godotengine/godot/pull/94879)). -- Mention Multimesh custom data will be compressed to half in Compatibility ([GH-94942](https://github.com/godotengine/godot/pull/94942)). -- Fix type-o in `MobileVRInterface` sample code in docs: `xr` -> `use_xr` ([GH-94994](https://github.com/godotengine/godot/pull/94994)). -- Fix typo in EditorPlugin `_forward_3d_draw_over_viewport(overlay)` method example ([GH-94997](https://github.com/godotengine/godot/pull/94997)). -- Document support 3D premultiplied alpha in ResourceImporterTexture ([GH-95004](https://github.com/godotengine/godot/pull/95004)). -- Clean up English in JSON documentation ([GH-95041](https://github.com/godotengine/godot/pull/95041)). -- Fix several typos in the documentation ([GH-95046](https://github.com/godotengine/godot/pull/95046)). -- Document converting a TileMap node to TileMapLayer using the editor ([GH-95069](https://github.com/godotengine/godot/pull/95069)). -- Document expected coordinates in `PopupMenu.popup()` ([GH-95164](https://github.com/godotengine/godot/pull/95164)). -- Fix documentation of `EditorImportPlugin._Import` ([GH-95335](https://github.com/godotengine/godot/pull/95335)). -- Fix typo in EditorImportPlugin docs ([GH-95336](https://github.com/godotengine/godot/pull/95336)). -- Fix check in `Object._ValidateProperty` example ([GH-95341](https://github.com/godotengine/godot/pull/95341)). -- Clarify usage of CompositorEffect as an abstract base class ([GH-95347](https://github.com/godotengine/godot/pull/95347)). -- Incorrect reference to VisibleOnScreenEnabler3D/2D in VisibleOnScreenNotifier3D/2D documentation ([GH-95409](https://github.com/godotengine/godot/pull/95409)). -- Add Animation tutorial links to class reference by 4.3 ([GH-95434](https://github.com/godotengine/godot/pull/95434)). +- Clarify documentation for `Geometry2D.line_intersects_line` ([GH-92001](https://github.com/godotengine/godot/pull/92001)). +- EditorExportPlugin: docs: Workaround for customized texture behavior ([GH-94092](https://github.com/godotengine/godot/pull/94092)). +- Add note about alpha channels blending to `Image.blit_rect` ([GH-94326](https://github.com/godotengine/godot/pull/94326)). +- Document `_process()` and `_physics_process()` delta behavior at low FPS ([GH-94636](https://github.com/godotengine/godot/pull/94636)). +- Improve documentation on TreeItem's cell icons ([GH-95369](https://github.com/godotengine/godot/pull/95369)). +- Document shader time rollover project setting ([GH-95381](https://github.com/godotengine/godot/pull/95381)). +- Add template images to the Cubemap class documentation ([GH-95396](https://github.com/godotengine/godot/pull/95396)). +- Fix typo or unclear language in MultiplayerSpawner doc ([GH-95426](https://github.com/godotengine/godot/pull/95426)). +- Clarify `Timer.start()` documentation to match the current behavior ([GH-95485](https://github.com/godotengine/godot/pull/95485)). +- Add tutorial link in Compositor and CompositorEffect docs ([GH-95539](https://github.com/godotengine/godot/pull/95539)). +- Fix glTF capitalization in class reference ([GH-95578](https://github.com/godotengine/godot/pull/95578)). +- Minor AnimationNodeBlendSpace2D documentation fixes ([GH-95655](https://github.com/godotengine/godot/pull/95655)). +- Remove incorrect statement about TextureButton normal texture ([GH-95660](https://github.com/godotengine/godot/pull/95660)). +- Remove empty `[b]Example:[/b]` lines from the class reference ([GH-95749](https://github.com/godotengine/godot/pull/95749)). +- Fix differences between String and StringName's documentation ([GH-95758](https://github.com/godotengine/godot/pull/95758)). +- docs: Highlight lack of joystick info on majority of platforms ([GH-95760](https://github.com/godotengine/godot/pull/95760)). +- Add documentation for need for normal roughness texture conversion for CompositorEffects ([GH-95773](https://github.com/godotengine/godot/pull/95773)). +- Fix miscellaneous oddities around the class reference ([GH-95774](https://github.com/godotengine/godot/pull/95774)). +- Fix some differences between ShapeCast2D and ShapeCast3D documentation ([GH-95779](https://github.com/godotengine/godot/pull/95779)). +- Fix some invalid code in GDScript class reference ([GH-95780](https://github.com/godotengine/godot/pull/95780)). +- Add descriptions to `PolygonPathFinder` `setup` and `is_point_inside` methods ([GH-95782](https://github.com/godotengine/godot/pull/95782)). +- Docs: Update UPnP GDScript snippet to using `Signal.emit` syntax ([GH-95860](https://github.com/godotengine/godot/pull/95860)). +- Fix Curve2D incorrect sample range description ([GH-95883](https://github.com/godotengine/godot/pull/95883)). +- Add movement caveats to InputEventMouseMotion docs ([GH-95886](https://github.com/godotengine/godot/pull/95886)). +- Document that `Node.duplicate` also duplicates its children ([GH-95927](https://github.com/godotengine/godot/pull/95927)). +- Fix some C# variable types In `AStar2D/3D` Class Reference ([GH-95956](https://github.com/godotengine/godot/pull/95956)). +- Fix typo in `Array` code example ([GH-96033](https://github.com/godotengine/godot/pull/96033)). +- Doc: Clarify `is_null` methods of `Callable` and `Signal` ([GH-96066](https://github.com/godotengine/godot/pull/96066)). +- Doc: Clarify ProjectSettings `hdr_2d` description ([GH-96096](https://github.com/godotengine/godot/pull/96096)). +- Remove the 2D renderer notice from `ProjectSettings` documentation ([GH-96110](https://github.com/godotengine/godot/pull/96110)). +- Fix `Array.sort_custom` example code ([GH-96118](https://github.com/godotengine/godot/pull/96118)). +- Clarify transform data ordering in `RenderingServer.multimesh_set_buffer` ([GH-96184](https://github.com/godotengine/godot/pull/96184)). +- Fix ambiguity in `angle_difference` function documentation ([GH-96473](https://github.com/godotengine/godot/pull/96473)). +- Improve documentation of some `ItemList` signals ([GH-96548](https://github.com/godotengine/godot/pull/96548)). +- Document use of pre-calculated triangulation when drawing polygons ([GH-96556](https://github.com/godotengine/godot/pull/96556)). +- Improve documentation on Node2D transform properties such as Skew ([GH-96583](https://github.com/godotengine/godot/pull/96583)). +- Mention user should remove compute shader hint when use `set_stage_source` ([GH-96599](https://github.com/godotengine/godot/pull/96599)). +- Fix grammar in AudioStreamInteractive docs ([GH-96634](https://github.com/godotengine/godot/pull/96634)). +- Fix description of invalid values for `Theme.default_font_size` ([GH-96757](https://github.com/godotengine/godot/pull/96757)). +- Improve wording on XRPose's `name` description ([GH-96866](https://github.com/godotengine/godot/pull/96866)). +- Remove "default font" from `ResourceImporterDynamicFont` Documentation ([GH-96870](https://github.com/godotengine/godot/pull/96870)). +- Docs: Add cross-links to antialiasing project settings ([GH-96893](https://github.com/godotengine/godot/pull/96893)). +- Clarify the coordinate space for the bounding rectangle returned by `Label.get_character_bounds` ([GH-96919](https://github.com/godotengine/godot/pull/96919)). +- Docs: Add warning about sharing a syntax highlighter to `TextEdit` ([GH-96954](https://github.com/godotengine/godot/pull/96954)). +- Change "deconstructor" to "destructor" in `NOTIFICATION_PREDELETE` docs ([GH-96981](https://github.com/godotengine/godot/pull/96981)). +- Fix description of `Array.sort_custom()` ([GH-97033](https://github.com/godotengine/godot/pull/97033)). +- Document SceneMultiplayer `auth_timeout` being in seconds ([GH-97045](https://github.com/godotengine/godot/pull/97045)). +- Remove outdated note about `not` operator with String and StringName ([GH-97072](https://github.com/godotengine/godot/pull/97072)). +- Warn for potential performance issues with Auto Switch to Remote Scene Tree editor setting ([GH-97092](https://github.com/godotengine/godot/pull/97092)). +- Clarify behavior of `InputEvent.is_match` and `Shortcut.matches_event` ([GH-97106](https://github.com/godotengine/godot/pull/97106)). +- Fix typo in `string_get_character_breaks()` sample code ([GH-97141](https://github.com/godotengine/godot/pull/97141)). +- Fix typo in CompositorEffect documentation ([GH-97202](https://github.com/godotengine/godot/pull/97202)). +- Fix minor typo in EditorPlugin `remove_inspector_plugin` ([GH-97203](https://github.com/godotengine/godot/pull/97203)). +- Docs: Clarify `CanvasItem` visibility properties and signals ([GH-97223](https://github.com/godotengine/godot/pull/97223)). +- Add missing period for sentences in classref ([GH-97231](https://github.com/godotengine/godot/pull/97231)). +- Clarify docs for when toggling `button_pressed` emits `toggled` ([GH-97274](https://github.com/godotengine/godot/pull/97274)). +- Document that `OptimizedTranslation.generate()` only works in editor ([GH-97284](https://github.com/godotengine/godot/pull/97284)). +- Clarify PCK path argument in `PCKPacker.pck_start` ([GH-97286](https://github.com/godotengine/godot/pull/97286)). +- Fix a typo in make_rst.py (Packedfloat64Array -> PackedFloat64Array) ([GH-97338](https://github.com/godotengine/godot/pull/97338)). +- Add descriptions to RDVertexAttribute's properties ([GH-97346](https://github.com/godotengine/godot/pull/97346)). +- Refactor signal documentation to improve clarity ([GH-97357](https://github.com/godotengine/godot/pull/97357)). +- Clarify CanvasItem's visibility signal descriptions (followup) ([GH-97367](https://github.com/godotengine/godot/pull/97367)). +- Fix SplitContainer collapsed documentation ([GH-97373](https://github.com/godotengine/godot/pull/97373)). +- Better description for multiplayer spawner signals ([GH-97425](https://github.com/godotengine/godot/pull/97425)). +- Update notes for Color Curve members in ParticleProcessMaterial ([GH-97450](https://github.com/godotengine/godot/pull/97450)). +- Clarify when LineEdit's `text_submitted` signal is emitted ([GH-97455](https://github.com/godotengine/godot/pull/97455)). +- Docs: Add notes about glyph contour decomposition format ([GH-97514](https://github.com/godotengine/godot/pull/97514)). +- Add missing descriptions to `PhysicalBone3D` class ([GH-97609](https://github.com/godotengine/godot/pull/97609)). +- Docs: Remove duplicate words ([GH-97638](https://github.com/godotengine/godot/pull/97638)). +- Improve TextEdit and CodeEdit documentation ([GH-97656](https://github.com/godotengine/godot/pull/97656)). +- Document `Object.has_signal()` in the Signal class reference ([GH-97734](https://github.com/godotengine/godot/pull/97734)). +- Fix small typo on PackedVector2Array docs ([GH-97835](https://github.com/godotengine/godot/pull/97835)). +- Clarify that fog_aerial_perspective does not actually use sky color ([GH-97842](https://github.com/godotengine/godot/pull/97842)). +- Update Node.xml: specify that normal processing happens in tree order ([GH-97905](https://github.com/godotengine/godot/pull/97905)). +- Document non-resource file handling in FileAccess and ResourceLoader ([GH-97906](https://github.com/godotengine/godot/pull/97906)). +- Remove note about missing per-vertex-shading ([GH-97917](https://github.com/godotengine/godot/pull/97917)). +- Clarify SIMPLEX and SIMPLEX_SMOOTH types ([GH-97922](https://github.com/godotengine/godot/pull/97922)). +- Fix a documentation typo in `Control._drop_data()` C#-example ([GH-97966](https://github.com/godotengine/godot/pull/97966)). +- Fix grammar mistake in Shortcut documentation ([GH-98081](https://github.com/godotengine/godot/pull/98081)). +- Better explanation for replication interval and delta interval (MultiplayerSynchronizer) ([GH-98138](https://github.com/godotengine/godot/pull/98138)). +- Update `use_native_dialog` description in `FileDialog` ([GH-98202](https://github.com/godotengine/godot/pull/98202)). +- Fix wording in description of `store_line` and `store_string` ([GH-98238](https://github.com/godotengine/godot/pull/98238)). +- Mention native file dialogs editor setting in EditorFileDialog description ([GH-98262](https://github.com/godotengine/godot/pull/98262)). +- Add descriptions to RDTextureFormat's methods ([GH-98264](https://github.com/godotengine/godot/pull/98264)). +- Improve `_begin_customize_scenes` description ([GH-98265](https://github.com/godotengine/godot/pull/98265)). +- Fix documentation tip for `network/debug/remote_host` editor setting ([GH-98282](https://github.com/godotengine/godot/pull/98282)). +- Docs: Add link to 2D lights and shadows from CanvasModulate ([GH-98283](https://github.com/godotengine/godot/pull/98283)). +- Add missing `HTTPRequest` Result descriptions ([GH-98332](https://github.com/godotengine/godot/pull/98332)). +- Clarify `EngineDebugger` and `EditorDebugger*` documentation ([GH-98378](https://github.com/godotengine/godot/pull/98378)). +- Link to Screen-reading shaders tutorial in BackBufferCopy documentation ([GH-98421](https://github.com/godotengine/godot/pull/98421)). +- Clarify `TextEdit.is_caret_visible()` behavior in the class reference ([GH-98423](https://github.com/godotengine/godot/pull/98423)). +- Add documentation for Android immersive mode ([GH-98427](https://github.com/godotengine/godot/pull/98427)). +- Document the differences between GDScript and GlobalScope ([GH-98438](https://github.com/godotengine/godot/pull/98438)). +- AudioEffects documentation enhancements ([GH-98455](https://github.com/godotengine/godot/pull/98455)). +- Clarify tiling of AtlasTexture ([GH-98458](https://github.com/godotengine/godot/pull/98458)). +- Docs: Link to GlobalScope string methods from String class ref ([GH-98473](https://github.com/godotengine/godot/pull/98473)). +- Improve documentation on `@GlobalScope.PROPERTY_USAGE_SCRIPT_VARIABLE` ([GH-98478](https://github.com/godotengine/godot/pull/98478)). +- Docs: Link to Project Settings tutorial from ProjectSettings class ([GH-98480](https://github.com/godotengine/godot/pull/98480)). +- Fix typo in `OccluderInstance3D` documentation ([GH-98523](https://github.com/godotengine/godot/pull/98523)). +- Remove link to outdated CharFX example project ([GH-98585](https://github.com/godotengine/godot/pull/98585)). +- Improve `TileMapLayer` get surrounding cells description ([GH-98587](https://github.com/godotengine/godot/pull/98587)). +- Document exporting nested subgroups ([GH-98616](https://github.com/godotengine/godot/pull/98616)). +- Docs: Add links to project settings ([GH-98621](https://github.com/godotengine/godot/pull/98621)). +- Improve `Tween.set_ease` and `Tween.set_trans` documentation ([GH-98689](https://github.com/godotengine/godot/pull/98689)). +- Editor: Fix EditorSettings.xml docs for "ask_before_revoking_unique_name" ([GH-98742](https://github.com/godotengine/godot/pull/98742)). +- Docs: Standardize names and terms for renderers ([GH-98744](https://github.com/godotengine/godot/pull/98744)). +- Standardize terms for renderers in error strings ([GH-98747](https://github.com/godotengine/godot/pull/98747)). +- Document Timer autostart in tool scripts ([GH-98769](https://github.com/godotengine/godot/pull/98769)). +- Docs: Update TileSet to reference TileMapLayer instead of TileMap ([GH-98782](https://github.com/godotengine/godot/pull/98782)). +- Update docs for `Tween.stop` to clarify behavior ([GH-98787](https://github.com/godotengine/godot/pull/98787)). +- Docs: Add link to SpringArm3D tutorial ([GH-98828](https://github.com/godotengine/godot/pull/98828)). +- Clarify `ResourceLoader.load_threaded_get_status()` completion ratio description ([GH-98899](https://github.com/godotengine/godot/pull/98899)). +- Add note to `CanvasItem.clip_children` about nesting ([GH-98948](https://github.com/godotengine/godot/pull/98948)). +- Fix `engine_type_colors`'s description ([GH-98966](https://github.com/godotengine/godot/pull/98966)). +- Docs: Update AStar3D examples ([GH-98978](https://github.com/godotengine/godot/pull/98978)). +- Fix more miscellaneous oddities around the class reference ([GH-99002](https://github.com/godotengine/godot/pull/99002)). +- Fix interactive music docs saying it's "not implemented" ([GH-99003](https://github.com/godotengine/godot/pull/99003)). +- Add examples to PacketPeerUDP class documentation ([GH-99015](https://github.com/godotengine/godot/pull/99015)). +- Clean up more `[b]Example:[/b]` lines from the class reference ([GH-99020](https://github.com/godotengine/godot/pull/99020)). +- Fix `true` being surrounded by `[b]` tags in documentation ([GH-99038](https://github.com/godotengine/godot/pull/99038)). +- Update `Transform3D.rotated_local()` description ([GH-99075](https://github.com/godotengine/godot/pull/99075)). +- Add note about LightmapGI only baking nodes under its parent ([GH-99079](https://github.com/godotengine/godot/pull/99079)). +- Update documentation's "Prints" comments after #47502 ([GH-99081](https://github.com/godotengine/godot/pull/99081)). +- Fix untagged `true` in GLTFState's documentation ([GH-99088](https://github.com/godotengine/godot/pull/99088)). +- Fix C# boolean "Prints" comments in documentation ([GH-99089](https://github.com/godotengine/godot/pull/99089)). +- Add documentation note on Object's boolean context ([GH-99091](https://github.com/godotengine/godot/pull/99091)). +- Add notes on `DirAccess` documentation ([GH-99132](https://github.com/godotengine/godot/pull/99132)). +- Clarify effect of setting "page" parameter in ScrollBar nodes ([GH-99146](https://github.com/godotengine/godot/pull/99146)). +- Fix `format` description being different between String and StringName ([GH-99185](https://github.com/godotengine/godot/pull/99185)). +- Clarify documentation for TileSetAtlasSource `texture_region_size` ([GH-99204](https://github.com/godotengine/godot/pull/99204)). +- Describe edge cases for `DisplayServer.get_screen_from_rect()` ([GH-99212](https://github.com/godotengine/godot/pull/99212)). +- Update Z Index property location in Node2D class reference ([GH-99238](https://github.com/godotengine/godot/pull/99238)). +- Fix TODO comments in class reference ([GH-99242](https://github.com/godotengine/godot/pull/99242)). +- Add a code sample that extracts all files to ZIPReader documentation ([GH-99325](https://github.com/godotengine/godot/pull/99325)). +- Clarify Button's text clipping ([GH-99338](https://github.com/godotengine/godot/pull/99338)). +- Rewrite some `@GlobalScope` keys in documentation to use `[code]` tags ([GH-99364](https://github.com/godotengine/godot/pull/99364)). +- Fix typo in FileAccess docs ([GH-99419](https://github.com/godotengine/godot/pull/99419)). +- Suggest using `OS.has_feature` instead of the engine architecture name for bitness ([GH-99465](https://github.com/godotengine/godot/pull/99465)). +- Fix typo in AudioStream's documentation ([GH-99511](https://github.com/godotengine/godot/pull/99511)). +- Correct PackedInt64Array comparison in description ([GH-99521](https://github.com/godotengine/godot/pull/99521)). +- Fix wording in `LookAtModifier3D` docs ([GH-99533](https://github.com/godotengine/godot/pull/99533)). +- Document `radial_center_offset` bounds for `TextureProgressBar` ([GH-99584](https://github.com/godotengine/godot/pull/99584)). +- Fix example code snippets in AudioStreamGenerator.xml ([GH-99604](https://github.com/godotengine/godot/pull/99604)). +- Fix missing sign in ease function curve description ([GH-99611](https://github.com/godotengine/godot/pull/99611)). +- Docs: Update Control class to properly reflect behavior of Themes on Control Children ([GH-99620](https://github.com/godotengine/godot/pull/99620)). +- Make Transform2D/3D, Basis, and Quaternion docs more consistent ([GH-99650](https://github.com/godotengine/godot/pull/99650)). +- Update `screen_get_scale` documentation ([GH-99677](https://github.com/godotengine/godot/pull/99677)). +- Add C# examples to PropertyTweener docs ([GH-99736](https://github.com/godotengine/godot/pull/99736)). +- WebSocket: Clarify that `connect_to_url` is non-blocking ([GH-99753](https://github.com/godotengine/godot/pull/99753)). +- Update CanvasLayer 'Follow Viewport' documentation to match its behavior ([GH-99754](https://github.com/godotengine/godot/pull/99754)). +- Update `use_system_accent_color` note in EditorSettings ([GH-99827](https://github.com/godotengine/godot/pull/99827)). +- Docs: Update example from Window signal `files_dropped` ([GH-99837](https://github.com/godotengine/godot/pull/99837)). +- Remove outdated note about `BaseMaterial3D.billboard_mode` shadow issue ([GH-99841](https://github.com/godotengine/godot/pull/99841)). +- Standardize all "Prints" comments in documentation ([GH-99876](https://github.com/godotengine/godot/pull/99876)). +- Betsy: Update docs to reflect BC3 and BC5 ([GH-99900](https://github.com/godotengine/godot/pull/99900)). +- Document inverse aspect ratio convention of `Projection::get_fovy()` ([GH-99921](https://github.com/godotengine/godot/pull/99921)). +- Remove uses of implicit static typing from the documentation ([GH-99924](https://github.com/godotengine/godot/pull/99924)). +- Remove uses of static typing from the documentation ([GH-99925](https://github.com/godotengine/godot/pull/99925)). +- Fix a very slight grammatical issue ([GH-100002](https://github.com/godotengine/godot/pull/100002)). +- Clarify `limit_length()` for infinite vectors ([GH-100204](https://github.com/godotengine/godot/pull/100204)). +- Document `GPUParticles.emit_particle()` only working on Forward+ and Mobile ([GH-100369](https://github.com/godotengine/godot/pull/100369)). +- Document CameraFeed platform limitations ([GH-100449](https://github.com/godotengine/godot/pull/100449)). +- Document limitations of refraction from using screen texture ([GH-100586](https://github.com/godotengine/godot/pull/100586)). +- Remove trailing double quote from link in GLTFState class documentation ([GH-100711](https://github.com/godotengine/godot/pull/100711)). +- Mark `EditorInterface.popup_create_dialog()` as experimental ([GH-100731](https://github.com/godotengine/godot/pull/100731)). +- Update `OS.request_permission(...)` description ([GH-100785](https://github.com/godotengine/godot/pull/100785)). +- Fix docs for `EditorContextMenuPlugin.add_context_submenu_item` ([GH-100865](https://github.com/godotengine/godot/pull/100865)). +- Fix `get_meta_list` return type in description ([GH-100903](https://github.com/godotengine/godot/pull/100903)). +- Web: Clarify JavaScriptBridge callback requirements ([GH-100939](https://github.com/godotengine/godot/pull/100939)). +- Fix warning in CollisionPolygon2D documentation description ([GH-101107](https://github.com/godotengine/godot/pull/101107)). +- Document WorldBoundaryShape3D having a finite size when using Jolt Physics ([GH-101108](https://github.com/godotengine/godot/pull/101108)). +- Improve OpenGL 3 fallback documentation wording ([GH-101166](https://github.com/godotengine/godot/pull/101166)). +- Update official export templates architecture list in docs ([GH-101225](https://github.com/godotengine/godot/pull/101225)). +- Fix example in `OS.shell_open()` method documentation and add a new one ([GH-101263](https://github.com/godotengine/godot/pull/101263)). +- Add TileMap tutorials to TileMapLayer class reference ([GH-101299](https://github.com/godotengine/godot/pull/101299)). +- Fix typo in Basis `get_rotation_quaternion` doc ([GH-101330](https://github.com/godotengine/godot/pull/101330)). +- Clarify expected types in `RayCast3D` documentation ([GH-101373](https://github.com/godotengine/godot/pull/101373)). +- Fix typo in EditorDebuggerPlugin documentation ([GH-101378](https://github.com/godotengine/godot/pull/101378)). +- Fix SkeletonProfileHumanoid documentation error ([GH-101419](https://github.com/godotengine/godot/pull/101419)). +- Docs: Fix typo in `AudioStreamSynchronized` ([GH-101459](https://github.com/godotengine/godot/pull/101459)). +- Add documentation to `particles_request_process_time` ([GH-101511](https://github.com/godotengine/godot/pull/101511)). +- Fix `visibility_notifier_create` documentation ([GH-101556](https://github.com/godotengine/godot/pull/101556)). +- Add a note to `DisplayServer.get_display_safe_area()` method documentation ([GH-101567](https://github.com/godotengine/godot/pull/101567)). +- Update `InputEventWithModifiers` documentation for modifier key behavior ([GH-101620](https://github.com/godotengine/godot/pull/101620)). +- Clarify the impact of "Normal Map (RG Channels)" on texture imports ([GH-101623](https://github.com/godotengine/godot/pull/101623)). +- Fix collision normal being referred to as surface normal in PhysicsDirectSpaceState doc ([GH-101698](https://github.com/godotengine/godot/pull/101698)). +- Make `COPYRIGHT.txt` compliant with `debian/copyright` specification ([GH-101713](https://github.com/godotengine/godot/pull/101713)). +- Fix Jolt note in WorldBoundaryShape3D documentation ([GH-101836](https://github.com/godotengine/godot/pull/101836)). +- Fix URLs for Cubemap template images in documentation ([GH-101856](https://github.com/godotengine/godot/pull/101856)). +- Fix incorrect `CPUParticles2D` and `CPUParticles3D` documentation ([GH-101883](https://github.com/godotengine/godot/pull/101883)). +- Change if false to if true "Emoji and Symbols" menu is enabled ([GH-102042](https://github.com/godotengine/godot/pull/102042)). +- Documentation change from Blender directory to executable ([GH-102044](https://github.com/godotengine/godot/pull/102044)). +- Mention visibility layers and inheritance in `Node3D.is_visible_in_tree()` docs ([GH-102450](https://github.com/godotengine/godot/pull/102450)). +- Add parentheses to method links in online class reference ([GH-102567](https://github.com/godotengine/godot/pull/102567)). +- Document `CanvasItem.draw_dashed_line()`'s `dash` and `align` parameters ([GH-102675](https://github.com/godotengine/godot/pull/102675)). +- Clarify the behavior of `Control.layout_direction` in the documentation ([GH-102716](https://github.com/godotengine/godot/pull/102716)). +- Improve documentation on forcing right-to-left layout in Control ([GH-102742](https://github.com/godotengine/godot/pull/102742)). +- Fix dead links across the class reference ([GH-102773](https://github.com/godotengine/godot/pull/102773)). +- Document the valid range of tile coordinates in TileMapLayer ([GH-102776](https://github.com/godotengine/godot/pull/102776)). +- Update tonemapping docs ([GH-102820](https://github.com/godotengine/godot/pull/102820)). +- Clarify that `Vector2.angle_to` returns a signed angle ([GH-102824](https://github.com/godotengine/godot/pull/102824)). +- Fix typo in EditorTranslationParserPlugin docs ([GH-103148](https://github.com/godotengine/godot/pull/103148)). +- Document creating Texture2DArray, Cubemap and CubemapArray from code ([GH-103261](https://github.com/godotengine/godot/pull/103261)). +- Fix various typos in the class reference ([GH-103391](https://github.com/godotengine/godot/pull/103391)). #### Editor -- Add a V-Sync editor setting ([GH-48364](https://github.com/godotengine/godot/pull/48364)). -- Automatically create folder in project manager create and import ([GH-56420](https://github.com/godotengine/godot/pull/56420)). -- Display the build date in the editor and when starting the engine ([GH-59247](https://github.com/godotengine/godot/pull/59247)). -- Implement project-wide node groups ([GH-60965](https://github.com/godotengine/godot/pull/60965)). -- Fix behavior of 'Editable Children' toggle ([GH-60974](https://github.com/godotengine/godot/pull/60974)). -- Decrease the default idle parse delay in the script editor ([GH-61814](https://github.com/godotengine/godot/pull/61814)). -- Store line change in script navigation history ([GH-63515](https://github.com/godotengine/godot/pull/63515)). -- Allow to set custom feature tags for testing ([GH-63529](https://github.com/godotengine/godot/pull/63529)). -- Add a dialog to customize run instances ([GH-65753](https://github.com/godotengine/godot/pull/65753)). -- Use `check_changed_settings_in_group()` everywhere ([GH-69032](https://github.com/godotengine/godot/pull/69032)). -- Allow easily renaming multiple nodes ([GH-69087](https://github.com/godotengine/godot/pull/69087)). -- Allow loading custom ProjectSettings instance ([GH-75048](https://github.com/godotengine/godot/pull/75048)). -- Add colored margin in Inspector for arrays and dictionaries ([GH-75482](https://github.com/godotengine/godot/pull/75482)). -- Fix missing script time for some functions in profiler ([GH-75623](https://github.com/godotengine/godot/pull/75623)). -- Add automatic checking for engine updates ([GH-75916](https://github.com/godotengine/godot/pull/75916)). -- Add tooltip plugin for AudioStream ([GH-77069](https://github.com/godotengine/godot/pull/77069)). -- Cache `TreeItem`s between runs in `EditorHelpSearch` ([GH-77471](https://github.com/godotengine/godot/pull/77471)). -- Add inheriting classes to `DocTools` ([GH-77554](https://github.com/godotengine/godot/pull/77554)). -- Add a way to invalidate preview cache ([GH-77697](https://github.com/godotengine/godot/pull/77697)). -- Fix incorrect check on importing project ([GH-77832](https://github.com/godotengine/godot/pull/77832)). -- Fix custom resource icons in FileSystem ([GH-77932](https://github.com/godotengine/godot/pull/77932)). -- Allow configuring the script filename casing rule ([GH-78119](https://github.com/godotengine/godot/pull/78119)). -- Add search keywords to the class reference ([GH-78990](https://github.com/godotengine/godot/pull/78990)). -- Enable optional minimal SteamAPI integration for usage time tracking (editor only) ([GH-79126](https://github.com/godotengine/godot/pull/79126)). -- Ignore directory entries in TPZ ([GH-79374](https://github.com/godotengine/godot/pull/79374)). -- Add size check to prevent popup bigger than the screen itself ([GH-79617](https://github.com/godotengine/godot/pull/79617)). -- Load project metadata file only when needed ([GH-79785](https://github.com/godotengine/godot/pull/79785)). -- Add a way to force history for undoredo ([GH-79796](https://github.com/godotengine/godot/pull/79796)). -- Remove exp hint of a few properties ([GH-80326](https://github.com/godotengine/godot/pull/80326)). -- Rework `update_property` for array ([GH-80706](https://github.com/godotengine/godot/pull/80706)). -- Add PhysicsMaterial icon ([GH-81044](https://github.com/godotengine/godot/pull/81044)). -- Improve "Add" button consistency in Project Settings ([GH-81905](https://github.com/godotengine/godot/pull/81905)). -- Set `open_dominant_script_on_scene_change` to off by default ([GH-81906](https://github.com/godotengine/godot/pull/81906)). -- Make the search bars in the "Project Settings" dialog grab focus when they appear ([GH-82283](https://github.com/godotengine/godot/pull/82283)). -- Add support for exporting script classes without a name ([GH-82528](https://github.com/godotengine/godot/pull/82528)). -- Fix saving branch as scene saves children without owner set ([GH-82802](https://github.com/godotengine/godot/pull/82802)). -- Allow to remove signal connections using `Delete` ([GH-82821](https://github.com/godotengine/godot/pull/82821)). -- Add context support for editor property name i18n ([GH-82852](https://github.com/godotengine/godot/pull/82852)). -- Add compatibility rename of `(v)align` properties of `Label` ([GH-82894](https://github.com/godotengine/godot/pull/82894)). -- Allow Ctrl + KP / and Ctrl + # to toggle comment in the script editor ([GH-83109](https://github.com/godotengine/godot/pull/83109)). -- (Un)Fold event categories by double click ([GH-83248](https://github.com/godotengine/godot/pull/83248)). -- Fix export variable of type Node pointing to a wrong child node when duplicating ([GH-83343](https://github.com/godotengine/godot/pull/83343)). -- Allow to load multiple animation/libraries at once in the animation manager ([GH-83503](https://github.com/godotengine/godot/pull/83503)). -- Only update `EditorSceneTabs` tabs when necessary ([GH-83957](https://github.com/godotengine/godot/pull/83957)). -- Fix UV editor not showing polygon correctly ([GH-84116](https://github.com/godotengine/godot/pull/84116)). -- Fix nodes being deselected upon reparenting ([GH-84135](https://github.com/godotengine/godot/pull/84135)). -- Extract `EditorDockManager` from `EditorNode` ([GH-84193](https://github.com/godotengine/godot/pull/84193)). -- Inspector: Fix clearing array/dictionary element with `<Object#null>` ([GH-84237](https://github.com/godotengine/godot/pull/84237)). -- Preserve inspector focus when opening script from scene tree ([GH-84284](https://github.com/godotengine/godot/pull/84284)). -- Allow dragging editable children ([GH-84310](https://github.com/godotengine/godot/pull/84310)). -- Hide private enums from documentation ([GH-84396](https://github.com/godotengine/godot/pull/84396)). -- Disable multi-window buttons instead of hiding them when support is unavailable ([GH-84515](https://github.com/godotengine/godot/pull/84515)). -- Fix errors on file rename or move in the Filesystem Dock ([GH-84520](https://github.com/godotengine/godot/pull/84520)). -- Add tooltip for toggling favorite nodes ([GH-84619](https://github.com/godotengine/godot/pull/84619)). -- Add PropertyListHelper ([GH-84635](https://github.com/godotengine/godot/pull/84635)). -- Clarify description of "group selected" ([GH-84788](https://github.com/godotengine/godot/pull/84788)). -- Fix unlimited project option ranges that could cause crashes ([GH-84800](https://github.com/godotengine/godot/pull/84800)). -- Fix folder color not showing up in file dialogs ([GH-84837](https://github.com/godotengine/godot/pull/84837)). -- Add "Show In FileSystem" to the Scene hierarchy right-click ([GH-84882](https://github.com/godotengine/godot/pull/84882)). -- Prevent race condition on initial breakpoints from DAP ([GH-84895](https://github.com/godotengine/godot/pull/84895)). -- Do not bother with line colors if `line_number_gutter` is not yet calculated ([GH-84907](https://github.com/godotengine/godot/pull/84907)). -- Improve search/replace bar behavior ([GH-84932](https://github.com/godotengine/godot/pull/84932)). -- Add an option to center children around the new parent when reparenting ([GH-84995](https://github.com/godotengine/godot/pull/84995)). -- Fix issue with 3D scene drag and drop preview node ([GH-85087](https://github.com/godotengine/godot/pull/85087)). -- Don't abort loading when `ext_resource` is missing ([GH-85159](https://github.com/godotengine/godot/pull/85159)). -- Add further details on properties returning `Packed*Array` ([GH-85207](https://github.com/godotengine/godot/pull/85207)). -- Don't insert newline while saving ([GH-85228](https://github.com/godotengine/godot/pull/85228)). -- Use the flat button style on switches in scene and node docks ([GH-85236](https://github.com/godotengine/godot/pull/85236)). -- Use `SafeNumeric` to protect `max_index` in ImportThreadData ([GH-85295](https://github.com/godotengine/godot/pull/85295)). -- Make copy & paste params skip `resource_path` ([GH-85362](https://github.com/godotengine/godot/pull/85362)). -- Improve SceneTreeEditor usability ([GH-85386](https://github.com/godotengine/godot/pull/85386)). -- Make it possible to show code hint and code completion at the same time ([GH-85436](https://github.com/godotengine/godot/pull/85436)). -- Improve Control hiding in PluginConfigDialog ([GH-85470](https://github.com/godotengine/godot/pull/85470)). -- Update NodePaths only in built-in resources ([GH-85502](https://github.com/godotengine/godot/pull/85502)). -- Expose `Node.is_part_of_edited_scene()` ([GH-85515](https://github.com/godotengine/godot/pull/85515)). -- Fix for Cmd-B shortcut conflict on macOS ([GH-85527](https://github.com/godotengine/godot/pull/85527)). -- Fix SnapGrid is almost invisible in light theme ([GH-85585](https://github.com/godotengine/godot/pull/85585)). -- Defer creating new editor process in "Quit to Project List" just like in "Reload Current Project" ([GH-85654](https://github.com/godotengine/godot/pull/85654)). -- Mark `gui/theme/custom` and `gui/theme/custom_font` as basic properties ([GH-85660](https://github.com/godotengine/godot/pull/85660)). -- Add separate feature tags for editor runtime ([GH-85678](https://github.com/godotengine/godot/pull/85678)). -- Hide Node dock successfully on undo/redo and deletion ([GH-85686](https://github.com/godotengine/godot/pull/85686)). -- Fix theme application in various editor dialogs ([GH-85745](https://github.com/godotengine/godot/pull/85745)). -- Improve engine startup/shutdown benchmarks ([GH-85885](https://github.com/godotengine/godot/pull/85885)). -- Add a editor FileSystem dock action to open a terminal in selected folder ([GH-85923](https://github.com/godotengine/godot/pull/85923)). -- Stop the searching of `find in files` in folders that have `.gdignore` ([GH-85943](https://github.com/godotengine/godot/pull/85943)). -- Tweak Help menu icons for better visibility of commonly used items ([GH-85978](https://github.com/godotengine/godot/pull/85978)). -- Disable Add button when theme item name is empty ([GH-86044](https://github.com/godotengine/godot/pull/86044)). -- Fix "Class name cannot be empty" error when sorting no import files sort by type ([GH-86064](https://github.com/godotengine/godot/pull/86064)). -- Stop using `RTR()` inside the "editor" folder ([GH-86143](https://github.com/godotengine/godot/pull/86143)). -- Properly select the newly duplicated file ([GH-86164](https://github.com/godotengine/godot/pull/86164)). -- Fix file disappearing when renaming dependencies ([GH-86177](https://github.com/godotengine/godot/pull/86177)). -- Fix duplicating multiple nodes at different depths in `SceneTreeDock` ([GH-86211](https://github.com/godotengine/godot/pull/86211)). -- Add option to add built-in strings in the POT generation ([GH-86222](https://github.com/godotengine/godot/pull/86222)). -- Use `set_value_no_signal` in editor property code ([GH-86266](https://github.com/godotengine/godot/pull/86266)). -- Allow node visibility to work with custom user-provided node types ([GH-86268](https://github.com/godotengine/godot/pull/86268)). -- Optimize scanning routines in the project manager ([GH-86271](https://github.com/godotengine/godot/pull/86271)). -- Fix scene dock search losing its default tooltip after typing an invalid filter ([GH-86278](https://github.com/godotengine/godot/pull/86278)). -- Add input action name to window title in input map editor ([GH-86280](https://github.com/godotengine/godot/pull/86280)). -- Add hover highlight to main editor buttons ([GH-86378](https://github.com/godotengine/godot/pull/86378)). -- Strip edges of editor layout names ([GH-86386](https://github.com/godotengine/godot/pull/86386)). -- Clear sub-resources list when no sub-resource exists ([GH-86388](https://github.com/godotengine/godot/pull/86388)). -- Fix internal profiling button being visible when disabled in settings ([GH-86398](https://github.com/godotengine/godot/pull/86398)). -- Improve action name for ungroup button in Scene dock ([GH-86431](https://github.com/godotengine/godot/pull/86431)). -- Improve performance of the 'Create New Node' dialog ([GH-86447](https://github.com/godotengine/godot/pull/86447)). -- Use ObjectID's instead of node pointers to track scene groups to prevent crash ([GH-86462](https://github.com/godotengine/godot/pull/86462)). -- Store horizontal and vertical split offsets separately in FileSystem dock ([GH-86476](https://github.com/godotengine/godot/pull/86476)). -- Fix scene parser reading non-built-in scripts for POT generation ([GH-86479](https://github.com/godotengine/godot/pull/86479)). -- Improve `EditorDirDialog` ([GH-86486](https://github.com/godotengine/godot/pull/86486)). -- Improve Path2D editing ([GH-86542](https://github.com/godotengine/godot/pull/86542)). -- Project upgrade tool: Better space handling in "export" ([GH-86598](https://github.com/godotengine/godot/pull/86598)). -- Don't update tree on deselect ([GH-86605](https://github.com/godotengine/godot/pull/86605)). -- Add option for editor to follow system theme and accent colors ([GH-86610](https://github.com/godotengine/godot/pull/86610)). -- Fix possible crash (use after free) in ScriptTextEditor ([GH-86633](https://github.com/godotengine/godot/pull/86633)). -- Improved synchronization of Transforms during live debug sessions ([GH-86659](https://github.com/godotengine/godot/pull/86659)). -- Automatically add path to built-in shaders ([GH-86668](https://github.com/godotengine/godot/pull/86668)). -- Stop escaping `'` on POT generation ([GH-86669](https://github.com/godotengine/godot/pull/86669)). -- Improve saving of built-in resources ([GH-86705](https://github.com/godotengine/godot/pull/86705)). -- Removed unused code related to command palette ([GH-86723](https://github.com/godotengine/godot/pull/86723)). -- Update modified shortcuts in command palette ([GH-86727](https://github.com/godotengine/godot/pull/86727)). -- Fix missing autocompletion for inheriting classes ([GH-86729](https://github.com/godotengine/godot/pull/86729)). -- Ignore internal children when replacing node ([GH-86745](https://github.com/godotengine/godot/pull/86745)). -- Add autocompletion for ProjectSettings' methods ([GH-86758](https://github.com/godotengine/godot/pull/86758)). -- Add autocompletion for InputMap's methods ([GH-86764](https://github.com/godotengine/godot/pull/86764)). -- Allow to move FileSystem dock to bottom and drag resources across bottom docks ([GH-86765](https://github.com/godotengine/godot/pull/86765)). -- Display functions that were previously forgotten in Profiler ([GH-86772](https://github.com/godotengine/godot/pull/86772)). -- Allow opening scenes with missing scene dependency ([GH-86781](https://github.com/godotengine/godot/pull/86781)). -- Allow all editor modes to select nodes in the viewport ([GH-86804](https://github.com/godotengine/godot/pull/86804)). -- Added compatibility for Blend Mode in `Light2D`/`PointLight2D` when converting from Godot 3 to 4 ([GH-86811](https://github.com/godotengine/godot/pull/86811)). -- Parse the names of children of `TabContainer`s on POT generation ([GH-86878](https://github.com/godotengine/godot/pull/86878)). -- Add autocompletion for a few EditorInterface methods ([GH-86893](https://github.com/godotengine/godot/pull/86893)). -- A couple of enhancements to user-visible threading semantics ([GH-86957](https://github.com/godotengine/godot/pull/86957)). -- Fix missing icons for custom resources in EditorResourcePicker ([GH-86979](https://github.com/godotengine/godot/pull/86979)). -- Implement `trim_final_newlines` setting and functionality ([GH-87099](https://github.com/godotengine/godot/pull/87099)). -- Capitalize OIDN in editor settings and properties ([GH-87108](https://github.com/godotengine/godot/pull/87108)). -- Fix thumbnail disappears if FileSystemDock is floated ([GH-87121](https://github.com/godotengine/godot/pull/87121)). -- Fix icon corrupted when nested array editors are opened before opening main array editor ([GH-87143](https://github.com/godotengine/godot/pull/87143)). -- Fix reloading current scene forgetting path ([GH-87170](https://github.com/godotengine/godot/pull/87170)). -- Add tooltips to the export buttons ([GH-87183](https://github.com/godotengine/godot/pull/87183)). -- Add autocompletion for TranslationServer ([GH-87191](https://github.com/godotengine/godot/pull/87191)). -- Optimize SceneTree's `change_scene_to_file` autocompletion ([GH-87197](https://github.com/godotengine/godot/pull/87197)). -- Add support for search shortcut to all docks ([GH-87200](https://github.com/godotengine/godot/pull/87200)). -- Handle clickable `[url]` tags in `print_rich()` editor output log ([GH-87216](https://github.com/godotengine/godot/pull/87216)). -- Add color in built-in documentation for overridden properties ([GH-87255](https://github.com/godotengine/godot/pull/87255)). -- Reorganize project manager code ([GH-87266](https://github.com/godotengine/godot/pull/87266)). -- Display path in tooltips of sub-resource list ([GH-87280](https://github.com/godotengine/godot/pull/87280)). -- Improve editor theme generation after the refactor ([GH-87293](https://github.com/godotengine/godot/pull/87293)). -- Replace built-in docs codeblock's leading spaces with tabs ([GH-87301](https://github.com/godotengine/godot/pull/87301)). -- Add copy codeblock button to built-in documentation ([GH-87363](https://github.com/godotengine/godot/pull/87363)). -- Fix shortcut name consistency in SceneTreeDock ([GH-87419](https://github.com/godotengine/godot/pull/87419)). -- Improve layout and UX of the project manager ([GH-87443](https://github.com/godotengine/godot/pull/87443)). -- Fix selection regression in `EditorHelpSearch` ([GH-87476](https://github.com/godotengine/godot/pull/87476)). -- Make the text editor consistent with the script editor ([GH-87510](https://github.com/godotengine/godot/pull/87510)). -- Remove incorrect C# rename from the project converter ([GH-87533](https://github.com/godotengine/godot/pull/87533)). -- Improve appearance of Node configuration warnings ([GH-87535](https://github.com/godotengine/godot/pull/87535)). -- Fix editor will freeze when modifying filesystem filter path in Split Mode ([GH-87563](https://github.com/godotengine/godot/pull/87563)). -- Change scene drag-and-drop modifier behavior in the 2D and 3D editors ([GH-87623](https://github.com/godotengine/godot/pull/87623)). -- Generate script resource preview without parsing ([GH-87625](https://github.com/godotengine/godot/pull/87625)). -- Fix editor profiler script function sort order ([GH-87661](https://github.com/godotengine/godot/pull/87661)). -- Fix editor properties vector ratio breaking when an element is set to zero ([GH-87740](https://github.com/godotengine/godot/pull/87740)). -- Some editor code cleanup ([GH-87755](https://github.com/godotengine/godot/pull/87755)). -- Extract BottomPanel from EditorNode ([GH-87760](https://github.com/godotengine/godot/pull/87760)). -- Remove duplicated callings `set()` from SceneTreeDock ([GH-87834](https://github.com/godotengine/godot/pull/87834)). -- Remove unnecessary focus methods and directly bind to `set_close_on_escape` ([GH-87870](https://github.com/godotengine/godot/pull/87870)). -- Fix sorting of files/dirs in dialogs ([GH-87874](https://github.com/godotengine/godot/pull/87874)). -- Fix frame number underflow in visual profiler ([GH-87876](https://github.com/godotengine/godot/pull/87876)). -- Do not use `NOTIFICATION_PHYSICS_PROCESS` for 2D Editor ([GH-87886](https://github.com/godotengine/godot/pull/87886)). -- Fix `display/window/size/window_{width,height}_override` to permit `0` ([GH-87907](https://github.com/godotengine/godot/pull/87907)). -- Check if history exists before discarding ([GH-87980](https://github.com/godotengine/godot/pull/87980)). -- Refactor and fix issues in Editor Dock Manager ([GH-88003](https://github.com/godotengine/godot/pull/88003)). -- Tweak error and warning colors and fix `StatusWarning` icon visibility on light themes ([GH-88058](https://github.com/godotengine/godot/pull/88058)). -- Web: Refactor Editor web server ([GH-88063](https://github.com/godotengine/godot/pull/88063)). -- Add editor shortcuts to toggle bottom panel visibility ([GH-88081](https://github.com/godotengine/godot/pull/88081)). -- Use indeterminate progressbars for editor downloads (export templates & assets) ([GH-88084](https://github.com/godotengine/godot/pull/88084)). -- Show update spinner by default in `dev_build=yes` editor builds ([GH-88106](https://github.com/godotengine/godot/pull/88106)). -- Fix data race against `EditorFileSystem.scanning_changes_done` ([GH-88124](https://github.com/godotengine/godot/pull/88124)). -- Use `SafeFlag` for `EditorHTTPServer.server_quit` ([GH-88155](https://github.com/godotengine/godot/pull/88155)). -- Use highlighted version of the tab icon in the bottom file system dock ([GH-88191](https://github.com/godotengine/godot/pull/88191)). -- Asset Library author link, description popup size and UX details ([GH-88229](https://github.com/godotengine/godot/pull/88229)). -- Fix update property for dictionaries so that it updates only what is necessary ([GH-88231](https://github.com/godotengine/godot/pull/88231)). -- Fix an edge case bug in drag-and-drop Node3D spawning ([GH-88269](https://github.com/godotengine/godot/pull/88269)). -- Rework how script is edited when clicking icon ([GH-88288](https://github.com/godotengine/godot/pull/88288)). -- Add support for search shortcut to signal connection dialog ([GH-88317](https://github.com/godotengine/godot/pull/88317)). -- Fix skipping normal category followed by custom one ([GH-88318](https://github.com/godotengine/godot/pull/88318)). -- Focus value editor on type change in Dictionary and Array editors ([GH-88322](https://github.com/godotengine/godot/pull/88322)). -- Add const lvalue ref to `editor/*` container parameters ([GH-88368](https://github.com/godotengine/godot/pull/88368)). -- Improve look of Donors list in Editor's About ([GH-88370](https://github.com/godotengine/godot/pull/88370)). -- Move EditorNode setting registration so they are in class reference ([GH-88380](https://github.com/godotengine/godot/pull/88380)). -- Fix Skeleton3D insert key tooltips ([GH-88386](https://github.com/godotengine/godot/pull/88386)). -- Fix resource previews not created in compatibility rendering ([GH-88391](https://github.com/godotengine/godot/pull/88391)). -- Show keywords in `EditorHelpSearch` ([GH-88450](https://github.com/godotengine/godot/pull/88450)). -- Hide Search Results by default and show it on first search ([GH-88465](https://github.com/godotengine/godot/pull/88465)). -- Improve merging of docs on generation ([GH-88514](https://github.com/godotengine/godot/pull/88514)). -- Add separate program case for Godot Resources ([GH-88523](https://github.com/godotengine/godot/pull/88523)). -- Fix crash on documentation generation on macOS ([GH-88545](https://github.com/godotengine/godot/pull/88545)). -- Fix crash on changing resource type of dictionary new key/value while editing the resource ([GH-88572](https://github.com/godotengine/godot/pull/88572)). -- Add `android` to auto-generated `.gitignore` ([GH-88591](https://github.com/godotengine/godot/pull/88591)). -- Remove error when property is outside inspector ([GH-88597](https://github.com/godotengine/godot/pull/88597)). -- Improve user experience for VCS metadata generator menu button to mitigate accidentally overriding ([GH-88609](https://github.com/godotengine/godot/pull/88609)). -- Add a `h_separation` between icons in `CheckButton`/`CheckBox` ([GH-88615](https://github.com/godotengine/godot/pull/88615)). -- Dictionary Editor: Keep the type of the last added item ([GH-88636](https://github.com/godotengine/godot/pull/88636)). -- Fix editor hover style margins when Draw Extra Borders is enabled ([GH-88652](https://github.com/godotengine/godot/pull/88652)). -- Add tokenized search support to Quick Open dialog and FileSystem filter ([GH-88660](https://github.com/godotengine/godot/pull/88660)). -- Remove some redundant method calls from ScriptEditor ([GH-88675](https://github.com/godotengine/godot/pull/88675)). -- Improve Run Instances Dialog ([GH-88685](https://github.com/godotengine/godot/pull/88685)). -- Fix undo/redo behavior of ColorPicker and add ability to cancel/confirm color selection ([GH-88690](https://github.com/godotengine/godot/pull/88690)). -- Fix leak of scene used for customization during export ([GH-88726](https://github.com/godotengine/godot/pull/88726)). -- Fix removing element in array inspector not changing page when emptying page ([GH-88731](https://github.com/godotengine/godot/pull/88731)). -- Fix the text editor theme not being applied on editor start ([GH-88742](https://github.com/godotengine/godot/pull/88742)). -- Inspector `(N changes)` indicator propagates upwards ([GH-88814](https://github.com/godotengine/godot/pull/88814)). -- Fix toggling a plugin makes its name black ([GH-88817](https://github.com/godotengine/godot/pull/88817)). -- Add create folder icon ([GH-88825](https://github.com/godotengine/godot/pull/88825)). -- Add browse folder and browse file icons ([GH-88827](https://github.com/godotengine/godot/pull/88827)). -- Save scene and global checkbox options of History window ([GH-88833](https://github.com/godotengine/godot/pull/88833)). -- Fix paste Value can empty a dictionary depending on right-click location ([GH-88849](https://github.com/godotengine/godot/pull/88849)). -- Remove redundant space after enum/flags word in editor docs ([GH-88911](https://github.com/godotengine/godot/pull/88911)). -- Modify shortcut for closing scene on macOS only ([GH-88913](https://github.com/godotengine/godot/pull/88913)). -- Allow docks to be closed and opened ([GH-89017](https://github.com/godotengine/godot/pull/89017)). -- Add autocompletion for EditorSettings' methods ([GH-89043](https://github.com/godotengine/godot/pull/89043)). -- Use `META_UNDERLINE_ON_HOVER` in built-in class reference ([GH-89049](https://github.com/godotengine/godot/pull/89049)). -- Display deprecated/experimental messages in tooltips ([GH-89058](https://github.com/godotengine/godot/pull/89058)). -- Remember search text in Find/Replace in Files dialog ([GH-89085](https://github.com/godotengine/godot/pull/89085)). -- Improve how Project & Editor Settings look in built-in docs ([GH-89086](https://github.com/godotengine/godot/pull/89086)). -- Do not attempt to set cursor shape in headless mode ([GH-89099](https://github.com/godotengine/godot/pull/89099)). -- Add missing `variablesReference` field to DAP `evaluate` request ([GH-89110](https://github.com/godotengine/godot/pull/89110)). -- Fix undo action names for node replacement ([GH-89121](https://github.com/godotengine/godot/pull/89121)). -- Fix documentation of localization related editor settings ([GH-89135](https://github.com/godotengine/godot/pull/89135)). -- Change Editable Children menu action to be keyboard shortcuttable ([GH-89142](https://github.com/godotengine/godot/pull/89142)). -- Add Enter shortcut to add a shader global in the editor ([GH-89184](https://github.com/godotengine/godot/pull/89184)). -- Fix AssetLibrary not going online when clicking button ([GH-89200](https://github.com/godotengine/godot/pull/89200)). -- Fix wrong undo-redo action when dropping files containing circular dependencies ([GH-89204](https://github.com/godotengine/godot/pull/89204)). -- Don't refresh mirrors for development builds in editor export template manager ([GH-89236](https://github.com/godotengine/godot/pull/89236)). -- Add `FolderCreate` icon to the project dialog ([GH-89240](https://github.com/godotengine/godot/pull/89240)). -- Fix region section not ignoring #region and #endregion when in a string ([GH-89242](https://github.com/godotengine/godot/pull/89242)). -- Don't store values when loading them ([GH-89248](https://github.com/godotengine/godot/pull/89248)). -- Allow connecting signals to existing methods without opening the script editor ([GH-89249](https://github.com/godotengine/godot/pull/89249)). -- Speed up inspector updates for TileMap ([GH-89251](https://github.com/godotengine/godot/pull/89251)). -- Add missing normal and hover states to `EditorLogFilterButton` ([GH-89255](https://github.com/godotengine/godot/pull/89255)). -- Fix how scripts reload outside of ScriptEditor ([GH-89261](https://github.com/godotengine/godot/pull/89261)). -- Editor Help: Add syntax highlighting for code blocks ([GH-89263](https://github.com/godotengine/godot/pull/89263)). -- Move `snap_controls_to_pixels` from process to projects settings changed method ([GH-89264](https://github.com/godotengine/godot/pull/89264)). -- Fix possible crash when converting a node to other in visual shader ([GH-89292](https://github.com/godotengine/godot/pull/89292)). -- Fix ScriptCreateDialog so it does not select the file extension when it's opened ([GH-89315](https://github.com/godotengine/godot/pull/89315)). -- Fix compiler warning when highlighting codeblocks in editor help ([GH-89332](https://github.com/godotengine/godot/pull/89332)). -- Defer `ActionMapEditor::_action_edited` signal to prevent tree updates when tree is blocked ([GH-89346](https://github.com/godotengine/godot/pull/89346)). -- Fix PluginConfigDialog crash in editor build without any language support ([GH-89378](https://github.com/godotengine/godot/pull/89378)). -- Select method name edit when opening connection dialog ([GH-89405](https://github.com/godotengine/godot/pull/89405)). -- Allow batch drag and drop in typed array of Node and NodePath ([GH-89406](https://github.com/godotengine/godot/pull/89406)). -- Fix main editor button margins while using a custom theme ([GH-89462](https://github.com/godotengine/godot/pull/89462)). -- Fix some translations not properly falling back ([GH-89489](https://github.com/godotengine/godot/pull/89489)). -- Make the "Clear Output" shortcut not require panel focus ([GH-89505](https://github.com/godotengine/godot/pull/89505)). -- Remove redundant code from `EditorSpinSlider` ([GH-89518](https://github.com/godotengine/godot/pull/89518)). -- Fix translation fallback not working in the Project Manager ([GH-89519](https://github.com/godotengine/godot/pull/89519)). -- Fix FileSystem dock auto translating files ([GH-89546](https://github.com/godotengine/godot/pull/89546)). -- Fix unexpected auto translation of editor `Tree` content ([GH-89599](https://github.com/godotengine/godot/pull/89599)). -- Make "Pick Color"'s result less precise, keep only 3 decimals ([GH-89630](https://github.com/godotengine/godot/pull/89630)). -- Fix same-name (sub)groups interfering in Inspector ([GH-89631](https://github.com/godotengine/godot/pull/89631)). -- Resource file not found error when loading Favorite icon ([GH-89642](https://github.com/godotengine/godot/pull/89642)). -- Add `Open in Terminal` to the file system empty click ([GH-89658](https://github.com/godotengine/godot/pull/89658)). -- Fix text color in `EditorHelpHighlighter` ([GH-89704](https://github.com/godotengine/godot/pull/89704)). -- Add progress bar when updating scene groups ([GH-89739](https://github.com/godotengine/godot/pull/89739)). -- Remove stray item icon from tabs menu ([GH-89747](https://github.com/godotengine/godot/pull/89747)). -- Make project naming setting available in project manager ([GH-89788](https://github.com/godotengine/godot/pull/89788)). -- Disable Clear All button when not filtering in Settings ([GH-89798](https://github.com/godotengine/godot/pull/89798)). -- Translate "Line N" as a whole ([GH-89799](https://github.com/godotengine/godot/pull/89799)). -- Fix heap-use-after-free when converting scene group to global ([GH-89801](https://github.com/godotengine/godot/pull/89801)). -- Add necessary flags when opening directory with xfce4-terminal ([GH-89803](https://github.com/godotengine/godot/pull/89803)). -- Disable shader editor's undo/redo menu items when they do nothing ([GH-89806](https://github.com/godotengine/godot/pull/89806)). -- Don't error multiple times when trying to load missing default bus layout ([GH-89808](https://github.com/godotengine/godot/pull/89808)). -- Fix missing i18n for some editor strings ([GH-89811](https://github.com/godotengine/godot/pull/89811)). -- macOS: Use `expand_to_title` for the project manager ([GH-89831](https://github.com/godotengine/godot/pull/89831)). -- Extremely minor tooltip updates for Debug menu ([GH-89837](https://github.com/godotengine/godot/pull/89837)). -- Fix wrong values displayed after duplicating an audio bus ([GH-89841](https://github.com/godotengine/godot/pull/89841)). -- Improve replication editor's pin button ([GH-89883](https://github.com/godotengine/godot/pull/89883)). -- Fix wrong extension filter for dependency editor ([GH-89912](https://github.com/godotengine/godot/pull/89912)). -- Disable auto-translation in sub-resource list menu ([GH-89915](https://github.com/godotengine/godot/pull/89915)). -- Refactor check for overridden methods in inner classes ([GH-89922](https://github.com/godotengine/godot/pull/89922)). -- Relax grid parameter constraints in texture region editor ([GH-89931](https://github.com/godotengine/godot/pull/89931)). -- Fix unexpected auto-translation of more editor components ([GH-89963](https://github.com/godotengine/godot/pull/89963)). -- Reset `tab_closing_menu_option` when canceling closing editor ([GH-89974](https://github.com/godotengine/godot/pull/89974)). -- Disable auto-translation of titles in `AssetLib` ([GH-89978](https://github.com/godotengine/godot/pull/89978)). -- Fix node duplication in update after external changes ([GH-89992](https://github.com/godotengine/godot/pull/89992)). -- Fix debugger tree error on editor start ([GH-90022](https://github.com/godotengine/godot/pull/90022)). -- Fix scroll to description ([GH-90035](https://github.com/godotengine/godot/pull/90035)). -- Fix FileSystemDock behavior when dropping an item in the current folder ([GH-90062](https://github.com/godotengine/godot/pull/90062)). -- Include 'Orphan Resource Explorer' and 'Upgrade Mesh Surfaces' in Command Palette ([GH-90078](https://github.com/godotengine/godot/pull/90078)). -- [Project Manager] Replace title bar logo with color variant ([GH-90080](https://github.com/godotengine/godot/pull/90080)). -- Improve string extraction of ETR POT file ([GH-90162](https://github.com/godotengine/godot/pull/90162)). -- Expose `goto_help` for GDExtension on `ScriptEditor` ([GH-90189](https://github.com/godotengine/godot/pull/90189)). -- Fix crash on invalid values in EditorPropertyArray/Dict ([GH-90265](https://github.com/godotengine/godot/pull/90265)). -- SceneTreeEditor: Fix crash when TreeItem is removed before callback ([GH-90266](https://github.com/godotengine/godot/pull/90266)). -- Ignore `ERR_FILE_CANT_OPEN` error when loading ([GH-90269](https://github.com/godotengine/godot/pull/90269)). -- Prevent dropping Resource to the same resource picker ([GH-90278](https://github.com/godotengine/godot/pull/90278)). -- Fix duplicated folder reference in Godot Editor after changing filename case ([GH-90280](https://github.com/godotengine/godot/pull/90280)). -- Inspect hovered node while dragging ([GH-90378](https://github.com/godotengine/godot/pull/90378)). -- Fix `_node_assign` will crash when `base_node` is nullptr ([GH-90414](https://github.com/godotengine/godot/pull/90414)). -- Add option to copy absolute path in file system dock popup ([GH-90421](https://github.com/godotengine/godot/pull/90421)). -- Correctly replace scene root when `must_reload` in `EditorData::check_and_update_scene()` ([GH-90432](https://github.com/godotengine/godot/pull/90432)). -- Move engine build profile editor to Tools submenu ([GH-90441](https://github.com/godotengine/godot/pull/90441)). -- Fix `theme_override` tooltip caching ([GH-90446](https://github.com/godotengine/godot/pull/90446)). -- Fix caret last fit when moving to line end ([GH-90455](https://github.com/godotengine/godot/pull/90455)). -- Fix enum detection for unnamed classes ([GH-90488](https://github.com/godotengine/godot/pull/90488)). -- Fix connection dialog raise error when it was previously opened in another scene ([GH-90514](https://github.com/godotengine/godot/pull/90514)). -- Fix folder colors not saving after project.godot is modified externally ([GH-90525](https://github.com/godotengine/godot/pull/90525)). -- Make the inherited scene root node unable to change type ([GH-90536](https://github.com/godotengine/godot/pull/90536)). -- Fix crash when dragging scene files to 2D/3D screen ([GH-90559](https://github.com/godotengine/godot/pull/90559)). -- Make the loading scene open in the current scene tab if the current scene is empty ([GH-90566](https://github.com/godotengine/godot/pull/90566)). -- Rearrange "Open In" menu items of FileSystem dock ([GH-90570](https://github.com/godotengine/godot/pull/90570)). -- Improve error when scene/resource is saved with newer format ([GH-90571](https://github.com/godotengine/godot/pull/90571)). -- Fix heap-use-after-free error in TileMapLayerEditor ([GH-90583](https://github.com/godotengine/godot/pull/90583)). -- Fix folder colors not present in editor dir dialog ([GH-90651](https://github.com/godotengine/godot/pull/90651)). -- Fix going forward backward in editor selection history ([GH-90653](https://github.com/godotengine/godot/pull/90653)). -- Improve UX when saving newer files on disk ([GH-90660](https://github.com/godotengine/godot/pull/90660)). -- Prevent crash when dropping Resource that can't load ([GH-90664](https://github.com/godotengine/godot/pull/90664)). -- Rename Q&A to Forum in the Help top bar ([GH-90676](https://github.com/godotengine/godot/pull/90676)). -- Fix editor's file explorer will show directories that should be skipped ([GH-90680](https://github.com/godotengine/godot/pull/90680)). -- Allow closing scene tab preview using Escape ([GH-90720](https://github.com/godotengine/godot/pull/90720)). -- Change update checker version source ([GH-90742](https://github.com/godotengine/godot/pull/90742)). -- Display Godot version and last edited timestamp in project manager ([GH-90770](https://github.com/godotengine/godot/pull/90770)). -- Don't show scene group progress for 1 scene ([GH-90784](https://github.com/godotengine/godot/pull/90784)). -- Disable Create button for abstract classes ([GH-90807](https://github.com/godotengine/godot/pull/90807)). -- Avoid double editing when clicking AnimatedSprite ([GH-90815](https://github.com/godotengine/godot/pull/90815)). -- Fix folder color not cleared for removed subfolders ([GH-90829](https://github.com/godotengine/godot/pull/90829)). -- Fix input map shortcuts incorrectly edited on cancel ([GH-90835](https://github.com/godotengine/godot/pull/90835)). -- Fix folder scan replacing project list ([GH-90845](https://github.com/godotengine/godot/pull/90845)). -- Use minor version in EditorSettings file name ([GH-90875](https://github.com/godotengine/godot/pull/90875)). -- Add option to open online doc for selected class in script editor ([GH-90952](https://github.com/godotengine/godot/pull/90952)). -- Organize existing code for editor plugins ([GH-90975](https://github.com/godotengine/godot/pull/90975)). -- Hide update status label when no action is required ([GH-91026](https://github.com/godotengine/godot/pull/91026)). -- Add editor setting to keep bottom panel state on play and stop game ([GH-91033](https://github.com/godotengine/godot/pull/91033)). -- Allow setting editor dock tabs to icon only ([GH-91039](https://github.com/godotengine/godot/pull/91039)). -- Remove `uv_editor_bounds` editor setting ([GH-91073](https://github.com/godotengine/godot/pull/91073)). -- Further speed up closing multiple scripts ([GH-91081](https://github.com/godotengine/godot/pull/91081)). -- Increase width of project settings window ([GH-91087](https://github.com/godotengine/godot/pull/91087)). -- Fix error when moving FileSystem dock ([GH-91090](https://github.com/godotengine/godot/pull/91090)). -- Avoid double handling of rename in the file system dock ([GH-91112](https://github.com/godotengine/godot/pull/91112)). -- Register text enter for script base class ([GH-91113](https://github.com/godotengine/godot/pull/91113)). -- Add show in filesystem option for file favorites ([GH-91158](https://github.com/godotengine/godot/pull/91158)). -- Don't edit current when changing docks v2 ([GH-91168](https://github.com/godotengine/godot/pull/91168)). -- Improve Audio Bus button pressed state visibility ([GH-91236](https://github.com/godotengine/godot/pull/91236)). -- Add text to icon-only interpolation OptionButton in blend space editor ([GH-91238](https://github.com/godotengine/godot/pull/91238)). -- Only add warning label for Layout group in Control category ([GH-91252](https://github.com/godotengine/godot/pull/91252)). -- Fix reparenting after hover delay ([GH-91265](https://github.com/godotengine/godot/pull/91265)). -- Rework global class hiding in addons ([GH-91337](https://github.com/godotengine/godot/pull/91337)). -- Increase threshold for files per directory in editor Find in Files ([GH-91338](https://github.com/godotengine/godot/pull/91338)). -- Remove code duplication for adding global script class ([GH-91379](https://github.com/godotengine/godot/pull/91379)). -- Fix editor spin slider RTL and margin ([GH-91384](https://github.com/godotengine/godot/pull/91384)). -- Fix crash when switching main screen from a disabled plugin main screen if code editor is floating ([GH-91396](https://github.com/godotengine/godot/pull/91396)). -- Ensure `--doctool` is run from root directory ([GH-91407](https://github.com/godotengine/godot/pull/91407)). -- Fix selecting root when opening scene ([GH-91435](https://github.com/godotengine/godot/pull/91435)). -- DAP: Fix typo in parsing of PackedVector3Array ([GH-91468](https://github.com/godotengine/godot/pull/91468)). -- Fix `FileSystemDock` thumbnails sometimes not displaying ([GH-91471](https://github.com/godotengine/godot/pull/91471)). -- Keep docks menu open when opening dock ([GH-91484](https://github.com/godotengine/godot/pull/91484)). -- Prevent some shortcut errors when generating docs ([GH-91515](https://github.com/godotengine/godot/pull/91515)). -- Fix EditorInspector crash when exiting ([GH-91538](https://github.com/godotengine/godot/pull/91538)). -- Remove error messages caused by Save on Focus feature ([GH-91555](https://github.com/godotengine/godot/pull/91555)). -- Fix infinite call loop on theme change ([GH-91595](https://github.com/godotengine/godot/pull/91595)). -- Update `ConnectDialog::_filter_method_list` to be case insensitive for search string ([GH-91598](https://github.com/godotengine/godot/pull/91598)). -- Limit icon size in `EditorDebuggerTree` ([GH-91622](https://github.com/godotengine/godot/pull/91622)). -- Fix temporary Euler when editing quaternion ([GH-91678](https://github.com/godotengine/godot/pull/91678)). -- Fix i18n in AudioStreamInteractive transition editor ([GH-91693](https://github.com/godotengine/godot/pull/91693)). -- Revert `as_sortable_control()` change in SplitContainer ([GH-91708](https://github.com/godotengine/godot/pull/91708)). -- Improve transition enabled header in interactive music editor ([GH-91709](https://github.com/godotengine/godot/pull/91709)). -- Fix `EditorHelpBitTooltip` + `ProgressDialog` causes crash ([GH-91716](https://github.com/godotengine/godot/pull/91716)). -- Fix `PropertyListHelper::_get_property` returning a valid value even if an index is outside the array valid indices ([GH-91760](https://github.com/godotengine/godot/pull/91760)). -- Fix Sprite2D editor history mismatch ([GH-91777](https://github.com/godotengine/godot/pull/91777)). -- Select next text to replace ([GH-91779](https://github.com/godotengine/godot/pull/91779)). -- Fix long category name display in Inspector ([GH-91820](https://github.com/godotengine/godot/pull/91820)). -- Fix FileBrowse and FolderBrowse icon style fill not getting replaced ([GH-91821](https://github.com/godotengine/godot/pull/91821)). -- Move "Add a new scene" button when Scene Tabs settings change ([GH-91859](https://github.com/godotengine/godot/pull/91859)). -- Change default parenting behavior when drag-and-dropping to 2d and 3d editor ([GH-91874](https://github.com/godotengine/godot/pull/91874)). -- Make performance monitor names translatable ([GH-91927](https://github.com/godotengine/godot/pull/91927)). -- Add Dutch translation for Linux desktop file ([GH-91928](https://github.com/godotengine/godot/pull/91928)). -- Fix categories and tooltips in `TileSet` editor ([GH-91932](https://github.com/godotengine/godot/pull/91932)). -- Skip unnecessary updates to scene groups and scripts ([GH-91980](https://github.com/godotengine/godot/pull/91980)). -- Create AudioStreamPlayer when dropping AudioStream ([GH-92004](https://github.com/godotengine/godot/pull/92004)). -- Fix default NodePaths saved in scene ([GH-92095](https://github.com/godotengine/godot/pull/92095)). -- Disable follow focus while updating inspector ([GH-92108](https://github.com/godotengine/godot/pull/92108)). -- Change the AudioStreamPlayer icons to be clearer ([GH-92116](https://github.com/godotengine/godot/pull/92116)). -- Fix log rebuilding crashing when there's no messages ([GH-92128](https://github.com/godotengine/godot/pull/92128)). -- Editor Feature Profile: Only rebuild selected TreeItem and all children when a property is edited ([GH-92136](https://github.com/godotengine/godot/pull/92136)). -- Don't translate preview in node batch rename dialog ([GH-92192](https://github.com/godotengine/godot/pull/92192)). -- Fix unchecking theme overrides not creating an undo action ([GH-92207](https://github.com/godotengine/godot/pull/92207)). -- Fix array variable with `@export_multiline` not registering changes ([GH-92225](https://github.com/godotengine/godot/pull/92225)). -- Prevent label width from flickering rapidly in editor frametime panel ([GH-92231](https://github.com/godotengine/godot/pull/92231)). -- Fix scene hash not updated when scene is empty ([GH-92253](https://github.com/godotengine/godot/pull/92253)). -- Fix TextEdit HScroll hiding after wrapping ([GH-92271](https://github.com/godotengine/godot/pull/92271)). -- Fix theme StyleBox override parameter completion ([GH-92296](https://github.com/godotengine/godot/pull/92296)). -- Fix crash on dictionary initialization after return to default in C# ([GH-92351](https://github.com/godotengine/godot/pull/92351)). -- Fix profiler seek line color in light modes, update on theme change ([GH-92389](https://github.com/godotengine/godot/pull/92389)). -- Avoid editor error reporting using resource loader thread's call queues ([GH-92426](https://github.com/godotengine/godot/pull/92426)). -- Select text in SpriteFramesEditor spin boxes on focus ([GH-92442](https://github.com/godotengine/godot/pull/92442)). -- Prevent connect `scroll_to_paragraph` multiple times to `class_desc` ([GH-92454](https://github.com/godotengine/godot/pull/92454)). -- Set `doc_name` even when categories are hidden in the inspector ([GH-92457](https://github.com/godotengine/godot/pull/92457)). -- Make signal connections dialog method picker respect bind/unbind ([GH-92465](https://github.com/godotengine/godot/pull/92465)). -- Fix error when dropping image onto the scene dock ([GH-92470](https://github.com/godotengine/godot/pull/92470)). -- Add missing space around the ratio lock button ([GH-92482](https://github.com/godotengine/godot/pull/92482)). -- Add range hint for `SubViewportContainer.stretch_shrink` ([GH-92500](https://github.com/godotengine/godot/pull/92500)). -- Fix AudioStreamPlayer icons, improve audio resource picker styling ([GH-92504](https://github.com/godotengine/godot/pull/92504)). -- Fix Window position preview in the editor ([GH-92506](https://github.com/godotengine/godot/pull/92506)). -- Remove unused `base_hint` from EditorPropertyNodePath ([GH-92511](https://github.com/godotengine/godot/pull/92511)). -- Enable custom separators to treat different characters as words ([GH-92514](https://github.com/godotengine/godot/pull/92514)). -- Update Add Scene button after TabBar resizes ([GH-92559](https://github.com/godotengine/godot/pull/92559)). -- Update editor `Window` preview position when resizing window ([GH-92577](https://github.com/godotengine/godot/pull/92577)). -- Rework and simplify update checking logic ([GH-92597](https://github.com/godotengine/godot/pull/92597)). -- Fix project settings reloading ([GH-92633](https://github.com/godotengine/godot/pull/92633)). -- Consistently display script icons for nodes in connect dialog's scene tree editor ([GH-92648](https://github.com/godotengine/godot/pull/92648)). -- Tweak property name style selector in the editor inspector ([GH-92665](https://github.com/godotengine/godot/pull/92665)). -- Fix huge .tscn icon and icon in background of File System panel ([GH-92669](https://github.com/godotengine/godot/pull/92669)). -- Swap last edited date and version/warning in Project Manager ([GH-92751](https://github.com/godotengine/godot/pull/92751)). -- Call `EditorNode::set_edited_scene()` manually instead of via the `replacing_by` signal ([GH-92760](https://github.com/godotengine/godot/pull/92760)). -- Add Globals tab to reorganize Project Settings dialog ([GH-92770](https://github.com/godotengine/godot/pull/92770)). -- Fix editor screenshots menu button's tooltip ([GH-92836](https://github.com/godotengine/godot/pull/92836)). -- Remove unused order variable from EditorResourcePreview ([GH-92871](https://github.com/godotengine/godot/pull/92871)). -- Add missing inspector dock update after node deletion ([GH-92930](https://github.com/godotengine/godot/pull/92930)). -- Fix theme updating of the inspector sections ([GH-93000](https://github.com/godotengine/godot/pull/93000)). -- Fix EditorFileSystem `update_files` after #92893 ([GH-93006](https://github.com/godotengine/godot/pull/93006)). -- System info: Remove empty parentheses when video adapter driver name is unknown ([GH-93033](https://github.com/godotengine/godot/pull/93033)). -- Fix `EditorHelpBit` title height is wrong on initialization ([GH-93040](https://github.com/godotengine/godot/pull/93040)). -- Fix find highlight when switching scripts ([GH-93056](https://github.com/godotengine/godot/pull/93056)). -- Fix EditorProperty spacing ([GH-93089](https://github.com/godotengine/godot/pull/93089)). -- Fix not being able to reopen signals panel immediately after connecting a signal ([GH-93110](https://github.com/godotengine/godot/pull/93110)). -- Fix crash when trying to undo SpriteFrames animation rename ([GH-93112](https://github.com/godotengine/godot/pull/93112)). -- Material: Fix marking as ready ([GH-93127](https://github.com/godotengine/godot/pull/93127)). -- Center the label in EditorObjectSelector ([GH-93129](https://github.com/godotengine/godot/pull/93129)). -- Fix noticeable freeze after saving a scene ([GH-93147](https://github.com/godotengine/godot/pull/93147)). -- Fix bug when downloading export templates and re-opening the template manager ([GH-93148](https://github.com/godotengine/godot/pull/93148)). -- Add missing TTR's for EditorProgress ([GH-93150](https://github.com/godotengine/godot/pull/93150)). -- EditorProgress: Use `BackgroundProgress` instead of `ProgressDialog` when called for a thread ([GH-93160](https://github.com/godotengine/godot/pull/93160)). -- Allow theming movie writer button icon color ([GH-93223](https://github.com/godotengine/godot/pull/93223)). -- Allow theming renderer colors ([GH-93229](https://github.com/godotengine/godot/pull/93229)). -- Unload addons before quitting to allow cleanup ([GH-93238](https://github.com/godotengine/godot/pull/93238)). -- Prevent generating preview for zero sized texture ([GH-93255](https://github.com/godotengine/godot/pull/93255)). -- Fix incorrect autoload path in error ([GH-93294](https://github.com/godotengine/godot/pull/93294)). -- Add missing RTL styles for InspectorActionButton ([GH-93318](https://github.com/godotengine/godot/pull/93318)). -- Add missing style overrides for viewport overlay buttons ([GH-93361](https://github.com/godotengine/godot/pull/93361)). -- Fix determining the availability of a new version ([GH-93391](https://github.com/godotengine/godot/pull/93391)). -- Make inspector spacing more themable ([GH-93435](https://github.com/godotengine/godot/pull/93435)). -- Add missing RTL styles for MainScreenButton ([GH-93520](https://github.com/godotengine/godot/pull/93520)). -- Include "PopupMenu" labels in POT gen ([GH-93521](https://github.com/godotengine/godot/pull/93521)). -- Add brief description tooltips to EditorResourcePicker ([GH-93523](https://github.com/godotengine/godot/pull/93523)). -- Update import dock when selecting resource in resource panel ([GH-93533](https://github.com/godotengine/godot/pull/93533)). -- Fix reselecting scene tree node after inspecting a resource ([GH-93543](https://github.com/godotengine/godot/pull/93543)). -- Center the label of EditorValidationPanel ([GH-93544](https://github.com/godotengine/godot/pull/93544)). -- Remove editor pseudolocalization debug feature ([GH-93554](https://github.com/godotengine/godot/pull/93554)). -- Fix crash on exit with shader editor ([GH-93558](https://github.com/godotengine/godot/pull/93558)). -- Fix clear custom color on invalid `tree_item_inspected` causing `Index p_column = 0 is out of bounds (cells.size() = 0).` error message ([GH-93576](https://github.com/godotengine/godot/pull/93576)). -- Add comment for editor particles Restart Emission shortcut not using Cmd on macOS ([GH-93581](https://github.com/godotengine/godot/pull/93581)). -- Add missing punctuation to the default TextEdit word separators ([GH-93656](https://github.com/godotengine/godot/pull/93656)). -- Center the label in overview of script editor ([GH-93661](https://github.com/godotengine/godot/pull/93661)). -- Fix find result current match count issues ([GH-93674](https://github.com/godotengine/godot/pull/93674)). -- Fix unnecessary overbright modulates used in a few editors ([GH-93720](https://github.com/godotengine/godot/pull/93720)). -- Speed up scene group scanning for text scenes ([GH-93723](https://github.com/godotengine/godot/pull/93723)). -- Make the frame time and info boxes use same margins ([GH-93736](https://github.com/godotengine/godot/pull/93736)). -- Set max width for icons in the quick open popup ([GH-93743](https://github.com/godotengine/godot/pull/93743)). -- macOS: Change the distraction-free mode shortcut ([GH-93789](https://github.com/godotengine/godot/pull/93789)). -- Update Node dock when theme changes ([GH-93868](https://github.com/godotengine/godot/pull/93868)). -- Fix a bunch of orphan StringName errors at ProjectSettings/Editor exit ([GH-93888](https://github.com/godotengine/godot/pull/93888)). -- Fix custom resources often missing from Quick Load dialog ([GH-93909](https://github.com/godotengine/godot/pull/93909)). -- Fix default font variation values handling in the property inspector ([GH-93957](https://github.com/godotengine/godot/pull/93957)). -- Fix `EditorHelpBitTooltip` for Signals dock ([GH-93967](https://github.com/godotengine/godot/pull/93967)). -- Update font preview directly instead of invalidating property list ([GH-93968](https://github.com/godotengine/godot/pull/93968)). -- Ignore trailing slashes in new project’s path when disabling Create Folder ([GH-94015](https://github.com/godotengine/godot/pull/94015)). -- Fix first time of Toggle Last Opened Bottom Panel opens Output panel ([GH-94040](https://github.com/godotengine/godot/pull/94040)). -- Fix Toggle Last Opened Bottom Panel not working after restoring FileSystem Dock to the side ([GH-94053](https://github.com/godotengine/godot/pull/94053)). -- Fix ScriptEditor `request_save_previous_state` signal type ([GH-94057](https://github.com/godotengine/godot/pull/94057)). -- Let EditorLog use the right call queue for thread safety ([GH-94079](https://github.com/godotengine/godot/pull/94079)). -- Fix editor inspector crashing when the old object is no longer valid ([GH-94101](https://github.com/godotengine/godot/pull/94101)). -- Fix wrong inspected node after drag&drop ([GH-94105](https://github.com/godotengine/godot/pull/94105)). -- Make `fdialog_project` up to become the child of `ProjectManager` instead of child of `ProjectDialog` ([GH-94113](https://github.com/godotengine/godot/pull/94113)). -- Unload addons when using `--import` or `--quit` ([GH-94116](https://github.com/godotengine/godot/pull/94116)). -- Fix edited node being removed before editor plugin handles focus loss ([GH-94162](https://github.com/godotengine/godot/pull/94162)). -- Fix resources being skipped in InstancePlaceholder ([GH-94345](https://github.com/godotengine/godot/pull/94345)). -- Fix removing a folder that contains a file is not removed from the FileSystem Dock ([GH-94435](https://github.com/godotengine/godot/pull/94435)). -- Fix crash when adding scenes with a group to the level scene ([GH-94450](https://github.com/godotengine/godot/pull/94450)). -- Consider tabs when calculating column for jump to error ([GH-94474](https://github.com/godotengine/godot/pull/94474)). -- Disable unique name in scene when making a node the root node ([GH-94491](https://github.com/godotengine/godot/pull/94491)). -- Improve Curve preview colors for consistency ([GH-94494](https://github.com/godotengine/godot/pull/94494)). -- Fix incorrect Curve editor preview thumbnail scaling ([GH-94571](https://github.com/godotengine/godot/pull/94571)). -- Fix editor crash when editor settings resource is invalid ([GH-94593](https://github.com/godotengine/godot/pull/94593)). -- Increase threshold for displaying scene group update progress ([GH-94594](https://github.com/godotengine/godot/pull/94594)). -- Change .gitignore to only exclude root android template folder ([GH-94597](https://github.com/godotengine/godot/pull/94597)). -- Fix Object encoded as id in dictionaries to be represented as int in the inspector ([GH-94610](https://github.com/godotengine/godot/pull/94610)). -- Fix certain resource previews empty with GL compat ([GH-94619](https://github.com/godotengine/godot/pull/94619)). -- Parse `auto_translate` when generating a POT file ([GH-94622](https://github.com/godotengine/godot/pull/94622)). -- Fix node gets wrongly selected after moving another node in the tree ([GH-94649](https://github.com/godotengine/godot/pull/94649)). -- Android Editor: Make progress dialog visible again ([GH-94662](https://github.com/godotengine/godot/pull/94662)). -- Fix editor settings still displayed when replaced ([GH-94932](https://github.com/godotengine/godot/pull/94932)). -- Split editor documentation cache by minor version ([GH-94980](https://github.com/godotengine/godot/pull/94980)). -- Fix global class cache file not present when no class name ([GH-94991](https://github.com/godotengine/godot/pull/94991)). -- Fix project name cleared when browsing path ([GH-95062](https://github.com/godotengine/godot/pull/95062)). -- [Android editor] Enable the display scale option in the Project manager's quick settings ([GH-95082](https://github.com/godotengine/godot/pull/95082)). -- [Android editor] Fix issue with importing projects ([GH-95086](https://github.com/godotengine/godot/pull/95086)). -- Don't drop `PackedScene` as property ([GH-95090](https://github.com/godotengine/godot/pull/95090)). -- Initialize project name when importing project ([GH-95245](https://github.com/godotengine/godot/pull/95245)). -- Fix use-after-free in `EditorHelp` ([GH-95307](https://github.com/godotengine/godot/pull/95307)). -- Fix order of Lock and Group icons in SceneTree ([GH-95329](https://github.com/godotengine/godot/pull/95329)). -- Fix label update for dict on item deletion ([GH-95364](https://github.com/godotengine/godot/pull/95364)). -- Fix FileSystem not updated on file deletion ([GH-95533](https://github.com/godotengine/godot/pull/95533)). +- Redesign Quick Open ([GH-56772](https://github.com/godotengine/godot/pull/56772)). +- EditorHelpSearch: improvements ([GH-62524](https://github.com/godotengine/godot/pull/62524)). +- Refactor toggling script list ([GH-63744](https://github.com/godotengine/godot/pull/63744)). +- Add support for resource conversion plugins in filesystem dock ([GH-65585](https://github.com/godotengine/godot/pull/65585)). +- Extend Curve to allow for domains outside of `[0, 1]` ([GH-67857](https://github.com/godotengine/godot/pull/67857)). +- Implement zooming and panning in the profiler ([GH-76055](https://github.com/godotengine/godot/pull/76055)). +- Remember editor window mode, screen, size and position on restart ([GH-76085](https://github.com/godotengine/godot/pull/76085)). +- Show String properties' text in a tooltip in the inspector ([GH-76231](https://github.com/godotengine/godot/pull/76231)). +- Add Markdown syntax highlighting to the script editor ([GH-78312](https://github.com/godotengine/godot/pull/78312)). +- Fix "reparent to new node" not remembering index ([GH-79209](https://github.com/godotengine/godot/pull/79209)). +- Unify make dir and duplicate dialogs ([GH-80473](https://github.com/godotengine/godot/pull/80473)). +- Set position to zero when saving a positioned branch as scene ([GH-80561](https://github.com/godotengine/godot/pull/80561)). +- Add a warning for when the scene root node is transformed ([GH-81892](https://github.com/godotengine/godot/pull/81892)). +- Add support for dragging a shader to user exported material property ([GH-82093](https://github.com/godotengine/godot/pull/82093)). +- Fix some legacy code ([GH-84944](https://github.com/godotengine/godot/pull/84944)). +- Adjust `pick_main_scene` dialog punctuation ([GH-85108](https://github.com/godotengine/godot/pull/85108)). +- Redraw SubViewportContainer on SubViewport size change ([GH-86302](https://github.com/godotengine/godot/pull/86302)). +- Make the Script Editor's parser execute sooner on edit after error was found ([GH-87542](https://github.com/godotengine/godot/pull/87542)). +- Fix Remote Nodes missing custom icons ([GH-88427](https://github.com/godotengine/godot/pull/88427)). +- Fix some invalid `int` property ranges ([GH-89566](https://github.com/godotengine/godot/pull/89566)). +- Fix focus when reordering array ([GH-89763](https://github.com/godotengine/godot/pull/89763)). +- Fix editing exported nodes in array as text ([GH-90047](https://github.com/godotengine/godot/pull/90047)). +- Add ability to create a new inherited scene from code ([GH-90057](https://github.com/godotengine/godot/pull/90057)). +- Expose EditorUndoRedoManager's `clear_history()` ([GH-90130](https://github.com/godotengine/godot/pull/90130)). +- Code Editor: Add documentation tooltips ([GH-91060](https://github.com/godotengine/godot/pull/91060)). +- Make scan for projects threaded ([GH-91064](https://github.com/godotengine/godot/pull/91064)). +- Disable creating RD projects in project manager if RD is not supported ([GH-91172](https://github.com/godotengine/godot/pull/91172)). +- Increase the project manager's default window size ([GH-91889](https://github.com/godotengine/godot/pull/91889)). +- Remove unused member variable in `EditorInspectorSection` ([GH-92407](https://github.com/godotengine/godot/pull/92407)). +- Improve layered texture preview ([GH-92540](https://github.com/godotengine/godot/pull/92540)). +- Implement a "Recovery Mode" for recovering crashing projects during initialization ([GH-92563](https://github.com/godotengine/godot/pull/92563)). +- Add confirm dialog for render mesh to navigation mesh conversion ([GH-92684](https://github.com/godotengine/godot/pull/92684)). +- Add warped panning to every ViewPanner instance ([GH-92717](https://github.com/godotengine/godot/pull/92717)). +- Expose `update_docs_from_script` method ([GH-92916](https://github.com/godotengine/godot/pull/92916)). +- Warn on UID duplicates ([GH-92972](https://github.com/godotengine/godot/pull/92972)). +- Don't rescan filesystem when adding new directory ([GH-93372](https://github.com/godotengine/godot/pull/93372)). +- Expose more editor settings to documentation ([GH-93427](https://github.com/godotengine/godot/pull/93427)). +- Add default keyboard shortcuts to various actions in the FileSystem dock ([GH-93578](https://github.com/godotengine/godot/pull/93578)). +- Optimize `get_path()` in EditorFileSystemDirectory ([GH-93611](https://github.com/godotengine/godot/pull/93611)). +- Fix center viewport not working horizontally ([GH-93792](https://github.com/godotengine/godot/pull/93792)). +- Fix goto line issues in code editor ([GH-94002](https://github.com/godotengine/godot/pull/94002)). +- Add Expand/Collapse Branch right click option to remote scene view ([GH-94263](https://github.com/godotengine/godot/pull/94263)). +- Make "Remove Item" appear at the top of the list when editing the value of an array or dictionary ([GH-94522](https://github.com/godotengine/godot/pull/94522)). +- Tweak script editor zoom presets to be more useful ([GH-94569](https://github.com/godotengine/godot/pull/94569)). +- Implement preview thumbnail generation for 3D and layered textures ([GH-94600](https://github.com/godotengine/godot/pull/94600)). +- Expose `EditorInspector.edit` to scripting ([GH-94603](https://github.com/godotengine/godot/pull/94603)). +- Fix `EditorInterface.get_selected_paths()` working incorrectly when FileSystemDock is in split mode ([GH-94703](https://github.com/godotengine/godot/pull/94703)). +- Fix scene node selection problem when no auto expand ([GH-94773](https://github.com/godotengine/godot/pull/94773)). +- Fix custom resources using incorrect icons ([GH-94854](https://github.com/godotengine/godot/pull/94854)). +- Call `restart_editor()` in `RUN_PROJECT_MANAGER` ([GH-94880](https://github.com/godotengine/godot/pull/94880)). +- Fix for folding "Editable Children" nodes in Scene tree not being saved ([GH-94911](https://github.com/godotengine/godot/pull/94911)). +- Fix connecting a signal with a double click is too difficult ([GH-95044](https://github.com/godotengine/godot/pull/95044)). +- Add `keep_screen_on` editor setting ([GH-95048](https://github.com/godotengine/godot/pull/95048)). +- Tweak warning/error formatting in EditorLog to be closer to console output ([GH-95072](https://github.com/godotengine/godot/pull/95072)). +- Optimize FileSystem Dock filtering ([GH-95107](https://github.com/godotengine/godot/pull/95107)). +- Don't fold resources when child of main inspector exits ([GH-95149](https://github.com/godotengine/godot/pull/95149)). +- Make EditorSpinSlider display a slider for floats with a step of 1.0 ([GH-95169](https://github.com/godotengine/godot/pull/95169)). +- Avoid saving EditorSettings on startup ([GH-95171](https://github.com/godotengine/godot/pull/95171)). +- Fix implementation of `property_can_revert()` in various classes ([GH-95175](https://github.com/godotengine/godot/pull/95175)). +- Fix checkbox alignment when using compact theme spacing ([GH-95193](https://github.com/godotengine/godot/pull/95193)). +- Fix huge tscn icon in FileSystem split mode using list view ([GH-95278](https://github.com/godotengine/godot/pull/95278)). +- Fix project settings not properly saved after a file deletion ([GH-95281](https://github.com/godotengine/godot/pull/95281)). +- Fix Lock and Group for canvas items not updated in editor after changed in SceneTree ([GH-95333](https://github.com/godotengine/godot/pull/95333)). +- Add ConfirmationDialog when clicking on % button in SceneTree ([GH-95343](https://github.com/godotengine/godot/pull/95343)). +- Make editor panel icons more subtle ([GH-95344](https://github.com/godotengine/godot/pull/95344)). +- Fix incorrect parsing of nested nodes when generating the POT ([GH-95444](https://github.com/godotengine/godot/pull/95444)). +- Remove type icon array from PropertySelector ([GH-95546](https://github.com/godotengine/godot/pull/95546)). +- Allow picking partial properties in PropertySelector ([GH-95554](https://github.com/godotengine/godot/pull/95554)). +- Remove superfluous `print_line` call ([GH-95581](https://github.com/godotengine/godot/pull/95581)). +- Add an `Edit Now` option to project dialog to allow opting out of immediately opening a project after creation/import/install ([GH-95600](https://github.com/godotengine/godot/pull/95600)). +- Fix display dialog while saving scene ([GH-95691](https://github.com/godotengine/godot/pull/95691)). +- Don't mark settings as modified while loading ([GH-95704](https://github.com/godotengine/godot/pull/95704)). +- Fallback to theme icon when no custom icon is set in autocompletion ([GH-95816](https://github.com/godotengine/godot/pull/95816)). +- Prevent unnecessary editor theme regeneration on unrelated system setting update ([GH-95849](https://github.com/godotengine/godot/pull/95849)). +- Update rendering driver name on fallbacks. Fix rendering driver/method in the editor system info ([GH-95887](https://github.com/godotengine/godot/pull/95887)). +- Remove references to deleted `capitalize_properties` setting ([GH-95898](https://github.com/godotengine/godot/pull/95898)). +- Enable revert button for `ShaderMaterial::next_pass` and `ShaderMaterial::render_priority` ([GH-95954](https://github.com/godotengine/godot/pull/95954)). +- Fix script properties reload from external editor ([GH-96002](https://github.com/godotengine/godot/pull/96002)). +- Fix script overwriting with external editor ([GH-96007](https://github.com/godotengine/godot/pull/96007)). +- Prevent selecting the hovered node if the mouse is not inside the inspector dock ([GH-96124](https://github.com/godotengine/godot/pull/96124)). +- Support opening custom class documentation with "Open Documentation" menu entry ([GH-96141](https://github.com/godotengine/godot/pull/96141)). +- Fix missing project date showing the unix epoch ([GH-96162](https://github.com/godotengine/godot/pull/96162)). +- Add Instance Placeholder validation check ([GH-96189](https://github.com/godotengine/godot/pull/96189)). +- Save the state of view transform gizmo option ([GH-96193](https://github.com/godotengine/godot/pull/96193)). +- Make `ThemeTypeDialog` List navigatable when the `LineEdit` has focus ([GH-96212](https://github.com/godotengine/godot/pull/96212)). +- Fix `SceneTreeDock` invalid state after trying to remove internal Node ([GH-96236](https://github.com/godotengine/godot/pull/96236)). +- Fix Win32 rename function ([GH-96258](https://github.com/godotengine/godot/pull/96258)). +- Keep looking when a preview plugin returns an empty image ([GH-96260](https://github.com/godotengine/godot/pull/96260)). +- Disable export template downloading in offline mode ([GH-96331](https://github.com/godotengine/godot/pull/96331)). +- [Android Editor] Update the options for launching the Play window in PiP mode ([GH-96340](https://github.com/godotengine/godot/pull/96340)). +- Fix dock width not respecting editor scale ([GH-96343](https://github.com/godotengine/godot/pull/96343)). +- Fix no unsaved indicator Save As resource ([GH-96363](https://github.com/godotengine/godot/pull/96363)). +- Improve dropping code in script editor ([GH-96371](https://github.com/godotengine/godot/pull/96371)). +- Add `_resource_changed()` helper method to EditorResourcePicker ([GH-96379](https://github.com/godotengine/godot/pull/96379)). +- Merge duplicate entries in enum property inspector ([GH-96386](https://github.com/godotengine/godot/pull/96386)). +- macOS: Fix Quick Open shortcut conflict ([GH-96388](https://github.com/godotengine/godot/pull/96388)). +- Extract EditorMainScreen from EditorNode ([GH-96389](https://github.com/godotengine/godot/pull/96389)). +- Fix Windows importer issue with new file detection ([GH-96398](https://github.com/godotengine/godot/pull/96398)). +- Fix jumping to editor help does not scroll correctly sometimes ([GH-96449](https://github.com/godotengine/godot/pull/96449)). +- Add Advanced Settings switch to Editor Settings ([GH-96467](https://github.com/godotengine/godot/pull/96467)). +- Mention screen selector in Make Floating button tooltip ([GH-96520](https://github.com/godotengine/godot/pull/96520)). +- Fix Inspector may scroll away when editing a property that adds or removes sub properties ([GH-96542](https://github.com/godotengine/godot/pull/96542)). +- Fix ProcessDialog errors appeared after rebuilding .NET project ([GH-96551](https://github.com/godotengine/godot/pull/96551)). +- Docs: Add missing deprecated/experimental tag support for theme items ([GH-96555](https://github.com/godotengine/godot/pull/96555)). +- Prevent duplicate `Open in Editor` buttons in scene tree dock ([GH-96569](https://github.com/godotengine/godot/pull/96569)). +- Don't show popup when clicking empty in Favorites ([GH-96571](https://github.com/godotengine/godot/pull/96571)). +- Fix selection stuck after saving scene ([GH-96579](https://github.com/godotengine/godot/pull/96579)). +- Fix editor layout reset on startup ([GH-96581](https://github.com/godotengine/godot/pull/96581)). +- Fix shift clicking on Add Sun/Environment to Scene buttons ([GH-96582](https://github.com/godotengine/godot/pull/96582)). +- [FileSystem Dock] Add option to show some unsupported files in the dock ([GH-96603](https://github.com/godotengine/godot/pull/96603)). +- Prevent editing value on focus when `EditorSpinSlider` is read-only ([GH-96609](https://github.com/godotengine/godot/pull/96609)). +- Globally remember advanced toggle in project settings ([GH-96615](https://github.com/godotengine/godot/pull/96615)). +- Don't use EditorSettings metadata ([GH-96616](https://github.com/godotengine/godot/pull/96616)). +- Fix clear button on `Array[Node]` ([GH-96620](https://github.com/godotengine/godot/pull/96620)). +- Remove duplicated read only checks in `EditorSpinSlider` ([GH-96632](https://github.com/godotengine/godot/pull/96632)). +- [FileSystem Dock] Add symlink indicator and tooltip ([GH-96643](https://github.com/godotengine/godot/pull/96643)). +- Fix "reparent to new node" when node has internal children ([GH-96646](https://github.com/godotengine/godot/pull/96646)). +- Code Editor: Add button to toggle between search and search+replace ([GH-96683](https://github.com/godotengine/godot/pull/96683)). +- Change rotation pivot tooltip description to be more precise ([GH-96702](https://github.com/godotengine/godot/pull/96702)). +- Partially fix directory bug on Android ([GH-96711](https://github.com/godotengine/godot/pull/96711)). +- Implement autostart for all profilers ([GH-96759](https://github.com/godotengine/godot/pull/96759)). +- Use toast (notification) instead of dialog when saving with no open scene ([GH-96773](https://github.com/godotengine/godot/pull/96773)). +- Make detach script non-destructive operation ([GH-96776](https://github.com/godotengine/godot/pull/96776)). +- Fix load error popup showing on every progress dialog ([GH-96830](https://github.com/godotengine/godot/pull/96830)). +- Add `.editorconfig` to the projects ([GH-96845](https://github.com/godotengine/godot/pull/96845)). +- Try loading system Noto CJK font ([GH-96850](https://github.com/godotengine/godot/pull/96850)). +- Add simple minor version migration ([GH-96861](https://github.com/godotengine/godot/pull/96861)). +- ResourceLoader: Fix deadlocks caused by the resource changed feature ([GH-96904](https://github.com/godotengine/godot/pull/96904)). +- Make script list default wider, minimum narrower ([GH-96909](https://github.com/godotengine/godot/pull/96909)). +- Fix `MeshInstance3D` gizmo redraw performance for `PlaneMesh` with larger subdiv value ([GH-96934](https://github.com/godotengine/godot/pull/96934)). +- Fix `editor_doc_cache` locked by `adb` process on editor startup ([GH-97000](https://github.com/godotengine/godot/pull/97000)). +- Fix empty load errors popup ([GH-97013](https://github.com/godotengine/godot/pull/97013)). +- Fix error reopening non existing scene on startup ([GH-97028](https://github.com/godotengine/godot/pull/97028)). +- Fix Viewport Texture must be set to use it ([GH-97029](https://github.com/godotengine/godot/pull/97029)). +- Add "4D" to EditorPropertyNameProcessor ([GH-97037](https://github.com/godotengine/godot/pull/97037)). +- Highlight scripts used by current scene ([GH-97041](https://github.com/godotengine/godot/pull/97041)). +- Rework creating new folders in editor ([GH-97075](https://github.com/godotengine/godot/pull/97075)). +- Open UV editor in point editing mode if no points ([GH-97081](https://github.com/godotengine/godot/pull/97081)). +- Don't rescan filesystem when duplicating ([GH-97090](https://github.com/godotengine/godot/pull/97090)). +- Fix Network Profiler not disabling buttons ([GH-97101](https://github.com/godotengine/godot/pull/97101)). +- Fix inconsistency in 3D editor navigation ([GH-97104](https://github.com/godotengine/godot/pull/97104)). +- Fix generic conversion icon ([GH-97112](https://github.com/godotengine/godot/pull/97112)). +- Fix EditorAudioBus corner radius ([GH-97113](https://github.com/godotengine/godot/pull/97113)). +- Fix inconsistency in FileSystem naming in shader editor menu ([GH-97134](https://github.com/godotengine/godot/pull/97134)). +- Stop EditorNode from refreshing the current scene tab when not needed ([GH-97136](https://github.com/godotengine/godot/pull/97136)). +- Don't show project settings starting with underscore ([GH-97145](https://github.com/godotengine/godot/pull/97145)). +- Fix reloading scripts already in use ([GH-97168](https://github.com/godotengine/godot/pull/97168)). +- Fix FileSystemDock's EditorContextMenuPlugins ([GH-97185](https://github.com/godotengine/godot/pull/97185)). +- Don't store project metadata when loading ([GH-97187](https://github.com/godotengine/godot/pull/97187)). +- Fix `Sprite2D` dialog size for smaller screen device ([GH-97199](https://github.com/godotengine/godot/pull/97199)). +- Update `AnimationTree` parameter list when updating `AnimationNodeTransition` input names ([GH-97224](https://github.com/godotengine/godot/pull/97224)). +- Mention display driver and window mode in Copy System Info text ([GH-97239](https://github.com/godotengine/godot/pull/97239)). +- Fix wrong displayed category name in `EditorHelpSearch` ([GH-97242](https://github.com/godotengine/godot/pull/97242)). +- Windows: Fix dragging and dropping files from compressed files into editor ([GH-97250](https://github.com/godotengine/godot/pull/97250)). +- Add "Game" editor for better runtime debugging ([GH-97257](https://github.com/godotengine/godot/pull/97257)). +- Create `.editorconfig` file only on project creation ([GH-97270](https://github.com/godotengine/godot/pull/97270)). +- Allow using Unicode identifier for Autoload name ([GH-97273](https://github.com/godotengine/godot/pull/97273)). +- Fix Add Metadata dialog not focusing name field by default ([GH-97277](https://github.com/godotengine/godot/pull/97277)). +- Keep advanced toggle on when searching for settings ([GH-97282](https://github.com/godotengine/godot/pull/97282)). +- Make FileSystem dock buttons consistent ([GH-97283](https://github.com/godotengine/godot/pull/97283)). +- Fix crash when using non-`PackedScene` resource for POT generation ([GH-97288](https://github.com/godotengine/godot/pull/97288)). +- Fix Add button style in GroupsEditor ([GH-97319](https://github.com/godotengine/godot/pull/97319)). +- Fix script editor wrongly replaces and quotes non-ASCII letters ([GH-97323](https://github.com/godotengine/godot/pull/97323)). +- Consolidate remembering window settings into single config ([GH-97333](https://github.com/godotengine/godot/pull/97333)). +- Add filter & sort to editor file dialog ([GH-97344](https://github.com/godotengine/godot/pull/97344)). +- Discard additional redo on committing actions ([GH-97410](https://github.com/godotengine/godot/pull/97410)). +- Fix editing of some properties in `CodeHighlighter` ([GH-97414](https://github.com/godotengine/godot/pull/97414)). +- Make possible to favorite properties in the inspector ([GH-97415](https://github.com/godotengine/godot/pull/97415)). +- Make pressing Enter confirm project creation/import in the project manager ([GH-97453](https://github.com/godotengine/godot/pull/97453)). +- Improve "Replace in Files" dialog button text ([GH-97461](https://github.com/godotengine/godot/pull/97461)). +- Fix EditorFileSystem crash when fetching icons for unknown file types ([GH-97491](https://github.com/godotengine/godot/pull/97491)). +- Add profiler autostart indicator to EditorRunBar ([GH-97492](https://github.com/godotengine/godot/pull/97492)). +- Add a focus border on `ScrollContainer` ([GH-97521](https://github.com/godotengine/godot/pull/97521)). +- Unify editor version buttons ([GH-97527](https://github.com/godotengine/godot/pull/97527)). +- Fix closing Theme Editor not actually closing it ([GH-97543](https://github.com/godotengine/godot/pull/97543)). +- Support object inspection through DAP ([GH-97585](https://github.com/godotengine/godot/pull/97585)). +- Add expression evaluator to debugger (REPL) ([GH-97647](https://github.com/godotengine/godot/pull/97647)). +- Display proper message on invalid folder path ([GH-97706](https://github.com/godotengine/godot/pull/97706)). +- Fix GDScript docs not updating when modified externally ([GH-97710](https://github.com/godotengine/godot/pull/97710)). +- Fix tooltip message of button that opens groups/signals dock ([GH-97722](https://github.com/godotengine/godot/pull/97722)). +- Fix double free in QuickOpenDialog deconstructor ([GH-97746](https://github.com/godotengine/godot/pull/97746)). +- Partially revert #96780, remove warnings from project/editor settings `_get` ([GH-97817](https://github.com/godotengine/godot/pull/97817)). +- Fix "No loader found" error after editing PO file ([GH-97868](https://github.com/godotengine/godot/pull/97868)). +- Make `EditorFileDialog`'s Recent and Fav list show full path in tooltip ([GH-97885](https://github.com/godotengine/godot/pull/97885)). +- Expose path properties save UID internally if referencing a resource ([GH-97912](https://github.com/godotengine/godot/pull/97912)). +- Fix plugin creation dialog script name tooltip ([GH-97924](https://github.com/godotengine/godot/pull/97924)). +- Fix `CheckButton` mirrored icon in editor theme ([GH-97929](https://github.com/godotengine/godot/pull/97929)). +- Add Show in FileSystem icon for Inspector dock resource options menu item ([GH-97936](https://github.com/godotengine/godot/pull/97936)). +- Refresh Filesystem Dock after android build template is created ([GH-97940](https://github.com/godotengine/godot/pull/97940)). +- Fix crash when creating thumbnails for 3d textures ([GH-97979](https://github.com/godotengine/godot/pull/97979)). +- Forbid deleting inherited metadata properties ([GH-97986](https://github.com/godotengine/godot/pull/97986)). +- Fix `ControlEditorPopupButton` arrow position in RTL language ([GH-97996](https://github.com/godotengine/godot/pull/97996)). +- Fix Headless --import --quit crashes editor ([GH-98063](https://github.com/godotengine/godot/pull/98063)). +- Add a pin toggle to prevent involuntary bottom editor switching ([GH-98074](https://github.com/godotengine/godot/pull/98074)). +- Fix wrong base directory when creating folder ([GH-98075](https://github.com/godotengine/godot/pull/98075)). +- Rename internal EditorPlugin icon/name to match exposed methods ([GH-98132](https://github.com/godotengine/godot/pull/98132)). +- Show correct icons in remote object inspector (EditorDebuggerRemoteObject) ([GH-98156](https://github.com/godotengine/godot/pull/98156)). +- Add `EditorHelpBitTooltip` as a child of `p_target` to avoid jitter ([GH-98160](https://github.com/godotengine/godot/pull/98160)). +- Fix dictionary editor removing wrong keys and not updating key labels ([GH-98220](https://github.com/godotengine/godot/pull/98220)). +- Don't flip playback control buttons in RTL layout ([GH-98222](https://github.com/godotengine/godot/pull/98222)). +- Fix selecting root node before button released ([GH-98232](https://github.com/godotengine/godot/pull/98232)). +- Fix typos in `AnimationMarkerEdit` ([GH-98254](https://github.com/godotengine/godot/pull/98254)). +- Add fuzzy string matching to quick open search ([GH-98278](https://github.com/godotengine/godot/pull/98278)). +- Optimize `TileSetAtlasSource::_get_property_list` ([GH-98317](https://github.com/godotengine/godot/pull/98317)). +- Don't swap Advanced Import Settings button position based on Swap OK Cancel ([GH-98323](https://github.com/godotengine/godot/pull/98323)). +- Show file names in remove files confirmation dialog ([GH-98539](https://github.com/godotengine/godot/pull/98539)). +- Add "OpenGL 3", "GLES" and "Linux/*BSD" to editor property capitalization ([GH-98553](https://github.com/godotengine/godot/pull/98553)). +- Add more property hint ranges for project settings ([GH-98554](https://github.com/godotengine/godot/pull/98554)). +- Fix `ColorPicker`'s remote synchronization when typing values ([GH-98567](https://github.com/godotengine/godot/pull/98567)). +- Fix run instances dialog scaling bug ([GH-98568](https://github.com/godotengine/godot/pull/98568)). +- Emit `filesystem_changed` only once per frame ([GH-98584](https://github.com/godotengine/godot/pull/98584)). +- Fix heap-use-after-free when ctrl-clicking controls in a container ([GH-98597](https://github.com/godotengine/godot/pull/98597)). +- Clear warning in the scene tree by creating an LightOccluder2D polygon ([GH-98637](https://github.com/godotengine/godot/pull/98637)). +- Add editor setting to stop the bottom panel from switching to the Stack Trace ([GH-98657](https://github.com/godotengine/godot/pull/98657)). +- Remove unused FILE_INFO from FileSystem dock ([GH-98662](https://github.com/godotengine/godot/pull/98662)). +- Fix certain editor plugins not showing when they should ([GH-98675](https://github.com/godotengine/godot/pull/98675)). +- Expose `get_editor_toaster` method to `EditorInterface` ([GH-98680](https://github.com/godotengine/godot/pull/98680)). +- Fix crash in Quick Open Dialog ([GH-98692](https://github.com/godotengine/godot/pull/98692)). +- Update SceneUniqueName button text for clarity ([GH-98745](https://github.com/godotengine/godot/pull/98745)). +- Don't tint editor bottom panel icons when hovered or pressed ([GH-98765](https://github.com/godotengine/godot/pull/98765)). +- Add copy button to toast notification ([GH-98778](https://github.com/godotengine/godot/pull/98778)). +- Improve EditorToaster code ([GH-98794](https://github.com/godotengine/godot/pull/98794)). +- Close toasts instantly when Close button is pressed ([GH-98797](https://github.com/godotengine/godot/pull/98797)). +- Fix issue where scrolling to item center would overflow on top ([GH-98829](https://github.com/godotengine/godot/pull/98829)). +- Debugger: Better settings configuration for RuntimeNodeSelect and Window quit ([GH-98891](https://github.com/godotengine/godot/pull/98891)). +- Add toggle to hide filtered out parents in the "SceneTree" dock ([GH-98926](https://github.com/godotengine/godot/pull/98926)). +- Fix order of editor features ([GH-98988](https://github.com/godotengine/godot/pull/98988)). +- Embed game process in editor ([GH-99010](https://github.com/godotengine/godot/pull/99010)). +- Fix float value used for integer performance monitors ([GH-99068](https://github.com/godotengine/godot/pull/99068)). +- Display CPU and GPU model name in the editor visual profiler ([GH-99086](https://github.com/godotengine/godot/pull/99086)). +- Make bottom panel switch when pinned and removed ([GH-99096](https://github.com/godotengine/godot/pull/99096)). +- Add minimum size to some debugger elements ([GH-99113](https://github.com/godotengine/godot/pull/99113)). +- Restore original root name if renaming instance to empty ([GH-99139](https://github.com/godotengine/godot/pull/99139)). +- Remove corresponding .uid file when removing file ([GH-99144](https://github.com/godotengine/godot/pull/99144)). +- Create .uid file when creating new Resource ([GH-99147](https://github.com/godotengine/godot/pull/99147)). +- Remove unnecessary array construction when initializing the project manager ([GH-99213](https://github.com/godotengine/godot/pull/99213)). +- Fix global paths in EditorPropertyPath ([GH-99389](https://github.com/godotengine/godot/pull/99389)). +- Add a keyboard shortcut to perform one-click deploy with devices in the list ([GH-99405](https://github.com/godotengine/godot/pull/99405)). +- Disable the debugger thread selector when there's nothing to select ([GH-99417](https://github.com/godotengine/godot/pull/99417)). +- Show editor toaster when copying `[codeblock]` in class reference ([GH-99451](https://github.com/godotengine/godot/pull/99451)). +- Allow dragging to specific folders in filesystem dock ([GH-99453](https://github.com/godotengine/godot/pull/99453)). +- Improve appearance of external links in built-in docs ([GH-99480](https://github.com/godotengine/godot/pull/99480)). +- Fix toast spam about child of container position ([GH-99482](https://github.com/godotengine/godot/pull/99482)). +- Fix viewport message offsets ([GH-99487](https://github.com/godotengine/godot/pull/99487)). +- Fix inspector section iteration in `update_tree` ([GH-99544](https://github.com/godotengine/godot/pull/99544)). +- Add tooltips to dock menu and remove disabled items ([GH-99550](https://github.com/godotengine/godot/pull/99550)). +- Improve run instances UX: avoid removing data and add a clear popup ([GH-99649](https://github.com/godotengine/godot/pull/99649)). +- Fix closing dropdown on EditorResourcePicker in Single Window Mode ([GH-99653](https://github.com/godotengine/godot/pull/99653)). +- Fix argument error when restarting project by executing Project -> Tools -> Upgrade Mesh Surface ([GH-99695](https://github.com/godotengine/godot/pull/99695)). +- Improve Scene Tree editor performance ([GH-99700](https://github.com/godotengine/godot/pull/99700)). +- Fix error when favoriting some types of properties ([GH-99723](https://github.com/godotengine/godot/pull/99723)). +- Compare localized path against editor scene path when reloading ([GH-99741](https://github.com/godotengine/godot/pull/99741)). +- Use Vector4 for texture mask in BaseMaterial to avoid converting to and from Plane ([GH-99743](https://github.com/godotengine/godot/pull/99743)). +- Strip any trailing slashes when reading the default project path ([GH-99776](https://github.com/godotengine/godot/pull/99776)). +- Fix non-empty project folder confirmation dialog ([GH-99787](https://github.com/godotengine/godot/pull/99787)). +- Make the alt selection menu available for all modes ([GH-99795](https://github.com/godotengine/godot/pull/99795)). +- Fix use after free in redo of "Create Custom Bone2D(s) from Node(s)" ([GH-99800](https://github.com/godotengine/godot/pull/99800)). +- Change Event Configuration dialog wider and its input list taller for better usability ([GH-99829](https://github.com/godotengine/godot/pull/99829)). +- Fix progress dialog steals focus ([GH-99844](https://github.com/godotengine/godot/pull/99844)). +- Check if EditorNode exists before trying to generate preview ([GH-99846](https://github.com/godotengine/godot/pull/99846)). +- Don't create an UndoRedo action if Autoload order doesn't change after Drag & Drop ([GH-99898](https://github.com/godotengine/godot/pull/99898)). +- Fix loading layout with floating dock in single window mode and fix `restore_windows_on_load` ([GH-99904](https://github.com/godotengine/godot/pull/99904)). +- Fix selecting and editing invisible items in SubViewports ([GH-99942](https://github.com/godotengine/godot/pull/99942)). +- Ignore `__MACOSX` directory for export template and project ZIPs ([GH-99947](https://github.com/godotengine/godot/pull/99947)). +- Make Inspector search inside sub-resources ([GH-99966](https://github.com/godotengine/godot/pull/99966)). +- Ignore custom tooltip if its text is empty in signals tab ([GH-99982](https://github.com/godotengine/godot/pull/99982)). +- Fix extensions when saving resource as ([GH-99987](https://github.com/godotengine/godot/pull/99987)). +- Fix FileSystem dock filter reset when tree rebuilds ([GH-99990](https://github.com/godotengine/godot/pull/99990)). +- Fix for `RuntimeNodeSelect` `selection_list` showing up as an orphaned node when editor is open during runtime ([GH-99992](https://github.com/godotengine/godot/pull/99992)). +- Don't rebuild tree when navigating to path ([GH-100010](https://github.com/godotengine/godot/pull/100010)). +- Don't navigate to path when file is double-clicked ([GH-100012](https://github.com/godotengine/godot/pull/100012)). +- Fix UI inconsistencies in `EditorFileDialog`'s toolbar ([GH-100027](https://github.com/godotengine/godot/pull/100027)). +- Fix vertical alignment of the main menu bar ([GH-100030](https://github.com/godotengine/godot/pull/100030)). +- Add missing cleanup of editor history & set appropriate class icon for object in it ([GH-100091](https://github.com/godotengine/godot/pull/100091)). +- Force fixed undo history to make editor shortcuts use global history ([GH-100120](https://github.com/godotengine/godot/pull/100120)). +- Add `popup_create_dialog()` for `EditorInterface` to create custom create dialog ([GH-100135](https://github.com/godotengine/godot/pull/100135)). +- Fix scroll to symbol's documentation ([GH-100156](https://github.com/godotengine/godot/pull/100156)). +- Add color channel filter to editor texture previews ([GH-100157](https://github.com/godotengine/godot/pull/100157)). +- Fix root folder logic in the filesystem ([GH-100161](https://github.com/godotengine/godot/pull/100161)). +- Fix missing focus outline for 2D and 3D editor viewports ([GH-100171](https://github.com/godotengine/godot/pull/100171)). +- Fix FileSystem dock navigation when using Split Mode ([GH-100336](https://github.com/godotengine/godot/pull/100336)). +- Don't rebuild tree when selecting a file in FileSystem list view ([GH-100376](https://github.com/godotengine/godot/pull/100376)). +- Improve UID support for main scene ([GH-100408](https://github.com/godotengine/godot/pull/100408)). +- Fix DependencyRemoveDialog not handling UIDs ([GH-100409](https://github.com/godotengine/godot/pull/100409)). +- Fix folders uncollapsed after restart with filter ([GH-100419](https://github.com/godotengine/godot/pull/100419)). +- Fix non-creation of editor temporary dir ([GH-100510](https://github.com/godotengine/godot/pull/100510)). +- [Dictionary Property Editor] Use property editors instead of labels to display keys ([GH-100512](https://github.com/godotengine/godot/pull/100512)). +- Fix Timer error on startup ([GH-100530](https://github.com/godotengine/godot/pull/100530)). +- Rework dock layout management ([GH-100558](https://github.com/godotengine/godot/pull/100558)). +- Node2D/3D: Make position follow default float step ([GH-100597](https://github.com/godotengine/godot/pull/100597)). +- Fix autostart indicator going to wrong debugger ([GH-100648](https://github.com/godotengine/godot/pull/100648)). +- Fix `@export` open scene button not working ([GH-100654](https://github.com/godotengine/godot/pull/100654)). +- Don't recursively call `_update_tree` ([GH-100670](https://github.com/godotengine/godot/pull/100670)). +- Add a context menu to quick open dialog ([GH-100679](https://github.com/godotengine/godot/pull/100679)). +- Restore old `Ctrl+Click` behavior ([GH-100707](https://github.com/godotengine/godot/pull/100707)). +- Fix icon UIDs in Project Manager ([GH-100717](https://github.com/godotengine/godot/pull/100717)). +- Improve script class display in Create dialog ([GH-100729](https://github.com/godotengine/godot/pull/100729)). +- Fix crash when using one-click deploy ([GH-100738](https://github.com/godotengine/godot/pull/100738)). +- Assign the project manager title to the node instead of DisplayServer ([GH-100745](https://github.com/godotengine/godot/pull/100745)). +- Re-create missing .uid files ([GH-100787](https://github.com/godotengine/godot/pull/100787)). +- Show tooltips for `res://` and `uid://` strings in ScriptEditor ([GH-100803](https://github.com/godotengine/godot/pull/100803)). +- ProjectManager: Update project list placeholder when project is created ([GH-100863](https://github.com/godotengine/godot/pull/100863)). +- Fix debugging embedded game does not refocus on continue ([GH-100916](https://github.com/godotengine/godot/pull/100916)). +- Respect `PROPERTY_USAGE_NEVER_DUPLICATE` with Make Sub-Resources Unique ([GH-100925](https://github.com/godotengine/godot/pull/100925)). +- Assign new UID when duplicating file externally ([GH-100927](https://github.com/godotengine/godot/pull/100927)). +- Fix dictionary editor steals focus when reloading script ([GH-100932](https://github.com/godotengine/godot/pull/100932)). +- Fix Script metadata usage ([GH-101001](https://github.com/godotengine/godot/pull/101001)). +- Remember QuickOpenDialog history between sessions ([GH-101038](https://github.com/godotengine/godot/pull/101038)). +- Don't scroll to selected file in FileSystem when saving scenes ([GH-101078](https://github.com/godotengine/godot/pull/101078)). +- Reorganize EditorNode menu options ([GH-101093](https://github.com/godotengine/godot/pull/101093)). +- Simplify scene tabs option disabling ([GH-101094](https://github.com/godotengine/godot/pull/101094)). +- Make sure marked nodes are reset on scene change ([GH-101145](https://github.com/godotengine/godot/pull/101145)). +- Fix embedded game focus border ([GH-101153](https://github.com/godotengine/godot/pull/101153)). +- Fix documentation tooltip over debug tooltip ([GH-101156](https://github.com/godotengine/godot/pull/101156)). +- Allow prefixing with '%' to set a node as unique in the Scene Tree Dock ([GH-101163](https://github.com/godotengine/godot/pull/101163)). +- Android Editor: Fix themed icon ([GH-101180](https://github.com/godotengine/godot/pull/101180)). +- Fix crash when using `--import --verbose` due to use-after-free ([GH-101182](https://github.com/godotengine/godot/pull/101182)). +- Add editor setting to globally override project game mode settings ([GH-101283](https://github.com/godotengine/godot/pull/101283)). +- Fix duplicate buttons style to match the other buttons in the SpriteFrames editor plugin ([GH-101315](https://github.com/godotengine/godot/pull/101315)). +- Change print warnings to config ones for popups that need transparency ([GH-101321](https://github.com/godotengine/godot/pull/101321)). +- Fix frame list icon mode is set two times ([GH-101335](https://github.com/godotengine/godot/pull/101335)). +- Draw fewer fishbones to improve Path gizmo readability and performance ([GH-101350](https://github.com/godotengine/godot/pull/101350)). +- Fix selection in 3D Game view ([GH-101368](https://github.com/godotengine/godot/pull/101368)). +- Fallback to primary screen if no window layout is saved in project metadata ([GH-101381](https://github.com/godotengine/godot/pull/101381)). +- Change editor viewports gizmos mouse enter/exit from using signals to notifications ([GH-101404](https://github.com/godotengine/godot/pull/101404)). +- Fix Game View cannot be editor feature disabled ([GH-101405](https://github.com/godotengine/godot/pull/101405)). +- Return fast for built-in class icon ([GH-101435](https://github.com/godotengine/godot/pull/101435)). +- Add `Copy Script UID` option to Script Editor ([GH-101445](https://github.com/godotengine/godot/pull/101445)). +- Allow removing files in the file search ([GH-101472](https://github.com/godotengine/godot/pull/101472)). +- Allow smaller minimum width of VersionControlEditorPlugin ([GH-101478](https://github.com/godotengine/godot/pull/101478)). +- Optimize classnames enumeration ([GH-101489](https://github.com/godotengine/godot/pull/101489)). +- Update Android editor name and add missing icons ([GH-101526](https://github.com/godotengine/godot/pull/101526)). +- Respect order of extensions for ResourceFormatSavers with `at_front` ([GH-101543](https://github.com/godotengine/godot/pull/101543)). +- Make the `empty_list_actions` HBoxContainer into a FlowContainer ([GH-101557](https://github.com/godotengine/godot/pull/101557)). +- Don't instantiate `ColorPicker` in `EditorPropertyColor` constructor ([GH-101570](https://github.com/godotengine/godot/pull/101570)). +- Fix crashes when pressing enter on project manager screen ([GH-101572](https://github.com/godotengine/godot/pull/101572)). +- Fix conversion plugin search showing errors on `TextFile` and `OtherFile` ([GH-101574](https://github.com/godotengine/godot/pull/101574)). +- Fix project manager window size when `EDSCALE` is not 1.0 ([GH-101576](https://github.com/godotengine/godot/pull/101576)). +- Fix certain channel masks for Texture previewer ([GH-101594](https://github.com/godotengine/godot/pull/101594)). +- Replace some problematic uses of `String::num` to `String::num_int64` ([GH-101595](https://github.com/godotengine/godot/pull/101595)). +- Tweak Quick Open theming ([GH-101598](https://github.com/godotengine/godot/pull/101598)). +- Rework script external modification tracking ([GH-101616](https://github.com/godotengine/godot/pull/101616)). +- Fix crash in `Particles3DEmissionShapeGizmoPlugin` ([GH-101636](https://github.com/godotengine/godot/pull/101636)). +- Create .uid files in EditorFileSystem ([GH-101650](https://github.com/godotengine/godot/pull/101650)). +- Don't duplicate .uid files ([GH-101683](https://github.com/godotengine/godot/pull/101683)). +- Fix Embedded Game Window with user arguments ([GH-101739](https://github.com/godotengine/godot/pull/101739)). +- Fix inspector jumping when gaining focus ([GH-101768](https://github.com/godotengine/godot/pull/101768)). +- Scene debugger fix for remote debugging without editor running ([GH-101784](https://github.com/godotengine/godot/pull/101784)). +- Fix Embedded Game Size ([GH-101807](https://github.com/godotengine/godot/pull/101807)). +- Fix Floating Game Window Title ([GH-101809](https://github.com/godotengine/godot/pull/101809)). +- Fix resource details will unexpectedly expand ([GH-101817](https://github.com/godotengine/godot/pull/101817)). +- Android Editor: Disable magnify gesture in the `ScriptEditor` ([GH-101841](https://github.com/godotengine/godot/pull/101841)). +- Fix `NOTIFICATION_WM_CLOSE_REQUEST` in Embedded Floating Window ([GH-101895](https://github.com/godotengine/godot/pull/101895)). +- 2D: Fix `CanvasTexture` rendering when updating channels ([GH-101931](https://github.com/godotengine/godot/pull/101931)). +- Fix ProgressDialog in single window mode ([GH-101933](https://github.com/godotengine/godot/pull/101933)). +- Disable Game Embedding in Single Window Mode ([GH-101936](https://github.com/godotengine/godot/pull/101936)). +- Fix flickering in embedded game when paused ([GH-102006](https://github.com/godotengine/godot/pull/102006)). +- Ask before restarting project from settings ([GH-102017](https://github.com/godotengine/godot/pull/102017)). +- Use `FlowContainer` for `Profiler` and `Visual Profiler` bars ([GH-102024](https://github.com/godotengine/godot/pull/102024)). +- Add missing metadata saving for embed size mode ([GH-102027](https://github.com/godotengine/godot/pull/102027)). +- Fix BadWindow error when stopping embedded game on Linux ([GH-102045](https://github.com/godotengine/godot/pull/102045)). +- Make save confirmation a child of last exclusive window of EditorNode before popup ([GH-102070](https://github.com/godotengine/godot/pull/102070)). +- Add UID upgrade tool ([GH-102071](https://github.com/godotengine/godot/pull/102071)). +- Fix Embedded Game disappear when not focused on KDE 5 ([GH-102104](https://github.com/godotengine/godot/pull/102104)). +- `EditorToaster::popup_str()` must always defer to the main MessageQueue ([GH-102181](https://github.com/godotengine/godot/pull/102181)). +- Fix vertex indices showing as float ([GH-102212](https://github.com/godotengine/godot/pull/102212)). +- Fix crash when ProgressDialog is outside tree ([GH-102237](https://github.com/godotengine/godot/pull/102237)). +- Fix Embed Game not available when multi window is disabled ([GH-102238](https://github.com/godotengine/godot/pull/102238)). +- Fix Modal Dialog with Embedded Game ([GH-102247](https://github.com/godotengine/godot/pull/102247)). +- Fix slow resize Embedded Game Window ([GH-102251](https://github.com/godotengine/godot/pull/102251)). +- Remove unnecessary rescan after copying file ([GH-102260](https://github.com/godotengine/godot/pull/102260)). +- Don't return Tree items outside visible rect ([GH-102262](https://github.com/godotengine/godot/pull/102262)). +- Update modified time when reloading script ([GH-102297](https://github.com/godotengine/godot/pull/102297)). +- Setup working directory when quitting to project manager ([GH-102307](https://github.com/godotengine/godot/pull/102307)). +- Fix Floating Window focus on run ([GH-102312](https://github.com/godotengine/godot/pull/102312)). +- Fix Floating Window overlapping when on screen edge on KDE ([GH-102314](https://github.com/godotengine/godot/pull/102314)). +- Fix runtime crash with 3D selection with no camera ([GH-102329](https://github.com/godotengine/godot/pull/102329)). +- Fix Escape does not work the first time when pressed at the Find(Replace)Bar ([GH-102332](https://github.com/godotengine/godot/pull/102332)). +- Fix 'Show in FileSystem' jumps to incorrect entry under certain conditions ([GH-102336](https://github.com/godotengine/godot/pull/102336)). +- Fix wrong inspector offset on scene switch ([GH-102379](https://github.com/godotengine/godot/pull/102379)). +- Prevent save confirmation dialog from trying to parent to itself ([GH-102444](https://github.com/godotengine/godot/pull/102444)). +- Fix Floating Window request close when a dialog is opened ([GH-102470](https://github.com/godotengine/godot/pull/102470)). +- Improve UID file creation condition ([GH-102489](https://github.com/godotengine/godot/pull/102489)). +- Fix regression in moving resources in filesystem dock ([GH-102493](https://github.com/godotengine/godot/pull/102493)). +- Fix heap-use-after-free when changing 2D editor selection ([GH-102510](https://github.com/godotengine/godot/pull/102510)). +- Fix accessing UID before first scan ([GH-102513](https://github.com/godotengine/godot/pull/102513)). +- Change output format for milliseconds in timestamps to 3 zeroes ([GH-102530](https://github.com/godotengine/godot/pull/102530)). +- Fix double `set_name` in renaming node ([GH-102553](https://github.com/godotengine/godot/pull/102553)). +- Fix History Dock default state ([GH-102555](https://github.com/godotengine/godot/pull/102555)). +- Fix AtlasTexture editor previews for compressed textures ([GH-102559](https://github.com/godotengine/godot/pull/102559)). +- Navigate to folder when double-clicking favorite ([GH-102592](https://github.com/godotengine/godot/pull/102592)). +- Fix empty Command Palette ([GH-102596](https://github.com/godotengine/godot/pull/102596)). +- Script Editor: Add option to disable documentation tooltips ([GH-102608](https://github.com/godotengine/godot/pull/102608)). +- Fix lag when resizing Floating Game Window ([GH-102618](https://github.com/godotengine/godot/pull/102618)). +- Fix global scripts not being added because of bad `global_script_class_cache.cfg` ([GH-102636](https://github.com/godotengine/godot/pull/102636)). +- Prevent deferred tooltip update crash ([GH-102659](https://github.com/godotengine/godot/pull/102659)). +- Silence missing icon error if UID cache is missing ([GH-102664](https://github.com/godotengine/godot/pull/102664)). +- Improve path handling in EditorQuickOpenDialog ([GH-102678](https://github.com/godotengine/godot/pull/102678)). +- Fix Inspector revert and animation keying button sizing ([GH-102681](https://github.com/godotengine/godot/pull/102681)). +- Fix focus being lost after adding a new input map entry in the editor ([GH-102683](https://github.com/godotengine/godot/pull/102683)). +- Don't select invisible items in FileSystem dock ([GH-102714](https://github.com/godotengine/godot/pull/102714)). +- EditorHelpBit: Workaround crash renaming named class inheriting `@tool` class ([GH-102729](https://github.com/godotengine/godot/pull/102729)). +- Store `_custom_type_script` meta as String ([GH-102737](https://github.com/godotengine/godot/pull/102737)). +- Add tooltip text to Polygon3DEditor buttons ([GH-102760](https://github.com/godotengine/godot/pull/102760)). +- Android Editor: Fix embed mode orientation handling ([GH-102802](https://github.com/godotengine/godot/pull/102802)). +- Fix modified time when LSP reload script ([GH-102811](https://github.com/godotengine/godot/pull/102811)). +- Don't mark cached previously pinned AnimationMixers ([GH-102813](https://github.com/godotengine/godot/pull/102813)). +- Fix "Game embedding not available" message on Wayland ([GH-102833](https://github.com/godotengine/godot/pull/102833)). +- Fix error with favorited properties with open sub-inspectors ([GH-102874](https://github.com/godotengine/godot/pull/102874)). +- Remove non-existent IPUnix conversion ([GH-102922](https://github.com/godotengine/godot/pull/102922)). +- Fix Embedded Game over expanded bottom panel, by resetting expanded bottom panel on Play ([GH-102978](https://github.com/godotengine/godot/pull/102978)). +- Always allow selecting any rendering driver in the settings, add "auto" option ([GH-103026](https://github.com/godotengine/godot/pull/103026)). +- Don't show `Show in Filesystem` Popup for empty frames in `SpriteFrames` editor ([GH-103050](https://github.com/godotengine/godot/pull/103050)). +- Fix Embedded Game window wrong first startup location and size ([GH-103105](https://github.com/godotengine/godot/pull/103105)). +- Fix plugin icons not displayed ([GH-103143](https://github.com/godotengine/godot/pull/103143)). +- Load docks layout after their position is initialized ([GH-103266](https://github.com/godotengine/godot/pull/103266)). +- Replace error to info messages for embedded game ([GH-103339](https://github.com/godotengine/godot/pull/103339)). +- Add checks to prevent crashes when accessing the GameMenu api ([GH-103371](https://github.com/godotengine/godot/pull/103371)). +- Fix invalid startup embedded game location and size after resizing editor main area ([GH-103436](https://github.com/godotengine/godot/pull/103436)). +- Fix autoloaded scene loses their built-in script when upgrading to 4.4 ([GH-103439](https://github.com/godotengine/godot/pull/103439)). +- Validate custom type script before loading it ([GH-103467](https://github.com/godotengine/godot/pull/103467)). #### Export -- Provide ability to override `EditorExportPlugin::_export_end()` in C++ ([GH-72572](https://github.com/godotengine/godot/pull/72572)). -- Ensure Android keystore username and password are checked on export ([GH-83702](https://github.com/godotengine/godot/pull/83702)). -- [iOS export] Add export options for performance capabilities and min. iOS version ([GH-84162](https://github.com/godotengine/godot/pull/84162)). -- Update the validation logic for the package name ([GH-84676](https://github.com/godotengine/godot/pull/84676)). -- Add `single`/`double` as export features automatically ([GH-84711](https://github.com/godotengine/godot/pull/84711)). -- Fix order of operations for macOS template check ([GH-84990](https://github.com/godotengine/godot/pull/84990)). -- [iOS one-click] Add support for Xcode 15 devicectl ([GH-85546](https://github.com/godotengine/godot/pull/85546)). -- iOS: Use `mdfind` to check if Xcode is installed in one-click deploy code ([GH-85774](https://github.com/godotengine/godot/pull/85774)). -- Add option to install android build template for export ([GH-85819](https://github.com/godotengine/godot/pull/85819)). -- Ensure more export errors are reported to users ([GH-85845](https://github.com/godotengine/godot/pull/85845)). -- Add PWA option to ensure cross-origin isolation headers on web export ([GH-86089](https://github.com/godotengine/godot/pull/86089)). -- D3D12: Automatically copy runtime DLLs during export ([GH-86093](https://github.com/godotengine/godot/pull/86093)). -- Set an appropriate minimum size for labels in windows that display incorrectly ([GH-86145](https://github.com/godotengine/godot/pull/86145)). -- [iOS export] Improve `.xcframework` exporting ([GH-86288](https://github.com/godotengine/godot/pull/86288)). -- iOS: Remove deprecated LaunchImages support and switch to Storyboard by default ([GH-86312](https://github.com/godotengine/godot/pull/86312)). -- Specify the path to the Java SDK used for the Android gradle build ([GH-86383](https://github.com/godotengine/godot/pull/86383)). -- Add logging when macOS export will fail due to disabled texture formats ([GH-86769](https://github.com/godotengine/godot/pull/86769)). -- Hide Keystore Release password on Android's Export window ([GH-86882](https://github.com/godotengine/godot/pull/86882)). -- [macOS export] Fix RLE icon generation ([GH-86934](https://github.com/godotengine/godot/pull/86934)). -- [macOS/iOS export] Add option to set custom Info.plist data ([GH-87029](https://github.com/godotengine/godot/pull/87029)). -- Add clearer error message for missing project icon during Android export ([GH-87208](https://github.com/godotengine/godot/pull/87208)). -- Add basic multimesh data needed for headless export to the Dummy rendering server ([GH-87390](https://github.com/godotengine/godot/pull/87390)). -- Add DummyShader handling to Dummy RenderingServer to ensure shader parameters are saved in headless export ([GH-87392](https://github.com/godotengine/godot/pull/87392)). -- GDScript: Reintroduce binary tokenization on export ([GH-87634](https://github.com/godotengine/godot/pull/87634)). -- [macOS export] Allow unpacked .app export in "Distribution" export mode ([GH-87657](https://github.com/godotengine/godot/pull/87657)). -- Remove workaround in GLTF exporter that double converts `ra` textures to `rg` ([GH-87775](https://github.com/godotengine/godot/pull/87775)). -- Don't invoke adb with no runnable Android preset ([GH-87823](https://github.com/godotengine/godot/pull/87823)). -- macOS: Generate min. `Info.plist` for frameworks if it's missing. Validate framework bundle ID characters ([GH-87908](https://github.com/godotengine/godot/pull/87908)). -- Fix data race regarding `server_quit` in `EditorExportPlatformWeb` ([GH-88043](https://github.com/godotengine/godot/pull/88043)). -- Assign missing surface data fields in dummy render server ([GH-88210](https://github.com/godotengine/godot/pull/88210)). -- Allow export plugins to override export option values ([GH-88291](https://github.com/godotengine/godot/pull/88291)). -- Android: Allow using alternative Gradle build directory ([GH-88297](https://github.com/godotengine/godot/pull/88297)). -- Unify settings for PC texture formats, removed obsoleted ETC feature ([GH-88325](https://github.com/godotengine/godot/pull/88325)). -- GDScript: Fix extension comparison for exported scripts ([GH-88365](https://github.com/godotengine/godot/pull/88365)). -- Add export setting to specify whether the native libraries should be compressed for the gradle build ([GH-88385](https://github.com/godotengine/godot/pull/88385)). -- Add an `Advanced Options` toggle to the editor export preset ([GH-88419](https://github.com/godotengine/godot/pull/88419)). -- Display a warning if device CPU architecture is not active in the export preset ([GH-88611](https://github.com/godotengine/godot/pull/88611)). -- Physics: Fix exporting with 3D disabled ([GH-88668](https://github.com/godotengine/godot/pull/88668)). -- Update the list of advanced export options for the Android platform ([GH-88840](https://github.com/godotengine/godot/pull/88840)). -- GDScript: Canonicalize script path in FQCN ([GH-88853](https://github.com/godotengine/godot/pull/88853)). -- Don't attempt shutting down adb on exit if not started ([GH-88865](https://github.com/godotengine/godot/pull/88865)). -- GDScript: Fix paths in `ResourceFormatLoaderGDScript::load()` ([GH-89005](https://github.com/godotengine/godot/pull/89005)). -- Linux: Handle export preset compat with 'Linux/X11' platform name ([GH-89044](https://github.com/godotengine/godot/pull/89044)). -- Update the Android export validation logic to account for the custom gradle android source template ([GH-89173](https://github.com/godotengine/godot/pull/89173)). -- Use relative file base offset for embedded PCK ([GH-89214](https://github.com/godotengine/godot/pull/89214)). -- Fix reporting exit code when command line export fails ([GH-89234](https://github.com/godotengine/godot/pull/89234)). -- iOS: Restore backward compatibility with old export templates ([GH-89348](https://github.com/godotengine/godot/pull/89348)). -- GDScript: Fix continuation lines in `GDScriptTokenizerBuffer` ([GH-89472](https://github.com/godotengine/godot/pull/89472)). -- Windows: Fix exporting as ZIP when console wrapper and/or embedded PCK is enabled ([GH-89511](https://github.com/godotengine/godot/pull/89511)). -- Fix `gdextensionlibs.json` storage path in Android gradle build ([GH-89579](https://github.com/godotengine/godot/pull/89579)). -- [iOS Export] Check directory content before deleting old export leftovers ([GH-89790](https://github.com/godotengine/godot/pull/89790)). -- Allow skipping imported resource files from export ([GH-90365](https://github.com/godotengine/godot/pull/90365)). -- [iOS export] Add support for privacy manifest configuration ([GH-90375](https://github.com/godotengine/godot/pull/90375)). -- Android: Add `POST_NOTIFICATIONS` permission to the list of permissions available in the Export dialog ([GH-90377](https://github.com/godotengine/godot/pull/90377)). -- [iOS Export] Fix adding static libs to the Xcode project ([GH-90379](https://github.com/godotengine/godot/pull/90379)). -- Windows: Support all possible suffixes for console wrapper ([GH-90387](https://github.com/godotengine/godot/pull/90387)). -- [macOS export] Detect embedded helper executables using MachO header ([GH-90428](https://github.com/godotengine/godot/pull/90428)). -- Add `--import` command-line flag ([GH-90431](https://github.com/godotengine/godot/pull/90431)). -- Android: Standardize permission descriptions, add urls, remove deprecated tag from non-deprecated permission ([GH-90546](https://github.com/godotengine/godot/pull/90546)). -- Fix issue with resolving the path for the Android keystore file ([GH-90603](https://github.com/godotengine/godot/pull/90603)). -- Fix the logic to load export preset's options overrides ([GH-90606](https://github.com/godotengine/godot/pull/90606)). -- Automatically generate the Android debug keystore ([GH-90611](https://github.com/godotengine/godot/pull/90611)). -- Web: Fix serve.py utility on Windows ([GH-90698](https://github.com/godotengine/godot/pull/90698)). -- Fix issue causing the `copyAndRename*` task to fail on occasions on Windows machines ([GH-90802](https://github.com/godotengine/godot/pull/90802)). -- Splash image support and new progress bar for HTML5 Web Export ([GH-91128](https://github.com/godotengine/godot/pull/91128)). -- Fix export dialog sizing issue on small devices ([GH-91291](https://github.com/godotengine/godot/pull/91291)). -- Add more Remote Debug options to the web platform ([GH-91369](https://github.com/godotengine/godot/pull/91369)). -- [macOS export] Add support for privacy manifest configuration ([GH-91377](https://github.com/godotengine/godot/pull/91377)). -- Default to non-threaded export setting for the web ([GH-91623](https://github.com/godotengine/godot/pull/91623)). -- Web: Fix splash screen background color in HTML shell ([GH-91852](https://github.com/godotengine/godot/pull/91852)). -- Web: Fix quotes style in HTML shell head include ([GH-91856](https://github.com/godotengine/godot/pull/91856)). -- Disable remote debug button when there are no runnable presets ([GH-92032](https://github.com/godotengine/godot/pull/92032)). -- Use `GLOBAL_GET` for `window_{height,width}_override` ([GH-92075](https://github.com/godotengine/godot/pull/92075)). -- Fix web export state for Remote Debug ([GH-92163](https://github.com/godotengine/godot/pull/92163)). -- Ensure that Godot's version of `libc++_shared.so` is always selected ([GH-92525](https://github.com/godotengine/godot/pull/92525)). -- Fix iOS exports never embedding framework bundles ([GH-92692](https://github.com/godotengine/godot/pull/92692)). -- [iOS export] Automatically generate ARM64 simulator library from device library if it's missing ([GH-92750](https://github.com/godotengine/godot/pull/92750)). -- Fix issues related to code-signing for macOS exports ([GH-93101](https://github.com/godotengine/godot/pull/93101)). -- Android: Revert hiding of custom templates under the `Advanced Options` toggle ([GH-93551](https://github.com/godotengine/godot/pull/93551)). -- Web: Add "threads"/"nothreads" feature tags to export presets ([GH-93556](https://github.com/godotengine/godot/pull/93556)). -- Add `nothreads` feature tag to signify lack of `THREADS_ENABLED` ([GH-93563](https://github.com/godotengine/godot/pull/93563)). -- EditorExportPlugin: Call `_export_file` for all resource types ([GH-93878](https://github.com/godotengine/godot/pull/93878)). -- Fix error when exporting files without import parameters ([GH-94405](https://github.com/godotengine/godot/pull/94405)). -- Fix issue preventing enabling the remote button for Android/iOS ([GH-94425](https://github.com/godotengine/godot/pull/94425)). -- [macOS export] Do not stop export on signing errors ([GH-94677](https://github.com/godotengine/godot/pull/94677)). -- Fix Android export failing with custom keystores and no JDK setup in the OS environment ([GH-94809](https://github.com/godotengine/godot/pull/94809)). -- Windows: Improve editor grouping, set friendly name registry key for exported projects ([GH-94976](https://github.com/godotengine/godot/pull/94976)). -- iOS: Fix dylib GDExtension conversion ([GH-95323](https://github.com/godotengine/godot/pull/95323)). +- Allow adding custom export platforms using scripts / GDExtension ([GH-90782](https://github.com/godotengine/godot/pull/90782)). +- [Android Editor] Add support for exporting platform binaries ([GH-93526](https://github.com/godotengine/godot/pull/93526)). +- Update the visibility for the custom templates for all platforms ([GH-93867](https://github.com/godotengine/godot/pull/93867)). +- [Windows/Linux] Check custom export templates architecture ([GH-94588](https://github.com/godotengine/godot/pull/94588)). +- Fix crash or unclear messages when exporting with invalid arguments ([GH-95005](https://github.com/godotengine/godot/pull/95005)). +- macOS: Use per-architecture min. OS version for export ([GH-95885](https://github.com/godotengine/godot/pull/95885)). +- Display project settings splash color on web export ([GH-96625](https://github.com/godotengine/godot/pull/96625)). +- Re-enable macOS .app export from Windows, add warnings about Unix permissions ([GH-96669](https://github.com/godotengine/godot/pull/96669)). +- Fix issue with GDScript binary tokens being non-deterministic ([GH-96855](https://github.com/godotengine/godot/pull/96855)). +- Expose `get_export_option_visibility` to editor plugins ([GH-96980](https://github.com/godotengine/godot/pull/96980)). +- Add ability to export patch packs ([GH-97118](https://github.com/godotengine/godot/pull/97118)). +- Ensure excluded GDExtension files are not included in `extension_list.cfg` ([GH-97216](https://github.com/godotengine/godot/pull/97216)). +- Add ability for PCK patches to remove files ([GH-97356](https://github.com/godotengine/godot/pull/97356)). +- Add support for Android Themed Icons (monochrome) ([GH-97517](https://github.com/godotengine/godot/pull/97517)). +- [Android editor] Enable automatic install of exported apks for the Android editor ([GH-97631](https://github.com/godotengine/godot/pull/97631)). +- GDExtension: Improve error messages during export ([GH-97765](https://github.com/godotengine/godot/pull/97765)). +- GDScript: Fix `GDScriptCache::get_full_script()` uses non-remapped path ([GH-97769](https://github.com/godotengine/godot/pull/97769)). +- iOS: Add support for dark and tinted icon versions ([GH-97789](https://github.com/godotengine/godot/pull/97789)). +- Add default value of editor property `export/android/android_sdk_path` for Windows, Linux, and macOS ([GH-97992](https://github.com/godotengine/godot/pull/97992)). +- Support for XCode 8+ feature `PROVISIONING_PROFILE_SPECIFIER` ([GH-98093](https://github.com/godotengine/godot/pull/98093)). +- Additional macOS codesign entitlements and print verbose ([GH-98126](https://github.com/godotengine/godot/pull/98126)). +- Fix Android app permissions for SDK levels earlier than 28 ([GH-98230](https://github.com/godotengine/godot/pull/98230)). +- Fix monochrome icon, add warning when it's not specified ([GH-98603](https://github.com/godotengine/godot/pull/98603)). +- Editor: Copy encryption and script settings on export preset duplication ([GH-98739](https://github.com/godotengine/godot/pull/98739)). +- GDExtension: Improve macOS library loading/export ([GH-98809](https://github.com/godotengine/godot/pull/98809)). +- Allow setting custom initialization vector for FileAccessEncrypted. Add export setting to set static seed for PCK encryption initialization vectors ([GH-98918](https://github.com/godotengine/godot/pull/98918)). +- Add `CATEGORY_UNDEFINED` option in Android export ([GH-98971](https://github.com/godotengine/godot/pull/98971)). +- iOS: Add options to specify additional entitlements and capabilities in the export settings ([GH-99051](https://github.com/godotengine/godot/pull/99051)). +- Linux: Use safe IDs for native file dialog options. Show extensions in export dialog ([GH-99110](https://github.com/godotengine/godot/pull/99110)). +- Write text server data from memory, instead of using temporary file ([GH-99164](https://github.com/godotengine/godot/pull/99164)). +- Fix `PackedData::has_path()` using wrong path format ([GH-99165](https://github.com/godotengine/godot/pull/99165)). +- Fix Android boot splash and gradle build issue ([GH-99353](https://github.com/godotengine/godot/pull/99353)). +- Android: Refactor icon logic and make monochrome icon optional ([GH-99378](https://github.com/godotengine/godot/pull/99378)). +- Add persistent states for export with debug, as patch on editor restarts ([GH-99391](https://github.com/godotengine/godot/pull/99391)). +- Enable Deploy with Remote Debug by default in the editor ([GH-99428](https://github.com/godotengine/godot/pull/99428)). +- Add "Pack Project as ZIP..." to Project menu ([GH-99781](https://github.com/godotengine/godot/pull/99781)). +- Android: Delete `.idsig` on One Click Deploy ([GH-100103](https://github.com/godotengine/godot/pull/100103)). +- Allow using ICU data from export templates instead of editor embedded data ([GH-100104](https://github.com/godotengine/godot/pull/100104)). +- Use temp dirs instead of cache dirs for export ([GH-100150](https://github.com/godotengine/godot/pull/100150)). +- Android: Fix path to AAB in copyAndRenameBinary task ([GH-100756](https://github.com/godotengine/godot/pull/100756)). +- [Android Editor] Update handling of the `REQUEST_INSTALL_PACKAGES` permission ([GH-100815](https://github.com/godotengine/godot/pull/100815)). +- Ensure icon and splash paths on export ([GH-100920](https://github.com/godotengine/godot/pull/100920)). +- Respect system user setting for (un)installing APK ([GH-100938](https://github.com/godotengine/godot/pull/100938)). +- macOS: Allow running unpacked game files from .app bundle resources ([GH-101125](https://github.com/godotengine/godot/pull/101125)). +- Save instance and global uniform data in RenderingServerDummy ([GH-101210](https://github.com/godotengine/godot/pull/101210)). +- Windows: Update export script's task to work even on battery power ([GH-101257](https://github.com/godotengine/godot/pull/101257)). +- Fix ANGLE and D3D12 libraries inclusion in .zip export ([GH-101267](https://github.com/godotengine/godot/pull/101267)). +- Use implicit launch when running a Godot Android project from the editor ([GH-101498](https://github.com/godotengine/godot/pull/101498)). +- Update export preset options overrides before doing "Remote Debug" ([GH-101658](https://github.com/godotengine/godot/pull/101658)). +- iOS: Fix provisioning profile specifier / UUID validation ([GH-101706](https://github.com/godotengine/godot/pull/101706)). +- Android: Keep swipe-to-dismiss disabled by default ([GH-101996](https://github.com/godotengine/godot/pull/101996)). +- Update the app bundle's access and modified times to match the build time on macOS ([GH-102003](https://github.com/godotengine/godot/pull/102003)). +- Fix patch PCKs incorrectly marking imported resources for removal ([GH-102099](https://github.com/godotengine/godot/pull/102099)). +- Respect icon/splash screen import settings ([GH-102109](https://github.com/godotengine/godot/pull/102109)). +- Disable Metal and Vulkan renderers in simulator builds. Remove simulator support from editor/exporter ([GH-102179](https://github.com/godotengine/godot/pull/102179)). +- Export the `rendering/renderer/rendering_method.mobile` project setting to the AndroidManifest ([GH-102446](https://github.com/godotengine/godot/pull/102446)). +- Fix `modified_time` on Android ([GH-103080](https://github.com/godotengine/godot/pull/103080)). +- Fix cross-platform configuration of rendering driver settings (narrower approach) ([GH-103197](https://github.com/godotengine/godot/pull/103197)). #### GDExtension -- Allow registering "runtime classes" from GDExtension ([GH-82554](https://github.com/godotengine/godot/pull/82554)). -- Add an interface for loading extra documentation ([GH-83747](https://github.com/godotengine/godot/pull/83747)). -- Fix some DEFVALs to use the right type ([GH-84906](https://github.com/godotengine/godot/pull/84906)). -- Fix updating cached singletons when reloading GDScripts ([GH-85373](https://github.com/godotengine/godot/pull/85373)). -- CI: Add 4.2-stable.expected file for GDExtension compatibility checks ([GH-85748](https://github.com/godotengine/godot/pull/85748)). -- Fix overriding `CollisionObject3D::_mouse_enter()` and `_mouse_exit()` from GDExtension ([GH-85870](https://github.com/godotengine/godot/pull/85870)). -- Fix operator documentation in GDExtension API dump with docs ([GH-86087](https://github.com/godotengine/godot/pull/86087)). -- Replace `GDVIRTUAL_CALL` with `GDVIRTUAL_REQUIRED_CALL` where applicable ([GH-86169](https://github.com/godotengine/godot/pull/86169)). -- Correctly register editor-only module classes with the API ([GH-86209](https://github.com/godotengine/godot/pull/86209)). -- Fix `ScriptLanguageExtension::_find_function` argument names ([GH-86520](https://github.com/godotengine/godot/pull/86520)). -- Distinguish between dynamic library not found and can't be opened ([GH-86682](https://github.com/godotengine/godot/pull/86682)). -- Fix Android dynamic library loading ([GH-86792](https://github.com/godotengine/godot/pull/86792)). -- Editor: Add missing virtual bind to `EditorNode3DGizmo(Plugin)` ([GH-86881](https://github.com/godotengine/godot/pull/86881)). -- Fix virtual calls for GDExtension in `CollisionObject2D` ([GH-86908](https://github.com/godotengine/godot/pull/86908)). -- Add renaming of PDB files to avoid blocking them ([GH-87117](https://github.com/godotengine/godot/pull/87117)). -- Allow GDExtensions to register virtual methods and call them on scripts ([GH-87758](https://github.com/godotengine/godot/pull/87758)). -- Expose `NOTIFICATION_EXTENSION_RELOADED` to `ClassDB` ([GH-87863](https://github.com/godotengine/godot/pull/87863)). -- Add null check for GDExtension deinitialization ([GH-87938](https://github.com/godotengine/godot/pull/87938)). -- Fix `gdextension_compat_hashes.cpp` for double precision builds ([GH-88188](https://github.com/godotengine/godot/pull/88188)). -- Fix loading GDExtension dependencies on Android ([GH-88381](https://github.com/godotengine/godot/pull/88381)). -- Allow GDExtensions to set a `compatibility_maximum` ([GH-88417](https://github.com/godotengine/godot/pull/88417)). -- Unbind GDExtension methods that can't reasonably be used ([GH-88418](https://github.com/godotengine/godot/pull/88418)). -- Fix `-Wtype-limits` warning in `compatibility_maximum` patch check ([GH-88527](https://github.com/godotengine/godot/pull/88527)). -- Expose OpenXR hand tracker handles ([GH-88566](https://github.com/godotengine/godot/pull/88566)). -- Allow registering "runtime classes" in modules (not just GDExtension) ([GH-88683](https://github.com/godotengine/godot/pull/88683)). -- Use godot-cpp 4.2 for the "Godot CPP" CI workflow ([GH-88736](https://github.com/godotengine/godot/pull/88736)). -- Fix calling ancestor methods on runtime classes ([GH-88870](https://github.com/godotengine/godot/pull/88870)). -- Add extension support for argument count to `ScriptInstance` ([GH-89050](https://github.com/godotengine/godot/pull/89050)). -- Pass count when freeing method and property lists for script instances ([GH-89055](https://github.com/godotengine/godot/pull/89055)). -- TextServer: Use GDVIRTUAL_REQUIRED_CALL for required extensions methods, update extension docs ([GH-89207](https://github.com/godotengine/godot/pull/89207)). -- OpenXR: Allow GDExtensions to provide multiple, ordered composition layers ([GH-89460](https://github.com/godotengine/godot/pull/89460)). -- Print correct path when unable to find GDExtension library ([GH-89677](https://github.com/godotengine/godot/pull/89677)). -- Bind constants related to 6DOF joints ([GH-89851](https://github.com/godotengine/godot/pull/89851)). -- Fix `Resource::get_rid override` not working in GDExtension ([GH-90273](https://github.com/godotengine/godot/pull/90273)). -- XR: Fix binds for composition layer virtuals ([GH-90391](https://github.com/godotengine/godot/pull/90391)). -- Use `likely()` in `PtrToArg<T *>` when checking for null `Object *`s ([GH-90394](https://github.com/godotengine/godot/pull/90394)). -- Fix GDExtension hot reload for classes not created via `ClassDB::instantiate()` ([GH-90447](https://github.com/godotengine/godot/pull/90447)). -- Defer call to `set_break_language` ([GH-90776](https://github.com/godotengine/godot/pull/90776)). -- Compatibility: Add stub for VisualShaderNodeComment ([GH-90797](https://github.com/godotengine/godot/pull/90797)). -- Expose `ClassDB::class_get_property_default_value` method ([GH-90916](https://github.com/godotengine/godot/pull/90916)). -- Fix missing library path breaking hot reloading ([GH-90961](https://github.com/godotengine/godot/pull/90961)). -- Fix GDExtension documentation disappearing after hot-reload ([GH-91126](https://github.com/godotengine/godot/pull/91126)). -- Fix ptrcalls to static GDExtension methods ([GH-91153](https://github.com/godotengine/godot/pull/91153)). -- Provide `free_property_list_func` with length of array ([GH-91179](https://github.com/godotengine/godot/pull/91179)). -- Bind compatibility GDExtension methods removed in #88418 ([GH-91502](https://github.com/godotengine/godot/pull/91502)). -- Generate docs from GDExtensions using `--gdextension-docs` with `--doctool` ([GH-91518](https://github.com/godotengine/godot/pull/91518)). -- Add default implementation of `ScriptLanguageExtension::preferred_file_name_casing` ([GH-91570](https://github.com/godotengine/godot/pull/91570)). -- Prevent crash during shutdown as singletons are deleted ([GH-91806](https://github.com/godotengine/godot/pull/91806)). -- Release Engine after unregistering GDExtensions ([GH-92060](https://github.com/godotengine/godot/pull/92060)). -- Don't use `ERR_PRINT_ONCE()` for runtime class error because it will hide errors ([GH-92216](https://github.com/godotengine/godot/pull/92216)). -- Fix `ClassDB` not checking for editor classes properly ([GH-92345](https://github.com/godotengine/godot/pull/92345)). -- [TextServer, GDExtension] Fix building text servers as GDExtension, expose new/changed low-level methods to GDExtension API ([GH-92715](https://github.com/godotengine/godot/pull/92715)). -- Use GDExtension `to_string` in Node ([GH-92827](https://github.com/godotengine/godot/pull/92827)). -- Make `profiling_get_frame_data` call the correct GDVIRTUAL method ([GH-93281](https://github.com/godotengine/godot/pull/93281)). -- Object: Use const correct `GDExtensionConstStringNamePtr` ([GH-93288](https://github.com/godotengine/godot/pull/93288)). -- Fix setting base class properties on a runtime class ([GH-94089](https://github.com/godotengine/godot/pull/94089)). -- GDExtension docs: Advise bindings to use `uint64_t` for bitfields ([GH-94307](https://github.com/godotengine/godot/pull/94307)). -- Fix to restore `library_path` as absolute path ([GH-94373](https://github.com/godotengine/godot/pull/94373)). +- Expose `ClassDB.class_get_api_type()` method ([GH-90703](https://github.com/godotengine/godot/pull/90703)). +- Allow ClassDB to create a Object without postinitialization for GDExtension ([GH-91018](https://github.com/godotengine/godot/pull/91018)). +- Implement `GDExtensionLoader` concept ([GH-91166](https://github.com/godotengine/godot/pull/91166)). +- Tests: Ensure all default method arguments can be encoded ([GH-93134](https://github.com/godotengine/godot/pull/93134)). +- Mark virtual function as `is_required` in `extension_api.json` ([GH-93311](https://github.com/godotengine/godot/pull/93311)). +- Fix editor needs restart after adding GDExtensions ([GH-93972](https://github.com/godotengine/godot/pull/93972)). +- Fix reload of GDExtension libraries in framework package on macOS ([GH-95143](https://github.com/godotengine/godot/pull/95143)). +- Update GDExtension related CI after Godot 4.3-stable's release ([GH-95556](https://github.com/godotengine/godot/pull/95556)). +- Update expected API validation files for the releases of Godot 4.2 & 4.3 ([GH-95594](https://github.com/godotengine/godot/pull/95594)). +- Fix virtual binding for `ScriptLanguageExtension::_reload_scripts` ([GH-95730](https://github.com/godotengine/godot/pull/95730)). +- Bind Array and Packed*Array `get` and `set` functions ([GH-95930](https://github.com/godotengine/godot/pull/95930)). +- Temporarily disable "validation errors no longer occur" warnings ([GH-95962](https://github.com/godotengine/godot/pull/95962)). +- Windows: Call `AddDllDirectory()` with an absolute path ([GH-96192](https://github.com/godotengine/godot/pull/96192)). +- Fix loading GDExtensions in exported games ([GH-96287](https://github.com/godotengine/godot/pull/96287)). +- Show warning on missing PDB file, rather than error ([GH-96383](https://github.com/godotengine/godot/pull/96383)). +- Fix `bool` type appearing in GDExtension header ([GH-96406](https://github.com/godotengine/godot/pull/96406)). +- CI: Add C compile step for `gdextension_interface.h` ([GH-96408](https://github.com/godotengine/godot/pull/96408)). +- Allow class names to be unicode ([GH-96501](https://github.com/godotengine/godot/pull/96501)). +- Remove `get_rid_func` from `GDExtensionClassCreationInfo4` ([GH-96787](https://github.com/godotengine/godot/pull/96787)). +- Allow directly getting `ObjectID` from `Variant` ([GH-97119](https://github.com/godotengine/godot/pull/97119)). +- CI: Improve `godot-cpp` actions ([GH-97166](https://github.com/godotengine/godot/pull/97166)). +- Fix GDExtension classes inheriting from Resource not using icons in FileSystem ([GH-97421](https://github.com/godotengine/godot/pull/97421)). +- Use loader to check if the library exists ([GH-97532](https://github.com/godotengine/godot/pull/97532)). +- CI: Change `godot-cpp-test` from workflow to action ([GH-97742](https://github.com/godotengine/godot/pull/97742)). +- Fix loss of gdextension on editor startup ([GH-98041](https://github.com/godotengine/godot/pull/98041)). +- OpenXR: Allow GDExtensions to implement `_on_pre_draw_viewport()` and `_on_post_draw_viewport()` ([GH-98831](https://github.com/godotengine/godot/pull/98831)). +- Register Engine, OS, ProjectSettings, and Time singletons in time for `INITIZATION_LEVEL_CORE` ([GH-98862](https://github.com/godotengine/godot/pull/98862)). +- Support extension icons in ScriptCreateDialog ([GH-98914](https://github.com/godotengine/godot/pull/98914)). +- Add GDExtension `variant_get_ptr_internal_getter`, facilitating `VariantGetInternalPtr`-like behavior in GDExtension ([GH-99201](https://github.com/godotengine/godot/pull/99201)). +- Fix method binds not saying if they are varargs ([GH-99403](https://github.com/godotengine/godot/pull/99403)). +- Fix `Variant` modulo operation ([GH-99559](https://github.com/godotengine/godot/pull/99559)). +- CompositorEffect: should use `GDVIRTUAL_CALL()` so it works with GDExtension ([GH-99981](https://github.com/godotengine/godot/pull/99981)). +- Add method to set the class icon ([GH-100193](https://github.com/godotengine/godot/pull/100193)). +- Fix collision shape debug color breaking GDExtension ([GH-100317](https://github.com/godotengine/godot/pull/100317)). +- Fix `StreamPeerExtension::put_partial_data()` to call `_put_partial_data()` ([GH-100318](https://github.com/godotengine/godot/pull/100318)). +- Rename `GDExtensionCompatHashes` to make it clear it's only for exceptional situations ([GH-100622](https://github.com/godotengine/godot/pull/100622)). +- Add compatibility system for virtual methods ([GH-100674](https://github.com/godotengine/godot/pull/100674)). +- Use `MethodInfo::get_compatibility_hash()` to generate the hash for `MethodBind::get_hash()` and other GDExtension hash clean up ([GH-101449](https://github.com/godotengine/godot/pull/101449)). +- Expose OpenXR action handles to GDExtension ([GH-101503](https://github.com/godotengine/godot/pull/101503)). +- Fix memory leak when `ClassDB::bind_method_custom()` fails ([GH-102131](https://github.com/godotengine/godot/pull/102131)). +- Bind new core `METHOD_FLAG_VIRTUAL_REQUIRED` bitfield ([GH-103302](https://github.com/godotengine/godot/pull/103302)). #### GDScript -- Add editor settings for autocompletion with NodePath and StringName ([GH-66481](https://github.com/godotengine/godot/pull/66481)). -- Add `@export_custom` annotation ([GH-72912](https://github.com/godotengine/godot/pull/72912)). -- Improve autocompletion with `get_node` ([GH-79386](https://github.com/godotengine/godot/pull/79386)). -- Update completion menu even if no options exist ([GH-79387](https://github.com/godotengine/godot/pull/79387)). -- Add module description in markdown ([GH-81345](https://github.com/godotengine/godot/pull/81345)). -- Documentation: Add support for deprecated/experimental messages ([GH-81458](https://github.com/godotengine/godot/pull/81458)). -- Include lambda dependencies ([GH-81629](https://github.com/godotengine/godot/pull/81629)). -- Change GDScriptDataType `container_element_type` to vector container ([GH-81662](https://github.com/godotengine/godot/pull/81662)). -- Add `@export_storage` annotation ([GH-82122](https://github.com/godotengine/godot/pull/82122)). -- Core: Allow methods of built-in `Variant` types to be used as Callables ([GH-82264](https://github.com/godotengine/godot/pull/82264)). -- Improve error messages for invalid indexing ([GH-82639](https://github.com/godotengine/godot/pull/82639)). -- Allow `@export`ed Arrays to set property hints for their elements ([GH-82952](https://github.com/godotengine/godot/pull/82952)). -- Fix `@warning_ignore` annotation issues ([GH-83037](https://github.com/godotengine/godot/pull/83037)). -- Allow empty parentheses for property getter declaration ([GH-83120](https://github.com/godotengine/godot/pull/83120)). -- Highlight code region comments ([GH-83220](https://github.com/godotengine/godot/pull/83220)). -- Fix `UNSAFE_CAST` warning ([GH-84043](https://github.com/godotengine/godot/pull/84043)). -- Fix crash when extending taken-over named class ([GH-84148](https://github.com/godotengine/godot/pull/84148)). -- Autocompletion: Mark datatype as constant for constant arrays ([GH-84492](https://github.com/godotengine/godot/pull/84492)). -- Fix autocompletion for enum members in the core classes ([GH-84532](https://github.com/godotengine/godot/pull/84532)). -- Fix autocompletion after DOLLAR token ([GH-84706](https://github.com/godotengine/godot/pull/84706)). -- Fix DAP breakpoints being cleared on closed scripts ([GH-84898](https://github.com/godotengine/godot/pull/84898)). -- Add unit test runner for autocompletion ([GH-85178](https://github.com/godotengine/godot/pull/85178)). -- Filter groups and categories from autocompletion ([GH-85196](https://github.com/godotengine/godot/pull/85196)). -- Handle global classes when resolving type from `PropertyInfo` ([GH-85215](https://github.com/godotengine/godot/pull/85215)). -- Prefer identifiers annotated type if assigned type is incompatible to it ([GH-85224](https://github.com/godotengine/godot/pull/85224)). -- Handle global classes when resolving property location ([GH-85239](https://github.com/godotengine/godot/pull/85239)). -- Generate `arghint` for script types ([GH-85382](https://github.com/godotengine/godot/pull/85382)). -- Suggest scene unique nodes in `get_node` autocompletion ([GH-85384](https://github.com/godotengine/godot/pull/85384)). -- Make annotations register statically in parser ([GH-85487](https://github.com/godotengine/godot/pull/85487)). -- Move "Expected indented block" error message's line number back to where the error is ([GH-85488](https://github.com/godotengine/godot/pull/85488)). -- Stop caching packed scenes in GDScript cache (on preload) ([GH-85501](https://github.com/godotengine/godot/pull/85501)). -- Speed up `GDScript::get_must_clear_dependencies()` ([GH-85603](https://github.com/godotengine/godot/pull/85603)). -- Make GDScriptAnalyzer aware of properties from other languages ([GH-85703](https://github.com/godotengine/godot/pull/85703)). -- Adjust `STATIC_CALLED_ON_INSTANCE` warning to not force native type ([GH-85918](https://github.com/godotengine/godot/pull/85918)). -- Fix accessing static function as `Callable` in static context ([GH-86088](https://github.com/godotengine/godot/pull/86088)). -- Fix POT generator skips some nodes ([GH-86091](https://github.com/godotengine/godot/pull/86091)). -- Fix regression when autocompleting subscript on get node ([GH-86111](https://github.com/godotengine/godot/pull/86111)). -- Fix type highlighting ([GH-86176](https://github.com/godotengine/godot/pull/86176)). -- Fix the autocomplete function for the `self` keyword ([GH-86341](https://github.com/godotengine/godot/pull/86341)). -- Fix POT generator skips some nodes (part 2) ([GH-86471](https://github.com/godotengine/godot/pull/86471)). -- Fix symbol lookup in index subscript ([GH-86554](https://github.com/godotengine/godot/pull/86554)). -- Lambda hotswap fixes ([GH-86569](https://github.com/godotengine/godot/pull/86569)). -- Improve sorting of enum autocompletion ([GH-86667](https://github.com/godotengine/godot/pull/86667)). -- Hot-reload changed scripts only ([GH-86676](https://github.com/godotengine/godot/pull/86676)). -- Add `StringName` support to `@GDScript.len` ([GH-86704](https://github.com/godotengine/godot/pull/86704)). -- Allow utility functions to be used as `Callable` ([GH-86823](https://github.com/godotengine/godot/pull/86823)). -- Allow specifying a scene in completion tests ([GH-86961](https://github.com/godotengine/godot/pull/86961)). -- Add tests for `get_node` autocompletion ([GH-86973](https://github.com/godotengine/godot/pull/86973)). -- Improve error message when a GDScript instance fails to be constructed ([GH-86999](https://github.com/godotengine/godot/pull/86999)). -- Simplify script paths to ensure proper resource path checks ([GH-87124](https://github.com/godotengine/godot/pull/87124)). -- Handle GDScript in `_type_from_variant` for autocompletion ([GH-87278](https://github.com/godotengine/godot/pull/87278)). -- Allow `free()` to be used as Callable ([GH-87294](https://github.com/godotengine/godot/pull/87294)). -- Better hide internal properties from users ([GH-87381](https://github.com/godotengine/godot/pull/87381)). -- Use autoload singleton name in `GDScriptDocGen` ([GH-87421](https://github.com/godotengine/godot/pull/87421)). -- Make `GDScriptUtilityCallable` return call error when method is invalid ([GH-87783](https://github.com/godotengine/godot/pull/87783)). -- Add `is not` operator ([GH-87939](https://github.com/godotengine/godot/pull/87939)). -- Prevent running `String` number functions on invalid literal ([GH-87941](https://github.com/godotengine/godot/pull/87941)). -- Set `has_type` false if it is `BUILTIN` but `Variant::NIL` ([GH-88020](https://github.com/godotengine/godot/pull/88020)). -- Enable Add Type Hints editor setting by default ([GH-88026](https://github.com/godotengine/godot/pull/88026)). -- Fix NodePath autocompletion to ensure paths are quoted when required ([GH-88071](https://github.com/godotengine/godot/pull/88071)). -- Add fallback argument hints for default values ([GH-88211](https://github.com/godotengine/godot/pull/88211)). -- Fix type highlighting after whitespace ([GH-88876](https://github.com/godotengine/godot/pull/88876)). -- Clean up some unused code ([GH-88899](https://github.com/godotengine/godot/pull/88899)). -- Core: Add `Callable.create` static method for `Variant` callables ([GH-88948](https://github.com/godotengine/godot/pull/88948)). -- Fix some test file paths ([GH-89151](https://github.com/godotengine/godot/pull/89151)). -- Fix use after free in `GDScriptLanguage::debug_get_globals` ([GH-89274](https://github.com/godotengine/godot/pull/89274)). -- Allow LSP to process multiple messages per poll ([GH-89284](https://github.com/godotengine/godot/pull/89284)). -- Fix enum autocompletion for core classes ([GH-89382](https://github.com/godotengine/godot/pull/89382)). -- Update `@GDScript` documentation ([GH-89484](https://github.com/godotengine/godot/pull/89484)). -- Fix missing gutter icon for inner class method overrides ([GH-89545](https://github.com/godotengine/godot/pull/89545)). -- Fix object iterator opcodes ([GH-89639](https://github.com/godotengine/godot/pull/89639)). -- Correctly report invalid read-only access ([GH-89648](https://github.com/godotengine/godot/pull/89648)). -- Fix `for` expression is highlighted as type ([GH-89659](https://github.com/godotengine/godot/pull/89659)). -- Improve DocGen for non-constant expressions ([GH-89738](https://github.com/godotengine/godot/pull/89738)). -- Completion Tests: Add script to owner ([GH-89884](https://github.com/godotengine/godot/pull/89884)). -- Fix uninitialized local variables not being reset ([GH-89990](https://github.com/godotengine/godot/pull/89990)). -- Fix errors when renaming/moving/deleting global scripts ([GH-90186](https://github.com/godotengine/godot/pull/90186)). -- Don't pass `self` when calling a static function from a non-static context ([GH-90223](https://github.com/godotengine/godot/pull/90223)). -- Fix multiline array/dictionary match statements ([GH-90373](https://github.com/godotengine/godot/pull/90373)). -- Add tests for signal await with parameters ([GH-90398](https://github.com/godotengine/godot/pull/90398)). -- Fix highlighting escapes in multiline raw strings ([GH-90419](https://github.com/godotengine/godot/pull/90419)). -- Don't warn on unassigned for builtin-typed variables ([GH-90442](https://github.com/godotengine/godot/pull/90442)). -- Infer type with string format operator ([GH-90448](https://github.com/godotengine/godot/pull/90448)). -- Register the export info correctly when a script is used as the variable type for Node ([GH-90487](https://github.com/godotengine/godot/pull/90487)). -- Resolve types from autoload scenes ([GH-90498](https://github.com/godotengine/godot/pull/90498)). -- Assume constructor to be accessible from class ([GH-90552](https://github.com/godotengine/godot/pull/90552)). -- Allow casting enum to int ([GH-90580](https://github.com/godotengine/godot/pull/90580)). -- Fix out of date errors in depended scripts ([GH-90601](https://github.com/godotengine/godot/pull/90601)). -- Fix some export annotation issues ([GH-90716](https://github.com/godotengine/godot/pull/90716)). -- Warn when enum variable has no default ([GH-90756](https://github.com/godotengine/godot/pull/90756)). -- Suppress unused constant warning with underscore ([GH-90794](https://github.com/godotengine/godot/pull/90794)). -- LSP: Have `GDScriptWorkspace::list_script_files` respect `.gdignore` ([GH-90949](https://github.com/godotengine/godot/pull/90949)). -- Fix test `reset_uninit_local_vars.gd` failure ([GH-91120](https://github.com/godotengine/godot/pull/91120)). -- Perform validated calls with static methods ([GH-91192](https://github.com/godotengine/godot/pull/91192)). -- Call implicit ready on base script first ([GH-91364](https://github.com/godotengine/godot/pull/91364)). -- Fix access non-static members in static context ([GH-91412](https://github.com/godotengine/godot/pull/91412)). -- Initialize static variables with defaults in-editor ([GH-91472](https://github.com/godotengine/godot/pull/91472)). -- Autocompletion: Analyze CLASS types as they are encountered ([GH-91653](https://github.com/godotengine/godot/pull/91653)). -- Show custom icons in autocompletion suggestions ([GH-91923](https://github.com/godotengine/godot/pull/91923)). -- Add support for `atr` and `atr_n` to POT generator ([GH-91951](https://github.com/godotengine/godot/pull/91951)). -- Fix `STANDALONE_EXPRESSION` warning for `preload()` ([GH-92027](https://github.com/godotengine/godot/pull/92027)). -- Fix segfault on invalid script ([GH-92035](https://github.com/godotengine/godot/pull/92035)). -- Fix broken built-in script reloading ([GH-92177](https://github.com/godotengine/godot/pull/92177)). -- Fix lambdas capturing non-local variables ([GH-92241](https://github.com/godotengine/godot/pull/92241)). -- Fix completion for `new` arguments ([GH-92251](https://github.com/godotengine/godot/pull/92251)). -- Fix synchronization of global class name ([GH-92303](https://github.com/godotengine/godot/pull/92303)). -- DAP: Add `--dap-port` as a command line argument ([GH-92336](https://github.com/godotengine/godot/pull/92336)). -- [GDScript LSP] Fix `show_native_symbol_in_editor` ([GH-92386](https://github.com/godotengine/godot/pull/92386)). -- Fix subscript resolution on constant non-metatype GDScript base ([GH-92544](https://github.com/godotengine/godot/pull/92544)). -- Do not produce `INFERRED_DECLARATION` on type import ([GH-92558](https://github.com/godotengine/godot/pull/92558)). -- Partially allow member lookup on invalid scripts ([GH-92609](https://github.com/godotengine/godot/pull/92609)). -- Invalidate cached parser chain when reloading ([GH-92616](https://github.com/godotengine/godot/pull/92616)). -- Add more autocompletion tests ([GH-92688](https://github.com/godotengine/godot/pull/92688)). -- Editor: Hide GDScript internal functions from method selectors ([GH-92802](https://github.com/godotengine/godot/pull/92802)). -- Add coloring for completion of Color components ([GH-92874](https://github.com/godotengine/godot/pull/92874)). -- Fix goto definition for `new` method ([GH-92885](https://github.com/godotengine/godot/pull/92885)). -- Avoid deadlock possibility in multi-threaded load ([GH-93032](https://github.com/godotengine/godot/pull/93032)). -- Autocompletion: Add support for string name option in more places ([GH-93057](https://github.com/godotengine/godot/pull/93057)). -- Fix mismatched external parser with binary exports ([GH-93166](https://github.com/godotengine/godot/pull/93166)). -- Enhance handling of cyclic dependencies ([GH-93346](https://github.com/godotengine/godot/pull/93346)). -- Fix non-global class export ([GH-93384](https://github.com/godotengine/godot/pull/93384)). -- Fix symbol lookup for native enums ([GH-93566](https://github.com/godotengine/godot/pull/93566)). -- Fix editor crash when invalid global class script path ([GH-93575](https://github.com/godotengine/godot/pull/93575)). -- Add `CONFUSABLE_CAPTURE_REASSIGNMENT` warning ([GH-93691](https://github.com/godotengine/godot/pull/93691)). -- Fix false positive `CONFUSABLE_CAPTURE_REASSIGNMENT` warnings ([GH-93699](https://github.com/godotengine/godot/pull/93699)). -- Autocompletion: Don't use `in` operator to decide over variant lookup ([GH-93815](https://github.com/godotengine/godot/pull/93815)). -- Fix GDScript analyzer error when instantiating EditorPlugins ([GH-93942](https://github.com/godotengine/godot/pull/93942)). -- Fix `get_argument_count` for lambda `Callable`s ([GH-93964](https://github.com/godotengine/godot/pull/93964)). -- Fix implicit cast to typed array when passing parameter ([GH-94025](https://github.com/godotengine/godot/pull/94025)). -- Fix `get_method` for lambda self `Callable`s ([GH-94076](https://github.com/godotengine/godot/pull/94076)). -- Fix "Mismatched external parser" for autoloads ([GH-94131](https://github.com/godotengine/godot/pull/94131)). -- Call setter on simple setter chain without getter ([GH-94138](https://github.com/godotengine/godot/pull/94138)). -- Make errors on `RefCounted.free()` more accurate ([GH-94238](https://github.com/godotengine/godot/pull/94238)). -- Restore support for `Token::UNDERSCORE` in identifiers ([GH-94327](https://github.com/godotengine/godot/pull/94327)). -- Autocompletion: Register depended parsers with the main parser ([GH-94424](https://github.com/godotengine/godot/pull/94424)). -- Speed up `GDScriptLanguage::finish` ([GH-94505](https://github.com/godotengine/godot/pull/94505)). -- Fix false positive cases of `ENUM_VARIABLE_WITHOUT_DEFAULT` ([GH-94635](https://github.com/godotengine/godot/pull/94635)). -- Fix incorrect default values in `_make_arguments_hint()` ([GH-94664](https://github.com/godotengine/godot/pull/94664)). -- Fix incorrect setter call for reference types ([GH-94674](https://github.com/godotengine/godot/pull/94674)). -- GDScriptTestRunner: Fix compiler error output ([GH-94676](https://github.com/godotengine/godot/pull/94676)). -- GDScriptCache: Clear abandoned parser refs ([GH-94678](https://github.com/godotengine/godot/pull/94678)). -- Fix locals clearing after exiting `while` block ([GH-94730](https://github.com/godotengine/godot/pull/94730)). -- Fix common mismatched external parser errors (second try) ([GH-94871](https://github.com/godotengine/godot/pull/94871)). -- Fix unnecessary calls to `remove_parser` ([GH-95115](https://github.com/godotengine/godot/pull/95115)). -- Fix resolve class inheritance after file rename ([GH-95330](https://github.com/godotengine/godot/pull/95330)). +- StringName Dictionary keys ([GH-70096](https://github.com/godotengine/godot/pull/70096)). +- Add `@warning_ignore_start` and `@warning_ignore_restore` annotations ([GH-76020](https://github.com/godotengine/godot/pull/76020)). +- Add warning if non-`@tool` class extends `@tool` class ([GH-78178](https://github.com/godotengine/godot/pull/78178)). +- Add disassembling implicit and lambda functions ([GH-78489](https://github.com/godotengine/godot/pull/78489)). +- Implement typed dictionaries ([GH-78656](https://github.com/godotengine/godot/pull/78656)). +- Autocompletion: Improve autocompletion for indices ([GH-79378](https://github.com/godotengine/godot/pull/79378)). +- Try to guess method return type even if subscript base has no value ([GH-84264](https://github.com/godotengine/godot/pull/84264)). +- Rework `GDScriptUtilityFunctions` macros ([GH-84368](https://github.com/godotengine/godot/pull/84368)). +- Do not produce `UNUSED_SIGNAL` warning for common implicit uses ([GH-89675](https://github.com/godotengine/godot/pull/89675)). +- Make Goto line a Popup and column input ([GH-91388](https://github.com/godotengine/godot/pull/91388)). +- Autocompletion: Keep `get_node` values which are compatible with type hint ([GH-92263](https://github.com/godotengine/godot/pull/92263)). +- Remove `RENAMED_IN_GODOT_4_HINT` from `GDScriptWarning::Code` enum ([GH-92526](https://github.com/godotengine/godot/pull/92526)). +- Add error messages to some compilation errors ([GH-93301](https://github.com/godotengine/godot/pull/93301)). +- Autocompletion: Rework argument options string literal completion ([GH-94082](https://github.com/godotengine/godot/pull/94082)). +- Add icon for local variable completion options ([GH-94196](https://github.com/godotengine/godot/pull/94196)). +- Fix message when calling non-tool function in tool mode ([GH-94511](https://github.com/godotengine/godot/pull/94511)). +- GDScriptParser: Avoid `const_cast` of `AnnotationNode` ([GH-94888](https://github.com/godotengine/godot/pull/94888)). +- Fix crash when division by zero/modulo by zero happen on vectors ([GH-95172](https://github.com/godotengine/godot/pull/95172)). +- Fix lookup symbol for enum members to search a correct code definition ([GH-95200](https://github.com/godotengine/godot/pull/95200)). +- Only include profiling variables when DEBUG is enabled ([GH-95408](https://github.com/godotengine/godot/pull/95408)). +- Fix Godot not quitting with `--doctool --gdscript-docs` ([GH-95656](https://github.com/godotengine/godot/pull/95656)). +- Expose GDScript syntax highlighter to editor plugins ([GH-95764](https://github.com/godotengine/godot/pull/95764)). +- Update script documentation removed files on startup ([GH-95965](https://github.com/godotengine/godot/pull/95965)). +- Autocompletion: Enable string literal completion in subscripts ([GH-96160](https://github.com/godotengine/godot/pull/96160)). +- Replace `assert()` with `Utils.check()` in tests ([GH-96229](https://github.com/godotengine/godot/pull/96229)). +- Fix missing `GDScriptParser` reference on completion context ([GH-96243](https://github.com/godotengine/godot/pull/96243)). +- Add `@export_tool_button` annotation for easily creating inspector buttons ([GH-96290](https://github.com/godotengine/godot/pull/96290)). +- Autocompletion: Reintroduce enum options on assignment ([GH-96326](https://github.com/godotengine/godot/pull/96326)). +- Fix small mistake in script valid checks ([GH-96330](https://github.com/godotengine/godot/pull/96330)). +- Remove unneeded quotes from autocomplete % nodes ([GH-96666](https://github.com/godotengine/godot/pull/96666)). +- LSP: Don't use smart resolve for completion ([GH-96684](https://github.com/godotengine/godot/pull/96684)). +- Autocompletion: Add arghint for annotations ([GH-96693](https://github.com/godotengine/godot/pull/96693)). +- LSP: Omit some values based on specification version 3.17 ([GH-96725](https://github.com/godotengine/godot/pull/96725)). +- Core: Fix `operator[]` for typed dictionaries ([GH-96797](https://github.com/godotengine/godot/pull/96797)). +- Autocompletion: Don't use owner for inner classes ([GH-96927](https://github.com/godotengine/godot/pull/96927)). +- Style: Consolidate & migrate GDScript `.editorconfig` ([GH-96965](https://github.com/godotengine/godot/pull/96965)). +- Speed up lambda capture handling ([GH-97087](https://github.com/godotengine/godot/pull/97087)). +- Add support for `print` command in local (command line `-d`) debugger ([GH-97218](https://github.com/godotengine/godot/pull/97218)). +- GDScriptNativeClass: Allow getting static function as callable ([GH-97374](https://github.com/godotengine/godot/pull/97374)). +- Cancel code completion and code hint upon go-to line (bookmark, breakpoint, etc.) ([GH-97674](https://github.com/godotengine/godot/pull/97674)). +- Add missing static default initialization for typed dictionaries ([GH-98085](https://github.com/godotengine/godot/pull/98085)). +- Fix annotation parsing adding new annotation entries ([GH-98146](https://github.com/godotengine/godot/pull/98146)). +- Don't highlight unexposed classes ([GH-98169](https://github.com/godotengine/godot/pull/98169)). +- Avoid unnecessary `Dictionary` conversions in `GDScriptInstance::validate_property` ([GH-98301](https://github.com/godotengine/godot/pull/98301)). +- Add some comments to `#endif's` where it helps readability ([GH-98356](https://github.com/godotengine/godot/pull/98356)). +- Fix cached parser error when using typed Dictionaries ([GH-98400](https://github.com/godotengine/godot/pull/98400)). +- Adjust `make_rst.py` for GDScript documentation ([GH-98533](https://github.com/godotengine/godot/pull/98533)). +- Fix analyzer pushing `SHADOWED_VARIABLE` warning for members shadowed in subclass ([GH-98873](https://github.com/godotengine/godot/pull/98873)). +- Improve GDScript autocompletion for methods ([GH-99102](https://github.com/godotengine/godot/pull/99102)). +- Deprecate `inst_to_dict()` and `dict_to_inst()` functions ([GH-99121](https://github.com/godotengine/godot/pull/99121)). +- LSP: Fix spec violations that break the VSCode outline ([GH-99295](https://github.com/godotengine/godot/pull/99295)). +- Core: Fix built-in enum constant bindings ([GH-99424](https://github.com/godotengine/godot/pull/99424)). +- Support tracking multiple analyzer and runtime errors in tests ([GH-99490](https://github.com/godotengine/godot/pull/99490)). +- Fix language server causing random crashes when `use_threads` is enabled ([GH-99861](https://github.com/godotengine/godot/pull/99861)). +- Improve misleading `Unexpected "x" in class body.` GDScript parser error ([GH-99887](https://github.com/godotengine/godot/pull/99887)). +- Optimize Callable's stringify text ([GH-100033](https://github.com/godotengine/godot/pull/100033)). +- Tweak unknown annotation GDScript error for `@deprecated`/`@experimental`/`@tutorial` ([GH-100174](https://github.com/godotengine/godot/pull/100174)). +- Improve `&&` and `&` syntax highlighting by altering `StringName` highlighting ([GH-100575](https://github.com/godotengine/godot/pull/100575)). +- Fix `Packed*Array` `OP_IN` using low precision int and float as input ([GH-100582](https://github.com/godotengine/godot/pull/100582)). +- Remove unused variable in `GDScriptLanguage` ([GH-100610](https://github.com/godotengine/godot/pull/100610)). +- JSONRPC: Convert ids to int if they are int by value ([GH-100950](https://github.com/godotengine/godot/pull/100950)). +- Editor: Fix `Ctrl+Click` on enum values does nothing ([GH-101127](https://github.com/godotengine/godot/pull/101127)). +- Ensure path for shallow scripts ([GH-101442](https://github.com/godotengine/godot/pull/101442)). +- Fix GDScript editor crash on invalid `tween_property` arguments ([GH-101632](https://github.com/godotengine/godot/pull/101632)). +- Display correct symbol in warning when unique name is used without @onready annotation ([GH-102389](https://github.com/godotengine/godot/pull/102389)). +- Fix uppercase B and X parsing in the integer literals ([GH-102400](https://github.com/godotengine/godot/pull/102400)). +- Fix enum value lookup jump ([GH-102401](https://github.com/godotengine/godot/pull/102401)). +- Fix Plugin Scripts load twice on startup ([GH-102535](https://github.com/godotengine/godot/pull/102535)). +- Fix script class icons not inheriting parent ([GH-102572](https://github.com/godotengine/godot/pull/102572)). +- Autocompletion: Account for invalid annotations when making arghint ([GH-102698](https://github.com/godotengine/godot/pull/102698)). +- Autocompletion: Override context for preload ([GH-102826](https://github.com/godotengine/godot/pull/102826)). +- Add bound checks to `Array`/`Packed*Array` variant call `get` and `set` methods ([GH-103362](https://github.com/godotengine/godot/pull/103362)). #### GUI -- Use black for font outlines by default instead of white ([GH-54641](https://github.com/godotengine/godot/pull/54641)). -- Make the drawing logic clearer in `Button` ([GH-64351](https://github.com/godotengine/godot/pull/64351)). -- Toggle control expand flag directly via top bar ([GH-65258](https://github.com/godotengine/godot/pull/65258)). -- Add FlowContainer wrap options for center alignment ([GH-72323](https://github.com/godotengine/godot/pull/72323)). -- Show selected end of line in TextEdit ([GH-72341](https://github.com/godotengine/godot/pull/72341)). -- Add option to reverse FlowContainer fill direction (HFlow bottom-to-top, VFlow right-to-left) ([GH-74195](https://github.com/godotengine/godot/pull/74195)). -- DisplayServer: Use screen "usable rect" instead of full rect to calculate initial window rect ([GH-75489](https://github.com/godotengine/godot/pull/75489)). -- Make editor inspector follow focus ([GH-78960](https://github.com/godotengine/godot/pull/78960)). -- Fix read-only EditorSpinSlider display ([GH-80544](https://github.com/godotengine/godot/pull/80544)). -- Trigger zoom from pan gestures when pressing ctrl ([GH-80994](https://github.com/godotengine/godot/pull/80994)). -- Add Ctrl + L / Cmd + Shift + G shortcut to focus path bar in FileDialog ([GH-81177](https://github.com/godotengine/godot/pull/81177)). -- Enable scrolling of output with UI scale changes ([GH-82079](https://github.com/godotengine/godot/pull/82079)). -- Option to put TabContainer tabs at bottom ([GH-82468](https://github.com/godotengine/godot/pull/82468)). -- Fix opening docs writing extra navigation history ([GH-82498](https://github.com/godotengine/godot/pull/82498)). -- [Text Overrun] Add option to set custom ellipsis character, add support for system font fallback ([GH-82661](https://github.com/godotengine/godot/pull/82661)). -- Add `set_slot_custom_icon` and `get_slot_custom_icon` to GraphNode ([GH-82669](https://github.com/godotengine/godot/pull/82669)). -- PopupMenu: Handle `physical_keycode` and `key_label` of shortcuts ([GH-82897](https://github.com/godotengine/godot/pull/82897)). -- PopupMenu: Handle shortcuts with "global" flag directly ([GH-82900](https://github.com/godotengine/godot/pull/82900)). -- Support updating tooltip immediately after editor description change ([GH-82916](https://github.com/godotengine/godot/pull/82916)). -- Show revert button for MeshInstance3D blendshape values ([GH-82984](https://github.com/godotengine/godot/pull/82984)). -- Add automatic translation of items to ItemList ([GH-83577](https://github.com/godotengine/godot/pull/83577)). -- Make ProgressBar reflect the real value in the percent label when "allow greater" is checked ([GH-83623](https://github.com/godotengine/godot/pull/83623)). -- Add dotted grid to GraphEdit ([GH-83785](https://github.com/godotengine/godot/pull/83785)). -- Fix dock visibility issues ([GH-84122](https://github.com/godotengine/godot/pull/84122)). -- Label: Add get_character_bounds method to get bounding rectangles of the characters ([GH-84185](https://github.com/godotengine/godot/pull/84185)). -- RichTextLabel: Fix `remove_paragraph` crash by popping current ([GH-84312](https://github.com/godotengine/godot/pull/84312)). -- Allow additional hexadecimal color codes in ColorPicker ([GH-84442](https://github.com/godotengine/godot/pull/84442)). -- Cache allowed types in EditorResourcePicker ([GH-84443](https://github.com/godotengine/godot/pull/84443)). -- Don't check resource type assigned in property ([GH-84446](https://github.com/godotengine/godot/pull/84446)). -- Display a revert icon on ColorPicker's old sample ([GH-84527](https://github.com/godotengine/godot/pull/84527)). -- Fetch override list from ThemeDB ([GH-84760](https://github.com/godotengine/godot/pull/84760)). -- Fetch theme editor items from ThemeDB ([GH-84763](https://github.com/godotengine/godot/pull/84763)). -- VideoPlayer: Fix reloading translation remapped stream ([GH-84794](https://github.com/godotengine/godot/pull/84794)). -- Implement disabled state for Checkbox in Tree ([GH-84845](https://github.com/godotengine/godot/pull/84845)). -- Hide ineffective TextureProgressBar properties in the editor ([GH-84940](https://github.com/godotengine/godot/pull/84940)). -- Use disabled icons for CheckBox in DefaultTheme ([GH-84946](https://github.com/godotengine/godot/pull/84946)). -- Fix conflicted indeterminate state in asset importer ([GH-84953](https://github.com/godotengine/godot/pull/84953)). -- Editor: Add option to override editor UI layout direction ([GH-85000](https://github.com/godotengine/godot/pull/85000)). -- Fetch argument options from ThemeDB ([GH-85015](https://github.com/godotengine/godot/pull/85015)). -- Highlight error lines in minimap ([GH-85054](https://github.com/godotengine/godot/pull/85054)). -- Restored Control properties when you undo a parenting of a Control to a Container ([GH-85181](https://github.com/godotengine/godot/pull/85181)). -- Fix updating delimiter cache of `CodeEdit` when typing on the first line ([GH-85191](https://github.com/godotengine/godot/pull/85191)). -- Make sure `Window`'s title is respected before we compute the size ([GH-85312](https://github.com/godotengine/godot/pull/85312)). -- Fix crash on hiding grandparent Control on mouse exit ([GH-85313](https://github.com/godotengine/godot/pull/85313)). -- Fixes for undo in text editor grouping unrelated actions ([GH-85325](https://github.com/godotengine/godot/pull/85325)). -- RTL: Fix CharFX character offset calculation ([GH-85363](https://github.com/godotengine/godot/pull/85363)). -- Add methods to add submenus without using names ([GH-85477](https://github.com/godotengine/godot/pull/85477)). -- Limit window size updates on title change ([GH-85542](https://github.com/godotengine/godot/pull/85542)). -- Ensure slider grabs focus only when it can ([GH-85652](https://github.com/godotengine/godot/pull/85652)). -- Fix unnecessarily quantizing current color in color picker ([GH-85749](https://github.com/godotengine/godot/pull/85749)). -- Fix size and visuals of the `InputEventConfigurationDialog` ([GH-85790](https://github.com/godotengine/godot/pull/85790)). -- Allow dragging selection when selecting whole words in `LineEdit` ([GH-85801](https://github.com/godotengine/godot/pull/85801)). -- Limit window size updates on title translation change ([GH-85828](https://github.com/godotengine/godot/pull/85828)). -- Correctly enforce minimum window size in editor ([GH-85887](https://github.com/godotengine/godot/pull/85887)). -- Windows: Set application user model ID to prevent editor / running project and different versions of editor taskbar icon stacking ([GH-85905](https://github.com/godotengine/godot/pull/85905)). -- TextServer: Implement soft hyphen handling ([GH-85940](https://github.com/godotengine/godot/pull/85940)). -- Expose a method to get hovered Control in Viewport ([GH-85966](https://github.com/godotengine/godot/pull/85966)). -- Prevent crash when calling `set_text()` on a removed TreeItem ([GH-86028](https://github.com/godotengine/godot/pull/86028)). -- Fix theme access in the Groups editor ([GH-86031](https://github.com/godotengine/godot/pull/86031)). -- Fix `ColorPicker`'s alpha slider arrow offset ([GH-86034](https://github.com/godotengine/godot/pull/86034)). -- TextServer: Do not draw non-visual characters ([GH-86065](https://github.com/godotengine/godot/pull/86065)). -- Fix so undoing complex operations in `TextEdit` will restore selections ([GH-86118](https://github.com/godotengine/godot/pull/86118)). -- Remember last `color_mode` and `picker_shape` in `ColorPicker`s in the editor ([GH-86129](https://github.com/godotengine/godot/pull/86129)). -- Fix Popup hover and height calculation are off by some pixels ([GH-86141](https://github.com/godotengine/godot/pull/86141)). -- Rework `GraphEdit` connections (drawing, API, optimizations) ([GH-86158](https://github.com/godotengine/godot/pull/86158)). -- Fix various issues with the folder color lookup ([GH-86171](https://github.com/godotengine/godot/pull/86171)). -- Fix `Node` selection when navigating `Tree` with Arrow keys ([GH-86218](https://github.com/godotengine/godot/pull/86218)). -- Fix changing `gui_embed_subwindows` while a child window is displayed ([GH-86220](https://github.com/godotengine/godot/pull/86220)). -- macOS: Fix updating editor tab titles in the dock menu ([GH-86290](https://github.com/godotengine/godot/pull/86290)). -- Fix `MenuBar` and `MenuButton` hover position scaling properly with the scale factor multiplier ([GH-86304](https://github.com/godotengine/godot/pull/86304)). -- MenuBar: Store and use global menu item indices ([GH-86322](https://github.com/godotengine/godot/pull/86322)). -- Emit slider's `drag_started` signal before the first value change ([GH-86377](https://github.com/godotengine/godot/pull/86377)). -- Implement a `transient_to_focused` Window mode ([GH-86446](https://github.com/godotengine/godot/pull/86446)). -- Fix double `text_changed` signal when overwriting selection in LineEdit ([GH-86460](https://github.com/godotengine/godot/pull/86460)). -- Fix D&D viewport position calculation ([GH-86511](https://github.com/godotengine/godot/pull/86511)). -- Fix non-embedded tooltips, popups and dialogs resizing to match Viewport content scale factors != 1.0 ([GH-86553](https://github.com/godotengine/godot/pull/86553)). -- Make `LineEdit` scrolling show as much text as possible ([GH-86732](https://github.com/godotengine/godot/pull/86732)). -- In `merge_with` also merge some default fields of theme ([GH-86894](https://github.com/godotengine/godot/pull/86894)). -- Overhaul multicaret editing and selection in TextEdit ([GH-86978](https://github.com/godotengine/godot/pull/86978)). -- Fix `LineEdit` caret rendering/positioning on Undo ([GH-87012](https://github.com/godotengine/godot/pull/87012)). -- Button: Add autowrap feature ([GH-87025](https://github.com/godotengine/godot/pull/87025)). -- Refactor editor theme generation and add spacing presets ([GH-87085](https://github.com/godotengine/godot/pull/87085)). -- Allow no tabs to be selected in TabBar and TabContainer ([GH-87194](https://github.com/godotengine/godot/pull/87194)). -- macOS: Do not unbind PopupMenu from global menu on `clear` call ([GH-87249](https://github.com/godotengine/godot/pull/87249)). -- [Native File Dialog] Add support for adding custom options to the dialogs (w/o editor changes) ([GH-87303](https://github.com/godotengine/godot/pull/87303)). -- Add indeterminate mode to ProgressBar ([GH-87318](https://github.com/godotengine/godot/pull/87318)). -- TextServer: Fix precision loss in the string drawing methods ([GH-87335](https://github.com/godotengine/godot/pull/87335)). -- Add method to get "base" system UI color and system theme change callback ([GH-87384](https://github.com/godotengine/godot/pull/87384)). -- Expose `PopupMenu` `get_item_multistate()` and `set/get_item_multistate_max()` ([GH-87395](https://github.com/godotengine/godot/pull/87395)). -- Redraw `TreeItem` on more changes ([GH-87415](https://github.com/godotengine/godot/pull/87415)). -- Use callable for `TreeItem` custom draw ([GH-87417](https://github.com/godotengine/godot/pull/87417)). -- Fix issue where `set_global_position(global_position)` in `Control` resulted in a different result than `global_position` ([GH-87432](https://github.com/godotengine/godot/pull/87432)). -- Move `global_menu_*` methods to a separate `NativeMenu` class ([GH-87452](https://github.com/godotengine/godot/pull/87452)). -- Fix PopupMenu doesn't respect its ScrollContainer's margins ([GH-87462](https://github.com/godotengine/godot/pull/87462)). -- Fix forgetting `h_separation` when internal elements exist ([GH-87474](https://github.com/godotengine/godot/pull/87474)). -- Fix TextEdit IME issues ([GH-87479](https://github.com/godotengine/godot/pull/87479)). -- Rework the auto translation system ([GH-87530](https://github.com/godotengine/godot/pull/87530)). -- Replace internal usage of ImageTexture in VideoStreamPlayer for Texture2D ([GH-87555](https://github.com/godotengine/godot/pull/87555)). -- RTL: Connect image update signals ([GH-87587](https://github.com/godotengine/godot/pull/87587)). -- [TextServer / Font] Add support for customizable baseline offset ([GH-87668](https://github.com/godotengine/godot/pull/87668)). -- TreeItem: Add `get_button_color()` ([GH-87686](https://github.com/godotengine/godot/pull/87686)). -- Fix script editor `undo` shortcut with global menu enabled ([GH-87773](https://github.com/godotengine/godot/pull/87773)). -- Automatically set viewport background to transparent when window flag is set ([GH-87856](https://github.com/godotengine/godot/pull/87856)). -- Fix freeze in TextEdit with `scroll_past_end_of_file` and `fit_content_height` ([GH-87880](https://github.com/godotengine/godot/pull/87880)). -- Add 'Skip to next (text) occurrence' feature to text editor ([GH-87883](https://github.com/godotengine/godot/pull/87883)). -- macOS: Fix changing main menu item names ([GH-87912](https://github.com/godotengine/godot/pull/87912)). -- Only recurse depth wise in `Tree::_count_selected_items` ([GH-87943](https://github.com/godotengine/godot/pull/87943)). -- macOS: Do not show file type popup in the native file dialog if there's only one option, improve `*.*` filter handling ([GH-87954](https://github.com/godotengine/godot/pull/87954)). -- Fix `set_item_submenu` infinite recursion crash ([GH-87967](https://github.com/godotengine/godot/pull/87967)). -- Implement GraphFrame and integrate it in VisualShader ([GH-88014](https://github.com/godotengine/godot/pull/88014)). -- Fix `Slider`'s mouse drag position when grabber is centered ([GH-88068](https://github.com/godotengine/godot/pull/88068)). -- TextServer: Fix bitmap font kerning override ([GH-88089](https://github.com/godotengine/godot/pull/88089)). -- TextServer: Add extra fallback step, to lookup for individual characters ([GH-88091](https://github.com/godotengine/godot/pull/88091)). -- Tweak property order in the inspector for OptionButton ([GH-88145](https://github.com/godotengine/godot/pull/88145)). -- Add PropertyListHelper to PopupMenu ([GH-88162](https://github.com/godotengine/godot/pull/88162)). -- Font: Do not use trim with ellipsis in the basic Font string drawing functions ([GH-88185](https://github.com/godotengine/godot/pull/88185)). -- Fix vertical alignment of editor version `LinkButton` in the bottom panel ([GH-88197](https://github.com/godotengine/godot/pull/88197)). -- Fix recursive Tree expand/collapse shortcuts not working ([GH-88265](https://github.com/godotengine/godot/pull/88265)). -- Fix `TabBar` size when theme changes ([GH-88293](https://github.com/godotengine/godot/pull/88293)). -- Add `is_visible_in_tree` in `TreeItem` ([GH-88300](https://github.com/godotengine/godot/pull/88300)). -- [Fallback TextServer] Add support for non breaking spaces ([GH-88344](https://github.com/godotengine/godot/pull/88344)). -- Fix ItemList click detection gaps ([GH-88347](https://github.com/godotengine/godot/pull/88347)). -- Editor: Improve clarity and style of `ResourcePicker` menu ([GH-88435](https://github.com/godotengine/godot/pull/88435)). -- Editor: Add missing ellipses to menu options that open dialogs ([GH-88436](https://github.com/godotengine/godot/pull/88436)). -- Improve text editor status bar and zooming UX ([GH-88474](https://github.com/godotengine/godot/pull/88474)). -- Tweak property order in the inspector for TabBar ([GH-88477](https://github.com/godotengine/godot/pull/88477)). -- Fix `LineEdit` delete all the way to the left/right when something is selected ([GH-88479](https://github.com/godotengine/godot/pull/88479)). -- Fix error spam when adding tabs to `TabBar` without deselect ([GH-88494](https://github.com/godotengine/godot/pull/88494)). -- Fix regression in auto translation overhaul ([GH-88521](https://github.com/godotengine/godot/pull/88521)). -- TextEdit: Add support for optional wrapped line indentation ([GH-88546](https://github.com/godotengine/godot/pull/88546)). -- Hide separators in ItemList in editor theme ([GH-88575](https://github.com/godotengine/godot/pull/88575)). -- Fix item positioning, text alignment & unwanted clipping of ItemList items ([GH-88577](https://github.com/godotengine/godot/pull/88577)). -- Fix `RichTextLabel`'s tag stack being overridden on translation change ([GH-88598](https://github.com/godotengine/godot/pull/88598)). -- Fix implementation of `property_can_revert()` in PropertyListHelper ([GH-88665](https://github.com/godotengine/godot/pull/88665)). -- Don't translate filenames in FileSystem dock ([GH-88716](https://github.com/godotengine/godot/pull/88716)). -- If SpinBox text can't be parsed use last updated text ([GH-88794](https://github.com/godotengine/godot/pull/88794)). -- Mention how Control focus loss affects `Viewport.gui_focus_change` ([GH-88811](https://github.com/godotengine/godot/pull/88811)). -- Fix crash when selecting re-added `TreeItem::Cell` ([GH-88917](https://github.com/godotengine/godot/pull/88917)). -- Fix mouse entered notifications ([GH-88992](https://github.com/godotengine/godot/pull/88992)). -- RTL: Add optional `push_meta` argument to control how meta underline is drawn ([GH-89024](https://github.com/godotengine/godot/pull/89024)). -- Add auto translation to `Tree` ([GH-89032](https://github.com/godotengine/godot/pull/89032)). -- Fix issues with text clearing in `RichTextLabel` ([GH-89100](https://github.com/godotengine/godot/pull/89100)). -- Label3D: Calculate AABB from the full text rect instead of individual glyphs ([GH-89145](https://github.com/godotengine/godot/pull/89145)). -- RTL: Fix meta hover area detection ([GH-89158](https://github.com/godotengine/godot/pull/89158)). -- TextServer: Fix fallback line breaking code adding two breaks for CR-LF ([GH-89171](https://github.com/godotengine/godot/pull/89171)). -- Window: Allow to override viewport and project settings and force use of native window ([GH-89172](https://github.com/godotengine/godot/pull/89172)). -- NativeMenu: Add checks to avoid unnecessary warnings ([GH-89224](https://github.com/godotengine/godot/pull/89224)). -- Add text tooltip for TabBar & TabContainer ([GH-89247](https://github.com/godotengine/godot/pull/89247)). -- NativeMenu: Implement native popup menu support on Windows ([GH-89273](https://github.com/godotengine/godot/pull/89273)). -- StatusIndicator: Add method to get indicator icon screen rect ([GH-89275](https://github.com/godotengine/godot/pull/89275)). -- Fix packed scene translation parser missing strings ([GH-89286](https://github.com/godotengine/godot/pull/89286)). -- Add pre-4.3 Editor theme color names for compatibility ([GH-89302](https://github.com/godotengine/godot/pull/89302)). -- Fix Label3D, TextMesh & Font not following project default theme in editor ([GH-89311](https://github.com/godotengine/godot/pull/89311)). -- Font: Add option to disable embedded bitmaps loading ([GH-89383](https://github.com/godotengine/godot/pull/89383)). -- RTL: Use "visible characters" property for inline object visibility ([GH-89395](https://github.com/godotengine/godot/pull/89395)). -- Fix some AcceptDialog argument types ([GH-89419](https://github.com/godotengine/godot/pull/89419)). -- Fix help label will be partly outside the view area at 150% editor scale ([GH-89437](https://github.com/godotengine/godot/pull/89437)). -- Fix bug related to multicursor and backspacing with brackets ([GH-89469](https://github.com/godotengine/godot/pull/89469)). -- Fix `Control::set_global_position` for rotated/scaled transforms ([GH-89502](https://github.com/godotengine/godot/pull/89502)). -- Fix NativeMenu layout direction on macOS, add extra check for Windows menu ([GH-89506](https://github.com/godotengine/godot/pull/89506)). -- Label: Move shadow drawing into a separate draw step ([GH-89510](https://github.com/godotengine/godot/pull/89510)). -- NativeMenu: Fix MinGW build ([GH-89513](https://github.com/godotengine/godot/pull/89513)). -- NativeMenu: Fix changes lost due to incorrect rebase (menu goes under task bar, dark mode, item text get, docs) and check to ensure help menu is not using native menu on Windows ([GH-89540](https://github.com/godotengine/godot/pull/89540)). -- StatusIndicator: Switch API to use Texture2D instead of Image, improve handling on macOS, add method to set native popup menu directly ([GH-89588](https://github.com/godotengine/godot/pull/89588)). -- Fix TextEdit selection end of line drawing for wrapped lines and gaps ([GH-89625](https://github.com/godotengine/godot/pull/89625)). -- Fix `empty_clicked` signal in Tree when using `hide_root` ([GH-89664](https://github.com/godotengine/godot/pull/89664)). -- Font: Apply oversampling to the "embolden" strength ([GH-89666](https://github.com/godotengine/godot/pull/89666)). -- Do not apply `force_native` to the edited scene windows ([GH-89673](https://github.com/godotengine/godot/pull/89673)). -- Add minimum width/height to dialog buttons ([GH-89693](https://github.com/godotengine/godot/pull/89693)). -- RTL: Move shadow and foreground/background boxes drawing into a separate draw steps ([GH-89705](https://github.com/godotengine/godot/pull/89705)). -- Fix a pixel misalignment in the blue robot logo ([GH-89711](https://github.com/godotengine/godot/pull/89711)). -- [Native File Dialog] Add support for using native dialogs in the editor ([GH-89735](https://github.com/godotengine/godot/pull/89735)). -- Prefer family name in fonts' names table ([GH-89817](https://github.com/godotengine/godot/pull/89817)). -- Correct FileDialog Theme overrides ([GH-89845](https://github.com/godotengine/godot/pull/89845)). -- MenuBar: Use NativeMenu RIDs instead of indices to track items ([GH-89875](https://github.com/godotengine/godot/pull/89875)). -- NativeMenu: Move files to the `display` subfolder ([GH-89900](https://github.com/godotengine/godot/pull/89900)). -- Remove Control z-index warning ([GH-89956](https://github.com/godotengine/godot/pull/89956)). -- Fix TreeItem shows cell edit in the wrong column when `select_mode=Row` and TreeItem has multiple columns ([GH-89977](https://github.com/godotengine/godot/pull/89977)). -- Make `TextEdit.clip_contents` more transparent to users ([GH-89993](https://github.com/godotengine/godot/pull/89993)). -- TextServer: Expose ICU title case string conversion to scripting ([GH-90196](https://github.com/godotengine/godot/pull/90196)). -- Fix error message when removing only child from GraphNode ([GH-90229](https://github.com/godotengine/godot/pull/90229)). -- Fix potential null access in `TextEdit` ([GH-90274](https://github.com/godotengine/godot/pull/90274)). -- Remove border roundness inside panels of `AcceptDialog` windows ([GH-90283](https://github.com/godotengine/godot/pull/90283)). -- Fix built-in `FileDialog` appearing instead of the native one on some cases ([GH-90318](https://github.com/godotengine/godot/pull/90318)). -- TextServer: Improve empty glyph handling to allow glyphs smaller than 2px and avoid unnecessary texture updates ([GH-90349](https://github.com/godotengine/godot/pull/90349)). -- RTL: Add support for character code BBCode tag `[char=...]` ([GH-90405](https://github.com/godotengine/godot/pull/90405)). -- Fix `TabContainer` desync when tabs share names ([GH-90415](https://github.com/godotengine/godot/pull/90415)). -- RTL: Fix dropcaps and list prefixes not taking visible characters into account ([GH-90472](https://github.com/godotengine/godot/pull/90472)). -- RTL: Rewrite `remove_paragraph` code ([GH-90518](https://github.com/godotengine/godot/pull/90518)). -- Remove `Popup`'s unused "panel" style ([GH-90633](https://github.com/godotengine/godot/pull/90633)). -- Fix submenus erroneously closing on some occasions ([GH-90639](https://github.com/godotengine/godot/pull/90639)). -- Fix decimal and hex ranges not working with image fonts ([GH-90647](https://github.com/godotengine/godot/pull/90647)). -- Don't store deprecated `auto_translate` property ([GH-90685](https://github.com/godotengine/godot/pull/90685)). -- Add project setting for root node auto translate mode ([GH-90730](https://github.com/godotengine/godot/pull/90730)). -- Improve TextEdit/LineEdit word selection ([GH-90732](https://github.com/godotengine/godot/pull/90732)). -- Fix potential infinite loop when using global menu ([GH-90791](https://github.com/godotengine/godot/pull/90791)). -- Button: Fix theme elements size rounding errors not keeping sufficient space for the text ([GH-90838](https://github.com/godotengine/godot/pull/90838)). -- Fix TreeItem button handling ([GH-90839](https://github.com/godotengine/godot/pull/90839)). -- Revert "Correctly display tooltips for buttons in Tree when they overlap cell content ([GH-90842](https://github.com/godotengine/godot/pull/90842)). -- Fix buttons offset to the right when dialog is at minsize ([GH-90852](https://github.com/godotengine/godot/pull/90852)). -- Don't translate ColorPicker color labels ([GH-90869](https://github.com/godotengine/godot/pull/90869)). -- Fix crash when GraphFrame `sb_to_draw_panel` is not a StyleBoxFlat ([GH-90874](https://github.com/godotengine/godot/pull/90874)). -- Fix offset of node filter menu separator icon ([GH-90886](https://github.com/godotengine/godot/pull/90886)). -- Fix TabContainer not redrawing after toggling tab icon ([GH-90942](https://github.com/godotengine/godot/pull/90942)). -- Enable `Scrolling` signal when scrolling with middle mouse on `RichTextLabel` or `ScrollContainer` ([GH-90988](https://github.com/godotengine/godot/pull/90988)). -- Add line limit to Output Log in Editor ([GH-91012](https://github.com/godotengine/godot/pull/91012)). -- Fix TabContainer using wrong content rect after tab title update ([GH-91038](https://github.com/godotengine/godot/pull/91038)). -- Fix wrong Tree column title position ([GH-91044](https://github.com/godotengine/godot/pull/91044)). -- Fix port cache calculation in GraphNode ([GH-91083](https://github.com/godotengine/godot/pull/91083)). -- Fix Tree minimum size calculation ([GH-91095](https://github.com/godotengine/godot/pull/91095)). -- RTL: Add extra argument to `remove_paragraph` to skip cache invalidation and a method for manual cache invalidation ([GH-91098](https://github.com/godotengine/godot/pull/91098)). -- PopupMenu: Fix incorrect vertical scroll bar visible at fractional content scale ([GH-91114](https://github.com/godotengine/godot/pull/91114)). -- Use TextEdit caret color for minimap highlight (fix minimap regression) ([GH-91137](https://github.com/godotengine/godot/pull/91137)). -- Add no-change check to `Label3D::set_text` ([GH-91177](https://github.com/godotengine/godot/pull/91177)). -- Fix `TabContainer` regressions related to switching tabs in certain cases ([GH-91188](https://github.com/godotengine/godot/pull/91188)). -- Don't use vscroll when fit to content height in TextEdit ([GH-91190](https://github.com/godotengine/godot/pull/91190)). -- Allow setting max icon width per tab for TabContainer ([GH-91193](https://github.com/godotengine/godot/pull/91193)). -- Fix RichTextLabel "Scroll Following" randomly stops working ([GH-91275](https://github.com/godotengine/godot/pull/91275)). -- Fix disabled files in FileDialog using the wrong color ([GH-91281](https://github.com/godotengine/godot/pull/91281)). -- Update `LineEdit` to include `read_only` StyleBox in `get_minimum_size()` ([GH-91326](https://github.com/godotengine/godot/pull/91326)). -- Windows: Fix `WINDOW_EVENT_FOCUS_IN` not delivered in some cases ([GH-91361](https://github.com/godotengine/godot/pull/91361)). -- Unhide carets in add selection for occurrence and fix error ([GH-91390](https://github.com/godotengine/godot/pull/91390)). -- Make `mouse_focus` and `mouse_focus_mask` consistent for `force_drag` ([GH-91425](https://github.com/godotengine/godot/pull/91425)). -- Fix TextEdit crash with multiple carets disabled and paste ([GH-91457](https://github.com/godotengine/godot/pull/91457)). -- Add `as_sortable_control()` to unify Container checks ([GH-91613](https://github.com/godotengine/godot/pull/91613)). -- Fold TreeItems when clicking to the left of fold icon ([GH-91699](https://github.com/godotengine/godot/pull/91699)). -- Fix CheckBox and CheckButton not using `icon_max_width` ([GH-91700](https://github.com/godotengine/godot/pull/91700)). -- Fix TextEdit minimap tab drawing and click check ([GH-91720](https://github.com/godotengine/godot/pull/91720)). -- Use `as_sortable_control()` in SplitContainer ([GH-91728](https://github.com/godotengine/godot/pull/91728)). -- Fix placement of ColorPicker in the editor ([GH-91757](https://github.com/godotengine/godot/pull/91757)). -- Fallback to default theme for variation items ([GH-91793](https://github.com/godotengine/godot/pull/91793)). -- Round the icon's drawing rect when drawing the button ([GH-91802](https://github.com/godotengine/godot/pull/91802)). -- Fix Control resizing wrongly after "change type" in editor ([GH-91804](https://github.com/godotengine/godot/pull/91804)). -- Editor: Add editor setting to control `disable_embedded_bitmaps` property of the editor fonts ([GH-91931](https://github.com/godotengine/godot/pull/91931)). -- GraphEdit: Fix GraphNode's ports interactable through other GraphNodes ([GH-91991](https://github.com/godotengine/godot/pull/91991)). -- Fix tooltip mouse position conversion for scaled controls ([GH-91997](https://github.com/godotengine/godot/pull/91997)). -- Improve button min. size calculation ([GH-92009](https://github.com/godotengine/godot/pull/92009)). -- Fix Tree and FileSystemList edit popup double events and ESC behavior ([GH-92042](https://github.com/godotengine/godot/pull/92042)). -- Fix scrollbar issues in `ScrollContainer` ([GH-92138](https://github.com/godotengine/godot/pull/92138)). -- Fix TextureButton's click mask texture size ignored if missing normal texture ([GH-92222](https://github.com/godotengine/godot/pull/92222)). -- Fix `PopupMenu` focus issues after `Viewport::set_embedding_subwindows` is changed ([GH-92243](https://github.com/godotengine/godot/pull/92243)). -- Fix crash during code editor folding and LSP ([GH-92301](https://github.com/godotengine/godot/pull/92301)). -- Fix `get_position_with_decorations` and `get_size_with_decorations` for embedded windows ([GH-92317](https://github.com/godotengine/godot/pull/92317)). -- Remove duplicate if/else code in `TextEdit::_notification` ([GH-92342](https://github.com/godotengine/godot/pull/92342)). -- Fix duplicate AcceptDialog cancel/confirm events ([GH-92460](https://github.com/godotengine/godot/pull/92460)). -- RTL: Use real text/object height instead of line height for meta click/hover detection ([GH-92461](https://github.com/godotengine/godot/pull/92461)). -- GraphEdit: Convert to minimap line after getting connection line ([GH-92463](https://github.com/godotengine/godot/pull/92463)). -- Invalidate `Control` global transform before notifying about resize / rect change ([GH-92489](https://github.com/godotengine/godot/pull/92489)). -- TextEdit: Use style margins for selection in read-only mode ([GH-92505](https://github.com/godotengine/godot/pull/92505)). -- Fix minimap error when moving to the top ([GH-92557](https://github.com/godotengine/godot/pull/92557)). -- RTL: Clear default justification flags if custom are set ([GH-92565](https://github.com/godotengine/godot/pull/92565)). -- Fix `RichTextLabel` table overlapping with next line ([GH-92605](https://github.com/godotengine/godot/pull/92605)). -- Fix `NOTIFICATION_SORT_CHILDREN` is called twice on startup ([GH-92645](https://github.com/godotengine/godot/pull/92645)). -- Fix popup windows content margins ([GH-92647](https://github.com/godotengine/godot/pull/92647)). -- Add visibility mode to `as_sortable_control()` ([GH-92664](https://github.com/godotengine/godot/pull/92664)). -- Button: Adds theme option to align button text and icon to either largest or current stylebox ([GH-92701](https://github.com/godotengine/godot/pull/92701)). -- Force canvas item update on oversampling change ([GH-92731](https://github.com/godotengine/godot/pull/92731)). -- Fix IME activation in subviewports ([GH-92740](https://github.com/godotengine/godot/pull/92740)). -- RTL: Fix nested ordered lists inside unordered lists ([GH-92745](https://github.com/godotengine/godot/pull/92745)). -- macOS: Improve native menu open/close callbacks ([GH-92781](https://github.com/godotengine/godot/pull/92781)). -- Fix excessive canvas items updates ([GH-92808](https://github.com/godotengine/godot/pull/92808)). -- Stop color picker tooltip from stealing input events ([GH-92843](https://github.com/godotengine/godot/pull/92843)). -- Force editor progress dialog size update ([GH-92856](https://github.com/godotengine/godot/pull/92856)). -- Fix `TextureProgressBar` radial mode invalid polygon edge case ([GH-92901](https://github.com/godotengine/godot/pull/92901)). -- Window: Fix mouse hover state of the main window when mouse enter event was sent before setting callbacks ([GH-92908](https://github.com/godotengine/godot/pull/92908)). -- Fix native file dialogs being shown on `set_visible(false)` ([GH-92943](https://github.com/godotengine/godot/pull/92943)). -- RTL: Fix list item prefix width not taken into account ([GH-92968](https://github.com/godotengine/godot/pull/92968)). -- Fix `Container::pending_sort` tracking ([GH-93008](https://github.com/godotengine/godot/pull/93008)). -- TextEdit: Don't error when undo stack is empty ([GH-93042](https://github.com/godotengine/godot/pull/93042)). -- Button: Do not include internal margins into base button minimum size ([GH-93128](https://github.com/godotengine/godot/pull/93128)). -- RTL: Fix `align_to_row` for the last table row ([GH-93137](https://github.com/godotengine/godot/pull/93137)). -- RTL: Fix table h/v separation alignment ([GH-93140](https://github.com/godotengine/godot/pull/93140)). -- Fix engine crashing when using Down Arrow selection on Tree with no selection ([GH-93179](https://github.com/godotengine/godot/pull/93179)). -- TextServer: Save advances rounding remainders to prevent rounding error accumulation ([GH-93256](https://github.com/godotengine/godot/pull/93256)). -- Fix GridContainer minimum size when there's a hidden parent ([GH-93386](https://github.com/godotengine/godot/pull/93386)). -- Fix FlowContainer scale from also scaling wrap point ([GH-93444](https://github.com/godotengine/godot/pull/93444)). -- Fix atlas texture positioning in circular TextureProgressBar ([GH-93467](https://github.com/godotengine/godot/pull/93467)). -- Fix subwindow titlebar redraw on oversampling change ([GH-93490](https://github.com/godotengine/godot/pull/93490)). -- CodeEdit: Fix move lines up/down viewport and selection issues ([GH-93607](https://github.com/godotengine/godot/pull/93607)). -- Hide unused category vboxes in inspector ([GH-93627](https://github.com/godotengine/godot/pull/93627)). -- Button: Use `align_to_largest_stylebox` for min. size calculation ([GH-93708](https://github.com/godotengine/godot/pull/93708)). -- Fix RichTextLabel fade set `start_index` to command offset ([GH-93721](https://github.com/godotengine/godot/pull/93721)). -- Change GUI controls pixel snap to round halfway towards positive infinity (`floor(x + 0.5)`) ([GH-93749](https://github.com/godotengine/godot/pull/93749)). -- Fix division by zero in aspect ratio calculation ([GH-93764](https://github.com/godotengine/godot/pull/93764)). -- Fix `AtlasTexture::draw_rect` flipping for non-zero margin ([GH-93828](https://github.com/godotengine/godot/pull/93828)). -- Fix some VisualShader features for high DPI displays/custom UI scales ([GH-93903](https://github.com/godotengine/godot/pull/93903)). -- Fix `Control` nodes emitting unnecessary `resized` signals ([GH-93908](https://github.com/godotengine/godot/pull/93908)). -- Fix dropping on selection in script editor ([GH-93959](https://github.com/godotengine/godot/pull/93959)). -- Fix connections not updated after GraphNode slot update ([GH-93999](https://github.com/godotengine/godot/pull/93999)). -- Fix RichTextLabel + `ui_down` scrolling too far ([GH-94003](https://github.com/godotengine/godot/pull/94003)). -- NativeMenu: Do not auto toggle check/multi-state items. Add `is_native_menu` method ([GH-94061](https://github.com/godotengine/godot/pull/94061)). -- Fix LCD font AA modulation in RendererRD ([GH-94064](https://github.com/godotengine/godot/pull/94064)). -- Fix container minimum size with hidden parent ([GH-94085](https://github.com/godotengine/godot/pull/94085)). -- Prevent confirm button being overridden to "Open" when in save file mode ([GH-94172](https://github.com/godotengine/godot/pull/94172)). -- Avoid `FlowContainer` crash with `TextureRect` using `EXPAND_FIT_*` expand modes ([GH-94286](https://github.com/godotengine/godot/pull/94286)). -- macOS: Fix code completion list scrolling with trackpad ([GH-94363](https://github.com/godotengine/godot/pull/94363)). -- Fix input lock issue when drag scrolling on a `Tree` element on touchscreen devices ([GH-94422](https://github.com/godotengine/godot/pull/94422)). -- Fix ScriptEditor scrolling horizontally when reopening script ([GH-94439](https://github.com/godotengine/godot/pull/94439)). -- Fix game window stops responding when debugger pauses ([GH-94452](https://github.com/godotengine/godot/pull/94452)). -- RTL: Fix text size rounding with MSDF fonts ([GH-94606](https://github.com/godotengine/godot/pull/94606)). -- ScrollContainer: Fix RTL on follow focus ([GH-94621](https://github.com/godotengine/godot/pull/94621)). -- GraphEdit: Correctly disconnect signal to `connection_layer` ([GH-94810](https://github.com/godotengine/godot/pull/94810)). -- Fix `TextEdit` scroll properties editor hint suffix ([GH-94821](https://github.com/godotengine/godot/pull/94821)). -- Fix TextEdit placeholder fit content height ([GH-94848](https://github.com/godotengine/godot/pull/94848)). -- Use legacy color picking in single window mode ([GH-94931](https://github.com/godotengine/godot/pull/94931)). -- Windows: Check if transparency is enabled in the project setting before applying DWM blur ([GH-95009](https://github.com/godotengine/godot/pull/95009)). -- Fix GraphEdit port snapping in certain edge cases ([GH-95059](https://github.com/godotengine/godot/pull/95059)). -- Font: Add check for cyclic base font dependencies ([GH-95083](https://github.com/godotengine/godot/pull/95083)). -- Clear `TabBar` tab close button's rect after it's hidden ([GH-95122](https://github.com/godotengine/godot/pull/95122)). -- PopupMenu: Increase mouse button release timeout and reset it from `post_popup` ([GH-95232](https://github.com/godotengine/godot/pull/95232)). -- Stop popup release timeout on click ([GH-95432](https://github.com/godotengine/godot/pull/95432)). +- Fix getting wrong focus neighbor when the control is in ScrollContainer ([GH-63059](https://github.com/godotengine/godot/pull/63059)). +- Improvements to SplitContainer including a drag bar background StyleBox ([GH-72680](https://github.com/godotengine/godot/pull/72680)). +- Fix display of embedded `Window` ([GH-80121](https://github.com/godotengine/godot/pull/80121)). +- Add a Viewport method to get automatically computed 2D stretch transform ([GH-80965](https://github.com/godotengine/godot/pull/80965)). +- Fix `button_up` and `button_down` signals with focus changes or multiple inputs ([GH-81532](https://github.com/godotengine/godot/pull/81532)). +- Implement fit content width in TextEdit ([GH-83070](https://github.com/godotengine/godot/pull/83070)). +- Simplify `Control` internal transform calculation ([GH-84840](https://github.com/godotengine/godot/pull/84840)). +- Correctly restore Control position on undoing an Anchors Preset ([GH-85275](https://github.com/godotengine/godot/pull/85275)). +- Make `FileDialog` filtering case insensitive ([GH-85789](https://github.com/godotengine/godot/pull/85789)). +- Allow dragging selection when selecting whole words in `RichTextLabel` ([GH-85799](https://github.com/godotengine/godot/pull/85799)). +- Cleanup in undo in `TextEdit` and `LineEdit` ([GH-86085](https://github.com/godotengine/godot/pull/86085)). +- Prevent `LineEdit` focus loss when text is submitted or rejected and allow selecting without editing with arrow keys ([GH-87674](https://github.com/godotengine/godot/pull/87674)). +- Prevent some internal nodes being duplicated in Controls ([GH-88114](https://github.com/godotengine/godot/pull/88114)). +- Fix RichTextLabel bottom margin for text clipping ([GH-88167](https://github.com/godotengine/godot/pull/88167)). +- Add hover state to Tree items display ([GH-88530](https://github.com/godotengine/godot/pull/88530)). +- Add filename filter field to FileDialog ([GH-88673](https://github.com/godotengine/godot/pull/88673)). +- [macOS, Windows] Add support for excluding windows from a screenshot ([GH-88950](https://github.com/godotengine/godot/pull/88950)). +- Improve SpinBox interaction, split arrows, add theme attributes ([GH-89265](https://github.com/godotengine/godot/pull/89265)). +- Fix backspace always unfolding previous line ([GH-89554](https://github.com/godotengine/godot/pull/89554)). +- Make TextEdit autocompletion replace word unless Shift is held ([GH-90723](https://github.com/godotengine/godot/pull/90723)). +- Add TextEdit option to prevent copying without a selection ([GH-90743](https://github.com/godotengine/godot/pull/90743)). +- Make `PopupMenu/Panel` shadows properly visible again ([GH-91333](https://github.com/godotengine/godot/pull/91333)). +- Save color palette as resources to reuse later ([GH-91604](https://github.com/godotengine/godot/pull/91604)). +- Fix TextEdit mouse selection and scroll cancel ([GH-91778](https://github.com/godotengine/godot/pull/91778)). +- Fix tooltip content being cut off at some display scales ([GH-91965](https://github.com/godotengine/godot/pull/91965)). +- Fix `Window.wrap_controls` does not account for the `content_scale_factor` ([GH-91971](https://github.com/godotengine/godot/pull/91971)). +- Fix TextEdit caret movement at start of wrapped lines ([GH-91978](https://github.com/godotengine/godot/pull/91978)). +- Implement drag-and-drop logic for previewing themes ([GH-92435](https://github.com/godotengine/godot/pull/92435)). +- TextServerAdvanced: 2x performance improvement by removing redundant lookups ([GH-92575](https://github.com/godotengine/godot/pull/92575)). +- TextServerFallback: 2x performance improvement by removing redundant lookups ([GH-92581](https://github.com/godotengine/godot/pull/92581)). +- Fix `MenuBar` popup placement assuming it's in viewport default canvas ([GH-92841](https://github.com/godotengine/godot/pull/92841)). +- CodeEdit: Improve render time by 2x ([GH-92865](https://github.com/godotengine/godot/pull/92865)). +- RTL: Improve BBCode parsing ([GH-92962](https://github.com/godotengine/godot/pull/92962)). +- Adjust StyleBoxFlat antialiasing to account for 2D stretch scale ([GH-92997](https://github.com/godotengine/godot/pull/92997)). +- Add `Auto width` behavior to ItemList ([GH-93270](https://github.com/godotengine/godot/pull/93270)). +- More GUI nodes listening for texture changes ([GH-93285](https://github.com/godotengine/godot/pull/93285)). +- Add button unit test ([GH-93381](https://github.com/godotengine/godot/pull/93381)). +- Improve button behavior when multiple mouse buttons are used at the same time ([GH-93500](https://github.com/godotengine/godot/pull/93500)). +- Improve Editor Inspector/Theme item lookup performance ([GH-93602](https://github.com/godotengine/godot/pull/93602)). +- Add unit tests for `OptionButton` ([GH-93824](https://github.com/godotengine/godot/pull/93824)). +- Add RichTextLabel `is_finished()`, deprecate `is_ready()` ([GH-93940](https://github.com/godotengine/godot/pull/93940)). +- Optimize `StyleBoxFlat.draw()` ([GH-94240](https://github.com/godotengine/godot/pull/94240)). +- RTL: Expose missing default properties, ensure bbcode is reparserd when these are changed ([GH-94426](https://github.com/godotengine/godot/pull/94426)). +- Treat `MenuBar` and `MenuButton` as advanced UI ([GH-94513](https://github.com/godotengine/godot/pull/94513)). +- Improve blend tree contrast/margins ([GH-94721](https://github.com/godotengine/godot/pull/94721)). +- Improve `Tree` performance ([GH-94748](https://github.com/godotengine/godot/pull/94748)). +- Fix EditorSpinSlider when hidden ([GH-95028](https://github.com/godotengine/godot/pull/95028)). +- Editor: Allow MSDF font rendering for custom fonts, add editor setting to control it ([GH-95230](https://github.com/godotengine/godot/pull/95230)). +- Draw a checkerboard behind translucent colors in CodeEdit autocompletion previews ([GH-95285](https://github.com/godotengine/godot/pull/95285)). +- Fix `TextServer::shaped_text_*_character_pos` for the first character of wrapped string. Allow starting/ending RTL selection before line start ([GH-95301](https://github.com/godotengine/godot/pull/95301)). +- Fix graph node stretch not taking titlebar into account ([GH-95389](https://github.com/godotengine/godot/pull/95389)). +- Fix wrong focus neighbor for grid-aligned 0 separation controls ([GH-95500](https://github.com/godotengine/godot/pull/95500)). +- Reshape and update button on oversampling change ([GH-95511](https://github.com/godotengine/godot/pull/95511)). +- Misc code cleanup in EditorFileDialog ([GH-95544](https://github.com/godotengine/godot/pull/95544)). +- Fix small graph editor pins at higher display scales ([GH-95687](https://github.com/godotengine/godot/pull/95687)). +- Windows: Run native file dialogs in thread to make it non-blocking ([GH-95794](https://github.com/godotengine/godot/pull/95794)). +- Only reset the tooltip timer when the mouse has actually moved ([GH-95846](https://github.com/godotengine/godot/pull/95846)). +- Always store ID of PopupMenu items ([GH-95857](https://github.com/godotengine/godot/pull/95857)). +- Allow horizontal scrolling in Tree using Shift ([GH-95889](https://github.com/godotengine/godot/pull/95889)). +- Disable text trimming in SceneTreeEditor ([GH-95891](https://github.com/godotengine/godot/pull/95891)). +- Clean up Viewport's `forced_mouse_focus` ([GH-95902](https://github.com/godotengine/godot/pull/95902)). +- Fix mouse move over an unfocused window ([GH-95972](https://github.com/godotengine/godot/pull/95972)). +- Windows: Emit native file dialog callback from event loop, fix selected options not saved ([GH-95983](https://github.com/godotengine/godot/pull/95983)). +- Fix deadzone slider not working correctly ([GH-96000](https://github.com/godotengine/godot/pull/96000)). +- Fix LineEdit word mode when there are no more words ([GH-96038](https://github.com/godotengine/godot/pull/96038)). +- Fix importer preview for models with scaled armatures ([GH-96067](https://github.com/godotengine/godot/pull/96067)). +- Fix collapsing `TreeItem` not updating horizontal scrollbar ([GH-96142](https://github.com/godotengine/godot/pull/96142)). +- Fix Connect Signal Dialog control alignment ([GH-96164](https://github.com/godotengine/godot/pull/96164)). +- Tree: Fix error when removing child from `Tree` ([GH-96206](https://github.com/godotengine/godot/pull/96206)). +- Tree: Improve navigation with row select mode ([GH-96232](https://github.com/godotengine/godot/pull/96232)). +- RTL: Move image/table draw to the `DRAW_STEP_TEXT` ([GH-96247](https://github.com/godotengine/godot/pull/96247)). +- Account for dropcap when calculating paragraph size, fix duplicate last char when using dropcap with autowrap off ([GH-96265](https://github.com/godotengine/godot/pull/96265)). +- Fix floating window corner radius ([GH-96269](https://github.com/godotengine/godot/pull/96269)). +- Deprecate `set_min_buttons_width_from_icons` ([GH-96276](https://github.com/godotengine/godot/pull/96276)). +- Fix `StyleBoxFlat` rectangles skewing independently ([GH-96285](https://github.com/godotengine/godot/pull/96285)). +- Fix scroll container min size calculation ([GH-96305](https://github.com/godotengine/godot/pull/96305)). +- Prevent crash after removing GraphEdit's connection layer ([GH-96309](https://github.com/godotengine/godot/pull/96309)). +- Use InputMap actions consistently across all LineEdit's that filter an underlying Tree or ItemList ([GH-96400](https://github.com/godotengine/godot/pull/96400)). +- RTL: Do not add final newline to the paragraph context ([GH-96460](https://github.com/godotengine/godot/pull/96460)). +- MenuBar: Make menu start index more consistent ([GH-96507](https://github.com/godotengine/godot/pull/96507)). +- TextServer: Fix structured text parser for GDScript comments ([GH-96512](https://github.com/godotengine/godot/pull/96512)). +- Fix PopupPanel and PopupMenu menu styles ([GH-96518](https://github.com/godotengine/godot/pull/96518)). +- Wayland: Fix primary clipboard handling ([GH-96540](https://github.com/godotengine/godot/pull/96540)). +- Fix frame title popup position in the VisualShader editor ([GH-96543](https://github.com/godotengine/godot/pull/96543)). +- macOS: Make gaps between editor titlebar buttons unclickabe to prevent accidental window move/resize ([GH-96554](https://github.com/godotengine/godot/pull/96554)). +- Add Control+Shift+U (rebindable) action for Unicode input, show hex as it is entered ([GH-96592](https://github.com/godotengine/godot/pull/96592)). +- Expose `Viewport.gui_cancel_drag()` to GDScript as a counterpart to `Control.force_drag()` ([GH-96614](https://github.com/godotengine/godot/pull/96614)). +- Fix `is_inside_tree` error when inspecting an Environment resource ([GH-96688](https://github.com/godotengine/godot/pull/96688)). +- RTL: Fix internal process incorrectly disabled on appending text ([GH-96706](https://github.com/godotengine/godot/pull/96706)). +- Label3D: Fix updating labels in subvieports on oversampling change ([GH-96708](https://github.com/godotengine/godot/pull/96708)). +- Fix tooltip appearing in old place, on movement ([GH-96721](https://github.com/godotengine/godot/pull/96721)). +- RTL: Fix indent in tables and tables in indent ([GH-96735](https://github.com/godotengine/godot/pull/96735)). +- Fix EditorSpinSlider blocking viewport from getting focus ([GH-96786](https://github.com/godotengine/godot/pull/96786)). +- Fix slider size in compact mode ([GH-96801](https://github.com/godotengine/godot/pull/96801)). +- Tree: Improve Tree Performance by replacing computed height with TreeItem's cached minimum size ([GH-96841](https://github.com/godotengine/godot/pull/96841)). +- Remove useless `Viewport::gui.key_input_accepted` ([GH-96867](https://github.com/godotengine/godot/pull/96867)). +- Add `SCROLL_MODE_RESERVE` to ScrollContainer ([GH-96871](https://github.com/godotengine/godot/pull/96871)). +- RTL: Fix font not updated for some spans ([GH-96878](https://github.com/godotengine/godot/pull/96878)). +- Fix native file dialog showing on loading project in editor ([GH-96900](https://github.com/godotengine/godot/pull/96900)). +- GraphEdit: Improve dotted pattern grid performance ([GH-96910](https://github.com/godotengine/godot/pull/96910)). +- Fix `VSlider` grabber area ([GH-96996](https://github.com/godotengine/godot/pull/96996)). +- Fix FileDialog default size ([GH-97004](https://github.com/godotengine/godot/pull/97004)). +- Core: Add `DisplayServer` flag for sharp corners ([GH-97005](https://github.com/godotengine/godot/pull/97005)). +- Expose `LineEdit` `edit` and `unedit` methods ([GH-97094](https://github.com/godotengine/godot/pull/97094)). +- Fix trackpad code completion scrolling ([GH-97122](https://github.com/godotengine/godot/pull/97122)). +- Fix `TabContainer` minimum size ([GH-97132](https://github.com/godotengine/godot/pull/97132)). +- Fix `TreeItem` `get_prev*` methods when `p_wrap` is `true` ([GH-97157](https://github.com/godotengine/godot/pull/97157)). +- Tree: Allow disabling auto generated tooltip for `TreeItem` ([GH-97158](https://github.com/godotengine/godot/pull/97158)). +- Expose `has_undo()` and `has_redo()` of LineEdit ([GH-97167](https://github.com/godotengine/godot/pull/97167)). +- Fix TabContainer tab offset moving when not needed ([GH-97209](https://github.com/godotengine/godot/pull/97209)). +- ColorPicker: Ignore TextureRect expand mode during legacy picking ([GH-97212](https://github.com/godotengine/godot/pull/97212)). +- Add `GraphEdit.cut_nodes_request` signal ([GH-97229](https://github.com/godotengine/godot/pull/97229)). +- Fix TabBar initialization issue and add tests ([GH-97255](https://github.com/godotengine/godot/pull/97255)). +- Fix script editor not underlining Unicode identifiers when Ctrl-hovered ([GH-97269](https://github.com/godotengine/godot/pull/97269)). +- Fix ScrollContainer configuration warnings ([GH-97291](https://github.com/godotengine/godot/pull/97291)). +- Prevent infinite recursion in first `_draw` ([GH-97328](https://github.com/godotengine/godot/pull/97328)). +- Fix `font_hover_pressed_color` and `icon_hover_pressed_color` not working for no stylebox use on `Button` ([GH-97335](https://github.com/godotengine/godot/pull/97335)). +- Add tests for SplitContainer ([GH-97371](https://github.com/godotengine/godot/pull/97371)). +- Fix button text autowrap overflow when inside a container ([GH-97389](https://github.com/godotengine/godot/pull/97389)). +- Make `_make_custom_tooltip` receive raw tooltip for buttons with shortcut enabled ([GH-97397](https://github.com/godotengine/godot/pull/97397)). +- Fix ItemList text trimming ([GH-97439](https://github.com/godotengine/godot/pull/97439)). +- GraphEdit: Make connections a property ([GH-97449](https://github.com/godotengine/godot/pull/97449)). +- TextServer: Improve embedded objects handling performance ([GH-97478](https://github.com/godotengine/godot/pull/97478)). +- Fix Spinbox display does not round properly when using decimal custom arrow steps ([GH-97573](https://github.com/godotengine/godot/pull/97573)). +- Fix ICU support data loading ([GH-97648](https://github.com/godotengine/godot/pull/97648)). +- Only cancel completion with the `ui_cancel` action ([GH-97660](https://github.com/godotengine/godot/pull/97660)). +- TextServer: Silently skip invalid system fallback fonts ([GH-97693](https://github.com/godotengine/godot/pull/97693)). +- Handle scroll events in RichtTextLabel ([GH-97730](https://github.com/godotengine/godot/pull/97730)). +- Improve blurred content of embedded windows ([GH-97745](https://github.com/godotengine/godot/pull/97745)). +- Fix `window_set_current_screen` for maximized windows ([GH-97757](https://github.com/godotengine/godot/pull/97757)). +- Fix `ColorPicker` virtual keyboard popup on mobile ([GH-97807](https://github.com/godotengine/godot/pull/97807)). +- GraphEdit: Only print warning for connection layer deletion when justified ([GH-97809](https://github.com/godotengine/godot/pull/97809)). +- Fix quick open background panel style ([GH-97820](https://github.com/godotengine/godot/pull/97820)). +- Fix `BottomPanel` excessive width ([GH-97878](https://github.com/godotengine/godot/pull/97878)). +- Add theme type variations for secondary Trees and ItemLists ([GH-97884](https://github.com/godotengine/godot/pull/97884)). +- ItemList - Fix right padding missing ([GH-97888](https://github.com/godotengine/godot/pull/97888)). +- Fix `PopupMenu.id_focused` signal using index as ID ([GH-97890](https://github.com/godotengine/godot/pull/97890)). +- Fix `Button` minimum size when `disabled` is toggled ([GH-97897](https://github.com/godotengine/godot/pull/97897)). +- Fix `EditorSpinSlider` grabber `TextureRect` doesn't follow parent when scrolling ([GH-97946](https://github.com/godotengine/godot/pull/97946)). +- Allow `Control` to show custom tooltip when tooltip text is empty ([GH-97961](https://github.com/godotengine/godot/pull/97961)). +- RTL: Add support for vertical alignment ([GH-97963](https://github.com/godotengine/godot/pull/97963)). +- Refresh `MenuBar` scene after child renamed in editor ([GH-97977](https://github.com/godotengine/godot/pull/97977)). +- Fix uneditable `LineEdit`, `TextEdit` and `CodeEdit` virtual keyboard popup on mobile ([GH-98012](https://github.com/godotengine/godot/pull/98012)). +- Unify filter feature and improve space management for EditorFileDialog ([GH-98022](https://github.com/godotengine/godot/pull/98022)). +- Fix incorrect drag preview position under transformed `CanvasLayer` ([GH-98032](https://github.com/godotengine/godot/pull/98032)). +- Fix `ScrollBar` grabber mouse input ignores scroll content margins ([GH-98035](https://github.com/godotengine/godot/pull/98035)). +- [TextParagraph/Button] Add support for line spacing ([GH-98036](https://github.com/godotengine/godot/pull/98036)). +- Rename internal Button `*_icon` functions to `*_button_icon` to match exposed methods ([GH-98039](https://github.com/godotengine/godot/pull/98039)). +- RTL: Keep tag stack between `append_text` calls ([GH-98082](https://github.com/godotengine/godot/pull/98082)). +- Add System Locale layout direction for `Control` and `Window` ([GH-98203](https://github.com/godotengine/godot/pull/98203)). +- Fix button click detection when `Tree` is rotated ([GH-98299](https://github.com/godotengine/godot/pull/98299)). +- Clarify `LineEdit.shortcut_keys_enabled` only affects context menu items ([GH-98304](https://github.com/godotengine/godot/pull/98304)). +- Fix legacy picking label bounds ([GH-98368](https://github.com/godotengine/godot/pull/98368)). +- Fix Control `offset_*` property types ([GH-98443](https://github.com/godotengine/godot/pull/98443)). +- RTL: Allow setting image alignment as separate bbcode argument ([GH-98450](https://github.com/godotengine/godot/pull/98450)). +- Increase range hint for StyleBoxFlat `border_width`, `corner_radius` and `expand_margin` ([GH-98477](https://github.com/godotengine/godot/pull/98477)). +- Fix some flickering tooltips ([GH-98479](https://github.com/godotengine/godot/pull/98479)). +- CodeEdit: Fix line number margin ([GH-98543](https://github.com/godotengine/godot/pull/98543)). +- Label: Handle text as multiple independent paragraphs ([GH-98605](https://github.com/godotengine/godot/pull/98605)). +- TextServer: Reset subpixel shift on blank glyphs ([GH-98664](https://github.com/godotengine/godot/pull/98664)). +- Fix `total_visible_line_count` calculation when removing and clearing `TextEdit`'s text ([GH-98678](https://github.com/godotengine/godot/pull/98678)). +- Add tests for control to test anchoring and minimum size ([GH-98757](https://github.com/godotengine/godot/pull/98757)). +- Fix Tree drag-and-drop scrolling having low FPS at low Physics Ticks per Second ([GH-98766](https://github.com/godotengine/godot/pull/98766)). +- Improve `TextureProgressBar.set_radial_initial_angle()` by removing loops ([GH-98816](https://github.com/godotengine/godot/pull/98816)). +- TextServer: Only load ellipsis glyph when it's used ([GH-98841](https://github.com/godotengine/godot/pull/98841)). +- Android: Update exported app and editor theme ([GH-98890](https://github.com/godotengine/godot/pull/98890)). +- Add `HScrollbar` to `ItemList` when `max_columns == 0` ([GH-99050](https://github.com/godotengine/godot/pull/99050)). +- Ignore paste action if clipboard is empty ([GH-99142](https://github.com/godotengine/godot/pull/99142)). +- Improve editor file dialog options ([GH-99182](https://github.com/godotengine/godot/pull/99182)). +- Use processed filter list for native dialogs ([GH-99266](https://github.com/godotengine/godot/pull/99266)). +- Introduce a `SubViewportContainer` config for drag-and-drop target locations ([GH-99270](https://github.com/godotengine/godot/pull/99270)). +- Hide unused `exp_edit` from SpinBox's inspector ([GH-99289](https://github.com/godotengine/godot/pull/99289)). +- Android: Set default `ACCESS_FILESYSTEM` root for FileDialog ([GH-99310](https://github.com/godotengine/godot/pull/99310)). +- Add `Toggle` selection mode to `ItemList` ([GH-99355](https://github.com/godotengine/godot/pull/99355)). +- Fix button state of grid and highlight layer in tile map layer editor ([GH-99357](https://github.com/godotengine/godot/pull/99357)). +- ItemList: highlight selected items and draw `cursor`-stylebox last ([GH-99361](https://github.com/godotengine/godot/pull/99361)). +- Expose state machine focus color to theming ([GH-99409](https://github.com/godotengine/godot/pull/99409)). +- Fix SVG font rendering ([GH-99459](https://github.com/godotengine/godot/pull/99459)). +- ColorPicker: Fix OKHSL circle in HSV mode ([GH-99461](https://github.com/godotengine/godot/pull/99461)). +- RTL: Add tooltip support to meta/url tag ([GH-99481](https://github.com/godotengine/godot/pull/99481)). +- TextServer: Fix some line breaking edge cases ([GH-99488](https://github.com/godotengine/godot/pull/99488)). +- Add `get_connection_count` function to `GraphEdit` ([GH-99564](https://github.com/godotengine/godot/pull/99564)). +- Fix native file dialog filter selection in save dialogs ([GH-99595](https://github.com/godotengine/godot/pull/99595)). +- macOS: Use native window drag for the custom editor title bars ([GH-99642](https://github.com/godotengine/godot/pull/99642)). +- RTL: Fix clearing text with `set_text("")` ([GH-99665](https://github.com/godotengine/godot/pull/99665)). +- RTL: Parse "\r\n" as a single paragraph break, add some documentation notes ([GH-99668](https://github.com/godotengine/godot/pull/99668)). +- Improve documentation for tooltip-related methods ([GH-99679](https://github.com/godotengine/godot/pull/99679)). +- Show `TextureProgressBar` radial center cross only when editing the scene ([GH-99685](https://github.com/godotengine/godot/pull/99685)). +- Rename `SubViewportContainer` option `consume_drag_and_drop` to `mouse_target` ([GH-99691](https://github.com/godotengine/godot/pull/99691)). +- Fix RTL visuals for sliders ([GH-99708](https://github.com/godotengine/godot/pull/99708)). +- Fix removing last digit in spinbox while `update_on_text_changed` is true ([GH-99721](https://github.com/godotengine/godot/pull/99721)). +- Fix physics picking when hovering an embedded window ([GH-99771](https://github.com/godotengine/godot/pull/99771)). +- Allow copy/select shortcuts when `editable` is false in `LineEdit` ([GH-99822](https://github.com/godotengine/godot/pull/99822)). +- Fix `switch_on_hover` for `MenuButton` ([GH-99849](https://github.com/godotengine/godot/pull/99849)). +- Add horizontal center for ColorPicker buttons ([GH-99882](https://github.com/godotengine/godot/pull/99882)). +- Introduce `Viewport` functions for keeping the mouse over state consistent ([GH-99890](https://github.com/godotengine/godot/pull/99890)). +- Label: Fix empty paragraph height ([GH-99906](https://github.com/godotengine/godot/pull/99906)). +- Label: Fix min. width ([GH-99915](https://github.com/godotengine/godot/pull/99915)). +- Change default Arabic font to Vazirmatn ([GH-100053](https://github.com/godotengine/godot/pull/100053)). +- [Windows & macOS] Fix popup window shows behind `always_on_top` parent ([GH-100179](https://github.com/godotengine/godot/pull/100179)). +- Android: Support for DisplayServer base color retrieval ([GH-100200](https://github.com/godotengine/godot/pull/100200)). +- Fix user selection on top of `bgcolor` areas in a `RichTextLabel` ([GH-100208](https://github.com/godotengine/godot/pull/100208)). +- LineEdit: add member `keep_editing_on_text_submit` ([GH-100240](https://github.com/godotengine/godot/pull/100240)). +- Allow canceling drag-and-drop with right mouse button ([GH-100259](https://github.com/godotengine/godot/pull/100259)). +- Don't emit `text_changed` signal when clearing empty LineEdit ([GH-100275](https://github.com/godotengine/godot/pull/100275)). +- Improve emoji SVG parsing by caching ([GH-100300](https://github.com/godotengine/godot/pull/100300)). +- Fix 3D ruler theme overrides ([GH-100312](https://github.com/godotengine/godot/pull/100312)). +- Add `get_selection_line_offset` to `RichTextLabel` ([GH-100329](https://github.com/godotengine/godot/pull/100329)). +- Itemlist: draw focus stylebox after items ([GH-100429](https://github.com/godotengine/godot/pull/100429)). +- Add `get_line_range()` to `RichTextLabel` ([GH-100432](https://github.com/godotengine/godot/pull/100432)). +- Fix `ViewPanner` panning-mouse-warp ([GH-100444](https://github.com/godotengine/godot/pull/100444)). +- Clear syntax highlighter cache when theme or syntax highlighter is changed ([GH-100451](https://github.com/godotengine/godot/pull/100451)). +- Highlight hovered `GraphEdit` connection by widening the line ([GH-100456](https://github.com/godotengine/godot/pull/100456)). +- TextServer: Fix space trimming around mandatory line breaks ([GH-100492](https://github.com/godotengine/godot/pull/100492)). +- Fix `RichTextLabel` bbcode rainbow play reversed and paused ([GH-100494](https://github.com/godotengine/godot/pull/100494)). +- TextServer: Fix use of `find_char` in text servers ([GH-100562](https://github.com/godotengine/godot/pull/100562)). +- [Windows, FileDialog] Prepend drive letter to the absolute paths without drive letter ([GH-100595](https://github.com/godotengine/godot/pull/100595)). +- EditorFileDialog: Do not update file selection on filter change if nothing was previously selected ([GH-100596](https://github.com/godotengine/godot/pull/100596)). +- Fix Android native file picker ([GH-100607](https://github.com/godotengine/godot/pull/100607)). +- Unset last focused window when it is destroyed ([GH-100637](https://github.com/godotengine/godot/pull/100637)). +- MenuBar: Use PopupMenu title property as a menu name ([GH-100671](https://github.com/godotengine/godot/pull/100671)). +- Tweak `TextureProgressBar` `NOTIFICATION_DRAW` to support 9-patch stretch in radial modes ([GH-100697](https://github.com/godotengine/godot/pull/100697)). +- Handle changing ItemLists from signals ([GH-100714](https://github.com/godotengine/godot/pull/100714)). +- Android: Fix `Window` size changes ignored when node is not in tree ([GH-100746](https://github.com/godotengine/godot/pull/100746)). +- Allow overriding SpinBox value on `focus_exited` ([GH-100860](https://github.com/godotengine/godot/pull/100860)). +- Prevent tooltip from showing when hovering past the end of script line ([GH-100913](https://github.com/godotengine/godot/pull/100913)). +- ColorPicker: Fix cursor position in OKHSL wheel ([GH-100930](https://github.com/godotengine/godot/pull/100930)). +- ColorPicker: Improve the accuracy of hue slider in OKHSL mode ([GH-100931](https://github.com/godotengine/godot/pull/100931)). +- Fix ProjectTag button variation ([GH-100999](https://github.com/godotengine/godot/pull/100999)). +- Fix nullptr crash with freed `GraphNode` in GraphEditArranger ([GH-101005](https://github.com/godotengine/godot/pull/101005)). +- [macOS/Windows] Add `Emoji & Symbols` context menu item to LineEdit/TextEdit to show system character picker ([GH-101021](https://github.com/godotengine/godot/pull/101021)). +- Android: Implement support for `native dialog` ([GH-101061](https://github.com/godotengine/godot/pull/101061)). +- Fix `has_font` and `has_font_size` always return true ([GH-101066](https://github.com/godotengine/godot/pull/101066)). +- ColorPicker: remove unused children and fix sample bugs ([GH-101100](https://github.com/godotengine/godot/pull/101100)). +- Tree - fix cusor selection in `multi` selection-mode ([GH-101160](https://github.com/godotengine/godot/pull/101160)). +- Fix large `TextEdit` width resize performance when wrapping disabled ([GH-101175](https://github.com/godotengine/godot/pull/101175)). +- Fix `get_visible_line_count` in RichTextLabel ([GH-101205](https://github.com/godotengine/godot/pull/101205)). +- Window: Expose `start_drag` and `start_resize` methods (for both native and embedded windows) ([GH-101221](https://github.com/godotengine/godot/pull/101221)). +- Fix gui overflow in Android editor ([GH-101234](https://github.com/godotengine/godot/pull/101234)). +- Fix menus and dropdowns requiring two clicks ([GH-101246](https://github.com/godotengine/godot/pull/101246)). +- Fix color picking on Linux/X11 ([GH-101266](https://github.com/godotengine/godot/pull/101266)). +- Fix non-typed Dictionary keys displayed as `<null>` in the inspector ([GH-101278](https://github.com/godotengine/godot/pull/101278)). +- Fix `__focus_rect` meta access error when resizing `Tree` ([GH-101280](https://github.com/godotengine/godot/pull/101280)). +- Add `ColorPicker` cursor background and reuse the cursor for wheel ([GH-101383](https://github.com/godotengine/godot/pull/101383)). +- RTL: Fix "fade" effect char index calculations ([GH-101481](https://github.com/godotengine/godot/pull/101481)). +- RTL: Add cell option to control if cell is shrunk to its contents width ([GH-101482](https://github.com/godotengine/godot/pull/101482)). +- Fix legacy color picker crash ([GH-101513](https://github.com/godotengine/godot/pull/101513)). +- RTL: Fix character effect offset ([GH-101532](https://github.com/godotengine/godot/pull/101532)). +- Always pick widest style as min width between unselected and hovered in `TabBar` ([GH-101541](https://github.com/godotengine/godot/pull/101541)). +- Fix TextEdit breakpoint hover not hiding on mouse exit ([GH-101613](https://github.com/godotengine/godot/pull/101613)). +- Fix Follow Focus in a rotated `ScrollContainer` ([GH-101625](https://github.com/godotengine/godot/pull/101625)). +- TextServer: Fix text buffer not processing strings added after `shape` ([GH-101626](https://github.com/godotengine/godot/pull/101626)). +- TextEdit: Fix `viewport_to_caret` using start of IME text instead of IME caret/selection ([GH-101629](https://github.com/godotengine/godot/pull/101629)). +- TextServer: Fix ICU data incorrectly marked as loaded even if file was not found ([GH-101685](https://github.com/godotengine/godot/pull/101685)). +- Make dialogs non-cancelable on Android ([GH-101689](https://github.com/godotengine/godot/pull/101689)). +- Fix `ViewportTexture::get_size` ([GH-101700](https://github.com/godotengine/godot/pull/101700)). +- Fix Label vertical line alignment ([GH-101771](https://github.com/godotengine/godot/pull/101771)). +- TextServer: Fix embedded object keys in substrings ([GH-101791](https://github.com/godotengine/godot/pull/101791)). +- Fix spinbox input events propagating during dragging, breaking focus ([GH-101825](https://github.com/godotengine/godot/pull/101825)). +- Tree - fix `ui_select` ([GH-101842](https://github.com/godotengine/godot/pull/101842)). +- RTL: Fix `ready` signal sent too early in single threaded RTL ([GH-101868](https://github.com/godotengine/godot/pull/101868)). +- Fix `OptionButton.show_popup` width ([GH-101876](https://github.com/godotengine/godot/pull/101876)). +- ItemList: Fix `text_overrun_behavior` ([GH-101899](https://github.com/godotengine/godot/pull/101899)). +- Fix ColorPicker hide save/load swatches for presets_visible ([GH-101913](https://github.com/godotengine/godot/pull/101913)). +- Fix ColorPicker Swatches button width ([GH-101923](https://github.com/godotengine/godot/pull/101923)). +- TextureProgressBar: minimum size selection as maximum among all textures ([GH-101957](https://github.com/godotengine/godot/pull/101957)). +- Fix ColorPicker load/save swatches button interactions ([GH-101960](https://github.com/godotengine/godot/pull/101960)). +- Fix `Itemlist` font color in `Light` editor themes ([GH-101978](https://github.com/godotengine/godot/pull/101978)). +- Fix native popup menus position in embedded windows ([GH-102079](https://github.com/godotengine/godot/pull/102079)). +- Fix FILE_MODE_OPEN_ANY file dialog not selecting folders ([GH-102080](https://github.com/godotengine/godot/pull/102080)). +- Add check for float texture linear filtering support ([GH-102089](https://github.com/godotengine/godot/pull/102089)). +- Fix `get_item_area_rect` when tree is scrolled ([GH-102116](https://github.com/godotengine/godot/pull/102116)). +- Optimize `Font` calculations by avoiding unnecessary copy-on-write ([GH-102132](https://github.com/godotengine/godot/pull/102132)). +- Fix TextEdit visible line count when setting text ([GH-102296](https://github.com/godotengine/godot/pull/102296)). +- Make `CharFXTransform.font` property read only, add some extra documentation notes ([GH-102342](https://github.com/godotengine/godot/pull/102342)). +- Forward color picker preview mouse button events to the window underneath ([GH-102343](https://github.com/godotengine/godot/pull/102343)). +- RTL: Fix updating region without updating texture ([GH-102344](https://github.com/godotengine/godot/pull/102344)). +- Fix ColorPicker RAW alpha slider theme ([GH-102349](https://github.com/godotengine/godot/pull/102349)). +- Hide slider for array size selector in editor ([GH-102392](https://github.com/godotengine/godot/pull/102392)). +- FileDialog: Update filename/buttons state when first item is selected on folder/filter change ([GH-102397](https://github.com/godotengine/godot/pull/102397)). +- TextServer: Fix line/word breaks not always updated when applying overrun ([GH-102402](https://github.com/godotengine/godot/pull/102402)). +- Fix Tree `item_margin` for low spacing values in Editor Theme ([GH-102438](https://github.com/godotengine/godot/pull/102438)). +- TextEdit: Update syntax highlighting when IME composition string is updated ([GH-102472](https://github.com/godotengine/godot/pull/102472)). +- Add ZWSP to the list of space characters ([GH-102474](https://github.com/godotengine/godot/pull/102474)). +- Hide EditorSpinSlider slider for VectorNI ([GH-102488](https://github.com/godotengine/godot/pull/102488)). +- Hide EditorSpinSlider slider for Rect2i ([GH-102518](https://github.com/godotengine/godot/pull/102518)). +- Fix TextEdit cusor shape when mouse is held ([GH-102556](https://github.com/godotengine/godot/pull/102556)). +- Android: Add Snackbar UI component ([GH-102590](https://github.com/godotengine/godot/pull/102590)). +- Fix CodeEdit line length guideline zoomed position ([GH-102597](https://github.com/godotengine/godot/pull/102597)). +- Itemlist: Fix `text_overrun` when using `fixed_icon_size` ([GH-102603](https://github.com/godotengine/godot/pull/102603)). +- Fix mouse input on popup shadows misbehaving with `content_scale_factor` ([GH-102625](https://github.com/godotengine/godot/pull/102625)). +- TextServer: Use all available space when string is too short for ellipsis ([GH-102647](https://github.com/godotengine/godot/pull/102647)). +- Use fallback locale from project settings instead of hardcoded "en" for TextServer ([GH-102649](https://github.com/godotengine/godot/pull/102649)). +- Fix tree selecting hidden items ([GH-102738](https://github.com/godotengine/godot/pull/102738)). +- Fix TreeItem button tooltip trigger area offset ([GH-102749](https://github.com/godotengine/godot/pull/102749)). +- Fix inspector follow focus when child is focused ([GH-102775](https://github.com/godotengine/godot/pull/102775)). +- Fix `GraphEdit::frame_rect_changed` signal parameter type ([GH-102796](https://github.com/godotengine/godot/pull/102796)). +- Fix editor UI showing empty string for unknown locales ([GH-102798](https://github.com/godotengine/godot/pull/102798)). +- Sync native and embedded dialog missing extension handling ([GH-102828](https://github.com/godotengine/godot/pull/102828)). +- Fix Tree Mouse hover position ([GH-102842](https://github.com/godotengine/godot/pull/102842)). +- TextServer: Fix space trimming on line break ([GH-102854](https://github.com/godotengine/godot/pull/102854)). +- Fix TextEdit BiDi override ([GH-102895](https://github.com/godotengine/godot/pull/102895)). +- IME: Do not redraw and move caret on IME update w/o text/position changes ([GH-103059](https://github.com/godotengine/godot/pull/103059)). +- Fix Tree hover position with multiple columns ([GH-103168](https://github.com/godotengine/godot/pull/103168)). +- Fix label clipping when ascent/descent are fractional ([GH-103192](https://github.com/godotengine/godot/pull/103192)). +- Label: Fix rounding errors with fractional scale ([GH-103224](https://github.com/godotengine/godot/pull/103224)). + +#### I18n + +- Add Russian translation for Linux .desktop file ([GH-95275](https://github.com/godotengine/godot/pull/95275)). +- Split `TranslationServer` into its own file ([GH-95549](https://github.com/godotengine/godot/pull/95549)). +- Add translation domain ([GH-95787](https://github.com/godotengine/godot/pull/95787)). +- Move pseudolocalization into `TranslationDomain` ([GH-96230](https://github.com/godotengine/godot/pull/96230)). +- TranslationServer: Add fast path for comparison of equal locales ([GH-96462](https://github.com/godotengine/godot/pull/96462)). +- Fix `RichTextLabel`'s modified stack being wiped on translation changes ([GH-97061](https://github.com/godotengine/godot/pull/97061)). +- Set auto translate mode for drag previews ([GH-97173](https://github.com/godotengine/godot/pull/97173)). +- Don't list CSV as a valid extension for `Translation` resource ([GH-97222](https://github.com/godotengine/godot/pull/97222)). +- Better undo action names for localization editor ([GH-97275](https://github.com/godotengine/godot/pull/97275)). +- Add auto translate mode for cells in `Tree` ([GH-97353](https://github.com/godotengine/godot/pull/97353)). +- Add missing `ETR` macros in `ColorPicker` ([GH-97398](https://github.com/godotengine/godot/pull/97398)). +- Add auto translate mode for tooltips ([GH-97406](https://github.com/godotengine/godot/pull/97406)). +- Disable auto translation in EditorDirDialog ([GH-97488](https://github.com/godotengine/godot/pull/97488)). +- Add auto translate mode for items in `ItemList` ([GH-97519](https://github.com/godotengine/godot/pull/97519)). +- Fix `atr_n()` behavior when auto translation is disabled ([GH-97624](https://github.com/godotengine/godot/pull/97624)). +- Add Ukrainian translation for Linux .desktop file ([GH-97686](https://github.com/godotengine/godot/pull/97686)). +- Make TranslationServer singleton variable inline ([GH-97923](https://github.com/godotengine/godot/pull/97923)). +- POT Generator: Add support for `TRANSLATORS:` and `NO_TRANSLATE` comments ([GH-98099](https://github.com/godotengine/godot/pull/98099)). +- Fix some strings not caught by editor pseudolocalization ([GH-98253](https://github.com/godotengine/godot/pull/98253)). +- Don't pseudolocalize empty strings ([GH-98255](https://github.com/godotengine/godot/pull/98255)). +- Don't override auto translate mode of custom tooltip ([GH-98281](https://github.com/godotengine/godot/pull/98281)). +- Fix duplicated entries in `TranslationServer::get_loaded_locales()` ([GH-98547](https://github.com/godotengine/godot/pull/98547)). +- Don't mark `PROPERTY_USAGE_NO_EDITOR` properties for translation ([GH-98571](https://github.com/godotengine/godot/pull/98571)). +- Mark editor pseudolocalization CLI option editor-only ([GH-98688](https://github.com/godotengine/godot/pull/98688)). +- Disable auto translation of `FileDialog`'s file list ([GH-98720](https://github.com/godotengine/godot/pull/98720)). +- Expose `TranslationServer::standardize_locale` `add_default` param publicly ([GH-98972](https://github.com/godotengine/godot/pull/98972)). +- Translate the name of the debugger session tabs ([GH-99054](https://github.com/godotengine/godot/pull/99054)). +- Make editor's shortcut names translated on-site ([GH-99158](https://github.com/godotengine/godot/pull/99158)). +- Fix incorrect order: `TTR(vformat` instead of `vformat(TTR` ([GH-99219](https://github.com/godotengine/godot/pull/99219)). +- Fix missing native file dialog title translation ([GH-99223](https://github.com/godotengine/godot/pull/99223)). +- Fix parsing translations in `EditorTranslationParserPlugin` ([GH-99297](https://github.com/godotengine/godot/pull/99297)). +- Make loading translations from threads safe ([GH-99527](https://github.com/godotengine/godot/pull/99527)). +- Fix theme options in project manager incorrectly using translated text ([GH-101519](https://github.com/godotengine/godot/pull/101519)). +- Fix several i18n issues in editor ([GH-102049](https://github.com/godotengine/godot/pull/102049)). +- CSV import: Generate positive UID for .translation and follow renames ([GH-103120](https://github.com/godotengine/godot/pull/103120)). #### Import -- Move 3D scene import classes to their own folder ([GH-51569](https://github.com/godotengine/godot/pull/51569)). -- Blend import: Allow importing `active_collection_only` ([GH-73941](https://github.com/godotengine/godot/pull/73941)). -- Tweak environment in the Advanced Import Settings dialog ([GH-75787](https://github.com/godotengine/godot/pull/75787)). -- Add secondary light to 3D Advanced Import Settings ([GH-76140](https://github.com/godotengine/godot/pull/76140)). -- Add an editor setting to import resources while unfocused ([GH-76991](https://github.com/godotengine/godot/pull/76991)). -- Fix lossless formats in PortableCompressedTexture2D ([GH-77712](https://github.com/godotengine/godot/pull/77712)). -- GLTF: Update `OMI_physics_body`, add `OMI_physics_shape`, keep `OMI_collider` ([GH-78967](https://github.com/godotengine/godot/pull/78967)). -- Add export settings to the export dialog for GLTF ([GH-79316](https://github.com/godotengine/godot/pull/79316)). -- Refactor DDS loading code ([GH-80900](https://github.com/godotengine/godot/pull/80900)). -- Support loading more DDS formats ([GH-81220](https://github.com/godotengine/godot/pull/81220)). -- Add ufbx for FBX importing ([GH-81746](https://github.com/godotengine/godot/pull/81746)). -- Rename ImportSettings dialogs to have "Dialog" in the name ([GH-82899](https://github.com/godotengine/godot/pull/82899)). -- Fix referring to ResourceImporterScene static importers via instances ([GH-82988](https://github.com/godotengine/godot/pull/82988)). -- Fix desynced duplicate GLTFNode transform properties ([GH-83231](https://github.com/godotengine/godot/pull/83231)). -- Fix Scene Importer crashing when animation or mesh save paths are invalid ([GH-83856](https://github.com/godotengine/godot/pull/83856)). -- Do not mutate source Image in `Image::save_jpg` and use encoder return value ([GH-84546](https://github.com/godotengine/godot/pull/84546)). -- Add support for comment (ignorable) column in translation csv ([GH-84569](https://github.com/godotengine/godot/pull/84569)). -- Reimport file when .import changes ([GH-84974](https://github.com/godotengine/godot/pull/84974)). -- Fix memory leak on error paths in tinyexr loader ([GH-85002](https://github.com/godotengine/godot/pull/85002)). -- Replace `//` with `\\` before sending path to Blender ([GH-85335](https://github.com/godotengine/godot/pull/85335)). -- Update `blender_path` behavior to require exact path to executable instead of trying to guess it ([GH-85448](https://github.com/godotengine/godot/pull/85448)). -- Added proper timeout for blender rpc connection ([GH-85519](https://github.com/godotengine/godot/pull/85519)). -- Fix memory corruption and assert failures in convex decomposition ([GH-85631](https://github.com/godotengine/godot/pull/85631)). -- Add toaster notifications for import warnings ([GH-85807](https://github.com/godotengine/godot/pull/85807)). -- Improve normal map VRAM Compression with RGTC ([GH-85842](https://github.com/godotengine/godot/pull/85842)). -- Fix squish RGTC_R decompression corruption ([GH-85863](https://github.com/godotengine/godot/pull/85863)). -- Prevent overriding file info of another file when reimport creates extra files ([GH-85922](https://github.com/godotengine/godot/pull/85922)). -- Fix `squish` DXT5 RA-As-RG channel swapping ([GH-85967](https://github.com/godotengine/godot/pull/85967)). -- GLTF: Import step interpolation for loc/rot/scale as nearest ([GH-86016](https://github.com/godotengine/godot/pull/86016)). -- Do not print error when editor meta was not found as it will be reimported anyway after ([GH-86137](https://github.com/godotengine/godot/pull/86137)). -- Disable mesh compression if vertex `position.z` is always 0 ([GH-86144](https://github.com/godotengine/godot/pull/86144)). -- Implement `ETC2_R` and `ETC2_RG` compression to etcpak ([GH-86313](https://github.com/godotengine/godot/pull/86313)). -- Support unspecified linear size in DDS files ([GH-86336](https://github.com/godotengine/godot/pull/86336)). -- Add obj importer changes to use ImporterMesh ([GH-86365](https://github.com/godotengine/godot/pull/86365)). -- GLTF: Fix three bugs which prevented extracted textures from being refreshed ([GH-86504](https://github.com/godotengine/godot/pull/86504)). -- Fix data format storage method for PortableCompressedTexture2D ([GH-86835](https://github.com/godotengine/godot/pull/86835)). -- Fix BasisUniversal ETC RA as RG transcoding ([GH-86916](https://github.com/godotengine/godot/pull/86916)). -- Misc changes to the GLTF module before audio PR ([GH-87063](https://github.com/godotengine/godot/pull/87063)). -- Use ETC2 compression for grayscale images ([GH-87144](https://github.com/godotengine/godot/pull/87144)). -- Allow configuring the maximum width for atlas import ([GH-87145](https://github.com/godotengine/godot/pull/87145)). -- Run resource previewer on the main thread if using GL compatibility ([GH-87229](https://github.com/godotengine/godot/pull/87229)). -- Fix crash in `GLTFBufferView::load_buffer_view_data` ([GH-87306](https://github.com/godotengine/godot/pull/87306)). -- Retain meta data set on importer nodes ([GH-87584](https://github.com/godotengine/godot/pull/87584)). -- Fix crash when previewing a scene with a mesh as the root node ([GH-87781](https://github.com/godotengine/godot/pull/87781)). -- Make MeshLibrary export do recursive depth-search for MeshInstance3D nodes ([GH-87923](https://github.com/godotengine/godot/pull/87923)). -- Fix crash when importing a GLTF file with a skeleton as the root ([GH-87933](https://github.com/godotengine/godot/pull/87933)). -- Fix GLTF exporting invalid meshes and attempting to export gizmo meshes ([GH-87934](https://github.com/godotengine/godot/pull/87934)). -- Add "skip file" import option to skip (and exclude from export) importable formats, auto set it for the images used by bitmap font ([GH-87972](https://github.com/godotengine/godot/pull/87972)). -- Optimize when colliders are regenerated for imported meshes ([GH-88045](https://github.com/godotengine/godot/pull/88045)). -- Font: Allow overriding advances, offsets and kerning in the ImageFont import settings ([GH-88088](https://github.com/godotengine/godot/pull/88088)). -- Fix exporting trigger shapes in GLTF ([GH-88201](https://github.com/godotengine/godot/pull/88201)). -- Add support for explicitly-defined compound triggers in GLTF files ([GH-88301](https://github.com/godotengine/godot/pull/88301)). -- Clean up and optimize BasisUniversal ([GH-88464](https://github.com/godotengine/godot/pull/88464)). -- Add ASTC support to BasisUniversal ([GH-88485](https://github.com/godotengine/godot/pull/88485)). -- Rework viewport capture in preview generation ([GH-88589](https://github.com/godotengine/godot/pull/88589)). -- BasisUniversal: Fix texture decompression ([GH-88676](https://github.com/godotengine/godot/pull/88676)). -- Properly calculate binormal when creating SurfaceTool from arrays ([GH-88725](https://github.com/godotengine/godot/pull/88725)). -- Multiple fixes for compressed meshes ([GH-88738](https://github.com/godotengine/godot/pull/88738)). -- Allow preserving the initial bone pose in rest fixer ([GH-88821](https://github.com/godotengine/godot/pull/88821)). -- EditorFileSystem: Add verbose print for file being (re)imported ([GH-88904](https://github.com/godotengine/godot/pull/88904)). -- Fix wrong indexing when generating dummy tangents in GLTF import ([GH-88931](https://github.com/godotengine/godot/pull/88931)). -- Only store vertices referenced by the indices per surface in the glTF importer ([GH-89418](https://github.com/godotengine/godot/pull/89418)). -- BasisUniversal: Fix artifacts on images with resolutions not divisible by 4 ([GH-89426](https://github.com/godotengine/godot/pull/89426)). -- Default to trimesh for generated collision shapes in Advanced Import Settings ([GH-89461](https://github.com/godotengine/godot/pull/89461)). -- Fix method bindings in FBXDocument by making them virtual in GLTFDocument ([GH-89532](https://github.com/godotengine/godot/pull/89532)). -- GLTF: Extract converting hull points to mesh to a helper function ([GH-89542](https://github.com/godotengine/godot/pull/89542)). -- Fix crash when columns are skipped in CSV translation ([GH-89573](https://github.com/godotengine/godot/pull/89573)). -- Fix import and saving related crashes ([GH-89780](https://github.com/godotengine/godot/pull/89780)). -- Fix 2 bugs with scale of position tracks in rest fixer ([GH-90065](https://github.com/godotengine/godot/pull/90065)). -- GLTF export: Propagate `property_list_changed` from extensions ([GH-90225](https://github.com/godotengine/godot/pull/90225)). -- Separate Shape3D resource logic in GLTFPhysicsShape ([GH-90230](https://github.com/godotengine/godot/pull/90230)). -- Fix `GLTFDocument.append_from_scene` crash on null node ([GH-90505](https://github.com/godotengine/godot/pull/90505)). -- Fix errors when re-importing 3D asset files ([GH-90531](https://github.com/godotengine/godot/pull/90531)). -- FBX: Fix material colors ([GH-90554](https://github.com/godotengine/godot/pull/90554)). -- Rename accessor GLTFType to GLTFAccessorType, fix verbose prints, document GLTFAccessor ([GH-90560](https://github.com/godotengine/godot/pull/90560)). -- Fix error when loading SVG imported as Image ([GH-90573](https://github.com/godotengine/godot/pull/90573)). -- Fix FBX texture path resolving ([GH-90635](https://github.com/godotengine/godot/pull/90635)). -- Remove unused Make Streamable option from scene import dialog ([GH-90722](https://github.com/godotengine/godot/pull/90722)). -- Fix FBX and glTF when root nodes are skeleton bones ([GH-90789](https://github.com/godotengine/godot/pull/90789)). -- Resolve bind poses from FBX clusters instead of FBX poses ([GH-91036](https://github.com/godotengine/godot/pull/91036)). -- fbx: Avoid name conflict with humanoid "Root" bone ([GH-91045](https://github.com/godotengine/godot/pull/91045)). -- Fix errors/crashes related to skipped imports ([GH-91078](https://github.com/godotengine/godot/pull/91078)). -- Enable tangents in blend shape format when using normals ([GH-91372](https://github.com/godotengine/godot/pull/91372)). -- FBX: Fix handling missing skins using ufbx importer ([GH-91526](https://github.com/godotengine/godot/pull/91526)). -- FBX: Print ufbx load warnings on import ([GH-91529](https://github.com/godotengine/godot/pull/91529)). -- GLTF export improvements ([GH-91783](https://github.com/godotengine/godot/pull/91783)). -- Editor: Ensure font image rows/columns are positive ([GH-91829](https://github.com/godotengine/godot/pull/91829)). -- Improve memory usage for image import and `PortableCompressedTexture2D` ([GH-92179](https://github.com/godotengine/godot/pull/92179)). -- FBX: Change trimming default and use FBX2glTF for compatibility ([GH-92197](https://github.com/godotengine/godot/pull/92197)). -- Fix script properties being lost and prevent node reference corruption upon scene reimport ([GH-92279](https://github.com/godotengine/godot/pull/92279)). -- Fix reimporting assets with csv in the project ([GH-92320](https://github.com/godotengine/godot/pull/92320)). -- Fix GLTFDocument so it can export CSG Meshes correctly ([GH-92368](https://github.com/godotengine/godot/pull/92368)). -- Avoid crash when importing .glsl in headless ([GH-92539](https://github.com/godotengine/godot/pull/92539)). -- Rename FBX2glTF binary path setting back to 4.2 name ([GH-92571](https://github.com/godotengine/godot/pull/92571)). -- Fix same importer will be added multiple times in `get_importers_for_extension` ([GH-92718](https://github.com/godotengine/godot/pull/92718)). -- Fix Keep/Skip File import selection crash ([GH-92815](https://github.com/godotengine/godot/pull/92815)). -- Fix incorrect camera transform of animation view in the import window ([GH-92974](https://github.com/godotengine/godot/pull/92974)). -- [Image Font Importer] Fix reading advance after hex/dec range ([GH-93074](https://github.com/godotengine/godot/pull/93074)). -- Unset the owner of `ImporterMeshInstance3D` before adding it to skeleton's child ([GH-93117](https://github.com/godotengine/godot/pull/93117)). -- [Image Font Importer] Adds support for `\uXXXX` in the kerning config strings ([GH-93119](https://github.com/godotengine/godot/pull/93119)). -- Fix ProgressDialog crash when importing TTF font ([GH-93161](https://github.com/godotengine/godot/pull/93161)). -- Avoid crashing when scene import settings are empty ([GH-93284](https://github.com/godotengine/godot/pull/93284)). -- Remove `monospace/fixed-width` from the `ResourceImporterImageFont` name and description ([GH-93337](https://github.com/godotengine/godot/pull/93337)). -- Fix `browse_dialog` in Blender scene importer to accept files ([GH-93411](https://github.com/godotengine/godot/pull/93411)). -- Make Basis Universal import quiet unless engine is in verbose mode ([GH-93442](https://github.com/godotengine/godot/pull/93442)). -- Fix default collision shape on imported rigidbody ([GH-93506](https://github.com/godotengine/godot/pull/93506)). -- Editor: Fix importers add-ons after 93238 ([GH-93518](https://github.com/godotengine/godot/pull/93518)). -- Use Hermite instead of Bezier for glTF spline interpolation ([GH-93597](https://github.com/godotengine/godot/pull/93597)). -- Fix reimport by scan parsing dependency paths incorrectly ([GH-93765](https://github.com/godotengine/godot/pull/93765)). -- Fix adding a translation CSV results in errors on initial import for many types of resources ([GH-93919](https://github.com/godotengine/godot/pull/93919)). -- Move GLTFAccessorType into GLTFAccessor ([GH-93920](https://github.com/godotengine/godot/pull/93920)). -- Update vertex color import to handle Blender 4.2 upwards ([GH-93998](https://github.com/godotengine/godot/pull/93998)). -- Fix .blend files with quotation marks in filename fail to import ([GH-94004](https://github.com/godotengine/godot/pull/94004)). -- Fix re-import glb model doesn't change the old glb model ([GH-94020](https://github.com/godotengine/godot/pull/94020)). -- Fix missing options in Project Import Defaults ([GH-94058](https://github.com/godotengine/godot/pull/94058)). -- Fix instanced .blend/GLTF scenes lose all children after update until .tscn is reopened ([GH-94093](https://github.com/godotengine/godot/pull/94093)). -- Fix error message being printed when importing an OBJ with no surfaces ([GH-94102](https://github.com/godotengine/godot/pull/94102)). -- Don't attempt to re-import broken files if they didn't change ([GH-94357](https://github.com/godotengine/godot/pull/94357)). -- Fix handling of missing bin file in gltf separate ([GH-94506](https://github.com/godotengine/godot/pull/94506)). -- Fix LOD generation for meshes with tangents & mirrored UVs ([GH-94682](https://github.com/godotengine/godot/pull/94682)). -- Android Editor: Disable file reimport when .import changes ([GH-94691](https://github.com/godotengine/godot/pull/94691)). -- Fix obj's name set in wrong order when importing ([GH-94968](https://github.com/godotengine/godot/pull/94968)). -- Fix reimporting textures after changing import project settings ([GH-94975](https://github.com/godotengine/godot/pull/94975)). -- Fix performance issue reimport file reload scene ([GH-95225](https://github.com/godotengine/godot/pull/95225)). -- Fix reimport file multiple scenes ([GH-95264](https://github.com/godotengine/godot/pull/95264)). +- Import/export GLTF extras to `node->meta` and back ([GH-86183](https://github.com/godotengine/godot/pull/86183)). +- Add support for loading less common DDS formats ([GH-86204](https://github.com/godotengine/godot/pull/86204)). +- Add option to export Geometry Nodes Instances in Blender importer ([GH-87735](https://github.com/godotengine/godot/pull/87735)). +- ResourceImporterScene: Replace animation bool with an import type string enum ([GH-87787](https://github.com/godotengine/godot/pull/87787)). +- etcpak: Improve image padding and clean up the code ([GH-89567](https://github.com/godotengine/godot/pull/89567)). +- BasisUniversal: Use RGTC compression when available ([GH-90170](https://github.com/godotengine/godot/pull/90170)). +- Add Betsy to speed up BC6 compression ([GH-91535](https://github.com/godotengine/godot/pull/91535)). +- Add MagnifyGesture to Advanced Import dialog zooming ([GH-92235](https://github.com/godotengine/godot/pull/92235)). +- Fix FileSystem dock won't show any file folders while loading large projects (v2) ([GH-93064](https://github.com/godotengine/godot/pull/93064)). +- Downsample textures on import if necessary for technical reasons ([GH-93440](https://github.com/godotengine/godot/pull/93440)). +- Preserve existing alpha channel when using Normal Map Invert Y import option ([GH-93714](https://github.com/godotengine/godot/pull/93714)). +- Disable normal raycaster for LOD generation by default ([GH-93727](https://github.com/godotengine/godot/pull/93727)). +- Fix slow import when window is unfocused ([GH-93953](https://github.com/godotengine/godot/pull/93953)). +- Remove unused Optimize Mesh import option from OBJ mesh import ([GH-94100](https://github.com/godotengine/godot/pull/94100)). +- Add Generate LODs, Shadow Mesh and Lightmap UV2 options to OBJ mesh import ([GH-94108](https://github.com/godotengine/godot/pull/94108)). +- [Font Import] Detect pixel fonts and disable subpixel positioning ([GH-94609](https://github.com/godotengine/godot/pull/94609)). +- GLTF: Return the error file path when an import fails ([GH-94751](https://github.com/godotengine/godot/pull/94751)). +- Fix no validation on Blender path on import ([GH-94934](https://github.com/godotengine/godot/pull/94934)). +- GLTF: Propagate owner for root node children ([GH-95121](https://github.com/godotengine/godot/pull/95121)). +- Optimize .hdr loading and RGB9E5 conversion ([GH-95291](https://github.com/godotengine/godot/pull/95291)). +- ImageFont: Fix escape sequence parsing, add note to the docs ([GH-95299](https://github.com/godotengine/godot/pull/95299)). +- Support importing 1/2/4-bpp BMP images of size non-divisible by 8/4/2 ([GH-95482](https://github.com/godotengine/godot/pull/95482)). +- BMFont: Fix importing fonts with `Match char height` enabled ([GH-95529](https://github.com/godotengine/godot/pull/95529)). +- Fix slow editor load on large projects (v2) ([GH-95678](https://github.com/godotengine/godot/pull/95678)). +- Fix `uid://` paths fail to load at editor startup ([GH-95689](https://github.com/godotengine/godot/pull/95689)). +- CVTT: Include float formats for hdr compression ([GH-95757](https://github.com/godotengine/godot/pull/95757)). +- Betsy: Add caching and BC1 compression support ([GH-95915](https://github.com/godotengine/godot/pull/95915)). +- Add import tab `import_script/path` relative path support ([GH-96079](https://github.com/godotengine/godot/pull/96079)). +- Fix owner warning when importing FBX ([GH-96117](https://github.com/godotengine/godot/pull/96117)). +- Prevent empty post-import script paths throwing errors ([GH-96122](https://github.com/godotengine/godot/pull/96122)). +- GLTF: Only create MeshInstance3D when needed ([GH-96133](https://github.com/godotengine/godot/pull/96133)). +- Prevent automapper throwing obscure error ([GH-96136](https://github.com/godotengine/godot/pull/96136)). +- Make reimported models reimport their owner ([GH-96144](https://github.com/godotengine/godot/pull/96144)). +- Add `get_supported_gltf_extensions` to GLTFDocument ([GH-96251](https://github.com/godotengine/godot/pull/96251)). +- Betsy: Add signed mode for BC6 ([GH-96377](https://github.com/godotengine/godot/pull/96377)). +- Enforce correct type for silhouette filter ([GH-96401](https://github.com/godotengine/godot/pull/96401)). +- Print shader compiler error when betsy shader fails to compile ([GH-96444](https://github.com/godotengine/godot/pull/96444)). +- Fix missing material override after two glb reimports ([GH-96446](https://github.com/godotengine/godot/pull/96446)). +- GLTF: Add `import_pre_generate` and `export_post_convert` extension steps ([GH-96465](https://github.com/godotengine/godot/pull/96465)). +- GLTF: Add `append_gltf_node` to GLTFState ([GH-96468](https://github.com/godotengine/godot/pull/96468)). +- Generate thumbnails on imported scenes ([GH-96544](https://github.com/godotengine/godot/pull/96544)). +- Add "Use Node Type Suffixes" 3D scene import option ([GH-96745](https://github.com/godotengine/godot/pull/96745)). +- GLTF: Don't give up loading a texture if importing it fails ([GH-96778](https://github.com/godotengine/godot/pull/96778)). +- Blend file import: Don't keep original files when not unpacking them ([GH-96782](https://github.com/godotengine/godot/pull/96782)). +- Expose `ResourceImporter::get_format_version` via `EditorImportPlugin::_get_format_version()` ([GH-96802](https://github.com/godotengine/godot/pull/96802)). +- Fix a crash in `ImporterMesh::create_shadow_mesh` for non-triangle surfaces ([GH-96880](https://github.com/godotengine/godot/pull/96880)). +- Fix crash when importing a surface with no UVs after another surface in the same OBJ file that had UVs ([GH-97264](https://github.com/godotengine/godot/pull/97264)). +- Betsy: Implement BC4 compression ([GH-97295](https://github.com/godotengine/godot/pull/97295)). +- Replace squish with bcdec for BC decompression ([GH-97325](https://github.com/godotengine/godot/pull/97325)). +- Allow passing UID to importer ([GH-97363](https://github.com/godotengine/godot/pull/97363)). +- BasisU: Update to 1.50.0 and add HDR support ([GH-97582](https://github.com/godotengine/godot/pull/97582)). +- Fix layered HDR texture import with lossless compression ([GH-97830](https://github.com/godotengine/godot/pull/97830)). +- Assign the correct bone rest transform to nodes with matrix in GLTF ([GH-97938](https://github.com/godotengine/godot/pull/97938)). +- Fix spinbox scrolling for advanced importer controls ([GH-98016](https://github.com/godotengine/godot/pull/98016)). +- GLTF: Fix bad pointer to ImporterMeshInstance3D root node at runtime ([GH-98048](https://github.com/godotengine/godot/pull/98048)). +- Clean up ResourceImporterTexture ([GH-98071](https://github.com/godotengine/godot/pull/98071)). +- Image: More cleanup and reduced code duplication ([GH-98100](https://github.com/godotengine/godot/pull/98100)). +- Fix freeze on non-thread-safe custom importers ([GH-98150](https://github.com/godotengine/godot/pull/98150)). +- [Font Importer] Update Unicode block list to Unicode 16.0 ([GH-98196](https://github.com/godotengine/godot/pull/98196)). +- Don't create rendering device or parse glsl shader in headless mode ([GH-98247](https://github.com/godotengine/godot/pull/98247)). +- DDS: Add support for loading layered textures ([GH-98322](https://github.com/godotengine/godot/pull/98322)). +- LOD: Remove "Raycast Normals" and associated "Normal Split Angle" settings ([GH-98620](https://github.com/godotengine/godot/pull/98620)). +- Set flag for 8 bone weights in GLTFDocument ([GH-98703](https://github.com/godotengine/godot/pull/98703)). +- Reload cached resources in runtime on file reimport ([GH-98710](https://github.com/godotengine/godot/pull/98710)). +- Rewrite index optimization code for maximum efficiency ([GH-98801](https://github.com/godotengine/godot/pull/98801)). +- GLTF: Preserve node visibility on import ([GH-98874](https://github.com/godotengine/godot/pull/98874)). +- GLTF: Don't duplicate textures when importing blend files ([GH-98909](https://github.com/godotengine/godot/pull/98909)). +- bcdec: Fix decompressing mipmaps not divisible by 4 ([GH-98919](https://github.com/godotengine/godot/pull/98919)). +- Betsy: Add BC3 and BC5 support ([GH-99537](https://github.com/godotengine/godot/pull/99537)). +- Round DDS width/height to next divisor multiple for block compression ([GH-99600](https://github.com/godotengine/godot/pull/99600)). +- Style skeleton button on import screen ([GH-99810](https://github.com/godotengine/godot/pull/99810)). +- Consider all texture types for resource thumbnail generation ([GH-100247](https://github.com/godotengine/godot/pull/100247)). +- LightmapGI: Automatically compress new lightmaps ([GH-100327](https://github.com/godotengine/godot/pull/100327)). +- Add support for decompressing ETC2 ([GH-100365](https://github.com/godotengine/godot/pull/100365)). +- bcdec: Fix logic for detecting incomplete blocks ([GH-100405](https://github.com/godotengine/godot/pull/100405)). +- KTX: Add support for loading most ETC-compressed formats ([GH-100524](https://github.com/godotengine/godot/pull/100524)). +- Betsy: Fix stack-use-after-scope when using BC3 and BC5 ([GH-100588](https://github.com/godotengine/godot/pull/100588)). +- Make `EditorSceneFormatImporter::_get_import_options` match EditorScenePostImportPlugin API ([GH-100782](https://github.com/godotengine/godot/pull/100782)). +- Allow post-import plugins to modify `_subresources` ([GH-100792](https://github.com/godotengine/godot/pull/100792)). +- astcenc: Misc improvements and optimizations ([GH-100848](https://github.com/godotengine/godot/pull/100848)). +- astcenc: Allow decompression in non-editor builds ([GH-100856](https://github.com/godotengine/godot/pull/100856)). +- GLTF: Always read `alphaCutoff` property ([GH-101051](https://github.com/godotengine/godot/pull/101051)). +- Add test for GLTFDocument ([GH-101136](https://github.com/godotengine/godot/pull/101136)). +- Web: Export ASTC/BPTC compressed textures ([GH-101178](https://github.com/godotengine/godot/pull/101178)). +- GLTF: Don't write unused light properties ([GH-101271](https://github.com/godotengine/godot/pull/101271)). +- Remove unused `EditorSceneFormatImporter::_get_import_flags` ([GH-101531](https://github.com/godotengine/godot/pull/101531)). +- Fix save path validation for imported scenes ([GH-102213](https://github.com/godotengine/godot/pull/102213)). +- Add missing `Auto (Except Pixel Fonts)` option to advanced import dialog ([GH-102519](https://github.com/godotengine/godot/pull/102519)). +- ThorVG: Explicitly enable embedded texture support with `THORVG_FILE_IO_SUPPORT` ([GH-102781](https://github.com/godotengine/godot/pull/102781)). +- bcdec: Fix unnecessary alignment of texture resolution when only one of its dimensions isn't divisible by 4 ([GH-103259](https://github.com/godotengine/godot/pull/103259)). #### Input -- Add setting for picking only top-most overlapping collision object ([GH-75688](https://github.com/godotengine/godot/pull/75688)). -- Fix `push_input` events not going through after first pressed mouse event ([GH-77730](https://github.com/godotengine/godot/pull/77730)). -- Web: Add IME input support ([GH-79362](https://github.com/godotengine/godot/pull/79362)). -- Support detecting and mapping Ctrl/Alt/Shift/Meta by their left/right physical location ([GH-80231](https://github.com/godotengine/godot/pull/80231)). -- Ensure the active window gains the keyboard focus ([GH-80548](https://github.com/godotengine/godot/pull/80548)). -- Fix controller vibration in macOS and migrate to GameController API ([GH-80709](https://github.com/godotengine/godot/pull/80709)). -- Fix internal events not being delivered to some Window types ([GH-81243](https://github.com/godotengine/godot/pull/81243)). -- Add support for OpenXR hand interaction extension ([GH-81533](https://github.com/godotengine/godot/pull/81533)). -- Add screen-related attributes to mouse input events ([GH-82800](https://github.com/godotengine/godot/pull/82800)). -- Fix InputEventScreenDrag on Android ([GH-84331](https://github.com/godotengine/godot/pull/84331)). -- Windows: Make Windows Ink tablet API default, add dummy driver to disable tablet input ([GH-84708](https://github.com/godotengine/godot/pull/84708)). -- Rework Input action pressed state to support multiple controllers ([GH-84943](https://github.com/godotengine/godot/pull/84943)). -- X11: Send IME update notification deferred ([GH-85306](https://github.com/godotengine/godot/pull/85306)). -- Fix IME key event being erased in macOS ([GH-85458](https://github.com/godotengine/godot/pull/85458)). -- Fix horizontal scroll in editor's 2D view ([GH-85473](https://github.com/godotengine/godot/pull/85473)). -- Add `event_index` to InputEventAction ([GH-86010](https://github.com/godotengine/godot/pull/86010)). -- Add bindings for setting and getting emulation mouse from touch and touch from mouse in input ([GH-86081](https://github.com/godotengine/godot/pull/86081)). -- Add MIDI controller device index to `InputEventMIDI.device` property ([GH-86620](https://github.com/godotengine/godot/pull/86620)). -- Prevent escape key from closing Editor Settings window when filtering for shortcuts ([GH-86654](https://github.com/godotengine/godot/pull/86654)). -- Clear drag preview nodes on `NOTIFICATION_DRAG_END` ([GH-87125](https://github.com/godotengine/godot/pull/87125)). -- macOS: Handle Trackpad / Magic Mouse swipe events and simulate XBUTTON1 / XBUTTON2 buttons ([GH-87277](https://github.com/godotengine/godot/pull/87277)). -- Check action exists in `Input.action_press` and `action_release` ([GH-87324](https://github.com/godotengine/godot/pull/87324)). -- Fix SubViewport physics picking ([GH-87385](https://github.com/godotengine/godot/pull/87385)). -- macOS: Fix missing modifier + space key down events ([GH-87498](https://github.com/godotengine/godot/pull/87498)). -- Add cancel transformation shortcut to 2D to match 3D ([GH-87616](https://github.com/godotengine/godot/pull/87616)). -- Remove unused internal Variable `Viewport::gui_input_group` ([GH-87632](https://github.com/godotengine/godot/pull/87632)). -- Fix LineEdit behavior for deleting all the way to the left/right ([GH-88057](https://github.com/godotengine/godot/pull/88057)). -- Add rotary input support for Android platform ([GH-88130](https://github.com/godotengine/godot/pull/88130)). -- Allow aborting `SpinSlider` value changes ([GH-88275](https://github.com/godotengine/godot/pull/88275)). -- macOS: Fix `Ctrl+Tab` and `Ctrl+Shift+Tab` not working ([GH-88334](https://github.com/godotengine/godot/pull/88334)). -- Handle warped mouse motion as floating point ([GH-88343](https://github.com/godotengine/godot/pull/88343)). -- macOS: Fix the "Toggle Hidden Files" shortcut ([GH-88389](https://github.com/godotengine/godot/pull/88389)). -- Fix global position for `InputEventMouse` in `viewport::push_input` ([GH-88473](https://github.com/godotengine/godot/pull/88473)). -- macOS: Ignore window decorations in confined mouse mode to match other platforms ([GH-88519](https://github.com/godotengine/godot/pull/88519)). -- Wayland: Restore tablet support and handle multiple tools ([GH-88744](https://github.com/godotengine/godot/pull/88744)). -- Improve `cursor_set_custom_image()` method ([GH-88970](https://github.com/godotengine/godot/pull/88970)). -- macOS: Enable input from controllers in the background ([GH-88978](https://github.com/godotengine/godot/pull/88978)). -- Expose `DEVICE_ID_EMULATION` constant in InputEvent ([GH-89526](https://github.com/godotengine/godot/pull/89526)). -- Fix mouse events when `physics_object_picking_first_only` enabled ([GH-89643](https://github.com/godotengine/godot/pull/89643)). -- Prohibit execution of delayed input events by different means ([GH-89920](https://github.com/godotengine/godot/pull/89920)). -- Fix a special case for button masks ([GH-89926](https://github.com/godotengine/godot/pull/89926)). -- Fix `Input.action_press()` accepting out-of-bounds strength values ([GH-89946](https://github.com/godotengine/godot/pull/89946)). -- Windows: Fix mouse handling regression ([GH-90382](https://github.com/godotengine/godot/pull/90382)). -- Update undo redo allowed after switching scene tab ([GH-90616](https://github.com/godotengine/godot/pull/90616)). -- iOS: Fix sensors orientation ([GH-91050](https://github.com/godotengine/godot/pull/91050)). -- Add `amplitude` argument to `Input.vibrate_handheld` ([GH-91143](https://github.com/godotengine/godot/pull/91143)). -- Fix Steam input "crc" errors, and some other Coverity reports of uninitialized scalar variable ([GH-91454](https://github.com/godotengine/godot/pull/91454)). -- [Web IME] Fix suggestion window position in Chromium based browsers ([GH-91695](https://github.com/godotengine/godot/pull/91695)). -- Disable viewports inputs when dragging and dropping into the viewport ([GH-91845](https://github.com/godotengine/godot/pull/91845)). -- Use Option+Cmd+Left/Right for script editor history navigation on macOS ([GH-91887](https://github.com/godotengine/godot/pull/91887)). -- Fix invalid detection of mouse input ([GH-92133](https://github.com/godotengine/godot/pull/92133)). -- Clean `Input::frame_parsed_events` before de-initialising scripting languages to ensure no script created events exist at the exit ([GH-92201](https://github.com/godotengine/godot/pull/92201)). -- Remove duplicate shortcut definitions ([GH-92223](https://github.com/godotengine/godot/pull/92223)). -- Windows: Use current keyboard state instead of saved values for modifier keys ([GH-92415](https://github.com/godotengine/godot/pull/92415)). -- Use current mouse button state instead of saved values ([GH-92424](https://github.com/godotengine/godot/pull/92424)). -- Fix creating cursor image from `AtlasTexture` ([GH-92702](https://github.com/godotengine/godot/pull/92702)). -- Fix Windows Activate Process leading to stuck input ([GH-92742](https://github.com/godotengine/godot/pull/92742)). -- Add input event callback to `DisplayServerHeadless` ([GH-92806](https://github.com/godotengine/godot/pull/92806)). -- Fix Left Joystick motion not registering on Android ([GH-93011](https://github.com/godotengine/godot/pull/93011)). -- Wayland: Implement IME support ([GH-93021](https://github.com/godotengine/godot/pull/93021)). -- Window: Ignore duplicate mouse enter events ([GH-93100](https://github.com/godotengine/godot/pull/93100)). -- Windows Input use GetKeyState instead of GetAsyncKeyState ([GH-93105](https://github.com/godotengine/godot/pull/93105)). -- Prevent node rename shortcut from stealing focus from controls ([GH-93165](https://github.com/godotengine/godot/pull/93165)). -- Fix ruler tool sticks after right click ([GH-93174](https://github.com/godotengine/godot/pull/93174)). -- Fix trackpads and graphics tablets being recognized as controllers on Linux/*BSD ([GH-93352](https://github.com/godotengine/godot/pull/93352)). -- Add stub method for `mouse_get_position` in headless display server ([GH-93494](https://github.com/godotengine/godot/pull/93494)). -- Fix undoredo handling in some dialogs ([GH-93898](https://github.com/godotengine/godot/pull/93898)). -- Wayland: Scale relative pointer motion ([GH-94021](https://github.com/godotengine/godot/pull/94021)). -- Web: Fix IME blocking controls ([GH-94024](https://github.com/godotengine/godot/pull/94024)). -- Fix custom Ctrl-Space shortcut in Script Editor adds a space ([GH-94033](https://github.com/godotengine/godot/pull/94033)). -- Cleanup Android input on render thread settings ([GH-94052](https://github.com/godotengine/godot/pull/94052)). -- Winink: Check pointer button states ([GH-94063](https://github.com/godotengine/godot/pull/94063)). -- Add Home/End to text caret movements on macOS ([GH-94073](https://github.com/godotengine/godot/pull/94073)). -- [iOS/Text Input] Avoid deleting and reentering unchanged part of text ([GH-94114](https://github.com/godotengine/godot/pull/94114)). -- Fix physics tick count in `Input.action_press` and `Input.action_release` ([GH-94413](https://github.com/godotengine/godot/pull/94413)). -- Fix update mouse cursor state wrong mouse position ([GH-94987](https://github.com/godotengine/godot/pull/94987)). -- X11: Use motion event button state instead of async state ([GH-95008](https://github.com/godotengine/godot/pull/95008)). -- Windows: Reject `WM_POINTER(UP/DOWN)` messages for non pen pointer type ([GH-95155](https://github.com/godotengine/godot/pull/95155)). +- Enable Drag and Drop between SubViewports and Windows ([GH-67531](https://github.com/godotengine/godot/pull/67531)). +- Add several shortcuts for text shader editor ([GH-84063](https://github.com/godotengine/godot/pull/84063)). +- Add missing check to avoid passing handled input event to collision object 3d ([GH-92536](https://github.com/godotengine/godot/pull/92536)). +- Wayland: Switch pointer position handling to doubles ([GH-94022](https://github.com/godotengine/godot/pull/94022)). +- Apple: Bug fixes and improvements for game controllers ([GH-94580](https://github.com/godotengine/godot/pull/94580)). +- Fix gamepad triggers not working on web exports ([GH-94720](https://github.com/godotengine/godot/pull/94720)). +- GenericTilePolygonEditor: Add support for Pan and Magnify gestures ([GH-94904](https://github.com/godotengine/godot/pull/94904)). +- OpenXR - Add Logitech Mx Ink Stylus Support ([GH-95253](https://github.com/godotengine/godot/pull/95253)). +- Enable `BUTTON_FORWARD` and `BUTTON_BACK` mouse buttons on Android ([GH-95460](https://github.com/godotengine/godot/pull/95460)). +- Fix `InputMap::event_get_index` to handle unmatched events correctly ([GH-95750](https://github.com/godotengine/godot/pull/95750)). +- Windows: Hide cursor before moving ([GH-96148](https://github.com/godotengine/godot/pull/96148)). +- Fix project manager stealing focus on i3 ([GH-96829](https://github.com/godotengine/godot/pull/96829)). +- Allow `JOY_AXIS_INVALID` in InputEventJoypadMotion's `axis` ([GH-97068](https://github.com/godotengine/godot/pull/97068)). +- Use `SNAME` for `ui` actions in Viewport ([GH-97070](https://github.com/godotengine/godot/pull/97070)). +- Change the default deadzone value for new actions from 0.5 to 0.2 ([GH-97281](https://github.com/godotengine/godot/pull/97281)). +- Fix renaming nodes on X11 ([GH-97447](https://github.com/godotengine/godot/pull/97447)). +- Fix `emulate_mouse_from_touch` setting affecting editor ([GH-97649](https://github.com/godotengine/godot/pull/97649)). +- Restore the original `Godot` preset zoom modifier ([GH-97955](https://github.com/godotengine/godot/pull/97955)). +- Add `Tablet/Trackpad` 3D navigation preset ([GH-97985](https://github.com/godotengine/godot/pull/97985)). +- Fix mouse emulation always sending events to the main window ([GH-98318](https://github.com/godotengine/godot/pull/98318)). +- Fix incorrect `KEY_MODIFIER_MASK` value ([GH-98441](https://github.com/godotengine/godot/pull/98441)). +- Fix `Input::remove_joy_mapping` ([GH-98792](https://github.com/godotengine/godot/pull/98792)). +- Get joypad's vendor ID, product ID and name on Windows for XInput devices ([GH-98861](https://github.com/godotengine/godot/pull/98861)). +- Fix IME deactivation events not send on focus loss. Do not unset AltGr modifiers in non-IME input ([GH-98887](https://github.com/godotengine/godot/pull/98887)). +- Replace default deadzone magic number with named constant and fix `InputEventJoypadMotion::set_axis_value` unresponsiveness ([GH-99135](https://github.com/godotengine/godot/pull/99135)). +- Revert "Fix `InputEvent` device id clash" and add a compatibility function ([GH-99449](https://github.com/godotengine/godot/pull/99449)). +- Remove temporary project conversion ([GH-99479](https://github.com/godotengine/godot/pull/99479)). +- Fix underscore input not working with jp106 keyboard on Wayland platform ([GH-99633](https://github.com/godotengine/godot/pull/99633)). +- Fix discarded input event metadata in `xformed_by` ([GH-100044](https://github.com/godotengine/godot/pull/100044)). +- Fix undo behavior on `EditorSettingsDialog::_update_builtin_action` ([GH-100069](https://github.com/godotengine/godot/pull/100069)). +- Introduce a conversion for editor shortcuts ([GH-100334](https://github.com/godotengine/godot/pull/100334)). +- Fix Wayland left/right scroll wheel issues ([GH-100638](https://github.com/godotengine/godot/pull/100638)). +- Fix last character deletion in Wayland IME input ([GH-100715](https://github.com/godotengine/godot/pull/100715)). +- Warn if `virtual_keyboard_get_height()` is unsupported ([GH-100892](https://github.com/godotengine/godot/pull/100892)). +- Fix incorrect Unicode key mapping on Windows ([GH-100960](https://github.com/godotengine/godot/pull/100960)). +- Fix double emission of `NOTIFICATION_WM_GO_BACK_REQUEST` ([GH-101458](https://github.com/godotengine/godot/pull/101458)). +- Add shortcut for Lookup Symbol action ([GH-101565](https://github.com/godotengine/godot/pull/101565)). +- Wayland: Fix excessive IME updates ([GH-101684](https://github.com/godotengine/godot/pull/101684)). +- Windows: Override key codes with Unicode values for OEM keys only ([GH-101754](https://github.com/godotengine/godot/pull/101754)). +- Windows: Fix left/right Shift key regression ([GH-101763](https://github.com/godotengine/godot/pull/101763)). +- Update SubViewport documentation to include a note about input behavior ([GH-101818](https://github.com/godotengine/godot/pull/101818)). +- Wayland: Pass unmodified symbols to key events ([GH-101848](https://github.com/godotengine/godot/pull/101848)). +- Fix Make Sub-Resources Unique shortcut focus ([GH-101918](https://github.com/godotengine/godot/pull/101918)). +- Delegate handling `mouse_mode` to the `DisplayServer` ([GH-101924](https://github.com/godotengine/godot/pull/101924)). +- Linux/BSD: Modify only keypad keys ([GH-102169](https://github.com/godotengine/godot/pull/102169)). +- Fix a crash on iOS from Joypad initialization ([GH-102220](https://github.com/godotengine/godot/pull/102220)). +- Fix `fr+oss` layout issues with KP period ([GH-102602](https://github.com/godotengine/godot/pull/102602)). +- Wayland: Unstuck keys with same keycode ([GH-102641](https://github.com/godotengine/godot/pull/102641)). +- Web: Refactor `mouse_mode` setters in display server ([GH-102719](https://github.com/godotengine/godot/pull/102719)). +- Prevent pending input event callbacks from erasing the window in the middle of a loop ([GH-102993](https://github.com/godotengine/godot/pull/102993)). +- Android: Inform that sensors must be enabled in ProjectSettings ([GH-103132](https://github.com/godotengine/godot/pull/103132)). +- Change default deadzone back to 0.5 for `ui_*` actions and axis `pressed` state ([GH-103364](https://github.com/godotengine/godot/pull/103364)). #### Multiplayer -- Fix `complete_auth` notifying the wrong peer ([GH-86257](https://github.com/godotengine/godot/pull/86257)). -- Fix auth not waiting for confirmation in some cases ([GH-86260](https://github.com/godotengine/godot/pull/86260)). -- Fix spawned nodes not working after reset ([GH-87185](https://github.com/godotengine/godot/pull/87185)). -- Fix remote net ID cleanup ([GH-87186](https://github.com/godotengine/godot/pull/87186)). -- Handle cleanup of "scene cache" nodes ([GH-87190](https://github.com/godotengine/godot/pull/87190)). -- Networking scene multiplayer: Fix removing connected peer during disconnection ([GH-88826](https://github.com/godotengine/godot/pull/88826)). -- Fix replication config reload error ([GH-89108](https://github.com/godotengine/godot/pull/89108)). -- Fix node config warning not updating for `Multiplayer{Spawner,Synchronizer}` ([GH-89839](https://github.com/godotengine/godot/pull/89839)). -- Gracefully handle cache confirmation of deleted nodes ([GH-90027](https://github.com/godotengine/godot/pull/90027)). -- Fix dead code doing unnecessary allocation ([GH-90315](https://github.com/godotengine/godot/pull/90315)). -- Fix `disconnect_peer` not doing the proper cleanup ([GH-91011](https://github.com/godotengine/godot/pull/91011)). -- Modify MultiplayerSpawner scene path error checking ([GH-91084](https://github.com/godotengine/godot/pull/91084)). -- Fix Multiplayer Spawner freeing node after client disconnected Issue ([GH-92359](https://github.com/godotengine/godot/pull/92359)). -- Fix undo not updating spawn checkbox in replication editor ([GH-92735](https://github.com/godotengine/godot/pull/92735)). -- Instantiate a replication config on synchronizer creation ([GH-93374](https://github.com/godotengine/godot/pull/93374)). -- Partially revert cache cleanup, track paths as fallback ([GH-94984](https://github.com/godotengine/godot/pull/94984)). -- ENet: Better handle disconnected peers in DTLS server ([GH-95067](https://github.com/godotengine/godot/pull/95067)). -- Avoid error spam in relay protocol when clients disconnect ([GH-95192](https://github.com/godotengine/godot/pull/95192)). -- Fix relay protocol routing with negative targets ([GH-95194](https://github.com/godotengine/godot/pull/95194)). +- Expose `get_rpc_config` and `get_node_rpc_config` ([GH-96024](https://github.com/godotengine/godot/pull/96024)). +- Fix broken RPCs after dictionary keys type change ([GH-96915](https://github.com/godotengine/godot/pull/96915)). +- Add unit tests for `SceneMultiplayer` ([GH-97607](https://github.com/godotengine/godot/pull/97607)). +- SceneRPCInterface: Sort rpc names using `StringLikeVariantOrder` ([GH-98472](https://github.com/godotengine/godot/pull/98472)). +- Handle scene UIDs in MultiplayerSpawner ([GH-99137](https://github.com/godotengine/godot/pull/99137)). +- Fix UID support in MultiplayerSpawner ([GH-99712](https://github.com/godotengine/godot/pull/99712)). +- Move OfflineMultiplayerPeer docs to the module ([GH-99752](https://github.com/godotengine/godot/pull/99752)). +- ENet: Explicitly destroy hosts on close ([GH-102861](https://github.com/godotengine/godot/pull/102861)). #### Navigation -- Add NavigationServer random point queries ([GH-75098](https://github.com/godotengine/godot/pull/75098)). -- Make navigation map spatial queries thread-safe ([GH-79577](https://github.com/godotengine/godot/pull/79577)). -- Add isometric cell shape mode to `AStarGrid2D` ([GH-81267](https://github.com/godotengine/godot/pull/81267)). -- Make `target_desired_distance` affect the navigation of `NavigationAgent2D/3D` ([GH-82561](https://github.com/godotengine/godot/pull/82561)). -- Fix missing NavigationLink property updates in constructor ([GH-83802](https://github.com/godotengine/godot/pull/83802)). -- Fix missing NavigationRegion property updates in constructor ([GH-83812](https://github.com/godotengine/godot/pull/83812)). -- Fix missing NavigationAgent property updates in constructor ([GH-83814](https://github.com/godotengine/godot/pull/83814)). -- Fix missing NavigationObstacle property updates in constructor ([GH-83816](https://github.com/godotengine/godot/pull/83816)). -- Add function to get navigation map iteration id from NavigationServer ([GH-84275](https://github.com/godotengine/godot/pull/84275)). -- Improve NavigationServer NavMap sync error msgs ([GH-84278](https://github.com/godotengine/godot/pull/84278)). -- Add missing getters to navigation servers ([GH-84729](https://github.com/godotengine/godot/pull/84729)). -- Fix memory leak in 'NavigationServer3D' involving static obstacles ([GH-84816](https://github.com/godotengine/godot/pull/84816)). -- Do not use travel cost for minimum when re-selecting end point ([GH-85253](https://github.com/godotengine/godot/pull/85253)). -- Fix NavigationRegion2D transform update ([GH-85258](https://github.com/godotengine/godot/pull/85258)). -- Make 2D navigation mesh baking parse all TileMapLayers ([GH-85856](https://github.com/godotengine/godot/pull/85856)). -- Fix default NavigationPolygon source geometry group name ([GH-86458](https://github.com/godotengine/godot/pull/86458)). -- Add NavigationMesh `border_size` property for tile baking ([GH-87378](https://github.com/godotengine/godot/pull/87378)). -- Auto-bake edited NavigationPolygons in the Editor on a timer ([GH-87504](https://github.com/godotengine/godot/pull/87504)). -- Expose `is_baking` method in navigation servers and region nodes ([GH-87715](https://github.com/godotengine/godot/pull/87715)). -- Add means for fixing navmap synchronization errors ([GH-87959](https://github.com/godotengine/godot/pull/87959)). -- Add NavigationPolygon `border_size` property for tile baking ([GH-87961](https://github.com/godotengine/godot/pull/87961)). -- Add a partial path return option for AStar ([GH-88047](https://github.com/godotengine/godot/pull/88047)). -- Fix property hints for parsed collision mask ([GH-88156](https://github.com/godotengine/godot/pull/88156)). -- Fix NavigationRegion errors from signal changes ([GH-88164](https://github.com/godotengine/godot/pull/88164)). -- Extend `NavigationMeshSourceGeometryData[23]D` to allow data merging ([GH-88221](https://github.com/godotengine/godot/pull/88221)). -- Remove NavigationServerDummy warnings ([GH-88375](https://github.com/godotengine/godot/pull/88375)). -- Add some missing compile checks ([GH-88679](https://github.com/godotengine/godot/pull/88679)). -- Add debug visual for NavigationRegion2D bake rect ([GH-88701](https://github.com/godotengine/godot/pull/88701)). -- Fix NavigationObstacle2D debug being affected by Node2D transform ([GH-88895](https://github.com/godotengine/godot/pull/88895)). -- Fix NavigationObstacle3D debug not reacting to visibility changes ([GH-89009](https://github.com/godotengine/godot/pull/89009)). -- Add NavigationObstacle options to affect navigation mesh baking ([GH-89034](https://github.com/godotengine/godot/pull/89034)). -- Add navigation baking crash prevention mechanism ([GH-89692](https://github.com/godotengine/godot/pull/89692)). -- Change 2D navigation mesh baking to use floating point coordinates ([GH-89929](https://github.com/godotengine/godot/pull/89929)). -- Fix `NavigationServer.set_debug_enabled()` doing nothing ([GH-90200](https://github.com/godotengine/godot/pull/90200)). -- Add navigation path simplification ([GH-90434](https://github.com/godotengine/godot/pull/90434)). -- Fix NavigationMeshSourceGeometryData merge crash ([GH-90504](https://github.com/godotengine/godot/pull/90504)). -- Use threads for baking navigation mesh inside editor ([GH-90508](https://github.com/godotengine/godot/pull/90508)). -- Use fmod for navigation mesh border size warning ([GH-90602](https://github.com/godotengine/godot/pull/90602)). -- Update NavigationRegion tests RID function ([GH-90744](https://github.com/godotengine/godot/pull/90744)). -- Remove experimental `constrain_avoidance` from `NavigationRegion2D` ([GH-90747](https://github.com/godotengine/godot/pull/90747)). -- Add navigation mesh source geometry parsers and callbacks ([GH-90876](https://github.com/godotengine/godot/pull/90876)). -- Warn that navigation mesh baking from Meshes is bad for runtime performance ([GH-90921](https://github.com/godotengine/godot/pull/90921)). -- Add NavigationMeshSourceGeometryData append functions ([GH-90935](https://github.com/godotengine/godot/pull/90935)). -- NavigationRegion test suppress warning about visual meshes ([GH-91103](https://github.com/godotengine/godot/pull/91103)). -- Fix TileMapLayer navmesh baking ([GH-91464](https://github.com/godotengine/godot/pull/91464)). -- Allow editing `NavigationObstacle2D` shape vertices ([GH-91872](https://github.com/godotengine/godot/pull/91872)). -- Remove duplicated vertices after 3D NavigationMesh bake ([GH-92181](https://github.com/godotengine/godot/pull/92181)). -- Fix NavigationRegion3D not reacting to runtime debug enabled change ([GH-92288](https://github.com/godotengine/godot/pull/92288)). -- Improve NavigationRegion2D debug performance ([GH-92372](https://github.com/godotengine/godot/pull/92372)). -- Fix crash when baking TileMap navigation ([GH-92422](https://github.com/godotengine/godot/pull/92422)). -- Fix `NavigationServer3D.get_closest_point_to_segment()` with `use_collision` ([GH-92850](https://github.com/godotengine/godot/pull/92850)). -- TileSet: Transform rotated navigation (sub)-polygons individually ([GH-92955](https://github.com/godotengine/godot/pull/92955)). -- Fix NavigationRegion2D debug not clearing canvas item ([GH-92991](https://github.com/godotengine/godot/pull/92991)). -- Fix NavigationRegion2D editor plugin clear button not updating debug visuals ([GH-92994](https://github.com/godotengine/godot/pull/92994)). -- Fix closest edge and face check in `NavigationServer3D.map_get_closest_point_to_segment` ([GH-93227](https://github.com/godotengine/godot/pull/93227)). -- Fix thread-use causing navigation mesh data corruption ([GH-93392](https://github.com/godotengine/godot/pull/93392)). -- Fix thread-use causing navigation source geometry data corruption ([GH-93407](https://github.com/godotengine/godot/pull/93407)). -- Fix potential crash due to invalid navigation mesh ref ([GH-93423](https://github.com/godotengine/godot/pull/93423)). -- Fix thread-use causing navigation polygon data corruption ([GH-93426](https://github.com/godotengine/godot/pull/93426)). -- Remove unused navigation polygon properties ([GH-93485](https://github.com/godotengine/godot/pull/93485)). -- `NavigationServer3D.map_get_closest_point_to_segment` - add an additional shortest distance check ([GH-93541](https://github.com/godotengine/godot/pull/93541)). -- Fix NavigationPolygon not updating consistently on rebakes ([GH-94362](https://github.com/godotengine/godot/pull/94362)). +- Improve pathfinding performance by using a heap to store traversable polygons ([GH-85965](https://github.com/godotengine/godot/pull/85965)). +- Optimize some parts of `NavMap::sync` ([GH-90182](https://github.com/godotengine/godot/pull/90182)). +- Extract navigation-related defaults to separate header ([GH-90945](https://github.com/godotengine/godot/pull/90945)). +- Change param name of AStar's `_estimate_cost` method ([GH-92123](https://github.com/godotengine/godot/pull/92123)). +- Add triangulation partition option to 2D navigation mesh baking ([GH-92560](https://github.com/godotengine/godot/pull/92560)). +- Change 3D navigation edge connection margin debug to only show virtual edge ([GH-92944](https://github.com/godotengine/godot/pull/92944)). +- Replace some distance checks with square distance checks in NavMap ([GH-93005](https://github.com/godotengine/godot/pull/93005)). +- Improve NavigationObstacle3D editor tooling ([GH-93059](https://github.com/godotengine/godot/pull/93059)). +- NavigationPolygon: Implement `get`/`set_polygon` fast paths ([GH-93171](https://github.com/godotengine/godot/pull/93171)). +- Improve `AStarGrid2D` performance when jumping is enabled ([GH-93319](https://github.com/godotengine/godot/pull/93319)). +- Move NavRegion connections to NavMap ([GH-93498](https://github.com/godotengine/godot/pull/93498)). +- Add navigation obstacles to performance monitor stats ([GH-93583](https://github.com/godotengine/godot/pull/93583)). +- Fix AStar2D, AStar3D, AStarGrid2D from not returning a path when the destination is disabled/solid even with `allow_partial_path` option ([GH-94246](https://github.com/godotengine/godot/pull/94246)). +- Change NavigationMesh to also parse collision shapes by default ([GH-95013](https://github.com/godotengine/godot/pull/95013)). +- Add `get_bounds()` function to NavigationMeshSourceGeometryData ([GH-95137](https://github.com/godotengine/godot/pull/95137)). +- Add NavigationLink function to change navigation map ([GH-95456](https://github.com/godotengine/godot/pull/95456)). +- Add navigation region point and segment queries ([GH-96092](https://github.com/godotengine/godot/pull/96092)). +- Move NavigationServer mesh queries to dedicated file ([GH-96355](https://github.com/godotengine/godot/pull/96355)). +- Fix 2D debug navigation flickering with tile maps ([GH-96607](https://github.com/godotengine/godot/pull/96607)). +- Make use of NavigationObstacle3D's transform ([GH-96730](https://github.com/godotengine/godot/pull/96730)). +- Improve `NavMeshQueries3D::polygons_get_closest_point_info` performance ([GH-97928](https://github.com/godotengine/godot/pull/97928)). +- Reduce allocations for NavMap synchronization ([GH-98866](https://github.com/godotengine/godot/pull/98866)). +- Improve `NavMeshGenerator2D::generator_bake_from_source_geometry_data` performance ([GH-98957](https://github.com/godotengine/godot/pull/98957)). +- Make use of NavigationObstacle2D's transform ([GH-99030](https://github.com/godotengine/godot/pull/99030)). +- Fix obstacle avoidance and 3D editor ignoring transform ([GH-99176](https://github.com/godotengine/godot/pull/99176)). +- Fix broken Navigation Obstacle regression ([GH-99276](https://github.com/godotengine/godot/pull/99276)). +- Change navigation map performance monitor to use a struct ([GH-99626](https://github.com/godotengine/godot/pull/99626)). +- Make NavMap objects request sync only on demand ([GH-99646](https://github.com/godotengine/godot/pull/99646)). +- Add test for NavigationServer path simplification ([GH-99726](https://github.com/godotengine/godot/pull/99726)). +- Hide `NavigationRegion2D`'s debug instance instead of freeing it, and hide it when `navigation_polygon` is set to null ([GH-100006](https://github.com/godotengine/godot/pull/100006)). +- Fix avoidance dirty flag regression ([GH-100105](https://github.com/godotengine/godot/pull/100105)). +- Despaghettify NavigationServer path queries ([GH-100129](https://github.com/godotengine/godot/pull/100129)). +- Simplify `NavMeshQueries3D::simplify_path_segment` ([GH-100401](https://github.com/godotengine/godot/pull/100401)). +- Fix GridMap freeing edge connection debug mesh too early ([GH-100406](https://github.com/godotengine/godot/pull/100406)). +- Change navigation map synchronization to an async process ([GH-100497](https://github.com/godotengine/godot/pull/100497)). +- Simplify `NavMeshQueries3D::_query_task_build_path_corridor` ([GH-100549](https://github.com/godotengine/godot/pull/100549)). +- Fix early navigtion path return ([GH-100587](https://github.com/godotengine/godot/pull/100587)). +- Improve NavigationObstacle2D debug visuals and performance ([GH-100708](https://github.com/godotengine/godot/pull/100708)). +- Patch navigation map async synchronization ([GH-100823](https://github.com/godotengine/godot/pull/100823)). +- Make nodes handle their respective navigation source geometry ([GH-100882](https://github.com/godotengine/godot/pull/100882)). +- Add NavigationLink debug direction indicator ([GH-101010](https://github.com/godotengine/godot/pull/101010)). +- Make NavMeshQueries use NavRegionIteration polygons directly ([GH-101037](https://github.com/godotengine/godot/pull/101037)). +- Fix wrong condition in `NavMeshQueries3D::_query_task_build_path_corridor` ([GH-101223](https://github.com/godotengine/godot/pull/101223)). +- Improve `NavigationLink3DGizmoPlugin::redraw` performance ([GH-101424](https://github.com/godotengine/godot/pull/101424)). +- Add functions to get axis-aligned bounds of navigation regions ([GH-101505](https://github.com/godotengine/godot/pull/101505)). +- Fix NavigationObstacle3D debug clear regression ([GH-101728](https://github.com/godotengine/godot/pull/101728)). +- Fix wrong distance calculation in `NavMeshQueries3D::_query_task_build_path_corridor` ([GH-101968](https://github.com/godotengine/godot/pull/101968)). +- Fix NavBase properties not requesting sync ([GH-102754](https://github.com/godotengine/godot/pull/102754)). #### Network -- Add unit test for `IP.resolve_hostname` ([GH-81465](https://github.com/godotengine/godot/pull/81465)). -- UPNP: Use local variable for UPNPUrls to stop memory leak ([GH-89897](https://github.com/godotengine/godot/pull/89897)). -- mbedTLS: Update to new LTS v3.6.0 ([GH-90482](https://github.com/godotengine/godot/pull/90482)). -- Fix missing return in `StreamPeerTCP::poll` when connection is `STATUS_CONNECTED` ([GH-90741](https://github.com/godotengine/godot/pull/90741)). -- Crypto: Expose `get_system_ca_certificates` ([GH-93176](https://github.com/godotengine/godot/pull/93176)). -- Crypto: Expose TLSOptions getters ([GH-93178](https://github.com/godotengine/godot/pull/93178)). -- WebSocket: Allow reusing closing and closed peers ([GH-94168](https://github.com/godotengine/godot/pull/94168)). -- WebSocket: Ensure `TCP_NODELAY` is always set ([GH-94618](https://github.com/godotengine/godot/pull/94618)). -- WS: Fix `set_no_delay` on Windows ([GH-95233](https://github.com/godotengine/godot/pull/95233)). +- WebSocket: Add optional heartbeat via "ping" control frames ([GH-91707](https://github.com/godotengine/godot/pull/91707)). +- String: Parse fragment from URL ([GH-92237](https://github.com/godotengine/godot/pull/92237)). +- Add method for getting packet flags from ENetPacketPeer ([GH-95216](https://github.com/godotengine/godot/pull/95216)). +- mbedTLS: Fix incorrect cert pinning with `client_unsafe` ([GH-96172](https://github.com/godotengine/godot/pull/96172)). +- mbedTLS: Enable TLS 1.3 support ([GH-96394](https://github.com/godotengine/godot/pull/96394)). +- Fix division by zero in network profiler ([GH-96464](https://github.com/godotengine/godot/pull/96464)). +- Add a macro on `NetSocketPosix` to pick the right type for `FIONREAD` `len` parameter ([GH-97098](https://github.com/godotengine/godot/pull/97098)). +- Add unit tests for TCPServer ([GH-97262](https://github.com/godotengine/godot/pull/97262)). +- Add unit tests for UDPServer ([GH-97311](https://github.com/godotengine/godot/pull/97311)). +- Add half precision floating point support to `StreamPeer` and `FileAccess` ([GH-97716](https://github.com/godotengine/godot/pull/97716)). +- WS: Detect disconnection due to protocol errors ([GH-97913](https://github.com/godotengine/godot/pull/97913)). +- WS: Implement wslay unbuffered message parsing ([GH-98343](https://github.com/godotengine/godot/pull/98343)). +- Web: Disable UNIX sockets ([GH-98954](https://github.com/godotengine/godot/pull/98954)). +- Net: Split Unix/Windows NetSocket implementation ([GH-98969](https://github.com/godotengine/godot/pull/98969)). +- mbedTLS: Keep reading/writing partial until "would block" ([GH-98995](https://github.com/godotengine/godot/pull/98995)). +- Net: Split Unix/Windows IP implementation ([GH-99026](https://github.com/godotengine/godot/pull/99026)). +- Net: Properly rename NetSocketPosix to NetSocketUnix ([GH-99167](https://github.com/godotengine/godot/pull/99167)). +- UPNP: Allow disabling UPNP implementation on the Web ([GH-99597](https://github.com/godotengine/godot/pull/99597)). +- Net: Fix TCP/UDP server network tests ([GH-100107](https://github.com/godotengine/godot/pull/100107)). +- WS: Fix wslay multi-frame message parsing ([GH-100631](https://github.com/godotengine/godot/pull/100631)). +- WS: Fix peer stuck in CLOSING state ([GH-101760](https://github.com/godotengine/godot/pull/101760)). +- WS: Fix wslay multi-frame message parsing (again) ([GH-102128](https://github.com/godotengine/godot/pull/102128)). +- TLS: Disable TLSv1.3 support by default ([GH-102774](https://github.com/godotengine/godot/pull/102774)). +- mbedtls: Don't set TLS max version on Mbed TLS < 3.0 ([GH-102964](https://github.com/godotengine/godot/pull/102964)). +- mbedTLS: Integrate TLS handshake defragmentation PR ([GH-103247](https://github.com/godotengine/godot/pull/103247)). #### Particles -- Support custom AABBs within MultiMesh resources ([GH-79833](https://github.com/godotengine/godot/pull/79833)). -- Improve editing of min/max particle properties ([GH-81260](https://github.com/godotengine/godot/pull/81260)). -- Fix `CPUParticles2D` tangential force does not match `GPUParticles2D` ([GH-84575](https://github.com/godotengine/godot/pull/84575)). -- Only allow MeshInstance3D-based nodes in particles emission shape node selector ([GH-84891](https://github.com/godotengine/godot/pull/84891)). -- Correctly emit sub-emitter's emission at the end ([GH-85189](https://github.com/godotengine/godot/pull/85189)). -- Fix particle spread values affecting particle velocity ([GH-85880](https://github.com/godotengine/godot/pull/85880)). -- Only update particle velocity when it changes ([GH-86474](https://github.com/godotengine/godot/pull/86474)). -- Fix collided particles getting stuck with zero velocity ([GH-87320](https://github.com/godotengine/godot/pull/87320)). -- Fix CPU/GPUParticles2D bugs on Compatibility Rendering (GLES3) on Adreno 3XX devices ([GH-88816](https://github.com/godotengine/godot/pull/88816)). -- Fix early activation of particle trail sections ([GH-89042](https://github.com/godotengine/godot/pull/89042)). -- Fix error in AABB calculation for particles with USERDATA ([GH-89046](https://github.com/godotengine/godot/pull/89046)). -- Fix `update_property()` in particle material editor ([GH-89048](https://github.com/godotengine/godot/pull/89048)). -- Fix `USERDATA` built-ins for GLES3 particle shaders ([GH-89094](https://github.com/godotengine/godot/pull/89094)). -- Fix `CPUParticles3D` using angle incorrectly when `ROTATE_Y` is set ([GH-89595](https://github.com/godotengine/godot/pull/89595)). -- Fix `INSTANCE_CUSTOM.w` not being assigned correctly in CPUParticles 2D and 3D ([GH-90095](https://github.com/godotengine/godot/pull/90095)). -- Fix inverted GPUParticlesCollisionHeightField3D ([GH-91219](https://github.com/godotengine/godot/pull/91219)). -- Fix particle cylinder emission shape random distribution ([GH-91223](https://github.com/godotengine/godot/pull/91223)). -- Fix sqrt application for radius in particle ring emission ([GH-91449](https://github.com/godotengine/godot/pull/91449)). -- Add Ctrl + R keyboard shortcut to restart particle emission in the editor ([GH-92134](https://github.com/godotengine/godot/pull/92134)). -- Fix 2d sdf collision for TileMapLayer Occluders ([GH-92173](https://github.com/godotengine/godot/pull/92173)). -- Fix collided 3D GPU particles sometimes jittering ([GH-92474](https://github.com/godotengine/godot/pull/92474)). -- Fix USERDATA not copied when trails started ([GH-93595](https://github.com/godotengine/godot/pull/93595)). +- Add cone angle control to particle emission ring shape ([GH-91973](https://github.com/godotengine/godot/pull/91973)). +- Implement particle seek request and seed options ([GH-92089](https://github.com/godotengine/godot/pull/92089)). +- Fix GPUParticles Inherit Velocity breaking with physics movement ([GH-93837](https://github.com/godotengine/godot/pull/93837)). +- Unify particle editors ([GH-94371](https://github.com/godotengine/godot/pull/94371)). +- GPU/CPU particle parameter list consistency changes ([GH-95132](https://github.com/godotengine/godot/pull/95132)). +- Add "At Start" mode for sub-emitter particles ([GH-100050](https://github.com/godotengine/godot/pull/100050)). +- Add visualization of 3D particle emission shapes ([GH-100113](https://github.com/godotengine/godot/pull/100113)). +- Move texture property back to the top level of the Particles inspector ([GH-100227](https://github.com/godotengine/godot/pull/100227)). +- Reduce slider range for Particles preprocess to discourage setting a preprocess time of 10 minutes ([GH-100378](https://github.com/godotengine/godot/pull/100378)). +- Add UndoRedo support to Load Emission Mask/Points ([GH-100571](https://github.com/godotengine/godot/pull/100571)). +- Preserve emission ring shape properties during conversion from GPUParticles3D to CPUParticles3D and vice versa ([GH-101012](https://github.com/godotengine/godot/pull/101012)). +- Fix inverted `GPUParticlesCollisionHeightField3D` in compatibility renderer ([GH-101159](https://github.com/godotengine/godot/pull/101159)). +- Fix ParticleProcessMaterial not using same offsets for emission textures ([GH-101162](https://github.com/godotengine/godot/pull/101162)). +- Fix regression from already disconnected emission shape changed signal ([GH-101537](https://github.com/godotengine/godot/pull/101537)). +- Fix GPUParticles3D emitting `finished` signal on ready ([GH-101596](https://github.com/godotengine/godot/pull/101596)). +- Fix `emission_shape_changed` signal error when using ShaderMaterial with GPUParticles3D ([GH-101617](https://github.com/godotengine/godot/pull/101617)). +- Fix GPUParticles2D not randomizing seed when `set_one_shot` is called ([GH-101688](https://github.com/godotengine/godot/pull/101688)). +- Fix cpuparticles randomness regression ([GH-101872](https://github.com/godotengine/godot/pull/101872)). +- Add Heightfield mask to GPUParticlesCollisionHeightField3D ([GH-101947](https://github.com/godotengine/godot/pull/101947)). +- Fix framebuffer clear for particle collider heightfield ([GH-102133](https://github.com/godotengine/godot/pull/102133)). +- Fix crash when assigning wrong shader to particle process material ([GH-102280](https://github.com/godotengine/godot/pull/102280)). +- Fix seed not randomizing for particles. Fix seed being stored when fixed seed is off ([GH-102405](https://github.com/godotengine/godot/pull/102405)). +- Fix particle not re-randomizing every emission ([GH-103068](https://github.com/godotengine/godot/pull/103068)). #### Physics -- Disable registering 3D physics types when 3D is disabled ([GH-79185](https://github.com/godotengine/godot/pull/79185)). -- Prevent mapping areas with invalid IDs for `Area2D/3D` ([GH-79460](https://github.com/godotengine/godot/pull/79460)). -- Clear monitoring in `Area*` when its space changes to invalid ([GH-81809](https://github.com/godotengine/godot/pull/81809)). -- Change ShapeCast3D and RayCast3D debug to use RenderingServer directly ([GH-82599](https://github.com/godotengine/godot/pull/82599)). -- Orthonormalize PhysicalBone3D transforms when resetting them ([GH-82933](https://github.com/godotengine/godot/pull/82933)). -- Fix body leaving area gravity influence ([GH-82961](https://github.com/godotengine/godot/pull/82961)). -- Replace confusing code in `GodotCapsuleShape2D::get_supports` ([GH-83655](https://github.com/godotengine/godot/pull/83655)). -- Fix CollisionObject3D Gizmo not updated after calling `shape_owner_*` functions ([GH-84610](https://github.com/godotengine/godot/pull/84610)). -- Expose a method to get gravity for any physics body ([GH-84640](https://github.com/godotengine/godot/pull/84640)). -- Fix `PhysicsShapeQueryParameters3D.motion` type wrongly set to Vector2 ([GH-85393](https://github.com/godotengine/godot/pull/85393)). -- Improve visualization of WorldBoundary2D editor ([GH-86208](https://github.com/godotengine/godot/pull/86208)). -- Check skeleton RID when using cached AABB ([GH-86245](https://github.com/godotengine/godot/pull/86245)). -- Add warning for using concave shape on CharacterBody3D ([GH-86576](https://github.com/godotengine/godot/pull/86576)). -- Fix bounding boxes not being calculated properly and not respecting top-level nodes ([GH-87132](https://github.com/godotengine/godot/pull/87132)). -- Make CharacterBody properties public ([GH-87167](https://github.com/godotengine/godot/pull/87167)). -- RayCast2D and RayCast3D: warn to check `is_colliding` before `get_collision_point` and `get_collision_normal` ([GH-87414](https://github.com/godotengine/godot/pull/87414)). -- Bind physics server methods related to `SoftBody3D` ([GH-87502](https://github.com/godotengine/godot/pull/87502)). -- Fix error when pinning soft body point without attachment ([GH-87506](https://github.com/godotengine/godot/pull/87506)). -- Add HeightMapShape3D functions to get min / max height ([GH-87881](https://github.com/godotengine/godot/pull/87881)). -- Add HeightMapShape3D update with Image data ([GH-87889](https://github.com/godotengine/godot/pull/87889)). -- Fix `max_collisions` not being passed in `PhysicsBody3D::test_move` ([GH-87903](https://github.com/godotengine/godot/pull/87903)). -- Fix crash with `PhysicsBody2D/3D::get_gravity` with invalid state ([GH-87976](https://github.com/godotengine/godot/pull/87976)). -- Fix `get_contact_count` sometimes being incorrect in `_process` ([GH-88019](https://github.com/godotengine/godot/pull/88019)). -- `GodotCollisionSolver2D::solve_concave`: Fix culling in case of motion ([GH-88282](https://github.com/godotengine/godot/pull/88282)). -- Fix `SoftBody3D` for double-precision builds ([GH-88402](https://github.com/godotengine/godot/pull/88402)). -- Physics interpolation (2D) ([GH-88424](https://github.com/godotengine/godot/pull/88424)). -- Split monolithic physics class files ([GH-88862](https://github.com/godotengine/godot/pull/88862)). -- Fix physics platform crash ([GH-88947](https://github.com/godotengine/godot/pull/88947)). -- Move Max Contacts Reported below Contact Monitor in RigidBody inspector ([GH-89459](https://github.com/godotengine/godot/pull/89459)). -- Increase precision of RigidBody `mass` property ([GH-89468](https://github.com/godotengine/godot/pull/89468)). -- Allow for 32 max collisions in `test_body_motion` ([GH-89517](https://github.com/godotengine/godot/pull/89517)). -- Fix concave `CollisionPolygon2D` debug drawing and docs ([GH-89820](https://github.com/godotengine/godot/pull/89820)). -- Fix separating axes for 3D cylinder-face collisions ([GH-89960](https://github.com/godotengine/godot/pull/89960)). -- Make physics debug respect shape outline setting inside editor ([GH-90113](https://github.com/godotengine/godot/pull/90113)). -- Specify that `get_floor_normal()` does not return the surface normal ([GH-90254](https://github.com/godotengine/godot/pull/90254)). -- Fix PinJoint2D deferred call error ([GH-90340](https://github.com/godotengine/godot/pull/90340)). -- GridMap: Fix `physics_material` property ([GH-90503](https://github.com/godotengine/godot/pull/90503)). -- Store `ObjectID` instead of pointer for KinematicCollision owner ([GH-90668](https://github.com/godotengine/godot/pull/90668)). -- Increase size of WorldBoundaryShape to be much larger ([GH-90763](https://github.com/godotengine/godot/pull/90763)). -- Fix `move_and_slide` wall slide acceleration (3D) ([GH-90915](https://github.com/godotengine/godot/pull/90915)). -- Use same colors for editor and running project for collision/path debug ([GH-90966](https://github.com/godotengine/godot/pull/90966)). -- Deprecate unused parameter `angular_limit/softness` in `HingeJoint3D` ([GH-91127](https://github.com/godotengine/godot/pull/91127)). -- Update `body_create` description in PhysicsServer2D/3D ([GH-91596](https://github.com/godotengine/godot/pull/91596)). -- Add useful error msg in `GodotSoftBody3D::set_mesh` ([GH-91896](https://github.com/godotengine/godot/pull/91896)). -- Avoid duplicate connect in Joint2D and Joint3D `_update_joint` ([GH-91936](https://github.com/godotengine/godot/pull/91936)). -- Bind shape margin methods for `PhysicsServer3D` ([GH-92110](https://github.com/godotengine/godot/pull/92110)). -- GodotPhysics: Fix crash on null space ([GH-93286](https://github.com/godotengine/godot/pull/93286)). -- Fix physics tick counter ([GH-94039](https://github.com/godotengine/godot/pull/94039)). -- Only print physics sync warning on dev builds to avoid warning spam from using `move_and_slide` ([GH-94279](https://github.com/godotengine/godot/pull/94279)). -- Fix dynamic-stack-buffer-overflow crash when executing random functions on random physics objects ([GH-94521](https://github.com/godotengine/godot/pull/94521)). -- Bind `PhysicsServer*D::body_set_state_sync_callback` ([GH-94653](https://github.com/godotengine/godot/pull/94653)). +- Fix debug line drawing with tiny convex hull mesh colliders ([GH-69197](https://github.com/godotengine/godot/pull/69197)). +- Fix `SoftBody3D` pinned points breaking when reloading scene ([GH-86310](https://github.com/godotengine/godot/pull/86310)). +- Physics interpolation: `MultiMesh` ([GH-91818](https://github.com/godotengine/godot/pull/91818)). +- Physics interpolation (3D) ([GH-92391](https://github.com/godotengine/godot/pull/92391)). +- Account for physics interpolation and transform snapping when Y-sorting ([GH-93025](https://github.com/godotengine/godot/pull/93025)). +- Expose contact point and contact normal on VehicleWheel3D to scripting ([GH-93900](https://github.com/godotengine/godot/pull/93900)). +- Fix `SoftBody3D` pinned points interaction ([GH-94684](https://github.com/godotengine/godot/pull/94684)). +- Add units to VehicleWheel3D suspension stiffness and damping ([GH-94862](https://github.com/godotengine/godot/pull/94862)). +- Move Godot Physics 3D into a module; add dummy 3D physics server ([GH-95252](https://github.com/godotengine/godot/pull/95252)). +- Move Godot Physics 2D into a module; add dummy 2D physics server ([GH-95261](https://github.com/godotengine/godot/pull/95261)). +- Expose `ShapeCast{2D,3D}::get_collision_result` ([GH-95374](https://github.com/godotengine/godot/pull/95374)). +- Use collision detection ray to reposition an object already in the scene ([GH-96740](https://github.com/godotengine/godot/pull/96740)). +- Add forgotten `get_space()` check in `GodotArea3D::remove_soft_body_from_query()` ([GH-97130](https://github.com/godotengine/godot/pull/97130)). +- Add unit tests for PhysicsMaterial ([GH-97227](https://github.com/godotengine/godot/pull/97227)). +- Fix physics platform behavior regression ([GH-97315](https://github.com/godotengine/godot/pull/97315)). +- GodotPhysics: Fix raycasts don't reliably collide with HeightMapShape3D ([GH-97471](https://github.com/godotengine/godot/pull/97471)). +- Add collision priority property to TileSet physics layers ([GH-98773](https://github.com/godotengine/godot/pull/98773)). +- Allow `apply_floor_snap` to preserve the horizontal position regardless of `stop_on_slopes` ([GH-99397](https://github.com/godotengine/godot/pull/99397)). +- Add Jolt Physics as an alternative 3D physics engine ([GH-99895](https://github.com/godotengine/godot/pull/99895)). +- Fix `GodotSpace3D::test_body_motion()` not setting `local_shape` ([GH-99901](https://github.com/godotengine/godot/pull/99901)). +- Fix `CollisionShape{2D,3D}.debug_color` inconsistencies ([GH-100093](https://github.com/godotengine/godot/pull/100093)). +- Add basic editor editing for `ConvexPolygonShape2D` and `ConcavePolygonShape2D` ([GH-100183](https://github.com/godotengine/godot/pull/100183)). +- Jolt: Fix multiple definition LTO linking issue with mingw-gcc ([GH-100331](https://github.com/godotengine/godot/pull/100331)). +- Make `RID` allocation thread-safe when using Jolt Physics ([GH-100342](https://github.com/godotengine/godot/pull/100342)). +- Update damping values for jolt rigid bodies on mode switch at runtime ([GH-100473](https://github.com/godotengine/godot/pull/100473)). +- Jolt: Update to commit f094082aa, adding RISC-V, PPC64 and LoongArch support ([GH-100561](https://github.com/godotengine/godot/pull/100561)). +- Improve performance with many static/sleeping bodies when using Jolt Physics ([GH-100983](https://github.com/godotengine/godot/pull/100983)). +- Prevent errors when drawing debug meshes with no mesh data ([GH-101014](https://github.com/godotengine/godot/pull/101014)). +- Improve performance of certain physics queries when using Jolt Physics ([GH-101071](https://github.com/godotengine/godot/pull/101071)). +- Improve performance of changing compound shapes when using Jolt Physics ([GH-101189](https://github.com/godotengine/godot/pull/101189)). +- Fix debug contact count not being initialized when using Jolt Physics ([GH-101231](https://github.com/godotengine/godot/pull/101231)). +- Cache value of Jolt Physics project setting `bounce_velocity_threshold` ([GH-101237](https://github.com/godotengine/godot/pull/101237)). +- Fix kinematic bodies not synchronizing state when using Jolt Physics ([GH-101803](https://github.com/godotengine/godot/pull/101803)). +- Add debug colors and fills to CollisionPolygon3D ([GH-101810](https://github.com/godotengine/godot/pull/101810)). +- Refactor post-step operations in Jolt module to be done as needed ([GH-101815](https://github.com/godotengine/godot/pull/101815)). +- Update Jolt Physics `BoxShape` to allow for zero-sized boxes ([GH-101940](https://github.com/godotengine/godot/pull/101940)). +- Override mass properties for `Area3D` when using Jolt Physics ([GH-102029](https://github.com/godotengine/godot/pull/102029)). +- [Jolt Physics] Fix ghost collision issue on dense triangle meshes ([GH-102614](https://github.com/godotengine/godot/pull/102614)). +- Skip `Object::to_string` when Jolt Physics is on separate thread ([GH-102726](https://github.com/godotengine/godot/pull/102726)). #### Plugin -- Use existing `plugin.cfg` in configuration dialog ([GH-79723](https://github.com/godotengine/godot/pull/79723)). -- Expose `SceneTreeDialog` and `PropertySelector` via `EditorInterface` ([GH-81655](https://github.com/godotengine/godot/pull/81655)). -- Fix creating and updating plugin with dot in folder name ([GH-83329](https://github.com/godotengine/godot/pull/83329)). -- Correctly check scripts that must inherit `EditorPlugin` ([GH-85271](https://github.com/godotengine/godot/pull/85271)). -- Save external data even without scene ([GH-85513](https://github.com/godotengine/godot/pull/85513)). -- Always call `_can_handle()` before `_parse_property()` ([GH-86467](https://github.com/godotengine/godot/pull/86467)). -- Editor: Add `EditorPlugin::scene_saved` signal ([GH-87332](https://github.com/godotengine/godot/pull/87332)). -- Editor: Fix `_parse_category()` is not called for custom categories ([GH-87915](https://github.com/godotengine/godot/pull/87915)). -- Improve Project Settings' Plugin display ([GH-88308](https://github.com/godotengine/godot/pull/88308)). -- Update scene tabs after marking as unsaved ([GH-90135](https://github.com/godotengine/godot/pull/90135)). -- Fix `add_root_node()` being no-op ([GH-90136](https://github.com/godotengine/godot/pull/90136)). -- Expose `EditorFileDialog::popup_file_dialog()` to GDScript and GDExtension ([GH-91331](https://github.com/godotengine/godot/pull/91331)). -- Add logic to unregister the Godot plugins on engine termination ([GH-92143](https://github.com/godotengine/godot/pull/92143)). -- Prevent static XCFramework bundles from being embedded on iOS ([GH-92519](https://github.com/godotengine/godot/pull/92519)). +- Export `EditorInspector::instantiate_property_editor` for use by plugins ([GH-87375](https://github.com/godotengine/godot/pull/87375)). +- Editor: Fix handle ID being passed for 3D Gizmo plugins ([GH-89607](https://github.com/godotengine/godot/pull/89607)). +- Fix addon requires editor restart to become functional ([GH-92667](https://github.com/godotengine/godot/pull/92667)). +- Pass current value to `EditorInterface` node/property popups ([GH-94323](https://github.com/godotengine/godot/pull/94323)). +- Add support for custom items to editor right-click context menus ([GH-94582](https://github.com/godotengine/godot/pull/94582)). +- Fix autoload node cannot be accessed by plugin on start-up ([GH-94802](https://github.com/godotengine/godot/pull/94802)). +- Add EditorContextMenuPluginManager and refactor menu plugins ([GH-96539](https://github.com/godotengine/godot/pull/96539)). +- Add submenu support to EditorContextMenuPlugin ([GH-97292](https://github.com/godotengine/godot/pull/97292)). +- Remove the restriction on supported types for Godot Android plugins ([GH-97500](https://github.com/godotengine/godot/pull/97500)). +- Make the "Quick Open" dialog available via `EditorInterface` ([GH-97633](https://github.com/godotengine/godot/pull/97633)). +- Fix `CONTAINER_PROJECT_SETTING_TAB_RIGHT` option of `EditorPlugin` ([GH-98210](https://github.com/godotengine/godot/pull/98210)). +- Make the method selector dialog available via `EditorInterface` ([GH-98859](https://github.com/godotengine/godot/pull/98859)). +- Cleanup EditorInterface selectors' code ([GH-99062](https://github.com/godotengine/godot/pull/99062)). +- Add more menus support to EditorContextMenuPlugin ([GH-100556](https://github.com/godotengine/godot/pull/100556)). #### Porting -- Windows: Enable crash reporter on MinGW builds ([GH-61006](https://github.com/godotengine/godot/pull/61006)). -- Windows: Improve warning for path casing ([GH-71975](https://github.com/godotengine/godot/pull/71975)). -- Implement support for application status indicators (tray icons) ([GH-80211](https://github.com/godotengine/godot/pull/80211)). -- macOS: Add support for native help menu search callbacks, integrate editor help ([GH-83819](https://github.com/godotengine/godot/pull/83819)). -- macOS: Add default Window and Help menus, allow special menu customization ([GH-83987](https://github.com/godotengine/godot/pull/83987)). -- Use platform-specific methods for FileAccess reading and writing ([GH-84107](https://github.com/godotengine/godot/pull/84107)). -- Windows: Use CCD API to get fractional screen refresh rates ([GH-84246](https://github.com/godotengine/godot/pull/84246)). -- Robustify handling of activation & focus on Windows ([GH-84363](https://github.com/godotengine/godot/pull/84363)). -- Fix NetBSD executable path ([GH-84469](https://github.com/godotengine/godot/pull/84469)). -- Make `screen_get_refresh_rate()` respect iOS Low Power Mode ([GH-85026](https://github.com/godotengine/godot/pull/85026)). -- Enhance mobile suspend MainLoop notifications ([GH-85100](https://github.com/godotengine/godot/pull/85100)). -- Windows: Fix NVIDIA app profile creation ([GH-85188](https://github.com/godotengine/godot/pull/85188)). -- Do not consume mouse messages in windows with `no_focus` on Windows OS ([GH-85484](https://github.com/godotengine/godot/pull/85484)). -- Add `THREADS_ENABLED` macro in order to compile Godot to run on the main thread ([GH-85939](https://github.com/godotengine/godot/pull/85939)). -- Android: Ensure cleanup of all subobjects in the OpenSL audio driver ([GH-85955](https://github.com/godotengine/godot/pull/85955)). -- X11: Partial fix for Editor and Project Manager stealing focus on some window managers ([GH-86101](https://github.com/godotengine/godot/pull/86101)). -- Fix key mapping for `XK_KP_Delete` key ([GH-86160](https://github.com/godotengine/godot/pull/86160)). -- Add Wayland support ([GH-86180](https://github.com/godotengine/godot/pull/86180)). -- Android: Update the logic used to start / stop the render thread ([GH-86379](https://github.com/godotengine/godot/pull/86379)). -- X11: Fix Godot stealing focus on alternative window managers ([GH-86441](https://github.com/godotengine/godot/pull/86441)). -- Fix `OS.get_system_font_path` and `OS.get_system_font_path_for_text` to return correct slashes ([GH-86552](https://github.com/godotengine/godot/pull/86552)). -- Fix virtual keyboard for decimal values on Android ([GH-86619](https://github.com/godotengine/godot/pull/86619)). -- X11: Don't re-set input focus if the given window already has it (fixes Godot stealing input focus on i3) ([GH-86671](https://github.com/godotengine/godot/pull/86671)). -- iOS: Set provisioning style for both `iPhone Developer` and `iPhone Distribution` to automatic ([GH-86748](https://github.com/godotengine/godot/pull/86748)). -- Fix `get_window_safe_area` on Android ([GH-86761](https://github.com/godotengine/godot/pull/86761)). -- Attempt parsing environment variables as UTF-8 ([GH-86936](https://github.com/godotengine/godot/pull/86936)). -- iOS: Improve logger ([GH-87077](https://github.com/godotengine/godot/pull/87077)). -- Android: Disable automatic permissions request ([GH-87080](https://github.com/godotengine/godot/pull/87080)). -- Fix DX12 build on older MSVC versions, fix missing PIX include ([GH-87206](https://github.com/godotengine/godot/pull/87206)). -- Use `os_unfair_lock` on Apple platforms ([GH-87393](https://github.com/godotengine/godot/pull/87393)). -- macOS: Update window visible state on deminiaturize ([GH-87465](https://github.com/godotengine/godot/pull/87465)). -- Make dark mode Title Bar work on Windows 10 1909 (build:18363) and above ([GH-87549](https://github.com/godotengine/godot/pull/87549)). -- Wayland: Suspend window after frame timeout or suspend state ([GH-87750](https://github.com/godotengine/godot/pull/87750)). -- Wayland: Implement `window_get_native_handle` ([GH-87764](https://github.com/godotengine/godot/pull/87764)). -- Wayland: Add support for native file dialogs ([GH-87776](https://github.com/godotengine/godot/pull/87776)). -- macOS: Use autorelease pools ([GH-87836](https://github.com/godotengine/godot/pull/87836)). -- macOS: Add SIGTRAP to the crash handler ([GH-87842](https://github.com/godotengine/godot/pull/87842)). -- Add workaround for emscripten >= 3.1.47 LTO build ([GH-87956](https://github.com/godotengine/godot/pull/87956)). -- wayland: Update to 1.22.0 ([GH-87977](https://github.com/godotengine/godot/pull/87977)). -- [macOS / iOS] Switch Vulkan init to `VK_EXT_metal_surface` extension ([GH-87999](https://github.com/godotengine/godot/pull/87999)). -- macOS: Enabled secure restorable state ([GH-88050](https://github.com/godotengine/godot/pull/88050)). -- Handle display driver preferences consistently between editor and projects ([GH-88065](https://github.com/godotengine/godot/pull/88065)). -- macOS: Allow `open_shell` to handle filenames without `file://` ([GH-88126](https://github.com/godotengine/godot/pull/88126)). -- Windows: Fix windows `is_path_invalid`, and apply it to directory creation ([GH-88129](https://github.com/godotengine/godot/pull/88129)). -- Fix invalid file path handling in Windows when there is dot in the file name ([GH-88144](https://github.com/godotengine/godot/pull/88144)). -- FileSystem dock: Fix opening a Linux terminal ([GH-88173](https://github.com/godotengine/godot/pull/88173)). -- Fix the fetching of images in `CF_DIB` format in `DisplayServerWindows::clipboard_get_image` ([GH-88220](https://github.com/godotengine/godot/pull/88220)). -- macOS: Fix color picker on HDR screens ([GH-88274](https://github.com/godotengine/godot/pull/88274)). -- Windows: Add support for enabling Alt+Space menu and fix borderless maximize ([GH-88329](https://github.com/godotengine/godot/pull/88329)). -- [Android 14] Fix GodotEditText white box showing during editor load ([GH-88351](https://github.com/godotengine/godot/pull/88351)). -- libdecor: Update to 0.2.2 ([GH-88374](https://github.com/godotengine/godot/pull/88374)). -- Windows: Fix reading non-BGRA8 DIBs from clipboard ([GH-88405](https://github.com/godotengine/godot/pull/88405)). -- macOS: Add null checks for `NSString stringWithUTF8String` ([GH-88694](https://github.com/godotengine/godot/pull/88694)). -- [macOS/Windows] Fix application indicator destruction ([GH-88932](https://github.com/godotengine/godot/pull/88932)). -- Windows: Implement `dialog_show` and `dialog_input_text` for `DisplayServer` ([GH-88957](https://github.com/godotengine/godot/pull/88957)). -- DisplayServer: Add error messages and descriptions to callbacks ([GH-89033](https://github.com/godotengine/godot/pull/89033)). -- Fix FileAccessUnix on OpenBSD where `UF_HIDDEN` isn't supported ([GH-89064](https://github.com/godotengine/godot/pull/89064)). -- Wayland: Fix tilt handling ([GH-89112](https://github.com/godotengine/godot/pull/89112)). -- Wayland: Properly report all used features ([GH-89178](https://github.com/godotengine/godot/pull/89178)). -- Check if DisplayServer supports icons before attempting setting it ([GH-89181](https://github.com/godotengine/godot/pull/89181)). -- Windows: Fix `FreeLibrary` not always being called in `DisplayServerWindows::dialog_show` ([GH-89192](https://github.com/godotengine/godot/pull/89192)). -- Implement pipe API for executed processes IO redirection ([GH-89206](https://github.com/godotengine/godot/pull/89206)). -- Add `PermissionsUtil#requestPermissions(...)` to provide the ability to request multiple permissions at a time ([GH-89260](https://github.com/godotengine/godot/pull/89260)). -- Wayland: Stop possible Null pointer dereferences ([GH-89307](https://github.com/godotengine/godot/pull/89307)). -- Wayland: Setup next cursor frame callback only if animated ([GH-89328](https://github.com/godotengine/godot/pull/89328)). -- Windows: Disable fallback to ANGLE logic when compiled w/o ANGLE support ([GH-89351](https://github.com/godotengine/godot/pull/89351)). -- Wayland: Workaround API limitation in screen/UI scale logic ([GH-89574](https://github.com/godotengine/godot/pull/89574)). -- iOS: Fix AirPods routing when Play and Record category is used ([GH-89594](https://github.com/godotengine/godot/pull/89594)). -- Fix platform name in the message about unsupported CPU architecture ([GH-89598](https://github.com/godotengine/godot/pull/89598)). -- Android: Fix UnsupportedOperationException remove from non-ArrayList ([GH-89703](https://github.com/godotengine/godot/pull/89703)). -- Wayland: Fix typo in input code ([GH-89707](https://github.com/godotengine/godot/pull/89707)). -- X11: Add more details to large icon size warning ([GH-89716](https://github.com/godotengine/godot/pull/89716)). -- Fix `EXIT_SUCCESS` on MacOS ([GH-89855](https://github.com/godotengine/godot/pull/89855)). -- Fix `EXIT_SUCCESS` on Android ([GH-89887](https://github.com/godotengine/godot/pull/89887)). -- DisplayServer: Add separate feature flags for different native dialog types ([GH-89907](https://github.com/godotengine/godot/pull/89907)). -- [Linux/Portal] Fix incorrect DBus connection usage ([GH-89935](https://github.com/godotengine/godot/pull/89935)). -- macOS: Fix non-global native menu shortcuts ([GH-89953](https://github.com/godotengine/godot/pull/89953)). -- Android: Prevent potential NPEs and improve nullability handling ([GH-89999](https://github.com/godotengine/godot/pull/89999)). -- Android: Improve performance of sensor readings ([GH-90000](https://github.com/godotengine/godot/pull/90000)). -- Fix issue with moving maximized window in macOS ([GH-90101](https://github.com/godotengine/godot/pull/90101)). -- Fix macOS menu bar & dock stop appearing after closing sub-window ([GH-90131](https://github.com/godotengine/godot/pull/90131)). -- Android: Extract parsing command line file to a separate class + add unit tests ([GH-90146](https://github.com/godotengine/godot/pull/90146)). -- Make sysctl calls on FreeBSD ([GH-90295](https://github.com/godotengine/godot/pull/90295)). -- Add `OS.get_process_exit_code()` method ([GH-90358](https://github.com/godotengine/godot/pull/90358)). -- FileAccess: Implement `resize` method ([GH-90403](https://github.com/godotengine/godot/pull/90403)). -- Fix the initialization order for the iOS driver ([GH-90538](https://github.com/godotengine/godot/pull/90538)). -- [Unix / DirAccess] Fix removing directory symlinks with `remove`, ensure `erase_contents_recursive` is not following directory symlinks ([GH-90562](https://github.com/godotengine/godot/pull/90562)). -- Fix leakage of JNI object references ([GH-90710](https://github.com/godotengine/godot/pull/90710)). -- macOS: Fix native file dialog with empty filter list ([GH-90783](https://github.com/godotengine/godot/pull/90783)). -- Cleanup Android file errors ([GH-91017](https://github.com/godotengine/godot/pull/91017)). -- iOS: Change default iPad landscape orientation from "left" to "right" ([GH-91052](https://github.com/godotengine/godot/pull/91052)). -- DBus: Process file dialog callback in the main event loop instead of using deferred call ([GH-91071](https://github.com/godotengine/godot/pull/91071)). -- Add symlink API support for Windows, expose symlink methods ([GH-91100](https://github.com/godotengine/godot/pull/91100)). -- Windows: Improve console IO redirection ([GH-91147](https://github.com/godotengine/godot/pull/91147)). -- Wayland: Improve compositor compatibility by allowing older globals ([GH-91196](https://github.com/godotengine/godot/pull/91196)). -- Wayland: Add support for OpenGL ES driver ([GH-91466](https://github.com/godotengine/godot/pull/91466)). -- DisplayServer: Add method to check if window transparency is supported and enabled ([GH-91505](https://github.com/godotengine/godot/pull/91505)). -- Switch to the WindowInsetsAnimationCompat api ([GH-91895](https://github.com/godotengine/godot/pull/91895)). -- X11: Fallback to root window size, when Xinerama extension is available, but return zero screens ([GH-91933](https://github.com/godotengine/godot/pull/91933)). -- Windows: Use CRLF in the terminal prints ([GH-92158](https://github.com/godotengine/godot/pull/92158)). -- Use `OS::delay_usec()` to avoid using deprecated `usleep()` on Linux ([GH-92208](https://github.com/godotengine/godot/pull/92208)). -- Properly set window class in Wayland ([GH-92252](https://github.com/godotengine/godot/pull/92252)). -- Wayland: Implement `is_window_transparency_available` ([GH-92353](https://github.com/godotengine/godot/pull/92353)). -- [macOS, X11] Fix duplicate window close requests ([GH-92458](https://github.com/godotengine/godot/pull/92458)). -- Fix -empty string- console log in web export (cosmetic) ([GH-92468](https://github.com/godotengine/godot/pull/92468)). -- Make displayed Web errors more meaningful ([GH-92553](https://github.com/godotengine/godot/pull/92553)). -- Android: Remove the limit on the number of the SignalInfo creation function parameters ([GH-92580](https://github.com/godotengine/godot/pull/92580)). -- EGL: Use `EGL_EXT_platform_base` whenever possible ([GH-92663](https://github.com/godotengine/godot/pull/92663)). -- Consolidate the ProjectManager and Editor windows into a single Android Activity class ([GH-92704](https://github.com/godotengine/godot/pull/92704)). -- Android: Fix invalid return value when multiple permission requests are dispatched ([GH-92709](https://github.com/godotengine/godot/pull/92709)). -- Improve native menu and status indicator icons conversion and checks ([GH-92826](https://github.com/godotengine/godot/pull/92826)). -- Update the Android splash screen logic ([GH-92965](https://github.com/godotengine/godot/pull/92965)). -- X11: Detect XWayland and disable screen capture support ([GH-93072](https://github.com/godotengine/godot/pull/93072)). -- Windows: Add Windows version and Wine checks for Windows 10+ dark mode API ([GH-93126](https://github.com/godotengine/godot/pull/93126)). -- Tweak warning messages related to V-Sync on OpenGL ([GH-93239](https://github.com/godotengine/godot/pull/93239)). -- Web: Fix checking for OpenGL extensions with Emscripten 3.1.51 and later ([GH-93560](https://github.com/godotengine/godot/pull/93560)). -- Prevent folder names with trailing periods from being used automatically ([GH-93564](https://github.com/godotengine/godot/pull/93564)). -- Fix text editor stealing focus from "Find in Files" dialog on X11 ([GH-93682](https://github.com/godotengine/godot/pull/93682)). -- Wayland: Minimize surface commits and limit them to the main thread ([GH-93684](https://github.com/godotengine/godot/pull/93684)). -- Windows: Restore to windowed mode using `SW_NORMAL` ([GH-93733](https://github.com/godotengine/godot/pull/93733)). -- Add `bigint` support on JS value conversion ([GH-93750](https://github.com/godotengine/godot/pull/93750)). -- Fix assignations to non-existing keys and clean-up Web audio library ([GH-93754](https://github.com/godotengine/godot/pull/93754)). -- Remove duplicate styling from editor ([GH-93902](https://github.com/godotengine/godot/pull/93902)). -- Fix preloading a zip in the web editor ([GH-93906](https://github.com/godotengine/godot/pull/93906)). -- Android: Fix crashes and ANRs reported by the Google Play Console ([GH-93933](https://github.com/godotengine/godot/pull/93933)). -- Fix caret can disappear from script editor on Windows ([GH-93976](https://github.com/godotengine/godot/pull/93976)). -- Windows: Fix build error due to missing definition of Texture2D ([GH-94067](https://github.com/godotengine/godot/pull/94067)). -- Windows: Fix reading keyboard layout names ([GH-94120](https://github.com/godotengine/godot/pull/94120)). -- Remove unused `is_wow64` method in `OS_Windows` ([GH-94187](https://github.com/godotengine/godot/pull/94187)). -- macOS: Fix drag-and-drop feedback ([GH-94232](https://github.com/godotengine/godot/pull/94232)). -- Windows: Fix wrong initial size passed to rendering driver ([GH-94398](https://github.com/godotengine/godot/pull/94398)). -- Wayland: Commit surface on window creation ([GH-94402](https://github.com/godotengine/godot/pull/94402)). -- Wayland: Check for suspended flag when unsuspending ([GH-94411](https://github.com/godotengine/godot/pull/94411)). -- Windows: Update ANGLE surface size when window is resized ([GH-94428](https://github.com/godotengine/godot/pull/94428)). -- [Android Editor] Resolve issues with the editor touchscreen settings ([GH-94468](https://github.com/godotengine/godot/pull/94468)). -- Linux/X11: Fix memory leak from created screen images ([GH-94473](https://github.com/godotengine/godot/pull/94473)). -- Wayland: Fix error spam when interacting with decorations ([GH-94557](https://github.com/godotengine/godot/pull/94557)). -- Disable FP contraction ([GH-94655](https://github.com/godotengine/godot/pull/94655)). -- Fix the cleanup logic for the Android render thread ([GH-94661](https://github.com/godotengine/godot/pull/94661)). -- Pass window exclusive and transient properties for subwindow creation ([GH-94706](https://github.com/godotengine/godot/pull/94706)). -- Fix crash that occurs on termination of the Godot engine on Android ([GH-94923](https://github.com/godotengine/godot/pull/94923)). -- Windows: Improve OpenGL/ANGLE switching on ARM64 ([GH-94943](https://github.com/godotengine/godot/pull/94943)). -- Add missing null check before disconnecting source ([GH-94958](https://github.com/godotengine/godot/pull/94958)). -- macOS: Fix `is_process_running` and `kill` for bundled apps ([GH-94978](https://github.com/godotengine/godot/pull/94978)). -- macOS: Attempt to terminate process normally before using `forceTerminate` ([GH-95191](https://github.com/godotengine/godot/pull/95191)). -- macOS: Load `OpenGL.framework` by path to avoid issues with non-Latin executable names ([GH-95235](https://github.com/godotengine/godot/pull/95235)). -- macOS: Remove kill override ([GH-95295](https://github.com/godotengine/godot/pull/95295)). -- Wayland: Avoid recreating input objects on capability change ([GH-95331](https://github.com/godotengine/godot/pull/95331)). -- macOS: Fix wrong object type in joypad queue ([GH-95425](https://github.com/godotengine/godot/pull/95425)). -- DisplayServerWindows: Fix logic when creating with transient parent ([GH-95526](https://github.com/godotengine/godot/pull/95526)). +- Windows: Use `GetFileTime` for `FileAccess` ([GH-74830](https://github.com/godotengine/godot/pull/74830)). +- OS: Add functions to determine standard I/O device type ([GH-91201](https://github.com/godotengine/godot/pull/91201)). +- Apply `WS_MINIMIZE` style on window creation ([GH-91487](https://github.com/godotengine/godot/pull/91487)). +- Improve UX when falling back between Display Servers ([GH-91780](https://github.com/godotengine/godot/pull/91780)). +- Windows: Always use absolute UNC paths and long path aware APIs, add "long path aware" flag to the application manifest ([GH-91902](https://github.com/godotengine/godot/pull/91902)). +- macOS: Change the shortcut for Align Transform with View ([GH-94026](https://github.com/godotengine/godot/pull/94026)). +- Add support for non-blocking IO mode to `OS.execute_with_pipe` ([GH-94434](https://github.com/godotengine/godot/pull/94434)). +- Android memory cleanup and optimizations ([GH-94799](https://github.com/godotengine/godot/pull/94799)). +- Combine existing modes when calling SetConsoleMode ([GH-94839](https://github.com/godotengine/godot/pull/94839)). +- Windows: Improve video driver error messages ([GH-94971](https://github.com/godotengine/godot/pull/94971)). +- Update the Android `fileLastModified` method to return values in seconds instead of milliseconds ([GH-95586](https://github.com/godotengine/godot/pull/95586)). +- [Android Editor] Add support for launching the Play window in PiP mode ([GH-95700](https://github.com/godotengine/godot/pull/95700)). +- Enable fallback from ANGLE to native and improve ANGLE error messages ([GH-95934](https://github.com/godotengine/godot/pull/95934)). +- Wayland: Use `wayland-egl-core.h` instead of `wayland-egl.h` ([GH-96010](https://github.com/godotengine/godot/pull/96010)). +- NoiseTexture2D/3D: Don't use a thread to regenerate when the build doesn't support threads ([GH-96099](https://github.com/godotengine/godot/pull/96099)). +- macOS: Change breakpoint shortcuts to avoid conflicts ([GH-96179](https://github.com/godotengine/godot/pull/96179)). +- Android: Fix `JavaClassWrapper` so it actually works ([GH-96182](https://github.com/godotengine/godot/pull/96182)). +- Linux: Fix "all files" filter in the native file dialog ([GH-96203](https://github.com/godotengine/godot/pull/96203)). +- Linux: Make file filters case insensitive ([GH-96204](https://github.com/godotengine/godot/pull/96204)). +- Restore fullscreen toggle menu for the Android editor and clean up the immersive mode logic ([GH-96208](https://github.com/godotengine/godot/pull/96208)). +- Windows: Fix `OS.open_dynamic_library` ([GH-96235](https://github.com/godotengine/godot/pull/96235)). +- Windows: Fix handling `X:` paths ([GH-96283](https://github.com/godotengine/godot/pull/96283)). +- Add `JavaScriptBridge` buffer methods ([GH-96286](https://github.com/godotengine/godot/pull/96286)). +- Unix: Don't create world-writable files when safe save is enabled ([GH-96399](https://github.com/godotengine/godot/pull/96399)). +- Windows: Use the same API for all `OS_Windows::*_environment` functions ([GH-96526](https://github.com/godotengine/godot/pull/96526)). +- Fix renaming directory symlinks on Linux ([GH-96639](https://github.com/godotengine/godot/pull/96639)). +- Wayland: Make primary selection logic consistent with main clipboard ([GH-96714](https://github.com/godotengine/godot/pull/96714)). +- Windows: Only use long executable path when necessary, fix broken apksigner detection ([GH-96777](https://github.com/godotengine/godot/pull/96777)). +- Wayland: Clear button mask on pointer leave ([GH-96811](https://github.com/godotengine/godot/pull/96811)). +- Windows: Remove `_wstat` use in `FileAccessWindows::open_internal` ([GH-96840](https://github.com/godotengine/godot/pull/96840)). +- macOS: Fix dynamic library lookup for system libraries ([GH-96970](https://github.com/godotengine/godot/pull/96970)). +- Wayland: Simplify cursor code and fix custom cursors ([GH-96973](https://github.com/godotengine/godot/pull/96973)). +- Remove debug print from Android `DisplayServer.screen_get_scale` implementation ([GH-97063](https://github.com/godotengine/godot/pull/97063)). +- Remove verbose prints from CameraServer on Linux due to being printed every second ([GH-97469](https://github.com/godotengine/godot/pull/97469)). +- Wayland: Unsuspend only for the same reason as suspension ([GH-97480](https://github.com/godotengine/godot/pull/97480)). +- Fix error message on startup when camera is busy ([GH-97589](https://github.com/godotengine/godot/pull/97589)). +- Fix web export infinite reload issue ([GH-97645](https://github.com/godotengine/godot/pull/97645)). +- macOS: Fix menu crash when used from opened native dialog ([GH-97678](https://github.com/godotengine/godot/pull/97678)). +- [Linux/BSD] Fix cross-device rename ([GH-97719](https://github.com/godotengine/godot/pull/97719)). +- DisplayServer: Implement `has_hardware_keyboard` method for Android and iOS ([GH-97743](https://github.com/godotengine/godot/pull/97743)). +- Web: Fix PWA callback assignment causing crash in sandboxed iframes ([GH-98069](https://github.com/godotengine/godot/pull/98069)). +- Fix wrong Wayland path if building with opengl3=no ([GH-98127](https://github.com/godotengine/godot/pull/98127)). +- Android: Implement native file picker support ([GH-98350](https://github.com/godotengine/godot/pull/98350)). +- Add temp utilities (alias `OS::get_temp_dir()`, `FileAccess::create_temp()`, and `DirAccess::create_temp()`) ([GH-98397](https://github.com/godotengine/godot/pull/98397)). +- Fix GodotFetch glue code for null response bodies ([GH-98431](https://github.com/godotengine/godot/pull/98431)). +- Android: Implement native input dialog support ([GH-98574](https://github.com/godotengine/godot/pull/98574)). +- Remove button number limit from Windows `dialog_show()` implementation ([GH-98582](https://github.com/godotengine/godot/pull/98582)). +- Android: Add various media permissions ([GH-98604](https://github.com/godotengine/godot/pull/98604)). +- Windows: Fix restoring fullscreen window ([GH-98631](https://github.com/godotengine/godot/pull/98631)). +- macOS: Handle bundles as files in the embedded file dialogs ([GH-98812](https://github.com/godotengine/godot/pull/98812)). +- Android: Fix immersive mode issue ([GH-98917](https://github.com/godotengine/godot/pull/98917)). +- Raise the number of file handles on Windows ([GH-98921](https://github.com/godotengine/godot/pull/98921)). +- Warn on filesystem case mismatch ([GH-98927](https://github.com/godotengine/godot/pull/98927)). +- Web: Fix issue where focus timer would throw continuously ([GH-98931](https://github.com/godotengine/godot/pull/98931)). +- Web: Remove warnings when setting vsync mode and screen keep on ([GH-98934](https://github.com/godotengine/godot/pull/98934)). +- Metal: Use `afterMinimumDuration` to correct frame pacing ([GH-99041](https://github.com/godotengine/godot/pull/99041)). +- Windows: Avoid child processes inheriting all file handles ([GH-99107](https://github.com/godotengine/godot/pull/99107)). +- Implement `get_model_name` on macOS and Windows ([GH-99112](https://github.com/godotengine/godot/pull/99112)). +- Support MIME types in file dialog filters on macOS and Linux ([GH-99350](https://github.com/godotengine/godot/pull/99350)). +- Implement `DisplayServer.beep` ([GH-99371](https://github.com/godotengine/godot/pull/99371)). +- Wayland: Only set selection when there is not already a source ([GH-99372](https://github.com/godotengine/godot/pull/99372)). +- Implement extension support for native file dialog on Android ([GH-99385](https://github.com/godotengine/godot/pull/99385)). +- Disable Nahimic code injection ([GH-99388](https://github.com/godotengine/godot/pull/99388)). +- Additional fixes and improvements to JavaClassWrapper ([GH-99492](https://github.com/godotengine/godot/pull/99492)). +- Windows: Fix TTS events arriving out of order ([GH-99525](https://github.com/godotengine/godot/pull/99525)). +- Change file dialog all files filter name from `All Files (*)` to `All Files (*.*)` ([GH-99644](https://github.com/godotengine/godot/pull/99644)). +- Windows: Fix root and current folder in native file dialog ([GH-99652](https://github.com/godotengine/godot/pull/99652)). +- Fix root window size bug on `Android` ([GH-99669](https://github.com/godotengine/godot/pull/99669)). +- Android: `OS.create_instance()` should return `-1` on failure ([GH-99694](https://github.com/godotengine/godot/pull/99694)). +- Windows: Improve frame pacing by busy waiting as needed ([GH-99833](https://github.com/godotengine/godot/pull/99833)). +- Add missing getter for sharp window corners ([GH-99879](https://github.com/godotengine/godot/pull/99879)). +- Web: Implement dummy IP and NetSocket ([GH-99963](https://github.com/godotengine/godot/pull/99963)). +- Wayland: Add support for xdg-foreign-unstable-v2 ([GH-99965](https://github.com/godotengine/godot/pull/99965)). +- Fix Inspector tooltips blinking on Windows ([GH-99988](https://github.com/godotengine/godot/pull/99988)). +- Web: Fix `DirAccess::unlink()` not updating the IDBFS ([GH-100221](https://github.com/godotengine/godot/pull/100221)). +- macOS: Print full source paths in the trace ([GH-100266](https://github.com/godotengine/godot/pull/100266)). +- Windows: Fix loading debug symbol files over 2GB ([GH-100281](https://github.com/godotengine/godot/pull/100281)). +- Add `OS.get_version_alias()` to return a human-readable Windows/macOS version number ([GH-100372](https://github.com/godotengine/godot/pull/100372)). +- Add support for thread naming on windows platform ([GH-100400](https://github.com/godotengine/godot/pull/100400)). +- Implement `window_start_drag` on Windows and Linux ([GH-100464](https://github.com/godotengine/godot/pull/100464)). +- Fix (some of the) 3.1.73 emscripten Closure compiler issues ([GH-100482](https://github.com/godotengine/godot/pull/100482)). +- Implement `DisplayServer.window_start_resize` ([GH-100532](https://github.com/godotengine/godot/pull/100532)). +- Camera: Skip non platform-specifc `CameraFeed` types in Linux/macOS driver ([GH-100540](https://github.com/godotengine/godot/pull/100540)). +- Add option to disable `Swipe to Dismiss` for Wear OS ([GH-100601](https://github.com/godotengine/godot/pull/100601)). +- Fix exclusive fullscreen on Wayland ([GH-100898](https://github.com/godotengine/godot/pull/100898)). +- Windows: Implement native menu close callback ([GH-100987](https://github.com/godotengine/godot/pull/100987)). +- Windows: Fix StatusIndicator crash with empty tooltip (and few other similar unsafe `ptr()` uses) ([GH-101015](https://github.com/godotengine/godot/pull/101015)). +- Fix `create_instance` in Android GodotApp so non-editor apps can restart ([GH-101050](https://github.com/godotengine/godot/pull/101050)). +- Fix embedding failing intermittently ([GH-101135](https://github.com/godotengine/godot/pull/101135)). +- Use `GetFileAttributesW` for checking file existence on Windows ([GH-101431](https://github.com/godotengine/godot/pull/101431)). +- DisplayServer: Add missing `FEATURE_WINDOW_DRAG` flag to Windows, X11 and Wayland display servers ([GH-101538](https://github.com/godotengine/godot/pull/101538)). +- Fix Wayland `window_can_set_mode` ExclusiveFullScreen ([GH-101566](https://github.com/godotengine/godot/pull/101566)). +- Windows: Make native dialogs non-cancelable and stay on top of parent ([GH-101697](https://github.com/godotengine/godot/pull/101697)). +- Wayland: Check selection devices before using them ([GH-101779](https://github.com/godotengine/godot/pull/101779)). +- [FreeDesktop portal] Check for `FileChooser` and `Settings` interface availability instead of assuming it's always available ([GH-101812](https://github.com/godotengine/godot/pull/101812)). +- Wayland: Release pressed events on application focus out ([GH-101819](https://github.com/godotengine/godot/pull/101819)). +- Wayland: Check custom cursor resource reference for cache invalidation ([GH-101987](https://github.com/godotengine/godot/pull/101987)). +- Windows: Normalize slashes in return of `OS.get_temp_dir()` ([GH-102067](https://github.com/godotengine/godot/pull/102067)). +- Windows: Remove unused code from `godot_windows.cpp` ([GH-102134](https://github.com/godotengine/godot/pull/102134)). +- Fix Floating Window not visible after restore on KDE ([GH-102311](https://github.com/godotengine/godot/pull/102311)). +- Implement `get_length()` for pipes ([GH-102365](https://github.com/godotengine/godot/pull/102365)). +- Add `XK_KP_{Decimal,Enter}` to `KeyMappingX11::is_sym_numpad()` ([GH-102448](https://github.com/godotengine/godot/pull/102448)). +- Add support for embedding game process in the Android Editor ([GH-102492](https://github.com/godotengine/godot/pull/102492)). +- JavaClassWrapper: Give additional error when trying to call non-static method directly on the class ([GH-102494](https://github.com/godotengine/godot/pull/102494)). +- Unix: Fix deleting symlinks ([GH-102545](https://github.com/godotengine/godot/pull/102545)). +- iOS: Sync the boot splash and the launch screen image scale modes ([GH-102668](https://github.com/godotengine/godot/pull/102668)). +- Revert finalizing `GodotHost#getCommandLine()` public API ([GH-102669](https://github.com/godotengine/godot/pull/102669)). +- Wayland: Fix engine stalls while waiting frames ([GH-102674](https://github.com/godotengine/godot/pull/102674)). +- Fix Game and editor freeze when clicking on the game's title bar ([GH-102744](https://github.com/godotengine/godot/pull/102744)). +- Windows: Read Wacom config to check if Windows Ink is disabled and auto switch to WinTab ([GH-102801](https://github.com/godotengine/godot/pull/102801)). +- Windows: Add missing opened file check ([GH-102803](https://github.com/godotengine/godot/pull/102803)). +- Windows: Fix missing argument in non-console logger call ([GH-102827](https://github.com/godotengine/godot/pull/102827)). +- JavaClassWrapper: Allow handling exceptions (rather than just crashing) ([GH-102862](https://github.com/godotengine/godot/pull/102862)). +- Window: Fix flashing subwindows ([GH-102983](https://github.com/godotengine/godot/pull/102983)). +- Fix Embedded Game startup location on Windows ([GH-103021](https://github.com/godotengine/godot/pull/103021)). +- Fix Embedded Game does not focus when mouse over on Windows ([GH-103052](https://github.com/godotengine/godot/pull/103052)). +- Android Editor: Fix expand button black bar issue ([GH-103117](https://github.com/godotengine/godot/pull/103117)). +- Android: Fix excessive `getRotation` calls ([GH-103122](https://github.com/godotengine/godot/pull/103122)). #### Rendering -- Add `texel_scale` property to LightmapGI ([GH-64908](https://github.com/godotengine/godot/pull/64908)). -- Add Direct3D 12 rendering driver (Mesa NIR approach) ([GH-70315](https://github.com/godotengine/godot/pull/70315)). -- Make the rendering method dropdown also affect mobile if compatible ([GH-72461](https://github.com/godotengine/godot/pull/72461)). -- Fix shadows for billboarded Sprite3D's ([GH-72638](https://github.com/godotengine/godot/pull/72638)). -- Add option to bake a mesh from blend shape mix ([GH-76725](https://github.com/godotengine/godot/pull/76725)). -- Update Y-sort position of the first item in the sorted subtree ([GH-79452](https://github.com/godotengine/godot/pull/79452)). -- Implement hooks into renderer ([GH-80214](https://github.com/godotengine/godot/pull/80214)). -- Improve warning messages related to Vulkan pipeline cache ([GH-80232](https://github.com/godotengine/godot/pull/80232)). -- OpenGL: Implement 3D Texture support ([GH-80363](https://github.com/godotengine/godot/pull/80363)). -- Fix potential integer underflow in rounded up divisions ([GH-80390](https://github.com/godotengine/godot/pull/80390)). -- Improve split blending logic for Vulkan ([GH-82668](https://github.com/godotengine/godot/pull/82668)). -- Add thread guard for `force_draw` and update related documentation ([GH-82953](https://github.com/godotengine/godot/pull/82953)). -- Split `RenderingDevice` into API-agnostic and `RenderingDeviceDriver` parts ([GH-83452](https://github.com/godotengine/godot/pull/83452)). -- Fix buffer updates going to the wrong cmd buffer if barriers were 0 ([GH-83736](https://github.com/godotengine/godot/pull/83736)). -- Expose `energy_multiplier` to remaining SkyMaterials ([GH-83938](https://github.com/godotengine/godot/pull/83938)). -- Add 3D MSAA and scaling support to GLES3 ([GH-83976](https://github.com/godotengine/godot/pull/83976)). -- Merge passes in Vulkan mobile renderer ([GH-84169](https://github.com/godotengine/godot/pull/84169)). -- Fix bad parameter for `rendering_method` crashes Godot ([GH-84241](https://github.com/godotengine/godot/pull/84241)). -- Skip swapchain logic if there is nothing to present (Android OpenXR) ([GH-84244](https://github.com/godotengine/godot/pull/84244)). -- Add `shadows_disabled` macro in Compatibility renderer ([GH-84416](https://github.com/godotengine/godot/pull/84416)). -- Transform mesh's AABB to skeleton's space when calculating mesh's bounds ([GH-84451](https://github.com/godotengine/godot/pull/84451)). -- Fix Camera2D frame delay (port from 3.x) ([GH-84465](https://github.com/godotengine/godot/pull/84465)). -- Extend `CanvasItem::draw_circle()`, making it also draw unfilled circle ([GH-84472](https://github.com/godotengine/godot/pull/84472)). -- CanvasItem draw implement antialiasing for `circle`, `rect`, `multiline`, and `dashedline` ([GH-84523](https://github.com/godotengine/godot/pull/84523)). -- Use render pass uniform set to store viewport samplers ([GH-84637](https://github.com/godotengine/godot/pull/84637)). -- Add MSAA support for WebXR ([GH-84686](https://github.com/godotengine/godot/pull/84686)). -- Only copy the relevant portion of the screen when copying to backbuffer in Compatibility backend ([GH-84733](https://github.com/godotengine/godot/pull/84733)). -- Shadow volume culling and tighter shadow caster culling ([GH-84745](https://github.com/godotengine/godot/pull/84745)). -- Add optional depth fog to Environment ([GH-84792](https://github.com/godotengine/godot/pull/84792)). -- Vulkan: Fix incorrect access to the buffers on Android ([GH-84852](https://github.com/godotengine/godot/pull/84852)). -- Store ArrayMesh path in RenderingServer for use in error messages ([GH-84894](https://github.com/godotengine/godot/pull/84894)). -- Acyclic Command Graph for Rendering Device ([GH-84976](https://github.com/godotengine/godot/pull/84976)). -- Use vertex input mask for creating vertex arrays ([GH-85092](https://github.com/godotengine/godot/pull/85092)). -- OpenGL: Implement rendering of lightmaps ([GH-85120](https://github.com/godotengine/godot/pull/85120)). -- Remove GI methods in parentheses from light baking options ([GH-85219](https://github.com/godotengine/godot/pull/85219)). -- Fix typo in BaseMaterial3D conversion from 3.x SpatialMaterial ([GH-85269](https://github.com/godotengine/godot/pull/85269)). -- Force ANGLE on all pre GCN 4th gen. AMD/ATI GPUs ([GH-85273](https://github.com/godotengine/godot/pull/85273)). -- Add property change guards to Sprite2D, Sprite3D and AnimatedSprite2D ([GH-85311](https://github.com/godotengine/godot/pull/85311)). -- Fix invalid `frame` index when Sprite2D's `hframes` or `vframes` change ([GH-85317](https://github.com/godotengine/godot/pull/85317)). -- Use render method from OS instead of project settings in compositor RD ([GH-85387](https://github.com/godotengine/godot/pull/85387)). -- Avoid crashes when engine leaks canvas items and friends ([GH-85520](https://github.com/godotengine/godot/pull/85520)). -- Apply some low-hanging fruit optimizations to Vulkan RD ([GH-85532](https://github.com/godotengine/godot/pull/85532)). -- Add premult alpha blending to 3D (spatial) shaders ([GH-85609](https://github.com/godotengine/godot/pull/85609)). -- Add wireframe for compatibility mode ([GH-85621](https://github.com/godotengine/godot/pull/85621)). -- Set ReflectionProbe frame before mapping id in mobile renderer ([GH-85635](https://github.com/godotengine/godot/pull/85635)). -- Add a descriptive error message when creating a mesh surface from the wrong array type ([GH-85646](https://github.com/godotengine/godot/pull/85646)). -- GLES3: Skip batches with zero instance count while rendering canvas ([GH-85778](https://github.com/godotengine/godot/pull/85778)). -- macOS: Switch ANGLE backend to ANGLE over OpenGL, switch default compatibility renderer back to native ([GH-85785](https://github.com/godotengine/godot/pull/85785)). -- Expose `copy_effects` compute shader in Mobile backend ([GH-85793](https://github.com/godotengine/godot/pull/85793)). -- Implement render info counters for the 2D renderer ([GH-85811](https://github.com/godotengine/godot/pull/85811)). -- Fix CanvasOcclusionShaderRD format error with double precision build ([GH-85822](https://github.com/godotengine/godot/pull/85822)). -- Ensure that 2D meshes use a proper input mask ([GH-85972](https://github.com/godotengine/godot/pull/85972)). -- Windows: Always use ANGLE in ARM builds ([GH-86001](https://github.com/godotengine/godot/pull/86001)). -- Fix radiance for sky in GLES stereo rendering ([GH-86018](https://github.com/godotengine/godot/pull/86018)). -- Fix Volumetric Fog VoxelGI updates ([GH-86023](https://github.com/godotengine/godot/pull/86023)). -- Remove dead code from `DisplayServerWindows::window_set_size` ([GH-86029](https://github.com/godotengine/godot/pull/86029)). -- Add a reflection mask to the reflection probes ([GH-86073](https://github.com/godotengine/godot/pull/86073)). -- Jitter raster occlusion camera to reduce false positives ([GH-86121](https://github.com/godotengine/godot/pull/86121)). -- Reduce the number of samplers used by the scene shaders ([GH-86219](https://github.com/godotengine/godot/pull/86219)). -- Use best fit normals for storing screen space normals ([GH-86316](https://github.com/godotengine/godot/pull/86316)). -- Fix wrong error message when graphics pipeline creation fails ([GH-86405](https://github.com/godotengine/godot/pull/86405)). -- Add `RD_ENABLED` when `VULKAN_ENABLED` or `D3D12_ENABLED` is added ([GH-86435](https://github.com/godotengine/godot/pull/86435)). -- Fix MSVC 14.1 complaining about "attempting to reference a deleted function" in RenderPassClearValue ([GH-86507](https://github.com/godotengine/godot/pull/86507)). -- Fix incorrect `CAMERA_DIRECTION_WORLD` calculation ([GH-86516](https://github.com/godotengine/godot/pull/86516)). -- RenderingDevice: Fix uniform sets wrongly assumed to be bound ([GH-86522](https://github.com/godotengine/godot/pull/86522)). -- D3D12: Dynamically load Agility SDK ([GH-86551](https://github.com/godotengine/godot/pull/86551)). -- Fix LightmapperRD division warning in MSVC ([GH-86555](https://github.com/godotengine/godot/pull/86555)). -- Fix Polygon2D to Skeleton2D transform calculation ([GH-86557](https://github.com/godotengine/godot/pull/86557)). -- Support CUSTOM shader attributes in 2D ([GH-86564](https://github.com/godotengine/godot/pull/86564)). -- Tiny fix for lightmapper DDA ([GH-86583](https://github.com/godotengine/godot/pull/86583)). -- Implement overdraw, lighting, and unshaded debug draw modes for OpenGL ([GH-86677](https://github.com/godotengine/godot/pull/86677)). -- Add autocompletion for RenderingServer's global shader methods & `has_os_feature` ([GH-86798](https://github.com/godotengine/godot/pull/86798)). -- Fix global transform being wrong on entering tree ([GH-86841](https://github.com/godotengine/godot/pull/86841)). -- Avoid several null-dereferences of ApiContextRD ([GH-86843](https://github.com/godotengine/godot/pull/86843)). -- Fix usage of index offsets in RenderingDevice ([GH-86852](https://github.com/godotengine/godot/pull/86852)). -- Fix determination of copyable layout for compressed textures in Vulkan ([GH-86855](https://github.com/godotengine/godot/pull/86855)). -- Fix build warning with memset value being too large ([GH-86920](https://github.com/godotengine/godot/pull/86920)). -- Fix SSR not working properly in stereo ([GH-86996](https://github.com/godotengine/godot/pull/86996)). -- Windows: Add support for hex vendor/device IDs in the Angle blocklist. Add Intel Gen5/Gen6/Gen7 GPUs to Angle blocklist ([GH-87013](https://github.com/godotengine/godot/pull/87013)). -- Fix incorrect mapping of initial action as clear region continue to clear ([GH-87022](https://github.com/godotengine/godot/pull/87022)). -- Deprecate RenderingServer's `has_feature` and Features enum ([GH-87035](https://github.com/godotengine/godot/pull/87035)). -- Default to 32-bit depth map on Forward+ renderer and 24-bit only on Mobile renderer ([GH-87057](https://github.com/godotengine/godot/pull/87057)). -- Fix UV issues in Compatibility renderer ([GH-87067](https://github.com/godotengine/godot/pull/87067)). -- Add `shader_cache_dir_valid` check to `_save_to_cache` ([GH-87096](https://github.com/godotengine/godot/pull/87096)). -- Fix build warning with memset value being too large ([GH-87155](https://github.com/godotengine/godot/pull/87155)). -- Fix 2D normals for transposed texture ([GH-87225](https://github.com/godotengine/godot/pull/87225)). -- Stabilize snapping 2D transforms to pixel ([GH-87297](https://github.com/godotengine/godot/pull/87297)). -- D3D12 RDD: Fix wrong argument when resolving timestamp queries ([GH-87298](https://github.com/godotengine/godot/pull/87298)). -- Finish splitting functionality of the `RenderingDevice` backends into `RenderingDeviceDriver` ([GH-87340](https://github.com/godotengine/godot/pull/87340)). -- Fix memory leak from not clearing the buffer barrier vector properly on the render graph ([GH-87349](https://github.com/godotengine/godot/pull/87349)). -- Fix Compatibility Rendering (GLES3) on old and low budget devices ([GH-87352](https://github.com/godotengine/godot/pull/87352)). -- Implement glow/bloom on compatibility renderer ([GH-87360](https://github.com/godotengine/godot/pull/87360)). -- Add GLES3 infrastructure for lightmap baking in the compatibility backend ([GH-87386](https://github.com/godotengine/godot/pull/87386)). -- Add `ivec` variants to `multiview_uv` for stereo rendering ([GH-87460](https://github.com/godotengine/godot/pull/87460)). -- OpenXR: Cleanup swapchain logic (was Fix render target multiplier) ([GH-87466](https://github.com/godotengine/godot/pull/87466)). -- Direct3D 12: Let NIR runtime data and push constants use the same register scheme as bindings ([GH-87482](https://github.com/godotengine/godot/pull/87482)). -- Disable scissor test after rendering batches in compatibility renderer ([GH-87489](https://github.com/godotengine/godot/pull/87489)). -- Clean up outdated `USE_LIGHT_SHADER_CODE` usage ([GH-87495](https://github.com/godotengine/godot/pull/87495)). -- Fix framebuffer created for reflection probe in mobile renderer ([GH-87505](https://github.com/godotengine/godot/pull/87505)). -- Fix validation errors by improving stage and slice tracking behavior of RenderingDeviceGraph ([GH-87512](https://github.com/godotengine/godot/pull/87512)). -- Avoid saving the `texture_rd_rid` property of TextureRD resources ([GH-87541](https://github.com/godotengine/godot/pull/87541)). -- Significantly improve the speed of shader compilation in compatibility backend ([GH-87553](https://github.com/godotengine/godot/pull/87553)). -- Direct3D 12: Make format feature check more defensive ([GH-87570](https://github.com/godotengine/godot/pull/87570)). -- Direct3D 12: Fix and enable custom debug printing ([GH-87572](https://github.com/godotengine/godot/pull/87572)). -- Direct3D 12: Include in CODEOWNERS ([GH-87574](https://github.com/godotengine/godot/pull/87574)). -- Do not use a linear sampler on lightmapper when retrieving grid data ([GH-87618](https://github.com/godotengine/godot/pull/87618)). -- Direct3D 12: Query support for 16-bit operations ([GH-87670](https://github.com/godotengine/godot/pull/87670)). -- Add check in `CompressedTextureLayered::get_layer_data` to prevent crash ([GH-87694](https://github.com/godotengine/godot/pull/87694)). -- Free dummy renderer objects ([GH-87710](https://github.com/godotengine/godot/pull/87710)). -- Enforce calling RenderingDevice code from rendering thread in TextureRD classes ([GH-87721](https://github.com/godotengine/godot/pull/87721)). -- Do not reflect the origin lines in a mirror ([GH-87757](https://github.com/godotengine/godot/pull/87757)). -- Direct3D 12: Avoid terrible leak related to command allocators ([GH-87795](https://github.com/godotengine/godot/pull/87795)). -- Namespace shader cache files by graphics API ([GH-87796](https://github.com/godotengine/godot/pull/87796)). -- Direct3D 12: Enhance management of texture data life cycle ([GH-87872](https://github.com/godotengine/godot/pull/87872)). -- Direct 3D 12: Implement proper fallback for format casting ([GH-88027](https://github.com/godotengine/godot/pull/88027)). -- Add reflection probe support to compatibility renderer ([GH-88056](https://github.com/godotengine/godot/pull/88056)). -- Fix missing instance type in dummy renderer ([GH-88097](https://github.com/godotengine/godot/pull/88097)). -- Make `RID_Owner<Texture>` threadsafe in `TextureStorage` for GLES3 ([GH-88205](https://github.com/godotengine/godot/pull/88205)). -- Direct3D 12: Fix cubemap slicing ([GH-88252](https://github.com/godotengine/godot/pull/88252)). -- D3D12: Improve shader validation handling ([GH-88254](https://github.com/godotengine/godot/pull/88254)). -- Fix swap chain errors when application starts minimized ([GH-88289](https://github.com/godotengine/godot/pull/88289)). -- Disable ReShade in the editor and project manager (if run via Vulkan) ([GH-88316](https://github.com/godotengine/godot/pull/88316)). -- Use Reverse Z for the depth buffer ([GH-88328](https://github.com/godotengine/godot/pull/88328)). -- Add validation to render graph for draw and compute lists ([GH-88331](https://github.com/godotengine/godot/pull/88331)). -- Handle `VK_SUBOPTIMAL_KHR` as a valid error code to fix Android performance ([GH-88361](https://github.com/godotengine/godot/pull/88361)). -- Fix unshaded debug draw mode for LightmapGI ([GH-88384](https://github.com/godotengine/godot/pull/88384)). -- Allow VisibleOnScreenNotifier2D/3D to have empty `enable_node_path` ([GH-88403](https://github.com/godotengine/godot/pull/88403)). -- Make dummy rendering server appear as a high end platform to fix vulkan shader compile error when exporting ([GH-88409](https://github.com/godotengine/godot/pull/88409)). -- Fix reversed custom `AABB` check when recalculating multimesh `AABB`s ([GH-88506](https://github.com/godotengine/godot/pull/88506)). -- D3D12: Define GUIDs directly ([GH-88540](https://github.com/godotengine/godot/pull/88540)). -- Merge execute and present commands for RenderingDeviceDriver ([GH-88560](https://github.com/godotengine/godot/pull/88560)). -- Fix shader cache with transform feedback on some Android devices ([GH-88573](https://github.com/godotengine/godot/pull/88573)). -- Fail early if shader mode is invalid in dummy renderer ([GH-88581](https://github.com/godotengine/godot/pull/88581)). -- Remove unnecessary AABB initialization for CPUParticles ([GH-88602](https://github.com/godotengine/godot/pull/88602)). -- Change glow calculation back to `max(r,g,b)` ([GH-88612](https://github.com/godotengine/godot/pull/88612)). -- Remove tracking logic for input attachments as it's not necessary ([GH-88631](https://github.com/godotengine/godot/pull/88631)). -- Fix OpenGL on Android after adding optional depth fog ([GH-88633](https://github.com/godotengine/godot/pull/88633)). -- Use barriers between all blur passes with SSAO and SSIL ([GH-88649](https://github.com/godotengine/godot/pull/88649)). -- Implement VisibilityNotifier3D in the compatibility backend ([GH-88684](https://github.com/godotengine/godot/pull/88684)). -- Consistently use `system_fbo` instead of binding 0 as it is needed for iOS devices ([GH-88745](https://github.com/godotengine/godot/pull/88745)). -- Fix rendering issue with depth in WebXR ([GH-88787](https://github.com/godotengine/godot/pull/88787)). -- Add fix for TAA passes rendering black meshes on XR ([GH-88830](https://github.com/godotengine/godot/pull/88830)). -- Add `compositor_free` branch in Compatibility scene renderer free function ([GH-88873](https://github.com/godotengine/godot/pull/88873)). -- Ensure proper vertex input masks are used in 2D compatibility renderer ([GH-88938](https://github.com/godotengine/godot/pull/88938)). -- Direct3D 12: Fix shader model support check for devices not aware of the highest ones ([GH-89038](https://github.com/godotengine/godot/pull/89038)). -- Fix never ending loop with overlapping probes ([GH-89134](https://github.com/godotengine/godot/pull/89134)). -- Vulkan: Don't warn about invalid pipelines cache if missing ([GH-89180](https://github.com/godotengine/godot/pull/89180)). -- Make shader binary alignment handling simpler and more robust ([GH-89209](https://github.com/godotengine/godot/pull/89209)). -- Make Overdraw, Lighting and Shadow Splits debug draw modes ignore decals ([GH-89253](https://github.com/godotengine/godot/pull/89253)). -- Make `ShaderDescription` and related types public ([GH-89277](https://github.com/godotengine/godot/pull/89277)). -- Fix lightmap captures not applied in one octant ([GH-89281](https://github.com/godotengine/godot/pull/89281)). -- Increase coverage of timestamps for visual profiler ([GH-89398](https://github.com/godotengine/godot/pull/89398)). -- Ensure specialization constants come sorted from reflection ([GH-89420](https://github.com/godotengine/godot/pull/89420)). -- Set a minimum of 0.01 for proximity fade to avoid undefined behavior in shader ([GH-89432](https://github.com/godotengine/godot/pull/89432)). -- Fix missed light clusters when inside clipped lights ([GH-89450](https://github.com/godotengine/godot/pull/89450)). -- Fix shader compilation error when enabling texture MSDF and UV1 Triplanar at the same time ([GH-89470](https://github.com/godotengine/godot/pull/89470)). -- Expose bindings to compute dispatch indirect of rendering device ([GH-89491](https://github.com/godotengine/godot/pull/89491)). -- Allow BaseMaterial3D height/dither fade to work with Compatibility rendering ([GH-89528](https://github.com/godotengine/godot/pull/89528)). -- Fix mobile renderer RID leaks ([GH-89531](https://github.com/godotengine/godot/pull/89531)). -- Tighter shadow culling - fix light colinear to frustum edge ([GH-89714](https://github.com/godotengine/godot/pull/89714)). -- Shadow fade for omni lights actually stops the shadow from updating while faded out to improve performance ([GH-89729](https://github.com/godotengine/godot/pull/89729)). -- OpenXR: Change timing of xrWaitFrame and fix XR multithreading issues ([GH-89734](https://github.com/godotengine/godot/pull/89734)). -- Add missing `RenderInfoType` enum to `Viewport` ([GH-89805](https://github.com/godotengine/godot/pull/89805)). -- Fix decal modulate being passed as srgb instead of as linear color ([GH-89849](https://github.com/godotengine/godot/pull/89849)). -- Add support for OpenXR composition layers ([GH-89880](https://github.com/godotengine/godot/pull/89880)). -- Improvements to VRS/Foveated rendering ([GH-89894](https://github.com/godotengine/godot/pull/89894)). -- TileMap: Fix forcing cleanup on exiting tree/canvas ([GH-89975](https://github.com/godotengine/godot/pull/89975)). -- Fix `RenderingDevice::get_driver_resource` crash or incorrect result with certain resources ([GH-90011](https://github.com/godotengine/godot/pull/90011)). -- Add early return when setting `transparent_bg` ([GH-90055](https://github.com/godotengine/godot/pull/90055)). -- Expose `MeshInstance3D.get_skin_reference` and add docs ([GH-90056](https://github.com/godotengine/godot/pull/90056)). -- Don't use subpasses when we're using Canvas background mode in Mobile ([GH-90191](https://github.com/godotengine/godot/pull/90191)). -- Allow Decal Emission Energy values above 128 in the inspector ([GH-90217](https://github.com/godotengine/godot/pull/90217)). -- Fix OpenGL `_shadow_atlas_find_shadow` error when light instance is freed ([GH-90233](https://github.com/godotengine/godot/pull/90233)). -- Fix per-node physics interpolation setting ([GH-90246](https://github.com/godotengine/godot/pull/90246)). -- Add toggle for enabling or disabling RenderingDevice's pipeline cache ([GH-90271](https://github.com/godotengine/godot/pull/90271)). -- Fix sharing World2D between SubViewports causes 2D lights of one SubViewport to go missing ([GH-90282](https://github.com/godotengine/godot/pull/90282)). -- Avoid compiler error with RenderingContextDriverVulkanWindows ([GH-90326](https://github.com/godotengine/godot/pull/90326)). -- OpenXR: Apply fix for reverse Z ([GH-90416](https://github.com/godotengine/godot/pull/90416)). -- Fix GeometryInstance3D Custom AABB assignment in the editor not working ([GH-90440](https://github.com/godotengine/godot/pull/90440)). -- Clear RIDs of weight buffers when freeing to avoid double free ([GH-90458](https://github.com/godotengine/godot/pull/90458)). -- Fix incorrect bounds check in RenderingDevice push constant ([GH-90620](https://github.com/godotengine/godot/pull/90620)). -- Delaunay3D/LightmapGI: Improve triangulation ([GH-90701](https://github.com/godotengine/godot/pull/90701)). -- LightmapGI: Reduce warnings and increase probe accuracy ([GH-90702](https://github.com/godotengine/godot/pull/90702)). -- Fix `Line2D` joints with `joint_mode` set to Round rendered "flipped" for a 180 degree angle ([GH-90786](https://github.com/godotengine/godot/pull/90786)). -- Use a src rect for copying from screen with CanvasGroup in the mobile backend ([GH-90821](https://github.com/godotengine/godot/pull/90821)). -- Revert change to default depth clear value in `draw_list_begin()` ([GH-90828](https://github.com/godotengine/godot/pull/90828)). -- LightmapGI: Fix seam blending with directional lightmaps ([GH-90848](https://github.com/godotengine/godot/pull/90848)). -- Fix LightOccluder2D SDF Collision Enable/Disable ([GH-90883](https://github.com/godotengine/godot/pull/90883)). -- Ensure minimum block size is respected when doing GPU to CPU copies of compressed textures ([GH-90911](https://github.com/godotengine/godot/pull/90911)). -- Avoid writing out of range data over valid data in CVTT decompress methods when decompressing small mip levels ([GH-90912](https://github.com/godotengine/godot/pull/90912)). -- Apply additional fixes to servers' threading ([GH-90913](https://github.com/godotengine/godot/pull/90913)). -- Exit light calculation early when pixel outside of light bounding rectangle ([GH-90920](https://github.com/godotengine/godot/pull/90920)). -- Handle compressed images in `TileSetAtlasSource::_create_padded_image_texture` ([GH-90994](https://github.com/godotengine/godot/pull/90994)). -- Fix issue with copy shader not working in multiview ([GH-91059](https://github.com/godotengine/godot/pull/91059)). -- Fix issue in shadow to opacity ([GH-91096](https://github.com/godotengine/godot/pull/91096)). -- Add `LIGHT_VERTEX` to fragment shader ([GH-91136](https://github.com/godotengine/godot/pull/91136)). -- Fix crash on compatibility fallback when vkCreateRenderPass2KHR is unavailable ([GH-91169](https://github.com/godotengine/godot/pull/91169)). -- Tweak appearance of 3D editor gizmo icons ([GH-91174](https://github.com/godotengine/godot/pull/91174)). -- Add adjustments and color correction to Compatibility renderer ([GH-91176](https://github.com/godotengine/godot/pull/91176)). -- Properly calculate penumbra for soft shadows with reverse z ([GH-91191](https://github.com/godotengine/godot/pull/91191)). -- Fix incorrect memory read when capacity changes in RD Graph ([GH-91312](https://github.com/godotengine/godot/pull/91312)). -- Ensure that environment is available before checking for BCS ([GH-91322](https://github.com/godotengine/godot/pull/91322)). -- Fix SDFGI being used in unshaded debug draw ([GH-91344](https://github.com/godotengine/godot/pull/91344)). -- Ensure global shader sampler parameters are initialized when loading ([GH-91414](https://github.com/godotengine/godot/pull/91414)). -- Fix typo in shader breaking gles3 ([GH-91426](https://github.com/godotengine/godot/pull/91426)). -- Use a full screen triangle for mipmap calculations in mobile renderer ([GH-91480](https://github.com/godotengine/godot/pull/91480)). -- Add optional driver workaround to RenderingDevice for Adreno 6XX ([GH-91514](https://github.com/godotengine/godot/pull/91514)). -- Add draw and dispatch count to timestamp validation ([GH-91530](https://github.com/godotengine/godot/pull/91530)). -- Properly set size of shadow atlas quadrant when subdivision is 8 or higher ([GH-91545](https://github.com/godotengine/godot/pull/91545)). -- Add a project setting to configure the maximum number of timestamps ([GH-91551](https://github.com/godotengine/godot/pull/91551)). -- LightmapGI: Fix lightleaks caused by insufficient padding and add denoiser range property for LightmapGI ([GH-91601](https://github.com/godotengine/godot/pull/91601)). -- Skip rendering sky if viewport is set to transparent background ([GH-91642](https://github.com/godotengine/godot/pull/91642)). -- Add support for enhanced barriers in D3D12 ([GH-91769](https://github.com/godotengine/godot/pull/91769)). -- Tighter light culling - fix directional lights colinear case ([GH-91790](https://github.com/godotengine/godot/pull/91790)). -- Rewrite reprojection for FSR2 to work correctly with Reverse-Z ([GH-91799](https://github.com/godotengine/godot/pull/91799)). -- Do not use MSAA versions of textures on debug views ([GH-91808](https://github.com/godotengine/godot/pull/91808)). -- Fix MultiMesh buffer cache in transforms-only case ([GH-91846](https://github.com/godotengine/godot/pull/91846)). -- Fix compatibility renderer load of compressed layered `GL_TEXTURE_2D_ARRAY` ([GH-91853](https://github.com/godotengine/godot/pull/91853)). -- Fix lightmapper seam blending ([GH-91985](https://github.com/godotengine/godot/pull/91985)). -- Optimize usage of "prepare for use" in draw and dispatch commands ([GH-91989](https://github.com/godotengine/godot/pull/91989)). -- Increase coverage of VRAM debugger and add support to RD backends ([GH-92000](https://github.com/godotengine/godot/pull/92000)). -- vulkan: Update all components to Vulkan SDK 1.3.283.0 ([GH-92010](https://github.com/godotengine/godot/pull/92010)). -- Add context getter to RenderingDevice ([GH-92045](https://github.com/godotengine/godot/pull/92045)). -- Tight shadow culling - increase epsilon to prevent flickering ([GH-92078](https://github.com/godotengine/godot/pull/92078)). -- Stereo rendering: Fix omni lights ([GH-92186](https://github.com/godotengine/godot/pull/92186)). -- Only apply LOD when camera is outside the AABB of mesh in mobile renderer ([GH-92232](https://github.com/godotengine/godot/pull/92232)). -- Reduce allocations each time a render pass begins in RenderingDevice ([GH-92258](https://github.com/godotengine/godot/pull/92258)). -- Fix LOD selection in compatibility backend and clean up LOD code ([GH-92287](https://github.com/godotengine/godot/pull/92287)). -- Fix albedo value wraparound in Compatibility render mode ([GH-92388](https://github.com/godotengine/godot/pull/92388)). -- Separate linear and sRGB uniform buffers in RD rendering backends ([GH-92444](https://github.com/godotengine/godot/pull/92444)). -- Disable `camera_effects` when debug draw is active ([GH-92524](https://github.com/godotengine/godot/pull/92524)). -- Add more validation to UBO size and alignment in Compatibility renderer ([GH-92568](https://github.com/godotengine/godot/pull/92568)). -- RenderingDevice: Reject creation of textures with no usage ([GH-92587](https://github.com/godotengine/godot/pull/92587)). -- Fix Adreno 3xx compatibility for devices with newer driver versions ([GH-92741](https://github.com/godotengine/godot/pull/92741)). -- Fix glsl shader for Android Mali-GXXx GPUs and Vulkan API 1.3.xxx ([GH-92817](https://github.com/godotengine/godot/pull/92817)). -- Make query for `GL_MAX_VIEWPORT_DIMS` compatible with web exports ([GH-92851](https://github.com/godotengine/godot/pull/92851)). -- Fix depth clear value for uv2 baking in compatibility renderer ([GH-92887](https://github.com/godotengine/godot/pull/92887)). -- Ensure Motion Vectors are enabled by particles and skeletons when using the Motion Vector debug draw option ([GH-93055](https://github.com/godotengine/godot/pull/93055)). -- Ensure post processing happens when adjustments are enabled in the Compatibility renderer ([GH-93060](https://github.com/godotengine/godot/pull/93060)). -- Track compositor effects that use motion vectors ([GH-93068](https://github.com/godotengine/godot/pull/93068)). -- Ensure sky reflection is updated when ambient mode is set to background ([GH-93107](https://github.com/godotengine/godot/pull/93107)). -- Add Parallax2D repeats in ysort child collection ([GH-93182](https://github.com/godotengine/godot/pull/93182)). -- Fix `TileMapLayer` not respecting physics interpolation mode ([GH-93279](https://github.com/godotengine/godot/pull/93279)). -- AnimatedTexture: Fix crash when loaded from a thread ([GH-93340](https://github.com/godotengine/godot/pull/93340)). -- Fix ubo tag placement in canvas.glsl fragment shader ([GH-93343](https://github.com/godotengine/godot/pull/93343)). -- Physics interpolation: Fix 2D skinning ([GH-93368](https://github.com/godotengine/godot/pull/93368)). -- Remove unused flag and code from canvas renderer ([GH-93376](https://github.com/godotengine/godot/pull/93376)). -- Fix incorrect enabling of post process in OpenGL ([GH-93530](https://github.com/godotengine/godot/pull/93530)). -- Add safety check when setting several rendering effect quality ([GH-93617](https://github.com/godotengine/godot/pull/93617)). -- Make RenderSceneData take projection correction into account ([GH-93630](https://github.com/godotengine/godot/pull/93630)). -- Use `PackedVector4Array` instead of float array for vec4 array uniform ([GH-93635](https://github.com/godotengine/godot/pull/93635)). -- Remove warning when project setting requests a larger global shader uniform buffer than the hardware supports ([GH-93645](https://github.com/godotengine/godot/pull/93645)). -- Remove useless instantiation in `RDShaderFile::parse_versions_from_text` ([GH-93649](https://github.com/godotengine/godot/pull/93649)). -- Improve handling of rendering startup errors ([GH-93706](https://github.com/godotengine/godot/pull/93706)). -- D3D12: Use the right state for resources in certain heap types ([GH-93707](https://github.com/godotengine/godot/pull/93707)). -- Windows: Disable G-SYNC in windowed mode ([GH-93737](https://github.com/godotengine/godot/pull/93737)). -- Replace pixel rounding with `floor(x + 0.5)` ([GH-93740](https://github.com/godotengine/godot/pull/93740)). -- Fix inconsistent CanvasModulate color in 2D HDR ([GH-93802](https://github.com/godotengine/godot/pull/93802)). -- Physics Interpolation - Fix `interpolated_transform_2d` ([GH-93852](https://github.com/godotengine/godot/pull/93852)). -- Android: Fix the issue causing the logo to not show when using the `compatibility` renderer ([GH-93891](https://github.com/godotengine/godot/pull/93891)). -- Fix AABB computation for position compression to not depend on vertex order ([GH-93916](https://github.com/godotengine/godot/pull/93916)). -- Fix compatibility renderer `depth_prepass_alpha` ([GH-93931](https://github.com/godotengine/godot/pull/93931)). -- MoltenVK: Fix downscaled hiDPI window pixelation ([GH-93950](https://github.com/godotengine/godot/pull/93950)). -- Pre transparent compositor effects needs to run later ([GH-93960](https://github.com/godotengine/godot/pull/93960)). -- Physics Interpolation: Fix behavior on pause ([GH-94036](https://github.com/godotengine/godot/pull/94036)). -- RenderingDevice: Leave handling of compressed block granularity to the driver ([GH-94069](https://github.com/godotengine/godot/pull/94069)). -- Use `GL_COLOR_ATTACHMENT` in depth prepass when using Multiview ([GH-94095](https://github.com/godotengine/godot/pull/94095)). -- Remove our `ERR_ON_RENDER_THREAD` guard, it is not reliable ([GH-94121](https://github.com/godotengine/godot/pull/94121)). -- Silence Vulkan "Unable to acquire framebuffer." swapchain error ([GH-94135](https://github.com/godotengine/godot/pull/94135)). -- Properly linearize depth buffer for SSAO when using orthogonal camera ([GH-94153](https://github.com/godotengine/godot/pull/94153)). -- Fix SSR orientation issues when using orthogonal camera ([GH-94184](https://github.com/godotengine/godot/pull/94184)). -- D3D12: Get rid of `DXIL.dll`! ([GH-94203](https://github.com/godotengine/godot/pull/94203)). -- Fix black `get_texture()` on viewport in compatibility mode with HDR enabled ([GH-94233](https://github.com/godotengine/godot/pull/94233)). -- Lightmapper: Ensure the atlas is big enough to fit padded UV maps ([GH-94236](https://github.com/godotengine/godot/pull/94236)). -- Lightmapper: Prevent infinite loop while blitting lightmaps into an atlas ([GH-94237](https://github.com/godotengine/godot/pull/94237)). -- Fix Image CowData crash when baking large lightmaps ([GH-94243](https://github.com/godotengine/godot/pull/94243)). -- D3D12: Avoid enabling depth bounds test if unsupported ([GH-94267](https://github.com/godotengine/godot/pull/94267)). -- Use a spec constant to control whether the MultiMesh branch is used in the vertex shader ([GH-94289](https://github.com/godotengine/godot/pull/94289)). -- Fix empty region in AtlasTexture ([GH-94365](https://github.com/godotengine/godot/pull/94365)). -- Expose more state in RenderSceneBuffersRD ([GH-94388](https://github.com/godotengine/godot/pull/94388)). -- Restore default clear color after displaying boot splash ([GH-94404](https://github.com/godotengine/godot/pull/94404)). -- Always render when XR is enabled, even if no OS windows can draw ([GH-94412](https://github.com/godotengine/godot/pull/94412)). -- Add warning when use FSR1 on renderer other than forward plus ([GH-94492](https://github.com/godotengine/godot/pull/94492)). -- SDFGI: Fix crash if `update_data` is nullptr ([GH-94535](https://github.com/godotengine/godot/pull/94535)). -- GLES3: Fix directional shadow on Metal ANGLE ([GH-94556](https://github.com/godotengine/godot/pull/94556)). -- Fix FOG shader issue in Compatibility mode ([GH-94564](https://github.com/godotengine/godot/pull/94564)). -- Support 64-bit image sizes for VRAM compression ([GH-94598](https://github.com/godotengine/godot/pull/94598)). -- Fix crash when assigning more textures than expected to texture array ([GH-94628](https://github.com/godotengine/godot/pull/94628)). -- Fix position from vertex shader partially uninitialized ([GH-94629](https://github.com/godotengine/godot/pull/94629)). -- Fix newly baked lightmap can't override previously baked at same path ([GH-94645](https://github.com/godotengine/godot/pull/94645)). -- RenderingDevice: Fix getting cubemap layer data ([GH-94656](https://github.com/godotengine/godot/pull/94656)). -- Remove linearization of canvas modulate in GLES3 backend ([GH-94707](https://github.com/godotengine/godot/pull/94707)). -- RenderingDevice: Use correct layer count for Cubemaps during boundary checks ([GH-94708](https://github.com/godotengine/godot/pull/94708)). -- Windows: Use default aggregate initialization for NVAPI settings ([GH-94735](https://github.com/godotengine/godot/pull/94735)). -- Windows: Fall back to D3D12 if Vulkan is not supported and vice versa ([GH-94796](https://github.com/godotengine/godot/pull/94796)). -- Fix regression around OpenGL swapchain optimization for OpenXR ([GH-94894](https://github.com/godotengine/godot/pull/94894)). -- D3D12: Avoid cases of redundant render target clears ([GH-95064](https://github.com/godotengine/godot/pull/95064)). -- D3D12: Avoid crash on exit ([GH-95074](https://github.com/godotengine/godot/pull/95074)). -- Fix LightmapGI causes crash when using `--headless` ([GH-95103](https://github.com/godotengine/godot/pull/95103)). +- Allow more flexible adjustments of VisualInstance3D Lightmap Scale ([GH-75164](https://github.com/godotengine/godot/pull/75164)). +- Implement vertex shading ([GH-83360](https://github.com/godotengine/godot/pull/83360)). +- Fix generated light probes placing too close to manual light probes ([GH-83497](https://github.com/godotengine/godot/pull/83497)). +- Implement per-light Specular property in DirectionalLight3D ([GH-83917](https://github.com/godotengine/godot/pull/83917)). +- Add `shadow_caster_mask` to Light3D ([GH-85338](https://github.com/godotengine/godot/pull/85338)). +- Faster exit from `_cull_canvas_item` if alpha is zero ([GH-85359](https://github.com/godotengine/godot/pull/85359)). +- Expose RenderingServer methods to get rendering driver and method name ([GH-85430](https://github.com/godotengine/godot/pull/85430)). +- Implement LightmapGI shadowmasks ([GH-85653](https://github.com/godotengine/godot/pull/85653)). +- Fix volumetric fog artifacts when inside the fog ([GH-86103](https://github.com/godotengine/godot/pull/86103)). +- Fix Frustum Sky projection translation logic shearing ([GH-86138](https://github.com/godotengine/godot/pull/86138)). +- Tune TAA disocclusion scale to avoid rejecting all samples during motion ([GH-86809](https://github.com/godotengine/godot/pull/86809)). +- Add AgX tonemapper option to Environment ([GH-87260](https://github.com/godotengine/godot/pull/87260)). +- Reduce shader permutations in the compatibility backend ([GH-87558](https://github.com/godotengine/godot/pull/87558)). +- Add Metal support for macOS (arm64) and iOS ([GH-88199](https://github.com/godotengine/godot/pull/88199)). +- Allow changing the anisotropic filter level at run-time per Viewport ([GH-88313](https://github.com/godotengine/godot/pull/88313)). +- Only allow valid types in Decal, Light3D projector, PointLight2D texture and CSGMesh3D mesh ([GH-88349](https://github.com/godotengine/godot/pull/88349)). +- Implement bicubic sampling for lightmaps ([GH-89919](https://github.com/godotengine/godot/pull/89919)). +- Ubershaders and pipeline pre-compilation (and dedicated transfer queues) ([GH-90400](https://github.com/godotengine/godot/pull/90400)). +- Add debug utilities for Vulkan ([GH-90993](https://github.com/godotengine/godot/pull/90993)). +- OpenXR: Add support for visibility mask ([GH-91750](https://github.com/godotengine/godot/pull/91750)). +- Disable all sources of ambient light when `ambient_light_disabled` render mode is used ([GH-92213](https://github.com/godotengine/godot/pull/92213)). +- Use distance to AABB surface to calculate Mesh LOD instead of using supports ([GH-92290](https://github.com/godotengine/godot/pull/92290)). +- Implement custom function overloading in shading language ([GH-92441](https://github.com/godotengine/godot/pull/92441)). +- Add batching to `RendererCanvasRenderRD` ([GH-92797](https://github.com/godotengine/godot/pull/92797)). +- Fix incorrect Reinhard tonemap operator ([GH-93324](https://github.com/godotengine/godot/pull/93324)). +- Various fixes for transmittance effect ([GH-93448](https://github.com/godotengine/godot/pull/93448)). +- Fix BaseMaterial3D refracting objects located in front of the material ([GH-93449](https://github.com/godotengine/godot/pull/93449)). +- Apply "snap 2D transforms to pixel" to viewport ([GH-93786](https://github.com/godotengine/godot/pull/93786)). +- Check device texture size limits in `RenderingDevice::texture_create` ([GH-93819](https://github.com/godotengine/godot/pull/93819)). +- Add ability to include built-in include files ([GH-94193](https://github.com/godotengine/godot/pull/94193)). +- Optimize base and shadow meshes for vertex cache ([GH-94241](https://github.com/godotengine/godot/pull/94241)). +- Optimize `RenderForwardClustered::_setup_render_pass_uniform_set` by reducing Vector allocations ([GH-94368](https://github.com/godotengine/godot/pull/94368)). +- D3D12: Avoid validation warnings about zero-sized barrier groups ([GH-94731](https://github.com/godotengine/godot/pull/94731)). +- D3D12: Be explicit about all-resources texture barriers ([GH-94733](https://github.com/godotengine/godot/pull/94733)). +- Fix crash on powerVR GPUs when a cached shader wasn't loaded in properly ([GH-94835](https://github.com/godotengine/godot/pull/94835)). +- Avoid `const_cast` in `mesh_storage.h` ([GH-94893](https://github.com/godotengine/godot/pull/94893)). +- Change some image error messages to output the file path ([GH-94947](https://github.com/godotengine/godot/pull/94947)). +- Optimize ANGLE on D3D11 to remove an extra blit ([GH-94952](https://github.com/godotengine/godot/pull/94952)). +- Report shader arrays sized after spec constants as zero-sized ([GH-94985](https://github.com/godotengine/godot/pull/94985)). +- Fix LightmapGI not taking environment sky rotation into account when baking ([GH-95000](https://github.com/godotengine/godot/pull/95000)). +- Add target fps editor setting to visual profiler ([GH-95179](https://github.com/godotengine/godot/pull/95179)). +- Fix for multimesh motion vector corruption ([GH-95270](https://github.com/godotengine/godot/pull/95270)). +- Consider visual layers for DirectionalLight ([GH-95379](https://github.com/godotengine/godot/pull/95379)). +- OpenGL: Unconditionally do `glDisable(GL_FRAMEBUFFER_SRGB)` because we do our own sRGB conversion ([GH-95433](https://github.com/godotengine/godot/pull/95433)). +- Use transformed roughness instead of raw roughness to calculate roughness fade in SSR ([GH-95438](https://github.com/godotengine/godot/pull/95438)). +- Fail when submit or sync called on main rendering device ([GH-95450](https://github.com/godotengine/godot/pull/95450)). +- Increase precision of skeleton transforms in the skeleton shader in the Compatibility renderer ([GH-95452](https://github.com/godotengine/godot/pull/95452)). +- Avoid indexing instances without a base in scene cull phase ([GH-95503](https://github.com/godotengine/godot/pull/95503)). +- Windows: Add Intel Gen7.5/Gen8/Gen9 GPUs to Angle blocklist ([GH-95520](https://github.com/godotengine/godot/pull/95520)). +- Fix undefined `alpha_scissor` in standard shader ([GH-95536](https://github.com/godotengine/godot/pull/95536)). +- Fix draw call count and object count for OverDraw display mode on Forward+ ([GH-95640](https://github.com/godotengine/godot/pull/95640)). +- Ensure `fog_sky_affect` is used even when using a background color ([GH-95659](https://github.com/godotengine/godot/pull/95659)). +- Add fixed fog to the sky in the Compatibility renderer ([GH-95662](https://github.com/godotengine/godot/pull/95662)). +- Fix `Parallax2D` repeats being not relative to its transform ([GH-95666](https://github.com/godotengine/godot/pull/95666)). +- Fix Y-sorted root item having modulation applied twice ([GH-95669](https://github.com/godotengine/godot/pull/95669)). +- Fix double free in FSR2 destructor ([GH-95682](https://github.com/godotengine/godot/pull/95682)). +- Relax motion vector updates to allow skipped frames for skeletons ([GH-95705](https://github.com/godotengine/godot/pull/95705)). +- Improve error messages for invalid rendering drivers/methods on the command line ([GH-95777](https://github.com/godotengine/godot/pull/95777)). +- Antialias direct light samples in LightmapperRD ([GH-95828](https://github.com/godotengine/godot/pull/95828)). +- Fix GLES3 crash with Mesh surface with exactly 65536 vertices ([GH-95838](https://github.com/godotengine/godot/pull/95838)). +- Use correct lightmap coefficients to ensure that the directional lightmap mode looks correct ([GH-95888](https://github.com/godotengine/godot/pull/95888)). +- LightmapGI: Fix shader data alignment after #89919 ([GH-95917](https://github.com/godotengine/godot/pull/95917)). +- Metal: Fix artifacts for mobile render method and disable multi-view ([GH-95945](https://github.com/godotengine/godot/pull/95945)). +- Fix shadow mesh recursion ([GH-95961](https://github.com/godotengine/godot/pull/95961)). +- Sky: Adapt radiance size if `AUTOMATIC_MODE` resolves to `REALTIME` ([GH-95990](https://github.com/godotengine/godot/pull/95990)). +- Disable extra memory tracking by default ([GH-96044](https://github.com/godotengine/godot/pull/96044)). +- Add `VK_EXT_astc_decode_mode` support ([GH-96045](https://github.com/godotengine/godot/pull/96045)). +- Metal: Improve startup times by using concurrent shader compilation APIs ([GH-96052](https://github.com/godotengine/godot/pull/96052)). +- Expose `RenderingServer.canvas_item_attach_skeleton` ([GH-96056](https://github.com/godotengine/godot/pull/96056)). +- Metal: Minor improvements to shader cache ([GH-96089](https://github.com/godotengine/godot/pull/96089)). +- Compatibility: Fix crash when initializing certain compressed layered textures ([GH-96113](https://github.com/godotengine/godot/pull/96113)). +- LightmapGI: Pack L1 SH coefficients for directional lightmaps ([GH-96114](https://github.com/godotengine/godot/pull/96114)). +- Fix incorrect parameters for layered textures in VRAM texture memory profiler ([GH-96128](https://github.com/godotengine/godot/pull/96128)). +- Metal: Use correct operator to ensure specialization constants are sorted ([GH-96209](https://github.com/godotengine/godot/pull/96209)). +- Prevent Parallax2D autoscroll reset ([GH-96245](https://github.com/godotengine/godot/pull/96245)). +- Metal: Bind index buffer with offset ([GH-96349](https://github.com/godotengine/godot/pull/96349)). +- Metal: Enable for betsy and lightmapper modules in compatibility mode ([GH-96351](https://github.com/godotengine/godot/pull/96351)). +- Use non-linear mapping for ReflectionProbe mip levels to match sky ([GH-96426](https://github.com/godotengine/godot/pull/96426)). +- Fix alpha material's reverse cull order ([GH-96431](https://github.com/godotengine/godot/pull/96431)). +- Add Swappy & Pre-Transformed Swapchain ([GH-96439](https://github.com/godotengine/godot/pull/96439)). +- Compatibility: Enable MSAA support for all non-web platforms ([GH-96455](https://github.com/godotengine/godot/pull/96455)). +- Fix `SkyRD::Sky::free()` freeing shared material ([GH-96486](https://github.com/godotengine/godot/pull/96486)). +- Only use backbuffer mipmaps in `SCREEN_TEXTURE` when generated ([GH-96502](https://github.com/godotengine/godot/pull/96502)). +- Fix OpenGL shadow textures not honoring texture type when reusing textures ([GH-96509](https://github.com/godotengine/godot/pull/96509)). +- Add support for external camera feed from external plugin on Android ([GH-96705](https://github.com/godotengine/godot/pull/96705)). +- RenderingDevice: Fix uncapped mipmap sizes causing div-by-zero ([GH-96758](https://github.com/godotengine/godot/pull/96758)). +- Avoid calculating dynamic lights when lights are already baked using the static bake mode in the Forward+ renderer ([GH-96771](https://github.com/godotengine/godot/pull/96771)). +- Implement instance uniforms in Compatibility renderer ([GH-96819](https://github.com/godotengine/godot/pull/96819)). +- Metal: Fix out of bounds crash when using debug draw modes ([GH-96822](https://github.com/godotengine/godot/pull/96822)). +- Vulkan: Account for externally backed textures ([GH-96860](https://github.com/godotengine/godot/pull/96860)). +- Compatibility: Fix alignment of compressed textures when retrieving ([GH-96863](https://github.com/godotengine/godot/pull/96863)). +- Fix broken sky shader ([GH-96912](https://github.com/godotengine/godot/pull/96912)). +- Expose a function to create textures from a native handle in the compatibility renderer ([GH-96928](https://github.com/godotengine/godot/pull/96928)). +- Fix typo in RenderingServer docs ([GH-96975](https://github.com/godotengine/godot/pull/96975)). +- 2D: Fix use-after-free in batch rendering; regression of #95574 ([GH-96977](https://github.com/godotengine/godot/pull/96977)). +- Add external texture support (GLES3) ([GH-96982](https://github.com/godotengine/godot/pull/96982)). +- Fix Vulkan Instance initialized twice in ProjectDialog ([GH-97006](https://github.com/godotengine/godot/pull/97006)). +- Fix for GLES3 radiance cubemap update ([GH-97069](https://github.com/godotengine/godot/pull/97069)). +- Canvas renderer: Remove redundant assignment ([GH-97089](https://github.com/godotengine/godot/pull/97089)). +- Fix compatibility canvas background depth issue ([GH-97131](https://github.com/godotengine/godot/pull/97131)). +- Fallback to OpenGL 3 if other rendering drivers are not supported ([GH-97142](https://github.com/godotengine/godot/pull/97142)). +- Add "Inspect Native Shader Code" to shader inspector and shader editor ([GH-97205](https://github.com/godotengine/godot/pull/97205)). +- Metal: Fix subpixel blending; fix inconsistent blend state ([GH-97217](https://github.com/godotengine/godot/pull/97217)). +- Add draw indirect to Rendering Device ([GH-97247](https://github.com/godotengine/godot/pull/97247)). +- Calculate pixel snap in canvas space instead of world space ([GH-97260](https://github.com/godotengine/godot/pull/97260)). +- Fallback to OpenGL 3 if Vulkan isn't available on Wayland ([GH-97268](https://github.com/godotengine/godot/pull/97268)). +- Metal: Implement `texture_create_from_extension` ([GH-97304](https://github.com/godotengine/godot/pull/97304)). +- Metal: expose MTLDevice ([GH-97309](https://github.com/godotengine/godot/pull/97309)). +- Fix hash calculation for NTSliceKey ([GH-97326](https://github.com/godotengine/godot/pull/97326)). +- Clean up two recently introduced WebGL errors ([GH-97379](https://github.com/godotengine/godot/pull/97379)). +- Check RenderingDevice availability to display LightmapGI configuration warnings ([GH-97416](https://github.com/godotengine/godot/pull/97416)). +- Jitter shadow map dithering pattern across frames when TAA is enabled ([GH-97428](https://github.com/godotengine/godot/pull/97428)). +- Show GPU name when RenderingDevice is unsupported in the project creation dialog ([GH-97490](https://github.com/godotengine/godot/pull/97490)). +- Combine texture and instance data into one uniform set in the 2D renderer ([GH-97554](https://github.com/godotengine/godot/pull/97554)). +- Fix `region_filter_clip_enabled` to avoid sprite bleeding for interpolated sprite sheets ([GH-97602](https://github.com/godotengine/godot/pull/97602)). +- Improve the look of radiance map in Compatibility backend ([GH-97676](https://github.com/godotengine/godot/pull/97676)). +- Add caching to `DisplayServer::can_create_rendering_device()` ([GH-97698](https://github.com/godotengine/godot/pull/97698)). +- Properly utilize surface information when creating pipelines and vertex arrays in canvas renderer ([GH-97792](https://github.com/godotengine/godot/pull/97792)). +- Configure MSAA properly in canvas renderer's pipelines ([GH-97811](https://github.com/godotengine/godot/pull/97811)). +- Fix updating dynamic objects in LightmapGI ([GH-97925](https://github.com/godotengine/godot/pull/97925)). +- Rewrite semaphore handling for transfer workers ([GH-98086](https://github.com/godotengine/godot/pull/98086)). +- Fix Mobile Renderer - Shadow Disabled and User Vertex Lighting flags ([GH-98187](https://github.com/godotengine/godot/pull/98187)). +- Revert unintentional rounding change when 2D transform snapping ([GH-98195](https://github.com/godotengine/godot/pull/98195)). +- Fix unreachable code in `lightmap_gi.cpp` ([GH-98201](https://github.com/godotengine/godot/pull/98201)). +- Metal: Performance improvements and bug fixes ([GH-98212](https://github.com/godotengine/godot/pull/98212)). +- Fix incorrect depth comparison used to calculate volumetric fog shadowing ([GH-98226](https://github.com/godotengine/godot/pull/98226)). +- Fix to occlusion culling where all math is based on Euclidean distance ([GH-98257](https://github.com/godotengine/godot/pull/98257)). +- Add support for BGRA textures with Texture*RD ([GH-98258](https://github.com/godotengine/godot/pull/98258)). +- Fix light culling mask behavior in Mobile and Compat renderers ([GH-98266](https://github.com/godotengine/godot/pull/98266)). +- Move transitions of textures from transfer workers to the graphics queue ([GH-98271](https://github.com/godotengine/godot/pull/98271)). +- Remove "Using present mode" verbose prints in Vulkan and Direct3D 12 ([GH-98279](https://github.com/godotengine/godot/pull/98279)). +- LightmapGI: Clean up and improve lightmap atlas storage ([GH-98289](https://github.com/godotengine/godot/pull/98289)). +- Use a shared copy of placeholder textures, tweak placeholder appearance ([GH-98294](https://github.com/godotengine/godot/pull/98294)). +- Precompute projection matrices when rendering 2D shadows ([GH-98307](https://github.com/godotengine/godot/pull/98307)). +- Deprecate the pointless unsafe threading model for rendering ([GH-98383](https://github.com/godotengine/godot/pull/98383)). +- Improve synchronization of rendering after changes from transfer queues ([GH-98388](https://github.com/godotengine/godot/pull/98388)). +- Implement thread ownership change for RenderingDevice ([GH-98391](https://github.com/godotengine/godot/pull/98391)). +- Fix window exiting with no message to user if _create_window fails ([GH-98405](https://github.com/godotengine/godot/pull/98405)). +- Fix race conditions in breadcrumbs ([GH-98425](https://github.com/godotengine/godot/pull/98425)). +- ExternalTexture: Avoid error when destroyed without having been used ([GH-98451](https://github.com/godotengine/godot/pull/98451)). +- Fix `MultiMesh` errors in editor and resource duplication ([GH-98541](https://github.com/godotengine/godot/pull/98541)). +- Fix Occlusion Culling not working for an orthogonal camera ([GH-98562](https://github.com/godotengine/godot/pull/98562)). +- Fix transfer alignment on initial texture transfer ([GH-98612](https://github.com/godotengine/godot/pull/98612)). +- Fix soft shadows by increasing the bit count for specialization constants ([GH-98614](https://github.com/godotengine/godot/pull/98614)). +- Fix fallbacks to OpenGL ([GH-98615](https://github.com/godotengine/godot/pull/98615)). +- 2D: Fix various issues and minor performance optimizations ([GH-98652](https://github.com/godotengine/godot/pull/98652)). +- Automatically resolve initial and final action for draw lists ([GH-98670](https://github.com/godotengine/godot/pull/98670)). +- Ensure shadow material and mesh are not used with wireframe mode ([GH-98683](https://github.com/godotengine/godot/pull/98683)). +- Add dependency detection improvements to the render graph ([GH-98701](https://github.com/godotengine/godot/pull/98701)). +- Fix splash screen upside down on Android ([GH-98709](https://github.com/godotengine/godot/pull/98709)). +- Fix Occlusion Culling Buffer occasionally getting corrupted ([GH-98758](https://github.com/godotengine/godot/pull/98758)). +- Fix inability to set TextureLayeredRD as `TEXTURE_TYPE_CUBE` or `TEXTURE_TYPE_CUBE_ARRAY` ([GH-98767](https://github.com/godotengine/godot/pull/98767)). +- Fix occlusion culling for double builds by enforcing float conversion for Embree ([GH-98770](https://github.com/godotengine/godot/pull/98770)). +- Add `multimesh_get_buffer_rd_rid` method to `RenderingServer` ([GH-98788](https://github.com/godotengine/godot/pull/98788)). +- Metal: Multiview support ([GH-98803](https://github.com/godotengine/godot/pull/98803)). +- Add multiple specialization constants to Forward+ and Mobile ([GH-98825](https://github.com/godotengine/godot/pull/98825)). +- Mask out shadows on CanvasItems that don't have a matching `item_shadow_mask` ([GH-98835](https://github.com/godotengine/godot/pull/98835)). +- Vulkan: Account for the case `surface_capabilities.currentExtent` is unset ([GH-98852](https://github.com/godotengine/godot/pull/98852)). +- OpenXR: Add Metal support ([GH-98872](https://github.com/godotengine/godot/pull/98872)). +- Add vulkan error checks in command_queue_execute_and_present ([GH-98883](https://github.com/godotengine/godot/pull/98883)). +- Force `RDD::id` to be always `uint64_t` ([GH-98910](https://github.com/godotengine/godot/pull/98910)). +- Move D3D12 fence `SetEventOnCompletion` call to `fence_wait` to avoid stalling on some platforms ([GH-98975](https://github.com/godotengine/godot/pull/98975)). +- Prevent stack-use-after-scope in rendering_device_driver_metal.mm ([GH-98983](https://github.com/godotengine/godot/pull/98983)). +- Give the barrier pool its own mutex to avoid a deadlock with transfer workers ([GH-99066](https://github.com/godotengine/godot/pull/99066)). +- Improve graph's detection of intersection between draw lists ([GH-99073](https://github.com/godotengine/godot/pull/99073)). +- Improve performance of shader lighting code in Forward renderers ([GH-99136](https://github.com/godotengine/godot/pull/99136)). +- Fix max FPS initialization ([GH-99149](https://github.com/godotengine/godot/pull/99149)). +- Normalize normal, tangent, and binormal before interpolating in the mobile renderer to avoid precision errors on heavily scaled meshes ([GH-99163](https://github.com/godotengine/godot/pull/99163)). +- Fix regression in SSS with reverse-z ([GH-99220](https://github.com/godotengine/godot/pull/99220)). +- Implement 2D instance uniforms ([GH-99230](https://github.com/godotengine/godot/pull/99230)). +- Improvements from TheForge ([GH-99257](https://github.com/godotengine/godot/pull/99257)). +- Metal: Ensure position invariance is captured from SPIRV-Cross ([GH-99261](https://github.com/godotengine/godot/pull/99261)). +- Move `_scene_particles_set_view_axis` to new static function to allow call to be done on render thread, preventing multi threaded error on compute shader execution ([GH-99299](https://github.com/godotengine/godot/pull/99299)). +- Fix updating lightmap captures on Mobile ([GH-99367](https://github.com/godotengine/godot/pull/99367)). +- Use direct composition for d3d12 backend ([GH-99387](https://github.com/godotengine/godot/pull/99387)). +- Allow using custom `Rect2i` for rendering with OpenXR ([GH-99407](https://github.com/godotengine/godot/pull/99407)). +- Fix: Error output is not require, `VK_QUEUE_TRANSFER_BIT` is optional ([GH-99413](https://github.com/godotengine/godot/pull/99413)). +- Improve dependency detection in render graph for draw lists with partial coverage ([GH-99426](https://github.com/godotengine/godot/pull/99426)). +- Unify y-flip behavior for sky in RD backends ([GH-99448](https://github.com/godotengine/godot/pull/99448)). +- Add indirect draw functionality to `MultiMesh` ([GH-99455](https://github.com/godotengine/godot/pull/99455)). +- Do not check for command intersections when not using the write list ([GH-99463](https://github.com/godotengine/godot/pull/99463)). +- Add lightmap bake canceling ([GH-99483](https://github.com/godotengine/godot/pull/99483)). +- Optimize mesh generation by preventing unneeded shape recalculations ([GH-99498](https://github.com/godotengine/godot/pull/99498)). +- Add transparency support for LightmapGI ([GH-99538](https://github.com/godotengine/godot/pull/99538)). +- Add VoxelGI bake canceling and progress UI improvement ([GH-99562](https://github.com/godotengine/godot/pull/99562)). +- Metal: Add MetalFX upscaling support ([GH-99603](https://github.com/godotengine/godot/pull/99603)). +- Fix `gl_compatibility` lightmap uniforms not being set ([GH-99606](https://github.com/godotengine/godot/pull/99606)). +- Restore dirty list for BaseMaterial3D but don't use it on resource loader ([GH-99716](https://github.com/godotengine/godot/pull/99716)). +- Fix vsync on macOS getting disabled when using `afterMinimumDuration` ([GH-99720](https://github.com/godotengine/godot/pull/99720)). +- Fix incorrect clear color flag on canvas renderer ([GH-99773](https://github.com/godotengine/godot/pull/99773)). +- Fix another incorrect clear color flag on texture storage ([GH-99788](https://github.com/godotengine/godot/pull/99788)). +- Fix ReflectionProbe AABB ([GH-99802](https://github.com/godotengine/godot/pull/99802)). +- Metal: Add support for 2017 era iOS devices ([GH-99820](https://github.com/godotengine/godot/pull/99820)). +- Metal: Ensure `texture_create_from_extension` returns correct pixel format ([GH-99905](https://github.com/godotengine/godot/pull/99905)). +- Fix Occlusion culling jitter ([GH-99941](https://github.com/godotengine/godot/pull/99941)). +- Editor: Fix default preview environment sky's horizon and brightness ([GH-99957](https://github.com/godotengine/godot/pull/99957)). +- Add Blend Distance property to ReflectionProbe ([GH-99958](https://github.com/godotengine/godot/pull/99958)). +- Optimize Occlusion culling jitter ([GH-99974](https://github.com/godotengine/godot/pull/99974)). +- Add specialization for directional light split blend and fog to mobile renderer ([GH-99978](https://github.com/godotengine/godot/pull/99978)). +- Optimize batch uniform set creation by caching ptrw when creating batch uniform ([GH-99995](https://github.com/godotengine/godot/pull/99995)). +- Increase the size of the uniform set cache to 4096 to avoid cache thrashing from projects with high numbers of unique textures ([GH-100001](https://github.com/godotengine/godot/pull/100001)). +- Use a vec4 instead of an array in canvas shader instance buffer ([GH-100028](https://github.com/godotengine/godot/pull/100028)). +- Add texture limits for D3D12 Driver ([GH-100058](https://github.com/godotengine/godot/pull/100058)). +- Fix occlusion culling buffer getting overwritten in larger scenes ([GH-100060](https://github.com/godotengine/godot/pull/100060)). +- Implement Buffer Device Address for Rendering Device Vulkan and DirectX12 ([GH-100062](https://github.com/godotengine/godot/pull/100062)). +- Correctly check time since shadow was allocated in atlas to avoid unnecessary re-allocations ([GH-100064](https://github.com/godotengine/godot/pull/100064)). +- Clear AABB when Mesh is cleared ([GH-100065](https://github.com/godotengine/godot/pull/100065)). +- Ensure schlick is available when using clearcoat with GGX ([GH-100081](https://github.com/godotengine/godot/pull/100081)). +- Implement `RD::buffer_get_data_async()` and `RD::texture_get_data_async()` ([GH-100110](https://github.com/godotengine/godot/pull/100110)). +- Fix a command buffer leak that occurs in D3D12 ([GH-100151](https://github.com/godotengine/godot/pull/100151)). +- Improve thread-safety of pipeline hash map ([GH-100213](https://github.com/godotengine/godot/pull/100213)). +- Fix incorrect return value on partial coverage detection ([GH-100222](https://github.com/godotengine/godot/pull/100222)). +- Fix wide `SpotLight3D` clustering ([GH-100236](https://github.com/godotengine/godot/pull/100236)). +- Add priority-based blending to reflection probes ([GH-100241](https://github.com/godotengine/godot/pull/100241)). +- Keep processing Graphics if there are pending operations ([GH-100257](https://github.com/godotengine/godot/pull/100257)). +- Replace `textureSize()` with a uniform in BaseMaterial3D for MSDF rendering ([GH-100280](https://github.com/godotengine/godot/pull/100280)). +- Add renderer motion vectors API for use with OpenXR ([GH-100282](https://github.com/godotengine/godot/pull/100282)). +- Optimize PointLight2D shadow rendering by reducing draw calls and RD state changes ([GH-100302](https://github.com/godotengine/godot/pull/100302)). +- Remove positional light mask from directional lights in Canvas Item shaders ([GH-100305](https://github.com/godotengine/godot/pull/100305)). +- Fix shadows of long range `OmniLight3D` and `SpotLight3D` ([GH-100319](https://github.com/godotengine/godot/pull/100319)). +- Fix several ubsan reported misaligned accesses ([GH-100325](https://github.com/godotengine/godot/pull/100325)). +- Small fixups for the new reflection probe blending ([GH-100344](https://github.com/godotengine/godot/pull/100344)). +- Fix ubsan reported errors in rendering ([GH-100374](https://github.com/godotengine/godot/pull/100374)). +- Fix canvas background mode not clearing correctly in Compatibility renderer ([GH-100388](https://github.com/godotengine/godot/pull/100388)). +- Convert resource usage to string ([GH-100399](https://github.com/godotengine/godot/pull/100399)). +- Fix crash in scenes with more than 8 shadowed directional lights ([GH-100423](https://github.com/godotengine/godot/pull/100423)). +- Separate sky luminance and brightness calculations for consistent fog ([GH-100427](https://github.com/godotengine/godot/pull/100427)). +- Scene Shaders - TBN Vector Fixes ([GH-100441](https://github.com/godotengine/godot/pull/100441)). +- Support custom sky rotation in SDFGI ([GH-100544](https://github.com/godotengine/godot/pull/100544)). +- LightmapGI: Fix crash during baking when sky is null ([GH-100593](https://github.com/godotengine/godot/pull/100593)). +- Avoid allocating instance buffer for PointLight2D shadows when there are no instances ([GH-100612](https://github.com/godotengine/godot/pull/100612)). +- MoltenVK hack is no longer required, as bug was fixed ([GH-100653](https://github.com/godotengine/godot/pull/100653)). +- Properly transform light rect and occluder rect to perform Light2D culling in canvas space ([GH-100677](https://github.com/godotengine/godot/pull/100677)). +- Fix shader compilation errors when using MSDF fonts with Label3D nodes ([GH-100678](https://github.com/godotengine/godot/pull/100678)). +- Add a supersampling option to LightmapGI ([GH-100765](https://github.com/godotengine/godot/pull/100765)). +- Metal: Fix crash when uniform set is empty for slot binding mode ([GH-100766](https://github.com/godotengine/godot/pull/100766)). +- Remove leftover debug print statement from `lightmapper_rd.cpp` ([GH-100774](https://github.com/godotengine/godot/pull/100774)). +- Compatibility: Avoid converting to compressed formats when retrieving image data ([GH-100778](https://github.com/godotengine/godot/pull/100778)). +- Compatibility: Fix ASTC HDR extension detection ([GH-100822](https://github.com/godotengine/godot/pull/100822)). +- Metal: Fix occasional use-after-free in Metal driver ([GH-100851](https://github.com/godotengine/godot/pull/100851)). +- Fix User-supplied Normals Being Ignored ([GH-100859](https://github.com/godotengine/godot/pull/100859)). +- Fix regression with shadows when light range is 0 or close ([GH-100862](https://github.com/godotengine/godot/pull/100862)). +- Fix lightmapper penumbra computation ([GH-100929](https://github.com/godotengine/godot/pull/100929)). +- Don't toast internal shader code ([GH-100956](https://github.com/godotengine/godot/pull/100956)). +- Add support for colored shadows in LightmapGI ([GH-100961](https://github.com/godotengine/godot/pull/100961)). +- Remove TODO from RenderingDevice regarding thread safety ([GH-101069](https://github.com/godotengine/godot/pull/101069)). +- Update Light2D `rect_cache` even when not using shadows ([GH-101110](https://github.com/godotengine/godot/pull/101110)). +- Ensure Sky with custom fov has correction matrix applied to it in RD renderers ([GH-101112](https://github.com/godotengine/godot/pull/101112)). +- Correct aspect ratio used in FSR2 calculations ([GH-101193](https://github.com/godotengine/godot/pull/101193)). +- Show MetalFX options in the Scaling 3D Mode enum on all platforms ([GH-101198](https://github.com/godotengine/godot/pull/101198)). +- Compatibility: Improve gl texture format detection ([GH-101217](https://github.com/godotengine/godot/pull/101217)). +- Renderer: Minor optimization when running `gl_compatibility` mode ([GH-101298](https://github.com/godotengine/godot/pull/101298)). +- Fix duplicated spec constant on SPIR-V reflection ([GH-101343](https://github.com/godotengine/godot/pull/101343)). +- Fix union order to simplify empty initializers ([GH-101344](https://github.com/godotengine/godot/pull/101344)). +- Fix AgX tonemapping using old approach in Compatibility rendering method ([GH-101365](https://github.com/godotengine/godot/pull/101365)). +- Fix AgX sigmoid contrast curve approximation ([GH-101406](https://github.com/godotengine/godot/pull/101406)). +- OpenGL3 renderer supports transparent boot splash ([GH-101510](https://github.com/godotengine/godot/pull/101510)). +- Optimize AgX tonemapper's handling of negative values ([GH-101515](https://github.com/godotengine/godot/pull/101515)). +- Vulkan: Force disable broken `VK_LAYER_bandicam_helper` layer in editor ([GH-101540](https://github.com/godotengine/godot/pull/101540)). +- Fix union order to simplify empty initializers ([GH-101560](https://github.com/godotengine/godot/pull/101560)). +- Change how device address is requested to avoid future API breakage ([GH-101561](https://github.com/godotengine/godot/pull/101561)). +- Metal: Enable GPU buffer address support ([GH-101602](https://github.com/godotengine/godot/pull/101602)). +- Ensure Voxelizer SDF generation uses the correct cell level ([GH-101631](https://github.com/godotengine/godot/pull/101631)). +- Shaders: Fix `source_color` default value ([GH-101642](https://github.com/godotengine/godot/pull/101642)). +- Avoid leaking ninepatch state to other draw commands in GLES backend ([GH-101709](https://github.com/godotengine/godot/pull/101709)). +- Bake UV2 emission using half float in the compatibility backend ([GH-101730](https://github.com/godotengine/godot/pull/101730)). +- Physics interpolation (3D): Fix warning spam ([GH-101794](https://github.com/godotengine/godot/pull/101794)). +- Fix a crash bug in `LightmapGI::_assign_lightmaps` triggered after reparenting ([GH-101853](https://github.com/godotengine/godot/pull/101853)). +- WebGL2: Fix 2D array textures with RGTC compression not rendering ([GH-101909](https://github.com/godotengine/godot/pull/101909)). +- CPUParticles2D: - Add ability to follow physics interpolated target ([GH-101911](https://github.com/godotengine/godot/pull/101911)). +- Fix shadow peter-panning with default spotlight ([GH-101952](https://github.com/godotengine/godot/pull/101952)). +- Vulkan: Fix performance regression introduced in buffer creation ([GH-101972](https://github.com/godotengine/godot/pull/101972)). +- 2D: Fix rendering artifacts when using `BackBufferCopy` ([GH-101998](https://github.com/godotengine/godot/pull/101998)). +- Avoid flipping normal based on facing direction when calculating SDF ([GH-102105](https://github.com/godotengine/godot/pull/102105)). +- Fix default SDFGI variant not being compiled in time ([GH-102122](https://github.com/godotengine/godot/pull/102122)). +- Mark pipeline compilation of ubershaders as high priority ([GH-102125](https://github.com/godotengine/godot/pull/102125)). +- 2D: Fix clip children and rendering artifacts ([GH-102161](https://github.com/godotengine/godot/pull/102161)). +- Fully enable HDR2D when the setting is changed ([GH-102177](https://github.com/godotengine/godot/pull/102177)). +- Ensure albedo texture size is available for Label3D and Sprite3D ([GH-102208](https://github.com/godotengine/godot/pull/102208)). +- Reduce mobile pipeline compilations ([GH-102217](https://github.com/godotengine/godot/pull/102217)). +- Spread direct lighting calculation for LightmapGI over several submissions ([GH-102257](https://github.com/godotengine/godot/pull/102257)). +- Track mesh dependencies in Dummy RenderingServer ([GH-102261](https://github.com/godotengine/godot/pull/102261)). +- Use a smaller epsilon for omni and spot attenuation cutoff ([GH-102272](https://github.com/godotengine/godot/pull/102272)). +- Implement Fallback to Vulkan for MoltenVK ([GH-102341](https://github.com/godotengine/godot/pull/102341)). +- Fix over saturated static colored lights ([GH-102424](https://github.com/godotengine/godot/pull/102424)). +- Fix erroneous logic when flushes are involved on RD async methods ([GH-102454](https://github.com/godotengine/godot/pull/102454)). +- Decrease default Max Rays per Pass setting to 4 to fix some lightmapping crashes ([GH-102477](https://github.com/godotengine/godot/pull/102477)). +- Add loop annotations to ubershaders to prevent loop unrolling ([GH-102480](https://github.com/godotengine/godot/pull/102480)). +- Fix rendering material when UV2 is compressed ([GH-102497](https://github.com/godotengine/godot/pull/102497)). +- Ensure instance uniforms are freed by updating dirty items before freeing ([GH-102503](https://github.com/godotengine/godot/pull/102503)). +- Lightmapper: Expose the JNLM denoiser region size in the project settings ([GH-102579](https://github.com/godotengine/godot/pull/102579)). +- Physics Interpolation - Auto-reset on `set_physics_interpolation_mode()` ([GH-102652](https://github.com/godotengine/godot/pull/102652)). +- 2D: Fix free of invalid ID ([GH-102677](https://github.com/godotengine/godot/pull/102677)). +- Fix broken skeletal animated meshes after #101561 ([GH-102794](https://github.com/godotengine/godot/pull/102794)). +- RenderingDevice: Fix certain RD to Image format conversions ([GH-102805](https://github.com/godotengine/godot/pull/102805)). +- Restore using VMA to create buffers and images ([GH-102830](https://github.com/godotengine/godot/pull/102830)). +- Fix debug CanvasItem redraw rects in RD renderer ([GH-103017](https://github.com/godotengine/godot/pull/103017)). +- Metal: Compile `MTLLibrary` on demand when pipeline is created ([GH-103185](https://github.com/godotengine/godot/pull/103185)). +- Shaders: Only convert default value to linear color if type hint is `source_color` ([GH-103201](https://github.com/godotengine/godot/pull/103201)). +- Windows: Offload `RenderingDevice` creation test to subprocess ([GH-103245](https://github.com/godotengine/godot/pull/103245)). +- `texture_create_from_native_handle()` should return `RID` for texture from `RenderingServer`, not `RenderingDevice` ([GH-103296](https://github.com/godotengine/godot/pull/103296)). +- Metal: Fix SPIR-V → MSL compilation on iOS targets ([GH-103337](https://github.com/godotengine/godot/pull/103337)). #### Shaders -- Automatically ensure correct normals in Compatibility renderer ([GH-82804](https://github.com/godotengine/godot/pull/82804)). -- Add connection related functionality to VisualShader (deleting, dropping/inserting a node) ([GH-83510](https://github.com/godotengine/godot/pull/83510)). -- Add extra warning messages to `VisualShaderNodeTextureParameter` ([GH-83729](https://github.com/godotengine/godot/pull/83729)). -- Refactor the parsing of port names in visual shader's expressions ([GH-83956](https://github.com/godotengine/godot/pull/83956)). -- Fix visual shader's `screen_uv` input preview uses position of node rather than a sample area like uv ([GH-84348](https://github.com/godotengine/godot/pull/84348)). -- Comment the shader template light function by default ([GH-84594](https://github.com/godotengine/godot/pull/84594)). -- VisualShader: Refactor use of Connection ([GH-84969](https://github.com/godotengine/godot/pull/84969)). -- Fix uint's suffix is not highlighted in text shader editor ([GH-85014](https://github.com/godotengine/godot/pull/85014)). -- Redesign the graph editor for visual shaders ([GH-85017](https://github.com/godotengine/godot/pull/85017)). -- Add a specific error when creating a ViewportTexture in a Texture2D node ([GH-85723](https://github.com/godotengine/godot/pull/85723)). -- Sync visual shader's distance fade using circular fade ([GH-86596](https://github.com/godotengine/godot/pull/86596)). -- Handle built-in shaders when closing scene ([GH-86710](https://github.com/godotengine/godot/pull/86710)). -- Add missing check when insert function `normal_roughness_compatibility` ([GH-87207](https://github.com/godotengine/godot/pull/87207)). -- Check if the ref shader is valid in visual shader's `_update_option_menu` ([GH-87356](https://github.com/godotengine/godot/pull/87356)). -- Fix `ShaderMaterial::_property_get_revert` crash when given non-existing `p_name` ([GH-87603](https://github.com/godotengine/godot/pull/87603)). -- Fully initialize all members of structs `IdentifierActions`, `GeneratedCode` and `DefaultIdentifierActions` ([GH-88021](https://github.com/godotengine/godot/pull/88021)). -- Make editing properties more intuitive in VisualShader ([GH-88951](https://github.com/godotengine/godot/pull/88951)). -- Add percent (`%`) sign to Remainder node name in visual shaders ([GH-88980](https://github.com/godotengine/godot/pull/88980)). -- Change shader compiler default setting to avoid doctool error ([GH-88996](https://github.com/godotengine/godot/pull/88996)). -- Fix some missing categories in visual shader nodes ([GH-89190](https://github.com/godotengine/godot/pull/89190)). -- Use raw string literals for BaseMaterial3D shader code generation ([GH-89267](https://github.com/godotengine/godot/pull/89267)). -- Rendering: Add hints to some uniform `PropertyInfo`s ([GH-89488](https://github.com/godotengine/godot/pull/89488)). -- Improve the editor native shader source visualizer ([GH-89690](https://github.com/godotengine/godot/pull/89690)). -- Fix false positive errors in gdshaderinc files ([GH-89752](https://github.com/godotengine/godot/pull/89752)). -- VisualShader: Remove invalid graph connections when ports are removed ([GH-89810](https://github.com/godotengine/godot/pull/89810)). -- Implement documentation comments and tooltips for shader uniform in the inspector ([GH-90161](https://github.com/godotengine/godot/pull/90161)). -- VisualShader: Add reroute node and improve port drawing ([GH-90534](https://github.com/godotengine/godot/pull/90534)). -- Warn users when assigning `VERTEX` directly to `POSITION` due to compatibility breakage from Reverse Z changes ([GH-90587](https://github.com/godotengine/godot/pull/90587)). -- Fix incorrect behavior at expanding an output port in visual shader node ([GH-90787](https://github.com/godotengine/godot/pull/90787)). -- Fix editor crash when shader has incorrect global array declaration ([GH-90792](https://github.com/godotengine/godot/pull/90792)). -- Fix shader crash on zero vector and negative x vector in particles processing ([GH-90810](https://github.com/godotengine/godot/pull/90810)). -- Handle Vector4 default input values in visual shaders ([GH-90850](https://github.com/godotengine/godot/pull/90850)). -- Prevent expanding output port in visual shader expression ([GH-90892](https://github.com/godotengine/godot/pull/90892)). -- Allow compressed texture array and cubemap types in shader globals editor ([GH-91164](https://github.com/godotengine/godot/pull/91164)). -- Don't run Shader doc comments logic outside the editor ([GH-91307](https://github.com/godotengine/godot/pull/91307)). -- Fix shader highlighting the interruption in `color_region` caused by `disabled_branch_regions` ([GH-91497](https://github.com/godotengine/godot/pull/91497)). -- Resolve conflict between shader uniform tooltips `/**` and general annotation `/**/` ([GH-91549](https://github.com/godotengine/godot/pull/91549)). -- Fix shader error on mobile when using `LIGHT_VERTEX` ([GH-91566](https://github.com/godotengine/godot/pull/91566)). -- Make native shader source visualizer highlight uint suffix ([GH-91647](https://github.com/godotengine/godot/pull/91647)). -- Fix code style for generated shader code from ParticleProcessMaterial ([GH-91946](https://github.com/godotengine/godot/pull/91946)). -- Prevent add shader uniform doc when DocTool is not inited ([GH-92145](https://github.com/godotengine/godot/pull/92145)). -- Fix error when duplicating visual shader node inside a Frame ([GH-92151](https://github.com/godotengine/godot/pull/92151)). -- Fix completion of functions with struct param/return type in shaders ([GH-92464](https://github.com/godotengine/godot/pull/92464)). -- Prevent using built-ins for func names in shaders ([GH-92564](https://github.com/godotengine/godot/pull/92564)). -- Fix `VisualShaderNodeVaryingGetter` expanded ports adding ".x" to shader ([GH-92847](https://github.com/godotengine/godot/pull/92847)). -- Fix incorrect preview port in visual shader ([GH-93153](https://github.com/godotengine/godot/pull/93153)). -- Fix bugs in visual shader varyings ([GH-93219](https://github.com/godotengine/godot/pull/93219)). -- Prevent changing some built-ins in spatial shaders ([GH-93269](https://github.com/godotengine/godot/pull/93269)). -- Add few new outputs to the visual shaders ([GH-93338](https://github.com/godotengine/godot/pull/93338)). -- Forbid calling of derivative functions in incorrect functions ([GH-93358](https://github.com/godotengine/godot/pull/93358)). -- Fix visual shader not being updated when switching tabs ([GH-93385](https://github.com/godotengine/godot/pull/93385)). -- Fix crash on shader constant initialization on MinGW compiler ([GH-93469](https://github.com/godotengine/godot/pull/93469)). -- Prevent shader crash when doing invalid operation on boolean vector ([GH-93793](https://github.com/godotengine/godot/pull/93793)). -- Fix orphan StringName's in ShaderLanguage ([GH-93849](https://github.com/godotengine/godot/pull/93849)). -- Improve code for setup of `global_func_set` in `ShaderLanguage` ([GH-93866](https://github.com/godotengine/godot/pull/93866)). -- Add `SwitchVector4D` shortcut to visual shader members ([GH-94272](https://github.com/godotengine/godot/pull/94272)). -- Make ShaderLanguage's parser recognize sampler passed in from array ([GH-94462](https://github.com/godotengine/godot/pull/94462)). -- Few fixes for `VisualShaderNodeRotationByAxis` ([GH-94497](https://github.com/godotengine/godot/pull/94497)). -- Fix internal connection count decreased if visual shader node removed ([GH-94498](https://github.com/godotengine/godot/pull/94498)). -- Fix warning printing for `VisualShaderNodeTextureParameter` ([GH-94611](https://github.com/godotengine/godot/pull/94611)). -- Fix shader crash when using a varying in separate func before it defined ([GH-94671](https://github.com/godotengine/godot/pull/94671)). -- Fix incorrect passing of parameter to visual shader preview ([GH-94729](https://github.com/godotengine/godot/pull/94729)). -- Update shader list after saving `gdshaderinc` file ([GH-94787](https://github.com/godotengine/godot/pull/94787)). -- Emit `normal_roughness` compatibility code in custom functions ([GH-94812](https://github.com/godotengine/godot/pull/94812)). -- Fix expanded output ports disconnection on updating in visual shader ([GH-94875](https://github.com/godotengine/godot/pull/94875)). -- Restrict sampler hint validation to only screen texture hints ([GH-94902](https://github.com/godotengine/godot/pull/94902)). -- VisualShader: Reduce size changes of nodes when connecting/disconnecting ([GH-95061](https://github.com/godotengine/godot/pull/95061)). +- Fix visual shader inputs to follow alphabetical order ([GH-83443](https://github.com/godotengine/godot/pull/83443)). +- Add `model_normal_matrix` for fragment shader ([GH-86000](https://github.com/godotengine/godot/pull/86000)). +- Make shader language editors inherit the same base class ([GH-92576](https://github.com/godotengine/godot/pull/92576)). +- Allow drag & drop Mesh to create MeshEmitter in visual shaders ([GH-93017](https://github.com/godotengine/godot/pull/93017)). +- Add derivative functions to sky shader mode in visual shader ([GH-93399](https://github.com/godotengine/godot/pull/93399)). +- Allow usage of `discard` inside custom shader functions ([GH-93590](https://github.com/godotengine/godot/pull/93590)). +- Allow using stage functions inside custom shader functions ([GH-93650](https://github.com/godotengine/godot/pull/93650)). +- Add basic support to evaluate operator value in shader language ([GH-93822](https://github.com/godotengine/godot/pull/93822)). +- Add a material preview to visual shader editor ([GH-94215](https://github.com/godotengine/godot/pull/94215)). +- GDShader: Add `hint_enum` for `uniform int` ([GH-94324](https://github.com/godotengine/godot/pull/94324)). +- Fix multiple ternary expressions to be used without parenthesis ([GH-94352](https://github.com/godotengine/godot/pull/94352)). +- Change `VisualShaderNodeVec4Constant` type to vec4 ([GH-94616](https://github.com/godotengine/godot/pull/94616)). +- Fix texture samplers to not being last in the property list ([GH-94785](https://github.com/godotengine/godot/pull/94785)). +- Fix uniform subgroup in shader will carry out to next group ([GH-94896](https://github.com/godotengine/godot/pull/94896)). +- Allow `SCREEN_UV` to be used in light function of spatial shader ([GH-94981](https://github.com/godotengine/godot/pull/94981)). +- Add `CLIP_SPACE_FAR` built-in to spatial shader ([GH-95057](https://github.com/godotengine/godot/pull/95057)). +- Allow setting a cubemap as default parameter to shader ([GH-95126](https://github.com/godotengine/godot/pull/95126)). +- Fix `String::simplify_path` handling of relative paths to parent dir (`../`), fixes relative shader includes ([GH-95184](https://github.com/godotengine/godot/pull/95184)). +- Forbid function declaration with a const qualifier in shaders ([GH-95274](https://github.com/godotengine/godot/pull/95274)). +- Fix shader crash when the comma used in `for` loop as a trailing ([GH-95350](https://github.com/godotengine/godot/pull/95350)). +- Fix wrong name for Spatial shader mode in VisualShader resource inspector ([GH-95464](https://github.com/godotengine/godot/pull/95464)). +- Remove `missing a category` warning in visual shader node ([GH-95465](https://github.com/godotengine/godot/pull/95465)). +- Fix shader incorrectly expects `int` on `uint` and vice-versa in cases ([GH-95473](https://github.com/godotengine/godot/pull/95473)). +- Fix middle expression of `for` loop to accept not only operators ([GH-95547](https://github.com/godotengine/godot/pull/95547)). +- Fix shader uniforms has null as default value ([GH-95626](https://github.com/godotengine/godot/pull/95626)). +- Fix shader crash when using varyings with non-`flat` integer type ([GH-95737](https://github.com/godotengine/godot/pull/95737)). +- Add a context menu for the shader editor file list ([GH-95738](https://github.com/godotengine/godot/pull/95738)). +- Add copy/paste options to preview material parameters in visual shader ([GH-96618](https://github.com/godotengine/godot/pull/96618)). +- Fix shader crash when using unary minus in expression ([GH-96858](https://github.com/godotengine/godot/pull/96858)). +- Use double comments in shader template light functions ([GH-97024](https://github.com/godotengine/godot/pull/97024)). +- Visual Shader: Add vector operations to Remap node ([GH-97314](https://github.com/godotengine/godot/pull/97314)). +- Keep existing `VectorCompose` input values when setting vector type ([GH-97365](https://github.com/godotengine/godot/pull/97365)). +- VisualShader: Add LinearToSRGB and SRGBToLinear to ColorFunc node ([GH-97388](https://github.com/godotengine/godot/pull/97388)). +- Fix shader crash when return a void function call ([GH-97481](https://github.com/godotengine/godot/pull/97481)). +- Add `#error` preprocessor directive to shading language ([GH-98267](https://github.com/godotengine/godot/pull/98267)). +- Add alpha channel display to vec4 previews of visual shader nodes ([GH-98303](https://github.com/godotengine/godot/pull/98303)). +- Make `OUTPUT_IS_SRGB/CLIP_SPACE_FAR` shader built-ins global ([GH-98448](https://github.com/godotengine/godot/pull/98448)). +- Add renderer state defines to shader preprocessor ([GH-98549](https://github.com/godotengine/godot/pull/98549)). +- Clarify in default texture repeat and filter docs that they only impact the built in texture ([GH-98738](https://github.com/godotengine/godot/pull/98738)). +- Add prefix to struct member names in shader compiler ([GH-98755](https://github.com/godotengine/godot/pull/98755)). +- Delete old function for parsing CG shaders ([GH-98974](https://github.com/godotengine/godot/pull/98974)). +- Add swap connection option to visual shader graph ([GH-99177](https://github.com/godotengine/godot/pull/99177)). +- Fix error emitting when reset a visual shader preview parameter ([GH-99272](https://github.com/godotengine/godot/pull/99272)). +- Add `samplerExternalOES` type to shader globals ([GH-99622](https://github.com/godotengine/godot/pull/99622)). +- Fix orphan strings in shader preprocessor ([GH-99704](https://github.com/godotengine/godot/pull/99704)). +- Move uniform variables up in the `gles3/scene.glsl` template so that they are available within the `#GLOBALS` scope ([GH-100125](https://github.com/godotengine/godot/pull/100125)). +- Avoid error spam when shaders fail to compile by freeing shader_data version when compilation fails ([GH-100128](https://github.com/godotengine/godot/pull/100128)). +- [Shader Language] Add missing token name ([GH-100289](https://github.com/godotengine/godot/pull/100289)). +- Prevent using boolean varyings in vertex function of visual shaders ([GH-100309](https://github.com/godotengine/godot/pull/100309)). +- Fix space transformations in WorldPositionFromDepth visual shader node generation ([GH-100350](https://github.com/godotengine/godot/pull/100350)). +- Fix float constant descriptions not translating on macOS ([GH-101592](https://github.com/godotengine/godot/pull/101592)). +- Generate global code for `VisualShader` nodes that connect to `VaryingSetters` ([GH-101648](https://github.com/godotengine/godot/pull/101648)). +- Fix visual shader error when opening a Fresnel node preview ([GH-101796](https://github.com/godotengine/godot/pull/101796)). +- Fix `MASS` property particle shader bug ([GH-102143](https://github.com/godotengine/godot/pull/102143)). +- Fix mouse filter on visual shader node previews ([GH-102278](https://github.com/godotengine/godot/pull/102278)). +- Validate varying count when compiling shaders ([GH-102792](https://github.com/godotengine/godot/pull/102792)). +- Add custom minimum size for shader tabs ([GH-102873](https://github.com/godotengine/godot/pull/102873)). +- Fix crash at using increment op for varying in `light` shader function ([GH-102892](https://github.com/godotengine/godot/pull/102892)). #### Tests -- Add `closest_points_between_segments()` basis path tests for Geometry2D ([GH-48652](https://github.com/godotengine/godot/pull/48652)). -- Fix PathFollow tests, Add PathFollow3D forward test ([GH-51372](https://github.com/godotengine/godot/pull/51372)). -- Add rotation unit tests for Transform3D ([GH-61013](https://github.com/godotengine/godot/pull/61013)). -- Improve PackedScene unit test by covering more methods ([GH-80819](https://github.com/godotengine/godot/pull/80819)). -- Add additional tests for RegEx ([GH-81742](https://github.com/godotengine/godot/pull/81742)). -- Add unit tests for Camera3D ([GH-84826](https://github.com/godotengine/godot/pull/84826)). -- Add more C++ unit tests for String to number conversions ([GH-85666](https://github.com/godotengine/godot/pull/85666)). -- Test global transform when adding detached tree ([GH-87270](https://github.com/godotengine/godot/pull/87270)). -- Add `ImageTexture` unit tests ([GH-88044](https://github.com/godotengine/godot/pull/88044)). -- Fix test regression without editor ([GH-88449](https://github.com/godotengine/godot/pull/88449)). -- Add unit tests for Camera2D ([GH-88614](https://github.com/godotengine/godot/pull/88614)). -- Add unit tests for CryptoKey ([GH-89021](https://github.com/godotengine/godot/pull/89021)). -- Add unit tests for JSONRPC ([GH-89124](https://github.com/godotengine/godot/pull/89124)). -- Add unit test for Vector2 `plane_project` ([GH-89617](https://github.com/godotengine/godot/pull/89617)). -- Add unit tests for `OAHashMap` ([GH-90313](https://github.com/godotengine/godot/pull/90313)). -- Add more unit tests for Transform2D ([GH-90506](https://github.com/godotengine/godot/pull/90506)). -- Exit with an error if using `--test` on binary without unit tests compiled ([GH-90507](https://github.com/godotengine/godot/pull/90507)). -- Remove NavigationRegion3D race condition that fails on CI ([GH-90613](https://github.com/godotengine/godot/pull/90613)). -- Disable NavigationServer3D async bake test with race condition ([GH-90804](https://github.com/godotengine/godot/pull/90804)). -- Suppress expected errors in resource unit tests ([GH-91028](https://github.com/godotengine/godot/pull/91028)). -- Add unit test cases for ImageTexture3D ([GH-91233](https://github.com/godotengine/godot/pull/91233)). -- Add Timer unit tests ([GH-91395](https://github.com/godotengine/godot/pull/91395)). -- Expand tests for `Curve2D/3D` ([GH-91880](https://github.com/godotengine/godot/pull/91880)). -- Use subfolder for temporary test files ([GH-92810](https://github.com/godotengine/godot/pull/92810)). -- Fix some invalid error messages ([GH-93135](https://github.com/godotengine/godot/pull/93135)). -- Fix unit tests in template builds ([GH-93745](https://github.com/godotengine/godot/pull/93745)). -- CI: Run unit tests on desktop release templates ([GH-93780](https://github.com/godotengine/godot/pull/93780)). -- Fix compilation failure in `test_graph_node.h` with `disable_exceptions=false` ([GH-94834](https://github.com/godotengine/godot/pull/94834)). -- Fix Vector4, Vector4i, and Projection missing from ClassDB tests ([GH-95517](https://github.com/godotengine/godot/pull/95517)). +- Add unit tests for Node2D helper methods ([GH-91654](https://github.com/godotengine/godot/pull/91654)). +- Add unit tests for `HeightMapShape3D` ([GH-95123](https://github.com/godotengine/godot/pull/95123)). +- Add unit tests for `StyleBoxTexture` ([GH-95218](https://github.com/godotengine/godot/pull/95218)). +- Add unit tests for `String::parse_url()` ([GH-95590](https://github.com/godotengine/godot/pull/95590)). +- Add unit tests for `Parallax2D` ([GH-95650](https://github.com/godotengine/godot/pull/95650)). +- Add unit tests for `StreamPeer` and `StreamPeerBuffer` ([GH-95784](https://github.com/godotengine/godot/pull/95784)). +- Add unit tests for `PacketPeer` ([GH-95931](https://github.com/godotengine/godot/pull/95931)). +- Add more unit tests for String `insert` and `join` ([GH-96291](https://github.com/godotengine/godot/pull/96291)). +- Make `[Audio]` tag consistent with other test environment tags ([GH-96564](https://github.com/godotengine/godot/pull/96564)). +- `create_test` script: Improve argument description and snake_case name conversion ([GH-96565](https://github.com/godotengine/godot/pull/96565)). +- Add Unit Test cases for `Sky` ([GH-97512](https://github.com/godotengine/godot/pull/97512)). +- Fix `InputEventKey` test failure under certain system languages ([GH-98504](https://github.com/godotengine/godot/pull/98504)). +- Add tests for `Projection` ([GH-99125](https://github.com/godotengine/godot/pull/99125)). +- Add basic tests for Fontfile ([GH-99131](https://github.com/godotengine/godot/pull/99131)). +- Destroy EditorFilesystem/EditorSettings on test shutdown ([GH-99847](https://github.com/godotengine/godot/pull/99847)). +- Add unit tests for Sky ([GH-99886](https://github.com/godotengine/godot/pull/99886)). +- Fix `TCPServer` "Should disconnect client" test ([GH-99960](https://github.com/godotengine/godot/pull/99960)). +- Ensure that directory exists in create_test.py ([GH-100867](https://github.com/godotengine/godot/pull/100867)). +- Add some tests for `uid://` encoding and decoding ([GH-100970](https://github.com/godotengine/godot/pull/100970)). +- Add `Packed*Array` `to_byte_array` variant call tests ([GH-102587](https://github.com/godotengine/godot/pull/102587)). #### Thirdparty -- astcenc: Update to 4.7.0 ([GH-80375](https://github.com/godotengine/godot/pull/80375)). -- ICU4C: Update to version 74.1 ([GH-84289](https://github.com/godotengine/godot/pull/84289)). -- meshoptimizer: Update to v0.20 (with a reduced patch) ([GH-84384](https://github.com/godotengine/godot/pull/84384)). -- Fix README from `linuxbsd_headers` ([GH-86607](https://github.com/godotengine/godot/pull/86607)). -- ThorVG: Update from v0.11.2 to v0.11.6 ([GH-86623](https://github.com/godotengine/godot/pull/86623)). -- ThorVG: Update from v0.11.6 to v0.12.0 ([GH-86846](https://github.com/godotengine/godot/pull/86846)). -- OpenXR: Update to version 1.0.33 ([GH-86980](https://github.com/godotengine/godot/pull/86980)). -- vulkan: Update components to Vulkan SDK 1.3.268.0 ([GH-87091](https://github.com/godotengine/godot/pull/87091)). -- ThorVG: update from v0.12.0 to v0.12.1 ([GH-87105](https://github.com/godotengine/godot/pull/87105)). -- zlib/minizip: Update to version 1.3.1 ([GH-87527](https://github.com/godotengine/godot/pull/87527)). -- certs: Sync with Mozilla bundle as of Dec 13, 2023 ([GH-87581](https://github.com/godotengine/godot/pull/87581)). -- ThorVG: update from v0.12.1 to v0.12.3 ([GH-87612](https://github.com/godotengine/godot/pull/87612)). -- mbedtls: Update to upstream version 2.28.7 ([GH-87738](https://github.com/godotengine/godot/pull/87738)). -- Sync controller mappings DB with SDL2 community repo ([GH-87741](https://github.com/godotengine/godot/pull/87741)). -- ThorVG: update from v0.12.3 to v0.12.4 ([GH-87869](https://github.com/godotengine/godot/pull/87869)). -- wayland-protocols: Update to 1.33 ([GH-87982](https://github.com/godotengine/godot/pull/87982)). -- etcpak: Sync with upstream ([GH-87984](https://github.com/godotengine/godot/pull/87984)). -- vulkan: Update all components to Vulkan SDK 1.3.275.0 ([GH-88011](https://github.com/godotengine/godot/pull/88011)). -- thorvg: Re-enable thread support, made opt-in upstream ([GH-88053](https://github.com/godotengine/godot/pull/88053)). -- libktx: Update to 4.3.1 ([GH-88075](https://github.com/godotengine/godot/pull/88075)). -- ThorVG: update from v0.12.4 to v0.12.5 ([GH-88094](https://github.com/godotengine/godot/pull/88094)). -- miniupnpc: Update to version 2.2.6 ([GH-88285](https://github.com/godotengine/godot/pull/88285)). -- basis_universal: Unbundle jpgd to fix symbol conflict, use our newer copy with SSE2 support ([GH-88508](https://github.com/godotengine/godot/pull/88508)). -- FastNoiseLite: Sync with 1.1.0, clean up SCsub ([GH-88526](https://github.com/godotengine/godot/pull/88526)). -- tinyexr: Update to 1.0.8 ([GH-88702](https://github.com/godotengine/godot/pull/88702)). -- embree: Update to 4.3.1 ([GH-88783](https://github.com/godotengine/godot/pull/88783)). -- clipper2: Update to 1.3.0 ([GH-89025](https://github.com/godotengine/godot/pull/89025)). -- harfbuzz: Update to 8.3.0 ([GH-89304](https://github.com/godotengine/godot/pull/89304)). -- libpng: Update to 1.6.43 ([GH-89314](https://github.com/godotengine/godot/pull/89314)). -- thorvg: Update to 0.12.7 ([GH-89337](https://github.com/godotengine/godot/pull/89337)). -- pcre2: Update to 10.43 ([GH-89371](https://github.com/godotengine/godot/pull/89371)). -- Update ICU and msdfgen ([GH-89414](https://github.com/godotengine/godot/pull/89414)). -- pcre2: Remove unused sjlit files after last update ([GH-89495](https://github.com/godotengine/godot/pull/89495)). -- iOS: Disable PCRE2 JIT ([GH-89507](https://github.com/godotengine/godot/pull/89507)). -- meshoptimizer: State used version explicitly ([GH-89544](https://github.com/godotengine/godot/pull/89544)). -- thorvg: Update to 0.12.9 ([GH-89591](https://github.com/godotengine/godot/pull/89591)). -- mbedtls: Update to upstream version 2.28.8 ([GH-90209](https://github.com/godotengine/godot/pull/90209)). -- certs: Sync with Mozilla bundle as of Mar 11, 2024 ([GH-90211](https://github.com/godotengine/godot/pull/90211)). -- thorvg: Update to 0.12.10 ([GH-90243](https://github.com/godotengine/godot/pull/90243)). -- enet: Sync with upstream commit c44b7d0 ([GH-90244](https://github.com/godotengine/godot/pull/90244)). -- harfbuzz: Update to 8.4.0 ([GH-90247](https://github.com/godotengine/godot/pull/90247)). -- libktx: Update to 4.3.2 ([GH-90248](https://github.com/godotengine/godot/pull/90248)). -- miniupnpc: Update to 2.2.7 ([GH-90250](https://github.com/godotengine/godot/pull/90250)). -- squish: Clean up patches, add LICENSE.txt ([GH-90251](https://github.com/godotengine/godot/pull/90251)). -- zstd: Update to upstream version 1.5.6 ([GH-90253](https://github.com/godotengine/godot/pull/90253)). -- Sync controller mappings DB with SDL2 community repo ([GH-90406](https://github.com/godotengine/godot/pull/90406)). -- Sync controller mappings DB with SDL 2 community repo ([GH-91108](https://github.com/godotengine/godot/pull/91108)). -- FBX: Update ufbx to v0.14.0 ([GH-91528](https://github.com/godotengine/godot/pull/91528)). -- thorvg: Update to 0.13.3, add webp loader ([GH-91788](https://github.com/godotengine/godot/pull/91788)). -- Update ICU to 75.1 ([GH-91937](https://github.com/godotengine/godot/pull/91937)). -- astcenc: Update to 4.8.0 ([GH-91941](https://github.com/godotengine/godot/pull/91941)). -- enet: Update to 1.3.18 ([GH-91942](https://github.com/godotengine/godot/pull/91942)). -- libwebp: Update to 1.4.0 ([GH-91943](https://github.com/godotengine/godot/pull/91943)). -- Update HarfBuzz to 8.5.0 ([GH-91959](https://github.com/godotengine/godot/pull/91959)). -- thorvg: Update to 0.13.5 + hotfix for GCC x86_32 build ([GH-92567](https://github.com/godotengine/godot/pull/92567)). -- qoa: Apply upstream patches ([GH-92905](https://github.com/godotengine/godot/pull/92905)). -- ThorVG: Update to 0.13.7 ([GH-92915](https://github.com/godotengine/godot/pull/92915)). -- thorvg: Update to 0.13.8 ([GH-93378](https://github.com/godotengine/godot/pull/93378)). -- ThorVG: Update to 0.14.0 ([GH-93655](https://github.com/godotengine/godot/pull/93655)). -- thorvg: Update to 0.14.1 ([GH-94103](https://github.com/godotengine/godot/pull/94103)). -- embree: Fix include order causing unwanted dllexport symbols ([GH-94256](https://github.com/godotengine/godot/pull/94256)). -- ThorVG: Update to 0.14.2 ([GH-94258](https://github.com/godotengine/godot/pull/94258)). -- Windows: Add `libSynchronization` to link flags ([GH-94466](https://github.com/godotengine/godot/pull/94466)). -- Remove unused Bitstream Vera license ([GH-94823](https://github.com/godotengine/godot/pull/94823)). -- Windows: Remove libSynchronization ([GH-94836](https://github.com/godotengine/godot/pull/94836)). +- ufbx: Update to 0.14.3 ([GH-95831](https://github.com/godotengine/godot/pull/95831)). +- clipper2: Update to 1.4.0 ([GH-95964](https://github.com/godotengine/godot/pull/95964)). +- thorvg: Update to 0.14.7 ([GH-96167](https://github.com/godotengine/godot/pull/96167)). +- thorvg: Update to 0.14.8, and backport upstream fix for Bezier precision regression ([GH-96320](https://github.com/godotengine/godot/pull/96320)). +- mbedTLS: Update to 3.6.1 ([GH-96385](https://github.com/godotengine/godot/pull/96385)). +- thorvg: Update to 0.14.9 ([GH-96658](https://github.com/godotengine/godot/pull/96658)). +- thorvg: Update to 0.14.10 ([GH-97079](https://github.com/godotengine/godot/pull/97079)). +- miniupnpc: Update to 2.2.8 (new major 18) ([GH-97139](https://github.com/godotengine/godot/pull/97139)). +- Update bcdec to latest version ([GH-97611](https://github.com/godotengine/godot/pull/97611)). +- Update HarfBuzz to 10.0.1 ([GH-97677](https://github.com/godotengine/godot/pull/97677)). +- Update ICU to 76.1 ([GH-98496](https://github.com/godotengine/godot/pull/98496)). +- Update meshoptimizer to 0.22 ([GH-98529](https://github.com/godotengine/godot/pull/98529)). +- Include full Apache-2.0 license in COPYRIGHT.txt ([GH-98628](https://github.com/godotengine/godot/pull/98628)). +- smol-v: update to 2024 to support SPIR-V 1.6 ([GH-98771](https://github.com/godotengine/godot/pull/98771)). +- certs: Sync with Mozilla bundle as of Oct 19, 2024 ([GH-98855](https://github.com/godotengine/godot/pull/98855)). +- Delete unused files of thirdparty libs (zlib, mbedtls) ([GH-98920](https://github.com/godotengine/godot/pull/98920)). +- Sync controller mappings DB with SDL2 community repo [Nov 2024] ([GH-99304](https://github.com/godotengine/godot/pull/99304)). +- libpng: Update to upstream 1.6.44 ([GH-99996](https://github.com/godotengine/godot/pull/99996)). +- mbedtls: Update to upstream 3.6.2 ([GH-99997](https://github.com/godotengine/godot/pull/99997)). +- tinyexr: Update to upstream 1.0.9 ([GH-99998](https://github.com/godotengine/godot/pull/99998)). +- ufbx: Update to upstream 0.15.0 ([GH-99999](https://github.com/godotengine/godot/pull/99999)). +- thorvg: Update to 0.15.5 ([GH-100008](https://github.com/godotengine/godot/pull/100008)). +- libbacktrace: Update to upstream commit 1db85642e ([GH-100274](https://github.com/godotengine/godot/pull/100274)). +- Regenerate X11 wrappers with dynload-wrapper 0.7 ([GH-100315](https://github.com/godotengine/godot/pull/100315)). +- libpng: Update to 1.6.45 ([GH-101346](https://github.com/godotengine/godot/pull/101346)). +- thorvg: Update to 0.15.8 ([GH-101347](https://github.com/godotengine/godot/pull/101347)). +- manifold: Update to 3.0.1 ([GH-101351](https://github.com/godotengine/godot/pull/101351)). +- etcpak: Sync with upstream 2.0 ([GH-101362](https://github.com/godotengine/godot/pull/101362)). +- harfbuzz: Update to 10.1.0 ([GH-101366](https://github.com/godotengine/godot/pull/101366)). +- msdfgen: Update to 1.12 ([GH-101367](https://github.com/godotengine/godot/pull/101367)). +- Update texture import library info in COPYRIGHT.txt ([GH-101388](https://github.com/godotengine/godot/pull/101388)). +- Harmonize patches to document downstream changes ([GH-102242](https://github.com/godotengine/godot/pull/102242)). +- Betsy: Consolidate documentation in module folder and cleanup SCsub ([GH-102264](https://github.com/godotengine/godot/pull/102264)). +- thorvg: Update to 0.15.10 ([GH-102851](https://github.com/godotengine/godot/pull/102851)). +- Fix MinGW crash handler crashing during trace generation or producing empty trace ([GH-102900](https://github.com/godotengine/godot/pull/102900)). #### XR -- Remove unused grip touch action from default OpenXR action map ([GH-85048](https://github.com/godotengine/godot/pull/85048)). -- OpenXR: Add runtime selection dropdown ([GH-85117](https://github.com/godotengine/godot/pull/85117)). -- OpenXR: Add support for retrieving play area ([GH-85163](https://github.com/godotengine/godot/pull/85163)). -- OpenXR: Add support for hand tracking source extension ([GH-85204](https://github.com/godotengine/godot/pull/85204)). -- Cleanup of OpenXR module SCons config ([GH-86537](https://github.com/godotengine/godot/pull/86537)). -- Add ability to drive full-body avatars using OpenXRHand ([GH-86906](https://github.com/godotengine/godot/pull/86906)). -- OpenXR: Add Meta touch plus interaction profile ([GH-86982](https://github.com/godotengine/godot/pull/86982)). -- Add support for OpenXR local floor extension ([GH-87235](https://github.com/godotengine/godot/pull/87235)). -- Add bone update option to OpenXRHand to allow preserving original hand scale ([GH-87240](https://github.com/godotengine/godot/pull/87240)). -- OpenXR: Make it possible to implement vendor extensions to hand tracking from GDExtension ([GH-87546](https://github.com/godotengine/godot/pull/87546)). -- OpenXR: Allow moving vendor passthrough extensions to GDExtension ([GH-87630](https://github.com/godotengine/godot/pull/87630)). -- OpenXR: Allow changing play area mode during active session ([GH-87745](https://github.com/godotengine/godot/pull/87745)). -- Enable getting suggested tracker names from OpenXR extensions ([GH-88311](https://github.com/godotengine/godot/pull/88311)). -- Add XR Face Tracking support ([GH-88312](https://github.com/godotengine/godot/pull/88312)). -- WebXR: Add support for hand tracking ([GH-88411](https://github.com/godotengine/godot/pull/88411)). -- OpenXR: Update to version 1.0.34 ([GH-88574](https://github.com/godotengine/godot/pull/88574)). -- Provide generic interface for XR hand tracking ([GH-88639](https://github.com/godotengine/godot/pull/88639)). -- Fix crash when using OpenXR extension wrappers from GDExtension ([GH-88689](https://github.com/godotengine/godot/pull/88689)). -- Fix building on MinGW ([GH-88724](https://github.com/godotengine/godot/pull/88724)). -- Fix lint errors in WebXR module ([GH-88740](https://github.com/godotengine/godot/pull/88740)). -- OpenXR: Register eye gaze even when disabled ([GH-88754](https://github.com/godotengine/godot/pull/88754)). -- Add body tracking support ([GH-88798](https://github.com/godotengine/godot/pull/88798)). -- Fix XR Body crouching and climbing ([GH-89103](https://github.com/godotengine/godot/pull/89103)). -- Fix XRHandModifier3D scaling ([GH-89130](https://github.com/godotengine/godot/pull/89130)). -- Expose `profile_changed` signal to XRController3D ([GH-89219](https://github.com/godotengine/godot/pull/89219)). -- Consistently use `USE_MULTIVIEW` as the define in shaders ([GH-89376](https://github.com/godotengine/godot/pull/89376)). -- Improve warning when XR shaders are not enabled ([GH-89397](https://github.com/godotengine/godot/pull/89397)). -- Disable XR server when compiling without 3D ([GH-89411](https://github.com/godotengine/godot/pull/89411)). -- Fix XRBodyModifier3D hip driving for avatars no Root bone ([GH-89727](https://github.com/godotengine/godot/pull/89727)). -- Tweak OpenXR alert to mention WMR only on Windows ([GH-89968](https://github.com/godotengine/godot/pull/89968)). -- Allow OpenXR extensions to add properties to the OpenXRCompositionLayer node ([GH-90237](https://github.com/godotengine/godot/pull/90237)). -- Add `intersects_ray()` method to `OpenXRCompositionLayer` ([GH-90286](https://github.com/godotengine/godot/pull/90286)). -- OpenXR: Add refresh rate signal support ([GH-90374](https://github.com/godotengine/godot/pull/90374)). -- Rework XR Trackers to have a common ancestor ([GH-90645](https://github.com/godotengine/godot/pull/90645)). -- Revert `OpenXRHand` to its pre-`SkeletonModifier3D` state ([GH-90759](https://github.com/godotengine/godot/pull/90759)). -- Mark `OpenXRCompositionLayer` and its children as experimental ([GH-90761](https://github.com/godotengine/godot/pull/90761)). -- Remove the Hand enum from XRHandTracker ([GH-91130](https://github.com/godotengine/godot/pull/91130)). -- Add a new property named `offset_rect` to `MobileVRInterface` ([GH-91140](https://github.com/godotengine/godot/pull/91140)). -- MobileVR: Orientation is progressive and needs to be initialized ([GH-91305](https://github.com/godotengine/godot/pull/91305)). -- Store previous relative transforms in `XRHandModifier3D` ([GH-91335](https://github.com/godotengine/godot/pull/91335)). -- OpenXR: Allow composition layers to enable hole punching ([GH-91485](https://github.com/godotengine/godot/pull/91485)). -- OpenXR: Fix composition layers not having correct play space ([GH-91686](https://github.com/godotengine/godot/pull/91686)). -- Fix `layer_viewport` getting cleared on `OpenXRCompositionLayer` in editor ([GH-91775](https://github.com/godotengine/godot/pull/91775)). -- Fix sample count on OpenXR composition layers ([GH-91952](https://github.com/godotengine/godot/pull/91952)). -- OpenXR: Fix updating swapchain for foveation ([GH-92137](https://github.com/godotengine/godot/pull/92137)). -- Allow `OpenXRCompositionLayer` property `layer_viewport` to always be assigned `nullptr` ([GH-92200](https://github.com/godotengine/godot/pull/92200)). -- Apply reference frame transform to `OpenXRCompositionLayer` nodes ([GH-92339](https://github.com/godotengine/godot/pull/92339)). -- Set `XRHandTracker` property `has_tracking_data` to true only when palm joint is tracked ([GH-92801](https://github.com/godotengine/godot/pull/92801)). -- OpenXR: Add HTC/MSFT hand interaction profiles ([GH-93075](https://github.com/godotengine/godot/pull/93075)). -- Check for bad input in `make_vrs_texture` ([GH-93536](https://github.com/godotengine/godot/pull/93536)). -- WebXR: Fix closure compiler mangling `XRSession.enabledFeatures` ([GH-93593](https://github.com/godotengine/godot/pull/93593)). -- Fix WebXR palm joint calculation to include rotation ([GH-93614](https://github.com/godotengine/godot/pull/93614)). -- Improve WebXR API docs related to hand tracking support ([GH-93633](https://github.com/godotengine/godot/pull/93633)). -- Fix support for environment blend modes on `WebXRInterface` ([GH-93646](https://github.com/godotengine/godot/pull/93646)). -- OpenXR: Fix `LOCAL_FLOOR` emulation on HTC Vive XR Elite ([GH-93678](https://github.com/godotengine/godot/pull/93678)). -- OpenXR: Couple of small fixes on the action map ([GH-94158](https://github.com/godotengine/godot/pull/94158)). -- Fix creating default action map ([GH-94457](https://github.com/godotengine/godot/pull/94457)). -- OpenXR: Fix enabling passthrough via environment blend mode in project settings ([GH-94550](https://github.com/godotengine/godot/pull/94550)). +- Add Linux camera support ([GH-53666](https://github.com/godotengine/godot/pull/53666)). +- Change hand tracking project settings and finetune `show_when_tracked` ([GH-95153](https://github.com/godotengine/godot/pull/95153)). +- Add support for the debug utils extension in OpenXR ([GH-95156](https://github.com/godotengine/godot/pull/95156)). +- Update OpenXR thirdparty library to 1.1.38 ([GH-95227](https://github.com/godotengine/godot/pull/95227)). +- OpenXR: Fix support for building against distro package ([GH-95658](https://github.com/godotengine/godot/pull/95658)). +- OpenXR: Check correct status bit for hand tracking ([GH-95929](https://github.com/godotengine/godot/pull/95929)). +- Fix crash when calling `OpenXRAPI::get_hand_tracker()` and hand-tracking is disabled ([GH-95959](https://github.com/godotengine/godot/pull/95959)). +- Fix invalid `Skeleton3D` bone pose updates ([GH-96093](https://github.com/godotengine/godot/pull/96093)). +- OpenXR: Support composition layers based on Android surfaces ([GH-96185](https://github.com/godotengine/godot/pull/96185)). +- Fix Android builds when OpenXR is disabled ([GH-96365](https://github.com/godotengine/godot/pull/96365)). +- Warn if XRHandModifier3D used with OpenXR and hand-tracking disabled ([GH-96587](https://github.com/godotengine/godot/pull/96587)). +- [Android editor] Improve support for XR projects ([GH-96624](https://github.com/godotengine/godot/pull/96624)). +- Disable some android editor settings by default on XR devices ([GH-96697](https://github.com/godotengine/godot/pull/96697)). +- [Android editor] Limit when OpenXR runtime permissions are requested ([GH-96742](https://github.com/godotengine/godot/pull/96742)). +- Fix launching XR apps from the Android editor ([GH-96868](https://github.com/godotengine/godot/pull/96868)). +- OpenXR: Add support for binding modifiers ([GH-97140](https://github.com/godotengine/godot/pull/97140)). +- OpenXR: Allow extending Android surface swapchain creation from GDExtension ([GH-97252](https://github.com/godotengine/godot/pull/97252)). +- OpenXR: Correctly set the Depth swapchain name ([GH-97259](https://github.com/godotengine/godot/pull/97259)). +- Cleanup of action map dialogs ([GH-97392](https://github.com/godotengine/godot/pull/97392)). +- Add missing `#ifndef _3D_DISABLED` to main file ([GH-97442](https://github.com/godotengine/godot/pull/97442)). +- [XR Editor] Update the set of excluded permissions ([GH-97477](https://github.com/godotengine/godot/pull/97477)). +- Update thirdparty OpenXR to 1.1.41 ([GH-97524](https://github.com/godotengine/godot/pull/97524)). +- Expose CameraFeed setters ([GH-97534](https://github.com/godotengine/godot/pull/97534)). +- Add `activate_feed` and `deactivate_feed` virtual bind to CameraFeed ([GH-97571](https://github.com/godotengine/godot/pull/97571)). +- OpenXR: Add support for Wayland on Linux ([GH-97771](https://github.com/godotengine/godot/pull/97771)). +- OpenXR: change bindings to 'flatten' source paths ([GH-98163](https://github.com/godotengine/godot/pull/98163)). +- Fix bug with OpenXR composition layers added after OpenXR is running ([GH-98471](https://github.com/godotengine/godot/pull/98471)). +- Fix OpenXR module failing to build on Linux when Wayland is disabled ([GH-98589](https://github.com/godotengine/godot/pull/98589)). +- Patch the OpenXR headers to get EGL from GLAD if we're using it ([GH-98824](https://github.com/godotengine/godot/pull/98824)). +- Allow locking the camera to the `XROrigin3D` for benchmarking or automated testing ([GH-99145](https://github.com/godotengine/godot/pull/99145)). +- OpenXR: Fix pose recenter signal to be omitted properly ([GH-99159](https://github.com/godotengine/godot/pull/99159)). +- OpenXR: Fix crash with composition layers in non-dev builds ([GH-100471](https://github.com/godotengine/godot/pull/100471)). +- OpenXR: Make sure wedge on DPad modifier is expressed in degrees ([GH-100633](https://github.com/godotengine/godot/pull/100633)). +- OpenXR: Fix hiding/showing composition layers using hole punching ([GH-100763](https://github.com/godotengine/godot/pull/100763)). +- [XR Editor] Allow specifying whether to play the current scene or a specific scene in XR or regular mode ([GH-101116](https://github.com/godotengine/godot/pull/101116)). +- Update `OpenXRAPI` memory management ([GH-101294](https://github.com/godotengine/godot/pull/101294)). +- Add PICO OS Immersive Mode ([GH-101387](https://github.com/godotengine/godot/pull/101387)). +- Clean up the XR editor logic ([GH-101645](https://github.com/godotengine/godot/pull/101645)). +- Fix `OpenXRAPIExtension` casting build issue ([GH-102384](https://github.com/godotengine/godot/pull/102384)). +- Bump the version of the openxr vendors plugin dependency ([GH-102772](https://github.com/godotengine/godot/pull/102772)). +- OpenXR: Emulated alpha blend mode should override the real blend mode ([GH-103338](https://github.com/godotengine/godot/pull/103338)). +- Inform that Android sensors must be enabled for MobileVR support ([GH-103370](https://github.com/godotengine/godot/pull/103370)). ## Past releases +- [4.3](https://github.com/godotengine/godot/blob/4.3-stable/CHANGELOG.md) - [4.2](https://github.com/godotengine/godot/blob/4.2-stable/CHANGELOG.md) - [4.1](https://github.com/godotengine/godot/blob/4.1-stable/CHANGELOG.md) - [4.0](https://github.com/godotengine/godot/blob/4.0-stable/CHANGELOG.md) diff --git a/engine/DONORS.md b/engine/DONORS.md index 314a0f64..b005965f 100644 --- a/engine/DONORS.md +++ b/engine/DONORS.md @@ -17,24 +17,22 @@ generous deed immortalized in the next stable release of Godot Engine. ## Platinum sponsors - Google Play <https://play.google.com> - Ramatak <https://ramatak.com/> + Scorewarrior <https://scwr.gg/godot> V-Sekai <https://github.com/V-Sekai> W4 Games <https://w4games.com/> ## Gold sponsors Mega Crit <https://www.megacrit.com/> - Pirate Software <https://gopiratesoftware.com> Prehensile Tales <https://prehensile-tales.com> Robot Gentleman <http://robotgentleman.com/> ## Silver sponsors + Bippinbits <https://bippinbits.com/> Broken Rules <https://brokenrul.es> Chasing Carrots <https://www.chasing-carrots.com> Copia Wealth Studios <https://copiawealthstudios.com/> - Indoor Astronaut <https://indoorastronaut.ch/> LoadComplete <https://loadcomplete.com/> Null <https://null.com/> Orbital Knight <https://www.orbitalknight.com/> @@ -43,27 +41,31 @@ generous deed immortalized in the next stable release of Godot Engine. ## Diamond members - Bippinbits <http://domekeepergame.com/> + ASIFA-Hollywood <https://www.asifa-hollywood.org/> + Christina Coffin <https://bsky.app/profile/christinacoffin.bsky.social> + Dominic Harris <https://wayfarer-games.com/> + Kiri "ExpiredPopsicle" Artemis <https://expiredpopsicle.com/> + Petr Kharitonov <https://petrkharitonov.com/> + Seats.aero <https://seats.aero/> Sylv <https://rankith.itch.io/unnamed-space-idle-prototype> - And 3 anonymous donors + And 5 anonymous donors ## Titanium members Adriaan de Jongh <https://adriaan.games> - Anitya Space <https://www.anitya.space> Basically Games - FDG Entertainment <https://www.fdg-entertainment.com> - Game Dev Artisan <https://gamedevartisan.com> + Draknek & Friends <https://www.draknek.org/> Garry Newman + Gigabrain AI Reddit Search Engine <https://thegigabrain.com/?utm_source=godot> + Jettelly <https://jettelly.com/> + Justo Delgado Baudí <https://portfolio.mrcdk.com/> Kenney <https://kenney.nl/> - Libretrend <https://libretrend.com> - Life Art Studios <https://lifeartstudios.net/> Lucid Silence Games - Matthew Campbell + Matthew Hall <https://crossyroad.com/> PolyMars <https://polymars.dev/> - Razenpok <https://www.youtube.com/watch?v=-QxI-RP6-HM> + Purple Moss Collectors <https://purplemosscollectors.com/> RPG in a Box <https://www.rpginabox.com> - Smirk Software <https://smirk.gg> + Starkandco <https://github.com/Starkandco> Studio Sunshower <https://www.studiosunshower.com/> TrampolineTales <https://TrampolineTales.com/> 粟二华 (Su Erhua) @@ -73,447 +75,217 @@ generous deed immortalized in the next stable release of Godot Engine. Andy Touch BlockImperiumGames (BIG) + Bytten Studio Christopher Shifflett - Christoph Woinke Cody Bentley Darrin Massena - Edward Flick - GetIntoGameDev + Fabio Alessandrelli HP van Braam iCommitGames + Jason Hamilton Jonah Stich - Justo Delgado Baudí - katnamag + Josh Anthony + Ludvig Temperli Risan Matthew Ekenstedt Memories in 8Bit + Michael Martin Mike King Neal Gompa (Conan Kudo) - Radivarig + Nico Ulriksen + Nikita Blizniuk + Raptor85 + Rémi Verschelde Ronnie Cheng Ryan Heath - Scott Pezza ShikadiGum Silver Creek Entertainment - SolarLabyrinth Stephan Kessler - Stephan Lanfermann - TigerJ - Violin Iliev - Vladimír Chvátil - And 13 anonymous donors + Stephen Rice + And 14 anonymous donors ## Gold members + 2 Nerdy Nerds + 73unny 80px + Abigail F. + Admiral Potato afreytes - alMoo Games + AinaVT + Ajat BlackSun + Alex177Alex alMoo Games Alva Majo + Andrew Eiche Antti Vesanen + Arediss Asher Glick Axthelm - Bellbird Studio + BangTheWall Benito - Benjamin Sarsgard + Benjamin Bridges Ben Rog-Wilhelm - Bernd Barsuhn BetaTester704 - Brian Levinsen Brut Bryce Dixon - c64cosmin + Carlo Cabanilla Carlo del Mundo Carl van der Geest Chocolate Software + Chris Backas + Chris Lambson + Christine Elisabeth Koppel Cindy Trieu ClarkThyLord Codex404 cora Daniel Eichler Daniel Krafft + Datzju David Chen Zhen David Coles David Hubber David Snopek Deakcor Delton Ding - dfseifert dgehrig - dhanielk + Disco Cat Distorted Realities - Donkung - Dono + DitherDream + Dominik Frizel Don't You Know Who I Am? Inc. Dustuu - Dylan P. + Dylan Dromard Edelweiss + eelSkillz + Emily Flion Ends Eren Ogrul Eric Brand Eric Phy Faisal Al-Kubaisi (QatariGameDev) + Fanny Pack Studios Felix Adam FeralBytes - Festzeltgaming.de + Francisco Aliaga + Francis Jasmin Frozen Fractal Gaudipern + GetIntoGameDev GlassBrick Grau + Grzegorz Wereszko Guangzhou Lingchan + Guilherme Cattani Hayden Oliver hiulit + https://domi.zip + Huedeane + Ikuti Illyan + I.M.I.Self Immaculate Lift Studio + Intrepid Marmot LLC + Isaac Marovitz Ivan Tabashki - Jacob (HACKhalo2 Studios) + jakemiki Jam Jason Cawood - Javier Roman Jeff Hungerford - Jeronimo Schreyer + Jesús Chicharro Johannes Wuensch John Gabriel Jonas Yamazaki Jonathan José Canepa - Joshua Stelly + Julian Todd + Justin Laster + Justin Sasso Kalydi Balázs KAR Games - Kiri "ExpiredPopsicle" Artemis + Kiryonn + kodebold KOGA Mitsuhiro (@shiena) korinVR Kristian Kriehl + KyletheDab Lars Thießen Lisandro Lorea (Red Mage Games) Logan Apple Luca Junge LyaaaaaGames m1n1ster - Manuel Requena + Madison Nicole Videogames Mara Huldra Marek Belski Martin Šenkeřík - MHDante + Matthias B. + Michael Alexsander Michael Gooch + Michael Harrington Modus Ponens Moshe Harris - Moth + Moth Soup Mr. Byte + Muscarian Softworks Nassor Paulino da Silva + Neuroticfly Games nezticle + nikkehtine Niklas Wahrman Nitzan Bueno - Niwl Games NotNet Oathbringer Officine Pixel ohanaya3 Okatima AB - Oleksii Nosov - Osirisa + Oscar Robin + ovym Patrick Traynor - Petr Malac + Péter Horváth-Lázár + Petr Maláč pirey + protogames Rafa Laguna + Reid Hannaford @reilaos Request re:thinc Richard Ivánek - Rudi P - Sam Leathers + Robin Ward + Ronny Mühle + Rubén Rüger Samuel Judd - ScoreSpace + Santi_FC + Seref Karahan + shazzner Shiny Shinken Silverclad Studios + Skie Radscale + Snow Diamond Sofox Space Kraken Studios - spacesloth Spoony Panda - TANAKA Yu - TaraSophieDev (pls fix #43093) - Thad Guidry + tenuki ThatGamer - The Polyglot Programmer - TheRiverNyx Thomas Lobig - Tim Nedvyga + Tobias Bocanegra Tom Langwaldt Trevor Slocum tukon + twitch.tv/RobitussinMD Tyler C - Vagastella + Urban Protagonist Vincent Foulon Vojtech Lacina + Voxel Floof Watchinofoye - Weasel Games - Wilson Birney - Wolfram - WuotanStudios.com - Zhu Li + Yannick zikes + Zoey Smith 嗯大爷 - 潘彦圣 - Alex Khayrullin - Algebrute - Andriy - Antanas Paskauskas - Ari - Arisaka Mayuki - Arthur S. Muszynski - Cameron Connolly - Charlie Whitfield - Craig Ostrin - Craig Swain - CzechBlueBear - Dennis Belfrage - Emily A. Bellows - Felix Winterhalter - Fransiska - Harry Tumber - James Couzens - Jared White - Jesús Chicharro - Joel Fivat - Johnathan Kupferer - Josef Stumpfegger - Joshua Lesperance - Kelteseth - kickmaniac - Liam Smyth - LoparPanda - Martin Gulliksson - Michael Dürwald - Michael Policastro - n00sh - Nicolás Monner Sans - Nikita Rotskov - Oliver Dick - Patrick Wuttke - Pete Goodwin - Philip Woods - Reilt - Rickard Hermanson - Rob - Rob McInroy - RodZilla - Ruzgud - Ryan Breaker - "Sage Automatic Systems, LLC" - spacechase0 - sus - Thomas Kurz - Tobias Bocanegra - Torbulous - toto bibi - Valryia - VoidPointer - Yifan Lai - - Adam Carr - Adam Smeltzer - Adisibio - Aidan Marwick - Aidan O'Flannagain - AJWolbers - Alan Beauchamp - Alexander Erlemann - Alex Clavelle - alex raeside - Andre Altmueller - Andreas Østergaard Nielsen - Andrew - Ano Nim - Arch Toasty - Arda Erol - Arturo Rosales - Ash K - Aubrey Falconer - Austin Miller - AzulCrescent - Beau Seymour - Benedikt - Bread - Brian Ford - Caleb Makela - Cameron Meyer - Carl van der Geest - Checkpoint Charlie - Chris Cavalluzzi - Chris Jagusch - Chris Lee - Christian Mauduit - Christian Ringshofer - Christoph Czurda - Christophe Gagnier - Cody Parker - Conall O - Corchari - Corey W - Dakota Watkins - Daniele Tolomelli - Daniel Ramos - Daren Scot Wilson - Dave Jansen - Davesnothere - David Baker - David Bôle - David May - David Maziarka - Devin Carraway - Devin R - Dimitri Roche - Donovan Hutcheon - Ducky - Duodecimal - Egon Elbre - Elijah Anderson - Eric Persson - Eric Stokes - Eric Williams - Erkki Seppälä - Frank - Frying☆Pan - Game Endeavor - gamerminstrel - Garrett S - Gary Thomas - gebba - Greyson Richey - Guo Hongci - Haplo - Helge Maus - Heribert Hirth - Ian Richard Kunert - Ian Williams - itsybitesyspider - iveks - Jacob Wallace - Jako Danar - James Gary - James Hulsizer - Jamie Massey - JARKKO PARVIAINEN - Jason Evans - Jonas - Jonas Arndt - Jonas Yamazaki - Jonathan Bieber - Jon Sully - Joseph Catrambone - Josh Taylor - Juanfran - Julian le Roux - Justin Spedding - Keith Bradner - kindzadza - KsyTek Games - Kyle Burnett - Kyle Haltermann - Kyle Jacobs - Leland Vakarian - Levi Berciu - liberodark - Linus Lind Lundgren - Ludovic DELVAL - Luigi Renna - Luis Morao - Lukas Komischke - Luke Diasio - Major Haul - Malcolm - Manuele Finocchiaro - Marcos Heitor Carvalho - Markie Music - Mark Tyler - Markus Michael Egger - Martin Holas - Martin Liška - Martin Trbola - Mathieu - Matt Edwards - Maverick - Maxime Blade - Maxwell - Melissa Mears - Metal Demon 2000 - Michael Morrison - Mike Copley - Molly Jameson - Moritz Weissenberger - Mrjemandem - naonya3 - Nathaniel - neighty - Neil Blakey-Milner - Neofytos Chimonas - Nerdforge - Nerdyninja - Nik Rudenko - Noel Billig - ozrk - Patrick Horn - Patrickm - Patrick Nafarrete - Paul Black - Paul Gieske - Pete - Phoenix Jauregui - Pierre Caye - Pixel Archipel - Point08 - PsycHead - Quincy Quincy - Quinn Morrison - Raghava Kovvali - Ragnar Pettersson - Rammeow - Richard Hayes - Riley - RobotCritter - Roland Rząsa - Russ - Ryan Groom - Sammy Fischer - Satnam Singh - Sebastian Michailidis - SeongWan Kim - Shane Lillie - Shane Spoor - Shaun Kohanowski - Simon Jonas Larsen - Simon Schoenenberger - Sina Yeganeh - Skalli - slavfox - smo1704 - SpicyCactuar - Stephen Rice - Stephen Schlie - Sven Walter - SxP - tadashi endo - Tarch - TheVoiceInMyHead - Thibaut DECROMBECQUE - thomas - Thomas Pickett - Tim Drumheller - Tim Klein - Tom Webster - Trent Skinner - Tyler Stepke - Uther - Vaughan Ling - vlnx - Wapiti . - Wiley Thompson - Xatonym - Zekim - ケルベロス - 貴宏 小松 - - And 176 anonymous donors + And 143 anonymous donors ## Silver and bronze donors diff --git a/engine/core/config/project_settings.cpp b/engine/core/config/project_settings.cpp index a6725ce3..e4cc0f9c 100644 --- a/engine/core/config/project_settings.cpp +++ b/engine/core/config/project_settings.cpp @@ -1439,7 +1439,7 @@ void ProjectSettings::_add_builtin_input_map() { } Dictionary action; - action["deadzone"] = Variant(InputMap::DEFAULT_DEADZONE); + action["deadzone"] = Variant(InputMap::DEFAULT_TOGGLE_DEADZONE); action["events"] = events; String action_name = "input/" + E.key; diff --git a/engine/core/core_constants.cpp b/engine/core/core_constants.cpp index 236caa0b..4b858c55 100644 --- a/engine/core/core_constants.cpp +++ b/engine/core/core_constants.cpp @@ -723,6 +723,7 @@ void register_global_constants() { BIND_CORE_BITFIELD_FLAG(METHOD_FLAG_VARARG); BIND_CORE_BITFIELD_FLAG(METHOD_FLAG_STATIC); BIND_CORE_BITFIELD_FLAG(METHOD_FLAG_OBJECT_CORE); + BIND_CORE_BITFIELD_FLAG(METHOD_FLAG_VIRTUAL_REQUIRED); BIND_CORE_BITFIELD_FLAG(METHOD_FLAGS_DEFAULT); BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_NIL", Variant::NIL); diff --git a/engine/core/input/input.cpp b/engine/core/input/input.cpp index b705968b..f03b9c05 100644 --- a/engine/core/input/input.cpp +++ b/engine/core/input/input.cpp @@ -614,7 +614,7 @@ void Input::joy_connection_changed(int p_idx, bool p_connected, const String &p_ Vector3 Input::get_gravity() const { _THREAD_SAFE_METHOD_ -#ifdef DEBUG_ENABLED +#if defined(DEBUG_ENABLED) && defined(ANDROID_ENABLED) if (!gravity_enabled) { WARN_PRINT_ONCE("`input_devices/sensors/enable_gravity` is not enabled in project settings."); } @@ -626,7 +626,7 @@ Vector3 Input::get_gravity() const { Vector3 Input::get_accelerometer() const { _THREAD_SAFE_METHOD_ -#ifdef DEBUG_ENABLED +#if defined(DEBUG_ENABLED) && defined(ANDROID_ENABLED) if (!accelerometer_enabled) { WARN_PRINT_ONCE("`input_devices/sensors/enable_accelerometer` is not enabled in project settings."); } @@ -638,7 +638,7 @@ Vector3 Input::get_accelerometer() const { Vector3 Input::get_magnetometer() const { _THREAD_SAFE_METHOD_ -#ifdef DEBUG_ENABLED +#if defined(DEBUG_ENABLED) && defined(ANDROID_ENABLED) if (!magnetometer_enabled) { WARN_PRINT_ONCE("`input_devices/sensors/enable_magnetometer` is not enabled in project settings."); } @@ -650,7 +650,7 @@ Vector3 Input::get_magnetometer() const { Vector3 Input::get_gyroscope() const { _THREAD_SAFE_METHOD_ -#ifdef DEBUG_ENABLED +#if defined(DEBUG_ENABLED) && defined(ANDROID_ENABLED) if (!gyroscope_enabled) { WARN_PRINT_ONCE("`input_devices/sensors/enable_gyroscope` is not enabled in project settings."); } diff --git a/engine/core/input/input_event.cpp b/engine/core/input/input_event.cpp index bd793ef6..6e8cdc4b 100644 --- a/engine/core/input/input_event.cpp +++ b/engine/core/input/input_event.cpp @@ -1104,7 +1104,7 @@ JoyAxis InputEventJoypadMotion::get_axis() const { void InputEventJoypadMotion::set_axis_value(float p_value) { axis_value = p_value; - pressed = Math::abs(axis_value) >= InputMap::DEFAULT_DEADZONE; + pressed = Math::abs(axis_value) >= InputMap::DEFAULT_TOGGLE_DEADZONE; emit_changed(); } diff --git a/engine/core/input/input_map.h b/engine/core/input/input_map.h index 0479d45c..520c10c4 100644 --- a/engine/core/input/input_map.h +++ b/engine/core/input/input_map.h @@ -55,6 +55,8 @@ public: }; static constexpr float DEFAULT_DEADZONE = 0.2f; + // Keep bigger deadzone for toggle actions (default `ui_*` actions, axis `pressed`) (GH-103360). + static constexpr float DEFAULT_TOGGLE_DEADZONE = 0.5f; private: static InputMap *singleton; diff --git a/engine/core/os/os.h b/engine/core/os/os.h index 0fe20c1d..e0ec320e 100644 --- a/engine/core/os/os.h +++ b/engine/core/os/os.h @@ -109,6 +109,7 @@ protected: HasServerFeatureCallback has_server_feature_callback = nullptr; bool _separate_thread_render = false; + bool _silent_crash_handler = false; // Functions used by Main to initialize/deinitialize the OS. void add_logger(Logger *p_logger); @@ -262,6 +263,9 @@ public: void set_stdout_enabled(bool p_enabled); void set_stderr_enabled(bool p_enabled); + virtual void set_crash_handler_silent() { _silent_crash_handler = true; } + virtual bool is_crash_handler_silent() { return _silent_crash_handler; } + virtual void disable_crash_handler() {} virtual bool is_disable_crash_handler() const { return false; } virtual void initialize_debugging() {} @@ -358,6 +362,10 @@ public: // This is invoked by the GDExtensionManager after loading GDExtensions specified by the project. virtual void load_platform_gdextensions() const {} + // Windows only. Tests OpenGL context and Rendering Device simultaneous creation. This function is expected to crash on some NVIDIA drivers. + virtual bool _test_create_rendering_device_and_gl() const { return true; } + virtual bool _test_create_rendering_device() const { return true; } + OS(); virtual ~OS(); }; diff --git a/engine/core/templates/command_queue_mt.h b/engine/core/templates/command_queue_mt.h index 59508348..576b2ff8 100644 --- a/engine/core/templates/command_queue_mt.h +++ b/engine/core/templates/command_queue_mt.h @@ -114,6 +114,7 @@ class CommandQueueMT { uint32_t sync_awaiters = 0; WorkerThreadPool::TaskID pump_task_id = WorkerThreadPool::INVALID_TASK_ID; uint64_t flush_read_ptr = 0; + std::atomic<bool> pending; template <typename T, typename... Args> _FORCE_INLINE_ void create_command(Args &&...p_args) { @@ -126,6 +127,7 @@ class CommandQueueMT { *(uint64_t *)&command_mem[size] = alloc_size; void *cmd = &command_mem[size + sizeof(uint64_t)]; new (cmd) T(std::forward<Args>(p_args)...); + pending.store(true); } template <typename T, bool NeedsSync, typename... Args> @@ -186,6 +188,7 @@ class CommandQueueMT { } command_mem.clear(); + pending.store(false); flush_read_ptr = 0; _prevent_sync_wraparound(); @@ -226,7 +229,7 @@ public: } _FORCE_INLINE_ void flush_if_pending() { - if (unlikely(command_mem.size() > 0)) { + if (unlikely(pending.load())) { _flush(); } } diff --git a/engine/core/variant/variant_call.cpp b/engine/core/variant/variant_call.cpp index 75216329..730bf72b 100644 --- a/engine/core/variant/variant_call.cpp +++ b/engine/core/variant/variant_call.cpp @@ -657,22 +657,28 @@ static _FORCE_INLINE_ void vc_ptrcall(void (*method)(T *, P...), void *p_base, c } \ }; -#define VARCALL_PACKED_GETTER(m_packed_type, m_return_type) \ - static m_return_type func_##m_packed_type##_get(m_packed_type *p_instance, int64_t p_index) { \ - return p_instance->get(p_index); \ +#define VARCALL_ARRAY_GETTER_SETTER(m_packed_type, m_type) \ + static m_type func_##m_packed_type##_get(m_packed_type *p_instance, int64_t p_index) { \ + ERR_FAIL_INDEX_V(p_index, p_instance->size(), m_type()); \ + return p_instance->get(p_index); \ + } \ + static void func_##m_packed_type##_set(m_packed_type *p_instance, int64_t p_index, const m_type &p_value) { \ + ERR_FAIL_INDEX(p_index, p_instance->size()); \ + p_instance->set(p_index, p_value); \ } struct _VariantCall { - VARCALL_PACKED_GETTER(PackedByteArray, uint8_t) - VARCALL_PACKED_GETTER(PackedColorArray, Color) - VARCALL_PACKED_GETTER(PackedFloat32Array, float) - VARCALL_PACKED_GETTER(PackedFloat64Array, double) - VARCALL_PACKED_GETTER(PackedInt32Array, int32_t) - VARCALL_PACKED_GETTER(PackedInt64Array, int64_t) - VARCALL_PACKED_GETTER(PackedStringArray, String) - VARCALL_PACKED_GETTER(PackedVector2Array, Vector2) - VARCALL_PACKED_GETTER(PackedVector3Array, Vector3) - VARCALL_PACKED_GETTER(PackedVector4Array, Vector4) + VARCALL_ARRAY_GETTER_SETTER(PackedByteArray, uint8_t) + VARCALL_ARRAY_GETTER_SETTER(PackedColorArray, Color) + VARCALL_ARRAY_GETTER_SETTER(PackedFloat32Array, float) + VARCALL_ARRAY_GETTER_SETTER(PackedFloat64Array, double) + VARCALL_ARRAY_GETTER_SETTER(PackedInt32Array, int32_t) + VARCALL_ARRAY_GETTER_SETTER(PackedInt64Array, int64_t) + VARCALL_ARRAY_GETTER_SETTER(PackedStringArray, String) + VARCALL_ARRAY_GETTER_SETTER(PackedVector2Array, Vector2) + VARCALL_ARRAY_GETTER_SETTER(PackedVector3Array, Vector3) + VARCALL_ARRAY_GETTER_SETTER(PackedVector4Array, Vector4) + VARCALL_ARRAY_GETTER_SETTER(Array, Variant) static String func_PackedByteArray_get_string_from_ascii(PackedByteArray *p_instance) { String s; @@ -2354,8 +2360,8 @@ static void _register_variant_builtin_methods_array() { bind_method(Array, clear, sarray(), varray()); bind_method(Array, hash, sarray(), varray()); bind_method(Array, assign, sarray("array"), varray()); - bind_method(Array, get, sarray("index"), varray()); - bind_method(Array, set, sarray("index", "value"), varray()); + bind_function(Array, get, _VariantCall::func_Array_get, sarray("index"), varray()); + bind_functionnc(Array, set, _VariantCall::func_Array_set, sarray("index", "value"), varray()); bind_method(Array, push_back, sarray("value"), varray()); bind_method(Array, push_front, sarray("value"), varray()); bind_method(Array, append, sarray("value"), varray()); @@ -2400,7 +2406,7 @@ static void _register_variant_builtin_methods_array() { bind_method(Array, make_read_only, sarray(), varray()); bind_method(Array, is_read_only, sarray(), varray()); - /* Packed*Array get (see VARCALL_PACKED_GETTER macro) */ + /* Packed*Array get/set (see VARCALL_ARRAY_GETTER_SETTER macro) */ bind_function(PackedByteArray, get, _VariantCall::func_PackedByteArray_get, sarray("index"), varray()); bind_function(PackedColorArray, get, _VariantCall::func_PackedColorArray_get, sarray("index"), varray()); bind_function(PackedFloat32Array, get, _VariantCall::func_PackedFloat32Array_get, sarray("index"), varray()); @@ -2412,10 +2418,20 @@ static void _register_variant_builtin_methods_array() { bind_function(PackedVector3Array, get, _VariantCall::func_PackedVector3Array_get, sarray("index"), varray()); bind_function(PackedVector4Array, get, _VariantCall::func_PackedVector4Array_get, sarray("index"), varray()); + bind_functionnc(PackedByteArray, set, _VariantCall::func_PackedByteArray_set, sarray("index", "value"), varray()); + bind_functionnc(PackedColorArray, set, _VariantCall::func_PackedColorArray_set, sarray("index", "value"), varray()); + bind_functionnc(PackedFloat32Array, set, _VariantCall::func_PackedFloat32Array_set, sarray("index", "value"), varray()); + bind_functionnc(PackedFloat64Array, set, _VariantCall::func_PackedFloat64Array_set, sarray("index", "value"), varray()); + bind_functionnc(PackedInt32Array, set, _VariantCall::func_PackedInt32Array_set, sarray("index", "value"), varray()); + bind_functionnc(PackedInt64Array, set, _VariantCall::func_PackedInt64Array_set, sarray("index", "value"), varray()); + bind_functionnc(PackedStringArray, set, _VariantCall::func_PackedStringArray_set, sarray("index", "value"), varray()); + bind_functionnc(PackedVector2Array, set, _VariantCall::func_PackedVector2Array_set, sarray("index", "value"), varray()); + bind_functionnc(PackedVector3Array, set, _VariantCall::func_PackedVector3Array_set, sarray("index", "value"), varray()); + bind_functionnc(PackedVector4Array, set, _VariantCall::func_PackedVector4Array_set, sarray("index", "value"), varray()); + /* Byte Array */ bind_method(PackedByteArray, size, sarray(), varray()); bind_method(PackedByteArray, is_empty, sarray(), varray()); - bind_method(PackedByteArray, set, sarray("index", "value"), varray()); bind_method(PackedByteArray, push_back, sarray("value"), varray()); bind_method(PackedByteArray, append, sarray("value"), varray()); bind_method(PackedByteArray, append_array, sarray("array"), varray()); @@ -2481,7 +2497,6 @@ static void _register_variant_builtin_methods_array() { bind_method(PackedInt32Array, size, sarray(), varray()); bind_method(PackedInt32Array, is_empty, sarray(), varray()); - bind_method(PackedInt32Array, set, sarray("index", "value"), varray()); bind_method(PackedInt32Array, push_back, sarray("value"), varray()); bind_method(PackedInt32Array, append, sarray("value"), varray()); bind_method(PackedInt32Array, append_array, sarray("array"), varray()); @@ -2505,7 +2520,6 @@ static void _register_variant_builtin_methods_array() { bind_method(PackedInt64Array, size, sarray(), varray()); bind_method(PackedInt64Array, is_empty, sarray(), varray()); - bind_method(PackedInt64Array, set, sarray("index", "value"), varray()); bind_method(PackedInt64Array, push_back, sarray("value"), varray()); bind_method(PackedInt64Array, append, sarray("value"), varray()); bind_method(PackedInt64Array, append_array, sarray("array"), varray()); @@ -2529,7 +2543,6 @@ static void _register_variant_builtin_methods_array() { bind_method(PackedFloat32Array, size, sarray(), varray()); bind_method(PackedFloat32Array, is_empty, sarray(), varray()); - bind_method(PackedFloat32Array, set, sarray("index", "value"), varray()); bind_method(PackedFloat32Array, push_back, sarray("value"), varray()); bind_method(PackedFloat32Array, append, sarray("value"), varray()); bind_method(PackedFloat32Array, append_array, sarray("array"), varray()); @@ -2553,7 +2566,6 @@ static void _register_variant_builtin_methods_array() { bind_method(PackedFloat64Array, size, sarray(), varray()); bind_method(PackedFloat64Array, is_empty, sarray(), varray()); - bind_method(PackedFloat64Array, set, sarray("index", "value"), varray()); bind_method(PackedFloat64Array, push_back, sarray("value"), varray()); bind_method(PackedFloat64Array, append, sarray("value"), varray()); bind_method(PackedFloat64Array, append_array, sarray("array"), varray()); @@ -2577,7 +2589,6 @@ static void _register_variant_builtin_methods_array() { bind_method(PackedStringArray, size, sarray(), varray()); bind_method(PackedStringArray, is_empty, sarray(), varray()); - bind_method(PackedStringArray, set, sarray("index", "value"), varray()); bind_method(PackedStringArray, push_back, sarray("value"), varray()); bind_method(PackedStringArray, append, sarray("value"), varray()); bind_method(PackedStringArray, append_array, sarray("array"), varray()); @@ -2601,7 +2612,6 @@ static void _register_variant_builtin_methods_array() { bind_method(PackedVector2Array, size, sarray(), varray()); bind_method(PackedVector2Array, is_empty, sarray(), varray()); - bind_method(PackedVector2Array, set, sarray("index", "value"), varray()); bind_method(PackedVector2Array, push_back, sarray("value"), varray()); bind_method(PackedVector2Array, append, sarray("value"), varray()); bind_method(PackedVector2Array, append_array, sarray("array"), varray()); @@ -2625,7 +2635,6 @@ static void _register_variant_builtin_methods_array() { bind_method(PackedVector3Array, size, sarray(), varray()); bind_method(PackedVector3Array, is_empty, sarray(), varray()); - bind_method(PackedVector3Array, set, sarray("index", "value"), varray()); bind_method(PackedVector3Array, push_back, sarray("value"), varray()); bind_method(PackedVector3Array, append, sarray("value"), varray()); bind_method(PackedVector3Array, append_array, sarray("array"), varray()); @@ -2649,7 +2658,6 @@ static void _register_variant_builtin_methods_array() { bind_method(PackedColorArray, size, sarray(), varray()); bind_method(PackedColorArray, is_empty, sarray(), varray()); - bind_method(PackedColorArray, set, sarray("index", "value"), varray()); bind_method(PackedColorArray, push_back, sarray("value"), varray()); bind_method(PackedColorArray, append, sarray("value"), varray()); bind_method(PackedColorArray, append_array, sarray("array"), varray()); @@ -2673,7 +2681,6 @@ static void _register_variant_builtin_methods_array() { bind_method(PackedVector4Array, size, sarray(), varray()); bind_method(PackedVector4Array, is_empty, sarray(), varray()); - bind_method(PackedVector4Array, set, sarray("index", "value"), varray()); bind_method(PackedVector4Array, push_back, sarray("value"), varray()); bind_method(PackedVector4Array, append, sarray("value"), varray()); bind_method(PackedVector4Array, append_array, sarray("array"), varray()); diff --git a/engine/doc/classes/@GlobalScope.xml b/engine/doc/classes/@GlobalScope.xml index fb2dfa3d..38b1ec35 100644 --- a/engine/doc/classes/@GlobalScope.xml +++ b/engine/doc/classes/@GlobalScope.xml @@ -3072,6 +3072,9 @@ <constant name="METHOD_FLAG_OBJECT_CORE" value="64" enum="MethodFlags" is_bitfield="true"> Used internally. Allows to not dump core virtual methods (such as [method Object._notification]) to the JSON API. </constant> + <constant name="METHOD_FLAG_VIRTUAL_REQUIRED" value="128" enum="MethodFlags" is_bitfield="true"> + Flag for a virtual method that is required. + </constant> <constant name="METHOD_FLAGS_DEFAULT" value="1" enum="MethodFlags" is_bitfield="true"> Default method flags (normal). </constant> diff --git a/engine/doc/classes/Cubemap.xml b/engine/doc/classes/Cubemap.xml index c55adcff..2623fe4e 100644 --- a/engine/doc/classes/Cubemap.xml +++ b/engine/doc/classes/Cubemap.xml @@ -6,7 +6,8 @@ <description> A cubemap is made of 6 textures organized in layers. They are typically used for faking reflections in 3D rendering (see [ReflectionProbe]). It can be used to make an object look as if it's reflecting its surroundings. This usually delivers much better performance than other reflection methods. This resource is typically used as a uniform in custom shaders. Few core Godot methods make use of [Cubemap] resources. - To create such a texture file yourself, reimport your image files using the Godot Editor import presets. The expected image order is X+, X-, Y+, Y-, Z+, Z- (in Godot's coordinate system, so Y+ is "up" and Z- is "forward"). You can use one of the following templates as a base: + To create such a texture file yourself, reimport your image files using the Godot Editor import presets. To create a Cubemap from code, use [method ImageTextureLayered.create_from_images] on an instance of the Cubemap class. + The expected image order is X+, X-, Y+, Y-, Z+, Z- (in Godot's coordinate system, so Y+ is "up" and Z- is "forward"). You can use one of the following templates as a base: - [url=https://raw.githubusercontent.com/godotengine/godot-docs/master/tutorials/assets_pipeline/img/cubemap_template_2x3.webp]2×3 cubemap template (default layout option)[/url] - [url=https://raw.githubusercontent.com/godotengine/godot-docs/master/tutorials/assets_pipeline/img/cubemap_template_3x2.webp]3×2 cubemap template[/url] - [url=https://raw.githubusercontent.com/godotengine/godot-docs/master/tutorials/assets_pipeline/img/cubemap_template_1x6.webp]1×6 cubemap template[/url] diff --git a/engine/doc/classes/CubemapArray.xml b/engine/doc/classes/CubemapArray.xml index eae391ed..0a099a46 100644 --- a/engine/doc/classes/CubemapArray.xml +++ b/engine/doc/classes/CubemapArray.xml @@ -6,8 +6,15 @@ <description> [CubemapArray]s are made of an array of [Cubemap]s. Like [Cubemap]s, they are made of multiple textures, the amount of which must be divisible by 6 (one for each face of the cube). The primary benefit of [CubemapArray]s is that they can be accessed in shader code using a single texture reference. In other words, you can pass multiple [Cubemap]s into a shader using a single [CubemapArray]. [Cubemap]s are allocated in adjacent cache regions on the GPU, which makes [CubemapArray]s the most efficient way to store multiple [Cubemap]s. - [b]Note:[/b] Godot uses [CubemapArray]s internally for many effects, including the [Sky] if you set [member ProjectSettings.rendering/reflections/sky_reflections/texture_array_reflections] to [code]true[/code]. To create such a texture file yourself, reimport your image files using the import presets of the File System dock. - [b]Note:[/b] [CubemapArray] is not supported in the Compatibility renderer. + Godot uses [CubemapArray]s internally for many effects, including the [Sky] if you set [member ProjectSettings.rendering/reflections/sky_reflections/texture_array_reflections] to [code]true[/code]. + To create such a texture file yourself, reimport your image files using the Godot Editor import presets. To create a CubemapArray from code, use [method ImageTextureLayered.create_from_images] on an instance of the CubemapArray class. + The expected image order is X+, X-, Y+, Y-, Z+, Z- (in Godot's coordinate system, so Y+ is "up" and Z- is "forward"). You can use one of the following templates as a base: + - [url=https://raw.githubusercontent.com/godotengine/godot-docs/master/tutorials/assets_pipeline/img/cubemap_template_2x3.webp]2×3 cubemap template (default layout option)[/url] + - [url=https://raw.githubusercontent.com/godotengine/godot-docs/master/tutorials/assets_pipeline/img/cubemap_template_3x2.webp]3×2 cubemap template[/url] + - [url=https://raw.githubusercontent.com/godotengine/godot-docs/master/tutorials/assets_pipeline/img/cubemap_template_1x6.webp]1×6 cubemap template[/url] + - [url=https://raw.githubusercontent.com/godotengine/godot-docs/master/tutorials/assets_pipeline/img/cubemap_template_6x1.webp]6×1 cubemap template[/url] + Multiple layers are stacked on top of each other when using the default vertical import option (with the first layer at the top). Alternatively, you can choose an horizontal layout in the import options (with the first layer at the left). + [b]Note:[/b] [CubemapArray] is not supported in the Compatibility renderer due to graphics API limitations. </description> <tutorials> </tutorials> diff --git a/engine/doc/classes/EditorExportPlatform.xml b/engine/doc/classes/EditorExportPlatform.xml index 54bad2db..8a742775 100644 --- a/engine/doc/classes/EditorExportPlatform.xml +++ b/engine/doc/classes/EditorExportPlatform.xml @@ -74,7 +74,7 @@ Exports project files for the specified preset. This method can be used to implement custom export format, other than PCK and ZIP. One of the callbacks is called for each exported file. [param save_cb] is called for all exported files and have the following arguments: [code]file_path: String[/code], [code]file_data: PackedByteArray[/code], [code]file_index: int[/code], [code]file_count: int[/code], [code]encryption_include_filters: PackedStringArray[/code], [code]encryption_exclude_filters: PackedStringArray[/code], [code]encryption_key: PackedByteArray[/code]. [param shared_cb] is called for exported native shared/static libraries and have the following arguments: [code]file_path: String[/code], [code]tags: PackedStringArray[/code], [code]target_folder: String[/code]. - [b]Note:[/b] [code]file_index[/code] and [code]file_count[/code] are intended for progress tracking only and aren't necesserely unique and precise. + [b]Note:[/b] [code]file_index[/code] and [code]file_count[/code] are intended for progress tracking only and aren't necessarily unique and precise. </description> </method> <method name="export_zip"> @@ -259,7 +259,7 @@ Message type for error messages that must be addressed and fail the export. </constant> <constant name="DEBUG_FLAG_DUMB_CLIENT" value="1" enum="DebugFlags" is_bitfield="true"> - Flag is set if remotely debugged project is expected to use remote file system. If set, [method gen_export_flags] will add [code]--remove-fs[/code] and [code]--remote-fs-password[/code] (if password is set in the editor settings) command line arguments to the list. + Flag is set if remotely debugged project is expected to use remote file system. If set, [method gen_export_flags] will add [code]--remote-fs[/code] and [code]--remote-fs-password[/code] (if password is set in the editor settings) command line arguments to the list. </constant> <constant name="DEBUG_FLAG_REMOTE_DEBUG" value="2" enum="DebugFlags" is_bitfield="true"> Flag is set if remote debug is enabled. If set, [method gen_export_flags] will add [code]--remote-debug[/code] and [code]--breakpoints[/code] (if breakpoints are selected in the script editor or added by the plugin) command line arguments to the list. diff --git a/engine/doc/classes/EditorExportPreset.xml b/engine/doc/classes/EditorExportPreset.xml index 314f7434..7405dfb4 100644 --- a/engine/doc/classes/EditorExportPreset.xml +++ b/engine/doc/classes/EditorExportPreset.xml @@ -12,7 +12,7 @@ <method name="are_advanced_options_enabled" qualifiers="const"> <return type="bool" /> <description> - Returns [code]true[/code], is "Advanced" toggle is enabled in the export dialog. + Returns [code]true[/code] if "Advanced" toggle is enabled in the export dialog. </description> </method> <method name="get_custom_features" qualifiers="const"> @@ -24,7 +24,7 @@ <method name="get_customized_files" qualifiers="const"> <return type="Dictionary" /> <description> - Returns [Dictionary] of files selected in the "Resources" tab of the export dialog. Dictionary keys are file names and values are export mode - [code]"strip[/code], [code]"keep"[/code], or [code]"remove"[/code]. See also [method get_file_export_mode]. + Returns [Dictionary] of files selected in the "Resources" tab of the export dialog. Dictionary keys are file names and values are export mode - [code]"strip"[/code], [code]"keep"[/code], or [code]"remove"[/code]. See also [method get_file_export_mode]. </description> </method> <method name="get_customized_files_count" qualifiers="const"> diff --git a/engine/doc/classes/EditorSettings.xml b/engine/doc/classes/EditorSettings.xml index feb40553..de1af96a 100644 --- a/engine/doc/classes/EditorSettings.xml +++ b/engine/doc/classes/EditorSettings.xml @@ -1117,6 +1117,10 @@ <member name="network/tls/editor_tls_certificates" type="String" setter="" getter=""> The TLS certificate bundle to use for HTTP requests made within the editor (e.g. from the AssetLib tab). If left empty, the [url=https://github.com/godotengine/godot/blob/master/thirdparty/certs/ca-certificates.crt]included Mozilla certificate bundle[/url] will be used. </member> + <member name="network/tls/enable_tls_v1.3" type="bool" setter="" getter=""> + If [code]true[/code], enable TLSv1.3 negotiation. + [b]Note:[/b] Only supported when using Mbed TLS 3.0 or later (Linux distribution packages may be compiled against older system Mbed TLS packages), otherwise the maximum supported TLS version is always TLSv1.2. + </member> <member name="project_manager/default_renderer" type="String" setter="" getter=""> The renderer type that will be checked off by default when creating a new project. Accepted strings are "forward_plus", "mobile" or "gl_compatibility". </member> diff --git a/engine/doc/classes/EditorTranslationParserPlugin.xml b/engine/doc/classes/EditorTranslationParserPlugin.xml index dfa52609..1948b8a5 100644 --- a/engine/doc/classes/EditorTranslationParserPlugin.xml +++ b/engine/doc/classes/EditorTranslationParserPlugin.xml @@ -19,7 +19,7 @@ var text = file.get_as_text() var split_strs = text.split(",", false) for s in split_strs: - msgids.append(PackedStringArray([s])) + ret.append(PackedStringArray([s])) #print("Extracted string: " + s) return ret diff --git a/engine/doc/classes/ImageTextureLayered.xml b/engine/doc/classes/ImageTextureLayered.xml index e8d054bd..272b73c7 100644 --- a/engine/doc/classes/ImageTextureLayered.xml +++ b/engine/doc/classes/ImageTextureLayered.xml @@ -15,6 +15,39 @@ <description> Creates an [ImageTextureLayered] from an array of [Image]s. See [method Image.create] for the expected data format. The first image decides the width, height, image format and mipmapping setting. The other images [i]must[/i] have the same width, height, image format and mipmapping setting. Each [Image] represents one [code]layer[/code]. + [codeblock] + # Fill in an array of Images with different colors. + var images = [] + const LAYERS = 6 + for i in LAYERS: + var image = Image.create_empty(128, 128, false, Image.FORMAT_RGB8) + if i % 3 == 0: + image.fill(Color.RED) + elif i % 3 == 1: + image.fill(Color.GREEN) + else: + image.fill(Color.BLUE) + images.push_back(image) + + # Create and save a 2D texture array. The array of images must have at least 1 Image. + var texture_2d_array = Texture2DArray.new() + texture_2d_array.create_from_images(images) + ResourceSaver.save(texture_2d_array, "res://texture_2d_array.res", ResourceSaver.FLAG_COMPRESS) + + # Create and save a cubemap. The array of images must have exactly 6 Images. + # The cubemap's images are specified in this order: X+, X-, Y+, Y-, Z+, Z- + # (in Godot's coordinate system, so Y+ is "up" and Z- is "forward"). + var cubemap = Cubemap.new() + cubemap.create_from_images(images) + ResourceSaver.save(cubemap, "res://cubemap.res", ResourceSaver.FLAG_COMPRESS) + + # Create and save a cubemap array. The array of images must have a multiple of 6 Images. + # Each cubemap's images are specified in this order: X+, X-, Y+, Y-, Z+, Z- + # (in Godot's coordinate system, so Y+ is "up" and Z- is "forward"). + var cubemap_array = CubemapArray.new() + cubemap_array.create_from_images(images) + ResourceSaver.save(cubemap_array, "res://cubemap_array.res", ResourceSaver.FLAG_COMPRESS) + [/codeblock] </description> </method> <method name="update_layer"> diff --git a/engine/doc/classes/Input.xml b/engine/doc/classes/Input.xml index e0d8be91..ca54a44f 100644 --- a/engine/doc/classes/Input.xml +++ b/engine/doc/classes/Input.xml @@ -51,6 +51,7 @@ Returns the acceleration in m/s² of the device's accelerometer sensor, if the device has one. Otherwise, the method returns [constant Vector3.ZERO]. Note this method returns an empty [Vector3] when running from the editor even when your device has an accelerometer. You must export your project to a supported device to read values from the accelerometer. [b]Note:[/b] This method only works on Android and iOS. On other platforms, it always returns [constant Vector3.ZERO]. + [b]Note:[/b] For Android, [member ProjectSettings.input_devices/sensors/enable_accelerometer] must be enabled. </description> </method> <method name="get_action_raw_strength" qualifiers="const"> @@ -97,6 +98,7 @@ <description> Returns the gravity in m/s² of the device's accelerometer sensor, if the device has one. Otherwise, the method returns [constant Vector3.ZERO]. [b]Note:[/b] This method only works on Android and iOS. On other platforms, it always returns [constant Vector3.ZERO]. + [b]Note:[/b] For Android, [member ProjectSettings.input_devices/sensors/enable_gravity] must be enabled. </description> </method> <method name="get_gyroscope" qualifiers="const"> @@ -104,6 +106,7 @@ <description> Returns the rotation rate in rad/s around a device's X, Y, and Z axes of the gyroscope sensor, if the device has one. Otherwise, the method returns [constant Vector3.ZERO]. [b]Note:[/b] This method only works on Android and iOS. On other platforms, it always returns [constant Vector3.ZERO]. + [b]Note:[/b] For Android, [member ProjectSettings.input_devices/sensors/enable_gyroscope] must be enabled. </description> </method> <method name="get_joy_axis" qualifiers="const"> @@ -177,6 +180,7 @@ <description> Returns the magnetic field strength in micro-Tesla for all axes of the device's magnetometer sensor, if the device has one. Otherwise, the method returns [constant Vector3.ZERO]. [b]Note:[/b] This method only works on Android and iOS. On other platforms, it always returns [constant Vector3.ZERO]. + [b]Note:[/b] For Android, [member ProjectSettings.input_devices/sensors/enable_magnetometer] must be enabled. </description> </method> <method name="get_mouse_button_mask" qualifiers="const"> diff --git a/engine/doc/classes/Parallax2D.xml b/engine/doc/classes/Parallax2D.xml index cfd282a7..4c9722d2 100644 --- a/engine/doc/classes/Parallax2D.xml +++ b/engine/doc/classes/Parallax2D.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="Parallax2D" inherits="Node2D" experimental="This node is meant to replace [ParallaxBackground] and [ParallaxLayer]. The implementation may change in the future." xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd"> +<class name="Parallax2D" inherits="Node2D" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd"> <brief_description> A node used to create a parallax scrolling background. </brief_description> diff --git a/engine/doc/classes/ProjectSettings.xml b/engine/doc/classes/ProjectSettings.xml index c0c5bc04..1a29e200 100644 --- a/engine/doc/classes/ProjectSettings.xml +++ b/engine/doc/classes/ProjectSettings.xml @@ -2204,9 +2204,8 @@ The CA certificates bundle to use for TLS connections. If this is set to a non-empty value, this will [i]override[/i] Godot's default [url=https://github.com/godotengine/godot/blob/master/thirdparty/certs/ca-certificates.crt]Mozilla certificate bundle[/url]. If left empty, the default certificate bundle will be used. If in doubt, leave this setting empty. </member> - <member name="network/tls/enable_tls_v1.3" type="bool" setter="" getter="" default="false"> + <member name="network/tls/enable_tls_v1.3" type="bool" setter="" getter="" default="true"> If [code]true[/code], enable TLSv1.3 negotiation. - [b]Note:[/b] This is experimental, and may cause connections to fail in some cases (notably, if the remote server uses TLS handshake fragmentation). [b]Note:[/b] Only supported when using Mbed TLS 3.0 or later (Linux distribution packages may be compiled against older system Mbed TLS packages), otherwise the maximum supported TLS version is always TLSv1.2. </member> <member name="physics/2d/default_angular_damp" type="float" setter="" getter="" default="1.0"> @@ -2684,38 +2683,48 @@ <member name="rendering/environment/volumetric_fog/volume_size" type="int" setter="" getter="" default="64"> Base size used to determine size of froxel buffer in the camera X-axis and Y-axis. The final size is scaled by the aspect ratio of the screen, so actual values may differ from what is set. Set a larger size for more detailed fog, set a smaller size for better performance. </member> - <member name="rendering/gl_compatibility/driver" type="String" setter="" getter="" default=""auto""> - Sets the driver to be used by the renderer when using the Compatibility renderer. This property can not be edited directly, instead, set the driver using the platform-specific overrides. + <member name="rendering/gl_compatibility/driver" type="String" setter="" getter="" default=""opengl3""> + Sets the driver to be used by the renderer when using the Compatibility renderer. Editing this property has no effect in the default configuration, as first-party platforms each have platform-specific overrides. Use those overrides to configure the driver for each platform. + This can be overridden using the [code]--rendering-driver <driver>[/code] command line argument. Supported values are: - - [code]auto[/code], currently defaults to [code]opengl3[/code] on all platforms. - [code]opengl3[/code], OpenGL 3.3 on desktop platforms, OpenGL ES 3.0 on mobile platforms, WebGL 2.0 on web. - - [code]opengl3_angle[/code], OpenGL ES 3.0 over ANGLE compatibility layer, supported on macOS (over native OpenGL) and Windows (over Direct3D 11). + - [code]opengl3_angle[/code], OpenGL ES 3.0 using the ANGLE compatibility layer, supported on macOS (over native OpenGL) and Windows (over Direct3D 11). - [code]opengl3_es[/code], OpenGL ES 3.0 on Linux/BSD. [b]Note:[/b] The availability of these options depends on whether the engine was compiled with support for them (determined by SCons options [code]opengl3[/code] and [code]angle_libs[/code]). + [b]Note:[/b] The actual rendering driver may be automatically changed by the engine as a result of a fallback, or a user-specified command line argument. To get the actual rendering driver that is used at runtime, use [method RenderingServer.get_current_rendering_driver_name] instead of reading this project setting's value. </member> - <member name="rendering/gl_compatibility/driver.android" type="String" setter="" getter="" default=""auto""> + <member name="rendering/gl_compatibility/driver.android" type="String" setter="" getter="" default=""opengl3""> Android override for [member rendering/gl_compatibility/driver]. - The [code]auto[/code] setting is equivalent to [code]opengl3[/code] on this platform. + Only one option is supported: + - [code]opengl3[/code], OpenGL ES 3.0 from native drivers. </member> - <member name="rendering/gl_compatibility/driver.ios" type="String" setter="" getter="" default=""auto""> + <member name="rendering/gl_compatibility/driver.ios" type="String" setter="" getter="" default=""opengl3""> iOS override for [member rendering/gl_compatibility/driver]. - The [code]auto[/code] setting is equivalent to [code]opengl3[/code] on this platform. + Only one option is supported: + - [code]opengl3[/code], OpenGL ES 3.0 from native drivers. </member> - <member name="rendering/gl_compatibility/driver.linuxbsd" type="String" setter="" getter="" default=""auto""> + <member name="rendering/gl_compatibility/driver.linuxbsd" type="String" setter="" getter="" default=""opengl3""> LinuxBSD override for [member rendering/gl_compatibility/driver]. - The [code]auto[/code] setting is equivalent to [code]opengl3[/code] on this platform. [code]opengl3_es[/code] is available as an option, which is also used as a fallback on devices that don't support OpenGL 3.3. + Two options are supported: + - [code]opengl3[/code] (default), OpenGL 3.3 from native drivers. + - [code]opengl3_es[/code], OpenGL ES 3.0 from native drivers. If [member rendering/gl_compatibility/fallback_to_gles] is enabled, this is used as a fallback if OpenGL 3.3 is not supported. </member> - <member name="rendering/gl_compatibility/driver.macos" type="String" setter="" getter="" default=""auto""> + <member name="rendering/gl_compatibility/driver.macos" type="String" setter="" getter="" default=""opengl3""> macOS override for [member rendering/gl_compatibility/driver]. - The [code]auto[/code] setting is equivalent to [code]opengl3[/code] on this platform. [code]opengl3_angle[/code] is available as an option if ANGLE support was compiled in. + Two options are supported: + - [code]opengl3[/code] (default), OpenGL 3.3 from native drivers. If [member rendering/gl_compatibility/fallback_to_native] is enabled, this is used as a fallback if ANGLE is configured as the preferred driver but not supported. + - [code]opengl3_angle[/code], OpenGL ES 3.0 using the ANGLE compatibility layer over native OpenGL drivers. If [member rendering/gl_compatibility/fallback_to_angle] is enabled, this is used as a fallback if OpenGL 3.3 is not supported. </member> - <member name="rendering/gl_compatibility/driver.web" type="String" setter="" getter="" default=""auto""> + <member name="rendering/gl_compatibility/driver.web" type="String" setter="" getter="" default=""opengl3""> Web override for [member rendering/gl_compatibility/driver]. - The [code]auto[/code] setting is equivalent to [code]opengl3[/code] on this platform. + Only one option is supported: + - [code]opengl3[/code], WebGL 2.0. The underlying native API depends on the target OS, browser, and browser configuration. </member> - <member name="rendering/gl_compatibility/driver.windows" type="String" setter="" getter="" default=""auto""> + <member name="rendering/gl_compatibility/driver.windows" type="String" setter="" getter="" default=""opengl3""> Windows override for [member rendering/gl_compatibility/driver]. - The [code]auto[/code] setting is equivalent to [code]opengl3[/code] on this platform. [code]opengl3_angle[/code] is available as an option if ANGLE supported was compiled in. In such case, ANGLE is used preferentially on lower end devices with known problematic native OpenGL drivers (see [member rendering/gl_compatibility/force_angle_on_devices]). + Two options are supported: + - [code]opengl3[/code] (default), OpenGL 3.3 from native drivers. If [member rendering/gl_compatibility/fallback_to_native] is enabled, this is used as a fallback if ANGLE is configured as the preferred driver but not supported. + - [code]opengl3_angle[/code], OpenGL ES 3.0 using the ANGLE compatibility layer over native Direct3D 11 drivers. If [member rendering/gl_compatibility/fallback_to_angle] is enabled, this is used as a fallback if OpenGL 3.3 is not supported. By default, ANGLE is used as the default driver for some devices listed in [member rendering/gl_compatibility/force_angle_on_devices]. </member> <member name="rendering/gl_compatibility/fallback_to_angle" type="bool" setter="" getter="" default="true"> If [code]true[/code], the compatibility renderer will fall back to ANGLE if native OpenGL is not supported or the device is listed in [member rendering/gl_compatibility/force_angle_on_devices]. @@ -2981,43 +2990,49 @@ The number of entries in the sampler descriptors heap the Direct3D 12 rendering driver uses each frame, used for most rendering operations. Depending on the complexity of scenes, this value may be lowered or may need to be raised. </member> - <member name="rendering/rendering_device/driver" type="String" setter="" getter="" default=""auto""> - Sets the driver to be used by the renderer when using a RenderingDevice-based renderer like the Forward+ or Mobile renderers. This property can't be edited directly. Instead, set the driver using the platform-specific overrides. This can be overridden using the [code]--rendering-driver <driver>[/code] command line argument. + <member name="rendering/rendering_device/driver" type="String" setter="" getter="" default=""vulkan""> + Sets the driver to be used by the renderer when using a RenderingDevice-based renderer like the Forward+ or Mobile renderers. Editing this property has no effect in the default configuration, as first-party platforms each have platform-specific overrides. Use those overrides to configure the driver for each platform. + This can be overridden using the [code]--rendering-driver <driver>[/code] command line argument. Supported values are: - - [code]auto[/code], Metal on Apple Silicon Macs and iOS, Vulkan on other built-in platforms. On Windows, Direct3D 12 is the default if the engine was compiled without Vulkan support. - [code]metal[/code], Metal (supported on Apple Silicon Macs and iOS). - [code]vulkan[/code], Vulkan (supported on all desktop and mobile platforms). - [code]d3d12[/code], Direct3D 12 (supported on Windows). [b]Note:[/b] The availability of these options depends on whether the engine was compiled with support for them (determined by SCons options [code]vulkan[/code], [code]metal[/code], and [code]d3d12[/code]). + [b]Note:[/b] If a given platform has no registered drivers, it can fall back to the Compatibility renderer (OpenGL 3) if [member rendering/rendering_device/fallback_to_opengl3] is enabled. This fallback happens automatically for the Web platform regardless of that property. [b]Note:[/b] The actual rendering driver may be automatically changed by the engine as a result of a fallback, or a user-specified command line argument. To get the actual rendering driver that is used at runtime, use [method RenderingServer.get_current_rendering_driver_name] instead of reading this project setting's value. </member> - <member name="rendering/rendering_device/driver.android" type="String" setter="" getter="" default=""auto""> + <member name="rendering/rendering_device/driver.android" type="String" setter="" getter="" default=""vulkan""> Android override for [member rendering/rendering_device/driver]. - The [code]auto[/code] setting is equivalent to [code]vulkan[/code] on this platform. + Only one option is supported: + - [code]vulkan[/code], Vulkan from native drivers. [b]Note:[/b] If Vulkan was disabled at compile time, there is no alternative RenderingDevice driver. </member> - <member name="rendering/rendering_device/driver.ios" type="String" setter="" getter="" default=""auto""> + <member name="rendering/rendering_device/driver.ios" type="String" setter="" getter="" default=""metal""> iOS override for [member rendering/rendering_device/driver]. - The [code]auto[/code] setting is equivalent to [code]metal[/code] on this platform. - [b]Note:[/b] If Metal was disabled at compile time, the default becomes [code]vulkan[/code]. If both Metal and Vulkan were disabled at compile time, there is no alternative RenderingDevice driver. + Two options are supported: + - [code]metal[/code] (default), Metal from native drivers. + - [code]vulkan[/code], Vulkan over Metal via MoltenVK. </member> - <member name="rendering/rendering_device/driver.linuxbsd" type="String" setter="" getter="" default=""auto""> + <member name="rendering/rendering_device/driver.linuxbsd" type="String" setter="" getter="" default=""vulkan""> LinuxBSD override for [member rendering/rendering_device/driver]. - The [code]auto[/code] setting is equivalent to [code]vulkan[/code] on this platform. + Only one option is supported: + - [code]vulkan[/code], Vulkan from native drivers. [b]Note:[/b] If Vulkan was disabled at compile time, there is no alternative RenderingDevice driver. </member> - <member name="rendering/rendering_device/driver.macos" type="String" setter="" getter="" default=""auto""> + <member name="rendering/rendering_device/driver.macos" type="String" setter="" getter="" default=""metal""> macOS override for [member rendering/rendering_device/driver]. - The [code]auto[/code] setting is equivalent to [code]metal[/code] on Apple Silicon Macs, and [code]vulkan[/code] (MoltenVK) on Intel Macs. Metal isn't supported on Intel Macs, so even if setting [code]metal[/code] explicitly, it will fallback to Vulkan on Intel Macs. - [b]Note:[/b] If Metal was disabled at compile time, the default becomes [code]vulkan[/code] for both Apple Silicon and Intel Macs. If both Metal and Vulkan were disabled at compile time, there is no alternative RenderingDevice driver. + Two options are supported: + - [code]metal[/code] (default), Metal from native drivers, only supported on Apple Silicon Macs. On Intel Macs, it will automatically fall back to [code]vulkan[/code] as Metal support is not implemented. + - [code]vulkan[/code], Vulkan over Metal via MoltenVK, supported on both Apple Silicon and Intel Macs. </member> - <member name="rendering/rendering_device/driver.windows" type="String" setter="" getter="" default=""auto""> + <member name="rendering/rendering_device/driver.windows" type="String" setter="" getter="" default=""vulkan""> Windows override for [member rendering/rendering_device/driver]. - The [code]auto[/code] setting is equivalent to [code]vulkan[/code] on this platform. - [b]Note:[/b] If Vulkan was disabled at compile time, the default becomes [code]d3d12[/code]. If both Vulkan and Direct3D 12 were disabled at compile time, there is no alternative RenderingDevice driver. + Two options are supported: + - [code]vulkan[/code] (default), Vulkan from native drivers. If [member rendering/rendering_device/fallback_to_vulkan] is enabled, this is used as a fallback if Direct3D 12 is not supported. + - [code]d3d12[/code], Direct3D 12 from native drivers. If [member rendering/rendering_device/fallback_to_d3d12] is enabled, this is used as a fallback if Vulkan is not supported. </member> <member name="rendering/rendering_device/fallback_to_d3d12" type="bool" setter="" getter="" default="true"> - If [code]true[/code], the forward renderer will fall back to Direct3D 12 if Vulkan is not supported. + If [code]true[/code], the forward renderer will fall back to Direct3D 12 if Vulkan is not supported. The fallback is always attempted regardless of this setting if Vulkan driver support was disabled at compile time. [b]Note:[/b] This setting is implemented only on Windows. </member> <member name="rendering/rendering_device/fallback_to_opengl3" type="bool" setter="" getter="" default="true"> @@ -3025,7 +3040,7 @@ [b]Note:[/b] This setting is implemented only on Windows, Android, macOS, iOS, and Linux/X11. </member> <member name="rendering/rendering_device/fallback_to_vulkan" type="bool" setter="" getter="" default="true"> - If [code]true[/code], the forward renderer will fall back to Vulkan if Direct3D 12 (on Windows) or Metal (on macOS x86_64) are not supported. + If [code]true[/code], the forward renderer will fall back to Vulkan if Direct3D 12 (on Windows) or Metal (on macOS x86_64) are not supported. The fallback is always attempted regardless of this setting if Direct3D 12 (Windows) or Metal (macOS) driver support was disabled at compile time. [b]Note:[/b] This setting is implemented only on Windows and macOS. </member> <member name="rendering/rendering_device/pipeline_cache/enable" type="bool" setter="" getter="" default="true"> diff --git a/engine/doc/classes/RenderingServer.xml b/engine/doc/classes/RenderingServer.xml index d4a1a67d..7ccaf880 100644 --- a/engine/doc/classes/RenderingServer.xml +++ b/engine/doc/classes/RenderingServer.xml @@ -3725,7 +3725,7 @@ <param index="7" name="layered_type" type="int" enum="RenderingServer.TextureLayeredType" default="0" /> <description> Creates a texture based on a native handle that was created outside of Godot's renderer. - [b]Note:[/b] If using the rendering device renderer, using [method RenderingDevice.texture_create_from_extension] rather than this method is recommended. It will give you much more control over the texture's format and usage. + [b]Note:[/b] If using only the rendering device renderer, it's recommend to use [method RenderingDevice.texture_create_from_extension] together with [method RenderingServer.texture_rd_create], rather than this method. It will give you much more control over the texture's format and usage. </description> </method> <method name="texture_get_format" qualifiers="const"> diff --git a/engine/doc/classes/Texture2DArray.xml b/engine/doc/classes/Texture2DArray.xml index f1c76d14..b5f8b683 100644 --- a/engine/doc/classes/Texture2DArray.xml +++ b/engine/doc/classes/Texture2DArray.xml @@ -6,7 +6,7 @@ <description> A Texture2DArray is different from a Texture3D: The Texture2DArray does not support trilinear interpolation between the [Image]s, i.e. no blending. See also [Cubemap] and [CubemapArray], which are texture arrays with specialized cubemap functions. A Texture2DArray is also different from an [AtlasTexture]: In a Texture2DArray, all images are treated separately. In an atlas, the regions (i.e. the single images) can be of different sizes. Furthermore, you usually need to add a padding around the regions, to prevent accidental UV mapping to more than one region. The same goes for mipmapping: Mipmap chains are handled separately for each layer. In an atlas, the slicing has to be done manually in the fragment shader. - To create such a texture file yourself, reimport your image files using the Godot Editor import presets. + To create such a texture file yourself, reimport your image files using the Godot Editor import presets. To create a Texture2DArray from code, use [method ImageTextureLayered.create_from_images] on an instance of the Texture2DArray class. </description> <tutorials> </tutorials> diff --git a/engine/doc/translations/de.po b/engine/doc/translations/de.po index 73156c23..f6e45430 100644 --- a/engine/doc/translations/de.po +++ b/engine/doc/translations/de.po @@ -102,12 +102,13 @@ # tct123 <tct1234@protonmail.com>, 2024. # Daniel Schmid <daniel.ds.schmid@gmail.com>, 2025. # Michael Domanek <michael.domanek2@gmail.com>, 2025. +# Keschler <keschler0@protonmail.com>, 2025. msgid "" msgstr "" "Project-Id-Version: Godot Engine class reference\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" -"PO-Revision-Date: 2025-01-25 20:47+0000\n" -"Last-Translator: Michael Domanek <michael.domanek2@gmail.com>\n" +"PO-Revision-Date: 2025-02-26 15:06+0000\n" +"Last-Translator: Keschler <keschler0@protonmail.com>\n" "Language-Team: German <https://hosted.weblate.org/projects/godot-engine/godot-" "class-reference/de/>\n" "Language: de\n" @@ -115,7 +116,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 5.10-dev\n" +"X-Generator: Weblate 5.10.2-dev\n" msgid "All classes" msgstr "Alle Klassen" @@ -370,9 +371,23 @@ msgstr "" msgid "Built-in GDScript constants, functions, and annotations." msgstr "Built-in-GDScript-Konstanten, -Funktionen und -Annotationen." +msgid "" +"A list of utility functions and annotations accessible from any script " +"written in GDScript.\n" +"For the list of global functions and constants that can be accessed in any " +"scripting language, see [@GlobalScope]." +msgstr "" +"Eine Liste von Hilfsfunktionen und Anmerkungen, die von jedem in GDScript " +"geschriebenen Skript aus zugänglich sind.\n" +"Für die Liste der globalen Funktionen und Konstanten, auf die in jeder " +"Skriptsprache zugegriffen werden kann, siehe [@GlobalScope]." + msgid "GDScript exports" msgstr "GDScript-Exporte" +msgid "Use [method Color.from_rgba8] instead." +msgstr "Verwende stattdessen [method @GlobalScope.type_convert]." + msgid "" "Returns a [Color] constructed from red ([param r8]), green ([param g8]), blue " "([param b8]), and optionally alpha ([param a8]) integer channels, each " @@ -488,6 +503,13 @@ msgstr "" "print(b is Array) # Gibt false aus\n" "[/codeblock]" +msgid "" +"Consider using [method JSON.to_native] or [method Object.get_property_list] " +"instead." +msgstr "" +"Verwende stattdessen [Methode JSON.to_native] oder [Methode Object." +"get_property_list]." + msgid "" "Converts a [param dictionary] (created with [method inst_to_dict]) back to an " "Object instance. Can be useful for deserializing." @@ -546,6 +568,13 @@ msgstr "" "[b]Hinweis:[/b] Der Aufruf dieser Funktion aus einem [Thread] wird nicht " "unterstützt. In diesem Fall wird ein leeres Array zurückgegeben." +msgid "" +"Consider using [method JSON.from_native] or [method Object.get_property_list] " +"instead." +msgstr "" +"Verwende stattdessen [Methode JSON.from_native] oder [Methode Object." +"get_property_list]." + msgid "" "Returns a [Resource] from the filesystem located at the absolute [param " "path]. Unless it's already referenced elsewhere (such as in another script or " @@ -11892,33 +11921,6 @@ msgstr "" "schneller generiert, was zu einer höheren CPU-Auslastung führt und das Risiko " "von Audio-Cracks erhöht, wenn die CPU nicht mithalten kann." -msgid "" -"The sample rate to use (in Hz). Higher values are more demanding for the CPU " -"to generate, but result in better quality.\n" -"In games, common sample rates in use are [code]11025[/code], [code]16000[/" -"code], [code]22050[/code], [code]32000[/code], [code]44100[/code], and " -"[code]48000[/code].\n" -"According to the [url=https://en.wikipedia.org/wiki/" -"Nyquist%E2%80%93Shannon_sampling_theorem]Nyquist-Shannon sampling theorem[/" -"url], there is no quality difference to human hearing when going past 40,000 " -"Hz (since most humans can only hear up to ~20,000 Hz, often less). If you are " -"generating lower-pitched sounds such as voices, lower sample rates such as " -"[code]32000[/code] or [code]22050[/code] may be usable with no loss in " -"quality." -msgstr "" -"Die zu verwendende Abtastrate (in Hz). Höhere Werte stellen höhere " -"Anforderungen an die CPU, führen aber zu einer besseren Qualität.\n" -"In Spielen werden häufig folgende Abtastraten verwendet: [code]11025[/code], " -"[code]16000[/code], [code]22050[/code], [code]32000[/code], [code]44100[/" -"code] und [code]48000[/code].\n" -"Nach dem [url=https://en.wikipedia.org/wiki/" -"Nyquist%E2%80%93Shannon_sampling_theorem]Nyquist-Shannon-Sampling-Theorem[/" -"url] gibt es keinen Qualitätsunterschied zum menschlichen Gehör, wenn es über " -"40.000 Hz hinausgeht (da die meisten Menschen nur bis ~20.000 Hz hören " -"können, oft auch weniger). Wenn Sie tiefe Töne wie Stimmen erzeugen, können " -"niedrigere Abtastraten wie [code]32000[/code] oder [code]22050[/code] ohne " -"Qualitätsverluste verwendet werden." - msgid "Plays back audio generated using [AudioStreamGenerator]." msgstr "Gibt die mit [AudioStreamGenerator] erzeugten Audiodaten wieder." @@ -13416,29 +13418,6 @@ msgstr "" "Wenn [code]true[/code], wird das Objekt unabhängig von der Entfernung gleich " "groß gemacht." -msgid "" -"If [code]true[/code], enables the vertex grow setting. This can be used to " -"create mesh-based outlines using a second material pass and its [member " -"cull_mode] set to [constant CULL_FRONT]. See also [member grow_amount].\n" -"[b]Note:[/b] Vertex growth cannot create new vertices, which means that " -"visible gaps may occur in sharp corners. This can be alleviated by designing " -"the mesh to use smooth normals exclusively using [url=https://wiki.polycount." -"com/wiki/Face_weighted_normals]face weighted normals[/url] in the 3D " -"authoring software. In this case, grow will be able to join every outline " -"together, just like in the original mesh." -msgstr "" -"Wenn [code]true[/code], wird die Einstellung des Vertex-Wachstums aktiviert. " -"Dies kann verwendet werden, um netzbasierte Umrisse mit einem zweiten " -"Materialpass zu erstellen und dessen [member cull_mode] auf [member " -"CULL_FRONT] eingestellt. Siehe auch [member grow_amount].\n" -"[b]Anmerkung:[/b] Vertex-Wachstum kann keine neuen Vertices erzeugen, was " -"bedeutet, dass sichtbare Lücken in scharfen Ecken auftreten können. Dies kann " -"dadurch gemildert werden, dass das Mesh ausschließlich mit [url=https://wiki." -"polycount.com/wiki/Face_weighted_normals]face gewichteten Normalen[/url] in " -"der 3D-Autorisierungssoftware verwendet wird. In diesem Fall wird das " -"Wachstum in der Lage sein, jeden Umriss zusammenzufügen, genau wie im " -"ursprünglichen Mesh." - msgid "" "Grows object vertices in the direction of their normals. Only effective if " "[member grow] is [code]true[/code]." diff --git a/engine/doc/translations/es.po b/engine/doc/translations/es.po index 06ae0fe9..27b8d3b8 100644 --- a/engine/doc/translations/es.po +++ b/engine/doc/translations/es.po @@ -94,12 +94,13 @@ # Valentben <valentinostoby@hotmail.com>, 2024. # Alexander Diego <diegocho2005@gmail.com>, 2024. # José Andrés Urdaneta <urdaneta7834@gmail.com>, 2025. +# LuisGFlorez <lgfgcoder@gmail.com>, 2025. msgid "" msgstr "" "Project-Id-Version: Godot Engine class reference\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" -"PO-Revision-Date: 2025-02-06 23:02+0000\n" -"Last-Translator: José Andrés Urdaneta <urdaneta7834@gmail.com>\n" +"PO-Revision-Date: 2025-03-02 21:09+0000\n" +"Last-Translator: LuisGFlorez <lgfgcoder@gmail.com>\n" "Language-Team: Spanish <https://hosted.weblate.org/projects/godot-engine/" "godot-class-reference/es/>\n" "Language: es\n" @@ -107,7 +108,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 5.10-dev\n" +"X-Generator: Weblate 5.10.3-dev\n" msgid "All classes" msgstr "Todas las clases" @@ -14628,20 +14629,6 @@ msgstr "" "Si [code]true[/code], envía eventos de entrada táctil al hacer clic o " "arrastrar el ratón." -msgid "" -"The locale to fall back to if a translation isn't available in a given " -"language. If left empty, [code]en[/code] (English) will be used." -msgstr "" -"El lugar al que recurrir si una traducción no está disponible en un idioma " -"determinado. Si se deja vacío, se usará [code]en[/code] (inglés)." - -msgid "" -"If non-empty, this locale will be used when running the project from the " -"editor." -msgstr "" -"Si no está vacío, este lugar se utilizará cuando se ejecute el proyecto desde " -"el editor." - msgid "" "Godot uses a message queue to defer some function calls. If you run out of " "space on it (you will see an error), you can increase the size here." @@ -18363,7 +18350,256 @@ msgid "Memory allocation error." msgstr "Error de asignación de memoria." msgid "The most important data type in Godot." -msgstr "El tipo de datos más importante de Godot." +msgstr "El tipo de dato más importante de Godot." + +msgid "" +"In computer programming, a Variant class is a class that is designed to store " +"a variety of other types. Dynamic programming languages like PHP, Lua, " +"JavaScript and GDScript like to use them to store variables' data on the " +"backend. With these Variants, properties are able to change value types " +"freely.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var foo = 2 # foo is dynamically an integer\n" +"foo = \"Now foo is a string!\"\n" +"foo = RefCounted.new() # foo is an Object\n" +"var bar: int = 2 # bar is a statically typed integer.\n" +"# bar = \"Uh oh! I can't make statically typed variables become a different " +"type!\"\n" +"[/gdscript]\n" +"[csharp]\n" +"// C# is statically typed. Once a variable has a type it cannot be changed. " +"You can use the `var` keyword to let the compiler infer the type " +"automatically.\n" +"var foo = 2; // Foo is a 32-bit integer (int). Be cautious, integers in " +"GDScript are 64-bit and the direct C# equivalent is `long`.\n" +"// foo = \"foo was and will always be an integer. It cannot be turned into a " +"string!\";\n" +"var boo = \"Boo is a string!\";\n" +"var ref = new RefCounted(); // var is especially useful when used together " +"with a constructor.\n" +"\n" +"// Godot also provides a Variant type that works like a union of all the " +"Variant-compatible types.\n" +"Variant fooVar = 2; // fooVar is dynamically an integer (stored as a `long` " +"in the Variant type).\n" +"fooVar = \"Now fooVar is a string!\";\n" +"fooVar = new RefCounted(); // fooVar is a GodotObject.\n" +"[/csharp]\n" +"[/codeblocks]\n" +"Godot tracks all scripting API variables within Variants. Without even " +"realizing it, you use Variants all the time. When a particular language " +"enforces its own rules for keeping data typed, then that language is applying " +"its own custom logic over the base Variant scripting API.\n" +"- GDScript automatically wrap values in them. It keeps all data in plain " +"Variants by default and then optionally enforces custom static typing rules " +"on variable types.\n" +"- C# is statically typed, but uses its own implementation of the Variant type " +"in place of Godot's [Variant] class when it needs to represent a dynamic " +"value. C# Variant can be assigned any compatible type implicitly but " +"converting requires an explicit cast.\n" +"The global [method @GlobalScope.typeof] function returns the enumerated value " +"of the Variant type stored in the current variable (see [enum Variant." +"Type]).\n" +"[codeblocks]\n" +"[gdscript]\n" +"var foo = 2\n" +"match typeof(foo):\n" +" TYPE_NIL:\n" +" print(\"foo is null\")\n" +" TYPE_INT:\n" +" print(\"foo is an integer\")\n" +" TYPE_OBJECT:\n" +" # Note that Objects are their own special category.\n" +" # To get the name of the underlying Object type, you need the " +"`get_class()` method.\n" +" print(\"foo is a(n) %s\" % foo.get_class()) # inject the class name " +"into a formatted string.\n" +" # Note that this does not get the script's `class_name` global " +"identifier.\n" +" # If the `class_name` is needed, use `foo.get_script()." +"get_global_name()` instead.\n" +"[/gdscript]\n" +"[csharp]\n" +"Variant foo = 2;\n" +"switch (foo.VariantType)\n" +"{\n" +" case Variant.Type.Nil:\n" +" GD.Print(\"foo is null\");\n" +" break;\n" +" case Variant.Type.Int:\n" +" GD.Print(\"foo is an integer\");\n" +" break;\n" +" case Variant.Type.Object:\n" +" // Note that Objects are their own special category.\n" +" // You can convert a Variant to a GodotObject and use reflection to " +"get its name.\n" +" GD.Print($\"foo is a(n) {foo.AsGodotObject().GetType().Name}\");\n" +" break;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"A Variant takes up only 20 bytes and can store almost any engine datatype " +"inside of it. Variants are rarely used to hold information for long periods " +"of time. Instead, they are used mainly for communication, editing, " +"serialization and moving data around.\n" +"Godot has specifically invested in making its Variant class as flexible as " +"possible; so much so that it is used for a multitude of operations to " +"facilitate communication between all of Godot's systems.\n" +"A Variant:\n" +"- Can store almost any datatype.\n" +"- Can perform operations between many variants. GDScript uses Variant as its " +"atomic/native datatype.\n" +"- Can be hashed, so it can be compared quickly to other variants.\n" +"- Can be used to convert safely between datatypes.\n" +"- Can be used to abstract calling methods and their arguments. Godot exports " +"all its functions through variants.\n" +"- Can be used to defer calls or move data between threads.\n" +"- Can be serialized as binary and stored to disk, or transferred via " +"network.\n" +"- Can be serialized to text and use it for printing values and editable " +"settings.\n" +"- Can work as an exported property, so the editor can edit it universally.\n" +"- Can be used for dictionaries, arrays, parsers, etc.\n" +"[b]Containers (Array and Dictionary):[/b] Both are implemented using " +"variants. A [Dictionary] can match any datatype used as key to any other " +"datatype. An [Array] just holds an array of Variants. Of course, a Variant " +"can also hold a [Dictionary] and an [Array] inside, making it even more " +"flexible.\n" +"Modifications to a container will modify all references to it. A [Mutex] " +"should be created to lock it if multi-threaded access is desired." +msgstr "" +"En programación de computadoras, una clase Variant (variante en español) es " +"una clase que está diseñada para almacenar una variedad de otros tipos. A los " +"lenguajes de programación dinámicos como PHP, Lua, JavaScript y GDScript les " +"gusta usarlos para almacenar datos de variables en el backend. Con estas " +"variantes, las propiedades son capaces de cambiar los tipos de valores " +"libremente.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var foo = 2 # foo es dinámicamente un entero\n" +"foo = \"¡Ahora foo es una string!\"\n" +"foo = Reference.new() # foo es un objeto\n" +"var bar: int = 2 # bar es estáticamente un entero.\n" +"# bar = \"¡Uh oh, no puedo hacer que las variables estáticamente escritas se " +"conviertan en un tipo diferente!\"\n" +"[/gdscript]\n" +"[csharp]\n" +"// C# Es de tipado estático. Una vez que una variable tiene un tipo de datos " +"establecido, este no podrá ser cambiado más adelante. Puedes utilizar la " +"palabra clave `var` para dejar que el compilador deduzca el tipo de datos de " +"la variable automáticamente.\n" +"var foo = 2; // foo es un entero (int) de 32 bits. Ten cuidado, los números " +"enteros en GDScript son de 64 bits y su equivalente directo en C# es `long`.\n" +"// foo = \"foo fue y siempre será un entero, por lo tanto no se puede " +"convertir en una string\";\n" +"var boo = \"¡boo es una string!\";\n" +"var referencia = new RefCounted(); //`var` es especialmente útil cuando se " +"utiliza junto con un constructor.\n" +"\n" +"// Godot también provee un tipo de variante que funciona como una unión para " +"todos los tipos de datos que son compatibles con Variant.\n" +"Variant mivariable = 2; // mivariable es dinámicamente un entero (almacenado " +"como un `long` dentro de la variante).\n" +"mivariable = \"¡Ahora mivariable es una string!\";\n" +"mivariable = new RefCounted(); // mivariable es un objeto de tipo " +"GodotObject.\n" +"[/csharp]\n" +"[/codeblocks]\n" +"Godot hace un seguimiento de todas las variables de la API de scripting " +"dentro de variantes. Sin siquiera darte cuenta, utilizas las variantes todo " +"el tiempo. Cuando un determinado lenguaje aplica sus propias reglas para " +"mantener los datos escritos, entonces ese lenguaje está aplicando su propia " +"lógica personalizada sobre las bases de API de scripting basada en " +"variantes.\n" +"- GDScript envuelve automáticamente los valores en ellos. Mantiene todos los " +"datos de las variables en variantes simples de forma predeterminada y luego, " +"opcionalmente, aplica reglas de escritura estática personalizadas en los " +"tipos de variables.\n" +"- C# es de tipado estático, pero utiliza su propia implementación del tipo " +"Variant en lugar de utilizar la clase [Variant] de Godot cuando se necesita " +"representar un valor dinámico. A una variante en C# se le puede asignar " +"implícitamente cualquier tipo compatible, pero convertirla requiere un cast " +"específico.\n" +"La función global [method @GDScript.typeof] devuelve el valor enumerado del " +"tipo de variante almacenado en la variable actual (véase [enum Variant." +"Type]).\n" +"[codeblocks]\n" +"[gdscript]\n" +"var foo = 2\n" +"match typeof(foo):\n" +" TYPE_NIL:\n" +" print(\"foo es nulo (null)\")\n" +" TYPE_INTEGER:\n" +" print(\"foo es un entero\")\n" +" TYPE_OBJECT:\n" +" # Tenga en cuenta que los objetos son su propia categoría especial.\n" +" # Para obtener el nombre del tipo de objeto subyacente, necesitas el " +"método `get_class()`.\n" +" print(\"foo es un(a) %s\" % foo.get_class()) # Inyecta el nombre de " +"la clase en una string formateada.\n" +" # Ten presente que el método `get_class()` no toma en cuenta el valor " +"del identificador global`class_name` de un script.\n" +" # Si necesitas obtener ese valor debes usar `foo.get_script()." +"get_global_name()`\n" +"[/gdscript]\n" +"[csharp]\n" +"Variant foo = 2;\n" +"switch (foo.VariantType)\n" +"{\n" +" case Variant.Type.Nil:\n" +" GD.Print(\"foo es nulo (null)\");\n" +" break;\n" +" case Variant.Type.Int:\n" +" GD.Print(\"foo es un entero\");\n" +" break;\n" +" case Variant.Type.Object:\n" +" // Tenga en cuenta que los objetos son su propia categoría especial.\n" +" // Puedes convertir una variante a un objeto de tipo GodotObject y " +"usar la reflección para obtener su nombre.\n" +" GD.Print($\"foo es un(a) {foo.AsGodotObject().GetType().Name}\");\n" +" break;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"Una variante sólo ocupa 20 bytes y puede almacenar casi cualquier tipo de " +"dato del motor en su interior. Las variantes rara vez se utilizan para " +"mantener información durante largos períodos de tiempo. En cambio, se " +"utilizan principalmente para la comunicación, la edición, la serialización y " +"el desplazamiento de datos.\n" +"Godot ha invertido específicamente en hacer que su clase Variant sea lo más " +"flexible posible; tanto es así que se utiliza para una multitud de " +"operaciones para facilitar la comunicación entre todos los sistemas de " +"Godot.\n" +"Una variante:\n" +"- Puede almacenar casi cualquier tipo de datos.\n" +"- Puede realizar operaciones entre muchas variantes. GDScript utiliza " +"[Variant] como su tipo de dato atómico/nativo.\n" +"- Puede ser \"hashed\", por lo que puede ser comparado rápidamente con otras " +"variantes.\n" +"- Puede ser usado para convertir con seguridad entre tipos de datos.\n" +"- Puede ser usado para abstraer métodos que están siendo llamados y sus " +"argumentos. Godot exporta todas sus funciones a través de variantes.\n" +"- Puede utilizarse para diferir llamadas o mover datos entre hilos.\n" +"- Puede ser serializado como binario y ser almacenado en el disco, o " +"transferido a través de la red.\n" +"- Puede ser serializado como texto y ser usado para imprimir valores y " +"configuraciones editables.\n" +"- Puede funcionar como una propiedad exportada, de modo que el editor puede " +"editarla globalmente.\n" +"- Puede ser usado para diccionarios, arrays, parsers, etc.\n" +"[b]Los contenedores (Array y Dictionary):[/b] Ambos están implementados " +"utilizando variantes. Un [Dictionary] puede hacer coincidir cualquier tipo de " +"datos utilizado como clave con cualquier otro tipo de datos. Un [Array] sólo " +"contiene una arreglo de variantes. Por supuesto, una variante también puede " +"contener un [Dictionary] y un [Array] en su interior, lo que lo hace aún más " +"flexible.\n" +"Las modificaciones a un contenedor modificarán todas las referencias que " +"apuntan hacia él. Debe crearse un [Mutex] para bloquearla si desea un acceso " +"multihilo." + +msgid "Variant class introduction" +msgstr "Introducción a la clase Variant" msgid "" "Returns a new vector with all components in absolute values (i.e. positive)." diff --git a/engine/doc/translations/fr.po b/engine/doc/translations/fr.po index 11720842..8f526aaa 100644 --- a/engine/doc/translations/fr.po +++ b/engine/doc/translations/fr.po @@ -5238,33 +5238,6 @@ msgstr "" "important du CPU et plus de risques de craquements audio si le CPU n'est pas " "assez puissant." -msgid "" -"The sample rate to use (in Hz). Higher values are more demanding for the CPU " -"to generate, but result in better quality.\n" -"In games, common sample rates in use are [code]11025[/code], [code]16000[/" -"code], [code]22050[/code], [code]32000[/code], [code]44100[/code], and " -"[code]48000[/code].\n" -"According to the [url=https://en.wikipedia.org/wiki/" -"Nyquist%E2%80%93Shannon_sampling_theorem]Nyquist-Shannon sampling theorem[/" -"url], there is no quality difference to human hearing when going past 40,000 " -"Hz (since most humans can only hear up to ~20,000 Hz, often less). If you are " -"generating lower-pitched sounds such as voices, lower sample rates such as " -"[code]32000[/code] or [code]22050[/code] may be usable with no loss in " -"quality." -msgstr "" -"Le taux d'échantillonnage à utiliser (en Hz). Les valeurs plus élevées " -"demandent plus de puissant de CPU, mais cela produit une meilleure qualité.\n" -"Dans les jeux, les taux d'échantillonnage courants sont [code]11025[/code], " -"[code]16000[/code], [code]22050[/code], [code]32000[/code], [code]44100[/" -"code], et [code]48000[/code].\n" -"D'après le [url=https://fr.wikipedia.org/wiki/" -"Th%C3%A9or%C3%A8me_d'%C3%A9chantillonnage]Théorème d'échantillonnage[/url], " -"il n'y a aucune différence de qualité pour l'audition humaine au-delà de 40 " -"000 Hz (puisque la plupart des humains ne peuvent entendre que jusqu'à 20 000 " -"Hz, et souvent bien moins). Si vous générez des sons inférieurs tels que les " -"voix, des taux d'échantillonnage inférieurs tels que [code]32000[/code] ou " -"[code]22050[/code] peuvent être utilisables sans perte de qualité audible." - msgid "Plays back audio generated using [AudioStreamGenerator]." msgstr "Joue les sons générés avec [AudioStreamGenerator]." @@ -13327,7 +13300,12 @@ msgid "" "var interface = XRServer.find_interface(\"Native mobile\")\n" "if interface and interface.initialize():\n" " get_viewport().use_xr = true\n" -"[/codeblock]" +"[/codeblock]\n" +"[b]Note:[/b] For Android, [member ProjectSettings.input_devices/sensors/" +"enable_accelerometer], [member ProjectSettings.input_devices/sensors/" +"enable_gravity], [member ProjectSettings.input_devices/sensors/" +"enable_gyroscope] and [member ProjectSettings.input_devices/sensors/" +"enable_magnetometer] must be enabled." msgstr "" "Il s'agit d'une implémentation VR mobile générique où vous devez fournir des " "détails sur le téléphone et le casque utilisés. Il ne repose sur aucune " @@ -13342,7 +13320,12 @@ msgstr "" "var interface = XRServer.find_interface(\"Native mobile\")\n" "if interface and interface.initialize():\n" " get_viewport().use_xr = true\n" -"[/codeblock]" +"[/codeblock]\n" +"[b]Note :[/b] Pour Android, [member ProjectSettings.input_devices/sensors/" +"enable_accelerometer], [member ProjectSettings.input_devices/sensors/" +"enable_gravity], [member ProjectSettings.input_devices/sensors/" +"enable_gyroscope] et [member ProjectSettings.input_devices/sensors/" +"enable_magnetometer] doivent être activés." msgid "" "The distance between the display and the lenses inside of the device in " @@ -15975,20 +15958,6 @@ msgstr "" "Si [code]true[/code], envoie des événements d'entrée tactile lorsque vous " "cliquez ou faites glisser la souris." -msgid "" -"The locale to fall back to if a translation isn't available in a given " -"language. If left empty, [code]en[/code] (English) will be used." -msgstr "" -"Le langage de repli si une traduction n'est pas disponible dans une langue " -"donnée. Si laissé vide, [code]en[/code] (anglais) sera utilisé." - -msgid "" -"If non-empty, this locale will be used when running the project from the " -"editor." -msgstr "" -"Si n'est pas vide, ce langage sera utilisé lors du lancement du projet depuis " -"l'éditeur." - msgid "" "Optional name for the 2D navigation layer 1. If left empty, the layer will " "display as \"Layer 1\"." diff --git a/engine/doc/translations/ga.po b/engine/doc/translations/ga.po index 9f13246c..7fc4e8af 100644 --- a/engine/doc/translations/ga.po +++ b/engine/doc/translations/ga.po @@ -14656,34 +14656,6 @@ msgstr "" "tapúla, rud a fhágann go n-úsáidtear LAP méadaithe agus go mbeidh riosca níos " "mó ann maidir le scoilteadh fuaime mura féidir leis an LAP coinneáil suas." -msgid "" -"The sample rate to use (in Hz). Higher values are more demanding for the CPU " -"to generate, but result in better quality.\n" -"In games, common sample rates in use are [code]11025[/code], [code]16000[/" -"code], [code]22050[/code], [code]32000[/code], [code]44100[/code], and " -"[code]48000[/code].\n" -"According to the [url=https://en.wikipedia.org/wiki/" -"Nyquist%E2%80%93Shannon_sampling_theorem]Nyquist-Shannon sampling theorem[/" -"url], there is no quality difference to human hearing when going past 40,000 " -"Hz (since most humans can only hear up to ~20,000 Hz, often less). If you are " -"generating lower-pitched sounds such as voices, lower sample rates such as " -"[code]32000[/code] or [code]22050[/code] may be usable with no loss in " -"quality." -msgstr "" -"An ráta samplach le húsáid (i Hz). Tá níos mó éileamh ar an LAP luachanna " -"níos airde a ghiniúint, ach bíonn cáilíocht níos fearr mar thoradh orthu.\n" -"I gcluichí, is iad na rátaí samplacha coitianta atá in úsáid ná [code]11025[/" -"code], [code]16000[/code], [code]22050[/code], [code]32000[/code], " -"[code]44100[/code], agus [code]48000[/code].\n" -"De réir [url=https://en.wikipedia.org/wiki/" -"Nyquist%E2%80%93Shannon_sampling_theorem]teoirim samplála Nyquist-Shannon[/" -"url], níl aon difríocht cháilíochta ann d’éisteacht an duine nuair a théann " -"sé thar 40,000 Hz ( mar ní féidir leis an gcuid is mó daoine ach suas le " -"~20,000 Hz a chloisteáil, níos lú go minic). Má tá tú ag giniúint fuaimeanna " -"níos ísle ar nós guthanna, d’fhéadfadh go mbeadh rátaí samplaí níos ísle mar " -"[code]32000[/code] nó [code]22050[/code] inúsáidte gan aon chaillteanas " -"cáilíochta." - msgid "Plays back audio generated using [AudioStreamGenerator]." msgstr "Seinn ar ais fuaime ginte ag baint úsáide as [AudioStreamGenerator]." @@ -16799,29 +16771,6 @@ msgstr "" "Más [code]true[/code], rindreáiltear an réad ar an méid céanna beag beann ar " "achar." -msgid "" -"If [code]true[/code], enables the vertex grow setting. This can be used to " -"create mesh-based outlines using a second material pass and its [member " -"cull_mode] set to [constant CULL_FRONT]. See also [member grow_amount].\n" -"[b]Note:[/b] Vertex growth cannot create new vertices, which means that " -"visible gaps may occur in sharp corners. This can be alleviated by designing " -"the mesh to use smooth normals exclusively using [url=https://wiki.polycount." -"com/wiki/Face_weighted_normals]face weighted normals[/url] in the 3D " -"authoring software. In this case, grow will be able to join every outline " -"together, just like in the original mesh." -msgstr "" -"Más rud é [code]true[/code], cumasaítear socrú fáis an rinn. Is féidir é seo " -"a úsáid chun imlíne mogalra-bhunaithe a chruthú trí úsáid a bhaint as dara " -"pas ábhair agus a [member culll_mode] socraithe go [CULL_FRONT leanúnach]. " -"Féach freisin [ball grow_amount].\n" -"[b]Nóta:[/b] Ní féidir le fás rinn nua a chruthú, rud a chiallaíonn go " -"bhféadfadh bearnaí infheicthe a bheith i gcoirnéil ghéar. Is féidir é seo a " -"mhaolú trí mhogalra a dhearadh chun normanna míne a úsáid go heisiach ag " -"baint úsáide as [url=https://wiki.polycount.com/wiki/" -"Face_weighted_normals]normáltacht ualaithe aghaidh[/url] sna bogearraí " -"údaraithe 3D. Sa chás seo, beidh fás in ann gach imlíne a cheangal le chéile, " -"díreach mar a bhí sa mhogalra bunaidh." - msgid "" "Grows object vertices in the direction of their normals. Only effective if " "[member grow] is [code]true[/code]." @@ -21345,31 +21294,6 @@ msgstr "" "[b]Nóta:[/b] níl éifeacht ag [leithead param] ach amháin má tá " "[code]bréagach[/code] ar [param líonta]." -msgid "" -"Draws a dashed line from a 2D point to another, with a given color and width. " -"See also [method draw_multiline] and [method draw_polyline].\n" -"If [param width] is negative, then a two-point primitives will be drawn " -"instead of a four-point ones. This means that when the CanvasItem is scaled, " -"the line parts will remain thin. If this behavior is not desired, then pass a " -"positive [param width] like [code]1.0[/code].\n" -"If [param antialiased] is [code]true[/code], half transparent \"feathers\" " -"will be attached to the boundary, making outlines smooth.\n" -"[b]Note:[/b] [param antialiased] is only effective if [param width] is " -"greater than [code]0.0[/code]." -msgstr "" -"Tarraingíonn sé líne bhriste ó phointe 2T go pointe eile, le dath agus " -"leithead tugtha. Féach freisin [method draw_multiline] agus [method " -"draw_polyline].\n" -"Má tá [leithead param] diúltach, ansin tarraingeofar primitives dhá phointe " -"in ionad cinn ceithre phointe. Ciallaíonn sé seo, nuair a bheidh an " -"CanvasItem scálaithe, fanfaidh na codanna líne tanaí. Mura bhfuil an t-iompar " -"seo inmhianaithe, ansin pas a fháil dearfach [param leithead] cosúil le " -"[code]1.0[/code].\n" -"Má tá [param antialiased] [code]true[/code], beidh “cleití” leath " -"thrédhearcacha ceangailte den teorainn, ag déanamh imlíne míne.\n" -"[b]Nóta:[/b] níl éifeacht ag [param antialiased] ach amháin má tá [leithead " -"an pharam] níos mó ná [code]0.0[/code]." - msgid "" "After submitting all animations slices via [method draw_animation_slice], " "this function can be used to revert drawing to its default state (all " @@ -21412,23 +21336,6 @@ msgstr "" "dst.a = modhnú.a + dst.a* (1.0 - modhnú.a);\n" "[/codeblock]" -msgid "" -"Draws a line from a 2D point to another, with a given color and width. It can " -"be optionally antialiased. See also [method draw_multiline] and [method " -"draw_polyline].\n" -"If [param width] is negative, then a two-point primitive will be drawn " -"instead of a four-point one. This means that when the CanvasItem is scaled, " -"the line will remain thin. If this behavior is not desired, then pass a " -"positive [param width] like [code]1.0[/code]." -msgstr "" -"Tarraingíonn sé líne ó phointe 2T go pointe eile, le dath agus leithead " -"tugtha. Is féidir é a antialiased go roghnach. Féach freisin [method " -"draw_multiline] agus [method draw_polyline].\n" -"Má tá [leithead an pharame] diúltach, tarraingeofar primitive dhá phointe in " -"ionad pointe ceithre phointe. Ciallaíonn sé seo, nuair a bheidh an CanvasItem " -"scálaithe, fanfaidh an líne tanaí. Mura bhfuil an t-iompar seo inmhianaithe, " -"ansin pas a fháil dearfach [param leithead] cosúil le [code]1.0[/code]." - msgid "" "Draws a [Mesh] in 2D, using the provided texture. See [MeshInstance2D] for " "related documentation." @@ -28674,9 +28581,6 @@ msgstr "" "eile in áit [method Viewport.gui_is_drag_successful].\n" "Is fearr é a úsáid le [nód seasmhach.NOTIFICATION_DRAG_END]." -msgid "Returns [code]true[/code] if layout is right-to-left." -msgstr "Filleann sé [code]true[/code] má tá an leagan amach ó dheas go clé." - msgid "Give up the focus. No other control will be able to receive input." msgstr "Tabhair suas an fócas. Ní bheidh aon rialú eile in ann ionchur a fháil." @@ -29160,13 +29064,6 @@ msgstr "" "athraítear a íosmhéid ingearach le bheith níos mó ná a mhéid reatha, toisc go " "gcaithfidh an rialú a bheith ar a laghad ar a laghad i gcónaí." -msgid "" -"Controls layout direction and text writing direction. Right-to-left layouts " -"are necessary for certain languages (e.g. Arabic and Hebrew)." -msgstr "" -"Rialaíonn sé treo leagan amach agus treo scríobh téacs. Tá leagan amach ó " -"dheas go clé riachtanach do theangacha áirithe (m.sh. Araibis agus Eabhrais)." - msgid "" "If [code]true[/code], automatically converts code line numbers, list indices, " "[SpinBox] and [ProgressBar] values from the Western Arabic (0..9) to the " @@ -29709,9 +29606,6 @@ msgstr "" "ardáin deisce/gréasáin nuair atá [member ProjectSettings.input_devices/" "pointing/emulate_touch_from_mouse] cumasaithe." -msgid "Sent when control layout direction is changed." -msgstr "Seolta nuair a athraítear treo leagan amach an rialaithe." - msgid "" "Show the system's arrow mouse cursor when the user hovers the node. Use with " "[member mouse_default_cursor_shape]." @@ -30120,9 +30014,6 @@ msgstr "" "Treo leagan amach uathoibríoch, arna chinneadh ó threoir leagan amach an " "rialaithe tuismitheora." -msgid "Automatic layout direction, determined from the current locale." -msgstr "Treo leagan amach uathoibríoch, arna chinneadh ón locale reatha." - msgid "Left-to-right layout direction." msgstr "Treo leagan amach ó chlé go deas." @@ -52849,14 +52740,6 @@ msgstr "" "An t-uaslíon céimeanna le haghaidh machnaimh scáileáin-spás. Tá luachanna " "níos airde níos moille." -msgid "" -"The default exposure used for tonemapping. Higher values result in a brighter " -"image. See also [member tonemap_white]." -msgstr "" -"An nochtadh réamhshocraithe a úsáidtear le haghaidh tonmapála. Bíonn íomhá " -"níos gile mar thoradh ar luachanna níos airde. Féach freisin [ball " -"tonemap_white]." - msgid "" "The tonemapping mode to use. Tonemapping is the process that \"converts\" HDR " "values to be suitable for rendering on an LDR display. (Godot doesn't support " @@ -53135,39 +53018,6 @@ msgstr "" msgid "Use the [Sky] for reflections regardless of what the background is." msgstr "Bain úsáid as an [Spéir] le haghaidh machnaimh is cuma cad é an cúlra." -msgid "" -"Linear tonemapper operator. Reads the linear data and passes it on " -"unmodified. This can cause bright lighting to look blown out, with noticeable " -"clipping in the output colors." -msgstr "" -"Oibreoir tonmapper líneach. Léann sé na sonraí líneacha agus cuireann sé ar " -"aghaidh iad gan mhodhnú. D'fhéadfadh sé seo a bheith ina chúis le soilsiú " -"geal breathnú séidte amach, le clipping suntasach sna dathanna aschuir." - -msgid "" -"Filmic tonemapper operator. This avoids clipping bright highlights, with a " -"resulting image that usually looks more vivid than [constant " -"TONE_MAPPER_REINHARDT]." -msgstr "" -"Oibreoir tonmapper scannán. Seachnaíonn sé seo buaicphointí geala a " -"ghearradh, le híomhá mar thoradh air a bhíonn níos beoga ná " -"[TONE_MAPPER_REINHARDT leanúnach]." - -msgid "" -"Use the Academy Color Encoding System tonemapper. ACES is slightly more " -"expensive than other options, but it handles bright lighting in a more " -"realistic fashion by desaturating it as it becomes brighter. ACES typically " -"has a more contrasted output compared to [constant TONE_MAPPER_REINHARDT] and " -"[constant TONE_MAPPER_FILMIC].\n" -"[b]Note:[/b] This tonemapping operator is called \"ACES Fitted\" in Godot 3.x." -msgstr "" -"Úsáid tonmapper Córas Ionchódaithe Dath an Acadaimh. Tá ACES beagán níos " -"costasaí ná roghanna eile, ach láimhseálann sé soilsiú geal ar bhealach níos " -"réadúla trína dhísháithiú de réir mar a éiríonn sé níos gile. Is gnách go " -"mbíonn aschur níos codarsnachta ag ACES i gcomparáid le " -"[TONE_MAPPER_REINHARDT leanúnach] agus [TONE_MAPPER_FILMIC leanúnach].\n" -"[b]Nóta:[/b] Tugtar \"ACES Fitted\" ar an oibreoir tonmapála seo in Godot 3.x." - msgid "" "Additive glow blending mode. Mostly used for particles, glows (bloom), lens " "flare, bright sources." @@ -61993,31 +61843,6 @@ msgstr "" msgid "Reads one chunk from the response." msgstr "Léann sé smután amháin ón bhfreagra." -msgid "" -"Sends a raw request to the connected host.\n" -"The URL parameter is usually just the part after the host, so for " -"[code]https://somehost.com/index.php[/code], it is [code]/index.php[/code]. " -"When sending requests to an HTTP proxy server, it should be an absolute URL. " -"For [constant HTTPClient.METHOD_OPTIONS] requests, [code]*[/code] is also " -"allowed. For [constant HTTPClient.METHOD_CONNECT] requests, it should be the " -"authority component ([code]host:port[/code]).\n" -"Headers are HTTP request headers. For available HTTP methods, see [enum " -"Method].\n" -"Sends the body data raw, as a byte array and does not encode it in any way." -msgstr "" -"Seoltar iarratas amh chuig an óstach nasctha.\n" -"Is gnách gurb é an paraiméadar URL díreach an chuid tar éis an óstaigh, mar " -"sin le haghaidh [code] https://somehost.com/index.php[/code], is é [code]/" -"index.php[/code] é. Agus iarratais á seoladh chuig seachfhreastalaí HTTP, ba " -"cheart gur URL iomlán é. Le haghaidh [iarratas leanúnach HTTPClient." -"METHOD_OPTIONS], ceadaítear [code]*[/code] freisin. I gcás [iarratas " -"leanúnach HTTPClient.METHOD_CONNECT], ba cheart go mbeadh sé mar chomhpháirt " -"údaráis ([code]óstach:port[/code]).\n" -"Is ceanntásca iarratais HTTP iad na ceanntásca. Le haghaidh modhanna HTTP atá " -"ar fáil, féach [Modh enum].\n" -"Seolann an corp sonraí amh, mar eagar beart agus ní ionchódaíonn sé ar " -"bhealach ar bith." - msgid "" "Sets the proxy server for HTTP requests.\n" "The proxy server is unset if [param host] is empty or [param port] is -1." @@ -64295,20 +64120,6 @@ msgstr "" "rochtain a fháil ar na cineálacha acmhainní díorthaithe. Féach freisin " "[Uigeacht3D]." -msgid "" -"Creates an [ImageTextureLayered] from an array of [Image]s. See [method Image." -"create] for the expected data format. The first image decides the width, " -"height, image format and mipmapping setting. The other images [i]must[/i] " -"have the same width, height, image format and mipmapping setting.\n" -"Each [Image] represents one [code]layer[/code]." -msgstr "" -"Cruthaíonn [ImageTextureLayered] ó raon [Image]s. Féach ar [method Image." -"create] don fhormáid sonraí a bhfuiltear ag súil léi. Socraíonn an chéad " -"íomhá leithead, airde, formáid na híomhá agus an suíomh mipmapping. Caithfidh " -"an leithead céanna, an airde, an fhormáid íomhá agus an socrú mipmapping a " -"bheith ag na híomhánna eile [i][/i].\n" -"Léiríonn gach [Íomhá] [code]ciseal[/code] amháin." - msgid "" "Replaces the existing [Image] data at the given [param layer] with this new " "image.\n" @@ -64613,25 +64424,6 @@ msgstr "" "is féidir é seo a bheith úsáideach i gcásanna ardchéime nuair is mian leat " "smacht beacht a bheith agat ar uainiú láimhseáil imeachtaí." -msgid "" -"Returns the acceleration in m/s² of the device's accelerometer sensor, if the " -"device has one. Otherwise, the method returns [constant Vector3.ZERO].\n" -"Note this method returns an empty [Vector3] when running from the editor even " -"when your device has an accelerometer. You must export your project to a " -"supported device to read values from the accelerometer.\n" -"[b]Note:[/b] This method only works on Android and iOS. On other platforms, " -"it always returns [constant Vector3.ZERO]." -msgstr "" -"Filleann sé an luasghéarú ina m/s² de bhraiteoir méadair luasghéaraithe na " -"feiste, má tá ceann ag an ngléas. Seachas sin, filleann an modh [Vector3.ZERO " -"seasmhach].\n" -"Tabhair faoi deara go dtugann an modh seo [Veicteoir3] folamh ar ais agus tú " -"ag rith ón eagarthóir fiú nuair a bhíonn méadair luasghéaraithe ag do ghléas. " -"Ní mór duit do thionscadal a easpórtáil chuig gléas tacaithe chun luachanna a " -"léamh ón méadair luasghéaraithe.\n" -"[b]Nóta:[/b] Ní oibríonn an modh seo ach ar Android agus iOS. Ar ardáin eile, " -"filleann sé i gcónaí [Vector3.ZERO tairiseach]." - msgid "" "Returns a value between 0 and 1 representing the raw intensity of the given " "action, ignoring the action's deadzone. In most cases, you should use [method " @@ -64690,31 +64482,6 @@ msgstr "" "Seoltar ar ais an cruth cúrsóra atá sannta faoi láthair (féach [enum " "CursorShape])." -msgid "" -"Returns the gravity in m/s² of the device's accelerometer sensor, if the " -"device has one. Otherwise, the method returns [constant Vector3.ZERO].\n" -"[b]Note:[/b] This method only works on Android and iOS. On other platforms, " -"it always returns [constant Vector3.ZERO]." -msgstr "" -"Filleann an domhantarraingt ina m/s² de bhraiteoir méadair luasghéaraithe na " -"feiste, má tá ceann ag an bhfeiste. Seachas sin, filleann an modh [Vector3." -"ZERO seasmhach].\n" -"[b]Nóta:[/b] Ní oibríonn an modh seo ach ar Android agus iOS. Ar ardáin eile, " -"filleann sé i gcónaí [Vector3.ZERO tairiseach]." - -msgid "" -"Returns the rotation rate in rad/s around a device's X, Y, and Z axes of the " -"gyroscope sensor, if the device has one. Otherwise, the method returns " -"[constant Vector3.ZERO].\n" -"[b]Note:[/b] This method only works on Android and iOS. On other platforms, " -"it always returns [constant Vector3.ZERO]." -msgstr "" -"Filleann sé an ráta rothlaithe ina rad/s timpeall ar aiseanna X, Y, agus Z an " -"bhraiteora gíreascóip, má tá ceann ag an bhfeiste. Seachas sin, filleann an " -"modh [Vector3.ZERO seasmhach].\n" -"[b]Nóta:[/b] Ní oibríonn an modh seo ach ar Android agus iOS. Ar ardáin eile, " -"filleann sé i gcónaí [Vector3.ZERO tairiseach]." - msgid "" "Returns the current value of the joypad axis at given index (see [enum " "JoyAxis])." @@ -64762,19 +64529,6 @@ msgstr "" "ghiodam a sholáthar, ní ríomhtar treoluas luiche ach amháin gach 0.1s. Mar " "sin, beidh moill ar ghluaiseachtaí luiche ag treoluas luiche." -msgid "" -"Returns the magnetic field strength in micro-Tesla for all axes of the " -"device's magnetometer sensor, if the device has one. Otherwise, the method " -"returns [constant Vector3.ZERO].\n" -"[b]Note:[/b] This method only works on Android and iOS. On other platforms, " -"it always returns [constant Vector3.ZERO]." -msgstr "" -"Tugann sé ar ais neart an réimse mhaighnéadaigh i micrea-Tesla do gach " -"aiseanna de bhraiteoir maighnéadiméadar an fheiste, má tá ceann ag an " -"bhfeiste. Seachas sin, filleann an modh [Vector3.ZERO seasmhach].\n" -"[b]Nóta:[/b] Ní oibríonn an modh seo ach ar Android agus iOS. Ar ardáin eile, " -"filleann sé i gcónaí [Vector3.ZERO tairiseach]." - msgid "" "Returns mouse buttons as a bitmask. If multiple mouse buttons are pressed at " "the same time, the bits are added together. Equivalent to [method " @@ -73172,36 +72926,6 @@ msgstr "" msgid "Generic mobile VR implementation." msgstr "Cur i bhfeidhm cineálach VR soghluaiste." -msgid "" -"This is a generic mobile VR implementation where you need to provide details " -"about the phone and HMD used. It does not rely on any existing framework. " -"This is the most basic interface we have. For the best effect, you need a " -"mobile phone with a gyroscope and accelerometer.\n" -"Note that even though there is no positional tracking, the camera will assume " -"the headset is at a height of 1.85 meters. You can change this by setting " -"[member eye_height].\n" -"You can initialize this interface as follows:\n" -"[codeblock]\n" -"var interface = XRServer.find_interface(\"Native mobile\")\n" -"if interface and interface.initialize():\n" -" get_viewport().use_xr = true\n" -"[/codeblock]" -msgstr "" -"Is cur i bhfeidhm cineálach VR soghluaiste é seo nuair is gá duit sonraí a " -"sholáthar faoin bhfón agus faoin HMD a úsáidtear. Níl sé ag brath ar aon " -"chreat atá ann cheana féin. Is é seo an comhéadan is bunúsaí atá againn. Chun " -"an éifeacht is fearr a fháil, is gá duit fón póca le gyroscope agus méadair " -"luasghéaraithe.\n" -"Tabhair faoi deara, cé nach bhfuil aon rianú suímh ann, glacfaidh an ceamara " -"leis go bhfuil an headset ag airde 1.85 méadar. Is féidir leat é seo a athrú " -"trí [member eye_height] a shocrú.\n" -"Is féidir leat an comhéadan seo a thúsú mar seo a leanas:\n" -"[codeblock]\n" -"var interface = XRServer.find_interface(\"fón póca dúchais\")\n" -"má tá comhéadan agus interface.initialize():\n" -" get_viewport().use_xr = fíor\n" -"[/codeblock]" - msgid "" "The distance between the display and the lenses inside of the device in " "centimeters." @@ -89622,10 +89346,6 @@ msgstr "" "le deireadh an eagar (i.e. [code]arr.slice(0, -2)[/code] ina gearrshaol le " "haghaidh [code]arr .slice(0, arr.size() - 2)[/code])." -msgid "Returns a [PackedByteArray] with each string encoded as bytes." -msgstr "" -"Filleann sé [PackedByteArray] le gach teaghrán ionchódaithe mar bhearta." - msgid "" "Returns a new [PackedStringArray] with contents of [param right] added at the " "end of this array. For better performance, consider using [method " @@ -90560,13 +90280,6 @@ msgstr "" msgid "[Texture2D] to be applied to the [PanoramaSkyMaterial]." msgstr "[Uigeacht2D] le cur i bhfeidhm ar an [PanoramaSkyMaterial]." -msgid "" -"This node is meant to replace [ParallaxBackground] and [ParallaxLayer]. The " -"implementation may change in the future." -msgstr "" -"Tá sé i gceist an nód seo a chur in ionad [ParallaxBackground] agus " -"[ParallaxLayer]. Féadfaidh an cur i bhfeidhm athrú sa todhchaí." - msgid "A node used to create a parallax scrolling background." msgstr "Nód a úsáidtear chun cúlra scrollaithe parallax a chruthú." @@ -102232,13 +101945,6 @@ msgstr "" "déanaí, déan cinnte go bhfuil cead ag apps rochtain a fháil ar an micreafón i " "socruithe príobháideachais an OS." -msgid "" -"The mixing rate used for audio (in Hz). In general, it's better to not touch " -"this and leave it to the host operating system." -msgstr "" -"An ráta measctha a úsáidtear le haghaidh fuaime (i Hz). Go ginearálta, tá sé " -"níos fearr gan teagmháil seo agus é a fhágáil ar an gcóras oibriúcháin óstach." - msgid "" "Safer override for [member audio/driver/mix_rate] in the Web platform. Here " "[code]0[/code] means \"let the browser choose\" (since some browsers do not " @@ -105263,23 +104969,6 @@ msgstr "" "tionscadail d'aois atá ag brath ar an sean-loighic, gan athruithe ar an " "script." -msgid "" -"Specifies the tablet driver to use. If left empty, the default driver will be " -"used.\n" -"[b]Note:[/b] The driver in use can be overridden at runtime via the [code]--" -"tablet-driver[/code] [url=$DOCS_URL/tutorials/editor/command_line_tutorial." -"html]command line argument[/url]." -msgstr "" -"Sonraíonn sé an tiománaí táibléid le húsáid. Má fhágtar folamh é, úsáidfear " -"an tiománaí réamhshocraithe.\n" -"[b]Nóta:[/b] Is féidir an tiománaí atá in úsáid a shárú ag am rite tríd an " -"[code] --tablet-driver[/code] [url=$DOCS_URL/tutorials/editor/" -"command_line_tutorial.html]argóint líne ordaithe[ /url]." - -msgid "Override for [member input_devices/pen_tablet/driver] on Windows." -msgstr "" -"Sáraigh le haghaidh [member input_devices/pen_tablet/driver] ar Windows." - msgid "" "If [code]true[/code], long press events on an Android touchscreen are " "transformed into right click events." @@ -105317,39 +105006,6 @@ msgstr "" "Más [code]true[/code], seolann sé imeachtaí ionchuir tadhaill nuair a " "chliceálann tú nó nuair a tharraingíonn tú an luch." -msgid "" -"The locale to fall back to if a translation isn't available in a given " -"language. If left empty, [code]en[/code] (English) will be used." -msgstr "" -"An locale le titim ar ais chuige mura bhfuil aistriúchán ar fáil i dteanga ar " -"leith. Má fhágtar folamh é, úsáidfear [code]en[/code] (Béarla)." - -msgid "" -"If [code]true[/code], text server break iteration rule sets, dictionaries and " -"other optional data are included in the exported project.\n" -"[b]Note:[/b] \"ICU / HarfBuzz / Graphite\" text server data includes " -"dictionaries for Burmese, Chinese, Japanese, Khmer, Lao and Thai as well as " -"Unicode Standard Annex #29 and Unicode Standard Annex #14 word and line " -"breaking rules. Data is about 4 MB large.\n" -"[b]Note:[/b] \"Fallback\" text server does not use additional data." -msgstr "" -"Más [code]true[/code], tá tacair rialacha atriallta briseadh an fhreastalaí " -"téacs, foclóirí agus sonraí roghnacha eile san áireamh sa tionscadal " -"easpórtáilte.\n" -"[b]Nóta:[/b] Áirítear le sonraí freastalaí téacs \"ICU / HarfBuzz / " -"Graphite\" foclóirí le haghaidh Burmais, Sínise, Seapáinise, Ciméiris, Lao " -"agus Téalainnis chomh maith le Focal agus líne Unicode Standard Iarscríbhinn " -"#29 agus Unicode Standard Annex #14 rialacha a bhriseadh. Tá na sonraí thart " -"ar 4 MB mór.\n" -"[b]Nóta:[/b] Ní úsáideann freastalaí téacs \"Tilleadh ar ais\" sonraí breise." - -msgid "" -"If non-empty, this locale will be used when running the project from the " -"editor." -msgstr "" -"Mura bhfuil sé folamh, bainfear úsáid as an locale seo agus an tionscadal á " -"rith ón eagarthóir." - msgid "" "Double vowels in strings during pseudolocalization to simulate the " "lengthening of text due to localization." @@ -105366,18 +105022,6 @@ msgstr "" "[code]0.3[/code] don chuid is mó de na críocha praiticiúla, agus méadóidh sé " "fad gach téad 30%." -msgid "" -"If [code]true[/code], emulate bidirectional (right-to-left) text when " -"pseudolocalization is enabled. This can be used to spot issues with RTL " -"layout and UI mirroring that will crop up if the project is localized to RTL " -"languages such as Arabic or Hebrew." -msgstr "" -"Más [code]true[/code], aithris a dhéanamh ar théacs déthreoch (ar dheis go " -"clé) nuair a bhíonn pseudólúchán cumasaithe. Is féidir é seo a úsáid chun " -"fadhbanna a aithint maidir le leagan amach RTL agus scáthánú Chomhéadain a " -"thiocfaidh chun cinn má tá an tionscadal logánta do theangacha RTL ar nós " -"Araibis nó Eabhrais." - msgid "" "Replace all characters in the string with [code]*[/code]. Useful for finding " "non-localizable strings." @@ -105425,11 +105069,6 @@ msgstr "" "tionscadal. Chun pseudolocalization a scoránaigh ag am rite, úsáid [member " "TranslationServer.pseudolocalization_enabled] ina ionad sin." -msgid "" -"Force layout direction and text writing direction to RTL for all controls." -msgstr "" -"Fórsa treo leagan amach agus treo scríobh téacs chuig RTL do gach rialú." - msgid "" "If [code]true[/code], root node will use [constant Node." "AUTO_TRANSLATE_MODE_ALWAYS], otherwise [constant Node." @@ -105448,37 +105087,6 @@ msgstr "" msgid "Root node default layout direction." msgstr "Fréamh nód treo leagan amach réamhshocraithe." -msgid "" -"Specifies the [TextServer] to use. If left empty, the default will be used.\n" -"\"ICU / HarfBuzz / Graphite\" is the most advanced text driver, supporting " -"right-to-left typesetting and complex scripts (for languages like Arabic, " -"Hebrew, etc.). The \"Fallback\" text driver does not support right-to-left " -"typesetting and complex scripts.\n" -"[b]Note:[/b] The driver in use can be overridden at runtime via the [code]--" -"text-driver[/code] [url=$DOCS_URL/tutorials/editor/command_line_tutorial." -"html]command line argument[/url].\n" -"[b]Note:[/b] There is an additional [code]Dummy[/code] text driver available, " -"which disables all text rendering and font-related functionality. This driver " -"is not listed in the project settings, but it can be enabled when running the " -"editor or project using the [code]--text-driver Dummy[/code] [url=$DOCS_URL/" -"tutorials/editor/command_line_tutorial.html]command line argument[/url]." -msgstr "" -"Sonraítear an [TextServer] le húsáid. Má fhágtar folamh é, úsáidfear an " -"réamhshocrú.\n" -"Is é \"ICU / HarfBuzz / Graphite\" an tiománaí téacs is airde chun cinn, a " -"thacaíonn le clóchuradóireacht dheis go clé agus scripteanna casta (do " -"theangacha mar Araibis, Eabhrais, etc.). Ní thacaíonn an tiománaí téacs " -"\"Fallback\" le clóchuradóireacht dheis go clé agus le scripteanna casta.\n" -"[b]Nóta:[/b] Is féidir an tiománaí atá in úsáid a shárú ag am rite tríd an " -"[code] --text-driver[/code] [url=$DOCS_URL/tutorials/editor/" -"command_line_tutorial.html]argóint líne ordaithe[ /url].\n" -"[b]Nóta:[/b] Tá tiománaí téacs breise [code] Caochadán[/code] ar fáil, a " -"dhíchumasaíonn gach rindreáil téacs agus feidhmiúlacht a bhaineann le cló. " -"Níl an tiománaí seo liostaithe i socruithe an tionscadail, ach is féidir é a " -"chumasú agus an t-eagarthóir nó an tionscadal á rith ag baint úsáide as an " -"[code] --text-driver Caochadán[/code] [url=$DOCS_URL/tutorials/editor/" -"command_line_tutorial.html] argóint na n-orduithe[/url]." - msgid "" "Optional name for the 2D navigation layer 1. If left empty, the layer will " "display as \"Layer 1\"." @@ -107515,18 +107123,6 @@ msgstr "" "mhothú comhchosúil, ní mór duit do luachanna taise a athrú freisin. Níl an t-" "athrú riachtanach seo comhréireach agus tá sé éagsúil ó chás go cás." -msgid "" -"If [code]true[/code], the 3D physics server runs on a separate thread, making " -"better use of multi-core CPUs. If [code]false[/code], the 3D physics server " -"runs on the main thread. Running the physics server on a separate thread can " -"increase performance, but restricts API access to only physics process." -msgstr "" -"Más [code]true[/code], ritheann an freastalaí fisice 3D ar snáithe ar leith, " -"ag baint úsáide níos fearr as CPUanna illárnacha. Má tá [code]false[/code], " -"ritheann an freastalaí fisice 3D ar an bpríomhshnáithe. Is féidir feidhmíocht " -"a mhéadú má ritheann an freastalaí fisice ar snáithe ar leith, ach cuireann " -"sé srian le rochtain API ar phróiseas fisice amháin." - msgid "" "Threshold angular velocity under which a 3D physics body will be considered " "inactive. See [constant PhysicsServer3D." @@ -108154,34 +107750,6 @@ msgstr "" "méid atá socraithe. Socraigh méid níos mó le haghaidh ceo níos mionsonraithe, " "socraigh méid níos lú le haghaidh feidhmíochta níos fearr." -msgid "" -"Sets the driver to be used by the renderer when using the Compatibility " -"renderer. This property can not be edited directly, instead, set the driver " -"using the platform-specific overrides." -msgstr "" -"Socraíonn sé an tiománaí le húsáid ag an rindreálaí agus an rindreálaí " -"Comhoiriúnachta á úsáid. Ní féidir an mhaoin seo a chur in eagar go díreach, " -"ina ionad sin, socraigh an tiománaí ag baint úsáide as na sáruithe atá " -"sainiúil don ardán." - -msgid "Android override for [member rendering/gl_compatibility/driver]." -msgstr "Sárú Android le haghaidh [rindreáil ball/gl_compatibility/driver]." - -msgid "iOS override for [member rendering/gl_compatibility/driver]." -msgstr "sáraíonn iOS le haghaidh [rindreáil ball/gl_compatibility/driver]." - -msgid "LinuxBSD override for [member rendering/gl_compatibility/driver]." -msgstr "Sáraíonn LinuxBSD le haghaidh [rindreáil ball/gl_compatibility/driver]." - -msgid "macOS override for [member rendering/gl_compatibility/driver]." -msgstr "sáraíonn macOS le haghaidh [rindreáil ball/gl_compatibility/driver]." - -msgid "Web override for [member rendering/gl_compatibility/driver]." -msgstr "Sárú gréasáin le haghaidh [rendering ball/gl_compatibility/driver]." - -msgid "Windows override for [member rendering/gl_compatibility/driver]." -msgstr "Sáraíonn Windows le haghaidh [rindreáil ball/gl_compatibility/driver]." - msgid "" "If [code]true[/code], the compatibility renderer will fall back to ANGLE if " "native OpenGL is not supported or the device is listed in [member rendering/" @@ -109016,39 +108584,6 @@ msgstr "" "Ag brath ar chastacht na radharc, féadfar an luach seo a ísliú nó b'fhéidir " "go gcaithfí é a ardú." -msgid "Android override for [member rendering/rendering_device/driver]." -msgstr "Sárú Android le haghaidh [rindreáil ball/rendering_device/tiománaí]." - -msgid "iOS override for [member rendering/rendering_device/driver]." -msgstr "sáraíonn iOS le haghaidh [rindreáil ball/rendering_device/driver]." - -msgid "LinuxBSD override for [member rendering/rendering_device/driver]." -msgstr "Sáraíonn LinuxBSD le haghaidh [rendering ball/rendering_device/driver]." - -msgid "macOS override for [member rendering/rendering_device/driver]." -msgstr "sáraíonn macOS le haghaidh [rindreáil ball/rendering_device/tiománaí]." - -msgid "Windows override for [member rendering/rendering_device/driver]." -msgstr "Sáraíonn Windows le haghaidh [rendering ball/rendering_device/driver]." - -msgid "" -"If [code]true[/code], the forward renderer will fall back to Direct3D 12 if " -"Vulkan is not supported.\n" -"[b]Note:[/b] This setting is implemented only on Windows." -msgstr "" -"Más [code]true[/code], titfidh an rindreálaí ar aghaidh ar ais go Direct3D 12 " -"mura dtacaítear le Vulkan.\n" -"[b]Nóta:[/b] Is ar Windows amháin a chuirtear an socrú seo i bhfeidhm." - -msgid "" -"If [code]true[/code], the forward renderer will fall back to Vulkan if " -"Direct3D 12 is not supported.\n" -"[b]Note:[/b] This setting is implemented only on Windows." -msgstr "" -"Más [code]true[/code], titfidh an rindreálaí ar aghaidh ar ais go Vulkan mura " -"dtacaítear le Direct3D 12.\n" -"[b]Nóta:[/b] Is ar Windows amháin a chuirtear an socrú seo i bhfeidhm." - msgid "" "Enable the pipeline cache that is saved to disk if the graphics API supports " "it.\n" @@ -123274,39 +122809,6 @@ msgstr "Sonraigh [Color] ar leith don solas comhthimpeallach." msgid "Disable reflections." msgstr "Díchumasaigh machnaimh." -msgid "" -"Output color as they came in. This can cause bright lighting to look blown " -"out, with noticeable clipping in the output colors." -msgstr "" -"Dath an aschuir de réir mar a tháinig siad isteach. Féadann sé seo a bheith " -"ina chúis le soilsiú geal breathnú séidte amach, le bearradh suntasach sna " -"dathanna aschuir." - -msgid "" -"Use the filmic tonemapper. This avoids clipping bright highlights, with a " -"resulting image that usually looks more vivid than [constant " -"ENV_TONE_MAPPER_REINHARD]." -msgstr "" -"Úsáid an tonmapper scannánach. Seachnaíonn sé seo buaicphointí geala a " -"ghearradh, le híomhá mar thoradh air a bhreathnaíonn níos beoga de ghnáth ná " -"[ENV_TONE_MAPPER_REINHARD]." - -msgid "" -"Use the Academy Color Encoding System tonemapper. ACES is slightly more " -"expensive than other options, but it handles bright lighting in a more " -"realistic fashion by desaturating it as it becomes brighter. ACES typically " -"has a more contrasted output compared to [constant ENV_TONE_MAPPER_REINHARD] " -"and [constant ENV_TONE_MAPPER_FILMIC].\n" -"[b]Note:[/b] This tonemapping operator is called \"ACES Fitted\" in Godot 3.x." -msgstr "" -"Úsáid tonmapper Córas Ionchódaithe Dath an Acadaimh. Tá ACES beagán níos " -"costasaí ná roghanna eile, ach láimhseálann sé soilsiú geal ar bhealach níos " -"réadúla trína dhísháithiú de réir mar a éiríonn sé níos gile. Is gnách go " -"mbíonn aschur níos codarsnachta ag ACES i gcomparáid le " -"[ENV_TONE_MAPPER_REINHARD leanúnach] agus [ENV_TONE_MAPPER_FILMIC " -"leanúnach].\n" -"[b]Nóta:[/b] Tugtar \"ACES Fitted\" ar an oibreoir tonmapála seo in Godot 3.x." - msgid "" "Lowest quality of roughness filter for screen-space reflections. Rough " "materials will not have blurrier screen-space reflections compared to smooth " @@ -144724,21 +144226,6 @@ msgstr "" "Cur i bhfeidhm cúltaca de fhreastalaí téacs Godot, gan tacaíocht do BiDi agus " "leagan amach casta téacs." -msgid "" -"A fallback implementation of Godot's text server. This fallback is faster " -"than [TextServerAdvanced] for processing a lot of text, but it does not " -"support BiDi and complex text layout.\n" -"[b]Note:[/b] This text server is not part of official Godot binaries. If you " -"want to use it, compile the engine with the option " -"[code]module_text_server_fb_enabled=yes[/code]." -msgstr "" -"Cur i bhfeidhm cúltaca de fhreastalaí téacs Godot. Tá an t-aischur seo níos " -"tapúla ná [TextServerAdvanced] chun go leor téacs a phróiseáil, ach ní " -"thacaíonn sé le BiDi agus leagan amach casta téacs.\n" -"[b]Nóta:[/b] Níl an freastalaí téacs seo ina chuid de dhénártaí oifigiúla " -"Godot. Más mian leat é a úsáid, tiomsaigh an t-inneall leis an rogha " -"[code]module_text_server_fb_enabled=tá[/code]." - msgid "A singleton for managing [TextServer] implementations." msgstr "A singleton chun feidhmeanna [TextServer] a bhainistiú." @@ -144932,35 +144419,6 @@ msgstr "" "Acmhainn uigeachta aonair ina bhfuil íomhánna iolracha ar leith. Tá na toisí " "agus an líon céanna leibhéil mipmap ag gach íomhá." -msgid "" -"A Texture2DArray is different from a Texture3D: The Texture2DArray does not " -"support trilinear interpolation between the [Image]s, i.e. no blending. See " -"also [Cubemap] and [CubemapArray], which are texture arrays with specialized " -"cubemap functions.\n" -"A Texture2DArray is also different from an [AtlasTexture]: In a " -"Texture2DArray, all images are treated separately. In an atlas, the regions " -"(i.e. the single images) can be of different sizes. Furthermore, you usually " -"need to add a padding around the regions, to prevent accidental UV mapping to " -"more than one region. The same goes for mipmapping: Mipmap chains are handled " -"separately for each layer. In an atlas, the slicing has to be done manually " -"in the fragment shader.\n" -"To create such a texture file yourself, reimport your image files using the " -"Godot Editor import presets." -msgstr "" -"Tá Texture2DArray difriúil ó Texture3D: Ní thacaíonn an Texture2DArray le " -"hidirshuíomh trílíneach idir na [Íomhá]s, ie gan chumasc. Féach freisin " -"[Cubemap] agus [CubemapArray], ar eagair uigeachta iad a bhfuil feidhmeanna " -"speisialaithe léarscáile ciúbach acu.\n" -"Tá Texture2DArray difriúil freisin ó [AtlasTexture]: In Texture2DArray, " -"caitear le gach íomhá ar leithligh. In atlas, féadfaidh na réigiúin (i.e. na " -"híomhánna aonair) a bheith de mhéideanna éagsúla. Ina theannta sin, de ghnáth " -"ní mór duit stuáil a chur timpeall ar na réigiúin, chun mapáil UV thimpiste a " -"chosc chuig níos mó ná réigiún amháin. Is é an rud céanna maidir le " -"mipmapping: láimhseáiltear slabhraí mipmap ar leithligh do gach ciseal. In " -"atlas, ní mór an slicing a dhéanamh de láimh sa scáthlánóir blúirí.\n" -"Chun comhad uigeachta den sórt sin a chruthú tú féin, athiompórtáil do chuid " -"comhad íomhá ag baint úsáide as réamhshocruithe iompórtála Godot Editor." - msgid "" "Creates a placeholder version of this resource ([PlaceholderTexture2DArray])." msgstr "" @@ -146857,28 +146315,6 @@ msgstr "" msgid "Node for 2D tile-based maps." msgstr "Nód le haghaidh léarscáileanna tíleanna-bhunaithe 2D." -msgid "" -"Node for 2D tile-based maps. Tilemaps use a [TileSet] which contain a list of " -"tiles which are used to create grid-based maps. A TileMap may have several " -"layers, layouting tiles on top of each other.\n" -"For performance reasons, all TileMap updates are batched at the end of a " -"frame. Notably, this means that scene tiles from a " -"[TileSetScenesCollectionSource] may be initialized after their parent. This " -"is only queued when inside the scene tree.\n" -"To force an update earlier on, call [method update_internals]." -msgstr "" -"Nód le haghaidh léarscáileanna tíleanna-bhunaithe 2D. Úsáideann " -"léarscáileanna tíl [TileSet] ina bhfuil liosta tíleanna a úsáidtear chun " -"léarscáileanna greille-bhunaithe a chruthú. D’fhéadfadh go mbeadh roinnt " -"sraitheanna ar TileMap, ag leagan tíleanna ar bharr a chéile.\n" -"Ar chúiseanna feidhmíochta, déantar gach nuashonrú TileMap a bhaisc ag " -"deireadh fráma. Go háirithe, ciallaíonn sé seo gur féidir tíleanna radhairc ó " -"[TileSetScenesCollectionSource] a thúsú i ndiaidh a dtuismitheora. Ní " -"chuirtear é seo i scuaine ach amháin nuair a bhíonn tú istigh sa chrann " -"radhairc.\n" -"Chun nuashonrú a chur i bhfeidhm níos luaithe, cuir glaoch ar [method " -"update_internals]." - msgid "Using Tilemaps" msgstr "Ag baint úsáide as Tilemaps" @@ -147575,32 +147011,6 @@ msgstr "I bhfolach i gcónaí." msgid "Always show." msgstr "Taispeáin i gcónaí." -msgid "" -"Node for 2D tile-based maps. A [TileMapLayer] uses a [TileSet] which contain " -"a list of tiles which are used to create grid-based maps. Unlike the " -"[TileMap] node, which is deprecated, [TileMapLayer] has only one layer of " -"tiles. You can use several [TileMapLayer] to achieve the same result as a " -"[TileMap] node.\n" -"For performance reasons, all TileMap updates are batched at the end of a " -"frame. Notably, this means that scene tiles from a " -"[TileSetScenesCollectionSource] may be initialized after their parent. This " -"is only queued when inside the scene tree.\n" -"To force an update earlier on, call [method update_internals]." -msgstr "" -"Nód le haghaidh léarscáileanna tíleanna-bhunaithe 2D. Úsáideann " -"[TileMapLayer] [TileSet] ina bhfuil liosta tíleanna a úsáidtear chun " -"léarscáileanna greille-bhunaithe a chruthú. Murab ionann agus an nód " -"[TileMap], atá dímheasta, níl ach sraith amháin tíleanna ag [TileMapLayer]. " -"Is féidir leat roinnt [TileMapLayer] a úsáid chun an toradh céanna a bhaint " -"amach le nód [TileMap].\n" -"Ar chúiseanna feidhmíochta, déantar gach nuashonrú TileMap a bhaisc ag " -"deireadh fráma. Go háirithe, ciallaíonn sé seo gur féidir tíleanna radhairc ó " -"[TileSetScenesCollectionSource] a thúsú i ndiaidh a dtuismitheora. Ní " -"chuirtear é seo i scuaine ach amháin nuair a bhíonn tú istigh sa chrann " -"radhairc.\n" -"Chun nuashonrú a chur i bhfeidhm níos luaithe, cuir glaoch ar [method " -"update_internals]." - msgid "" "Called with a [TileData] object about to be used internally by the " "[TileMapLayer], allowing its modification at runtime.\n" @@ -154437,15 +153847,6 @@ msgstr "" "[ball y] agus [comhalta x] an veicteora mar pharaiméadair: [code]atan2(y, x)[/" "code]." -msgid "" -"Returns the angle to the given vector, in radians.\n" -"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" -"vector2_angle_to.png]Illustration of the returned angle.[/url]" -msgstr "" -"Filleann sé an uillinn go dtí an veicteoir tugtha, ina raidian.\n" -"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" -"vector2_angle_to.png]Léaráid den uillinn a cuireadh ar ais.[/url]" - msgid "" "Returns the angle between the line connecting the two points and the X axis, " "in radians.\n" @@ -164435,6 +163836,9 @@ msgstr "" "Filleann sé [code]true[/code] má tá an fhuinneog leabaithe i bhfuinneog eile " "faoi láthair." +msgid "Returns [code]true[/code] if layout is right-to-left." +msgstr "Filleann sé [code]true[/code] má tá an leagan amach ó dheas go clé." + msgid "" "Returns [code]true[/code] if the window can be maximized (the maximize button " "is enabled)." @@ -165236,6 +164640,9 @@ msgstr "" "Treo leagan amach uathoibríoch, arna chinneadh ó threoir leagan amach na " "tuismitheora fuinneoige." +msgid "Automatic layout direction, determined from the current locale." +msgstr "Treo leagan amach uathoibríoch, arna chinneadh ón locale reatha." + msgid "Initial window position is determined by [member position]." msgstr "Déantar suíomh tosaigh na fuinneoige a chinneadh ag [seasamh na mball]." diff --git a/engine/doc/translations/it.po b/engine/doc/translations/it.po index 680c86f3..1bb3feb7 100644 --- a/engine/doc/translations/it.po +++ b/engine/doc/translations/it.po @@ -13587,35 +13587,6 @@ msgstr "" "più velocemente, risultando in maggiore utilizzo CPU e più rischio di audio " "scoppiettante se la CPU non riesce a tenere il passo." -msgid "" -"The sample rate to use (in Hz). Higher values are more demanding for the CPU " -"to generate, but result in better quality.\n" -"In games, common sample rates in use are [code]11025[/code], [code]16000[/" -"code], [code]22050[/code], [code]32000[/code], [code]44100[/code], and " -"[code]48000[/code].\n" -"According to the [url=https://en.wikipedia.org/wiki/" -"Nyquist%E2%80%93Shannon_sampling_theorem]Nyquist-Shannon sampling theorem[/" -"url], there is no quality difference to human hearing when going past 40,000 " -"Hz (since most humans can only hear up to ~20,000 Hz, often less). If you are " -"generating lower-pitched sounds such as voices, lower sample rates such as " -"[code]32000[/code] or [code]22050[/code] may be usable with no loss in " -"quality." -msgstr "" -"La frequenza di campionamento da utilizzare (in Hz). I valori elevati " -"richiedono una generazione più impegnativa per la CPU, ma risultano in una " -"qualità migliore.\n" -"Nei giochi, le frequenze di campionamento comunemente in uso sono " -"[code]11025[/code], [code]16000[/code], [code]22050[/code], [code]32000[/" -"code], [code]44100[/code] e [code]48000[/code].\n" -"Secondo il [url=https://it.wikipedia.org/wiki/" -"Teorema_del_campionamento_di_Nyquist-Shannon]Teorema del campionamento di " -"Nyquist-Shannon[/url], non vi è alcuna differenza di qualità per l'udito " -"umano quando si superano i 40.000 Hz (poiché la maggior parte degli esseri " -"umani può sentire solo fino a ~ 20.000 Hz, spesso meno). Se stai generando " -"suoni dal tono più basso come le voci, le frequenze di campionamento più " -"basse come [code]32000[/code] o [code]22050[/code] potrebbero essere usabili " -"senza perdite di qualità." - msgid "Plays back audio generated using [AudioStreamGenerator]." msgstr "Riproduce l'audio generato usando un [AudioStreamGenerator]." @@ -15593,29 +15564,6 @@ msgstr "" "Se [code]true[/code], l'oggetto è renderizzato con le stesse dimensioni a " "prescindere dalla distanza." -msgid "" -"If [code]true[/code], enables the vertex grow setting. This can be used to " -"create mesh-based outlines using a second material pass and its [member " -"cull_mode] set to [constant CULL_FRONT]. See also [member grow_amount].\n" -"[b]Note:[/b] Vertex growth cannot create new vertices, which means that " -"visible gaps may occur in sharp corners. This can be alleviated by designing " -"the mesh to use smooth normals exclusively using [url=https://wiki.polycount." -"com/wiki/Face_weighted_normals]face weighted normals[/url] in the 3D " -"authoring software. In this case, grow will be able to join every outline " -"together, just like in the original mesh." -msgstr "" -"Se [code]true[/code], abilita l'impostazione di crescita del vertice. Questo " -"può essere usato per creare contorni basati su mesh attraverso un secondo " -"passaggio di materiale e il suo [member cull_mode] impostato su [constant " -"CULL_FRONT]. Vedi anche [member grow_amount].\n" -"[b]Nota:[/b] La crescita dei vertici non può creare nuovi vertici, il che " -"significa che potrebbero verificarsi spazi visibili negli angoli acuti. " -"Questo può essere alleviato progettando la mesh in modo che usi normali " -"uniformi utilizzando esclusivamente [url=https://wiki.polycount.com/wiki/" -"Face_weighted_normals]face weighted normals[/url] nel software di creazione " -"3D. In questo caso, la creshita potrà unire tutti i contorni insieme, proprio " -"come nella mesh originale." - msgid "" "Grows object vertices in the direction of their normals. Only effective if " "[member grow] is [code]true[/code]." @@ -26162,9 +26110,6 @@ msgstr "" "con successo. Alternativa a [method Viewport.gui_is_drag_successful].\n" "Meglio usata con [constant Node.NOTIFICATION_DRAG_END]." -msgid "Returns [code]true[/code] if layout is right-to-left." -msgstr "Restituisce [code]true[/code] se il layout è da destra a sinistra." - msgid "Give up the focus. No other control will be able to receive input." msgstr "" "Rilascia il focus. Nessun altro controllo sarà in grado di ricevere input." @@ -26652,14 +26597,6 @@ msgstr "" "maggiore della sua dimensione attuale, affinché il controllo sia alto almeno " "quanto l'altezza minima." -msgid "" -"Controls layout direction and text writing direction. Right-to-left layouts " -"are necessary for certain languages (e.g. Arabic and Hebrew)." -msgstr "" -"Controlla la direzione del layout e la direzione della scrittura del testo. I " -"layout da destra a sinistra sono necessari per alcune lingue (ad esempio, " -"arabo ed ebraico)." - msgid "" "If [code]true[/code], automatically converts code line numbers, list indices, " "[SpinBox] and [ProgressBar] values from the Western Arabic (0..9) to the " @@ -27201,9 +27138,6 @@ msgstr "" "desktop o web quando [member ProjectSettings.input_devices/pointing/" "emulate_touch_from_mouse] è abilitato." -msgid "Sent when control layout direction is changed." -msgstr "Inviato quando la direzione del layout del controllo viene cambiata." - msgid "" "Show the system's arrow mouse cursor when the user hovers the node. Use with " "[member mouse_default_cursor_shape]." @@ -27617,10 +27551,6 @@ msgstr "" "Direzione di layout automatica, determinata dalla direzione di layout del " "controllo padre." -msgid "Automatic layout direction, determined from the current locale." -msgstr "" -"Direzione di layout automatica, determinata dalla localizzazione attuale." - msgid "Left-to-right layout direction." msgstr "Direzione di layout da sinistra a destra." @@ -47267,13 +47197,6 @@ msgstr "" "Il numero massimo di passaggi per i riflessi sullo spazio dello schermo. I " "valori più alti sono più lenti." -msgid "" -"The default exposure used for tonemapping. Higher values result in a brighter " -"image. See also [member tonemap_white]." -msgstr "" -"L'esposizione predefinita utilizzata per la mappatura dei toni. Valori più " -"alti producono un'immagine più luminosa. Vedi anche [member tonemap_white]." - msgid "" "The tonemapping mode to use. Tonemapping is the process that \"converts\" HDR " "values to be suitable for rendering on an LDR display. (Godot doesn't support " @@ -47561,40 +47484,6 @@ msgstr "" "Utilizza il cielo ([Sky]) per i riflessi, a prescindere da quale sia lo " "sfondo." -msgid "" -"Linear tonemapper operator. Reads the linear data and passes it on " -"unmodified. This can cause bright lighting to look blown out, with noticeable " -"clipping in the output colors." -msgstr "" -"Operatore di mappatore dei tono lineare. Legge i dati lineari e li passa " -"senza modifiche. Ciò può causare un'illuminazione intensa che può apparire " -"sbiadita, con un evidente ritaglio nei colori risultanti." - -msgid "" -"Filmic tonemapper operator. This avoids clipping bright highlights, with a " -"resulting image that usually looks more vivid than [constant " -"TONE_MAPPER_REINHARDT]." -msgstr "" -"Operatore di mappatore dei toni filmico. In questo modo si evita il clipping " -"dei punti più luminosi, con un'immagine risultante che solitamente appare più " -"vivida di [constant TONE_MAPPER_REINHARDT]." - -msgid "" -"Use the Academy Color Encoding System tonemapper. ACES is slightly more " -"expensive than other options, but it handles bright lighting in a more " -"realistic fashion by desaturating it as it becomes brighter. ACES typically " -"has a more contrasted output compared to [constant TONE_MAPPER_REINHARDT] and " -"[constant TONE_MAPPER_FILMIC].\n" -"[b]Note:[/b] This tonemapping operator is called \"ACES Fitted\" in Godot 3.x." -msgstr "" -"Usa il mappatore dei toni Academy Color Encoding System. ACES è leggermente " -"più costoso di altre opzioni, ma gestisce l'illuminazione intensa in modo più " -"realistico, desaturandola man mano che diventa più luminosa. Un risultato in " -"ACES in genere appare più contrastato rispetto a [constant " -"TONE_MAPPER_REINHARDT] e [constant TONE_MAPPER_FILMIC].\n" -"[b]Nota:[/b] Questo operatore di mappatore dei toni è chiamato \"ACES " -"Fitted\" in Godot 3.x." - msgid "" "Additive glow blending mode. Mostly used for particles, glows (bloom), lens " "flare, bright sources." @@ -56341,30 +56230,6 @@ msgstr "" msgid "Reads one chunk from the response." msgstr "Legge una parte della risposta." -msgid "" -"Sends a raw request to the connected host.\n" -"The URL parameter is usually just the part after the host, so for " -"[code]https://somehost.com/index.php[/code], it is [code]/index.php[/code]. " -"When sending requests to an HTTP proxy server, it should be an absolute URL. " -"For [constant HTTPClient.METHOD_OPTIONS] requests, [code]*[/code] is also " -"allowed. For [constant HTTPClient.METHOD_CONNECT] requests, it should be the " -"authority component ([code]host:port[/code]).\n" -"Headers are HTTP request headers. For available HTTP methods, see [enum " -"Method].\n" -"Sends the body data raw, as a byte array and does not encode it in any way." -msgstr "" -"Invia una richiesta grezza all'host connesso.\n" -"Il parametro URL è solitamente solo la parte dopo l'host, quindi per " -"[code]https://somehost.com/index.php[/code], è [code]/index.php[/code]. " -"Quando si inviano richieste a un server proxy HTTP, dovrebbe essere un URL " -"assoluto. Per le richieste [constant HTTPClient.METHOD_OPTIONS], è consentito " -"anche [code]*[/code]. Per le richieste [constant HTTPClient.METHOD_CONNECT], " -"dovrebbe essere il componente autorità ([code]host:port[/code]).\n" -"Le intestazioni sono intestazioni di richiesta HTTP. Per i metodi HTTP " -"disponibili, vedi [enum Method].\n" -"Invia i dati del corpo grezzi, come array di byte e non li codifica in alcun " -"modo." - msgid "" "Sets the proxy server for HTTP requests.\n" "The proxy server is unset if [param host] is empty or [param port] is -1." @@ -58644,20 +58509,6 @@ msgstr "" "essere utilizzata direttamente, ma contiene tutte le funzioni necessarie per " "accedere ai tipi di risorse derivati. Vedi anche [Texture3D]." -msgid "" -"Creates an [ImageTextureLayered] from an array of [Image]s. See [method Image." -"create] for the expected data format. The first image decides the width, " -"height, image format and mipmapping setting. The other images [i]must[/i] " -"have the same width, height, image format and mipmapping setting.\n" -"Each [Image] represents one [code]layer[/code]." -msgstr "" -"Crea un [ImageTextureLayered] da un array di risorse [Image]. Vedi [method " -"Image.create] per il formato previsto dei dati. La prima immagine decide la " -"larghezza, l'altezza, il formato immagine e la configurazione per il " -"mipmapping. Le altre immagini [i]devono[/i] avere la stessa larghezza, " -"altezza, formato immagine e configurazione per il mipmapping.\n" -"Ogni [Image] rappresenta un livello ([code]layer[/code])." - msgid "" "Replaces the existing [Image] data at the given [param layer] with this new " "image.\n" @@ -58963,25 +58814,6 @@ msgstr "" "volta per frame). Tuttavia, questo può essere utile in casi avanzati in cui " "si desidera un controllo preciso sulla tempistica della gestione degli eventi." -msgid "" -"Returns the acceleration in m/s² of the device's accelerometer sensor, if the " -"device has one. Otherwise, the method returns [constant Vector3.ZERO].\n" -"Note this method returns an empty [Vector3] when running from the editor even " -"when your device has an accelerometer. You must export your project to a " -"supported device to read values from the accelerometer.\n" -"[b]Note:[/b] This method only works on Android and iOS. On other platforms, " -"it always returns [constant Vector3.ZERO]." -msgstr "" -"Restituisce l'accelerazione in m/s² del sensore accelerometro del " -"dispositivo, se il dispositivo ne ha uno. Altrimenti, il metodo restituisce " -"[constant Vector3.ZERO].\n" -"Nota che questo metodo restituisce un [Vector3] vuoto quando viene eseguito " -"dall'editor anche quando il dispositivo ha un accelerometro. È necessario " -"esportare il progetto su un dispositivo supportato per leggere i valori " -"dall'accelerometro.\n" -"[b]Nota:[/b] Questo metodo funziona solo su Android e iOS. Su altre " -"piattaforme, restituisce sempre [constant Vector3.ZERO]." - msgid "" "Returns a value between 0 and 1 representing the raw intensity of the given " "action, ignoring the action's deadzone. In most cases, you should use [method " @@ -59040,31 +58872,6 @@ msgstr "" "Restituisce la forma del cursore attualmente assegnata (vedi [enum " "CursorShape])." -msgid "" -"Returns the gravity in m/s² of the device's accelerometer sensor, if the " -"device has one. Otherwise, the method returns [constant Vector3.ZERO].\n" -"[b]Note:[/b] This method only works on Android and iOS. On other platforms, " -"it always returns [constant Vector3.ZERO]." -msgstr "" -"Restituisce la gravità in m/s² del sensore accelerometro del dispositivo, se " -"il dispositivo ne ha uno. Altrimenti, il metodo restituisce [constant Vector3." -"ZERO].\n" -"[b]Nota:[/b] Questo metodo funziona solo su Android e iOS. Su altre " -"piattaforme, restituisce sempre [constant Vector3.ZERO]." - -msgid "" -"Returns the rotation rate in rad/s around a device's X, Y, and Z axes of the " -"gyroscope sensor, if the device has one. Otherwise, the method returns " -"[constant Vector3.ZERO].\n" -"[b]Note:[/b] This method only works on Android and iOS. On other platforms, " -"it always returns [constant Vector3.ZERO]." -msgstr "" -"Restituisce la velocità di rotazione (in radianti al secondo) attorno agli " -"assi X, Y e Z del sensore giroscopio di un dispositivo, se il dispositivo ne " -"ha uno. Altrimenti, il metodo restituisce [constant Vector3.ZERO].\n" -"[b]Nota:[/b] Questo metodo funziona solo su Android e iOS. Su altre " -"piattaforme, restituisce sempre [constant Vector3.ZERO]." - msgid "" "Returns the current value of the joypad axis at given index (see [enum " "JoyAxis])." @@ -59113,19 +58920,6 @@ msgstr "" "Pertanto, la velocità del mouse sarà in ritardo rispetto ai movimenti del " "mouse." -msgid "" -"Returns the magnetic field strength in micro-Tesla for all axes of the " -"device's magnetometer sensor, if the device has one. Otherwise, the method " -"returns [constant Vector3.ZERO].\n" -"[b]Note:[/b] This method only works on Android and iOS. On other platforms, " -"it always returns [constant Vector3.ZERO]." -msgstr "" -"Restituisce l'intensità del campo magnetico in micro-Tesla per tutti gli assi " -"del sensore magnetometrico del dispositivo, se il dispositivo ne ha uno. " -"Altrimenti, il metodo restituisce [constant Vector3.ZERO].\n" -"[b]Nota:[/b] Questo metodo funziona solo su Android e iOS. Su altre " -"piattaforme, restituisce sempre [constant Vector3.ZERO]." - msgid "" "Returns mouse buttons as a bitmask. If multiple mouse buttons are pressed at " "the same time, the bits are added together. Equivalent to [method " @@ -67449,36 +67243,6 @@ msgstr "" msgid "Generic mobile VR implementation." msgstr "Implementazione generica di realtà virtuale (VR) mobile." -msgid "" -"This is a generic mobile VR implementation where you need to provide details " -"about the phone and HMD used. It does not rely on any existing framework. " -"This is the most basic interface we have. For the best effect, you need a " -"mobile phone with a gyroscope and accelerometer.\n" -"Note that even though there is no positional tracking, the camera will assume " -"the headset is at a height of 1.85 meters. You can change this by setting " -"[member eye_height].\n" -"You can initialize this interface as follows:\n" -"[codeblock]\n" -"var interface = XRServer.find_interface(\"Native mobile\")\n" -"if interface and interface.initialize():\n" -" get_viewport().use_xr = true\n" -"[/codeblock]" -msgstr "" -"Questa è un'implementazione generica di VR mobile in cui devi fornire " -"dettagli sul telefono e sull'HMD utilizzati. Non si basa su alcun framework " -"esistente. Questa è l'interfaccia più basilare disponibile. Per ottenere " -"l'effetto migliore, hai bisogno di un telefono cellulare con giroscopio e " -"accelerometro.\n" -"Nota che anche se non c'è tracciamento posizionale, la telecamera presumerà " -"che il visore si trovi a un'altezza di 1,85 metri. È possibile modificare " -"questo valore impostando [member eye_height].\n" -"Puoi inizializzare questa interfaccia come segue:\n" -"[codeblock]\n" -"var interface = XRServer.find_interface(\"Native mobile\")\n" -"if interface and interface.initialize():\n" -" get_viewport().use_xr = true\n" -"[/codeblock]" - msgid "" "The distance between the display and the lenses inside of the device in " "centimeters." @@ -83672,9 +83436,6 @@ msgstr "" "dell'array (ad esempio, [code]arr.slice(0, -2)[/code] è un'abbreviazione per " "[code]arr.slice(0, arr.size() - 2)[/code])." -msgid "Returns a [PackedByteArray] with each string encoded as bytes." -msgstr "Restituisce un [PackedByteArray] con ogni stringa codificata come byte." - msgid "" "Returns a new [PackedStringArray] with contents of [param right] added at the " "end of this array. For better performance, consider using [method " @@ -84623,13 +84384,6 @@ msgstr "" msgid "[Texture2D] to be applied to the [PanoramaSkyMaterial]." msgstr "La [Texture2D] da applicare al [PanoramaSkyMaterial]." -msgid "" -"This node is meant to replace [ParallaxBackground] and [ParallaxLayer]. The " -"implementation may change in the future." -msgstr "" -"Questo nodo è pensato per sostituire [ParallaxBackground] e [ParallaxLayer]. " -"L'implementazione potrebbe cambiare in futuro." - msgid "A node used to create a parallax scrolling background." msgstr "Un nodo usato per creare uno sfondo a scorrimento parallasse." @@ -96310,13 +96064,6 @@ msgstr "" "assicurati che le app siano autorizzate ad accedere al microfono nelle " "impostazioni sulla privacy del sistema operativo." -msgid "" -"The mixing rate used for audio (in Hz). In general, it's better to not touch " -"this and leave it to the host operating system." -msgstr "" -"La frequenza di mixaggio utilizzata per l'audio (in Hz). In generale, è " -"meglio non toccarla e lasciarla al sistema operativo host." - msgid "" "Safer override for [member audio/driver/mix_rate] in the Web platform. Here " "[code]0[/code] means \"let the browser choose\" (since some browsers do not " @@ -99366,22 +99113,6 @@ msgstr "" "[code]false[/code]. Il comportamento tradizione è per supportare vecchi " "progetti che si basano sulla vecchia logica, senza modifiche allo script." -msgid "" -"Specifies the tablet driver to use. If left empty, the default driver will be " -"used.\n" -"[b]Note:[/b] The driver in use can be overridden at runtime via the [code]--" -"tablet-driver[/code] [url=$DOCS_URL/tutorials/editor/command_line_tutorial." -"html]command line argument[/url]." -msgstr "" -"Specifica il driver del tablet da utilizzare. Se lasciato vuoto, sarà " -"utilizzato il driver predefinito.\n" -"[b]Nota:[/b] Il driver in uso può essere sovrascritto in fase di esecuzione " -"tramite l'[url=$DOCS_URL/tutorials/editor/command_line_tutorial." -"html]argomento della riga di comando[/url] [code]--tablet-driver[/code]." - -msgid "Override for [member input_devices/pen_tablet/driver] on Windows." -msgstr "Sostituzione per [member input_devices/pen_tablet/driver] su Windows." - msgid "" "If [code]true[/code], long press events on an Android touchscreen are " "transformed into right click events." @@ -99419,40 +99150,6 @@ msgstr "" "Se [code]true[/code], invia eventi di input tocco quando si clicca o si " "trascina il mouse." -msgid "" -"The locale to fall back to if a translation isn't available in a given " -"language. If left empty, [code]en[/code] (English) will be used." -msgstr "" -"Le impostazioni locali a cui ricorrere se una traduzione non è disponibile in " -"una determinata lingua. Se lasciato vuoto, sarà utilizzato [code]en[/code] " -"(inglese)." - -msgid "" -"If [code]true[/code], text server break iteration rule sets, dictionaries and " -"other optional data are included in the exported project.\n" -"[b]Note:[/b] \"ICU / HarfBuzz / Graphite\" text server data includes " -"dictionaries for Burmese, Chinese, Japanese, Khmer, Lao and Thai as well as " -"Unicode Standard Annex #29 and Unicode Standard Annex #14 word and line " -"breaking rules. Data is about 4 MB large.\n" -"[b]Note:[/b] \"Fallback\" text server does not use additional data." -msgstr "" -"Se [code]true[/code], la serie di regole di iterazione di interruzione, i " -"dizionari e altri dati facoltativi del server di testo sono inclusi nel " -"progetto esportato.\n" -"[b]Nota:[/b] I dati del server di testo \"ICU / HarfBuzz / Graphite\" " -"includono dizionari per birmano, cinese, giapponese, khmer, laotiano e " -"tailandese, nonché le regole di interruzione di parole e righe Unicode " -"Standard Annex #29 e Unicode Standard Annex #14. I dati sono grandi circa 4 " -"MB.\n" -"[b]Nota:[/b] il server di testo \"Fallback\" non utilizza dati aggiuntivi." - -msgid "" -"If non-empty, this locale will be used when running the project from the " -"editor." -msgstr "" -"Se non è vuoto, queste impostazioni locali saranno utilizzate quando si " -"esegue il progetto dall'editor." - msgid "" "Double vowels in strings during pseudolocalization to simulate the " "lengthening of text due to localization." @@ -99469,18 +99166,6 @@ msgstr "" "pratica, un valore di [code]0.3[/code] è spesso sufficiente e aumenterà la " "lunghezza di ogni stringa del 30%." -msgid "" -"If [code]true[/code], emulate bidirectional (right-to-left) text when " -"pseudolocalization is enabled. This can be used to spot issues with RTL " -"layout and UI mirroring that will crop up if the project is localized to RTL " -"languages such as Arabic or Hebrew." -msgstr "" -"Se [code]true[/code], emula il testo bidirezionale (da destra a sinistra) " -"quando è abilitata la pseudolocalizzazione. Questo può essere utilizzato per " -"individuare problemi con il layout RTL e il rispecchiamento dell'interfaccia " -"utente, che si presenteranno se il progetto è localizzato in lingue RTL come " -"l'arabo o l'ebraico." - msgid "" "Replace all characters in the string with [code]*[/code]. Useful for finding " "non-localizable strings." @@ -99527,12 +99212,6 @@ msgstr "" "attivare o disattivare la pseudolocalizzazione in fase di esecuzione, " "utilizza invece [member TranslationServer.pseudolocalization_enabled]." -msgid "" -"Force layout direction and text writing direction to RTL for all controls." -msgstr "" -"Forza la direzione del layout e la direzione di scrittura del testo su destra " -"a sinistra (RTL) per tutti i controlli." - msgid "" "If [code]true[/code], root node will use [constant Node." "AUTO_TRANSLATE_MODE_ALWAYS], otherwise [constant Node." @@ -99551,37 +99230,6 @@ msgstr "" msgid "Root node default layout direction." msgstr "Direzione del layout predefinita del nodo radice." -msgid "" -"Specifies the [TextServer] to use. If left empty, the default will be used.\n" -"\"ICU / HarfBuzz / Graphite\" is the most advanced text driver, supporting " -"right-to-left typesetting and complex scripts (for languages like Arabic, " -"Hebrew, etc.). The \"Fallback\" text driver does not support right-to-left " -"typesetting and complex scripts.\n" -"[b]Note:[/b] The driver in use can be overridden at runtime via the [code]--" -"text-driver[/code] [url=$DOCS_URL/tutorials/editor/command_line_tutorial." -"html]command line argument[/url].\n" -"[b]Note:[/b] There is an additional [code]Dummy[/code] text driver available, " -"which disables all text rendering and font-related functionality. This driver " -"is not listed in the project settings, but it can be enabled when running the " -"editor or project using the [code]--text-driver Dummy[/code] [url=$DOCS_URL/" -"tutorials/editor/command_line_tutorial.html]command line argument[/url]." -msgstr "" -"Specifica il [TextServer] da usare. Se lasciato vuoto, sarà usato il valore " -"predefinito.\n" -"\"ICU / HarfBuzz / Graphite\" è il driver di testo più avanzato, che supporta " -"la composizione da destra a sinistra e gli alfabeti complessi (per lingue " -"come arabo, ebraico, ecc.). Il driver di testo \"Fallback\" non supporta la " -"composizione da destra a sinistra e gli alfabeti complessi.\n" -"[b]Nota:[/b] È possibile sovrascrivere il driver in uso in fase di esecuzione " -"tramite l'[url=$DOCS_URL/tutorials/editor/command_line_tutorial." -"html]argomento della riga di comando[/url] [code]--text-driver[/code].\n" -"[b]Nota:[/b] È disponibile un ulteriore driver di testo [code]Dummy[/code], " -"il quale disabilita tutte le funzionalità di rendering del testo e relative " -"ai font. Questo driver non è elencato nelle impostazioni del progetto, ma è " -"possibile abilitarlo eseguendo l'editor o il progetto utilizzando " -"l'[url=$DOCS_URL/tutorials/editor/command_line_tutorial.html]argomento della " -"riga di comando[/url] [code]--text-driver Dummy[/code]." - msgid "" "Optional name for the 2D navigation layer 1. If left empty, the layer will " "display as \"Layer 1\"." @@ -101629,18 +101277,6 @@ msgstr "" "necessario modificare i valori di smorzamento. Questa modifica necessaria non " "è proporzionale e varia da caso a caso." -msgid "" -"If [code]true[/code], the 3D physics server runs on a separate thread, making " -"better use of multi-core CPUs. If [code]false[/code], the 3D physics server " -"runs on the main thread. Running the physics server on a separate thread can " -"increase performance, but restricts API access to only physics process." -msgstr "" -"Se [code]true[/code], il server di fisica 3D è eseguito su un thread " -"separato, sfruttando al meglio le CPU multi-core. Se [code]false[/code], il " -"server di fisica 3D è eseguito sul thread principale. Eseguire il server di " -"fisica su un thread separato può aumentare le prestazioni, ma limita " -"l'accesso all'API solo sul processo di fisica." - msgid "" "Threshold angular velocity under which a 3D physics body will be considered " "inactive. See [constant PhysicsServer3D." @@ -102274,35 +101910,6 @@ msgstr "" "dimensione maggiore per una nebbia più dettagliata, imposta una dimensione " "minore per prestazioni migliori." -msgid "" -"Sets the driver to be used by the renderer when using the Compatibility " -"renderer. This property can not be edited directly, instead, set the driver " -"using the platform-specific overrides." -msgstr "" -"Imposta il driver da usare per il renderer quando si usa il renderer " -"Compatibilità. Questa proprietà non può essere modificata direttamente, " -"invece, imposta il driver usando le sostituzioni specifiche per la " -"piattaforma." - -msgid "Android override for [member rendering/gl_compatibility/driver]." -msgstr "Sostituzione su Android per [member rendering/gl_compatibility/driver]." - -msgid "iOS override for [member rendering/gl_compatibility/driver]." -msgstr "Sostituzione su iOS per [member rendering/gl_compatibility/driver]." - -msgid "LinuxBSD override for [member rendering/gl_compatibility/driver]." -msgstr "" -"Sostituzione su LinuxBSD per [member rendering/gl_compatibility/driver]." - -msgid "macOS override for [member rendering/gl_compatibility/driver]." -msgstr "Sostituzione su macOS per [member rendering/gl_compatibility/driver]." - -msgid "Web override for [member rendering/gl_compatibility/driver]." -msgstr "Sostituzione su Web per [member rendering/gl_compatibility/driver]." - -msgid "Windows override for [member rendering/gl_compatibility/driver]." -msgstr "Sostituzione su Windows per [member rendering/gl_compatibility/driver]." - msgid "" "If [code]true[/code], the compatibility renderer will fall back to ANGLE if " "native OpenGL is not supported or the device is listed in [member rendering/" @@ -103134,42 +102741,6 @@ msgstr "" "A seconda della complessità delle scene, questo valore potrebbe essere " "abbassato o potrebbe essere necessario aumentarlo." -msgid "Android override for [member rendering/rendering_device/driver]." -msgstr "" -"Sostituzione per Android per [member rendering/rendering_device/driver]." - -msgid "iOS override for [member rendering/rendering_device/driver]." -msgstr "Sostituzione per iOS per [member rendering/rendering_device/driver]." - -msgid "LinuxBSD override for [member rendering/rendering_device/driver]." -msgstr "" -"Sostituzione per LinuxBSD per [member rendering/rendering_device/driver]." - -msgid "macOS override for [member rendering/rendering_device/driver]." -msgstr "Sostituzione per macOS per [member rendering/rendering_device/driver]." - -msgid "Windows override for [member rendering/rendering_device/driver]." -msgstr "" -"Sostituzione per Windows per [member rendering/rendering_device/driver]." - -msgid "" -"If [code]true[/code], the forward renderer will fall back to Direct3D 12 if " -"Vulkan is not supported.\n" -"[b]Note:[/b] This setting is implemented only on Windows." -msgstr "" -"Se [code]true[/code], il renderer Forward ricadrà su Direct3D se Vulkan non è " -"supportato.\n" -"[b]Nota:[/b] Questa impostazione è implementata solo su Windows." - -msgid "" -"If [code]true[/code], the forward renderer will fall back to Vulkan if " -"Direct3D 12 is not supported.\n" -"[b]Note:[/b] This setting is implemented only on Windows." -msgstr "" -"Se [code]true[/code], il renderer Forward ricadrà su Vulkan se Direct3D 12 " -"non è supportato.\n" -"[b]Nota:[/b] Questa impostazione è implementata solo su Windows." - msgid "" "Enable the pipeline cache that is saved to disk if the graphics API supports " "it.\n" @@ -111984,39 +111555,6 @@ msgstr "Specifica un [Color] specifico per la luce ambientale." msgid "Disable reflections." msgstr "Disattiva i riflessi." -msgid "" -"Output color as they came in. This can cause bright lighting to look blown " -"out, with noticeable clipping in the output colors." -msgstr "" -"Colore prodotto così come è stato ricevuto. Ciò può causare un'illuminazione " -"intensa che può apparire sbiadita, con un evidente ritaglio nei colori " -"risultanti." - -msgid "" -"Use the filmic tonemapper. This avoids clipping bright highlights, with a " -"resulting image that usually looks more vivid than [constant " -"ENV_TONE_MAPPER_REINHARD]." -msgstr "" -"Usa il mappatore dei toni filmico. In questo modo si evita il ritaglio dei " -"punti più luminosi, con un'immagine risultante che solitamente appare più " -"vivida di [constant ENV_TONE_MAPPER_REINHARD]." - -msgid "" -"Use the Academy Color Encoding System tonemapper. ACES is slightly more " -"expensive than other options, but it handles bright lighting in a more " -"realistic fashion by desaturating it as it becomes brighter. ACES typically " -"has a more contrasted output compared to [constant ENV_TONE_MAPPER_REINHARD] " -"and [constant ENV_TONE_MAPPER_FILMIC].\n" -"[b]Note:[/b] This tonemapping operator is called \"ACES Fitted\" in Godot 3.x." -msgstr "" -"Usa il mappatore dei toni Academy Color Encoding System. ACES è leggermente " -"più costoso di altre opzioni, ma gestisce l'illuminazione intensa in modo più " -"realistico, desaturandola man mano che diventa più luminosa. Un risultato in " -"ACES in genere appare più contrastato rispetto a [constant " -"ENV_TONE_MAPPER_REINHARDT] e [constant ENV_TONE_MAPPER_FILMIC].\n" -"[b]Nota:[/b] Questo operatore di mappatore dei toni è chiamato \"ACES " -"Fitted\" in Godot 3.x." - msgid "" "Lowest quality of roughness filter for screen-space reflections. Rough " "materials will not have blurrier screen-space reflections compared to smooth " @@ -130187,21 +129725,6 @@ msgstr "" "Un'implementazione di riserva del server di testo di Godot, senza supporto " "per BiDi e layout complessi di testo." -msgid "" -"A fallback implementation of Godot's text server. This fallback is faster " -"than [TextServerAdvanced] for processing a lot of text, but it does not " -"support BiDi and complex text layout.\n" -"[b]Note:[/b] This text server is not part of official Godot binaries. If you " -"want to use it, compile the engine with the option " -"[code]module_text_server_fb_enabled=yes[/code]." -msgstr "" -"Un'implementazione di riserva del server di testo di Godot. Questo server è " -"più veloce di [TextServerAdvanced] per l'elaborazione di molto testo, ma non " -"supporta BiDi e layout complessi di testo.\n" -"[b]Nota:[/b] Questo server di testo non fa parte dei binari ufficiali di " -"Godot. Se vuoi usarlo, compila il motore con l'opzione " -"[code]module_text_server_fb_enabled=yes[/code]." - msgid "A singleton for managing [TextServer] implementations." msgstr "Un singleton per la gestione delle implementazioni di [TextServer]." @@ -130397,36 +129920,6 @@ msgstr "" "Una singola risorsa texture che consiste di più immagini separate. Ogni " "immagine ha le stesse dimensioni e lo stesso numero di livelli mipmap." -msgid "" -"A Texture2DArray is different from a Texture3D: The Texture2DArray does not " -"support trilinear interpolation between the [Image]s, i.e. no blending. See " -"also [Cubemap] and [CubemapArray], which are texture arrays with specialized " -"cubemap functions.\n" -"A Texture2DArray is also different from an [AtlasTexture]: In a " -"Texture2DArray, all images are treated separately. In an atlas, the regions " -"(i.e. the single images) can be of different sizes. Furthermore, you usually " -"need to add a padding around the regions, to prevent accidental UV mapping to " -"more than one region. The same goes for mipmapping: Mipmap chains are handled " -"separately for each layer. In an atlas, the slicing has to be done manually " -"in the fragment shader.\n" -"To create such a texture file yourself, reimport your image files using the " -"Godot Editor import presets." -msgstr "" -"Un Texture2DArray è diverso da un Texture3D: il Texture2DArray non supporta " -"l'interpolazione trilineare tra le [Image], ovvero nessuna fusione. Vedi " -"anche [Cubemap] e [CubemapArray], che sono array di texture con funzioni di " -"cubemap specializzate.\n" -"Un Texture2DArray è anche diverso da un [AtlasTexture]: in un Texture2DArray, " -"tutte le immagini sono trattate separatamente. In un atlante, le regioni " -"(ovvero le singole immagini) possono avere dimensioni diverse. Inoltre, di " -"solito è necessario aggiungere un imbottitura attorno alle regioni, per " -"evitare una mappatura UV accidentale su più di una regione. Lo stesso vale " -"per il mipmapping: le catene di mipmap sono gestite separatamente per ogni " -"livello. In un atlante, la suddivisione deve essere eseguita manualmente " -"nello shader dei frammenti.\n" -"Per creare autonomamente un file di texture di questo tipo, reimporta i file " -"di immagine attraverso i preset di importazione dell'editor di Godot." - msgid "" "Creates a placeholder version of this resource ([PlaceholderTexture2DArray])." msgstr "" @@ -132306,27 +131799,6 @@ msgstr "" msgid "Node for 2D tile-based maps." msgstr "Nodo per mappe basate su tasselli 2D." -msgid "" -"Node for 2D tile-based maps. Tilemaps use a [TileSet] which contain a list of " -"tiles which are used to create grid-based maps. A TileMap may have several " -"layers, layouting tiles on top of each other.\n" -"For performance reasons, all TileMap updates are batched at the end of a " -"frame. Notably, this means that scene tiles from a " -"[TileSetScenesCollectionSource] may be initialized after their parent. This " -"is only queued when inside the scene tree.\n" -"To force an update earlier on, call [method update_internals]." -msgstr "" -"Nodo per mappe basate su tasselli 2D. Le tilemap utilizzano un [TileSet] che " -"contiene un elenco di tasselli che sono utilizzati per creare mappe basate su " -"griglia. Una TileMap può avere diversi livelli, disponendo i tasselli uno " -"sopra l'altro.\n" -"Per motivi di prestazioni, tutti gli aggiornamenti di TileMap sono " -"raggruppati alla fine di un frame. In particolare, ciò significa che i " -"tasselli di scena da un [TileSetScenesCollectionSource] possono essere " -"inizializzate dopo il loro genitore. Ciò viene messo in coda solo quando si " -"trova all'interno dell'albero della scena.\n" -"Per forzare un aggiornamento in anticipo, chiamare [method update_internals]." - msgid "Using Tilemaps" msgstr "Utilizzo dei Tilemap" @@ -132942,30 +132414,6 @@ msgstr "Nascondi sempre." msgid "Always show." msgstr "Mostra sempre." -msgid "" -"Node for 2D tile-based maps. A [TileMapLayer] uses a [TileSet] which contain " -"a list of tiles which are used to create grid-based maps. Unlike the " -"[TileMap] node, which is deprecated, [TileMapLayer] has only one layer of " -"tiles. You can use several [TileMapLayer] to achieve the same result as a " -"[TileMap] node.\n" -"For performance reasons, all TileMap updates are batched at the end of a " -"frame. Notably, this means that scene tiles from a " -"[TileSetScenesCollectionSource] may be initialized after their parent. This " -"is only queued when inside the scene tree.\n" -"To force an update earlier on, call [method update_internals]." -msgstr "" -"Nodo per mappe basate su tasselli 2D. Un [TileMapLayer] utilizza un [TileSet] " -"che contiene un elenco di tasselli che sono utilizzati per creare mappe " -"basate su griglia. A differenza del nodo [TileMap], che è deprecato, " -"[TileMapLayer] ha un solo livello di tasselli. Puoi utilizzare diversi " -"[TileMapLayer] per ottenere lo stesso risultato di un nodo [TileMap].\n" -"Per motivi di prestazioni, tutti gli aggiornamenti di TileMap sono " -"raggruppati alla fine di un frame. In particolare, ciò significa che i " -"tasselli di scena da un [TileSetScenesCollectionSource] possono essere " -"inizializzate dopo il loro genitore. Ciò viene messo in coda solo quando si " -"trova all'interno dell'albero della scena.\n" -"Per forzare un aggiornamento in anticipo, chiamare [method update_internals]." - msgid "" "Called with a [TileData] object about to be used internally by the " "[TileMapLayer], allowing its modification at runtime.\n" @@ -139525,15 +138973,6 @@ msgstr "" "Equivalente al risultato di [method @GlobalScope.atan2] quando chiamato con " "[member y] e [member x] del vettore come parametri: [code]atan2(y, x)[/code]." -msgid "" -"Returns the angle to the given vector, in radians.\n" -"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" -"vector2_angle_to.png]Illustration of the returned angle.[/url]" -msgstr "" -"Restituisce l'angolo rispetto al vettore indicato, in radianti.\n" -"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" -"vector2_angle_to.png]Illustrazione dell'angolo restituito.[/url]" - msgid "" "Returns the angle between the line connecting the two points and the X axis, " "in radians.\n" @@ -149517,6 +148956,9 @@ msgstr "" "Restituisce [code]true[/code] se la finestra è attualmente incorporata in " "un'altra finestra." +msgid "Returns [code]true[/code] if layout is right-to-left." +msgstr "Restituisce [code]true[/code] se il layout è da destra a sinistra." + msgid "" "Returns [code]true[/code] if the window can be maximized (the maximize button " "is enabled)." @@ -150320,6 +149762,10 @@ msgstr "" "Direzione automatica del layout, determinata dalla direzione del layout della " "finestra genitore." +msgid "Automatic layout direction, determined from the current locale." +msgstr "" +"Direzione di layout automatica, determinata dalla localizzazione attuale." + msgid "Initial window position is determined by [member position]." msgstr "" "La posizione iniziale della finestra è determinata da [member position]." diff --git a/engine/doc/translations/ta.po b/engine/doc/translations/ta.po index f2a00ee0..dac9f2e6 100644 --- a/engine/doc/translations/ta.po +++ b/engine/doc/translations/ta.po @@ -13949,31 +13949,6 @@ msgstr "" "சிபியு பயன்பாடு அதிகரித்துள்ளது மற்றும் சிபியு ஐத் தொடர முடியாவிட்டால் ஆடியோ கிராக்கிங் " "அதிக இடர் ஏற்படுகிறது." -msgid "" -"The sample rate to use (in Hz). Higher values are more demanding for the CPU " -"to generate, but result in better quality.\n" -"In games, common sample rates in use are [code]11025[/code], [code]16000[/" -"code], [code]22050[/code], [code]32000[/code], [code]44100[/code], and " -"[code]48000[/code].\n" -"According to the [url=https://en.wikipedia.org/wiki/" -"Nyquist%E2%80%93Shannon_sampling_theorem]Nyquist-Shannon sampling theorem[/" -"url], there is no quality difference to human hearing when going past 40,000 " -"Hz (since most humans can only hear up to ~20,000 Hz, often less). If you are " -"generating lower-pitched sounds such as voices, lower sample rates such as " -"[code]32000[/code] or [code]22050[/code] may be usable with no loss in " -"quality." -msgstr "" -"பயன்படுத்த வேண்டிய மாதிரி வீதம் (HZ இல்). சிபியு ஐ உருவாக்க அதிக மதிப்புகள் அதிக தேவை, " -"ஆனால் சிறந்த தரத்தை ஏற்படுத்துகின்றன.\n" -" விளையாட்டுகளில், பயன்பாட்டில் உள்ள பொதுவான மாதிரி விகிதங்கள் [குறியீடு] 11025 [/" -"குறியீடு], [குறியீடு] 16000 [/குறியீடு], [குறியீடு] 22050 [/குறியீடு], [குறியீடு] " -"32000 [/குறியீடு], [குறியீடு] 44100 [ /குறியீடு], மற்றும் [குறியீடு] 48000 [/" -"குறியீடு].\n" -" . பெரும்பாலான மனிதர்கள் ~ 20,000 எர்ட்ச் வரை மட்டுமே கேட்க முடியும், பெரும்பாலும் " -"குறைவாக). குரல்கள் போன்ற குறைந்த பிட்ச் ஒலிகளை நீங்கள் உருவாக்குகிறீர்கள் என்றால், [குறியீடு] " -"32000 [/குறியீடு] அல்லது [குறியீடு] 22050 [/குறியீடு] போன்ற குறைந்த மாதிரி விகிதங்கள் " -"தரத்தில் எந்த இழப்பும் இல்லாமல் பயன்படுத்தக்கூடியதாக இருக்கலாம்." - msgid "Plays back audio generated using [AudioStreamGenerator]." msgstr "[ஆடியோ ச்ட்ரீம் செனரேட்டர்] ஐப் பயன்படுத்தி உருவாக்கப்பட்ட ஆடியோவை மீண்டும் இயக்கவும்." @@ -15973,28 +15948,6 @@ msgstr "" "[குறியீடு] உண்மை [/குறியீடு] என்றால், தூரத்தைப் பொருட்படுத்தாமல் பொருள் ஒரே அளவில் " "வழங்கப்படுகிறது." -msgid "" -"If [code]true[/code], enables the vertex grow setting. This can be used to " -"create mesh-based outlines using a second material pass and its [member " -"cull_mode] set to [constant CULL_FRONT]. See also [member grow_amount].\n" -"[b]Note:[/b] Vertex growth cannot create new vertices, which means that " -"visible gaps may occur in sharp corners. This can be alleviated by designing " -"the mesh to use smooth normals exclusively using [url=https://wiki.polycount." -"com/wiki/Face_weighted_normals]face weighted normals[/url] in the 3D " -"authoring software. In this case, grow will be able to join every outline " -"together, just like in the original mesh." -msgstr "" -"[குறியீடு] உண்மை [/குறியீடு] என்றால், வெர்டெக்ச் வளரும் அமைப்பை செயல்படுத்துகிறது. " -"இரண்டாவது பொருள் பாசைப் பயன்படுத்தி கண்ணி அடிப்படையிலான திட்டவட்டங்களை உருவாக்க இதைப் " -"பயன்படுத்தலாம் மற்றும் அதன் [உறுப்பினர் CULL_MODE] [நிலையான CULL_FRONT] க்கு " -"அமைக்கப்பட்டுள்ளது. மேலும் காண்க [உறுப்பினர் COWER_AMOUNT].\n" -" [b] குறிப்பு: [/b] வெர்டெக்ச் வளர்ச்சியால் புதிய செங்குத்துகளை உருவாக்க முடியாது, " -"அதாவது கூர்மையான மூலைகளில் புலப்படும் இடைவெளிகள் ஏற்படக்கூடும். [Url = https: //wiki." -"polycount.com/wiki/face_weighted_normals] முகம் எடையுள்ள இயல்புகளை [/url] " -"பயன்படுத்துவதற்கு பிரத்தியேகமாக மென்மையான இயல்பானங்களைப் பயன்படுத்த மெச் வடிவமைப்பதன் மூலம் " -"இதைத் தணிக்க முடியும். இந்த விசயத்தில், அசல் கண்ணி போலவே, க்ரோ ஒவ்வொரு அவுட்லைனையும் " -"ஒன்றாக சேர முடியும்." - msgid "" "Grows object vertices in the direction of their normals. Only effective if " "[member grow] is [code]true[/code]." @@ -20252,27 +20205,6 @@ msgstr "" " .\n" " ." -msgid "" -"Draws a dashed line from a 2D point to another, with a given color and width. " -"See also [method draw_multiline] and [method draw_polyline].\n" -"If [param width] is negative, then a two-point primitives will be drawn " -"instead of a four-point ones. This means that when the CanvasItem is scaled, " -"the line parts will remain thin. If this behavior is not desired, then pass a " -"positive [param width] like [code]1.0[/code].\n" -"If [param antialiased] is [code]true[/code], half transparent \"feathers\" " -"will be attached to the boundary, making outlines smooth.\n" -"[b]Note:[/b] [param antialiased] is only effective if [param width] is " -"greater than [code]0.0[/code]." -msgstr "" -"கொடுக்கப்பட்ட வண்ணம் மற்றும் அகலத்துடன், 2 டி புள்ளியிலிருந்து இன்னொரு இடத்திற்கு ஒரு கோடு " -"வரைகிறது. [முறை Draw_multiline] மற்றும் [முறை Draw_polyline] ஐயும் காண்க.\n" -" [பரம் அகலம்] எதிர்மறையாக இருந்தால், நான்கு புள்ளிகளுக்கு பதிலாக இரண்டு-புள்ளி " -"பழமையானவை வரையப்படும். இதன் பொருள் கேன்வாசிடெம் அளவிடப்படும்போது, வரி பாகங்கள் " -"மெல்லியதாக இருக்கும். இந்த நடத்தை விரும்பவில்லை என்றால், [குறியீடு] 1.0 [/குறியீடு] போன்ற " -"நேர்மறையான [பாரம் அகலத்தை] அனுப்பவும்.\n" -" .\n" -" ." - msgid "" "After submitting all animations slices via [method draw_animation_slice], " "this function can be used to revert drawing to its default state (all " @@ -20315,23 +20247,6 @@ msgstr "" " dst.a = montulate.a + dst.a * (1.0 - மாடுலேட்.\n" " [/codeBlock]" -msgid "" -"Draws a line from a 2D point to another, with a given color and width. It can " -"be optionally antialiased. See also [method draw_multiline] and [method " -"draw_polyline].\n" -"If [param width] is negative, then a two-point primitive will be drawn " -"instead of a four-point one. This means that when the CanvasItem is scaled, " -"the line will remain thin. If this behavior is not desired, then pass a " -"positive [param width] like [code]1.0[/code]." -msgstr "" -"கொடுக்கப்பட்ட வண்ணம் மற்றும் அகலத்துடன் 2 டி புள்ளியிலிருந்து இன்னொரு இடத்திற்கு ஒரு கோட்டை " -"வரைகிறது. இது விருப்பமாக ஆன்டியாலியாச் செய்யப்படலாம். [முறை Draw_multiline] மற்றும் " -"[முறை Draw_polyline] ஐயும் காண்க.\n" -" [பரம் அகலம்] எதிர்மறையாக இருந்தால், நான்கு புள்ளிகளுக்கு பதிலாக இரண்டு-புள்ளி " -"பழமையானது வரையப்படும். இதன் பொருள் கேன்வாசிடெம் அளவிடப்படும்போது, வரி மெல்லியதாக " -"இருக்கும். இந்த நடத்தை விரும்பவில்லை என்றால், [குறியீடு] 1.0 [/குறியீடு] போன்ற நேர்மறையான " -"[பாரம் அகலத்தை] அனுப்பவும்." - msgid "" "Draws a [Mesh] in 2D, using the provided texture. See [MeshInstance2D] for " "related documentation." @@ -27158,10 +27073,6 @@ msgstr "" "[முறை viewport.gui_is_drag_successful] க்கு மாற்றாக.\n" " [நிலையான node.notification_drag_end] உடன் சிறப்பாகப் பயன்படுத்தப்படுகிறது." -msgid "Returns [code]true[/code] if layout is right-to-left." -msgstr "" -"தளவமைப்பு வலதுபுறமாக இடமளித்திருந்தால் [குறியீடு] உண்மை [/குறியீடு] ஐ வழங்குகிறது." - msgid "Give up the focus. No other control will be able to receive input." msgstr "கவனத்தை விட்டுவிடுங்கள். வேறு எந்த கட்டுப்பாடும் உள்ளீட்டைப் பெற முடியாது." @@ -27619,13 +27530,6 @@ msgstr "" "அதன் தற்போதைய அளவை விட அதிகமாக மாற்றப்பட்டால் கட்டுப்பாடு வளர வேண்டும், ஏனெனில் " "கட்டுப்பாடு எப்போதும் குறைந்தபட்ச அளவு இருக்க வேண்டும்." -msgid "" -"Controls layout direction and text writing direction. Right-to-left layouts " -"are necessary for certain languages (e.g. Arabic and Hebrew)." -msgstr "" -"தளவமைப்பு திசையையும் உரை எழுதும் திசையையும் கட்டுப்படுத்துகிறது. சில மொழிகளுக்கு (எ." -"கா. அரபு மற்றும் எபிரேய) வலது-இடது தளவமைப்புகள் தேவை." - msgid "" "If [code]true[/code], automatically converts code line numbers, list indices, " "[SpinBox] and [ProgressBar] values from the Western Arabic (0..9) to the " @@ -28130,9 +28034,6 @@ msgstr "" "அல்ல.\n" " ." -msgid "Sent when control layout direction is changed." -msgstr "கட்டுப்பாட்டு தளவமைப்பு திசை மாற்றப்படும் போது அனுப்பப்பட்டது." - msgid "" "Show the system's arrow mouse cursor when the user hovers the node. Use with " "[member mouse_default_cursor_shape]." @@ -28521,9 +28422,6 @@ msgstr "" "தானியங்கி தளவமைப்பு திசை, பெற்றோர் கட்டுப்பாட்டு தளவமைப்பு திசையிலிருந்து " "தீர்மானிக்கப்படுகிறது." -msgid "Automatic layout direction, determined from the current locale." -msgstr "தானியங்கி தளவமைப்பு திசை, தற்போதைய இடத்திலிருந்து தீர்மானிக்கப்படுகிறது." - msgid "Left-to-right layout direction." msgstr "இடது முதல் வலது தளவமைப்பு திசை." @@ -49914,13 +49812,6 @@ msgid "" msgstr "" "திரை-விண்வெளி பிரதிபலிப்புகளுக்கான அதிகபட்ச படிகள். அதிக மதிப்புகள் மெதுவாக உள்ளன." -msgid "" -"The default exposure used for tonemapping. Higher values result in a brighter " -"image. See also [member tonemap_white]." -msgstr "" -"டான்மாப்பிங்கிற்கு பயன்படுத்தப்படும் இயல்புநிலை வெளிப்பாடு. அதிக மதிப்புகள் பிரகாசமான " -"படத்தை விளைவிக்கின்றன. [உறுப்பினர் டோன்மேப்_வைட்] ஐயும் காண்க." - msgid "" "The tonemapping mode to use. Tonemapping is the process that \"converts\" HDR " "values to be suitable for rendering on an LDR display. (Godot doesn't support " @@ -50181,38 +50072,6 @@ msgstr "" msgid "Use the [Sky] for reflections regardless of what the background is." msgstr "பின்னணி என்ன என்பதைப் பொருட்படுத்தாமல் பிரதிபலிப்புகளுக்கு [வானம்] பயன்படுத்தவும்." -msgid "" -"Linear tonemapper operator. Reads the linear data and passes it on " -"unmodified. This can cause bright lighting to look blown out, with noticeable " -"clipping in the output colors." -msgstr "" -"நேரியல் டான்மாப்பர் ஆபரேட்டர். நேரியல் தரவைப் படித்து, அதை மாற்றியமைக்காமல் கடந்து " -"செல்கிறது. இது வெளியீட்டு வண்ணங்களில் குறிப்பிடத்தக்க கிளிப்பிங் மூலம், பிரகாசமான " -"விளக்குகள் வெடிக்கும்." - -msgid "" -"Filmic tonemapper operator. This avoids clipping bright highlights, with a " -"resulting image that usually looks more vivid than [constant " -"TONE_MAPPER_REINHARDT]." -msgstr "" -"ஃபிலிம் டான்மாப்பர் ஆபரேட்டர். இது பிரகாசமான சிறப்பம்சங்களை கிளிப்பிங் தவிர்க்கிறது, இதன் " -"விளைவாக [நிலையான டோன்_மாப்பர்_ரீன்ஆர்ட்] ஐ விட தெளிவாகக் காணப்படுகிறது." - -msgid "" -"Use the Academy Color Encoding System tonemapper. ACES is slightly more " -"expensive than other options, but it handles bright lighting in a more " -"realistic fashion by desaturating it as it becomes brighter. ACES typically " -"has a more contrasted output compared to [constant TONE_MAPPER_REINHARDT] and " -"[constant TONE_MAPPER_FILMIC].\n" -"[b]Note:[/b] This tonemapping operator is called \"ACES Fitted\" in Godot 3.x." -msgstr "" -"அகாடமி வண்ண குறியாக்க அமைப்பு டோன்மாப்பரைப் பயன்படுத்தவும். மற்ற விருப்பங்களை விட ஏசச் " -"சற்று விலை உயர்ந்தது, ஆனால் பிரகாசமான விளக்குகளை மிகவும் யதார்த்தமான பாணியில் " -"கையாளுகிறது, அது பிரகாசமாக மாறும் போது அதைத் தூண்டுகிறது. [நிலையான " -"done_mapper_reinhardt] மற்றும் [நிலையான டோன்_மாப்பர்_ஃபில்மிக்] உடன் ஒப்பிடும்போது ACE " -"கள் பொதுவாக மிகவும் மாறுபட்ட வெளியீட்டைக் கொண்டுள்ளன.\n" -" ." - msgid "" "Additive glow blending mode. Mostly used for particles, glows (bloom), lens " "flare, bright sources." @@ -58535,31 +58394,6 @@ msgstr "" msgid "Reads one chunk from the response." msgstr "பதிலில் இருந்து ஒரு பகுதியைப் படிக்கிறது." -msgid "" -"Sends a raw request to the connected host.\n" -"The URL parameter is usually just the part after the host, so for " -"[code]https://somehost.com/index.php[/code], it is [code]/index.php[/code]. " -"When sending requests to an HTTP proxy server, it should be an absolute URL. " -"For [constant HTTPClient.METHOD_OPTIONS] requests, [code]*[/code] is also " -"allowed. For [constant HTTPClient.METHOD_CONNECT] requests, it should be the " -"authority component ([code]host:port[/code]).\n" -"Headers are HTTP request headers. For available HTTP methods, see [enum " -"Method].\n" -"Sends the body data raw, as a byte array and does not encode it in any way." -msgstr "" -"இணைக்கப்பட்ட ஓச்டுக்கு ஒரு மூல கோரிக்கையை அனுப்புகிறது.\n" -" முகவரி அளவுரு வழக்கமாக ஓச்டுக்குப் பிறகு ஒரு பகுதியாகும், எனவே [குறியீடு] https://" -"somehost.com/index.php [/code] க்கு, இது [குறியீடு]/index.php [/code] ஆகும். " -"HTTP பதிலாள் சேவையகத்திற்கு கோரிக்கைகளை அனுப்பும்போது, அது ஒரு முழுமையான முகவரி ஆக " -"இருக்க வேண்டும். [நிலையான httpclient.method_options] கோரிக்கைகளுக்கு, [குறியீடு]*[/" -"குறியீடு] அனுமதிக்கப்படுகிறது. [நிலையான httpclient.method_connect] " -"கோரிக்கைகளுக்கு, இது அதிகாரக் கூறு ([குறியீடு] ஓச்ட்: துறைமுகம் [/குறியீடு]) ஆக இருக்க " -"வேண்டும்.\n" -" தலைப்புகள் HTTP கோரிக்கை தலைப்புகள். கிடைக்கக்கூடிய HTTP முறைகளுக்கு, [ENUM முறை] ஐப் " -"பார்க்கவும்.\n" -" உடல் தரவு பச்சையாக, ஒரு பைட் வரிசையாக அனுப்புகிறது மற்றும் அதை எந்த வகையிலும் " -"குறியாக்கம் செய்யாது." - msgid "" "Sets the proxy server for HTTP requests.\n" "The proxy server is unset if [param host] is empty or [param port] is -1." @@ -60674,20 +60508,6 @@ msgstr "" ". நேரடியாகப் பயன்படுத்த முடியாது, ஆனால் பெறப்பட்ட வள வகைகளை அணுகுவதற்குத் தேவையான " "அனைத்து செயல்பாடுகளையும் கொண்டுள்ளது. [Stecture3D] ஐயும் காண்க." -msgid "" -"Creates an [ImageTextureLayered] from an array of [Image]s. See [method Image." -"create] for the expected data format. The first image decides the width, " -"height, image format and mipmapping setting. The other images [i]must[/i] " -"have the same width, height, image format and mipmapping setting.\n" -"Each [Image] represents one [code]layer[/code]." -msgstr "" -"[படம்] களின் வரிசையில் இருந்து ஒரு [இமேச்டெக்ச்டுரேலேயர்டு] உருவாக்குகிறது. " -"எதிர்பார்க்கப்படும் தரவு வடிவமைப்பிற்கு [முறை படம்.இர்ரியேட்] ஐப் பார்க்கவும். முதல் படம் " -"அகலம், உயரம், பட வடிவம் மற்றும் மிப்மாப்பிங் அமைப்பை தீர்மானிக்கிறது. மற்ற படங்கள் [i] " -"வேண்டும் [/i] அதே அகலம், உயரம், பட வடிவம் மற்றும் மிப்மாப்பிங் அமைப்பு ஆகியவற்றைக் " -"கொண்டிருக்க வேண்டும்.\n" -" ஒவ்வொரு [படம்] ஒரு [குறியீடு] அடுக்கு [/குறியீடு] ஐ குறிக்கிறது." - msgid "" "Replaces the existing [Image] data at the given [param layer] with this new " "image.\n" @@ -60975,23 +60795,6 @@ msgstr "" "செய்யும். இருப்பினும், நிகழ்வு கையாளுதலின் நேரத்தின் மீது துல்லியமான கட்டுப்பாட்டை நீங்கள் " "விரும்பும் மேம்பட்ட நிகழ்வுகளில் இது பயனுள்ளதாக இருக்கும்." -msgid "" -"Returns the acceleration in m/s² of the device's accelerometer sensor, if the " -"device has one. Otherwise, the method returns [constant Vector3.ZERO].\n" -"Note this method returns an empty [Vector3] when running from the editor even " -"when your device has an accelerometer. You must export your project to a " -"supported device to read values from the accelerometer.\n" -"[b]Note:[/b] This method only works on Android and iOS. On other platforms, " -"it always returns [constant Vector3.ZERO]." -msgstr "" -"சாதனத்தில் ஒன்று இருந்தால், சாதனத்தின் முடுக்கமானி சென்சாரின் m/s² இல் முடுக்கம் " -"வழங்குகிறது. இல்லையெனில், முறை திரும்பும் [நிலையான vecter3.zero].\n" -" உங்கள் சாதனத்தில் முடுக்கமானி இருக்கும்போது கூட எடிட்டரிலிருந்து இயங்கும் போது இந்த முறை " -"வெற்று [வெக்டர் 3] ஐ வழங்குகிறது என்பதை நினைவில் கொள்க. முடுக்கமானி இருந்து மதிப்புகளைப் " -"படிக்க உங்கள் திட்டத்தை ஆதரிக்கப்பட்ட சாதனத்திற்கு ஏற்றுமதி செய்ய வேண்டும்.\n" -" [b] குறிப்பு: [/b] இந்த முறை ஆண்ட்ராய்டு மற்றும் ஐஇமு இல் மட்டுமே வேலை செய்கிறது. மற்ற " -"தளங்களில், இது எப்போதும் [நிலையான vecter3.zero] திரும்பும்." - msgid "" "Returns a value between 0 and 1 representing the raw intensity of the given " "action, ignoring the action's deadzone. In most cases, you should use [method " @@ -61040,30 +60843,6 @@ msgstr "" msgid "Returns the currently assigned cursor shape (see [enum CursorShape])." msgstr "தற்போது ஒதுக்கப்பட்ட கர்சர் வடிவத்தை வழங்குகிறது ([எனம் கர்சர்சேப்] ஐப் பார்க்கவும்)." -msgid "" -"Returns the gravity in m/s² of the device's accelerometer sensor, if the " -"device has one. Otherwise, the method returns [constant Vector3.ZERO].\n" -"[b]Note:[/b] This method only works on Android and iOS. On other platforms, " -"it always returns [constant Vector3.ZERO]." -msgstr "" -"சாதனத்தில் ஒன்று இருந்தால், சாதனத்தின் முடுக்கமானி சென்சாரின் M/s² இல் ஈர்ப்பு விசையை " -"வழங்குகிறது. இல்லையெனில், முறை திரும்பும் [நிலையான vecter3.zero].\n" -" [b] குறிப்பு: [/b] இந்த முறை ஆண்ட்ராய்டு மற்றும் ஐஇமு இல் மட்டுமே வேலை செய்கிறது. மற்ற " -"தளங்களில், இது எப்போதும் [நிலையான vecter3.zero] திரும்பும்." - -msgid "" -"Returns the rotation rate in rad/s around a device's X, Y, and Z axes of the " -"gyroscope sensor, if the device has one. Otherwise, the method returns " -"[constant Vector3.ZERO].\n" -"[b]Note:[/b] This method only works on Android and iOS. On other platforms, " -"it always returns [constant Vector3.ZERO]." -msgstr "" -"சாதனத்தில் ஒன்று இருந்தால், கைரோச்கோப் சென்சாரின் சாதனத்தின் ஃச், ஒய் மற்றும் சட் அச்சுகளைச் " -"சுற்றி RAD/s இல் சுழற்சி வீதத்தை வழங்குகிறது. இல்லையெனில், முறை திரும்பும் [நிலையான " -"vecter3.zero].\n" -" [b] குறிப்பு: [/b] இந்த முறை ஆண்ட்ராய்டு மற்றும் ஐஇமு இல் மட்டுமே வேலை செய்கிறது. மற்ற " -"தளங்களில், இது எப்போதும் [நிலையான vecter3.zero] திரும்பும்." - msgid "" "Returns the current value of the joypad axis at given index (see [enum " "JoyAxis])." @@ -61110,19 +60889,6 @@ msgstr "" "சுட்டி விரைவு ஒவ்வொரு 0.1 கள் மட்டுமே கணக்கிடப்படுகிறது. எனவே, சுட்டி விரைவு சுட்டி " "இயக்கங்களை பின்தங்கியிருக்கும்." -msgid "" -"Returns the magnetic field strength in micro-Tesla for all axes of the " -"device's magnetometer sensor, if the device has one. Otherwise, the method " -"returns [constant Vector3.ZERO].\n" -"[b]Note:[/b] This method only works on Android and iOS. On other platforms, " -"it always returns [constant Vector3.ZERO]." -msgstr "" -"சாதனத்தில் ஒன்று இருந்தால், சாதனத்தின் காந்தமாமீட்டர் சென்சாரின் அனைத்து அச்சுகளுக்கும் மைக்ரோ-" -"டெச்லாவில் காந்தப்புல வலிமையை வழங்குகிறது. இல்லையெனில், முறை திரும்பும் [நிலையான " -"vecter3.zero].\n" -" [b] குறிப்பு: [/b] இந்த முறை ஆண்ட்ராய்டு மற்றும் ஐஇமு இல் மட்டுமே வேலை செய்கிறது. மற்ற " -"தளங்களில், இது எப்போதும் [நிலையான vecter3.zero] திரும்பும்." - msgid "" "Returns mouse buttons as a bitmask. If multiple mouse buttons are pressed at " "the same time, the bits are added together. Equivalent to [method " @@ -68996,34 +68762,6 @@ msgstr "[குறியீடு] உண்மை [/குறியீடு] msgid "Generic mobile VR implementation." msgstr "பொதுவான மொபைல் வி.ஆர் செயல்படுத்தல்." -msgid "" -"This is a generic mobile VR implementation where you need to provide details " -"about the phone and HMD used. It does not rely on any existing framework. " -"This is the most basic interface we have. For the best effect, you need a " -"mobile phone with a gyroscope and accelerometer.\n" -"Note that even though there is no positional tracking, the camera will assume " -"the headset is at a height of 1.85 meters. You can change this by setting " -"[member eye_height].\n" -"You can initialize this interface as follows:\n" -"[codeblock]\n" -"var interface = XRServer.find_interface(\"Native mobile\")\n" -"if interface and interface.initialize():\n" -" get_viewport().use_xr = true\n" -"[/codeblock]" -msgstr "" -"இது ஒரு பொதுவான மொபைல் விஆர் செயல்படுத்தல் ஆகும், அங்கு நீங்கள் தொலைபேசி மற்றும் எச்எம்டி " -"பற்றிய விவரங்களை வழங்க வேண்டும். இது தற்போதுள்ள எந்த கட்டமைப்பையும் நம்பவில்லை. இது நம்மிடம் " -"உள்ள மிக அடிப்படை இடைமுகம். சிறந்த விளைவுக்கு, உங்களுக்கு கைரோச்கோப் மற்றும் முடுக்கமானி " -"கொண்ட மொபைல் போன் தேவை.\n" -" நிலை கண்காணிப்பு இல்லை என்றாலும், கேமரா எட்செட் 1.85 மீட்டர் உயரத்தில் இருப்பதாக " -"கருதுகிறது என்பதை நினைவில் கொள்க. [உறுப்பினர் கண்_ஐட்] அமைப்பதன் மூலம் இதை மாற்றலாம்.\n" -" இந்த இடைமுகத்தை நீங்கள் பின்வருமாறு துவக்கலாம்:\n" -" [கோட் பிளாக்]\n" -" var இடைமுகம் = xrserver.find_interface (\"சொந்த மொபைல்\")\n" -" இடைமுகம் மற்றும் இடைமுகம் என்றால். initialize ():\n" -" get_viewport (). use_xr = உண்மை\n" -" [/codeBlock]" - msgid "" "The distance between the display and the lenses inside of the device in " "centimeters." @@ -84352,9 +84090,6 @@ msgstr "" "தொடர்புடையதாக இருக்கும் (அதாவது [குறியீடு] அர். .slice (0, arr.size () - 2) [/" "code])." -msgid "Returns a [PackedByteArray] with each string encoded as bytes." -msgstr "ஒவ்வொரு சரத்தையும் பைட்டுகளாக குறியிடப்பட்ட ஒரு [பேக் பைட் ஏர்ரே] ஐ வழங்குகிறது." - msgid "" "Returns a new [PackedStringArray] with contents of [param right] added at the " "end of this array. For better performance, consider using [method " @@ -85213,13 +84948,6 @@ msgstr "" msgid "[Texture2D] to be applied to the [PanoramaSkyMaterial]." msgstr "[Stecture2d] [பனோரமாச்கிமேட்டரியல்] க்கு பயன்படுத்தப்பட வேண்டும்." -msgid "" -"This node is meant to replace [ParallaxBackground] and [ParallaxLayer]. The " -"implementation may change in the future." -msgstr "" -"இந்த முனை [இடமாறு பேக் மைதானம்] மற்றும் [இடமாறு லேயர்] ஆகியவற்றை மாற்றுவதாகும். " -"செயல்படுத்தல் எதிர்காலத்தில் மாறக்கூடும்." - msgid "A node used to create a parallax scrolling background." msgstr "இடமாறு ச்க்ரோலிங் பின்னணியை உருவாக்க பயன்படுத்தப்படும் ஒரு முனை." @@ -96163,13 +95891,6 @@ msgstr "" " . சாளரங்கள் 10 மற்றும் அதற்குப் பிறகு, OS இன் தனியுரிமை அமைப்புகளில் மைக்ரோஃபோனை அணுக " "பயன்பாடுகள் அனுமதிக்கப்படுவதை உறுதிசெய்க." -msgid "" -"The mixing rate used for audio (in Hz). In general, it's better to not touch " -"this and leave it to the host operating system." -msgstr "" -"ஆடியோவுக்கு (HZ இல்) பயன்படுத்தப்படும் கலவை வீதம். பொதுவாக, இதைத் தொட்டு புரவலன் இயக்க " -"முறைமைக்கு விட்டுவிடாமல் இருப்பது நல்லது." - msgid "" "Safer override for [member audio/driver/mix_rate] in the Web platform. Here " "[code]0[/code] means \"let the browser choose\" (since some browsers do not " @@ -98909,20 +98630,6 @@ msgstr "" "அமைப்பை விரும்ப வேண்டும். ச்கிரிப்ட்டில் மாற்றங்கள் இல்லாமல், பழைய தர்க்கத்தை நம்பியிருக்கும் " "பழைய திட்டங்களை ஆதரிப்பதை செயல்படுத்துவதே மரபு நடத்தை." -msgid "" -"Specifies the tablet driver to use. If left empty, the default driver will be " -"used.\n" -"[b]Note:[/b] The driver in use can be overridden at runtime via the [code]--" -"tablet-driver[/code] [url=$DOCS_URL/tutorials/editor/command_line_tutorial." -"html]command line argument[/url]." -msgstr "" -"பயன்படுத்த டேப்லெட் டிரைவரைக் குறிப்பிடுகிறது. காலியாக இருந்தால், இயல்புநிலை இயக்கி " -"பயன்படுத்தப்படும்.\n" -" . /url]." - -msgid "Override for [member input_devices/pen_tablet/driver] on Windows." -msgstr "சாளரங்களில் [உறுப்பினர் உள்ளீடு_டெவிசச்/பென்_டப்லெட்/டிரைவர்] க்கு மேலெழுதவும்." - msgid "" "If [code]true[/code], long press events on an Android touchscreen are " "transformed into right click events." @@ -98960,34 +98667,6 @@ msgstr "" "[குறியீடு] உண்மை [/குறியீடு] என்றால், சுட்டியைக் சொடுக்கு செய்யும் போது அல்லது " "இழுக்கும்போது தொடு உள்ளீட்டு நிகழ்வுகளை அனுப்புகிறது." -msgid "" -"The locale to fall back to if a translation isn't available in a given " -"language. If left empty, [code]en[/code] (English) will be used." -msgstr "" -"கொடுக்கப்பட்ட மொழியில் மொழிபெயர்ப்பு கிடைக்கவில்லை என்றால் மீண்டும் விழும் இடம். காலியாக " -"இருந்தால், [குறியீடு] என் [/code] (ஆங்கிலம்) பயன்படுத்தப்படும்." - -msgid "" -"If [code]true[/code], text server break iteration rule sets, dictionaries and " -"other optional data are included in the exported project.\n" -"[b]Note:[/b] \"ICU / HarfBuzz / Graphite\" text server data includes " -"dictionaries for Burmese, Chinese, Japanese, Khmer, Lao and Thai as well as " -"Unicode Standard Annex #29 and Unicode Standard Annex #14 word and line " -"breaking rules. Data is about 4 MB large.\n" -"[b]Note:[/b] \"Fallback\" text server does not use additional data." -msgstr "" -"[குறியீடு] உண்மை [/குறியீடு] என்றால், உரை சேவையக முறிவு மறு செய்கை விதி தொகுப்புகள், " -"அகராதிகள் மற்றும் பிற விருப்ப தரவு ஏற்றுமதி செய்யப்பட்ட திட்டத்தில் சேர்க்கப்பட்டுள்ளன.\n" -" . விதிகளை மீறுதல். தரவு சுமார் 4 எம்பி பெரியது.\n" -" [b] குறிப்பு: [/b] \"குறைவடையும்\" உரை சேவையகம் கூடுதல் தரவைப் பயன்படுத்தாது." - -msgid "" -"If non-empty, this locale will be used when running the project from the " -"editor." -msgstr "" -"காலியாக இல்லாதிருந்தால், எடிட்டரிடமிருந்து திட்டத்தை இயக்கும் போது இந்த இடம் " -"பயன்படுத்தப்படும்." - msgid "" "Double vowels in strings during pseudolocalization to simulate the " "lengthening of text due to localization." @@ -99004,17 +98683,6 @@ msgstr "" "மதிப்பு பெரும்பாலான நடைமுறை நோக்கங்களுக்காக போதுமானது, மேலும் ஒவ்வொரு சரத்தின் " "நீளத்தையும் 30%அதிகரிக்கும்." -msgid "" -"If [code]true[/code], emulate bidirectional (right-to-left) text when " -"pseudolocalization is enabled. This can be used to spot issues with RTL " -"layout and UI mirroring that will crop up if the project is localized to RTL " -"languages such as Arabic or Hebrew." -msgstr "" -"[குறியீடு] உண்மை [/குறியீடு] என்றால், சூடோலோகலைசேசன் இயக்கப்பட்டிருக்கும் போது இருதரப்பு " -"(வலது-இடத்திற்கு) உரையைப் பின்பற்றுங்கள். அரபு அல்லது எபிரேய மொழிகளான ஆர்டிஎல் " -"மொழிகளுக்கு இந்த திட்டம் மொழிபெயர்க்கப்பட்டால், ஆர்.டி.எல் தளவமைப்பு மற்றும் யுஐ " -"பிரதிபலிப்புடன் சிக்கல்களைக் கண்டறிய இதைப் பயன்படுத்தலாம்." - msgid "" "Replace all characters in the string with [code]*[/code]. Useful for finding " "non-localizable strings." @@ -99058,12 +98726,6 @@ msgstr "" "டைமில் சூடோலோகலைசேசனை மாற்ற, அதற்கு பதிலாக [உறுப்பினர் மொழிபெயர்ப்பர்." "பீயுடோலோகலைசேசன்_இனபிள்] ஐப் பயன்படுத்தவும்." -msgid "" -"Force layout direction and text writing direction to RTL for all controls." -msgstr "" -"அனைத்து கட்டுப்பாடுகளுக்கும் ஆர்.டி.எல் -க்கு தளவமைப்பு திசை மற்றும் உரை எழுதும் திசையை " -"கட்டாயப்படுத்துங்கள்." - msgid "" "If [code]true[/code], root node will use [constant Node." "AUTO_TRANSLATE_MODE_ALWAYS], otherwise [constant Node." @@ -99082,35 +98744,6 @@ msgstr "" msgid "Root node default layout direction." msgstr "ரூட் முனை இயல்புநிலை தளவமைப்பு திசை." -msgid "" -"Specifies the [TextServer] to use. If left empty, the default will be used.\n" -"\"ICU / HarfBuzz / Graphite\" is the most advanced text driver, supporting " -"right-to-left typesetting and complex scripts (for languages like Arabic, " -"Hebrew, etc.). The \"Fallback\" text driver does not support right-to-left " -"typesetting and complex scripts.\n" -"[b]Note:[/b] The driver in use can be overridden at runtime via the [code]--" -"text-driver[/code] [url=$DOCS_URL/tutorials/editor/command_line_tutorial." -"html]command line argument[/url].\n" -"[b]Note:[/b] There is an additional [code]Dummy[/code] text driver available, " -"which disables all text rendering and font-related functionality. This driver " -"is not listed in the project settings, but it can be enabled when running the " -"editor or project using the [code]--text-driver Dummy[/code] [url=$DOCS_URL/" -"tutorials/editor/command_line_tutorial.html]command line argument[/url]." -msgstr "" -"பயன்படுத்த [டெக்ச்டர்வர்] குறிப்பிடுகிறது. காலியாக இருந்தால், இயல்புநிலை " -"பயன்படுத்தப்படும்.\n" -" \"ஐ.சி.யு / ஆர்பச் / கிராஃபைட்\" என்பது மிகவும் மேம்பட்ட உரை இயக்கி, வலதுபுறம்-இடது " -"தட்டச்சு மற்றும் சிக்கலான ச்கிரிப்ட்களை ஆதரிக்கிறது (அரபு, ஈப்ரு போன்ற மொழிகளுக்கு). " -"\"குறைவடையும்\" உரை இயக்கி வலது-இடது தட்டச்சு மற்றும் சிக்கலான ச்கிரிப்ட்களை " -"ஆதரிக்காது.\n" -" . /url].\n" -" [b] குறிப்பு: [/b] கூடுதல் [குறியீடு] போலி [/குறியீடு] உரை இயக்கி கிடைக்கிறது, இது " -"அனைத்து உரை வழங்குதல் மற்றும் எழுத்துரு தொடர்பான செயல்பாடுகளை முடக்குகிறது. இந்த இயக்கி " -"திட்ட அமைப்புகளில் பட்டியலிடப்படவில்லை, ஆனால் [குறியீடு]-உரை-இயக்கி போலி [/குறியீடு] " -"[url = $ docs_url/tutorials/editor/editor/command_line_tutorial.html ஐப் " -"பயன்படுத்தி எடிட்டர் அல்லது திட்டத்தை இயக்கும் போது இதை இயக்க முடியும்] கட்டளை வரி " -"உரையாடல் [/url]." - msgid "" "Optional name for the 2D navigation layer 1. If left empty, the layer will " "display as \"Layer 1\"." @@ -101113,18 +100746,6 @@ msgstr "" "மதிப்புகளையும் மாற்ற வேண்டும். இந்த தேவையான மாற்றம் விகிதாசாரமாக இல்லை மற்றும் வழக்குக்கு " "வேறுபடுகிறது." -msgid "" -"If [code]true[/code], the 3D physics server runs on a separate thread, making " -"better use of multi-core CPUs. If [code]false[/code], the 3D physics server " -"runs on the main thread. Running the physics server on a separate thread can " -"increase performance, but restricts API access to only physics process." -msgstr "" -"[குறியீடு] உண்மை [/குறியீடு] என்றால், 3D இயற்பியல் சேவையகம் ஒரு தனி நூலில் இயங்குகிறது, " -"இது மல்டி கோர் சிபியு களை சிறப்பாகப் பயன்படுத்துகிறது. [குறியீடு] பொய் [/குறியீடு] " -"என்றால், 3D இயற்பியல் சேவையகம் முதன்மையான நூலில் இயங்குகிறது. இயற்பியல் சேவையகத்தை ஒரு " -"தனி நூலில் இயக்குவது செயல்திறனை அதிகரிக்கும், ஆனால் இயற்பியல் செயல்முறைக்கு மட்டுமே பநிஇ " -"அணுகலை கட்டுப்படுத்துகிறது." - msgid "" "Threshold angular velocity under which a 3D physics body will be considered " "inactive. See [constant PhysicsServer3D." @@ -101700,33 +101321,6 @@ msgstr "" "உண்மையான மதிப்புகள் அமைக்கப்பட்டவற்றிலிருந்து வேறுபடலாம். மேலும் விரிவான மூடுபனிக்கு ஒரு " "பெரிய அளவை அமைக்கவும், சிறந்த செயல்திறனுக்காக சிறிய அளவை அமைக்கவும்." -msgid "" -"Sets the driver to be used by the renderer when using the Compatibility " -"renderer. This property can not be edited directly, instead, set the driver " -"using the platform-specific overrides." -msgstr "" -"பொருந்தக்கூடிய ரெண்டரரைப் பயன்படுத்தும் போது ரெண்டரரால் பயன்படுத்த வேண்டிய இயக்கி " -"அமைக்கிறது. இந்த சொத்தை நேரடியாகத் திருத்த முடியாது, அதற்கு பதிலாக, இயங்குதள-" -"குறிப்பிட்ட மேலெழுதல்களைப் பயன்படுத்தி இயக்கியை அமைக்கவும்." - -msgid "Android override for [member rendering/gl_compatibility/driver]." -msgstr "[உறுப்பினர் ரெண்டரிங்/GL_COMPATIBILITY/DRIVER] க்கான ஆண்ட்ராய்டு மேலெழுதல்." - -msgid "iOS override for [member rendering/gl_compatibility/driver]." -msgstr "[உறுப்பினர் ரெண்டரிங்/GL_COMPATIBILITY/DRIVER] க்கு ஐஇமு மேலெழுதவும்." - -msgid "LinuxBSD override for [member rendering/gl_compatibility/driver]." -msgstr "[உறுப்பினர் ரெண்டரிங்/GL_COMPATIBILITY/DRIVER] க்கு LinuxBSD மேலெழுதல்." - -msgid "macOS override for [member rendering/gl_compatibility/driver]." -msgstr "[உறுப்பினர் ரெண்டரிங்/GL_COMPATIBILITY/DRIVER] க்கு MACOS மேலெழுதும்." - -msgid "Web override for [member rendering/gl_compatibility/driver]." -msgstr "[உறுப்பினர் ரெண்டரிங்/GL_COMPATIBILITY/PROVIRE] க்கான வலை மேலெழுதும்." - -msgid "Windows override for [member rendering/gl_compatibility/driver]." -msgstr "[உறுப்பினர் ரெண்டரிங்/GL_COMPATIBILITY/DRIVER] க்கு சாளரங்கள் மேலெழுதும்." - msgid "" "If [code]true[/code], the compatibility renderer will fall back to ANGLE if " "native OpenGL is not supported or the device is listed in [member rendering/" @@ -102483,39 +102077,6 @@ msgstr "" " காட்சிகளின் சிக்கலைப் பொறுத்து, இந்த மதிப்பு குறைக்கப்படலாம் அல்லது உயர்த்தப்பட " "வேண்டியிருக்கலாம்." -msgid "Android override for [member rendering/rendering_device/driver]." -msgstr "[உறுப்பினர் ரெண்டரிங்/ரெண்டரிங்_டெவிச்/டிரைவர்] க்கான அண்ட்ராய்டு மேலெழுதும்." - -msgid "iOS override for [member rendering/rendering_device/driver]." -msgstr "[உறுப்பினர் ரெண்டரிங்/ரெண்டரிங்_டெவிச்/டிரைவர்] க்கு ஐஇமு மேலெழுதும்." - -msgid "LinuxBSD override for [member rendering/rendering_device/driver]." -msgstr "[உறுப்பினர் ரெண்டரிங்/ரெண்டரிங்_டெவிச்/டிரைவர்] க்கு லினக்ச் பிஎச்டி மேலெழுதும்." - -msgid "macOS override for [member rendering/rendering_device/driver]." -msgstr "[உறுப்பினர் ரெண்டரிங்/ரெண்டரிங்_டெவிச்/டிரைவர்] க்கு மேகோச் மேலெழுதும்." - -msgid "Windows override for [member rendering/rendering_device/driver]." -msgstr "[உறுப்பினர் ரெண்டரிங்/ரெண்டரிங்_டெவிச்/டிரைவர்] க்கு சாளரங்கள் மேலெழுதும்." - -msgid "" -"If [code]true[/code], the forward renderer will fall back to Direct3D 12 if " -"Vulkan is not supported.\n" -"[b]Note:[/b] This setting is implemented only on Windows." -msgstr "" -"[குறியீடு] உண்மை [/குறியீடு] என்றால், வல்கன் ஆதரிக்கப்படாவிட்டால் முன்னோக்கி ரெண்டரர் டைரக்ட் " -"3 டி 12 க்கு திரும்பும்.\n" -" [b] குறிப்பு: [/b] இந்த அமைப்பு சாளரங்களில் மட்டுமே செயல்படுத்தப்படுகிறது." - -msgid "" -"If [code]true[/code], the forward renderer will fall back to Vulkan if " -"Direct3D 12 is not supported.\n" -"[b]Note:[/b] This setting is implemented only on Windows." -msgstr "" -"[குறியீடு] உண்மை [/குறியீடு] என்றால், டைரக்ட் 3 டி 12 ஆதரிக்கப்படாவிட்டால் முன்னோக்கி " -"ரெண்டரர் மீண்டும் வல்கானுக்கு விழும்.\n" -" [b] குறிப்பு: [/b] இந்த அமைப்பு சாளரங்களில் மட்டுமே செயல்படுத்தப்படுகிறது." - msgid "" "Enable the pipeline cache that is saved to disk if the graphics API supports " "it.\n" @@ -115989,37 +115550,6 @@ msgstr "சுற்றுப்புற ஒளிக்கு ஒரு கு msgid "Disable reflections." msgstr "பிரதிபலிப்புகளை முடக்கு." -msgid "" -"Output color as they came in. This can cause bright lighting to look blown " -"out, with noticeable clipping in the output colors." -msgstr "" -"வெளியீட்டு நிறம் அவை வந்தவுடன். இது வெளியீட்டு வண்ணங்களில் குறிப்பிடத்தக்க கிளிப்பிங் மூலம், " -"பிரகாசமான விளக்குகள் வெடிக்கும்." - -msgid "" -"Use the filmic tonemapper. This avoids clipping bright highlights, with a " -"resulting image that usually looks more vivid than [constant " -"ENV_TONE_MAPPER_REINHARD]." -msgstr "" -"ஃபிலிமிக் டான்மாப்பரைப் பயன்படுத்தவும். இது பிரகாசமான சிறப்பம்சங்களை கிளிப்பிங் " -"தவிர்க்கிறது, இதன் விளைவாக [நிலையான env_tone_mapper_reinhard] ஐ விட தெளிவாகக் " -"காணப்படுகிறது." - -msgid "" -"Use the Academy Color Encoding System tonemapper. ACES is slightly more " -"expensive than other options, but it handles bright lighting in a more " -"realistic fashion by desaturating it as it becomes brighter. ACES typically " -"has a more contrasted output compared to [constant ENV_TONE_MAPPER_REINHARD] " -"and [constant ENV_TONE_MAPPER_FILMIC].\n" -"[b]Note:[/b] This tonemapping operator is called \"ACES Fitted\" in Godot 3.x." -msgstr "" -"அகாடமி வண்ண குறியாக்க அமைப்பு டோன்மாப்பரைப் பயன்படுத்தவும். மற்ற விருப்பங்களை விட ஏசச் " -"சற்று விலை உயர்ந்தது, ஆனால் பிரகாசமான விளக்குகளை மிகவும் யதார்த்தமான பாணியில் " -"கையாளுகிறது, அது பிரகாசமாக மாறும் போது அதைத் தூண்டுகிறது. [நிலையான " -"env_tone_mapper_reinhard] மற்றும் [நிலையான env_tone_mapper_filmic] உடன் " -"ஒப்பிடும்போது ACES பொதுவாக மிகவும் மாறுபட்ட வெளியீட்டைக் கொண்டுள்ளது.\n" -" ." - msgid "" "Lowest quality of roughness filter for screen-space reflections. Rough " "materials will not have blurrier screen-space reflections compared to smooth " @@ -136275,21 +135805,6 @@ msgstr "" "BIDI மற்றும் சிக்கலான உரை தளவமைப்புக்கு உதவி இல்லாமல், கோடோட்டின் உரை சேவையகத்தின் " "குறைவடையும் செயல்படுத்தல்." -msgid "" -"A fallback implementation of Godot's text server. This fallback is faster " -"than [TextServerAdvanced] for processing a lot of text, but it does not " -"support BiDi and complex text layout.\n" -"[b]Note:[/b] This text server is not part of official Godot binaries. If you " -"want to use it, compile the engine with the option " -"[code]module_text_server_fb_enabled=yes[/code]." -msgstr "" -"கோடோட்டின் உரை சேவையகத்தின் குறைவு செயல்படுத்தல். இந்த குறைவடையும் [டெக்ச்டெர்வர்ட்விடன்ச்] ஐ " -"விட நிறைய உரையை செயலாக்குவதை விட வேகமானது, ஆனால் இது BIDI மற்றும் சிக்கலான உரை " -"தளவமைப்பை ஆதரிக்காது.\n" -" [b] குறிப்பு: [/b] இந்த உரை சேவையகம் அதிகாரப்பூர்வ கோடோட் பைனரிகளின் ஒரு பகுதியாக " -"இல்லை. நீங்கள் அதைப் பயன்படுத்த விரும்பினால், [குறியீடு] MODULE_TEXT_SERVER_FB_ENABLED " -"= ஆம் [/குறியீடு] என்ற விருப்பத்துடன் இயந்திரத்தை தொகுக்கவும்." - msgid "A singleton for managing [TextServer] implementations." msgstr "[டெக்ச்டர்வர்] செயலாக்கங்களை நிர்வகிப்பதற்கான ஒரு சிங்கிள்டன்." @@ -136470,35 +135985,6 @@ msgstr "" "பல, தனி படங்களைக் கொண்ட ஒற்றை அமைப்பு சான்று. ஒவ்வொரு படத்திற்கும் ஒரே பரிமாணங்கள் மற்றும் " "MIPMAP அளவுகளின் எண்ணிக்கை உள்ளது." -msgid "" -"A Texture2DArray is different from a Texture3D: The Texture2DArray does not " -"support trilinear interpolation between the [Image]s, i.e. no blending. See " -"also [Cubemap] and [CubemapArray], which are texture arrays with specialized " -"cubemap functions.\n" -"A Texture2DArray is also different from an [AtlasTexture]: In a " -"Texture2DArray, all images are treated separately. In an atlas, the regions " -"(i.e. the single images) can be of different sizes. Furthermore, you usually " -"need to add a padding around the regions, to prevent accidental UV mapping to " -"more than one region. The same goes for mipmapping: Mipmap chains are handled " -"separately for each layer. In an atlas, the slicing has to be done manually " -"in the fragment shader.\n" -"To create such a texture file yourself, reimport your image files using the " -"Godot Editor import presets." -msgstr "" -"ஒரு stecture2darray ஒரு அமைப்பு 3d இலிருந்து வேறுபட்டது: stecture2darray " -"[படத்திற்கு] இடையே Trilinear இடைக்கணிப்பை ஆதரிக்காது, அதாவது கலப்பு இல்லை. சிறப்பு " -"க்யூபேப் செயல்பாடுகளைக் கொண்ட அமைப்பு வரிசைகள் [கியூபேமேப்] மற்றும் [கியூபேமபாரே] " -"ஆகியவற்றைக் காண்க.\n" -" ஒரு Systure2Darray ஒரு [அட்லாச்ட் டெக்ச்டெர்] இலிருந்து வேறுபட்டது: ஒரு அமைப்பு " -"2DARRAY இல், எல்லா படங்களும் தனித்தனியாக நடத்தப்படுகின்றன. ஒரு அட்லசில், பிராந்தியங்கள் " -"(அதாவது ஒற்றை படங்கள்) வெவ்வேறு அளவுகளில் இருக்கலாம். மேலும், ஒன்றுக்கு மேற்பட்ட " -"பகுதிகளுக்கு தற்செயலான புற ஊதா வரைபடத்தைத் தடுக்க, நீங்கள் வழக்கமாக பிராந்தியங்களைச் " -"சுற்றி ஒரு திணிப்பைச் சேர்க்க வேண்டும். MipMapping க்கும் இதுவே செல்கிறது: ஒவ்வொரு " -"அடுக்குக்கும் MIPMAP சங்கிலிகள் தனித்தனியாக கையாளப்படுகின்றன. ஒரு அட்லசில், துண்டு " -"துண்டாக துண்டுகளை கைமுறையாக செய்ய வேண்டும்.\n" -" அத்தகைய அமைப்பு கோப்பை நீங்களே உருவாக்க, கோடோட் எடிட்டர் இறக்குமதி முன்னமைவுகளைப் " -"பயன்படுத்தி உங்கள் படக் கோப்புகளை திருப்பிச் செலுத்துங்கள்." - msgid "" "Creates a placeholder version of this resource ([PlaceholderTexture2DArray])." msgstr "இந்த வளத்தின் ஒதுக்கிட பதிப்பை உருவாக்கவும் ([பிளேச்ஓல்டர்கள் Strecure2Darray])." @@ -138311,25 +137797,6 @@ msgstr "" msgid "Node for 2D tile-based maps." msgstr "2 டி ஓடு அடிப்படையிலான வரைபடங்களுக்கான முனை." -msgid "" -"Node for 2D tile-based maps. Tilemaps use a [TileSet] which contain a list of " -"tiles which are used to create grid-based maps. A TileMap may have several " -"layers, layouting tiles on top of each other.\n" -"For performance reasons, all TileMap updates are batched at the end of a " -"frame. Notably, this means that scene tiles from a " -"[TileSetScenesCollectionSource] may be initialized after their parent. This " -"is only queued when inside the scene tree.\n" -"To force an update earlier on, call [method update_internals]." -msgstr "" -"2 டி ஓடு அடிப்படையிலான வரைபடங்களுக்கான முனை. கட்டம் அடிப்படையிலான வரைபடங்களை " -"உருவாக்கப் பயன்படும் ஓடுகளின் பட்டியலைக் கொண்ட [டைல்செட்] டிலேமாப்ச் பயன்படுத்துகிறது. ஒரு " -"டில்மேப்பில் பல அடுக்குகள் இருக்கலாம், ஒருவருக்கொருவர் மேல் ஓடுகளை தளர்த்தலாம்.\n" -" செயல்திறன் காரணங்களுக்காக, அனைத்து டிலேமேப் புதுப்பிப்புகளும் ஒரு சட்டத்தின் முடிவில் " -"தொகுக்கப்பட்டுள்ளன. குறிப்பிடத்தக்க வகையில், ஒரு [டைல்செட்ச் சென்ச்கோலெக்செக்சர்ச்] இன் காட்சி " -"ஓடுகள் அவற்றின் பெற்றோருக்குப் பிறகு துவக்கப்படலாம் என்பதே இதன் பொருள். காட்சி மரத்திற்குள் " -"இருக்கும்போது மட்டுமே இது வரிசையில் நிற்கிறது.\n" -" முன்னர் புதுப்பிப்பை கட்டாயப்படுத்த, [முறை புதுப்பிப்பு_ இன்டர்னல்கள்] ஐ அழைக்கவும்." - msgid "Using Tilemaps" msgstr "டைல்மாப்சைப் பயன்படுத்துதல்" @@ -138954,29 +138421,6 @@ msgstr "எப்போதும் மறைக்க." msgid "Always show." msgstr "எப்போதும் காட்டு." -msgid "" -"Node for 2D tile-based maps. A [TileMapLayer] uses a [TileSet] which contain " -"a list of tiles which are used to create grid-based maps. Unlike the " -"[TileMap] node, which is deprecated, [TileMapLayer] has only one layer of " -"tiles. You can use several [TileMapLayer] to achieve the same result as a " -"[TileMap] node.\n" -"For performance reasons, all TileMap updates are batched at the end of a " -"frame. Notably, this means that scene tiles from a " -"[TileSetScenesCollectionSource] may be initialized after their parent. This " -"is only queued when inside the scene tree.\n" -"To force an update earlier on, call [method update_internals]." -msgstr "" -"2 டி ஓடு அடிப்படையிலான வரைபடங்களுக்கான முனை. ஒரு [டில்மாபிளேயர்] ஒரு [டைல்செட்] ஐப் " -"பயன்படுத்துகிறது, இதில் கட்டம் அடிப்படையிலான வரைபடங்களை உருவாக்க பயன்படும் ஓடுகளின் " -"பட்டியலைக் கொண்டுள்ளது. [டிலேமேப்] முனையைப் போலல்லாமல், இது நீக்கப்பட்டது, [டில்மாபிளேயர்] " -"ஓடுகளின் ஒரு அடுக்கு மட்டுமே உள்ளது. [டிலேமேப்] முனையின் அதே முடிவை அடைய நீங்கள் பல " -"[டில்மாபிளேயர்] ஐப் பயன்படுத்தலாம்.\n" -" செயல்திறன் காரணங்களுக்காக, அனைத்து டிலேமேப் புதுப்பிப்புகளும் ஒரு சட்டத்தின் முடிவில் " -"தொகுக்கப்பட்டுள்ளன. குறிப்பிடத்தக்க வகையில், ஒரு [டைல்செட்ச் சென்ச்கோலெக்செக்சர்ச்] இன் காட்சி " -"ஓடுகள் அவற்றின் பெற்றோருக்குப் பிறகு துவக்கப்படலாம் என்பதே இதன் பொருள். காட்சி மரத்திற்குள் " -"இருக்கும்போது மட்டுமே இது வரிசையில் நிற்கிறது.\n" -" முன்னர் புதுப்பிப்பை கட்டாயப்படுத்த, [முறை புதுப்பிப்பு_ இன்டர்னல்கள்] ஐ அழைக்கவும்." - msgid "" "Called with a [TileData] object about to be used internally by the " "[TileMapLayer], allowing its modification at runtime.\n" @@ -145501,14 +144945,6 @@ msgstr "" " திசையனின் [உறுப்பினர் y] மற்றும் [உறுப்பினர் x] ஆகியவற்றுடன் அளவுருக்களாக அழைக்கும்போது " "[முறை @globalscope.atan2] இன் முடிவுக்கு சமம்: [குறியீடு] ATAN2 (y, x) [/code]." -msgid "" -"Returns the angle to the given vector, in radians.\n" -"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" -"vector2_angle_to.png]Illustration of the returned angle.[/url]" -msgstr "" -"கொடுக்கப்பட்ட திசையனுக்கு, ரேடியன்களில் கோணத்தை வழங்குகிறது.\n" -" ." - msgid "" "Returns the angle between the line connecting the two points and the X axis, " "in radians.\n" @@ -154954,6 +154390,10 @@ msgstr "" "சாளரம் தற்போது மற்றொரு சாளரத்தில் பதிக்கப்பட்டிருந்தால் [குறியீடு] உண்மை [/குறியீடு] " "திரும்பும்." +msgid "Returns [code]true[/code] if layout is right-to-left." +msgstr "" +"தளவமைப்பு வலதுபுறமாக இடமளித்திருந்தால் [குறியீடு] உண்மை [/குறியீடு] ஐ வழங்குகிறது." + msgid "" "Returns [code]true[/code] if the window can be maximized (the maximize button " "is enabled)." @@ -155692,6 +155132,9 @@ msgid "" msgstr "" "தானியங்கி தளவமைப்பு திசை, பெற்றோர் சாளர தளவமைப்பு திசையிலிருந்து தீர்மானிக்கப்படுகிறது." +msgid "Automatic layout direction, determined from the current locale." +msgstr "தானியங்கி தளவமைப்பு திசை, தற்போதைய இடத்திலிருந்து தீர்மானிக்கப்படுகிறது." + msgid "Initial window position is determined by [member position]." msgstr "ஆரம்ப சாளர நிலை [உறுப்பினர் நிலை] ஆல் தீர்மானிக்கப்படுகிறது." diff --git a/engine/doc/translations/uk.po b/engine/doc/translations/uk.po index 526165e9..02aa56a5 100644 --- a/engine/doc/translations/uk.po +++ b/engine/doc/translations/uk.po @@ -25,12 +25,14 @@ # Oleksandr <galaxynarium@gmail.com>, 2024. # Максим Горпиніч <mgorpinic2005@gmail.com>, 2024. # Bezruchenko Simon <worcposj44@gmail.com>, 2024. +# Максим Горпиніч <maksimgorpinic2005a@gmail.com>, 2025. +# ghKoty <kirabovkun09@gmail.com>, 2025. msgid "" msgstr "" "Project-Id-Version: Godot Engine class reference\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" -"PO-Revision-Date: 2024-10-13 08:16+0000\n" -"Last-Translator: Максим Горпиніч <mgorpinic2005@gmail.com>\n" +"PO-Revision-Date: 2025-02-26 08:20+0000\n" +"Last-Translator: Максим Горпиніч <maksimgorpinic2005a@gmail.com>\n" "Language-Team: Ukrainian <https://hosted.weblate.org/projects/godot-engine/" "godot-class-reference/uk/>\n" "Language: uk\n" @@ -39,10 +41,10 @@ msgstr "" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: Weblate 5.8-dev\n" +"X-Generator: Weblate 5.10.2-dev\n" msgid "All classes" -msgstr "Всі класси" +msgstr "Всі класи" msgid "Globals" msgstr "Глобальні" @@ -54,7 +56,7 @@ msgid "Resources" msgstr "Ресурси" msgid "Editor-only" -msgstr "Редактор тільки" +msgstr "Тільки для редактору" msgid "Other objects" msgstr "Інші об'єкти" @@ -277,9 +279,23 @@ msgstr "Ця властивіть теми може бути змінена аб msgid "Built-in GDScript constants, functions, and annotations." msgstr "Вбудовані константи, функції та анотації GDScript." +msgid "" +"A list of utility functions and annotations accessible from any script " +"written in GDScript.\n" +"For the list of global functions and constants that can be accessed in any " +"scripting language, see [@GlobalScope]." +msgstr "" +"Список службових функцій і анотацій, доступних з будь-якого сценарію, " +"написаного на GDScript. \n" +"Список глобальних функцій і констант, до яких можна отримати доступ будь-якою " +"мовою сценаріїв, див. [@GlobalScope]." + msgid "GDScript exports" msgstr "Експорт GDScript" +msgid "Use [method Color.from_rgba8] instead." +msgstr "Натомість використовуйте [method Color.from_rgba8]." + msgid "" "Returns a [Color] constructed from red ([param r8]), green ([param g8]), blue " "([param b8]), and optionally alpha ([param a8]) integer channels, each " @@ -364,6 +380,23 @@ msgstr "" "[b]Нотатка:[/b] [method assert] є ключовим словом, а не функцією. Тому ви не " "можете викликати її як [Callable] або використовувати у виразах." +msgid "" +"Returns a single character (as a [String]) of the given Unicode code point " +"(which is compatible with ASCII code).\n" +"[codeblock]\n" +"var upper = char(65) # upper is \"A\"\n" +"var lower = char(65 + 32) # lower is \"a\"\n" +"var euro = char(8364) # euro is \"€\"\n" +"[/codeblock]" +msgstr "" +"Повертає один символ (як [String]) заданого коду Unicode (який сумісний із " +"кодом ASCII). \n" +"[codeblock] \n" +"var upper = char(65) # upper це \"A\" \n" +"var lower = char(65 + 32) # lower це \"a\" \n" +"var euro = char(8364) # євро це \"€\" \n" +"[/codeblock]" + msgid "Use [method @GlobalScope.type_convert] instead." msgstr "Натомість використовуйте [method @GlobalScope.type_convert]." @@ -381,15 +414,22 @@ msgid "" msgstr "" "Перетворює [param what] на [param type] найкращим чином. Параметр [param " "type] використовує значення [enum Variant.Type].\n" -"[кодовий блок]\n" -"змінна a = [4, 2,5, 1,2]\n" -"print(a є масив) # Друкує true\n" +"[codeblock]\n" +"var a = [4, 2,5, 1,2]\n" +"print(a is Array) # Друкує true\n" "\n" "var b = convert(a, TYPE_PACKED_BYTE_ARRAY)\n" "print(b) # Виводить [4, 2, 1]\n" -"print(b це масив) # Виводить false\n" +"print(b is Array) # Виводить false\n" "[/codeblock]" +msgid "" +"Consider using [method JSON.to_native] or [method Object.get_property_list] " +"instead." +msgstr "" +"Замість цього можна використовувати [method JSON.to_native] або [method " +"Object.get_property_list]." + msgid "" "Converts a [param dictionary] (created with [method inst_to_dict]) back to an " "Object instance. Can be useful for deserializing." @@ -424,12 +464,12 @@ msgid "" msgstr "" "Повертає масив словників, що представляють поточний стек викликів. Дивіться " "також [метод print_stack].\n" -"[кодовий блок]\n" +"[codeblock]\n" "func _ready():\n" " foo()\n" "\n" " func foo():\n" -" бар()\n" +" bar()\n" "\n" " панель функцій ():\n" " print(get_stack())\n" @@ -437,8 +477,7 @@ msgstr "" " Починаючи з [code]_ready()[/code], [code]bar()[/code] виводить:\n" " [codeblock lang=text]\n" " [{function:bar, line:12, source:res://script.gd}, {function:foo, line:9, " -"source:res://script.gd}, {function:_ready, line:6, джерело: res://script." -"gd}]\n" +"source:res://script.gd}, {function:_ready, line:6, source: res://script.gd}]\n" " [/codeblock]\n" " [b]Примітка:[/b] Ця функція працює, лише якщо запущений екземпляр підключено " "до сервера налагодження (тобто екземпляр редактора). [method get_stack] не " @@ -448,6 +487,131 @@ msgstr "" " [b]Примітка:[/b] Виклик цієї функції з [Thread] не підтримується. Це поверне " "порожній масив." +msgid "" +"Consider using [method JSON.from_native] or [method Object.get_property_list] " +"instead." +msgstr "" +"Замість цього можна використовувати [method JSON.from_native] або [method " +"Object.get_property_list]." + +msgid "" +"Returns the passed [param instance] converted to a Dictionary. Can be useful " +"for serializing.\n" +"[codeblock]\n" +"var foo = \"bar\"\n" +"func _ready():\n" +" var d = inst_to_dict(self)\n" +" print(d.keys())\n" +" print(d.values())\n" +"[/codeblock]\n" +"Prints out:\n" +"[codeblock lang=text]\n" +"[@subpath, @path, foo]\n" +"[, res://test.gd, bar]\n" +"[/codeblock]\n" +"[b]Note:[/b] This function can only be used to serialize objects with an " +"attached [GDScript] stored in a separate file. Objects without an attached " +"script, with a script written in another language, or with a built-in script " +"are not supported.\n" +"[b]Note:[/b] This function is not recursive, which means that nested objects " +"will not be represented as dictionaries. Also, properties passed by reference " +"([Object], [Dictionary], [Array], and packed arrays) are copied by reference, " +"not duplicated." +msgstr "" +"Повертає переданий [примірник param], перетворений на словник. Може бути " +"корисним для серіалізації. \n" +"[codeblock] \n" +"var foo = \"bar\" \n" +"func _ready(): \n" +" var d = inst_to_dict(self) \n" +" print(d.keys()) \n" +" print(d.values()) \n" +"[/codeblock] \n" +"Роздруковує: \n" +"[codeblock lang=text] \n" +"[@subpath, @path, foo] \n" +"[, res://test.gd, bar] \n" +"[/codeblock] \n" +"[b]Примітка:[/b] Цю функцію можна використовувати лише для серіалізації " +"об’єктів із прикріпленим [GDScript], що зберігається в окремому файлі. " +"Об’єкти без прикріпленого сценарію, зі сценарієм, написаним іншою мовою, або " +"з вбудованим сценарієм не підтримуються. \n" +"[b]Примітка:[/b] Ця функція не є рекурсивною, що означає, що вкладені об’єкти " +"не будуть представлені як словники. Крім того, властивості, передані за " +"посиланням ([Object], [Dictionary], [Array] і упаковані масиви), копіюються " +"за посиланням, а не дублюються." + +msgid "" +"Returns [code]true[/code] if [param value] is an instance of [param type]. " +"The [param type] value must be one of the following:\n" +"- A constant from the [enum Variant.Type] enumeration, for example [constant " +"TYPE_INT].\n" +"- An [Object]-derived class which exists in [ClassDB], for example [Node].\n" +"- A [Script] (you can use any class, including inner one).\n" +"Unlike the right operand of the [code]is[/code] operator, [param type] can be " +"a non-constant value. The [code]is[/code] operator supports more features " +"(such as typed arrays). Use the operator instead of this method if you do not " +"need dynamic type checking.\n" +"[b]Examples:[/b]\n" +"[codeblock]\n" +"print(is_instance_of(a, TYPE_INT))\n" +"print(is_instance_of(a, Node))\n" +"print(is_instance_of(a, MyClass))\n" +"print(is_instance_of(a, MyClass.InnerClass))\n" +"[/codeblock]\n" +"[b]Note:[/b] If [param value] and/or [param type] are freed objects (see " +"[method @GlobalScope.is_instance_valid]), or [param type] is not one of the " +"above options, this method will raise a runtime error.\n" +"See also [method @GlobalScope.typeof], [method type_exists], [method Array." +"is_same_typed] (and other [Array] methods)." +msgstr "" +"Повертає [code]true[/code], якщо [param value] є екземпляром [param type]. " +"Значення [param type] має бути одним із таких: \n" +"- Константа з переліку [enum Variant.Type], наприклад [константа TYPE_INT]. \n" +"- Похідний від [Object] клас, який існує в [ClassDB], наприклад [Node]. \n" +"- A [Script] (можна використовувати будь-який клас, включаючи внутрішній). \n" +"На відміну від правого операнда оператора [code]is[/code], [param type] може " +"бути непостійним значенням. Оператор [code]is[/code] підтримує більше функцій " +"(наприклад, типізовані масиви). Використовуйте оператор замість цього методу, " +"якщо вам не потрібна динамічна перевірка типу. \n" +"[b]Приклади:[/b] \n" +"[codeblock] \n" +"print(is_instance_of(a, TYPE_INT)) \n" +"print(is_instance_of(a, Node)) \n" +"print(is_instance_of(a, MyClass)) \n" +"print(is_instance_of(a, MyClass.InnerClass)) \n" +"[/codeblock] \n" +"[b]Примітка:[/b] Якщо [param value] і/або [param type] є звільненими " +"об’єктами (див. [method @GlobalScope.is_instance_valid]), або [param type] не " +"є одним із наведених вище параметрів, цей метод викличе помилку виконання. \n" +"Дивіться також [method @GlobalScope.typeof], [method type_exists], [method " +"Array.is_same_typed] (та інші методи [Array])." + +msgid "" +"Returns the length of the given Variant [param var]. The length can be the " +"character count of a [String] or [StringName], the element count of any array " +"type, or the size of a [Dictionary]. For every other Variant type, a run-time " +"error is generated and execution is stopped.\n" +"[codeblock]\n" +"var a = [1, 2, 3, 4]\n" +"len(a) # Returns 4\n" +"\n" +"var b = \"Hello!\"\n" +"len(b) # Returns 6\n" +"[/codeblock]" +msgstr "" +"Повертає довжину заданого варіанту [param var]. Довжиною може бути кількість " +"символів [String] або [StringName], кількість елементів будь-якого типу " +"масиву або розмір [Dictionary]. Для кожного іншого типу Variant генерується " +"помилка під час виконання, і виконання припиняється. \n" +"[codeblock] \n" +"var a = [1, 2, 3, 4] \n" +"len(a) # Повертає 4 \n" +"\n" +"var b = \"Привіт!\" \n" +"len(b) # Повертає 6 \n" +"[/codeblock]" + msgid "" "Returns a [Resource] from the filesystem located at the absolute [param " "path]. Unless it's already referenced elsewhere (such as in another script or " @@ -493,7 +657,7 @@ msgstr "" " [b]Примітка.[/b] Шляхи до ресурсів можна отримати, клацнувши правою кнопкою " "миші на ресурсі в док-станції FileSystem і вибравши «Копіювати шлях», або " "перетягнувши файл із док-станції FileSystem у поточний сценарій.\n" -" [кодовий блок]\n" +" [codeblock]\n" " # Завантажте сцену під назвою \"main\", розташовану в кореневому каталозі " "проекту, і кешуйте її в змінній.\n" " var main = load(\"res://main.tscn\") # main міститиме ресурс PackedScene.\n" @@ -539,7 +703,7 @@ msgstr "" " [b]Примітка.[/b] Шляхи до ресурсів можна отримати, клацнувши правою кнопкою " "миші на ресурсі на панелі ресурсів і вибравши «Копіювати шлях» або " "перетягнувши файл із док-станції FileSystem у поточний сценарій.\n" -" [кодовий блок]\n" +" [codeblock]\n" " # Створення екземпляра сцени.\n" " var diamond = preload(\"res://diamond.tscn\").instantiate()\n" " [/codeblock]\n" @@ -562,7 +726,7 @@ msgstr "" " Результат у консолі може виглядати так:\n" " [codeblock lang=text]\n" " Тестовий друк\n" -" За адресою: res://test.gd:15:_process()\n" +" At: res://test.gd:15:_process()\n" " [/codeblock]\n" " [b]Примітка:[/b] Виклик цієї функції з [Thread] не підтримується. Це " "натомість надрукує ідентифікатор потоку." @@ -585,7 +749,7 @@ msgstr "" "get_stack].\n" " Результат у консолі може виглядати так:\n" " [codeblock lang=text]\n" -" Кадр 0 - res://test.gd:16 у функції '_process'\n" +" Frame 0 - res://test.gd:16 in function '_process'\n" " [/codeblock]\n" " [b]Примітка:[/b] Ця функція працює, лише якщо запущений екземпляр підключено " "до сервера налагодження (тобто екземпляр редактора). [method print_stack] не " @@ -595,6 +759,106 @@ msgstr "" " [b]Примітка:[/b] Виклик цієї функції з [Thread] не підтримується. Це " "натомість надрукує ідентифікатор потоку." +msgid "" +"Returns an array with the given range. [method range] can be called in three " +"ways:\n" +"[code]range(n: int)[/code]: Starts from 0, increases by steps of 1, and stops " +"[i]before[/i] [code]n[/code]. The argument [code]n[/code] is [b]exclusive[/" +"b].\n" +"[code]range(b: int, n: int)[/code]: Starts from [code]b[/code], increases by " +"steps of 1, and stops [i]before[/i] [code]n[/code]. The arguments [code]b[/" +"code] and [code]n[/code] are [b]inclusive[/b] and [b]exclusive[/b], " +"respectively.\n" +"[code]range(b: int, n: int, s: int)[/code]: Starts from [code]b[/code], " +"increases/decreases by steps of [code]s[/code], and stops [i]before[/i] " +"[code]n[/code]. The arguments [code]b[/code] and [code]n[/code] are " +"[b]inclusive[/b] and [b]exclusive[/b], respectively. The argument [code]s[/" +"code] [b]can[/b] be negative, but not [code]0[/code]. If [code]s[/code] is " +"[code]0[/code], an error message is printed.\n" +"[method range] converts all arguments to [int] before processing.\n" +"[b]Note:[/b] Returns an empty array if no value meets the value constraint (e." +"g. [code]range(2, 5, -1)[/code] or [code]range(5, 5, 1)[/code]).\n" +"[b]Examples:[/b]\n" +"[codeblock]\n" +"print(range(4)) # Prints [0, 1, 2, 3]\n" +"print(range(2, 5)) # Prints [2, 3, 4]\n" +"print(range(0, 6, 2)) # Prints [0, 2, 4]\n" +"print(range(4, 1, -1)) # Prints [4, 3, 2]\n" +"[/codeblock]\n" +"To iterate over an [Array] backwards, use:\n" +"[codeblock]\n" +"var array = [3, 6, 9]\n" +"for i in range(array.size() - 1, -1, -1):\n" +" print(array[i])\n" +"[/codeblock]\n" +"Output:\n" +"[codeblock lang=text]\n" +"9\n" +"6\n" +"3\n" +"[/codeblock]\n" +"To iterate over [float], convert them in the loop.\n" +"[codeblock]\n" +"for i in range (3, 0, -1):\n" +" print(i / 10.0)\n" +"[/codeblock]\n" +"Output:\n" +"[codeblock lang=text]\n" +"0.3\n" +"0.2\n" +"0.1\n" +"[/codeblock]" +msgstr "" +"Повертає масив із заданим діапазоном. [Діапазон методів] можна викликати " +"трьома способами: \n" +"[code]діапазон(n: int)[/code]: починається з 0, збільшується з кроком 1 і " +"зупиняється [i]перед[/i] [code]n[/code]. Аргумент [code]n[/code] є " +"[b]виключним[/b]. \n" +"[code]діапазон(b: int, n: int)[/code]: починається з [code]b[/code], " +"збільшується на крок 1 і зупиняється [i]перед[/i] [code]n[/code]. Аргументи " +"[code]b[/code] і [code]n[/code] є [b]включними[/b] та [b]виключними[/b] " +"відповідно. \n" +"[code]діапазон (b: int, n: int, s: int)[/code]: починається з [code]b[/code], " +"збільшує/зменшується кроками [code]s[/code] і зупиняється [i]перед[/i] " +"[code]n[/code]. Аргументи [code]b[/code] і [code]n[/code] є [b]включними[/b] " +"та [b]виключними[/b] відповідно. Аргумент [code]s[/code] [b]може[/b] бути " +"негативним, але не [code]0[/code]. Якщо [code]s[/code] дорівнює [code]0[/" +"code], друкується повідомлення про помилку. \n" +"[method range] перетворює всі аргументи на [int] перед обробкою. \n" +"[b]Примітка.[/b] Повертає порожній масив, якщо жодне значення не відповідає " +"обмеженню значення (наприклад, [code]range(2, 5, -1)[/code] або " +"[code]range(5, 5, 1)[/code]). \n" +"[b]Приклади:[/b] \n" +"[codeblock] \n" +"print(range(4)) # Виводить [0, 1, 2, 3] \n" +"print(range(2, 5)) # Виводить [2, 3, 4] \n" +"print(range(0, 6, 2)) # Виводить [0, 2, 4] \n" +"print(range(4, 1, -1)) # Виводить [4, 3, 2] \n" +"[/codeblock] \n" +"Щоб виконати ітерацію [Array] у зворотному напрямку, використовуйте: \n" +"[codeblock] \n" +"var array = [3, 6, 9] \n" +"from I in range (array.size() - 1, -1, -1): \n" +" print(масив[i]) \n" +"[/codeblock] \n" +"Вихід: \n" +"[codeblock lang=text] \n" +"9\n" +"6\n" +"3\n" +"[/codeblock] \n" +"Щоб виконати ітерацію [float], перетворіть їх у циклі. \n" +"[codeblock] \n" +"from I in range (3, 0, -1): \n" +" print(i / 10.0) \n" +"[/codeblock] \n" +"Вихід: \n" +"[codeblock lang=text] \n" +"0.3\n" +"0.2\n" +"0.1\n" +"[/codeblock]" + msgid "" "Returns [code]true[/code] if the given [Object]-derived class exists in " "[ClassDB]. Note that [Variant] data types are not registered in [ClassDB].\n" @@ -716,34 +980,34 @@ msgstr "" "Позначте наступну властивість як експортовану (можна редагувати в панелі " "інспектора та зберегти на диску). Щоб керувати типом експортованої " "властивості, використовуйте нотацію підказки типу.\n" -" [кодовий блок]\n" -" розширює вузол\n" +" [codeblock]\n" +" extends Node\n" "\n" -" enum Напрямок {ВЛІВО, ВПРАВО, ВГОРУ, ВНИЗ}\n" +" enum Direction {LEFT, RIGHT, UP, DOWN}\n" "\n" " # Вбудовані типи.\n" -" @export змінна рядок = \"\"\n" +" @export var strint = \"\"\n" " @export var int_number = 5\n" " @export var float_number: float = 5\n" "\n" " # Enums.\n" -" Тип змінної @export: Variant.Type\n" -" @export змінний формат: Image.Format\n" -" @export var direction: Напрямок\n" +" @export variable type: Variant.Type\n" +"@export variable format: Image.Format\n" +"@export var direction: Direction\n" "\n" " # Ресурси.\n" -" @export var image: Зображення\n" -" @export var custom_resource: CustomResource\n" +" @export var image: Image\n" +"@export var custom_resource: CustomResource\n" "\n" " # Вузли.\n" -" @export var node: вузол\n" -" @export var custom_node: CustomNode\n" +" @export var node: node\n" +"@export var custom_node: CustomNode\n" "\n" " # Введені масиви.\n" -" @export var int_array: Масив[int]\n" -" @export var direction_array: Масив[Напрямок]\n" -" @export var image_array: Масив[Зображення]\n" -" @export var node_array: Масив[вузол]\n" +" @export var int_array: Array[int]\n" +"@export var direction_array: Array[Direction]\n" +"@export var image_array: Array[Image]\n" +"@export var node_array: Array[node]\n" " [/codeblock]\n" " [b]Примітка:[/b] Спеціальні ресурси та вузли слід реєструвати як глобальні " "класи за допомогою [code]class_name[/code], оскільки Inspector наразі " @@ -792,9 +1056,9 @@ msgstr "" "[PackedColorArray], не дозволяючи редагувати його прозорість ([member Color." "a]).\n" " Дивіться також [константа PROPERTY_HINT_COLOR_NO_ALPHA].\n" -" [кодовий блок]\n" -" @export_color_no_alpha var dye_color: Колір\n" -" @export_color_no_alpha змінна dye_colors: масив[колір]\n" +" [codeblock]\n" +" @export_color_no_alpha var dye_color: Color \n" +" @export_color_no_alpha var dye_colors: array[color]\n" " [/codeblock]" msgid "" @@ -811,7 +1075,7 @@ msgstr "" "Дозволяє встановити спеціальну підказку, рядок підказки та позначки " "використання для експортованої властивості. Зауважте, що GDScript не виконує " "перевірку, він просто передає параметри до редактора.\n" -" [кодовий блок]\n" +" [codeblock]\n" " @export_custom(PROPERTY_HINT_NONE, \"suffix:m\") suffix var: Vector3\n" " [/codeblock]\n" " [b]Примітка:[/b] Незалежно від значення [param usage] прапор [constant " @@ -834,9 +1098,9 @@ msgstr "" "її вкладеними папками. Перегляньте [анотацію @export_global_dir], щоб " "дозволити вибір із усієї файлової системи.\n" " Дивіться також [константа PROPERTY_HINT_DIR].\n" -" [кодовий блок]\n" -" @export_dir var sprite_folder_path: рядок\n" -" @export_dir var sprite_folder_paths: масив[рядок]\n" +" [codeblock]\n" +" @export_dir var sprite_folder_path: String\n" +" @export_dir var sprite_folder_paths: Array[String]\n" " [/codeblock]" msgid "" @@ -880,29 +1144,30 @@ msgstr "" "допомогою двокрапки. Якщо властивість є [String], тоді значення " "зберігається.\n" " Дивіться також [константа PROPERTY_HINT_ENUM].\n" -" [кодовий блок]\n" -" @export_enum(\"Воїн\", \"Чарівник\", \"Злодій\") var character_class: int\n" -" @export_enum(\"Повільно:30\", \"Середньо:60\", \"Дуже швидко:200\") var " +" [codeblock]\n" +" @export_enum(\"Warrior\", \"Wizard\", \"Thief\") var character_class: int\n" +" @export_enum(\"Slow:30\", \"Medium:60\", \"Very fast:200\") var " "character_speed: int\n" -" @export_enum(\"Ребекка\", \"Мері\", \"Лія\") var character_name: рядок\n" +" @export_enum(\"Rebecca\", \"Mary\", \"Leah\") var character_name: string\n" "\n" -" @export_enum(\"Меч\", \"Спис\", \"Булава\") var character_items: Array[int]\n" +" @export_enum(\"Sword\", \"Spear\", \"Mace\"\") var character_items: " +"Array[int]\n" " @export_enum(\"double_jump\", \"climb\", \"dash\") var character_skills: " "Array[String]\n" " [/codeblock]\n" " Якщо ви хочете встановити початкове значення, ви повинні вказати його явно:\n" -" [кодовий блок]\n" +" [codeblock]\n" " @export_enum(\"Rebecca\", \"Mary\", \"Leah\") var character_name: String = " "\"Rebecca\"\n" " [/codeblock]\n" " Якщо ви хочете використовувати іменовані переліки GDScript, замість цього " "використовуйте [аннотацію @export]:\n" -" [кодовий блок]\n" +" [codeblock]\n" " enum CharacterName {REBECCA, MARY, LEAH}\n" -" @export var character_name: Назва символу\n" +" @export var character_name: Symbol name\n" "\n" -" enum CharacterItem {МЕЧ, СПИС, БУЛАВА}\n" -" @export var character_items: Масив[CharacterItem]\n" +" enum CharacterItem {SWORD, SCRIPT, MACE}\n" +" @export var character_items: Array[CharacterItem]\n" " [/codeblock]" msgid "" @@ -925,11 +1190,11 @@ msgstr "" "зрозумілою для редагування властивостей затухання. [code]\"positive_only\"[/" "code] обмежує значення лише як більше або дорівнює нулю.\n" " Дивіться також [константа PROPERTY_HINT_EXP_EASING].\n" -" [кодовий блок]\n" -" @export_exp_easing змінна швидкість переходу\n" -" @export_exp_easing(\"attenuation\") змінна fading_attenuation\n" -" @export_exp_easing(\"positive_only\") змінна effect_power\n" -" @export_exp_easing var speeds: масив [float]\n" +" [codeblock]\n" +" @export_exp_easing var transition_speed\n" +" @export_exp_easing(\"attenuation\") var fading_attenuation\n" +" @export_exp_easing(\"positive_only\") var effect_power\n" +" @export_exp_easing var speeds: Array [float]\n" " [/codeblock]" msgid "" @@ -953,10 +1218,10 @@ msgstr "" " Якщо надано [param filter], лише відповідні файли будуть доступні для " "вибору.\n" " Дивіться також [константа PROPERTY_HINT_FILE].\n" -" [кодовий блок]\n" -" @export_file var sound_effect_path: рядок\n" -" @export_file(\"*.txt\") var notes_path: рядок\n" -" @export_file var level_paths: масив[рядок]\n" +" [codeblock]\n" +" @export_file var sound_effect_path: String\n" +" @export_file(\"*.txt\") var notes_path: String\n" +" @export_file var level_paths: Array[String]\n" " [/codeblock]" msgid "" @@ -995,17 +1260,17 @@ msgstr "" "зберігати кілька «перевірених» чи [code]true[/code] значень з однією " "властивістю та зручно вибирати їх із док-станції Inspector.\n" " Дивіться також [константа PROPERTY_HINT_FLAGS].\n" -" [кодовий блок]\n" -" @export_flags(\"Вогонь\", \"Вода\", \"Земля\", \"Вітер\") var spell_elements " -"= 0\n" +" [codeblock]\n" +" @export_flags(\"Fire\", \"Water\", \"Earth\", \"Wind\") var spell_elements = " +"0\n" " [/codeblock]\n" " Ви можете додати явні значення за допомогою двокрапки:\n" -" [кодовий блок]\n" -" @export_flags(\"Я:4\", \"Союзники:8\", \"Вороги:16\") var spell_targets = 0\n" +" [codeblock]\n" +"@export_flags(\"Self:4\", \"Allies:8\", \"Self and Allies:12\", \"Foes:16\")\n" " [/codeblock]\n" " Ви також можете комбінувати кілька прапорів:\n" -" [кодовий блок]\n" -" @export_flags(\"Я:4\", \"Союзники:8\", \"Я та союзники:12\", \"Вороги:16\")\n" +" [codeblock]\n" +" @export_flags(\"A:4\", \"Allies:8\", \"Me and Allies:12\", \"Enemies:16\")\n" " var spell_targets = 0\n" " [/codeblock]\n" " [b]Примітка.[/b] Значення прапора має бути не менше [code]1[/code] і не " @@ -1013,14 +1278,14 @@ msgstr "" " [b]Примітка:[/b] На відміну від [аннотації @export_enum], попереднє явне " "значення не враховується. У наступному прикладі A дорівнює 16, B дорівнює 2, " "C дорівнює 4.\n" -" [кодовий блок]\n" +" [codeblock]\n" " @export_flags(\"A:16\", \"B\", \"C\") змінна x\n" " [/codeblock]\n" " Ви також можете використовувати анотацію для [Array][lb][int][rb], " "[PackedByteArray], [PackedInt32Array] і [PackedInt64Array]\n" -" [кодовий блок]\n" -" @export_flags(\"Вогонь\", \"Вода\", \"Земля\", \"Вітер\") var " -"phase_elements: Array[int]\n" +" [codeblock]\n" +" @export_flags(\"Fire\", \"Water\", \"Earth\", \"Wind\") var phase_elements: " +"Array[int]\n" " [/codeblock]" msgid "" @@ -1037,9 +1302,9 @@ msgstr "" "шарів навігації. Віджет у доці Inspector використовуватиме назви шарів, " "визначені в [member ProjectSettings.layer_names/2d_navigation/layer_1].\n" " Дивіться також [константа PROPERTY_HINT_LAYERS_2D_NAVIGATION].\n" -" [кодовий блок]\n" +" [codeblock]\n" " @export_flags_2d_navigation var navigation_layers: int\n" -" @export_flags_2d_navigation var navigation_layers_array: Масив[int]\n" +" @export_flags_2d_navigation var navigation_layers_array: Array[int]\n" " [/codeblock]" msgid "" @@ -1056,9 +1321,9 @@ msgstr "" "фізики. Віджет у доці Inspector використовуватиме назви шарів, визначені в " "[member ProjectSettings.layer_names/2d_physics/layer_1].\n" " Дивіться також [константа PROPERTY_HINT_LAYERS_2D_PHYSICS].\n" -" [кодовий блок]\n" +" [codeblock]\n" " @export_flags_2d_physics змінна physics_layers: int\n" -" @export_flags_2d_physics вар. physics_layers_array: Масив[int]\n" +" @export_flags_2d_physics вар. physics_layers_array: Array[int]\n" " [/codeblock]" msgid "" @@ -1075,9 +1340,9 @@ msgstr "" "візуалізації. Віджет у доці Inspector використовуватиме назви шарів, " "визначені в [member ProjectSettings.layer_names/2d_render/layer_1].\n" " Дивіться також [константа PROPERTY_HINT_LAYERS_2D_RENDER].\n" -" [кодовий блок]\n" +" [codeblock]\n" " @export_flags_2d_render var render_layers: int\n" -" @export_flags_2d_render var render_layers_array: Масив[int]\n" +" @export_flags_2d_render var render_layers_array: Array[int]\n" " [/codeblock]" msgid "" @@ -1094,9 +1359,9 @@ msgstr "" "навігації. Віджет у доці Inspector використовуватиме назви шарів, визначені в " "[member ProjectSettings.layer_names/3d_navigation/layer_1].\n" " Дивіться також [константа PROPERTY_HINT_LAYERS_3D_NAVIGATION].\n" -" [кодовий блок]\n" +" [codeblock]\n" " @export_flags_3d_navigation var navigation_layers: int\n" -" @export_flags_3d_navigation var navigation_layers_array: Масив[int]\n" +" @export_flags_3d_navigation var navigation_layers_array: Array[int]\n" " [/codeblock]" msgid "" @@ -1113,9 +1378,9 @@ msgstr "" "фізики. Віджет у доці Inspector використовуватиме назви шарів, визначені в " "[member ProjectSettings.layer_names/3d_physics/layer_1].\n" " Дивіться також [константа PROPERTY_HINT_LAYERS_3D_PHYSICS].\n" -" [кодовий блок]\n" +" [codeblock]\n" " @export_flags_3d_physics var physics_layers: int\n" -" @export_flags_3d_physics var physics_layers_array: Масив[int]\n" +" @export_flags_3d_physics var physics_layers_array: Array[int]\n" " [/codeblock]" msgid "" @@ -1132,9 +1397,9 @@ msgstr "" "візуалізації. Віджет у доці Inspector використовуватиме назви шарів, " "визначені в [member ProjectSettings.layer_names/3d_render/layer_1].\n" " Дивіться також [константа PROPERTY_HINT_LAYERS_3D_RENDER].\n" -" [кодовий блок]\n" +" [codeblock]\n" " @export_flags_3d_render var render_layers: int\n" -" @export_flags_3d_render var render_layers_array: Масив[int]\n" +" @export_flags_3d_render var render_layers_array: Array[int]\n" " [/codeblock]" msgid "" @@ -1151,9 +1416,9 @@ msgstr "" "уникнення навігації. Віджет у доці Inspector використовуватиме назви шарів, " "визначені в [member ProjectSettings.layer_names/avoidance/layer_1].\n" " Дивіться також [константа PROPERTY_HINT_LAYERS_AVOIDANCE].\n" -" [кодовий блок]\n" +" [codeblock]\n" " @export_flags_avoidance вар. Avoidance_layers: int\n" -" @export_flags_avoidance вар. Avoidance_layers_array: Масив[int]\n" +" @export_flags_avoidance вар. Avoidance_layers_array: Array[int]\n" " [/codeblock]" msgid "" @@ -1172,9 +1437,9 @@ msgstr "" "усієї файлової системи. Перегляньте [аннотацію @export_dir], щоб обмежити " "його папкою проекту та її вкладеними папками.\n" " Дивіться також [константа PROPERTY_HINT_GLOBAL_DIR].\n" -" [кодовий блок]\n" -" @export_global_dir var sprite_folder_path: рядок\n" -" @export_global_dir var sprite_folder_paths: масив[рядок]\n" +" [codeblock]\n" +" @export_global_dir var sprite_folder_path: String\n" +" @export_global_dir var sprite_folder_paths: Array[String]\n" " [/codeblock]" msgid "" @@ -1198,10 +1463,10 @@ msgstr "" " Якщо надано [param filter], лише відповідні файли будуть доступні для " "вибору.\n" " Дивіться також [константа PROPERTY_HINT_GLOBAL_FILE].\n" -" [кодовий блок]\n" -" @export_global_file var sound_effect_path: рядок\n" -" @export_global_file(\"*.txt\") var notes_path: рядок\n" -" @export_global_file var multiple_paths: масив[рядок]\n" +" [codeblock]\n" +" @export_global_file var sound_effect_path: String\n" +" @export_global_file(\"*.txt\") var notes_path: String\n" +" @export_global_file var multiple_paths: Array[String]\n" " [/codeblock]" msgid "" @@ -1244,12 +1509,12 @@ msgstr "" " Групи не можуть бути вкладеними, використовуйте [анотацію @export_subgroup], " "щоб додати підгрупи всередині груп.\n" " Дивіться також [константа PROPERTY_USAGE_GROUP].\n" -" [кодовий блок]\n" -" @export_group(\"Властивості Racer\")\n" -" @export var nickname = \"Нік\"\n" +" [codeblock]\n" +" @export_group(\"Racer Properties\")\n" +" @export var nickname = \"Nick\"\n" " @export var age = 26\n" "\n" -" @export_group(\"Властивості автомобіля\", \"автомобіль_\")\n" +" @export_group(\"Car Properties\", \"car_7\")\n" " @export var car_label = \"Speedy\"\n" " @export var car_number = 3\n" "\n" @@ -1274,9 +1539,9 @@ msgstr "" "вмісту та полегшує редагування великої кількості тексту, що зберігається у " "властивості.\n" " Дивіться також [константа PROPERTY_HINT_MULTILINE_TEXT].\n" -" [кодовий блок]\n" +" [codeblock]\n" " @export_multiline var character_biography\n" -" @export_multiline var npc_dialogs: масив[рядок]\n" +" @export_multiline var npc_dialogs: Array[String]\n" " [/codeblock]" msgid "" @@ -1294,9 +1559,8 @@ msgstr "" "Експортуйте властивість [NodePath] або [Array][lb][NodePath][rb] із фільтром " "для дозволених типів вузлів.\n" " Дивіться також [константа PROPERTY_HINT_NODE_PATH_VALID_TYPES].\n" -" [кодовий блок]\n" -" @export_node_path(\"Кнопка\", \"Кнопка TouchScreenButton\") змінна " -"some_button\n" +" [codeblock]\n" +" @export_node_path(\"Bottom\", \"Bottom TouchScreenButton\") var some_button\n" " @export_node_path(\"Button\", \"TouchScreenButton\") var many_buttons: " "Array[NodePath]\n" " [/codeblock]\n" @@ -1318,10 +1582,9 @@ msgstr "" "[PackedStringArray] із текстом-заповнювачем, який відображається у віджеті " "редактора, якщо немає значення.\n" " Дивіться також [константа PROPERTY_HINT_PLACEHOLDER_TEXT].\n" -" [кодовий блок]\n" -" @export_placeholder(\"Назва в нижньому регістрі\") var character_id: рядок\n" -" @export_placeholder(\"Ім'я в нижньому регістрі\") var friend_ids: " -"Array[String]\n" +" [codeblock]\n" +" @export_placeholder(\"Name in lowercase\") var character_id: String\n" +" @export_placeholder(\"Name in lowercase\") var friend_ids: Array[String]\n" " [/codeblock]" msgid "" @@ -1381,19 +1644,18 @@ msgstr "" "Нарешті, спеціальний суфікс можна надати за допомогою [code]\"suffix:unit\"[/" "code], де \"unit\" може бути будь-яким рядком.\n" " Дивіться також [константа PROPERTY_HINT_RANGE].\n" -" [кодовий блок]\n" -" @export_range(0, 20) номер змінної\n" -" @export_range(-10, 20) номер змінної\n" -" @export_range(-10, 20, 0,2) номер змінної: float\n" -" @export_range(0, 20) змінні номери: масив[float]\n" +" [codeblock]\n" +" @export_range(0, 20) var number\n" +" @export_range(-10, 20) var number\n" +" @export_range(-10, 20, 0,2) var number: float\n" +" @export_range(0, 20) var number: Array[float]\n" "\n" -" @export_range(0, 100, 1, \"or_greater\") змінна power_percent\n" -" @export_range(0, 100, 1, \"or_greater\", \"or_less\") змінна Health_delta\n" +" @export_range(0, 100, 1, \"or_greater\") var power_percent\n" +" @export_range(0, 100, 1, \"or_greater\", \"or_less\") var Health_delta\n" "\n" -" @export_range(-180, 180, 0,001, \"радіани_як_градуси\") змінна " -"angle_radians\n" -" @export_range(0, 360, 1, \"градуси\") змінна angle_degrees\n" -" @export_range(-8, 8, 2, \"suffix:px\") змінна target_offset\n" +" @export_range(-180, 180, 0,001, \"radians_as_degrees\") var angle_radians\n" +" @export_range(0, 360, 1, \"градуси\") var angle_degrees\n" +" @export_range(-8, 8, 2, \"suffix:px\") var target_offset\n" " [/codeblock]" msgid "" @@ -1414,13 +1676,208 @@ msgstr "" "[annotation @tool]. Також значення властивості копіюється під час виклику " "[method Resource.duplicate] або [method Node.duplicate], на відміну від " "неекспортованих змінних.\n" -" [кодовий блок]\n" +" [codeblock]\n" " var a # Не зберігається у файлі, не відображається в редакторі.\n" " @export_storage var b # Зберігається у файлі, не відображається в " "редакторі.\n" " @export var c: int # Зберігається у файлі, відображається в редакторі.\n" " [/codeblock]" +msgid "" +"Define a new subgroup for the following exported properties. This helps to " +"organize properties in the Inspector dock. Subgroups work exactly like " +"groups, except they need a parent group to exist. See [annotation " +"@export_group].\n" +"See also [constant PROPERTY_USAGE_SUBGROUP].\n" +"[codeblock]\n" +"@export_group(\"Racer Properties\")\n" +"@export var nickname = \"Nick\"\n" +"@export var age = 26\n" +"\n" +"@export_subgroup(\"Car Properties\", \"car_\")\n" +"@export var car_label = \"Speedy\"\n" +"@export var car_number = 3\n" +"[/codeblock]\n" +"[b]Note:[/b] Subgroups cannot be nested, but you can use the slash separator " +"([code]/[/code]) to achieve the desired effect:\n" +"[codeblock]\n" +"@export_group(\"Car Properties\")\n" +"@export_subgroup(\"Wheels\", \"wheel_\")\n" +"@export_subgroup(\"Wheels/Front\", \"front_wheel_\")\n" +"@export var front_wheel_strength = 10\n" +"@export var front_wheel_mobility = 5\n" +"@export_subgroup(\"Wheels/Rear\", \"rear_wheel_\")\n" +"@export var rear_wheel_strength = 8\n" +"@export var rear_wheel_mobility = 3\n" +"@export_subgroup(\"Wheels\", \"wheel_\")\n" +"@export var wheel_material: PhysicsMaterial\n" +"[/codeblock]" +msgstr "" +"Визначте нову підгрупу для таких експортованих властивостей. Це допомагає " +"впорядкувати властивості в доці Inspector. Підгрупи працюють так само, як " +"групи, за винятком того, що для існування їм потрібна батьківська група. " +"Перегляньте [аннотацію @export_group]. \n" +"Дивіться також [константа PROPERTY_USAGE_SUBGROUP]. \n" +"[codeblock] \n" +"@export_group(\"Racer Properties\") \n" +"@export var nickname = \"Nick\" \n" +"@export var age = 26 \n" +"\n" +"@export_subgroup(\", \"Car Properties\") \n" +"@export var car_label = \"Speedy\" \n" +"@export var car_number = 3 \n" +"[/codeblock] \n" +"[b]Примітка:[/b] Підгрупи не можуть бути вкладеними, але ви можете " +"використовувати роздільник похилої риски ([код]/[/код]), щоб досягти бажаного " +"ефекту: \n" +"[codeblock] \n" +"@export_group(\"Car Properties\") \n" +"@export_subgroup(\"Wheels\", \"wheel_\") \n" +"@export_subgroup(\"Wheels/front\", \"front_wheel_\") \n" +"@export var front_wheel_strength = 10 \n" +"@export var front_wheel_mobility = 5 \n" +"@export_subgroup(\"Wheels/rear\", \"rear_wheel_\") \n" +"@export var rear_wheel_strength = 8 \n" +"@export var rear_wheel_mobility = 3 \n" +"@export_subgroup(\"Wheels\", \"wheel_\") \n" +"@export var wheel_material: PhysicsMaterial \n" +"[/codeblock]" + +msgid "" +"Export a [Callable] property as a clickable button with the label [param " +"text]. When the button is pressed, the callable is called.\n" +"If [param icon] is specified, it is used to fetch an icon for the button via " +"[method Control.get_theme_icon], from the [code]\"EditorIcons\"[/code] theme " +"type. If [param icon] is omitted, the default [code]\"Callable\"[/code] icon " +"is used instead.\n" +"Consider using the [EditorUndoRedoManager] to allow the action to be reverted " +"safely.\n" +"See also [constant PROPERTY_HINT_TOOL_BUTTON].\n" +"[codeblock]\n" +"@tool\n" +"extends Sprite2D\n" +"\n" +"@export_tool_button(\"Hello\") var hello_action = hello\n" +"@export_tool_button(\"Randomize the color!\", \"ColorRect\")\n" +"var randomize_color_action = randomize_color\n" +"\n" +"func hello():\n" +" print(\"Hello world!\")\n" +"\n" +"func randomize_color():\n" +" var undo_redo = EditorInterface.get_editor_undo_redo()\n" +" undo_redo.create_action(\"Randomized Sprite2D Color\")\n" +" undo_redo.add_do_property(self, &\"self_modulate\", Color(randf(), " +"randf(), randf()))\n" +" undo_redo.add_undo_property(self, &\"self_modulate\", self_modulate)\n" +" undo_redo.commit_action()\n" +"[/codeblock]\n" +"[b]Note:[/b] The property is exported without the [constant " +"PROPERTY_USAGE_STORAGE] flag because a [Callable] cannot be properly " +"serialized and stored in a file.\n" +"[b]Note:[/b] In an exported project neither [EditorInterface] nor " +"[EditorUndoRedoManager] exist, which may cause some scripts to break. To " +"prevent this, you can use [method Engine.get_singleton] and omit the static " +"type from the variable declaration:\n" +"[codeblock]\n" +"var undo_redo = Engine.get_singleton(&\"EditorInterface\")." +"get_editor_undo_redo()\n" +"[/codeblock]\n" +"[b]Note:[/b] Avoid storing lambda callables in member variables of " +"[RefCounted]-based classes (e.g. resources), as this can lead to memory " +"leaks. Use only method callables and optionally [method Callable.bind] or " +"[method Callable.unbind]." +msgstr "" +"Експортуйте властивість [Callable] як кнопку, яку можна натиснути, з міткою " +"[param text]. При натисканні кнопки викликається абонент. \n" +"Якщо вказано [param icon], він використовується для отримання піктограми для " +"кнопки через [метод Control.get_theme_icon] із типу теми " +"[code]\"EditorIcons\"[/code]. Якщо [param icon] опущено, замість нього " +"використовується типовий значок [code]\"Callable\"[/code]. \n" +"Розгляньте можливість використання [EditorUndoRedoManager], щоб дозволити " +"безпечне скасування дії. \n" +"Дивіться також [константа PROPERTY_HINT_TOOL_BUTTON]. \n" +"[codeblock] \n" +"@інструмент \n" +"розширює Sprite2D \n" +"\n" +"@export_tool_button(\"Hello\") var hello_action = hello \n" +"@export_tool_button(\"Randomize the color!\", \"ColorRect\") \n" +"var randomize_color_action = randomize_color \n" +"\n" +"func привіт(): \n" +" print(\"Привіт, світ!\") \n" +"\n" +"func randomize_color(): \n" +" var undo_redo = EditorInterface.get_editor_undo_redo() \n" +" undo_redo.create_action(\"Random color Sprite2D\") \n" +" undo_redo.add_do_property(self, &\"self_modulate\", Color(randf(), " +"randf(), randf())) \n" +" undo_redo.add_undo_property(self, &\"self_modulate\", self_modulate) \n" +" undo_redo.commit_action() \n" +"[/codeblock] \n" +"[b]Примітка.[/b] Властивість експортується без прапора [постійний " +"PROPERTY_USAGE_STORAGE], оскільки [Callable] неможливо належним чином " +"серіалізувати та зберегти у файлі. \n" +"[b]Примітка.[/b] В експортованому проекті не існує ані [EditorInterface], ані " +"[EditorUndoRedoManager], що може призвести до несправності деяких сценаріїв. " +"Щоб запобігти цьому, ви можете використовувати [метод Engine.get_singleton] і " +"опустити статичний тип в декларації змінної: \n" +"[codeblock] \n" +"var undo_redo = Engine.get_singleton(&\"EditorInterface\")." +"get_editor_undo_redo() \n" +"[/codeblock] \n" +"[b]Примітка:[/b] Уникайте зберігання лямбда-викликів у змінних-членах класів " +"на основі [RefCounted] (наприклад, ресурсів), оскільки це може призвести до " +"витоку пам’яті. Використовуйте лише викликані методи та додатково [метод " +"Callable.bind] або [метод Callable.unbind]." + +msgid "" +"Add a custom icon to the current script. The icon specified at [param " +"icon_path] is displayed in the Scene dock for every node of that class, as " +"well as in various editor dialogs.\n" +"[codeblock]\n" +"@icon(\"res://path/to/class/icon.svg\")\n" +"[/codeblock]\n" +"[b]Note:[/b] Only the script can have a custom icon. Inner classes are not " +"supported.\n" +"[b]Note:[/b] As annotations describe their subject, the [annotation @icon] " +"annotation must be placed before the class definition and inheritance.\n" +"[b]Note:[/b] Unlike most other annotations, the argument of the [annotation " +"@icon] annotation must be a string literal (constant expressions are not " +"supported)." +msgstr "" +"Додайте спеціальний значок до поточного сценарію. Піктограма, указана в " +"[param icon_path], відображається в панелі Scene для кожного вузла цього " +"класу, а також у різних діалогових вікнах редактора. \n" +"[codeblock] \n" +"@icon(\"res://path/to/class/icon.svg\") \n" +"[/codeblock] \n" +"[b]Примітка:[/b] Лише сценарій може мати спеціальний значок. Внутрішні класи " +"не підтримуються. \n" +"[b]Примітка:[/b] Оскільки анотації описують предмет, анотація [annotation " +"@icon] має бути розміщена перед визначенням класу та успадкуванням. \n" +"[b]Примітка:[/b] На відміну від більшості інших анотацій, аргумент анотації " +"[annotation @icon] має бути рядковим літералом (постійні вирази не " +"підтримуються)." + +msgid "" +"Mark the following property as assigned when the [Node] is ready. Values for " +"these properties are not assigned immediately when the node is initialized " +"([method Object._init]), and instead are computed and stored right before " +"[method Node._ready].\n" +"[codeblock]\n" +"@onready var character_name = $Label\n" +"[/codeblock]" +msgstr "" +"Позначте наступну властивість як призначену, коли [node] буде готовий. " +"Значення для цих властивостей не призначаються відразу після ініціалізації " +"вузла ([method Object._init]), а натомість обчислюються та зберігаються " +"безпосередньо перед [method Node._ready]. \n" +"[codeblock] \n" +"@onready var character_name = $Label \n" +"[/codeblock]" + msgid "" "Mark the following method for remote procedure calls. See [url=$DOCS_URL/" "tutorials/networking/high_level_multiplayer.html]High-level multiplayer[/" @@ -1495,15 +1952,15 @@ msgstr "" "але значення, пов’язані з тим самим аргументом, не можна використовувати " "більше одного разу. [param transfer_channel] завжди має бути 4-м аргументом " "(необхідно вказати 3 попередні аргументи).\n" -" [кодовий блок]\n" +" [codeblock]\n" " @rpc\n" -" func fn(): пропуск\n" +" func fn(): pass:\n" "\n" " @rpc(\"any_peer\", \"unreliable_ordered\")\n" -" func fn_update_pos(): пропуск\n" +" func fn_update_pos(): pass:\n" "\n" -" @rpc(\"authority\", \"call_remote\", \"unreliable\", 0) # Еквівалент @rpc\n" -" func fn_default(): пропуск\n" +" @rpc(\"authority\", \"call_remote\", \"unreliable\", 0) # Equivalent @rpc\n" +" func fn_default(): pass:\n" " [/codeblock]" msgid "" @@ -1545,9 +2002,105 @@ msgstr "" "[b]Примітка:[/b] Оскільки анотації описують свій предмет, анотацію " "[annotation @tool] слід розміщувати перед визначенням та успадкуванням класу." +msgid "" +"Mark the following statement to ignore the specified [param warning]. See " +"[url=$DOCS_URL/tutorials/scripting/gdscript/warning_system.html]GDScript " +"warning system[/url].\n" +"[codeblock]\n" +"func test():\n" +" print(\"hello\")\n" +" return\n" +" @warning_ignore(\"unreachable_code\")\n" +" print(\"unreachable\")\n" +"[/codeblock]\n" +"See also [annotation @warning_ignore_start] and [annotation " +"@warning_ignore_restore]." +msgstr "" +"Позначте наступний оператор, щоб ігнорувати вказане [параметр попередження]. " +"Перегляньте [url=$DOCS_URL/tutorials/scripting/gdscript/warning_system." +"html]систему попереджень GDScript[/url]. \n" +"[codeblock] \n" +"func test(): \n" +" print(\"привіт\") \n" +" return \n" +" @warning_ignore(\"unavailable_code\") \n" +" print(\"недосяжний\") \n" +"[/codeblock] \n" +"Дивіться також [annotation @warning_ignore_start] і [annotation " +"@warning_ignore_restore]." + +msgid "" +"Stops ignoring the listed warning types after [annotation " +"@warning_ignore_start]. Ignoring the specified warning types will be reset to " +"Project Settings. This annotation can be omitted to ignore the warning types " +"until the end of the file.\n" +"[b]Note:[/b] Unlike most other annotations, arguments of the [annotation " +"@warning_ignore_restore] annotation must be string literals (constant " +"expressions are not supported)." +msgstr "" +"Перестає ігнорувати перелічені типи попереджень після [аннотації " +"@warning_ignore_start]. Ігнорування зазначених типів попереджень буде скинуто " +"до параметрів проекту. Цю анотацію можна опустити, щоб ігнорувати типи " +"попереджень до кінця файлу. \n" +"[b]Примітка:[/b] На відміну від більшості інших анотацій, аргументи анотації " +"[annotation @warning_ignore_restore] мають бути рядковими літералами " +"(постійні вирази не підтримуються)." + +msgid "" +"Starts ignoring the listed warning types until the end of the file or the " +"[annotation @warning_ignore_restore] annotation with the given warning type.\n" +"[codeblock]\n" +"func test():\n" +" var a = 1 # Warning (if enabled in the Project Settings).\n" +" @warning_ignore_start(\"unused_variable\")\n" +" var b = 2 # No warning.\n" +" var c = 3 # No warning.\n" +" @warning_ignore_restore(\"unused_variable\")\n" +" var d = 4 # Warning (if enabled in the Project Settings).\n" +"[/codeblock]\n" +"[b]Note:[/b] To suppress a single warning, use [annotation @warning_ignore] " +"instead.\n" +"[b]Note:[/b] Unlike most other annotations, arguments of the [annotation " +"@warning_ignore_start] annotation must be string literals (constant " +"expressions are not supported)." +msgstr "" +"Починає ігнорувати перелічені типи попереджень до кінця файлу або анотації " +"[annotation @warning_ignore_restore] із заданим типом попередження. \n" +"[codeblock] \n" +"func test(): \n" +" var a = 1 # Попередження (якщо ввімкнено в налаштуваннях проекту). \n" +" @warning_ignore_start(\"невикористана_змінна\") \n" +" var b = 2 # Немає попередження. \n" +" var c = 3 # Немає попередження. \n" +" @warning_ignore_restore(\"невикористана_змінна\") \n" +" var d = 4 # Попередження (якщо ввімкнено в налаштуваннях проекту). \n" +"[/codeblock] \n" +"[b]Примітка:[/b] Щоб приховати одне попередження, замість нього " +"використовуйте [аннотацію @warning_ignore]. \n" +"[b]Примітка:[/b] На відміну від більшості інших анотацій, аргументи анотації " +"[annotation @warning_ignore_start] мають бути рядковими літералами (постійні " +"вирази не підтримуються)." + msgid "Global scope constants and functions." msgstr "Глобальні константи та функції." +msgid "" +"A list of global scope enumerated constants and built-in functions. This is " +"all that resides in the globals, constants regarding error codes, keycodes, " +"property hints, etc.\n" +"Singletons are also documented here, since they can be accessed from " +"anywhere.\n" +"For the entries that can only be accessed from scripts written in GDScript, " +"see [@GDScript]." +msgstr "" +"Список глобальних констант із переліком і вбудованих функцій. Це все, що " +"міститься в глобалах, константах щодо кодів помилок, кодів клавіш, підказок " +"властивостей тощо. \n" +"Синглтони також задокументовані тут, оскільки до них можна отримати доступ з " +"будь-якого місця. \n" +"Для записів, доступ до яких можна отримати лише зі сценаріїв, написаних у " +"GDScript, див. [@GDScript]." + msgid "Random number generation" msgstr "Генерація випадкових чисел" @@ -1583,22 +2136,22 @@ msgstr "" "[Vector3], [Vector3i], [Vector4], [Vector4i].\n" "[codeblock]\n" "var a = abs(-1)\n" -"# a рівно 1\n" +"# a is 1\n" "\n" "var b = abs(-1.2)\n" -"# b рівно 1.2\n" +"# b is 1.2\n" "\n" "var c = abs(Vector2(-3.5, -4))\n" -"# c рівно (3.5, 4)\n" +"# c is (3.5, 4)\n" "\n" "var d = abs(Vector2i(-5, -6))\n" -"# d рівно (5, 6)\n" +"# d is (5, 6)\n" "\n" "var e = abs(Vector3(-7, 8.5, -3.8))\n" -"# e рівно (7, 8.5, 3.8)\n" +"# e is (7, 8.5, 3.8)\n" "\n" "var f = abs(Vector3i(-7, -8, -9))\n" -"# f рівно (7, 8, 9)\n" +"# f is (7, 8, 9)\n" "[/codeblock]\n" "[b]Примітка:[/b] Для кращої безпеки типу використовуйте [method absf], " "[method absi], [method Vector2.abs], [method Vector2i.abs], [method Vector3." @@ -1615,7 +2168,7 @@ msgstr "" "Повертає абсолютне значення десяткового параметру [param x] (тобто додатне " "значення).\n" "[codeblock]\n" -"# a дорівнює 1.2\n" +"# a is 1.2\n" "var a = absf(-1.2)\n" "[/codeblock]" @@ -1629,7 +2182,7 @@ msgstr "" "Повертає абсолютне значення цілого параметру [param x] (тобто додатне " "значення).\n" "[codeblock]\n" -"# a дорівнює 1\n" +"# a is 1\n" "var a = absi(-1)\n" "[/codeblock]" @@ -1647,7 +2200,7 @@ msgstr "" "косинуса [param x]. [param x] буде обмежено між [code]-1.0[/code] і " "[code]1.0[/code] (включно), щоб запобігти поверненню [method acos] [constant " "@GDScript.NAN].\n" -" [кодовий блок]\n" +" [codeblock]\n" " # c дорівнює 0,523599 або 30 градусів, якщо конвертувати за допомогою " "rad_to_deg(c)\n" " var c = acos(0,866025)\n" @@ -1672,12 +2225,22 @@ msgstr "" "1. Для значень [param x], менших за 1, він повертатиме 0, щоб запобігти " "поверненню [method acosh] [constant @GDScript.NAN].\n" "[codeblock]\n" -"var a = acosh(2) # Повертає 1.31695789692482\n" -"cosh(a) # Повертає 2\n" +"var a = acosh(2) # Retruns 1.31695789692482\n" +"cosh(a) # Returns 2\n" "\n" -"var b = acosh(-1) # Повертає 0\n" +"var b = acosh(-1) # Returns 0\n" "[/codeblock]" +msgid "" +"Returns the difference between the two angles (in radians), in the range of " +"[code][-PI, +PI][/code]. When [param from] and [param to] are opposite, " +"returns [code]-PI[/code] if [param from] is smaller than [param to], or " +"[code]PI[/code] otherwise." +msgstr "" +"Повертає різницю між двома кутами (у радіанах) у діапазоні [code][-PI, +PI][/" +"code]. Коли [param from] і [param to] протилежні, повертає [code]-PI[/code], " +"якщо [param from] менше, ніж [param to], або [code]PI[/code] в іншому випадку." + msgid "" "Returns the arc sine of [param x] in radians. Use to get the angle of sine " "[param x]. [param x] will be clamped between [code]-1.0[/code] and [code]1.0[/" @@ -1692,7 +2255,7 @@ msgstr "" "синуса [param x]. [param x] буде обмежено між [code]-1.0[/code] і [code]1.0[/" "code] (включно), щоб запобігти поверненню [method asin] [constant @GDScript." "NAN].\n" -" [кодовий блок]\n" +" [codeblock]\n" " # s дорівнює 0,523599 або 30 градусів, якщо конвертувати за допомогою " "rad_to_deg(s)\n" " var s = asin(0,5)\n" @@ -1710,9 +2273,9 @@ msgstr "" "Повертає гіперболічний (також званий арк) синус [param x], повертаючи " "значення в радіанах. Використовуйте його, щоб отримати кут від синуса кута в " "гіперболічному просторі.\n" -" [кодовий блок]\n" -" var a = asinh(0.9) # Повертає 0.8088669356527824\n" -" sinh(a) # Повертає 0.9\n" +" [codeblock]\n" +" var a = asinh(0.9) # Returns 0.8088669356527824\n" +" sinh(a) # Returns 0.9\n" " [/codeblock]" msgid "" @@ -1750,7 +2313,7 @@ msgstr "" "враховує знаки обох аргументів для визначення координатної чверті.\n" "Важливе зауваження: як правило, Y-координата вказується першою.\n" "[codeblock]\n" -"var a = atan2(0, -1) # a дорівнює 3.141593\n" +"var a = atan2(0, -1) # a is 3.141593\n" "[/codeblock]" msgid "" @@ -1780,12 +2343,12 @@ msgstr "" "значення дорівнюють або вище 1 повертає позитивний результат [константа " "@GDScript.INF], щоб запобігти [method atanh] повертати [константу @GDScript." "NAN].\n" -" [кодовий блок]\n" -" var a = atanh(0,9) # Повертає 1,47221948958322\n" -" tanh(a) # Повертає 0,9\n" +" [codeblock]\n" +" var a = atanh(0,9) # Returns 1,47221948958322\n" +" tanh(a) # Returns 0,9\n" "\n" -" var b = atanh(-2) # Повертає -inf\n" -" tanh(b) # Повертає -1\n" +" var b = atanh(-2) # Returns -inf\n" +" tanh(b) # Returns -1\n" " [/codeblock]" msgid "" @@ -1849,9 +2412,9 @@ msgstr "" "повертаючи найменше ціле число, яке не менше [param x]. Підтримувані типи: " "[int], [float], [Vector2], [Vector2i], [Vector3], [Vector3i], [Vector4], " "[Vector4i].\n" -" [кодовий блок]\n" -" var i = ceil(1.45) # i дорівнює 2.0\n" -" i = ceil(1,001) # i дорівнює 2,0\n" +" [codeblock]\n" +" var i = ceil(1.45) # i is 2.0\n" +" i = ceil(1,001) # i is 2,0\n" " [/codeblock]\n" " Дивіться також [method floor], [method round] і [method snapped].\n" " [b]Примітка.[/b] Для кращої безпеки типу використовуйте [method ceilf], " @@ -1899,12 +2462,12 @@ msgstr "" "Обмежує [param value], повертаючи [Variant] не менше ніж [param min] і не " "більше ніж [param max]. Будь-які значення, які можна порівняти з операторами " "менше та більше, працюватимуть.\n" -" [кодовий блок]\n" -" var a = затискач (-10, -1, 5)\n" -" # a дорівнює -1\n" +" [codeblock]\n" +" var a = clamp (-10, -1, 5)\n" +" # a is -1\n" "\n" -" змінна b = затискач (8.1, 0.9, 5.5)\n" -" # b дорівнює 5,5\n" +" змінна b = clamp (8.1, 0.9, 5.5)\n" +" # b is 5,5\n" " [/codeblock]\n" " [b]Примітка:[/b] Для кращої безпеки типу використовуйте [метод clampf], " "[метод clampi], [метод Vector2.clamp], [метод Vector2i.clamp], [метод Vector3." @@ -1930,10 +2493,10 @@ msgstr "" "за [param max].\n" "[codeblock]\n" "var speed = 42.1\n" -"var a = clampf(speed, 1.0, 20.5) # a дорівнює 20.5\n" +"var a = clampf(speed, 1.0, 20.5) # a is20.5\n" "\n" "speed = -10.0\n" -"var b = clampf(speed, -1.0, 1.0) # b дорівнює -1.0\n" +"var b = clampf(speed, -1.0, 1.0) # b is -1.0\n" "[/codeblock]" msgid "" @@ -1951,10 +2514,10 @@ msgstr "" "за [param max].\n" "[codeblock]\n" "var speed = 42\n" -"var a = clampi(speed, 1, 20) # a дорівнює 20\n" +"var a = clampi(speed, 1, 20) # a is 20\n" "\n" "speed = -10\n" -"var b = clampi(speed, -1, 1) # b дорівнює -1\n" +"var b = clampi(speed, -1, 1) # b is -1\n" "[/codeblock]" msgid "" @@ -1967,9 +2530,9 @@ msgid "" msgstr "" "Повертає косинус кута [param angle_rad] в радіанах.\n" "[codeblock]\n" -"cos(PI * 2) # Повертає 1.0\n" -"cos(PI) # Повертає -1.0\n" -"cos(deg_to_rad(90)) # Повертає 0.0\n" +"cos(PI * 2) # Returns 1.0\n" +"cos(PI) # Returns -1.0\n" +"cos(deg_to_rad(90)) # Returns 0.0\n" "[/codeblock]" msgid "" @@ -1978,9 +2541,9 @@ msgid "" "print(cosh(1)) # Prints 1.543081\n" "[/codeblock]" msgstr "" -"Повертає гіперболічний косинус [param x] у радіанах.\n" +"Повертає гіперболічний косинус [param x] у радіанах\n" "[codeblock]\n" -"print(cosh(1)) # Виведе 1.543081\n" +"print(cosh(1)) # Prints 1.543081\n" "[/codeblock]" msgid "" @@ -2034,7 +2597,61 @@ msgid "" msgstr "" "Перетворює кут виражений в градусах в радіани.\n" "[codeblock]\n" -"var r = deg_to_rad(180) # r рівно 3.141593\n" +"var r = deg_to_rad(180) # r is 3.141593\n" +"[/codeblock]" + +msgid "" +"Returns an \"eased\" value of [param x] based on an easing function defined " +"with [param curve]. This easing function is based on an exponent. The [param " +"curve] can be any floating-point number, with specific values leading to the " +"following behaviors:\n" +"[codeblock lang=text]\n" +"- Lower than -1.0 (exclusive): Ease in-out\n" +"- -1.0: Linear\n" +"- Between -1.0 and 0.0 (exclusive): Ease out-in\n" +"- 0.0: Constant\n" +"- Between 0.0 to 1.0 (exclusive): Ease out\n" +"- 1.0: Linear\n" +"- Greater than 1.0 (exclusive): Ease in\n" +"[/codeblock]\n" +"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" +"ease_cheatsheet.png]ease() curve values cheatsheet[/url]\n" +"See also [method smoothstep]. If you need to perform more advanced " +"transitions, use [method Tween.interpolate_value]." +msgstr "" +"Повертає «пом’якшене» значення [param x] на основі функції послаблення, " +"визначеної за допомогою [param curve]. Ця функція пом’якшення базується на " +"показнику степеня. [Параметрична крива] може бути будь-яким числом із " +"плаваючою комою з певними значеннями, що призводять до таких дій: \n" +"[codeblock lang=text] \n" +"Lower than -1.0 (exclusive): Ease in-out\n" +"- -1.0: Linear\n" +"- Between -1.0 and 0.0 (exclusive): Ease out-in\n" +"- 0.0: Constant\n" +"- Between 0.0 to 1.0 (exclusive): Ease out\n" +"- 1.0: Linear\n" +"- Greater than 1.0 (exclusive): Ease in\n" +"[/codeblock] \n" +"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" +"ease_cheatsheet.png]шпаргалка зі значеннями кривої ease()[/url] \n" +"Дивіться також [метод smoothstep]. Якщо вам потрібно виконати більш складні " +"переходи, використовуйте [метод Tween.interpolate_value]." + +msgid "" +"Returns a human-readable name for the given [enum Error] code.\n" +"[codeblock]\n" +"print(OK) # Prints 0\n" +"print(error_string(OK)) # Prints \"OK\"\n" +"print(error_string(ERR_BUSY)) # Prints \"Busy\"\n" +"print(error_string(ERR_OUT_OF_MEMORY)) # Prints \"Out of memory\"\n" +"[/codeblock]" +msgstr "" +"Повертає зрозумілу людині назву для заданого коду [enum Error]. \n" +"[codeblock] \n" +"print(OK) # Друкує 0 \n" +"print(error_string(OK)) # Виводить \"ОК\" \n" +"print(error_string(ERR_BUSY)) # Виводить \"Зайнято\" \n" +"print(error_string(ERR_OUT_OF_MEMORY)) # Виводить \"Недостатньо пам'яті\" \n" "[/codeblock]" msgid "" @@ -2054,7 +2671,7 @@ msgstr "" "Для піднесення до степеня інших основ степеней використовуйте метод [method " "pow].\n" "[codeblock]\n" -"var a = exp(2) # Приблизно 7.39\n" +"var a = exp(2) # Approximately 7.39\n" "[/codeblock]" msgid "" @@ -2074,8 +2691,8 @@ msgstr "" "повертаючи найбільше ціле число, яке не перевищує [param x]. Підтримувані " "типи: [int], [float], [Vector2], [Vector3], [Vector4].\n" "[codeblock]\n" -"var a = floor(2.99) # a рівно 2.0\n" -"a = floor(-2.99) # a рівно -3.0\n" +"var a = floor(2.99) # a is 2.0\n" +"a = floor(-2.99) # a is -3.0\n" "[/codeblock]\n" "Дивіться також [method ceil], [method round], та [method snapped].\n" "[b]Примітка:[/b] Для кращої безпеки типу використовуйте [method floorf], " @@ -2115,7 +2732,7 @@ msgstr "" "Повертає остачу з рухомою комою від ділення [param x] на [param y], зі " "збереженням знаку [param x].\n" "[codeblock]\n" -"var remainder = fmod(7, 5.5) # остача 1.5\n" +"var remainder = fmod(7, 5.5) # remainder 1.5\n" "[/codeblock]\n" "Щоб отримати цілу остачу використовуйте оператор [code]%[/code]." @@ -2143,10 +2760,10 @@ msgid "" msgstr "" "Повертає модуль із плаваючою комою [param x], поділений на [param y], " "рівномірно обертаючи додатні та від’ємні значення.\n" -" [кодовий блок]\n" +" [codeblock]\n" " print(\" (x) (fmod(x, 1.5)) (fposmod(x, 1.5))\")\n" -" для мене в 7:\n" -" змінна x = i * 0,5 - 1,5\n" +" for I in7:\n" +" var x = i * 0,5 - 1,5\n" " print(\"%4.1f %4.1f | %4.1f\" % [x, fmod(x, 1.5), fposmod(x, 1.5)])\n" " [/codeblock]\n" " Принти:\n" @@ -2175,13 +2792,67 @@ msgstr "" "Повертає цілочисельний хеш переданої [param variable].\n" "[codeblocks]\n" "[gdscript]\n" -"print(hash(\"a\")) # Виведе 177670\n" +"print(hash(\"a\")) # Prints 177670\n" "[/gdscript]\n" "[csharp]\n" -"GD.Print(GD.Hash(\"a\")); // Виведе 177670\n" +"GD.Print(GD.Hash(\"a\")); // Prints 177670\n" "[/csharp]\n" "[/codeblocks]" +msgid "" +"Returns the [Object] that corresponds to [param instance_id]. All Objects " +"have a unique instance ID. See also [method Object.get_instance_id].\n" +"[codeblocks]\n" +"[gdscript]\n" +"var drink = \"water\"\n" +"\n" +"func _ready():\n" +" var id = get_instance_id()\n" +" var instance = instance_from_id(id)\n" +" print(instance.foo) # Prints \"water\"\n" +"[/gdscript]\n" +"[csharp]\n" +"public partial class MyNode : Node\n" +"{\n" +" public string Drink { get; set; } = \"water\";\n" +"\n" +" public override void _Ready()\n" +" {\n" +" ulong id = GetInstanceId();\n" +" var instance = (MyNode)InstanceFromId(Id);\n" +" GD.Print(instance.Drink); // Prints \"water\"\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Повертає [Object], який відповідає [param instance_id]. Усі об’єкти мають " +"унікальний ідентифікатор екземпляра. Дивіться також [метод Object." +"get_instance_id]. \n" +"[codeblock] \n" +"[gdscript] \n" +"var drink = \"water\" \n" +"\n" +"func _ready(): \n" +" var id = get_instance_id() \n" +" var instance = instance_from_id(id) \n" +" print(instance.foo) # Prints \"water\" \n" +"[/gdscript] \n" +"[csharp] \n" +"публічний частковий клас MyNode : Node \n" +"{\n" +" public string Drink { get; set; } = \"water\"; \n" +"\n" +" public override void _Ready() \n" +" { \n" +" ulong id = GetInstanceId(); \n" +" var instance = (MyNode)InstanceFromId(Id); \n" +" GD.Print(instance.Drink); // Prints \"water\" \n" +" } \n" +"}\n" +"[/csharp] \n" +"[/codeblocks]" + msgid "" "Returns an interpolation or extrapolation factor considering the range " "specified in [param from] and [param to], and the interpolated value " @@ -2309,19 +2980,19 @@ msgstr "" "Повертає [code]true[/code] для типів значень, якщо [param a] і [param b] " "мають однакове значення. Повертає [code]true[/code] для посилальних типів, " "якщо посилання [param a] і [param b] однакові.\n" -" [кодовий блок]\n" +" [codeblock]\n" " # Vector2 є типом значення\n" -" змінна vec2_a = Vector2(0, 0)\n" -" змінна vec2_b = Vector2(0, 0)\n" -" змінна vec2_c = Vector2(1, 1)\n" -" is_same(vec2_a, vec2_a) # вірно\n" -" is_same(vec2_a, vec2_b) # вірно\n" +" var vec2_a = Vector2(0, 0)\n" +" var vec2_b = Vector2(0, 0)\n" +" var vec2_c = Vector2(1, 1)\n" +" is_same(vec2_a, vec2_a) # true\n" +" is_same(vec2_a, vec2_b) # true\n" " is_same(vec2_a, vec2_c) # false\n" "\n" " # Масив є довідковим типом\n" " var arr_a = []\n" " var arr_b = []\n" -" is_same(arr_a, arr_a) # вірно\n" +" is_same(arr_a, arr_a) # true\n" " is_same(arr_a, arr_b) # false\n" " [/codeblock]\n" " Це типи значень [Variant]: [code]null[/code], [bool], [int], [float], " @@ -2346,6 +3017,48 @@ msgstr "" "Ця функція працює швидше, ніж використання [method is_equal_approx] з одним " "значенням, що дорівнює нулю." +msgid "" +"Linearly interpolates between two values by the factor defined in [param " +"weight]. To perform interpolation, [param weight] should be between " +"[code]0.0[/code] and [code]1.0[/code] (inclusive). However, values outside " +"this range are allowed and can be used to perform [i]extrapolation[/i]. If " +"this is not desired, use [method clampf] to limit [param weight].\n" +"Both [param from] and [param to] must be the same type. Supported types: " +"[int], [float], [Vector2], [Vector3], [Vector4], [Color], [Quaternion], " +"[Basis], [Transform2D], [Transform3D].\n" +"[codeblock]\n" +"lerp(0, 4, 0.75) # Returns 3.0\n" +"[/codeblock]\n" +"See also [method inverse_lerp] which performs the reverse of this operation. " +"To perform eased interpolation with [method lerp], combine it with [method " +"ease] or [method smoothstep]. See also [method remap] to map a continuous " +"series of values to another.\n" +"[b]Note:[/b] For better type safety, use [method lerpf], [method Vector2." +"lerp], [method Vector3.lerp], [method Vector4.lerp], [method Color.lerp], " +"[method Quaternion.slerp], [method Basis.slerp], [method Transform2D." +"interpolate_with], or [method Transform3D.interpolate_with]." +msgstr "" +"Лінійно інтерполює між двома значеннями за коефіцієнтом, визначеним у [param " +"weight]. Щоб виконати інтерполяцію, [param weight] має бути між [code]0.0[/" +"code] і [code]1.0[/code] (включно). Однак значення за межами цього діапазону " +"дозволені та можуть використовуватися для виконання [i]екстраполяції[/i]. " +"Якщо це небажано, використовуйте [method clampf], щоб обмежити [param " +"weight]. \n" +"[param from] і [param to] мають бути одного типу. Підтримувані типи: [int], " +"[float], [Vector2], [Vector3], [Vector4], [Color], [Quaternion], [Basis], " +"[Transform2D], [Transform3D]. \n" +"[codeblock] \n" +"lerp(0, 4, 0.75) # Returns 3.0 \n" +"[/codeblock] \n" +"Дивіться також [метод inverse_lerp], який виконує зворотну операцію. Щоб " +"виконати спрощену інтерполяцію за допомогою [методу lerp], поєднайте його з " +"[методом ease] або [методом smoothstep]. Дивіться також [method remap], щоб " +"зіставити безперервний ряд значень з іншим. \n" +"[b]Примітка:[/b] Для кращої безпеки типу використовуйте [метод lerpf], [метод " +"Vector2.lerp], [метод Vector3.lerp], [метод Vector4.lerp], [метод Color." +"lerp], [метод Quaternion.slerp], [метод Basis.slerp], [метод Transform2D." +"interpolate_with] або [метод Transform3D.interpolate_with]." + msgid "" "Linearly interpolates between two angles (in radians) by a [param weight] " "value between 0.0 and 1.0.\n" @@ -2409,13 +3122,34 @@ msgstr "" "дозволені та можуть використовуватися для виконання [i]екстраполяції[/i]. " "Якщо це небажано, використовуйте [method clampf] для результату цієї " "функції.\n" -" [кодовий блок]\n" -" lerpf(0, 4, 0.75) # Повертає 3.0\n" +" [codeblock]\n" +" lerpf(0, 4, 0.75) # Returns 3.0\n" " [/codeblock]\n" " Дивіться також [метод inverse_lerp], який виконує зворотну операцію. Щоб " "виконати полегшену інтерполяцію за допомогою [методу lerp], поєднайте його з " "[методом ease] або [методом smoothstep]." +msgid "" +"Converts from linear energy to decibels (audio). Since volume is not normally " +"linear, this can be used to implement volume sliders that behave as " +"expected.\n" +"[b]Example:[/b] Change the Master bus's volume through a [Slider] node, which " +"ranges from [code]0.0[/code] to [code]1.0[/code]:\n" +"[codeblock]\n" +"AudioServer.set_bus_volume_db(AudioServer.get_bus_index(\"Master\"), " +"linear_to_db($Slider.value))\n" +"[/codeblock]" +msgstr "" +"Перетворює лінійну енергію в децибели (аудіо). Оскільки гучність зазвичай не " +"є лінійною, це можна використовувати для реалізації повзунків гучності, які " +"поводяться належним чином. \n" +"[b]Приклад: [/b] Змініть гучність головної шини за допомогою вузла [Slider], " +"який варіюється від [code]0.0[/code] до [code]1.0[/code]: \n" +"[codeblock] \n" +"AudioServer.set_bus_volume_db(AudioServer.get_bus_index(\"Master\"), " +"linear_to_db($Slider.value)) \n" +"[/codeblock]" + msgid "" "Returns the [url=https://en.wikipedia.org/wiki/Natural_logarithm]natural " "logarithm[/url] of [param x] (base [url=https://en.wikipedia.org/wiki/" @@ -2440,7 +3174,7 @@ msgstr "" "калькуляторів, яка використовує логарифм з основою 10. Щоб використовувати " "логарифм з основою 10, використовуйте [code]log(x) / log(10)[/code].\n" "[codeblock]\n" -"log(10) # Повертається 2.302585\n" +"log(10) # Returns 2.302585\n" "[/codeblock]\n" "[b]Примітка:[/b] Логарифм [code]0[/code] повертає [code]-inf[/code], тоді як " "від'ємні значення повертають [code]-nan[/code]." @@ -2459,8 +3193,8 @@ msgid "" msgstr "" "Повертає максимальне із заданих числових значень. Ця функція може приймати " "будь-яку кількість аргументів.\n" -" [кодовий блок]\n" -" max(1, 7, 3, -6, 5) # Повертає 7\n" +" [codeblocks]\n" +" max(1, 7, 3, -6, 5) # Returns 7\n" " [/codeblock]\n" " [b]Примітка:[/b] Якщо це використовувати для векторів, це [i]не[/i] буде " "виконувати максимум компонентів, а вибиратиме найбільше значення під час " @@ -2478,8 +3212,8 @@ msgid "" msgstr "" "Повертає максимальне з двох значень [float].\n" "[codeblock]\n" -"maxf(3.6, 24) # Повертає 24.0\n" -"maxf(-3.99, -4) # Повертає -3.99\n" +"maxf(3.6, 24) # Returns 24.0\n" +"maxf(-3.99, -4) # Returns -3.99\n" "[/codeblock]" msgid "" @@ -2491,8 +3225,8 @@ msgid "" msgstr "" "Повертає максимальне з двох значень [int].\n" "[codeblock]\n" -"maxi(1, 2) # Повертає 2\n" -"maxi(-3, -4) # Повертає -3\n" +"maxi(1, 2) # Returns 2\n" +"maxi(-3, -4) # Returns -3\n" "[/codeblock]" msgid "" @@ -2509,8 +3243,8 @@ msgid "" msgstr "" "Повертає мінімальне із заданих числових значень. Ця функція може приймати " "будь-яку кількість аргументів.\n" -" [кодовий блок]\n" -" min(1, 7, 3, -6, 5) # Повертає -6\n" +" [codeblock]\n" +" min(1, 7, 3, -6, 5) # Returns -6\n" " [/codeblock]\n" " [b]Примітка:[/b] Якщо це використовувати для векторів, воно [i]не[/i] " "виконуватиме мінімальне значення по компонентах і вибиратиме найменше " @@ -2528,8 +3262,8 @@ msgid "" msgstr "" "Повертає мінімальне з двох значень [float].\n" "[codeblock]\n" -"minf(3.6, 24) # Повертає 3.6\n" -"minf(-3.99, -4) # Повертає -4.0\n" +"minf(3.6, 24) # Returns 3.6\n" +"minf(-3.99, -4) # Returns -4.0\n" "[/codeblock]" msgid "" @@ -2541,8 +3275,8 @@ msgid "" msgstr "" "Повертає мінімальне з двох значень [int].\n" "[codeblock]\n" -"mini(1, 2) # Повертає 1\n" -"mini(-3, -4) # Повертає -4\n" +"mini(1, 2) # Returns 1\n" +"mini(-3, -4) # Returns -4\n" "[/codeblock]" msgid "" @@ -2560,10 +3294,10 @@ msgstr "" "межі [param to].\n" "Використовуйте від'ємне значення [param delta] для віддалення.\n" "[codeblock]\n" -"move_toward(5, 10, 4) # Повертає 9\n" -"move_toward(10, 5, 4) # Повертає 6\n" -"move_toward(5, 10, 9) # Повертає 10\n" -"move_toward(10, 5, -1.5) # Повертає 11.5\n" +"move_toward(5, 10, 4) # Returns 9\n" +"move_toward(10, 5, 4) # Returns 6\n" +"move_toward(5, 10, 9) # Returns 10\n" +"move_toward(10, 5, -1.5) # Returns 11.5\n" "[/codeblock]" msgid "" @@ -2586,12 +3320,12 @@ msgstr "" "Повертає найменший цілий степінь числа 2, який більший або дорівнює [value " "param].[b]\n" "[codeblock]\n" -"nearest_po2(3) # Повертає 4\n" -"nearest_po2(4) # Повертає 4\n" -"nearest_po2(5) # Повертає 8\n" +"nearest_po2(3) # Returns 4\n" +"nearest_po2(4) # Returns 4\n" +"nearest_po2(5) # Returns 8\n" "\n" -"nearest_po2(0) # Повертає 0 (це може бути неочікувано)\n" -"nearest_po2(-1) # Повертає 0 (це може бути неочікувано)\n" +"nearest_po2(0) # Returns 0 (це може бути неочікувано)\n" +"nearest_po2(-1) # Returns 0 (це може бути неочікувано)\n" "[/codeblock]\n" "[b]Попередження:[/b] Через свою реалізацію цей метод повертає [code]0[/code], " "а не [code]1[/code] для значень, менших або рівних [code]0[/code], за " @@ -2622,16 +3356,16 @@ msgstr "" "code] або збільшується в бік [param length] (як хвиля). Якщо [param length] " "менше нуля, воно стає додатним.\n" "[codeblock]\n" -"pingpong(-3.0, 3.0) # Повертає 3.0\n" -"pingpong(-2.0, 3.0) # Повертає 2.0\n" -"pingpong(-1.0, 3.0) # Повертає 1.0\n" -"pingpong(0.0, 3.0) # Повертає 0.0\n" -"pingpong(1.0, 3.0) # Повертає 1.0\n" -"pingpong(2.0, 3.0) # Повертає 2.0\n" -"pingpong(3.0, 3.0) # Повертає 3.0\n" -"pingpong(4.0, 3.0) # Повертає 2.0\n" -"pingpong(5.0, 3.0) # Повертає 1.0\n" -"pingpong(6.0, 3.0) # Повертає 0.0\n" +"pingpong(-3.0, 3.0) # Returns 3.0\n" +"pingpong(-2.0, 3.0) # Returns 2.0\n" +"pingpong(-1.0, 3.0) # Returns 1.0\n" +"pingpong(0.0, 3.0) # Returns 0.0\n" +"pingpong(1.0, 3.0) # Returns 1.0\n" +"pingpong(2.0, 3.0) # Returns 2.0\n" +"pingpong(3.0, 3.0) # Returns 3.0\n" +"pingpong(4.0, 3.0) # Returns 2.0\n" +"pingpong(5.0, 3.0) # Returns 1.0\n" +"pingpong(6.0, 3.0) # Returns 0.0\n" "[/codeblock]" msgid "" @@ -2656,9 +3390,9 @@ msgid "" msgstr "" "Повертає цілий модуль [param x], поділений на [param y], який рівномірно " "загортає додатні та від’ємні значення.\n" -" [кодовий блок]\n" +" [codeblock]\n" " print(\"#(i) (i % 3) (posmod(i, 3))\")\n" -" для i в діапазоні (-3, 4):\n" +" for i in range (-3, 4):\n" " print(\"%2d %2d | %2d\" % [i, i % 3, posmod(i, 3)])\n" " [/codeblock]\n" " Принти:\n" @@ -2684,10 +3418,123 @@ msgstr "" "Повертає результат підняття [param base] до степеню [param exp].\n" "У GDScript це еквівалент оператора [code]**[/code].\n" "[codeblock]\n" -"pow(2, 5) # Повертає 32.0\n" -"pow(4, 1.5) # Повертає 8.0\n" +"pow(2, 5) # Returns 32.0\n" +"pow(4, 1.5) # Returns 8.0\n" "[/codeblock]" +msgid "" +"Converts one or more arguments of any type to string in the best way possible " +"and prints them to the console.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var a = [1, 2, 3]\n" +"print(\"a\", \"b\", a) # Prints \"ab[1, 2, 3]\"\n" +"[/gdscript]\n" +"[csharp]\n" +"Godot.Collections.Array a = [1, 2, 3];\n" +"GD.Print(\"a\", \"b\", a); // Prints \"ab[1, 2, 3]\"\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] Consider using [method push_error] and [method push_warning] to " +"print error and warning messages instead of [method print] or [method " +"print_rich]. This distinguishes them from print messages used for debugging " +"purposes, while also displaying a stack trace when an error or warning is " +"printed. See also [member Engine.print_to_stdout] and [member ProjectSettings." +"application/run/disable_stdout]." +msgstr "" +"Перетворює один або кілька аргументів будь-якого типу на рядок найкращим " +"чином і друкує їх на консолі. \n" +"[codeblocks] \n" +"[gdscript] \n" +"мати = [1, 2, 3] \n" +"print(\"a\", \"b\", a) # Prints \"ab[1, 2, 3]\" \n" +"[/gdscript] \n" +"[csharp] \n" +"Godot.Collections.Array a = [1, 2, 3]; \n" +"GD.Print(\"a\", \"b\", a); // Prints \"ab[1, 2, 3]\" \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка:[/b] Розгляньте можливість використання [method push_error] і " +"[method push_warning] для друку повідомлень про помилку та попередження " +"замість [method print] або [method print_rich]. Це відрізняє їх від " +"повідомлень друку, які використовуються для налагодження, а також відображає " +"трасування стека, коли друкується помилка чи попередження. Див. також [член " +"Engine.print_to_stdout] і [член ProjectSettings.application/run/" +"disable_stdout]." + +msgid "" +"Converts one or more arguments of any type to string in the best way possible " +"and prints them to the console.\n" +"The following BBCode tags are supported: [code]b[/code], [code]i[/code], " +"[code]u[/code], [code]s[/code], [code]indent[/code], [code]code[/code], " +"[code]url[/code], [code]center[/code], [code]right[/code], [code]color[/" +"code], [code]bgcolor[/code], [code]fgcolor[/code].\n" +"URL tags only support URLs wrapped by a URL tag, not URLs with a different " +"title.\n" +"When printing to standard output, the supported subset of BBCode is converted " +"to ANSI escape codes for the terminal emulator to display. Support for ANSI " +"escape codes varies across terminal emulators, especially for italic and " +"strikethrough. In standard output, [code]code[/code] is represented with " +"faint text but without any font change. Unsupported tags are left as-is in " +"standard output.\n" +"[codeblocks]\n" +"[gdscript skip-lint]\n" +"print_rich(\"[color=green][b]Hello world![/b][/color]\") # Prints \"Hello " +"world!\", in green with a bold font.\n" +"[/gdscript]\n" +"[csharp skip-lint]\n" +"GD.PrintRich(\"[color=green][b]Hello world![/b][/color]\"); // Prints \"Hello " +"world!\", in green with a bold font.\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] Consider using [method push_error] and [method push_warning] to " +"print error and warning messages instead of [method print] or [method " +"print_rich]. This distinguishes them from print messages used for debugging " +"purposes, while also displaying a stack trace when an error or warning is " +"printed.\n" +"[b]Note:[/b] On Windows, only Windows 10 and later correctly displays ANSI " +"escape codes in standard output.\n" +"[b]Note:[/b] Output displayed in the editor supports clickable [code skip-" +"lint][url=address]text[/url][/code] tags. The [code skip-lint][url][/code] " +"tag's [code]address[/code] value is handled by [method OS.shell_open] when " +"clicked." +msgstr "" +"Перетворює один або кілька аргументів будь-якого типу на рядок найкращим " +"чином і друкує їх на консолі. \n" +"Підтримуються такі теги BBCode: [code]b[/code], [code]i[/code], [code]u[/" +"code], [code]s[/code], [code]indent[/code], [code]code[/code], [code]url[/" +"code], [code]center[/code], [code]right[/code], [code]color[/code], " +"[code]bgcolor[/code], [код]fgcolor[/code]. \n" +"URL-теги підтримують лише URL-адреси, обернені URL-тегом, а не URL-адреси з " +"іншим заголовком. \n" +"Під час друку на стандартний вихід підтримувана підмножина BBCode " +"перетворюється на escape-коди ANSI для відображення емулятора терміналу. " +"Підтримка escape-кодів ANSI відрізняється в різних емуляторах терміналу, " +"особливо для курсиву та закресленого. У стандартному виведенні [код]код[/код] " +"представлено розмитим текстом, але без будь-яких змін шрифту. Непідтримувані " +"теги залишаються без змін у стандартному виведенні. \n" +"[codeblock] \n" +"[gdscript skip-lint] \n" +"print_rich(\"[color=green][b]Hello world![/b][/color]\") # Prints \"Hello " +"world!\" зеленим кольором із жирним шрифтом. \n" +"[/gdscript] \n" +"[csharp skip-lint] \n" +"GD.PrintRich(\"[color=green][b]Привіт, світе![/b][/color]\"); // Prints " +"\"Hello world!\" зеленим кольором із жирним шрифтом. \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка:[/b] Розгляньте можливість використання [method push_error] і " +"[method push_warning] для друку повідомлень про помилку та попередження " +"замість [method print] або [method print_rich]. Це відрізняє їх від " +"повідомлень друку, які використовуються для налагодження, а також відображає " +"трасування стека, коли друкується помилка чи попередження. \n" +"[b]Примітка.[/b] У Windows лише Windows 10 і новіші версії правильно " +"відображають вихідні коди ANSI у стандартному виведенні. \n" +"[b]Примітка.[/b] Результати, що відображаються в редакторі, підтримують теги " +"[code skip-lint][url=address]text[/url][/code], які можна натиснути. Значення " +"[code]address[/code] тегу [code skip-lint][url][/code] обробляється [методом " +"OS.shell_open] після натискання." + msgid "" "If verbose mode is enabled ([method OS.is_stdout_verbose] returning " "[code]true[/code]), converts one or more arguments of any type to string in " @@ -2720,6 +3567,155 @@ msgstr "" "[/csharp]\n" "[/codeblocks]" +msgid "" +"Prints one or more arguments to strings in the best way possible to the OS " +"terminal. Unlike [method print], no newline is automatically added at the " +"end.\n" +"[b]Note:[/b] The OS terminal is [i]not[/i] the same as the editor's Output " +"dock. The output sent to the OS terminal can be seen when running Godot from " +"a terminal. On Windows, this requires using the [code]console.exe[/code] " +"executable.\n" +"[codeblocks]\n" +"[gdscript]\n" +"# Prints \"ABC\" to terminal.\n" +"printraw(\"A\")\n" +"printraw(\"B\")\n" +"printraw(\"C\")\n" +"[/gdscript]\n" +"[csharp]\n" +"// Prints \"ABC\" to terminal.\n" +"GD.PrintRaw(\"A\");\n" +"GD.PrintRaw(\"B\");\n" +"GD.PrintRaw(\"C\");\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Друкує один або кілька аргументів рядків у найкращий спосіб на терміналі ОС. " +"На відміну від [method print], новий рядок не додається автоматично в кінці.\n" +" [b]Примітка:[/b] Термінал ОС [i]не[/i] те саме, що вихідний док редактора. " +"Результати, надіслані на термінал ОС, можна побачити під час запуску Godot із " +"терміналу. У Windows для цього потрібно використовувати виконуваний файл " +"[code]console.exe[/code].\n" +" [codeblocks]\n" +" [gdscript]\n" +" printraw(\"A\")\n" +" printraw(\"B\")\n" +" printraw(\"C\")\n" +" # Друкує ABC на терміналі\n" +" [/gdscript]\n" +" [csharp]\n" +" GD.PrintRaw(\"A\");\n" +" GD.PrintRaw(\"B\");\n" +" GD.PrintRaw(\"C\");\n" +" // Друкує ABC на термінал\n" +" [/csharp]\n" +" [/codeblocks]" + +msgid "" +"Prints one or more arguments to the console with a space between each " +"argument.\n" +"[codeblocks]\n" +"[gdscript]\n" +"prints(\"A\", \"B\", \"C\") # Prints \"A B C\"\n" +"[/gdscript]\n" +"[csharp]\n" +"GD.PrintS(\"A\", \"B\", \"C\"); // Prints \"A B C\"\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Виводить у консоль один або декілька аргументів з пропуском між ними.\n" +"[codeblocks]\n" +"[gdscript]\n" +"prints(\"A\", \"B\", \"C\") # Prints A B C\n" +"[/gdscript]\n" +"[csharp]\n" +"GD.PrintS(\"A\", \"B\", \"C\"); // Prints A B C\n" +"[/csharp]\n" +"[/codeblocks]" + +msgid "" +"Prints one or more arguments to the console with a tab between each " +"argument.\n" +"[codeblocks]\n" +"[gdscript]\n" +"printt(\"A\", \"B\", \"C\") # Prints \"A B C\"\n" +"[/gdscript]\n" +"[csharp]\n" +"GD.PrintT(\"A\", \"B\", \"C\"); // Prints \"A B C\"\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Виводить у консоль один або декілька аргументів з табуляцією між кожним " +"аргументом.\n" +"[codeblocks]\n" +"[gdscript]\n" +"printt(\"A\", \"B\", \"C\") # Prints A B C\n" +"[/gdscript]\n" +"[csharp]\n" +"GD.PrintT(\"A\", \"B\", \"C\"); // Prints A B C\n" +"[/csharp]\n" +"[/codeblocks]" + +msgid "" +"Pushes an error message to Godot's built-in debugger and to the OS terminal.\n" +"[codeblocks]\n" +"[gdscript]\n" +"push_error(\"test error\") # Prints \"test error\" to debugger and terminal " +"as an error.\n" +"[/gdscript]\n" +"[csharp]\n" +"GD.PushError(\"test error\"); // Prints \"test error\" to debugger and " +"terminal as an error.\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] This function does not pause project execution. To print an " +"error message and pause project execution in debug builds, use " +"[code]assert(false, \"test error\")[/code] instead." +msgstr "" +"Надсилає повідомлення про помилку до вбудованого зневаджувача Godot та до " +"терміналу ОС.\n" +"[codeblocks]\n" +"[gdscript]\n" +"push_error(\"test error\") # Виводить \"test error\" до зневаджувача та " +"терміналу як виклик помилки\n" +"[/gdscript]\n" +"[csharp]\n" +"GD.PushError(\"test error\"); // Виводить \"test error\" до зневаджувача та " +"терміналу як виклик помилки\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Примітка:[/b] Ця функція не призупиняє виконання проекту. Щоб вивести " +"повідомлення про помилку і призупинити виконання проекту у відлагоджувальних " +"збірках, використовуйте замість неї [code]assert(false, \"test error\")[/" +"code]." + +msgid "" +"Pushes a warning message to Godot's built-in debugger and to the OS " +"terminal.\n" +"[codeblocks]\n" +"[gdscript]\n" +"push_warning(\"test warning\") # Prints \"test warning\" to debugger and " +"terminal as a warning.\n" +"[/gdscript]\n" +"[csharp]\n" +"GD.PushWarning(\"test warning\"); // Prints \"test warning\" to debugger and " +"terminal as a warning.\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Надсилає попереджувальне повідомлення до вбудованого зневаджувача Godot та до " +"терміналу ОС.\n" +"[codeblocks]\n" +"[gdscript]\n" +"push_warning(\"test warning\") # Виводить \"test warning\" в зневаджувачі та " +"терміналі як виклик попередження\n" +"[/gdscript]\n" +"[csharp]\n" +"GD.PushWarning(\"test warning\"); // Виводить \"test warning\" в зневаджувачі " +"та терміналі як виклик попередження\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Converts an angle expressed in radians to degrees.\n" "[codeblock]\n" @@ -2730,9 +3726,36 @@ msgid "" msgstr "" "Перетворює кут, виражений у радіанах, у градуси.\n" "[codeblock]\n" -"rad_to_deg(0.523599) # Повертає 30\n" -"rad_to_deg(PI) # Повертає 180\n" -"rad_to_deg(PI * 2) # Повертає 360\n" +"rad_to_deg(0.523599) # Returns 30\n" +"rad_to_deg(PI) # Returns 180\n" +"rad_to_deg(PI * 2) # Returns 360\n" +"[/codeblock]" + +msgid "" +"Given a [param seed], returns a [PackedInt64Array] of size [code]2[/code], " +"where its first element is the randomized [int] value, and the second element " +"is the same as [param seed]. Passing the same [param seed] consistently " +"returns the same array.\n" +"[b]Note:[/b] \"Seed\" here refers to the internal state of the pseudo random " +"number generator, currently implemented as a 64 bit integer.\n" +"[codeblock]\n" +"var a = rand_from_seed(4)\n" +"\n" +"print(a[0]) # Prints 2879024997\n" +"print(a[1]) # Prints 4\n" +"[/codeblock]" +msgstr "" +"За заданим [param seed], повертає [PackedInt64Array] розміру [code]2[/code], " +"де перший елемент є випадковим значенням [int], а другий такий самий, як і " +"[param seed]. Передача того самого [param seed] послідовно повертає один і " +"той же масив.\n" +"[b]Примітка:[/b] Під \"seed\" тут мається на увазі внутрішній стан генератора " +"псевдовипадкових чисел, який наразі реалізовано як 64-бітне ціле число.\n" +"[codeblock]\n" +"var a = rand_from_seed(4)\n" +"\n" +"print(a[0])\t# Prints 2879024997\n" +"print(a[1])\t# Prints 4\n" "[/codeblock]" msgid "" @@ -2749,12 +3772,12 @@ msgid "" msgstr "" "Повертає випадкове значення з плаваючою комою від [code]0.0[/code] до " "[code]1.0[/code] (включно).\n" -" [кодові блоки]\n" +" [codeblocks]\n" " [gdscript]\n" -" randf() # Повертає напр. 0,375671\n" +" randf() # Returns e.g. 0,375671\n" " [/gdscript]\n" " [csharp]\n" -" GD.Randf(); // Повертає напр. 0,375671\n" +" GD.Randf(); // Returns e.g. 0,375671\n" " [/csharp]\n" " [/codeblocks]" @@ -2774,14 +3797,14 @@ msgid "" msgstr "" "Повертає випадкове значення з плаваючою комою між [param from] і [param to] " "(включно).\n" -" [кодові блоки]\n" +" [codeblocks]\n" " [gdscript]\n" -" randf_range(0, 20.5) # Повертає, напр. 7,45315\n" -" randf_range(-10, 10) # Повертає напр. -3,844535\n" +" randf_range(0, 20.5) # Returns e.g. 7,45315\n" +" randf_range(-10, 10) # Returns e.g. -3,844535\n" " [/gdscript]\n" " [csharp]\n" -" GD.RandRange(0,0, 20,5); // Повертає напр. 7,45315\n" -" GD.RandRange(-10,0, 10,0); // Повертає напр. -3,844535\n" +" GD.RandRange(0,0, 20,5); // Returns e.g. 7,45315\n" +" GD.RandRange(-10,0, 10,0); // Returns e.g. -3,844535\n" " [/csharp]\n" " [/codeblocks]" @@ -2900,8 +3923,8 @@ msgstr "" "[/code], то результуюче значення також буде за межами [code][ostart, ostop][/" "code]. Якщо це небажано, використовуйте [method clamp] для результату цієї " "функції.\n" -" [кодовий блок]\n" -" remap(75, 0, 100, -1, 1) # Повертає 0,5\n" +" [codeblock]\n" +" remap(75, 0, 100, -1, 1) # Returns 0,5\n" " [/codeblock]\n" " Для складних випадків використання, де потрібні кілька діапазонів, подумайте " "про використання [Крива] або [Градієнт].\n" @@ -2954,10 +3977,10 @@ msgstr "" "Округлює [param x] до найближчого цілого числа, при цьому регістри " "округляються від 0. Підтримувані типи: [int], [float], [Vector2], [Vector2i], " "[Vector3], [Vector3i], [Vector4], [Вектор4i].\n" -" [кодовий блок]\n" -" round(2.4) # Повертає 2\n" -" round(2.5) # Повертає 3\n" -" round(2.6) # Повертає 3\n" +" [codeblock]\n" +" round(2.4) # Returns 2\n" +" round(2.5) # Returns 3\n" +" round(2.6) # Returns 3\n" " [/codeblock]\n" " Дивіться також [method floor], [method ceil] і [method snapped].\n" " [b]Примітка.[/b] Для кращої безпеки типу використовуйте [method roundf], " @@ -3051,12 +4074,12 @@ msgstr "" "Підтримувані типи: [int], [float], [Vector2], [Vector2i], [Vector3], " "[Vector3i], [Vector4], [Vector4i].\n" "[codeblock]\n" -"sign(-6.0) # Повертає -1\n" -"sign(0.0) # Повертає 0\n" -"sign(6.0) # Повертає 1\n" -"sign(NAN) # Повертає 0\n" +"sign(-6.0) # Returns -1\n" +"sign(0.0) # Returns 0\n" +"sign(6.0) # Returns 1\n" +"sign(NAN) # Returns 0\n" "\n" -"sign(Vector3(-6.0, 0.0, 6.0)) # Повертає (-1, 0, 1)\n" +"sign(Vector3(-6.0, 0.0, 6.0)) # Returns (-1, 0, 1)\n" "[/codeblock]\n" "[b]Примітка:[/b] Для кращої безпеки типу використовуйте [method signf], " "[method signi], [method Vector2.sign], [method Vector2i.sign], [method " @@ -3078,12 +4101,29 @@ msgstr "" "[param x] додатне, і [code]0.0[/code], якщо [param x] дорівнює нулю. Для " "[code]nan[/code] значень [param x] повертає 0.0.\n" "[codeblock]\n" -"signf(-6.5) # Повертає -1.0\n" -"signf(0.0) # Повертає 0.0\n" -"signf(6.5) # Повертає 1.0\n" -"signf(NAN) # Повертає 0.0\n" +"signf(-6.5) # Returns -1.0\n" +"signf(0.0) # Returns 0.0\n" +"signf(6.5) # Returns 1.0\n" +"signf(NAN) # Returns 0.0\n" "[/codeblock]" +msgid "" +"Returns [code]-1[/code] if [param x] is negative, [code]1[/code] if [param x] " +"is positive, and [code]0[/code] if [param x] is zero.\n" +"[codeblock]\n" +"signi(-6) # Returns -1\n" +"signi(0) # Returns 0\n" +"signi(6) # Returns 1\n" +"[/codeblock]" +msgstr "" +"Повертає [code]-1[/code], якщо [param x] негативний, [code]1[/code], якщо " +"[param x] додатний, і [code]0[/code], якщо [param x] є нуль.\n" +" [codeblock]\n" +" signi(-6) # Returns -1\n" +" signi(0) # Returns 0\n" +" signi(6) # Returns 1\n" +" [/codeblock]" + msgid "" "Returns the sine of angle [param angle_rad] in radians.\n" "[codeblock]\n" @@ -3093,8 +4133,8 @@ msgid "" msgstr "" "Повертає синус кута [param angle_rad] в радіанах.\n" "[codeblock]\n" -"sin(0.523599) # Повертає 0.5\n" -"sin(deg_to_rad(90)) # Повертає 1.0\n" +"sin(0.523599) # Returns 0.5\n" +"sin(deg_to_rad(90)) # Returns 1.0\n" "[/codeblock]" msgid "" @@ -3106,10 +4146,69 @@ msgid "" msgstr "" "Повертає гіперболічний синус [param x].\n" "[codeblock]\n" -"var a = log(2.0) # Повертає 0.693147\n" -"sinh(a) # Повертає 0.75\n" +"var a = log(2.0) # Returns 0.693147\n" +"sinh(a) # Returns 0.75\n" "[/codeblock]" +msgid "" +"Returns a smooth cubic Hermite interpolation between [code]0[/code] and " +"[code]1[/code].\n" +"For positive ranges (when [code]from <= to[/code]) the return value is " +"[code]0[/code] when [code]x <= from[/code], and [code]1[/code] when [code]x " +">= to[/code]. If [param x] lies between [param from] and [param to], the " +"return value follows an S-shaped curve that smoothly transitions from " +"[code]0[/code] to [code]1[/code].\n" +"For negative ranges (when [code]from > to[/code]) the function is mirrored " +"and returns [code]1[/code] when [code]x <= to[/code] and [code]0[/code] when " +"[code]x >= from[/code].\n" +"This S-shaped curve is the cubic Hermite interpolator, given by [code]f(y) = " +"3*y^2 - 2*y^3[/code] where [code]y = (x-from) / (to-from)[/code].\n" +"[codeblock]\n" +"smoothstep(0, 2, -5.0) # Returns 0.0\n" +"smoothstep(0, 2, 0.5) # Returns 0.15625\n" +"smoothstep(0, 2, 1.0) # Returns 0.5\n" +"smoothstep(0, 2, 2.0) # Returns 1.0\n" +"[/codeblock]\n" +"Compared to [method ease] with a curve value of [code]-1.6521[/code], [method " +"smoothstep] returns the smoothest possible curve with no sudden changes in " +"the derivative. If you need to perform more advanced transitions, use [Tween] " +"or [AnimationPlayer].\n" +"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" +"smoothstep_ease_comparison.png]Comparison between smoothstep() and ease(x, " +"-1.6521) return values[/url]\n" +"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" +"smoothstep_range.webp]Smoothstep() return values with positive, zero, and " +"negative ranges[/url]" +msgstr "" +"Повертає плавну кубічну інтерполяцію Ерміта між [code]0[/code] і [code]1[/" +"code]. \n" +"Для позитивних діапазонів (коли [code]від <= до[/code]) повертається значення " +"[code]0[/code], коли [code]x <= from[/code], і [code]1[/code], коли [code]x " +">= to[/code]. Якщо [param x] знаходиться між [param from] і [param to], " +"значення, що повертається, слідує S-подібній кривій, яка плавно переходить " +"від [code]0[/code] до [code]1[/code]. \n" +"Для від’ємних діапазонів (коли [code]від > до[/code]) функція відображається " +"і повертає [code]1[/code], коли [code]x <= to[/code], і [code]0[/code], коли " +"[code]x >= from[/code]. \n" +"Ця S-подібна крива є кубічним інтерполятором Ерміта, що визначається як " +"[код]f(y) = 3*y^2 - 2*y^3[/code], де [code]y = (x-від) / (до-від)[/code]. \n" +"[codeblock] \n" +"smoothstep(0, 2, -5.0) # Returns 0.0 \n" +"smoothstep(0, 2, 0.5) # Returns 0,15625 \n" +"smoothstep(0, 2, 1.0) # Returns 0,5 \n" +"smoothstep(0, 2, 2.0) # Returns 1.0 \n" +"[/codeblock] \n" +"Порівняно з [method ease] зі значенням кривої [code]-1,6521[/code], [method " +"smoothstep] повертає максимально гладку криву без раптових змін у похідній. " +"Якщо вам потрібно виконати більш складні переходи, використовуйте [Tween] або " +"[AnimationPlayer]. \n" +"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" +"smoothstep_ease_comparison.png]Порівняння повернених значень smoothstep() і " +"ease(x, -1,6521)[/url] \n" +"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" +"smoothstep_range.webp]Smoothstep() повертає значення з позитивним, нульовим і " +"негативним діапазонами[/url]" + msgid "" "Returns the multiple of [param step] that is the closest to [param x]. This " "can also be used to round a floating-point number to an arbitrary number of " @@ -3135,11 +4234,11 @@ msgstr "" " Повернене значення має той самий тип [Variant], що й [param step]. " "Підтримувані типи: [int], [float], [Vector2], [Vector2i], [Vector3], " "[Vector3i], [Vector4], [Vector4i].\n" -" [кодовий блок]\n" -" snapped(100, 32) # Повертає 96\n" -" snapped(3.14159, 0.01) # Повертає 3.14\n" +" [codeblock]\n" +" snapped(100, 32) # Returns 96\n" +" snapped(3.14159, 0.01) # Returns 3.14\n" "\n" -" snapped(Vector2(34, 70), Vector2(8, 8)) # Повертає (32, 72)\n" +" snapped(Vector2(34, 70), Vector2(8, 8)) # Returns (32, 72)\n" " [/codeblock]\n" " Дивіться також [method ceil], [method floor] і [method round].\n" " [b]Примітка:[/b] Для кращої безпеки типу використовуйте [method snappedf], " @@ -3161,9 +4260,9 @@ msgstr "" "використовувати для округлення числа з плаваючою комою до довільної кількості " "десяткових знаків.\n" " Типобезпечна версія [method snapped], що повертає [float].\n" -" [кодовий блок]\n" -" snappedf(32.0, 2.5) # Повертає 32.5\n" -" snappedf(3.14159, 0.01) # Повертає 3.14\n" +" [codeblock]\n" +" snappedf(32.0, 2.5) # Returns 32.5\n" +" snappedf(3.14159, 0.01) # Returns 3.14\n" " [/codeblock]" msgid "" @@ -3176,9 +4275,9 @@ msgid "" msgstr "" "Повертає кратне [param step], яке є найближчим до [param x].\n" " Типобезпечна версія [method snapped], що повертає [int].\n" -" [кодовий блок]\n" -" snappedi(53, 16) # Повертає 48\n" -" snappedi(4096, 100) # Повертає 4100\n" +" [codeblock]\n" +" snappedi(53, 16) # Returns 48\n" +" snappedi(4096, 100) # Returns 4100\n" " [/codeblock]" msgid "" @@ -3194,9 +4293,9 @@ msgid "" msgstr "" "Повертає квадратний корінь з [param x], де [param x] невід'ємне число.\n" "[codeblock]\n" -"sqrt(9) # Повертає 3\n" -"sqrt(10.24) # Повертає 3.2\n" -"sqrt(-1) # Повертає NaN\n" +"sqrt(9) # Returns 3\n" +"sqrt(10.24) # Returns 3.2\n" +"sqrt(-1) # Returns NaN\n" "[/codeblock]\n" "[b]Примітка:[/b] Від'ємні значення [param x] повертають NaN (\"Not a Number " "(Не Число)\"). В C#, якщо вам потрібні від'ємні вхідні дані, використовуйте " @@ -3216,9 +4315,9 @@ msgstr "" "Зауважте, що максимальне значення, що повертається, становить 10, що є " "проектним рішенням у реалізації.\n" "[codeblock]\n" -"var n = step_decimals(5) # n рівно 0\n" -"n = step_decimals(1.0005) # n рівно 4\n" -"n = step_decimals(0.000000005) # n рівно 9\n" +"var n = step_decimals(5) # n is 0\n" +"n = step_decimals(1.0005) # n is 4\n" +"n = step_decimals(0.000000005) # n is 9\n" "[/codeblock]" msgid "" @@ -3325,7 +4424,7 @@ msgstr "" "повідомлення про помилки, доки [параметр type] є дійсним типом Variant.\n" " Поверненим значенням є [Варіант], але дані всередині та їх тип будуть такими " "самими, як запитуваний тип.\n" -" [кодовий блок]\n" +" [codeblock]\n" " type_convert(\"Привіт!\", TYPE_INT) # Повертає 0\n" " type_convert(\"123\", TYPE_INT) # Повертає 123\n" " type_convert(123.4, TYPE_INT) # Повертає 123\n" @@ -3333,6 +4432,52 @@ msgstr "" " type_convert(\"Привіт!\", TYPE_NIL) # Повертає null\n" " [/codeblock]" +msgid "" +"Returns a human-readable name of the given [param type], using the [enum " +"Variant.Type] values.\n" +"[codeblock]\n" +"print(TYPE_INT) # Prints 2\n" +"print(type_string(TYPE_INT)) # Prints \"int\"\n" +"print(type_string(TYPE_STRING)) # Prints \"String\"\n" +"[/codeblock]\n" +"See also [method typeof]." +msgstr "" +"Повертає зрозумілу людині назву заданого [типу параметра], використовуючи " +"значення [enum Variant.Type].\n" +" [codeblock]\n" +" print(TYPE_INT) # Друкує 2.\n" +" print(type_string(TYPE_INT)) # Виводить \"int\".\n" +" print(type_string(TYPE_STRING)) # Виводить \"Рядок\".\n" +" [/codeblock]\n" +" Дивіться також [method typeof]." + +msgid "" +"Returns the internal type of the given [param variable], using the [enum " +"Variant.Type] values.\n" +"[codeblock]\n" +"var json = JSON.new()\n" +"json.parse('[\"a\", \"b\", \"c\"]')\n" +"var result = json.get_data()\n" +"if result is Array:\n" +" print(result[0]) # Prints \"a\"\n" +"else:\n" +" print(\"Unexpected result!\")\n" +"[/codeblock]\n" +"See also [method type_string]." +msgstr "" +"Повертає внутрішній тип заданого [param variable], використовуючи значення " +"[enum Variant.Type].\n" +"[codeblock]\n" +"var json = JSON.new()\n" +"json.parse('[\"a\", \"b\", \"c\"]')\n" +"var result = json.get_data()\n" +"if typeof(result) == TYPE_ARRAY:\n" +" print(result[0]) # Виводить a\n" +"else:\n" +" print(\"Неочікуваний результат\")\n" +"[/codeblock]\n" +"Дивіться також [method type_string]." + msgid "" "Encodes a [Variant] value to a byte array, without encoding objects. " "Deserialization can be done with [method bytes_to_var].\n" @@ -3386,7 +4531,7 @@ msgid "" msgstr "" "Перетворює [Variant] [param variable] у відформатований [String], який потім " "можна проаналізувати за допомогою [method str_to_var].\n" -" [кодові блоки]\n" +" [codeblocks]\n" " [gdscript]\n" " var a = { \"a\": 1, \"b\": 2 }\n" " print(var_to_str(a))\n" @@ -3482,15 +4627,15 @@ msgstr "" "Розміщує float [param value] між [param min] і [param max]. Можна " "використовувати для створення циклічної поведінки або нескінченних " "поверхонь.\n" -" [кодовий блок]\n" +" [codeblock]\n" " # Нескінченний цикл між 5.0 і 9.9\n" " значення = wrapf(значення + 0,1, 5,0, 10,0)\n" " [/codeblock]\n" -" [кодовий блок]\n" +" [codeblock]\n" " # Нескінченне обертання (у радіанах)\n" " angle = wrapf(angle + 0,1, 0,0, TAU)\n" " [/codeblock]\n" -" [кодовий блок]\n" +" [codeblock]\n" " # Нескінченне обертання (у радіанах)\n" " angle = wrapf(кут + 0,1, -PI, PI)\n" " [/codeblock]\n" @@ -4142,9 +5287,18 @@ msgstr "Гіпер клавіша. (Лише на Linux/X11)." msgid "Help key." msgstr "Клавіша Help." +msgid "Back key." +msgstr "Клавіша «Назад»." + +msgid "Forward key." +msgstr "Клавіша вперед." + msgid "Media stop key." msgstr "Клавіша зупинки медіа." +msgid "Refresh key." +msgstr "Клавіша оновлення." + msgid "Volume down key." msgstr "Клавіша зменшення гучності." @@ -4170,7 +5324,7 @@ msgid "Home page key." msgstr "Клавіша домашньої сторінки." msgid "Favorites key." -msgstr "Ключ улюбленого." +msgstr "Клавіша улюбленого." msgid "Search key." msgstr "Клавіша пошуку." @@ -4251,7 +5405,52 @@ msgid "Unknown key." msgstr "Невідома клавіша." msgid "Space key." -msgstr "Пробіл." +msgstr "Клавіша Пробіл." + +msgid "Exclamation mark ([code]![/code]) key." +msgstr "Клавіша зі знаком оклику ([code]![/code])." + +msgid "Double quotation mark ([code]\"[/code]) key." +msgstr "Ключ подвійних лапок ([code]\"[/code])." + +msgid "Number sign or [i]hash[/i] ([code]#[/code]) key." +msgstr "Цифровий знак або клавіша [i]hash[/i] ([code]#[/code])." + +msgid "Dollar sign ([code]$[/code]) key." +msgstr "Знак долара ([code]$[/code]) ключ." + +msgid "Percent sign ([code]%[/code]) key." +msgstr "Клавіша знака відсотка ([code]%[/code])." + +msgid "Ampersand ([code]&[/code]) key." +msgstr "Амперсанд ([code]&[/code]) ключ." + +msgid "Apostrophe ([code]'[/code]) key." +msgstr "Клавіша апостроф ([code]'[/code])." + +msgid "Left parenthesis ([code]([/code]) key." +msgstr "Ліва дужка (клавіша [code]([/code])." + +msgid "Right parenthesis ([code])[/code]) key." +msgstr "Права дужка ([code])[/code])." + +msgid "Asterisk ([code]*[/code]) key." +msgstr "Клавіша зірочка ([code]*[/code])." + +msgid "Plus ([code]+[/code]) key." +msgstr "Плюс ([code]+[/code])." + +msgid "Comma ([code],[/code]) key." +msgstr "Кома ([code],[/code]) ключ." + +msgid "Minus ([code]-[/code]) key." +msgstr "Клавіша мінус ([code]-[/code])." + +msgid "Period ([code].[/code]) key." +msgstr "Період ([code].[/code]) ключ." + +msgid "Slash ([code]/[/code]) key." +msgstr "Слеш ([code]/[/code])." msgid "Number 0 key." msgstr "Клавіша цифра 0." @@ -4283,6 +5482,27 @@ msgstr "Клавіша цифра 8." msgid "Number 9 key." msgstr "Клавіша цифра 9." +msgid "Colon ([code]:[/code]) key." +msgstr "Колон ([code]:[/code]) ключ." + +msgid "Semicolon ([code];[/code]) key." +msgstr "Крапка з комою ([code];[/code]) клавіша." + +msgid "Less-than sign ([code]<[/code]) key." +msgstr "Клавіша зі знаком «менше» ([code]<[/code])." + +msgid "Equal sign ([code]=[/code]) key." +msgstr "Клавіша знака рівності ([code]=[/code])." + +msgid "Greater-than sign ([code]>[/code]) key." +msgstr "Ключ із знаком «більше» ([code]>[/code])." + +msgid "Question mark ([code]?[/code]) key." +msgstr "Клавіша знака питання ([code]?[/code])." + +msgid "At sign ([code]@[/code]) key." +msgstr "Знак ([code]@[/code]) ключ." + msgid "A key." msgstr "Клавіша А." @@ -4361,6 +5581,42 @@ msgstr "Клавіша Y." msgid "Z key." msgstr "Клавіша Z." +msgid "Left bracket ([code][lb][/code]) key." +msgstr "Ліва квадратна дужка ([code][lb][/code])." + +msgid "Backslash ([code]\\[/code]) key." +msgstr "Клавіша зворотної косої риски ([code]\\[/code])." + +msgid "Right bracket ([code][rb][/code]) key." +msgstr "Права дужка ([code][rb][/code])." + +msgid "Caret ([code]^[/code]) key." +msgstr "Клавіша вставки ([code]^[/code])." + +msgid "Underscore ([code]_[/code]) key." +msgstr "Клавіша підкреслення ([code]_[/code])." + +msgid "Backtick ([code]`[/code]) key." +msgstr "Клавіша зворотної галочки ([code]`[/code])." + +msgid "Left brace ([code]{[/code]) key." +msgstr "Клавіша лівої фігурної дужки ([code]{[/code])." + +msgid "Vertical bar or [i]pipe[/i] ([code]|[/code]) key." +msgstr "Клавіша вертикальної смуги або [i]трубки[/i] ([code]|[/code])." + +msgid "Right brace ([code]}[/code]) key." +msgstr "Права дужка ([code]}[/code])." + +msgid "Tilde ([code]~[/code]) key." +msgstr "Клавіша тильди ([code]~[/code])." + +msgid "Yen symbol ([code]¥[/code]) key." +msgstr "Символ ієни ([code]¥[/code])." + +msgid "Section sign ([code]§[/code]) key." +msgstr "Клавіша знака розділу ([code]§[/code])." + msgid "Key Code mask." msgstr "Маска коду клавіші." @@ -4787,6 +6043,40 @@ msgstr "" "стану, ніби його щойно ввімкнули. Його не слід надсилати, коли пристрій MIDI " "увімкнено." +msgid "" +"Methods that return [enum Error] return [constant OK] when no error " +"occurred.\n" +"Since [constant OK] has value [code]0[/code], and all other error constants " +"are positive integers, it can also be used in boolean checks.\n" +"[codeblock]\n" +"var error = method_that_returns_error()\n" +"if error != OK:\n" +" printerr(\"Failure!\")\n" +"\n" +"# Or, alternatively:\n" +"if error:\n" +" printerr(\"Still failing!\")\n" +"[/codeblock]\n" +"[b]Note:[/b] Many functions do not return an error code, but will print error " +"messages to standard output." +msgstr "" +"Методи, які повертають [enum Error], повертають [константу OK], якщо помилки " +"не сталося. \n" +"Оскільки [константа OK] має значення [code]0[/code], а всі інші константи " +"помилок є додатними цілими числами, її також можна використовувати в логічних " +"перевірках. \n" +"[codeblock] \n" +"var error = method_that_returns_error() \n" +"якщо помилка != OK: \n" +" printerr(\"Помилка!\") \n" +"\n" +"# Або, альтернативно: \n" +"якщо помилка: \n" +" printerr(\"Досі не вдається!\") \n" +"[/codeblock] \n" +"[b]Примітка:[/b] Багато функцій не повертають код помилки, але друкують " +"повідомлення про помилку у стандартний вихід." + msgid "Generic error." msgstr "Типова помилка." @@ -5185,6 +6475,180 @@ msgstr "" "Підказує, що значенням властивості є об’єкт, закодований як ідентифікатор " "об’єкта, тип якого вказано в рядку підказки. Використовується налагоджувачем." +msgid "" +"If a property is [String], hints that the property represents a particular " +"type (class). This allows to select a type from the create dialog. The " +"property will store the selected type as a string.\n" +"If a property is [Array], hints the editor how to show elements. The " +"[code]hint_string[/code] must encode nested types using [code]\":\"[/code] " +"and [code]\"/\"[/code].\n" +"[codeblocks]\n" +"[gdscript]\n" +"# Array of elem_type.\n" +"hint_string = \"%d:\" % [elem_type]\n" +"hint_string = \"%d/%d:%s\" % [elem_type, elem_hint, elem_hint_string]\n" +"# Two-dimensional array of elem_type (array of arrays of elem_type).\n" +"hint_string = \"%d:%d:\" % [TYPE_ARRAY, elem_type]\n" +"hint_string = \"%d:%d/%d:%s\" % [TYPE_ARRAY, elem_type, elem_hint, " +"elem_hint_string]\n" +"# Three-dimensional array of elem_type (array of arrays of arrays of " +"elem_type).\n" +"hint_string = \"%d:%d:%d:\" % [TYPE_ARRAY, TYPE_ARRAY, elem_type]\n" +"hint_string = \"%d:%d:%d/%d:%s\" % [TYPE_ARRAY, TYPE_ARRAY, elem_type, " +"elem_hint, elem_hint_string]\n" +"[/gdscript]\n" +"[csharp]\n" +"// Array of elemType.\n" +"hintString = $\"{elemType:D}:\";\n" +"hintString = $\"{elemType:}/{elemHint:D}:{elemHintString}\";\n" +"// Two-dimensional array of elemType (array of arrays of elemType).\n" +"hintString = $\"{Variant.Type.Array:D}:{elemType:D}:\";\n" +"hintString = $\"{Variant.Type.Array:D}:{elemType:D}/{elemHint:D}:" +"{elemHintString}\";\n" +"// Three-dimensional array of elemType (array of arrays of arrays of " +"elemType).\n" +"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Array:D}:{elemType:D}:" +"\";\n" +"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Array:D}:{elemType:D}/" +"{elemHint:D}:{elemHintString}\";\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Examples:[/b]\n" +"[codeblocks]\n" +"[gdscript]\n" +"hint_string = \"%d:\" % [TYPE_INT] # Array of integers.\n" +"hint_string = \"%d/%d:1,10,1\" % [TYPE_INT, PROPERTY_HINT_RANGE] # Array of " +"integers (in range from 1 to 10).\n" +"hint_string = \"%d/%d:Zero,One,Two\" % [TYPE_INT, PROPERTY_HINT_ENUM] # Array " +"of integers (an enum).\n" +"hint_string = \"%d/%d:Zero,One,Three:3,Six:6\" % [TYPE_INT, " +"PROPERTY_HINT_ENUM] # Array of integers (an enum).\n" +"hint_string = \"%d/%d:*.png\" % [TYPE_STRING, PROPERTY_HINT_FILE] # Array of " +"strings (file paths).\n" +"hint_string = \"%d/%d:Texture2D\" % [TYPE_OBJECT, " +"PROPERTY_HINT_RESOURCE_TYPE] # Array of textures.\n" +"\n" +"hint_string = \"%d:%d:\" % [TYPE_ARRAY, TYPE_FLOAT] # Two-dimensional array " +"of floats.\n" +"hint_string = \"%d:%d/%d:\" % [TYPE_ARRAY, TYPE_STRING, " +"PROPERTY_HINT_MULTILINE_TEXT] # Two-dimensional array of multiline strings.\n" +"hint_string = \"%d:%d/%d:-1,1,0.1\" % [TYPE_ARRAY, TYPE_FLOAT, " +"PROPERTY_HINT_RANGE] # Two-dimensional array of floats (in range from -1 to " +"1).\n" +"hint_string = \"%d:%d/%d:Texture2D\" % [TYPE_ARRAY, TYPE_OBJECT, " +"PROPERTY_HINT_RESOURCE_TYPE] # Two-dimensional array of textures.\n" +"[/gdscript]\n" +"[csharp]\n" +"hintString = $\"{Variant.Type.Int:D}/{PropertyHint.Range:D}:1,10,1\"; // " +"Array of integers (in range from 1 to 10).\n" +"hintString = $\"{Variant.Type.Int:D}/{PropertyHint.Enum:D}:Zero,One,Two\"; // " +"Array of integers (an enum).\n" +"hintString = $\"{Variant.Type.Int:D}/{PropertyHint.Enum:D}:Zero,One,Three:3," +"Six:6\"; // Array of integers (an enum).\n" +"hintString = $\"{Variant.Type.String:D}/{PropertyHint.File:D}:*.png\"; // " +"Array of strings (file paths).\n" +"hintString = $\"{Variant.Type.Object:D}/{PropertyHint.ResourceType:D}:" +"Texture2D\"; // Array of textures.\n" +"\n" +"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Float:D}:\"; // Two-" +"dimensional array of floats.\n" +"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.String:D}/{PropertyHint." +"MultilineText:D}:\"; // Two-dimensional array of multiline strings.\n" +"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Float:D}/{PropertyHint." +"Range:D}:-1,1,0.1\"; // Two-dimensional array of floats (in range from -1 to " +"1).\n" +"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Object:D}/{PropertyHint." +"ResourceType:D}:Texture2D\"; // Two-dimensional array of textures.\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] The trailing colon is required for properly detecting built-in " +"types." +msgstr "" +"Якщо властивість [String], це означає, що властивість представляє певний тип " +"(клас). Це дозволяє вибрати тип у діалоговому вікні створення. Властивість " +"зберігатиме вибраний тип як рядок. \n" +"Якщо властивість [Array], підказує редактору, як показати елементи. " +"[code]hint_string[/code] має кодувати вкладені типи за допомогою [code]\":\"[/" +"code] і [code]\"/\"[/code]. \n" +"[codeblock] \n" +"[gdscript] \n" +"# Масив elem_type. \n" +"hint_string = \"%d:\" % [elem_type] \n" +"hint_string = \"%d/%d:%s\" % [elem_type, elem_hint, elem_hint_string] \n" +"# Двовимірний масив elem_type (масив elem_type). \n" +"hint_string = \"%d:%d:\" % [TYPE_ARRAY, elem_type] \n" +"hint_string = \"%d:%d/%d:%s\" % [TYPE_ARRAY, elem_type, elem_hint, " +"elem_hint_string] \n" +"# Тривимірний масив elem_type (масив масивів elem_type). \n" +"hint_string = \"%d:%d:%d:\" % [TYPE_ARRAY, TYPE_ARRAY, elem_type] \n" +"hint_string = \"%d:%d:%d/%d:%s\" % [TYPE_ARRAY, TYPE_ARRAY, elem_type, " +"elem_hint, elem_hint_string] \n" +"[/gdscript] \n" +"[csharp] \n" +"// Масив elemType. \n" +"hintString = $\"{elemType:D}:\"; \n" +"hintString = $\"{elemType:}/{elemHint:D}:{elemHintString}\"; \n" +"// Двовимірний масив elemType (масив масивів elemType). \n" +"hintString = $\"{Variant.Type.Array:D}:{elemType:D}:\"; \n" +"hintString = $\"{Variant.Type.Array:D}:{elemType:D}/{elemHint:D}:" +"{elemHintString}\"; \n" +"// Тривимірний масив elemType (масив масивів elemType). \n" +"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Array:D}:{elemType:D}:" +"\"; \n" +"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Array:D}:{elemType:D}/" +"{elemHint:D}:{elemHintString}\"; \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Приклади:[/b] \n" +"[codeblock] \n" +"[gdscript] \n" +"hint_string = \"%d:\" % [TYPE_INT] # Масив цілих чисел. \n" +"hint_string = \"%d/%d:1,10,1\" % [TYPE_INT, PROPERTY_HINT_RANGE] # Масив " +"цілих чисел (в діапазоні від 1 до 10). \n" +"hint_string = \"%d/%d:Zero,One,Two\" % [TYPE_INT, PROPERTY_HINT_ENUM] # Масив " +"цілих чисел (enum). \n" +"hint_string = \"%d/%d:Нуль,Один,Три:3,Шість:6\" % [TYPE_INT, " +"PROPERTY_HINT_ENUM] # Масив цілих чисел (enum). \n" +"hint_string = \"%d/%d:*.png\" % [TYPE_STRING, PROPERTY_HINT_FILE] # Масив " +"рядків (шляхи до файлів). \n" +"hint_string = \"%d/%d:Texture2D\" % [TYPE_OBJECT, " +"PROPERTY_HINT_RESOURCE_TYPE] # Масив текстур. \n" +"\n" +"hint_string = \"%d:%d:\" % [TYPE_ARRAY, TYPE_FLOAT] # Двовимірний масив " +"плаваючих значень. \n" +"hint_string = \"%d:%d/%d:\" % [TYPE_ARRAY, TYPE_STRING, " +"PROPERTY_HINT_MULTILINE_TEXT] # Двовимірний масив багаторядкових рядків. \n" +"hint_string = \"%d:%d/%d:-1,1,0.1\" % [TYPE_ARRAY, TYPE_FLOAT, " +"PROPERTY_HINT_RANGE] # Двовимірний масив чисел з плаваючою точкою (в " +"діапазоні від -1 до 1). \n" +"hint_string = \"%d:%d/%d:Texture2D\" % [TYPE_ARRAY, TYPE_OBJECT, " +"PROPERTY_HINT_RESOURCE_TYPE] # Двовимірний масив текстур. \n" +"[/gdscript] \n" +"[csharp] \n" +"hintString = $\"{Variant.Type.Int:D}/{PropertyHint.Range:D}:1,10,1\"; // " +"Масив цілих чисел (в діапазоні від 1 до 10). \n" +"hintString = $\"{Variant.Type.Int:D}/{PropertyHint.Enum:D}:Нуль,Один," +"Два\"; // Масив цілих чисел (enum). \n" +"hintString = $\"{Variant.Type.Int:D}/{PropertyHint.Enum:D}:Нуль,Один,Три:3," +"Шість:6\"; // Масив цілих чисел (enum). \n" +"hintString = $\"{Variant.Type.String:D}/{PropertyHint.File:D}:*.png\"; // " +"Масив рядків (шляхи до файлів). \n" +"hintString = $\"{Variant.Type.Object:D}/{PropertyHint.ResourceType:D}:" +"Texture2D\"; // Масив текстур. \n" +"\n" +"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Float:D}:\"; // " +"Двовимірний масив поплавців. \n" +"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.String:D}/{PropertyHint." +"MultilineText:D}:\"; // Двовимірний масив багаторядкових рядків. \n" +"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Float:D}/{PropertyHint." +"Range:D}:-1,1,0.1\"; // Двовимірний масив float (в діапазоні від -1 до 1). \n" +"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Object:D}/{PropertyHint." +"ResourceType:D}:Texture2D\"; // Двовимірний масив текстур. \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка:[/b] Кінцева двокрапка потрібна для правильного виявлення " +"вбудованих типів." + msgid "This hint is not used by the engine." msgstr "Ця підказка не використовується двигуном." @@ -5235,6 +6699,13 @@ msgstr "" "Підказує, що властивість є [масивом] із збереженим типом, указаним у рядку " "підказки." +msgid "" +"Hints that a property is a [Dictionary] with the stored types specified in " +"the hint string." +msgstr "" +"Підказує, що властивість є [словником] із збереженими типами, указаними в " +"рядку підказки." + msgid "" "Hints that a string property is a locale code. Editing it will show a locale " "dialog for picking language and country." @@ -5272,6 +6743,42 @@ msgstr "" "Підказує, що текстова властивість є паролем, і кожен символ замінюється на " "символ секрету." +msgid "" +"Hints that a [Callable] property should be displayed as a clickable button. " +"When the button is pressed, the callable is called. The hint string specifies " +"the button text and optionally an icon from the [code]\"EditorIcons\"[/code] " +"theme type.\n" +"[codeblock lang=text]\n" +"\"Click me!\" - A button with the text \"Click me!\" and the default " +"\"Callable\" icon.\n" +"\"Click me!,ColorRect\" - A button with the text \"Click me!\" and the " +"\"ColorRect\" icon.\n" +"[/codeblock]\n" +"[b]Note:[/b] A [Callable] cannot be properly serialized and stored in a file, " +"so it is recommended to use [constant PROPERTY_USAGE_EDITOR] instead of " +"[constant PROPERTY_USAGE_DEFAULT]." +msgstr "" +"Підказки, що властивість [Callable] має відображатися як кнопка, яку можна " +"натиснути. При натисканні кнопки викликається абонент. Рядок підказки " +"визначає текст кнопки та, за бажанням, піктограму з типу теми " +"[code]\"EditorIcons\"[/code]. \n" +"[codeblock lang=text] \n" +"\"Натисни мене!\" - кнопка з текстом \"Натисни мене!\" і значок за " +"замовчуванням «Можливий виклик». \n" +"\"Click me!,ColorRect\" - кнопка з текстом \"Click me!\" і піктограму " +"«ColorRect». \n" +"[/codeblock] \n" +"[b]Примітка: [/b] [Callable] не можна правильно серіалізувати та зберегти у " +"файлі, тому рекомендується використовувати [константу PROPERTY_USAGE_EDITOR] " +"замість [константу PROPERTY_USAGE_DEFAULT]." + +msgid "" +"Hints that a property will be changed on its own after setting, such as " +"[member AudioStreamPlayer.playing] or [member GPUParticles3D.emitting]." +msgstr "" +"Підказки про те, що властивість буде змінено самостійно після налаштування, " +"наприклад [член AudioStreamPlayer.playing] або [член GPUParticles3D.emitting]." + msgid "Represents the size of the [enum PropertyHint] enum." msgstr "Відображає розмір переліку [enum PropertyHint]." @@ -5335,6 +6842,20 @@ msgstr "" "При редагуванні властивості користувачеві буде запропоновано перезапустити " "редактор." +msgid "" +"The property is a script variable. [constant PROPERTY_USAGE_SCRIPT_VARIABLE] " +"can be used to distinguish between exported script variables from built-in " +"variables (which don't have this usage flag). By default, [constant " +"PROPERTY_USAGE_SCRIPT_VARIABLE] is [b]not[/b] applied to variables that are " +"created by overriding [method Object._get_property_list] in a script." +msgstr "" +"Властивість є змінною сценарію. [константу PROPERTY_USAGE_SCRIPT_VARIABLE] " +"можна використовувати, щоб відрізнити експортовані змінні сценарію від " +"вбудованих змінних (які не мають цього позначка використання). За " +"замовчуванням [константа PROPERTY_USAGE_SCRIPT_VARIABLE] [b]не[/b] " +"застосовується до змінних, створених шляхом перевизначення [method Object." +"_get_property_list] у сценарії." + msgid "" "The property value of type [Object] will be stored even if its value is " "[code]null[/code]." @@ -5348,6 +6869,13 @@ msgstr "Якщо цю властивість змінити, усі поля і msgid "This flag is not used by the engine." msgstr "Цей прапорець не використовується двигуном." +msgid "" +"The property is a variable of enum type, i.e. it only takes named integer " +"constants from its associated enumeration." +msgstr "" +"Властивість є змінною типу enum, тобто вона приймає лише іменовані цілі " +"константи з пов’язаного з нею переліку." + msgid "" "If property has [code]nil[/code] as default value, its type will be [Variant]." msgstr "" @@ -5726,6 +7254,47 @@ msgstr "Створює [AABB] як копію заданого [AABB]." msgid "Constructs an [AABB] by [param position] and [param size]." msgstr "Створює [AABB] за [param position] і [param size]." +msgid "" +"Returns an [AABB] equivalent to this bounding box, with its width, height, " +"and depth modified to be non-negative values.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var box = AABB(Vector3(5, 0, 5), Vector3(-20, -10, -5))\n" +"var absolute = box.abs()\n" +"print(absolute.position) # Prints (-15.0, -10.0, 0.0)\n" +"print(absolute.size) # Prints (20.0, 10.0, 5.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"var box = new Aabb(new Vector3(5, 0, 5), new Vector3(-20, -10, -5));\n" +"var absolute = box.Abs();\n" +"GD.Print(absolute.Position); // Prints (-15, -10, 0)\n" +"GD.Print(absolute.Size); // Prints (20, 10, 5)\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] It's recommended to use this method when [member size] is " +"negative, as most other methods in Godot assume that the [member size]'s " +"components are greater than [code]0[/code]." +msgstr "" +"Повертає [AABB], еквівалентний цій обмежувальній рамці, з її шириною, висотою " +"та глибиною, зміненими на невід’ємні значення. \n" +"[codeblocks] \n" +"[gdscript] \n" +"змінна коробка = AABB(Вектор3(5, 0, 5), Вектор3(-20, -10, -5)) \n" +"var absolute = box.abs() \n" +"print(absolute.position) # Друк (-15.0, -10.0, 0.0) \n" +"print(absolute.size) # Друк (20.0, 10.0, 5.0) \n" +"[/gdscript] \n" +"[csharp] \n" +"var box = new Aabb(new Vector3(5, 0, 5), new Vector3(-20, -10, -5)); \n" +"var absolute = box.Abs(); \n" +"GD.Print(absolute.Position); // Виводить (-15, -10, 0) \n" +"GD.Print(absolute.Size); // Друк (20, 10, 5) \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка: [/b] Рекомендується використовувати цей метод, коли [member " +"size] є від’ємним, оскільки більшість інших методів у Godot припускають, що " +"компоненти [member size] більші за [code]0[/code]." + msgid "" "Returns [code]true[/code] if this bounding box [i]completely[/i] encloses the " "[param with] box. The edges of both boxes are included.\n" @@ -5752,18 +7321,18 @@ msgid "" msgstr "" "Повертає [code]true[/code], якщо ця обмежувальна рамка [i]повністю[/i] " "охоплює рамку [param with]. Краї обох коробок включені.\n" -" [кодові блоки]\n" +" [codeblock]\n" " [gdscript]\n" -" var a = AABB(Вектор3(0, 0, 0), Вектор3(4, 4, 4))\n" -" змінна b = AABB(Вектор3(1, 1, 1), Вектор3(3, 3, 3))\n" -" var c = AABB(Вектор3(2, 2, 2), Вектор3(8, 8, 8))\n" +" var a = AABB(Vector3(0, 0, 0), Vector3(4, 4, 4))\n" +" var b = AABB(Vector3(1, 1, 1), Vector3(3, 3, 3))\n" +" var c = AABB(Vector3(2, 2, 2), Vector3(8, 8, 8))\n" "\n" " print(a.encloses(a)) # Виводить true\n" " print(a.encloses(b)) # Виводить true\n" " print(a.encloses(c)) # Виводить false\n" " [/gdscript]\n" " [csharp]\n" -" var a = новий Aabb(новий вектор3(0, 0, 0), новий вектор3(4, 4, 4));\n" +" var a = new Aabb(new Vector3(0, 0, 0), новий вектор3(4, 4, 4));\n" " var b = new Aabb(new Vector3(1, 1, 1), new Vector3(3, 3, 3));\n" " var c = new Aabb(new Vector3(2, 2, 2), new Vector3(8, 8, 8));\n" "\n" @@ -5773,6 +7342,61 @@ msgstr "" " [/csharp]\n" " [/codeblocks]" +msgid "" +"Returns a copy of this bounding box expanded to align the edges with the " +"given [param to_point], if necessary.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var box = AABB(Vector3(0, 0, 0), Vector3(5, 2, 5))\n" +"\n" +"box = box.expand(Vector3(10, 0, 0))\n" +"print(box.position) # Prints (0.0, 0.0, 0.0)\n" +"print(box.size) # Prints (10.0, 2.0, 5.0)\n" +"\n" +"box = box.expand(Vector3(-5, 0, 5))\n" +"print(box.position) # Prints (-5.0, 0.0, 0.0)\n" +"print(box.size) # Prints (15.0, 2.0, 5.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"var box = new Aabb(new Vector3(0, 0, 0), new Vector3(5, 2, 5));\n" +"\n" +"box = box.Expand(new Vector3(10, 0, 0));\n" +"GD.Print(box.Position); // Prints (0, 0, 0)\n" +"GD.Print(box.Size); // Prints (10, 2, 5)\n" +"\n" +"box = box.Expand(new Vector3(-5, 0, 5));\n" +"GD.Print(box.Position); // Prints (-5, 0, 0)\n" +"GD.Print(box.Size); // Prints (15, 2, 5)\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Повертає копію цієї обмежувальної рамки, розширену для вирівнювання країв із " +"заданим [param to_point], якщо необхідно. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var box = AABB(Vector3(0, 0, 0), Vector3(5, 2, 5)) \n" +"\n" +"box = box.expand(Vector3(10, 0, 0)) \n" +"print(box.position) # Друкує (0.0, 0.0, 0.0) \n" +"print(box.size) # Друк (10.0, 2.0, 5.0) \n" +"\n" +"box = box.expand(Vector3(-5, 0, 5)) \n" +"print(box.position) # Друк (-5.0, 0.0, 0.0) \n" +"print(box.size) # Друк (15.0, 2.0, 5.0) \n" +"[/gdscript] \n" +"[csharp] \n" +"var box = new Aabb(new Vector3(0, 0, 0), new Vector3(5, 2, 5)); \n" +"\n" +"box = box.Expand(new Vector3(10, 0, 0)); \n" +"GD.Print(box.Position); // Виводить (0, 0, 0) \n" +"GD.Print(box.Size); // Друк (10, 2, 5) \n" +"\n" +"box = box.Expand(new Vector3(-5, 0, 5)); \n" +"GD.Print(box.Position); // Друкує (-5, 0, 0) \n" +"GD.Print(box.Size); // Друк (15, 2, 5) \n" +"[/csharp] \n" +"[/codeblocks]" + msgid "" "Returns the center point of the bounding box. This is the same as " "[code]position + (size / 2.0)[/code]." @@ -5789,6 +7413,50 @@ msgstr "" "[param idx] [code]0[/code] це те саме, що [member position], а [param idx] " "[code]7[/code] те саме, що [member end]." +msgid "" +"Returns the longest normalized axis of this bounding box's [member size], as " +"a [Vector3] ([constant Vector3.RIGHT], [constant Vector3.UP], or [constant " +"Vector3.BACK]).\n" +"[codeblocks]\n" +"[gdscript]\n" +"var box = AABB(Vector3(0, 0, 0), Vector3(2, 4, 8))\n" +"\n" +"print(box.get_longest_axis()) # Prints (0.0, 0.0, 1.0)\n" +"print(box.get_longest_axis_index()) # Prints 2\n" +"print(box.get_longest_axis_size()) # Prints 8.0\n" +"[/gdscript]\n" +"[csharp]\n" +"var box = new Aabb(new Vector3(0, 0, 0), new Vector3(2, 4, 8));\n" +"\n" +"GD.Print(box.GetLongestAxis()); // Prints (0, 0, 1)\n" +"GD.Print(box.GetLongestAxisIndex()); // Prints Z\n" +"GD.Print(box.GetLongestAxisSize()); // Prints 8\n" +"[/csharp]\n" +"[/codeblocks]\n" +"See also [method get_longest_axis_index] and [method get_longest_axis_size]." +msgstr "" +"Повертає найдовшу нормалізовану вісь [розмір елемента] цієї обмежувальної " +"рамки як [Вектор3] ([константа Vector3.RIGHT], [константа Vector3.UP] або " +"[константа Vector3.BACK]).\n" +" [codeblocks]\n" +" [gdscript]\n" +" var box = AABB(Vector3(0, 0, 0), Vector3(2, 4, 8))\n" +"\n" +" print(box.get_longest_axis()) # Друк (0, 0, 1)\n" +" print(box.get_longest_axis_index()) # Друкує 2\n" +" print(box.get_longest_axis_size()) # Друкує 8\n" +" [/gdscript]\n" +" [csharp]\n" +" var box = new Aabb(new Vector3(0, 0, 0), new Vector3(2, 4, 8));\n" +"\n" +" GD.Print(box.GetLongestAxis()); // Виводить (0, 0, 1)\n" +" GD.Print(box.GetLongestAxisIndex()); // Друкує 2\n" +" GD.Print(box.GetLongestAxisSize()); // Друкує 8\n" +" [/csharp]\n" +" [/codeblocks]\n" +" Дивіться також [метод get_longest_axis_index] і [метод " +"get_longest_axis_size]." + msgid "" "Returns the index to the longest axis of this bounding box's [member size] " "(see [constant Vector3.AXIS_X], [constant Vector3.AXIS_Y], and [constant " @@ -5808,6 +7476,50 @@ msgstr "" "прямокутника.\n" "Для прикладу див. [метод get_longest_axis]." +msgid "" +"Returns the shortest normalized axis of this bounding box's [member size], as " +"a [Vector3] ([constant Vector3.RIGHT], [constant Vector3.UP], or [constant " +"Vector3.BACK]).\n" +"[codeblocks]\n" +"[gdscript]\n" +"var box = AABB(Vector3(0, 0, 0), Vector3(2, 4, 8))\n" +"\n" +"print(box.get_shortest_axis()) # Prints (1.0, 0.0, 0.0)\n" +"print(box.get_shortest_axis_index()) # Prints 0\n" +"print(box.get_shortest_axis_size()) # Prints 2.0\n" +"[/gdscript]\n" +"[csharp]\n" +"var box = new Aabb(new Vector3(0, 0, 0), new Vector3(2, 4, 8));\n" +"\n" +"GD.Print(box.GetShortestAxis()); // Prints (1, 0, 0)\n" +"GD.Print(box.GetShortestAxisIndex()); // Prints X\n" +"GD.Print(box.GetShortestAxisSize()); // Prints 2\n" +"[/csharp]\n" +"[/codeblocks]\n" +"See also [method get_shortest_axis_index] and [method get_shortest_axis_size]." +msgstr "" +"Повертає найкоротшу нормалізовану вісь [розмір елемента] цієї обмежувальної " +"рамки як [Вектор3] ([константа Vector3.RIGHT], [константа Vector3.UP] або " +"[константа Vector3.BACK]).\n" +" [codeblocks]\n" +" [gdscript]\n" +" var box = AABB(Vector3(0, 0, 0), Vector3(2, 4, 8))\n" +"\n" +" print(box.get_shortest_axis()) # Друк (1, 0, 0)\n" +" print(box.get_shortest_axis_index()) # Виводить 0\n" +" print(box.get_shortest_axis_size()) # Друкує 2\n" +" [/gdscript]\n" +" [csharp]\n" +" var box = new Aabb(new Vector3(0, 0, 0), new Vector3(2, 4, 8));\n" +"\n" +" GD.Print(box.GetShortestAxis()); // Виводить (1, 0, 0)\n" +" GD.Print(box.GetShortestAxisIndex()); // Виводить 0\n" +" GD.Print(box.GetShortestAxisSize()); // Друкує 2\n" +" [/csharp]\n" +" [/codeblocks]\n" +" Дивіться також [метод get_shortest_axis_index] і [метод " +"get_shortest_axis_size]." + msgid "" "Returns the index to the shortest axis of this bounding box's [member size] " "(see [constant Vector3.AXIS_X], [constant Vector3.AXIS_Y], and [constant " @@ -5842,6 +7554,53 @@ msgstr "" "Повертає об’єм обмежувальної рамки. Це еквівалентно [code]size.x * size.y * " "size.z[/code]. Дивіться також [method has_volume]." +msgid "" +"Returns a copy of this bounding box extended on all sides by the given amount " +"[param by]. A negative amount shrinks the box instead.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var a = AABB(Vector3(4, 4, 4), Vector3(8, 8, 8)).grow(4)\n" +"print(a.position) # Prints (0.0, 0.0, 0.0)\n" +"print(a.size) # Prints (16.0, 16.0, 16.0)\n" +"\n" +"var b = AABB(Vector3(0, 0, 0), Vector3(8, 4, 2)).grow(2)\n" +"print(b.position) # Prints (-2.0, -2.0, -2.0)\n" +"print(b.size) # Prints (12.0, 8.0, 6.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"var a = new Aabb(new Vector3(4, 4, 4), new Vector3(8, 8, 8)).Grow(4);\n" +"GD.Print(a.Position); // Prints (0, 0, 0)\n" +"GD.Print(a.Size); // Prints (16, 16, 16)\n" +"\n" +"var b = new Aabb(new Vector3(0, 0, 0), new Vector3(8, 4, 2)).Grow(2);\n" +"GD.Print(b.Position); // Prints (-2, -2, -2)\n" +"GD.Print(b.Size); // Prints (12, 8, 6)\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Повертає копію цієї обмежувальної рамки, розширену з усіх боків на задану " +"величину [param by]. Натомість від’ємне значення зменшує коробку.\n" +" [codeblocks]\n" +" [gdscript]\n" +" var a = AABB(Vector3(4, 4, 4), Vector3(8, 8, 8)).grow(4)\n" +" print(a.position) # Друк (0, 0, 0)\n" +" print(a.size) # Відбитки (16, 16, 16)\n" +"\n" +" var b = AABB(Vector3(0, 0, 0), Vector3(8, 4, 2)).grow(2)\n" +" print(b.position) # Друк (-2, -2, -2)\n" +" print(b.size) # Відбитки (12, 8, 6)\n" +" [/gdscript]\n" +" [csharp]\n" +" var a = new Aabb(new Vector3(4, 4, 4), new Vector3(8, 8, 8)).Grow(4);\n" +" GD.Print(a.Position); // Виводить (0, 0, 0)\n" +" GD.Print(a.Size); // Друк (16, 16, 16)\n" +"\n" +" var b = new Aabb(new Vector3(0, 0, 0), new Vector3(8, 4, 2)).Grow(2);\n" +" GD.Print(b.Position); // Друк (-2, -2, -2)\n" +" GD.Print(b.Size); // Друкує (12, 8, 6)\n" +" [/csharp]\n" +" [/codeblocks]" + msgid "" "Returns [code]true[/code] if the bounding box contains the given [param " "point]. By convention, points exactly on the right, top, and front sides are " @@ -5872,6 +7631,57 @@ msgstr "" "Повертає [code]true[/code], якщо ширина, висота та глибина обмежувальної " "рамки додатні. Дивіться також [метод get_volume]." +msgid "" +"Returns the intersection between this bounding box and [param with]. If the " +"boxes do not intersect, returns an empty [AABB]. If the boxes intersect at " +"the edge, returns a flat [AABB] with no volume (see [method has_surface] and " +"[method has_volume]).\n" +"[codeblocks]\n" +"[gdscript]\n" +"var box1 = AABB(Vector3(0, 0, 0), Vector3(5, 2, 8))\n" +"var box2 = AABB(Vector3(2, 0, 2), Vector3(8, 4, 4))\n" +"\n" +"var intersection = box1.intersection(box2)\n" +"print(intersection.position) # Prints (2.0, 0.0, 2.0)\n" +"print(intersection.size) # Prints (3.0, 2.0, 4.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"var box1 = new Aabb(new Vector3(0, 0, 0), new Vector3(5, 2, 8));\n" +"var box2 = new Aabb(new Vector3(2, 0, 2), new Vector3(8, 4, 4));\n" +"\n" +"var intersection = box1.Intersection(box2);\n" +"GD.Print(intersection.Position); // Prints (2, 0, 2)\n" +"GD.Print(intersection.Size); // Prints (3, 2, 4)\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] If you only need to know whether two bounding boxes are " +"intersecting, use [method intersects], instead." +msgstr "" +"Повертає перетин між цією обмежувальною рамкою та [param with]. Якщо поля не " +"перетинаються, повертає порожній [AABB]. Якщо рамки перетинаються на краю, " +"повертає плоский [AABB] без обсягу (див. [method has_surface] і [method " +"has_volume]).\n" +" [codeblocks]\n" +" [gdscript]\n" +" var box1 = AABB(Vector3(0, 0, 0), Vector3(5, 2, 8))\n" +" var box2 = AABB(Vector3(2, 0, 2), Vector3(8, 4, 4))\n" +"\n" +" var intersection = box1.intersection(box2)\n" +" print(intersection.position) # Вивести (2, 0, 2)\n" +" print(intersection.size) # Друк (3, 2, 4)\n" +" [/gdscript]\n" +" [csharp]\n" +" var box1 = new Aabb(новий Vector3(0, 0, 0), new Vector3(5, 2, 8));\n" +" var box2 = new Aabb(новий Vector3(2, 0, 2), new Vector3(8, 4, 4));\n" +"\n" +" var intersection = box1.Intersection(box2);\n" +" GD.Print(intersection.position); // Виводить (2, 0, 2)\n" +" GD.Print(intersection.size); // Друкує (3, 2, 4)\n" +" [/csharp]\n" +" [/codeblocks]\n" +" [b]Примітка:[/b] Якщо вам потрібно лише знати, чи перетинаються дві " +"обмежувальні рамки, замість цього використовуйте [method intersects]." + msgid "" "Returns [code]true[/code] if this bounding box overlaps with the box [param " "with]. The edges of both boxes are [i]always[/i] excluded." @@ -5906,6 +7716,24 @@ msgstr "" "як [Вектор3]. Якщо перетину не відбувається, повертає [code]null[/code].\n" " Сегмент починається в [param from] і закінчується в [param to]." +msgid "" +"Returns [code]true[/code] if this bounding box and [param aabb] are " +"approximately equal, by calling [method Vector3.is_equal_approx] on the " +"[member position] and the [member size]." +msgstr "" +"Повертає [code]true[/code], якщо ця обмежувальна рамка та [param aabb] " +"приблизно однакові, шляхом виклику [method Vector3.is_equal_approx] для " +"[member position] і [member size]." + +msgid "" +"Returns [code]true[/code] if this bounding box's values are finite, by " +"calling [method Vector3.is_finite] on the [member position] and the [member " +"size]." +msgstr "" +"Повертає [code]true[/code], якщо значення цієї обмежувальної рамки скінченні, " +"шляхом виклику [method Vector3.is_finite] для [member position] і [member " +"size]." + msgid "" "Returns an [AABB] that encloses both this bounding box and [param with] " "around the edges. See also [method encloses]." @@ -5913,6 +7741,40 @@ msgstr "" "Повертає [AABB], який охоплює як цю обмежувальну рамку, так і [param with] по " "краях. Дивіться також [метод містить]." +msgid "" +"The ending point. This is usually the corner on the top-right and back of the " +"bounding box, and is equivalent to [code]position + size[/code]. Setting this " +"point affects the [member size]." +msgstr "" +"Кінцева точка. Зазвичай це кут у верхньому правому куті та задній частині " +"рамки, що еквівалентно [code]позиція + розмір[/code]. Встановлення цієї точки " +"впливає на [розмір члена]." + +msgid "" +"The origin point. This is usually the corner on the bottom-left and forward " +"of the bounding box." +msgstr "" +"Початкова точка. Зазвичай це кут нижнього лівого та переднього кута " +"обмежувальної рамки." + +msgid "" +"The bounding box's width, height, and depth starting from [member position]. " +"Setting this value also affects the [member end] point.\n" +"[b]Note:[/b] It's recommended setting the width, height, and depth to non-" +"negative values. This is because most methods in Godot assume that the " +"[member position] is the bottom-left-forward corner, and the [member end] is " +"the top-right-back corner. To get an equivalent bounding box with non-" +"negative size, use [method abs]." +msgstr "" +"Ширина, висота та глибина обмежувальної рамки, починаючи з [позиції " +"учасника]. Встановлення цього значення також впливає на точку [кінець " +"члена].\n" +" [b]Примітка.[/b] Рекомендується встановлювати невід’ємні значення ширини, " +"висоти та глибини. Це пояснюється тим, що більшість методів у Godot " +"припускають, що [позиція члена] — це нижній лівий задній кут, а [кінець " +"члена] — верхній правий передній кут. Щоб отримати еквівалентну обмежувальну " +"рамку з невід’ємним розміром, використовуйте [method abs]." + msgid "" "Returns [code]true[/code] if the [member position] or [member size] of both " "bounding boxes are not equal.\n" @@ -6213,9 +8075,9 @@ msgstr "" "Цей клас містить контекстну інформацію, необхідну для операцій шифрування та " "дешифрування за допомогою AES (Advanced Encryption Standard). Підтримуються " "режими AES-ECB і AES-CBC.\n" -" [кодові блоки]\n" +" [codeblock]\n" " [gdscript]\n" -" розширює вузол\n" +" extends Node\n" "\n" " var aes = AESContext.new()\n" "\n" @@ -6249,12 +8111,12 @@ msgstr "" " assert(decrypted == data.to_utf8_buffer())\n" " [/gdscript]\n" " [csharp]\n" -" за допомогою Годо;\n" -" за допомогою System.Diagnostics;\n" +" using Godot;\n" +" using System.Diagnostics;\n" "\n" -" публічний частковий клас MyNode : Node\n" +" public partial class MyNode : Node\n" " {\n" -" приватний AesContext _aes = новий AesContext();\n" +" private AesContext _aes = новий AesContext();\n" "\n" " public override void _Ready()\n" " {\n" @@ -6520,6 +8382,35 @@ msgstr "" "і [code]from_end = true[/code], тому дивіться його опис для додаткової " "інформації." +msgid "" +"Sets [member frame] the [member frame_progress] to the given values. Unlike " +"setting [member frame], this method does not reset the [member " +"frame_progress] to [code]0.0[/code] implicitly.\n" +"[b]Example:[/b] Change the animation while keeping the same [member frame] " +"and [member frame_progress]:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var current_frame = animated_sprite.get_frame()\n" +"var current_progress = animated_sprite.get_frame_progress()\n" +"animated_sprite.play(\"walk_another_skin\")\n" +"animated_sprite.set_frame_and_progress(current_frame, current_progress)\n" +"[/gdscript]\n" +"[/codeblocks]" +msgstr "" +"Встановлює [member frame] [member frame_progress] на задані значення. На " +"відміну від налаштування [member frame], цей метод не скидає [member " +"frame_progress] до [code]0.0[/code] неявно. \n" +"[b]Приклад: [/b] Змініть анімацію, зберігаючи ті самі [member frame] і " +"[member frame_progress]: \n" +"[codeblocks] \n" +"[gdscript] \n" +"var current_frame = animated_sprite.get_frame() \n" +"var current_progress = animated_sprite.get_frame_progress() \n" +"animated_sprite.play(\"walk_another_skin\") \n" +"animated_sprite.set_frame_and_progress(current_frame, current_progress) \n" +"[/gdscript] \n" +"[/codeblocks]" + msgid "" "Stops the currently playing animation. The animation position is reset to " "[code]0[/code] and the [code]custom_speed[/code] is reset to [code]1.0[/" @@ -6824,7 +8715,7 @@ msgstr "" "механізмі. Анімації поділені на доріжки, і кожна доріжка має бути пов’язана з " "вузлом. Стан цього вузла можна змінювати з часом, додаючи часові ключі " "(події) до треку.\n" -" [кодові блоки]\n" +" [codeblocks]\n" " [gdscript]\n" " # Це створює анімацію, яка змушує вузол «Ворог» рухатися праворуч\n" " # 100 пікселів за 2,0 секунди.\n" @@ -6858,6 +8749,9 @@ msgstr "" msgid "Animation documentation index" msgstr "Індекс анімаційної документації" +msgid "Adds a marker to this Animation." +msgstr "Додає маркер до цієї анімації." + msgid "Adds a track to the Animation." msgstr "Додає доріжку до анімації." @@ -7067,9 +8961,43 @@ msgid "" msgstr "" "Повертає індекс заданої доріжки. Якщо доріжку не знайдено, повертається -1." +msgid "Returns the name of the marker located at the given time." +msgstr "Повертає назву маркера, розташованого в заданий час." + +msgid "Returns the given marker's color." +msgstr "Повертає заданий колір маркера." + +msgid "Returns every marker in this Animation, sorted ascending by time." +msgstr "" +"Повертає кожен маркер у цій анімації, відсортований за зростанням за часом." + +msgid "Returns the given marker's time." +msgstr "Повертає заданий час маркера." + +msgid "" +"Returns the closest marker that comes after the given time. If no such marker " +"exists, an empty string is returned." +msgstr "" +"Повертає найближчий маркер після заданого часу. Якщо такий маркер не існує, " +"повертається порожній рядок." + +msgid "" +"Returns the closest marker that comes before the given time. If no such " +"marker exists, an empty string is returned." +msgstr "" +"Повертає найближчий маркер, який передує вказаному часу. Якщо такий маркер не " +"існує, повертається порожній рядок." + msgid "Returns the amount of tracks in the animation." msgstr "Повертає кількість доріжок в анімації." +msgid "" +"Returns [code]true[/code] if this Animation contains a marker with the given " +"name." +msgstr "" +"Повертає [code]true[/code], якщо ця анімація містить маркер із вказаною " +"назвою." + msgid "Returns the method name of a method track." msgstr "Повертає назву методу доріжки методу." @@ -7080,6 +9008,14 @@ msgstr "" "Повертає значення аргументів, які потрібно викликати на доріжці методів для " "заданого ключа на даній доріжці." +msgid "" +"Optimize the animation and all its tracks in-place. This will preserve only " +"as many keys as are necessary to keep the animation within the specified " +"bounds." +msgstr "" +"Оптимізуйте анімацію та всі її доріжки на місці. Це збереже лише стільки " +"ключів, скільки необхідно для збереження анімації у вказаних межах." + msgid "Inserts a key in a given 3D position track. Returns the key index." msgstr "Вставляє ключ у задану доріжку 3D-розташування. Повертає індекс ключа." @@ -7090,6 +9026,9 @@ msgstr "" "Повертає інтерпольоване значення позиції в заданий час (у секундах). [param " "track_idx] має бути індексом 3D-треку позиції." +msgid "Removes the marker with the given name from this Animation." +msgstr "Видаляє маркер із вказаною назвою з цієї анімації." + msgid "Removes a track by specifying the track index." msgstr "Видаляє доріжку, вказавши її індекс." @@ -7113,6 +9052,9 @@ msgstr "" "Повертає інтерпольоване значення масштабу в заданий час (у секундах). " "Параметр [параметр track_idx] має бути індексом масштабної доріжки 3D." +msgid "Sets the given marker's color." +msgstr "Встановлює заданий колір маркера." + msgid "" "Finds the key index by time in a given track. Optionally, only find it if the " "approx/exact time is given.\n" @@ -7482,6 +9424,10 @@ msgstr "" msgid "Returns the keys for the [Animation]s stored in the library." msgstr "Повертає ключі для [Animation]й, що зберігає(ю)ться у бібліотеці." +msgid "Returns the key count for the [Animation]s stored in the library." +msgstr "" +"Повертає кількість ключів для [Animation], що зберігається в бібліотеці." + msgid "" "Returns [code]true[/code] if the library stores an [Animation] with [param " "name] as the key." @@ -7560,7 +9506,7 @@ msgstr "" "параметра].\n" " AnimationMixer за замовчуванням має глобальну бібліотеку з порожнім рядком " "як ключ. Щоб додати анімацію до глобальної бібліотеки:\n" -" [кодові блоки]\n" +" [codeblocks]\n" " [gdscript]\n" " var global_library = mixer.get_animation_library(\"\")\n" " global_library.add_animation(\"назва_анімації\", ресурс_анімації)\n" @@ -7633,6 +9579,170 @@ msgstr "Повертає список збережених ключів бібл msgid "Returns the list of stored animation keys." msgstr "Повертає список збережених ключів анімації." +msgid "" +"Retrieve the motion delta of position with the [member root_motion_track] as " +"a [Vector3] that can be used elsewhere.\n" +"If [member root_motion_track] is not a path to a track of type [constant " +"Animation.TYPE_POSITION_3D], returns [code]Vector3(0, 0, 0)[/code].\n" +"See also [member root_motion_track] and [RootMotionView].\n" +"The most basic example is applying position to [CharacterBody3D]:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var current_rotation\n" +"\n" +"func _process(delta):\n" +" if Input.is_action_just_pressed(\"animate\"):\n" +" current_rotation = get_quaternion()\n" +" state_machine.travel(\"Animate\")\n" +" var velocity = current_rotation * animation_tree." +"get_root_motion_position() / delta\n" +" set_velocity(velocity)\n" +" move_and_slide()\n" +"[/gdscript]\n" +"[/codeblocks]\n" +"By using this in combination with [method " +"get_root_motion_rotation_accumulator], you can apply the root motion position " +"more correctly to account for the rotation of the node.\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _process(delta):\n" +" if Input.is_action_just_pressed(\"animate\"):\n" +" state_machine.travel(\"Animate\")\n" +" set_quaternion(get_quaternion() * animation_tree." +"get_root_motion_rotation())\n" +" var velocity = (animation_tree.get_root_motion_rotation_accumulator()." +"inverse() * get_quaternion()) * animation_tree.get_root_motion_position() / " +"delta\n" +" set_velocity(velocity)\n" +" move_and_slide()\n" +"[/gdscript]\n" +"[/codeblocks]\n" +"If [member root_motion_local] is [code]true[/code], return the pre-multiplied " +"translation value with the inverted rotation.\n" +"In this case, the code can be written as follows:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _process(delta):\n" +" if Input.is_action_just_pressed(\"animate\"):\n" +" state_machine.travel(\"Animate\")\n" +" set_quaternion(get_quaternion() * animation_tree." +"get_root_motion_rotation())\n" +" var velocity = get_quaternion() * animation_tree." +"get_root_motion_position() / delta\n" +" set_velocity(velocity)\n" +" move_and_slide()\n" +"[/gdscript]\n" +"[/codeblocks]" +msgstr "" +"Отримайте дельту руху позиції за допомогою [member root_motion_track] як " +"[Vector3], який можна використовувати деінде. \n" +"Якщо [member root_motion_track] не є шляхом до треку типу [constant Animation." +"TYPE_POSITION_3D], повертає [code]Vector3(0, 0, 0)[/code]. \n" +"Дивіться також [член root_motion_track] і [RootMotionView]. \n" +"Найпростіший приклад — застосування позиції до [CharacterBody3D]: \n" +"[codeblocks] \n" +"[gdscript] \n" +"змінна current_rotation \n" +"\n" +"func _process(delta): \n" +" if Input.is_action_just_pressed(\"animate\"): \n" +" current_rotation = get_quaternion() \n" +" state_machine.travel(\"Анімувати\") \n" +" var velocity = current_rotation * animation_tree." +"get_root_motion_position() / delta \n" +" set_velocity(velocity) \n" +" move_and_slide() \n" +"[/gdscript] \n" +"[/codeblocks] \n" +"Використовуючи це в поєднанні з [методом " +"get_root_motion_rotation_accumulator], ви можете більш правильно застосувати " +"положення кореневого руху для врахування обертання вузла. \n" +"[codeblocks] \n" +"[gdscript] \n" +"func _process(delta): \n" +" if Input.is_action_just_pressed(\"animate\"): \n" +" state_machine.travel(\"Анімувати\") \n" +" set_quaternion(get_quaternion() * animation_tree." +"get_root_motion_rotation()) \n" +" var velocity = (animation_tree.get_root_motion_rotation_accumulator()." +"inverse() * get_quaternion()) * animation_tree.get_root_motion_position() / " +"delta \n" +" set_velocity(velocity) \n" +" move_and_slide() \n" +"[/gdscript] \n" +"[/codeblocks] \n" +"Якщо [member root_motion_local] має значення [code]true[/code], повертає " +"попередньо помножене значення перекладу з інвертованим обертанням. \n" +"У цьому випадку код можна записати наступним чином: \n" +"[codeblocks] \n" +"[gdscript] \n" +"func _process(delta): \n" +" if Input.is_action_just_pressed(\"animate\"): \n" +" state_machine.travel(\"Анімувати\") \n" +" set_quaternion(get_quaternion() * animation_tree." +"get_root_motion_rotation()) \n" +" var velocity = get_quaternion() * animation_tree." +"get_root_motion_position() / delta \n" +" set_velocity(velocity) \n" +" move_and_slide() \n" +"[/gdscript] \n" +"[/codeblocks]" + +msgid "" +"Retrieve the blended value of the position tracks with the [member " +"root_motion_track] as a [Vector3] that can be used elsewhere.\n" +"This is useful in cases where you want to respect the initial key values of " +"the animation.\n" +"For example, if an animation with only one key [code]Vector3(0, 0, 0)[/code] " +"is played in the previous frame and then an animation with only one key " +"[code]Vector3(1, 0, 1)[/code] is played in the next frame, the difference can " +"be calculated as follows:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var prev_root_motion_position_accumulator\n" +"\n" +"func _process(delta):\n" +" if Input.is_action_just_pressed(\"animate\"):\n" +" state_machine.travel(\"Animate\")\n" +" var current_root_motion_position_accumulator = animation_tree." +"get_root_motion_position_accumulator()\n" +" var difference = current_root_motion_position_accumulator - " +"prev_root_motion_position_accumulator\n" +" prev_root_motion_position_accumulator = " +"current_root_motion_position_accumulator\n" +" transform.origin += difference\n" +"[/gdscript]\n" +"[/codeblocks]\n" +"However, if the animation loops, an unintended discrete change may occur, so " +"this is only useful for some simple use cases." +msgstr "" +"Отримує змішане значення доріжок переміщення з [member root_motion_track] як " +"[Vector3], який можна десь використати.\n" +"Це корисно у випадках, коли ви хочете зберегти початкові значення ключів " +"анімації.\n" +"Наприклад, якщо у попередньому кадрі відтворюється анімація з одним ключем " +"[code]Vector3(0, 0, 0)[/code], а у наступному кадрі відтворюється анімація з " +"одним ключем [code]Vector3(1, 0, 1)[/code] то різницю можна обчислити " +"наступним чином:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var prev_root_motion_position_accumulator: Vector3\n" +"\n" +"func _process(delta):\n" +" if Input.is_action_just_pressed(\"animate\"):\n" +" state_machine.travel(\"Animate\")\n" +" var current_root_motion_position_accumulator: Vector3 = animation_tree." +"get_root_motion_position_accumulator()\n" +" var difference: Vector3 = current_root_motion_position_accumulator - " +"prev_root_motion_position_accumulator\n" +" prev_root_motion_position_accumulator = " +"current_root_motion_position_accumulator\n" +" transform.origin += difference\n" +"[/gdscript]\n" +"[/codeblocks]\n" +"Однак, якщо анімація зациклена, може відбутися ненавмисна дискретна зміна, " +"тому це корисно лише для деяких простих випадків використання." + msgid "" "Retrieve the motion delta of rotation with the [member root_motion_track] as " "a [Quaternion] that can be used elsewhere.\n" @@ -7666,6 +9776,158 @@ msgstr "" "[/gdscript]\n" "[/codeblocks]" +msgid "" +"Retrieve the blended value of the rotation tracks with the [member " +"root_motion_track] as a [Quaternion] that can be used elsewhere.\n" +"This is necessary to apply the root motion position correctly, taking " +"rotation into account. See also [method get_root_motion_position].\n" +"Also, this is useful in cases where you want to respect the initial key " +"values of the animation.\n" +"For example, if an animation with only one key [code]Quaternion(0, 0, 0, 1)[/" +"code] is played in the previous frame and then an animation with only one key " +"[code]Quaternion(0, 0.707, 0, 0.707)[/code] is played in the next frame, the " +"difference can be calculated as follows:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var prev_root_motion_rotation_accumulator\n" +"\n" +"func _process(delta):\n" +" if Input.is_action_just_pressed(\"animate\"):\n" +" state_machine.travel(\"Animate\")\n" +" var current_root_motion_rotation_accumulator = animation_tree." +"get_root_motion_rotation_accumulator()\n" +" var difference = prev_root_motion_rotation_accumulator.inverse() * " +"current_root_motion_rotation_accumulator\n" +" prev_root_motion_rotation_accumulator = " +"current_root_motion_rotation_accumulator\n" +" transform.basis *= Basis(difference)\n" +"[/gdscript]\n" +"[/codeblocks]\n" +"However, if the animation loops, an unintended discrete change may occur, so " +"this is only useful for some simple use cases." +msgstr "" +"Отримайте змішане значення доріжок обертання за допомогою [member " +"root_motion_track] як [Quaternion], який можна використовувати деінде.\n" +" Це необхідно для правильного застосування положення руху кореня з " +"урахуванням обертання. Дивіться також [метод get_root_motion_position].\n" +" Крім того, це корисно у випадках, коли потрібно дотримуватися початкових " +"ключових значень анімації.\n" +" Наприклад, якщо в попередньому кадрі відтворюється анімація лише з одним " +"ключем [code]Quaternion(0, 0, 0, 1)[/code], а потім анімація лише з одним " +"ключем [code]Quaternion(0, 0,707, 0, 0,707)[/code] відтворюється в наступному " +"кадрі, різницю можна обчислити наступним чином:\n" +" [codeblock]\n" +" [gdscript]\n" +" var prev_root_motion_rotation_accumulator:\n" +"\n" +" func _process(delta):\n" +" if Input.is_action_just_pressed(\"animate\"):\n" +" state_machine.travel(\"Анімувати\")\n" +" var current_root_motion_rotation_accumulator: Quaternion = " +"animation_tree.get_root_motion_rotation_accumulator()\n" +" змінна різниця: Quaternion = prev_root_motion_rotation_accumulator." +"inverse() * current_root_motion_rotation_accumulator\n" +" prev_root_motion_rotation_accumulator = " +"current_root_motion_rotation_accumulator\n" +" transform.basis *= Основа (різниця)\n" +" [/gdscript]\n" +" [/codeblocks]\n" +" Однак, якщо анімація повторюється, може статися ненавмисна дискретна зміна, " +"тому це корисно лише для деяких простих випадків використання." + +msgid "" +"Retrieve the motion delta of scale with the [member root_motion_track] as a " +"[Vector3] that can be used elsewhere.\n" +"If [member root_motion_track] is not a path to a track of type [constant " +"Animation.TYPE_SCALE_3D], returns [code]Vector3(0, 0, 0)[/code].\n" +"See also [member root_motion_track] and [RootMotionView].\n" +"The most basic example is applying scale to [CharacterBody3D]:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var current_scale = Vector3(1, 1, 1)\n" +"var scale_accum = Vector3(1, 1, 1)\n" +"\n" +"func _process(delta):\n" +" if Input.is_action_just_pressed(\"animate\"):\n" +" current_scale = get_scale()\n" +" scale_accum = Vector3(1, 1, 1)\n" +" state_machine.travel(\"Animate\")\n" +" scale_accum += animation_tree.get_root_motion_scale()\n" +" set_scale(current_scale * scale_accum)\n" +"[/gdscript]\n" +"[/codeblocks]" +msgstr "" +"Отримує дельту маштабування з [member root_motion_track] як [Vector3] який " +"можна десь використати.\n" +"Якщо [member root_motion_track] не є шляхом до доріжки типу [constant " +"Animation.TYPE_SCALE_3D], повертає [code]Vector3(0, 0, 0)[/code].\n" +"Дивіться також [member root_motion_track] і [RootMotionView].\n" +"Найпростішим прикладом є застосування масштабування до [CharacterBody3D]:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var current_scale: Vector3 = Vector3(1, 1, 1)\n" +"var scale_accum: Vector3 = Vector3(1, 1, 1)\n" +"\n" +"func _process(delta):\n" +" if Input.is_action_just_pressed(\"animate\"):\n" +" current_scale = get_scale()\n" +" scale_accum = Vector3(1, 1, 1)\n" +" state_machine.travel(\"Animate\")\n" +" scale_accum += animation_tree.get_root_motion_scale()\n" +" set_scale(current_scale * scale_accum)\n" +"[/gdscript]\n" +"[/codeblocks]" + +msgid "" +"Retrieve the blended value of the scale tracks with the [member " +"root_motion_track] as a [Vector3] that can be used elsewhere.\n" +"For example, if an animation with only one key [code]Vector3(1, 1, 1)[/code] " +"is played in the previous frame and then an animation with only one key " +"[code]Vector3(2, 2, 2)[/code] is played in the next frame, the difference can " +"be calculated as follows:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var prev_root_motion_scale_accumulator\n" +"\n" +"func _process(delta):\n" +" if Input.is_action_just_pressed(\"animate\"):\n" +" state_machine.travel(\"Animate\")\n" +" var current_root_motion_scale_accumulator = animation_tree." +"get_root_motion_scale_accumulator()\n" +" var difference = current_root_motion_scale_accumulator - " +"prev_root_motion_scale_accumulator\n" +" prev_root_motion_scale_accumulator = " +"current_root_motion_scale_accumulator\n" +" transform.basis = transform.basis.scaled(difference)\n" +"[/gdscript]\n" +"[/codeblocks]\n" +"However, if the animation loops, an unintended discrete change may occur, so " +"this is only useful for some simple use cases." +msgstr "" +"Отримує змішане значення доріжок масштабування з [member root_motion_track] " +"як [Vector3] який можна десь використати.\n" +"Наприклад, якщо у попередньому кадрі відтворено анімацію з ключем " +"[code]Vector3(1, 1, 1)[/code], а в наступному з ключем [code]Vector3(2, 2, 2)" +"[/code], то різницю можна вирахувати наступним чином:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var prev_root_motion_scale_accumulator: Vector3\n" +"\n" +"func _process(delta):\n" +" if Input.is_action_just_pressed(\"animate\"):\n" +" state_machine.travel(\"Animate\")\n" +" var current_root_motion_scale_accumulator: Vector3 = animation_tree." +"get_root_motion_scale_accumulator()\n" +" var difference: Vector3 = current_root_motion_scale_accumulator - " +"prev_root_motion_scale_accumulator\n" +" prev_root_motion_scale_accumulator = " +"current_root_motion_scale_accumulator\n" +" transform.basis = transform.basis.scaled(difference)\n" +"[/gdscript]\n" +"[/codeblocks]\n" +"Однак, якщо анімація зациклена, може статися ненавмисна дискретна зміна, тому " +"це корисно лише для деяких простих випадків використання." + msgid "" "Returns [code]true[/code] if the [AnimationMixer] stores an [Animation] with " "key [param name]." @@ -7792,6 +10054,15 @@ msgstr "" "оскільки зміни у сцені не будуть збережені, доки вони встановлені в анімації " "скидання." +msgid "" +"If [code]true[/code], [method get_root_motion_position] value is extracted as " +"a local translation value before blending. In other words, it is treated like " +"the translation is done after the rotation." +msgstr "" +"Якщо [code]true[/code], значення [method get_root_motion_position] " +"витягується як значення локального перекладу перед змішуванням. Іншими " +"словами, це трактується так, ніби переклад виконується після обертання." + msgid "" "The path to the Animation track used for root motion. Paths must be valid " "scene-tree paths to a node, and must be specified starting from the parent " @@ -7909,6 +10180,64 @@ msgstr "" "UPDATE_CAPTURE] і значень доріжки [constant Animation.UPDATE_DISCRETE]. Це " "типова поведінка для [AnimationPlayer]." +msgid "" +"Always treat the [constant Animation.UPDATE_DISCRETE] track value as " +"[constant Animation.UPDATE_CONTINUOUS] with [constant Animation." +"INTERPOLATION_NEAREST]. This is the default behavior for [AnimationTree].\n" +"If a value track has un-interpolatable type key values, it is internally " +"converted to use [constant ANIMATION_CALLBACK_MODE_DISCRETE_RECESSIVE] with " +"[constant Animation.UPDATE_DISCRETE].\n" +"Un-interpolatable type list:\n" +"- [constant @GlobalScope.TYPE_NIL]\n" +"- [constant @GlobalScope.TYPE_NODE_PATH]\n" +"- [constant @GlobalScope.TYPE_RID]\n" +"- [constant @GlobalScope.TYPE_OBJECT]\n" +"- [constant @GlobalScope.TYPE_CALLABLE]\n" +"- [constant @GlobalScope.TYPE_SIGNAL]\n" +"- [constant @GlobalScope.TYPE_DICTIONARY]\n" +"- [constant @GlobalScope.TYPE_PACKED_BYTE_ARRAY]\n" +"[constant @GlobalScope.TYPE_BOOL] and [constant @GlobalScope.TYPE_INT] are " +"treated as [constant @GlobalScope.TYPE_FLOAT] during blending and rounded " +"when the result is retrieved.\n" +"It is same for arrays and vectors with them such as [constant @GlobalScope." +"TYPE_PACKED_INT32_ARRAY] or [constant @GlobalScope.TYPE_VECTOR2I], they are " +"treated as [constant @GlobalScope.TYPE_PACKED_FLOAT32_ARRAY] or [constant " +"@GlobalScope.TYPE_VECTOR2]. Also note that for arrays, the size is also " +"interpolated.\n" +"[constant @GlobalScope.TYPE_STRING] and [constant @GlobalScope." +"TYPE_STRING_NAME] are interpolated between character codes and lengths, but " +"note that there is a difference in algorithm between interpolation between " +"keys and interpolation by blending." +msgstr "" +"Завжди обробляйте значення доріжки [constant Animation.UPDATE_DISCRETE] як " +"[constant Animation.UPDATE_CONTINUOUS] із [constant Animation." +"INTERPOLATION_NEAREST]. Це стандартна поведінка для [AnimationTree]. \n" +"Якщо трек значень має неінтерполяційні ключові значення типу, він внутрішньо " +"перетворюється на використання [константи " +"ANIMATION_CALLBACK_MODE_DISCRETE_RECESSIVE] із [константою Animation." +"UPDATE_DISCRETE]. \n" +"Список типів, що не підлягають інтерполяції: \n" +"- [постійний @GlobalScope.TYPE_NIL] \n" +"- [постійний @GlobalScope.TYPE_NODE_PATH] \n" +"- [константа @GlobalScope.TYPE_RID] \n" +"- [константа @GlobalScope.TYPE_OBJECT] \n" +"- [константа @GlobalScope.TYPE_CALLABLE] \n" +"- [постійний @GlobalScope.TYPE_SIGNAL] \n" +"- [постійний @GlobalScope.TYPE_DICTIONARY] \n" +"- [константа @GlobalScope.TYPE_PACKED_BYTE_ARRAY] \n" +"[константа @GlobalScope.TYPE_BOOL] і [константа @GlobalScope.TYPE_INT] " +"розглядаються як [константа @GlobalScope.TYPE_FLOAT] під час змішування та " +"округлюються під час отримання результату. \n" +"Те ж саме для масивів і векторів з ними, наприклад [константа @GlobalScope." +"TYPE_PACKED_INT32_ARRAY] або [константа @GlobalScope.TYPE_VECTOR2I], вони " +"обробляються як [константа @GlobalScope.TYPE_PACKED_FLOAT32_ARRAY] або " +"[константа @GlobalScope.TYPE_VECTOR2]. Також зауважте, що для масивів розмір " +"також інтерполюється. \n" +"[константа @GlobalScope.TYPE_STRING] і [константа @GlobalScope." +"TYPE_STRING_NAME] інтерполюються між кодами символів і довжиною, але " +"зауважте, що існує різниця в алгоритмі між інтерполяцією між ключами та " +"інтерполяцією шляхом змішування." + msgid "Base class for [AnimationTree] nodes. Not related to scene nodes." msgstr "Базовий клас для вузлів [AnimationTree]. Не стосується вузлів сцени." @@ -7942,7 +10271,7 @@ msgstr "" "вузлів, крім [AnimationNodeOutput].\n" " [b]Примітка:[/b] Якщо в [AnimationNode] існує кілька вхідних даних, яка " "інформація про час матиме пріоритет, залежить від типу [AnimationNode].\n" -" [кодовий блок]\n" +" [codeblock]\n" " var current_length = $AnimationTree[parameters/AnimationNodeName/" "current_length]\n" " var current_position = $AnimationTree[parameters/AnimationNodeName/" @@ -8117,6 +10446,27 @@ msgstr "" "використовується для ваших вузлів анімації, оскільки ресурс можна повторно " "використовувати в кількох деревах." +msgid "" +"Returns the object id of the [AnimationTree] that owns this node.\n" +"[b]Note:[/b] This method should only be called from within the [method " +"AnimationNodeExtension._process_animation_node] method, and will return an " +"invalid id otherwise." +msgstr "" +"Повертає ідентифікатор об’єкта [AnimationTree], якому належить цей вузол. \n" +"[b]Примітка.[/b] Цей метод слід викликати лише з методу [method " +"AnimationNodeExtension._process_animation_node], інакше він поверне недійсний " +"ідентифікатор." + +msgid "Returns [code]true[/code] if the given path is filtered." +msgstr "Повертає [code]true[/code], якщо заданий шлях відфільтровано." + +msgid "" +"Returns [code]true[/code] if this animation node is being processed in test-" +"only mode." +msgstr "" +"Повертає [code]true[/code], якщо цей вузол анімації обробляється лише в " +"тестовому режимі." + msgid "Removes an input, call this only when inactive." msgstr "Видаляє вхід, робіть виклик лише коли він неактивний." @@ -8249,6 +10599,17 @@ msgstr "" msgid "3D Platformer Demo" msgstr "Демонстрація 3D-платформера" +msgid "" +"If [code]true[/code], on receiving a request to play an animation from the " +"start, the first frame is not drawn, but only processed, and playback starts " +"from the next frame.\n" +"See also the notes of [method AnimationPlayer.play]." +msgstr "" +"Якщо [code]true[/code], після отримання запиту на відтворення анімації з " +"початку перший кадр не малюється, а лише обробляється, і відтворення " +"починається з наступного кадру. \n" +"Дивіться також примітки до [методу AnimationPlayer.play]." + msgid "" "Animation to use as an output. It is one of the animations provided by " "[member AnimationTree.anim_player]." @@ -8683,6 +11044,73 @@ msgstr "Вхідні та вихідні вузли однакові." msgid "The specified connection already exists." msgstr "Зазначене з'єднання вже існує." +msgid "Base class for extending [AnimationRootNode]s from GDScript, C#, or C++." +msgstr "Базовий клас для розширення [AnimationRootNode] з GDScript, C# або C++." + +msgid "" +"[AnimationNodeExtension] exposes the APIs of [AnimationRootNode] to allow " +"users to extend it from GDScript, C#, or C++. This class is not meant to be " +"used directly, but to be extended by other classes. It is used to create " +"custom nodes for the [AnimationTree] system." +msgstr "" +"[AnimationNodeExtension] надає API [AnimationRootNode], щоб дозволити " +"користувачам розширювати його з GDScript, C# або C++. Цей клас не призначений " +"для безпосереднього використання, а для розширення іншими класами. Він " +"використовується для створення спеціальних вузлів для системи [AnimationTree]." + +msgid "" +"A version of the [method AnimationNode._process] method that is meant to be " +"overridden by custom nodes. It returns a [PackedFloat32Array] with the " +"processed animation data.\n" +"The [PackedFloat64Array] parameter contains the playback information, " +"containing the following values encoded as floating point numbers (in order): " +"playback time and delta, start and end times, whether a seek was requested " +"(encoded as a float greater than [code]0[/code]), whether the seek request " +"was externally requested (encoded as a float greater than [code]0[/code]), " +"the current [enum Animation.LoopedFlag] (encoded as a float), and the current " +"blend weight.\n" +"The function must return a [PackedFloat32Array] of the node's time info, " +"containing the following values (in order): animation length, time position, " +"delta, [enum Animation.LoopMode] (encoded as a float), whether the animation " +"is about to end (encoded as a float greater than [code]0[/code]) and whether " +"the animation is infinite (encoded as a float greater than [code]0[/code]). " +"All values must be included in the returned array." +msgstr "" +"Версія методу [method AnimationNode._process], призначена для перевизначення " +"користувацькими вузлами. Він повертає [PackedFloat32Array] з обробленими " +"даними анімації. \n" +"Параметр [PackedFloat64Array] містить інформацію про відтворення, що містить " +"такі значення, закодовані як числа з плаваючою комою (у порядку): час " +"відтворення та дельта, час початку та завершення, чи був запит на пошук " +"(закодований як число з плаваючою точкою, більше ніж [code]0[/code]), чи був " +"запит на пошук іззовні (закодований як число з плаваючою точкою, більше ніж " +"[code]0[/code]), поточний [enum Animation.LoopedFlag] (закодований як float) " +"і поточна вага змішування. \n" +"Функція має повертати [PackedFloat32Array] інформації про час вузла, що " +"містить такі значення (за порядком): тривалість анімації, позиція часу, " +"дельта, [enum Animation.LoopMode] (закодована як число з плаваючою точкою), " +"чи завершується анімація (закодовано як число з плаваючою речовиною, більше " +"за [code]0[/code]) і чи є анімація нескінченною (закодовано як число з " +"плаваючою речовиною). більше [code]0[/code]). Усі значення мають бути " +"включені до поверненого масиву." + +msgid "" +"Returns the animation's remaining time for the given node info. For looping " +"animations, it will only return the remaining time if [param break_loop] is " +"[code]true[/code], a large integer value will be returned otherwise." +msgstr "" +"Повертає час анімації, що залишився, для даної інформації вузла. Для " +"циклічної анімації він повертатиме час, що залишився, лише якщо [параметр " +"break_loop] має значення [code]true[/code], інакше повертатиметься велике " +"ціле значення." + +msgid "" +"Returns [code]true[/code] if the animation for the given [param node_info] is " +"looping." +msgstr "" +"Повертає [code]true[/code], якщо анімація для даного [param node_info] " +"повторюється." + msgid "Plays an animation once in an [AnimationNodeBlendTree]." msgstr "Відтворює анімацію один раз у [AnimationNodeBlendTree]." @@ -8842,6 +11270,13 @@ msgstr "" "Якщо [code]true[/code], розриває цикл у кінці циклу цикла для переходу, " "навіть якщо анімація повторюється." +msgid "" +"Determines how cross-fading between animations is eased. If empty, the " +"transition will be linear. Should be a unit [Curve]." +msgstr "" +"Визначає, як зменшується перехресне затухання між анімаціями. Якщо пусте, " +"перехід буде лінійним. Має бути одиницею [Крива]." + msgid "" "The fade-in duration. For example, setting this to [code]1.0[/code] for a 5 " "second length animation will produce a cross-fade that starts at 0 second and " @@ -8921,6 +11356,41 @@ msgstr "" "Кінцевий автомат із кількома [AnimationRootNode], який використовує " "[AnimationTree]." +msgid "" +"Contains multiple [AnimationRootNode]s representing animation states, " +"connected in a graph. State transitions can be configured to happen " +"automatically or via code, using a shortest-path algorithm. Retrieve the " +"[AnimationNodeStateMachinePlayback] object from the [AnimationTree] node to " +"control it programmatically.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var state_machine = $AnimationTree.get(\"parameters/playback\")\n" +"state_machine.travel(\"some_state\")\n" +"[/gdscript]\n" +"[csharp]\n" +"var stateMachine = GetNode<AnimationTree>(\"AnimationTree\").Get(\"parameters/" +"playback\") as AnimationNodeStateMachinePlayback;\n" +"stateMachine.Travel(\"some_state\");\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Містить кілька [AnimationRootNode], що представляють стани анімації, з’єднані " +"в графі. Переміни між станами можна налаштувати так, щоб вони відбувалися " +"автоматично або за допомогою коду за допомогою алгоритму найкоротшого шляху. " +"Отримайте об’єкт [AnimationNodeStateMachinePlayback] із вузла " +"[AnimationTree], щоб керувати ним програмно.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var state_machine = $AnimationTree.get(\"параметри/відтворення\")\n" +"state_machine.travel(\"якийсь_стан\")\n" +"[/gdscript]\n" +"[csharp]\n" +"var stateMachine = GetNode<AnimationTree>(\"AnimationTree\").Get(\"параметри/" +"відтворення\") як AnimationNodeStateMachinePlayback;\n" +"stateMachine.Travel(\"якийсь_стан\");\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Adds a new animation node to the graph. The [param position] is used for " "display in the editor." @@ -9063,6 +11533,37 @@ msgstr "" msgid "Provides playback control for an [AnimationNodeStateMachine]." msgstr "Забезпечує керування відтворенням для [AnimationNodeStateMachine]." +msgid "" +"Allows control of [AnimationTree] state machines created with " +"[AnimationNodeStateMachine]. Retrieve with [code]$AnimationTree." +"get(\"parameters/playback\")[/code].\n" +"[codeblocks]\n" +"[gdscript]\n" +"var state_machine = $AnimationTree.get(\"parameters/playback\")\n" +"state_machine.travel(\"some_state\")\n" +"[/gdscript]\n" +"[csharp]\n" +"var stateMachine = GetNode<AnimationTree>(\"AnimationTree\").Get(\"parameters/" +"playback\").As<AnimationNodeStateMachinePlayback>();\n" +"stateMachine.Travel(\"some_state\");\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Дозволяє контролювати автомати стану [AnimationTree], створені за допомогою " +"[AnimationNodeStateMachine]. Отримати за допомогою [code]$AnimationTree." +"get(\"parameters/playback\")[/code]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var state_machine = $AnimationTree.get(\"параметри/відтворення\") \n" +"state_machine.travel(\"якийсь_стан\") \n" +"[/gdscript] \n" +"[csharp] \n" +"var stateMachine = GetNode<AnimationTree>(\"AnimationTree\").Get(\"parameters/" +"playback\").As<AnimationNodeStateMachinePlayback>();\n" +"stateMachine.Travel(\"якийсь_стан\"); \n" +"[/csharp] \n" +"[/codeblocks]" + msgid "" "Returns the current state length.\n" "[b]Note:[/b] It is possible that any [AnimationRootNode] can be nodes as well " @@ -9197,6 +11698,17 @@ msgstr "" "гнучкість у створенні складних машин станів, безпосередньо взаємодіючи з " "кодом скрипту." +msgid "" +"Determines whether the transition should be disabled, enabled when using " +"[method AnimationNodeStateMachinePlayback.travel], or traversed automatically " +"if the [member advance_condition] and [member advance_expression] checks are " +"[code]true[/code] (if assigned)." +msgstr "" +"Визначає, чи слід вимкнути перехід, увімкнути його під час використання " +"[методу AnimationNodeStateMachinePlayback.travel] або обійти автоматично, " +"якщо перевірки [member advance_condition] і [member advance_expression] мають " +"значення [code]true[/code] (якщо призначено)." + msgid "" "Lower priority transitions are preferred when travelling through the tree via " "[method AnimationNodeStateMachinePlayback.travel] or [member advance_mode] is " @@ -9216,6 +11728,13 @@ msgstr "" msgid "The transition type." msgstr "Тип переходу." +msgid "" +"Ease curve for better control over cross-fade between this state and the " +"next. Should be a unit [Curve]." +msgstr "" +"Крива полегшення для кращого контролю над затуханням між цим станом і " +"наступним. Має бути одиницею [Крива]." + msgid "" "The time to cross-fade between this state and the next.\n" "[b]Note:[/b] [AnimationNodeStateMachine] transitions the current state " @@ -9266,6 +11785,14 @@ msgstr "" "Використовувати цей перехід лише під час [method " "AnimationNodeStateMachinePlayback.travel]." +msgid "" +"Automatically use this transition if the [member advance_condition] and " +"[member advance_expression] checks are [code]true[/code] (if assigned)." +msgstr "" +"Автоматично використовувати цей перехід, якщо перевірки [member " +"advance_condition] і [member advance_expression] мають значення [code]true[/" +"code] (якщо призначено)." + msgid "" "Blends two animations subtractively inside of an [AnimationNodeBlendTree]." msgstr "Субтрактивно поєднує дві анімації всередині [AnimationNodeBlendTree]." @@ -9367,7 +11894,7 @@ msgstr "" " Після встановлення часу та зміни відтворення анімації вузол пошуку часу " "автоматично переходить у режим сну на наступному кадрі процесу, встановлюючи " "для значення [code]seek_request[/code] значення [code]-1.0[/code].\n" -" [кодові блоки]\n" +" [codeblocks]\n" " [gdscript]\n" " # Відтворення дитячої анімації з самого початку.\n" " animation_tree.set(\"параметри/TimeSeek/seek_request\", 0.0)\n" @@ -9388,6 +11915,14 @@ msgstr "" " [/csharp]\n" " [/codeblocks]" +msgid "" +"If [code]true[/code], some processes are executed to handle keys between " +"seeks, such as calculating root motion and finding the nearest discrete key." +msgstr "" +"Якщо [code]true[/code], деякі процеси виконуються для обробки ключів між " +"пошуками, такі як обчислення кореневого руху та пошук найближчого дискретного " +"ключа." + msgid "A transition within an [AnimationTree] connecting two [AnimationNode]s." msgstr "Перехід у [AnimationTree], що з’єднує два [AnimationNode]." @@ -9441,7 +11976,7 @@ msgstr "" " [b]Примітка.[/b] Під час використання крос-фейду [code]current_state[/code] " "і [code]current_index[/code] змінюються на наступний стан одразу після " "початку крос-фейду.\n" -" [кодові блоки]\n" +" [codeblocks]\n" " [gdscript]\n" " # Відтворення дочірньої анімації, підключеної до порту \"state_2\".\n" " animation_tree.set(\"parameters/Transition/transition_request\", " @@ -9615,6 +12150,17 @@ msgstr "Натомість використовуйте [member AnimationMixer.r msgid "Returns the node which node path references will travel from." msgstr "Повертає вузол, з якого будуть проходити посилання на шлях вузла." +msgid "Returns the end time of the section currently being played." +msgstr "Повертає час закінчення розділу, який зараз відтворюється." + +msgid "Returns the start time of the section currently being played." +msgstr "Повертає час початку розділу, який зараз відтворюється." + +msgid "" +"Returns [code]true[/code] if an animation is currently playing with section." +msgstr "" +"Повертає [code]true[/code], якщо анімація зараз відтворюється з розділом." + msgid "" "Pauses the currently playing animation. The [member " "current_animation_position] will be kept and calling [method play] or [method " @@ -9663,6 +12209,62 @@ msgstr "" "вони можуть бути оновлені занадто рано. Щоб виконати оновлення негайно, " "викличте [code]advance(0)[/code]." +msgid "" +"Plays the animation with key [param name] and the section starting from " +"[param start_time] and ending on [param end_time]. See also [method play].\n" +"Setting [param start_time] to a value outside the range of the animation " +"means the start of the animation will be used instead, and setting [param " +"end_time] to a value outside the range of the animation means the end of the " +"animation will be used instead. [param start_time] cannot be equal to [param " +"end_time]." +msgstr "" +"Відтворює анімацію з ключем [param name] і розділом, починаючи з [param " +"start_time] і закінчуючи [param end_time]. Дивіться також [метод гри]. \n" +"Встановлення [param start_time] значення поза межами діапазону анімації " +"означає, що замість цього буде використано початок анімації, а встановлення " +"[param end_time] значення поза діапазоном анімації означає, що замість цього " +"буде використано кінець анімації. [param start_time] не може дорівнювати " +"[param end_time]." + +msgid "" +"Plays the animation with key [param name] and the section starting from " +"[param start_time] and ending on [param end_time] in reverse.\n" +"This method is a shorthand for [method play_section] with [code]custom_speed " +"= -1.0[/code] and [code]from_end = true[/code], see its description for more " +"information." +msgstr "" +"Відтворює анімацію з ключем [param name] і розділом, починаючи з [param " +"start_time] і закінчуючи [param end_time] у зворотному порядку. \n" +"Цей метод є скороченням для [method play_section] з [code]custom_speed = " +"-1.0[/code] і [code]from_end = true[/code], див. його опис для отримання " +"додаткової інформації." + +msgid "" +"Plays the animation with key [param name] and the section starting from " +"[param start_marker] and ending on [param end_marker].\n" +"If the start marker is empty, the section starts from the beginning of the " +"animation. If the end marker is empty, the section ends on the end of the " +"animation. See also [method play]." +msgstr "" +"Відтворює анімацію з ключем [param name] і розділом, що починається від " +"[param start_marker] і закінчується на [param end_marker]. \n" +"Якщо маркер початку порожній, розділ починається з початку анімації. Якщо " +"маркер кінця порожній, розділ закінчується в кінці анімації. Дивіться також " +"[метод гри]." + +msgid "" +"Plays the animation with key [param name] and the section starting from " +"[param start_marker] and ending on [param end_marker] in reverse.\n" +"This method is a shorthand for [method play_section_with_markers] with " +"[code]custom_speed = -1.0[/code] and [code]from_end = true[/code], see its " +"description for more information." +msgstr "" +"Відтворює анімацію з ключем [param name] і секцією, що починається від [param " +"start_marker] і закінчується на [param end_marker] у зворотному порядку. \n" +"Цей метод є скороченням для [method play_section_with_markers] з " +"[code]custom_speed = -1.0[/code] і [code]from_end = true[/code], див. його " +"опис для отримання додаткової інформації." + msgid "" "See also [method AnimationMixer.capture].\n" "You can use this method to use more detailed options for capture than those " @@ -9687,9 +12289,9 @@ msgstr "" "параметри захоплення, ніж ті, які виконує [member playback_auto_capture]. " "Коли [member playback_auto_capture] має значення [code]false[/code], цей " "метод майже такий самий, як і наступний:\n" -" [кодовий блок]\n" +" [codeblock]\n" " capture(name, duration, trans_type, ease_type)\n" -" відтворити (назва, custom_blend, custom_speed, from_end)\n" +" play (name, custom_blend, custom_speed, from_end)\n" " [/codeblock]\n" " Якщо [ім’я параметра] порожнє, воно визначає [member assigned_animation].\n" " Якщо [param duration] є від’ємним значенням, тривалість встановлюється на " @@ -9711,6 +12313,9 @@ msgstr "" " [b]Примітка.[/b] Якщо зараз відтворюється зациклена анімацію, анімація, яка " "стоїть у черзі, ніколи не відтворюватиметься, якщо її якось не зупинити." +msgid "Resets the current section if section is set." +msgstr "Скидає поточний розділ, якщо розділ встановлено." + msgid "" "Seeks the animation to the [param seconds] point in time (in seconds). If " "[param update] is [code]true[/code], the animation updates too, otherwise it " @@ -9748,6 +12353,28 @@ msgstr "Встановлює сповіщення процесу для онов msgid "Sets the node which node path references will travel from." msgstr "Встановлює вузол, з якого переходитимуть посилання на шлях вузла." +msgid "" +"Changes the start and end times of the section being played. The current " +"playback position will be clamped within the new section. See also [method " +"play_section]." +msgstr "" +"Змінює час початку та закінчення відтворюваного розділу. Поточне положення " +"відтворення буде зафіксовано в новому розділі. Дивіться також [method " +"play_section]." + +msgid "" +"Changes the start and end markers of the section being played. The current " +"playback position will be clamped within the new section. See also [method " +"play_section_with_markers].\n" +"If the argument is empty, the section uses the beginning or end of the " +"animation. If both are empty, it means that the section is not set." +msgstr "" +"Змінює маркери початку та кінця розділу, що відтворюється. Поточне положення " +"відтворення буде зафіксовано в новому розділі. Дивіться також [метод " +"play_section_with_markers]. \n" +"Якщо аргумент порожній, розділ використовує початок або кінець анімації. Якщо " +"обидва порожні, це означає, що розділ не встановлено." + msgid "" "Stops the currently playing animation. The animation position is reset to " "[code]0[/code] and the [code]custom_speed[/code] is reset to [code]1.0[/" @@ -10234,6 +12861,42 @@ msgstr "" "Випромінюється, коли отримана [param area] виходить з цієї області. Потребує, " "щоб [member monitoring] було встановлено на [code]true[/code]." +msgid "" +"Emitted when a [Shape2D] of the received [param area] enters a shape of this " +"area. Requires [member monitoring] to be set to [code]true[/code].\n" +"[param local_shape_index] and [param area_shape_index] contain indices of the " +"interacting shapes from this area and the other area, respectively. [param " +"area_rid] contains the [RID] of the other area. These values can be used with " +"the [PhysicsServer2D].\n" +"[b]Example:[/b] Get the [CollisionShape2D] node from the shape index:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var other_shape_owner = area.shape_find_owner(area_shape_index)\n" +"var other_shape_node = area.shape_owner_get_owner(other_shape_owner)\n" +"\n" +"var local_shape_owner = shape_find_owner(local_shape_index)\n" +"var local_shape_node = shape_owner_get_owner(local_shape_owner)\n" +"[/gdscript]\n" +"[/codeblocks]" +msgstr "" +"Видається, коли [Shape2D] отриманої [param area] входить у форму цієї " +"області. Для параметра [контроль учасників] потрібно встановити значення " +"[code]true[/code]. \n" +"[param local_shape_index] і [param area_shape_index] містять індекси " +"взаємодіючих фігур з цієї та іншої області відповідно. [param area_rid] " +"містить [RID] іншої області. Ці значення можна використовувати з " +"[PhysicsServer2D]. \n" +"[b]Приклад:[/b] Отримайте вузол [CollisionShape2D] з індексу форми: \n" +"[codeblocks] \n" +"[gdscript] \n" +"var other_shape_owner = area.shape_find_owner(area_shape_index) \n" +"var other_shape_node = area.shape_owner_get_owner(other_shape_owner) \n" +"\n" +"var local_shape_owner = shape_find_owner(local_shape_index) \n" +"var local_shape_node = shape_owner_get_owner(local_shape_owner) \n" +"[/gdscript] \n" +"[/codeblocks]" + msgid "" "Emitted when a [Shape2D] of the received [param area] exits a shape of this " "area. Requires [member monitoring] to be set to [code]true[/code].\n" @@ -10266,6 +12929,45 @@ msgstr "" "їхній [TileSet] має сконфігуровані форми зіткнення. Вимагає, щоб для [member " "monitoring] було встановлено значення [code]true[/code]." +msgid "" +"Emitted when a [Shape2D] of the received [param body] enters a shape of this " +"area. [param body] can be a [PhysicsBody2D] or a [TileMap]. [TileMap]s are " +"detected if their [TileSet] has collision shapes configured. Requires [member " +"monitoring] to be set to [code]true[/code].\n" +"[param local_shape_index] and [param body_shape_index] contain indices of the " +"interacting shapes from this area and the interacting body, respectively. " +"[param body_rid] contains the [RID] of the body. These values can be used " +"with the [PhysicsServer2D].\n" +"[b]Example:[/b] Get the [CollisionShape2D] node from the shape index:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var body_shape_owner = body.shape_find_owner(body_shape_index)\n" +"var body_shape_node = body.shape_owner_get_owner(body_shape_owner)\n" +"\n" +"var local_shape_owner = shape_find_owner(local_shape_index)\n" +"var local_shape_node = shape_owner_get_owner(local_shape_owner)\n" +"[/gdscript]\n" +"[/codeblocks]" +msgstr "" +"Випускається, коли [Shape2D] отриманого [param body] входить у форму цієї " +"області. [param body] може бути [PhysicsBody2D] або [TileMap]. [TileMap] " +"виявляються, якщо для їх [TileSet] налаштовано форми зіткнення. Для параметра " +"[контроль учасників] потрібно встановити значення [code]true[/code]. \n" +"[param local_shape_index] і [param body_shape_index] містять індекси " +"взаємодіючих форм із цієї області та взаємодіючого тіла відповідно. [param " +"body_rid] містить [RID] тіла. Ці значення можна використовувати з " +"[PhysicsServer2D]. \n" +"[b]Приклад:[/b] Отримайте вузол [CollisionShape2D] з індексу форми: \n" +"[codeblocks] \n" +"[gdscript] \n" +"var body_shape_owner = body.shape_find_owner(body_shape_index) \n" +"var body_shape_node = body.shape_owner_get_owner(body_shape_owner) \n" +"\n" +"var local_shape_owner = shape_find_owner(local_shape_index) \n" +"var local_shape_node = shape_owner_get_owner(local_shape_owner) \n" +"[/gdscript] \n" +"[/codeblocks]" + msgid "" "Emitted when a [Shape2D] of the received [param body] exits a shape of this " "area. [param body] can be a [PhysicsBody2D] or a [TileMap]. [TileMap]s are " @@ -10574,6 +13276,42 @@ msgstr "" "[b]Примітка:[/b] Ця сила вітру застосовується тільки до вузлів [SoftBody3D]. " "Інші фізико-фізичні органи в даний час не впливають на вітер." +msgid "" +"Emitted when a [Shape3D] of the received [param area] enters a shape of this " +"area. Requires [member monitoring] to be set to [code]true[/code].\n" +"[param local_shape_index] and [param area_shape_index] contain indices of the " +"interacting shapes from this area and the other area, respectively. [param " +"area_rid] contains the [RID] of the other area. These values can be used with " +"the [PhysicsServer3D].\n" +"[b]Example:[/b] Get the [CollisionShape3D] node from the shape index:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var other_shape_owner = area.shape_find_owner(area_shape_index)\n" +"var other_shape_node = area.shape_owner_get_owner(other_shape_owner)\n" +"\n" +"var local_shape_owner = shape_find_owner(local_shape_index)\n" +"var local_shape_node = shape_owner_get_owner(local_shape_owner)\n" +"[/gdscript]\n" +"[/codeblocks]" +msgstr "" +"Випромінюється, коли [Shape3D] отриманої [param area] входить у форму цієї " +"області. Для параметра [контроль учасників] потрібно встановити значення " +"[code]true[/code]. \n" +"[param local_shape_index] і [param area_shape_index] містять індекси " +"взаємодіючих фігур з цієї та іншої області відповідно. [param area_rid] " +"містить [RID] іншої області. Ці значення можна використовувати з " +"[PhysicsServer3D]. \n" +"[b]Приклад:[/b] Отримайте вузол [CollisionShape3D] з індексу форми: \n" +"[codeblocks] \n" +"[gdscript] \n" +"var other_shape_owner = area.shape_find_owner(area_shape_index) \n" +"var other_shape_node = area.shape_owner_get_owner(other_shape_owner) \n" +"\n" +"var local_shape_owner = shape_find_owner(local_shape_index) \n" +"var local_shape_node = shape_owner_get_owner(local_shape_owner) \n" +"[/gdscript] \n" +"[/codeblocks]" + msgid "" "Emitted when a [Shape3D] of the received [param area] exits a shape of this " "area. Requires [member monitoring] to be set to [code]true[/code].\n" @@ -10606,6 +13344,46 @@ msgstr "" "якщо їхня [MeshLibrary] має налаштовані форми зіткнень. Потребує, щоб для " "параметра [member monitoring] було встановлено значення [code]true[/code]." +msgid "" +"Emitted when a [Shape3D] of the received [param body] enters a shape of this " +"area. [param body] can be a [PhysicsBody3D] or a [GridMap]. [GridMap]s are " +"detected if their [MeshLibrary] has collision shapes configured. Requires " +"[member monitoring] to be set to [code]true[/code].\n" +"[param local_shape_index] and [param body_shape_index] contain indices of the " +"interacting shapes from this area and the interacting body, respectively. " +"[param body_rid] contains the [RID] of the body. These values can be used " +"with the [PhysicsServer3D].\n" +"[b]Example:[/b] Get the [CollisionShape3D] node from the shape index:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var body_shape_owner = body.shape_find_owner(body_shape_index)\n" +"var body_shape_node = body.shape_owner_get_owner(body_shape_owner)\n" +"\n" +"var local_shape_owner = shape_find_owner(local_shape_index)\n" +"var local_shape_node = shape_owner_get_owner(local_shape_owner)\n" +"[/gdscript]\n" +"[/codeblocks]" +msgstr "" +"Випускається, коли [Shape3D] отриманого [param body] входить у форму цієї " +"області. [param body] може бути [PhysicsBody3D] або [GridMap]. [GridMap] " +"виявляються, якщо в їхній [MeshLibrary] налаштовано форми зіткнення. Для " +"параметра [контроль учасників] потрібно встановити значення [code]true[/" +"code]. \n" +"[param local_shape_index] і [param body_shape_index] містять індекси " +"взаємодіючих форм із цієї області та взаємодіючого тіла відповідно. [param " +"body_rid] містить [RID] тіла. Ці значення можна використовувати з " +"[PhysicsServer3D]. \n" +"[b]Приклад:[/b] Отримайте вузол [CollisionShape3D] з індексу форми: \n" +"[codeblocks] \n" +"[gdscript] \n" +"var body_shape_owner = body.shape_find_owner(body_shape_index) \n" +"var body_shape_node = body.shape_owner_get_owner(body_shape_owner) \n" +"\n" +"var local_shape_owner = shape_find_owner(local_shape_index) \n" +"var local_shape_node = shape_owner_get_owner(local_shape_owner) \n" +"[/gdscript] \n" +"[/codeblocks]" + msgid "" "Emitted when a [Shape3D] of the received [param body] exits a shape of this " "area. [param body] can be a [PhysicsBody3D] or a [GridMap]. [GridMap]s are " @@ -10623,6 +13401,87 @@ msgstr "" msgid "A built-in data structure that holds a sequence of elements." msgstr "Вбудована структура даних, яка містить послідовність елементів." +msgid "" +"An array data structure that can contain a sequence of elements of any " +"[Variant] type. Elements are accessed by a numerical index starting at " +"[code]0[/code]. Negative indices are used to count from the back ([code]-1[/" +"code] is the last element, [code]-2[/code] is the second to last, etc.).\n" +"[codeblocks]\n" +"[gdscript]\n" +"var array = [\"First\", 2, 3, \"Last\"]\n" +"print(array[0]) # Prints \"First\"\n" +"print(array[2]) # Prints 3\n" +"print(array[-1]) # Prints \"Last\"\n" +"\n" +"array[1] = \"Second\"\n" +"print(array[1]) # Prints \"Second\"\n" +"print(array[-3]) # Prints \"Second\"\n" +"[/gdscript]\n" +"[csharp]\n" +"Godot.Collections.Array array = [\"First\", 2, 3, \"Last\"];\n" +"GD.Print(array[0]); // Prints \"First\"\n" +"GD.Print(array[2]); // Prints 3\n" +"GD.Print(array[^1]); // Prints \"Last\"\n" +"\n" +"array[1] = \"Second\";\n" +"GD.Print(array[1]); // Prints \"Second\"\n" +"GD.Print(array[^3]); // Prints \"Second\"\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] Arrays are always passed by [b]reference[/b]. To get a copy of " +"an array that can be modified independently of the original array, use " +"[method duplicate].\n" +"[b]Note:[/b] Erasing elements while iterating over arrays is [b]not[/b] " +"supported and will result in unpredictable behavior.\n" +"[b]Differences between packed arrays, typed arrays, and untyped arrays:[/b] " +"Packed arrays are generally faster to iterate on and modify compared to a " +"typed array of the same type (e.g. [PackedInt64Array] versus [code]Array[int]" +"[/code]). Also, packed arrays consume less memory. As a downside, packed " +"arrays are less flexible as they don't offer as many convenience methods such " +"as [method Array.map]. Typed arrays are in turn faster to iterate on and " +"modify than untyped arrays." +msgstr "" +"Структура даних масиву, яка може містити послідовність елементів будь-якого " +"типу [Variant]. Доступ до елементів здійснюється за числовим індексом, що " +"починається з [code]0[/code]. Від’ємні індекси використовуються для " +"підрахунку ззаду ([code]-1[/code] — останній елемент, [code]-2[/code] — " +"передостанній тощо). \n" +"[codeblocks] \n" +"[gdscript] \n" +"var array = [\"Перший\", 2, 3, \"Останній\"] \n" +"print(array[0]) # Виводить \"Перший\" \n" +"print(array[2]) # Виводить 3 \n" +"print(array[-1]) # Виводить \"Останній\" \n" +"\n" +"Array[1] = \"Другий\" \n" +"print(array[1]) # Виводить \"Другий\" \n" +"print(array[-3]) # Виводить \"Другий\" \n" +"[/gdscript] \n" +"[csharp] \n" +"Godot.Collections.Array array = [\"Перший\", 2, 3, \"Останній\"]; \n" +"GD.Print(масив[0]); // Виводить \"Перший\" \n" +"GD.Print(масив[2]); // Виводить 3 \n" +"GD.Print(масив[^1]); // Друкує \"Останній\" \n" +"\n" +"array[1] = \"Другий\"; \n" +"GD.Print(масив[1]); // Виводить \"Другу\" \n" +"GD.Print(масив[^3]); // Виводить \"Другу\" \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка. [/b] Масиви завжди передаються за [b]посиланням[/b]. Щоб " +"отримати копію масиву, яку можна змінювати незалежно від вихідного масиву, " +"використовуйте [метод duplicate]. \n" +"[b]Примітка:[/b] Стирання елементів під час повторення масивів [b]не[/b] " +"підтримується та призведе до непередбачуваної поведінки. \n" +"[b]Відмінності між упакованими масивами, типізованими масивами та " +"нетипізованими масивами:[/b] Упаковані масиви зазвичай швидше обробляються та " +"змінюються порівняно з типізованим масивом того самого типу (наприклад, " +"[PackedInt64Array] проти [code]Array[int][/code]). Крім того, упаковані " +"масиви споживають менше пам’яті. Недоліком є те, що упаковані масиви є менш " +"гнучкими, оскільки вони не пропонують стільки зручних методів, як-от [метод " +"Array.map]. Типізовані масиви, у свою чергу, швидше перебираються та " +"змінюються, ніж нетипізовані масиви." + msgid "Constructs an empty [Array]." msgstr "Створює пустий [Array]." @@ -10676,12 +13535,12 @@ msgstr "" " Якщо [параметр типу] не є [константою TYPE_OBJECT], [параметр class_name] " "має бути порожнім [StringName], а [param script] має мати значення " "[code]null[/code].\n" -" [кодовий блок]\n" +" [codeblock]\n" " class_name Sword\n" -" розширює вузол\n" +" extends Node\n" "\n" -" статистика класу:\n" -" пропуск\n" +" stast class:\n" +" pass\n" "\n" " func _ready():\n" " var a = Array([], TYPE_INT, \"\", null) # Array[int]\n" @@ -10694,12 +13553,12 @@ msgstr "" "повертає порожній [Array].\n" " У GDScript цей конструктор зазвичай не потрібний, оскільки можна створити " "типізований масив за допомогою статичної типізації:\n" -" [кодовий блок]\n" -" змінні числа: масив[float] = []\n" -" дочірні зміни: Array[Node] = [$Node, $Sprite2D, $RigidBody3D]\n" +" [codeblock]\n" +" var numbers: Array[float] = []\n" +" var children: Array[Node] = [$Node, $Sprite2D, $RigidBody3D]\n" "\n" -" змінні цілих чисел: Array[int] = [0,2, 4,5, -2,0]\n" -" print(цілі числа) # Виводить [0, 4, -2]\n" +" var integers: Array[int] = [0,2, 4,5, -2,0]\n" +" print(integers) # Виводить [0, 4, -2]\n" " [/codeblock]" msgid "" @@ -10739,6 +13598,123 @@ msgstr "Створює масив із [PackedVector3Array]." msgid "Constructs an array from a [PackedVector4Array]." msgstr "Створює масив із [PackedVector4Array]." +msgid "" +"Calls the given [Callable] on each element in the array and returns " +"[code]true[/code] if the [Callable] returns [code]true[/code] for [i]all[/i] " +"elements in the array. If the [Callable] returns [code]false[/code] for one " +"array element or more, this method returns [code]false[/code].\n" +"The [param method] should take one [Variant] parameter (the current array " +"element) and return a [bool].\n" +"[codeblocks]\n" +"[gdscript]\n" +"func greater_than_5(number):\n" +" return number > 5\n" +"\n" +"func _ready():\n" +" print([6, 10, 6].all(greater_than_5)) # Prints true (3/3 elements " +"evaluate to true).\n" +" print([4, 10, 4].all(greater_than_5)) # Prints false (1/3 elements " +"evaluate to true).\n" +" print([4, 4, 4].all(greater_than_5)) # Prints false (0/3 elements " +"evaluate to true).\n" +" print([].all(greater_than_5)) # Prints true (0/0 elements " +"evaluate to true).\n" +"\n" +" # Same as the first line above, but using a lambda function.\n" +" print([6, 10, 6].all(func(element): return element > 5)) # Prints true\n" +"[/gdscript]\n" +"[csharp]\n" +"private static bool GreaterThan5(int number)\n" +"{\n" +" return number > 5;\n" +"}\n" +"\n" +"public override void _Ready()\n" +"{\n" +" // Prints True (3/3 elements evaluate to true).\n" +" GD.Print(new Godot.Collections.Array>int< { 6, 10, 6 }." +"All(GreaterThan5));\n" +" // Prints False (1/3 elements evaluate to true).\n" +" GD.Print(new Godot.Collections.Array>int< { 4, 10, 4 }." +"All(GreaterThan5));\n" +" // Prints False (0/3 elements evaluate to true).\n" +" GD.Print(new Godot.Collections.Array>int< { 4, 4, 4 }." +"All(GreaterThan5));\n" +" // Prints True (0/0 elements evaluate to true).\n" +" GD.Print(new Godot.Collections.Array>int< { }.All(GreaterThan5));\n" +"\n" +" // Same as the first line above, but using a lambda function.\n" +" GD.Print(new Godot.Collections.Array>int< { 6, 10, 6 }.All(element => " +"element > 5)); // Prints True\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"See also [method any], [method filter], [method map] and [method reduce].\n" +"[b]Note:[/b] Unlike relying on the size of an array returned by [method " +"filter], this method will return as early as possible to improve performance " +"(especially with large arrays).\n" +"[b]Note:[/b] For an empty array, this method [url=https://en.wikipedia.org/" +"wiki/Vacuous_truth]always[/url] returns [code]true[/code]." +msgstr "" +"Викликає заданий [Callable] для кожного елемента в масиві та повертає " +"[code]true[/code], якщо [Callable] повертає [code]true[/code] для [i]всіх[/i] " +"елементів у масиві. Якщо [Callable] повертає [code]false[/code] для одного " +"або більше елементів масиву, цей метод повертає [code]false[/code]. \n" +"Метод [param] має приймати один параметр [Variant] (поточний елемент масиву) " +"і повертати [bool]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"func greater_than_5(number):\n" +" return number > 5\n" +"\n" +"func _ready(): \n" +" print([6, 10, 6].all(greater_than_5)) # Виводить true (3/3 елементів " +"оцінюються як true). \n" +" print([4, 10, 4].all(greater_than_5)) # Виводить false (1/3 елементів " +"оцінюється як true). \n" +" print([4, 4, 4].all(greater_than_5)) # Виводить false (0/3 елементів " +"оцінюються як true). \n" +" print([].all(greater_than_5)) # Виводить true (0/0 елементів оцінюється " +"як true). \n" +"\n" +" # Те саме, що й перший рядок вище, але з використанням лямбда-функції. \n" +" print([6, 10, 6].all(func(element): return element > 5)) # Виводить " +"true \n" +"[/gdscript] \n" +"[csharp] \n" +"private static bool GreaterThan5(int number) \n" +"{\n" +" return number > 5; \n" +"}\n" +"\n" +"public override void _Ready() \n" +"{\n" +" // Виводить True (3/3 елементів оцінюються як true). \n" +" GD.Print(new Godot.Collections.Array>int< { 6, 10, 6 }." +"All(GreaterThan5)); \n" +" // Виводить False (1/3 елементів оцінюється як true). \n" +" GD.Print(new Godot.Collections.Array>int< { 4, 10, 4 }." +"All(GreaterThan5)); \n" +" // Виводить False (0/3 елементів оцінюються як true). \n" +" GD.Print(new Godot.Collections.Array>int< { 4, 4, 4 }." +"All(GreaterThan5)); \n" +" // Виводить True (0/0 елементів оцінюється як true). \n" +" GD.Print(new Godot.Collections.Array>int< { }.All(GreaterThan5)); \n" +"\n" +" // Те саме, що й перший рядок вище, але з використанням лямбда-функції. \n" +" GD.Print(new Godot.Collections.Array>int< { 6, 10, 6 }.All(element => " +"element > 5)); // Виводить True \n" +"}\n" +"[/csharp] \n" +"[/codeblocks] \n" +"Дивіться також [method any], [method filter], [method map] і [method " +"reduce]. \n" +"[b]Примітка: [/b] На відміну від покладання на розмір масиву, який повертає " +"[method filter], цей метод повертатиметься якомога раніше, щоб покращити " +"продуктивність (особливо з великими масивами). \n" +"[b]Примітка.[/b] Для порожнього масиву цей метод [url=https://en.wikipedia." +"org/wiki/Vacuous_truth]завжди[/url] повертає [code]true[/code]." + msgid "" "Calls the given [Callable] on each element in the array and returns " "[code]true[/code] if the [Callable] returns [code]true[/code] for [i]one or " @@ -10776,11 +13752,11 @@ msgstr "" "всіх елементів в масиві, цей метод повертає [code]false[/code].\n" "[param метод] повинен прийняти один параметр [Variant] (поточний елемент " "масиву) і повернути [bool].\n" -"[блокування коду]\n" -"Func more_than_5(number):\n" -"Номер повернення > 5 хв\n" +"[codeblock]\n" +"func more_than_5(number):\n" +"return number > 5\n" "\n" -"Func _ready():\n" +"func _ready():\n" "Друк([6, 10, 6].any(greater_than_5)) # Друкувати true (3 елементи, які " "оцінюють true).\n" "Друк([4, 10, 4].any(greater_than_5)) # Друкувати true (1 елементи, які " @@ -10816,10 +13792,10 @@ msgid "" "[/codeblock]" msgstr "" "Додає ще один [масив параметрів] у кінець цього масиву.\n" -" [кодовий блок]\n" -" змінні числа = [1, 2, 3]\n" +" [codeblock]\n" +" var numbers = [1, 2, 3]\n" " var extra = [4, 5, 6]\n" -" numbers.append_array(додатковий)\n" +" numbers.append_array(extra)\n" " print(numbers) # Виводить [1, 2, 3, 4, 5, 6]\n" " [/codeblock]" @@ -10872,8 +13848,8 @@ msgstr "" " Якщо [param before] має значення [code]true[/code] (як за замовчуванням), " "повернутий індекс стоїть перед усіма існуючими елементами, що дорівнюють " "[param value] у масиві.\n" -" [кодовий блок]\n" -" змінні числа = [2, 4, 8, 10]\n" +" [codeblock]\n" +" var numbers = [2, 4, 8, 10]\n" " var idx = numbers.bsearch(7)\n" "\n" " numbers.insert(idx, 7)\n" @@ -10939,11 +13915,11 @@ msgstr "" " Якщо [param before] має значення [code]true[/code] (як за замовчуванням), " "повернутий індекс стоїть перед усіма існуючими елементами, що дорівнюють " "[param value] у масиві.\n" -" [кодовий блок]\n" +" [codeblock]\n" " func sort_by_amount(a, b):\n" -" якщо a[1] < b[1]:\n" -" повернути істину\n" -" повернути false\n" +" If a[1] < b[1]:\n" +" return true\n" +" return false\n" "\n" " func _ready():\n" " var my_items = [[\"Помідор\", 2], [\"Ківі\", 5], [\"Рис\", 9]]\n" @@ -10960,7 +13936,7 @@ msgstr "" "\n" " # Відбитки [[\"Помідор\", 2], [\"Яблуко\", 5], [\"Ківі\", 5], " "[\"Банан\", 5], [\"Рис\", 9]]\n" -" друкувати (мої_предмети)\n" +" print (мої_предмети)\n" " [/codeblock]\n" " [b]Примітка.[/b] Виклик [методу bsearch_custom] для [i]несортованого[/i] " "масиву призведе до неочікуваної поведінки. Використовуйте [method " @@ -10973,6 +13949,15 @@ msgstr "" "Видаляє всі елементи з масиву. Це еквівалентно використанню [method resize] " "із розміром [code]0[/code]." +msgid "" +"Returns the number of times an element is in the array.\n" +"To count how many elements in an array satisfy a condition, see [method " +"reduce]." +msgstr "" +"Повертає кількість разів, коли елемент є в масиві.\n" +"Щоб підрахувати, скільки елементів у масиві задовольняє умову, див. [метод " +"зменшення]." + msgid "" "Returns a new copy of the array.\n" "By default, a [b]shallow[/b] copy is returned: all nested [Array] and " @@ -11007,6 +13992,49 @@ msgstr "" "[b]Note:[/b] Обмазування елементів при цьому ітерації над масивами [b] не[/b] " "підтримується і призведе до непередбачуваної поведінки." +msgid "" +"Assigns the given [param value] to all elements in the array.\n" +"This method can often be combined with [method resize] to create an array " +"with a given size and initialized elements:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var array = []\n" +"array.resize(5)\n" +"array.fill(2)\n" +"print(array) # Prints [2, 2, 2, 2, 2]\n" +"[/gdscript]\n" +"[csharp]\n" +"Godot.Collections.Array array = [];\n" +"array.Resize(5);\n" +"array.Fill(2);\n" +"GD.Print(array); // Prints [2, 2, 2, 2, 2]\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] If [param value] is a [Variant] passed by reference ([Object]-" +"derived, [Array], [Dictionary], etc.), the array will be filled with " +"references to the same [param value], which are not duplicates." +msgstr "" +"Призначає задане [значення параметра] всім елементам у масиві. \n" +"Цей метод часто можна комбінувати з [method resize] для створення масиву " +"заданого розміру та ініціалізованих елементів: \n" +"[codeblocks] \n" +"[gdscript] \n" +"var Array = [] \n" +"array.resize(5) \n" +"array.fill(2) \n" +"print(array) # Виводить [2, 2, 2, 2, 2] \n" +"[/gdscript] \n" +"[csharp] \n" +"Godot.Collections.Array array = []; \n" +"array.Resize(5); \n" +"array.Fill(2); \n" +"GD.Print(масив); // Виводить [2, 2, 2, 2, 2] \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка:[/b] Якщо [значення параметра] є [варіантом], що передається за " +"посиланням (похідним від [об’єкта], [масивом], [словником] тощо), масив буде " +"заповнено посиланнями на те саме [значення параметра], які не є дублікатами." + msgid "" "Calls the given [Callable] on each element in the array and returns a new, " "filtered [Array].\n" @@ -11030,15 +14058,15 @@ msgstr "" "[param метод] отримує один з масивних елементів як аргумент, і повинен " "повернутися [code]true[/code], щоб додати елемент до фільтрованого масиву, " "або [code]false[/code], щоб виключити його.\n" -"[блокування коду]\n" -"Func is_even(number):\n" -"1 000 р.\n" +"[codeblock]\n" +"func is_even(number):\n" +" return number % 2 == 0\n" "\n" -"Func _ready():\n" -"Друк([1, 4, 5, 8].filter(is_even)) # Друки [4, 8]\n" +"func _ready():\n" +"print([1, 4, 5, 8].filter(is_even)) # Друки [4, 8]\n" "\n" "# Так, як вище, але за допомогою функції лямбда.\n" -"Друк([1, 4, 5, 8].filter(func(number): номер повернення % 2 == 0))\n" +"print([1, 4, 5, 8].filter(func(number): return number % 2 == 0))\n" "[/codeblock]\n" "Дивись також [метод будь], [метод все], [метод мапа] і [метод зменшити]." @@ -11063,6 +14091,42 @@ msgstr "" "[enum Variant.Type]. Наприклад, [code]7[/code] ([int]) і [code]7.0[/code] " "([float]) не вважаються однаковими для цього методу." +msgid "" +"Returns the index of the [b]first[/b] element in the array that causes [param " +"method] to return [code]true[/code], or [code]-1[/code] if there are none. " +"The search's start can be specified with [param from], continuing to the end " +"of the array.\n" +"[param method] is a callable that takes an element of the array, and returns " +"a [bool].\n" +"[b]Note:[/b] If you just want to know whether the array contains [i]anything[/" +"i] that satisfies [param method], use [method any].\n" +"[codeblocks]\n" +"[gdscript]\n" +"func is_even(number):\n" +" return number % 2 == 0\n" +"\n" +"func _ready():\n" +" print([1, 3, 4, 7].find_custom(is_even.bind())) # Prints 2\n" +"[/gdscript]\n" +"[/codeblocks]" +msgstr "" +"Повертає індекс [b]першого[/b] елемента в масиві, який змушує [param method] " +"повертати [code]true[/code] або [code]-1[/code], якщо їх немає. Початок " +"пошуку можна вказати за допомогою [param from], продовжуючи до кінця " +"масиву. \n" +"[param method] — це виклик, який приймає елемент масиву та повертає [bool]. \n" +"[b]Примітка:[/b] Якщо ви просто хочете знати, чи містить масив [i]щось[/i], " +"що задовольняє [param method], використовуйте [method any]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"func is_even(число): \n" +" return number% 2 == 0 \n" +"\n" +"func _ready(): \n" +" print([1, 3, 4, 7].find_custom(is_even.bind())) # Виводить 2 \n" +"[/gdscript] \n" +"[/codeblocks]" + msgid "" "Returns the first element of the array. If the array is empty, fails and " "returns [code]null[/code]. See also [method back].\n" @@ -11074,6 +14138,13 @@ msgstr "" "[b]Примітка:[/b] На відміну від [code][/code] оператор ([code]array[0][/" "code]), помилка генерується без виконання проекту." +msgid "" +"Returns the element at the given [param index] in the array. This is the same " +"as using the [code][][/code] operator ([code]array[index][/code])." +msgstr "" +"Повертає елемент із заданим [param index] у масиві. Це те саме, що " +"використання оператора [code][][/code] ([code]масив[index][/code])." + msgid "" "Returns the built-in [Variant] type of the typed array as a [enum Variant." "Type] constant. If the array is not typed, returns [constant TYPE_NIL]. See " @@ -11099,6 +14170,59 @@ msgstr "" "Повертає екземпляр [Script], пов’язаний із цим введеним масивом, або " "[code]null[/code], якщо він не існує. Дивіться також [method is_typed]." +msgid "" +"Returns [code]true[/code] if the array contains the given [param value].\n" +"[codeblocks]\n" +"[gdscript]\n" +"print([\"inside\", 7].has(\"inside\")) # Prints true\n" +"print([\"inside\", 7].has(\"outside\")) # Prints false\n" +"print([\"inside\", 7].has(7)) # Prints true\n" +"print([\"inside\", 7].has(\"7\")) # Prints false\n" +"[/gdscript]\n" +"[csharp]\n" +"Godot.Collections.Array arr = [\"inside\", 7];\n" +"// By C# convention, this method is renamed to `Contains`.\n" +"GD.Print(arr.Contains(\"inside\")); // Prints True\n" +"GD.Print(arr.Contains(\"outside\")); // Prints False\n" +"GD.Print(arr.Contains(7)); // Prints True\n" +"GD.Print(arr.Contains(\"7\")); // Prints False\n" +"[/csharp]\n" +"[/codeblocks]\n" +"In GDScript, this is equivalent to the [code]in[/code] operator:\n" +"[codeblock]\n" +"if 4 in [2, 4, 6, 8]:\n" +" print(\"4 is here!\") # Will be printed.\n" +"[/codeblock]\n" +"[b]Note:[/b] For performance reasons, the search is affected by the [param " +"value]'s [enum Variant.Type]. For example, [code]7[/code] ([int]) and " +"[code]7.0[/code] ([float]) are not considered equal for this method." +msgstr "" +"Повертає [code]true[/code], якщо масив містить задане [значення param].\n" +" [codeblock]\n" +" [gdscript]\n" +" print([\"inside\", 7].has(\"inside\")) # Виводить true\n" +" print([\"inside\", 7].has(\"outside\")) # Виводить false\n" +" print([\"inside\", 7].has(7)) # Виводить true\n" +" print([\"inside\", 7].has(\"7\")) # Виводить false\n" +" [/gdscript]\n" +" [csharp]\n" +" var arr = new Godot.Collections.Array { \"inside\", 7 };\n" +" // За угодою C# цей метод перейменовано на `Contains`.\n" +" GD.Print(arr.Contains(\"inside\")); // Виводить true\n" +" GD.Print(arr.Contains(\"outside\")); // Виводить false\n" +" GD.Print(arr.Contains(7)); // Виводить true\n" +" GD.Print(arr.Contains(\"7\")); // Виводить false\n" +" [/csharp]\n" +" [/codeblocks]\n" +" У GDScript це еквівалентно оператору [code]in[/code]:\n" +" [codeblock]\n" +" if 4 in [2, 4, 6, 8]:\n" +" print(\"4 тут!\") # Буде надруковано.\n" +" [/codeblock]\n" +" [b]Примітка:[/b] З міркувань продуктивності на пошук впливає [enum Variant." +"Type] [параметра]. Наприклад, [code]7[/code] ([int]) і [code]7.0[/code] " +"([float]) не вважаються однаковими для цього методу." + msgid "" "Returns a hashed 32-bit integer value representing the array and its " "contents.\n" @@ -11172,8 +14296,8 @@ msgstr "" "[Variant].\n" " У GDScript можна визначити типізований масив за допомогою статичної " "типізації:\n" -" [кодовий блок]\n" -" змінні числа: масив[float] = [0,2, 4,2, -2,0]\n" +" [codeblock]\n" +" var number: Array[float] = [0,2, 4,2, -2,0]\n" " print(numbers.is_typed()) # Виводить true\n" " [/codeblock]" @@ -11211,15 +14335,15 @@ msgstr "" "масив, наповнений значеннями, подані методом [param].\n" "[param метод] повинен прийняти один параметр [Variant] (поточний елемент " "масиву) і може повернути будь-який [Variant].\n" -"[блокування коду]\n" -"Func double(number):\n" -"Номер повернення * 2\n" +"[codeblock]\n" +"func double(number):\n" +"return number* 2\n" "\n" -"Func _ready():\n" -"Друк([1, 2, 3].map(double)) # Друки [2, 4, 6]\n" +"func _ready():\n" +"print ([1, 2, 3].map(double)) # Друки [2, 4, 6]\n" "\n" "# Так, як вище, але за допомогою функції лямбда.\n" -"Друк([1, 2, 3].map(функція): зворотний елемент * 2))\n" +"print ([1, 2, 3].map(func): зворотний елемент * 2))\n" "[/codeblock]\n" "Дивись також [методичний фільтр], [метод зменшити], [метод будь] і [метод " "все]." @@ -11244,6 +14368,41 @@ msgstr "" "порівняти. В іншому випадку повертається [code]null[/code]. Дивитися також " "[метод макс.]." +msgid "" +"Returns a random element from the array. Generates an error and returns " +"[code]null[/code] if the array is empty.\n" +"[codeblocks]\n" +"[gdscript]\n" +"# May print 1, 2, 3.25, or \"Hi\".\n" +"print([1, 2, 3.25, \"Hi\"].pick_random())\n" +"[/gdscript]\n" +"[csharp]\n" +"Godot.Collections.Array array = [1, 2, 3.25f, \"Hi\"];\n" +"GD.Print(array.PickRandom()); // May print 1, 2, 3.25, or \"Hi\".\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] Like many similar functions in the engine (such as [method " +"@GlobalScope.randi] or [method shuffle]), this method uses a common, global " +"random seed. To get a predictable outcome from this method, see [method " +"@GlobalScope.seed]." +msgstr "" +"Повертає випадковий елемент із масиву. Генерує помилку та повертає " +"[code]null[/code], якщо масив порожній.\n" +" [codeblock]\n" +" [gdscript]\n" +" # Може друкувати 1, 2, 3.25 або «Привіт».\n" +" print([1, 2, 3.25, \"Привіт\"].pick_random())\n" +" [/gdscript]\n" +" [csharp]\n" +" var array = new Godot.Collections.Array { 1, 2, 3.25f, \"Привіт\" };\n" +" GD.Print(array.PickRandom()); // Може друкувати 1, 2, 3.25 або \"Hi\".\n" +" [/csharp]\n" +" [/codeblocks]\n" +" [b]Примітка: [/b] Подібно до багатьох подібних функцій у системі (таких як " +"[method @GlobalScope.randi] або [method shuffle]), цей метод використовує " +"звичайне глобальне випадкове початкове число. Щоб отримати передбачуваний " +"результат від цього методу, перегляньте [method @GlobalScope.seed]." + msgid "" "Removes and returns the element of the array at index [param position]. If " "negative, [param position] is considered relative to the end of the array. " @@ -11296,6 +14455,99 @@ msgstr "" "може призвести до помітних витрат на продуктивність, особливо для великих " "масивів." +msgid "" +"Calls the given [Callable] for each element in array, accumulates the result " +"in [param accum], then returns it.\n" +"The [param method] takes two arguments: the current value of [param accum] " +"and the current array element. If [param accum] is [code]null[/code] (as by " +"default), the iteration will start from the second element, with the first " +"one used as initial value of [param accum].\n" +"[codeblock]\n" +"func sum(accum, number):\n" +" return accum + number\n" +"\n" +"func _ready():\n" +" print([1, 2, 3].reduce(sum, 0)) # Prints 6\n" +" print([1, 2, 3].reduce(sum, 10)) # Prints 16\n" +"\n" +" # Same as above, but using a lambda function.\n" +" print([1, 2, 3].reduce(func(accum, number): return accum + number, 10))\n" +"[/codeblock]\n" +"If [method max] is not desirable, this method may also be used to implement a " +"custom comparator:\n" +"[codeblock]\n" +"func _ready():\n" +" var arr = [Vector2i(5, 0), Vector2i(3, 4), Vector2i(1, 2)]\n" +"\n" +" var longest_vec = arr.reduce(func(max, vec): return vec if " +"is_length_greater(vec, max) else max)\n" +" print(longest_vec) # Prints (3, 4)\n" +"\n" +"func is_length_greater(a, b):\n" +" return a.length() > b.length()\n" +"[/codeblock]\n" +"This method can also be used to count how many elements in an array satisfy a " +"certain condition, similar to [method count]:\n" +"[codeblock]\n" +"func is_even(number):\n" +" return number % 2 == 0\n" +"\n" +"func _ready():\n" +" var arr = [1, 2, 3, 4, 5]\n" +" # If the current element is even, increment count, otherwise leave count " +"the same.\n" +" var even_count = arr.reduce(func(count, next): return count + 1 if " +"is_even(next) else count, 0)\n" +" print(even_count) # Prints 2\n" +"[/codeblock]\n" +"See also [method map], [method filter], [method any], and [method all]." +msgstr "" +"Викликає заданий [Callable] для кожного елемента в масиві, накопичує " +"результат у [param accum], а потім повертає його. \n" +"Метод [param] приймає два аргументи: поточне значення [param accum] і " +"поточний елемент масиву. Якщо [param accum] дорівнює [code]null[/code] (як за " +"замовчуванням), ітерація почнеться з другого елемента, а перший " +"використовується як початкове значення [param accum]. \n" +"[codeblock] \n" +"func sum(accnum number): \n" +" return accnum + number \n" +"\n" +"func _ready(): \n" +" print([1, 2, 3].reduce(sum, 0)) # Виводить 6 \n" +" print([1, 2, 3].reduce(sum, 10)) # Виводить 16 \n" +"\n" +" # Те саме, що й вище, але з використанням лямбда-функції. \n" +" print([1, 2, 3].reduce(func(accum, number): return accum + number, 10)) \n" +"[/codeblock] \n" +"Якщо [method max] є небажаним, цей метод також можна використовувати для " +"реалізації спеціального компаратора: \n" +"[codeblock] \n" +"func _ready(): \n" +" var arr = [Vector2i(5, 0), Vector2i(3, 4), Vector2i(1, 2)] \n" +"\n" +" var longest_vec = arr.reduce(func(max, vec): return vec, if " +"is_length_greater(vec, max) else max) \n" +" print(longest_vec) # Відбитки (3, 4) \n" +"\n" +"func is_length_greater(a, b): \n" +" return a.length() > b.length() \n" +"[/codeblock] \n" +"Цей метод також можна використовувати для підрахунку кількості елементів у " +"масиві, які задовольняють певну умову, подібно до [method count]: \n" +"[codeblock] \n" +"func is_even(number): \n" +" return number% 2 == 0 \n" +"\n" +"func _ready(): \n" +" var arr = [1, 2, 3, 4, 5] \n" +" # Якщо поточний елемент парний, збільште кількість, інакше залиште " +"кількість незмінною. \n" +" var even_count = arr.reduce(func(count, next): return count + 1 if " +"is_even(next) else count, 0) \n" +" print(even_count) # Виводить 2 \n" +"[/codeblock] \n" +"Дивіться також [метод карта], [метод фільтр], [метод будь-який] і [метод усі]." + msgid "" "Removes the element from the array at the given index ([param position]). If " "the index is out of bounds, this method fails.\n" @@ -11354,6 +14606,28 @@ msgstr "" "[param from], продовжуючи до початку масиву. Цей метод є зворотним до [method " "find]." +msgid "" +"Returns the index of the [b]last[/b] element of the array that causes [param " +"method] to return [code]true[/code], or [code]-1[/code] if there are none. " +"The search's start can be specified with [param from], continuing to the " +"beginning of the array. This method is the reverse of [method find_custom]." +msgstr "" +"Повертає індекс [b]останнього[/b] елемента масиву, який змушує [param method] " +"повертати [code]true[/code] або [code]-1[/code], якщо їх немає. Початок " +"пошуку можна вказати за допомогою [param from], продовжуючи до початку " +"масиву. Цей метод є зворотним до [method find_custom]." + +msgid "" +"Sets the value of the element at the given [param index] to the given [param " +"value]. This will not change the size of the array, it only changes the value " +"at an index already in the array. This is the same as using the [code][][/" +"code] operator ([code]array[index] = value[/code])." +msgstr "" +"Встановлює значення елемента для заданого [param index] у задане [param " +"value]. Це не змінить розмір масиву, це лише змінить значення за індексом, " +"який уже є в масиві. Це те саме, що використання оператора [code][][/code] " +"([code]масив[index] = valve[/code])." + msgid "" "Shuffles all elements of the array in a random order.\n" "[b]Note:[/b] Like many similar functions in the engine (such as [method " @@ -11406,7 +14680,7 @@ msgstr "" " Якщо [param deep] має значення [code]true[/code], усі вкладені елементи " "[Array] і [Dictionary] у фрагменті дублюються з оригіналу рекурсивно. " "Дивіться також [дублікат методу]).\n" -" [кодовий блок]\n" +" [codeblock]\n" " var letters = [\"A\", \"B\", \"C\", \"D\", \"E\", \"F\"]\n" "\n" " print(letters.slice(0, 2)) # Виводить [\"A\", \"B\"]\n" @@ -11417,6 +14691,47 @@ msgstr "" " print(letters.slice(4, 1, -1)) # Виводить [\"E\", \"D\", \"C\"]\n" " [/codeblock]" +msgid "" +"Sorts the array in ascending order. The final order is dependent on the " +"\"less than\" ([code]<[/code]) comparison between elements.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var numbers = [10, 5, 2.5, 8]\n" +"numbers.sort()\n" +"print(numbers) # Prints [2.5, 5, 8, 10]\n" +"[/gdscript]\n" +"[csharp]\n" +"Godot.Collections.Array numbers = [10, 5, 2.5, 8];\n" +"numbers.Sort();\n" +"GD.Print(numbers); // Prints [2.5, 5, 8, 10]\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] The sorting algorithm used is not [url=https://en.wikipedia.org/" +"wiki/Sorting_algorithm#Stability]stable[/url]. This means that equivalent " +"elements (such as [code]2[/code] and [code]2.0[/code]) may have their order " +"changed when calling [method sort]." +msgstr "" +"Сортує масив у порядку зростання. Остаточний порядок залежить від порівняння " +"\"менше ніж\" (<) між елементами.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var numbers = [10, 5, 2.5, 8]\n" +"numbers.sort()\n" +"print(numbers) # Виводить [2.5, 5, 8, 10]\n" +"[/gdscript]\n" +"[csharp]\n" +"Godot.Collections.Array numbers = [10, 5, 2.5, 8];\n" +"numbers.Sort();\n" +"GD.Print(numbers); // Виводить [2.5, 5, 8, 10]\n" +"[/csharp]\n" +"[/codeblocks]\n" +"**Примітка:** Використовуваний алгоритм сортування не є [uri=(https://en." +"wikipedia.org/wiki/Sorting_algorithm#Stability)]стабільним[/url]. Це означає, " +"що еквівалентні елементи (наприклад, 2 та 2.0) можуть змінити свій порядок " +"під час виклику [method sort].Зверніть увагу, що я залишив [codeblocks] та " +"інші елементи коду без змін, оскільки вони є частиною синтаксису та не " +"потребують перекладу." + msgid "" "Sorts the array using a custom [Callable].\n" "[param func] is called as many times as necessary, receiving two array " @@ -11461,11 +14776,11 @@ msgstr "" "масиву як аргументи. Функція має повернути [code]true[/code], якщо перший " "елемент потрібно перемістити [i]перед[/i] другим, інакше вона має повернути " "[code]false[/code].\n" -" [кодовий блок]\n" -" функція sort_ascending(a, b):\n" -" якщо a[1] < b[1]:\n" -" повернути істину\n" -" повернути false\n" +" [codeblock]\n" +" func sort_ascending(a, b):\n" +" if a[1] < b[1]:\n" +" return true\n" +" return false\n" "\n" " func _ready():\n" " var my_items = [[\"Помідор\", 5], [\"Яблуко\", 9], [\"Рис\", 4]]\n" @@ -11481,7 +14796,7 @@ msgstr "" " Також може знадобитися використовувати цей метод для сортування рядків у " "природному порядку за допомогою [методу String.naturalnocasecmp_to], як у " "наступному прикладі:\n" -" [кодовий блок]\n" +" [codeblock]\n" " var files = [\"новий файл1\", \"новий файл2\", \"новий файл10\", \"новий " "файл11\"]\n" " files.sort_custom(func(a, b): return a.naturalnocasecmp_to(b) < 0)\n" @@ -11504,6 +14819,44 @@ msgstr "" "Повертаємо [code]true[/code], якщо розмір масиву або його елементи різні, ніж " "[param right]." +msgid "" +"Appends the [param right] array to the left operand, creating a new [Array]. " +"This is also known as an array concatenation.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var array1 = [\"One\", 2]\n" +"var array2 = [3, \"Four\"]\n" +"print(array1 + array2) # Prints [\"One\", 2, 3, \"Four\"]\n" +"[/gdscript]\n" +"[csharp]\n" +"// Note that concatenation is not possible with C#'s native Array type.\n" +"Godot.Collections.Array array1 = [\"One\", 2];\n" +"Godot.Collections.Array array2 = [3, \"Four\"];\n" +"GD.Print(array1 + array2); // Prints [\"One\", 2, 3, \"Four\"]\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] For existing arrays, [method append_array] is much more " +"efficient than concatenation and assignment with the [code]+=[/code] operator." +msgstr "" +"Додає масив [param right] до лівого операнда, створюючи новий [Array]. Це " +"також відомо як конкатенація масиву.\n" +" [codeblocks]\n" +" [gdscript]\n" +" var array1 = [\"Один\", 2]\n" +" var array2 = [3, \"Чотири\"]\n" +" print(array1 + array2) # Виводить [\"Один\", 2, 3, \"Чотири\"]\n" +" [/gdscript]\n" +" [csharp]\n" +" // Зауважте, що конкатенація неможлива з власним типом масиву C#.\n" +" var array1 = new Godot.Collections.Array{\"One\", 2};\n" +" var array2 = new Godot.Collections.Array{3, \"Four\"};\n" +" GD.Print(Areay1 + Array2); // Виводить [\"One\", 2, 3, \"Four\"]\n" +" [/csharp]\n" +" [/codeblocks]\n" +" [b]Примітка.[/b] Для існуючих масивів [метод append_array] набагато " +"ефективніший, ніж конкатенація та присвоєння за допомогою оператора [code]+=[/" +"code]." + msgid "" "Compares the elements of both arrays in order, starting from index [code]0[/" "code] and ending on the last index in common between both arrays. For each " @@ -11602,6 +14955,103 @@ msgid "" "[Mesh] type that provides utility for constructing a surface from arrays." msgstr "Тип [Mesh], який надає утиліту для побудови поверхні з масивів." +msgid "" +"The [ArrayMesh] is used to construct a [Mesh] by specifying the attributes as " +"arrays.\n" +"The most basic example is the creation of a single triangle:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var vertices = PackedVector3Array()\n" +"vertices.push_back(Vector3(0, 1, 0))\n" +"vertices.push_back(Vector3(1, 0, 0))\n" +"vertices.push_back(Vector3(0, 0, 1))\n" +"\n" +"# Initialize the ArrayMesh.\n" +"var arr_mesh = ArrayMesh.new()\n" +"var arrays = []\n" +"arrays.resize(Mesh.ARRAY_MAX)\n" +"arrays[Mesh.ARRAY_VERTEX] = vertices\n" +"\n" +"# Create the Mesh.\n" +"arr_mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, arrays)\n" +"var m = MeshInstance3D.new()\n" +"m.mesh = arr_mesh\n" +"[/gdscript]\n" +"[csharp]\n" +"Vector3[] vertices =\n" +"[\n" +" new Vector3(0, 1, 0),\n" +" new Vector3(1, 0, 0),\n" +" new Vector3(0, 0, 1),\n" +"];\n" +"\n" +"// Initialize the ArrayMesh.\n" +"var arrMesh = new ArrayMesh();\n" +"Godot.Collections.Array arrays = [];\n" +"arrays.Resize((int)Mesh.ArrayType.Max);\n" +"arrays[(int)Mesh.ArrayType.Vertex] = vertices;\n" +"\n" +"// Create the Mesh.\n" +"arrMesh.AddSurfaceFromArrays(Mesh.PrimitiveType.Triangles, arrays);\n" +"var m = new MeshInstance3D();\n" +"m.Mesh = arrMesh;\n" +"[/csharp]\n" +"[/codeblocks]\n" +"The [MeshInstance3D] is ready to be added to the [SceneTree] to be shown.\n" +"See also [ImmediateMesh], [MeshDataTool] and [SurfaceTool] for procedural " +"geometry generation.\n" +"[b]Note:[/b] Godot uses clockwise [url=https://learnopengl.com/Advanced-" +"OpenGL/Face-culling]winding order[/url] for front faces of triangle primitive " +"modes." +msgstr "" +"[ArrayMesh] використовується для створення [Mesh] шляхом визначення таких " +"атрибутів, як масиви.\n" +"Найпростішим прикладом є створення одного трикутника:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var vertices = PackedVector3Array()\n" +"vertices.push_back(Vector3(0, 1, 0))\n" +"vertices.push_back(Vector3(1, 0, 0))\n" +"vertices.push_back(Vector3(0, 0, 1))\n" +"\n" +"# Ініціалізація Масивів Мешу.\n" +"var arr_mesh = ArrayMesh.new()\n" +"var arrays = []\n" +"arrays.resize(Mesh.ARRAY_MAX)\n" +"arrays[Mesh.ARRAY_VERTEX] = vertices\n" +"\n" +"# Створення Мешу.\n" +"arr_mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, arrays)\n" +"var m = MeshInstance3D.new()\n" +"m.mesh = arr_mesh\n" +"[/gdscript]\n" +"[csharp]\n" +"var vertices = new Vector3[]\n" +"{\n" +" new Vector3(0, 1, 0),\n" +" new Vector3(1, 0, 0),\n" +" new Vector3(0, 0, 1),\n" +"};\n" +"\n" +"// Initialize the ArrayMesh.\n" +"var arrMesh = new ArrayMesh();\n" +"var arrays = new Godot.Collections.Array();\n" +"arrays.Resize((int)Mesh.ArrayType.Max);\n" +"arrays[(int)Mesh.ArrayType.Vertex] = vertices;\n" +"\n" +"// Create the Mesh.\n" +"arrMesh.AddSurfaceFromArrays(Mesh.PrimitiveType.Triangles, arrays);\n" +"var m = new MeshInstance3D();\n" +"m.Mesh = arrMesh;\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[MeshInstance3D] готовий до додавання до [SceneTree].\n" +"Дивіться також [ImmediateMesh], [MeshDataTool] і [SurfaceTool] для генерації " +"процедурної геометрії.\n" +"[b]Примітка:[/b] Godot використовує [url=https://learnopengl.com/Advanced-" +"OpenGL/Face-culling]порядок намотування[/url] за годинниковою стрілкою для " +"передніх граней примітивів трикутників." + msgid "Procedural geometry using the ArrayMesh" msgstr "Процедурна геометрія з використанням ArrayMesh" @@ -11612,6 +15062,80 @@ msgstr "" "Додає назву для форми змішування, яку буде додано за допомогою [method " "add_surface_from_arrays]. Має викликатися перед додаванням поверхні." +msgid "" +"Creates a new surface. [method Mesh.get_surface_count] will become the " +"[code]surf_idx[/code] for this new surface.\n" +"Surfaces are created to be rendered using a [param primitive], which may be " +"any of the values defined in [enum Mesh.PrimitiveType].\n" +"The [param arrays] argument is an array of arrays. Each of the [constant Mesh." +"ARRAY_MAX] elements contains an array with some of the mesh data for this " +"surface as described by the corresponding member of [enum Mesh.ArrayType] or " +"[code]null[/code] if it is not used by the surface. For example, " +"[code]arrays[0][/code] is the array of vertices. That first vertex sub-array " +"is always required; the others are optional. Adding an index array puts this " +"surface into \"index mode\" where the vertex and other arrays become the " +"sources of data and the index array defines the vertex order. All sub-arrays " +"must have the same length as the vertex array (or be an exact multiple of the " +"vertex array's length, when multiple elements of a sub-array correspond to a " +"single vertex) or be empty, except for [constant Mesh.ARRAY_INDEX] if it is " +"used.\n" +"The [param blend_shapes] argument is an array of vertex data for each blend " +"shape. Each element is an array of the same structure as [param arrays], but " +"[constant Mesh.ARRAY_VERTEX], [constant Mesh.ARRAY_NORMAL], and [constant " +"Mesh.ARRAY_TANGENT] are set if and only if they are set in [param arrays] and " +"all other entries are [code]null[/code].\n" +"The [param lods] argument is a dictionary with [float] keys and " +"[PackedInt32Array] values. Each entry in the dictionary represents an LOD " +"level of the surface, where the value is the [constant Mesh.ARRAY_INDEX] " +"array to use for the LOD level and the key is roughly proportional to the " +"distance at which the LOD stats being used. I.e., increasing the key of an " +"LOD also increases the distance that the objects has to be from the camera " +"before the LOD is used.\n" +"The [param flags] argument is the bitwise OR of, as required: One value of " +"[enum Mesh.ArrayCustomFormat] left shifted by " +"[code]ARRAY_FORMAT_CUSTOMn_SHIFT[/code] for each custom channel in use, " +"[constant Mesh.ARRAY_FLAG_USE_DYNAMIC_UPDATE], [constant Mesh." +"ARRAY_FLAG_USE_8_BONE_WEIGHTS], or [constant Mesh." +"ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY].\n" +"[b]Note:[/b] When using indices, it is recommended to only use points, lines, " +"or triangles." +msgstr "" +"Створює нову поверхню. [метод Mesh.get_surface_count] стане [code]surf_idx[/" +"code] для цієї нової поверхні.\n" +" Поверхні створюються для візуалізації за допомогою [param primitive], який " +"може бути будь-яким зі значень, визначених у [enum Mesh.PrimitiveType].\n" +" Аргумент [param arrays] — це масив масивів. Кожен з елементів [constant Mesh." +"ARRAY_MAX] містить масив із деякими даними сітки для цієї поверхні, як " +"описано відповідним елементом [enum Mesh.ArrayType] або [code]null[/code], " +"якщо він не використовується поверхні. Наприклад, [code]arrays[0][/code] — це " +"масив вершин. Цей підмасив перших вершин завжди потрібен; інші необов'язкові. " +"Додавання індексного масиву переводить цю поверхню в «індексний режим», де " +"вершина та інші масиви стають джерелами даних, а індексний масив визначає " +"порядок вершин. Усі підмасиви повинні мати таку ж довжину, як і масив вершин " +"(або бути кратним довжині масиву вершин, якщо кілька елементів підмасиву " +"відповідають одній вершині) або бути порожніми, за винятком [constant Mesh." +"ARRAY_INDEX ], якщо він використовується.\n" +" Аргумент [param blend_shapes] — це масив даних вершин для кожної фігури " +"змішування. Кожен елемент є масивом такої самої структури, що й [параметри " +"масивів], але [константа Mesh.ARRAY_VERTEX], [константа Mesh.ARRAY_NORMAL] і " +"[константа Mesh.ARRAY_TANGENT] встановлені тоді і лише тоді, коли вони " +"встановлені в [параметри масивів ] і всі інші записи мають значення " +"[code]null[/code].\n" +" Аргумент [param lods] — це словник із ключами [float] і значеннями " +"[PackedInt32Array]. Кожен запис у словнику представляє рівень LOD поверхні, " +"де значенням є масив [constant Mesh.ARRAY_INDEX] для використання рівня LOD, " +"а ключ приблизно пропорційний відстані, на якій використовується статистика " +"LOD. Тобто збільшення ключа LOD також збільшує відстань, на якій об’єкти " +"повинні бути від камери до використання LOD.\n" +" Аргумент [param flags] є порозрядним або, якщо потрібно: одне значення [enum " +"Mesh.ArrayCustomFormat] зміщено вліво на [code]ARRAY_FORMAT_CUSTOMn_SHIFT[/" +"code] для кожного користувацького каналу, що використовується, [константа " +"Mesh.ARRAY_FLAG_USE_DYNAMIC_UPDATE], [ постійна Mesh." +"ARRAY_FLAG_USE_8_BONE_WEIGHTS] або [постійна Mesh." +"ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY].\n" +" [b]Примітка.[/b] Під час використання індексів рекомендується " +"використовувати лише точки, лінії чи трикутники." + msgid "Removes all blend shapes from this [ArrayMesh]." msgstr "Видаляє всі форми змішування з цього [ArrayMesh]." @@ -11674,6 +15198,13 @@ msgstr "" "Повертає тип примітиву запитуваної поверхні (див. [method " "add_surface_from_arrays])." +msgid "" +"Removes the surface at the given index from the Mesh, shifting surfaces with " +"higher index down by one." +msgstr "" +"Видаляє поверхню з заданим індексом із сітки, зміщуючи поверхні з вищим " +"індексом на одиницю вниз." + msgid "Sets a name for a given surface." msgstr "Задає назву для заданої поверхні." @@ -11907,7 +15438,7 @@ msgstr "" "визначення загальної вартості подорожі по сегменту від сусідньої точки до " "цієї точки. Таким чином, за інших рівних умов алгоритм віддає перевагу точкам " "із нижчими параметрами [param weight_scale] для формування шляху.\n" -" [кодові блоки]\n" +" [codeblock]\n" " [gdscript]\n" " var astar = AStar2D.new()\n" " astar.add_point(1, Vector2(1, 0), 4) # Додає точку (1, 0) з weight_scale 4 " @@ -11915,7 +15446,7 @@ msgstr "" " [/gdscript]\n" " [csharp]\n" " var astar = new AStar2D();\n" -" astar.AddPoint(1, новий Vector2(1, 0), 4); // Додає точку (1, 0) з " +" astar.AddPoint(1, new Vector2(1, 0), 4); // Додає точку (1, 0) з " "weight_scale 4 та id 1\n" " [/csharp]\n" " [/codeblocks]\n" @@ -11956,7 +15487,7 @@ msgstr "" "Створює відрізок між заданими точками. Якщо [param bidirectional] має " "значення [code]false[/code], дозволено лише рух від [param id] до [param " "to_id], а не у зворотному напрямку.\n" -" [кодові блоки]\n" +" [codeblock]\n" " [gdscript]\n" " var astar = AStar2D.new()\n" " astar.add_point(1, Vector2(1, 1))\n" @@ -11965,8 +15496,8 @@ msgstr "" " [/gdscript]\n" " [csharp]\n" " var astar = new AStar2D();\n" -" astar.AddPoint(1, новий Vector2(1, 1));\n" -" astar.AddPoint(2, новий Vector2(0, 5));\n" +" astar.AddPoint(1, new Vector2(1, 1));\n" +" astar.AddPoint(2, new Vector2(0, 5));\n" " astar.ConnectPoints(1, 2, false);\n" " [/csharp]\n" " [/codeblocks]" @@ -12024,7 +15555,7 @@ msgid "" msgstr "" "Повертає найближчу позицію до [param to_position], яка знаходиться всередині " "сегмента між двома сполученими точками.\n" -" [кодові блоки]\n" +" [codeblocks]\n" " [gdscript]\n" " var astar = AStar2D.new()\n" " astar.add_point(1, Vector2(0, 0))\n" @@ -12035,16 +15566,99 @@ msgstr "" " [/gdscript]\n" " [csharp]\n" " var astar = new AStar2D();\n" -" astar.AddPoint(1, новий вектор2(0, 0));\n" -" astar.AddPoint(2, новий Vector2(0, 5));\n" +" astar.AddPoint(1, new Vector2(0, 0));\n" +" astar.AddPoint(2, new Vector2(0, 5));\n" " astar.ConnectPoints(1, 2);\n" -" Vector2 res = astar.GetClosestPositionInSegment(новий Vector2(3, 3)); // " +" Vector2 res = astar.GetClosestPositionInSegment(new Vector2(3, 3)); // " "Повертає (0, 3)\n" " [/csharp]\n" " [/codeblocks]\n" " Результат знаходиться в сегменті, який проходить від [code]y = 0[/code] до " "[code]y = 5[/code]. Це найближча позиція на відрізку до даної точки." +msgid "" +"Returns an array with the IDs of the points that form the path found by " +"AStar2D between the given points. The array is ordered from the starting " +"point to the ending point of the path.\n" +"If there is no valid path to the target, and [param allow_partial_path] is " +"[code]true[/code], returns a path to the point closest to the target that can " +"be reached.\n" +"[b]Note:[/b] When [param allow_partial_path] is [code]true[/code] and [param " +"to_id] is disabled the search may take an unusually long time to finish.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var astar = AStar2D.new()\n" +"astar.add_point(1, Vector2(0, 0))\n" +"astar.add_point(2, Vector2(0, 1), 1) # Default weight is 1\n" +"astar.add_point(3, Vector2(1, 1))\n" +"astar.add_point(4, Vector2(2, 0))\n" +"\n" +"astar.connect_points(1, 2, false)\n" +"astar.connect_points(2, 3, false)\n" +"astar.connect_points(4, 3, false)\n" +"astar.connect_points(1, 4, false)\n" +"\n" +"var res = astar.get_id_path(1, 3) # Returns [1, 2, 3]\n" +"[/gdscript]\n" +"[csharp]\n" +"var astar = new AStar2D();\n" +"astar.AddPoint(1, new Vector2(0, 0));\n" +"astar.AddPoint(2, new Vector2(0, 1), 1); // Default weight is 1\n" +"astar.AddPoint(3, new Vector2(1, 1));\n" +"astar.AddPoint(4, new Vector2(2, 0));\n" +"\n" +"astar.ConnectPoints(1, 2, false);\n" +"astar.ConnectPoints(2, 3, false);\n" +"astar.ConnectPoints(4, 3, false);\n" +"astar.ConnectPoints(1, 4, false);\n" +"long[] res = astar.GetIdPath(1, 3); // Returns [1, 2, 3]\n" +"[/csharp]\n" +"[/codeblocks]\n" +"If you change the 2nd point's weight to 3, then the result will be [code][1, " +"4, 3][/code] instead, because now even though the distance is longer, it's " +"\"easier\" to get through point 4 than through point 2." +msgstr "" +"Повертає масив з ідентифікаторами точок, які утворюють шлях, знайдений " +"AStar2D між заданими точками. Масив упорядковується від початкової до " +"кінцевої точки шляху. \n" +"Якщо немає дійсного шляху до цілі, а [параметр allow_partial_path] має " +"значення [code]true[/code], повертає шлях до точки, найближчої до цілі, яку " +"можна досягти. \n" +"[b]Примітка.[/b] Якщо [param allow_partial_path] має значення [code]true[/" +"code] і [param to_id] вимкнено, пошук може тривати надзвичайно довго. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var liner = AStar2D.new() \n" +"astar.add_point(1, Vector2(0, 0)) \n" +"astar.add_point(2, Vector2(0, 1), 1) # Вага за замовчуванням 1 \n" +"astar.add_point(3, Vector2(1, 1)) \n" +"astar.add_point(4, Vector2(2, 0)) \n" +"\n" +"astar.connect_points(1, 2, false) \n" +"astar.connect_points(2, 3, false) \n" +"astar.connect_points(4, 3, false) \n" +"astar.connect_points(1, 4, false) \n" +"\n" +"var res = astar.get_id_path(1, 3) # Повертає [1, 2, 3] \n" +"[/gdscript] \n" +"[csharp] \n" +"var astar = new AStar2D(); \n" +"astar.AddPoint(1, новий вектор2(0, 0)); \n" +"astar.AddPoint(2, новий Vector2(0, 1), 1); // Вага за замовчуванням 1 \n" +"astar.AddPoint(3, новий Vector2(1, 1)); \n" +"astar.AddPoint(4, новий Vector2(2, 0)); \n" +"\n" +"astar.ConnectPoints(1, 2, false); \n" +"astar.ConnectPoints(2, 3, false); \n" +"astar.ConnectPoints(4, 3, false); \n" +"astar.ConnectPoints(1, 4, false); \n" +"long[] res = astar.GetIdPath(1, 3); // Повертає [1, 2, 3] \n" +"[/csharp] \n" +"[/codeblocks] \n" +"Якщо ви зміните вагу другої точки на 3, тоді результатом буде [code][1, 4, 3]" +"[/code], тому що тепер, навіть якщо відстань більша, «легше» пройти через " +"точку 4, ніж через точку 2." + msgid "" "Returns the capacity of the structure backing the points, useful in " "conjunction with [method reserve_space]." @@ -12084,7 +15698,7 @@ msgid "" msgstr "" "Повертає масив з ідентифікаторами точок, які утворюють з’єднання з даною " "точкою.\n" -" [кодові блоки]\n" +" [codeblocks]\n" " [gdscript]\n" " var astar = AStar2D.new()\n" " astar.add_point(1, Vector2(0, 0))\n" @@ -12099,15 +15713,15 @@ msgstr "" " [/gdscript]\n" " [csharp]\n" " var astar = new AStar2D();\n" -" astar.AddPoint(1, новий вектор2(0, 0));\n" -" astar.AddPoint(2, новий Vector2(0, 1));\n" -" astar.AddPoint(3, новий Vector2(1, 1));\n" -" astar.AddPoint(4, новий Vector2(2, 0));\n" +" astar.AddPoint(1, new Vector2(0, 0));\n" +" astar.AddPoint(2, new Vector2(0, 1));\n" +" astar.AddPoint(3, new Vector2(1, 1));\n" +" astar.AddPoint(4, new Vector2(2, 0));\n" "\n" " astar.ConnectPoints(1, 2, true);\n" " astar.ConnectPoints(1, 3, true);\n" "\n" -" довгі [] сусіди = astar.GetPointConnections(1); // Повертає [2, 3]\n" +" long[] neighbors = astar.GetPointConnections(1); // Повертає [2, 3]\n" " [/csharp]\n" " [/codeblocks]" @@ -12117,6 +15731,29 @@ msgstr "Повертає поточну кількість балів у пул msgid "Returns an array of all point IDs." msgstr "Повертає масив усіх ідентифікаторів точок." +msgid "" +"Returns an array with the points that are in the path found by AStar2D " +"between the given points. The array is ordered from the starting point to the " +"ending point of the path.\n" +"If there is no valid path to the target, and [param allow_partial_path] is " +"[code]true[/code], returns a path to the point closest to the target that can " +"be reached.\n" +"[b]Note:[/b] This method is not thread-safe. If called from a [Thread], it " +"will return an empty array and will print an error message.\n" +"Additionally, when [param allow_partial_path] is [code]true[/code] and [param " +"to_id] is disabled the search may take an unusually long time to finish." +msgstr "" +"Повертає масив із точками, які знаходяться на шляху, знайденому AStar2D між " +"заданими точками. Масив упорядковується від початкової до кінцевої точки " +"шляху. \n" +"Якщо немає дійсного шляху до цілі, а [параметр allow_partial_path] має " +"значення [code]true[/code], повертає шлях до точки, найближчої до цілі, яку " +"можна досягти. \n" +"[b]Примітка.[/b] Цей метод не є потокобезпечним. Якщо викликати з [Thread], " +"він поверне порожній масив і виведе повідомлення про помилку. \n" +"Крім того, коли [param allow_partial_path] має значення [code]true[/code] і " +"[param to_id] вимкнено, пошук може тривати надзвичайно довго." + msgid "Returns the position of the point associated with the given [param id]." msgstr "Повертає положення точки, пов’язаної з заданим [param id]." @@ -12138,6 +15775,15 @@ msgid "" "Removes the point associated with the given [param id] from the points pool." msgstr "Вилучає точку, пов’язану з заданим [param id], із пулу точок." +msgid "" +"Reserves space internally for [param num_nodes] points. Useful if you're " +"adding a known large number of points at once, such as points on a grid. The " +"new capacity must be greater or equal to the old capacity." +msgstr "" +"Резервує внутрішній простір для точок [param num_nodes]. Корисно, якщо ви " +"додаєте відому велику кількість точок одночасно, наприклад точок на сітці. " +"Нова потужність має бути більшою або дорівнювати старій потужності." + msgid "" "Disables or enables the specified point for pathfinding. Useful for making a " "temporary obstacle." @@ -12166,6 +15812,155 @@ msgstr "" "Реалізація A* для пошуку найкоротшого шляху між двома вершинами на зв’язному " "графі в тривимірному просторі." +msgid "" +"A* (A star) is a computer algorithm used in pathfinding and graph traversal, " +"the process of plotting short paths among vertices (points), passing through " +"a given set of edges (segments). It enjoys widespread use due to its " +"performance and accuracy. Godot's A* implementation uses points in 3D space " +"and Euclidean distances by default.\n" +"You must add points manually with [method add_point] and create segments " +"manually with [method connect_points]. Once done, you can test if there is a " +"path between two points with the [method are_points_connected] function, get " +"a path containing indices by [method get_id_path], or one containing actual " +"coordinates with [method get_point_path].\n" +"It is also possible to use non-Euclidean distances. To do so, create a script " +"that extends [AStar3D] and override the methods [method _compute_cost] and " +"[method _estimate_cost]. Both should take two point IDs and return the " +"distance between the corresponding points.\n" +"[b]Example:[/b] Use Manhattan distance instead of Euclidean distance:\n" +"[codeblocks]\n" +"[gdscript]\n" +"class_name MyAStar3D\n" +"extends AStar3D\n" +"\n" +"func _compute_cost(u, v):\n" +" var u_pos = get_point_position(u)\n" +" var v_pos = get_point_position(v)\n" +" return abs(u_pos.x - v_pos.x) + abs(u_pos.y - v_pos.y) + abs(u_pos.z - " +"v_pos.z)\n" +"\n" +"func _estimate_cost(u, v):\n" +" var u_pos = get_point_position(u)\n" +" var v_pos = get_point_position(v)\n" +" return abs(u_pos.x - v_pos.x) + abs(u_pos.y - v_pos.y) + abs(u_pos.z - " +"v_pos.z)\n" +"[/gdscript]\n" +"[csharp]\n" +"using Godot;\n" +"\n" +"[GlobalClass]\n" +"public partial class MyAStar3D : AStar3D\n" +"{\n" +" public override float _ComputeCost(long fromId, long toId)\n" +" {\n" +" Vector3 fromPoint = GetPointPosition(fromId);\n" +" Vector3 toPoint = GetPointPosition(toId);\n" +"\n" +" return Mathf.Abs(fromPoint.X - toPoint.X) + Mathf.Abs(fromPoint.Y - " +"toPoint.Y) + Mathf.Abs(fromPoint.Z - toPoint.Z);\n" +" }\n" +"\n" +" public override float _EstimateCost(long fromId, long toId)\n" +" {\n" +" Vector3 fromPoint = GetPointPosition(fromId);\n" +" Vector3 toPoint = GetPointPosition(toId);\n" +" return Mathf.Abs(fromPoint.X - toPoint.X) + Mathf.Abs(fromPoint.Y - " +"toPoint.Y) + Mathf.Abs(fromPoint.Z - toPoint.Z);\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[method _estimate_cost] should return a lower bound of the distance, i.e. " +"[code]_estimate_cost(u, v) <= _compute_cost(u, v)[/code]. This serves as a " +"hint to the algorithm because the custom [method _compute_cost] might be " +"computation-heavy. If this is not the case, make [method _estimate_cost] " +"return the same value as [method _compute_cost] to provide the algorithm with " +"the most accurate information.\n" +"If the default [method _estimate_cost] and [method _compute_cost] methods are " +"used, or if the supplied [method _estimate_cost] method returns a lower bound " +"of the cost, then the paths returned by A* will be the lowest-cost paths. " +"Here, the cost of a path equals the sum of the [method _compute_cost] results " +"of all segments in the path multiplied by the [code]weight_scale[/code]s of " +"the endpoints of the respective segments. If the default methods are used and " +"the [code]weight_scale[/code]s of all points are set to [code]1.0[/code], " +"then this equals the sum of Euclidean distances of all segments in the path." +msgstr "" +"A* (A star) — це комп’ютерний алгоритм, який використовується для пошуку " +"шляху та обходу графа, процесу побудови коротких шляхів між вершинами " +"(точками), що проходять через заданий набір ребер (сегментів). Він отримав " +"широке застосування завдяки своїй продуктивності та точності. Реалізація " +"Godot A* за замовчуванням використовує точки в 3D просторі та евклідові " +"відстані. \n" +"Ви повинні додати точки вручну за допомогою [method add_point] і створити " +"сегменти вручну за допомогою [method connect_points]. Після цього ви можете " +"перевірити, чи існує шлях між двома точками за допомогою функції [method " +"are_points_connected], отримати шлях, що містить індекси, за допомогою " +"[method get_id_path] або той, що містить фактичні координати, за допомогою " +"[method get_point_path]. \n" +"Також можна використовувати неевклідові відстані. Для цього створіть " +"сценарій, який розширює [AStar3D] і перевизначте методи [method " +"_compute_cost] і [method _estimate_cost]. Обидва мають брати два " +"ідентифікатори точок і повертати відстань між відповідними точками. \n" +"[b]Приклад:[/b] Використовуйте манхеттенську відстань замість евклідової " +"відстані: \n" +"[codeblock] \n" +"[gdscript] \n" +"class_name MyAStar3D \n" +"extends AStar3D \n" +"\n" +"func _compute_cost(u, v): \n" +" var u_pos = get_point_position(u) \n" +" var v_pos = get_point_position(v) \n" +" повернути abs(u_pos.x - v_pos.x) + abs(u_pos.y - v_pos.y) + abs(u_pos.z - " +"v_pos.z) \n" +"\n" +"func _estimate_cost(u, v): \n" +" var u_pos = get_point_position(u) \n" +" var v_pos = get_point_position(v) \n" +" return abs(u_pos.x - v_pos.x) + abs(u_pos.y - v_pos.y) + abs(u_pos.z - " +"v_pos.z) \n" +"[/gdscript] \n" +"[csharp] \n" +"Using Godot;\n" +"\n" +"[Globalclass] \n" +"public partial class MyAStar3D : AStar3D \n" +"{\n" +" public override float _ComputeCost(long fromId, long toId) \n" +" { \n" +" Vector3 fromPoint = GetPointPosition(fromId); \n" +" Vector3 toPoint = GetPointPosition(toId); \n" +"\n" +" return Mathf.Abs(fromPoint.X - toPoint.X) + Mathf.Abs(fromPoint.Y - " +"toPoint.Y) + Mathf.Abs(fromPoint.Z - toPoint.Z); \n" +" } \n" +"\n" +" public override float _EstimateCost(long fromId, long toId) \n" +" { \n" +" Vector3 fromPoint = GetPointPosition(fromId); \n" +" Vector3 toPoint = GetPointPosition(toId); \n" +" return Mathf.Abs(fromPoint.X - toPoint.X) + Mathf.Abs(fromPoint.Y - " +"toPoint.Y) + Mathf.Abs(fromPoint.Z - toPoint.Z); \n" +" } \n" +"}\n" +"[/csharp] \n" +"[/codeblocks] \n" +"[метод _estimate_cost] має повертати нижню межу відстані, тобто " +"[код]_estimate_cost(u, v) <= _compute_cost(u, v)[/code]. Це слугує підказкою " +"для алгоритму, оскільки спеціальний [method _compute_cost] може бути важким " +"для обчислення. Якщо це не так, змусьте [method _estimate_cost] повертати те " +"саме значення, що й [method _compute_cost], щоб надати алгоритму найточнішу " +"інформацію. \n" +"Якщо використовуються методи за замовчуванням [method _estimate_cost] і " +"[method _compute_cost] або якщо наданий метод [method _estimate_cost] " +"повертає нижню межу вартості, тоді шляхи, які повертає A*, будуть шляхами з " +"найнижчою вартістю. Тут вартість шляху дорівнює сумі результатів [method " +"_compute_cost] усіх сегментів у шляху, помноженій на [code]weight_scale[/" +"code] кінцевих точок відповідних сегментів. Якщо використовуються методи за " +"замовчуванням і [code]weight_scale[/code]s усіх точок встановлено на " +"[code]1.0[/code], тоді це дорівнює сумі евклідових відстаней усіх сегментів " +"шляху." + msgid "" "Called when computing the cost between two connected points.\n" "Note that this function is hidden in the default [AStar3D] class." @@ -12210,15 +16005,15 @@ msgstr "" "визначення загальної вартості подорожі по сегменту від сусідньої точки до " "цієї точки. Таким чином, за інших рівних умов алгоритм віддає перевагу точкам " "із нижчими параметрами [param weight_scale] для формування шляху.\n" -" [кодові блоки]\n" +" [codeblocks]\n" " [gdscript]\n" " var astar = AStar3D.new()\n" " astar.add_point(1, Vector3(1, 0, 0), 4) # Додає точку (1, 0, 0) з " "weight_scale 4 та id 1\n" " [/gdscript]\n" " [csharp]\n" -" var astar = новий AStar3D();\n" -" astar.AddPoint(1, новий Vector3(1, 0, 0), 4); // Додає точку (1, 0, 0) з " +" var astar = new AStar3D();\n" +" astar.AddPoint(1, new Vector3(1, 0, 0), 4); // Додає точку (1, 0, 0) з " "weight_scale 4 та id 1\n" " [/csharp]\n" " [/codeblocks]\n" @@ -12256,7 +16051,7 @@ msgstr "" "Створює відрізок між заданими точками. Якщо [param bidirectional] має " "значення [code]false[/code], дозволено лише рух від [param id] до [param " "to_id], а не у зворотному напрямку.\n" -" [кодові блоки]\n" +" [codeblocks]\n" " [gdscript]\n" " var astar = AStar3D.new()\n" " astar.add_point(1, Vector3(1, 1, 0))\n" @@ -12264,9 +16059,9 @@ msgstr "" " astar.connect_points(1, 2, false)\n" " [/gdscript]\n" " [csharp]\n" -" var astar = новий AStar3D();\n" -" astar.AddPoint(1, новий Vector3(1, 1, 0));\n" -" astar.AddPoint(2, новий Vector3(0, 5, 0));\n" +" var astar = new AStar3D();\n" +" astar.AddPoint(1, new Vector3(1, 1, 0));\n" +" astar.AddPoint(2, new Vector3(0, 5, 0));\n" " astar.ConnectPoints(1, 2, false);\n" " [/csharp]\n" " [/codeblocks]" @@ -12297,7 +16092,7 @@ msgid "" msgstr "" "Повертає найближчу позицію до [param to_position], яка знаходиться всередині " "сегмента між двома сполученими точками.\n" -" [кодові блоки]\n" +" [codeblocks]\n" " [gdscript]\n" " var astar = AStar3D.new()\n" " astar.add_point(1, Vector3(0, 0, 0))\n" @@ -12307,9 +16102,9 @@ msgstr "" "(0, 3, 0)\n" " [/gdscript]\n" " [csharp]\n" -" var astar = новий AStar3D();\n" -" astar.AddPoint(1, новий Vector3(0, 0, 0));\n" -" astar.AddPoint(2, новий Vector3(0, 5, 0));\n" +" var astar = new AStar3D();\n" +" astar.AddPoint(1, new Vector3(0, 0, 0));\n" +" astar.AddPoint(2, new Vector3(0, 5, 0));\n" " astar.ConnectPoints(1, 2);\n" " Vector3 res = astar.GetClosestPositionInSegment(новий Vector3(3, 3, 0)); // " "Повертає (0, 3, 0)\n" @@ -12318,6 +16113,87 @@ msgstr "" " Результат знаходиться в сегменті, який проходить від [code]y = 0[/code] до " "[code]y = 5[/code]. Це найближча позиція на відрізку до даної точки." +msgid "" +"Returns an array with the IDs of the points that form the path found by " +"AStar3D between the given points. The array is ordered from the starting " +"point to the ending point of the path.\n" +"If there is no valid path to the target, and [param allow_partial_path] is " +"[code]true[/code], returns a path to the point closest to the target that can " +"be reached.\n" +"[b]Note:[/b] When [param allow_partial_path] is [code]true[/code] and [param " +"to_id] is disabled the search may take an unusually long time to finish.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var astar = AStar3D.new()\n" +"astar.add_point(1, Vector3(0, 0, 0))\n" +"astar.add_point(2, Vector3(0, 1, 0), 1) # Default weight is 1\n" +"astar.add_point(3, Vector3(1, 1, 0))\n" +"astar.add_point(4, Vector3(2, 0, 0))\n" +"\n" +"astar.connect_points(1, 2, false)\n" +"astar.connect_points(2, 3, false)\n" +"astar.connect_points(4, 3, false)\n" +"astar.connect_points(1, 4, false)\n" +"\n" +"var res = astar.get_id_path(1, 3) # Returns [1, 2, 3]\n" +"[/gdscript]\n" +"[csharp]\n" +"var astar = new AStar3D();\n" +"astar.AddPoint(1, new Vector3(0, 0, 0));\n" +"astar.AddPoint(2, new Vector3(0, 1, 0), 1); // Default weight is 1\n" +"astar.AddPoint(3, new Vector3(1, 1, 0));\n" +"astar.AddPoint(4, new Vector3(2, 0, 0));\n" +"astar.ConnectPoints(1, 2, false);\n" +"astar.ConnectPoints(2, 3, false);\n" +"astar.ConnectPoints(4, 3, false);\n" +"astar.ConnectPoints(1, 4, false);\n" +"long[] res = astar.GetIdPath(1, 3); // Returns [1, 2, 3]\n" +"[/csharp]\n" +"[/codeblocks]\n" +"If you change the 2nd point's weight to 3, then the result will be [code][1, " +"4, 3][/code] instead, because now even though the distance is longer, it's " +"\"easier\" to get through point 4 than through point 2." +msgstr "" +"Повертає масив з ідентифікаторами точок, які утворюють шлях, знайдений " +"AStar3D між заданими точками. Масив упорядковується від початкової до " +"кінцевої точки шляху. \n" +"Якщо немає дійсного шляху до цілі, а [параметр allow_partial_path] має " +"значення [code]true[/code], повертає шлях до точки, найближчої до цілі, яку " +"можна досягти. \n" +"[b]Примітка.[/b] Якщо [param allow_partial_path] має значення [code]true[/" +"code] і [param to_id] вимкнено, пошук може тривати надзвичайно довго. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var liner = AStar3D.new() \n" +"astar.add_point(1, Vector3(0, 0, 0)) \n" +"astar.add_point(2, Vector3(0, 1, 0), 1) # Вага за замовчуванням 1 \n" +"astar.add_point(3, Vector3(1, 1, 0)) \n" +"astar.add_point(4, Vector3(2, 0, 0)) \n" +"\n" +"astar.connect_points(1, 2, false) \n" +"astar.connect_points(2, 3, false) \n" +"astar.connect_points(4, 3, false) \n" +"astar.connect_points(1, 4, false) \n" +"\n" +"var res = astar.get_id_path(1, 3) # Повертає [1, 2, 3] \n" +"[/gdscript] \n" +"[csharp] \n" +"var astar = new AStar3D(); \n" +"astar.AddPoint(1, new Vector3(0, 0, 0)); \n" +"astar.AddPoint(2, new Vector3(0, 1, 0), 1); // Вага за замовчуванням 1 \n" +"astar.AddPoint(3, new Vector3(1, 1, 0)); \n" +"astar.AddPoint(4, new Vector3(2, 0, 0)); \n" +"astar.ConnectPoints(1, 2, false); \n" +"astar.ConnectPoints(2, 3, false); \n" +"astar.ConnectPoints(4, 3, false); \n" +"astar.ConnectPoints(1, 4, false); \n" +"long[] res = astar.GetIdPath(1, 3); // Повертає [1, 2, 3] \n" +"[/csharp] \n" +"[/codeblocks] \n" +"Якщо ви зміните вагу другої точки на 3, тоді результатом буде [code][1, 4, 3]" +"[/code], тому що тепер, навіть якщо відстань більша, «легше» пройти через " +"точку 4, ніж через точку 2." + msgid "" "Returns an array with the IDs of the points that form the connection with the " "given point.\n" @@ -12349,7 +16225,7 @@ msgid "" msgstr "" "Повертає масив з ідентифікаторами точок, які утворюють з’єднання з даною " "точкою.\n" -" [кодові блоки]\n" +" [codeblocks]\n" " [gdscript]\n" " var astar = AStar3D.new()\n" " astar.add_point(1, Vector3(0, 0, 0))\n" @@ -12363,18 +16239,41 @@ msgstr "" " var neighbours = astar.get_point_connections(1) # Повертає [2, 3]\n" " [/gdscript]\n" " [csharp]\n" -" var astar = новий AStar3D();\n" -" astar.AddPoint(1, новий Vector3(0, 0, 0));\n" -" astar.AddPoint(2, новий Vector3(0, 1, 0));\n" -" astar.AddPoint(3, новий Vector3(1, 1, 0));\n" -" astar.AddPoint(4, новий Vector3(2, 0, 0));\n" +" var astar = new AStar3D();\n" +" astar.AddPoint(1, new Vector3(0, 0, 0));\n" +" astar.AddPoint(2, new Vector3(0, 1, 0));\n" +" astar.AddPoint(3, new Vector3(1, 1, 0));\n" +" astar.AddPoint(4, new Vector3(2, 0, 0));\n" " astar.ConnectPoints(1, 2, true);\n" " astar.ConnectPoints(1, 3, true);\n" "\n" -" довгі [] сусіди = astar.GetPointConnections(1); // Повертає [2, 3]\n" +" long[] neighbors = astar.GetPointConnections(1); // Повертає [2, 3]\n" " [/csharp]\n" " [/codeblocks]" +msgid "" +"Returns an array with the points that are in the path found by AStar3D " +"between the given points. The array is ordered from the starting point to the " +"ending point of the path.\n" +"If there is no valid path to the target, and [param allow_partial_path] is " +"[code]true[/code], returns a path to the point closest to the target that can " +"be reached.\n" +"[b]Note:[/b] This method is not thread-safe. If called from a [Thread], it " +"will return an empty array and will print an error message.\n" +"Additionally, when [param allow_partial_path] is [code]true[/code] and [param " +"to_id] is disabled the search may take an unusually long time to finish." +msgstr "" +"Повертає масив із точками, які знаходяться на шляху, знайденому AStar3D між " +"заданими точками. Масив упорядковується від початкової до кінцевої точки " +"шляху. \n" +"Якщо немає дійсного шляху до цілі, а [параметр allow_partial_path] має " +"значення [code]true[/code], повертає шлях до точки, найближчої до цілі, яку " +"можна досягти. \n" +"[b]Примітка.[/b] Цей метод не є потокобезпечним. Якщо викликати з [Thread], " +"він поверне порожній масив і виведе повідомлення про помилку. \n" +"Крім того, коли [param allow_partial_path] має значення [code]true[/code] і " +"[param to_id] вимкнено, пошук може тривати надзвичайно довго." + msgid "" "Reserves space internally for [param num_nodes] points. Useful if you're " "adding a known large number of points at once, such as points on a grid. New " @@ -12391,6 +16290,73 @@ msgstr "" "Реалізація A* для пошуку найкоротшого шляху між двома точками на частковій " "двовимірній сітці." +msgid "" +"[AStarGrid2D] is a variant of [AStar2D] that is specialized for partial 2D " +"grids. It is simpler to use because it doesn't require you to manually create " +"points and connect them together. This class also supports multiple types of " +"heuristics, modes for diagonal movement, and a jumping mode to speed up " +"calculations.\n" +"To use [AStarGrid2D], you only need to set the [member region] of the grid, " +"optionally set the [member cell_size], and then call the [method update] " +"method:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var astar_grid = AStarGrid2D.new()\n" +"astar_grid.region = Rect2i(0, 0, 32, 32)\n" +"astar_grid.cell_size = Vector2(16, 16)\n" +"astar_grid.update()\n" +"print(astar_grid.get_id_path(Vector2i(0, 0), Vector2i(3, 4))) # Prints [(0, " +"0), (1, 1), (2, 2), (3, 3), (3, 4)]\n" +"print(astar_grid.get_point_path(Vector2i(0, 0), Vector2i(3, 4))) # Prints " +"[(0, 0), (16, 16), (32, 32), (48, 48), (48, 64)]\n" +"[/gdscript]\n" +"[csharp]\n" +"AStarGrid2D astarGrid = new AStarGrid2D();\n" +"astarGrid.Region = new Rect2I(0, 0, 32, 32);\n" +"astarGrid.CellSize = new Vector2I(16, 16);\n" +"astarGrid.Update();\n" +"GD.Print(astarGrid.GetIdPath(Vector2I.Zero, new Vector2I(3, 4))); // Prints " +"[(0, 0), (1, 1), (2, 2), (3, 3), (3, 4)]\n" +"GD.Print(astarGrid.GetPointPath(Vector2I.Zero, new Vector2I(3, 4))); // " +"Prints [(0, 0), (16, 16), (32, 32), (48, 48), (48, 64)]\n" +"[/csharp]\n" +"[/codeblocks]\n" +"To remove a point from the pathfinding grid, it must be set as \"solid\" with " +"[method set_point_solid]." +msgstr "" +"[AStarGrid2D] — це варіант [AStar2D], який спеціалізується на часткових " +"двовимірних сітках. Його простіше використовувати, оскільки не потрібно " +"вручну створювати точки та з’єднувати їх разом. Цей клас також підтримує " +"кілька типів евристик, режими діагонального переміщення та режим стрибків для " +"прискорення обчислень.\n" +" Щоб використовувати [AStarGrid2D], вам потрібно лише встановити [member " +"region] сітки, за бажанням [member cell_size], а потім викликати метод " +"[method update]:\n" +" [codeblocks]\n" +" [gdscript]\n" +" var astar_grid = AStarGrid2D.new()\n" +" astar_grid.region = Rect2i(0, 0, 32, 32)\n" +" astar_grid.cell_size = Vector2(16, 16)\n" +" astar_grid.update()\n" +" print(astar_grid.get_id_path(Vector2i(0, 0), Vector2i(3, 4))) # друкує (0, " +"0), (1, 1), (2, 2), (3, 3), (3, 4)\n" +" print(astar_grid.get_point_path(Vector2i(0, 0), Vector2i(3, 4))) # друкує " +"(0, 0), (16, 16), (32, 32), (48, 48), (48, 64)\n" +" [/gdscript]\n" +" [csharp]\n" +" AStarGrid2D astarGrid = new AStarGrid2D();\n" +" astarGrid.Region = new Rect2I(0, 0, 32, 32);\n" +" astarGrid.CellSize = new Vector2I(16, 16);\n" +" astarGrid.Update();\n" +" GD.Print(astarGrid.GetIdPath(Vector2I.Zero, new Vector2I(3, 4))); // " +"виводить (0, 0), (1, 1), (2, 2), (3, 3), (3, 4)\n" +" GD.Print(astarGrid.GetPointPath(Vector2I.Zero, new Vector2I(3, 4))); // " +"виводить (0, 0), (16, 16), (32, 32), (48, 48), (48, 64)\n" +" [/csharp]\n" +" [/codeblocks]\n" +" Щоб видалити точку з сітки пошуку контурів, її потрібно встановити як " +"«суцільну» за допомогою [методу set_point_solid]." + msgid "" "Called when computing the cost between two connected points.\n" "Note that this function is hidden in the default [AStarGrid2D] class." @@ -12434,6 +16400,57 @@ msgstr "" " [b]Примітка: [/b] Виклик [method update] не потрібен після виклику цієї " "функції." +msgid "" +"Returns an array with the IDs of the points that form the path found by " +"AStar2D between the given points. The array is ordered from the starting " +"point to the ending point of the path.\n" +"If there is no valid path to the target, and [param allow_partial_path] is " +"[code]true[/code], returns a path to the point closest to the target that can " +"be reached.\n" +"[b]Note:[/b] When [param allow_partial_path] is [code]true[/code] and [param " +"to_id] is solid the search may take an unusually long time to finish." +msgstr "" +"Повертає масив з ідентифікаторами точок, які утворюють шлях, знайдений " +"AStar2D між заданими точками. Масив упорядковується від початкової до " +"кінцевої точки шляху. \n" +"Якщо немає дійсного шляху до цілі, а [параметр allow_partial_path] має " +"значення [code]true[/code], повертає шлях до точки, найближчої до цілі, яку " +"можна досягти. \n" +"[b]Примітка.[/b] Якщо [param allow_partial_path] має значення [code]true[/" +"code] і [param to_id] твердо, пошук може тривати надзвичайно довго." + +msgid "" +"Returns an array of dictionaries with point data ([code]id[/code]: " +"[Vector2i], [code]position[/code]: [Vector2], [code]solid[/code]: [bool], " +"[code]weight_scale[/code]: [float]) within a [param region]." +msgstr "" +"Повертає масив словників із точковими даними ([code]id[/code]: [Vector2i], " +"[code]position[/code]: [Vector2], [code]solid[/code]: [bool], " +"[code]weight_scale[/code]: [float]) у [області param]." + +msgid "" +"Returns an array with the points that are in the path found by [AStarGrid2D] " +"between the given points. The array is ordered from the starting point to the " +"ending point of the path.\n" +"If there is no valid path to the target, and [param allow_partial_path] is " +"[code]true[/code], returns a path to the point closest to the target that can " +"be reached.\n" +"[b]Note:[/b] This method is not thread-safe. If called from a [Thread], it " +"will return an empty array and will print an error message.\n" +"Additionally, when [param allow_partial_path] is [code]true[/code] and [param " +"to_id] is solid the search may take an unusually long time to finish." +msgstr "" +"Повертає масив із точками, які знаходяться на шляху, знайденому [AStarGrid2D] " +"між заданими точками. Масив упорядковується від початкової до кінцевої точки " +"шляху. \n" +"Якщо немає дійсного шляху до цілі, а [параметр allow_partial_path] має " +"значення [code]true[/code], повертає шлях до точки, найближчої до цілі, яку " +"можна досягти. \n" +"[b]Примітка.[/b] Цей метод не є потокобезпечним. Якщо викликати з [Thread], " +"він поверне порожній масив і виведе повідомлення про помилку. \n" +"Крім того, коли [param allow_partial_path] має значення [code]true[/code] і " +"[param to_id] твердо, пошук може тривати надзвичайно довго." + msgid "" "Indicates that the grid parameters were changed and [method update] needs to " "be called." @@ -12595,10 +16612,10 @@ msgid "" msgstr "" "[url=https://en.wikipedia.org/wiki/Euclidean_distance]Евклідова евристика[/" "url], яка використовуватиметься для пошуку шляху за такою формулою:\n" -" [кодовий блок]\n" +" [codeblock]\n" " dx = abs(to_id.x - from_id.x)\n" -" dy = abs(до_id.y - від_id.y)\n" -" результат = sqrt(dx * dx + dy * dy)\n" +" dy = abs(to_id.y - from_id.y)\n" +" resuit = sqrt(dx * dx + dy * dy)\n" " [/codeblock]\n" " [b]Примітка: [/b] Це також внутрішня евристика, яка використовується в " "[AStar3D] і [AStar2D] за замовчуванням (із включенням можливої координати осі " @@ -12618,10 +16635,10 @@ msgid "" msgstr "" "[url=https://en.wikipedia.org/wiki/Taxicab_geometry]Манхеттенська евристика[/" "url], яка використовуватиметься для пошуку шляху за такою формулою:\n" -" [кодовий блок]\n" +" [codeblock]\n" " dx = abs(to_id.x - from_id.x)\n" -" dy = abs(до_id.y - від_id.y)\n" -" результат = dx + dy\n" +" dy = abs(to_id.y - from_id.y)\n" +" resuit = dx + dy\n" " [/codeblock]\n" " [b]Примітка:[/b] Ця евристика призначена для використання з 4-сторонніми " "ортогональними рухами, які забезпечуються встановленням [member " @@ -12638,11 +16655,11 @@ msgid "" "[/codeblock]" msgstr "" "Октильна евристика для пошуку шляху за такою формулою:\n" -" [кодовий блок]\n" +" [codeblock]\n" " dx = abs(to_id.x - from_id.x)\n" -" dy = abs(до_id.y - від_id.y)\n" +" dy = abs(to_id.y - from_id.y)\n" " f = sqrt(2) - 1\n" -" результат = (dx < dy) ? f * dx + dy : f * dy + dx;\n" +" resuit = (dx < dy) ? f * dx + dy : f * dy + dx;\n" " [/codeblock]" msgid "" @@ -12656,10 +16673,10 @@ msgid "" msgstr "" "[url=https://en.wikipedia.org/wiki/Chebyshev_distance]Евристика Чебишева[/" "url], яка буде використовуватися для пошуку шляху за такою формулою:\n" -" [кодовий блок]\n" +" [codeblock]\n" " dx = abs(to_id.x - from_id.x)\n" -" dy = abs(до_id.y - від_id.y)\n" -" результат = max(dx, dy)\n" +" dy = abs(to_id.y - from_id.y)\n" +" resuit = max(dx, dy)\n" " [/codeblock]" msgid "Represents the size of the [enum Heuristic] enum." @@ -12721,6 +16738,27 @@ msgstr "Представляє розмір переліку [enum CellShape]." msgid "A texture that crops out part of another Texture2D." msgstr "Текстура, яка вирізає частину іншої Texture2D." +msgid "" +"[Texture2D] resource that draws only part of its [member atlas] texture, as " +"defined by the [member region]. An additional [member margin] can also be " +"set, which is useful for small adjustments.\n" +"Multiple [AtlasTexture] resources can be cropped from the same [member " +"atlas]. Packing many smaller textures into a singular large texture helps to " +"optimize video memory costs and render calls.\n" +"[b]Note:[/b] [AtlasTexture] cannot be used in an [AnimatedTexture], and will " +"not tile properly in nodes such as [TextureRect] or [Sprite2D]. To tile an " +"[AtlasTexture], modify its [member region] instead." +msgstr "" +"Ресурс [Texture2D], який малює лише частину своєї текстури [member atlas], як " +"визначено [member region]. Також можна встановити додаткову [маржу члена], що " +"корисно для невеликих коригувань.\n" +" Кілька ресурсів [AtlasTexture] можна вирізати з одного [атласу-учасника]. " +"Упаковка багатьох менших текстур в єдину велику текстуру допомагає " +"оптимізувати витрати на відеопам’ять і рендеринг викликів.\n" +" [b]Примітка:[/b] [AtlasTexture] не можна використовувати в [AnimatedTexture] " +"і може неправильно розміщувати плитки в таких вузлах, як [TextureRect], коли " +"вони знаходяться в інших ресурсах [AtlasTexture]." + msgid "" "The texture that contains the atlas. Can be any type inheriting from " "[Texture2D], including another [AtlasTexture]." @@ -12814,16 +16852,16 @@ msgstr "" "Перевизначте цей метод, щоб налаштувати [AudioEffectInstance], створений, " "коли цей ефект застосовано до шини на панелі Audio редактора або за допомогою " "[method AudioServer.add_bus_effect].\n" -" [кодовий блок]\n" -" розширює AudioEffect\n" +" [codeblock]\n" +" extends AudioEffect\n" "\n" -" @export змінна сила = 4,0\n" +" @export var strength = 4,0\n" "\n" " func _instantiate():\n" " var effect = CustomAudioEffectInstance.new()\n" " effect.base = self\n" "\n" -" ефект повернення\n" +" return effect\n" " [/codeblock]\n" " [b]Примітка: [/b] Рекомендується зберегти посилання на оригінальний " "[AudioEffect] у новому екземплярі. Залежно від реалізації це дозволяє " @@ -12843,6 +16881,21 @@ msgstr "" "Величина підсилення в децибелах. Додатні значення роблять звук гучнішим, " "від’ємні – тихим. Значення може коливатися від -80 до 24." +msgid "" +"Amount of amplification as a linear value.\n" +"[b]Note:[/b] This member modifies [member volume_db] for convenience. The " +"returned value is equivalent to the result of [method @GlobalScope." +"db_to_linear] on [member volume_db]. Setting this member is equivalent to " +"setting [member volume_db] to the result of [method @GlobalScope." +"linear_to_db] on a value." +msgstr "" +"Величина підсилення як лінійна величина. \n" +"[b]Примітка:[/b] цей учасник змінює [member volume_db] для зручності. " +"Повернене значення еквівалентно результату [method @GlobalScope.db_to_linear] " +"на [member volume_db]. Налаштування цього члена еквівалентно встановленню " +"[member volume_db] для результату [method @GlobalScope.linear_to_db] для " +"значення." + msgid "Adds a band limit filter to the audio bus." msgstr "Додає фільтр обмеження смуги до аудіошини." @@ -13385,12 +17438,31 @@ msgstr "Дозволяє пропускати частоти, відмінні msgid "Threshold frequency for the filter, in Hz." msgstr "Порогова частота для фільтра, Гц." +msgid "" +"Steepness of the cutoff curve in dB per octave, also known as the order of " +"the filter. Higher orders have a more aggressive cutoff." +msgstr "" +"Крутизна кривої зрізу в дБ на октаву, також відома як порядок фільтра. Вищі " +"порядки мають більш агресивне відсічення." + msgid "Gain amount of the frequencies after the filter." msgstr "Посилення кількості частот після фільтра." msgid "Amount of boost in the frequency range near the cutoff frequency." msgstr "Рівень посилення в діапазоні частот поблизу частоти зрізу." +msgid "Cutting off at 6dB per octave." +msgstr "Відсікання при 6 дБ на октаву." + +msgid "Cutting off at 12dB per octave." +msgstr "Відсікання на рівні 12 дБ на октаву." + +msgid "Cutting off at 18dB per octave." +msgstr "Відсікання при 18 дБ на октаву." + +msgid "Cutting off at 24dB per octave." +msgstr "Відсікання при 24 дБ на октаву." + msgid "Adds a hard limiter audio effect to an Audio bus." msgstr "Додає звуковий ефект жорсткого обмежувача до звукової шини." @@ -13823,6 +17895,21 @@ msgstr "" "Аудіоефект, який можна використовувати для аудіо візуалізації в реальному " "часі." +msgid "" +"This audio effect does not affect sound output, but can be used for real-time " +"audio visualizations.\n" +"This resource configures an [AudioEffectSpectrumAnalyzerInstance], which " +"performs the actual analysis at runtime. An instance can be obtained with " +"[method AudioServer.get_bus_effect_instance].\n" +"See also [AudioStreamGenerator] for procedurally generating sounds." +msgstr "" +"Цей аудіоефект не впливає на вихід звуку, але його можна використовувати для " +"візуалізації звуку в реальному часі. \n" +"This resource configures an [AudioEffectSpectrumAnalyzerInstance], which " +"performs the actual analysis at runtime. An instance can be obtained with " +"[method AudioServer.get_bus_effect_instance].\n" +"Дивіться також [AudioStreamGenerator] для процедурної генерації звуків." + msgid "Audio Spectrum Visualizer Demo" msgstr "Демонстрація візуалізатора аудіоспектру" @@ -13848,6 +17935,17 @@ msgstr "" msgid "Queryable instance of an [AudioEffectSpectrumAnalyzer]." msgstr "Запитуваний екземпляр [AudioEffectSpectrumAnalyzer]." +msgid "" +"The runtime part of an [AudioEffectSpectrumAnalyzer], which can be used to " +"query the magnitude of a frequency range on its host bus.\n" +"An instance of this class can be obtained with [method AudioServer." +"get_bus_effect_instance]." +msgstr "" +"Частина часу виконання [AudioEffectSpectrumAnalyzer], яку можна " +"використовувати для запиту величини частотного діапазону на головній шині.\n" +" Екземпляр цього класу можна отримати за допомогою [методу AudioServer." +"get_bus_effect_instance]." + msgid "" "Returns the magnitude of the frequencies from [param from_hz] to [param " "to_hz] in linear energy as a Vector2. The [code]x[/code] component of the " @@ -13874,6 +17972,31 @@ msgstr "" "Аудіоефект, який можна використовувати для регулювання інтенсивності стерео " "панорамування." +msgid "" +"Amplifies the difference between stereo channels, increasing or decreasing " +"existing panning. A value of 0.0 will downmix stereo to mono. Does not affect " +"a mono signal." +msgstr "" +"Посилює різницю між стереоканалами, збільшуючи або зменшуючи наявне " +"панорамування. Значення 0,0 зменшить стерео до моно. Не впливає на моно " +"сигнал." + +msgid "" +"Widens sound stage through phase shifting in conjunction with [member " +"time_pullout_ms]. Just pans sound to the left channel if [member " +"time_pullout_ms] is 0." +msgstr "" +"Розширює звукову сцену за допомогою фазового зсуву в поєднанні з [member " +"time_pullout_ms]. Просто панорамує звук до лівого каналу, якщо [member " +"time_pullout_ms] дорівнює 0." + +msgid "" +"Widens sound stage through phase shifting in conjunction with [member " +"surround]. Just delays the right channel if [member surround] is 0." +msgstr "" +"Розширює звукову сцену завдяки фазовому зсуву в поєднанні з [member " +"surround]. Просто затримує правий канал, якщо [member surround] дорівнює 0." + msgid "Overrides the location sounds are heard from." msgstr "Перекриває звуки розташування." @@ -14031,6 +18154,30 @@ msgstr "Повертає назву шини, на яку надсилає ши msgid "Returns the volume of the bus at index [param bus_idx] in dB." msgstr "Повертає гучність шини за індексом [param bus_idx] у дБ." +msgid "" +"Returns the volume of the bus at index [param bus_idx] as a linear value.\n" +"[b]Note:[/b] The returned value is equivalent to the result of [method " +"@GlobalScope.db_to_linear] on the result of [method get_bus_volume_db]." +msgstr "" +"Повертає гучність шини за індексом [param bus_idx] як лінійне значення. \n" +"[b]Примітка:[/b] Повернене значення еквівалентно результату [методу " +"@GlobalScope.db_to_linear] щодо результату [методу get_bus_volume_db]." + +msgid "" +"Returns the name of the current audio driver. The default usually depends on " +"the operating system, but may be overridden via the [code]--audio-driver[/" +"code] [url=$DOCS_URL/tutorials/editor/command_line_tutorial.html]command line " +"argument[/url]. [code]--headless[/code] also automatically sets the audio " +"driver to [code]Dummy[/code]. See also [member ProjectSettings.audio/driver/" +"driver]." +msgstr "" +"Повертає назву поточного звукового драйвера. Значення за замовчуванням " +"зазвичай залежить від операційної системи, але його можна змінити за " +"допомогою [code]--audio-driver[/code] [url=$DOCS_URL/tutorials/editor/" +"command_line_tutorial.html]аргументу командного рядка[/url]. [code]--" +"headless[/code] також автоматично встановлює аудіодрайвер на [code]Dummy[/" +"code]. Дивіться також [учасник ProjectSettings.audio/driver/driver]." + msgid "" "Returns the names of all audio input devices detected on the system.\n" "[b]Note:[/b] [member ProjectSettings.audio/driver/enable_input] must be " @@ -14044,6 +18191,9 @@ msgstr "" "цього параметра, щоб дізнатися про застереження щодо дозволів і налаштувань " "конфіденційності операційної системи." +msgid "Returns the sample rate at the input of the [AudioServer]." +msgstr "Повертає частоту дискретизації на вході [AudioServer]." + msgid "Returns the sample rate at the output of the [AudioServer]." msgstr "Повертає частоту дискретизації на виході [AudioServer]." @@ -14149,6 +18299,25 @@ msgid "" "send]." msgstr "Підключає вихід шини [param bus_idx] до шини з назвою [param send]." +msgid "" +"Sets the volume in decibels of the bus at index [param bus_idx] to [param " +"volume_db]." +msgstr "" +"Встановлює гучність шини за індексом [param bus_idx] на [param volume_db]." + +msgid "" +"Sets the volume as a linear value of the bus at index [param bus_idx] to " +"[param volume_linear].\n" +"[b]Note:[/b] Using this method is equivalent to calling [method " +"set_bus_volume_db] with the result of [method @GlobalScope.linear_to_db] on a " +"value." +msgstr "" +"Встановлює гучність як лінійне значення шини за індексом [param bus_idx] до " +"[param volume_linear]. \n" +"[b]Примітка.[/b] Використання цього методу еквівалентно виклику [методу " +"set_bus_volume_db] із результатом [методу @GlobalScope.linear_to_db] для " +"значення." + msgid "" "If set to [code]true[/code], all instances of [AudioStreamPlayback] will call " "[method AudioStreamPlayback._tag_used_streams] every mix step.\n" @@ -14291,6 +18460,9 @@ msgstr "Звукові потоки" msgid "Audio Generator Demo" msgstr "Демонстрація аудіогенератора" +msgid "Override this method to return the bar beats of this stream." +msgstr "Перевизначте цей метод, щоб повернути такти цього потоку." + msgid "" "Overridable method. Should return the total number of beats of this audio " "stream. Used by the engine to determine the position of every beat.\n" @@ -14339,6 +18511,21 @@ msgstr "" "Перевизначте цей метод, щоб налаштувати назву, призначену цьому аудіопотоку. " "Не використовувався двигуном." +msgid "" +"Override this method to return [code]true[/code] if this stream has a loop." +msgstr "" +"Перевизначте цей метод, щоб повернути [code]true[/code], якщо цей потік має " +"цикл." + +msgid "" +"Override this method to customize the returned value of [method " +"instantiate_playback]. Should return a new [AudioStreamPlayback] created when " +"the stream is played (such as by an [AudioStreamPlayer])." +msgstr "" +"Перевизначте цей метод, щоб налаштувати значення, що повертається [method " +"instantiate_playback]. Має повертати новий [AudioStreamPlayback], створений " +"під час відтворення потоку (наприклад, [AudioStreamPlayer])." + msgid "" "Override this method to customize the returned value of [method " "is_monophonic]. Should return [code]true[/code] if this audio stream only " @@ -14396,6 +18583,147 @@ msgstr "Сигнал, який подається для сповіщення п msgid "An audio stream with utilities for procedural sound generation." msgstr "Аудіопотік з утилітами для процедурної генерації звуку." +msgid "" +"[AudioStreamGenerator] is a type of audio stream that does not play back " +"sounds on its own; instead, it expects a script to generate audio data for " +"it. See also [AudioStreamGeneratorPlayback].\n" +"Here's a sample on how to use it to generate a sine wave:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var playback # Will hold the AudioStreamGeneratorPlayback.\n" +"@onready var sample_hz = $AudioStreamPlayer.stream.mix_rate\n" +"var pulse_hz = 440.0 # The frequency of the sound wave.\n" +"var phase = 0.0\n" +"\n" +"func _ready():\n" +" $AudioStreamPlayer.play()\n" +" playback = $AudioStreamPlayer.get_stream_playback()\n" +" fill_buffer()\n" +"\n" +"func fill_buffer():\n" +" var increment = pulse_hz / sample_hz\n" +" var frames_available = playback.get_frames_available()\n" +"\n" +" for i in range(frames_available):\n" +" playback.push_frame(Vector2.ONE * sin(phase * TAU))\n" +" phase = fmod(phase + increment, 1.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"[Export] public AudioStreamPlayer Player { get; set; }\n" +"\n" +"private AudioStreamGeneratorPlayback _playback; // Will hold the " +"AudioStreamGeneratorPlayback.\n" +"private float _sampleHz;\n" +"private float _pulseHz = 440.0f; // The frequency of the sound wave.\n" +"private double phase = 0.0;\n" +"\n" +"public override void _Ready()\n" +"{\n" +" if (Player.Stream is AudioStreamGenerator generator) // Type as a " +"generator to access MixRate.\n" +" {\n" +" _sampleHz = generator.MixRate;\n" +" Player.Play();\n" +" _playback = (AudioStreamGeneratorPlayback)Player." +"GetStreamPlayback();\n" +" FillBuffer();\n" +" }\n" +"}\n" +"\n" +"public void FillBuffer()\n" +"{\n" +" float increment = _pulseHz / _sampleHz;\n" +" int framesAvailable = _playback.GetFramesAvailable();\n" +"\n" +" for (int i = 0; i < framesAvailable; i++)\n" +" {\n" +" _playback.PushFrame(Vector2.One * (float)Mathf.Sin(phase * Mathf." +"Tau));\n" +" phase = Mathf.PosMod(phase + increment, 1.0);\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"In the example above, the \"AudioStreamPlayer\" node must use an " +"[AudioStreamGenerator] as its stream. The [code]fill_buffer[/code] function " +"provides audio data for approximating a sine wave.\n" +"See also [AudioEffectSpectrumAnalyzer] for performing real-time audio " +"spectrum analysis.\n" +"[b]Note:[/b] Due to performance constraints, this class is best used from C# " +"or from a compiled language via GDExtension. If you still want to use this " +"class from GDScript, consider using a lower [member mix_rate] such as 11,025 " +"Hz or 22,050 Hz." +msgstr "" +"[AudioStreamGenerator] is a type of audio stream that does not play back " +"sounds on its own; instead, it expects a script to generate audio data for " +"it. See also [AudioStreamGeneratorPlayback].\n" +"Ось приклад того, як використовувати його для генерації синусоїди: \n" +"[codeblocks] \n" +"[gdscript] \n" +"var playback # Will hold the AudioStreamGeneratorPlayback.\n" +"@onready var sample_hz = $AudioStreamPlayer.stream.mix_rate \n" +"var pulse_hz = 440.0 # Частота звукової хвилі. \n" +"змінна фаза = 0,0 \n" +"\n" +"func _ready(): \n" +" $AudioStreamPlayer.play() \n" +" play = $AudioStreamPlayer.get_stream_playback() \n" +" fill_buffer() \n" +"\n" +"func fill_buffer(): \n" +" var increment = pulse_hz / sample_hz \n" +" var frames_available = playback.get_frames_available() \n" +"\n" +" for i in range (frames_available): \n" +" playback.push_frame(Vector2.ONE * sin(phase * TAU)) \n" +" фаза = fmod(фаза + приріст, 1,0) \n" +"[/gdscript] \n" +"[csharp] \n" +"[Export] public AudioStreamPlayer Player { get; set; } \n" +"\n" +"private AudioStreamGeneratorPlayback _playback; // Will hold the " +"AudioStreamGeneratorPlayback.\n" +"private float _sampleHz; \n" +"private float _pulseHz = 440.0f; // Частота звукової хвилі. \n" +"private double phase = 0,0; \n" +"\n" +"public override void _Ready() \n" +"{\n" +" if (Player.Stream is AudioStreamGenerator generator) // Введіть як " +"генератор для доступу до MixRate. \n" +" { \n" +" _sampleHz = generator.MixRate; \n" +" Player.Play(); \n" +" _playback = (AudioStreamGeneratorPlayback)Player." +"GetStreamPlayback();\n" +" FillBuffer(); \n" +" } \n" +"}\n" +"\n" +"public void FillBuffer() \n" +"{\n" +" float increment = _pulseHz / _sampleHz; \n" +" int framesAvailable = _playback.GetFramesAvailable(); \n" +"\n" +" for (int i = 0; i < framesAvailable; i++) \n" +" { \n" +" _playback.PushFrame(Vector2.One * (float)Mathf.Sin(phase * Mathf." +"Tau)); \n" +" phase = Mathf.PosMod(phase + increment, 1,0); \n" +" } \n" +"}\n" +"[/csharp] \n" +"[/codeblocks] \n" +"У наведеному вище прикладі вузол «AudioStreamPlayer» повинен використовувати " +"[AudioStreamGenerator] як свій потік. Функція [code]fill_buffer[/code] надає " +"аудіодані для апроксимації синусоїди. \n" +"Дивіться також [AudioEffectSpectrumAnalyzer] для виконання спектрального " +"аналізу звуку в реальному часі. \n" +"[b]Примітка:[/b] через обмеження продуктивності цей клас найкраще " +"використовувати з C# або зі скомпільованої мови через GDExtension. Якщо ви " +"все ще хочете використовувати цей клас із GDScript, подумайте про " +"використання нижчої [member mix_rate], наприклад 11 025 Гц або 22 050 Гц." + msgid "" "The length of the buffer to generate (in seconds). Lower values result in " "less latency, but require the script to generate audio data faster, resulting " @@ -14419,20 +18747,53 @@ msgid "" "Hz (since most humans can only hear up to ~20,000 Hz, often less). If you are " "generating lower-pitched sounds such as voices, lower sample rates such as " "[code]32000[/code] or [code]22050[/code] may be usable with no loss in " -"quality." +"quality.\n" +"[b]Note:[/b] [AudioStreamGenerator] is not automatically resampling input " +"data, to produce expected result [member mix_rate_mode] should match the " +"sampling rate of input data.\n" +"[b]Note:[/b] If you are using [AudioEffectCapture] as the source of your " +"data, set [member mix_rate_mode] to [constant MIX_RATE_INPUT] or [constant " +"MIX_RATE_OUTPUT] to automatically match current [AudioServer] mixing rate." msgstr "" "Частота дискретизації для використання (у Гц). Вищі значення вимагають від " -"процесора генерування, але це призводить до кращої якості.\n" -" В іграх стандартні частоти дискретизації: [code]11025[/code], [code]16000[/" +"процесора генерувати більше, але це призводить до кращої якості. \n" +"В іграх стандартні частоти дискретизації: [code]11025[/code], [code]16000[/" "code], [code]22050[/code], [code]32000[/code], [code]44100[/code] і " -"[code]48000[/code].\n" -" Згідно з [url=https://en.wikipedia.org/wiki/" -"Nyquist%E2%80%93Shannon_sampling_theorem]теоремою вибірки Найквіста-Шеннона[/" -"url], немає жодної різниці в якості людського слуху, коли частота перевищує " -"40 000 Гц ( оскільки більшість людей можуть чути лише ~20 000 Гц, часто " -"менше). Якщо ви створюєте низькі звуки, як-от голоси, можна використовувати " -"нижчу частоту дискретизації, наприклад [code]32000[/code] або [code]22050[/" -"code] без втрати якості." +"[code]48000[/code]. \n" +"Згідно з [url=https://en.wikipedia.org/wiki/" +"Nyquist%E2%80%93Shannon_sampling_theorem]теоремою про вибірку Найквіста-" +"Шеннона[/url], якість людського слуху не змінюється при перевищенні 40 000 Гц " +"(оскільки більшість людей чують лише до ~20 000 Гц, часто менше). Якщо ви " +"створюєте низькі звуки, як-от голоси, можна використовувати нижчу частоту " +"дискретизації, наприклад [code]32000[/code] або [code]22050[/code] без втрати " +"якості. \n" +"[b]Примітка: [/b] [AudioStreamGenerator] не виконує автоматичну повторну " +"дискретизацію вхідних даних, щоб отримати очікуваний результат, [member " +"mix_rate_mode] має відповідати частоті дискретизації вхідних даних. \n" +"[b]Примітка.[/b] Якщо ви використовуєте [AudioEffectCapture] як джерело своїх " +"даних, установіть [member mix_rate_mode] на [constant MIX_RATE_INPUT] або " +"[constant MIX_RATE_OUTPUT], щоб автоматично відповідати поточній швидкості " +"змішування [AudioServer]." + +msgid "" +"Mixing rate mode. If set to [constant MIX_RATE_CUSTOM], [member mix_rate] is " +"used, otherwise current [AudioServer] mixing rate is used." +msgstr "" +"Швидкісний режим змішування. Якщо встановлено значення [constant " +"MIX_RATE_CUSTOM], використовується [member mix_rate], інакше використовується " +"поточна швидкість змішування [AudioServer]." + +msgid "Current [AudioServer] output mixing rate." +msgstr "Поточна швидкість змішування вихідного сигналу [AudioServer]." + +msgid "Current [AudioServer] input mixing rate." +msgstr "Поточна швидкість змішування вхідного сигналу [AudioServer]." + +msgid "Custom mixing rate, specified by [member mix_rate]." +msgstr "Спеціальна швидкість змішування, визначена [member mix_rate]." + +msgid "Maximum value for the mixing rate mode enum." +msgstr "Максимальне значення для режиму швидкості змішування enum." msgid "Plays back audio generated using [AudioStreamGenerator]." msgstr "Відтворює звук, створений за допомогою [AudioStreamGenerator]." @@ -14500,6 +18861,27 @@ msgstr "" "ніж [method push_buffer] у C# та скомпільованих мовах через GDExtension, але " "[method push_frame] може бути [i]більш ефективним[/i] у GDScript." +msgid "" +"This is an audio stream that can playback music interactively, combining " +"clips and a transition table. Clips must be added first, and then the " +"transition rules via the [method add_transition]. Additionally, this stream " +"exports a property parameter to control the playback via [AudioStreamPlayer], " +"[AudioStreamPlayer2D], or [AudioStreamPlayer3D].\n" +"The way this is used is by filling a number of clips, then configuring the " +"transition table. From there, clips are selected for playback and the music " +"will smoothly go from the current to the new one while using the " +"corresponding transition rule defined in the transition table." +msgstr "" +"Це аудіопотік, який може відтворювати музику в інтерактивному режимі, " +"поєднуючи кліпи та таблицю переходів. Спершу потрібно додати кліпи, а правила " +"переходу — через [метод add_transition]. Крім того, цей потік експортує " +"параметр властивості для керування відтворенням через [AudioStreamPlayer], " +"[AudioStreamPlayer2D] або [AudioStreamPlayer3D].\n" +" Це використовується шляхом заповнення кількох кліпів, а потім налаштування " +"таблиці переходів. Звідти кліпи вибираються для відтворення, а музика плавно " +"переходитиме від поточного до нового, використовуючи відповідне правило " +"переходу, визначене в таблиці переходів." + msgid "" "Add a transition between two clips. Provide the indices of the source and " "destination clips, or use the [constant CLIP_ANY] constant to indicate that " @@ -14592,6 +18974,13 @@ msgstr "" "Повертає часову позицію призначення для переходу (див. [метод " "add_transition])." +msgid "" +"Returns [code]true[/code] if a given transition exists (was added via [method " +"add_transition])." +msgstr "" +"Повертає [code]true[/code], якщо певний перехід існує (був доданий через " +"[метод add_transition])." + msgid "" "Return whether a transition uses the [i]hold previous[/i] functionality (see " "[method add_transition])." @@ -14734,6 +19123,35 @@ msgstr "Демонстрація запису аудіо з мікрофона" msgid "MP3 audio stream driver." msgstr "Драйвер аудіопотоку mp3." +msgid "" +"MP3 audio stream driver. See [member data] if you want to load an MP3 file at " +"run-time.\n" +"[b]Note:[/b] This class can optionally support legacy MP1 and MP2 formats, " +"provided that the engine is compiled with the " +"[code]minimp3_extra_formats=yes[/code] SCons option. These extra formats are " +"not enabled by default." +msgstr "" +"Драйвер аудіопотоку mp3. Перегляньте [дані про учасника], якщо ви хочете " +"завантажити файл MP3 під час виконання. \n" +"[b]Примітка: [/b] Цей клас може додатково підтримувати застарілі формати MP1 " +"і MP2 за умови, що механізм скомпільовано з опцією " +"[code]minimp3_extra_formats=yes[/code] SCons. Ці додаткові формати не " +"ввімкнено за умовчанням." + +msgid "" +"Creates a new [AudioStreamMP3] instance from the given buffer. The buffer " +"must contain MP3 data." +msgstr "" +"Створює новий екземпляр [AudioStreamMP3] із заданого буфера. Буфер повинен " +"містити дані MP3." + +msgid "" +"Creates a new [AudioStreamMP3] instance from the given file path. The file " +"must be in MP3 format." +msgstr "" +"Створює новий екземпляр [AudioStreamMP3] із указаного шляху до файлу. Файл " +"має бути у форматі MP3." + msgid "" "Contains the audio data in bytes.\n" "You can load a file without having to import it beforehand using the code " @@ -14763,22 +19181,21 @@ msgstr "" "наведений нижче фрагмент коду. Майте на увазі, що цей фрагмент завантажує " "весь файл у пам’ять і може бути не ідеальним для великих файлів (сотні " "мегабайт або більше).\n" -" [кодові блоки]\n" +" [codeblock]\n" " [gdscript]\n" " func load_mp3(шлях):\n" -" var file = FileAccess.open(шлях, FileAccess.READ)\n" +" var file = FileAccess.open(path, FileAccess.READ)\n" " var sound = AudioStreamMP3.new()\n" " sound.data = file.get_buffer(file.get_length())\n" -" повернення звуку\n" +" return sound\n" " [/gdscript]\n" " [csharp]\n" -" публічний AudioStreamMP3 LoadMP3(рядковий шлях)\n" +" public AudioStreamMP3 LoadMP3(string path)\n" " {\n" -" за допомогою var file = FileAccess.Open(path, FileAccess.ModeFlags." -"Read);\n" +" using var file = FileAccess.Open(path, FileAccess.ModeFlags.Read);\n" " var sound = new AudioStreamMP3();\n" " sound.Data = file.GetBuffer(file.GetLength());\n" -" повернення звуку;\n" +" return sound;\n" " }\n" " [/csharp]\n" " [/codeblocks]" @@ -14812,6 +19229,20 @@ msgstr "" msgid "Runtime file loading and saving" msgstr "Завантаження та збереження файлів під час виконання" +msgid "" +"Creates a new [AudioStreamOggVorbis] instance from the given buffer. The " +"buffer must contain Ogg Vorbis data." +msgstr "" +"Створює новий екземпляр [AudioStreamOggVorbis] із заданого буфера. Буфер має " +"містити дані Ogg Vorbis." + +msgid "" +"Creates a new [AudioStreamOggVorbis] instance from the given file path. The " +"file must be in Ogg Vorbis format." +msgstr "" +"Створює новий екземпляр [AudioStreamOggVorbis] із указаного шляху до файлу. " +"Файл має бути у форматі Ogg Vorbis." + msgid "" "If [code]true[/code], the audio will play again from the specified [member " "loop_offset] once it is done playing. Useful for ambient sounds and " @@ -14917,6 +19348,12 @@ msgstr "" "Плагіни редактора можуть використовувати цей метод, щоб \"тегувати\" поточну " "позицію вздовж аудіопотоку та відображати її у попередньому перегляді." +msgid "Returns the number of times the stream has looped." +msgstr "Повертає кількість циклів потоку." + +msgid "Returns the current position in the stream, in seconds." +msgstr "Повертає поточну позицію в потоці в секундах." + msgid "" "Returns the [AudioSamplePlayback] associated with this [AudioStreamPlayback] " "for playing back the audio sample of this stream." @@ -14924,6 +19361,27 @@ msgstr "" "Повертає [AudioSamplePlayback], пов’язаний із цим [AudioStreamPlayback] для " "відтворення зразка аудіо цього потоку." +msgid "Returns [code]true[/code] if the stream is playing." +msgstr "Повертає [code]true[/code], якщо потік відтворюється." + +msgid "" +"Mixes up to [param frames] of audio from the stream from the current " +"position, at a rate of [param rate_scale], advancing the stream.\n" +"Returns a [PackedVector2Array] where each element holds the left and right " +"channel volume levels of each frame.\n" +"[b]Note:[/b] Can return fewer frames than requested, make sure to use the " +"size of the return value." +msgstr "" +"Змішує до [param frames] аудіо з потоку з поточної позиції зі швидкістю " +"[param rate_scale], просуваючи потік вперед. \n" +"Повертає [PackedVector2Array], де кожен елемент містить рівні гучності лівого " +"та правого каналів кожного кадру. \n" +"[b]Примітка:[/b] може повернути менше кадрів, ніж запитувано, переконайтеся, " +"що використовуєте розмір поверненого значення." + +msgid "Seeks the stream at the given [param time], in seconds." +msgstr "Шукає потік у заданому [param time] у секундах." + msgid "" "Associates [AudioSamplePlayback] to this [AudioStreamPlayback] for playing " "back the audio sample of this stream." @@ -14931,6 +19389,12 @@ msgstr "" "Пов’язує [AudioSamplePlayback] із цим [AudioStreamPlayback] для відтворення " "зразка аудіо цього потоку." +msgid "Starts the stream from the given [param from_pos], in seconds." +msgstr "Початок потоку з указаного [param from_pos] за секунди." + +msgid "Stops the stream." +msgstr "Зупиняє потік." + msgid "Playback component of [AudioStreamInteractive]." msgstr "Компонент відтворення [AudioStreamInteractive]." @@ -14941,6 +19405,31 @@ msgstr "" "Компонент відтворення [AudioStreamInteractive]. Містить функції для зміни " "кліпу, який зараз відтворюється." +msgid "" +"Return the index of the currently playing clip. You can use this to get the " +"name of the currently playing clip with [method AudioStreamInteractive." +"get_clip_name].\n" +"[b]Example:[/b] Get the currently playing clip name from inside an " +"[AudioStreamPlayer] node.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var playing_clip_name = stream.get_clip_name(get_stream_playback()." +"get_current_clip_index())\n" +"[/gdscript]\n" +"[/codeblocks]" +msgstr "" +"Повертає індекс поточного кліпу. Ви можете використовувати це, щоб отримати " +"назву кліпу, який зараз відтворюється, за допомогою [методу " +"AudioStreamInteractive.get_clip_name]. \n" +"[b]Приклад:[/b] Отримайте назву кліпу, який зараз відтворюється, із вузла " +"[AudioStreamPlayer]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var playing_clip_name = stream.get_clip_name(get_stream_playback()." +"get_current_clip_index()) \n" +"[/gdscript] \n" +"[/codeblocks]" + msgid "Switch to a clip (by index)." msgstr "Перейти до кліпу (за індексом)." @@ -14968,6 +19457,15 @@ msgstr "" "[method AudioStreamPlayer2D.get_stream_playback] або [method Методи " "AudioStreamPlayer3D.get_stream_playback]." +msgid "" +"Returns [code]true[/code] if the stream associated with the given integer ID " +"is still playing. Check [method play_stream] for information on when this ID " +"becomes invalid." +msgstr "" +"Повертає [code]true[/code], якщо потік, пов’язаний із вказаним цілим " +"ідентифікатором, усе ще відтворюється. Перевірте [метод play_stream], щоб " +"дізнатися, коли цей ідентифікатор стає недійсним." + msgid "" "Play an [AudioStream] at a given offset, volume, pitch scale, playback type, " "and bus. Playback starts immediately.\n" @@ -15040,6 +19538,25 @@ msgstr "" " Якщо вам потрібно відтворити аудіо в певній позиції, замість цього " "використовуйте [AudioStreamPlayer2D] або [AudioStreamPlayer3D]." +msgid "" +"Returns the position in the [AudioStream] of the latest sound, in seconds. " +"Returns [code]0.0[/code] if no sounds are playing.\n" +"[b]Note:[/b] The position is not always accurate, as the [AudioServer] does " +"not mix audio every processed frame. To get more accurate results, add " +"[method AudioServer.get_time_since_last_mix] to the returned position.\n" +"[b]Note:[/b] This method always returns [code]0.0[/code] if the [member " +"stream] is an [AudioStreamInteractive], since it can have multiple clips " +"playing at once." +msgstr "" +"Повертає позицію в [AudioStream] останнього звуку в секундах. Повертає " +"[code]0.0[/code], якщо звуки не відтворюються. \n" +"[b]Примітка: [/b] Позиція не завжди точна, оскільки [AudioServer] не змішує " +"аудіо в кожному обробленому кадрі. Щоб отримати точніші результати, додайте " +"[метод AudioServer.get_time_since_last_mix] до повернутої позиції. \n" +"[b]Примітка.[/b] Цей метод завжди повертає [code]0.0[/code], якщо [потік " +"учасників] є [AudioStreamInteractive], оскільки він може одночасно " +"відтворювати кілька кліпів." + msgid "" "Returns the latest [AudioStreamPlayback] of this node, usually the most " "recently created by [method play]. If no sounds are playing, this method " @@ -15150,6 +19667,33 @@ msgstr "" "дерева або входу в нього, або цей вузол призупинено (див. [member Node." "process_mode])." +msgid "" +"Volume of sound, in decibels. This is an offset of the [member stream]'s " +"volume.\n" +"[b]Note:[/b] To convert between decibel and linear energy (like most volume " +"sliders do), use [member volume_linear], or [method @GlobalScope." +"db_to_linear] and [method @GlobalScope.linear_to_db]." +msgstr "" +"Гучність звуку, в децибелах. Це зміщення обсягу [потік учасників]. \n" +"[b]Примітка.[/b] Для перетворення між децибелами та лінійною енергією (як це " +"робить більшість повзунків гучності), використовуйте [member volume_linear] " +"або [method @GlobalScope.db_to_linear] і [method @GlobalScope.linear_to_db]." + +msgid "" +"Volume of sound, as a linear value.\n" +"[b]Note:[/b] This member modifies [member volume_db] for convenience. The " +"returned value is equivalent to the result of [method @GlobalScope." +"db_to_linear] on [member volume_db]. Setting this member is equivalent to " +"setting [member volume_db] to the result of [method @GlobalScope." +"linear_to_db] on a value." +msgstr "" +"Гучність звуку, як лінійна величина. \n" +"[b]Примітка:[/b] цей учасник змінює [member volume_db] для зручності. " +"Повернене значення еквівалентно результату [method @GlobalScope.db_to_linear] " +"на [member volume_db]. Налаштування цього члена еквівалентно встановленню " +"[member volume_db] для результату [method @GlobalScope.linear_to_db] для " +"значення." + msgid "" "Emitted when a sound finishes playing without interruptions. This signal is " "[i]not[/i] emitted when calling [method stop], or when exiting the tree while " @@ -15303,6 +19847,24 @@ msgstr "" "Якщо [code]true[/code], відтворення буде призупинено. Ви можете відновити " "його, встановивши для [member stream_paused] значення [code]false[/code]." +msgid "Base volume before attenuation, in decibels." +msgstr "Базова гучність до ослаблення, в децибелах." + +msgid "" +"Base volume before attenuation, as a linear value.\n" +"[b]Note:[/b] This member modifies [member volume_db] for convenience. The " +"returned value is equivalent to the result of [method @GlobalScope." +"db_to_linear] on [member volume_db]. Setting this member is equivalent to " +"setting [member volume_db] to the result of [method @GlobalScope." +"linear_to_db] on a value." +msgstr "" +"Базовий об’єм до ослаблення, як лінійне значення. \n" +"[b]Примітка:[/b] цей учасник змінює [member volume_db] для зручності. " +"Повернене значення еквівалентно результату [method @GlobalScope.db_to_linear] " +"на [member volume_db]. Налаштування цього члена еквівалентно встановленню " +"[member volume_db] для результату [method @GlobalScope.linear_to_db] для " +"значення." + msgid "Emitted when the audio stops playing." msgstr "Видається, коли звук припиняється." @@ -15466,6 +20028,21 @@ msgstr "" msgid "The base sound level before attenuation, in decibels." msgstr "Базовий рівень звуку до загасання, в децибелах." +msgid "" +"The base sound level before attenuation, as a linear value.\n" +"[b]Note:[/b] This member modifies [member volume_db] for convenience. The " +"returned value is equivalent to the result of [method @GlobalScope." +"db_to_linear] on [member volume_db]. Setting this member is equivalent to " +"setting [member volume_db] to the result of [method @GlobalScope." +"linear_to_db] on a value." +msgstr "" +"Базовий рівень звуку до загасання, як лінійне значення. \n" +"[b]Примітка:[/b] цей учасник змінює [member volume_db] для зручності. " +"Повернене значення еквівалентно результату [method @GlobalScope.db_to_linear] " +"на [member volume_db]. Налаштування цього члена еквівалентно встановленню " +"[member volume_db] для результату [method @GlobalScope.linear_to_db] для " +"значення." + msgid "Attenuation of loudness according to linear distance." msgstr "Зниження гучності відповідно до лінійної відстані." @@ -15676,6 +20253,17 @@ msgid "" msgstr "" "Потік, який можна оснастити допотоками, які відтворюватимуться синхронно." +msgid "" +"This is a stream that can be fitted with sub-streams, which will be played in-" +"sync. The streams begin at exactly the same time when play is pressed, and " +"will end when the last of them ends. If one of the sub-streams loops, then " +"playback will continue." +msgstr "" +"Це потік, який можна оснастити допотоками, які відтворюватимуться синхронно. " +"Потоки починаються точно в той самий час, коли натиснуто кнопку відтворення, " +"і закінчуються, коли закінчується остання з них. Якщо один із підпотоків " +"зациклюється, відтворення продовжиться." + msgid "Get one of the synchronized streams, by index." msgstr "Отримайте один із синхронізованих потоків за індексом." @@ -15714,9 +20302,102 @@ msgstr "" "аудіоданих PCM. Дивіться також [AudioStreamGenerator] для процедурної " "генерації аудіо." +msgid "" +"Creates a new [AudioStreamWAV] instance from the given buffer. The buffer " +"must contain WAV data.\n" +"The keys and values of [param options] match the properties of " +"[ResourceImporterWAV]. The usage of [param options] is identical to [method " +"AudioStreamWAV.load_from_file]." +msgstr "" +"Створює новий екземпляр [AudioStreamWAV] із заданого буфера. Буфер повинен " +"містити дані WAV. \n" +"Ключі та значення [param options] відповідають властивостям " +"[ResourceImporterWAV]. Використання [param options] ідентично [method " +"AudioStreamWAV.load_from_file]." + +msgid "" +"Creates a new [AudioStreamWAV] instance from the given file path. The file " +"must be in WAV format.\n" +"The keys and values of [param options] match the properties of " +"[ResourceImporterWAV].\n" +"[b]Example:[/b] Load the first file dropped as a WAV and play it:\n" +"[codeblock]\n" +"@onready var audio_player = $AudioStreamPlayer\n" +"\n" +"func _ready():\n" +" get_window().files_dropped.connect(_on_files_dropped)\n" +"\n" +"func _on_files_dropped(files):\n" +" if files[0].get_extension() == \"wav\":\n" +" audio_player.stream = AudioStreamWAV.load_from_file(files[0], {\n" +" \"force/max_rate\": true,\n" +" \"force/max_rate_hz\": 11025\n" +" })\n" +" audio_player.play()\n" +"[/codeblock]" +msgstr "" +"Створює новий екземпляр [AudioStreamWAV] із указаного шляху до файлу. Файл " +"має бути у форматі WAV. \n" +"Ключі та значення [param options] відповідають властивостям " +"[ResourceImporterWAV]. \n" +"[b]Приклад:[/b] Завантажте перший вилучений файл як WAV і відтворіть його: \n" +"[codeblock] \n" +"@onready var audio_player = $AudioStreamPlayer \n" +"\n" +"func _ready(): \n" +" get_window().files_dropped.connect(_on_files_dropped) \n" +"\n" +"func _on_files_dropped(файли): \n" +" if files[0].get_extension() == \"wav\": \n" +" audio_player.stream = AudioStreamWAV.load_from_file(файли[0], { \n" +" \"force/max_rate\": правда, \n" +" \"force/max_rate_hz\": 11025 \n" +" }) \n" +" audio_player.play() \n" +"[/codeblock]" + +msgid "" +"Saves the AudioStreamWAV as a WAV file to [param path]. Samples with IMA " +"ADPCM or Quite OK Audio formats can't be saved.\n" +"[b]Note:[/b] A [code].wav[/code] extension is automatically appended to " +"[param path] if it is missing." +msgstr "" +"Зберігає AudioStreamWAV як файл WAV у [param path]. Зразки з форматами IMA " +"ADPCM або Quite OK Audio не можна зберегти. \n" +"[b]Примітка.[/b] Розширення [code].wav[/code] автоматично додається до [param " +"path], якщо воно відсутнє." + +msgid "" +"Contains the audio data in bytes.\n" +"[b]Note:[/b] If [member format] is set to [constant FORMAT_8_BITS], this " +"property expects signed 8-bit PCM data. To convert from unsigned 8-bit PCM, " +"subtract 128 from each byte.\n" +"[b]Note:[/b] If [member format] is set to [constant FORMAT_QOA], this " +"property expects data from a full QOA file." +msgstr "" +"Містить аудіодані в байтах. \n" +"[b]Примітка.[/b] Якщо [формат елемента] встановлено на [константа " +"FORMAT_8_BITS], ця властивість очікує 8-розрядних даних PCM зі знаком. Щоб " +"конвертувати з беззнакового 8-бітного PCM, відніміть 128 від кожного байта. \n" +"[b]Примітка.[/b] Якщо для параметра [member format] встановлено значення " +"[constant FORMAT_QOA], ця властивість очікує даних із повного файлу QOA." + msgid "Audio format. See [enum Format] constants for values." msgstr "Формат аудіо. Для значень дивіться константи [enum Format]." +msgid "" +"The loop start point (in number of samples, relative to the beginning of the " +"stream)." +msgstr "Точка початку циклу (у кількості зразків відносно початку потоку)." + +msgid "" +"The loop end point (in number of samples, relative to the beginning of the " +"stream)." +msgstr "Кінцева точка циклу (у кількості вибірок відносно початку потоку)." + +msgid "The loop mode. See [enum LoopMode] constants for values." +msgstr "Режим циклу. Дивіться константи [enum LoopMode] для значень." + msgid "" "The sample rate for mixing this audio. Higher values require more storage " "space, but result in better quality.\n" @@ -15747,6 +20428,22 @@ msgstr "" msgid "If [code]true[/code], audio is stereo." msgstr "Якщо [code]true[/code], звук стерео." +msgid "8-bit PCM audio codec." +msgstr "8-бітний аудіокодек PCM." + +msgid "16-bit PCM audio codec." +msgstr "16-бітний аудіокодек PCM." + +msgid "Audio is lossily compressed as IMA ADPCM." +msgstr "Аудіо стискається із втратами як IMA ADPCM." + +msgid "" +"Audio is lossily compressed as [url=https://qoaformat.org/]Quite OK Audio[/" +"url]." +msgstr "" +"Аудіо стискається із втратами, як [url=https://qoaformat.org/]Quite OK Audio[/" +"url]." + msgid "Audio does not loop." msgstr "Аудіо не зациклюється." @@ -15800,6 +20497,9 @@ msgstr "" "[i]побратими[/i] до вузла [BackBufferCopy] замість того, щоб додавати їх як " "дочірні." +msgid "Screen-reading shaders" +msgstr "Шейдери для читання з екрана" + msgid "Buffer mode. See [enum CopyMode] constants." msgstr "Буферний режим. Перегляньте константи [enum CopyMode]." @@ -15905,6 +20605,21 @@ msgstr "" " Щоб дозволити клацання як лівою, так і правою кнопкою миші, використовуйте " "[code]MOUSE_BUTTON_MASK_LEFT | MOUSE_BUTTON_MASK_RIGHT[/code]." +msgid "" +"If [code]true[/code], the button's state is pressed. Means the button is " +"pressed down or toggled (if [member toggle_mode] is active). Only works if " +"[member toggle_mode] is [code]true[/code].\n" +"[b]Note:[/b] Changing the value of [member button_pressed] will result in " +"[signal toggled] to be emitted. If you want to change the pressed state " +"without emitting that signal, use [method set_pressed_no_signal]." +msgstr "" +"Якщо [code]true[/code], кнопка натиснута. Означає, що кнопку натиснуто або " +"перемикається (якщо [member toggle_mode] активний). Працює, лише якщо [member " +"toggle_mode] має значення [code]true[/code]. \n" +"[b]Примітка:[/b] Зміна значення [member button_pressed] призведе до " +"випромінювання [signal toggled]. Якщо ви хочете змінити натиснутий стан без " +"випромінювання цього сигналу, використовуйте [метод set_pressed_no_signal]." + msgid "" "If [code]true[/code], the button is in disabled state and can't be clicked or " "toggled." @@ -15939,6 +20654,17 @@ msgstr "" "значення [code]false[/code], ярлик активується без візуального зворотного " "зв’язку." +msgid "" +"If [code]true[/code], the button will add information about its shortcut in " +"the tooltip.\n" +"[b]Note:[/b] This property does nothing when the tooltip control is " +"customized using [method Control._make_custom_tooltip]." +msgstr "" +"Якщо [code]true[/code], кнопка додасть інформацію про свій ярлик у спливаючу " +"підказку. \n" +"[b]Примітка.[/b] Ця властивість нічого не робить, якщо елемент керування " +"підказкою налаштовано за допомогою [метод Control._make_custom_tooltip]." + msgid "" "If [code]true[/code], the button is in toggle mode. Makes the button flip " "state between pressed and unpressed each time its area is clicked." @@ -16158,6 +20884,26 @@ msgstr "" "anisotropy_flowmap], якщо там визначено текстуру, і текстура містить альфа-" "канал." +msgid "" +"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of " +"the specular blob and aligns it to tangent space. This is useful for brushed " +"aluminum and hair reflections.\n" +"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh " +"does not contain tangents, the anisotropy effect will appear broken.\n" +"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic " +"texture filtering, which can be enabled by setting [member texture_filter] to " +"[constant TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC]." +msgstr "" +"Якщо [code]true[/code], анізотропія ввімкнена. Анізотропія змінює форму " +"дзеркальної плями та вирівнює її до дотичного простору. Це корисно для " +"шліфованого алюмінію та відблисків волосся. \n" +"[b]Примітка.[/b] Дотичні до сітки потрібні для роботи анізотропії. Якщо сітка " +"не містить дотичних, ефект анізотропії буде виглядати порушеним. \n" +"[b]Примітка.[/b] Анізотропію матеріалу не слід плутати з фільтрацією " +"анізотропної текстури, яку можна ввімкнути, установивши для [member " +"texture_filter] значення [константа " +"TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC]." + msgid "" "Texture that offsets the tangent map for anisotropy calculations and " "optionally controls the anisotropy effect (if an alpha channel is present). " @@ -16259,6 +21005,19 @@ msgstr "" "втрачається масштаб при білборді. Застосовується, лише коли [member " "billboard_mode] не [constant BILLBOARD_DISABLED]." +msgid "" +"Controls how the object faces the camera. See [enum BillboardMode].\n" +"[b]Note:[/b] Billboard mode is not suitable for VR because the left-right " +"vector of the camera is not horizontal when the screen is attached to your " +"head instead of on the table. See [url=https://github.com/godotengine/godot/" +"issues/41567]GitHub issue #41567[/url] for details." +msgstr "" +"Контролює, як об’єкт дивиться на камеру. Див. [enum BillboardMode]. \n" +"[b]Примітка.[/b] Режим Billboard не підходить для VR, оскільки вектор ліворуч-" +"праворуч камери не є горизонтальним, коли екран прикріплено до вашої голови, " +"а не до столу. Докладніше див. у [url=https://github.com/godotengine/godot/" +"issues/41567]проблемі GitHub №41567[/url]." + msgid "" "The material's blend mode.\n" "[b]Note:[/b] Values other than [code]Mix[/code] force the object into the " @@ -16504,7 +21263,7 @@ msgid "" "cull_mode] set to [constant CULL_FRONT]. See also [member grow_amount].\n" "[b]Note:[/b] Vertex growth cannot create new vertices, which means that " "visible gaps may occur in sharp corners. This can be alleviated by designing " -"the mesh to use smooth normals exclusively using [url=https://wiki.polycount." +"the mesh to use smooth normals exclusively using [url=http://wiki.polycount." "com/wiki/Face_weighted_normals]face weighted normals[/url] in the 3D " "authoring software. In this case, grow will be able to join every outline " "together, just like in the original mesh." @@ -16512,13 +21271,14 @@ msgstr "" "Якщо [code]true[/code], вмикає параметр зростання вершини. Це можна " "використовувати для створення контурів на основі сітки за допомогою другого " "проходу матеріалу та його [member cull_mode], встановленого на [constant " -"CULL_FRONT]. Дивіться також [member grow_amount].\n" -" [b]Примітка: [/b] Зростання вершин не може створювати нові вершини, а це " +"CULL_FRONT]. Дивіться також [member grow_amount]. \n" +"[b]Примітка: [/b] Зростання вершин не може створювати нові вершини, а це " "означає, що в гострих кутах можуть виникнути видимі розриви. Це можна " -"пом’якшити, спроектувавши сітку для використання гладких нормалей виключно за " -"допомогою [url=https://wiki.polycount.com/wiki/Face_weighted_normals]зважених " -"нормалей [/url] у програмному забезпеченні для створення 3D. У цьому випадку " -"grow зможе об’єднати кожен контур разом, як і в оригінальній сітці." +"пом’якшити, спроектувавши сітку для використання згладжених нормалей виключно " +"за допомогою [url=http://wiki.polycount.com/wiki/" +"Face_weighted_normals]зважених нормалей [/url] у програмному забезпеченні для " +"створення 3D. У цьому випадку grow зможе об’єднати кожен контур разом, як і в " +"оригінальній сітці." msgid "" "Grows object vertices in the direction of their normals. Only effective if " @@ -16869,6 +21629,19 @@ msgstr "" "Якщо [code]true[/code], ефект згасання близькості ввімкнено. Ефект зникання " "наближення зменшує кожен піксель залежно від його відстані до іншого об’єкта." +msgid "" +"If [code]true[/code], the refraction effect is enabled. Distorts transparency " +"based on light from behind the object.\n" +"[b]Note:[/b] Refraction is implemented using the screen texture. Only opaque " +"materials will appear in the refraction, since transparent materials do not " +"appear in the screen texture." +msgstr "" +"Якщо [code]true[/code], ефект заломлення ввімкнено. Спотворює прозорість на " +"основі світла позаду об’єкта. \n" +"[b]Примітка:[/b] Заломлення реалізовано за допомогою текстури екрана. Під час " +"заломлення відображатимуться лише непрозорі матеріали, оскільки прозорі " +"матеріали не з’являються у текстурі екрана." + msgid "The strength of the refraction effect." msgstr "Сила ефекту заломлення." @@ -16952,6 +21725,17 @@ msgstr "" "шорсткість у синьому, а навколишнє затемнення у зеленому, ви можете зменшити " "кількість використовуваних текстур." +msgid "" +"Sets whether the shading takes place, per-pixel, per-vertex or unshaded. Per-" +"vertex lighting is faster, making it the best choice for mobile applications, " +"however it looks considerably worse than per-pixel. Unshaded rendering is the " +"fastest, but disables all interactions with lights." +msgstr "" +"Встановлює, чи буде відбуватися затінення, піксельне, вершинне чи незатінене. " +"Вершинне освітлення швидше, що робить його найкращим вибором для мобільних " +"додатків, однак воно виглядає значно гірше, ніж попіксельне. Незатінене " +"рендеринг є найшвидшим, але вимикає всі взаємодії зі світлом." + msgid "" "If [code]true[/code], enables the \"shadow to opacity\" render mode where " "lighting modifies the alpha so shadowed areas are opaque and non-shadowed " @@ -17464,6 +22248,13 @@ msgid "" msgstr "" "Об’єкт буде затінено на піксель. Корисно для реалістичних ефектів затінення." +msgid "" +"The object will be shaded per vertex. Useful when you want cheaper shaders " +"and do not care about visual quality." +msgstr "" +"Об’єкт буде заштриховано для кожної вершини. Корисно, коли вам потрібні " +"дешевші шейдери, і вам не важлива візуальна якість." + msgid "Represents the size of the [enum ShadingMode] enum." msgstr "Представляє розмір переліку [enum ShadingMode]." @@ -17871,6 +22662,75 @@ msgstr "" msgid "A 3×3 matrix for representing 3D rotation and scale." msgstr "Матриця 3×3 для представлення тривимірного обертання та масштабу." +msgid "" +"The [Basis] built-in [Variant] type is a 3×3 [url=https://en.wikipedia.org/" +"wiki/Matrix_(mathematics)]matrix[/url] used to represent 3D rotation, scale, " +"and shear. It is frequently used within a [Transform3D].\n" +"A [Basis] is composed by 3 axis vectors, each representing a column of the " +"matrix: [member x], [member y], and [member z]. The length of each axis " +"([method Vector3.length]) influences the basis's scale, while the direction " +"of all axes influence the rotation. Usually, these axes are perpendicular to " +"one another. However, when you rotate any axis individually, the basis " +"becomes sheared. Applying a sheared basis to a 3D model will make the model " +"appear distorted.\n" +"A [Basis] is:\n" +"- [b]Orthogonal[/b] if its axes are perpendicular to each other.\n" +"- [b]Normalized[/b] if the length of every axis is [code]1.0[/code].\n" +"- [b]Uniform[/b] if all axes share the same length (see [method get_scale]).\n" +"- [b]Orthonormal[/b] if it is both orthogonal and normalized, which allows it " +"to only represent rotations (see [method orthonormalized]).\n" +"- [b]Conformal[/b] if it is both orthogonal and uniform, which ensures it is " +"not distorted.\n" +"For a general introduction, see the [url=$DOCS_URL/tutorials/math/" +"matrices_and_transforms.html]Matrices and transforms[/url] tutorial.\n" +"[b]Note:[/b] Godot uses a [url=https://en.wikipedia.org/wiki/Right-" +"hand_rule]right-handed coordinate system[/url], which is a common standard. " +"For directions, the convention for built-in types like [Camera3D] is for -Z " +"to point forward (+X is right, +Y is up, and +Z is back). Other objects may " +"use different direction conventions. For more information, see the " +"[url=$DOCS_URL/tutorials/assets_pipeline/importing_3d_scenes/" +"model_export_considerations.html#d-asset-direction-conventions]3D asset " +"direction conventions[/url] tutorial.\n" +"[b]Note:[/b] The basis matrices are exposed as [url=https://www.mindcontrol." +"org/~hplus/graphics/matrix-layout.html]column-major[/url] order, which is the " +"same as OpenGL. However, they are stored internally in row-major order, which " +"is the same as DirectX." +msgstr "" +"Вбудований тип [Basis] [Variant] — це [url=https://en.wikipedia.org/wiki/" +"Matrix_(mathematics)]матриця[/url] 3×3, яка використовується для " +"представлення тривимірного обертання, масштабу та зсуву. Він часто " +"використовується в [Transform3D]. \n" +"[Базис] складається з 3 осьових векторів, кожен з яких представляє стовпець " +"матриці: [член x], [член y] і [член z]. Довжина кожної осі ([method Vector3." +"length]) впливає на масштаб основи, тоді як напрямок усіх осей впливає на " +"поворот. Зазвичай ці осі перпендикулярні одна одній. Однак, коли ви обертаєте " +"будь-яку вісь окремо, основа стає зрізаною. Застосування зрізаної основи до " +"3D-моделі змусить модель виглядати спотвореною. \n" +"[Основа] це: \n" +"- [b]Ортогональний[/b], якщо його осі перпендикулярні одна одній. \n" +"- [b]Нормалізовано[/b], якщо довжина кожної осі дорівнює [code]1,0[/code]. \n" +"- [b]Однакова [/b], якщо всі осі мають однакову довжину (див. [метод " +"get_scale]). \n" +"- [b]Ортонормальний[/b], якщо він одночасно ортогональний і нормалізований, " +"що дозволяє йому представляти лише обертання (див. [method " +"orthonormalized]). \n" +"- [b]Конформний[/b], якщо він одночасно ортогональний і рівномірний, що " +"гарантує його відсутність спотворень. \n" +"Щоб отримати загальні відомості, перегляньте посібник [url=$DOCS_URL/" +"tutorials/math/matrices_and_transforms.html]Матриці та перетворення[/url]. \n" +"[b]Примітка: [/b] Годо використовує [url=https://en.wikipedia.org/wiki/Right-" +"hand_rule]правосторонню систему координат[/url], яка є загальним стандартом. " +"Для напрямків угода для вбудованих типів, як-от [Camera3D], полягає в тому, " +"що -Z вказує вперед (+X — праворуч, +Y — вгору, а +Z — назад). Інші об’єкти " +"можуть використовувати інші умовні позначення напрямку. Щоб отримати " +"додаткові відомості, перегляньте навчальний посібник [url=$DOCS_URL/tutorials/" +"assets_pipeline/importing_3d_scenes/model_export_considerations.html#d-asset-" +"direction-conventions]Умови щодо напрямків 3D-активів[/url]. \n" +"[b]Примітка.[/b] Основні матриці представлені як [url=https://www.mindcontrol." +"org/~hplus/graphics/matrix-layout.html]головний-стовпець[/url] порядок, який " +"є таким самим, як і OpenGL. Однак вони зберігаються всередині в порядку " +"старших рядків, що є таким же, як і DirectX." + msgid "Matrices and transforms" msgstr "Матриці та перетворення" @@ -17883,6 +22743,15 @@ msgstr "Демонстраційне перетворення матриці" msgid "2.5D Game Demo" msgstr "Демонстрація гри 2.5D" +msgid "" +"Constructs a [Basis] identical to [constant IDENTITY].\n" +"[b]Note:[/b] In C#, this constructs a [Basis] with all of its components set " +"to [constant Vector3.ZERO]." +msgstr "" +"Створює [Basis], ідентичний [constant IDENTITY].\n" +"[b]Примітка:[/b] у C# це створює [Basis] з усіма його компонентами, " +"встановленими на [constant Vector3.ZERO]." + msgid "Constructs a [Basis] as a copy of the given [Basis]." msgstr "Створює [Basis] як копію даного [Basis]." @@ -17917,6 +22786,243 @@ msgid "" "matrix." msgstr "Будує [Базис] із 3-х осьових векторів. Це стовпці базисної матриці." +msgid "" +"Returns the [url=https://en.wikipedia.org/wiki/Determinant]determinant[/url] " +"of this basis's matrix. For advanced math, this number can be used to " +"determine a few attributes:\n" +"- If the determinant is exactly [code]0.0[/code], the basis is not invertible " +"(see [method inverse]).\n" +"- If the determinant is a negative number, the basis represents a negative " +"scale.\n" +"[b]Note:[/b] If the basis's scale is the same for every axis, its determinant " +"is always that scale by the power of 2." +msgstr "" +"Повертає [url=https://en.wikipedia.org/wiki/Determinant]визначник[/url] цієї " +"базисної матриці. Для поглибленої математики це число можна використовувати " +"для визначення кількох атрибутів: \n" +"- Якщо визначник дорівнює точно [code]0.0[/code], базис не є оборотним (див. " +"[method inverse]). \n" +"- Якщо визначник є від'ємним числом, основа представляє від'ємну шкалу. \n" +"[b]Примітка:[/b] Якщо масштаб базису однаковий для кожної осі, його " +"визначником завжди буде цей масштаб у ступені 2." + +msgid "" +"Constructs a new [Basis] that only represents rotation from the given " +"[Vector3] of [url=https://en.wikipedia.org/wiki/Euler_angles]Euler angles[/" +"url], in radians.\n" +"- The [member Vector3.x] should contain the angle around the [member x] axis " +"(pitch);\n" +"- The [member Vector3.y] should contain the angle around the [member y] axis " +"(yaw);\n" +"- The [member Vector3.z] should contain the angle around the [member z] axis " +"(roll).\n" +"[codeblocks]\n" +"[gdscript]\n" +"# Creates a Basis whose z axis points down.\n" +"var my_basis = Basis.from_euler(Vector3(TAU / 4, 0, 0))\n" +"\n" +"print(my_basis.z) # Prints (0.0, -1.0, 0.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"// Creates a Basis whose z axis points down.\n" +"var myBasis = Basis.FromEuler(new Vector3(Mathf.Tau / 4.0f, 0.0f, 0.0f));\n" +"\n" +"GD.Print(myBasis.Z); // Prints (0, -1, 0)\n" +"[/csharp]\n" +"[/codeblocks]\n" +"The order of each consecutive rotation can be changed with [param order] (see " +"[enum EulerOrder] constants). By default, the YXZ convention is used " +"([constant EULER_ORDER_YXZ]): the basis rotates first around the Y axis " +"(yaw), then X (pitch), and lastly Z (roll). When using the opposite method " +"[method get_euler], this order is reversed." +msgstr "" +"Створює новий [Basis], який представляє лише обертання від заданого [Vector3] " +"[url=https://en.wikipedia.org/wiki/Euler_angles]кутів Ейлера[/url] у " +"радіанах. \n" +"- [член Vector3.x] має містити кут навколо осі [член x] (крок); \n" +"- [член Vector3.y] має містити кут навколо осі [члена y] (yaw); \n" +"- [член Vector3.z] має містити кут навколо осі [члена z] (крен). \n" +"[codeblocks] \n" +"[gdscript] \n" +"# Створює основу, вісь z якої спрямована вниз. \n" +"var my_basis = Basis.from_euler(Vector3(TAU / 4, 0, 0)) \n" +"\n" +"print(my_basis.z) # Друк (0.0, -1.0, 0.0) \n" +"[/gdscript] \n" +"[csharp] \n" +"// Створює основу, вісь z якої спрямована вниз. \n" +"var myBasis = Basis.FromEuler(new Vector3(Mathf.Tau / 4.0f, 0.0f, 0.0f)); \n" +"\n" +"GD.Print(myBasis.Z); // Виводить (0, -1, 0) \n" +"[/csharp] \n" +"[/codeblocks] \n" +"Порядок кожного послідовного обертання можна змінити за допомогою [param " +"order] (див. [enum EulerOrder] константи). За замовчуванням використовується " +"конвенція YXZ ([константа EULER_ORDER_YXZ]): основа обертається спочатку " +"навколо осі Y (поворот), потім X (нахил) і, нарешті, Z (крен). При " +"використанні протилежного методу [method get_euler] цей порядок змінюється на " +"протилежний." + +msgid "" +"Constructs a new [Basis] that only represents scale, with no rotation or " +"shear, from the given [param scale] vector.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var my_basis = Basis.from_scale(Vector3(2, 4, 8))\n" +"\n" +"print(my_basis.x) # Prints (2.0, 0.0, 0.0)\n" +"print(my_basis.y) # Prints (0.0, 4.0, 0.0)\n" +"print(my_basis.z) # Prints (0.0, 0.0, 8.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"var myBasis = Basis.FromScale(new Vector3(2.0f, 4.0f, 8.0f));\n" +"\n" +"GD.Print(myBasis.X); // Prints (2, 0, 0)\n" +"GD.Print(myBasis.Y); // Prints (0, 4, 0)\n" +"GD.Print(myBasis.Z); // Prints (0, 0, 8)\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] In linear algebra, the matrix of this basis is also known as a " +"[url=https://en.wikipedia.org/wiki/Diagonal_matrix]diagonal matrix[/url]." +msgstr "" +"Створює новий [Basis], який представляє лише масштаб, без обертання чи зсуву, " +"із заданого вектора [param scale].\n" +" [codeblocks]\n" +" [gdscript]\n" +" var my_basis = Basis.from_scale(Vector3(2, 4, 8))\n" +"\n" +" print(my_basis.x) # Виводить (2, 0, 0).\n" +" print(my_basis.y) # Виводить (0, 4, 0).\n" +" print(my_basis.z) # Виводить (0, 0, 8).\n" +" [/gdscript]\n" +" [csharp]\n" +" var myBasis = Basis.FromScale(new Vector3(2.0f, 4.0f, 8.0f));\n" +"\n" +" GD.Print(myBasis.X); // Виводить (2, 0, 0).\n" +" GD.Print(myBasis.Y); // Виводить (0, 4, 0).\n" +" GD.Print(myBasis.Z); // Виводить (0, 0, 8).\n" +" [/csharp]\n" +" [/codeblocks]\n" +" [b]Примітка.[/b] У лінійній алгебрі матриця цього базису також відома як " +"[url=https://en.wikipedia.org/wiki/Diagonal_matrix]діагональна матриця[/url]." + +msgid "" +"Returns this basis's rotation as a [Vector3] of [url=https://en.wikipedia.org/" +"wiki/Euler_angles]Euler angles[/url], in radians. For the returned value:\n" +"- The [member Vector3.x] contains the angle around the [member x] axis " +"(pitch);\n" +"- The [member Vector3.y] contains the angle around the [member y] axis " +"(yaw);\n" +"- The [member Vector3.z] contains the angle around the [member z] axis " +"(roll).\n" +"The order of each consecutive rotation can be changed with [param order] (see " +"[enum EulerOrder] constants). By default, the YXZ convention is used " +"([constant EULER_ORDER_YXZ]): Z (roll) is calculated first, then X (pitch), " +"and lastly Y (yaw). When using the opposite method [method from_euler], this " +"order is reversed.\n" +"[b]Note:[/b] For this method to return correctly, the basis needs to be " +"[i]orthonormal[/i] (see [method orthonormalized]).\n" +"[b]Note:[/b] Euler angles are much more intuitive but are not suitable for 3D " +"math. Because of this, consider using the [method get_rotation_quaternion] " +"method instead, which returns a [Quaternion].\n" +"[b]Note:[/b] In the Inspector dock, a basis's rotation is often displayed in " +"Euler angles (in degrees), as is the case with the [member Node3D.rotation] " +"property." +msgstr "" +"Повертає обертання бази як [Вектор3] [url=https://en.wikipedia.org/wiki/" +"Euler_angles]кутів Ейлера[/url] у радіанах. Для поверненого значення: \n" +"- [член Vector3.x] містить кут навколо осі [член х] (крок); \n" +"- [член Vector3.y] містить кут навколо осі [члена y] (yaw); \n" +"- [член Vector3.z] містить кут навколо осі [члена z] (крен). \n" +"Порядок кожного послідовного обертання можна змінити за допомогою [param " +"order] (див. [enum EulerOrder] константи). За замовчуванням використовується " +"конвенція YXZ ([константа EULER_ORDER_YXZ]): спочатку обчислюється Z (крен), " +"потім X (нахил) і нарешті Y (рискання). При використанні протилежного методу " +"[method from_euler] цей порядок змінюється на зворотний. \n" +"[b]Примітка:[/b] Щоб цей метод повертав правильно, базис має бути " +"[i]ортонормованим[/i] (див. [method orthonormalized]). \n" +"[b]Примітка: [/b] Кути Ейлера набагато інтуїтивніші, але не підходять для 3D-" +"математики. Через це краще використовувати метод [method " +"get_rotation_quaternion], який повертає [Quaternion]. \n" +"[b]Примітка:[/b] у доці Inspector обертання основи часто відображається в " +"кутах Ейлера (у градусах), як у випадку з властивістю [member Node3D." +"rotation]." + +msgid "" +"Returns this basis's rotation as a [Quaternion].\n" +"[b]Note:[/b] Quaternions are much more suitable for 3D math but are less " +"intuitive. For user interfaces, consider using the [method get_euler] method, " +"which returns Euler angles." +msgstr "" +"Повертає обертання бази як [кватерніон].\n" +" [b]Примітка:[/b] Кватеніони набагато більше підходять для 3D-математики, але " +"менш інтуїтивно зрозумілі. Для інтерфейсів користувача розгляньте можливість " +"використання методу [method get_euler], який повертає кути Ейлера." + +msgid "" +"Returns the length of each axis of this basis, as a [Vector3]. If the basis " +"is not sheared, this value is the scaling factor. It is not affected by " +"rotation.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var my_basis = Basis(\n" +" Vector3(2, 0, 0),\n" +" Vector3(0, 4, 0),\n" +" Vector3(0, 0, 8)\n" +")\n" +"# Rotating the Basis in any way preserves its scale.\n" +"my_basis = my_basis.rotated(Vector3.UP, TAU / 2)\n" +"my_basis = my_basis.rotated(Vector3.RIGHT, TAU / 4)\n" +"\n" +"print(my_basis.get_scale()) # Prints (2.0, 4.0, 8.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"var myBasis = new Basis(\n" +" Vector3(2.0f, 0.0f, 0.0f),\n" +" Vector3(0.0f, 4.0f, 0.0f),\n" +" Vector3(0.0f, 0.0f, 8.0f)\n" +");\n" +"// Rotating the Basis in any way preserves its scale.\n" +"myBasis = myBasis.Rotated(Vector3.Up, Mathf.Tau / 2.0f);\n" +"myBasis = myBasis.Rotated(Vector3.Right, Mathf.Tau / 4.0f);\n" +"\n" +"GD.Print(myBasis.Scale); // Prints (2, 4, 8)\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] If the value returned by [method determinant] is negative, the " +"scale is also negative." +msgstr "" +"Повертає довжину кожної осі базису як [Вектор3]. Якщо основа не зрізана, це " +"коефіцієнт масштабування. На нього не впливає обертання.\n" +" [codeblocks]\n" +" [gdscript]\n" +" var my_basis = Basis(\n" +" Vector3(2, 0, 0),\n" +" Vector3(0, 4, 0),\n" +" Vector3(0, 0, 8)\n" +" )\n" +" # Обертання основи будь-яким способом зберігає її масштаб.\n" +" my_basis = my_basis.rotated(Vector3.UP, TAU / 2)\n" +" my_basis = my_basis.rotated(Vector3.RIGHT, TAU / 4)\n" +"\n" +" print(my_basis.get_scale()) # Друк (2, 4, 8).\n" +" [/gdscript]\n" +" [csharp]\n" +" var myBasis = new Basis(\n" +" Vector3(2.0f, 0.0f, 0.0f),\n" +" Vector3(0.0f, 4.0f, 0.0f),\n" +" Vector3(0.0f, 0.0f, 8.0f)\n" +" );\n" +" // Обертання основи будь-яким способом зберігає її масштаб.\n" +" myBasis = myBasis.Rotated(Vector3.Up, Mathf.Tau / 2.0f);\n" +" myBasis = myBasis.Rotated(Vector3.Right, Mathf.Tau / 4.0f);\n" +"\n" +" GD.Print(myBasis.Scale); // Виводить (2, 4, 8).\n" +" [/csharp]\n" +" [/codeblocks]\n" +" [b]Примітка.[/b] Якщо значення, яке повертає [визначник методу], є " +"негативним, шкала також є негативною." + msgid "" "Returns the [url=https://en.wikipedia.org/wiki/Invertible_matrix]inverse of " "this basis's matrix[/url]." @@ -17951,6 +23057,242 @@ msgstr "" "Повертає [code]true[/code], якщо ця основа скінченна, за викликом [метод " "@GlobalScope.is_finite] на всіх векторних компонентах." +msgid "" +"Creates a new [Basis] with a rotation such that the forward axis (-Z) points " +"towards the [param target] position.\n" +"By default, the -Z axis (camera forward) is treated as forward (implies +X is " +"right). If [param use_model_front] is [code]true[/code], the +Z axis (asset " +"front) is treated as forward (implies +X is left) and points toward the " +"[param target] position.\n" +"The up axis (+Y) points as close to the [param up] vector as possible while " +"staying perpendicular to the forward axis. The returned basis is " +"orthonormalized (see [method orthonormalized]).\n" +"The [param target] and the [param up] cannot be [constant Vector3.ZERO], and " +"shouldn't be colinear to avoid unintended rotation around local Z axis." +msgstr "" +"Створює нову [основу] з обертанням таким чином, що передня вісь (-Z) вказує " +"на позицію [param target]. \n" +"За замовчуванням вісь -Z (передня камера) розглядається як передня (вказує на " +"те, що +X правильна). Якщо [param use_model_front] має значення [code]true[/" +"code], вісь +Z (фронт активу) розглядається як передня (означає, що +X " +"ліворуч) і вказує на позицію [param target]. \n" +"Вісь вгору (+Y) спрямована якомога ближче до вектора [param up], залишаючись " +"перпендикулярною до передньої осі. Повернений базис є ортонормованим (див. " +"[method orthonormalized]). \n" +"[param target] і [param up] не можуть бути [constant Vector3.ZERO] і не " +"повинні бути колінеарними, щоб уникнути ненавмисного обертання навколо " +"локальної осі Z." + +msgid "" +"Returns the orthonormalized version of this basis. An orthonormal basis is " +"both [i]orthogonal[/i] (the axes are perpendicular to each other) and " +"[i]normalized[/i] (the axes have a length of [code]1.0[/code]), which also " +"means it can only represent a rotation.\n" +"It is often useful to call this method to avoid rounding errors on a rotating " +"basis:\n" +"[codeblocks]\n" +"[gdscript]\n" +"# Rotate this Node3D every frame.\n" +"func _process(delta):\n" +" basis = basis.rotated(Vector3.UP, TAU * delta)\n" +" basis = basis.rotated(Vector3.RIGHT, TAU * delta)\n" +"\n" +" basis = basis.orthonormalized()\n" +"[/gdscript]\n" +"[csharp]\n" +"// Rotate this Node3D every frame.\n" +"public override void _Process(double delta)\n" +"{\n" +" Basis = Basis.Rotated(Vector3.Up, Mathf.Tau * (float)delta)\n" +" .Rotated(Vector3.Right, Mathf.Tau * (float)delta)\n" +" .Orthonormalized();\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Повертає ортонормовану версію цього базису. Ортонормований базис є як " +"[i]ортогональним[/i] (осі перпендикулярні одна до одної), так і " +"[i]нормованим[/i] (осі мають довжину [code]1[/code]), що також означає, що " +"він може представляти лише обертання.\n" +" Часто корисно викликати цей метод, щоб уникнути помилок округлення на " +"ротаційній основі:\n" +" [codeblocks]\n" +" [gdscript]\n" +" # Обертайте цей Node3D кожен кадр.\n" +" func _process(delta):\n" +" base = basis.rotated(Vector3.UP, TAU * delta)\n" +" base = basis.rotated(Vector3.RIGHT, TAU * delta)\n" +"\n" +" базис = basis.orthonormalized()\n" +" [/gdscript]\n" +" [csharp]\n" +" // Обертати цей Node3D кожен кадр.\n" +" public override void _Process (duo delta)\n" +" {\n" +" Basis = Basis.Rotated(Vector3.Up, Mathf.Tau * (float)delta)\n" +" .Rotated(Vector3.Right, Mathf.Tau * (float)delta)\n" +" .Orthonormalized();\n" +" }\n" +" [/csharp]\n" +" [/codeblocks]" + +msgid "" +"Returns a copy of this basis rotated around the given [param axis] by the " +"given [param angle] (in radians).\n" +"The [param axis] must be a normalized vector (see [method Vector3." +"normalized]). If [param angle] is positive, the basis is rotated counter-" +"clockwise around the axis.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var my_basis = Basis.IDENTITY\n" +"var angle = TAU / 2\n" +"\n" +"my_basis = my_basis.rotated(Vector3.UP, angle) # Rotate around the up axis " +"(yaw).\n" +"my_basis = my_basis.rotated(Vector3.RIGHT, angle) # Rotate around the right " +"axis (pitch).\n" +"my_basis = my_basis.rotated(Vector3.BACK, angle) # Rotate around the back " +"axis (roll).\n" +"[/gdscript]\n" +"[csharp]\n" +"var myBasis = Basis.Identity;\n" +"var angle = Mathf.Tau / 2.0f;\n" +"\n" +"myBasis = myBasis.Rotated(Vector3.Up, angle); // Rotate around the up axis " +"(yaw).\n" +"myBasis = myBasis.Rotated(Vector3.Right, angle); // Rotate around the right " +"axis (pitch).\n" +"myBasis = myBasis.Rotated(Vector3.Back, angle); // Rotate around the back " +"axis (roll).\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Повертає цей базис, повернутий навколо заданої [param axis] на [param angle] " +"(у радіанах). [param axis] має бути нормалізованим вектором (див. [method " +"Vector3.normalized]).\n" +" Додатні значення повертають цей базис за годинниковою стрілкою навколо осі, " +"а від’ємні значення обертають його проти годинникової стрілки.\n" +" [codeblocks]\n" +" [gdscript]\n" +" var my_basis = Basis.IDENTITY\n" +" var angle = TAU / 2\n" +"\n" +" my_basis = my_basis.rotated(Vector3.UP, angle) # Обертання навколо осі вгору " +"(yaw).\n" +" my_basis = my_basis.rotated(Vector3.RIGHT, angle) # Обертання навколо правої " +"осі (крок).\n" +" my_basis = my_basis.rotated(Vector3.BACK, angle) # Обертання навколо задньої " +"осі (перекочування).\n" +" [/gdscript]\n" +" [csharp]\n" +" var myBasis = Basis.Identity;\n" +" var angle= Mathf.Tau / 2.0f;\n" +"\n" +" myBasis = myBasis.Rotated(Vector3.Up, кут); // Обертання навколо осі вгору " +"(рискання).\n" +" myBasis = myBasis.Rotated(Vector3.Right, angle); // Поворот навколо правої " +"осі (тангаж).\n" +" myBasis = myBasis.Rotated(Vector3.Back, angle); // Поворот навколо задньої " +"осі (перекат).\n" +" [/csharp]\n" +" [/codeblocks]" + +msgid "" +"Returns this basis with each axis's components scaled by the given [param " +"scale]'s components.\n" +"The basis matrix's rows are multiplied by [param scale]'s components. This " +"operation is a global scale (relative to the parent).\n" +"[codeblocks]\n" +"[gdscript]\n" +"var my_basis = Basis(\n" +" Vector3(1, 1, 1),\n" +" Vector3(2, 2, 2),\n" +" Vector3(3, 3, 3)\n" +")\n" +"my_basis = my_basis.scaled(Vector3(0, 2, -2))\n" +"\n" +"print(my_basis.x) # Prints (0.0, 2.0, -2.0)\n" +"print(my_basis.y) # Prints (0.0, 4.0, -4.0)\n" +"print(my_basis.z) # Prints (0.0, 6.0, -6.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"var myBasis = new Basis(\n" +" new Vector3(1.0f, 1.0f, 1.0f),\n" +" new Vector3(2.0f, 2.0f, 2.0f),\n" +" new Vector3(3.0f, 3.0f, 3.0f)\n" +");\n" +"myBasis = myBasis.Scaled(new Vector3(0.0f, 2.0f, -2.0f));\n" +"\n" +"GD.Print(myBasis.X); // Prints (0, 2, -2)\n" +"GD.Print(myBasis.Y); // Prints (0, 4, -4)\n" +"GD.Print(myBasis.Z); // Prints (0, 6, -6)\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Повертає цю базу з компонентами кожної осі, масштабованими за заданими " +"компонентами [param scale].\n" +" Рядки базової матриці множаться на компоненти [param scale]. Ця операція має " +"глобальний масштаб (щодо батьківської).\n" +" [codeblocks]\n" +" [gdscript]\n" +" var my_basis = Основа(\n" +" Vector3(1, 1, 1),\n" +" Vector3(2, 2, 2),\n" +" Vector3(3, 3, 3)\n" +" )\n" +" my_basis = my_basis.scaled(Vector3(0, 2, -2))\n" +"\n" +" print(my_basis.x) # Виводить (0, 2, -2).\n" +" print(my_basis.y) # Виводить (0, 4, -4).\n" +" print(my_basis.z) # Виводить (0, 6, -6).\n" +" [/gdscript]\n" +" [csharp]\n" +" var myBasis = нова основа(\n" +" new Vector3(1.0f, 1.0f, 1.0f),\n" +" new Vector3 (2.0f, 2.0f, 2.0f),\n" +" new Vector3 (3.0f, 3.0f, 3.0f)\n" +" );\n" +" myBasis = myBasis.Scaled(новий Vector3(0.0f, 2.0f, -2.0f));\n" +"\n" +" GD.Print(myBasis.X); // Виводить (0, 2, -2).\n" +" GD.Print(myBasis.Y); // Виводить (0, 4, -4).\n" +" GD.Print(myBasis.Z); // Виводить (0, 6, -6).\n" +" [/csharp]\n" +" [/codeblocks]" + +msgid "" +"Performs a spherical-linear interpolation with the [param to] basis, given a " +"[param weight]. Both this basis and [param to] should represent a rotation.\n" +"[b]Example:[/b] Smoothly rotate a [Node3D] to the target basis over time, " +"with a [Tween]:\n" +"[codeblock]\n" +"var start_basis = Basis.IDENTITY\n" +"var target_basis = Basis.IDENTITY.rotated(Vector3.UP, TAU / 2)\n" +"\n" +"func _ready():\n" +" create_tween().tween_method(interpolate, 0.0, 1.0, 5.0).set_trans(Tween." +"TRANS_EXPO)\n" +"\n" +"func interpolate(weight):\n" +" basis = start_basis.slerp(target_basis, weight)\n" +"[/codeblock]" +msgstr "" +"Виконує сферично-лінійну інтерполяцію з основою [param to] із заданою вагою " +"[param]. І цей базис, і [param to] мають представляти обертання.\n" +" [b]Приклад: [/b] Плавно повертайте [Node3D] до цільової основи з часом за " +"допомогою [Tween].\n" +" [codeblocks]\n" +" var start_basis = Basis.IDENTITY\n" +" var target_basis = Basis.IDENTITY.rotated(Vector3.UP, TAU / 2)\n" +"\n" +" func _ready():\n" +" create_tween().tween_method(interpolate, 0.0, 1.0, 5.0).set_trans(Tween." +"TRANS_EXPO)\n" +"\n" +" func interpolate(weight):\n" +" base = start_basis.slerp(target_basis, weight)\n" +" [/codeblock]" + msgid "" "Returns the transposed dot product between [param with] and the [member x] " "axis (see [method transposed]).\n" @@ -17978,6 +23320,65 @@ msgstr "" "(див. [method transponed]).\n" " Це еквівалентно [code]basis.z.dot(vector)[/code]." +msgid "" +"Returns the transposed version of this basis. This turns the basis matrix's " +"columns into rows, and its rows into columns.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var my_basis = Basis(\n" +" Vector3(1, 2, 3),\n" +" Vector3(4, 5, 6),\n" +" Vector3(7, 8, 9)\n" +")\n" +"my_basis = my_basis.transposed()\n" +"\n" +"print(my_basis.x) # Prints (1.0, 4.0, 7.0)\n" +"print(my_basis.y) # Prints (2.0, 5.0, 8.0)\n" +"print(my_basis.z) # Prints (3.0, 6.0, 9.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"var myBasis = new Basis(\n" +" new Vector3(1.0f, 2.0f, 3.0f),\n" +" new Vector3(4.0f, 5.0f, 6.0f),\n" +" new Vector3(7.0f, 8.0f, 9.0f)\n" +");\n" +"myBasis = myBasis.Transposed();\n" +"\n" +"GD.Print(myBasis.X); // Prints (1, 4, 7)\n" +"GD.Print(myBasis.Y); // Prints (2, 5, 8)\n" +"GD.Print(myBasis.Z); // Prints (3, 6, 9)\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Повертає транспоновану версію цієї основи. Це перетворює стовпці базової " +"матриці на рядки, а її рядки – на стовпці.\n" +" [codeblocks]\n" +" [gdscript]\n" +" var my_basis = Basis(\n" +" Vector3(1, 2, 3),\n" +" Vector3(4, 5, 6),\n" +" Vector3(7, 8, 9)\n" +" )\n" +" my_basis = my_basis.transposed()\n" +"\n" +" print(my_basis.x) # Виводить (1, 4, 7).\n" +" print(my_basis.y) # Виводить (2, 5, 8).\n" +" print(my_basis.z) # Виводить (3, 6, 9).\n" +" [/gdscript]\n" +" [csharp]\n" +" var myBasis = new Basis(\n" +" new Vector3 (1.0f, 2.0f, 3.0f),\n" +" new Vector3 (4.0f, 5.0f, 6.0f),\n" +" new Vector3 (7.0f, 8.0f, 9.0f)\n" +" );\n" +" myBasis = myBasis.Transposed();\n" +"\n" +" GD.Print(myBasis.X); // Виводить (1, 4, 7).\n" +" GD.Print(myBasis.Y); // Виводить (2, 5, 8).\n" +" GD.Print(myBasis.Z); // Виводить (3, 6, 9).\n" +" [/csharp]\n" +" [/codeblocks]" + msgid "" "The basis's X axis, and the column [code]0[/code] of the matrix.\n" "On the identity basis, this vector points right ([constant Vector3.RIGHT])." @@ -17999,6 +23400,53 @@ msgstr "" "Вісь Z основи та стовпець [code]2[/code] матриці.\n" " На основі тотожності цей вектор вказує назад ([константа Vector3.BACK])." +msgid "" +"The identity [Basis]. This is an orthonormal basis with no rotation, no " +"shear, and a scale of [constant Vector3.ONE]. This also means that:\n" +"- The [member x] points right ([constant Vector3.RIGHT]);\n" +"- The [member y] points up ([constant Vector3.UP]);\n" +"- The [member z] points back ([constant Vector3.BACK]).\n" +"[codeblock]\n" +"var basis = Basis.IDENTITY\n" +"print(\"| X | Y | Z\")\n" +"print(\"| %.f | %.f | %.f\" % [basis.x.x, basis.y.x, basis.z.x])\n" +"print(\"| %.f | %.f | %.f\" % [basis.x.y, basis.y.y, basis.z.y])\n" +"print(\"| %.f | %.f | %.f\" % [basis.x.z, basis.y.z, basis.z.z])\n" +"# Prints:\n" +"# | X | Y | Z\n" +"# | 1 | 0 | 0\n" +"# | 0 | 1 | 0\n" +"# | 0 | 0 | 1\n" +"[/codeblock]\n" +"If a [Vector3] or another [Basis] is transformed (multiplied) by this " +"constant, no transformation occurs.\n" +"[b]Note:[/b] In GDScript, this constant is equivalent to creating a " +"[constructor Basis] without any arguments. It can be used to make your code " +"clearer, and for consistency with C#." +msgstr "" +"Ідентичність [Основа]. Це ортонормований базис без обертання, без зсуву та " +"масштабом [константа Vector3.ONE]. Це також означає, що: \n" +"- [член x] вказує праворуч ([константа Vector3.RIGHT]); \n" +"- [член y] вказує вгору ([константа Vector3.UP]); \n" +"- [член z] вказує назад ([константа Vector3.BACK]). \n" +"[codeblock] \n" +"var basis = Basis.IDENTITY \n" +"print(\"| X | Y | Z\") \n" +"print(\"| %.f | %.f | %.f\" % [basis.x.x, basis.y.x, basis.z.x]) \n" +"print(\"| %.f | %.f | %.f\" % [basis.x.y, basis.y.y, basis.z.y]) \n" +"print(\"| %.f | %.f | %.f\" % [basis.x.z, basis.y.z, basis.z.z]) \n" +"# Відбитки: \n" +"# | X | Y | Z \n" +"# | 1 | 0 | 0 \n" +"# | 0 | 1 | 0 \n" +"# | 0 | 0 | 1 \n" +"[/codeblock] \n" +"Якщо [Вектор3] або інший [Базис] трансформується (помножується) на цю " +"константу, перетворення не відбувається. \n" +"[b]Примітка:[/b] у GDScript ця константа еквівалентна створенню [основи " +"конструктора] без будь-яких аргументів. Його можна використовувати, щоб " +"зробити ваш код зрозумілішим і узгоджено з C#." + msgid "" "When any basis is multiplied by [constant FLIP_X], it negates all components " "of the [member x] axis (the X column).\n" @@ -18049,6 +23497,39 @@ msgstr "" "Перетворює (множить) основу [param right] на цю основу.\n" " Це операція, яка виконується між батьківським і дочірнім [Node3D]." +msgid "" +"Transforms (multiplies) the [param right] vector by this basis, returning a " +"[Vector3].\n" +"[codeblocks]\n" +"[gdscript]\n" +"# Basis that swaps the X/Z axes and doubles the scale.\n" +"var my_basis = Basis(Vector3(0, 2, 0), Vector3(2, 0, 0), Vector3(0, 0, 2))\n" +"print(my_basis * Vector3(1, 2, 3)) # Prints (4.0, 2.0, 6.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"// Basis that swaps the X/Z axes and doubles the scale.\n" +"var myBasis = new Basis(new Vector3(0, 2, 0), new Vector3(2, 0, 0), new " +"Vector3(0, 0, 2));\n" +"GD.Print(myBasis * new Vector3(1, 2, 3)); // Prints (4, 2, 6)\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Перетворює (множить) вектор [param right] на цю основу, повертаючи " +"[Vector3].\n" +" [codeblock]\n" +" [gdscript]\n" +" # Основа, яка змінює місцями осі X/Z і подвоює масштаб.\n" +" var my_basis = basis (Vector3(0, 2, 0), Vector3(2, 0, 0), Vector3(0, 0, 2))\n" +" print(my_basis * Vector3(1, 2, 3)) # Prints (4, 2, 6)\n" +" [/gdscript]\n" +" [csharp]\n" +" // Основа, яка змінює місцями осі X/Z і подвоює масштаб.\n" +" var myBasis = new basis (new vector3(0, 2, 0), new vector3(2, 0, 0), new " +"vector3(0, 0, 2));\n" +" GD.Print(myBasis * new Vector3(1, 2, 3)); // Друкує (4, 2, 6)\n" +" [/csharp]\n" +" [/codeblocks]" + msgid "" "Multiplies all components of the [Basis] by the given [float]. This affects " "the basis's scale uniformly, resizing all 3 axes by the [param right] value." @@ -18331,6 +23812,9 @@ msgstr "" "Повертає [NodePath] до зовнішнього вузла [Skeleton3D], якщо його було " "встановлено." +msgid "Get parent or external [Skeleton3D] node if found." +msgstr "Отримати батьківський або зовнішній [Skeleton3D] вузол, якщо знайдено." + msgid "" "Returns whether the BoneAttachment3D node is using an external [Skeleton3D] " "rather than attempting to use its parent node as the [Skeleton3D]." @@ -18534,7 +24018,7 @@ msgstr "" "бути 1 або 0.\n" " Логічні значення можна безпосередньо використовувати в [code]if[/code] та " "інших умовних операторах:\n" -" [кодові блоки]\n" +" [codeblocks]\n" " [gdscript]\n" " var can_shoot = true\n" " if can_shoot:\n" @@ -18542,7 +24026,7 @@ msgstr "" " [/gdscript]\n" " [csharp]\n" " bool canShoot = true;\n" -" якщо (може стріляти)\n" +" if (canShoot)\n" " {\n" " LaunchBullet();\n" " }\n" @@ -18554,16 +24038,16 @@ msgstr "" "code] або [code]== false[/code].\n" " Логічні значення можна комбінувати з логічними операторами [code]і[/code], " "[code]або[/code], [code]не[/code] для створення складних умов:\n" -" [кодові блоки]\n" +" [codeblocks]\n" " [gdscript]\n" -" якщо маркери > 0, а не is_reloading():\n" +" if bullets > 0, а не is_reloading():\n" " launch_bullet()\n" "\n" " якщо bullets == 0 або is_reloading():\n" " play_clack_sound()\n" " [/gdscript]\n" " [csharp]\n" -" якщо (маркери > 0 && !IsReloading())\n" +" if (bullets > 0 && !IsReloading())\n" " {\n" " LaunchBullet();\n" " }\n" @@ -18780,6 +24264,79 @@ msgstr "Демонстрація тривимірного кінематично msgid "A themed button that can contain text and an icon." msgstr "Тематична кнопка, яка може містити текст і значок." +msgid "" +"[Button] is the standard themed button. It can contain text and an icon, and " +"it will display them according to the current [Theme].\n" +"[b]Example:[/b] Create a button and connect a method that will be called when " +"the button is pressed:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _ready():\n" +" var button = Button.new()\n" +" button.text = \"Click me\"\n" +" button.pressed.connect(_button_pressed)\n" +" add_child(button)\n" +"\n" +"func _button_pressed():\n" +" print(\"Hello world!\")\n" +"[/gdscript]\n" +"[csharp]\n" +"public override void _Ready()\n" +"{\n" +" var button = new Button();\n" +" button.Text = \"Click me\";\n" +" button.Pressed += ButtonPressed;\n" +" AddChild(button);\n" +"}\n" +"\n" +"private void ButtonPressed()\n" +"{\n" +" GD.Print(\"Hello world!\");\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"See also [BaseButton] which contains common properties and methods associated " +"with this node.\n" +"[b]Note:[/b] Buttons do not detect touch input and therefore don't support " +"multitouch, since mouse emulation can only press one button at a given time. " +"Use [TouchScreenButton] for buttons that trigger gameplay movement or actions." +msgstr "" +"[Кнопка] — стандартна тематична кнопка. Він може містити текст і значок і " +"відображатиме їх відповідно до поточної [Теми].\n" +" [b]Приклад створення кнопки та призначення дії при натисканні кодом:[/b]\n" +" [codeblocks]\n" +" [gdscript]\n" +" func _ready():\n" +" var bottom = Button.new()\n" +" button.text = \"Натисни мене\"\n" +" button.pressed.connect(self._button_pressed)\n" +" add_child (кнопка)\n" +"\n" +" func _button_pressed():\n" +" print(\"Привіт, світ!\")\n" +" [/gdscript]\n" +" [csharp]\n" +" public override void _Ready()\n" +" {\n" +" var bottom = new bottom();\n" +" button.Text = \"Натисни мене\";\n" +" button.Pressed += ButtonPressed;\n" +" AddChild(кнопка);\n" +" }\n" +"\n" +" private void ButtonPressed()\n" +" {\n" +" GD.Print(\"Привіт, світ!\");\n" +" }\n" +" [/csharp]\n" +" [/codeblocks]\n" +" Дивіться також [BaseButton], який містить загальні властивості та методи, " +"пов’язані з цим вузлом.\n" +" [b]Примітка:[/b] кнопки не інтерпретують сенсорний ввід і тому не " +"підтримують мультидотик, оскільки емуляція миші може натискати лише одну " +"кнопку в певний момент часу. Використовуйте [TouchScreenButton] для кнопок, " +"які запускають рух або дії під час гри." + msgid "Operating System Testing Demo" msgstr "Демонстрація тестування операційної системи" @@ -18797,6 +24354,17 @@ msgstr "" "Якщо встановлено щось інше, ніж [constant TextServer.AUTOWRAP_OFF], текст " "буде загорнуто всередину обмежувального прямокутника вузла." +msgid "" +"If [code]true[/code], text that is too large to fit the button is clipped " +"horizontally. If [code]false[/code], the button will always be wide enough to " +"hold the text. The text is not vertically clipped, and the button's height is " +"not affected by this property." +msgstr "" +"Якщо [code]true[/code], текст, який завеликий для розміщення кнопки, " +"обрізається горизонтально. Якщо [code]false[/code], кнопка завжди буде " +"достатньо широкою, щоб утримувати текст. Текст не обрізається вертикально, і " +"ця властивість не впливає на висоту кнопки." + msgid "" "When enabled, the button's icon will expand/shrink to fit the button's size " "while keeping its aspect. See also [theme_item icon_max_width]." @@ -18949,6 +24517,13 @@ msgstr "" "співвідношення значка. Якщо кнопка має додаткові значки (наприклад, " "[CheckBox]), вони також будуть обмежені." +msgid "" +"Additional vertical spacing between lines (in pixels), spacing is added to " +"line descent. This value can be negative." +msgstr "" +"Додатковий вертикальний інтервал між рядками (у пікселях), інтервал додається " +"до рядкового спуску. Це значення може бути негативним." + msgid "" "The size of the text outline.\n" "[b]Note:[/b] If using a font with [member FontFile." @@ -19085,6 +24660,149 @@ msgstr "Випромінюється при натисканні однієї з msgid "A built-in type representing a method or a standalone function." msgstr "Вбудований тип, що представляє метод або окрему функцію." +msgid "" +"[Callable] is a built-in [Variant] type that represents a function. It can " +"either be a method within an [Object] instance, or a custom callable used for " +"different purposes (see [method is_custom]). Like all [Variant] types, it can " +"be stored in variables and passed to other functions. It is most commonly " +"used for signal callbacks.\n" +"[codeblocks]\n" +"[gdscript]\n" +"func print_args(arg1, arg2, arg3 = \"\"):\n" +" prints(arg1, arg2, arg3)\n" +"\n" +"func test():\n" +" var callable = Callable(self, \"print_args\")\n" +" callable.call(\"hello\", \"world\") # Prints \"hello world \".\n" +" callable.call(Vector2.UP, 42, callable) # Prints \"(0.0, -1.0) 42 " +"Node(node.gd)::print_args\"\n" +" callable.call(\"invalid\") # Invalid call, should have at least 2 " +"arguments.\n" +"[/gdscript]\n" +"[csharp]\n" +"// Default parameter values are not supported.\n" +"public void PrintArgs(Variant arg1, Variant arg2, Variant arg3 = default)\n" +"{\n" +" GD.PrintS(arg1, arg2, arg3);\n" +"}\n" +"\n" +"public void Test()\n" +"{\n" +" // Invalid calls fail silently.\n" +" Callable callable = new Callable(this, MethodName.PrintArgs);\n" +" callable.Call(\"hello\", \"world\"); // Default parameter values are not " +"supported, should have 3 arguments.\n" +" callable.Call(Vector2.Up, 42, callable); // Prints \"(0, -1) 42 Node(Node." +"cs)::PrintArgs\"\n" +" callable.Call(\"invalid\"); // Invalid call, should have 3 arguments.\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"In GDScript, it's possible to create lambda functions within a method. Lambda " +"functions are custom callables that are not associated with an [Object] " +"instance. Optionally, lambda functions can also be named. The name will be " +"displayed in the debugger, or when calling [method get_method].\n" +"[codeblock]\n" +"func _init():\n" +" var my_lambda = func (message):\n" +" print(message)\n" +"\n" +" # Prints \"Hello everyone!\"\n" +" my_lambda.call(\"Hello everyone!\")\n" +"\n" +" # Prints \"Attack!\", when the button_pressed signal is emitted.\n" +" button_pressed.connect(func(): print(\"Attack!\"))\n" +"[/codeblock]\n" +"In GDScript, you can access methods and global functions as [Callable]s:\n" +"[codeblock]\n" +"tween.tween_callback(node.queue_free) # Object methods.\n" +"tween.tween_callback(array.clear) # Methods of built-in types.\n" +"tween.tween_callback(print.bind(\"Test\")) # Global functions.\n" +"[/codeblock]\n" +"[b]Note:[/b] [Dictionary] does not support the above due to ambiguity with " +"keys.\n" +"[codeblock]\n" +"var dictionary = {\"hello\": \"world\"}\n" +"\n" +"# This will not work, `clear` is treated as a key.\n" +"tween.tween_callback(dictionary.clear)\n" +"\n" +"# This will work.\n" +"tween.tween_callback(Callable.create(dictionary, \"clear\"))\n" +"[/codeblock]" +msgstr "" +"[Callable] — це вбудований тип [Variant], який представляє функцію. Це може " +"бути або метод в екземплярі [Object], або спеціальний виклик, який " +"використовується для різних цілей (див. [method is_custom]). Як і всі типи " +"[Variant], його можна зберігати в змінних і передавати іншим функціям. " +"Найчастіше використовується для зворотних викликів сигналу. \n" +"[codeblock] \n" +"[gdscript] \n" +"func print_args(arg1, arg2, arg3 = \"\"): \n" +" print (arg1, arg2, arg3) \n" +"\n" +"func test(): \n" +" var callable = Callable(self, \"print_args\") \n" +" callable.call(\"hello\", \"world\") # Виводить \"hello world \". \n" +" callable.call(Vector2.UP, 42, callable) # Виводить \"(0.0, -1.0) 42 " +"Node(node.gd)::print_args\" \n" +" callable.call(\"invalid\") # Недійсний виклик, має мати принаймні 2 " +"аргументи. \n" +"[/gdscript] \n" +"[csharp] \n" +"// Значення параметрів за замовчуванням не підтримуються. \n" +"public void PrintArgs(Variant arg1, Variant arg2, Variant arg3 = Default) \n" +"{\n" +" GD.PrintS(arg1, arg2, arg3); \n" +"}\n" +"\n" +"public void Test() \n" +"{\n" +" // Недійсні виклики завершуються мовчки. \n" +" Callable callable = new Callable(this, MethodName.PrintArgs); \n" +" callable.Call(\"привіт\", \"світ\"); // Значення параметрів за " +"замовчуванням не підтримуються, має мати 3 аргументи. \n" +" callable.Call(Vector2.Up, 42, callable); // Виводить \"(0, -1) 42 " +"Node(Node.cs)::PrintArgs\" \n" +" callable.Call(\"недійсний\"); // Недійсний виклик, має бути 3 " +"аргументи. \n" +"}\n" +"[/csharp] \n" +"[/codeblocks] \n" +"У GDScript можна створювати лямбда-функції в методі. Лямбда-функції — це " +"спеціальні виклики, які не пов’язані з екземпляром [Object]. За бажанням " +"можна також назвати лямбда-функції. Ім’я відображатиметься в налагоджувачі " +"або під час виклику [method get_method]. \n" +"[codeblock] \n" +"func _init(): \n" +" var my_lambda = func (повідомлення): \n" +" print (повідомлення) \n" +"\n" +" # Виводить \"Всім привіт!\" \n" +" my_lambda.call(\"Всім привіт!\") \n" +"\n" +" # Виводить \"Attack!\", коли лунає сигнал button_pressed. \n" +" button_pressed.connect(func(): print(\"Атакуй!\")) \n" +"[/codeblock] \n" +"У GDScript ви можете отримати доступ до методів і глобальних функцій як " +"[Callable]s: \n" +"[codeblock] \n" +"tween.tween_callback(node.queue_free) # Об'єктні методи. \n" +"tween.tween_callback(array.clear) # Методи вбудованих типів. \n" +"tween.tween_callback(print.bind(\"Test\")) # Глобальні функції. \n" +"[/codeblock] \n" +"[b]Примітка: [/b] [Словник] не підтримує наведене вище через неоднозначність " +"ключів. \n" +"[codeblock] \n" +"var dictionary = {\"hello\": \"world\"} \n" +"\n" +"# Це не спрацює, `clear` розглядається як ключ. \n" +"tween.tween_callback(dictionary.clear) \n" +"\n" +"# Це спрацює. \n" +"tween.tween_callback(Callable.create(dictionary, \"clear\")) \n" +"[/codeblock]" + msgid "Constructs an empty [Callable], with no object nor method bound." msgstr "Створює порожній [Callable] без прив’язки до об’єкта чи методу." @@ -19164,7 +24882,7 @@ msgstr "" "Викликає метод, представлений цим [Callable] у відкладеному режимі, тобто в " "кінці поточного кадру. Аргументи можуть бути передані та повинні відповідати " "сигнатурі методу.\n" -" [кодові блоки]\n" +" [codeblocks]\n" " [gdscript]\n" " func _ready():\n" " grab_focus.call_deferred()\n" @@ -19224,6 +24942,47 @@ msgstr "" "пов’язані з [method bind], [i]віднімаються[/i] з результату, а будь-які " "аргументи, не пов’язані з [method unbind], [i]додаються[/i] до результату." +msgid "" +"Returns the array of arguments bound via successive [method bind] or [method " +"unbind] calls. These arguments will be added [i]after[/i] the arguments " +"passed to the call, from which [method get_unbound_arguments_count] arguments " +"on the right have been previously excluded.\n" +"[codeblock]\n" +"func get_effective_arguments(callable, call_args):\n" +" assert(call_args.size() - callable.get_unbound_arguments_count() >= 0)\n" +" var result = call_args.slice(0, call_args.size() - callable." +"get_unbound_arguments_count())\n" +" result.append_array(callable.get_bound_arguments())\n" +" return result\n" +"[/codeblock]" +msgstr "" +"Повертає масив аргументів, пов’язаних через послідовні виклики [method bind] " +"або [method unbind]. Ці аргументи буде додано [i]після[/i] аргументів, " +"переданих до виклику, з якого [method get_unbound_arguments_count] аргументи " +"праворуч були раніше виключені.\n" +" [codeblock]\n" +" func get_effective_arguments(callable, call_args):\n" +" assert(call_args.size() - callable.get_unbound_arguments_count() >= 0)\n" +" var result = call_args.slice(0, call_args.size() - callable." +"get_unbound_arguments_count())\n" +" result.append_array(callable.get_bound_arguments())\n" +" return result\n" +" [/codeblock]" + +msgid "" +"Returns the total amount of arguments bound via successive [method bind] or " +"[method unbind] calls. This is the same as the size of the array returned by " +"[method get_bound_arguments]. See [method get_bound_arguments] for details.\n" +"[b]Note:[/b] The [method get_bound_arguments_count] and [method " +"get_unbound_arguments_count] methods can both return positive values." +msgstr "" +"Повертає загальну кількість аргументів, зв’язаних послідовними викликами " +"[method bind] або [method unbind]. Це те саме, що розмір масиву, який " +"повертає [метод get_bound_arguments]. Дивіться [метод get_bound_arguments] " +"для деталей.\n" +" [b]Примітка.[/b] Методи [method get_bound_arguments_count] і [method " +"get_unbound_arguments_count] можуть повертати позитивні значення." + msgid "" "Returns the name of the method represented by this [Callable]. If the " "callable is a GDScript lambda function, returns the function's name or " @@ -19241,6 +25000,18 @@ msgid "" "get_instance_id])." msgstr "Повертає об’єкт, для якого протікає [Підзвонити]." +msgid "" +"Returns the total amount of arguments unbound via successive [method bind] or " +"[method unbind] calls. See [method get_bound_arguments] for details.\n" +"[b]Note:[/b] The [method get_bound_arguments_count] and [method " +"get_unbound_arguments_count] methods can both return positive values." +msgstr "" +"Повертає загальну кількість аргументів, не зв’язаних через послідовні виклики " +"[method bind] або [method unbind]. Дивіться [метод get_bound_arguments] для " +"деталей.\n" +" [b]Примітка.[/b] Методи [method get_bound_arguments_count] і [method " +"get_unbound_arguments_count] можуть повертати позитивні значення." + msgid "" "Returns the 32-bit hash value of this [Callable]'s object.\n" "[b]Note:[/b] [Callable]s with equal content will always produce identical " @@ -19274,6 +25045,19 @@ msgstr "" " - для представлення глобальних, лямбда-функцій і RPC-функцій у GDScript;\n" " - для інших цілей у ядрі, GDExtension і C#." +msgid "" +"Returns [code]true[/code] if this [Callable] has no target to call the method " +"on. Equivalent to [code]callable == Callable()[/code].\n" +"[b]Note:[/b] This is [i]not[/i] the same as [code]not is_valid()[/code] and " +"using [code]not is_null()[/code] will [i]not[/i] guarantee that this callable " +"can be called. Use [method is_valid] instead." +msgstr "" +"Повертає [code]true[/code], якщо цей [Callable] не має цілі для виклику " +"методу. Еквівалент [code]callable == Callable()[/code].\n" +" [b]Примітка:[/b] Це [i]не[/i] те саме, що [code]not is_valid()[/code], і " +"використання [code]not is_null()[/code] [i]не[/i] гарантує, що цей виклик " +"можна буде викликати. Натомість використовуйте [method is_valid]." + msgid "" "Returns [code]true[/code] if this [Callable] is a standard callable. This " "method is the opposite of [method is_custom]. Returns [code]false[/code] if " @@ -19383,6 +25167,22 @@ msgstr "" "створення [CallbackTweener]. Будь-який [CallbackTweener], створений вручну, " "не працюватиме належним чином." +msgid "" +"Makes the callback call delayed by given time in seconds.\n" +"[b]Example:[/b] Call [method Node.queue_free] after 2 seconds:\n" +"[codeblock]\n" +"var tween = get_tree().create_tween()\n" +"tween.tween_callback(queue_free).set_delay(2)\n" +"[/codeblock]" +msgstr "" +"Відкладає зворотний виклик на заданий час у секундах.\n" +" [b]Приклад:[/b]\n" +" [codeblock]\n" +" var tween = get_tree().create_tween()\n" +" tween.tween_callback(queue_free).set_delay(2) #це викличе queue_free() через " +"2 секунди\n" +" [/codeblock]" + msgid "Camera node for 2D scenes." msgstr "Вузол камери для 2D сцен." @@ -19999,7 +25799,7 @@ msgstr "" "інтерфейсу над вікном 3D-просмотру, використовуйте [метод " "is_position_behind], щоб запобігти їх появі, якщо 3D-точка знаходиться позаду " "камери:\n" -" [кодовий блок]\n" +" [codeblock]\n" " # Цей блок коду є частиною сценарію, який успадковує від Node3D.\n" " # `control` - це посилання на вузол, що успадковує Control.\n" " control.visible = not get_viewport().get_camera_3d()." @@ -20294,6 +26094,23 @@ msgstr "" "Множник для суми експозиції. Більше значення призводить до яскравішого " "зображення." +msgid "" +"Sensitivity of camera sensors, measured in ISO. A higher sensitivity results " +"in a brighter image.\n" +"If [member auto_exposure_enabled] is [code]true[/code], this can be used as a " +"method of exposure compensation, doubling the value will increase the " +"exposure value (measured in EV100) by 1 stop.\n" +"[b]Note:[/b] Only available when [member ProjectSettings.rendering/" +"lights_and_shadows/use_physical_light_units] is enabled." +msgstr "" +"Чутливість датчиків камери, виміряна в ISO. Вища чутливість забезпечує " +"яскравіше зображення.\n" +" Якщо [member auto_exposure_enabled] має значення [code]true[/code], це можна " +"використовувати як метод компенсації експозиції; подвоєння значення збільшить " +"значення експозиції (виміряне в EV100) на 1 стоп.\n" +" [b]Примітка.[/b] Доступно, лише якщо ввімкнено [member ProjectSettings." +"rendering/lights_and_shadows/use_physical_light_units]." + msgid "Physically-based camera settings." msgstr "Фізично засновані налаштування камери." @@ -20356,6 +26173,18 @@ msgstr "" "автоматичну експозицію від експозиції нижче певної яскравості, що призводить " "до точки відсікання, де сцена залишатиметься яскравою." +msgid "" +"The minimum luminance (in EV100) used when calculating auto exposure. When " +"calculating scene average luminance, color values will be clamped to at least " +"this value. This limits the auto-exposure from exposing above a certain " +"brightness, resulting in a cut off point where the scene will remain dark." +msgstr "" +"Мінімальна яскравість (у EV100), яка використовується під час розрахунку " +"автоматичної експозиції. Під час обчислення середньої яскравості сцени " +"значення кольорів будуть обмежені принаймні до цього значення. Це обмежує " +"автоматичну експозицію від експозиції вище певної яскравості, що призводить " +"до точки зрізу, де сцена залишатиметься темною." + msgid "" "Size of the aperture of the camera, measured in f-stops. An f-stop is a " "unitless ratio between the focal length of the camera and the diameter of the " @@ -20575,6 +26404,37 @@ msgstr "" "Подача з камери дає вам доступ до однієї фізичної камери, підключеної до " "вашого пристрою." +msgid "" +"A camera feed gives you access to a single physical camera attached to your " +"device. When enabled, Godot will start capturing frames from the camera which " +"can then be used. See also [CameraServer].\n" +"[b]Note:[/b] Many cameras will return YCbCr images which are split into two " +"textures and need to be combined in a shader. Godot does this automatically " +"for you if you set the environment to show the camera image in the " +"background.\n" +"[b]Note:[/b] This class is currently only implemented on Linux, macOS, and " +"iOS. On other platforms no [CameraFeed]s will be available. To get a " +"[CameraFeed] on iOS, the camera plugin from [url=https://github.com/" +"godotengine/godot-ios-plugins]godot-ios-plugins[/url] is required." +msgstr "" +"Подача з камери дає вам доступ до однієї фізичної камери, підключеної до " +"вашого пристрою. Якщо ввімкнено, Godot почне знімати кадри з камери, які " +"потім можна використовувати. Дивіться також [CameraServer].\n" +" [b]Примітка: [/b] Багато камер повертають зображення YCbCr, які розділені на " +"дві текстури та потребують об’єднання в шейдері. Годо робить це автоматично " +"за вас, якщо ви налаштуєте середовище для показу зображення камери у фоновому " +"режимі.\n" +" [b]Примітка: [/b] Цей клас наразі реалізовано лише в Linux, macOS та iOS. На " +"інших платформах [CameraFeed] не будуть доступні. Щоб отримати [CameraFeed] " +"на iOS, потрібен плагін камери з [url=https://github.com/godotengine/godot-" +"ios-plugins]godot-ios-plugins[/url]." + +msgid "Called when the camera feed is activated." +msgstr "Викликається, коли активовано подачу з камери." + +msgid "Called when the camera feed is deactivated." +msgstr "Викликається, коли подача камери вимкнена." + msgid "Returns feed image data type." msgstr "Повертає тип даних зображення каналу." @@ -20587,12 +26447,64 @@ msgstr "Повертає назву камери." msgid "Returns the position of camera on the device." msgstr "Повертає положення камери на пристрої." +msgid "" +"Returns the texture backend ID (usable by some external libraries that need a " +"handle to a texture to write data)." +msgstr "" +"Повертає ідентифікатор текстури (може використовуватися деякими зовнішніми " +"бібліотеками, яким для запису даних потрібен дескриптор текстури)." + +msgid "Sets the feed as external feed provided by another library." +msgstr "Встановлює канал як зовнішній канал, наданий іншою бібліотекою." + +msgid "" +"Sets the feed format parameters for the given index in the [member formats] " +"array. Returns [code]true[/code] on success. By default YUYV encoded stream " +"is transformed to FEED_RGB. YUYV encoded stream output format can be changed " +"with [param parameters].output value:\n" +"[code]separate[/code] will result in FEED_YCBCR_SEP\n" +"[code]grayscale[/code] will result in desaturated FEED_RGB\n" +"[code]copy[/code] will result in FEED_YCBCR" +msgstr "" +"Встановлює параметри формату каналу для заданого індексу в масиві [member " +"formats]. У разі успіху повертає [code]true[/code]. За замовчуванням потік у " +"кодуванні YUYV перетворюється на FEED_RGB. Формат вихідного потоку в " +"кодуванні YUYV можна змінити за допомогою [param parameters].output value:\n" +" [code]separate[/code] призведе до FEED_YCBCR_SEP\n" +" [code]відтінки сірого[/code] призведе до ненасиченого FEED_RGB\n" +" [code]копіювати[/code] призведе до FEED_YCBCR" + +msgid "Sets the camera's name." +msgstr "Встановлює назву камери." + +msgid "Sets the position of this camera." +msgstr "Встановлює положення цієї камери." + +msgid "Sets RGB image for this feed." +msgstr "Встановлює зображення RGB для цього каналу." + +msgid "Sets YCbCr image for this feed." +msgstr "Встановлює зображення YCbCr для цього каналу." + msgid "If [code]true[/code], the feed is active." msgstr "Якщо [code]true[/code], канал активний." msgid "The transform applied to the camera's image." msgstr "Перетворення, застосоване до зображення камери." +msgid "" +"Formats supported by the feed. Each entry is a [Dictionary] describing format " +"parameters." +msgstr "" +"Формати, які підтримує фід. Кожен запис є [Словником], що описує параметри " +"формату." + +msgid "Emitted when the format has changed." +msgstr "Видається при зміні формату." + +msgid "Emitted when a new frame is available." +msgstr "Випускається, коли доступний новий кадр." + msgid "No image set for the feed." msgstr "Для каналу не встановлено зображення." @@ -20609,6 +26521,9 @@ msgstr "" "Подача подає окремі зображення Y та CbCr, які потрібно об’єднати та " "перетворити на RGB." +msgid "Feed supplies external image." +msgstr "Корм постачає зовнішнє зображення." + msgid "Unspecified position." msgstr "Невизначена позиція." @@ -20621,6 +26536,24 @@ msgstr "Камера встановлена на задній панелі пр msgid "Server keeping track of different cameras accessible in Godot." msgstr "Сервер відстежує різні камери, доступні в Godot." +msgid "" +"The [CameraServer] keeps track of different cameras accessible in Godot. " +"These are external cameras such as webcams or the cameras on your phone.\n" +"It is notably used to provide AR modules with a video feed from the camera.\n" +"[b]Note:[/b] This class is currently only implemented on Linux, macOS, and " +"iOS. On other platforms no [CameraFeed]s will be available. To get a " +"[CameraFeed] on iOS, the camera plugin from [url=https://github.com/" +"godotengine/godot-ios-plugins]godot-ios-plugins[/url] is required." +msgstr "" +"[CameraServer] відстежує різні камери, доступні в Godot. Це зовнішні камери, " +"наприклад веб-камери або камери вашого телефону.\n" +" Зокрема, він використовується для забезпечення модулів AR відеопотоком із " +"камери.\n" +" [b]Примітка: [/b] Цей клас наразі реалізовано лише в Linux, macOS та iOS. На " +"інших платформах [CameraFeed] не будуть доступні. Щоб отримати [CameraFeed] " +"на iOS, потрібен плагін камери з [url=https://github.com/godotengine/godot-" +"ios-plugins]godot-ios-plugins[/url]." + msgid "Adds the camera [param feed] to the camera server." msgstr "Додає камеру [param feed] на сервер камери." @@ -20726,24 +26659,24 @@ msgstr "" "self_modulate] [CanvasGroup], щоб досягти цього ефекту).\n" " [b]Примітка: [/b] [CanvasGroup] використовує спеціальний шейдер для читання " "з заднього буфера для малювання своїх дочірніх елементів. Призначення " -"[Material] для [CanvasGroup] замінює вбудований шейдер. Щоб скопіювати " +"[Material] для [CanvasGroup] замінює вбудований шейдер. Щоб скопіювати " "поведінку вбудованого шейдера в настроюваному [Shader], використовуйте " "наступне:\n" -" [кодовий блок]\n" +" [codeblock]\n" " shader_type canvas_item;\n" -" render_mode незатінений;\n" +" render_mode unshaded;\n" "\n" " uniform sampler2D screen_texture : hint_screen_texture, repeat_disable, " "filter_nearest;\n" "\n" " void fragment() {\n" -" vec4 c = textureLod(текстура_екрана, SCREEN_UV, 0.0);\n" +" vec4 c = textureLod(screen_textrue, SCREEN_UV, 0.0);\n" "\n" " якщо (c.a > 0,0001) {\n" " c.rgb /= c.a;\n" " }\n" "\n" -" КОЛІР *= c;\n" +" COLOR *= c;\n" " }\n" " [/codeblock]\n" " [b]Примітка:[/b] Оскільки [CanvasGroup] і [член CanvasItem.clip_children] " @@ -20944,27 +26877,66 @@ msgstr "" " [b]Примітка: [/b] [param width] ефективний, лише якщо [param filled] має " "значення [code]false[/code]." +msgid "" +"Draws a colored polygon of any number of points, convex or concave. Unlike " +"[method draw_polygon], a single color must be specified for the whole " +"polygon.\n" +"[b]Note:[/b] If you frequently redraw the same polygon with a large number of " +"vertices, consider pre-calculating the triangulation with [method Geometry2D." +"triangulate_polygon] and using [method draw_mesh], [method draw_multimesh], " +"or [method RenderingServer.canvas_item_add_triangle_array]." +msgstr "" +"Малює кольоровий багатокутник із будь-якою кількістю точок, опуклих чи " +"увігнутих. На відміну від [методу draw_polygon], єдиний колір потрібно " +"вказати для всього багатокутника.\n" +" [b]Примітка.[/b] Якщо ви часто перемальовуєте один і той самий багатокутник " +"із великою кількістю вершин, розгляньте можливість попереднього розрахунку " +"тріангуляції за допомогою [методу Geometry2D.triangulate_polygon] і " +"використання [методу draw_mesh], [методу draw_multimesh] або [методу " +"RenderingServer.canvas_item_add_triangle_array]." + msgid "" "Draws a dashed line from a 2D point to another, with a given color and width. " -"See also [method draw_multiline] and [method draw_polyline].\n" +"See also [method draw_line], [method draw_multiline], and [method " +"draw_polyline].\n" "If [param width] is negative, then a two-point primitives will be drawn " "instead of a four-point ones. This means that when the CanvasItem is scaled, " "the line parts will remain thin. If this behavior is not desired, then pass a " "positive [param width] like [code]1.0[/code].\n" +"[param dash] is the length of each dash in pixels, with the gap between each " +"dash being the same length. If [param aligned] is [code]true[/code], the " +"length of the first and last dashes may be shortened or lengthened to allow " +"the line to begin and end at the precise points defined by [param from] and " +"[param to]. Both ends are always symmetrical when [param aligned] is " +"[code]true[/code]. If [param aligned] is [code]false[/code], all dashes will " +"have the same length, but the line may appear incomplete at the end due to " +"the dash length not dividing evenly into the line length. Only full dashes " +"are drawn when [param aligned] is [code]false[/code].\n" "If [param antialiased] is [code]true[/code], half transparent \"feathers\" " "will be attached to the boundary, making outlines smooth.\n" "[b]Note:[/b] [param antialiased] is only effective if [param width] is " "greater than [code]0.0[/code]." msgstr "" "Малює пунктирну лінію від 2D-точки до іншої заданого кольору та ширини. " -"Дивіться також [метод draw_multiline] і [метод draw_polyline].\n" -" Якщо параметр [param width] є від’ємним, то замість чотирьохточкових " -"примітивів буде намальовано двоточкові. Це означає, що коли CanvasItem " -"масштабується, частини лінії залишаться тонкими. Якщо така поведінка " -"небажана, передайте позитивний [param width], як [code]1.0[/code].\n" -" Якщо [param antialiased] має значення [code]true[/code], напівпрозорі " -"«пір’я» будуть прикріплені до межі, роблячи контури гладкими.\n" -" [b]Примітка:[/b] [param antialiased] ефективний, лише якщо [param width] " +"Дивіться також [метод draw_line], [метод draw_multiline] і [метод " +"draw_polyline]. \n" +"Якщо параметр [param width] від’ємний, то замість чотирьохточкових примітивів " +"буде намальовано двоточкові. Це означає, що коли CanvasItem масштабується, " +"частини лінії залишаться тонкими. Якщо така поведінка небажана, передайте " +"позитивний [param width], як [code]1.0[/code]. \n" +"[param dash] — це довжина кожного штриха в пікселях, причому проміжок між " +"кожним штрихом має однакову довжину. Якщо [param aligned] має значення " +"[code]true[/code], довжину першого та останнього тире можна скоротити або " +"подовжити, щоб дозволити лінії починатися та закінчуватися в точних точках, " +"визначених [param from] та [param to]. Обидва кінці завжди симетричні, коли " +"[param aligned] має значення [code]true[/code]. Якщо [param aligned] має " +"значення [code]false[/code], усі тире матимуть однакову довжину, але рядок " +"може виглядати неповним у кінці через те, що довжина тире не рівномірно " +"ділиться на довжину рядка. Лише цілі тире малюються, коли [param aligned] має " +"значення [code]false[/code]. \n" +"Якщо [param antialiased] має значення [code]true[/code], напівпрозорі «пір’я» " +"будуть прикріплені до межі, роблячи контури гладкими. \n" +"[b]Примітка:[/b] [param antialiased] ефективний, лише якщо [param width] " "більше ніж [code]0.0[/code]." msgid "" @@ -21012,17 +26984,17 @@ msgstr "" msgid "" "Draws a line from a 2D point to another, with a given color and width. It can " -"be optionally antialiased. See also [method draw_multiline] and [method " -"draw_polyline].\n" +"be optionally antialiased. See also [method draw_dashed_line], [method " +"draw_multiline], and [method draw_polyline].\n" "If [param width] is negative, then a two-point primitive will be drawn " "instead of a four-point one. This means that when the CanvasItem is scaled, " "the line will remain thin. If this behavior is not desired, then pass a " "positive [param width] like [code]1.0[/code]." msgstr "" -"Малює лінію від 2D точки до іншої заданого кольору та ширини. Його можна " -"додатково згладжувати. Дивіться також [метод draw_multiline] і [метод " -"draw_polyline].\n" -" Якщо параметр [param width] має від’ємне значення, то буде намальовано " +"Малює лінію від 2D-точки до іншої із заданим кольором і шириною. Його можна " +"додатково згладжувати. Дивіться також [метод draw_dashed_line], [метод " +"draw_multiline] і [метод draw_polyline]. \n" +"Якщо параметр [param width] має від’ємне значення, то буде намальовано " "двоточковий примітив замість чотириточкового. Це означає, що коли CanvasItem " "масштабується, лінія залишатиметься тонкою. Якщо така поведінка небажана, " "передайте позитивний [param width], як [code]1.0[/code]." @@ -21142,6 +27114,30 @@ msgstr "" "Малює [MultiMesh] у 2D із наданою текстурою. Відповідну документацію див. у " "[MultiMeshInstance2D]." +msgid "" +"Draws a solid polygon of any number of points, convex or concave. Unlike " +"[method draw_colored_polygon], each point's color can be changed " +"individually. See also [method draw_polyline] and [method " +"draw_polyline_colors]. If you need more flexibility (such as being able to " +"use bones), use [method RenderingServer.canvas_item_add_triangle_array] " +"instead.\n" +"[b]Note:[/b] If you frequently redraw the same polygon with a large number of " +"vertices, consider pre-calculating the triangulation with [method Geometry2D." +"triangulate_polygon] and using [method draw_mesh], [method draw_multimesh], " +"or [method RenderingServer.canvas_item_add_triangle_array]." +msgstr "" +"Малює суцільний багатокутник із будь-якою кількістю точок, опуклих чи " +"увігнутих. На відміну від [методу draw_colored_polygon], колір кожної точки " +"можна змінювати окремо. Дивіться також [метод draw_polyline] і [метод " +"draw_polyline_colors]. Якщо вам потрібна більша гнучкість (наприклад, " +"можливість використовувати кістки), натомість використовуйте [метод " +"RenderingServer.canvas_item_add_triangle_array].\n" +" [b]Примітка.[/b] Якщо ви часто перемальовуєте один і той самий багатокутник " +"із великою кількістю вершин, розгляньте можливість попереднього розрахунку " +"тріангуляції за допомогою [методу Geometry2D.triangulate_polygon] і " +"використання [методу draw_mesh], [методу draw_multimesh] або [методу " +"RenderingServer.canvas_item_add_triangle_array]." + msgid "" "Draws interconnected line segments with a uniform [param color] and [param " "width] and optional antialiasing (supported only for positive [param width]). " @@ -21277,6 +27273,64 @@ msgstr "" "Встановлює настроюване перетворення для малювання через матрицю. Все, що " "намальовано пізніше, буде трансформовано цим." +msgid "" +"Draws [param text] using the specified [param font] at the [param pos] " +"(bottom-left corner using the baseline of the font). The text will have its " +"color multiplied by [param modulate]. If [param width] is greater than or " +"equal to 0, the text will be clipped if it exceeds the specified width.\n" +"[b]Example:[/b] Draw \"Hello world\", using the project's default font:\n" +"[codeblocks]\n" +"[gdscript]\n" +"# If using this method in a script that redraws constantly, move the\n" +"# `default_font` declaration to a member variable assigned in `_ready()`\n" +"# so the Control is only created once.\n" +"var default_font = ThemeDB.fallback_font\n" +"var default_font_size = ThemeDB.fallback_font_size\n" +"draw_string(default_font, Vector2(64, 64), \"Hello world\", " +"HORIZONTAL_ALIGNMENT_LEFT, -1, default_font_size)\n" +"[/gdscript]\n" +"[csharp]\n" +"// If using this method in a script that redraws constantly, move the\n" +"// `default_font` declaration to a member variable assigned in `_Ready()`\n" +"// so the Control is only created once.\n" +"Font defaultFont = ThemeDB.FallbackFont;\n" +"int defaultFontSize = ThemeDB.FallbackFontSize;\n" +"DrawString(defaultFont, new Vector2(64, 64), \"Hello world\", " +"HORIZONTAL_ALIGNMENT_LEFT, -1, defaultFontSize);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"See also [method Font.draw_string]." +msgstr "" +"Малює [param text], використовуючи вказаний [param font] у [param pos] " +"(нижній лівий кут, використовуючи базову лінію шрифту). Текст матиме свій " +"колір, помножений на [param modulate]. Якщо [param width] більше або дорівнює " +"0, текст буде обрізано, якщо він перевищує вказану ширину.\n" +" [b]Приклад:[/b] Намалюйте \"Hello world\", використовуючи стандартний шрифт " +"проекту:\n" +" [codeblocks]\n" +" [gdscript]\n" +" # Якщо цей метод використовується в сценарії, який постійно " +"перемальовується, перемістіть\n" +" # Оголошення `default_font` для змінної-члена, призначеної в `_ready()`\n" +" # тому елемент керування створюється лише один раз.\n" +" var default_font = ThemeDB.fallback_font\n" +" var default_font_size = ThemeDB.fallback_font_size\n" +" draw_string(default_font, Vector2(64, 64), \"Hello world\", " +"HORIZONTAL_ALIGNMENT_LEFT, -1, default_font_size)\n" +" [/gdscript]\n" +" [csharp]\n" +" // Якщо цей метод використовується в сценарії, який постійно " +"перемальовується, перемістіть\n" +" // Оголошення `default_font` для змінної-члена, призначеної в `_Ready()`\n" +" // тому елемент керування створюється лише один раз.\n" +" Font defaultFont = ThemeDB.FallbackFont;\n" +" int defaultFontSize = ThemeDB.FallbackFontSize;\n" +" DrawString(defaultFont, new Vector2(64, 64), \"Hello world\", " +"HORIZONTAL_ALIGNMENT_LEFT, -1, defaultFontSize);\n" +" [/csharp]\n" +" [/codeblocks]\n" +" Дивіться також [метод Font.draw_string]." + msgid "" "Draws [param text] outline using the specified [param font] at the [param " "pos] (bottom-left corner using the baseline of the font). The text will have " @@ -21441,6 +27495,45 @@ msgstr "" "Повертає [code]true[/code], якщо сповіщення про глобальне перетворення " "передаються дітям." +msgid "" +"Returns [code]true[/code] if the node is present in the [SceneTree], its " +"[member visible] property is [code]true[/code] and all its ancestors are also " +"visible. If any ancestor is hidden, this node will not be visible in the " +"scene tree, and is therefore not drawn (see [method _draw]).\n" +"Visibility is checked only in parent nodes that inherit from [CanvasItem], " +"[CanvasLayer], and [Window]. If the parent is of any other type (such as " +"[Node], [AnimationPlayer], or [Node3D]), it is assumed to be visible.\n" +"[b]Note:[/b] This method does not take [member visibility_layer] into " +"account, so even if this method returns [code]true[/code], the node might end " +"up not being rendered." +msgstr "" +"Повертає [code]true[/code], якщо вузол присутній у [SceneTree], його " +"властивість [member visible] має значення [code]true[/code] і всі його предки " +"також видимі. Якщо будь-який предок прихований, цей вузол не буде видимим у " +"дереві сцени, і тому не буде намальовано (див. [метод _draw]).\n" +" Видимість перевіряється лише в батьківських вузлах, які успадковуються від " +"[CanvasItem], [CanvasLayer] і [Window]. Якщо батьківський елемент має будь-" +"який інший тип (наприклад, [Node], [AnimationPlayer] або [Node3D]), він " +"вважається видимим.\n" +" [b]Примітка:[/b] цей метод не враховує [member visibility_layer], тож навіть " +"якщо цей метод повертає [code]true[/code], вузол може не відобразитися." + +msgid "" +"Transforms [param viewport_point] from the viewport's coordinates to this " +"node's local coordinates.\n" +"For the opposite operation, use [method get_global_transform_with_canvas].\n" +"[codeblock]\n" +"var viewport_point = get_global_transform_with_canvas() * local_point\n" +"[/codeblock]" +msgstr "" +"Перетворює [параметр viewport_point] із координат вікна перегляду на локальні " +"координати цього вузла.\n" +" Для протилежної операції використовуйте [метод " +"get_global_transform_with_canvas].\n" +" [codeblock]\n" +" var viewport_point = get_global_transform_with_canvas() * local_point\n" +" [/codeblock]" + msgid "" "Transformations issued by [param event]'s inputs are applied in local space " "instead of global space." @@ -21468,6 +27561,30 @@ msgstr "" "викликається [метод _draw]. Це відбувається лише [b]один раз[/b] за кадр, " "навіть якщо цей метод було викликано кілька разів." +msgid "" +"Set the value of a shader uniform for this instance only ([url=$DOCS_URL/" +"tutorials/shaders/shader_reference/shading_language.html#per-instance-" +"uniforms]per-instance uniform[/url]). See also [method ShaderMaterial." +"set_shader_parameter] to assign a uniform on all instances using the same " +"[ShaderMaterial].\n" +"[b]Note:[/b] For a shader uniform to be assignable on a per-instance basis, " +"it [i]must[/i] be defined with [code]instance uniform ...[/code] rather than " +"[code]uniform ...[/code] in the shader code.\n" +"[b]Note:[/b] [param name] is case-sensitive and must match the name of the " +"uniform in the code exactly (not the capitalized name in the inspector)." +msgstr "" +"Встановіть значення шейдерної уніформи лише для цього екземпляра " +"([url=$DOCS_URL/tutorials/shaders/shader_reference/shading_language.html#per-" +"instance-uniforms]per-instance uniform[/url]). Дивіться також [метод " +"ShaderMaterial.set_shader_parameter], щоб призначити однорідність для всіх " +"екземплярів, використовуючи той самий [ShaderMaterial].\n" +" [b]Примітка.[/b] Щоб уніформу шейдера можна було призначати окремо для " +"кожного екземпляра, її [i]має[/i] визначати [code]instance uniform ...[/" +"code], а не [code]uniform ...[/code] у коді шейдера.\n" +" [b]Примітка: [/b] [назва параметра] чутлива до регістру та має точно " +"відповідати назві уніформи в коді (а не назві, написаній великими літерами в " +"інспекторі)." + msgid "" "If [param enable] is [code]true[/code], this node will receive [constant " "NOTIFICATION_LOCAL_TRANSFORM_CHANGED] when its local transform changes." @@ -21502,6 +27619,19 @@ msgstr "" "керування, які успадковують [Popup], правильним способом зробити їх видимими " "є виклик однієї з кількох функцій [code]popup*()[/code]." +msgid "" +"Allows the current node to clip child nodes, essentially acting as a mask.\n" +"[b]Note:[/b] Clipping nodes cannot be nested or placed within [CanvasGroup]s. " +"If an ancestor of this node clips its children or is a [CanvasGroup], then " +"this node's clip mode should be set to [constant CLIP_CHILDREN_DISABLED] to " +"avoid unexpected behavior." +msgstr "" +"Дозволяє поточному вузлу обрізати дочірні вузли, по суті діючи як маска.\n" +" [b]Примітка:[/b] Вузли відсікання не можна вкладати або розміщувати в межах " +"[CanvasGroup]. Якщо предок цього вузла відсікає своїх дочірніх елементів або " +"є [CanvasGroup], тоді для цього вузла режим відсікання має бути встановлено " +"на [константа CLIP_CHILDREN_DISABLED], щоб уникнути неочікуваної поведінки." + msgid "" "The rendering layers in which this [CanvasItem] responds to [Light2D] nodes." msgstr "Шари візуалізації, у яких цей [CanvasItem] реагує на вузли [Light2D]." @@ -21575,6 +27705,50 @@ msgstr "" "батьківські елементи спільно використовують шар із маскою відбракування " "полотна [Viewport]." +msgid "" +"If [code]true[/code], this [CanvasItem] may be drawn. Whether this " +"[CanvasItem] is actually drawn depends on the visibility of all of its " +"[CanvasItem] ancestors. In other words: this [CanvasItem] will be drawn when " +"[method is_visible_in_tree] returns [code]true[/code] and all [CanvasItem] " +"ancestors share at least one [member visibility_layer] with this " +"[CanvasItem].\n" +"[b]Note:[/b] For controls that inherit [Popup], the correct way to make them " +"visible is to call one of the multiple [code]popup*()[/code] functions " +"instead." +msgstr "" +"Якщо [code]true[/code], цей [CanvasItem] можна намалювати. Чи буде цей " +"[CanvasItem] насправді намальований, залежить від видимості всіх його предків " +"[CanvasItem]. Іншими словами: цей [CanvasItem] буде намальовано, коли [method " +"is_visible_in_tree] повертає [code]true[/code] і всі предки [CanvasItem] " +"мають спільний принаймні один [member visibility_layer] з цим [CanvasItem].\n" +" [b]Примітка.[/b] Для елементів керування, які успадковують [Popup], " +"правильний спосіб зробити їх видимими — це викликати одну з кількох функцій " +"[code]popup*()[/code]." + +msgid "" +"If [code]true[/code], this and child [CanvasItem] nodes with a higher Y " +"position are rendered in front of nodes with a lower Y position. If " +"[code]false[/code], this and child [CanvasItem] nodes are rendered normally " +"in scene tree order.\n" +"With Y-sorting enabled on a parent node ('A') but disabled on a child node " +"('B'), the child node ('B') is sorted but its children ('C1', 'C2', etc.) " +"render together on the same Y position as the child node ('B'). This allows " +"you to organize the render order of a scene without changing the scene tree.\n" +"Nodes sort relative to each other only if they are on the same [member " +"z_index]." +msgstr "" +"Якщо [code]true[/code], цей і дочірній вузли [CanvasItem] з вищою позицією Y " +"відображаються перед вузлами з нижчою позицією Y. Якщо [code]false[/code], " +"цей і дочірній вузли [CanvasItem] відображаються зазвичай у порядку дерева " +"сцен.\n" +" Якщо Y-сортування ввімкнено на батьківському вузлі ('A'), але вимкнено на " +"дочірньому вузлі ('B'), дочірній вузол ('B') сортується, але його дочірні " +"вузли ('C1', 'C2' тощо) відображаються разом у тій же позиції Y, що й " +"дочірній вузол ('B'). Це дозволяє організовувати порядок візуалізації сцени " +"без зміни дерева сцени.\n" +" Вузли сортуються відносно один одного, лише якщо вони знаходяться на одному " +"[члені z_index]." + msgid "" "If [code]true[/code], the node's Z index is relative to its parent's Z index. " "If this node's Z index is 2 and its parent's effective Z index is 3, then " @@ -21615,6 +27789,31 @@ msgstr "" "[b]Примітка:[/b] Відкладені підключення не дозволяють малювання за допомогою " "методів [code]draw_*[/code]." +msgid "" +"Emitted when the [CanvasItem] is hidden, i.e. it's no longer visible in the " +"tree (see [method is_visible_in_tree])." +msgstr "" +"Випромінюється, коли [CanvasItem] приховано, тобто його більше не видно в " +"дереві (див. [метод is_visible_in_tree])." + +msgid "" +"Emitted when the [CanvasItem]'s boundaries (position or size) change, or when " +"an action took place that may have affected these boundaries (e.g. changing " +"[member Sprite2D.texture])." +msgstr "" +"Випускається, коли межі [CanvasItem] (позиція чи розмір) змінюються або коли " +"виконується дія, яка могла вплинути на ці межі (наприклад, зміна [члена " +"Sprite2D.texture])." + +msgid "" +"Emitted when the [CanvasItem]'s visibility changes, either because its own " +"[member visible] property changed or because its visibility in the tree " +"changed (see [method is_visible_in_tree])." +msgstr "" +"Видається, коли видимість [CanvasItem] змінюється через зміну його власної " +"властивості [member visible] або через зміну його видимості в дереві (див. " +"[метод is_visible_in_tree])." + msgid "" "The [CanvasItem]'s global transform has changed. This notification is only " "received if enabled by [method set_notify_transform]." @@ -21959,6 +28158,17 @@ msgstr "" "Спеціальний вузол [Viewport], призначений для [CanvasLayer]. Якщо [code]null[/" "code], натомість використовується вікно перегляду за замовчуванням." +msgid "" +"If enabled, the [CanvasLayer] stays in a fixed position on the screen. If " +"disabled, the [CanvasLayer] maintains its position in world space.\n" +"Together with [member follow_viewport_scale], this can be used for a " +"pseudo-3D effect." +msgstr "" +"Якщо ввімкнено, [CanvasLayer] залишається у фіксованому положенні на екрані. " +"Якщо вимкнено, [CanvasLayer] зберігає свою позицію у світовому просторі.\n" +" Разом із [member follow_viewport_scale] це можна використовувати для " +"псевдо-3D-ефекту." + msgid "" "Scales the layer when using [member follow_viewport_enabled]. Layers moving " "into the foreground should have increasing scales, while layers moving into " @@ -22306,6 +28516,49 @@ msgstr "" "діагональний рух, на відміну від [member velocity], який повертає запитувану " "швидкість." +msgid "" +"Returns a [KinematicCollision2D], which contains information about a " +"collision that occurred during the last call to [method move_and_slide]. " +"Since the body can collide several times in a single call to [method " +"move_and_slide], you must specify the index of the collision in the range 0 " +"to ([method get_slide_collision_count] - 1).\n" +"[b]Example:[/b] Iterate through the collisions with a [code]for[/code] loop:\n" +"[codeblocks]\n" +"[gdscript]\n" +"for i in get_slide_collision_count():\n" +" var collision = get_slide_collision(i)\n" +" print(\"Collided with: \", collision.get_collider().name)\n" +"[/gdscript]\n" +"[csharp]\n" +"for (int i = 0; i < GetSlideCollisionCount(); i++)\n" +"{\n" +" KinematicCollision2D collision = GetSlideCollision(i);\n" +" GD.Print(\"Collided with: \", (collision.GetCollider() as Node).Name);\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Повертає [KinematicCollision2D], який містить інформацію про зіткнення, яке " +"сталося під час останнього виклику [методу move_and_slide]. Оскільки тіло " +"може зіткнутися кілька разів під час одного виклику [методу move_and_slide], " +"ви повинні вказати індекс зіткнення в діапазоні від 0 до ([метод " +"get_slide_collision_count] - 1).\n" +"[b]Приклад використання:[/b]\n" +"[codeblocks]\n" +"[gdscript]\n" +"for i в get_slide_collision_count():\n" +" var collision = get_slide_collision(i)\n" +" print(\"Зіткнувся з: \", collision.get_collider().name)\n" +"[/gdscript]\n" +"[csharp]\n" +"for (int i = 0; i < GetSlideCollisionCount(); i++)\n" +"{\n" +" KinematicCollision2D зіткнення = GetSlideCollision(i);\n" +" GD.Print(\"Зіткнувся з: \", (collision.GetCollider() as Node).Name);\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Returns the number of times the body collided and changed direction during " "the last call to [method move_and_slide]." @@ -22869,9 +29122,73 @@ msgstr "" "1)}\n" "[/codeblock]" +msgid "" +"[TextServer] RID of the font used to render glyph, this value can be used " +"with [code]TextServer.font_*[/code] methods to retrieve font information.\n" +"[b]Note:[/b] Read-only. Setting this property won't affect drawing." +msgstr "" +"[TextServer] RID шрифту, який використовується для відтворення гліфа, це " +"значення можна використовувати з методами [code]TextServer.font_*[/code] для " +"отримання інформації про шрифт.\n" +" [b]Примітка:[/b] Лише для читання. Налаштування цієї властивості не вплине " +"на малюнок." + +msgid "" +"Number of glyphs in the grapheme cluster. This value is set in the first " +"glyph of a cluster.\n" +"[b]Note:[/b] Read-only. Setting this property won't affect drawing." +msgstr "" +"Кількість гліфів у кластері графем. Це значення встановлюється в першому " +"гліфі кластера.\n" +"[b]Примітка:[/b] Лише для читання. Налаштування цієї властивості не вплине на " +"малюнок." + +msgid "" +"Glyph flags. See [enum TextServer.GraphemeFlag] for more info.\n" +"[b]Note:[/b] Read-only. Setting this property won't affect drawing." +msgstr "" +"Гліфові прапори. Дивіться [enum TextServer.GraphemeFlag] для отримання " +"додаткової інформації.\n" +"[b]Примітка:[/b] Лише для читання. Налаштування цієї властивості не вплине на " +"малюнок." + +msgid "" +"Glyph index specific to the [member font]. If you want to replace this glyph, " +"use [method TextServer.font_get_glyph_index] with [member font] to get a new " +"glyph index for a single character." +msgstr "" +"Індекс гліфа, специфічний для [шрифту-члена]. Якщо ви хочете замінити цей " +"гліф, використовуйте [method TextServer.font_get_glyph_index] на [member " +"font], щоб отримати новий індекс гліфа для одного символу." + msgid "The position offset the character will be drawn with (in pixels)." msgstr "Зсув позиції, з яким буде намальовано символ (у пікселях)." +msgid "" +"If [code]true[/code], FX transform is called for outline drawing.\n" +"[b]Note:[/b] Read-only. Setting this property won't affect drawing." +msgstr "" +"Якщо [code]true[/code], трансформація FX викликається для малювання контуру.\n" +"[b]Примітка:[/b] Лише для читання. Налаштування цієї властивості не вплине на " +"малюнок." + +msgid "" +"Absolute character range in the string, corresponding to the glyph.\n" +"[b]Note:[/b] Read-only. Setting this property won't affect drawing." +msgstr "" +"Абсолютний діапазон символів у рядку, що відповідає гліфу.\n" +"[b]Примітка:[/b] Лише для читання. Налаштування цієї властивості не вплине на " +"малюнок." + +msgid "" +"The character offset of the glyph, relative to the current [RichTextEffect] " +"custom block.\n" +"[b]Note:[/b] Read-only. Setting this property won't affect drawing." +msgstr "" +"Зсув символу гліфа відносно поточного спеціального блоку [RichTextEffect].\n" +"[b]Примітка:[/b] Лише для читання. Налаштування цієї властивості не вплине на " +"малюнок." + msgid "" "The current transform of the current glyph. It can be overridden (for " "example, by driving the position and rotation from a curve). You can also " @@ -23076,9 +29393,15 @@ msgstr "" "Повертає [code]true[/code], якщо об’єкти можуть бути створені з указаного " "[param class], інакше повертає [code]false[/code]." +msgid "Calls a static method on a class." +msgstr "Викликає статичний метод класу." + msgid "Returns whether the specified [param class] is available or not." msgstr "Повертає інформацію про те, чи доступний [param class] чи ні." +msgid "Returns the API type of [param class]. See [enum APIType]." +msgstr "Повертає тип API [param class]. Див. [enum APIType]." + msgid "" "Returns an array with all the keys in [param enum] of [param class] or its " "ancestry." @@ -23142,6 +29465,9 @@ msgstr "" "Повертає значення за замовчуванням [param property] [param class] або його " "класів-попередників." +msgid "Returns the getter method name of [param property] of [param class]." +msgstr "Повертає назву методу отримання [param property] [param class]." + msgid "" "Returns an array with all the properties of [param class] or its ancestry if " "[param no_inheritance] is [code]false[/code]." @@ -23149,6 +29475,9 @@ msgstr "" "Повертає масив з усіма властивостями [param class] або його предків, якщо " "[param no_inheritance] має значення [code]false[/code]." +msgid "Returns the setter method name of [param property] of [param class]." +msgstr "Повертає назву методу налаштування [param property] [param class]." + msgid "" "Returns the [param signal] data of [param class] or its ancestry. The " "returned value is a [Dictionary] with the following keys: [code]args[/code], " @@ -23233,6 +29562,21 @@ msgstr "" msgid "Returns whether [param inherits] is an ancestor of [param class] or not." msgstr "Повертає, чи є [param inherits] предком [param class] чи ні." +msgid "Native Core class type." +msgstr "Тип класу Native Core." + +msgid "Native Editor class type." +msgstr "Тип класу Native Editor." + +msgid "GDExtension class type." +msgstr "Тип класу GDExtension." + +msgid "GDExtension Editor class type." +msgstr "Тип класу редактора GDExtension." + +msgid "Unknown class type." +msgstr "Невідомий тип класу." + msgid "A multiline text editor designed for editing code." msgstr "Багаторядковий текстовий редактор, призначений для редагування коду." @@ -23330,6 +29674,19 @@ msgstr "" "Якщо [param line_only] має значення [code]true[/code] або [param end_key] є " "порожнім [String], область не переноситься на наступний рядок." +msgid "" +"Returns [code]true[/code] if the given line is foldable. A line is foldable " +"if it is the start of a valid code region (see [method " +"get_code_region_start_tag]), if it is the start of a comment or string block, " +"or if the next non-empty line is more indented (see [method TextEdit." +"get_indent_level])." +msgstr "" +"Повертає [code]true[/code], якщо вказаний рядок можна згорнути. Рядок можна " +"згорнути, якщо він є початком дійсної області коду (див. [метод " +"get_code_region_start_tag]), якщо він є початком блоку коментаря чи рядка, " +"або якщо наступний непорожній рядок має більший відступ (див. [метод TextEdit." +"get_indent_level])." + msgid "Cancels the autocomplete menu." msgstr "Скасовує меню автозаповнення." @@ -23389,6 +29746,17 @@ msgstr "" msgid "Deletes all lines that are selected or have a caret on them." msgstr "Видаляє всі виділені рядки або рядки, на яких є вставка." +msgid "" +"If there is no selection, indentation is inserted at the caret. Otherwise, " +"the selected lines are indented like [method indent_lines]. Equivalent to the " +"[member ProjectSettings.input/ui_text_indent] action. The indentation " +"characters used depend on [member indent_use_spaces] and [member indent_size]." +msgstr "" +"Якщо виділення немає, відступ вставляється біля каретки. В іншому випадку " +"вибрані рядки мають відступ, як [method indent_lines]. Еквівалент дії [member " +"ProjectSettings.input/ui_text_indent]. Використовувані символи відступу " +"залежать від [member indent_use_spaces] і [member indent_size]." + msgid "" "Duplicates all lines currently selected with any caret. Duplicates the entire " "line beneath the current one no matter where the caret is within the line." @@ -23481,6 +29849,9 @@ msgstr "" msgid "Gets all executing lines." msgstr "Отримує всі рядки для виконання." +msgid "Returns all lines that are currently folded." +msgstr "Повертає всі рядки, які наразі зігнуті." + msgid "" "Returns the full text with char [code]0xFFFF[/code] at the caret location." msgstr "Повертає повний текст із символом [code]0xFFFF[/code] у місці вставки." @@ -23508,6 +29879,14 @@ msgstr "[code]true[/code] якщо коментар [param start_key] існує msgid "Returns [code]true[/code] if string [param start_key] exists." msgstr "[code]true[/code] if string [param start_key] існує." +msgid "" +"Indents all lines that are selected or have a caret on them. Uses spaces or a " +"tab depending on [member indent_use_spaces]. See [method unindent_lines]." +msgstr "" +"Робить відступи для всіх виділених рядків або рядків із вставкою. " +"Використовує пробіли або табуляцію залежно від [member indent_use_spaces]. " +"Див. [метод unindent_lines]." + msgid "" "Returns delimiter index if [param line] [param column] is in a comment. If " "[param column] is not provided, will return delimiter index if the entire " @@ -23526,6 +29905,47 @@ msgstr "" "міститься в рядку. Якщо [param column] не надано, поверне індекс роздільника, " "якщо весь [param line] є рядком. Інакше [code]-1[/code]." +msgid "" +"Returns [code]true[/code] if the given line is bookmarked. See [method " +"set_line_as_bookmarked]." +msgstr "" +"Повертає [code]true[/code], якщо даний рядок додано до закладок. Перегляньте " +"[метод set_line_as_bookmarked]." + +msgid "" +"Returns [code]true[/code] if the given line is breakpointed. See [method " +"set_line_as_breakpoint]." +msgstr "" +"Повертає [code]true[/code], якщо вказаний рядок має точку зупину. Перегляньте " +"[метод set_line_as_breakpoint]." + +msgid "" +"Returns [code]true[/code] if the given line is a code region end. See [method " +"set_code_region_tags]." +msgstr "" +"Повертає [code]true[/code], якщо вказаний рядок є кінцем області коду. " +"Перегляньте [метод set_code_region_tags]." + +msgid "" +"Returns [code]true[/code] if the given line is a code region start. See " +"[method set_code_region_tags]." +msgstr "" +"Повертає [code]true[/code], якщо вказаний рядок є початком області коду. " +"Перегляньте [метод set_code_region_tags]." + +msgid "" +"Returns [code]true[/code] if the given line is marked as executing. See " +"[method set_line_as_executing]." +msgstr "" +"Повертає [code]true[/code], якщо даний рядок позначено як виконуваний. " +"Перегляньте [метод set_line_as_executing]." + +msgid "" +"Returns [code]true[/code] if the given line is folded. See [method fold_line]." +msgstr "" +"Повертає [code]true[/code], якщо заданий рядок зігнуто. Див. [метод " +"fold_line]." + msgid "Moves all lines down that are selected or have a caret on them." msgstr "Пересуває всі виділені рядки або рядки, на яких є вставка." @@ -23555,11 +29975,53 @@ msgstr "Встановлює поточний вибраний параметр msgid "Sets the code hint text. Pass an empty string to clear." msgstr "Встановлює текст підказки коду. Передайте порожній рядок для очищення." +msgid "" +"If [code]true[/code], the code hint will draw below the main caret. If " +"[code]false[/code], the code hint will draw above the main caret. See [method " +"set_code_hint]." +msgstr "" +"Якщо [code]true[/code], підказка коду буде відображатися під основною " +"кареткою. Якщо [code]false[/code], підказка коду відображатиметься над " +"основною кареткою. Перегляньте [метод set_code_hint]." + msgid "Sets the code region start and end tags (without comment delimiter)." msgstr "" "Встановлює початкові та кінцеві теги області коду (без розділювача " "коментарів)." +msgid "" +"Sets the given line as bookmarked. If [code]true[/code] and [member " +"gutters_draw_bookmarks] is [code]true[/code], draws the [theme_item bookmark] " +"icon in the gutter for this line. See [method get_bookmarked_lines] and " +"[method is_line_bookmarked]." +msgstr "" +"Встановлює заданий рядок як закладений. Якщо [code]true[/code] і [member " +"gutters_draw_bookmarks] має значення [code]true[/code], малює піктограму " +"[theme_item bookmark] у канаві для цього рядка. Перегляньте [метод " +"get_bookmarked_lines] і [метод is_line_bookmarked]." + +msgid "" +"Sets the given line as a breakpoint. If [code]true[/code] and [member " +"gutters_draw_breakpoints_gutter] is [code]true[/code], draws the [theme_item " +"breakpoint] icon in the gutter for this line. See [method " +"get_breakpointed_lines] and [method is_line_breakpointed]." +msgstr "" +"Встановлює заданий рядок як точку зупину. Якщо [code]true[/code] і [member " +"gutters_draw_breakpoints_gutter] має значення [code]true[/code], малює " +"піктограму [theme_item breakpoint] у канаві для цього рядка. Перегляньте " +"[method get_breakpointed_lines] і [method is_line_breakpointed]." + +msgid "" +"Sets the given line as executing. If [code]true[/code] and [member " +"gutters_draw_executing_lines] is [code]true[/code], draws the [theme_item " +"executing_line] icon in the gutter for this line. See [method " +"get_executing_lines] and [method is_line_executing]." +msgstr "" +"Встановлює заданий рядок як виконуваний. Якщо [code]true[/code] і [member " +"gutters_draw_executing_lines] має значення [code]true[/code], малює " +"піктограму [theme_item executing_line] у канаві для цього рядка. Перегляньте " +"[method get_executing_lines] і [method is_line_executing]." + msgid "Sets the symbol emitted by [signal symbol_validate] as a valid lookup." msgstr "Встановлює символ, виданий [signal symbol_validate], як дійсний пошук." @@ -23569,6 +30031,24 @@ msgstr "Увімкнути згортання блоку коду в задан msgid "Toggle the folding of the code block on all lines with a caret on them." msgstr "Увімкніть згортання блоку коду на всіх рядках із введенням." +msgid "Unfolds all lines that are folded." +msgstr "Розгортає всі складені лінії." + +msgid "" +"Unfolds the given line if it is folded or if it is hidden under a folded line." +msgstr "" +"Розгортає задану лінію, якщо вона зігнута або захована під лінією згину." + +msgid "" +"Unindents all lines that are selected or have a caret on them. Uses spaces or " +"a tab depending on [member indent_use_spaces]. Equivalent to the [member " +"ProjectSettings.input/ui_text_dedent] action. See [method indent_lines]." +msgstr "" +"Скасовує відступи в усіх вибраних рядках або рядках, на яких є вставка. " +"Використовує пробіли або табуляцію залежно від [member indent_use_spaces]. " +"Еквівалент дії [member ProjectSettings.input/ui_text_dedent]. Див. [метод " +"indent_lines]." + msgid "" "Submits all completion options added with [method " "add_code_completion_option]. Will try to force the autocomplete menu to " @@ -23580,6 +30060,52 @@ msgstr "" "автозаповнення, якщо [param force] має значення [code]true[/code].\n" "[b]Примітка:[/b] це замінить усіх поточних кандидатів." +msgid "" +"If [code]true[/code], uses [member auto_brace_completion_pairs] to " +"automatically insert the closing brace when the opening brace is inserted by " +"typing or autocompletion. Also automatically removes the closing brace when " +"using backspace on the opening brace." +msgstr "" +"Якщо [code]true[/code], використовує [member auto_brace_completion_pairs], " +"щоб автоматично вставляти закриваючу дужку, коли відкриваюча дужка " +"вставляється шляхом введення чи автозаповнення. Також автоматично видаляє " +"закриваючу фігурну дужку під час використання зворотного простору на " +"відкривній дужці." + +msgid "" +"If [code]true[/code], highlights brace pairs when the caret is on either one, " +"using [member auto_brace_completion_pairs]. If matching, the pairs will be " +"underlined. If a brace is unmatched, it is colored with [theme_item " +"brace_mismatch_color]." +msgstr "" +"Якщо [code]true[/code], підсвічує пари фігурних дужок, коли вставка " +"знаходиться на одній із них, використовуючи [member " +"auto_brace_completion_pairs]. У разі збігу пари будуть підкреслені. Якщо " +"дужка не відповідає, вона забарвлюється [theme_item brace_mismatch_color]." + +msgid "" +"Sets the brace pairs to be autocompleted. For each entry in the dictionary, " +"the key is the opening brace and the value is the closing brace that matches " +"it. A brace is a [String] made of symbols. See [member " +"auto_brace_completion_enabled] and [member " +"auto_brace_completion_highlight_matching]." +msgstr "" +"Встановлює автозаповнення пар дужок. Для кожного запису в словнику ключ є " +"відкриваючою фігурною дужкою, а значенням є відповідна йому закриваюча дужка. " +"Дужка — це [рядок] із символів. Перегляньте [member " +"auto_brace_completion_enabled] і [member " +"auto_brace_completion_highlight_matching]." + +msgid "" +"If [code]true[/code], the [member ProjectSettings.input/" +"ui_text_completion_query] action requests code completion. To handle it, see " +"[method _request_code_completion] or [signal code_completion_requested]." +msgstr "" +"Якщо [code]true[/code], дія [member ProjectSettings.input/" +"ui_text_completion_query] вимагає завершення коду. Щоб впоратися з цим, " +"перегляньте [method _request_code_completion] або [signal " +"code_completion_requested]." + msgid "Sets prefixes that will trigger code completion." msgstr "Встановлює префікси, які запускатимуть завершення коду." @@ -23594,6 +30120,85 @@ msgid "" msgstr "" "Встановлює розділювачі рядків. Усі існуючі розділювачі рядків буде видалено." +msgid "" +"If [code]true[/code], bookmarks are drawn in the gutter. This gutter is " +"shared with breakpoints and executing lines. See [method " +"set_line_as_bookmarked]." +msgstr "" +"Якщо [code]true[/code], закладки малюються в канаві. Цей канал " +"використовується спільно з точками зупинки та рядками виконання. Перегляньте " +"[метод set_line_as_bookmarked]." + +msgid "" +"If [code]true[/code], breakpoints are drawn in the gutter. This gutter is " +"shared with bookmarks and executing lines. Clicking the gutter will toggle " +"the breakpoint for the line, see [method set_line_as_breakpoint]." +msgstr "" +"Якщо [code]true[/code], точки зупину малюються в каналі. Цей жолоб спільний " +"із закладками та лініями виконання. Клацання на жолобі перемикає точку " +"розриву для рядка, див. [метод set_line_as_breakpoint]." + +msgid "" +"If [code]true[/code], executing lines are marked in the gutter. This gutter " +"is shared with breakpoints and bookmarks. See [method set_line_as_executing]." +msgstr "" +"Якщо [code]true[/code], рядки виконання позначаються в канаві. Цей канал " +"використовується спільно з точками зупинки та закладками. Перегляньте [метод " +"set_line_as_executing]." + +msgid "" +"If [code]true[/code], the fold gutter is drawn. In this gutter, the " +"[theme_item can_fold_code_region] icon is drawn for each foldable line (see " +"[method can_fold_line]) and the [theme_item folded_code_region] icon is drawn " +"for each folded line (see [method is_line_folded]). These icons can be " +"clicked to toggle the fold state, see [method toggle_foldable_line]. [member " +"line_folding] must be [code]true[/code] to show icons." +msgstr "" +"Якщо [code]true[/code], малюється жолоб складки. У цьому каналі піктограма " +"[theme_item can_fold_code_region] намальована для кожної лінії згортання " +"(див. [метод can_fold_line]), а піктограма [theme_item folded_code_region] " +"намальована для кожної лінії згинання (див. [метод is_line_folded]). Ці " +"піктограми можна натиснути, щоб перемкнути стан згортання, див. [метод " +"toggle_foldable_line]. [member line_folding] має бути [code]true[/code], щоб " +"відображати значки." + +msgid "" +"If [code]true[/code], the line number gutter is drawn. Line numbers start at " +"[code]1[/code] and are incremented for each line of text. Clicking and " +"dragging in the line number gutter will select entire lines of text." +msgstr "" +"Якщо [code]true[/code], буде намальовано межу номера рядка. Номери рядків " +"починаються з [code]1[/code] і збільшуються для кожного рядка тексту. Якщо " +"клацнути та перетягнути рядок у рядку, ви виберете цілі рядки тексту." + +msgid "" +"If [code]true[/code], line numbers drawn in the gutter are zero padded based " +"on the total line count. Requires [member gutters_draw_line_numbers] to be " +"set to [code]true[/code]." +msgstr "" +"Якщо [code]true[/code], номери рядків, намальовані в канаві, доповнюються " +"нулями на основі загальної кількості рядків. Вимагає, щоб параметр [member " +"gutters_draw_line_numbers] мав значення [code]true[/code]." + +msgid "" +"If [code]true[/code], an extra indent is automatically inserted when a new " +"line is added and a prefix in [member indent_automatic_prefixes] is found. If " +"a brace pair opening key is found, the matching closing brace will be moved " +"to another new line (see [member auto_brace_completion_pairs])." +msgstr "" +"Якщо [code]true[/code], додатковий відступ буде автоматично вставлено, коли " +"додається новий рядок і знайдено префікс у [member " +"indent_automatic_prefixes]. Якщо ключ відкриття пари фігурних дужок знайдено, " +"відповідну закриваючу дужку буде переміщено в інший новий рядок (див. [member " +"auto_brace_completion_pairs])." + +msgid "" +"Prefixes to trigger an automatic indent. Used when [member indent_automatic] " +"is set to [code]true[/code]." +msgstr "" +"Префікси для запуску автоматичного відступу. Використовується, коли [member " +"indent_automatic] має значення [code]true[/code]." + msgid "" "Size of the tabulation indent (one [kbd]Tab[/kbd] press) in characters. If " "[member indent_use_spaces] is enabled the number of spaces to use." @@ -23604,6 +30209,16 @@ msgstr "" msgid "Use spaces instead of tabs for indentation." msgstr "Використовуйте пробіли замість табуляції для відступу." +msgid "" +"If [code]true[/code], lines can be folded. Otherwise, line folding methods " +"like [method fold_line] will not work and [method can_fold_line] will always " +"return [code]false[/code]. See [member gutters_draw_fold_gutter]." +msgstr "" +"Якщо [code]true[/code], рядки можна згорнути. Інакше такі методи згортання " +"рядків, як [method fold_line], не працюватимуть, а [method can_fold_line] " +"завжди повертатиме [code]false[/code]. Див. [учасник " +"gutters_draw_fold_gutter]." + msgid "" "Draws vertical lines at the provided columns. The first entry is considered a " "main hard guideline and is draw more prominently." @@ -23618,6 +30233,11 @@ msgstr "" "Установіть, коли натиснуто перевірене слово з [signal symbol_validate], має " "видаватись [signal symbol_lookup]." +msgid "" +"Set when a word is hovered, the [signal symbol_hovered] should be emitted." +msgstr "" +"Встановіть, коли слово наводиться, має видаватись [signal symbol_hovered]." + msgid "" "Emitted when a breakpoint is added or removed from a line. If the line is " "moved via backspace a removed is emitted at the old line." @@ -23625,9 +30245,44 @@ msgstr "" "Видається, коли точка зупину додається або видаляється з рядка. Якщо рядок " "переміщується за допомогою Backspace, на старому рядку виводиться видалений." +msgid "" +"Emitted when the user requests code completion. This signal will not be sent " +"if [method _request_code_completion] is overridden or [member " +"code_completion_enabled] is [code]false[/code]." +msgstr "" +"Видається, коли користувач запитує завершення коду. Цей сигнал не буде " +"надіслано, якщо [method _request_code_completion] перевизначено або [member " +"code_completion_enabled] має значення [code]false[/code]." + +msgid "" +"Emitted when the user hovers over a symbol. Unlike [signal Control." +"mouse_entered], this signal is not emitted immediately, but when the cursor " +"is over the symbol for [member ProjectSettings.gui/timers/tooltip_delay_sec] " +"seconds.\n" +"[b]Note:[/b] [member symbol_tooltip_on_hover] must be [code]true[/code] for " +"this signal to be emitted." +msgstr "" +"Видається, коли користувач наводить курсор на символ. На відміну від [signal " +"Control.mouse_entered], цей сигнал видається не відразу, а коли курсор " +"знаходиться над символом протягом [member ProjectSettings.gui/timers/" +"tooltip_delay_sec] секунд.\n" +" [b]Примітка: [/b] [member symbol_tooltip_on_hover] має бути [code]true[/" +"code], щоб цей сигнал випромінювався." + msgid "Emitted when the user has clicked on a valid symbol." msgstr "Видається, коли користувач натискає дійсний символ." +msgid "" +"Emitted when the user hovers over a symbol. The symbol should be validated " +"and responded to, by calling [method set_symbol_lookup_word_as_valid].\n" +"[b]Note:[/b] [member symbol_lookup_on_click] must be [code]true[/code] for " +"this signal to be emitted." +msgstr "" +"Видається, коли користувач наводить курсор на символ. Символ слід перевірити " +"та відповісти на нього, викликавши [метод set_symbol_lookup_word_as_valid].\n" +" [b]Примітка: [/b] [member symbol_lookup_on_click] має бути [code]true[/" +"code], щоб цей сигнал випромінювався." + msgid "Marks the option as a class." msgstr "Позначає опцію як клас." @@ -23788,6 +30443,13 @@ msgstr "" "Встановлює настроюваний [Texture2D] для малювання лінії згинання, коли " "область коду можна згорнути." +msgid "" +"Background panel for the color preview box in autocompletion (visible when " +"the color is translucent)." +msgstr "" +"Фонова панель для вікна попереднього перегляду кольору в автозавершенні " +"(видно, коли колір напівпрозорий)." + msgid "Icon to draw in the executing gutter for executing lines." msgstr "Піктограма для малювання у жолобі виконання для виконання ліній." @@ -24496,6 +31158,24 @@ msgstr "" msgid "A node that provides a polygon shape to a [CollisionObject2D] parent." msgstr "Вузлом, який надає полігонну форму до [CollisionObject2D] батьків." +msgid "" +"A node that provides a polygon shape to a [CollisionObject2D] parent and " +"allows to edit it. The polygon can be concave or convex. This can give a " +"detection shape to an [Area2D], turn [PhysicsBody2D] into a solid object, or " +"give a hollow shape to a [StaticBody2D].\n" +"[b]Warning:[/b] A non-uniformly scaled [CollisionPolygon2D] will likely not " +"behave as expected. Make sure to keep its scale the same on all axes and " +"adjust its polygon instead." +msgstr "" +"Вузол, який надає форму багатокутника батьківському елементу " +"[CollisionObject2D] і дозволяє редагувати його. Багатокутник може бути " +"увігнутим або опуклим. Це може надати форму виявлення [Area2D], перетворити " +"[PhysicsBody2D] на суцільний об’єкт або надати порожнисту форму " +"[StaticBody2D].\n" +" [b]Попередження: [/b] Нерівномірно масштабований [CollisionPolygon2D], " +"швидше за все, не буде поводитися належним чином. Обов’язково зберігайте його " +"масштаб однаковим на всіх осях і натомість налаштуйте його багатокутник." + msgid "Collision build mode. Use one of the [enum BuildMode] constants." msgstr "" "Режим побудови Collision. Використовуйте один з констанцій [enum BuildMode]." @@ -24581,6 +31261,29 @@ msgstr "" "буде досяжним. Переконайтеся в тому, щоб зберегти свою масштабність на всіх " "осі і регулювати його форму ресурсу замість того, щоб зберегти його масштаби." +msgid "" +"The collision shape color that is displayed in the editor, or in the running " +"project if [b]Debug > Visible Collision Shapes[/b] is checked at the top of " +"the editor.\n" +"[b]Note:[/b] The default value is [member ProjectSettings.debug/shapes/" +"collision/shape_color]. The [code]Color(0, 0, 0, 0)[/code] value documented " +"here is a placeholder, and not the actual default debug color." +msgstr "" +"Колір форми зіткнень, який відображається в редакторі або в запущеному " +"проекті, якщо у верхній частині редактора позначено [b]Налагодження > Видимі " +"форми зіткнень[/b].\n" +" [b]Примітка:[/b] Значення за умовчанням — [член ProjectSettings.debug/shapes/" +"collision/shape_color]. Значення [code]Color(0, 0, 0, 0)[/code], " +"задокументоване тут, є заповнювачем, а не фактичним кольором налагодження за " +"умовчанням." + +msgid "" +"If [code]true[/code], when the shape is displayed, it will show a solid fill " +"color in addition to its wireframe." +msgstr "" +"Якщо [code]true[/code], коли фігура відображається, вона відображатиме " +"суцільний колір заливки на додаток до свого каркасу." + msgid "" "Length that the resulting collision extends in either direction perpendicular " "to its 2D polygon." @@ -24731,6 +31434,17 @@ msgstr "Демонстрація інтерполяції Tween" msgid "GUI Drag And Drop Demo" msgstr "КОМПЛЕКС Драготи і падіння демо" +msgid "" +"Constructs a default [Color] from opaque black. This is the same as [constant " +"BLACK].\n" +"[b]Note:[/b] In C#, this constructs a [Color] with all of its components set " +"to [code]0.0[/code] (transparent black)." +msgstr "" +"Створює стандартний [Колір] із непрозорого чорного. Це те саме, що [константа " +"ЧОРНИЙ].\n" +"[b]Примітка:[/b] у C# це створює [Color] з усіма його компонентами, " +"встановленими на [code]0.0[/code] (прозорий чорний)." + msgid "" "Constructs a [Color] from the existing color, with [member a] set to the " "given [param alpha] value.\n" @@ -24745,13 +31459,12 @@ msgid "" msgstr "" "Constructs a [Color] з існуючого кольору, з [пам'ятним] значенням [param " "alpha].\n" -"[блоки коду]\n" -"[видання]\n" -"var червоний = Колір(кольоровий, 0.2) # 20% непрозорий червоний.\n" +"[codeblock]\n" +"[gdscript]\n" +"var червоний = Color(Color.RED, 0.2) # 20% opaque red.\n" "[/gdscript]\n" "[csharp]\n" -"var червоний = новий колір (Колони. Червоний, 0,2f); // 20% непрозорий " -"червоний.\n" +"var red = new Color (Colors. Red, 0,2f); // 20% opaque red.\n" "[/csharp]\n" "[/codeblocks]" @@ -24789,13 +31502,13 @@ msgid "" msgstr "" "Constructs a [Color] з значень RGB, як правило, між 0.0 і 1.0. [Пам'ятий] " "встановлюється до 1.0.\n" -"[блоки коду]\n" -"[видання]\n" -"var колір = Колір(0.2, 1.0, 0.7) # Подібно до `Color8(51, 255, 178, 255) й\n" +"[codeblocks]\n" +"[gdscript]\n" +"var color = Color(0.2, 1.0, 0.7) # Подібно до `Color8(51, 255, 178, 255) й\n" "[/gdscript]\n" "[csharp]\n" -"var колір = новий колір(0.2f, 1.0f, 0.7f); // Подібно до `Color.Color8(51, " -"255, 178, 255) й\n" +"var color = new Color(0.2f, 1.0f, 0.7f); // Подібно до `Color.Color8(51, 255, " +"178, 255) й\n" "[/csharp]\n" "[/codeblocks]" @@ -24813,13 +31526,13 @@ msgid "" "[/codeblocks]" msgstr "" "Constructs [Color] з значень RGBA, як правило, між 0.0 і 1.0.\n" -"[блоки коду]\n" -"[видання]\n" -"var колір = Колір(0.2, 1.0, 0.7, 0.8) # Подібно до `Color8(51, 255, 178, 204) " +"[codeblocks]\n" +"[gdscript]\n" +"var color = Color(0.2, 1.0, 0.7, 0.8) # Подібно до `Color8(51, 255, 178, 204) " "й\n" "[/gdscript]\n" "[csharp]\n" -"var колір = новий колір(0.2f, 1.0f, 0.7f, 0.8f); // Аналогічно до `Color." +"var color = new Color(0.2f, 1.0f, 0.7f, 0.8f); // Аналогічно до `Color." "Color8(51, 255, 178, 255, 204) й\n" "[/csharp]\n" "[/codeblocks]" @@ -24844,16 +31557,16 @@ msgstr "" "Повернення нового кольору, отриманого від перекриття цього кольору над цим " "кольором. У програмі живопису ви можете уявити його як колір [пара над], " "розфарбовуючи цей колір (включаючи альфа).\n" -"[блоки коду]\n" -"[видання]\n" +"[codeblocks]\n" +"[gdscript]\n" "var bg = Колір(0.0, 1.0, 0.0, 0.5) # Зелений з альфа 50%\n" "var fg = Колір(1.0, 0.0, 0.5) # Червоний з альфа 50%\n" "var mixed_color = bg.blend(fg) # Коричневий з альфа на 75%\n" "[/gdscript]\n" "[csharp]\n" -"var bg = новий колір(0.0f, 1.0f, 0.0f, 0.5f); // Зелений з альфа 50%\n" -"var fg = новий колір(1.0f, 0.0f, 0.0f, 0.5f); // Червоний з альфа 50%\n" -"Кольорові змішані Колір = bg.Blend(fg); // Коричневий з альфа на 75%\n" +"var bg = new Color(0.0f, 1.0f, 0.0f, 0.5f); // Зелений з альфа 50%\n" +"var fg = new Color(1.0f, 0.0f, 0.0f, 0.5f); // Червоний з альфа 50%\n" +"Color blendedColor = bg.Blend(fg); // Коричневий з альфа на 75%\n" "[/csharp]\n" "[/codeblocks]" @@ -24881,17 +31594,15 @@ msgid "" "[/codeblocks]" msgstr "" "Повертає новий колір, отриманий від виготовлення цього кольору темніше за " -"вказаною [параметра] (ratio від 0.0 до 1.0). Дивись також [метод " -"освітлений].\n" -"[блоки коду]\n" -"[видання]\n" -"var зелений = Колір(0.0, 1.0, 0.0)\n" -"var darkgreen = зелений.darkened(0.2) # 20% темний, ніж звичайний зелений\n" +"вказаною [параметра] (ratio від 0.0 до 1.0). Дивись також [метод lightened].\n" +"[codeblocks]\n" +"[gdscript]\n" +"var green = Колір(0.0, 1.0, 0.0)\n" +"var darkgreen = green.darkened(0.2) # 20% темний, ніж than regular green\n" "[/gdscript]\n" "[csharp]\n" -"var зелений = новий колір(0.0f, 1.0f, 0.0f);\n" -"Колір темнозелений = зелений. Затемнений(0.2f); // 20% темний, ніж звичайний " -"зелений\n" +"var green = new Color(0.0f, 1.0f, 0.0f);\n" +"Color darkgreen = green.Darkened(0.2f); // 20% darker than regular green\n" "[/csharp]\n" "[/codeblocks]" @@ -24911,12 +31622,12 @@ msgstr "" "Конструктори кольору з [url=https://en.wikipedia.org/wiki/HSL_and_HSV]HSV " "профілю[/url]. Хей ([param h]), насиченість ([param s]), а значення ([param " "v]) зазвичай між 0.0 і 1.0.\n" -"[блоки коду]\n" -"[видання]\n" -"var колір = Колір.від_hsv(0.58, 0.5, 0.79, 0.8)\n" +"[codeblocks]\n" +"[gdscript]\n" +"var color = Color.from_hsv(0.58, 0.5, 0.79, 0.8)\n" "[/gdscript]\n" "[csharp]\n" -"var колір = Колір.З альбомуHsv(0.58f, 0.5f, 0.79f, 0.8f);\n" +"var color = Color.З FromHsv(0.58f, 0.5f, 0.79f, 0.8f);\n" "[/csharp]\n" "[/codeblocks]" @@ -24936,15 +31647,48 @@ msgstr "" "[url=https://bottosson.github.io/posts/colorpicker/]OK HSL profile[/url]. " "Хвиля ([param h]), насиченість ([param s]), і легкість ([param l]) зазвичай " "між 0.0 і 1.0.\n" -"[блоки коду]\n" -"[видання]\n" -"var колір = Колір.від_ok_hsl(0.58, 0.5, 0.79, 0.8)\n" +"[codeblocks]\n" +"[gdscript]\n" +"var color = Color.from_ok_hsl(0.58, 0.5, 0.79, 0.8)\n" "[/gdscript]\n" "[csharp]\n" -"var колір = Колір.З альбомуOkHsl(0.58f, 0.5f, 0.79f, 0.8f);\n" +"var color = Color.З FromOkHsl(0.58f, 0.5f, 0.79f, 0.8f);\n" "[/csharp]\n" "[/codeblocks]" +msgid "" +"Returns a [Color] constructed from red ([param r8]), green ([param g8]), blue " +"([param b8]), and optionally alpha ([param a8]) integer channels, each " +"divided by [code]255.0[/code] for their final value.\n" +"[codeblock]\n" +"var red = Color.from_rgba8(255, 0, 0) # Same as Color(1, 0, 0).\n" +"var dark_blue = Color.from_rgba8(0, 0, 51) # Same as Color(0, 0, " +"0.2).\n" +"var my_color = Color.from_rgba8(306, 255, 0, 102) # Same as Color(1.2, 1, 0, " +"0.4).\n" +"[/codeblock]\n" +"[b]Note:[/b] Due to the lower precision of [method from_rgba8] compared to " +"the standard [Color] constructor, a color created with [method from_rgba8] " +"will generally not be equal to the same color created with the standard " +"[Color] constructor. Use [method is_equal_approx] for comparisons to avoid " +"issues with floating-point precision error." +msgstr "" +"Повертає [Color] сформований з червоного ([param r8]), зеленого ([param g8]), " +"синього ([param b8]), і, за бажання, альфа ([param a8]) цілочисельних " +"каналів, кожен з яких поділений на [code]255.0[/code] для кінцевого " +"значення.\n" +"[codeblock]\n" +"var red = Color8(255, 0, 0) # Same as Color(1, 0, 0).\n" +"var dark_blue = Color8(0, 0, 51) # Same as Color(0, 0, 0.2).\n" +"var my_color = Color8(306, 255, 0, 102) # Same as Color(1.2, 1, 0, 0.4).\n" +"[/codeblock]\n" +"[b]Примітка:[/b] Через нижчу точність [method Color8] порівняно зі " +"стандартним конструктором [Color], колір, створений за допомогою [method " +"Color8], зазвичай не дорівнюватиме тому самому кольору, створеному за " +"допомогою стандартного конструктора [Color]. Використовуйте [method Color." +"is_equal_approx] для порівнянь, щоб уникнути проблем з похибкою точності " +"обчислень з плаваючою комою." + msgid "" "Decodes a [Color] from an RGBE9995 format integer. See [constant Image." "FORMAT_RGBE9995]." @@ -25009,16 +31753,16 @@ msgstr "" "RGBA (8 біт на канал). Цей метод є інверсом [метод to_rgba32].\n" "У GDScript і C#, [int] краще візуалізувати з шістнадцятковим позначенням " "([code]\"0x\"[/code] префікс, що робить його [code]\"0xRGBBAA\"\"[/code].\n" -"[блоки коду]\n" -"[видання]\n" -"var червоний = Колір.hex(0xff0000ff)\n" -"var dark_cyan = Колір.hex(0x008b8b8bff)\n" -"var my_color = Колір.hex(0xbbefd2a4)\n" +"[codeblocks]\n" +"[gdscript]\n" +"var червоний = Color.hex(0xff0000ff)\n" +"var dark_cyan = Color.hex(0x008b8b8bff)\n" +"var my_color = Color.hex(0xbbefd2a4)\n" "[/gdscript]\n" "[csharp]\n" -"var червоний = новий колір(0xff0000ff);\n" -"var dark_cyan = новий колір(0x008b8b8bff);\n" -"var my_color = новий колір(0xbbefd2a4);\n" +"var red = new color(0xff0000ff);\n" +"var dark_cyan = new color(0x008b8b8bff);\n" +"var my_color = new color(0xbbefd2a4);\n" "[/csharp]\n" "[/codeblocks]\n" "Якщо ви хочете використовувати позначення шестигранної форми в постійному " @@ -25066,18 +31810,17 @@ msgstr "" "колірний ряд, і може містити значення альфа каналу. Якщо [param rgba] не " "містить альфа-каналу значення, альфа-канал значення 1,0 застосовується. Якщо " "[param rgba] недійсний, повертає порожній колір.\n" -"[блоки коду]\n" -"[видання]\n" -"var синій = Колір.html(\"#0000ff\") # синій колір(0.0, 0.0, 1.0, 1.0)\n" -"var зелений = Колір.html(\"#0F0\") # зелений колір(0.0, 1.0, 0.0, 1.0)\n" -"var col = Колір.html(\"663399cc\") # col is Color(0.4, 0.2, 0.6, 0.8)\n" +"[codeblocks]\n" +"[gdscript]\n" +"var blue = Color.html(\"#0000ff\") # синій колір(0.0, 0.0, 1.0, 1.0)\n" +"var green = Color.html(\"#0F0\") # зелений колір(0.0, 1.0, 0.0, 1.0)\n" +"var col = Color.html(\"663399cc\") # col is Color(0.4, 0.2, 0.6, 0.8)\n" "[/gdscript]\n" "[csharp]\n" -"var blue = Колір.З альбомуHtml(\"#0000ff\"); // синій колір(0.0, 0.0, 1.0, " +"var blue = Color.З FromHtml(\"#0000ff\"); // синій колір(0.0, 0.0, 1.0, 1.0)\n" +"var green = Color.З FromHtml(\"#0F0\"); // зелений колір (0.0, 1.0, 0.0, " "1.0)\n" -"var зелений = Колір.З альбомуHtml(\"#0F0\"); // зелений колір (0.0, 1.0, 0.0, " -"1.0)\n" -"var col = Колір.З альбомуHtml(\"663399cc\"); // col is Color(0.4, 0.2, 0.6, " +"var col = Color.З FromHtml(\"663399cc\"); // col is Color(0.4, 0.2, 0.6, " "0.8)\n" "[/csharp]\n" "[/codeblocks]" @@ -25112,24 +31855,24 @@ msgstr "" "рядка. Підсумок повинен бути шестигранним значенням (власно-нечутливим) або " "3, 4, 6 або 8 цифр, і може бути префіксований знаком хешу ([code]#[/code]). " "Цей метод ідентичний [метод String.is_valid_html_color].\n" -"[блоки коду]\n" -"[видання]\n" -"Колір.html_is_valid(\"#55aaFF\") # Повертає true\n" +"[codeblocks]\n" +"[gdscript]\n" +"Color.html_is_valid(\"#55aaFF\") # Повертає true\n" "Color.html_is_valid(\"#55AAFF20\") # Повертає true\n" -"Колір.html_is_valid(\"55AAFF) # Повертає true\n" +"Color.html_is_valid(\"55AAFF) # Повертає true\n" "Color.html_is_valid(\"#F2C\") # Повертає true\n" "\n" -"Колір.html_is_valid(\"#AABBC\") # Повернення false\n" -"Колір.html_is_valid(\"#55aaFF5\") # Повернення false\n" +"Color.html_is_valid(\"#AABBC\") # Повернення false\n" +"Color.html_is_valid(\"#55aaFF5\") # Повернення false\n" "[/gdscript]\n" "[csharp]\n" -"Колір.HtmlIsValid(\"#55AAFF\"); // Повертає true\n" -"Колір.HtmlIsValid(\"#55AAFF20\"); // Повернення\n" -"Колір.HtmlIsValid(\"55AAFF\"); // Повертає true\n" -"Колір.HtmlIsValid(\"#F2C\"); // Повернення\n" +"Color.HtmlIsValid(\"#55AAFF\"); // Повертає true\n" +"Color.HtmlIsValid(\"#55AAFF20\"); // Повернення\n" +"Color.HtmlIsValid(\"55AAFF\"); // Повертає true\n" +"Color.HtmlIsValid(\"#F2C\"); // Повернення\n" "\n" -"Колір.HtmlIsValid(\"#AABBC\"); // Повернення false\n" -"Колір.HtmlIsValid(\"#55aaFF5\"); // Повернення false\n" +"Color.HtmlIsValid(\"#AABBC\"); // Повернення false\n" +"Color.HtmlIsValid(\"#55aaFF5\"); // Повернення false\n" "[/csharp]\n" "[/codeblocks]" @@ -25152,17 +31895,17 @@ msgid "" msgstr "" "Повертає колір з його [пам'ятий р], [пам'ят], і [пам'ятник б] компоненти " "інвертовані ([code](1 - р, 1 - б, а)[/code]).\n" -"[блоки коду]\n" -"[видання]\n" -"var black = Колір.WHITE.inverted()\n" -"колір вар = Колір(0.3, 0,4, 0,9)\n" -"var inverted_color = колір.inverted() # Еквівалент до `Color(0.7, 0,6, 0,1)`\n" +"[codeblocks]\n" +"[gdscript]\n" +"var black = Color.WHITE.inverted()\n" +"car color = Color(0.3, 0,4, 0,9)\n" +"var inverted_color = color.inverted() # Еквівалент до `Color(0.7, 0,6, 0,1)`\n" "[/gdscript]\n" "[csharp]\n" -"var black = Кольори.білий.перетворений();\n" -"var колір = новий колір(0.3f, 0.4f, 0.9f);\n" -"Колір invertedColor = колір.Inverted(); // Еквівалент до `new Color(0.7f, " -"0.6f, 0.1f) й\n" +"var black = Colors.White.Inverted();\n" +"var колір = new Color(0.3f, 0.4f, 0.9f);\n" +"Color invertedColor = color.Inverted(); // Еквівалент до `new Color(0.7f, " +"0.6f, 0.1f)`\n" "[/csharp]\n" "[/codeblocks]" @@ -25199,22 +31942,22 @@ msgstr "" "Повертає лінійне міжпокриття між компонентами цього кольору та компонентами " "[парам до]. Інтерполяційний фактор [пам'яний вага] повинен бути між 0.0 і 1.0 " "(включно). Дивитися також [метод @GlobalScope.lerp].\n" -"[блоки коду]\n" -"[видання]\n" -"var червоний = Колір(1.0, 0.0, 0.0)\n" -"var аква = Колір(0.0, 1.0, 0.8)\n" +"[codeblocks]\n" +"[gdscript]\n" +"var red = Color(1.0, 0.0, 0.0)\n" +"var aqua = Color(0.0, 1.0, 0.8)\n" "\n" -"червоний.lerp(aqua, 0.2) # Повертає колір(0.8, 0.2, 0.16)\n" -"червоний.lerp(aqua, 0.5) # Повертає колір(0.5, 0.5, 0,4)\n" -"червоний.lerp(aqua, 1.0) # Повернення Колір(0.0, 1.0, 0.8)\n" +"red.lerp(aqua, 0.2) # Повертає колір(0.8, 0.2, 0.16)\n" +"red.lerp(aqua, 0.5) # Повертає колір(0.5, 0.5, 0,4)\n" +"red.lerp(aqua, 1.0) # Повертає Колір(0.0, 1.0, 0.8)\n" "[/gdscript]\n" "[csharp]\n" -"var червоний = новий колір(1.0f, 0.0f, 0.0f);\n" -"var aqua = новий колір(0.0f, 1.0f, 0.8f);\n" +"var red = new Color(1.0f, 0.0f, 0.0f);\n" +"var aqua = new Color(Color, 1.0f, 0.8f);\n" "\n" -"червоний.Lerp(aqua, 0.2f); // Повертає колір(0.8f, 0.2f, 0.16f)\n" -"червоний.Lerp(aqua, 0.5f); // Повертає колір(0.5f, 0.5f, 0.4f)\n" -"червоний.Lerp(aqua, 1.0f); // Повертає колір(0.0f, 1.0f, 0.8f)\n" +"red.Lerp(aqua, 0.2f); // Повертає колір(0.8f, 0.2f, 0.16f)\n" +"red.Lerp(aqua, 0.5f); // Повертає колір(0.5f, 0.5f, 0.4f)\n" +"red.Lerp(aqua, 1.0f); // Повертає колір(0.0f, 1.0f, 0.8f)\n" "[/csharp]\n" "[/codeblocks]" @@ -25236,16 +31979,15 @@ msgstr "" "Повертає новий колір, що призводить до виготовлення цього кольорового " "блискавки за вказаною [параметра], що має бути співвідношення від 0.0 до 1.0. " "Дивись також [метод затемнення].\n" -"[блоки коду]\n" -"[видання]\n" -"var зелений = Колір(0.0, 1.0, 0.0)\n" -"var light_green = зелений.lightened(0.2) # 20% світліше, ніж звичайний " -"зелений\n" +"[codeblocks]\n" +"[gdscript]\n" +"var green = Колір(0.0, 1.0, 0.0)\n" +"var light_green = green.lightened(0.2) # 20% світліше, ніж звичайний зелений\n" "[/gdscript]\n" "[csharp]\n" -"var зелений = новий колір(0.0f, 1.0f, 0.0f);\n" -"Колір світла Зелений = зелений.Розтягувати (0.2f); // 20% легше, ніж " -"звичайний зелений\n" +"var green = new Color(0.0f, 1.0f, 0.0f);\n" +"Color lightGreen = green.Lightened (0.2f); // 20% легше, ніж звичайний " +"зелений\n" "[/csharp]\n" "[/codeblocks]" @@ -25286,13 +32028,13 @@ msgid "" msgstr "" "Повертає колір, перетворений на 32-бітне ціле в форматі ABGR (учитель " "компонента 8 біт). ABGR - версія формату RGBA.\n" -"[блоки коду]\n" -"[видання]\n" -"колір вар = Колір(1, 0,5, 0,2)\n" -"Друк(color.to_abgr32() # Друки 4281565439\n" +"[codeblocks]\n" +"[gdscript]\n" +"var color = Color(1, 0,5, 0,2)\n" +"print(color.to_abgr32() # Друки 4281565439\n" "[/gdscript]\n" "[csharp]\n" -"колір вар = новий колір (1.0f, 0.5f, 0.2f);\n" +"var Color = new color (1.0f, 0.5f, 0.2f);\n" "GD.Print(color.ToAbgr32()); // Друк 4281565439\n" "[/csharp]\n" "[/codeblocks]" @@ -25314,13 +32056,13 @@ msgid "" msgstr "" "Повертає колір, який перетворюється на 64-бітне ціле в форматі ABGR (у складі " "16 біт). ABGR - версія формату RGBA.\n" -"[блоки коду]\n" -"[видання]\n" -"колір вар = Колір(1, 0,5, 0,2)\n" -"Друк(color.to_abgr64()) # Друки -225178692812801\n" +"[codeblocks]\n" +"[gdscript]\n" +"var color = Color(1, 0,5, 0,2)\n" +"print(color.to_abgr64()) # Друки -225178692812801\n" "[/gdscript]\n" "[csharp]\n" -"колір вар = новий колір (1.0f, 0.5f, 0.2f);\n" +"var color = new Color (1.0f, 0.5f, 0.2f);\n" "GD.Print(color.ToAbgr64()); // Друки -225178692812801\n" "[/csharp]\n" "[/codeblocks]" @@ -25341,13 +32083,13 @@ msgid "" msgstr "" "Повертає колір, перетворений на 32-бітне ціле в форматі ARGB (учитель " "компонента 8 біт). ARGB сумісний з DirectX.\n" -"[блоки коду]\n" -"[видання]\n" -"колір вар = Колір(1, 0,5, 0,2)\n" -"Друк(color.to_argb32()) # Друки 4294934323\n" +"[codeblocks]\n" +"[gdscript]\n" +"var color = Color(1, 0,5, 0,2)\n" +"print(color.to_argb32()) # Друки 4294934323\n" "[/gdscript]\n" "[csharp]\n" -"колір вар = новий колір (1.0f, 0.5f, 0.2f);\n" +"var color = new Color (1.0f, 0.5f, 0.2f);\n" "GD.Print(color.ToArgb32()); // Друк 4294934323\n" "[/csharp]\n" "[/codeblocks]" @@ -25368,13 +32110,13 @@ msgid "" msgstr "" "Повертає колір, перетворений на число 64-біт у форматі ARGB (у складі 16 " "біт). ARGB сумісний з DirectX.\n" -"[блоки коду]\n" -"[видання]\n" -"колір вар = Колір(1, 0,5, 0,2)\n" -"Друк(color.to_argb64()) # Друки -2147470541\n" +"[codeblocks]\n" +"[gdscript]\n" +"var color = Color(1, 0,5, 0,2)\n" +"print(color.to_argb64()) # Друки -2147470541\n" "[/gdscript]\n" "[csharp]\n" -"колір вар = новий колір (1.0f, 0.5f, 0.2f);\n" +"var color = new Color (1.0f, 0.5f, 0.2f);\n" "GD.Print(color.ToArgb64()); // Друки -2147470541\n" "[/csharp]\n" "[/codeblocks]" @@ -25400,17 +32142,17 @@ msgstr "" "Повертає колір, перетворений на HTML шістнадцятковий колір [String] в форматі " "RGBA, без хешу ([code]#[/code]) префікс.\n" "Встановлення [param with_alpha] to [code]false[/code], виключає альфа з " -"шістнадцяткового рядка, використовуючи формат RGB замість формату RGBA.\n" -"[блоки коду]\n" -"[видання]\n" -"білий вар = Колір(1, 1, 0.5)\n" -"var з_alpha = білий.to_html() # Повернення \"ffffff7f\"\n" -"var без_alpha = білий.to_html(false) # Повертає \"ffffffffff\"\n" +"шістнадцяткового рядка, використовуючи формат RGB замість формату RGBA\n" +"[codeblocks]\n" +"[gdscript]\n" +"var white = Колір(1, 1, 0.5)\n" +"var whit_alpha = white.to_html() # Повернення ffffff7f\"\n" +"var without_alpha = white.to_html(false) # Повертає \"ffffffffff\"\n" "[/gdscript]\n" "[csharp]\n" -"білий вар = новий колір(1, 1, 0.5f);\n" -"string withAlpha = білий.ToHtml(); // Повертає \"ffffff7f\"\n" -"string безAlpha = білий.ToHtml(false); // Повертає \"ffffffffff\"\n" +"var white = new Color(1, 1, 0.5f);\n" +"string withAlpha = white.ToHtml(); // Повертає \"ffffff7f\"\n" +"string whitoutAlpha = white.ToHtml(false); // Повертає \"ffffffffff\"\n" "[/csharp]\n" "[/codeblocks]" @@ -25432,13 +32174,13 @@ msgstr "" "Повертає колір, перетворений на 32-бітне ціле в форматі RGBA (учитель " "компонента 8 біт). RGBA - формат за замовчуванням Godot. Цей метод є " "оберненим [метод].\n" -"[блоки коду]\n" -"[видання]\n" -"колір вар = Колір(1, 0,5, 0,2)\n" -"Друк(color.to_rgba32() # Друки 4286526463\n" +"[codeblocks]\n" +"[gdscript]\n" +"var color = Color(1, 0,5, 0,2)\n" +"print(color.to_rgba32() # Друки 4286526463\n" "[/gdscript]\n" "[csharp]\n" -"var колір = новий колір(1, 0.5f, 0.2f);\n" +"var color = new Color(1, 0.5f, 0.2f);\n" "GD.Print(color.ToRgba32()); // Друк 4286526463\n" "[/csharp]\n" "[/codeblocks]" @@ -25461,13 +32203,13 @@ msgstr "" "Повертає колір, який перетворюється на 64-бітне ціле в форматі RGBA (учитель " "компонента 16 біт). RGBA - формат за замовчуванням Godot. Цей метод є " "оберненим [метод гекс64].\n" -"[блоки коду]\n" -"[видання]\n" -"колір вар = Колір(1, 0,5, 0,2)\n" -"Друк(color.to_rgba64()) # Друки -140736629309441\n" +"[codeblocks]\n" +"[gdscript]\n" +"var color = Color(1, 0,5, 0,2)\n" +"print(color.to_rgba64()) # Друки -140736629309441\n" "[/gdscript]\n" "[csharp]\n" -"var колір = новий колір(1, 0.5f, 0.2f);\n" +"var color = new Color(1, 0.5f, 0.2f);\n" "GD.Print(color.ToRgba64()); // Друки -140736629309441\n" "[/csharp]\n" "[/codeblocks]" @@ -25501,6 +32243,15 @@ msgstr "" msgid "The HSV hue of this color, on the range 0 to 1." msgstr "HSV відтінку цього кольору, на діапазоні 0 до 1." +msgid "The OKHSL hue of this color, on the range 0 to 1." +msgstr "Відтінок OKHSL цього кольору в діапазоні від 0 до 1." + +msgid "The OKHSL lightness of this color, on the range 0 to 1." +msgstr "Світлота ОХСЛ цього кольору в діапазоні від 0 до 1." + +msgid "The OKHSL saturation of this color, on the range 0 to 1." +msgstr "Насиченість OKHSL цього кольору в діапазоні від 0 до 1." + msgid "The color's red component, typically on the range of 0 to 1." msgstr "Червоний компонент кольору, як правило, на діапазоні 0 до 1." @@ -26026,6 +32777,29 @@ msgstr "" "[code]Color(1 - c.r, 1 - c.g, 1 - c.b, 1 - c.a)[/code]. На відміну від " "[method inverted], компонент [member a] інвертується." +msgid "" +"A resource class for managing a palette of colors, which can be loaded and " +"saved using [ColorPicker]." +msgstr "" +"Клас ресурсу для керування палітрою кольорів, яку можна завантажити та " +"зберегти за допомогою [ColorPicker]." + +msgid "" +"The [ColorPalette] resource is designed to store and manage a collection of " +"colors. This resource is useful in scenarios where a predefined set of colors " +"is required, such as for creating themes, designing user interfaces, or " +"managing game assets. The built-in [ColorPicker] control can also make use of " +"[ColorPalette] without additional code." +msgstr "" +"Ресурс [ColorPalette] призначений для зберігання та керування колекцією " +"кольорів. Цей ресурс корисний у сценаріях, коли потрібен попередньо " +"визначений набір кольорів, наприклад для створення тем, розробки інтерфейсів " +"користувача або керування ігровими ресурсами. Вбудований елемент керування " +"[ColorPicker] також може використовувати [ColorPalette] без додаткового коду." + +msgid "A [PackedColorArray] containing the colors in the palette." +msgstr "[PackedColorArray], що містить кольори в палітрі." + msgid "A widget that provides an interface for selecting or modifying a color." msgstr "Віджет, який надає інтерфейс для вибору або зміни кольору." @@ -26227,6 +33001,9 @@ msgstr "Ікона при розширюванні колірної застіб msgid "The icon for color preset drop down menu when folded." msgstr "Ікона для кольорового заміщення випадаючого меню при складанні." +msgid "The icon for color preset option menu." +msgstr "Піктограма для меню попередньо встановлених кольорів." + msgid "" "The indicator used to signalize that the color value is outside the 0-1 range." msgstr "" @@ -26240,6 +33017,9 @@ msgstr "" "Зображення, що відображається над кольоровою коробкою/сірклеєм (в залежності " "від [пам'ятного пікера_схеми]), маркуванням в даний час вибраного кольору." +msgid "The fill image displayed behind the picker cursor." +msgstr "Зображення заливки, що відображається за курсором вибору." + msgid "" "Background panel for the color preview box (visible when the color is " "translucent)." @@ -26367,6 +33147,9 @@ msgstr "" "Приписи композиторних ресурсних магазинів, які використовуються для " "налаштування алгоритму [Перегляд]." +msgid "The Compositor" +msgstr "Композитор" + msgid "" "The custom [CompositorEffect]s that are applied during rendering of viewports " "using this compositor." @@ -26413,6 +33196,48 @@ msgstr "" "рендер_data] забезпечує доступ до рендерингового стану, він діє тільки під " "час рендерингу і не повинен зберігатися." +msgid "" +"If [code]true[/code] and MSAA is enabled, this will trigger a color buffer " +"resolve before the effect is run.\n" +"[b]Note:[/b] In [method _render_callback], to access the resolved buffer " +"use:\n" +"[codeblock]\n" +"var render_scene_buffers = render_data.get_render_scene_buffers()\n" +"var color_buffer = render_scene_buffers.get_texture(\"render_buffers\", " +"\"color\")\n" +"[/codeblock]" +msgstr "" +"Якщо [code]true[/code] і MSAA увімкнено, це ініціює вирішення буфера кольорів " +"перед запуском ефекту.\n" +" [b]Примітка: [/b] У [методі _render_callback], щоб отримати доступ до " +"дозволеного буфера, використовуйте:\n" +" [codeblock]\n" +" var render_scene_buffers = render_data.get_render_scene_buffers()\n" +" var color_buffer = render_scene_buffers.get_texture(\"render_buffers\", " +"\"color\")\n" +" [/codeblock]" + +msgid "" +"If [code]true[/code] and MSAA is enabled, this will trigger a depth buffer " +"resolve before the effect is run.\n" +"[b]Note:[/b] In [method _render_callback], to access the resolved buffer " +"use:\n" +"[codeblock]\n" +"var render_scene_buffers = render_data.get_render_scene_buffers()\n" +"var depth_buffer = render_scene_buffers.get_texture(\"render_buffers\", " +"\"depth\")\n" +"[/codeblock]" +msgstr "" +"Якщо [code]true[/code] і MSAA увімкнено, це ініціює вирішення буфера глибини " +"перед запуском ефекту.\n" +" [b]Примітка: [/b] У [методі _render_callback], щоб отримати доступ до " +"дозволеного буфера, використовуйте:\n" +" [codeblock]\n" +" var render_scene_buffers = render_data.get_render_scene_buffers()\n" +" var depth_buffer = render_scene_buffers.get_texture(\"render_buffers\", " +"\"depth\")\n" +" [/codeblock]" + msgid "" "The type of effect that is implemented, determines at what stage of rendering " "the callback is called." @@ -26427,6 +33252,82 @@ msgstr "" "Якщо [code]true[/code] цей ефект рендерингу наноситься на будь-який видпорт, " "який додається." +msgid "" +"If [code]true[/code] this triggers motion vectors being calculated during the " +"opaque render state.\n" +"[b]Note:[/b] In [method _render_callback], to access the motion vector buffer " +"use:\n" +"[codeblock]\n" +"var render_scene_buffers = render_data.get_render_scene_buffers()\n" +"var motion_buffer = render_scene_buffers.get_velocity_texture()\n" +"[/codeblock]" +msgstr "" +"Якщо [code]true[/code], це ініціює обчислення векторів руху під час " +"непрозорого стану візуалізації.\n" +" [b]Примітка:[/b] У [методі _render_callback] для доступу до буфера вектора " +"руху використовуйте:\n" +" [codeblock]\n" +" var render_scene_buffers = render_data.get_render_scene_buffers()\n" +" var motion_buffer = render_scene_buffers.get_velocity_texture()\n" +" [/codeblock]" + +msgid "" +"If [code]true[/code] this triggers normal and roughness data to be output " +"during our depth pre-pass, only applicable for the Forward+ renderer.\n" +"[b]Note:[/b] In [method _render_callback], to access the roughness buffer " +"use:\n" +"[codeblock]\n" +"var render_scene_buffers = render_data.get_render_scene_buffers()\n" +"var roughness_buffer = render_scene_buffers." +"get_texture(\"forward_clustered\", \"normal_roughness\")\n" +"[/codeblock]\n" +"The raw normal and roughness buffer is stored in an optimized format, " +"different than the one available in Spatial shaders. When sampling the " +"buffer, a conversion function must be applied. Use this function, copied from " +"[url=https://github.com/godotengine/godot/blob/" +"da5f39889f155658cef7f7ec3cc1abb94e17d815/servers/rendering/renderer_rd/" +"shaders/forward_clustered/scene_forward_clustered_inc.glsl#L334-L341]here[/" +"url]:\n" +"[codeblock]\n" +"vec4 normal_roughness_compatibility(vec4 p_normal_roughness) {\n" +" float roughness = p_normal_roughness.w;\n" +" if (roughness > 0.5) {\n" +" roughness = 1.0 - roughness;\n" +" }\n" +" roughness /= (127.0 / 255.0);\n" +" return vec4(normalize(p_normal_roughness.xyz * 2.0 - 1.0) * 0.5 + 0.5, " +"roughness);\n" +"}\n" +"[/codeblock]" +msgstr "" +"Якщо [code]true[/code], це ініціює вихід нормальних даних і даних шорсткості " +"під час нашого попереднього проходу глибини, що застосовується лише для " +"засобу візуалізації Forward+.\n" +" [b]Примітка:[/b] У [методі _render_callback], щоб отримати доступ до буфера " +"шорсткості, використовуйте:\n" +" [codeblock]\n" +" var render_scene_buffers = render_data.get_render_scene_buffers()\n" +" var roughness_buffer = render_scene_buffers." +"get_texture(\"forward_clustered\", \"normal_roughness\")\n" +" [/codeblock]\n" +" Необроблений буфер нормалі та шорсткості зберігається в оптимізованому " +"форматі, відмінному від того, який доступний у просторових шейдерах. Під час " +"вибірки буфера необхідно застосувати функцію перетворення. Використовуйте цю " +"функцію, скопійовану з [url=https://github.com/godotengine/godot/blob/" +"da5f39889f155658cef7f7ec3cc1abb94e17d815/servers/ren/renderer_rd/shaders/" +"forward_clustered/scene_forward_clustered_inc.glsl#L334-L341]тут[/url]:\n" +" [codeblock]\n" +" vec4 normal_roughness_compatibility(vec4 p_normal_roughness) {\n" +" float roughness = p_normal_roughness.w;\n" +" if (roughness > 0,5) {\n" +" roughness = 1,0 - roughness;\n" +" }\n" +" roughness /= (127,0 / 255,0);\n" +" return vec4(normalize(p_normal_roughness.xyz * 2.0 - 1.0) * 0.5 + 0.5, " +"roughness);\n" +" }\n" +" [/codeblock]" + msgid "" "If [code]true[/code] this triggers specular data being rendered to a separate " "buffer and combined after effects have been applied, only applicable for the " @@ -26466,6 +33367,14 @@ msgstr "" "Зворотній зв'язок називається перед нашим прозорим рендеринговим пасом, але " "після того, як наш небо продається, і ми створили наші задні буфери." +msgid "" +"The callback is called after our transparent rendering pass, but before any " +"built-in post-processing effects and output to our render target." +msgstr "" +"Зворотний виклик викликається після нашого проходу прозорого рендерингу, але " +"перед будь-якими вбудованими ефектами постобробки та виведенням на нашу ціль " +"візуалізації." + msgid "Represents the size of the [enum EffectCallbackType] enum." msgstr "Представляємо розмір [enum EffectCallbackType] enum." @@ -27036,7 +33945,7 @@ msgstr "" "системи.\n" "У наступному прикладі показано, як створити простий файл [ConfigFile] і " "зберегти його на диску:\n" -"[кодові блоки]\n" +"[codeblock]\n" "[gdscript]\n" "# Створіть новий об'єкт ConfigFile.\n" "var config = ConfigFile.new()\n" @@ -27065,7 +33974,7 @@ msgstr "" "[/csharp]\n" "[/codeblocks]\n" "У цьому прикладі показано, як можна завантажити файл вище:\n" -"[кодові блоки]\n" +"[codeblock]\n" "[gdscript]\n" "var score_data = {}\n" "var config = ConfigFile.new()\n" @@ -27075,7 +33984,7 @@ msgstr "" "\n" "# Якщо файл не завантажився, проігноруйте його.\n" "якщо помилка != ОК:\n" -" повернення\n" +" return\n" "\n" "# Ітерація по всіх розділах.\n" "для гравця в config.get_sections():\n" @@ -27094,7 +34003,7 @@ msgstr "" "// Якщо файл не завантажився, проігноруйте його.\n" "if (err != Error.Ok)\n" "{\n" -" повернення;\n" +" return;\n" "}\n" "\n" "// Ітерація по всіх розділах.\n" @@ -27298,12 +34207,12 @@ msgstr "" "від натискання кнопки OK. Порядок двох кнопок варіюється в залежності від " "наявності ОС.\n" "Щоб скасувати дію, можна скористатися:\n" -"[блоки коду]\n" -"[видання]\n" +"[codeblocks]\n" +"[gdscript]\n" "get_cancel_button(.pressed.connect(_on_canceled)\n" "[/gdscript]\n" "[csharp]\n" -"GetCancelButton(). Притиснути += Написати;\n" +"GetCancelButton(). Pressed += OnCanceled;\n" "[/csharp]\n" "[/codeblocks]" @@ -27403,6 +34312,96 @@ msgstr "" "Базовий клас для всіх елементів керування GUI. Адаптація його положення та " "розміру на основі його батьківського контролю." +msgid "" +"Base class for all UI-related nodes. [Control] features a bounding rectangle " +"that defines its extents, an anchor position relative to its parent control " +"or the current viewport, and offsets relative to the anchor. The offsets " +"update automatically when the node, any of its parents, or the screen size " +"change.\n" +"For more information on Godot's UI system, anchors, offsets, and containers, " +"see the related tutorials in the manual. To build flexible UIs, you'll need a " +"mix of UI elements that inherit from [Control] and [Container] nodes.\n" +"[b]Note:[/b] Since both [Node2D] and [Control] inherit from [CanvasItem], " +"they share several concepts from the class such as the [member CanvasItem." +"z_index] and [member CanvasItem.visible] properties.\n" +"[b]User Interface nodes and input[/b]\n" +"Godot propagates input events via viewports. Each [Viewport] is responsible " +"for propagating [InputEvent]s to their child nodes. As the [member SceneTree." +"root] is a [Window], this already happens automatically for all UI elements " +"in your game.\n" +"Input events are propagated through the [SceneTree] from the root node to all " +"child nodes by calling [method Node._input]. For UI elements specifically, it " +"makes more sense to override the virtual method [method _gui_input], which " +"filters out unrelated input events, such as by checking z-order, [member " +"mouse_filter], focus, or if the event was inside of the control's bounding " +"box.\n" +"Call [method accept_event] so no other node receives the event. Once you " +"accept an input, it becomes handled so [method Node._unhandled_input] will " +"not process it.\n" +"Only one [Control] node can be in focus. Only the node in focus will receive " +"events. To get the focus, call [method grab_focus]. [Control] nodes lose " +"focus when another node grabs it, or if you hide the node in focus.\n" +"Sets [member mouse_filter] to [constant MOUSE_FILTER_IGNORE] to tell a " +"[Control] node to ignore mouse or touch events. You'll need it if you place " +"an icon on top of a button.\n" +"[Theme] resources change the control's appearance. The [member theme] of a " +"[Control] node affects all of its direct and indirect children (as long as a " +"chain of controls is uninterrupted). To override some of the theme items, " +"call one of the [code]add_theme_*_override[/code] methods, like [method " +"add_theme_font_override]. You can also override theme items in the " +"Inspector.\n" +"[b]Note:[/b] Theme items are [i]not[/i] [Object] properties. This means you " +"can't access their values using [method Object.get] and [method Object.set]. " +"Instead, use the [code]get_theme_*[/code] and [code]add_theme_*_override[/" +"code] methods provided by this class." +msgstr "" +"Базовий клас для всіх пов’язаних з інтерфейсом користувача вузлів. [Контроль " +"керування] містить обмежувальний прямокутник, який визначає його межі, " +"позицію прив’язки відносно батьківського елемента керування або поточного " +"вікна перегляду та зміщення відносно прив’язки. Зсуви оновлюються " +"автоматично, коли вузол, будь-який із його батьків або розмір екрана " +"змінюються.\n" +" Для отримання додаткової інформації про систему інтерфейсу користувача " +"Godot, прив’язки, зсуви та контейнери див. відповідні навчальні посібники в " +"посібнику. Щоб створити гнучкі інтерфейси користувача, вам знадобиться " +"поєднання елементів інтерфейсу, які успадковуються від вузлів [Control] і " +"[Container].\n" +" [b]Примітка:[/b] Оскільки [Node2D] і [Control] успадковують [CanvasItem], " +"вони мають спільні концепції з класу, наприклад властивості [member " +"CanvasItem.z_index] і [member CanvasItem.visible].\n" +" [b]Вузли інтерфейсу користувача та введення[/b]\n" +" Godot поширює події введення через вікна перегляду. Кожен [Viewport] " +"відповідає за розповсюдження [InputEvent]s до своїх дочірніх вузлів. Оскільки " +"[член SceneTree.root] є [вікном], це вже відбувається автоматично для всіх " +"елементів інтерфейсу користувача у вашій грі.\n" +" Події введення поширюються через [SceneTree] від кореневого вузла до всіх " +"дочірніх вузлів шляхом виклику [method Node._input]. Зокрема, для елементів " +"інтерфейсу користувача має більше сенсу перевизначити віртуальний метод " +"[method _gui_input], який відфільтровує непов’язані події введення, " +"наприклад, перевіряючи z-порядок, [member mouse_filter], фокус або якщо подія " +"була всередині обмежувальної рамки елемента керування.\n" +" Викличте [method accept_event], щоб жоден інший вузол не отримав подію. Коли " +"ви приймаєте введення, воно стає обробленим, тому [method Node." +"_unhandled_input] не оброблятиме його.\n" +" У фокусі може бути лише один вузол [Control]. Лише вузол у фокусі " +"отримуватиме події. Щоб отримати фокус, викличте [метод grab_focus]. Вузли " +"[Керування] втрачають фокус, коли інший вузол захоплює їх або якщо ви ховаєте " +"вузол у фокусі.\n" +" Встановлює [member mouse_filter] на [constant MOUSE_FILTER_IGNORE], щоб " +"сказати вузлу [Control] ігнорувати події миші або торкання. Він вам " +"знадобиться, якщо ви розмістите піктограму на кнопці.\n" +" Ресурси [Theme] змінюють зовнішній вигляд елемента керування. [Тема члена] " +"вузла [Керування] впливає на всіх його прямих і непрямих дочірніх елементів " +"(поки ланцюжок елементів керування не переривається). Щоб перевизначити деякі " +"з елементів теми, викличте один із методів [code]add_theme_*_override[/code], " +"як-от [method add_theme_font_override]. Ви також можете перевизначати " +"елементи теми в Інспекторі.\n" +" [b]Примітка:[/b] Елементи теми [i]не є[/i] властивостями [Object]. Це " +"означає, що ви не можете отримати доступ до їхніх значень за допомогою " +"[method Object.get] і [method Object.set]. Замість цього використовуйте " +"методи [code]get_theme_*[/code] і [code]add_theme_*_override[/code], надані " +"цим класом." + msgid "GUI documentation index" msgstr "Покажчик документації графічного інтерфейсу" @@ -27449,7 +34448,7 @@ msgstr "" "func _can_drop_data(position, data):\n" " # Перевірте позицію, якщо вона вас цікавить\n" " # В іншому випадку, просто перевірте дані\n" -" return typeof(data) == TYPE_DICTIONARY та data.has(\"expected\")\n" +" return typeof(data) == TYPE_DICTIONARY and data.has(\"expected\")\n" "[/gdscript]\n" "[csharp]\n" "public override bool _CanDropData(Vector2 atPosition, Variant data)\n" @@ -27462,6 +34461,60 @@ msgstr "" "[/csharp]\n" "[/codeblocks]" +msgid "" +"Godot calls this method to pass you the [param data] from a control's [method " +"_get_drag_data] result. Godot first calls [method _can_drop_data] to test if " +"[param data] is allowed to drop at [param at_position] where [param " +"at_position] is local to this control.\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _can_drop_data(position, data):\n" +" return typeof(data) == TYPE_DICTIONARY and data.has(\"color\")\n" +"\n" +"func _drop_data(position, data):\n" +" var color = data[\"color\"]\n" +"[/gdscript]\n" +"[csharp]\n" +"public override bool _CanDropData(Vector2 atPosition, Variant data)\n" +"{\n" +" return data.VariantType == Variant.Type.Dictionary && data." +"AsGodotDictionary().ContainsKey(\"color\");\n" +"}\n" +"\n" +"public override void _DropData(Vector2 atPosition, Variant data)\n" +"{\n" +" Color color = data.AsGodotDictionary()[\"color\"].AsColor();\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Godot викликає цей метод, щоб передати вам [param data] з результату [method " +"_get_drag_data] елемента керування. Спочатку Godot викликає [method " +"_can_drop_data], щоб перевірити, чи дозволено перетягувати [param data] у " +"[param at_position], де [param at_position] є локальним для цього елемента " +"керування.\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _can_drop_data(position, data):\n" +" return typeof(data) == TYPE_DICTIONARY and data.has(\"color\")\n" +"\n" +"func _drop_data(position, data):\n" +" var color = data[\"color\"]\n" +"[/gdscript]\n" +"[csharp]\n" +"public override bool _CanDropData(Vector2 atPosition, Variant data)\n" +"{\n" +" return data.VariantType == Variant.Type.Dictionary && dict." +"AsGodotDictionary().ContainsKey(\"color\");\n" +"}\n" +"\n" +"public override void _DropData(Vector2 atPosition, Variant data)\n" +"{\n" +" Color color = data.AsGodotDictionary()[\"color\"].AsColor();\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Godot calls this method to get data that can be dragged and dropped onto " "controls that expect drop data. Returns [code]null[/code] if there is no data " @@ -27545,6 +34598,97 @@ msgstr "" "найпростішими вузлами графічного інтерфейсу, такими як [Control], " "[Container], [Panel] тощо." +msgid "" +"Virtual method to be implemented by the user. Returns the tooltip text for " +"the position [param at_position] in control's local coordinates, which will " +"typically appear when the cursor is resting over this control. See [method " +"get_tooltip].\n" +"[b]Note:[/b] If this method returns an empty [String] and [method " +"_make_custom_tooltip] is not overridden, no tooltip is displayed." +msgstr "" +"Віртуальний метод, який реалізує користувач. Повертає текст спливаючої " +"підказки для позиції [param at_position] у локальних координатах елемента " +"керування, яка зазвичай з’являється, коли курсор знаходиться над цим " +"елементом керування. Перегляньте [метод get_tooltip].\n" +" [b]Примітка.[/b] Якщо цей метод повертає порожній [String] і [method " +"_make_custom_tooltip] не перевизначено, підказка не відображається." + +msgid "" +"Virtual method to be implemented by the user. Override this method to handle " +"and accept inputs on UI elements. See also [method accept_event].\n" +"[b]Example:[/b] Click on the control to print a message:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _gui_input(event):\n" +" if event is InputEventMouseButton:\n" +" if event.button_index == MOUSE_BUTTON_LEFT and event.pressed:\n" +" print(\"I've been clicked D:\")\n" +"[/gdscript]\n" +"[csharp]\n" +"public override void _GuiInput(InputEvent @event)\n" +"{\n" +" if (@event is InputEventMouseButton mb)\n" +" {\n" +" if (mb.ButtonIndex == MouseButton.Left && mb.Pressed)\n" +" {\n" +" GD.Print(\"I've been clicked D:\");\n" +" }\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"If the [param event] inherits [InputEventMouse], this method will [b]not[/b] " +"be called when:\n" +"- the control's [member mouse_filter] is set to [constant " +"MOUSE_FILTER_IGNORE];\n" +"- the control is obstructed by another control on top, that doesn't have " +"[member mouse_filter] set to [constant MOUSE_FILTER_IGNORE];\n" +"- the control's parent has [member mouse_filter] set to [constant " +"MOUSE_FILTER_STOP] or has accepted the event;\n" +"- the control's parent has [member clip_contents] enabled and the [param " +"event]'s position is outside the parent's rectangle;\n" +"- the [param event]'s position is outside the control (see [method " +"_has_point]).\n" +"[b]Note:[/b] The [param event]'s position is relative to this control's " +"origin." +msgstr "" +"Віртуальний метод, який реалізує користувач. Використовуйте цей метод для " +"обробки та прийняття вхідних даних на елементах інтерфейсу. Дивіться [method " +"accept_event].\n" +"[b]Example usage for clicking a control:[/b]\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _gui_input(event):\n" +" if event is InputEventMouseButton:\n" +" if event.button_index == MOUSE_BUTTON_LEFT and event.pressed:\n" +" print(\"I've been clicked D:\")\n" +"[/gdscript]\n" +"[csharp]\n" +"public override void _GuiInput(InputEvent @event)\n" +"{\n" +" if (@event is InputEventMouseButton mb)\n" +" {\n" +" if (mb.ButtonIndex == MouseButton.Left && mb.Pressed)\n" +" {\n" +" GD.Print(\"I've been clicked D:\");\n" +" }\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"Подія не спрацює, якщо\n" +"* клацання за межами елемента керування (див. [method _has_point]);\n" +"* елемент керування має [член mouse_filter], встановлений у [константа " +"MOUSE_FILTER_IGNORE];\n" +"* елемент керування перекрито іншим [Control], який знаходиться над ним, але " +"не має [member mouse_filter], встановленого на [константа " +"MOUSE_FILTER_IGNORE];\n" +"* батьківський елемент управління має [member mouse_filter] встановлений у " +"[constant MOUSE_FILTER_STOP] або прийняв подію;\n" +"* це відбувається за межами батьківського прямокутника і у батька увімкнено " +"[member clip_contents].\n" +"3[b]Примітка:4[/b] Позиція події відносно початку керування." + msgid "" "Virtual method to be implemented by the user. Returns whether the given " "[param point] is inside this control.\n" @@ -27561,6 +34705,129 @@ msgstr "" "елемента керування, ви можете використати [code]Rect2(Vector2.ZERO, size)." "has_point(point)[/code]." +msgid "" +"Virtual method to be implemented by the user. Returns a [Control] node that " +"should be used as a tooltip instead of the default one. [param for_text] is " +"the return value of [method get_tooltip].\n" +"The returned node must be of type [Control] or Control-derived. It can have " +"child nodes of any type. It is freed when the tooltip disappears, so make " +"sure you always provide a new instance (if you want to use a pre-existing " +"node from your scene tree, you can duplicate it and pass the duplicated " +"instance). When [code]null[/code] or a non-Control node is returned, the " +"default tooltip will be used instead.\n" +"The returned node will be added as child to a [PopupPanel], so you should " +"only provide the contents of that panel. That [PopupPanel] can be themed " +"using [method Theme.set_stylebox] for the type [code]\"TooltipPanel\"[/code] " +"(see [member tooltip_text] for an example).\n" +"[b]Note:[/b] The tooltip is shrunk to minimal size. If you want to ensure " +"it's fully visible, you might want to set its [member custom_minimum_size] to " +"some non-zero value.\n" +"[b]Note:[/b] The node (and any relevant children) should have their [member " +"CanvasItem.visible] set to [code]true[/code] when returned, otherwise, the " +"viewport that instantiates it will not be able to calculate its minimum size " +"reliably.\n" +"[b]Note:[/b] If overridden, this method is called even if [method " +"get_tooltip] returns an empty string. When this happens with the default " +"tooltip, it is not displayed. To copy this behavior, return [code]null[/code] " +"in this method when [param for_text] is empty.\n" +"[b]Example:[/b] Use a constructed node as a tooltip:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _make_custom_tooltip(for_text):\n" +" var label = Label.new()\n" +" label.text = for_text\n" +" return label\n" +"[/gdscript]\n" +"[csharp]\n" +"public override Control _MakeCustomTooltip(string forText)\n" +"{\n" +" var label = new Label();\n" +" label.Text = forText;\n" +" return label;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Example:[/b] Usa a scene instance as a tooltip:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _make_custom_tooltip(for_text):\n" +" var tooltip = preload(\"res://some_tooltip_scene.tscn\").instantiate()\n" +" tooltip.get_node(\"Label\").text = for_text\n" +" return tooltip\n" +"[/gdscript]\n" +"[csharp]\n" +"public override Control _MakeCustomTooltip(string forText)\n" +"{\n" +" Node tooltip = ResourceLoader.Load<PackedScene>(\"res://" +"some_tooltip_scene.tscn\").Instantiate();\n" +" tooltip.GetNode<Label>(\"Label\").Text = forText;\n" +" return tooltip;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Віртуальний метод, який реалізує користувач. Повертає вузол [Керування], який " +"слід використовувати як спливаючу підказку замість стандартної. [param " +"for_text] — це значення, яке повертає [method get_tooltip]. \n" +"Повернений вузол має бути типу [Control] або похідним від Control. Він може " +"мати дочірні вузли будь-якого типу. Він звільняється, коли спливаюча підказка " +"зникає, тому переконайтеся, що ви завжди надаєте новий екземпляр (якщо ви " +"хочете використовувати вже існуючий вузол із дерева сцени, ви можете " +"скопіювати його та передати дубльований екземпляр). Якщо повертається " +"[code]null[/code] або вузол, який не є елементом керування, замість нього " +"буде використовуватися підказка за замовчуванням. \n" +"Повернений вузол буде додано як дочірній елемент до [PopupPanel], тому вам " +"слід надати лише вміст цієї панелі. Цю [PopupPanel] можна тематизувати за " +"допомогою [методу Theme.set_stylebox] для типу [code]\"TooltipPanel\"[/code] " +"(див. [member tooltip_text] для прикладу). \n" +"[b]Примітка.[/b] Підказка зменшена до мінімального розміру. Якщо ви хочете " +"переконатися, що він повністю видимий, ви можете встановити для [member " +"custom_minimum_size] якесь ненульове значення. \n" +"[b]Примітка: [/b] Для вузла (і будь-яких відповідних дочірніх елементів) для " +"[member CanvasItem.visible] має бути встановлено значення [code]true[/code] " +"під час повернення, інакше вікно перегляду, яке створює його екземпляр, не " +"зможе надійно обчислити його мінімальний розмір. \n" +"[b]Примітка:[/b] Якщо перевизначати, цей метод викликається, навіть якщо " +"[method get_tooltip] повертає порожній рядок. Коли це відбувається з " +"підказкою за замовчуванням, вона не відображається. Щоб скопіювати цю " +"поведінку, поверніть [code]null[/code] у цьому методі, якщо [param for_text] " +"порожній. \n" +"[b]Приклад:[/b] Використовуйте створений вузол як спливаючу підказку: \n" +"[codeblocks] \n" +"[gdscript] \n" +"func _make_custom_tooltip(for_text): \n" +" var label = Label.new() \n" +" label.text = for_text \n" +" return label \n" +"[/gdscript] \n" +"[csharp] \n" +"public override Control _MakeCustomTooltip(string forText) \n" +"{\n" +" var label = new Label(); \n" +" label.Text = forText; \n" +" return label; \n" +"}\n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Приклад:[/b] Використовуйте екземпляр сцени як спливаючу підказку: \n" +"[codeblocks] \n" +"[gdscript] \n" +"func _make_custom_tooltip(for_text): \n" +" var tooltip = preload(\"res://some_tooltip_scene.tscn\").instantiate() \n" +" tooltip.get_node(\"Label\").text = for_text \n" +" return tooltip \n" +"[/gdscript] \n" +"[csharp] \n" +"public override Control _MakeCustomTooltip(string forText) \n" +"{\n" +" Node tooltip = ResourceLoader.Load<PackedScene>(\"res://" +"some_tooltip_scene.tscn\").Instantiate(); \n" +" tooltip.GetNode<Label>(\"Label\").Text = forText; \n" +" return tooltip; \n" +"}\n" +"[/csharp] \n" +"[/codeblocks]" + msgid "" "User defined BiDi algorithm override function.\n" "Returns an [Array] of [Vector3i] text ranges and text base directions, in the " @@ -27584,6 +34851,69 @@ msgstr "" "_unhandled_input] або [метод Node._unhandled_key_input].\n" "[b]Примітка:[/b] Це не впливає на методи [Вступ], тільки пропаговані події." +msgid "" +"Creates a local override for a theme [Color] with the specified [param name]. " +"Local overrides always take precedence when fetching theme items for the " +"control. An override can be removed with [method " +"remove_theme_color_override].\n" +"See also [method get_theme_color].\n" +"[b]Example:[/b] Override a [Label]'s color and reset it later:\n" +"[codeblocks]\n" +"[gdscript]\n" +"# Given the child Label node \"MyLabel\", override its font color with a " +"custom value.\n" +"$MyLabel.add_theme_color_override(\"font_color\", Color(1, 0.5, 0))\n" +"# Reset the font color of the child label.\n" +"$MyLabel.remove_theme_color_override(\"font_color\")\n" +"# Alternatively it can be overridden with the default value from the Label " +"type.\n" +"$MyLabel.add_theme_color_override(\"font_color\", " +"get_theme_color(\"font_color\", \"Label\"))\n" +"[/gdscript]\n" +"[csharp]\n" +"// Given the child Label node \"MyLabel\", override its font color with a " +"custom value.\n" +"GetNode<Label>(\"MyLabel\").AddThemeColorOverride(\"font_color\", new " +"Color(1, 0.5f, 0));\n" +"// Reset the font color of the child label.\n" +"GetNode<Label>(\"MyLabel\").RemoveThemeColorOverride(\"font_color\");\n" +"// Alternatively it can be overridden with the default value from the Label " +"type.\n" +"GetNode<Label>(\"MyLabel\").AddThemeColorOverride(\"font_color\", " +"GetThemeColor(\"font_color\", \"Label\"));\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Створює локальне перевизначення для теми [Колір] із зазначеним [назва " +"параметра]. Локальні перевизначення завжди мають перевагу під час отримання " +"елементів теми для елемента керування. Перевизначення можна видалити за " +"допомогою [методу remove_theme_color_override].\n" +" Дивіться також [метод get_theme_color].\n" +" [b]Приклад: [/b] Замініть колір [Label] і скиньте його пізніше:\n" +" [codeblocks]\n" +" [gdscript]\n" +" # Враховуючи дочірній вузол мітки \"MyLabel\", замініть його колір шрифту " +"власним значенням.\n" +" $MyLabel.add_theme_color_override(\"font_color\", Color(1, 0,5, 0))\n" +" # Скинути колір шрифту дочірньої мітки.\n" +" $MyLabel.remove_theme_color_override(\"font_color\")\n" +" # Крім того, його можна замінити значенням за замовчуванням із типу Label.\n" +" $MyLabel.add_theme_color_override(\"font_color\", " +"get_theme_color(\"font_color\", \"Label\"))\n" +" [/gdscript]\n" +" [csharp]\n" +" // Враховуючи дочірній вузол мітки \"MyLabel\", замініть його колір шрифту " +"спеціальним значенням.\n" +" GetNode<Label>(\"MyLabel\").AddThemeColorOverride(\"font_color\", new " +"Color(1, 0.5f, 0));\n" +" // Скидання кольору шрифту дочірньої мітки.\n" +" GetNode<Label>(\"MyLabel\").RemoveThemeColorOverride(\"font_color\");\n" +" // Крім того, його можна замінити значенням за замовчуванням із типу Label.\n" +" GetNode<Label>(\"MyLabel\").AddThemeColorOverride(\"font_color\", " +"GetThemeColor(\"font_color\", \"Label\"));\n" +" [/csharp]\n" +" [/codeblocks]" + msgid "" "Creates a local override for a theme constant with the specified [param " "name]. Local overrides always take precedence when fetching theme items for " @@ -27634,6 +34964,81 @@ msgstr "" "контролю. Видалено перевизначення [метод видалення_theme_icon_override].\n" "Дивись також [метод]." +msgid "" +"Creates a local override for a theme [StyleBox] with the specified [param " +"name]. Local overrides always take precedence when fetching theme items for " +"the control. An override can be removed with [method " +"remove_theme_stylebox_override].\n" +"See also [method get_theme_stylebox].\n" +"[b]Example:[/b] Modify a property in a [StyleBox] by duplicating it:\n" +"[codeblocks]\n" +"[gdscript]\n" +"# The snippet below assumes the child node \"MyButton\" has a StyleBoxFlat " +"assigned.\n" +"# Resources are shared across instances, so we need to duplicate it\n" +"# to avoid modifying the appearance of all other buttons.\n" +"var new_stylebox_normal = $MyButton.get_theme_stylebox(\"normal\")." +"duplicate()\n" +"new_stylebox_normal.border_width_top = 3\n" +"new_stylebox_normal.border_color = Color(0, 1, 0.5)\n" +"$MyButton.add_theme_stylebox_override(\"normal\", new_stylebox_normal)\n" +"# Remove the stylebox override.\n" +"$MyButton.remove_theme_stylebox_override(\"normal\")\n" +"[/gdscript]\n" +"[csharp]\n" +"// The snippet below assumes the child node \"MyButton\" has a StyleBoxFlat " +"assigned.\n" +"// Resources are shared across instances, so we need to duplicate it\n" +"// to avoid modifying the appearance of all other buttons.\n" +"StyleBoxFlat newStyleboxNormal = GetNode<Button>(\"MyButton\")." +"GetThemeStylebox(\"normal\").Duplicate() as StyleBoxFlat;\n" +"newStyleboxNormal.BorderWidthTop = 3;\n" +"newStyleboxNormal.BorderColor = new Color(0, 1, 0.5f);\n" +"GetNode<Button>(\"MyButton\").AddThemeStyleboxOverride(\"normal\", " +"newStyleboxNormal);\n" +"// Remove the stylebox override.\n" +"GetNode<Button>(\"MyButton\").RemoveThemeStyleboxOverride(\"normal\");\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Створює локальне перевизначення для теми [StyleBox] із зазначеним [назва " +"параметра]. Локальні перевизначення завжди мають перевагу під час отримання " +"елементів теми для елемента керування. Перевизначення можна видалити за " +"допомогою [методу remove_theme_stylebox_override].\n" +" Дивіться також [метод get_theme_stylebox].\n" +" [b]Приклад: [/b] Змінити властивість у [StyleBox] шляхом його дублювання:\n" +" [codeblocks]\n" +"[gdscript]\n" +" # Фрагмент нижче припускає, що дочірньому вузлу \"MyButton\" призначено " +"StyleBoxFlat.\n" +" # Ресурси спільно використовуються між екземплярами, тому нам потрібно їх " +"дублювати\n" +" # щоб уникнути зміни зовнішнього вигляду всіх інших кнопок.\n" +" var new_stylebox_normal = $MyButton.get_theme_stylebox(\"normal\")." +"duplicate()\n" +" new_stylebox_normal.border_width_top = 3\n" +" new_stylebox_normal.border_color = Color(0, 1, 0,5)\n" +" $MyButton.add_theme_stylebox_override(\"normal\", new_stylebox_normal)\n" +" # Видаліть перевизначення поля стилів.\n" +"$MyButton.remove_theme_stylebox_override(\"normal\")\n" +" [/gdscript]\n" +" [csharp]\n" +" // Наведений нижче фрагмент припускає, що дочірньому вузлу \"MyButton\" " +"призначено StyleBoxFlat.\n" +" // Ресурси спільно використовуються між екземплярами, тому нам потрібно їх " +"дублювати\n" +" // щоб уникнути зміни зовнішнього вигляду всіх інших кнопок.\n" +" StyleBoxFlat newStyleboxNormal = GetNode<Button>(\"MyButton\")." +"GetThemeStylebox(\"normal\").Duplicate() as StyleBoxFlat;\n" +" newStyleboxNormal.BorderWidthTop = 3;\n" +" newStyleboxNormal.BorderColor = new Color(0, 1, 0.5f);\n" +" GetNode<Button>(\"MyButton\").AddThemeStyleboxOverride(\"normal\", " +"newStyleboxNormal);\n" +" // Видалити перевизначення поля стилю.\n" +" GetNode<Button>(\"MyButton\").RemoveThemeStyleboxOverride(\"normal\");\n" +" [/csharp]\n" +" [/codeblocks]" + msgid "" "Prevents [code]*_theme_*_override[/code] methods from emitting [constant " "NOTIFICATION_THEME_CHANGED] until [method end_bulk_theme_override] is called." @@ -27781,6 +35186,29 @@ msgstr "" "to [code]true[/code] може призвести до закруглення неточностей між " "відображенням управління та повернутою [Rect2]." +msgid "" +"Returns the position of this [Control] in global screen coordinates (i.e. " +"taking window position into account). Mostly useful for editor plugins.\n" +"Equals to [member global_position] if the window is embedded (see [member " +"Viewport.gui_embed_subwindows]).\n" +"[b]Example:[/b] Show a popup at the mouse position:\n" +"[codeblock]\n" +"popup_menu.position = get_screen_position() + get_local_mouse_position()\n" +"popup_menu.reset_size()\n" +"popup_menu.popup()\n" +"[/codeblock]" +msgstr "" +"Повертає позицію цього [Керування] у глобальних координатах екрана (тобто з " +"урахуванням позиції вікна). Здебільшого корисний для плагінів редактора.\n" +"Дорівнює [member global_position], якщо вікно вбудовано (див. [member " +"Viewport.gui_embed_subwindows]).\n" +"[b]Приклад використання для показу спливаючого вікна:[/b]\n" +"[codeblock]\n" +"popup_menu.position = get_screen_position() + get_local_mouse_position()\n" +"popup_menu.reset_size()\n" +"popup_menu.popup()\n" +"[/codeblock]" + msgid "" "Returns a [Color] from the first matching [Theme] in the tree if that [Theme] " "has a color item with the specified [param name] and [param theme_type]. If " @@ -27818,39 +35246,41 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Повертаємо [Color] з першого узгодження [Theme] в дерево, якщо це [Theme] має " -"кольоровий елемент з вказаною [param name] і [param theme_type]. Якщо [param " -"theme_type] вдається назву класу поточного контролю використовується як тип, " -"або [пам'ятна тема_type_variation], якщо це визначено. Якщо тип є назвою " -"класу, його батьківські класи також перевіряють, для отримання спадщини. Якщо " -"тип є варіацією його базових типів, для того, щоб залежність, то перевірте " -"назву класу та його батьківські класи.\n" -"Для поточного контролю його локальних перепадів розглядаються перші (див. " -"[метод add_theme_color_override]), потім його призначено [пам'ятна тема]. " -"Після поточного контролю, кожен батьківський контроль та його призначено " -"[пам'ятна тема]; контроль без [пам'ятна тема], призначених для пропускання. " -"Якщо ви не збіглися [Theme], знайдений в дерево, користувацький проект " -"[Theme] (див. [члени ПроектуНалаштування.gui/theme/custom]) і за " -"замовчуванням [Theme] використовуються (див. [ThemeDB]).\n" -"[блоки коду]\n" -"[видання]\n" -"Func _ready():\n" -"# Отримати колір шрифту, визначений для поточного класу керування, якщо він " -"існує.\n" -"Модуль = get_theme_color(\"font_color\")\n" -"# Отримати колір шрифту, визначений для класу кнопки.\n" -"Модуль = get_theme_color(\"font_color\", \"Button\")\n" -"[/gdscript]\n" -"[csharp]\n" -"public override _Читати()\n" -"Довідник\n" -"(Українська) Отримати колір шрифту, визначений для поточного класу керування, " -"якщо він існує.\n" -"Модуль = GetThemeColor(\"font_color\");\n" -"(Українська) Отримайте колір шрифту, визначений для класу кнопки.\n" -"Модуль = GetThemeColor(\"font_color\", \"Button\");\n" -"Про нас\n" -"[/csharp]\n" +"Повертає [Колір] із першої відповідної [Теми] в дереві, якщо ця [Тема] має " +"елемент кольору з указаними [назва параметра] і [тип_теми параметра]. Якщо " +"[param theme_type] опущено, як тип використовується ім’я класу поточного " +"елемента керування або [member theme_type_variation], якщо воно визначено. " +"Якщо тип є назвою класу, його батьківські класи також перевіряються в порядку " +"успадкування. Якщо тип є варіантом, перевіряються його базові типи в порядку " +"залежностей, тоді перевіряються ім’я класу елемента керування та його " +"батьківські класи. \n" +"Для поточного елемента керування спочатку розглядаються його локальні " +"перевизначення (див. [метод add_theme_color_override]), а потім його " +"призначена [тема-учасник]. Після поточного елемента керування розглядається " +"кожен батьківський елемент керування та його призначена [тема-учасник]; " +"елементи керування без призначеної теми [учасника] пропускаються. Якщо в " +"дереві не знайдено відповідної [Теми], використовується спеціальний проект " +"[Тема] (див. [член ProjectSettings.gui/theme/custom]) і [Тема] за " +"замовчуванням (див. [ThemeDB]). \n" +"[codeblocks] \n" +"[gdscript] \n" +"func _ready(): \n" +" # Отримати колір шрифту, визначений для поточного класу елемента " +"керування, якщо він існує. \n" +" modulate = get_theme_color(\"font_color\") \n" +" # Отримайте колір шрифту, визначений для класу Button. \n" +" modulate = get_theme_color(\"font_color\", \"Button\") \n" +"[/gdscript] \n" +"[csharp] \n" +"public override void _Ready() \n" +"{\n" +" // Отримати колір шрифту, визначений для поточного класу елемента " +"керування, якщо він існує. \n" +" Modulate = GetThemeColor(\"font_color\"); \n" +" // Отримання кольору шрифту, визначеного для класу Button. \n" +" Modulate = GetThemeColor(\"font_color\", \"Button\"); \n" +"}\n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -27929,6 +35359,59 @@ msgstr "" "стильний елемент з вказаною [param name] та [param theme_type].\n" "Подивитися [метод get_theme_color] для деталей." +msgid "" +"Returns the tooltip text for the position [param at_position] in control's " +"local coordinates, which will typically appear when the cursor is resting " +"over this control. By default, it returns [member tooltip_text].\n" +"This method can be overridden to customize its behavior. See [method " +"_get_tooltip].\n" +"[b]Note:[/b] If this method returns an empty [String] and [method " +"_make_custom_tooltip] is not overridden, no tooltip is displayed." +msgstr "" +"Повертає текст спливаючої підказки для позиції [param at_position] у " +"локальних координатах елемента керування, яка зазвичай з’являється, коли " +"курсор знаходиться над цим елементом керування. За замовчуванням він повертає " +"[member tooltip_text].\n" +" Цей метод можна змінити, щоб налаштувати його поведінку. Перегляньте [метод " +"_get_tooltip].\n" +" [b]Примітка.[/b] Якщо цей метод повертає порожній [String] і [method " +"_make_custom_tooltip] не перевизначено, підказка не відображається." + +msgid "" +"Creates an [InputEventMouseButton] that attempts to click the control. If the " +"event is received, the control gains focus.\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _process(delta):\n" +" grab_click_focus() # When clicking another Control node, this node will " +"be clicked instead.\n" +"[/gdscript]\n" +"[csharp]\n" +"public override void _Process(double delta)\n" +"{\n" +" GrabClickFocus(); // When clicking another Control node, this node will " +"be clicked instead.\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Створює [InputEventMouseButton], який намагається клацнути елемент " +"керування. Якщо подію отримано, елемент керування отримує фокус.\n" +" [codeblocks]\n" +" [gdscript]\n" +" func _process(delta):\n" +" grab_click_focus() # При клацанні іншого вузла керування, цей вузол буде " +"натиснутий.\n" +" [/gdscript]\n" +" [csharp]\n" +" публічне перевизначення void _Process (double delta)\n" +" {\n" +" GrabClickFocus(); // Якщо клацнути інший вузол керування, натомість " +"клацнеться цей вузол.\n" +" }\n" +" [/csharp]\n" +" [/codeblocks]" + msgid "" "Steal the focus from another control and become the focused control (see " "[member focus_mode]).\n" @@ -28065,8 +35548,12 @@ msgstr "" "[method Viewport.gui_is_drag_successful].\n" "Кращий використовується з [constant Node. Реєстрація." -msgid "Returns [code]true[/code] if layout is right-to-left." -msgstr "Повертаємо [code]true[/code], якщо макет прямо вліво." +msgid "" +"Returns [code]true[/code] if layout is right-to-left. See also [member " +"layout_direction]." +msgstr "" +"Повертає [code]true[/code], якщо макет справа наліво. Дивіться також [member " +"layout_direction]." msgid "Give up the focus. No other control will be able to receive input." msgstr "Подаруйте увагу. Немає іншого контролю буде в змозі отримати вхід." @@ -28183,6 +35670,31 @@ msgstr "" "Набори [пам'яний офсет_лівий] і [пам'ятний офсет_топ] одночасно. Еквівалент " "змін [посада пам'яті]." +msgid "" +"Sets the given callables to be used instead of the control's own drag-and-" +"drop virtual methods. If a callable is empty, its respective virtual method " +"is used as normal.\n" +"The arguments for each callable should be exactly the same as their " +"respective virtual methods, which would be:\n" +"- [param drag_func] corresponds to [method _get_drag_data] and requires a " +"[Vector2];\n" +"- [param can_drop_func] corresponds to [method _can_drop_data] and requires " +"both a [Vector2] and a [Variant];\n" +"- [param drop_func] corresponds to [method _drop_data] and requires both a " +"[Vector2] and a [Variant]." +msgstr "" +"Встановлює дані виклики для використання замість власних віртуальних методів " +"перетягування елемента керування. Якщо виклик порожній, його відповідний " +"віртуальний метод використовується як звичайний.\n" +" Аргументи для кожного виклику мають бути точно такими ж, як їхні відповідні " +"віртуальні методи, які будуть:\n" +" - [параметр drag_func] відповідає [методу _get_drag_data] і вимагає " +"[Vector2];\n" +" - [param can_drop_func] відповідає [method _can_drop_data] і вимагає як " +"[Vector2], так і [Variant];\n" +" - [param drop_func] відповідає [method _drop_data] і вимагає як [Vector2], " +"так і [Variant]." + msgid "" "Shows the given control at the mouse pointer. A good time to call this method " "is in [method _get_drag_data]. The control must not be in the scene tree. You " @@ -28217,37 +35729,37 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Відображає дане управління в тостері мишки. Добрий час, щоб викликати цей " -"метод в [метод_drag_data]. Контроль не повинен бути на ялинці. Ви не повинні " -"звільнити контроль, і ви не повинні зберігати посилання на контроль за " -"тривалістю перетягування. Після завершення перетягування буде видалено " -"автоматично.\n" -"[блоки коду]\n" -"[видання]\n" -"@export var колір = Колір(1, 0, 0, 1)\n" +"Показує заданий елемент керування за вказівником миші. Сприятливий час для " +"виклику цього методу в [method _get_drag_data]. Елемент керування не має бути " +"в дереві сцени. Ви не повинні звільняти елемент керування та не повинні " +"зберігати посилання на елемент керування після закінчення перетягування. Його " +"буде видалено автоматично після завершення перетягування. \n" +"[codeblocks] \n" +"[gdscript] \n" +"@export var color = Color(1, 0, 0, 1) \n" "\n" -"Func _get_drag_data(положення):\n" -"# Використовуйте контроль, який не в дереві\n" -"var cpb = ColorPickerButton.new()\n" -"cpb.color = колір\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"Колір повернення\n" -"[/gdscript]\n" -"[csharp]\n" -"[Експорт]\n" -"приватний колір _color = новий колір(1, 0, 0, 1);\n" +"func _get_drag_data(позиція): \n" +" # Використовуйте елемент керування, якого немає в дереві \n" +" var cpb = ColorPickerButton.new() \n" +" cpb.color = Color \n" +" cpb.size = Vector2(50, 50) \n" +" set_drag_preview(cpb) \n" +" return color\n" +"[/gdscript] \n" +"[csharp] \n" +"[Export] \n" +"private Color _color = new Color(1, 0, 0, 1); \n" "\n" -"public override Варіант _GetDragData(Vector2 atPosition)\n" -"Довідник\n" -"(Українська) Використовуйте контроль, який не в дереві\n" -"var cpb = нова кольорова кнопка ();\n" -"cpb.Color = _color;\n" -"cpb.Size = новий Vector2(50, 50);\n" -"SetDragPreview(cpb);\n" -"Повернення _колір;\n" -"Про нас\n" -"[/csharp]\n" +"public override Variant _GetDragData(Vector2 atPosition) \n" +"{\n" +" // Використовувати елемент керування, якого немає в дереві \n" +" var cpb = new ColorPickerButton(); \n" +" cpb.Color = Color; \n" +" cpb.Size = new Vector2(50, 50); \n" +" SetDragPreview(cpb); \n" +" return _color; \n" +"}\n" +"[/csharp] \n" "[/codeblocks]" msgid "Sets [member offset_right] and [member offset_bottom] at the same time." @@ -28533,10 +36045,12 @@ msgstr "" msgid "" "Controls layout direction and text writing direction. Right-to-left layouts " -"are necessary for certain languages (e.g. Arabic and Hebrew)." +"are necessary for certain languages (e.g. Arabic and Hebrew). See also " +"[method is_layout_rtl]." msgstr "" -"Керування напрямами макета та напряму написання тексту. Право-ліві макети " -"необхідні для певних мов (наприклад, Арабський і іврит)." +"Контролює напрямок макета та напрямок написання тексту. Розкладка справа " +"наліво необхідна для певних мов (наприклад, арабської та івриту). Дивіться " +"також [метод is_layout_rtl]." msgid "" "If [code]true[/code], automatically converts code line numbers, list indices, " @@ -28573,6 +36087,25 @@ msgstr "" "отримувати [визначену мишу_упереджену], і сигнали [визначену мишу_вимкнено]. " "Дізнайтеся, що кожен робить." +msgid "" +"When enabled, scroll wheel events processed by [method _gui_input] will be " +"passed to the parent control even if [member mouse_filter] is set to " +"[constant MOUSE_FILTER_STOP].\n" +"You should disable it on the root of your UI if you do not want scroll events " +"to go to the [method Node._unhandled_input] processing.\n" +"[b]Note:[/b] Because this property defaults to [code]true[/code], this allows " +"nested scrollable containers to work out of the box." +msgstr "" +"Якщо ввімкнено, події колеса прокручування, оброблені [методом _gui_input], " +"будуть передані до батьківського контролю, навіть якщо для параметра [member " +"mouse_filter] встановлено значення [постійна MOUSE_FILTER_STOP].\n" +" Вам слід вимкнути його в корені вашого інтерфейсу користувача, якщо ви не " +"хочете, щоб події прокручування переходили до обробки [method Node." +"_unhandled_input].\n" +" [b]Примітка:[/b] Оскільки ця властивість за умовчанням має значення " +"[code]true[/code], це дозволяє вкладеним прокручувати контейнерам працювати з " +"коробки." + msgid "" "Distance between the node's bottom edge and its parent control, based on " "[member anchor_bottom].\n" @@ -28807,6 +36340,92 @@ msgstr "" "Повернутий ранній матч до будь-якого типу / класу. Тема проекту та за " "замовчуванням Останнє оновлення розділу." +msgid "" +"Defines if tooltip text should automatically change to its translated version " +"depending on the current locale. Uses the same auto translate mode as this " +"control when set to [constant Node.AUTO_TRANSLATE_MODE_INHERIT].\n" +"[b]Note:[/b] Tooltips customized using [method _make_custom_tooltip] do not " +"use this auto translate mode automatically." +msgstr "" +"Визначає, чи слід автоматично змінювати текст підказки на її перекладену " +"версію залежно від поточної локалі. Використовує той самий режим " +"автоматичного перекладу, що і цей елемент керування, коли встановлено у " +"[константа Node.AUTO_TRANSLATE_MODE_INHERIT].\n" +"[b]Примітка:[/b] Підказки, налаштовані за допомогою [методу " +"_make_custom_tooltip], не використовують цей режим автоматичного перекладу " +"автоматично." + +msgid "" +"The default tooltip text. The tooltip appears when the user's mouse cursor " +"stays idle over this control for a few moments, provided that the [member " +"mouse_filter] property is not [constant MOUSE_FILTER_IGNORE]. The time " +"required for the tooltip to appear can be changed with the [member " +"ProjectSettings.gui/timers/tooltip_delay_sec] setting.\n" +"This string is the default return value of [method get_tooltip]. Override " +"[method _get_tooltip] to generate tooltip text dynamically. Override [method " +"_make_custom_tooltip] to customize the tooltip interface and behavior.\n" +"The tooltip popup will use either a default implementation, or a custom one " +"that you can provide by overriding [method _make_custom_tooltip]. The default " +"tooltip includes a [PopupPanel] and [Label] whose theme properties can be " +"customized using [Theme] methods with the [code]\"TooltipPanel\"[/code] and " +"[code]\"TooltipLabel\"[/code] respectively. For example:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var style_box = StyleBoxFlat.new()\n" +"style_box.set_bg_color(Color(1, 1, 0))\n" +"style_box.set_border_width_all(2)\n" +"# We assume here that the `theme` property has been assigned a custom Theme " +"beforehand.\n" +"theme.set_stylebox(\"panel\", \"TooltipPanel\", style_box)\n" +"theme.set_color(\"font_color\", \"TooltipLabel\", Color(0, 1, 1))\n" +"[/gdscript]\n" +"[csharp]\n" +"var styleBox = new StyleBoxFlat();\n" +"styleBox.SetBgColor(new Color(1, 1, 0));\n" +"styleBox.SetBorderWidthAll(2);\n" +"// We assume here that the `Theme` property has been assigned a custom Theme " +"beforehand.\n" +"Theme.SetStyleBox(\"panel\", \"TooltipPanel\", styleBox);\n" +"Theme.SetColor(\"font_color\", \"TooltipLabel\", new Color(0, 1, 1));\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Текст підказки за замовчуванням. Підказка з'являється, коли курсор миші " +"користувача затримується на цьому елементі керування на декілька секунд, за " +"умови, що властивість [member mouse_filter] не дорівнює [константа " +"MOUSE_FILTER_IGNORE]. Час, необхідний для показу підказки, можна змінити за " +"допомогою параметра [member PojectSettings.gui/timers/tooltip_delay_sec].\n" +"Цей рядок є типовим значенням, яке повертає [метод get_tooltip]. " +"Перевизначити [метод _get_tooltip] для динамічного генерування тексту " +"підказки. Викличте [метод _make_custom_tooltip], щоб налаштувати інтерфейс і " +"поведінку підказки.\n" +"У спливаючій підказці використовуватиметься або стандартна реалізація, або " +"кастомна, яку ви можете надати за допомогою перевизначення [метод " +"_make_custom_tooltip]. Типова підказка method [PopupPanel] і [Label], " +"властивості теми яких можна налаштувати за допомогою методів [Theme] з " +"[code]\"TooltipPanel\"[/code] і [code]\"TooltipLabel\"[/code] відповідно. " +"Наприклад:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var style_box = StyleBoxFlat.new()\n" +"style_box.set_bg_color(Color(1, 1, 0))\n" +"style_box.set_border_width_all(2)\n" +"# Тут ми припускаємо, що властивості `theme` було попередньо присвоєно " +"кастомну тему.\n" +"theme.set_stylebox(\"panel\", \"TooltipPanel\", style_box)\n" +"theme.set_color(\"font_color\", \"TooltipLabel\", Color(0, 1, 1))\n" +"[/gdscript]\n" +"[csharp]\n" +"var styleBox = new StyleBoxFlat();\n" +"styleBox.SetBgColor(new Color(1, 1, 0));\n" +"styleBox.SetBorderWidthAll(2);\n" +"// Тут ми припускаємо, що властивості `Theme` заздалегідь було присвоєно " +"користувацьку тему.\n" +"Theme.SetStyleBox(\"panel\", \"TooltipPanel\", styleBox);\n" +"Theme.SetColor(\"font_color\", \"TooltipLabel\", new Color(0, 1, 1));\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "Emitted when the node gains focus." msgstr "Увімкніть, коли вузол отримує фокус." @@ -28856,9 +36475,9 @@ msgstr "" "сигнал.\n" "[b]Примітка:[/b] Якщо ви хочете перевірити, чи дійсно миша залишила область, " "ігноруючи будь-які вершини вершини, ви можете використовувати код, як це:\n" -"[блокування коду]\n" -"Func _on_mouse_exited():\n" -"якщо не Rect2(Vector2(), розмір).has_point(get_local_mouse_position()):\n" +"[codeblock]\n" +"func _on_mouse_exited():\n" +"if no Rect2(Vector2(), size).has_point(get_local_mouse_position()):\n" "# Не захоплюючись над зоною.\n" "[/codeblock]" @@ -29016,12 +36635,12 @@ msgstr "" "для цього вузла, дочірні вершини, створені з сценарію, або якщо ви хочете " "отримати доступ до дочірніх вузлів, доданих в редакторі, переконайтеся, що " "вузол готовий використовувати [метод Node.is_node_ready].\n" -"[блокування коду]\n" -"Func _notification(що):\n" -"якщо це == УВАГА!\n" -"якщо немає_node_ready():\n" -"готовий # Очікується до готовності сигналу.\n" -"$Label.add_theme_color_override(\"font_color, Колір.YELLOW)\n" +"[codeblock]\n" +"func _notification(what):\n" +"if what == NOTIFICATION_THEME_CHANGED!\n" +"if no is_node_ready():\n" +"await ready # Очікується до готовності сигналу.\n" +"$Label.add_theme_color_override(\"font_color, Color.YELLOW)\n" "[/codeblock]" msgid "" @@ -29060,8 +36679,14 @@ msgstr "" "на настільних / веб-платформах, коли [члени ПроектуНалаштування.input_devices/" "pointing/emulate_touch_from_mouse]." -msgid "Sent when control layout direction is changed." -msgstr "При зміні напрямку макета управління." +msgid "" +"Sent when the control layout direction is changed from LTR or RTL or vice " +"versa. This notification is propagated to child Control nodes as result of a " +"change to [member layout_direction]." +msgstr "" +"Надсилається, коли напрямок макета елементів керування змінюється з LTR або " +"RTL або навпаки. Це сповіщення поширюється на дочірні вузли керування в " +"результаті зміни в [member layout_direction]." msgid "" "Show the system's arrow mouse cursor when the user hovers the node. Use with " @@ -29405,6 +37030,69 @@ msgstr "" "деяких контейнерах. Використовуйте [пам'ятний розмір_flags_horizontal] і " "[пам'ятний розмір_flags_vertical]." +msgid "" +"The control will receive mouse movement input events and mouse button input " +"events if clicked on through [method _gui_input]. The control will also " +"receive the [signal mouse_entered] and [signal mouse_exited] signals. These " +"events are automatically marked as handled, and they will not propagate " +"further to other controls. This also results in blocking signals in other " +"controls." +msgstr "" +"Елемент управління отримуватиме події введення руху миші та події введення " +"кнопки миші при натисканні через [метод _gui_input]. Елемент управління також " +"отримуватиме сигнали [сигнал mouse_entered] та [сигнал mouse_exited]. Ці " +"події автоматично позначаються як оброблені, і вони не поширюватимуться далі " +"на інші елементи керування. Це також призводить до блокування сигналів в " +"інших елементах управління." + +msgid "" +"The control will receive mouse movement input events and mouse button input " +"events if clicked on through [method _gui_input]. The control will also " +"receive the [signal mouse_entered] and [signal mouse_exited] signals.\n" +"If this control does not handle the event, the event will propagate up to its " +"parent control if it has one. The event is bubbled up the node hierarchy " +"until it reaches a non-[CanvasItem], a control with [constant " +"MOUSE_FILTER_STOP], or a [CanvasItem] with [member CanvasItem.top_level] " +"enabled. This will allow signals to fire in all controls it reaches. If no " +"control handled it, the event will be passed to [method Node._shortcut_input] " +"for further processing." +msgstr "" +"Елемент управління отримуватиме події введення руху миші та події введення " +"кнопки миші при натисканні через [метод _gui_input]. Елемент управління також " +"отримуватиме сигнали [signal mouse_entered] та [signal mouse_exited].\n" +"Якщо цей елемент управління не обробляє подію, вона поширюється до " +"батьківського елемента управління, якщо такий є. Подія піднімається вгору по " +"ієрархії вузлів, доки не досягне елемента, який не є [CanvasItem], елемента з " +"[константою MOUSE_FILTER_STOP] або [CanvasItem] з увімкненим [елементом " +"CanvasItem.top_level]. Це дозволить сигналам спрацьовувати у всіх елементах " +"керування, до яких вони потрапляють. Якщо жоден елемент управління не обробив " +"цю подію, її буде передано до [методу Node._shortcut_input] для подальшої " +"обробки)." + +msgid "" +"The control will not receive any mouse movement input events nor mouse button " +"input events through [method _gui_input]. The control will also not receive " +"the [signal mouse_entered] nor [signal mouse_exited] signals. This will not " +"block other controls from receiving these events or firing the signals. " +"Ignored events will not be handled automatically. If a child has [constant " +"MOUSE_FILTER_PASS] and an event was passed to this control, the event will " +"further propagate up to the control's parent.\n" +"[b]Note:[/b] If the control has received [signal mouse_entered] but not " +"[signal mouse_exited], changing the [member mouse_filter] to [constant " +"MOUSE_FILTER_IGNORE] will cause [signal mouse_exited] to be emitted." +msgstr "" +"Елемент керування не отримуватиме жодних подій введення руху миші або " +"натискання кнопки миші через [метод _gui_input]. Елемент керування також не " +"отримуватиме сигналів [signal mouse_entered] та [signal mouse_exited]. Це не " +"заблокує інші елементи керування отримувати ці події або спрацьовувати ці " +"сигнали. Ігноровані події не оброблятимуться автоматично. Якщо дочірній " +"елемент має [константу MOUSE_FILTER_PASS] і йому було передано подію, вона " +"пошириться аж до батьківського елемента.\n" +"[b]Примітка:[/b] Якщо елемент керування отримав [сигнал mouse_entered], але " +"не отримав [сигнал mouse_exited], зміна значення [member mouse_filter] на " +"[константа MOUSE_FILTER_IGNORE] призведе до випромінювання [signal " +"mouse_exited]." + msgid "" "The control will grow to the left or top to make up if its minimum size is " "changed to be greater than its current size on the respective axis." @@ -29455,9 +37143,31 @@ msgid "" "direction." msgstr "Автоматичний напрямок макета, визначений з напрямку планування батьків." -msgid "Automatic layout direction, determined from the current locale." +msgid "" +"Automatic layout direction, determined from the current locale. Right-to-left " +"layout direction is automatically used for languages that require it such as " +"Arabic and Hebrew, but only if a valid translation file is loaded for the " +"given language (unless said language is configured as a fallback in [member " +"ProjectSettings.internationalization/locale/fallback]). For all other " +"languages (or if no valid translation file is found by Godot), left-to-right " +"layout direction is used. If using [TextServerFallback] ([member " +"ProjectSettings.internationalization/rendering/text_driver]), left-to-right " +"layout direction is always used regardless of the language. Right-to-left " +"layout direction can also be forced using [member ProjectSettings." +"internationalization/rendering/force_right_to_left_layout_direction]." msgstr "" -"Автоматичний напрямок макета, визначений з поточного локального напрямку." +"Автоматичний напрямок макета, визначений на основі поточної мови. Напрямок " +"компонування справа наліво автоматично використовується для мов, які " +"вимагають його, наприклад арабської та івриту, але лише якщо для даної мови " +"завантажено дійсний файл перекладу (якщо зазначену мову не налаштовано як " +"резервну в [member ProjectSettings.internationalization/locale/fallback]). " +"Для всіх інших мов (або якщо Godot не знайшов дійсний файл перекладу) " +"використовується напрямок компонування зліва направо. Якщо використовується " +"[TextServerFallback] ([member ProjectSettings.internationalization/rendering/" +"text_driver]), напрямок макета зліва направо завжди використовується " +"незалежно від мови. Напрямок макета справа наліво також можна примусово " +"встановити за допомогою [member ProjectSettings.internationalization/" +"rendering/force_right_to_left_layout_direction]." msgid "Left-to-right layout direction." msgstr "Вліво-правовий напрямок макета." @@ -29465,6 +37175,32 @@ msgstr "Вліво-правовий напрямок макета." msgid "Right-to-left layout direction." msgstr "Прямий напрямок макета." +msgid "" +"Automatic layout direction, determined from the system locale. Right-to-left " +"layout direction is automatically used for languages that require it such as " +"Arabic and Hebrew, but only if a valid translation file is loaded for the " +"given language.. For all other languages (or if no valid translation file is " +"found by Godot), left-to-right layout direction is used. If using " +"[TextServerFallback] ([member ProjectSettings.internationalization/rendering/" +"text_driver]), left-to-right layout direction is always used regardless of " +"the language." +msgstr "" +"Автоматичний напрямок макета, визначений на основі локалі системи. Напрямок " +"макета справа наліво автоматично використовується для мов, які цього " +"вимагають, як-от арабська та іврит, але лише якщо для даної мови завантажено " +"дійсний файл перекладу. Для всіх інших мов (або якщо Годо не знайшов дійсний " +"файл перекладу) використовується напрямок макета зліва направо. Якщо " +"використовується [TextServerFallback] ([member ProjectSettings." +"internationalization/rendering/text_driver]), напрямок макета зліва направо " +"завжди використовується незалежно від мови." + +msgid "Represents the size of the [enum LayoutDirection] enum." +msgstr "Представляє розмір переліку [enum LayoutDirection]." + +msgid "Use [constant LAYOUT_DIRECTION_APPLICATION_LOCALE] instead." +msgstr "" +"Натомість використовуйте [константу LAYOUT_DIRECTION_APPLICATION_LOCALE]." + msgid "Text writing direction is the same as layout direction." msgstr "Текстовий напрямок написання є таким же, як напрямок планування." @@ -29638,6 +37374,34 @@ msgstr "" "Повертає ввімкнений стан даного прапора частинок (див. [enum ParticleFlags] " "для опцій)." +msgid "" +"Requests the particles to process for extra process time during a single " +"frame.\n" +"Useful for particle playback, if used in combination with [member " +"use_fixed_seed] or by calling [method restart] with parameter " +"[code]keep_seed[/code] set to [code]true[/code]." +msgstr "" +"Запитує у частинок додатковий час на обробку протягом одного кадру.\n" +"Корисно для відтворення частинок, якщо використовується у поєднанні з [member " +"use_fixed_seed] або викликом [method restart] з параметром [code]keep_seed[/" +"code], встановленим у [code]true[/code]." + +msgid "" +"Restarts the particle emitter.\n" +"If [param keep_seed] is [code]true[/code], the current random seed will be " +"preserved. Useful for seeking and playback." +msgstr "" +"Перезапускає емітер частинок.\n" +"Якщо [param keep_seed] має значення [code]true[/code], поточне випадкове " +"початкове число буде збережено. Корисно для пошуку та відтворення." + +msgid "" +"Sets the [Curve] of the parameter specified by [enum Parameter]. Should be a " +"unit [Curve]." +msgstr "" +"Встановлює [Криву] параметра, визначеного параметром [enum Parameter]. Має " +"бути одиницею [Крива]." + msgid "Sets the maximum value for the given parameter." msgstr "Налаштовує максимальне значення для даного параметра." @@ -29652,6 +37416,13 @@ msgstr "" msgid "Number of particles emitted in one emission cycle." msgstr "Кількість частинок, які випромінюються в одному циклі викидів." +msgid "" +"Each particle's rotation will be animated along this [Curve]. Should be a " +"unit [Curve]." +msgstr "" +"Обертання кожної частинки буде анімовано вздовж цієї [кривої]. Має бути " +"одиницею [Крива]." + msgid "Maximum initial rotation applied to each particle, in degrees." msgstr "" "Максимальне початкове обертання наноситься на кожну частинку, в градусах." @@ -29659,6 +37430,13 @@ msgstr "" msgid "Minimum equivalent of [member angle_max]." msgstr "Мінімальний еквівалент [пам'ятний кут_макс]." +msgid "" +"Each particle's angular velocity will vary along this [Curve]. Should be a " +"unit [Curve]." +msgstr "" +"Кутова швидкість кожної частинки змінюватиметься вздовж цієї [кривої]. Має " +"бути одиницею [Крива]." + msgid "" "Maximum initial angular velocity (rotation speed) applied to each particle in " "[i]degrees[/i] per second." @@ -29669,6 +37447,13 @@ msgstr "" msgid "Minimum equivalent of [member angular_velocity_max]." msgstr "Мінімальний еквівалент [пам'ятний кутовий_velocity_max]." +msgid "" +"Each particle's animation offset will vary along this [Curve]. Should be a " +"unit [Curve]." +msgstr "" +"Зсув анімації кожної частинки змінюватиметься вздовж цієї [кривої]. Має бути " +"одиницею [Крива]." + msgid "" "Maximum animation offset that corresponds to frame index in the texture. " "[code]0[/code] is the first frame, [code]1[/code] is the last one. See " @@ -29681,6 +37466,13 @@ msgstr "" msgid "Minimum equivalent of [member anim_offset_max]." msgstr "Мінімальний еквівалент [член anim_offset_max]." +msgid "" +"Each particle's animation speed will vary along this [Curve]. Should be a " +"unit [Curve]." +msgstr "" +"Швидкість анімації кожної частинки змінюватиметься вздовж цієї [кривої]. Має " +"бути одиницею [Крива]." + msgid "" "Maximum particle animation speed. Animation speed of [code]1[/code] means " "that the particles will make full [code]0[/code] to [code]1[/code] offset " @@ -29706,6 +37498,24 @@ msgstr "" "Кожен початковий колір частинки. Якщо [пам'ятна фактура] визначено, він буде " "багатопліфікований цим кольором." +msgid "" +"Each particle's initial color will vary along this [Gradient] (multiplied " +"with [member color])." +msgstr "" +"Початковий колір кожної частинки змінюватиметься вздовж цього [Градієнта] " +"(помноженого на [колір елемента])." + +msgid "" +"Each particle's color will vary along this [Gradient] over its lifetime " +"(multiplied with [member color])." +msgstr "" +"Колір кожної частинки змінюватиметься вздовж цього [Градієнта] протягом свого " +"життя (помноженого на [колір члена])." + +msgid "Damping will vary along this [Curve]. Should be a unit [Curve]." +msgstr "" +"Демпфування змінюватиметься вздовж цієї [кривої]. Має бути одиницею [Крива]." + msgid "" "The maximum rate at which particles lose velocity. For example value of " "[code]100[/code] means that the particle will go from [code]100[/code] " @@ -29807,6 +37617,12 @@ msgstr "" msgid "Gravity applied to every particle." msgstr "Гравітність наноситься на кожну частинку." +msgid "" +"Each particle's hue will vary along this [Curve]. Should be a unit [Curve]." +msgstr "" +"Відтінок кожної частинки змінюватиметься вздовж цієї [кривої]. Має бути " +"одиницею [Крива]." + msgid "" "Maximum initial hue variation applied to each particle. It will shift the " "particle color's hue." @@ -29833,6 +37649,13 @@ msgstr "Кількість часу кожної частинки буде іс msgid "Particle lifetime randomness ratio." msgstr "Термін служби частинок випадковим чином." +msgid "" +"Each particle's linear acceleration will vary along this [Curve]. Should be a " +"unit [Curve]." +msgstr "" +"Лінійне прискорення кожної частинки змінюватиметься вздовж цієї [кривої]. Має " +"бути одиницею [Крива]." + msgid "" "Maximum linear acceleration applied to each particle in the direction of " "motion." @@ -29865,6 +37688,13 @@ msgstr "" "Якщо [code]true[/code], виникає лише один цикл викидів. Якщо встановити " "[code]true[/code] під час циклу, емісія буде припинена в кінці циклу." +msgid "" +"Each particle's orbital velocity will vary along this [Curve]. Should be a " +"unit [Curve]." +msgstr "" +"Орбітальна швидкість кожної частинки змінюватиметься вздовж цієї [кривої]. " +"Має бути одиницею [Крива]." + msgid "" "Maximum orbital velocity applied to each particle. Makes the particles circle " "around origin. Specified in number of full rotations around origin per second." @@ -29884,6 +37714,13 @@ msgstr "" "Система частинок починається, якщо вона вже була запущена протягом багатьох " "секунд." +msgid "" +"Each particle's radial acceleration will vary along this [Curve]. Should be a " +"unit [Curve]." +msgstr "" +"Радіальне прискорення кожної частинки змінюватиметься вздовж цієї [кривої]. " +"Має бути одиницею [Крива]." + msgid "" "Maximum radial acceleration applied to each particle. Makes particle " "accelerate away from the origin or towards it if negative." @@ -29897,12 +37734,43 @@ msgstr "Мінімальний еквівалент [пам'ятний раді msgid "Emission lifetime randomness ratio." msgstr "Відносність термінів життя емісії." +msgid "" +"Each particle's scale will vary along this [Curve]. Should be a unit [Curve]." +msgstr "" +"Масштаб кожної частинки змінюватиметься вздовж цієї [кривої]. Має бути " +"одиницею [Крива]." + msgid "Maximum initial scale applied to each particle." msgstr "Максимальна початкова шкала наноситься на кожну частинку." msgid "Minimum equivalent of [member scale_amount_max]." msgstr "Мінімальний еквівалент [пам'яті_amount_max]." +msgid "" +"Each particle's horizontal scale will vary along this [Curve]. Should be a " +"unit [Curve].\n" +"[member split_scale] must be enabled." +msgstr "" +"Горизонтальний масштаб кожної частинки змінюватиметься вздовж цієї [кривої]. " +"Має бути одиницею [Крива].\n" +"[member split_scale] має бути ввімкнено." + +msgid "" +"Each particle's vertical scale will vary along this [Curve]. Should be a unit " +"[Curve].\n" +"[member split_scale] must be enabled." +msgstr "" +"Вертикальний масштаб кожної частинки змінюватиметься вздовж цієї [кривої]. " +"Має бути одиницею [Крива].\n" +"[member split_scale] має бути ввімкнено." + +msgid "" +"Sets the random seed used by the particle system. Only effective if [member " +"use_fixed_seed] is [code]true[/code]." +msgstr "" +"Встановлює випадкове початкове число, яке використовується системою частинок. " +"Ефективно, лише якщо [member use_fixed_seed] має значення [code]true[/code]." + msgid "" "Particle system's running speed scaling ratio. A value of [code]0[/code] can " "be used to pause the particles." @@ -29924,6 +37792,13 @@ msgstr "" "Діапазон початкового напрямку частинок від [code] +спред[/code] до [code]-" "спред.[/code] градусів." +msgid "" +"Each particle's tangential acceleration will vary along this [Curve]. Should " +"be a unit [Curve]." +msgstr "" +"Тангенціальне прискорення кожної частинки змінюватиметься вздовж цієї " +"[кривої]. Має бути одиницею [Крива]." + msgid "" "Maximum tangential acceleration applied to each particle. Tangential " "acceleration is perpendicular to the particle's velocity giving the particles " @@ -29939,6 +37814,17 @@ msgstr "Мінімальний еквівалент [член tangential_accel_m msgid "Particle texture. If [code]null[/code], particles will be squares." msgstr "Текстура частинок. Якщо [code]null[/code], частинки будуть квадрати." +msgid "" +"If [code]true[/code], particles will use the same seed for every simulation " +"using the seed defined in [member seed]. This is useful for situations where " +"the visual outcome should be consistent across replays, for example when " +"using Movie Maker mode." +msgstr "" +"Якщо [code]true[/code], частинки використовуватимуть той самий сімпл для " +"кожної симуляції, використовуючи сімпл, визначений у [member seed]. Це " +"корисно у ситуаціях, коли візуальний результат має бути однаковим у всіх " +"відтвореннях, наприклад, при використанні режиму Movie Maker." + msgid "" "Emitted when all active particles have finished processing. When [member " "one_shot] is disabled, particles will process continuously, so this is never " @@ -30140,6 +38026,13 @@ msgstr "Максимальний кут." msgid "Minimum angle." msgstr "Мінімальний кут." +msgid "" +"Each particle's angular velocity (rotation speed) will vary along this " +"[Curve] over its lifetime. Should be a unit [Curve]." +msgstr "" +"Кутова (швидкість обертання) кожної частинки змінюватиметься вздовж цієї " +"[кривої] протягом її життя. Має бути одиницею [Крива]." + msgid "" "Minimum initial angular velocity (rotation speed) applied to each particle in " "[i]degrees[/i] per second." @@ -30176,6 +38069,44 @@ msgstr "" "шейдер [code] фрагмент()[/code]. В іншому випадку [пам'яний колір] не буде " "видимого ефекту." +msgid "" +"Each particle's initial color will vary along this [Gradient] (multiplied " +"with [member color]).\n" +"[b]Note:[/b] [member color_initial_ramp] multiplies the particle mesh's " +"vertex colors. To have a visible effect on a [BaseMaterial3D], [member " +"BaseMaterial3D.vertex_color_use_as_albedo] [i]must[/i] be [code]true[/code]. " +"For a [ShaderMaterial], [code]ALBEDO *= COLOR.rgb;[/code] must be inserted in " +"the shader's [code]fragment()[/code] function. Otherwise, [member " +"color_initial_ramp] will have no visible effect." +msgstr "" +"Початковий колір кожної частинки змінюватиметься вздовж цього [Gradient] " +"(помноженого на [member color]).\n" +"[b]Примітка:[/b] [член color_initial_ramp] перемножує кольори вершин сіті " +"частинок. Щоб мати видимий ефект на [BaseMaterial3D], [член BaseMaterial3D." +"vertex_color_use_as_albedo] [i]має[/i] бути [code]true[/code]. Для " +"[ShaderMaterial], [code]ALBEDO *= COLOR.rgb;[/code] має бути вставлено у " +"функцію [code]fragment()[/code] шейдера. В іншому випадку, [member " +"color_initial_ramp] не матиме видимого ефекту." + +msgid "" +"Each particle's color will vary along this [Gradient] over its lifetime " +"(multiplied with [member color]).\n" +"[b]Note:[/b] [member color_ramp] multiplies the particle mesh's vertex " +"colors. To have a visible effect on a [BaseMaterial3D], [member " +"BaseMaterial3D.vertex_color_use_as_albedo] [i]must[/i] be [code]true[/code]. " +"For a [ShaderMaterial], [code]ALBEDO *= COLOR.rgb;[/code] must be inserted in " +"the shader's [code]fragment()[/code] function. Otherwise, [member color_ramp] " +"will have no visible effect." +msgstr "" +"Колір кожної частинки змінюватиметься вздовж цього [Gradient] протягом її " +"життя (помноженого на [member color]).\n" +"[b]Примітка:[/b] [член color_ramp] перемножує кольори вершин сіті частинок. " +"Щоб мати видимий ефект на [BaseMaterial3D], [член BaseMaterial3D." +"vertex_color_use_as_albedo] [i]має[/i] бути [code]true[/code]. Для " +"[ShaderMaterial], [code]ALBEDO *= COLOR.rgb;[/code] має бути вставлено у " +"функцію [code]fragment()[/code] шейдера. В іншому випадку [member color_ramp] " +"не матиме видимого ефекту." + msgid "Maximum damping." msgstr "Максимальне пошкодження." @@ -30213,6 +38144,20 @@ msgid "" msgstr "" "Ось кільце при використанні випромінювача [constant EMISSION_SHAPE_RING]." +msgid "" +"The angle of the cone when using the emitter [constant EMISSION_SHAPE_RING]. " +"The default angle of 90 degrees results in a ring, while an angle of 0 " +"degrees results in a cone. Intermediate values will result in a ring where " +"one end is larger than the other.\n" +"[b]Note:[/b] Depending on [member emission_ring_height], the angle may be " +"clamped if the ring's end is reached to form a perfect cone." +msgstr "" +"Кут конуса при використанні випромінювача [константа EMISSION_SHAPE_RING]. За " +"замовчуванням кут 90 градусів створює кільце, а кут 0 градусів - конус. " +"Проміжні значення призведуть до кільця, де один кінець більший за інший.\n" +"[b]Примітка:[/b] Залежно від [member emission_ring_height], кут може бути " +"затиснутий, якщо кінець кільця досягне ідеального конуса." + msgid "" "The height of the ring when using the emitter [constant EMISSION_SHAPE_RING]." msgstr "" @@ -30469,78 +38414,80 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Клас Crypto забезпечує доступ до розширених функцій криптографічних даних.\n" -"В даний час це включає в себе симетричне шифрування ключів / розшифрування, " -"підписання / верифікація та створення криптографічно захищених випадкових " -"байтів, ключів RSA, травлення HMAC та самовідданих [X509Certificate]s.\n" -"[блоки коду]\n" -"[видання]\n" -"var крипто = Crypto.new()\n" +"Клас Crypto надає доступ до розширених криптографічних функцій. \n" +"Наразі це включає шифрування/дешифрування асиметричного ключа, підписання/" +"перевірку та генерацію криптографічно безпечних випадкових байтів, ключів " +"RSA, дайджестів HMAC і самопідписаних [X509Certificate]. \n" +"[codeblocks]\n" +"[gdscript]\n" +"var crypto = Crypto.new() \n" "\n" -"# Генерувати новий ключ RSA.\n" -"ключ вар = крипто.generate_rsa(4096)\n" +"# Створіть новий ключ RSA. \n" +"змінний ключ = crypto.generate_rsa(4096) \n" "\n" -"Нема Генерувати новий самовідданий сертифікат з заданим ключем.\n" -"var cert = крипто.generate_self_signed_certificate(key, \"CN=mydomain.com," -"O=My Game Company,C=IT\")\n" +"# Створіть новий самопідписаний сертифікат із вказаним ключем. \n" +"var cert = crypto.generate_self_signed_certificate(key, \"CN=mydomain.com," +"O=My Game Company,C=IT\") \n" "\n" -"Нема Заощаджуйте ключ і сертифікат в папці користувача.\n" -"key.save(\"user://generated.key\")\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" +"# Збережіть ключ і сертифікат у папці користувача. \n" +"key.save(\"user://generated.key\") \n" +"cert.save(\"user://generated.crt\") \n" "\n" -"# Шифрування\n" -"Варні дані = \"Симові дані\"\n" -"var зашифрований = крипто.encrypt(key, data.to_utf8_buffer())\n" +"# Шифрування \n" +"var data = \"Деякі дані\" \n" +"var encrypted = crypto.encrypt(key, data.to_utf8_buffer()) \n" "\n" -"# Дешифрування\n" -"var decrypted = крипто.decrypt(під ключ, зашифрований)\n" +"# Розшифровка \n" +"var decrypted = crypto.decrypt(key, encrypted) \n" "\n" -"# Підписка\n" -"English, Українська, Français...\n" +"# Підпис \n" +"var signature = crypto.sign(HashingContext.HASH_SHA256, data.sha256_buffer(), " +"key) \n" "\n" -"# Перевірити\n" -"var перевірено = крипто.verify(HashingContext.HASH_SHA256, дані." -"sha256_buffer(), підпис, ключ)\n" +"# Перевірка \n" +"var verified = crypto.verify(HashingContext.HASH_SHA256, data." +"sha256_buffer(), signature, key) \n" "\n" -"Нема Зареєструватися\n" -"стверджувати(перевірено)\n" -"Заява(data.to_utf8_buffer() == розшифровується)\n" -"[/gdscript]\n" -"[csharp]\n" -"за допомогою Godot;\n" -"за допомогою системи. Діагностика;\n" +"# Перевірки \n" +"стверджувати (verified) \n" +"assert(data.to_utf8_buffer() == decrypted) \n" +"[/gdscript] \n" +"[csharp] \n" +"using Godot; \n" +"using System.Diagnostics; \n" "\n" -"Crypto крипто = новий Crypto();\n" +"Crypto crypto = new Crypto(); \n" "\n" -"// Генерувати новий ключ RSA.\n" -"CryptoKey key = крипто.GenerateRsa(4096);\n" +"// Створення нового ключа RSA. \n" +"Key CryptoKey = crypto.GenerateRsa(4096); \n" "\n" -"// Генерувати новий самовизнаний сертифікат з заданим ключем.\n" -"X509Сертифікат сертифіката = крипто.GenerateSelfSignedCertificate(під ключ, " +"// Створити новий самопідписаний сертифікат із заданим ключем. \n" +"X509Certificate cert = crypto.GenerateSelfSignedCertificate(key, " "\"CN=mydomain.com,O=My Game Company,C=IT\");\n" "\n" -"(Українська) Заощаджуйте ключ і сертифікат в папці користувача.\n" -"key.Save(\"user://generated.key\");\n" -"cert.Save(\"user://generated.crt\");\n" +"// Збережіть ключ і сертифікат у папці користувача. \n" +"key.Save(\"user://generated.key\"); \n" +"cert.Save(\"user://generated.crt\"); \n" "\n" -"// Шифрування\n" -"string data = \"Зимові дані\";\n" -"byte[] зашифрований = крипто.Encrypt(ключа, дані.ToUtf8Buffer());\n" +"// Шифрування \n" +"string data = \"Деякі дані\"; \n" +"byte[] encrypted = crypto.Encrypt(key, data.ToUtf8Buffer()); \n" "\n" -"// Дешифрування\n" -"byte[] decrypted = крипто.Decrypt(під ключ, зашифрований);\n" +"// Розшифровка \n" +"byte[] decrypted = crypto.Decrypt(key, encrypted); \n" "\n" -"// Запис\n" -"[] підпис = крипто.Sign(HashType.Sha256, Data.Sha256Buffer(), ключ);\n" +"// Підписання \n" +"byte[] signature = crypto.Sign(HashingContext.HashType.Sha256, Data." +"Sha256Buffer(), key); \n" "\n" -"// Верифікація\n" -"bool перевірено = крипто.Verify(HashType.Sha256, Data.Sha256Buffer(), підпис, " -"ключ);\n" +"// Перевірка \n" +"bool verified = crypto.Verify(HashingContext.HashType.Sha256, Data." +"Sha256Buffer(), signature, key); \n" "\n" -"// Перевірка\n" -"Debug.Assert(перевірено);\n" -"Debug.Assert(data.ToUtf8Buffer() == розшифровується);\n" -"[/csharp]\n" +"// Перевірки \n" +"Debug.Assert(verified); \n" +"Debug.Assert(data.ToUtf8Buffer() == decrypted); \n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -30623,21 +38570,21 @@ msgstr "" "(організація, тобто ім'я Вашої компанії), \"C=\" (country, тобто 2 листований " "код ISO-3166 країни, організація базується на).\n" "Невеликий приклад для створення ключа RSA і сертифіката X509.\n" -"[блоки коду]\n" -"[видання]\n" -"var крипто = Crypto.new()\n" +"[codeblocks]\n" +"[gdscript]\n" +"var crypto = Crypto.new()\n" "# Генерувати 4096 біт RSA ключ.\n" "ключ вар = крипто.generate_rsa(4096)\n" "# Генерувати самопризначений сертифікат за допомогою даного ключа.\n" -"var cert = крипто.generate_self_signed_certificate(key, \"CN=example.com,O=A " +"var cert = crypto.generate_self_signed_certificate(key, \"CN=example.com,O=A " "Game Company,C=IT\")\n" "[/gdscript]\n" "[csharp]\n" -"var крипто = новий Crypto();\n" +"var crypto = new Crypto();\n" "// Генерувати 4096 біт RSA ключ.\n" "CryptoKey key = крипто.GenerateRsa(4096);\n" "// Генерувати самопризначений сертифікат за допомогою даного ключа.\n" -"X509Сертифікат сертифіката = крипто.GenerateSelfSignedCertificate(під ключ, " +"X509Certificate cert = crypto.GenerateSelfSignedCertificate(key, " "\"CN=mydomain.com,O=My Game Company,C=IT\");\n" "[/csharp]\n" "[/codeblocks]" @@ -30834,9 +38781,62 @@ msgstr "" msgid "A CSG Mesh shape that uses a mesh resource." msgstr "КСГ Форма сітки, яка використовує сітчастий ресурс." +msgid "" +"This CSG node allows you to use any mesh resource as a CSG shape, provided it " +"is [i]manifold[/i]. A manifold shape is closed, does not self-intersect, does " +"not contain internal faces and has no edges that connect to more than two " +"faces. See also [CSGPolygon3D] for drawing 2D extruded polygons to be used as " +"CSG nodes.\n" +"[b]Note:[/b] CSG nodes are intended to be used for level prototyping. " +"Creating CSG nodes has a significant CPU cost compared to creating a " +"[MeshInstance3D] with a [PrimitiveMesh]. Moving a CSG node within another CSG " +"node also has a significant CPU cost, so it should be avoided during gameplay." +msgstr "" +"Цей CSG-вузол дозволяє використовувати будь-який ресурс сіті як CSG-фігуру, " +"якщо він є [i]многовидом[/i]. Множинна фігура є замкненою, не перетинається, " +"не містить внутрішніх граней і не має ребер, які з'єднуються з більш ніж " +"двома гранями. Дивіться також [CSGPolygon3D] для малювання 2D екструдованих " +"багатокутників, які можна використовувати як вузли CSG.\n" +"[b]Примітка:[/b] CSG-вузли призначені для використання у прототипуванні " +"рівнів. Створення CSG-вузлів вимагає значних витрат процесорних ресурсів у " +"порівнянні зі створенням [MeshInstance3D] за допомогою [PrimitiveMesh]. " +"Переміщення CSG-вузла в межах іншого CSG-вузла також має значні витрати " +"процесорних ресурсів, тому його слід уникати під час гри." + msgid "The [Material] used in drawing the CSG shape." msgstr "[Material] використовується в малюнку CSG форми." +msgid "" +"The [Mesh] resource to use as a CSG shape.\n" +"[b]Note:[/b] Some [Mesh] types such as [PlaneMesh], [PointMesh], [QuadMesh], " +"and [RibbonTrailMesh] are excluded from the type hint for this property, as " +"these primitives are non-[i]manifold[/i] and thus not compatible with the CSG " +"algorithm.\n" +"[b]Note:[/b] When using an [ArrayMesh], all vertex attributes except " +"[constant Mesh.ARRAY_VERTEX], [constant Mesh.ARRAY_NORMAL] and [constant Mesh." +"ARRAY_TEX_UV] are left unused. Only [constant Mesh.ARRAY_VERTEX] and " +"[constant Mesh.ARRAY_TEX_UV] will be passed to the GPU.\n" +"[constant Mesh.ARRAY_NORMAL] is only used to determine which faces require " +"the use of flat shading. By default, CSGMesh will ignore the mesh's vertex " +"normals, recalculate them for each vertex and use a smooth shader. If a flat " +"shader is required for a face, ensure that all vertex normals of the face are " +"approximately equal." +msgstr "" +"Ресурс [Mesh] для використання як фігури CSG.\n" +"[b]Примітка:[/b] Деякі типи [Mesh], такі як [PlaneMesh], [PointMesh], " +"[QuadMesh] та [RibbonTrailMesh] виключено з підказки типу для цієї " +"властивості, оскільки ці примітиви не є [i]різноманітними[/i] і тому не " +"сумісні з алгоритмом CSG.\n" +"[b]Примітка:[/b] При використанні [ArrayMesh] всі атрибути вершин, крім " +"[константа Mesh.ARRAY_VERTEX], [константа Mesh.ARRAY_NORMAL] і [константа " +"Mesh.ARRAY_TEX_UV], залишаються невикористаними. На графічний процесор буде " +"передано лише [constant Mesh.ARRAY_VERTEX] та [constant Mesh.ARRAY_TEX_UV].\n" +"[constant Mesh.ARRAY_NORMAL] використовується лише для визначення того, які " +"грані потребують використання плаского зафарбовування. За замовчуванням " +"CSGMesh ігнорує нормалі вершин сіті, перераховує їх для кожної вершини і " +"використовує плаский шейдер. Якщо для грані потрібно застосувати плаский " +"шейдер, переконайтеся, що нормалі всіх вершин грані приблизно однакові." + msgid "Extrudes a 2D polygon shape to create a 3D mesh." msgstr "Виводить форму полігону 2D для створення сітки 3D." @@ -30931,6 +38931,17 @@ msgstr "" "Коли [пам'ятний режим] є [constant MODE_PATH], метод обертання шляху " "використовується для обертання [пам'ятний полігон], як він виводиться." +msgid "" +"When [member mode] is [constant MODE_PATH], if [code]true[/code] the polygon " +"will be rotated according to the proper tangent of the path at the sampled " +"points. If [code]false[/code] an approximation is used, which decreases in " +"accuracy as the number of subdivisions decreases." +msgstr "" +"Якщо [mode_член] дорівнює [constant MODE_PATH], якщо [code]true[/code], " +"полігон буде обертатися відповідно до дотичної до шляху в точках, де зроблено " +"вибірку. Якщо [code]false[/code], буде використано наближення, точність якого " +"зменшується зі зменшенням кількості підрозділів." + msgid "" "When [member mode] is [constant MODE_PATH], extrusions that are less than " "this angle, will be merged together to reduce polygon count." @@ -31060,6 +39071,63 @@ msgstr "" msgid "The CSG base class." msgstr "Базовий клас CSG." +msgid "" +"This is the CSG base class that provides CSG operation support to the various " +"CSG nodes in Godot.\n" +"[b]Performance:[/b] CSG nodes are only intended for prototyping as they have " +"a significant CPU performance cost.\n" +"Consider baking final CSG operation results into static geometry that " +"replaces the CSG nodes.\n" +"Individual CSG root node results can be baked to nodes with static resources " +"with the editor menu that appears when a CSG root node is selected.\n" +"Individual CSG root nodes can also be baked to static resources with scripts " +"by calling [method bake_static_mesh] for the visual mesh or [method " +"bake_collision_shape] for the physics collision.\n" +"Entire scenes of CSG nodes can be baked to static geometry and exported with " +"the editor gltf scene exporter." +msgstr "" +"Це базовий клас CSG, який забезпечує підтримку роботи CSG для різних вузлів " +"CSG у Godot.\n" +"[b]Продуктивність:[/b] Вузли CSG призначені лише для прототипування, оскільки " +"вони мають значні витрати процесорної продуктивності.\n" +"Розгляньте можливість запікання кінцевих результатів роботи CSG у статичну " +"геометрію, яка замінює вузли CSG.\n" +"Окремі результати кореневих вузлів CSG можна запекти у вузли зі статичними " +"ресурсами за допомогою меню редактора, яке з'являється при виборі кореневого " +"вузла CSG.\n" +"Окремі кореневі вузли CSG також можна запекти у статичні ресурси за допомогою " +"скриптів, викликавши [method bake_static_mesh] для візуальної сіті або " +"[method bake_collision_shape] для фізичної колізії.\n" +"Цілі сцени вузлів CSG можна запікати у статичну геометрію та експортувати за " +"допомогою редактора gltf scene exporter." + +msgid "" +"Returns a baked physics [ConcavePolygonShape3D] of this node's CSG operation " +"result. Returns an empty shape if the node is not a CSG root node or has no " +"valid geometry.\n" +"[b]Performance:[/b] If the CSG operation results in a very detailed geometry " +"with many faces physics performance will be very slow. Concave shapes should " +"in general only be used for static level geometry and not with dynamic " +"objects that are moving." +msgstr "" +"Повертає запечену фізику [ConcavePolygonShape3D] результату операції CSG цієї " +"вершини. Повертає порожню фігуру, якщо вузол не є кореневим вузлом CSG або не " +"має правильної геометрії.\n" +"[b]Продуктивність:[/b] Якщо результатом операції CSG є дуже детальна " +"геометрія з багатьма гранями, фізична продуктивність буде дуже повільною. " +"Увігнуті форми слід використовувати лише для статичної геометрії рівнів, а не " +"для динамічних об'єктів, що рухаються." + +msgid "" +"Returns a baked static [ArrayMesh] of this node's CSG operation result. " +"Materials from involved CSG nodes are added as extra mesh surfaces. Returns " +"an empty mesh if the node is not a CSG root node or has no valid geometry." +msgstr "" +"Повертає запечений статичний масив [ArrayMesh] результату операції CSG цього " +"вузла. Матеріали із задіяних вузлів CSG додаються як додаткові поверхні сіті. " +"Повертає порожню сіть, якщо вузол не є кореневим вузлом CSG або не має " +"допустимої геометрії." + msgid "" "Returns an [Array] with two elements, the first is the [Transform3D] of this " "node and the second is the root [Mesh] of this node. Only works when this " @@ -31139,6 +39207,12 @@ msgstr "" "дочірнього вузла, оскільки операція є між цією вершиною і попередньої дитини " "цього вершини батьків." +msgid "The CSG library no longer uses snapping." +msgstr "Бібліотека CSG більше не використовує прив’язку." + +msgid "This property does nothing." +msgstr "Це властивість нічого не робить." + msgid "" "Adds a collision shape to the physics engine for our CSG shape. This will " "always act like a static body. Note that the collision shape is still active " @@ -31264,12 +39338,192 @@ msgstr "" "Шість квадратових текстур, що представляють обличчя куба. Зазвичай " "використовується як хмарочос." +msgid "" +"A cubemap is made of 6 textures organized in layers. They are typically used " +"for faking reflections in 3D rendering (see [ReflectionProbe]). It can be " +"used to make an object look as if it's reflecting its surroundings. This " +"usually delivers much better performance than other reflection methods.\n" +"This resource is typically used as a uniform in custom shaders. Few core " +"Godot methods make use of [Cubemap] resources.\n" +"To create such a texture file yourself, reimport your image files using the " +"Godot Editor import presets. To create a Cubemap from code, use [method " +"ImageTextureLayered.create_from_images] on an instance of the Cubemap class.\n" +"The expected image order is X+, X-, Y+, Y-, Z+, Z- (in Godot's coordinate " +"system, so Y+ is \"up\" and Z- is \"forward\"). You can use one of the " +"following templates as a base:\n" +"- [url=https://raw.githubusercontent.com/godotengine/godot-docs/master/" +"tutorials/assets_pipeline/img/cubemap_template_2x3.webp]2×3 cubemap template " +"(default layout option)[/url]\n" +"- [url=https://raw.githubusercontent.com/godotengine/godot-docs/master/" +"tutorials/assets_pipeline/img/cubemap_template_3x2.webp]3×2 cubemap template[/" +"url]\n" +"- [url=https://raw.githubusercontent.com/godotengine/godot-docs/master/" +"tutorials/assets_pipeline/img/cubemap_template_1x6.webp]1×6 cubemap template[/" +"url]\n" +"- [url=https://raw.githubusercontent.com/godotengine/godot-docs/master/" +"tutorials/assets_pipeline/img/cubemap_template_6x1.webp]6×1 cubemap template[/" +"url]\n" +"[b]Note:[/b] Godot doesn't support using cubemaps in a [PanoramaSkyMaterial]. " +"To use a cubemap as a skybox, convert the default [PanoramaSkyMaterial] to a " +"[ShaderMaterial] using the [b]Convert to ShaderMaterial[/b] resource dropdown " +"option, then replace its code with the following:\n" +"[codeblock lang=text]\n" +"shader_type sky;\n" +"\n" +"uniform samplerCube source_panorama : filter_linear, source_color, " +"hint_default_black;\n" +"uniform float exposure : hint_range(0, 128) = 1.0;\n" +"\n" +"void sky() {\n" +" // If importing a cubemap from another engine, you may need to flip one " +"of the `EYEDIR` components below\n" +" // by replacing it with `-EYEDIR`.\n" +" vec3 eyedir = vec3(EYEDIR.x, EYEDIR.y, EYEDIR.z);\n" +" COLOR = texture(source_panorama, eyedir).rgb * exposure;\n" +"}\n" +"[/codeblock]\n" +"After replacing the shader code and saving, specify the imported Cubemap " +"resource in the Shader Parameters section of the ShaderMaterial in the " +"inspector.\n" +"Alternatively, you can use [url=https://danilw.github.io/GLSL-howto/" +"cubemap_to_panorama_js/cubemap_to_panorama.html]this tool[/url] to convert a " +"cubemap to an equirectangular sky map and use [PanoramaSkyMaterial] as usual." +msgstr "" +"Кубічна карта складається з 6 текстур, організованих у шари. Зазвичай вони " +"використовуються для імітації відображень у 3D-візуалізації (див. " +"[ReflectionProbe]). Його можна використовувати, щоб зробити об’єкт таким, " +"ніби він відображає навколишнє середовище. Це зазвичай забезпечує набагато " +"кращу продуктивність, ніж інші методи відображення. \n" +"Цей ресурс зазвичай використовується як уніформа в власних шейдерах. Кілька " +"основних методів Годо використовують ресурси [Cubemap]. \n" +"Щоб самостійно створити такий файл текстури, повторно імпортуйте файли " +"зображень за допомогою попередніх налаштувань імпорту редактора Godot. Щоб " +"створити Cubemap із коду, використовуйте [метод ImageTextureLayered." +"create_from_images] для екземпляра класу Cubemap. \n" +"Очікуваний порядок зображень: X+, X-, Y+, Y-, Z+, Z- (у системі координат " +"Годо, тому Y+ — «вгору», а Z- — «вперед»). За основу можна взяти один із " +"наступних шаблонів: \n" +"- [url=https://raw.githubusercontent.com/godotengine/godot-docs/master/" +"tutorials/assets_pipeline/img/cubemap_template_2x3.webp]Шаблон кубічної карти " +"2×3 (параметр макета за замовчуванням)[/url] \n" +"- [url=https://raw.githubusercontent.com/godotengine/godot-docs/master/" +"tutorials/assets_pipeline/img/cubemap_template_3x2.webp]Шаблон кубічної карти " +"3×2[/url] \n" +"- [url=https://raw.githubusercontent.com/godotengine/godot-docs/master/" +"tutorials/assets_pipeline/img/cubemap_template_1x6.webp]Шаблон кубічної карти " +"1×6[/url] \n" +"- [url=https://raw.githubusercontent.com/godotengine/godot-docs/master/" +"tutorials/assets_pipeline/img/cubemap_template_6x1.webp]Шаблон кубічної карти " +"6×1[/url] \n" +"[b]Примітка: [/b] Godot не підтримує використання кубичних карт у " +"[PanoramaSkyMaterial]. Щоб використовувати кубічну карту як скайбокс, " +"перетворіть [PanoramaSkyMaterial] на [ShaderMaterial] за допомогою параметра " +"[b]Convert to ShaderMaterial[/b] ресурсу, що випадає, а потім замініть його " +"код таким: \n" +"[codeblock lang=text] \n" +"shader_type sky; \n" +"\n" +"uniform samplerCube source_panorama : filter_linear, source_color, " +"hint_default_black; \n" +"uniform float exposure: hint_range(0, 128) = 1,0; \n" +"\n" +"void sky() { \n" +" // Якщо імпортуєте кубічну карту з іншого механізму, вам може знадобитися " +"перевернути один із компонентів `EYEDIR` нижче \n" +" // замінивши його на `-EYEDIR`. \n" +" vec3 eyedir = vec3(EYEDIR.x, EYEDIR.y, EYEDIR.z); \n" +" COLOR = texture(source_panorama, eyedir).rgb * exposure; \n" +"}\n" +"[/codeblock] \n" +"Після заміни коду шейдера та збереження вкажіть імпортований ресурс Cubemap у " +"розділі Shader Parameters ShaderMaterial в інспекторі. \n" +"Крім того, ви можете використовувати [url=https://danilw.github.io/GLSL-howto/" +"cubemap_to_panorama_js/cubemap_to_panorama.html]цей інструмент[/url], щоб " +"перетворити кубічну карту на рівнопрямокутну карту неба та використовувати " +"[PanoramaSkyMaterial] як зазвичай." + msgid "Creates a placeholder version of this resource ([PlaceholderCubemap])." msgstr "Створює резиденцію вкладника цього ресурсу ([ОтримувачаКупета])." msgid "An array of [Cubemap]s, stored together and with a single reference." msgstr "Array of [Cubemap]s, збережені разом і з одним посиланням." +msgid "" +"[CubemapArray]s are made of an array of [Cubemap]s. Like [Cubemap]s, they are " +"made of multiple textures, the amount of which must be divisible by 6 (one " +"for each face of the cube).\n" +"The primary benefit of [CubemapArray]s is that they can be accessed in shader " +"code using a single texture reference. In other words, you can pass multiple " +"[Cubemap]s into a shader using a single [CubemapArray]. [Cubemap]s are " +"allocated in adjacent cache regions on the GPU, which makes [CubemapArray]s " +"the most efficient way to store multiple [Cubemap]s.\n" +"Godot uses [CubemapArray]s internally for many effects, including the [Sky] " +"if you set [member ProjectSettings.rendering/reflections/sky_reflections/" +"texture_array_reflections] to [code]true[/code].\n" +"To create such a texture file yourself, reimport your image files using the " +"Godot Editor import presets. To create a CubemapArray from code, use [method " +"ImageTextureLayered.create_from_images] on an instance of the CubemapArray " +"class.\n" +"The expected image order is X+, X-, Y+, Y-, Z+, Z- (in Godot's coordinate " +"system, so Y+ is \"up\" and Z- is \"forward\"). You can use one of the " +"following templates as a base:\n" +"- [url=https://raw.githubusercontent.com/godotengine/godot-docs/master/" +"tutorials/assets_pipeline/img/cubemap_template_2x3.webp]2×3 cubemap template " +"(default layout option)[/url]\n" +"- [url=https://raw.githubusercontent.com/godotengine/godot-docs/master/" +"tutorials/assets_pipeline/img/cubemap_template_3x2.webp]3×2 cubemap template[/" +"url]\n" +"- [url=https://raw.githubusercontent.com/godotengine/godot-docs/master/" +"tutorials/assets_pipeline/img/cubemap_template_1x6.webp]1×6 cubemap template[/" +"url]\n" +"- [url=https://raw.githubusercontent.com/godotengine/godot-docs/master/" +"tutorials/assets_pipeline/img/cubemap_template_6x1.webp]6×1 cubemap template[/" +"url]\n" +"Multiple layers are stacked on top of each other when using the default " +"vertical import option (with the first layer at the top). Alternatively, you " +"can choose an horizontal layout in the import options (with the first layer " +"at the left).\n" +"[b]Note:[/b] [CubemapArray] is not supported in the Compatibility renderer " +"due to graphics API limitations." +msgstr "" +"[CubemapArray]s складаються з масиву [Cubemap]. Як і [Cubemap], вони " +"складаються з кількох текстур, кількість яких має ділитися на 6 (по одній для " +"кожної грані куба). \n" +"Основна перевага [CubemapArray]s полягає в тому, що до них можна отримати " +"доступ у коді шейдера за допомогою єдиного посилання на текстуру. Іншими " +"словами, ви можете передати кілька [Cubemap] у шейдер за допомогою одного " +"[CubemapArray]. [Cubemap]s розміщуються в суміжних областях кешу на GPU, що " +"робить [CubemapArray]s найефективнішим способом зберігання кількох " +"[Cubemap]s. \n" +"Godot використовує внутрішньо [CubemapArray] для багатьох ефектів, зокрема " +"для [Sky], якщо ви встановите [member ProjectSettings.rendering/reflections/" +"sky_reflections/texture_array_reflections] значення [code]true[/code]. \n" +"Щоб самостійно створити такий файл текстури, повторно імпортуйте файли " +"зображень за допомогою попередніх налаштувань імпорту редактора Godot. Щоб " +"створити CubemapArray із коду, використовуйте [метод ImageTextureLayered." +"create_from_images] для екземпляра класу CubemapArray. \n" +"Очікуваний порядок зображень: X+, X-, Y+, Y-, Z+, Z- (у системі координат " +"Годо, тому Y+ — «вгору», а Z- — «вперед»). За основу можна взяти один із " +"наступних шаблонів: \n" +"- [url=https://raw.githubusercontent.com/godotengine/godot-docs/master/" +"tutorials/assets_pipeline/img/cubemap_template_2x3.webp]Шаблон кубічної карти " +"2×3 (параметр макета за замовчуванням)[/url] \n" +"- [url=https://raw.githubusercontent.com/godotengine/godot-docs/master/" +"tutorials/assets_pipeline/img/cubemap_template_3x2.webp]Шаблон кубічної карти " +"3×2[/url] \n" +"- [url=https://raw.githubusercontent.com/godotengine/godot-docs/master/" +"tutorials/assets_pipeline/img/cubemap_template_1x6.webp]Шаблон кубічної карти " +"1×6[/url] \n" +"- [url=https://raw.githubusercontent.com/godotengine/godot-docs/master/" +"tutorials/assets_pipeline/img/cubemap_template_6x1.webp]Шаблон кубічної карти " +"6×1[/url] \n" +"Кілька шарів накладаються один на одного, якщо використовується параметр " +"вертикального імпорту за умовчанням (з першим шаром угорі). Крім того, ви " +"можете вибрати горизонтальний макет у параметрах імпорту (з першим шаром " +"ліворуч). \n" +"[b]Примітка. [/b] [CubemapArray] не підтримується в засобі візуалізації " +"сумісності через обмеження графічного API." + msgid "" "Creates a placeholder version of this resource ([PlaceholderCubemapArray])." msgstr "Створює резиденцію резидента цього ресурсу ([СкладачCubemapArray])." @@ -31277,6 +39531,24 @@ msgstr "Створює резиденцію резидента цього рес msgid "A mathematical curve." msgstr "Математична крива." +msgid "" +"This resource describes a mathematical curve by defining a set of points and " +"tangents at each point. By default, it ranges between [code]0[/code] and " +"[code]1[/code] on the X and Y axes, but these ranges can be changed.\n" +"Please note that many resources and nodes assume they are given [i]unit " +"curves[/i]. A unit curve is a curve whose domain (the X axis) is between " +"[code]0[/code] and [code]1[/code]. Some examples of unit curve usage are " +"[member CPUParticles2D.angle_curve] and [member Line2D.width_curve]." +msgstr "" +"Цей ресурс описує математичну криву шляхом визначення набору точок і дотичних " +"у кожній точці. За замовчуванням він коливається від [code]0[/code] до " +"[code]1[/code] на осях X і Y, але ці діапазони можна змінити.\n" +"Зверніть увагу, що багато ресурсів і вузлів припускають, що їм надано " +"[i]одиничні криві[/i]. Одинична крива – це крива, домен якої (вісь X) " +"знаходиться між [code]0[/code] і [code]1[/code]. Деякі приклади використання " +"одиничної кривої: [член CPUParticles2D.angle_curve] і [член Line2D." +"width_curve]." + msgid "" "Adds a point to the curve. For each side, if the [code]*_mode[/code] is " "[constant TANGENT_LINEAR], the [code]*_tangent[/code] angle (in degrees) uses " @@ -31303,6 +39575,12 @@ msgstr "" msgid "Removes all points from the curve." msgstr "Видаліть всі точки з кривої." +msgid "" +"Returns the difference between [member min_domain] and [member max_domain]." +msgstr "" +"Повертає різницю між [мінімальний_домен_учасника] і " +"[максимальний_домен_учасника]." + msgid "Returns the left [enum TangentMode] for the point at [param index]." msgstr "Повертає ліву [enum TangentMode] на точку [param index]." @@ -31320,6 +39598,12 @@ msgid "" "Returns the right tangent angle (in degrees) for the point at [param index]." msgstr "Повернення правого кута тангенса (в градусах) за точку на [параметр]." +msgid "" +"Returns the difference between [member min_value] and [member max_value]." +msgstr "" +"Повертає різницю між [мінімальне_значення учасника] і [максимальне_значення " +"учасника]." + msgid "Removes the point at [param index] from the curve." msgstr "Видаліть точку на [параметр] з вигину." @@ -31373,9 +39657,32 @@ msgstr "Призначає вертикальну позицію [param y] в т msgid "The number of points to include in the baked (i.e. cached) curve data." msgstr "Кількість точок для включення в запечені (тобто кешовані) дані кривих." +msgid "The maximum domain (x-coordinate) that points can have." +msgstr "Максимальний домен (координата x), який можуть мати точки." + +msgid "" +"The maximum value (y-coordinate) that points can have. Tangents can cause " +"higher values between points." +msgstr "" +"Максимальне значення (координата y), яке можуть мати точки. Дотичні можуть " +"викликати вищі значення між точками." + +msgid "The minimum domain (x-coordinate) that points can have." +msgstr "Мінімальний домен (координата x), який можуть мати точки." + +msgid "" +"The minimum value (y-coordinate) that points can have. Tangents can cause " +"lower values between points." +msgstr "" +"Мінімальне значення (координата y), яке можуть мати точки. Дотичні можуть " +"спричинити нижчі значення між точками." + msgid "The number of points describing the curve." msgstr "Кількість точок, що описують криву." +msgid "Emitted when [member max_domain] or [member min_domain] is changed." +msgstr "Видається, коли змінюється [member max_domain] або [member min_domain]." + msgid "Emitted when [member max_value] or [member min_value] is changed." msgstr "" "Увімкнено, коли [пам'ятий максимум_значення] або [пам'ятний мінімум_значення]." @@ -31808,6 +40115,13 @@ msgstr "" "відстань, тим більше точок в кеші і чим більше пам'яті буде споживати, тому " "використовуйте з обережністю." +msgid "" +"If [code]true[/code], and the curve has more than 2 control points, the last " +"point and the first one will be connected in a loop." +msgstr "" +"Якщо [code]true[/code] і крива має більше 2 контрольних точок, остання та " +"перша точки будуть з’єднані в цикл." + msgid "" "If [code]true[/code], the curve will bake up vectors used for orientation. " "This is used when [member PathFollow3D.rotation_mode] is set to [constant " @@ -31822,6 +40136,24 @@ msgstr "" msgid "A 1D texture where pixel brightness corresponds to points on a curve." msgstr "A 1D текстура, де піксельна яскравість відповідає точкам на криві." +msgid "" +"A 1D texture where pixel brightness corresponds to points on a unit [Curve] " +"resource, either in grayscale or in red. This visual representation " +"simplifies the task of saving curves as image files.\n" +"If you need to store up to 3 curves within a single texture, use " +"[CurveXYZTexture] instead. See also [GradientTexture1D] and " +"[GradientTexture2D]." +msgstr "" +"Одновимірна текстура, де яскравість пікселів відповідає точкам на одиничному " +"ресурсі [Крива], у відтінках сірого або червоному. Це візуальне представлення " +"спрощує завдання збереження кривих як файлів зображень.\n" +"Якщо вам потрібно зберегти до 3 кривих в одній текстурі, замість цього " +"використовуйте [CurveXYZTexture]. Дивіться також [GradientTexture1D] і " +"[GradientTexture2D]." + +msgid "The [Curve] that is rendered onto the texture. Should be a unit [Curve]." +msgstr "[Крива], яка відображається на текстурі. Має бути одиницею [Крива]." + msgid "" "The format the texture should be generated with. When passing a CurveTexture " "as an input to a [Shader], this may need to be adjusted." @@ -31861,6 +40193,43 @@ msgstr "" "A 1D текстура, де червоні, зелені та сині кольорові канали відповідають " "точкам на 3 кривих." +msgid "" +"A 1D texture where the red, green, and blue color channels correspond to " +"points on 3 unit [Curve] resources. Compared to using separate " +"[CurveTexture]s, this further simplifies the task of saving curves as image " +"files.\n" +"If you only need to store one curve within a single texture, use " +"[CurveTexture] instead. See also [GradientTexture1D] and [GradientTexture2D]." +msgstr "" +"Одновимірна текстура, де канали червоного, зеленого та синього кольорів " +"відповідають точкам на 3 одиничних ресурсах [Curve]. Порівняно з " +"використанням окремих [CurveTexture]s, це ще більше спрощує завдання " +"збереження кривих як файлів зображень.\n" +"Якщо вам потрібно зберегти лише одну криву в одній текстурі, використовуйте " +"натомість [CurveTexture]. Дивіться також [GradientTexture1D] і " +"[GradientTexture2D]." + +msgid "" +"The [Curve] that is rendered onto the texture's red channel. Should be a unit " +"[Curve]." +msgstr "" +"[Крива], яка відображається на червоному каналі текстури. Має бути одиницею " +"[Крива]." + +msgid "" +"The [Curve] that is rendered onto the texture's green channel. Should be a " +"unit [Curve]." +msgstr "" +"[Крива], яка відображається на зеленому каналі текстури. Має бути одиницею " +"[Крива]." + +msgid "" +"The [Curve] that is rendered onto the texture's blue channel. Should be a " +"unit [Curve]." +msgstr "" +"[Крива], яка відображається на синьому каналі текстури. Має бути одиницею " +"[Крива]." + msgid "Class representing a cylindrical [PrimitiveMesh]." msgstr "Клас, що представляє циліндричну [ПримітивнеМаш]." @@ -32109,14 +40478,14 @@ msgstr "" "[/code], використання [code]albedo_tex = $Decal.texture_albedo[/code].\n" "Один випадок, де це краще, ніж доступ до текстури безпосередньо, коли ви " "хочете скопіювати текстуру одного Декала до іншого. Наприклад:\n" -"[блоки коду]\n" -"[видання]\n" -"для i в Декаль. TEXTURE_MAX:\n" +"[codeblocks]\n" +"[gdscript]\n" +"for i in Decal. TEXTURE_MAX:\n" "$NewDecal.set_texture(i, $СтарийDecal.get_texture(i))\n" "[/gdscript]\n" "[csharp]\n" -"для (int i = 0; i < (int)Decal.DecalTexture.Max; i++)\n" -"Довідник\n" +"for (int i = 0; i < (int)Decal.DecalTexture.Max; i++)\n" +"\n" "GetNode<Decal>(\"NewDecal\").SetTexture(i, GetNode<Decal>(\"OldDecal\")." "GetTexture(i));\n" "Про нас\n" @@ -32153,14 +40522,14 @@ msgstr "" "code].\n" "Один випадок, де це краще, ніж доступ до текстури безпосередньо, коли ви " "хочете скопіювати текстуру одного Декала до іншого. Наприклад:\n" -"[блоки коду]\n" -"[видання]\n" -"для i в Декаль. TEXTURE_MAX:\n" +"[codeblocks]\n" +"[gdscript]\n" +"for i in Deca. TEXTURE_MAX:\n" "$NewDecal.set_texture(i, $СтарийDecal.get_texture(i))\n" "[/gdscript]\n" "[csharp]\n" -"для (int i = 0; i < (int)Decal.DecalTexture.Max; i++)\n" -"Довідник\n" +"for (int i = 0; i < (int)Decal.DecalTexture.Max; i++)\n" +"\n" "GetNode<Decal>(\"NewDecal\").SetTexture(i, GetNode<Decal>(\"OldDecal\")." "GetTexture(i));\n" "Про нас\n" @@ -32567,18 +40936,18 @@ msgstr "" "Ви можете визначити словник, помістивши розділений комами список пар " "[code]ключ: значення[/code] у фігурні дужки [code]{}[/code].\n" "Створення словника:\n" -"[кодові блоки]\n" +"[codeblocks]\n" "[gdscript]\n" "var my_dict = {} # Створює порожній словник.\n" "\n" "var dict_variable_key = \"Інша назва ключа\"\n" "var dict_variable_value = \"value2\"\n" "var another_dict = {\n" -" \"Деяка назва ключа\": \"value1\",\n" +" \"Some key name\": \"value1\",\n" " dict_variable_key: dict_variable_value,\n" "}\n" "\n" -"var points_dict = {\"Білий\": 50, \"Жовтий\": 75, \"Помаранчевий\": 100}\n" +"var points_dict = {\"White\": 50, \"Yellow\": 75, \"Orange\": 100}\n" "\n" "# Альтернативний синтаксис у стилі Lua.\n" "# Не потребує лапок навколо ключів, але лише рядкові константи можна " @@ -32592,11 +40961,11 @@ msgstr "" "[csharp]\n" "var myDict = new Godot.Collections.Dictionary(); // Створює порожній " "словник.\n" -"var pointsDict = новий Godot.Collections.Dictionary\n" +"var pointsDict = new Godot.Collections.Dictionary\n" "{\n" -" {\"Білий\", 50},\n" -" {\"Жовтий\", 75},\n" -" {\"Апельсин\", 100}\n" +" {\"White\", 50},\n" +" {\"Yellow\", 75},\n" +" {\"Orange\", 100}\n" "};\n" "[/csharp]\n" "[/codeblocks]\n" @@ -32606,10 +40975,10 @@ msgstr "" "White[/code], що є еквівалентом. Однак вам доведеться використовувати " "синтаксис дужок, якщо ключ, за допомогою якого ви отримуєте доступ до " "словника, не є фіксованим рядком (наприклад, числом або змінною).\n" -"[кодові блоки]\n" +"[codeblocks]\n" "[gdscript]\n" -"@export_enum(\"Білий\", \"Жовтий\", \"Помаранчевий\") змінна my_color: рядок\n" -"var points_dict = {\"Білий\": 50, \"Жовтий\": 75, \"Помаранчевий\": 100}\n" +"@export_enum(\"White\", \"Yellow\", \"Orange\") var my_color: String\n" +"var points_dict = {\"White\": 50, \"Yellow\": 75, \"Orange\": 100}\n" "func _ready():\n" " # Ми не можемо використовувати крапковий синтаксис, оскільки `my_color` є " "змінною.\n" @@ -32617,13 +40986,13 @@ msgstr "" "[/gdscript]\n" "[csharp]\n" "[Export(PropertyHint.Enum, \"White,Yellow,Orange\")]\n" -"public string MyColor { get; комплект; }\n" -"private Godot.Collections.Dictionary _pointsDict = новий Godot.Collections." +"public string MyColor { get; set; }\n" +"private Godot.Collections.Dictionary _pointsDict = new Godot.Collections." "Dictionary\n" "{\n" -" {\"Білий\", 50},\n" -" {\"Жовтий\", 75},\n" -" {\"Апельсин\", 100}\n" +" {\"White\", 50},\n" +" {\"Yellow\", 75},\n" +" {\"Orange\", 100}\n" "};\n" "\n" "public override void _Ready()\n" @@ -32635,33 +41004,33 @@ msgstr "" "У наведеному вище коді [code]балам[/code] буде присвоєно значення, яке " "поєднується з відповідним кольором, вибраним у [code]my_color[/code].\n" "Словники можуть містити більш складні дані:\n" -"[кодові блоки]\n" +"[codeblocks]\n" "[gdscript]\n" "var my_dict = {\n" -" \"Перший масив\": [1, 2, 3, 4] # Призначає масив ключу String.\n" +" \"First Array\": [1, 2, 3, 4] # Призначає масив ключу String.\n" "}\n" "[/gdscript]\n" "[csharp]\n" -"var myDict = новий Godot.Collections.Dictionary\n" +"var myDict = new Godot.Collections.Dictionary\n" "{\n" -" {\"Перший масив\", новий Godot.Collections.Array{1, 2, 3, 4}}\n" +" {\"First Array\", new Godot.Collections.Array{1, 2, 3, 4}}\n" "};\n" "[/csharp]\n" "[/codeblocks]\n" "Щоб додати ключ до наявного словника, увійдіть до нього як до наявного ключа " "та призначте йому:\n" -"[кодові блоки]\n" +"[codeblocks]\n" "[gdscript]\n" -"var points_dict = {\"Білий\": 50, \"Жовтий\": 75, \"Помаранчевий\": 100}\n" +"var points_dict = {\"White\": 50, \"Yellow\": 75, \"Orange\": 100}\n" "points_dict[\"Blue\"] = 150 # Додайте \"Blue\" як ключ і призначте 150 як " "його значення.\n" "[/gdscript]\n" "[csharp]\n" "var pointsDict = новий Godot.Collections.Dictionary\n" "{\n" -" {\"Білий\", 50},\n" -" {\"Жовтий\", 75},\n" -" {\"Апельсин\", 100}\n" +" {\"White\", 50},\n" +" {\"Yellow\", 75},\n" +" {\"Orange\", 100}\n" "};\n" "pointsDict[\"Blue\"] = 150; // Додайте \"Blue\" як ключ і призначте 150 як " "його значення.\n" @@ -32669,7 +41038,7 @@ msgstr "" "[/codeblocks]\n" "Нарешті, словники можуть містити різні типи ключів і значень в одному " "словнику:\n" -"[кодові блоки]\n" +"[codeblocks]\n" "[gdscript]\n" "# Це дійсний словник.\n" "# Щоб отримати доступ до рядка \"Вкладене значення\" нижче, використовуйте " @@ -32678,8 +41047,8 @@ msgstr "" "var my_dict = {\n" " \"String Key\": 5,\n" " 4: [1, 2, 3],\n" -" 7: «Привіт»,\n" -" \"sub_dict\": {\"sub_key\": \"Вкладене значення\"},\n" +" 7: «Hello»,\n" +" \"sub_dict\": {\"sub_key\": \"Embedded value\"},\n" "}\n" "[/gdscript]\n" "[csharp]\n" @@ -32687,28 +41056,28 @@ msgstr "" "// Щоб отримати доступ до рядка «Вкладене значення» нижче, використовуйте " "`((Godot.Collections.Dictionary)myDict[\"sub_dict\"])[\"sub_key\"]`.\n" "var myDict = new Godot.Collections.Dictionary {\n" -" {\"Ключ рядка\", 5},\n" -" {4, новий Godot.Collections.Array{1,2,3}},\n" -" {7, \"Привіт\"},\n" -" {\"sub_dict\", новий Godot.Collections.Dictionary{{\"sub_key\", " -"\"Вкладене значення\"}}}\n" +" {\"String key\", 5},\n" +" {4, new Godot.Collections.Array{1,2,3}},\n" +" {7, \"Hello\"},\n" +" {\"sub_dict\", new Godot.Collections.Dictionary{{\"sub_key\", \"Вкладене " +"значення\"}}}\n" "};\n" "[/csharp]\n" "[/codeblocks]\n" "Ключі словника можна повторювати за допомогою ключового слова [code]for[/" "code]:\n" -"[кодові блоки]\n" +"[codeblocks]\n" "[gdscript]\n" -"var groceries = {\"Апельсин\": 20, \"Яблуко\": 2, \"Банан\": 4}\n" +"var groceries = {\"Orange\": 20, \"Apple\": 2, \"Banana\": 4}\n" "для фруктів у бакалії:\n" -" змінна сума = продукти[фрукти]\n" +" var friut = groceries[fruit]\n" "[/gdscript]\n" "[csharp]\n" -"var groceries = new Godot.Collections.Dictionary{{\"Апельсин\", 20}, " -"{\"Яблуко\", 2}, {\"Банан\", 4}};\n" -"foreach (var (фрукти, кількість) у бакалії)\n" +"var groceries = new Godot.Collections.Dictionary{{\"Orange\", 20}, " +"{\"Apple\", 2}, {\"Banana\", 4}};\n" +"foreach (var (fruit, amount) in groceries)\n" "{\n" -" // `fruit` - ключ, `amount` - значення.\n" +" // `fruit` - key, `amount` - valve.\n" "}\n" "[/csharp]\n" "[/codeblocks]\n" @@ -32724,6 +41093,15 @@ msgstr "Основи GDScript: Логін" msgid "Constructs an empty [Dictionary]." msgstr "Побудувати порожній [Дикатарний]." +msgid "" +"Creates a typed dictionary from the [param base] dictionary. A typed " +"dictionary can only contain keys and values of the given types, or that " +"inherit from the given classes, as described by this constructor's parameters." +msgstr "" +"Створює введений словник зі словника [param base]. Типізований словник може " +"містити лише ключі та значення заданих типів або ті, що успадковуються від " +"заданих класів, як описано в параметрах цього конструктора." + msgid "" "Returns the same dictionary as [param from]. If you need a copy of the " "dictionary, use [method duplicate]." @@ -32731,6 +41109,15 @@ msgstr "" "Повертає той же словник, як [пам]. Якщо вам потрібна копія словника, " "скористайтеся [метод дублікати]." +msgid "" +"Assigns elements of another [param dictionary] into the dictionary. Resizes " +"the dictionary to match [param dictionary]. Performs type conversions if the " +"dictionary is typed." +msgstr "" +"Призначає елементи іншого [param dictionary] до словника. Змінює розмір " +"словника відповідно до [param dictionary]. Виконує перетворення типів, якщо " +"словник набраний." + msgid "Clears the dictionary, removing all entries from it." msgstr "Очистити словник, видаляючи всі записи з нього." @@ -32785,6 +41172,129 @@ msgstr "" "[метод]. В іншому випадку значення [param default] вставляється в словник і " "повертається." +msgid "" +"Returns the built-in [Variant] type of the typed dictionary's keys as a [enum " +"Variant.Type] constant. If the keys are not typed, returns [constant " +"TYPE_NIL]. See also [method is_typed_key]." +msgstr "" +"Повертає вбудований тип [Variant] ключів введеного словника як константу " +"[enum Variant.Type]. Якщо ключі не введено, повертає [константа TYPE_NIL]. " +"Дивіться також [method is_typed_key]." + +msgid "" +"Returns the [b]built-in[/b] class name of the typed dictionary's keys, if the " +"built-in [Variant] type is [constant TYPE_OBJECT]. Otherwise, returns an " +"empty [StringName]. See also [method is_typed_key] and [method Object." +"get_class]." +msgstr "" +"Повертає [b]вбудовану[/b] назву класу ключів введеного словника, якщо " +"вбудований тип [Variant] — [константа TYPE_OBJECT]. В іншому випадку повертає " +"порожній [StringName]. Дивіться також [method is_typed_key] і [method Object." +"get_class]." + +msgid "" +"Returns the [Script] instance associated with this typed dictionary's keys, " +"or [code]null[/code] if it does not exist. See also [method is_typed_key]." +msgstr "" +"Повертає екземпляр [Script], пов’язаний із ключами цього введеного словника, " +"або [code]null[/code], якщо він не існує. Дивіться також [method " +"is_typed_key]." + +msgid "" +"Returns the built-in [Variant] type of the typed dictionary's values as a " +"[enum Variant.Type] constant. If the values are not typed, returns [constant " +"TYPE_NIL]. See also [method is_typed_value]." +msgstr "" +"Повертає вбудований тип [Variant] значень введеного словника як константу " +"[enum Variant.Type]. Якщо значення не введено, повертає [константа TYPE_NIL]. " +"Дивіться також [method is_typed_value]." + +msgid "" +"Returns the [b]built-in[/b] class name of the typed dictionary's values, if " +"the built-in [Variant] type is [constant TYPE_OBJECT]. Otherwise, returns an " +"empty [StringName]. See also [method is_typed_value] and [method Object." +"get_class]." +msgstr "" +"Повертає [b]вбудовану[/b] назву класу значень введеного словника, якщо " +"вбудованим типом [Variant] є [константа TYPE_OBJECT]. В іншому випадку " +"повертає порожній [StringName]. Дивіться також [method is_typed_value] і " +"[method Object.get_class]." + +msgid "" +"Returns the [Script] instance associated with this typed dictionary's values, " +"or [code]null[/code] if it does not exist. See also [method is_typed_value]." +msgstr "" +"Повертає екземпляр [Script], пов’язаний зі значеннями цього введеного " +"словника, або [code]null[/code], якщо він не існує. Дивіться також [method " +"is_typed_value]." + +msgid "" +"Returns [code]true[/code] if the dictionary contains an entry with the given " +"[param key].\n" +"[codeblocks]\n" +"[gdscript]\n" +"var my_dict = {\n" +" \"Godot\" : 4,\n" +" 210 : null,\n" +"}\n" +"\n" +"print(my_dict.has(\"Godot\")) # Prints true\n" +"print(my_dict.has(210)) # Prints true\n" +"print(my_dict.has(4)) # Prints false\n" +"[/gdscript]\n" +"[csharp]\n" +"var myDict = new Godot.Collections.Dictionary\n" +"{\n" +" { \"Godot\", 4 },\n" +" { 210, default },\n" +"};\n" +"\n" +"GD.Print(myDict.ContainsKey(\"Godot\")); // Prints True\n" +"GD.Print(myDict.ContainsKey(210)); // Prints True\n" +"GD.Print(myDict.ContainsKey(4)); // Prints False\n" +"[/csharp]\n" +"[/codeblocks]\n" +"In GDScript, this is equivalent to the [code]in[/code] operator:\n" +"[codeblock]\n" +"if \"Godot\" in {\"Godot\": 4}:\n" +" print(\"The key is here!\") # Will be printed.\n" +"[/codeblock]\n" +"[b]Note:[/b] This method returns [code]true[/code] as long as the [param key] " +"exists, even if its corresponding value is [code]null[/code]." +msgstr "" +"Повертає [code]true[/code], якщо словник містить запис із заданим [param " +"key].\n" +"[codeblock]\n" +"[gdscript]\n" +"var my_dict = {\n" +" «Godot» : 4,\n" +" 210: zero,\n" +"}\n" +"\n" +"print(my_dict.has(\"Godot\")) # Друкує true\n" +"print(my_dict.has(210)) # Виводить true\n" +"print(my_dict.has(4)) # Виводить false\n" +"[/gdscript]\n" +"[csharp]\n" +"var myDict = new Godot.Collections.Dictionary\n" +"{\n" +" { \"Godot\", 4 },\n" +" { 210, default},\n" +"};\n" +"\n" +"GD.Print(myDict.ContainsKey(\"Godot\")); // Виводить True\n" +"GD.Print(myDict.ContainsKey(210)); // Виводить True\n" +"GD.Print(myDict.ContainsKey(4)); // Виводить False\n" +"[/csharp]\n" +"[/codeblocks]\n" +"GDScript це еквівалентно оператору [code]in[/code]:\n" +"[codeblock]\n" +"if \"Godot\" in {\"Godot\": 4}:\n" +" print(\"Ключ тут!\") # Буде надруковано.\n" +"[/codeblock]\n" +"[b]Примітка: [/b] Цей метод повертає [code]true[/code], поки існує [param " +"key], навіть якщо його відповідне значення [code]null[/code]." + msgid "" "Returns [code]true[/code] if the dictionary contains all keys in the given " "[param keys] array.\n" @@ -32795,11 +41305,57 @@ msgid "" msgstr "" "Повертає [code]true[/code], якщо словник містить всі ключі в даній [param " "keys] array.\n" -"[блокування коду]\n" -"var data = {\"width\" : 10, \"високий\" : 20}\n" +"[codeblock]\n" +"var data = {\"width\" : 10, \"height\" : 20}\n" "data.has_all([\"height\", \"width\"]) # Повертає true\n" "[/codeblock]" +msgid "" +"Returns a hashed 32-bit integer value representing the dictionary contents.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var dict1 = {\"A\": 10, \"B\": 2}\n" +"var dict2 = {\"A\": 10, \"B\": 2}\n" +"\n" +"print(dict1.hash() == dict2.hash()) # Prints true\n" +"[/gdscript]\n" +"[csharp]\n" +"var dict1 = new Godot.Collections.Dictionary{{\"A\", 10}, {\"B\", 2}};\n" +"var dict2 = new Godot.Collections.Dictionary{{\"A\", 10}, {\"B\", 2}};\n" +"\n" +"// Godot.Collections.Dictionary has no Hash() method. Use GD.Hash() instead.\n" +"GD.Print(GD.Hash(dict1) == GD.Hash(dict2)); // Prints True\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] Dictionaries with the same entries but in a different order will " +"not have the same hash.\n" +"[b]Note:[/b] Dictionaries with equal hash values are [i]not[/i] guaranteed to " +"be the same, because of hash collisions. On the contrary, dictionaries with " +"different hash values are guaranteed to be different." +msgstr "" +"Повертає хешоване 32-розрядне ціле число, що представляє вміст словника.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var dict1 = {\"A\": 10, \"B\": 2}\n" +"var dict2 = {\"A\": 10, \"B\": 2}\n" +"\n" +"print(dict1.hash() == dict2.hash()) # Виводить true\n" +"[/gdscript]\n" +"[csharp]\n" +"var dict1 = new Godot.Collections.Dictionary{{\"A\", 10}, {\"B\", 2}};\n" +"var dict2 = new Godot.Collections.Dictionary{{\"A\", 10}, {\"B\", 2}};\n" +"\n" +"// Godot.Collections.Dictionary не має методу Hash(). Натомість " +"використовуйте GD.Hash().\n" +"GD.Print(GD.Hash(dict1) == GD.Hash(dict2)); // Виводить True\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Примітка:[/b] Словники з однаковими записами, але в іншому порядку, не " +"матимуть однакового хешу.\n" +"[b]Примітка: [/b] Словники з однаковими хеш-значеннями [i]не[/i] гарантовано " +"будуть однаковими через колізії хешів. Навпаки, словники з різними хеш-" +"значеннями гарантовано будуть різними." + msgid "" "Returns [code]true[/code] if the dictionary is empty (its size is [code]0[/" "code]). See also [method size]." @@ -32815,6 +41371,44 @@ msgstr "" "Повертає [code]true[/code], якщо словник прочитаний. Переглянути " "[метод_read_only]. У випадку, якщо заявлено [code]const[/code]." +msgid "" +"Returns [code]true[/code] if the dictionary is typed the same as [param " +"dictionary]." +msgstr "" +"Повертає [code]true[/code], якщо словник введено так само, як [param " +"dictionary]." + +msgid "" +"Returns [code]true[/code] if the dictionary's keys are typed the same as " +"[param dictionary]'s keys." +msgstr "" +"Повертає [code]true[/code], якщо ключі словника введені так само, як і ключі " +"[param dictionary]." + +msgid "" +"Returns [code]true[/code] if the dictionary's values are typed the same as " +"[param dictionary]'s values." +msgstr "" +"Повертає [code]true[/code], якщо значення словника введено так само, як і " +"значення [param dictionary]." + +msgid "" +"Returns [code]true[/code] if the dictionary is typed. Typed dictionaries can " +"only store keys/values of their associated type and provide type safety for " +"the [code][][/code] operator. Methods of typed dictionary still return " +"[Variant]." +msgstr "" +"Повертає [code]true[/code], якщо словник введено. Введені словники можуть " +"зберігати лише ключі/значення відповідного типу та забезпечувати безпеку типу " +"для оператора [code][][/code]. Методи введеного словника все ще повертають " +"[Variant]." + +msgid "Returns [code]true[/code] if the dictionary's keys are typed." +msgstr "Повертає [code]true[/code], якщо введено ключі словника." + +msgid "Returns [code]true[/code] if the dictionary's values are typed." +msgstr "Повертає [code]true[/code], якщо введено значення словника." + msgid "Returns the list of keys in the dictionary." msgstr "Повертає список ключів у словнику." @@ -32874,50 +41468,51 @@ msgid "" "considered as keys that can be overwritten or not depending on the value of " "[param overwrite], but they will never be merged together." msgstr "" -"Додає записи з [параметр] до цього словника. За замовчуванням, дублікати " -"ключів не копіюються, якщо [пара перезапис] [code]true[/code].\n" -"[блоки коду]\n" -"[видання]\n" -"var дикт = { \"item\": \"слово\", \"кількість\": Про нас\n" -"var Інше_dict = { \"quantity\": 15, \"колір\": \"срібло\" }\n" +"Додає записи зі словника [параметрів] до цього словника. За замовчуванням " +"дублікати ключів не копіюються, якщо [param overwrite] не має значення " +"[code]true[/code]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var dict = { \"item\": \"sword\", \"quantity\": 2 } \n" +"var other_dict = { \"quantity\": 15, \"color\": \"silver\" } \n" "\n" -"Нема Перезапис існуючих ключів вимкнено за замовчуванням.\n" -"dict.merge(other_dict)\n" -"Друк(дикт) # { \"item\": \"слово\", \"кількість\": 2, \"колір\": " -"\"срібло\" }\n" +"# Перезапис існуючих ключів вимкнено за замовчуванням. \n" +"dict.merge(other_dict) \n" +"print(dict) # { \"item\": \"sword\", \"quantity\": 2, \"color\": " +"\"silver\" } \n" "\n" -"Нема З перезаписом наявних ключів ввімкнено.\n" -"dict.merge(other_dict, true)\n" -"Друк(дикт) # { \"item\": \"слово\", \"кількість\": 15, \"колір\": " -"\"срібло\" }\n" -"[/gdscript]\n" -"[csharp]\n" -"var дикт = новий Godot.Collections. Логін\n" -"Довідник\n" -"[\"item\"] = \"слово\",\n" -"[xml.tar.tar.bz2], кв.м.\n" -"Головна\n" +"# З увімкненим перезаписом існуючих ключів. \n" +"dict.merge(other_dict, true) \n" +"print(dict) # { \"item\": \"sword\", \"quantity\": 15, \"color\": " +"\"silver\" } \n" +"[/gdscript] \n" +"[csharp] \n" +"var dict = новий Godot.Collections.Dictionary \n" +"{\n" +" [\"item\"] = \"sword\", \n" +" [\"number\"] = 2, \n" +"};\n" "\n" -"щебетати Дікт = новий Godot. Колекції. Логін\n" -"Довідник\n" -"[xml.tar.tar.bz2], кв.м.\n" -"[\"color\"] = \"срібло\",\n" -"Головна\n" +"var otherDict = новий Godot.Collections.Dictionary \n" +"{\n" +" [\"number\"] = 15, \n" +" [\"color\"] = \"silver\", \n" +"};\n" "\n" -"(Українська) Перезапис існуючих ключів вимкнено за замовчуванням.\n" -"dict.Merge(otherDict);\n" -"GD.Print(дикт); // { \"item\": \"слово\", \"quantity\": 2, \"колір\": " -"\"срібло\"\n" +"// Перезапис існуючих ключів вимкнено за замовчуванням. \n" +"dict.Merge(otherDict); \n" +"GD.Print(dict); // { \"item\": \"sword\", \"quantity\": 2, \"color\": " +"\"silver\" } \n" "\n" -"// При перезаписі наявних ключів ввімкнено.\n" -"dict.Merge(otherDict, true);\n" -"GD.Print(дикт); // { \"item\": \"слово\", \"quantity\": 15, \"колір\": " -"\"срібло\"\n" -"[/csharp]\n" -"[/codeblocks]\n" -"[b]Note:[/b] [метод злив] [i] не[/i] рекурсивний. Нестередні словники " -"розглядаються як ключі, які можуть перезаписуватися або не залежно від " -"значення [пара перезапису], але вони ніколи не будуть об'єднані між собою." +"// З увімкненим перезаписом існуючих ключів. \n" +"dict.Merge(otherDict, true); \n" +"GD.Print(dict); // { \"item\": \"sword\", \"quantity\": 15, \"color\": " +"\"silver\" } \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка: [/b] [метод merge] [i]не[/i] рекурсивний. Вкладені словники " +"вважаються ключами, які можуть бути перезаписані чи ні, залежно від значення " +"[param overwrite], але вони ніколи не будуть об’єднані разом." msgid "" "Returns a copy of this dictionary merged with the other [param dictionary]. " @@ -32935,21 +41530,20 @@ msgid "" "print(extra.merged(base, true))\n" "[/codeblock]" msgstr "" -"Повертає копію цього словника, який об'єднаний з іншими [параметр]. За " -"замовчуванням дублікати ключів не копіюються, якщо [пара перезапис] " -"[code]true[/code]. Дивись також [метод злиття].\n" -"Цей метод корисний для швидкого приготування словників з значеннями за " -"замовчуванням:\n" -"[блокування коду]\n" -"var base = { \"фрейпфрут\": \"дослі\", \"забуджена\": \"потато\" }\n" -"var додатково = { \"фрукти\": \"помаранчевий\", \"роздягання\": " -"\"вейнгар\" }\n" -"# Друки { \"фрукти\": \"помаранчевий\", \"вегетативний\": \"пошта\", " -"\"роздягання\": \"вейнгар\" }\n" -"Друк(extra.merged(base)\n" -"# Друки { \"фрейпфрут\": \"дослі\", \"вегетативний\": \"пошта\", " -"\"роздягання\": \"вейнгар\" }\n" -"Друк(extra.merged(base, true))\n" +"Повертає копію цього словника, об’єднаного з іншим [param dictionary]. За " +"замовчуванням дублікати ключів не копіюються, якщо [param overwrite] не має " +"значення [code]true[/code]. Дивіться також [method merge]. \n" +"Цей метод корисний для швидкого створення словників зі значеннями за " +"замовчуванням: \n" +"[codeblock] \n" +"var base = { \"fruit\": \"apple\", \"vegetable\": \"potato\" } \n" +"var extra = { \"fruit\": \"orange\", \"dressing\": \"vinegar\" } \n" +"# Друк { \"fruit\": \"orange\", \"vegetable\": \"potato\", \"dressing\": " +"\"vinegar\" } \n" +"print(extra.merged(base)) \n" +"# Друк { \"fruit\": \"apple\", \"vegetable\": \"potato\", \"dressing\": " +"\"vinegar\" } \n" +"print(extra.merged(base, true)) \n" "[/codeblock]" msgid "" @@ -32961,6 +41555,15 @@ msgstr "" "значення, внутрішні [Dictionary] та [Array] ключі та значення порівнюються з " "рекурсивно." +msgid "" +"Sets the value of the element at the given [param key] to the given [param " +"value]. This is the same as using the [code][][/code] operator " +"([code]array[index] = value[/code])." +msgstr "" +"Встановлює значення елемента для даного [param key] у задане [param value]. " +"Це те саме, що використання оператора [code][ ][/code] ([code]масив[index] = " +"valve [/code])." + msgid "" "Returns the number of entries in the dictionary. Empty dictionaries ([code]{ }" "[/code]) always return [code]0[/code]. See also [method is_empty]." @@ -32968,6 +41571,20 @@ msgstr "" "Повертає кількість записів у словнику. Empty dictionaries ([code]{ }[/code]) " "завжди повертає [code]0[/code]. Дивись ще [метод]." +msgid "" +"Sorts the dictionary in-place by key. This can be used to ensure dictionaries " +"with the same contents produce equivalent results when getting the [method " +"keys], getting the [method values], and converting to a string. This is also " +"useful when wanting a JSON representation consistent with what is in memory, " +"and useful for storing on a database that requires dictionaries to be sorted." +msgstr "" +"Сортує словник на місці за ключем. Це можна використати, щоб переконатися, що " +"словники з однаковим вмістом дають еквівалентні результати під час отримання " +"[ключів методу], отримання [значень методу] та перетворення на рядок. Це " +"також корисно, коли потрібне представлення JSON, яке відповідає тому, що є в " +"пам’яті, і корисно для зберігання в базі даних, яка потребує сортування " +"словників." + msgid "Returns the list of values in this dictionary." msgstr "Повертає список значень у цьому словнику." @@ -33001,6 +41618,147 @@ msgstr "" msgid "Provides methods for managing directories and their content." msgstr "Забезпечує методи управління каталогами та їх змістом." +msgid "" +"This class is used to manage directories and their content, even outside of " +"the project folder.\n" +"[DirAccess] can't be instantiated directly. Instead it is created with a " +"static method that takes a path for which it will be opened.\n" +"Most of the methods have a static alternative that can be used without " +"creating a [DirAccess]. Static methods only support absolute paths (including " +"[code]res://[/code] and [code]user://[/code]).\n" +"[codeblock]\n" +"# Standard\n" +"var dir = DirAccess.open(\"user://levels\")\n" +"dir.make_dir(\"world1\")\n" +"# Static\n" +"DirAccess.make_dir_absolute(\"user://levels/world1\")\n" +"[/codeblock]\n" +"[b]Note:[/b] Accessing project (\"res://\") directories once exported may " +"behave unexpectedly as some files are converted to engine-specific formats " +"and their original source files may not be present in the expected PCK " +"package. Because of this, to access resources in an exported project, it is " +"recommended to use [ResourceLoader] instead of [FileAccess].\n" +"Here is an example on how to iterate through the files of a directory:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func dir_contents(path):\n" +" var dir = DirAccess.open(path)\n" +" if dir:\n" +" dir.list_dir_begin()\n" +" var file_name = dir.get_next()\n" +" while file_name != \"\":\n" +" if dir.current_is_dir():\n" +" print(\"Found directory: \" + file_name)\n" +" else:\n" +" print(\"Found file: \" + file_name)\n" +" file_name = dir.get_next()\n" +" else:\n" +" print(\"An error occurred when trying to access the path.\")\n" +"[/gdscript]\n" +"[csharp]\n" +"public void DirContents(string path)\n" +"{\n" +" using var dir = DirAccess.Open(path);\n" +" if (dir != null)\n" +" {\n" +" dir.ListDirBegin();\n" +" string fileName = dir.GetNext();\n" +" while (fileName != \"\")\n" +" {\n" +" if (dir.CurrentIsDir())\n" +" {\n" +" GD.Print($\"Found directory: {fileName}\");\n" +" }\n" +" else\n" +" {\n" +" GD.Print($\"Found file: {fileName}\");\n" +" }\n" +" fileName = dir.GetNext();\n" +" }\n" +" }\n" +" else\n" +" {\n" +" GD.Print(\"An error occurred when trying to access the path.\");\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"Keep in mind that file names may change or be remapped after export. If you " +"want to see the actual resource file list as it appears in the editor, use " +"[method ResourceLoader.list_directory] instead." +msgstr "" +"Цей клас використовується для керування каталогами та їхнім вмістом, навіть " +"поза папкою проекту. \n" +"[DirAccess] не можна створити екземпляр безпосередньо. Натомість він " +"створюється за допомогою статичного методу, який приймає шлях, для якого його " +"буде відкрито. \n" +"Більшість методів мають статичну альтернативу, яку можна використовувати без " +"створення [DirAccess]. Статичні методи підтримують лише абсолютні шляхи " +"(включаючи [code]res://[/code] і [code]user://[/code]). \n" +"[codeblock] \n" +"# Стандарт \n" +"var dir = DirAccess.open(\"user://levels\") \n" +"dir.make_dir(\"world1\") \n" +"# Статичний \n" +"DirAccess.make_dir_absolute(\"user://levels/world1\") \n" +"[/codeblock] \n" +"[b]Примітка:[/b] Доступ до каталогів проекту (\"res://\") після експорту може " +"поводитися неочікувано, оскільки деякі файли перетворюються на формати, що " +"відповідають системі, і їхні оригінальні вихідні файли можуть не бути " +"присутніми в очікуваному пакеті PCK. Через це для доступу до ресурсів в " +"експортованому проекті рекомендується використовувати [ResourceLoader] " +"замість [FileAccess]. \n" +"Ось приклад того, як перебирати файли каталогу: \n" +"[codeblock] \n" +"[gdscript] \n" +"func dir_contents(path): \n" +" var dir = DirAccess.open(path) \n" +" if dir: \n" +" dir.list_dir_begin() \n" +" var file_name = dir.get_next() \n" +" while file_name != \"\": \n" +" if dir.current_is_dir(): \n" +" print(\"Знайдено каталог: \" + ім'я_файлу) \n" +" else: \n" +" print(\"Знайдено файл: \" + ім'я_файлу) \n" +" nane_file = dir.get_next() \n" +" ще: \n" +" print(\"Під час спроби отримати доступ до шляху сталася помилка.\") \n" +"[/gdscript] \n" +"[csharp] \n" +"public void DirContents (string path) \n" +"{\n" +" використовуючи var dir = DirAccess.Open(path); \n" +" if (dir != null) \n" +" { \n" +" dir.ListDirBegin(); \n" +" string fileName = dir.GetNext(); \n" +" while (fileName != \"\")\n" +" { \n" +" if (dir.CurrentIsDir()) \n" +" { \n" +" GD.Print($\"Знайдено каталог: {fileName}\"); \n" +" } \n" +" else \n" +" { \n" +" GD.Print($\"Знайдено файл: {fileName}\"); \n" +" } \n" +" fileName = dir.GetNext(); \n" +" } \n" +" } \n" +" else \n" +" { \n" +" GD.Print(\"Під час спроби отримати доступ до шляху сталася помилка." +"\"); \n" +" } \n" +"}\n" +"[/csharp] \n" +"[/codeblocks] \n" +"Майте на увазі, що після експорту імена файлів можуть змінитися або бути " +"повторно призначені. Якщо ви хочете побачити фактичний список файлів " +"ресурсів, як він відображається в редакторі, замість цього використовуйте " +"[method ResourceLoader.list_directory]." + msgid "File system" msgstr "Файлова система" @@ -33057,6 +41815,25 @@ msgstr "" "підвищеними привілеями або режимом розробника.\n" "[b]Note:[/b] Цей метод реалізується на macOS, Linux та Windows." +msgid "" +"Creates a temporary directory. This directory will be freed when the returned " +"[DirAccess] is freed.\n" +"If [param prefix] is not empty, it will be prefixed to the directory name, " +"separated by a [code]-[/code].\n" +"If [param keep] is [code]true[/code], the directory is not deleted when the " +"returned [DirAccess] is freed.\n" +"Returns [code]null[/code] if opening the directory failed. You can use " +"[method get_open_error] to check the error that occurred." +msgstr "" +"Створює тимчасовий каталог. Цей каталог буде звільнено, коли буде звільнено " +"повернутий [DirAccess].\n" +"Якщо [param prefix] не порожній, він буде додаватися до назви каталогу, " +"розділеного [code]-[/code].\n" +"Якщо [param keep] має значення [code]true[/code], каталог не видаляється, " +"коли звільняється повернутий [DirAccess].\n" +"Повертає [code]null[/code], якщо не вдалося відкрити каталог. Ви можете " +"використовувати [метод get_open_error], щоб перевірити помилку, яка сталася." + msgid "" "Returns whether the current item processed with the last [method get_next] " "call is a directory ([code].[/code] and [code]..[/code] are considered " @@ -33066,6 +41843,52 @@ msgstr "" "get_next], є каталогом ([code] і [/code] та [code]. [/code] вважаються " "каталогами." +msgid "" +"Returns whether the target directory exists. The argument can be relative to " +"the current directory, or an absolute path.\n" +"[b]Note:[/b] The returned [bool] in the editor and after exporting when used " +"on a path in the [code]res://[/code] directory may be different. Some files " +"are converted to engine-specific formats when exported, potentially changing " +"the directory structure." +msgstr "" +"Повертає, чи існує цільовий каталог. Аргумент може бути відносним до " +"поточного каталогу або абсолютним шляхом.\n" +"[b]Примітка: [/b] Повернений [bool] у редакторі та після експорту, коли " +"використовується на шляху в каталозі [code]res://[/code], може відрізнятися. " +"Деякі файли під час експорту перетворюються на формати, специфічні для " +"механізму, потенційно змінюючи структуру каталогів." + +msgid "" +"Static version of [method dir_exists]. Supports only absolute paths.\n" +"[b]Note:[/b] The returned [bool] in the editor and after exporting when used " +"on a path in the [code]res://[/code] directory may be different. Some files " +"are converted to engine-specific formats when exported, potentially changing " +"the directory structure." +msgstr "" +"Статична версія [метод dir_exists]. Підтримує лише абсолютні шляхи.\n" +"[b]Примітка: [/b] Повернений [bool] у редакторі та після експорту, коли " +"використовується на шляху в каталозі [code]res://[/code], може відрізнятися. " +"Деякі файли під час експорту перетворюються на формати, специфічні для " +"механізму, потенційно змінюючи структуру каталогів." + +msgid "" +"Returns whether the target file exists. The argument can be relative to the " +"current directory, or an absolute path.\n" +"For a static equivalent, use [method FileAccess.file_exists].\n" +"[b]Note:[/b] Many resources types are imported (e.g. textures or sound " +"files), and their source asset will not be included in the exported game, as " +"only the imported version is used. See [method ResourceLoader.exists] for an " +"alternative approach that takes resource remapping into account." +msgstr "" +"Повертає, чи існує цільовий файл. Аргумент може бути відносним до поточного " +"каталогу або абсолютним шляхом.\n" +"Для статичного еквівалента використовуйте [метод FileAccess.file_exists].\n" +"[b]Примітка:[/b] Імпортується багато типів ресурсів (наприклад, текстури чи " +"звукові файли), і їхні вихідні ресурси не будуть включені в експортовану гру, " +"оскільки використовується лише імпортована версія. Перегляньте [method " +"ResourceLoader.exists] для альтернативного підходу, який враховує " +"перевідображення ресурсів." + msgid "" "Returns the absolute path to the currently opened directory (e.g. [code]res://" "folder[/code] or [code]C:\\tmp\\folder[/code])." @@ -33080,6 +41903,38 @@ msgstr "" "Повернення в даний час відкритий індекс передачі каталогу. Див. [method " "get_drive_name] для перетворення індексу повертається в ім'я диска." +msgid "" +"Returns a [PackedStringArray] containing filenames of the directory contents, " +"excluding files. The array is sorted alphabetically.\n" +"Affected by [member include_hidden] and [member include_navigational].\n" +"[b]Note:[/b] The returned directories in the editor and after exporting in " +"the [code]res://[/code] directory may differ as some files are converted to " +"engine-specific formats when exported." +msgstr "" +"Повертає [PackedStringArray], що містить імена файлів із вмістом каталогу, за " +"винятком файлів. Масив відсортовано за алфавітом.\n" +"Впливають [member include_hidden] і [member include_navigational].\n" +"[b]Примітка:[/b] Повернуті каталоги в редакторі та після експорту в каталозі " +"[code]res://[/code] можуть відрізнятися, оскільки деякі файли під час " +"експорту перетворюються на формати, що відповідають системі." + +msgid "" +"Returns a [PackedStringArray] containing filenames of the directory contents, " +"excluding files, at the given [param path]. The array is sorted " +"alphabetically.\n" +"Use [method get_directories] if you want more control of what gets included.\n" +"[b]Note:[/b] The returned directories in the editor and after exporting in " +"the [code]res://[/code] directory may differ as some files are converted to " +"engine-specific formats when exported." +msgstr "" +"Повертає [PackedStringArray], що містить імена файлів із вмістом каталогу, за " +"винятком файлів, за заданим [param path]. Масив відсортовано за алфавітом.\n" +"Використовуйте [метод get_directories], якщо ви хочете більше контролювати " +"те, що буде включено.\n" +"[b]Примітка:[/b] Повернуті каталоги в редакторі та після експорту в каталозі " +"[code]res://[/code] можуть відрізнятися, оскільки деякі файли під час " +"експорту перетворюються на формати, що відповідають системі." + msgid "" "On Windows, returns the number of drives (partitions) mounted on the current " "filesystem.\n" @@ -33137,6 +41992,36 @@ msgstr "" "буде [члени ПроектуНалаштування.editor/export/" "convert_text_resources_to_binary] [code]true[/code]." +msgid "" +"Returns a [PackedStringArray] containing filenames of the directory contents, " +"excluding directories, at the given [param path]. The array is sorted " +"alphabetically.\n" +"Use [method get_files] if you want more control of what gets included.\n" +"[b]Note:[/b] When used on a [code]res://[/code] path in an exported project, " +"only the files included in the PCK at the given folder level are returned. In " +"practice, this means that since imported resources are stored in a top-level " +"[code].godot/[/code] folder, only paths to [code].gd[/code] and [code]." +"import[/code] files are returned (plus a few other files, such as " +"[code]project.godot[/code] or [code]project.binary[/code] and the project " +"icon). In an exported project, the list of returned files will also vary " +"depending on [member ProjectSettings.editor/export/" +"convert_text_resources_to_binary]." +msgstr "" +"Повертає [PackedStringArray], що містить імена файлів із вмістом каталогу, за " +"винятком каталогів, за заданим [param path]. Масив відсортовано за " +"алфавітом.\n" +"Використовуйте [метод get_files], якщо ви хочете більше контролювати те, що " +"буде включено.\n" +"[b]Примітка.[/b] Якщо використовується на шляху [code]res://[/code] в " +"експортованому проекті, повертаються лише файли, включені до PCK на заданому " +"рівні папки. На практиці це означає, що оскільки імпортовані ресурси " +"зберігаються в папці [code].godot/[/code] верхнього рівня, повертаються лише " +"шляхи до файлів [code].gd[/code] і [code].import[/code] (плюс кілька інших " +"файлів, таких як [code]project.godot[/code] або [code]project.binary[/code] і " +"піктограма проекту). В експортованому проекті список повернутих файлів також " +"буде відрізнятися залежно від [member ProjectSettings.editor/export/" +"convert_text_resources_to_binary]." + msgid "" "Returns the next element (file or directory) in the current directory.\n" "The name of the file or directory is returned (and not its full path). Once " @@ -33163,6 +42048,13 @@ msgstr "" "[code]0[/code], якщо конкретний метод платформи для запиту наявного простору " "не виходить." +msgid "" +"Returns [code]true[/code] if the directory is a macOS bundle.\n" +"[b]Note:[/b] This method is implemented on macOS." +msgstr "" +"Повертає [code]true[/code], якщо каталог є пакетом macOS.\n" +"[b]Примітка.[/b] Цей метод реалізовано в macOS." + msgid "" "Returns [code]true[/code] if the file system or directory use case sensitive " "file names.\n" @@ -33554,6 +42446,18 @@ msgstr "" "Більшість функцій з [DisplayServer] поверне значення манометра в цьому " "випадку." +msgid "" +"Plays the beep sound from the operative system, if possible. Because it comes " +"from the OS, the beep sound will be audible even if the application is muted. " +"It may also be disabled for the entire OS by the user.\n" +"[b]Note:[/b] This method is implemented on macOS, Linux (X11/Wayland), and " +"Windows." +msgstr "" +"Відтворює звуковий сигнал від операційної системи, якщо це можливо. Оскільки " +"він походить від ОС, звуковий сигнал буде чутно, навіть якщо звук програми " +"вимкнено. Користувач також може вимкнути його для всієї ОС.\n" +"[b]Примітка.[/b] Цей метод реалізовано в macOS, Linux (X11/Wayland) і Windows." + msgid "Returns the user's clipboard as a string if possible." msgstr "Повертає буфер користувача як рядок, якщо це можливо." @@ -33665,6 +42569,36 @@ msgstr "" msgid "Removes the application status indicator." msgstr "Видалити індикатор стану програми." +msgid "" +"Shows a text input dialog which uses the operating system's native look-and-" +"feel. [param callback] should accept a single [String] parameter which " +"contains the text field's contents.\n" +"[b]Note:[/b] This method is implemented if the display server has the " +"[constant FEATURE_NATIVE_DIALOG_INPUT] feature. Supported platforms include " +"macOS, Windows, and Android." +msgstr "" +"Показує діалогове вікно введення тексту, яке використовує зовнішній вигляд " +"операційної системи. [param callback] має приймати один параметр [String], " +"який містить вміст текстового поля.\n" +"[b]Примітка:[/b] Цей метод реалізовано, якщо сервер відображення має функцію " +"[постійний FEATURE_NATIVE_DIALOG_INPUT]. Підтримувані платформи включають " +"macOS, Windows і Android." + +msgid "" +"Shows a text dialog which uses the operating system's native look-and-feel. " +"[param callback] should accept a single [int] parameter which corresponds to " +"the index of the pressed button.\n" +"[b]Note:[/b] This method is implemented if the display server has the " +"[constant FEATURE_NATIVE_DIALOG] feature. Supported platforms include macOS, " +"Windows, and Android." +msgstr "" +"Показує текстове діалогове вікно, яке використовує зовнішній вигляд " +"операційної системи. [param callback] має приймати єдиний параметр [int], " +"який відповідає індексу натиснутої кнопки.\n" +"[b]Примітка.[/b] Цей метод реалізовано, якщо сервер відображення має функцію " +"[постійний FEATURE_NATIVE_DIALOG]. Підтримувані платформи включають macOS, " +"Windows і Android." + msgid "" "Allows the [param process_id] PID to steal focus from this window. In other " "words, this disables the operating system's focus stealing protection for the " @@ -33675,6 +42609,116 @@ msgstr "" "це відключає захист операційної системи для вказаного PID.\n" "[b]Примітка:[/b] Цей метод реалізується тільки на Windows." +msgid "" +"Displays OS native dialog for selecting files or directories in the file " +"system.\n" +"Each filter string in the [param filters] array should be formatted like " +"this: [code]*.png,*.jpg,*.jpeg;Image Files;image/png,image/jpeg[/code]. The " +"description text of the filter is optional and can be omitted. It is " +"recommended to set both file extension and MIME type. See also [member " +"FileDialog.filters].\n" +"Callbacks have the following arguments: [code]status: bool, selected_paths: " +"PackedStringArray, selected_filter_index: int[/code]. [b]On Android,[/b] " +"callback argument [code]selected_filter_index[/code] is always zero.\n" +"[b]Note:[/b] This method is implemented if the display server has the " +"[constant FEATURE_NATIVE_DIALOG_FILE] feature. Supported platforms include " +"Linux (X11/Wayland), Windows, macOS, and Android.\n" +"[b]Note:[/b] [param current_directory] might be ignored.\n" +"[b]Note:[/b] Embedded file dialog and Windows file dialog support only file " +"extensions, while Android, Linux, and macOS file dialogs also support MIME " +"types.\n" +"[b]Note:[/b] On Android and Linux, [param show_hidden] is ignored.\n" +"[b]Note:[/b] On Android and macOS, native file dialogs have no title.\n" +"[b]Note:[/b] On macOS, sandboxed apps will save security-scoped bookmarks to " +"retain access to the opened folders across multiple sessions. Use [method OS." +"get_granted_permissions] to get a list of saved bookmarks." +msgstr "" +"Відображає рідне діалогове вікно ОС для вибору файлів або каталогів у " +"файловій системі.\n" +"Кожен рядок фільтра в масиві [param filters] має бути відформатований таким " +"чином: [код]*.png,*.jpg,*.jpeg;файли зображень;image/png,image/jpeg[/code]. " +"Текст опису фільтра необов’язковий і його можна опустити. Рекомендується " +"встановити як розширення файлу, так і тип MIME. Дивіться також [член " +"FileDialog.filters].\n" +"Зворотні виклики мають такі аргументи: [code]status: bool, selected_paths: " +"PackedStringArray, selected_filter_index: int[/code]. [b]На Android [/b] " +"аргумент зворотного виклику [code]selected_filter_index[/code] завжди " +"дорівнює нулю.\n" +"[b]Примітка:[/b] Цей метод реалізовано, якщо сервер відображення має функцію " +"[постійний FEATURE_NATIVE_DIALOG_FILE]. Підтримувані платформи включають " +"Linux (X11/Wayland), Windows, macOS і Android.\n" +"[b]Примітка: [/b] [param current_directory] може бути проігноровано.\n" +"[b]Примітка.[/b] Вбудоване діалогове вікно файлів і діалогове вікно файлів " +"Windows підтримують лише розширення файлів, тоді як діалогові вікна файлів " +"Android, Linux і macOS також підтримують типи MIME.\n" +"[b]Примітка.[/b] В Android і Linux [param show_hidden] ігнорується.\n" +"[b]Примітка.[/b] В Android і macOS рідні діалогові вікна файлів не мають " +"заголовків.\n" +"[b]Примітка.[/b] У macOS програми ізольованого програмного середовища " +"зберігають закладки з областю безпеки, щоб зберегти доступ до відкритих папок " +"протягом кількох сеансів. Використовуйте [метод OS.get_granted_permissions], " +"щоб отримати список збережених закладок." + +msgid "" +"Displays OS native dialog for selecting files or directories in the file " +"system with additional user selectable options.\n" +"Each filter string in the [param filters] array should be formatted like " +"this: [code]*.png,*.jpg,*.jpeg;Image Files;image/png,image/jpeg[/code]. The " +"description text of the filter is optional and can be omitted. It is " +"recommended to set both file extension and MIME type. See also [member " +"FileDialog.filters].\n" +"[param options] is array of [Dictionary]s with the following keys:\n" +"- [code]\"name\"[/code] - option's name [String].\n" +"- [code]\"values\"[/code] - [PackedStringArray] of values. If empty, boolean " +"option (check box) is used.\n" +"- [code]\"default\"[/code] - default selected option index ([int]) or default " +"boolean value ([bool]).\n" +"Callbacks have the following arguments: [code]status: bool, selected_paths: " +"PackedStringArray, selected_filter_index: int, selected_option: Dictionary[/" +"code].\n" +"[b]Note:[/b] This method is implemented if the display server has the " +"[constant FEATURE_NATIVE_DIALOG_FILE_EXTRA] feature. Supported platforms " +"include Linux (X11/Wayland), Windows, and macOS.\n" +"[b]Note:[/b] [param current_directory] might be ignored.\n" +"[b]Note:[/b] Embedded file dialog and Windows file dialog support only file " +"extensions, while Android, Linux, and macOS file dialogs also support MIME " +"types.\n" +"[b]Note:[/b] On Linux (X11), [param show_hidden] is ignored.\n" +"[b]Note:[/b] On macOS, native file dialogs have no title.\n" +"[b]Note:[/b] On macOS, sandboxed apps will save security-scoped bookmarks to " +"retain access to the opened folders across multiple sessions. Use [method OS." +"get_granted_permissions] to get a list of saved bookmarks." +msgstr "" +"Відображає рідне діалогове вікно ОС для вибору файлів або каталогів у " +"файловій системі з додатковими параметрами, які користувач може вибрати.\n" +"Кожен рядок фільтра в масиві [param filters] має бути відформатований таким " +"чином: [код]*.png,*.jpg,*.jpeg;файли зображень;image/png,image/jpeg[/code]. " +"Текст опису фільтра необов’язковий і його можна опустити. Рекомендується " +"встановити як розширення файлу, так і тип MIME. Дивіться також [член " +"FileDialog.filters].\n" +"[param options] — це масив [Dictionary] з такими ключами:\n" +"- [код]\"назва\"[/код] - назва опції [Рядок].\n" +"- [код]\"значення\"[/код] - [PackedStringArray] значень. Якщо пусто, " +"використовується логічний параметр (прапорець).\n" +"- [code]\"default\"[/code] - типовий індекс вибраного параметра ([int]) або " +"типове логічне значення ([bool]).\n" +"Зворотні виклики мають такі аргументи: [code]status: bool, selected_paths: " +"PackedStringArray, selected_filter_index: int, selected_option: Dictionary[/" +"code].\n" +"[b]Примітка:[/b] Цей метод реалізовано, якщо сервер відображення має функцію " +"[постійний FEATURE_NATIVE_DIALOG_FILE_EXTRA]. Підтримувані платформи " +"включають Linux (X11/Wayland), Windows і macOS.\n" +"[b]Примітка: [/b] [param current_directory] може бути проігноровано.\n" +"[b]Примітка.[/b] Вбудоване діалогове вікно файлів і діалогове вікно файлів " +"Windows підтримують лише розширення файлів, тоді як діалогові вікна файлів " +"Android, Linux і macOS також підтримують типи MIME.\n" +"[b]Примітка.[/b] У Linux (X11) [param show_hidden] ігнорується.\n" +"[b]Примітка.[/b] У macOS рідні діалогові вікна файлів не мають заголовків.\n" +"[b]Примітка.[/b] У macOS програми ізольованого програмного середовища " +"зберігають закладки з областю безпеки, щоб зберегти доступ до відкритих папок " +"протягом кількох сеансів. Використовуйте [метод OS.get_granted_permissions], " +"щоб отримати список збережених закладок." + msgid "" "Forces window manager processing while ignoring all [InputEvent]s. See also " "[method process_events].\n" @@ -33684,6 +42728,24 @@ msgstr "" "[метод_завдяки].\n" "[b]Примітка:[/b] Цей метод реалізується на Windows і macOS." +msgid "" +"Returns OS theme accent color. Returns [code]Color(0, 0, 0, 0)[/code], if " +"accent color is unknown.\n" +"[b]Note:[/b] This method is implemented on macOS, Windows, and Android." +msgstr "" +"Повертає акцентний колір теми ОС. Повертає [code]Color(0, 0, 0, 0)[/code], " +"якщо колір акценту невідомий.\n" +"[b]Примітка.[/b] Цей метод реалізовано в macOS, Windows і Android." + +msgid "" +"Returns the OS theme base color (default control background). Returns " +"[code]Color(0, 0, 0, 0)[/code] if the base color is unknown.\n" +"[b]Note:[/b] This method is implemented on macOS, Windows, and Android." +msgstr "" +"Повертає основний колір теми ОС (за замовчуванням тло елемента керування). " +"Повертає [code]Color(0, 0, 0, 0)[/code], якщо основний колір невідомий.\n" +"[b]Примітка.[/b] Цей метод реалізовано в macOS, Windows і Android." + msgid "" "Returns an [Array] of [Rect2], each of which is the bounding rectangle for a " "display cutout or notch. These are non-functional areas on edge-to-edge " @@ -33699,6 +42761,20 @@ msgstr "" "[b]Note:[/b] В даний час реалізовано тільки на Android. Інші платформи будуть " "повертати порожній масив, навіть якщо вони відображають вирізи або лавки." +msgid "" +"Returns the unobscured area of the display where interactive controls should " +"be rendered. See also [method get_display_cutouts].\n" +"[b]Note:[/b] Currently only implemented on Android and iOS. On other " +"platforms, [code]screen_get_usable_rect(SCREEN_OF_MAIN_WINDOW)[/code] will be " +"returned as a fallback. See also [method screen_get_usable_rect]." +msgstr "" +"Повертає незатемнену область дисплея, де мають відображатися інтерактивні " +"елементи керування. Дивіться також [метод get_display_cutouts].\n" +"[b]Примітка.[/b] Наразі реалізовано лише на Android та iOS. На інших " +"платформах [code]screen_get_usable_rect(SCREEN_OF_MAIN_WINDOW)[/code] " +"повертатиметься як запасний варіант. Дивіться також [метод " +"screen_get_usable_rect]." + msgid "" "Returns the index of the screen containing the window with the keyboard " "focus, or the primary screen if there's no focused window." @@ -33732,6 +42808,15 @@ msgstr "Повертає індекс основного екрану." msgid "Returns the number of displays available." msgstr "Повертає кількість наявних дисплеїв." +msgid "" +"Returns the index of the screen that overlaps the most with the given " +"rectangle. Returns [code]-1[/code] if the rectangle doesn't overlap with any " +"screen or has no area." +msgstr "" +"Повертає індекс екрана, який найбільше накладається на вказаний прямокутник. " +"Повертає [код]-1[/код], якщо прямокутник не перекривається жодним екраном або " +"не має області." + msgid "" "Returns [code]true[/code] if positions of [b]OK[/b] and [b]Cancel[/b] buttons " "are swapped in dialogs. This is enabled by default on Windows to follow " @@ -33762,18 +42847,18 @@ msgid "" "+-------------+ +-------+\n" "[/codeblock]" msgstr "" -"Повертає ідентифікатор вікна на вказаному екрані [положення пари] (у " -"пікселях). На багатомоніторних налаштуваннях екранне положення відносно " -"віртуальної площі робочого столу. На багатомоніторних установках з різними " -"роздільними здатністю екрана або орієнтаціями, походження може бути " -"розташований поза будь-яким відображенням, як це:\n" -"[codeblock lang=text]\n" -"+--------\n" -"й\n" -"+--------------------------\n" -"й\n" -"й\n" -"+------------ +----------\n" +"Повертає ідентифікатор вікна на вказаному екрані [param position] (у " +"пікселях). У налаштуваннях із кількома моніторами положення екрана залежить " +"від області віртуального робочого столу. У налаштуваннях із кількома " +"моніторами з різною роздільною здатністю або орієнтацією екрана джерело може " +"розташовуватися за межами будь-якого дисплея, як це: \n" +"[codeblock lang=text] \n" +"* (0, 0) +-------+ \n" +" | | \n" +"+-------------+ | | \n" +"| | | | \n" +"| | | | \n" +"+-------------+ +-------+ \n" "[/codeblock]" msgid "" @@ -34624,6 +43709,15 @@ msgstr "" "Повертає [code]true[/code], якщо зазначена [парова функція] підтримується " "струмом [DisplayServer], [code]false[/code] інакше." +msgid "" +"Returns [code]true[/code] if hardware keyboard is connected.\n" +"[b]Note:[/b] This method is implemented on Android and iOS, on other " +"platforms this method always returns [code]true[/code]." +msgstr "" +"Повертає [code]true[/code], якщо підключено апаратну клавіатуру.\n" +"[b]Примітка: [/b] Цей метод реалізовано на Android та iOS, на інших " +"платформах цей метод завжди повертає [code]true[/code]." + msgid "" "Sets native help system search callbacks.\n" "[param search_callback] has the following arguments: [code]String " @@ -34842,7 +43936,7 @@ msgstr "" "[codeblock lang=text]\n" "ldpi - 120 dpi\n" "mdpi - 160 dpi\n" -"HDPE - 240 дп\n" +"hdpi - 240 dpi\n" "xhdpi - 320 dpi\n" "xxhdpi - 480 dpi\n" "xxxhdpi - 640 dpi\n" @@ -34861,6 +43955,17 @@ msgstr "" "[b]Примітка:[/b] На macOS, цей метод вимагає дозволу \"Screen Recording\", " "якщо дозвіл не наданий, це буде повернений колір шпалер." +msgid "" +"Returns screenshot of the screen [param rect].\n" +"[b]Note:[/b] This method is implemented on macOS and Windows.\n" +"[b]Note:[/b] On macOS, this method requires \"Screen Recording\" permission, " +"if permission is not granted it will return desktop wallpaper color." +msgstr "" +"Повертає знімок екрана [param rect].\n" +"[b]Примітка.[/b] Цей метод реалізовано в macOS і Windows.\n" +"[b]Примітка.[/b] У macOS для цього методу потрібен дозвіл «Запис екрану». " +"Якщо дозвіл не надано, він повертає колір шпалер робочого столу." + msgid "" "Returns the greatest scale factor of all screens.\n" "[b]Note:[/b] On macOS returned value is [code]2.0[/code] if there is at least " @@ -34911,21 +44016,22 @@ msgid "" "[b]Note:[/b] On Linux (Wayland) this method always returns [code](0, 0)[/" "code]." msgstr "" -"Повертає позицію верхнього кута екрана в пікселях. На багатомоніторних " -"налаштуваннях екранне положення відносно віртуальної площі робочого столу. На " -"багатомоніторних установках з різними роздільними здатністю екрана або " -"орієнтаціями, походження може бути розташований поза будь-яким відображенням, " -"як це:\n" -"[codeblock lang=text]\n" -"+--------\n" -"й\n" -"+--------------------------\n" -"й\n" -"й\n" -"+------------ +----------\n" -"[/codeblock]\n" -"Дивись також [method screen_get_size].\n" -"[b]Note:[/b] На Linux (Вайланд) цей метод завжди повертає [code](0, 0)[/code]." +"Повертає положення верхнього лівого кута екрана в пікселях. У налаштуваннях " +"із кількома моніторами положення екрана залежить від області віртуального " +"робочого столу. У налаштуваннях із кількома моніторами з різною роздільною " +"здатністю або орієнтацією екрана джерело може розташовуватися за межами будь-" +"якого дисплея, як це: \n" +"[codeblock lang=text] \n" +"* (0, 0) +-------+ \n" +" | | \n" +"+-------------+ | | \n" +"| | | | \n" +"| | | | \n" +"+-------------+ +-------+ \n" +"[/codeblock] \n" +"Дивіться також [метод screen_get_size]. \n" +"[b]Примітка.[/b] У Linux (Wayland) цей метод завжди повертає [code](0, 0)[/" +"code]." msgid "" "Returns the current refresh rate of the specified screen. If [param screen] " @@ -34942,20 +44048,44 @@ msgid "" " refresh_rate = 60.0\n" "[/codeblock]" msgstr "" -"Повертаємо поточну частоту оновлення зазначеного екрану. Якщо [param screen] " -"є [constant SCREEN_OF_MAIN_WINDOW] (значення за замовчуванням), екран з " -"основним вікном буде використаний екран.\n" -"[b]Note:[/b] Повертає [code]-1.0[/code], якщо Дисплейсер не зможе знайти " -"частоту оновлення для вказаного екрану. На сайті [method " -"screen_get_refresh_rate] завжди повернеться [code]-1.0[/code], оскільки не " -"існує способу відновлення швидкості на цій платформі.\n" -"Якщо метод не вдається, спробуйте:\n" -"[блокування коду]\n" -"var оновлений_rate= DisplayServer.screen_get_refresh_rate()\n" -"якщо оновлення_rate < 0:\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" +"Повертає поточну частоту оновлення вказаного екрана. Якщо [param screen] " +"дорівнює [константі SCREEN_OF_MAIN_WINDOW] (значення за замовчуванням), " +"використовуватиметься екран із головним вікном. \n" +"[b]Примітка:[/b] повертає [code]-1.0[/code], якщо DisplayServer не може " +"знайти частоту оновлення для вказаного екрана. У Інтернеті [метод " +"screen_get_refresh_rate] завжди повертатиме [code]-1.0[/code], оскільки на " +"цій платформі немає способу отримати частоту оновлення. \n" +"Щоб повернутися до стандартної частоти оновлення, якщо метод не вдається, " +"спробуйте: \n" +"[codeblock] \n" +"var refresh_rate = DisplayServer.screen_get_refresh_rate() \n" +"if refresh_rate < 0: \n" +" refresh_rate = 60,0 \n" "[/codeblock]" +msgid "" +"Returns the scale factor of the specified screen by index.\n" +"[b]Note:[/b] On macOS, the returned value is [code]2.0[/code] for hiDPI " +"(Retina) screens, and [code]1.0[/code] for all other cases.\n" +"[b]Note:[/b] On Linux (Wayland), the returned value is accurate only when " +"[param screen] is [constant SCREEN_OF_MAIN_WINDOW]. Due to API limitations, " +"passing a direct index will return a rounded-up integer, if the screen has a " +"fractional scale (e.g. [code]1.25[/code] would get rounded up to [code]2.0[/" +"code]).\n" +"[b]Note:[/b] This method is implemented on Android, iOS, Web, macOS, and " +"Linux (Wayland)." +msgstr "" +"Повертає коефіцієнт масштабування вказаного екрана за індексом.\n" +"[b]Примітка.[/b] У macOS повертається значення [code]2.0[/code] для екранів " +"hiDPI (Retina) і [code]1.0[/code] для всіх інших випадків.\n" +"[b]Примітка.[/b] У Linux (Wayland) повернене значення є точним лише тоді, " +"коли [param screen] має значення [constant SCREEN_OF_MAIN_WINDOW]. Через " +"обмеження API передача прямого індексу повертатиме округлене ціле число, якщо " +"екран має дробовий масштаб (наприклад, [code]1,25[/code] буде округлено до " +"[code]2,0[/code]).\n" +"[b]Примітка.[/b] Цей метод реалізовано на Android, iOS, Web, macOS і Linux " +"(Wayland)." + msgid "" "Returns the screen's size in pixels. See also [method screen_get_position] " "and [method screen_get_usable_rect]." @@ -35041,6 +44171,13 @@ msgstr "" "[b]Примітка:[/b] Цей метод реалізується на Android, iOS, macOS, Windows та " "Linux (X11/Wayland)." +msgid "" +"Opens system emoji and symbol picker.\n" +"[b]Note:[/b] This method is implemented on macOS and Windows." +msgstr "" +"Відкриває системний засіб вибору смайлів і символів.\n" +"[b]Примітка.[/b] Цей метод реалізовано в macOS і Windows." + msgid "" "Returns the rectangle for the given status indicator [param id] in screen " "coordinates. If the status indicator is not visible, returns an empty " @@ -35702,6 +44839,91 @@ msgstr "" "[b]Note:[/b] Використання сторонніх інструментів, можливо для користувачів, " "щоб відключити обмеження геометрії вікон і, отже, обійти цей ліміт." +msgid "" +"Sets window mode for the given window to [param mode]. See [enum WindowMode] " +"for possible values and how each mode behaves.\n" +"[b]Note:[/b] On Android, setting it to [constant WINDOW_MODE_FULLSCREEN] or " +"[constant WINDOW_MODE_EXCLUSIVE_FULLSCREEN] will enable immersive mode.\n" +"[b]Note:[/b] Setting the window to full screen forcibly sets the borderless " +"flag to [code]true[/code], so make sure to set it back to [code]false[/code] " +"when not wanted." +msgstr "" +"Встановлює режим вікна для даного вікна на [param mode]. Перегляньте [enum " +"WindowMode], щоб дізнатися про можливі значення та як поводиться кожен " +"режим.\n" +"[b]Примітка.[/b] На Android встановлення значення [постійний " +"WINDOW_MODE_FULLSCREEN] або [постійний WINDOW_MODE_EXCLUSIVE_FULLSCREEN] " +"увімкне режим занурення.\n" +"[b]Примітка:[/b] Встановлення вікна на весь екран примусово встановлює прапор " +"без рамок на [code]true[/code], тому переконайтеся, що повертаєте його на " +"[code]false[/code], коли це не потрібно." + +msgid "" +"Sets a polygonal region of the window which accepts mouse events. Mouse " +"events outside the region will be passed through.\n" +"Passing an empty array will disable passthrough support (all mouse events " +"will be intercepted by the window, which is the default behavior).\n" +"[codeblocks]\n" +"[gdscript]\n" +"# Set region, using Path2D node.\n" +"DisplayServer.window_set_mouse_passthrough($Path2D.curve.get_baked_points())\n" +"\n" +"# Set region, using Polygon2D node.\n" +"DisplayServer.window_set_mouse_passthrough($Polygon2D.polygon)\n" +"\n" +"# Reset region to default.\n" +"DisplayServer.window_set_mouse_passthrough([])\n" +"[/gdscript]\n" +"[csharp]\n" +"// Set region, using Path2D node.\n" +"DisplayServer.WindowSetMousePassthrough(GetNode<Path2D>(\"Path2D\").Curve." +"GetBakedPoints());\n" +"\n" +"// Set region, using Polygon2D node.\n" +"DisplayServer.WindowSetMousePassthrough(GetNode<Polygon2D>(\"Polygon2D\")." +"Polygon);\n" +"\n" +"// Reset region to default.\n" +"DisplayServer.WindowSetMousePassthrough([]);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] On Windows, the portion of a window that lies outside the region " +"is not drawn, while on Linux (X11) and macOS it is.\n" +"[b]Note:[/b] This method is implemented on Linux (X11), macOS and Windows." +msgstr "" +"Встановлює багатокутну область вікна, яка приймає події миші. Події миші за " +"межами регіону будуть проходити. \n" +"Передача порожнього масиву вимкне підтримку проходження (усі події миші " +"перехоплюватимуться вікном, що є типовою поведінкою). \n" +"[codeblocks] \n" +"[gdscript] \n" +"# Встановити регіон, використовуючи вузол Path2D. \n" +"DisplayServer.window_set_mouse_passthrough($Path2D.curve." +"get_baked_points()) \n" +"\n" +"# Встановити область, використовуючи вузол Polygon2D. \n" +"DisplayServer.window_set_mouse_passthrough($Polygon2D.polygon) \n" +"\n" +"# Скинути регіон до стандартних. \n" +"DisplayServer.window_set_mouse_passthrough([]) \n" +"[/gdscript] \n" +"[csharp] \n" +"// Встановити регіон, використовуючи вузол Path2D. \n" +"DisplayServer.WindowSetMousePassthrough(GetNode<Path2D>(\"Path2D\").Curve." +"GetBakedPoints()); \n" +"\n" +"// Встановити область, використовуючи вузол Polygon2D. \n" +"DisplayServer.WindowSetMousePassthrough(GetNode<Polygon2D>(\"Polygon2D\")." +"Polygon); \n" +"\n" +"// Скидання регіону до типового. \n" +"DisplayServer.WindowSetMousePassthrough([]); \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка.[/b] У Windows частина вікна, яка лежить за межами області, не " +"малюється, тоді як у Linux (X11) і macOS це так. \n" +"[b]Примітка.[/b] Цей метод реалізовано в Linux (X11), macOS і Windows." + msgid "" "Sets the bounding box of control, or menu item that was used to open the " "popup window, in the screen coordinate system. Clicking this area will not " @@ -35729,23 +44951,23 @@ msgid "" "position] instead.\n" "[b]Note:[/b] On Linux (Wayland): this method is a no-op." msgstr "" -"Встановлює позицію заданого вікна до [постанова пропарювання]. На " -"багатомоніторних налаштуваннях екранне положення відносно віртуальної площі " -"робочого столу. На багатомоніторних установках з різними роздільними " -"здатністю екрана або орієнтаціями, походження може бути розташований поза " -"будь-яким відображенням, як це:\n" -"[codeblock lang=text]\n" -"+--------\n" -"й\n" -"+--------------------------\n" -"й\n" -"й\n" -"+------------ +----------\n" -"[/codeblock]\n" -"Дивись також [method windows_get_position] і [метод windows_set_size].\n" -"[b]Примітка:[/b] Рекомендовано змінити значення за допомогою [пам'ятного " -"вікна.положення].\n" -"[b]Примітка:[/b] На Linux (Вайланд): цей метод неоп." +"Встановлює позицію даного вікна на [param position]. У налаштуваннях із " +"кількома моніторами положення екрана залежить від області віртуального " +"робочого столу. У налаштуваннях із кількома моніторами з різною роздільною " +"здатністю або орієнтацією екрана джерело може розташовуватися за межами будь-" +"якого дисплея, як це: \n" +"[codeblock lang=text] \n" +"* (0, 0) +-------+ \n" +" | | \n" +"+-------------+ | | \n" +"| | | | \n" +"| | | | \n" +"+-------------+ +-------+ \n" +"[/codeblock] \n" +"Дивіться також [метод window_get_position] і [метод window_set_size]. \n" +"[b]Примітка: [/b] Рекомендується змінити це значення за допомогою [member " +"Window.position]. \n" +"[b]Примітка.[/b] У Linux (Wayland): цей метод є безопераційним." msgid "" "Sets the [param callback] that will be called when the window specified by " @@ -35785,6 +45007,24 @@ msgstr "" "викликати проблеми продуктивності на певних вікнах. Спробуйте змінити назву " "вікна лише кілька разів на секунду." +msgid "" +"Sets window transient parent. Transient window will be destroyed with its " +"transient parent and will return focus to their parent when closed. The " +"transient window is displayed on top of a non-exclusive full-screen parent " +"window. Transient windows can't enter full-screen mode.\n" +"[b]Note:[/b] It's recommended to change this value using [member Window." +"transient] instead.\n" +"[b]Note:[/b] The behavior might be different depending on the platform." +msgstr "" +"Встановлює тимчасовий батьків вікна. Тимчасове вікно буде знищено разом із " +"його тимчасовим батьківським вікном і поверне фокус до батьківського вікна, " +"коли буде закрито. Перехідне вікно відображається поверх невиключного " +"повноекранного батьківського вікна. Перехідні вікна не можуть перейти в " +"повноекранний режим.\n" +"[b]Примітка: [/b] Рекомендується змінити це значення за допомогою [member " +"Window.transient].\n" +"[b]Примітка.[/b] Поведінка може відрізнятися залежно від платформи." + msgid "" "Sets the V-Sync mode of the given window. See also [member ProjectSettings." "display/window/vsync/vsync_mode].\n" @@ -35825,6 +45065,36 @@ msgstr "" "зворотного виклику в вузол [Window] перенаречений на його виконання за " "замовчуванням, який може ввести помилки." +msgid "" +"Starts an interactive drag operation on the window with the given [param " +"window_id], using the current mouse position. Call this method when handling " +"a mouse button being pressed to simulate a pressed event on the window's " +"title bar. Using this method allows the window to participate in space " +"switching, tiling, and other system features.\n" +"[b]Note:[/b] This method is implemented on Linux (X11/Wayland), macOS, and " +"Windows." +msgstr "" +"Починає інтерактивну операцію перетягування у вікні з заданим [param " +"window_id], використовуючи поточну позицію миші. Викликайте цей метод під час " +"обробки натиснутої кнопки миші, щоб імітувати подію натискання в рядку " +"заголовка вікна. Використання цього методу дозволяє вікну брати участь у " +"перемиканні простору, мозаїці та інших функціях системи.\n" +"[b]Примітка.[/b] Цей метод реалізовано в Linux (X11/Wayland), macOS і Windows." + +msgid "" +"Starts an interactive resize operation on the window with the given [param " +"window_id], using the current mouse position. Call this method when handling " +"a mouse button being pressed to simulate a pressed event on the window's " +"edge.\n" +"[b]Note:[/b] This method is implemented on Linux (X11/Wayland), macOS, and " +"Windows." +msgstr "" +"Починає інтерактивну операцію зміни розміру вікна з заданим [param " +"window_id], використовуючи поточну позицію миші. Викликайте цей метод під час " +"обробки натиснутої кнопки миші, щоб імітувати подію натискання на краю " +"вікна.\n" +"[b]Примітка.[/b] Цей метод реалізовано в Linux (X11/Wayland), macOS і Windows." + msgid "" "Display server supports global menu. This allows the application to display " "its menu items in the operating system's top bar. [b]macOS[/b]" @@ -36003,6 +45273,59 @@ msgstr "" "рідного вигляду операційної системи. Див [методичний діалог_input_text]. " "[b]Windows, macOS[/b]" +msgid "" +"Display server supports spawning dialogs for selecting files or directories " +"using the operating system's native look-and-feel. See [method " +"file_dialog_show]. [b]Windows, macOS, Linux (X11/Wayland), Android[/b]" +msgstr "" +"Дисплейний сервер підтримує створення діалогових вікон для вибору файлів або " +"каталогів із використанням зовнішнього вигляду операційної системи. " +"Перегляньте [метод file_dialog_show]. [b]Windows, macOS, Linux (X11/Wayland), " +"Android[/b]" + +msgid "" +"The display server supports all features of [constant " +"FEATURE_NATIVE_DIALOG_FILE], with the added functionality of Options and " +"native dialog file access to [code]res://[/code] and [code]user://[/code] " +"paths. See [method file_dialog_show] and [method " +"file_dialog_with_options_show]. [b]Windows, macOS, Linux (X11/Wayland)[/b]" +msgstr "" +"Сервер відображення підтримує всі функції [constant " +"FEATURE_NATIVE_DIALOG_FILE] із доданими функціями Параметрів і власним " +"доступом до діалогового файлу за шляхами [code]res://[/code] і [code]user://[/" +"code]. Перегляньте [метод file_dialog_show] і [метод " +"file_dialog_with_options_show]. [b]Windows, macOS, Linux (X11/Wayland)[/b]" + +msgid "" +"The display server supports initiating window drag and resize operations on " +"demand. See [method window_start_drag] and [method window_start_resize]." +msgstr "" +"Сервер відображення підтримує операції перетягування вікна та зміни розміру " +"за запитом. Див. [метод window_start_drag] і [метод window_start_resize]." + +msgid "" +"Display server supports [constant WINDOW_FLAG_EXCLUDE_FROM_CAPTURE] window " +"flag." +msgstr "" +"Сервер відображення підтримує прапор вікна [постійний " +"WINDOW_FLAG_EXCLUDE_FROM_CAPTURE]." + +msgid "" +"Display server supports embedding a window from another process. [b]Windows, " +"Linux (X11)[/b]" +msgstr "" +"Сервер дисплея підтримує вбудовування вікна з іншого процесу. [b]Windows, " +"Linux (X11)[/b]" + +msgid "Native file selection dialog supports MIME types as filters." +msgstr "Власне діалогове вікно вибору файлів підтримує типи MIME як фільтри." + +msgid "" +"Display server supports system emoji and symbol picker. [b]Windows, macOS[/b]" +msgstr "" +"Дисплейний сервер підтримує системні смайли та засіб вибору символів. " +"[b]Windows, macOS[/b]" + msgid "Makes the mouse cursor visible if it is hidden." msgstr "Зробіть курсор мишки видимим, якщо він прихований." @@ -36027,6 +45350,9 @@ msgstr "Налаштуйте курсор миші на ігровому вік msgid "Confines the mouse cursor to the game window, and make it hidden." msgstr "Налаштуйте курсор миші на ігровому вікні, і зробіть його прихованим." +msgid "Max value of the [enum MouseMode]." +msgstr "Максимальне значення [enum MouseMode]." + msgid "" "Represents the screen containing the mouse pointer.\n" "[b]Note:[/b] On Linux (Wayland), this constant always represents the screen " @@ -36343,6 +45669,74 @@ msgstr "" "бару завдання і ще відображати її кордони. Зазвичай відбувається при " "натисканні кнопки максимальна кнопка." +msgid "" +"Full screen mode with full multi-window support.\n" +"Full screen window covers the entire display area of a screen and has no " +"decorations. The display's video mode is not changed.\n" +"[b]On Android:[/b] This enables immersive mode.\n" +"[b]On Windows:[/b] Multi-window full-screen mode has a 1px border of the " +"[member ProjectSettings.rendering/environment/defaults/default_clear_color] " +"color.\n" +"[b]On macOS:[/b] A new desktop is used to display the running project.\n" +"[b]Note:[/b] Regardless of the platform, enabling full screen will change the " +"window size to match the monitor's size. Therefore, make sure your project " +"supports [url=$DOCS_URL/tutorials/rendering/multiple_resolutions." +"html]multiple resolutions[/url] when enabling full screen mode." +msgstr "" +"Повноекранний режим із повною підтримкою кількох вікон.\n" +"Повноекранне вікно охоплює всю область відображення екрана і не має прикрас. " +"Відеорежим дисплея не змінено.\n" +"[b]На Android:[/b] це вмикає режим занурення.\n" +"[b]У Windows: [/b] Багатовіконний повноекранний режим має рамку 1 пікс " +"кольору [члена ProjectSettings.rendering/environment/defaults/" +"default_clear_color].\n" +"[b]У macOS:[/b] новий робочий стіл використовується для відображення " +"запущеного проекту.\n" +"[b]Примітка.[/b] Незалежно від платформи, увімкнення повноекранного режиму " +"змінить розмір вікна відповідно до розміру монітора. Тому переконайтеся, що " +"ваш проект підтримує [url=$DOCS_URL/tutorials/rendering/multiple_resolutions." +"html]кілька роздільних здатностей[/url] під час увімкнення повноекранного " +"режиму." + +msgid "" +"A single window full screen mode. This mode has less overhead, but only one " +"window can be open on a given screen at a time (opening a child window or " +"application switching will trigger a full screen transition).\n" +"Full screen window covers the entire display area of a screen and has no " +"border or decorations. The display's video mode is not changed.\n" +"[b]On Android:[/b] This enables immersive mode.\n" +"[b]On Windows:[/b] Depending on video driver, full screen transition might " +"cause screens to go black for a moment.\n" +"[b]On macOS:[/b] A new desktop is used to display the running project. " +"Exclusive full screen mode prevents Dock and Menu from showing up when the " +"mouse pointer is hovering the edge of the screen.\n" +"[b]On Linux (X11):[/b] Exclusive full screen mode bypasses compositor.\n" +"[b]On Linux (Wayland):[/b] Equivalent to [constant WINDOW_MODE_FULLSCREEN].\n" +"[b]Note:[/b] Regardless of the platform, enabling full screen will change the " +"window size to match the monitor's size. Therefore, make sure your project " +"supports [url=$DOCS_URL/tutorials/rendering/multiple_resolutions." +"html]multiple resolutions[/url] when enabling full screen mode." +msgstr "" +"Повноекранний режим одного вікна. У цьому режимі менше накладних витрат, але " +"на певному екрані одночасно може бути відкрито лише одне вікно (відкриття " +"дочірнього вікна або перемикання програми призведе до переходу на весь " +"екран).\n" +"Повноекранне вікно охоплює всю область відображення екрана й не має рамок чи " +"прикрас. Відеорежим дисплея не змінено.\n" +"[b]На Android:[/b] це вмикає режим занурення.\n" +"[b]У Windows:[/b] Залежно від відеодрайвера повноекранний перехід може " +"призвести до того, що екрани на мить стануть чорними.\n" +"[b]У macOS:[/b] новий робочий стіл використовується для відображення " +"запущеного проекту. Ексклюзивний повноекранний режим запобігає відображенню " +"док-станції та меню, коли вказівник миші наводиться на край екрана.\n" +"[b]У Linux (X11):[/b] ексклюзивний повноекранний режим обходить композитор.\n" +"[b]У Linux (Wayland):[/b] еквівалент [константи WINDOW_MODE_FULLSCREEN].\n" +"[b]Примітка.[/b] Незалежно від платформи, увімкнення повноекранного режиму " +"змінить розмір вікна відповідно до розміру монітора. Тому переконайтеся, що " +"ваш проект підтримує [url=$DOCS_URL/tutorials/rendering/multiple_resolutions." +"html]кілька роздільних здатностей[/url] під час увімкнення повноекранного " +"режиму." + msgid "" "The window can't be resized by dragging its resize grip. It's still possible " "to resize the window using [method window_set_size]. This flag is ignored for " @@ -36426,6 +45820,27 @@ msgid "" "All mouse events are passed to the underlying window of the same application." msgstr "Всі події мишки пропускаються до основного вікна того ж програми." +msgid "" +"Window style is overridden, forcing sharp corners.\n" +"[b]Note:[/b] This flag is implemented only on Windows (11)." +msgstr "" +"Стиль вікон перевизначено, створюючи гострі кути.\n" +"[b]Примітка:[/b] цей прапор реалізований лише у Windows (11)." + +msgid "" +"Windows is excluded from screenshots taken by [method screen_get_image], " +"[method screen_get_image_rect], and [method screen_get_pixel].\n" +"[b]Note:[/b] This flag is implemented on macOS and Windows.\n" +"[b]Note:[/b] Setting this flag will [b]NOT[/b] prevent other apps from " +"capturing an image, it should not be used as a security measure." +msgstr "" +"Windows виключається зі знімків екрана, зроблених [методом screen_get_image], " +"[методом screen_get_image_rect] і [методом screen_get_pixel].\n" +"[b]Примітка.[/b] Цей прапорець реалізовано в macOS і Windows.\n" +"[b]Примітка.[/b] Встановлення цього прапорця [b]НЕ[/b] завадить іншим " +"програмам захоплювати зображення, його не слід використовувати як засіб " +"безпеки." + msgid "Max value of the [enum WindowFlags]." msgstr "Максимальне значення [enum WindowFlags]." @@ -36475,14 +45890,41 @@ msgstr "" "повноекранний режим).\n" "[b]Примітка:[/b] Цей прапор реалізується тільки на macOS." +msgid "Top-left edge of a window." +msgstr "Верхній лівий край вікна." + +msgid "Top edge of a window." +msgstr "Верхній край вікна." + +msgid "Top-right edge of a window." +msgstr "Верхній правий край вікна." + +msgid "Left edge of a window." +msgstr "Лівий край вікна." + +msgid "Right edge of a window." +msgstr "Правий край вікна." + +msgid "Bottom-left edge of a window." +msgstr "Нижній лівий край вікна." + +msgid "Bottom edge of a window." +msgstr "Нижній край вікна." + +msgid "Bottom-right edge of a window." +msgstr "Правий нижній край вікна." + +msgid "Represents the size of the [enum WindowResizeEdge] enum." +msgstr "Представляє розмір переліку [enum WindowResizeEdge]." + msgid "" "No vertical synchronization, which means the engine will display frames as " "fast as possible (tearing may be visible). Framerate is unlimited (regardless " "of [member Engine.max_fps])." msgstr "" -"Без вертикальної синхронізації, що означає, що двигун буде відображати кадри " -"якомога швидше (встановлення може бути видно). Framerate є необмеженим " -"(безкоштовно [членний двигун.max_fps])." +"Вертикальну синхронізацію вимкнено, це означає, що рушій буде відображати " +"кадри якомога швидше (можуть бути помітні розриви зображення). Частота кадрів " +"необмежена (незалежно від [member Engine.max_fps])." msgid "" "Default vertical synchronization mode, the image is displayed only on " @@ -36501,11 +45943,12 @@ msgid "" "Behaves like [constant VSYNC_ENABLED] when using the Compatibility rendering " "method." msgstr "" -"Ось як [constant VSYNC_DISABLED], коли ррейт падає нижче швидкості оновлення " -"екрана, щоб зменшити стерження (вимірювання може бути видимим). В іншому " -"випадку вдається вертикальна синхронізація, щоб уникнути розриву. Рамат " -"обмежений частотою оновлень монітора (незалежно від [члена двигуна.max_fps]). " -"Як [constant VSYNC_ENABLED] при використанні методу рендерингу сумісності." +"Працює як [constant VSYNC_DISABLED], якщо частота кадрів падає нижче частоти " +"оновлення екрана, щоб зменшити ривки(можуть бути помітні розриви в " +"зображенні). В іншому випадку вертикальну синхронізацію увімкнено, щоб " +"уникнути розривів зображення. Частоту кадрів обмежено частотою оновленя " +"екрана (незалежно від [member Engine.max_fps]). Працює як [constant " +"VSYNC_ENABLED] при використанні методу рендерингу \"Сумісність\"." msgid "" "Displays the most recent image in the queue on vertical blanking intervals, " @@ -36517,14 +45960,91 @@ msgid "" "refresh rate are rendered. Behaves like [constant VSYNC_ENABLED] when using " "the Compatibility rendering method." msgstr "" -"Відображає останнє зображення у черзі на вертикальні інтервали заготовки, при " -"цьому надаючи іншим зображенням (не видно розрив). Framerate є необмеженим " -"(безкоштовно [членний двигун.max_fps]).\n" -"Хоча не гарантується, що зображення можуть бути максимально швидко, що може " -"зменшити відставання входу (також називається \"Fast\" V-Sync режим). " -"[constant VSYNC_MAILBOX] працює краще, коли принаймні двічі більше кадрів, як " -"швидкість оновлення дисплея. Як [constant VSYNC_ENABLED] при використанні " -"методу рендерингу сумісності." +"Відображає останнє зображення в черзі з інтервалами вертикального гасіння під " +"час візуалізації інших зображень (розривів не видно). Частота кадрів " +"необмежена (незалежно від [member Engine.max_fps]).\n" +"Хоча це не гарантовано, зображення можуть відтворюватися якнайшвидше, що може " +"зменшити затримку введення (також званий «швидкий» режим V-Sync). [константа " +"VSYNC_MAILBOX] працює найкраще, коли відображається принаймні вдвічі більше " +"кадрів, ніж частота оновлення дисплея. Поводиться як [константа " +"VSYNC_ENABLED] під час використання методу візуалізації сумісності." + +msgid "" +"Display handle:\n" +"- Linux (X11): [code]X11::Display*[/code] for the display.\n" +"- Linux (Wayland): [code]wl_display[/code] for the display.\n" +"- Android: [code]EGLDisplay[/code] for the display." +msgstr "" +"Ручка дисплея:\n" +"- Linux (X11): [code]X11::Display*[/code] для дисплея.\n" +"- Linux (Wayland): [code]wl_display[/code] для дисплея.\n" +"- Android: [code]EGLDisplay[/code] для дисплея." + +msgid "" +"Window handle:\n" +"- Windows: [code]HWND[/code] for the window.\n" +"- Linux (X11): [code]X11::Window*[/code] for the window.\n" +"- Linux (Wayland): [code]wl_surface[/code] for the window.\n" +"- macOS: [code]NSWindow*[/code] for the window.\n" +"- iOS: [code]UIViewController*[/code] for the view controller.\n" +"- Android: [code]jObject[/code] for the activity." +msgstr "" +"Віконна ручка:\n" +"- Windows: [code]HWND[/code] для вікна.\n" +"- Linux (X11): [code]X11::Window*[/code] для вікна.\n" +"- Linux (Wayland): [code]wl_surface[/code] для вікна.\n" +"- macOS: [code]NSWindow*[/code] для вікна.\n" +"- iOS: [code]UIViewController*[/code] для контролера перегляду.\n" +"- Android: [code]jObject[/code] для активності." + +msgid "" +"Window view:\n" +"- Windows: [code]HDC[/code] for the window (only with the Compatibility " +"renderer).\n" +"- macOS: [code]NSView*[/code] for the window main view.\n" +"- iOS: [code]UIView*[/code] for the window main view." +msgstr "" +"Вид вікна:\n" +"- Windows: [code]HDC[/code] для вікна (лише з рендерером сумісності).\n" +"- macOS: [code]NSView*[/code] для головного вигляду вікна.\n" +"- iOS: [code]UIView*[/code] для головного вигляду вікна." + +msgid "" +"OpenGL context (only with the Compatibility renderer):\n" +"- Windows: [code]HGLRC[/code] for the window (native GL), or " +"[code]EGLContext[/code] for the window (ANGLE).\n" +"- Linux (X11): [code]GLXContext*[/code] for the window.\n" +"- Linux (Wayland): [code]EGLContext[/code] for the window.\n" +"- macOS: [code]NSOpenGLContext*[/code] for the window (native GL), or " +"[code]EGLContext[/code] for the window (ANGLE).\n" +"- Android: [code]EGLContext[/code] for the window." +msgstr "" +"Контекст OpenGL (лише з рендерером сумісності):\n" +"- Windows: [code]HGLRC[/code] для вікна (рідний GL) або [code]EGLContext[/" +"code] для вікна (ANGLE).\n" +"- Linux (X11): [code]GLXContext*[/code] для вікна.\n" +"- Linux (Wayland): [code]EGLContext[/code] для вікна.\n" +"- macOS: [code]NSOpenGLContext*[/code] для вікна (власний GL) або " +"[code]EGLContext[/code] для вікна (ANGLE).\n" +"- Android: [code]EGLContext[/code] для вікна." + +msgid "" +"- Windows: [code]EGLDisplay[/code] for the window (ANGLE).\n" +"- macOS: [code]EGLDisplay[/code] for the window (ANGLE).\n" +"- Linux (Wayland): [code]EGLDisplay[/code] for the window." +msgstr "" +"- Windows: [code]EGLDisplay[/code] для вікна (ANGLE).\n" +"- macOS: [code]EGLDisplay[/code] для вікна (ANGLE).\n" +"- Linux (Wayland): [code]EGLDisplay[/code] для вікна." + +msgid "" +"- Windows: [code]EGLConfig[/code] for the window (ANGLE).\n" +"- macOS: [code]EGLConfig[/code] for the window (ANGLE).\n" +"- Linux (Wayland): [code]EGLConfig[/code] for the window." +msgstr "" +"- Windows: [code]EGLConfig[/code] для вікна (ANGLE).\n" +"- macOS: [code]EGLConfig[/code] для вікна (ANGLE).\n" +"- Linux (Wayland): [code]EGLConfig[/code] для вікна." msgid "Utterance has begun to be spoken." msgstr "Уттеранс почав говорити." @@ -36539,7 +46059,320 @@ msgid "Utterance reached a word or sentence boundary." msgstr "Уттеранс отримав слово або речення, що межує." msgid "Helper class to implement a DTLS server." -msgstr "Помічник класу для реалізації сервера DTLS." +msgstr "Допоміжний клас для реалізації сервера DTLS." + +msgid "" +"This class is used to store the state of a DTLS server. Upon [method setup] " +"it converts connected [PacketPeerUDP] to [PacketPeerDTLS] accepting them via " +"[method take_connection] as DTLS clients. Under the hood, this class is used " +"to store the DTLS state and cookies of the server. The reason of why the " +"state and cookies are needed is outside of the scope of this documentation.\n" +"Below a small example of how to use it:\n" +"[codeblocks]\n" +"[gdscript]\n" +"# server_node.gd\n" +"extends Node\n" +"\n" +"var dtls = DTLSServer.new()\n" +"var server = UDPServer.new()\n" +"var peers = []\n" +"\n" +"func _ready():\n" +" server.listen(4242)\n" +" var key = load(\"key.key\") # Your private key.\n" +" var cert = load(\"cert.crt\") # Your X509 certificate.\n" +" dtls.setup(TlsOptions.server(key, cert))\n" +"\n" +"func _process(delta):\n" +" while server.is_connection_available():\n" +" var peer = server.take_connection()\n" +" var dtls_peer = dtls.take_connection(peer)\n" +" if dtls_peer.get_status() != PacketPeerDTLS.STATUS_HANDSHAKING:\n" +" continue # It is normal that 50% of the connections fails due to " +"cookie exchange.\n" +" print(\"Peer connected!\")\n" +" peers.append(dtls_peer)\n" +"\n" +" for p in peers:\n" +" p.poll() # Must poll to update the state.\n" +" if p.get_status() == PacketPeerDTLS.STATUS_CONNECTED:\n" +" while p.get_available_packet_count() > 0:\n" +" print(\"Received message from client: %s\" % p.get_packet()." +"get_string_from_utf8())\n" +" p.put_packet(\"Hello DTLS client\".to_utf8_buffer())\n" +"[/gdscript]\n" +"[csharp]\n" +"// ServerNode.cs\n" +"using Godot;\n" +"\n" +"public partial class ServerNode : Node\n" +"{\n" +" private DtlsServer _dtls = new DtlsServer();\n" +" private UdpServer _server = new UdpServer();\n" +" private Godot.Collections.Array<PacketPeerDtls> _peers = [];\n" +"\n" +" public override void _Ready()\n" +" {\n" +" _server.Listen(4242);\n" +" var key = GD.Load<CryptoKey>(\"key.key\"); // Your private key.\n" +" var cert = GD.Load<X509Certificate>(\"cert.crt\"); // Your X509 " +"certificate.\n" +" _dtls.Setup(TlsOptions.Server(key, cert));\n" +" }\n" +"\n" +" public override void _Process(double delta)\n" +" {\n" +" while (_server.IsConnectionAvailable())\n" +" {\n" +" PacketPeerUdp peer = _server.TakeConnection();\n" +" PacketPeerDtls dtlsPeer = _dtls.TakeConnection(peer);\n" +" if (dtlsPeer.GetStatus() != PacketPeerDtls.Status.Handshaking)\n" +" {\n" +" continue; // It is normal that 50% of the connections fails " +"due to cookie exchange.\n" +" }\n" +" GD.Print(\"Peer connected!\");\n" +" _peers.Add(dtlsPeer);\n" +" }\n" +"\n" +" foreach (var p in _peers)\n" +" {\n" +" p.Poll(); // Must poll to update the state.\n" +" if (p.GetStatus() == PacketPeerDtls.Status.Connected)\n" +" {\n" +" while (p.GetAvailablePacketCount() > 0)\n" +" {\n" +" GD.Print($\"Received Message From Client: {p.GetPacket()." +"GetStringFromUtf8()}\");\n" +" p.PutPacket(\"Hello DTLS Client\".ToUtf8Buffer());\n" +" }\n" +" }\n" +" }\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[codeblocks]\n" +"[gdscript]\n" +"# client_node.gd\n" +"extends Node\n" +"\n" +"var dtls = PacketPeerDTLS.new()\n" +"var udp = PacketPeerUDP.new()\n" +"var connected = false\n" +"\n" +"func _ready():\n" +" udp.connect_to_host(\"127.0.0.1\", 4242)\n" +" dtls.connect_to_peer(udp, false) # Use true in production for certificate " +"validation!\n" +"\n" +"func _process(delta):\n" +" dtls.poll()\n" +" if dtls.get_status() == PacketPeerDTLS.STATUS_CONNECTED:\n" +" if !connected:\n" +" # Try to contact server\n" +" dtls.put_packet(\"The answer is... 42!\".to_utf8_buffer())\n" +" while dtls.get_available_packet_count() > 0:\n" +" print(\"Connected: %s\" % dtls.get_packet()." +"get_string_from_utf8())\n" +" connected = true\n" +"[/gdscript]\n" +"[csharp]\n" +"// ClientNode.cs\n" +"using Godot;\n" +"using System.Text;\n" +"\n" +"public partial class ClientNode : Node\n" +"{\n" +" private PacketPeerDtls _dtls = new PacketPeerDtls();\n" +" private PacketPeerUdp _udp = new PacketPeerUdp();\n" +" private bool _connected = false;\n" +"\n" +" public override void _Ready()\n" +" {\n" +" _udp.ConnectToHost(\"127.0.0.1\", 4242);\n" +" _dtls.ConnectToPeer(_udp, validateCerts: false); // Use true in " +"production for certificate validation!\n" +" }\n" +"\n" +" public override void _Process(double delta)\n" +" {\n" +" _dtls.Poll();\n" +" if (_dtls.GetStatus() == PacketPeerDtls.Status.Connected)\n" +" {\n" +" if (!_connected)\n" +" {\n" +" // Try to contact server\n" +" _dtls.PutPacket(\"The Answer Is..42!\".ToUtf8Buffer());\n" +" }\n" +" while (_dtls.GetAvailablePacketCount() > 0)\n" +" {\n" +" GD.Print($\"Connected: {_dtls.GetPacket()." +"GetStringFromUtf8()}\");\n" +" _connected = true;\n" +" }\n" +" }\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Цей клас використовується для зберігання стану сервера DTLS. Після [method " +"setup] він перетворює підключені [PacketPeerUDP] на [PacketPeerDTLS], " +"приймаючи їх через [method take_connection] як клієнтів DTLS. Під капотом цей " +"клас використовується для зберігання стану DTLS і файлів cookie сервера. " +"Причина, з якої потрібні стан і файли cookie, виходить за межі цієї " +"документації.\n" +"Нижче наведено невеликий приклад того, як ним користуватися:\n" +"[codeblocks]\n" +"[gdscript]\n" +"# server_node.gd\n" +"extends Node\n" +"\n" +"var dtls := DTLSServer.new()\n" +"var server := UDPServer.new()\n" +"var peers = []\n" +"\n" +"func _ready():\n" +" server.listen(4242)\n" +" var key = load(\"key.key\") # Your private key.\n" +" var cert = load(\"cert.crt\") # Your X509 certificate.\n" +" dtls.setup(key, cert)\n" +"\n" +"func _process(delta):\n" +" while server.is_connection_available():\n" +" var peer: PacketPeerUDP = server.take_connection()\n" +" var dtls_peer: PacketPeerDTLS = dtls.take_connection(peer)\n" +" if dtls_peer.get_status() != PacketPeerDTLS.STATUS_HANDSHAKING:\n" +" continue # It is normal that 50% of the connections fails due to " +"cookie exchange.\n" +" print(\"Peer connected!\")\n" +" peers.append(dtls_peer)\n" +"\n" +" for p in peers:\n" +" p.poll() # Must poll to update the state.\n" +" if p.get_status() == PacketPeerDTLS.STATUS_CONNECTED:\n" +" while p.get_available_packet_count() > 0:\n" +" print(\"Received message from client: %s\" % p.get_packet()." +"get_string_from_utf8())\n" +" p.put_packet(\"Hello DTLS client\".to_utf8_buffer())\n" +"[/gdscript]\n" +"[csharp]\n" +"// ServerNode.cs\n" +"using Godot;\n" +"\n" +"public partial class ServerNode : Node\n" +"{\n" +" private DtlsServer _dtls = new DtlsServer();\n" +" private UdpServer _server = new UdpServer();\n" +" private Godot.Collections.Array<PacketPeerDtls> _peers = new Godot." +"Collections.Array<PacketPeerDtls>();\n" +"\n" +" public override void _Ready()\n" +" {\n" +" _server.Listen(4242);\n" +" var key = GD.Load<CryptoKey>(\"key.key\"); // Your private key.\n" +" var cert = GD.Load<X509Certificate>(\"cert.crt\"); // Your X509 " +"certificate.\n" +" _dtls.Setup(key, cert);\n" +" }\n" +"\n" +" public override void _Process(double delta)\n" +" {\n" +" while (Server.IsConnectionAvailable())\n" +" {\n" +" PacketPeerUdp peer = _server.TakeConnection();\n" +" PacketPeerDtls dtlsPeer = _dtls.TakeConnection(peer);\n" +" if (dtlsPeer.GetStatus() != PacketPeerDtls.Status.Handshaking)\n" +" {\n" +" continue; // It is normal that 50% of the connections fails " +"due to cookie exchange.\n" +" }\n" +" GD.Print(\"Peer connected!\");\n" +" _peers.Add(dtlsPeer);\n" +" }\n" +"\n" +" foreach (var p in _peers)\n" +" {\n" +" p.Poll(); // Must poll to update the state.\n" +" if (p.GetStatus() == PacketPeerDtls.Status.Connected)\n" +" {\n" +" while (p.GetAvailablePacketCount() > 0)\n" +" {\n" +" GD.Print($\"Received Message From Client: {p.GetPacket()." +"GetStringFromUtf8()}\");\n" +" p.PutPacket(\"Hello DTLS Client\".ToUtf8Buffer());\n" +" }\n" +" }\n" +" }\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[codeblocks]\n" +"[gdscript]\n" +"# client_node.gd\n" +"extends Node\n" +"\n" +"var dtls := PacketPeerDTLS.new()\n" +"var udp := PacketPeerUDP.new()\n" +"var connected = false\n" +"\n" +"func _ready():\n" +" udp.connect_to_host(\"127.0.0.1\", 4242)\n" +" dtls.connect_to_peer(udp, false) # Use true in production for certificate " +"validation!\n" +"\n" +"func _process(delta):\n" +" dtls.poll()\n" +" if dtls.get_status() == PacketPeerDTLS.STATUS_CONNECTED:\n" +" if !connected:\n" +" # Try to contact server\n" +" dtls.put_packet(\"The answer is... 42!\".to_utf8_buffer())\n" +" while dtls.get_available_packet_count() > 0:\n" +" print(\"Connected: %s\" % dtls.get_packet()." +"get_string_from_utf8())\n" +" connected = true\n" +"[/gdscript]\n" +"[csharp]\n" +"// ClientNode.cs\n" +"using Godot;\n" +"using System.Text;\n" +"\n" +"public partial class ClientNode : Node\n" +"{\n" +" private PacketPeerDtls _dtls = new PacketPeerDtls();\n" +" private PacketPeerUdp _udp = new PacketPeerUdp();\n" +" private bool _connected = false;\n" +"\n" +" public override void _Ready()\n" +" {\n" +" _udp.ConnectToHost(\"127.0.0.1\", 4242);\n" +" _dtls.ConnectToPeer(_udp, validateCerts: false); // Use true in " +"production for certificate validation!\n" +" }\n" +"\n" +" public override void _Process(double delta)\n" +" {\n" +" _dtls.Poll();\n" +" if (_dtls.GetStatus() == PacketPeerDtls.Status.Connected)\n" +" {\n" +" if (!_connected)\n" +" {\n" +" // Try to contact server\n" +" _dtls.PutPacket(\"The Answer Is..42!\".ToUtf8Buffer());\n" +" }\n" +" while (_dtls.GetAvailablePacketCount() > 0)\n" +" {\n" +" GD.Print($\"Connected: {_dtls.GetPacket()." +"GetStringFromUtf8()}\");\n" +" _connected = true;\n" +" }\n" +" }\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" msgid "" "Setup the DTLS server to use the given [param server_options]. See [method " @@ -36590,28 +46423,32 @@ msgid "" "[b]Note:[/b] This class shouldn't be instantiated directly. Instead, access " "the singleton using [method EditorInterface.get_command_palette]." msgstr "" -"Об'єкт, який містить всі доступні команди та їх скорочень текст. Ці команди " -"можна отримати за допомогою меню [b]Редагор> командний палець[/b].\n" -"Командні ключові імена використовують глухі змішувачі для розрізнення " -"розділів, наприклад: [code]\"example/command1\"[/code] потім [code]example[/" -"code] буде назва розділу.\n" -"[блоки коду]\n" -"[видання]\n" -"var name_palette= EditorInterface.get_command_palette()\n" -"# зовнішнім_command є функцією, яка буде називатися з командуванням.\n" -"var command_callable = Вимкнено(само, \"external_command\").bind(arguments)\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"[/gdscript]\n" -"[csharp]\n" +"Об’єкт, який містить усі доступні команди та текст їх ярликів. Доступ до цих " +"команд можна отримати через меню [b]Редактор > Палітра команд[/b]. \n" +"Для розрізнення розділів у іменах ключів команд використовуються роздільники " +"похилої риски, наприклад: [code]\"приклад/команда1\"[/code], тоді " +"[code]приклад[/code] буде назвою розділу. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var command_palette = EditorInterface.get_command_palette() \n" +"# external_command — це функція, яка буде викликана під час виконання " +"команди. \n" +"var command_callable = Callable(self, \"external_command\") ." +"bind(arguments) \n" +"command_palette.add_command(\"command\", \"test/command\",command_callable) \n" +"[/gdscript] \n" +"[csharp] \n" "EditorCommandPalette commandPalette = EditorInterface.Singleton." -"GetCommandPalette();\n" -"// ЗовнішніCommand – функція, яка буде називатися з командуванням.\n" -"Callable teamCallable = новий Callable(this, MethodName.ExternalCommand);\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"[/csharp]\n" -"[/codeblocks]\n" -"[b]Note:[/b] Цей клас не повинен бути миттєвим. Замість, доступ до Єдиного " -"редактора [method EditorInterface.get_command_palette]." +"GetCommandPalette(); \n" +"// ExternalCommand – це функція, яка буде викликана під час виконання " +"команди. \n" +"Callable commandCallable = new Callable(this, MethodName.ExternalCommand); \n" +"commandPalette.AddCommand(\"команда\", \"тест/команда\", commandCallable) \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка: [/b] Цей клас не слід створювати безпосередньо. Натомість " +"отримайте доступ до синглтона за допомогою [метод EditorInterface." +"get_command_palette]." msgid "" "Adds a custom command to EditorCommandPalette.\n" @@ -36641,9 +46478,364 @@ msgstr "" "Видалити користувацьку команду від EditorCommandPalette.\n" "- [param key_name]: [String] (Ім'я ключа для конкретного [b]Command[/b].)" +msgid "Plugin for adding custom context menus in the editor." +msgstr "Плагін для додавання власних контекстних меню в редакторі." + +msgid "" +"[EditorContextMenuPlugin] allows for the addition of custom options in the " +"editor's context menu.\n" +"Currently, context menus are supported for three commonly used areas: the " +"file system, scene tree, and editor script list panel." +msgstr "" +"[EditorContextMenuPlugin] дозволяє додавати спеціальні параметри в контекстне " +"меню редактора.\n" +"Наразі контекстні меню підтримуються для трьох часто використовуваних " +"областей: файлової системи, дерева сцен і панелі списку сценаріїв редактора." + +msgid "" +"Called when creating a context menu, custom options can be added by using the " +"[method add_context_menu_item] or [method " +"add_context_menu_item_from_shortcut] functions. [param paths] contains " +"currently selected paths (depending on menu), which can be used to " +"conditionally add options." +msgstr "" +"Спеціальні параметри, що викликаються під час створення контекстного меню, " +"можна додати за допомогою функцій [method add_context_menu_item] або [method " +"add_context_menu_item_from_shortcut]. [param paths] містить поточні вибрані " +"шляхи (залежно від меню), які можна використовувати для умовного додавання " +"параметрів." + +msgid "" +"Add custom option to the context menu of the plugin's specified slot. When " +"the option is activated, [param callback] will be called. Callback should " +"take single [Array] argument; array contents depend on context menu slot.\n" +"[codeblock]\n" +"func _popup_menu(paths):\n" +" add_context_menu_item(\"File Custom options\", handle, ICON)\n" +"[/codeblock]\n" +"If you want to assign shortcut to the menu item, use [method " +"add_context_menu_item_from_shortcut] instead." +msgstr "" +"Додайте спеціальний параметр до контекстного меню зазначеного слота плагіна. " +"Коли опцію активовано, буде викликано [param callback]. Зворотний виклик " +"повинен приймати один аргумент [Array]; вміст масиву залежить від слота " +"контекстного меню. \n" +"[codeblock] \n" +"func _popup_menu(path): \n" +" add_context_menu_item(\"File Custom options\", handle, ICON) \n" +"[/codeblock] \n" +"Якщо ви хочете призначити ярлик для пункту меню, замість цього використовуйте " +"[method add_context_menu_item_from_shortcut]." + +msgid "" +"Add custom option to the context menu of the plugin's specified slot. The " +"option will have the [param shortcut] assigned and reuse its callback. The " +"shortcut has to be registered beforehand with [method add_menu_shortcut].\n" +"[codeblock]\n" +"func _init():\n" +" add_menu_shortcut(SHORTCUT, handle)\n" +"\n" +"func _popup_menu(paths):\n" +" add_context_menu_item_from_shortcut(\"File Custom options\", SHORTCUT, " +"ICON)\n" +"[/codeblock]" +msgstr "" +"Додайте спеціальну опцію в контекстне меню зазначеного слота плагіна. " +"Параметру буде призначено [ярлик параметрів] і повторно використовуватиметься " +"зворотний виклик. Ярлик потрібно попередньо зареєструвати за допомогою " +"[методу add_menu_shortcut].\n" +"[codeblock]\n" +"func _init():\n" +" add_menu_shortcut(SHORTCUT, marker)\n" +"\n" +"func _popup_menu(paths):\n" +" add_context_menu_item_from_shortcut(\"File Custom options\", SHORTCUT, " +"ICON)\n" +"[/codeblock]" + +msgid "" +"Add a submenu to the context menu of the plugin's specified slot. The submenu " +"is not automatically handled, you need to connect to its signals yourself. " +"Also the submenu is freed on every popup, so provide a new [PopupMenu] every " +"time.\n" +"[codeblock]\n" +"func _popup_menu(paths):\n" +" var popup_menu = PopupMenu.new()\n" +" popup_menu.add_item(\"Blue\")\n" +" popup_menu.add_item(\"White\")\n" +" popup_menu.id_pressed.connect(_on_color_submenu_option)\n" +"\n" +" add_context_submenu_item(\"Set Node Color\", popup_menu)\n" +"[/codeblock]" +msgstr "" +"Додайте підменю до контекстного меню зазначеного слота плагіна. Підменю не " +"обробляється автоматично, вам потрібно самостійно підключитися до його " +"сигналів. Крім того, підменю звільняється при кожному спливаючому вікні, тому " +"створюйте нове [PopupMenu] щоразу.\n" +"[codeblock]\n" +"func _popup_menu(paths):\n" +" var popup_menu = PopupMenu.new()\n" +" popup_menu.add_item(\"Blue\")\n" +" popup_menu.add_item(\"While\")\n" +" popup_menu.id_pressed.connect(_on_color_submenu_option)\n" +"\n" +" add_context_submenu_item(\"Set Node Color node\", popup_menu)\n" +"[/codeblock]" + +msgid "" +"Registers a shortcut associated with the plugin's context menu. This method " +"should be called once (e.g. in plugin's [method Object._init]). [param " +"callback] will be called when user presses the specified [param shortcut] " +"while the menu's context is in effect (e.g. FileSystem dock is focused). " +"Callback should take single [Array] argument; array contents depend on " +"context menu slot.\n" +"[codeblock]\n" +"func _init():\n" +" add_menu_shortcut(SHORTCUT, handle)\n" +"[/codeblock]" +msgstr "" +"Реєструє ярлик, пов’язаний із контекстним меню плагіна. Цей метод слід " +"викликати один раз (наприклад, у плагіні [method Object._init]). [param " +"callback] буде викликано, коли користувач натискає вказаний [param shortcut] " +"під час дії контексту меню (наприклад, у фокусі док-станція FileSystem). " +"Зворотний виклик повинен приймати один аргумент [Array]; вміст масиву " +"залежить від слота контекстного меню.\n" +"[codeblock]\n" +"func _init():\n" +" add_menu_shortcut(SHORTCUT, marker)\n" +"[/codeblock]" + +msgid "" +"Context menu of Scene dock. [method _popup_menu] will be called with a list " +"of paths to currently selected nodes, while option callback will receive the " +"list of currently selected nodes." +msgstr "" +"Контекстне меню док-станції Scene. Буде викликано [method _popup_menu] зі " +"списком шляхів до поточних вибраних вузлів, тоді як зворотний виклик опції " +"отримає список поточних вибраних вузлів." + +msgid "" +"Context menu of FileSystem dock. [method _popup_menu] and option callback " +"will be called with list of paths of the currently selected files." +msgstr "" +"Контекстне меню док-станції FileSystem. Буде викликано [метод _popup_menu] і " +"опцію зворотного виклику зі списком шляхів до поточних вибраних файлів." + +msgid "" +"Context menu of Script editor's script tabs. [method _popup_menu] will be " +"called with the path to the currently edited script, while option callback " +"will receive reference to that script." +msgstr "" +"Контекстне меню вкладок сценаріїв редактора сценаріїв. Буде викликано [method " +"_popup_menu] із шляхом до поточного редагованого сценарію, тоді як зворотний " +"виклик опції отримає посилання на цей сценарій." + +msgid "" +"The \"Create...\" submenu of FileSystem dock's context menu. [method " +"_popup_menu] and option callback will be called with list of paths of the " +"currently selected files." +msgstr "" +"Підменю «Створити...» контекстного меню док-станції FileSystem. Буде " +"викликано [метод _popup_menu] і опцію зворотного виклику зі списком шляхів до " +"поточних вибраних файлів." + +msgid "" +"Context menu of Script editor's code editor. [method _popup_menu] will be " +"called with the path to the [CodeEdit] node. You can fetch it using this " +"code:\n" +"[codeblock]\n" +"func _popup_menu(paths):\n" +" var code_edit = Engine.get_main_loop().root.get_node(paths[0]);\n" +"[/codeblock]\n" +"The option callback will receive reference to that node. You can use " +"[CodeEdit] methods to perform symbol lookups etc." +msgstr "" +"Контекстне меню редактора коду редактора скриптів Script Editor. Буде " +"викликано [метод _popup_menu] із шляхом до вузла [CodeEdit]. Ви можете " +"отримати його за допомогою цього коду:\n" +"[codeblock]\n" +"func _popup_menu(paths):\n" +" var code_edit = Engine.get_main_loop().root.get_node(paths[0]);\n" +"[/codeblock]\n" +"Зворотний виклик опції отримає посилання на цей вузол. Ви можете " +"використовувати методи [CodeEdit] для пошуку символів тощо." + +msgid "" +"Context menu of scene tabs. [method _popup_menu] will be called with the path " +"of the clicked scene, or empty [PackedStringArray] if the menu was opened on " +"empty space. The option callback will receive the path of the clicked scene, " +"or empty [String] if none was clicked." +msgstr "" +"Контекстне меню вкладок сцени. [метод _popup_menu] буде викликано з шляхом до " +"клацнутої сцени, або порожнім [PackedStringArray], якщо меню було відкрито на " +"порожньому місці. Зворотний виклик опції отримає шлях до клацнутої сцени або " +"порожній [String], якщо не було клацання." + +msgid "" +"Context menu of 2D editor's basic right-click menu. [method _popup_menu] will " +"be called with paths to all [CanvasItem] nodes under the cursor. You can " +"fetch them using this code:\n" +"[codeblock]\n" +"func _popup_menu(paths):\n" +" var canvas_item = Engine.get_main_loop().root.get_node(paths[0]); # " +"Replace 0 with the desired index.\n" +"[/codeblock]\n" +"The paths array is empty if there weren't any nodes under cursor. The option " +"callback will receive a typed array of [CanvasItem] nodes." +msgstr "" +"Контекстне меню основного контекстного меню правої кнопки миші 2D-редактора. " +"Буде викликано [метод _popup_menu] зі шляхами до всіх вузлів [CanvasItem] під " +"курсором. Ви можете отримати їх за допомогою цього коду:\n" +"[codeblock]\n" +"func _popup_menu(paths):\n" +" var canvas_item = Engine.get_main_loop().root.get_node(paths[0]); # " +"Замініть 0 на потрібний індекс.\n" +"[/codeblock]\n" +"Масив paths порожній, якщо під курсором не було жодної вершини. Зворотний " +"виклик опції отримає типізований масив вузлів [CanvasItem]." + msgid "A base class to implement debugger plugins." msgstr "Базовий клас для реалізації плагінів debugger." +msgid "" +"[EditorDebuggerPlugin] provides functions related to the editor side of the " +"debugger.\n" +"To interact with the debugger, an instance of this class must be added to the " +"editor via [method EditorPlugin.add_debugger_plugin].\n" +"Once added, the [method _setup_session] callback will be called for every " +"[EditorDebuggerSession] available to the plugin, and when new ones are " +"created (the sessions may be inactive during this stage).\n" +"You can retrieve the available [EditorDebuggerSession]s via [method " +"get_sessions] or get a specific one via [method get_session].\n" +"[codeblocks]\n" +"[gdscript]\n" +"@tool\n" +"extends EditorPlugin\n" +"\n" +"class ExampleEditorDebugger extends EditorDebuggerPlugin:\n" +"\n" +" func _has_capture(capture):\n" +" # Return true if you wish to handle messages with the prefix " +"\"my_plugin:\".\n" +" return capture == \"my_plugin\"\n" +"\n" +" func _capture(message, data, session_id):\n" +" if message == \"my_plugin:ping\":\n" +" get_session(session_id).send_message(\"my_plugin:echo\", data)\n" +" return true\n" +" return false\n" +"\n" +" func _setup_session(session_id):\n" +" # Add a new tab in the debugger session UI containing a label.\n" +" var label = Label.new()\n" +" label.name = \"Example plugin\" # Will be used as the tab title.\n" +" label.text = \"Example plugin\"\n" +" var session = get_session(session_id)\n" +" # Listens to the session started and stopped signals.\n" +" session.started.connect(func (): print(\"Session started\"))\n" +" session.stopped.connect(func (): print(\"Session stopped\"))\n" +" session.add_session_tab(label)\n" +"\n" +"var debugger = ExampleEditorDebugger.new()\n" +"\n" +"func _enter_tree():\n" +" add_debugger_plugin(debugger)\n" +"\n" +"func _exit_tree():\n" +" remove_debugger_plugin(debugger)\n" +"[/gdscript]\n" +"[/codeblocks]\n" +"To connect on the running game side, use the [EngineDebugger] singleton:\n" +"[codeblocks]\n" +"[gdscript]\n" +"extends Node\n" +"\n" +"func _ready():\n" +" EngineDebugger.register_message_capture(\"my_plugin\", _capture)\n" +" EngineDebugger.send_message(\"my_plugin:ping\", [\"test\"])\n" +"\n" +"func _capture(message, data):\n" +" # Note that the \"my_plugin:\" prefix is not used here.\n" +" if message == \"echo\":\n" +" prints(\"Echo received:\", data)\n" +" return true\n" +" return false\n" +"[/gdscript]\n" +"[/codeblocks]\n" +"[b]Note:[/b] While the game is running, [method @GlobalScope.print] and " +"similar functions [i]called in the editor[/i] do not print anything, the " +"Output Log prints only game messages." +msgstr "" +"[EditorDebuggerPlugin] надає функції, пов’язані з редактором налагоджувача. \n" +"Щоб взаємодіяти з налагоджувачем, екземпляр цього класу потрібно додати до " +"редактора за допомогою [методу EditorPlugin.add_debugger_plugin]. \n" +"Після додавання зворотний виклик [method _setup_session] буде викликатися для " +"кожного [EditorDebuggerSession], доступного для плагіна, а також під час " +"створення нових (сеанси можуть бути неактивними на цьому етапі). \n" +"Ви можете отримати доступні [EditorDebuggerSession] за допомогою [метод " +"get_session] або отримати певний за допомогою [метод get_session]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"@інструмент \n" +"extends EditorPlugin \n" +"\n" +"class ExampleEditorDebugger extends EditorDebuggerPlugin: \n" +"\n" +" func _has_capture(capture): \n" +" # Повертає true, якщо ви бажаєте обробляти повідомлення з префіксом " +"\"my_plugin:\". \n" +" return capture == \"my_plugin\" \n" +"\n" +" func _capture(message, data, session_id): \n" +" if message == \"my_plugin:ping\": \n" +" get_session(session_id).send_message(\"my_plugin:echo\", data) \n" +" return true \n" +" return false \n" +"\n" +" func _setup_session(session_id): \n" +" # Додайте нову вкладку в інтерфейс сеансу налагоджувача, що містить " +"мітку. \n" +" var label = Label.new() \n" +" label.name = \"Example plugin\" # Буде використано як заголовок " +"вкладки. \n" +" label.text = \"Example plugin\" \n" +" var session = get_session(session_id) \n" +" # Прослуховує сигнали про початок і зупинку сеансу. \n" +" session.started.connect(func (): print(\"Session started\")) \n" +" session.stopped.connect(func (): print(\"Session stopped\")) \n" +" session.add_session_tab(label) \n" +"\n" +"var debugger = ExampleEditorDebugger.new() \n" +"\n" +"func _enter_tree(): \n" +" add_debugger_plugin(debugger) \n" +"\n" +"func _exit_tree(): \n" +" remove_debugger_plugin(debugger) \n" +"[/gdscript] \n" +"[/codeblocks] \n" +"Щоб підключитися на стороні запущеної гри, використовуйте синглет " +"[EngineDebugger]: \n" +"[codeblocks] \n" +"[gdscript] \n" +"extends Node \n" +"\n" +"func _ready(): \n" +" EngineDebugger.register_message_capture(\"my_plugin\", _capture) \n" +" EngineDebugger.send_message(\"my_plugin:ping\", [\"test\"]) \n" +"\n" +"func _capture(message, data): \n" +" # Зверніть увагу, що префікс \"my_plugin:\" тут не використовується. \n" +" if message == \"echo\": \n" +" prints(\"Ехо отримано:\", дані) \n" +" return true \n" +" return false \n" +"[/gdscript] \n" +"[/codeblocks] \n" +"[b]Примітка: [/b] Під час роботи гри [метод @GlobalScope.print] і подібні " +"функції, [i]викликані в редакторі[/i] нічого не друкують, вихідний журнал " +"друкує лише повідомлення гри." + msgid "" "Override this method to be notified when a breakpoint is set in the editor." msgstr "" @@ -36657,6 +46849,18 @@ msgstr "" "Зазначте цей метод, який буде повідомлено, коли всі точки прориву очищаються " "в редакторі." +msgid "" +"Override this method to process incoming messages. The [param session_id] is " +"the ID of the [EditorDebuggerSession] that received the [param message]. Use " +"[method get_session] to retrieve the session. This method should return " +"[code]true[/code] if the message is recognized." +msgstr "" +"Перевизначте цей метод для обробки вхідних повідомлень. Параметр [param " +"session_id] є ідентифікатором сеансу [EditorDebuggerSession], який отримав " +"повідомлення [param message]. Використовуйте [метод get_session] для " +"отримання сеансу. Цей метод має повернути [code]true[/code], якщо " +"повідомлення розпізнано." + msgid "" "Override this method to be notified when a breakpoint line has been clicked " "in the debugger breakpoint panel." @@ -36664,6 +46868,24 @@ msgstr "" "Зазначте цей метод, який буде повідомлено при натисканні лінії розбиття на " "панелі розбиття." +msgid "" +"Override this method to enable receiving messages from the debugger. If " +"[param capture] is \"my_message\" then messages starting with \"my_message:\" " +"will be passed to the [method _capture] method." +msgstr "" +"Перевизначте цей метод, щоб увімкнути отримання повідомлень від " +"налагоджувача. Якщо [param capture] має значення \"my_message\", тоді " +"повідомлення, що починаються з \"my_message:\", будуть передані в метод " +"[method _capture]." + +msgid "" +"Override this method to be notified whenever a new [EditorDebuggerSession] is " +"created. Note that the session may be inactive during this stage." +msgstr "" +"Перевизначте цей метод, щоб отримувати сповіщення щоразу, коли створюється " +"новий [EditorDebuggerSession]. Зауважте, що на цьому етапі сеанс може бути " +"неактивним." + msgid "Returns the [EditorDebuggerSession] with the given [param id]." msgstr "Повертаємо [РедагорДебугерСезій] з заданим [парам id]." @@ -36693,6 +46915,14 @@ msgstr "" "надсилати повідомлення через [метод відправки повідомлень], а також " "переключити [EngineProfiler] через [метод toggle_profiler]." +msgid "" +"Adds the given [param control] to the debug session UI in the debugger bottom " +"panel. The [param control]'s node name will be used as the tab title." +msgstr "" +"Додає заданий [параметр керування] до інтерфейсу користувача сеансу " +"налагодження на нижній панелі налагоджувача. Ім’я вузла [param control] " +"використовуватиметься як заголовок вкладки." + msgid "" "Returns [code]true[/code] if the debug session is currently attached to a " "remote instance." @@ -36801,6 +47031,141 @@ msgstr "" msgid "Console support in Godot" msgstr "Консольний супровід в Godot" +msgid "" +"Adds a message to the export log that will be displayed when exporting ends." +msgstr "" +"Додає повідомлення до журналу експорту, яке відображатиметься після " +"завершення експорту." + +msgid "Clears the export log." +msgstr "Очищає журнал експорту." + +msgid "Create a new preset for this platform." +msgstr "Створіть новий стиль для цієї платформи." + +msgid "Creates a PCK archive at [param path] for the specified [param preset]." +msgstr "Створює архів PCK за адресою [param path] для вказаного [param preset]." + +msgid "" +"Creates a patch PCK archive at [param path] for the specified [param preset], " +"containing only the files that have changed since the last patch.\n" +"[b]Note:[/b] [param patches] is an optional override of the set of patches " +"defined in the export preset. When empty the patches defined in the export " +"preset will be used instead." +msgstr "" +"Створює архів патчів PCK за адресою [param path] для вказаного [param " +"preset], що містить лише ті файли, які було змінено з часу останнього патчу.\n" +"[b]Примітка:[/b] [param patches] є необов'язковим параметром для заміни " +"набору патчів, визначеного у пресеті експорту. Якщо параметр порожній, " +"замість нього буде використано патчі, визначені у попередньому налаштуванні " +"експорту." + +msgid "Creates a full project at [param path] for the specified [param preset]." +msgstr "Створює повний проект на [param path] для вказаного [param preset]." + +msgid "" +"Exports project files for the specified preset. This method can be used to " +"implement custom export format, other than PCK and ZIP. One of the callbacks " +"is called for each exported file.\n" +"[param save_cb] is called for all exported files and have the following " +"arguments: [code]file_path: String[/code], [code]file_data: PackedByteArray[/" +"code], [code]file_index: int[/code], [code]file_count: int[/code], " +"[code]encryption_include_filters: PackedStringArray[/code], " +"[code]encryption_exclude_filters: PackedStringArray[/code], " +"[code]encryption_key: PackedByteArray[/code].\n" +"[param shared_cb] is called for exported native shared/static libraries and " +"have the following arguments: [code]file_path: String[/code], [code]tags: " +"PackedStringArray[/code], [code]target_folder: String[/code].\n" +"[b]Note:[/b] [code]file_index[/code] and [code]file_count[/code] are intended " +"for progress tracking only and aren't necessarily unique and precise." +msgstr "" +"Експортує файли проекту для вказаного пресету. Цей метод може бути " +"використаний для реалізації користувацького формату експорту, відмінного від " +"PCK та ZIP. Для кожного експортованого файлу викликається один з методів " +"зворотного виклику.\n" +"[param save_cb] викликається для всіх експортованих файлів і має наступні " +"аргументи: [code]шлях до файлу: Рядок[/code], [code]file_data: " +"PackedByteArray[/code], [code]file_index: int[/code], [code]file_count: int[/" +"code], [code]encryption_include_filters: PackedStringArray[/code], " +"[code]encryption_exclude_filters: PackedStringArray[/code], " +"[code]encryption_key: PackedByteArray[/code].\n" +"[param shared_cb] викликається для експортованих нативних спільних/статичних " +"бібліотек і має наступні аргументи: [code]шлях до файлу: String[/code], " +"[code]tags: PackedStringArray[/code], [code]target_folder: String[/code].\n" +"[b]Примітка:[/b] [code]file_index[/code] і [code]file_count[/code] призначені " +"лише для відстеження прогресу і не обов'язково повинні бути унікальними і " +"точними." + +msgid "Create a ZIP archive at [param path] for the specified [param preset]." +msgstr "" +"Створіть ZIP-архів за адресою [param path] для вказаного [param preset]." + +msgid "" +"Create a patch ZIP archive at [param path] for the specified [param preset], " +"containing only the files that have changed since the last patch.\n" +"[b]Note:[/b] [param patches] is an optional override of the set of patches " +"defined in the export preset. When empty the patches defined in the export " +"preset will be used instead." +msgstr "" +"Створити ZIP-архів патчів за адресою [param path] для вказаного [param " +"preset], що містить лише файли, які було змінено з часу останнього патчу.\n" +"[b]Примітка:[/b] [param patches] є необов'язковим для перевизначення набору " +"патчів, визначеного у пресеті експорту. Якщо параметр порожній, замість нього " +"буде використано патчі, визначені у попередньому налаштуванні експорту." + +msgid "" +"Locates export template for the platform, and returns [Dictionary] with the " +"following keys: [code]path: String[/code] and [code]error: String[/code]. " +"This method is provided for convenience and custom export platforms aren't " +"required to use it or keep export templates stored in the same way official " +"templates are." +msgstr "" +"Знаходить шаблон експорту для платформи і повертає [Словник] з наступними " +"ключами: [code]шлях: Рядок[/code] та [code]error: String[/code]. Цей метод " +"надано для зручності, і користувацькі платформи експорту не зобов'язані " +"використовувати його або зберігати шаблони експорту так само, як офіційні " +"шаблони." + +msgid "" +"Generates array of command line arguments for the default export templates " +"for the debug flags and editor settings." +msgstr "" +"Створює масив аргументів командного рядка для стандартних шаблонів експорту " +"для позначок налагодження та налаштувань редактора." + +msgid "Returns array of [EditorExportPreset]s for this platform." +msgstr "Повертає масив [EditorExportPreset] для цієї платформи." + +msgid "" +"Returns array of core file names that always should be exported regardless of " +"preset config." +msgstr "" +"Повертає масив імен основних файлів, які завжди слід експортувати незалежно " +"від попередньо встановленої конфігурації." + +msgid "" +"Returns additional files that should always be exported regardless of preset " +"configuration, and are not part of the project source. The returned " +"[Dictionary] contains filename keys ([String]) and their corresponding raw " +"data ([PackedByteArray])." +msgstr "" +"Повертає додаткові файли, які завжди слід експортувати незалежно від " +"попередньо встановленої конфігурації, і які не є частиною вихідних даних " +"проекту. Повернутий [Словник] містить ключі назв файлів ([String]) та " +"відповідні їм вихідні дані ([PackedByteArray])." + +msgid "Returns message category, for the message with [param index]." +msgstr "Повертає категорію повідомлення для повідомлення з [param index]." + +msgid "Returns number of messages in the export log." +msgstr "Повертає кількість повідомлень у журналі експорту." + +msgid "Returns message text, for the message with [param index]." +msgstr "Повертає текст повідомлення для повідомлення з [param index]." + +msgid "Returns message type, for the message with [param index]." +msgstr "Повертає тип повідомлення для повідомлення з [param index]." + msgid "" "Returns the name of the export operating system handled by this " "[EditorExportPlatform] class, as a friendly string. Possible return values " @@ -36812,6 +47177,160 @@ msgstr "" "[code]Windows[/code], [code]Linux[/code], [code]macOS[/code], [code]Android[/" "code], [code]iOS[/code], і [code]Web[/code]." +msgid "Returns most severe message type currently present in the export log." +msgstr "Повертає найсерйозніший тип повідомлення, наявний у журналі експорту." + +msgid "" +"Saves PCK archive and returns [Dictionary] with the following keys: " +"[code]result: Error[/code], [code]so_files: Array[/code] (array of the shared/" +"static objects which contains dictionaries with the following keys: " +"[code]path: String[/code], [code]tags: PackedStringArray[/code], and " +"[code]target_folder: String[/code]).\n" +"If [param embed] is [code]true[/code], PCK content is appended to the end of " +"[param path] file and return [Dictionary] additionally include following " +"keys: [code]embedded_start: int[/code] (embedded PCK offset) and " +"[code]embedded_size: int[/code] (embedded PCK size)." +msgstr "" +"Зберігає архів PCK і повертає [Dictionary] з наступними ключами: " +"[code]result: Error[/code], [code]so_files: Array[/code] (масив спільних/" +"статичних об'єктів, який містить словники з такими ключами: [code]path: " +"String[/code], [code]tags: PackedStringArray[/code] та [code]target_folder: " +"String[/code]).\n" +"Якщо [param embed] має значення [code]true[/code], вміст PCK додається у " +"кінець файлу [param path] і повертається [Dictionary], який додатково містить " +"такі ключі: [code]embedded_start: int[/code] (вбудований зсув PCK) та " +"[code]embedded_size: int[/code] (вбудований розмір PCK)." + +msgid "" +"Saves patch PCK archive and returns [Dictionary] with the following keys: " +"[code]result: Error[/code], [code]so_files: Array[/code] (array of the shared/" +"static objects which contains dictionaries with the following keys: " +"[code]path: String[/code], [code]tags: PackedStringArray[/code], and " +"[code]target_folder: String[/code])." +msgstr "" +"Зберігає архів патчів PCK і повертає [Dictionary] з наступними ключами: " +"[code]result: Error[/code], [code]so_files: Array[/code] (масив спільних/" +"статичних об'єктів, який містить словники з такими ключами: [code]path: " +"String[/code], [code]tags: PackedStringArray[/code] та [code]target_folder: " +"String[/code])." + +msgid "" +"Saves ZIP archive and returns [Dictionary] with the following keys: " +"[code]result: Error[/code], [code]so_files: Array[/code] (array of the shared/" +"static objects which contains dictionaries with the following keys: " +"[code]path: String[/code], [code]tags: PackedStringArray[/code], and " +"[code]target_folder: String[/code])." +msgstr "" +"Зберігає ZIP-архів і повертає [Словник] з наступними ключами: [code]result: " +"Error[/code], [code]so_files: Array[/code] (масив спільних/статичних " +"об'єктів, який містить словники з такими ключами: [code]path: String[/code], " +"[code]tags: PackedStringArray[/code] та [code]target_folder: String[/code])." + +msgid "" +"Saves patch ZIP archive and returns [Dictionary] with the following keys: " +"[code]result: Error[/code], [code]so_files: Array[/code] (array of the shared/" +"static objects which contains dictionaries with the following keys: " +"[code]path: String[/code], [code]tags: PackedStringArray[/code], and " +"[code]target_folder: String[/code])." +msgstr "" +"Зберігає ZIP-архів патчів і повертає [Словник] з наступними ключами: " +"[code]result: Error[/code], [code]so_files: Array[/code] (масив спільних/" +"статичних об'єктів, який містить словники з такими ключами: [code]path: " +"String[/code], [code]tags: PackedStringArray[/code] та [code]target_folder: " +"String[/code])." + +msgid "Uploads specified file over SCP protocol to the remote host." +msgstr "Завантажує вказаний файл через протокол SCP на віддалений хост." + +msgid "" +"Executes specified command on the remote host via SSH protocol and returns " +"command output in the [param output]." +msgstr "" +"Виконує вказану команду на віддаленому хості через протокол SSH і повертає " +"вихідні дані команди в [param output]." + +msgid "" +"Executes specified command on the remote host via SSH protocol and returns " +"process ID (on the remote host) without waiting for command to finish." +msgstr "" +"Виконує вказану команду на віддаленому хості через протокол SSH і повертає " +"ідентифікатор процесу (на віддаленому хості), не чекаючи завершення команди." + +msgid "" +"Invalid message type used as the default value when no type is specified." +msgstr "" +"Недійсний тип повідомлення використовується як значення за умовчанням, якщо " +"тип не вказано." + +msgid "" +"Message type for informational messages that have no effect on the export." +msgstr "" +"Тип повідомлення для інформаційних повідомлень, які не впливають на експорт." + +msgid "" +"Message type for warning messages that should be addressed but still allow to " +"complete the export." +msgstr "" +"Тип повідомлення для попереджувальних повідомлень, які слід розглянути, але " +"все одно дозволяють завершити експорт." + +msgid "" +"Message type for error messages that must be addressed and fail the export." +msgstr "" +"Тип повідомлення для повідомлень про помилку, які потрібно вирішити та не " +"експортувати." + +msgid "" +"Flag is set if remotely debugged project is expected to use remote file " +"system. If set, [method gen_export_flags] will add [code]--remote-fs[/code] " +"and [code]--remote-fs-password[/code] (if password is set in the editor " +"settings) command line arguments to the list." +msgstr "" +"Прапорець встановлюється, якщо віддалено налагоджений проект передбачає " +"використання віддаленої файлової системи. Якщо встановлено, [method " +"gen_export_flags] додасть до списку аргументи командного рядка [code]--remote-" +"fs[/code] і [code]--remote-fs-password[/code] (якщо пароль установлено в " +"налаштуваннях редактора)." + +msgid "" +"Flag is set if remote debug is enabled. If set, [method gen_export_flags] " +"will add [code]--remote-debug[/code] and [code]--breakpoints[/code] (if " +"breakpoints are selected in the script editor or added by the plugin) command " +"line arguments to the list." +msgstr "" +"Прапор встановлено, якщо ввімкнено віддалене налагодження. Якщо встановлено, " +"[метод gen_export_flags] додасть аргументи командного рядка [code]--remote-" +"debug[/code] і [code]--breakpoints[/code] (якщо точки зупину вибрано в " +"редакторі сценаріїв або додано плагіном) до списку." + +msgid "" +"Flag is set if remotely debugged project is running on the localhost. If set, " +"[method gen_export_flags] will use [code]localhost[/code] instead of [member " +"EditorSettings.network/debug/remote_host] as remote debugger host." +msgstr "" +"Прапор встановлено, якщо віддалено налагоджений проект працює на локальному " +"хості. Якщо встановлено, [method gen_export_flags] використовуватиме " +"[code]localhost[/code] замість [member EditorSettings.network/debug/" +"remote_host] як віддалений хост налагоджувача." + +msgid "" +"Flag is set if \"Visible Collision Shapes\" remote debug option is enabled. " +"If set, [method gen_export_flags] will add [code]--debug-collisions[/code] " +"command line arguments to the list." +msgstr "" +"Прапор встановлено, якщо ввімкнено параметр віддаленого налагодження \"Видимі " +"форми зіткнень\". Якщо встановлено, [method gen_export_flags] додасть " +"аргументи командного рядка [code]--debug-collisions[/code] до списку." + +msgid "" +"Flag is set if Visible Navigation\" remote debug option is enabled. If set, " +"[method gen_export_flags] will add [code]--debug-navigation[/code] command " +"line arguments to the list." +msgstr "" +"Прапор встановлено, якщо ввімкнено параметр віддаленого налагодження " +"\"Visible Navigation\". Якщо встановлено, [method gen_export_flags] додасть " +"аргументи командного рядка [code]--debug-navigation[/code] до списку." + msgid "Exporter for Android." msgstr "Експортер для Android." @@ -36910,6 +47429,28 @@ msgstr "" "[b]Примітка:[/b] Це тільки використовується, якщо [пам'ятний " "редакторExportPlatformAndroid.gradle_build/use_gradle_build] вимкнено." +msgid "" +"If [code]true[/code], [url=https://developer.android.com/design/ui/wear/" +"guides/components/swipe-to-dismiss]Swipe to dismiss[/url] will be enabled.\n" +"This functionality is intended for smartwatches and is generally ignored on " +"standard Android devices. However, some devices may not ignore it. Therefore, " +"it is recommended to keep this feature disabled for standard Android apps to " +"avoid unexpected behavior.\n" +"[b]Note:[/b] This is [code]false[/code] by default. To enable this behavior, " +"[member EditorExportPlatformAndroid.gradle_build/use_gradle_build] is " +"required." +msgstr "" +"Якщо [code]true[/code], [url=https://developer.android.com/design/ui/wear/" +"guides/components/swipe-to-dismiss]Проведіть пальцем, щоб закрити[/url] буде " +"ввімкнено.\n" +"Ця функція призначена для розумних годинників і зазвичай ігнорується на " +"стандартних пристроях Android. Однак деякі пристрої не можуть його " +"ігнорувати. Тому рекомендується залишати цю функцію вимкненою для стандартних " +"програм Android, щоб уникнути неочікуваної поведінки.\n" +"[b]Примітка: [/b] За замовчуванням це [code]false[/code]. Щоб увімкнути цю " +"поведінку, потрібен [член EditorExportPlatformAndroid.gradle_build/" +"use_gradle_build]." + msgid "" "Path to a ZIP file holding the source for the export template used in a " "Gradle build. If left empty, the default template is used." @@ -37055,6 +47596,15 @@ msgstr "" "com/develop/ui/views/launch/icon_design_adaptive#design-adaptive-icons]Дизайн " "адаптивних іконок[/url]." +msgid "" +"Monochrome layer of the application adaptive icon file. See [url=https://" +"developer.android.com/develop/ui/views/launch/icon_design_adaptive#design-" +"adaptive-icons]Design adaptive icons[/url]." +msgstr "" +"Монохромний шар файлу адаптивної піктограми програми. Перегляньте " +"[url=https://developer.android.com/develop/ui/views/launch/" +"icon_design_adaptive#design-adaptive-icons]Дизайн адаптивних значків[/url]." + msgid "" "Application icon file. If left empty, it will fallback to [member " "ProjectSettings.application/config/icon]." @@ -37196,6 +47746,15 @@ msgstr "" "permission#ACCESS_LOCATION_EXTRA_COMMANDS]ACCESS_LOCATION_EXTRA_COMMANDS[/" "url]." +msgid "" +"Allows an application to access any geographic locations persisted in the " +"user's shared collection. See [url=https://developer.android.com/reference/" +"android/Manifest.permission#ACCESS_MEDIA_LOCATION]ACCESS_MEDIA_LOCATION[/url]." +msgstr "" +"Дозволяє програмі отримати доступ до точної інформації про розташування. " +"[url=https://developer.android.com/reference/android/Manifest." +"permission#ACCESS_FINE_LOCATION]ACCESS_FINE_LOCATION[/url]." + msgid "Allows an application to create mock location providers for testing." msgstr "Дозволяє програмі створювати локацію для тестування." @@ -37892,6 +48451,46 @@ msgstr "" "developer.android.com/reference/android/Manifest." "permission#READ_LOGS]READ_LOGS[/url]." +msgid "" +"Allows an application to read audio files from external storage. See " +"[url=https://developer.android.com/reference/android/Manifest." +"permission#READ_MEDIA_AUDIO]READ_MEDIA_AUDIO[/url]." +msgstr "" +"Дозволяє програмі читати з зовнішнього сховища. [url=https://developer." +"android.com/reference/android/Manifest." +"permission#READ_EXTERNAL_STORAGE]READ_EXTERNAL_STORAGE[/url]." + +msgid "" +"Allows an application to read image files from external storage. See " +"[url=https://developer.android.com/reference/android/Manifest." +"permission#READ_MEDIA_IMAGES]READ_MEDIA_IMAGES[/url]." +msgstr "" +"Дозволяє програмі читати зображення з зовнішнього сховища. Див. [url=https://" +"developer.android.com/reference/android/Manifest." +"permission#READ_MEDIA_IMAGES]READ_MEDIA_IMAGES[/url]." + +msgid "" +"Allows an application to read video files from external storage. See " +"[url=https://developer.android.com/reference/android/Manifest." +"permission#READ_MEDIA_VIDEO]READ_MEDIA_VIDEO[/url]." +msgstr "" +"Дозволяє програмі читати відеофайли з зовнішнього сховища. Див. [url=https://" +"developer.android.com/reference/android/Manifest." +"permission#READ_MEDIA_VIDEO]READ_MEDIA_VIDEO[/url]." + +msgid "" +"Allows an application to read image or video files from external storage that " +"a user has selected via the permission prompt photo picker. See [url=https://" +"developer.android.com/reference/android/Manifest." +"permission#READ_MEDIA_VISUAL_USER_SELECTED]READ_MEDIA_VISUAL_USER_SELECTED[/" +"url]." +msgstr "" +"Дозволяє програмі читати зображення або відеофайли з зовнішнього сховища, " +"доступ до яких дозволено користувачем за допомогою спеціального запиту. Див. " +"[url=https://developer.android.com/reference/android/Manifest." +"permission#READ_MEDIA_VISUAL_USER_SELECTED]READ_MEDIA_VISUAL_USER_SELECTED[/" +"url]." + msgid "" "Allows read only access to phone state. See [url=https://developer.android." "com/reference/android/Manifest.permission#READ_PHONE_STATE]READ_PHONE_STATE[/" @@ -38292,6 +48891,13 @@ msgstr "" msgid "Allows an application to write to the user dictionary." msgstr "Дозволяє програмі писати словнику користувача." +msgid "" +"If [code]true[/code], hides navigation and status bar. See [method " +"DisplayServer.window_set_mode] to toggle it at runtime." +msgstr "" +"Якщо [code]true[/code], приховує навігацію та статус бар. Див. [method " +"DisplayServer.window_set_mode] якщо хочете змінювати це налаштування на льоту." + msgid "Indicates whether the application supports larger screen form-factors." msgstr "Повідомляє, чи підтримує програма більших значень у форматі екрана." @@ -38329,6 +48935,406 @@ msgstr "" msgid "The extended reality (XR) mode for this application." msgstr "Режим розширеної реальності (XR) для цього додатка." +msgid "Base class for custom [EditorExportPlatform] implementations (plugins)." +msgstr "" +"Базовий клас для користувацьких імплементацій [EditorExportPlatform] " +"(плагінів)." + +msgid "" +"External [EditorExportPlatform] implementations should inherit from this " +"class.\n" +"To use [EditorExportPlatform], register it using the [method EditorPlugin." +"add_export_platform] method first." +msgstr "" +"Зовнішні реалізації [EditorExportPlatform] мають успадковувати цей клас.\n" +"Щоб використовувати [EditorExportPlatform], спочатку зареєструйте його за " +"допомогою методу [method EditorPlugin.add_export_platform]." + +msgid "" +"[b]Optional.[/b]\n" +"Returns [code]true[/code], if specified [param preset] is valid and can be " +"exported. Use [method set_config_error] and [method " +"set_config_missing_templates] to set error details.\n" +"Usual implementation can call [method _has_valid_export_configuration] and " +"[method _has_valid_project_configuration] to determine if export is possible." +msgstr "" +"[b]Необов'язково.[/b]\n" +"Повертає [code]true[/code], якщо вказано [param preset] дійсний і може бути " +"експортований. Використовуйте [method set_config_error] і [method " +"set_config_missing_templates], щоб установити деталі помилки.\n" +"Звичайна реалізація може викликати [method _has_valid_export_configuration] і " +"[method _has_valid_project_configuration], щоб визначити, чи можливий експорт." + +msgid "" +"[b]Optional.[/b]\n" +"Called by the editor before platform is unregistered." +msgstr "" +"[b]Необов'язково.[/b]\n" +"Викликається редактором перед скасуванням реєстрації платформи." + +msgid "" +"[b]Optional.[/b]\n" +"Creates a PCK archive at [param path] for the specified [param preset].\n" +"This method is called when \"Export PCK/ZIP\" button is pressed in the export " +"dialog, with \"Export as Patch\" disabled, and PCK is selected as a file type." +msgstr "" +"[b]Необов'язковий.[/b]\n" +"Створює PCK архів у [param path] для заданого [param preset].\n" +"Цей метод спрацьовує коли кнопку \"Export PCK/ZIP\" було натиснуто в діалозі " +"експорту, з вимкненим \"Export as Patch\", та типом файлу PCK." + +msgid "" +"[b]Optional.[/b]\n" +"Creates a patch PCK archive at [param path] for the specified [param preset], " +"containing only the files that have changed since the last patch.\n" +"This method is called when \"Export PCK/ZIP\" button is pressed in the export " +"dialog, with \"Export as Patch\" enabled, and PCK is selected as a file " +"type.\n" +"[b]Note:[/b] The patches provided in [param patches] have already been loaded " +"when this method is called and are merely provided as context. When empty the " +"patches defined in the export preset have been loaded instead." +msgstr "" +"[b]Необов'язково.[/b]\n" +"Створює архів PCK виправлення за адресою [param path] для вказаного [param " +"preset], що містить лише файли, які було змінено з часу останнього " +"виправлення.\n" +"Цей метод викликається, коли в діалоговому вікні експорту натиснуто кнопку " +"«Експортувати PCK/ZIP», увімкнувши «Експортувати як латку», а як тип файлу " +"вибрано PCK.\n" +"[b]Примітка:[/b] Патчі, надані в [param patches], уже завантажено під час " +"виклику цього методу та надаються лише як контекст. Якщо порожній, натомість " +"завантажено патчі, визначені в стилі експорту." + +msgid "" +"[b]Required.[/b]\n" +"Creates a full project at [param path] for the specified [param preset].\n" +"This method is called when \"Export\" button is pressed in the export " +"dialog.\n" +"This method implementation can call [method EditorExportPlatform.save_pack] " +"or [method EditorExportPlatform.save_zip] to use default PCK/ZIP export " +"process, or calls [method EditorExportPlatform.export_project_files] and " +"implement custom callback for processing each exported file." +msgstr "" +"[b]Обов'язково.[/b]\n" +"Створює повний проект на [param path] для вказаного [param preset].\n" +"Цей метод викликається, коли в діалоговому вікні експорту натиснуто кнопку " +"«Експортувати».\n" +"Ця реалізація методу може викликати [метод EditorExportPlatform.save_pack] " +"або [метод EditorExportPlatform.save_zip], щоб використовувати процес " +"експорту PCK/ZIP за замовчуванням, або викликати [метод EditorExportPlatform." +"export_project_files] і реалізувати власний зворотний виклик для обробки " +"кожного експортованого файлу." + +msgid "" +"[b]Optional.[/b]\n" +"Create a ZIP archive at [param path] for the specified [param preset].\n" +"This method is called when \"Export PCK/ZIP\" button is pressed in the export " +"dialog, with \"Export as Patch\" disabled, and ZIP is selected as a file type." +msgstr "" +"[b]Необов'язковий.[/b]\n" +"Створює ZIP архів у [param path] з заданим [param preset].\n" +"Цей метод спрацьовує коли кнопку \"Export PCK/ZIP\" натиснуто в діалозі " +"експорту, з вимкненим \"Export as Patch\", та типом файлу ZIP." + +msgid "" +"[b]Optional.[/b]\n" +"Create a ZIP archive at [param path] for the specified [param preset], " +"containing only the files that have changed since the last patch.\n" +"This method is called when \"Export PCK/ZIP\" button is pressed in the export " +"dialog, with \"Export as Patch\" enabled, and ZIP is selected as a file " +"type.\n" +"[b]Note:[/b] The patches provided in [param patches] have already been loaded " +"when this method is called and are merely provided as context. When empty the " +"patches defined in the export preset have been loaded instead." +msgstr "" +"[b]Необов'язково.[/b]\n" +"Створіть ZIP-архів за адресою [param path] для вказаного [param preset], який " +"містить лише файли, які були змінені після останнього виправлення.\n" +"Цей метод викликається, коли в діалоговому вікні експорту натиснуто кнопку " +"«Експортувати PCK/ZIP», увімкнувши «Експортувати як латку», а як тип файлу " +"вибрано ZIP.\n" +"[b]Примітка:[/b] Патчі, надані в [param patches], уже завантажено під час " +"виклику цього методу та надаються лише як контекст. Якщо порожній, натомість " +"завантажено патчі, визначені в стилі експорту." + +msgid "" +"[b]Required.[/b]\n" +"Returns array of supported binary extensions for the full project export." +msgstr "" +"[b]Обов'язковий.[/b]\n" +"Повертає масив підтримуваних розширень бінарних файлів для повного експорту " +"проекту." + +msgid "" +"[b]Optional.[/b]\n" +"Returns protocol used for remote debugging. Default implementation return " +"[code]tcp://[/code]." +msgstr "" +"[b]Необов'язковий.[/b]\n" +"Повертає протокол який використовуєтся для налагодження. Стандартна " +"імплементація повертає [code]tcp://[/code]." + +msgid "" +"[b]Optional.[/b]\n" +"Returns device architecture for one-click deploy." +msgstr "" +"[b]Необов'язковий.[/b]\n" +"Повертає архітектуру пристроїв для швидкого розгортання." + +msgid "" +"[b]Optional.[/b]\n" +"Validates [param option] and returns visibility for the specified [param " +"preset]. Default implementation return [code]true[/code] for all options." +msgstr "" +"[b]Необов'язково.[/b]\n" +"Перевіряє [param option] і повертає видимість для вказаного [param preset]. " +"Реалізація за умовчанням повертає [code]true[/code] для всіх параметрів." + +msgid "" +"[b]Optional.[/b]\n" +"Validates [param option] and returns warning message for the specified [param " +"preset]. Default implementation return empty string for all options." +msgstr "" +"[b]Необов'язково.[/b]\n" +"Перевіряє [param option] і повертає попереджувальне повідомлення для " +"вказаного [param preset]. Реалізація за замовчуванням повертає порожній рядок " +"для всіх параметрів." + +msgid "" +"[b]Optional.[/b]\n" +"Returns a property list, as an [Array] of dictionaries. Each [Dictionary] " +"must at least contain the [code]name: StringName[/code] and [code]type: " +"Variant.Type[/code] entries.\n" +"Additionally, the following keys are supported:\n" +"- [code]hint: PropertyHint[/code]\n" +"- [code]hint_string: String[/code]\n" +"- [code]usage: PropertyUsageFlags[/code]\n" +"- [code]class_name: StringName[/code]\n" +"- [code]default_value: Variant[/code], default value of the property.\n" +"- [code]update_visibility: bool[/code], if set to [code]true[/code], [method " +"_get_export_option_visibility] is called for each property when this property " +"is changed.\n" +"- [code]required: bool[/code], if set to [code]true[/code], this property " +"warnings are critical, and should be resolved to make export possible. This " +"value is a hint for the [method _has_valid_export_configuration] " +"implementation, and not used by the engine directly.\n" +"See also [method Object._get_property_list]." +msgstr "" +"[b]Необов'язково.[/b]\n" +"Повертає список властивостей у вигляді [масиву] словників. Кожен [Словник] " +"має принаймні містити записи [code]назва: StringName[/code] і [code]тип: " +"Variant.Type[/code].\n" +"Крім того, підтримуються наступні ключі:\n" +"- [code]підказка: PropertyHint[/code]\n" +"- [code]hint_string: Рядок[/code]\n" +"- [code]використання: PropertyUsageFlags[/код]\n" +"- [code]ім'я_класу: ім'я рядка[/code]\n" +"- [code]default_value: Варіант[/code], значення властивості за " +"замовчуванням.\n" +"- [code]update_visibility: bool[/code], якщо встановлено значення [code]true[/" +"code], [метод _get_export_option_visibility] викликається для кожної " +"властивості, коли ця властивість змінюється.\n" +"- [code]required: bool[/code], якщо встановлено значення [code]true[/code], " +"ці попередження властивості є критичними, і їх слід усунути, щоб зробити " +"експорт можливим. Це значення є підказкою для реалізації [method " +"_has_valid_export_configuration] і не використовується системою " +"безпосередньо.\n" +"Дивіться також [метод Object._get_property_list]." + +msgid "" +"[b]Required.[/b]\n" +"Returns platform logo displayed in the export dialog, logo should be 32x32 " +"adjusted to the current editor scale, see [method EditorInterface." +"get_editor_scale]." +msgstr "" +"[b]Обов'язковий.[/b]\n" +"Повертає логотип платформи, що відображається в діалоговому вікні експорту, " +"логотип має бути 32x32 та підлаштованим під поточний масштаб редактора, див. " +"[method EditorInterface.get_editor_scale]." + +msgid "" +"[b]Required.[/b]\n" +"Returns export platform name." +msgstr "" +"[b]Обов'язковий.[/b]\n" +"Повертає назву платформи для експорту." + +msgid "" +"[b]Optional.[/b]\n" +"Returns one-click deploy menu item icon for the specified [param device], " +"icon should be 16x16 adjusted to the current editor scale, see [method " +"EditorInterface.get_editor_scale]." +msgstr "" +"[b]Необов'язково.[/b]\n" +"Повертає піктограму пункту меню для розгортання одним клацанням миші для " +"вказаного [param device], піктограма має бути 16x16, налаштована відповідно " +"до поточного масштабу редактора, див. [метод EditorInterface." +"get_editor_scale]." + +msgid "" +"[b]Optional.[/b]\n" +"Returns one-click deploy menu item label for the specified [param device]." +msgstr "" +"[b]Необов'язково.[/b]\n" +"Повертає мітку пункту меню для розгортання одним клацанням миші для вказаного " +"[param device]." + +msgid "" +"[b]Optional.[/b]\n" +"Returns one-click deploy menu item tooltip for the specified [param device]." +msgstr "" +"[b]Необов'язково.[/b]\n" +"Повертає спливаючу підказку пункту меню розгортання одним клацанням миші для " +"вказаного [param device]." + +msgid "" +"[b]Optional.[/b]\n" +"Returns number one-click deploy devices (or other one-click option displayed " +"in the menu)." +msgstr "" +"[b]Необов'язково.[/b]\n" +"Повертає кількість пристроїв, що розгортаються одним клацанням миші (або " +"інший параметр, що відображається в меню одним клацанням миші)." + +msgid "" +"[b]Optional.[/b]\n" +"Returns tooltip of the one-click deploy menu button." +msgstr "" +"[b]Необов'язково.[/b]\n" +"Повертає підказку кнопки меню розгортання одним клацанням." + +msgid "" +"[b]Required.[/b]\n" +"Returns target OS name." +msgstr "" +"[b]Обов'язковий.[/b]\n" +"Повертає назву цільової операційної системи." + +msgid "" +"[b]Required.[/b]\n" +"Returns array of platform specific features." +msgstr "" +"[b]Обов'язковий.[/b]\n" +"Повертає масив специфічних для платформи функцій." + +msgid "" +"[b]Required.[/b]\n" +"Returns array of platform specific features for the specified [param preset]." +msgstr "" +"[b]Обов'язковий.[/b]\n" +"Повертає масив специфічних для платформи функцій для вибраного [param " +"preset] ." + +msgid "" +"[b]Optional.[/b]\n" +"Returns icon of the one-click deploy menu button, icon should be 16x16 " +"adjusted to the current editor scale, see [method EditorInterface." +"get_editor_scale]." +msgstr "" +"[b]Необов'язково.[/b]\n" +"Повертає піктограму кнопки меню розгортання одним клацанням, піктограма має " +"мати розмір 16x16 відповідно до поточного масштабу редактора, див. [метод " +"EditorInterface.get_editor_scale]." + +msgid "" +"[b]Required.[/b]\n" +"Returns [code]true[/code] if export configuration is valid." +msgstr "" +"[b]Обов'язковий.[/b]\n" +"Повертає [code]true[/code], якщо налаштування експорту коректні." + +msgid "" +"[b]Required.[/b]\n" +"Returns [code]true[/code] if project configuration is valid." +msgstr "" +"[b]Обов'язковий.[/b]\n" +"Повертає [code]true[/code] якщо конфігурація проєкта коректна." + +msgid "" +"[b]Optional.[/b]\n" +"Returns [code]true[/code] if specified file is a valid executable (native " +"executable or script) for the target platform." +msgstr "" +"[b]Обов'язковий.[/b]\n" +"Повертає [code]true[/code] якщо вказаний файл є виконуваним (нативним або " +"скриптом) для цільової платформи." + +msgid "" +"[b]Optional.[/b]\n" +"Returns [code]true[/code] if one-click deploy options are changed and editor " +"interface should be updated." +msgstr "" +"[b]Необов'язково.[/b]\n" +"Повертає [code]true[/code], якщо змінено параметри розгортання одним " +"клацанням миші та потрібно оновити інтерфейс редактора." + +msgid "" +"[b]Optional.[/b]\n" +"This method is called when [param device] one-click deploy menu option is " +"selected.\n" +"Implementation should export project to a temporary location, upload and run " +"it on the specific [param device], or perform another action associated with " +"the menu item." +msgstr "" +"[b]Необов'язково.[/b]\n" +"Цей метод викликається, коли вибрано параметр меню розгортання одним " +"клацанням [param device].\n" +"Реалізація має експортувати проект у тимчасове розташування, завантажити та " +"запустити його на певному [param device] або виконати іншу дію, пов’язану з " +"пунктом меню." + +msgid "" +"[b]Optional.[/b]\n" +"Returns [code]true[/code] if export options list is changed and presets " +"should be updated." +msgstr "" +"[b]Необов'язково.[/b]\n" +"Повертає [code]true[/code], якщо список параметрів експорту змінено та " +"попередні налаштування потрібно оновити." + +msgid "" +"Returns current configuration error message text. This method should be " +"called only from the [method _can_export], [method " +"_has_valid_export_configuration], or [method " +"_has_valid_project_configuration] implementations." +msgstr "" +"Повертає текст повідомлення про помилку поточної конфігурації. Цей метод слід " +"викликати лише з реалізацій [method _can_export], [method " +"_has_valid_export_configuration] або [method " +"_has_valid_project_configuration]." + +msgid "" +"Returns [code]true[/code] is export templates are missing from the current " +"configuration. This method should be called only from the [method " +"_can_export], [method _has_valid_export_configuration], or [method " +"_has_valid_project_configuration] implementations." +msgstr "" +"Повертає [code]true[/code], якщо шаблони експорту відсутні в поточній " +"конфігурації. Цей метод слід викликати лише з реалізацій [method " +"_can_export], [method _has_valid_export_configuration] або [method " +"_has_valid_project_configuration]." + +msgid "" +"Sets current configuration error message text. This method should be called " +"only from the [method _can_export], [method _has_valid_export_configuration], " +"or [method _has_valid_project_configuration] implementations." +msgstr "" +"Встановлює текст повідомлення про помилку поточної конфігурації. Цей метод " +"слід викликати лише з реалізацій [method _can_export], [method " +"_has_valid_export_configuration] або [method " +"_has_valid_project_configuration]." + +msgid "" +"Set to [code]true[/code] is export templates are missing from the current " +"configuration. This method should be called only from the [method " +"_can_export], [method _has_valid_export_configuration], or [method " +"_has_valid_project_configuration] implementations." +msgstr "" +"Якщо встановлено значення [code]true[/code], шаблони експорту відсутні в " +"поточній конфігурації. Цей метод слід викликати лише з реалізацій [method " +"_can_export], [method _has_valid_export_configuration] або [method " +"_has_valid_project_configuration]." + msgid "Exporter for iOS." msgstr "Експортер для iOS." @@ -38432,6 +49438,34 @@ msgstr "" "patch[/code] або [code]major.minor[/code], може містити тільки числові " "символи ([code]0-9[/code]) і періоди ([code] і [/code])." +msgid "" +"Name of the provisioning profile. Sets XCode PROVISIONING_PROFILE_SPECIFIER " +"for debug. [url=https://developer.apple.com/documentation/xcode/build-" +"settings-reference#Provisioning-Profile]Used for manual provisioning[/url].\n" +"Can be overridden with the environment variable " +"[code]GODOT_IOS_PROFILE_SPECIFIER_DEBUG[/code]." +msgstr "" +"Назва профілю забезпечення. Встановлює XCode PROVISIONING_PROFILE_SPECIFIER " +"для налагодження. [url=https://developer.apple.com/documentation/xcode/build-" +"settings-reference#Provisioning-Profile]Використовується для ручної " +"підготовки[/url].\n" +"Можна замінити за допомогою змінної середовища " +"[code]GODOT_IOS_PROFILE_SPECIFIER_DEBUG[/code]." + +msgid "" +"Name of the provisioning profile. Sets XCode PROVISIONING_PROFILE_SPECIFIER " +"for release. [url=https://developer.apple.com/documentation/xcode/build-" +"settings-reference#Provisioning-Profile]Used for manual provisioning[/url].\n" +"Can be overridden with the environment variable " +"[code]GODOT_IOS_PROFILE_SPECIFIER_RELEASE[/code]." +msgstr "" +"Назва профілю забезпечення. Встановлює XCode PROVISIONING_PROFILE_SPECIFIER " +"для випуску. [url=https://developer.apple.com/documentation/xcode/build-" +"settings-reference#Provisioning-Profile]Використовується для ручної " +"підготовки[/url].\n" +"Можна замінити за допомогою змінної середовища " +"[code]GODOT_IOS_PROFILE_SPECIFIER_RELEASE[/code]." + msgid "" "UUID of the provisioning profile. If left empty, Xcode will download or " "create a provisioning profile automatically. See [url=https://developer.apple." @@ -38496,6 +49530,13 @@ msgstr "" "[url=https://developer.apple.com/support/required-device-" "capabilities/]Потрібні можливості пристрою[/url]." +msgid "" +"Additional data added to the [code]UIRequiredDeviceCapabilities[/code] array " +"of the [code]Info.plist[/code] file." +msgstr "" +"Додаткові дані додано до масиву [code]UIRequiredDeviceCapabilities[/code] " +"файлу [code]Info.plist[/code]." + msgid "" "Requires the graphics performance and features of the A12 Bionic and later " "chips (devices supporting all Vulkan renderer features).\n" @@ -38522,6 +49563,54 @@ msgstr "" "Шлях до користувацького шаблону експорту. Якщо лівий порожній, " "використовується шаблон за замовчуванням." +msgid "" +"Additional data added to the root [code]<dict>[/code] section of the " +"[url=https://developer.apple.com/documentation/bundleresources/entitlements]." +"entitlements[/url] file. The value should be an XML section with pairs of key-" +"value elements, for example:\n" +"[codeblock lang=text]\n" +"<key>key_name</key>\n" +"<string>value</string>\n" +"[/codeblock]" +msgstr "" +"Додаткові дані додано до кореневого розділу [code]<dict>[/code] файлу " +"[url=https://developer.apple.com/documentation/bundleresources/entitlements]." +"entitlements[/url]. Значення має бути розділом XML із парами елементів ключ-" +"значення, наприклад:\n" +"[codeblock lang=text]\n" +"<key>key_name</key>\n" +"<string>значення</string>\n" +"[/codeblock]" + +msgid "" +"Enable to allow access to Game Center features. [url=https://developer.apple." +"com/documentation/bundleresources/entitlements/com_apple_developer_game-" +"center]com.apple.developer.game-center[/url]." +msgstr "" +"Увімкніть, щоб дозволити доступ до функцій Game Center. [url=https://" +"developer.apple.com/documentation/bundleresources/entitlements/" +"com_apple_developer_game-center]com.apple.developer.game-center[/url]." + +msgid "" +"Enable if app may perform better with a higher memory limit. [url=https://" +"developer.apple.com/documentation/bundleresources/entitlements/" +"com_apple_developer_kernel_increased-memory-limit]com.apple.developer.kernel." +"increased-memory-limit[/url]." +msgstr "" +"Увімкніть, якщо програма може працювати краще з вищим лімітом пам’яті. " +"[url=https://developer.apple.com/documentation/bundleresources/entitlements/" +"com_apple_developer_kernel_increased-memory-limit]com.apple.developer.kernel." +"increased-memory-limit[/url]." + +msgid "" +"Environment for Apple Push Notification service. See [url=https://developer." +"apple.com/documentation/bundleresources/entitlements/aps-environment]aps-" +"environment[/url]." +msgstr "" +"Середовище для служби Apple Push Notification. Перегляньте [url=https://" +"developer.apple.com/documentation/bundleresources/entitlements/aps-" +"environment]aps-environment[/url]." + msgid "" "App Store application icon file. If left empty, it will fallback to [member " "ProjectSettings.application/config/icon]. See [url=https://developer.apple." @@ -38532,6 +49621,140 @@ msgstr "" "com/design/human-interface-guidelines/foundations/app-icons] Ікона підказка [/" "url]." +msgid "" +"App Store application icon file, dark version. See [url=https://developer." +"apple.com/design/human-interface-guidelines/foundations/app-icons]App icons[/" +"url]." +msgstr "" +"Файл значка програми App Store, темна версія. Див. [url=https://developer." +"apple.com/design/human-interface-guidelines/foundations/app-icons]Значки " +"додатків[/url]." + +msgid "" +"App Store application icon file, tinted version. See [url=https://developer." +"apple.com/design/human-interface-guidelines/foundations/app-icons]App icons[/" +"url]." +msgstr "" +"Файл значка програми App Store, тонована версія. Див. [url=https://developer." +"apple.com/design/human-interface-guidelines/foundations/app-icons]Значки " +"додатків[/url]." + +msgid "" +"Base application icon used to generate other icons. If left empty, it will " +"fallback to [member ProjectSettings.application/config/icon]. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"Значок базової програми, який використовується для створення інших значків. " +"Якщо залишити пустим, він повернеться до [члена ProjectSettings.application/" +"config/icon]. Див. [url=https://developer.apple.com/design/human-interface-" +"guidelines/foundations/app-icons]Значки додатків[/url]." + +msgid "" +"Base application icon used to generate other icons, dark version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"Значок базової програми, який використовується для створення інших значків, " +"темна версія. Див. [url=https://developer.apple.com/design/human-interface-" +"guidelines/foundations/app-icons]Значки додатків[/url]." + +msgid "" +"Base application icon used to generate other icons, tinted version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"Значок базової програми, який використовується для створення інших значків, " +"тонована версія. Див. [url=https://developer.apple.com/design/human-interface-" +"guidelines/foundations/app-icons]Значки додатків[/url]." + +msgid "" +"iOS application 64x64 icon file (2x DPI). If left empty, it will fallback to " +"[member ProjectSettings.application/config/icon]. See [url=https://developer." +"apple.com/design/human-interface-guidelines/foundations/app-icons]App icons[/" +"url]." +msgstr "" +"Файл значка програми iOS 64x64 (2x DPI). Якщо залишити пустим, він " +"повернеться до [члена ProjectSettings.application/config/icon]. Див. " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]Значки додатків[/url]." + +msgid "" +"iOS application 64x64 icon file (2x DPI), dark version. See [url=https://" +"developer.apple.com/design/human-interface-guidelines/foundations/app-" +"icons]App icons[/url]." +msgstr "" +"Файл значка програми iOS 64x64 (2x DPI), темна версія. Див. [url=https://" +"developer.apple.com/design/human-interface-guidelines/foundations/app-" +"icons]Значки додатків[/url]." + +msgid "" +"iOS application 64x64 icon file (2x DPI), tinted version. See [url=https://" +"developer.apple.com/design/human-interface-guidelines/foundations/app-" +"icons]App icons[/url]." +msgstr "" +"Файл значка програми iOS 64x64 (2x DPI), тонована версія. Див. [url=https://" +"developer.apple.com/design/human-interface-guidelines/foundations/app-" +"icons]Значки додатків[/url]." + +msgid "" +"iOS application 68x68 icon file (2x DPI). If left empty, it will fallback to " +"[member ProjectSettings.application/config/icon]. See [url=https://developer." +"apple.com/design/human-interface-guidelines/foundations/app-icons]App icons[/" +"url]." +msgstr "" +"Файл значка програми iOS 68x68 (2x DPI). Якщо залишити пустим, він " +"повернеться до [члена ProjectSettings.application/config/icon]. Див. " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]Значки додатків[/url]." + +msgid "" +"iOS application 68x68 icon file (2x DPI), dark version. See [url=https://" +"developer.apple.com/design/human-interface-guidelines/foundations/app-" +"icons]App icons[/url]." +msgstr "" +"Файл значка програми iOS 68x68 (2x DPI), темна версія. Див. [url=https://" +"developer.apple.com/design/human-interface-guidelines/foundations/app-" +"icons]Значки додатків[/url]." + +msgid "" +"iOS application 68x68 icon file (2x DPI), tinted version. See [url=https://" +"developer.apple.com/design/human-interface-guidelines/foundations/app-" +"icons]App icons[/url]." +msgstr "" +"Файл значка програми iOS 68x68 (2x DPI), тонована версія. Див. [url=https://" +"developer.apple.com/design/human-interface-guidelines/foundations/app-" +"icons]Значки додатків[/url]." + +msgid "" +"iOS application 64x64 icon file (3x DPI). If left empty, it will fallback to " +"[member ProjectSettings.application/config/icon]. See [url=https://developer." +"apple.com/design/human-interface-guidelines/foundations/app-icons]App icons[/" +"url]." +msgstr "" +"Файл значка програми iOS 64x64 (3x DPI). Якщо залишити пустим, він " +"повернеться до [члена ProjectSettings.application/config/icon]. Див. " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]Значки додатків[/url]." + +msgid "" +"iOS application 64x64 icon file (3x DPI), dark version. See [url=https://" +"developer.apple.com/design/human-interface-guidelines/foundations/app-" +"icons]App icons[/url]." +msgstr "" +"Файл значка програми iOS 64x64 (3x DPI), темна версія. Див. [url=https://" +"developer.apple.com/design/human-interface-guidelines/foundations/app-" +"icons]Значки додатків[/url]." + +msgid "" +"iOS application 64x64 icon file (3x DPI), tinted version. See [url=https://" +"developer.apple.com/design/human-interface-guidelines/foundations/app-" +"icons]App icons[/url]." +msgstr "" +"Файл значка програми iOS 64x64 (3x DPI), тонована версія. Див. [url=https://" +"developer.apple.com/design/human-interface-guidelines/foundations/app-" +"icons]Значки додатків[/url]." + msgid "" "Home screen application icon file on iPad (2x DPI). If left empty, it will " "fallback to [member ProjectSettings.application/config/icon]. See " @@ -38543,6 +49766,24 @@ msgstr "" "apple.com/design/human-interface-guidelines/foundations/app-icons] Ікона " "підказка [/url]." +msgid "" +"Home screen application icon file on iPad (2x DPI), dark version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"Файл значка програми головного екрана на iPad (2x DPI), темна версія. Див. " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]Значки додатків[/url]." + +msgid "" +"Home screen application icon file on iPad (2x DPI), tinted version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"Файл значка програми головного екрана на iPad (2x DPI), тонована версія. Див. " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]Значки додатків[/url]." + msgid "" "Home screen application icon file on iPad (3x DPI). If left empty, it will " "fallback to [member ProjectSettings.application/config/icon]. See " @@ -38554,6 +49795,24 @@ msgstr "" "apple.com/design/human-interface-guidelines/foundations/app-icons] Ікона " "підказка [/url]." +msgid "" +"Home screen application icon file on iPad (3x DPI), dark version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"Файл значка програми головного екрана на iPad (3x DPI), темна версія. Див. " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]Значки додатків[/url]." + +msgid "" +"Home screen application icon file on iPad (3x DPI), tinted version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"Файл значка додатка головного екрана на iPad (3x DPI), тонована версія. Див. " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]Значки додатків[/url]." + msgid "" "Home screen application icon file on iPhone (2x DPI). If left empty, it will " "fallback to [member ProjectSettings.application/config/icon]. See " @@ -38565,6 +49824,24 @@ msgstr "" "apple.com/design/human-interface-guidelines/foundations/app-icons] Ікона " "підказка [/url]." +msgid "" +"Home screen application icon file on iPhone (2x DPI), dark version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"Файл значка програми головного екрана на iPhone (2x DPI), темна версія. Див. " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]Значки додатків[/url]." + +msgid "" +"Home screen application icon file on iPhone (2x DPI), tinted version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"Файл значка додатка головного екрана на iPhone (2x DPI), тонована версія. " +"Див. [url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]Значки додатків[/url]." + msgid "" "Home screen application icon file on iPhone (3x DPI). If left empty, it will " "fallback to [member ProjectSettings.application/config/icon]. See " @@ -38576,6 +49853,24 @@ msgstr "" "apple.com/design/human-interface-guidelines/foundations/app-icons] Ікона " "підказка [/url]." +msgid "" +"Home screen application icon file on iPhone (3x DPI), dark version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"Файл значка програми головного екрана на iPhone (3x DPI), темна версія. Див. " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]Значки додатків[/url]." + +msgid "" +"Home screen application icon file on iPhone (3x DPI), tinted version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"Файл значка додатка головного екрана на iPhone (3x DPI), тонована версія. " +"Див. [url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]Значки додатків[/url]." + msgid "" "Notification icon file on iPad and iPhone (2x DPI). If left empty, it will " "fallback to [member ProjectSettings.application/config/icon]. See " @@ -38587,6 +49882,24 @@ msgstr "" "developer.apple.com/design/human-interface-guidelines/foundations/app-icons] " "Ікона підказка [/url]." +msgid "" +"Notification icon file on iPad and iPhone (2x DPI), dark version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"Файл значка сповіщень на iPad і iPhone (2x DPI), темна версія. Див. " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]Значки додатків[/url]." + +msgid "" +"Notification icon file on iPad and iPhone (2x DPI), tinted version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"Файл значків сповіщень на iPad і iPhone (2x DPI), тонована версія. Див. " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]Значки додатків[/url]." + msgid "" "Notification icon file on iPhone (3x DPI). If left empty, it will fallback to " "[member ProjectSettings.application/config/icon]. See [url=https://developer." @@ -38598,6 +49911,53 @@ msgstr "" "apple.com/design/human-interface-guidelines/foundations/app-icons] Ікона " "підказка [/url]." +msgid "" +"Notification icon file on iPhone (3x DPI), dark version. See [url=https://" +"developer.apple.com/design/human-interface-guidelines/foundations/app-" +"icons]App icons[/url]." +msgstr "" +"Файл значка сповіщення на iPhone (3x DPI), темна версія. Див. [url=https://" +"developer.apple.com/design/human-interface-guidelines/foundations/app-" +"icons]Значки додатків[/url]." + +msgid "" +"Notification icon file on iPhone (3x DPI), tinted version. See [url=https://" +"developer.apple.com/design/human-interface-guidelines/foundations/app-" +"icons]App icons[/url]." +msgstr "" +"Файл значка сповіщень на iPhone (3x DPI), тонована версія. Див. [url=https://" +"developer.apple.com/design/human-interface-guidelines/foundations/app-" +"icons]Значки додатків[/url]." + +msgid "" +"Notification icon file on iPad and iPhone (3x DPI). If left empty, it will " +"fallback to [member ProjectSettings.application/config/icon]. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"Файл значка сповіщення на iPad і iPhone (3x DPI). Якщо залишити пустим, він " +"повернеться до [члена ProjectSettings.application/config/icon]. Див. " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]Значки додатків[/url]." + +msgid "" +"Notification icon file on iPad and iPhone (3x DPI), dark version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"Файл значка сповіщень на iPad і iPhone (3x DPI), темна версія. Див. " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]Значки додатків[/url]." + +msgid "" +"Notification icon file on iPad and iPhone (3x DPI), tinted version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"Файл значків сповіщень на iPad і iPhone (3x DPI), тонована версія. Див. " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]Значки додатків[/url]." + msgid "" "Application settings icon file on iPad and iPhone (2x DPI). If left empty, it " "will fallback to [member ProjectSettings.application/config/icon]. See " @@ -38609,6 +49969,24 @@ msgstr "" "[url=https://developer.apple.com/design/human-interface-guidelines/" "foundations/app-icons] Ікона підказка [/url]." +msgid "" +"Application settings icon file on iPad and iPhone (2x DPI), dark version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"Файл значка налаштувань програми на iPad і iPhone (2x DPI), темна версія. " +"Див. [url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]Значки додатків[/url]." + +msgid "" +"Application settings icon file on iPad and iPhone (2x DPI), tinted version. " +"See [url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"Файл значка налаштувань програми на iPad і iPhone (2x DPI), тонована версія. " +"Див. [url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]Значки додатків[/url]." + msgid "" "Application settings icon file on iPhone (3x DPI). If left empty, it will " "fallback to [member ProjectSettings.application/config/icon]. See " @@ -38620,6 +49998,24 @@ msgstr "" "[url=https://developer.apple.com/design/human-interface-guidelines/" "foundations/app-icons] Ікона підказка [/url]." +msgid "" +"Application settings icon file on iPhone (3x DPI), dark version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"Файл значка налаштувань програми на iPhone (3x DPI), темна версія. Див. " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]Значки додатків[/url]." + +msgid "" +"Application settings icon file on iPhone (3x DPI), tinted version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"Файл значка налаштувань програми на iPhone (3x DPI), тонована версія. Див. " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]Значки додатків[/url]." + msgid "" "Spotlight icon file on iPad and iPhone (2x DPI). If left empty, it will " "fallback to [member ProjectSettings.application/config/icon]. See " @@ -38631,6 +50027,53 @@ msgstr "" "[url=https://developer.apple.com/design/human-interface-guidelines/" "foundations/app-icons] Ікона підказка [/url]." +msgid "" +"Spotlight icon file on iPad and iPhone (2x DPI), dark version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"Файл піктограми Spotlight на iPad і iPhone (2x DPI), темна версія. Див. " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]Значки додатків[/url]." + +msgid "" +"Spotlight icon file on iPad and iPhone (2x DPI), tinted version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"Файл піктограми Spotlight на iPad і iPhone (2x DPI), тонована версія. Див. " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]Значки додатків[/url]." + +msgid "" +"Spotlight icon file on iPad and iPhone (3x DPI). If left empty, it will " +"fallback to [member ProjectSettings.application/config/icon]. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"Файл піктограми Spotlight на iPad і iPhone (3x DPI). Якщо залишити пустим, " +"він повернеться до [члена ProjectSettings.application/config/icon]. Див. " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]Значки додатків[/url]." + +msgid "" +"Spotlight icon file on iPad and iPhone (3x DPI), dark version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"Файл піктограми Spotlight на iPad і iPhone (3x DPI), темна версія. Див. " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]Значки додатків[/url]." + +msgid "" +"Spotlight icon file on iPad and iPhone (3x DPI), tinted version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"Файл піктограми Spotlight на iPad та iPhone (3x DPI), тонована версія. Див. " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]Значки додатків[/url]." + msgid "" "The reasons your app use active keyboard API. See [url=https://developer." "apple.com/documentation/bundleresources/privacy_manifest_files/" @@ -39606,6 +51049,21 @@ msgstr "Експортер для Linux/BSD." msgid "Exporting for Linux" msgstr "Експорт для Linux" +msgid "" +"Application executable architecture.\n" +"Supported architectures: [code]x86_32[/code], [code]x86_64[/code], " +"[code]arm64[/code], [code]arm32[/code], [code]rv64[/code], [code]ppc64[/" +"code], [code]ppc32[/code], and [code]loongarch64[/code].\n" +"Official export templates include [code]x86_32[/code], [code]x86_64[/code], " +"[code]arm32[/code], and [code]arm64[/code] binaries only." +msgstr "" +"Архітектура виконуваної програми.\n" +"Підтримувані архітектури: [code]x86_32[/code], [code]x86_64[/code], " +"[code]arm64[/code], [code]arm32[/code], [code]rv64[/code], [code]ppc64[/" +"code], [code]ppc32[/code] і [code]loongarch64[/code].\n" +"Офіційні шаблони експорту включають лише двійкові файли [code]x86_32[/code], " +"[code]x86_64[/code], [code]arm32[/code] і [code]arm64[/code]." + msgid "" "If [code]true[/code], project resources are embedded into the executable." msgstr "Якщо [code]true[/code], ресурси проекту вбудовані в виконуваний." @@ -39722,6 +51180,26 @@ msgstr "" "проектівНалаштування.application/config/macos_native_icon], а потім до " "[пам'ятних проектівНалаштування/config/icon]." +msgid "" +"Minimum version of macOS required for this application to run on Apple " +"Silicon Macs, in the [code]major.minor.patch[/code] or [code]major.minor[/" +"code] format, can only contain numeric characters ([code]0-9[/code]) and " +"periods ([code].[/code])." +msgstr "" +"Мінімальна версія macOS, необхідна для роботи цієї програми на Apple Silicon " +"Mac, у форматі [code]major.minor.patch[/code] або [code]major.minor[/code], " +"може містити лише цифри ([code]0-9[/code]) і крапки ([code].[/code])." + +msgid "" +"Minimum version of macOS required for this application to run on Intel Macs, " +"in the [code]major.minor.patch[/code] or [code]major.minor[/code] format, can " +"only contain numeric characters ([code]0-9[/code]) and periods ([code].[/" +"code])." +msgstr "" +"Мінімальна версія macOS, необхідна для роботи цієї програми на Intel Mac, у " +"форматі [code]major.minor.patch[/code] або [code]major.minor[/code], може " +"містити лише цифри ([code]0-9[/code]) і крапки ([code].[/code])." + msgid "" "Application executable architecture.\n" "Supported architectures: [code]x86_64[/code], [code]arm64[/code], and " @@ -40445,6 +51923,39 @@ msgstr "" "рігін ізоляційних заголовків (COEP/COOP).\n" "Це може спрощувати налаштування для подачі експортованої гри." +msgid "" +"File path to the smallest icon for this web application. If not defined, " +"defaults to the project icon.\n" +"[b]Note:[/b] If the icon is not 144×144, it will be automatically resized for " +"the final build." +msgstr "" +"Шлях файлу до найменшої піктограми для цієї веб-програми. Якщо не визначено, " +"за замовчуванням використовується значок проекту.\n" +"[b]Примітка:[/b] Якщо піктограма не має розміру 144 × 144, її розмір буде " +"автоматично змінено для остаточної збірки." + +msgid "" +"File path to the small icon for this web application. If not defined, " +"defaults to the project icon.\n" +"[b]Note:[/b] If the icon is not 180×180, it will be automatically resized for " +"the final build." +msgstr "" +"Шлях файлу до маленької піктограми для цієї веб-програми. Якщо не визначено, " +"за замовчуванням використовується значок проекту.\n" +"[b]Примітка:[/b] Якщо піктограма не має розміру 180×180, її розмір буде " +"автоматично змінено для остаточної збірки." + +msgid "" +"File path to the largest icon for this web application. If not defined, " +"defaults to the project icon.\n" +"[b]Note:[/b] If the icon is not 512×512, it will be automatically resized for " +"the final build." +msgstr "" +"Шлях файлу до найбільшої піктограми для цієї веб-програми. Якщо не визначено, " +"за замовчуванням використовується значок проекту.\n" +"[b]Примітка:[/b] Якщо піктограма не має розміру 512 × 512, її розмір буде " +"автоматично змінено для остаточної збірки." + msgid "" "The page to display, should the server hosting the page not be available. " "This page is saved in the client's machine." @@ -40487,6 +51998,20 @@ msgstr "" "це більш схильний до виконання та аудіо питань, але буде потрібно працювати " "лише на сайті HTTPS." +msgid "" +"If [code]true[/code], allows textures to be optimized for desktop through the " +"S3TC/BPTC algorithm." +msgstr "" +"Якщо [code]true[/code], дозволяє оптимізувати текстури для робочого столу за " +"допомогою алгоритму S3TC/BPTC." + +msgid "" +"If [code]true[/code] allows textures to be optimized for mobile through the " +"ETC2/ASTC algorithm." +msgstr "" +"Якщо [code]true[/code] дозволяє оптимізувати текстури для мобільних пристроїв " +"за допомогою алгоритму ETC2/ASTC." + msgid "Exporter for Windows." msgstr "Експортер для Windows." @@ -40606,6 +52131,15 @@ msgstr "" "Додатково. [url=https://learn.microsoft.com/en-us/windows/win32/menurc/" "stringfileinfo-block]StringFileInfo[/url]." +msgid "" +"Application executable architecture.\n" +"Supported architectures: [code]x86_32[/code], [code]x86_64[/code], and " +"[code]arm64[/code]." +msgstr "" +"Архітектура виконуваної програми.\n" +"Підтримувані архітектури: [code]x86_32[/code], [code]x86_64[/code] і " +"[code]arm64[/code]." + msgid "" "Array of the additional command line arguments passed to the code signing " "tool. See [url=https://learn.microsoft.com/en-us/dotnet/framework/tools/" @@ -40730,6 +52264,58 @@ msgstr "" "При включенні [метод_customization_configuration_hash] і " "[метод_customize_resource] будуть викликані і повинні бути реалізовані." +msgid "" +"Return [code]true[/code] if this plugin will customize scenes based on the " +"platform and features used.\n" +"When enabled, [method _get_customization_configuration_hash] and [method " +"_customize_scene] will be called and must be implemented.\n" +"[b]Note:[/b] [method _customize_scene] will only be called for scenes that " +"have been modified since the last export." +msgstr "" +"Повертає [code]true[/code], якщо цей плагін налаштовуватиме сцени на основі " +"використовуваної платформи та функцій.\n" +"Якщо ввімкнено, [method _get_customization_configuration_hash] і [method " +"_customize_scene] будуть викликані та мають бути реалізовані.\n" +"[b]Примітка:[/b] [метод _customize_scene] буде викликано лише для сцен, які " +"були змінені після останнього експорту." + +msgid "" +"Customize a resource. If changes are made to it, return the same or a new " +"resource. Otherwise, return [code]null[/code]. When a new resource is " +"returned, [param resource] will be replaced by a copy of the new resource.\n" +"The [param path] argument is only used when customizing an actual file, " +"otherwise this means that this resource is part of another one and it will be " +"empty.\n" +"Implementing this method is required if [method _begin_customize_resources] " +"returns [code]true[/code].\n" +"[b]Note:[/b] When customizing any of the following types and returning " +"another resource, the other resource should not be skipped using [method " +"skip] in [method _export_file]:\n" +"- [AtlasTexture]\n" +"- [CompressedCubemap]\n" +"- [CompressedCubemapArray]\n" +"- [CompressedTexture2D]\n" +"- [CompressedTexture2DArray]\n" +"- [CompressedTexture3D]" +msgstr "" +"Налаштувати ресурс. Якщо в нього внесено зміни, поверніть той самий або новий " +"ресурс. В іншому випадку поверніть [code]null[/code]. Коли повертається новий " +"ресурс, [param resource] буде замінено копією нового ресурсу.\n" +"Аргумент [param path] використовується лише під час налаштування фактичного " +"файлу, інакше це означає, що цей ресурс є частиною іншого і він буде " +"порожнім.\n" +"Реалізація цього методу потрібна, якщо [method _begin_customize_resources] " +"повертає [code]true[/code].\n" +"[b]Примітка:[/b] Під час налаштування будь-якого з наведених нижче типів і " +"повернення іншого ресурсу не слід пропускати інший ресурс за допомогою " +"[method skip] у [method _export_file]:\n" +"- [AtlasTexture]\n" +"- [Стиснута кубічна карта]\n" +"- [CompressedCubemapArray]\n" +"- [CompressedTexture2D]\n" +"- [CompressedTexture2DArray]\n" +"- [Стиснута текстура 3D]" + msgid "" "Customize a scene. If changes are made to it, return the same or a new scene. " "Otherwise, return [code]null[/code]. If a new scene is returned, it is up to " @@ -40917,6 +52503,16 @@ msgstr "" "Повернутися до [PackedStringArray] додаткових функцій цього пресету, для " "наданої [param платформа], повинен мати." +msgid "" +"[b]Optional.[/b]\n" +"Validates [param option] and returns the visibility for the specified [param " +"platform]. The default implementation returns [code]true[/code] for all " +"options." +msgstr "" +"[b]Необов'язково.[/b]\n" +"Перевіряє [param option] і повертає видимість для вказаної [param platform]. " +"Стандартна реалізація повертає [code]true[/code] для всіх параметрів." + msgid "" "Check the requirements for the given [param option] and return a non-empty " "warning string if they are not met.\n" @@ -40971,25 +52567,26 @@ msgid "" " }\n" "[/codeblock]" msgstr "" -"Повернутися до [Дикаційна] надналежних значень для опцій експорту, які будуть " -"використовуватися замість відповідних значень. Варіанти перевизначення будуть " -"приховані від інтерфейсу користувача.\n" -"[блокування коду]\n" -"Клас MyExportPlugin продовжує редактор ЕкспортПлюгін:\n" -"Func _ Page 1 (Українська) Рядок:\n" -"Повернення \"MyExportPlugin\"\n" +"Повертає [словник] змінних значень для параметрів експорту, які " +"використовуватимуться замість значень, наданих користувачем. Перевизначені " +"параметри будуть приховані в інтерфейсі користувача. \n" +"[codeblock] \n" +"class MyExportPlugin extends EditorExportPlugin: \n" +" func _get_name() -> String: \n" +" повернути \"MyExportPlugin\" \n" "\n" -"Func _supports_platform (платформа) -> боль:\n" -"якщо платформа є редакторомExportPlatform ПК:\n" -"# Запуск на всі настільні платформи, включаючи Windows, MacOS та Linux.\n" -"Повернення\n" -"повернення false\n" +" func _supports_platform(платформа) -> bool: \n" +" if platform EditorExportPlatformPC: \n" +" # Працювати на всіх настільних платформах, включаючи Windows, " +"MacOS і Linux. \n" +" return true \n" +" return false \n" "\n" -"Func _get_export_options_overrides (платформа) -> Словник:\n" -"# Перенаречена \"Земляний PCK\" завжди буде включена.\n" -"Зворотній зв'язок\n" -"\"binary_format/embed_pck\": правда,\n" -"Про нас\n" +" func _get_export_options_overrides(platform) -> Словник: \n" +" # Перевизначте, щоб «Вставити PCK» завжди було ввімкнено. \n" +" return { \n" +" \"binary_format/embed_pck\": true, \n" +" } \n" "[/codeblock]" msgid "" @@ -41099,6 +52696,12 @@ msgstr "" "каталогу [code]Frameworks[/code].\n" "Якщо ви розміщуєте не об’єкт коду в каталозі." +msgid "Returns currently used export platform." +msgstr "Повертає поточну використану платформу експорту." + +msgid "Returns currently used export preset." +msgstr "Повертає наразі використаний стиль експорту." + msgid "" "Returns the current value of an export option supplied by [method " "_get_export_options]." @@ -41113,6 +52716,140 @@ msgstr "" "Щоб бути названі всередині [метод]. Пропустити поточний файл, щоб він не був " "включений в експорт." +msgid "Export preset configuration." +msgstr "Експорт попередньо встановленої конфігурації." + +msgid "" +"Export preset configuration. Instances of [EditorExportPreset] by editor UI " +"and intended to be used a read-only configuration passed to the " +"[EditorExportPlatform] methods when exporting the project." +msgstr "" +"Експорт попередньо встановленої конфігурації. Екземпляри [EditorExportPreset] " +"інтерфейсом користувача редактора та призначені для використання конфігурації " +"лише для читання, що передається методам [EditorExportPlatform] під час " +"експорту проекту." + +msgid "" +"Returns [code]true[/code] if \"Advanced\" toggle is enabled in the export " +"dialog." +msgstr "" +"Повертає [code]true[/code], якщо в діалоговому вікні експорту ввімкнено " +"перемикач «Додатково»." + +msgid "Returns string with a comma separated list of custom features." +msgstr "Повертає рядок зі списком настроюваних функцій, розділених комами." + +msgid "" +"Returns [Dictionary] of files selected in the \"Resources\" tab of the export " +"dialog. Dictionary keys are file names and values are export mode - " +"[code]\"strip\"[/code], [code]\"keep\"[/code], or [code]\"remove\"[/code]. " +"See also [method get_file_export_mode]." +msgstr "" +"Повертає [Словник] файлів, вибраних на вкладці «Ресурси» діалогового вікна " +"експорту. Ключі словника — це імена файлів, а значення — режим експорту — " +"[code]\"strip\"[/code], [code]\"зберегти\"[/code] або [code]\"видалити\"[/" +"code]. Дивіться також [метод get_file_export_mode]." + +msgid "" +"Returns number of files selected in the \"Resources\" tab of the export " +"dialog." +msgstr "" +"Повертає кількість файлів, вибраних на вкладці «Ресурси» діалогового вікна " +"експорту." + +msgid "" +"Returns [code]true[/code], PCK directory encryption is enabled in the export " +"dialog." +msgstr "" +"Повертає [code]true[/code], у діалоговому вікні експорту ввімкнено шифрування " +"каталогу PCK." + +msgid "" +"Returns [code]true[/code], PCK encryption is enabled in the export dialog." +msgstr "" +"Повертає [code]true[/code], у діалоговому вікні експорту ввімкнено шифрування " +"PCK." + +msgid "Returns file filters to exclude during PCK encryption." +msgstr "Повертає фільтри файлів для виключення під час шифрування PCK." + +msgid "Returns file filters to include during PCK encryption." +msgstr "Повертає фільтри файлів для включення під час шифрування PCK." + +msgid "Returns PCK encryption key." +msgstr "Повертає ключ шифрування PCK." + +msgid "Returns file filters to exclude during export." +msgstr "Повертає фільтри файлів, які потрібно виключити під час експорту." + +msgid "" +"Returns export file filter mode selected in the \"Resources\" tab of the " +"export dialog." +msgstr "" +"Повертає режим фільтра файлів експорту, вибраний на вкладці «Ресурси» " +"діалогового вікна експорту." + +msgid "Returns export target path." +msgstr "Повертає цільовий шлях експорту." + +msgid "Returns file export mode for the specified file." +msgstr "Повертає режим експорту файлу для вказаного файлу." + +msgid "Returns array of files to export." +msgstr "Повертає масив файлів для експорту." + +msgid "Returns file filters to include during export." +msgstr "Повертає фільтри файлів для включення під час експорту." + +msgid "" +"Returns export option value or value of environment variable if it is set." +msgstr "" +"Повертає значення параметра експорту або значення змінної середовища, якщо " +"воно встановлено." + +msgid "Returns the list of packs on which to base a patch export on." +msgstr "Повертає список пакетів, на основі яких буде створено експорт латок." + +msgid "Returns export preset name." +msgstr "Повертає назву попереднього налаштування експорту." + +msgid "Returns script export mode." +msgstr "Повертає режим експорту сценарію." + +msgid "" +"Returns the preset's version number, or fall back to the [member " +"ProjectSettings.application/config/version] project setting if set to an " +"empty string.\n" +"If [param windows_version] is [code]true[/code], formats the returned version " +"number to be compatible with Windows executable metadata." +msgstr "" +"Повертає номер версії стилю або повертається до параметра проекту [член " +"ProjectSettings.application/config/version], якщо встановлено порожній " +"рядок.\n" +"Якщо [param windows_version] має значення [code]true[/code], форматує " +"повернутий номер версії для сумісності з метаданими виконуваного файлу " +"Windows." + +msgid "Returns [code]true[/code] if preset has specified property." +msgstr "Повертає [code]true[/code], якщо стиль має вказану властивість." + +msgid "Returns [code]true[/code] if specified file is exported." +msgstr "Повертає [code]true[/code], якщо вказаний файл експортовано." + +msgid "" +"Returns [code]true[/code] if dedicated server export mode is selected in the " +"export dialog." +msgstr "" +"Повертає [code]true[/code], якщо в діалоговому вікні експорту вибрано режим " +"експорту виділеного сервера." + +msgid "" +"Returns [code]true[/code] if \"Runnable\" toggle is enabled in the export " +"dialog." +msgstr "" +"Повертає [code]true[/code], якщо в діалоговому вікні експорту ввімкнено " +"перемикач «Runnable»." + msgid "" "An editor feature profile which can be used to disable specific features." msgstr "" @@ -41303,9 +53040,37 @@ msgid "" "visible." msgstr "Історія док. Якщо ця функція вимкнена, історія не буде видно." +msgid "" +"The Game tab, which allows embedding the game window and selecting nodes by " +"clicking inside of it. If this feature is disabled, the Game tab won't " +"display." +msgstr "" +"Вкладка «Гра», яка дозволяє вбудовувати вікно гри та вибирати вузли, клацаючи " +"всередині нього. Якщо цю функцію вимкнено, вкладка Гра не відображатиметься." + msgid "A modified version of [FileDialog] used by the editor." msgstr "Редактор [FileDialog]." +msgid "" +"[EditorFileDialog] is an enhanced version of [FileDialog] available only to " +"editor plugins. Additional features include list of favorited/recent files " +"and the ability to see files as thumbnails grid instead of list.\n" +"Unlike [FileDialog], [EditorFileDialog] does not have a property for using " +"native dialogs. Instead, native dialogs can be enabled globally via the " +"[member EditorSettings.interface/editor/use_native_file_dialogs] editor " +"setting. They are also enabled automatically when running in sandbox (e.g. on " +"macOS)." +msgstr "" +"[EditorFileDialog] — це вдосконалена версія [FileDialog], доступна лише для " +"плагінів редактора. Додаткові функції включають список обраних/останніх " +"файлів і можливість перегляду файлів у вигляді сітки мініатюр замість " +"списку.\n" +"На відміну від [FileDialog], [EditorFileDialog] не має властивості для " +"використання власних діалогів. Натомість рідні діалоги можна ввімкнути " +"глобально за допомогою параметра редактора [member EditorSettings.interface/" +"editor/use_native_file_dialogs]. Вони також вмикаються автоматично під час " +"роботи в пісочниці (наприклад, у macOS)." + msgid "" "Adds a comma-delimited file name [param filter] option to the " "[EditorFileDialog] with an optional [param description], which restricts what " @@ -41347,6 +53112,15 @@ msgstr "" "Додавання вказаного [param меню] на бічну сторону діалогу файлів з наведеним " "[param title] текст зверху. Допускається тільки одне меню." +msgid "Clear the filter for file names." +msgstr "Очистіть фільтр імен файлів." + +msgid "Removes all filters except for \"All Files (*.*)\"." +msgstr "Видаляє всі фільтри, крім «Усі файли (*.*)»." + +msgid "Returns the value of the filter for file names." +msgstr "Повертає значення фільтра для імен файлів." + msgid "" "Returns the LineEdit for the selected file.\n" "[b]Warning:[/b] This is a required internal node, removing and freeing it may " @@ -41410,6 +53184,9 @@ msgstr "" "Показати [EditorFileDialog] у типовому форматі та позицію для діалогів файлів " "у редакторі та виберіть назву файлу, якщо є поточний файл." +msgid "Sets the value of the filter for file names." +msgstr "Встановлює значення фільтра для імен файлів." + msgid "" "Sets the default value index of the [OptionButton] or [CheckBox] with index " "[param option]." @@ -41493,6 +53270,9 @@ msgstr "Увімкніть, коли вибрано каталог." msgid "Emitted when a file is selected." msgstr "Увімкніть, коли вибрано файл." +msgid "Emitted when the filter for file names changes." +msgstr "Видається, коли змінюється фільтр імен файлів." + msgid "Emitted when multiple files are selected." msgstr "Увімкніть, коли вибрано декілька файлів." @@ -41739,6 +53519,11 @@ msgstr "Повернення розширень файлів підтримує msgid "Return whether this importer is active." msgstr "Поверніть, чи працює цей імпортер." +msgid "Query support. Return [code]false[/code] if import must not continue." +msgstr "" +"Підтримка запитів. Поверніть [code]false[/code], якщо імпорт не має " +"продовжуватися." + msgid "" "Registers a custom resource importer in the editor. Use the class to parse " "any file and import it as a new resource type." @@ -41746,9 +53531,292 @@ msgstr "" "Реєструє митний імпортер ресурсів в редакторі. Використовуйте клас для " "оформлення будь-якого файлу і імпортувати його як новий тип ресурсу." +msgid "" +"[EditorImportPlugin]s provide a way to extend the editor's resource import " +"functionality. Use them to import resources from custom files or to provide " +"alternatives to the editor's existing importers.\n" +"EditorImportPlugins work by associating with specific file extensions and a " +"resource type. See [method _get_recognized_extensions] and [method " +"_get_resource_type]. They may optionally specify some import presets that " +"affect the import process. EditorImportPlugins are responsible for creating " +"the resources and saving them in the [code].godot/imported[/code] directory " +"(see [member ProjectSettings.application/config/" +"use_hidden_project_data_directory]).\n" +"Below is an example EditorImportPlugin that imports a [Mesh] from a file with " +"the extension \".special\" or \".spec\":\n" +"[codeblocks]\n" +"[gdscript]\n" +"@tool\n" +"extends EditorImportPlugin\n" +"\n" +"func _get_importer_name():\n" +" return \"my.special.plugin\"\n" +"\n" +"func _get_visible_name():\n" +" return \"Special Mesh\"\n" +"\n" +"func _get_recognized_extensions():\n" +" return [\"special\", \"spec\"]\n" +"\n" +"func _get_save_extension():\n" +" return \"mesh\"\n" +"\n" +"func _get_resource_type():\n" +" return \"Mesh\"\n" +"\n" +"func _get_preset_count():\n" +" return 1\n" +"\n" +"func _get_preset_name(preset_index):\n" +" return \"Default\"\n" +"\n" +"func _get_import_options(path, preset_index):\n" +" return [{\"name\": \"my_option\", \"default_value\": false}]\n" +"\n" +"func _import(source_file, save_path, options, platform_variants, gen_files):\n" +" var file = FileAccess.open(source_file, FileAccess.READ)\n" +" if file == null:\n" +" return FAILED\n" +" var mesh = ArrayMesh.new()\n" +" # Fill the Mesh with data read in \"file\", left as an exercise to the " +"reader.\n" +"\n" +" var filename = save_path + \".\" + _get_save_extension()\n" +" return ResourceSaver.save(mesh, filename)\n" +"[/gdscript]\n" +"[csharp]\n" +"using Godot;\n" +"\n" +"public partial class MySpecialPlugin : EditorImportPlugin\n" +"{\n" +" public override string _GetImporterName()\n" +" {\n" +" return \"my.special.plugin\";\n" +" }\n" +"\n" +" public override string _GetVisibleName()\n" +" {\n" +" return \"Special Mesh\";\n" +" }\n" +"\n" +" public override string[] _GetRecognizedExtensions()\n" +" {\n" +" return [\"special\", \"spec\"];\n" +" }\n" +"\n" +" public override string _GetSaveExtension()\n" +" {\n" +" return \"mesh\";\n" +" }\n" +"\n" +" public override string _GetResourceType()\n" +" {\n" +" return \"Mesh\";\n" +" }\n" +"\n" +" public override int _GetPresetCount()\n" +" {\n" +" return 1;\n" +" }\n" +"\n" +" public override string _GetPresetName(int presetIndex)\n" +" {\n" +" return \"Default\";\n" +" }\n" +"\n" +" public override Godot.Collections.Array<Godot.Collections.Dictionary> " +"_GetImportOptions(string path, int presetIndex)\n" +" {\n" +" return\n" +" [\n" +" new Godot.Collections.Dictionary\n" +" {\n" +" { \"name\", \"myOption\" },\n" +" { \"default_value\", false },\n" +" },\n" +" ];\n" +" }\n" +"\n" +" public override Error _Import(string sourceFile, string savePath, Godot." +"Collections.Dictionary options, Godot.Collections.Array<string> " +"platformVariants, Godot.Collections.Array<string> genFiles)\n" +" {\n" +" using var file = FileAccess.Open(sourceFile, FileAccess.ModeFlags." +"Read);\n" +" if (file.GetError() != Error.Ok)\n" +" {\n" +" return Error.Failed;\n" +" }\n" +"\n" +" var mesh = new ArrayMesh();\n" +" // Fill the Mesh with data read in \"file\", left as an exercise to " +"the reader.\n" +" string filename = $\"{savePath}.{_GetSaveExtension()}\";\n" +" return ResourceSaver.Save(mesh, filename);\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"To use [EditorImportPlugin], register it using the [method EditorPlugin." +"add_import_plugin] method first." +msgstr "" +"Плагіни [EditorImportPlugin] дають змогу розширити функціональність імпорту " +"ресурсів редактора. Використовуйте їх, щоб імпортувати ресурси з власних " +"файлів або надавати альтернативи існуючим імпортерам редактора. \n" +"EditorImportPlugins працюють, асоціюючи певні розширення файлів і тип " +"ресурсу. Перегляньте [method _get_recognized_extensions] і [method " +"_get_resource_type]. Вони можуть додатково вказати деякі стилі імпорту, які " +"впливають на процес імпорту. EditorImportPlugins відповідають за створення " +"ресурсів і їх збереження в каталозі [code].godot/imported[/code] (див. " +"[member ProjectSettings.application/config/" +"use_hidden_project_data_directory]). \n" +"Нижче наведено приклад EditorImportPlugin, який імпортує [Mesh] із файлу з " +"розширенням \".special\" або \".spec\": \n" +"[codeblocks] \n" +"[gdscript] \n" +"@tool \n" +"extends EditorImportPlugin \n" +"\n" +"func _get_importer_name(): \n" +" return \"my.special.plugin\" \n" +"\n" +"func _get_visible_name(): \n" +" return \"Special Mesh\" \n" +"\n" +"func _get_recognized_extensions(): \n" +" return [\"special\", \"spec\"] \n" +"\n" +"func _get_save_extension(): \n" +" return \"mesh\" \n" +"\n" +"func _get_resource_type(): \n" +" return \"mesh\" \n" +"\n" +"func _get_preset_count(): \n" +" return 1 \n" +"\n" +"func _get_preset_name(preset_index): \n" +" return \"Default\" \n" +"\n" +"func _get_import_options(path, preset_index): \n" +" return [{\"name\": \"my_option\", \"default_value\": false}] \n" +"\n" +"func _import(source_file, save_path, options, platform_variants, " +"gen_files): \n" +" var file = FileAccess.open(source_file, FileAccess.READ) \n" +" if file == null: \n" +" return ERROR\n" +" var mesh = ArrayMesh.new() \n" +" # Заповніть Mesh даними, зчитаними у \"файлі\", залишеними як вправа для " +"читача. \n" +"\n" +" var filename = save_path + \".\" + _get_save_extension() \n" +" return ResourceSaver.save(mesh, name file) \n" +"[/gdscript] \n" +"[csharp] \n" +"Using Godot; \n" +"\n" +"public partial class MySpecialPlugin : EditorImportPlugin \n" +"{\n" +" public override string _GetImporterName() \n" +" { \n" +" return \"my.special.plugin\"; \n" +" } \n" +"\n" +" public override string _GetVisibleName() \n" +" { \n" +" return «Special mesh»; \n" +" } \n" +"\n" +" public override string[] _GetRecognizedExtensions() \n" +" { \n" +" return [\"special\", \"spec\"]; \n" +" } \n" +"\n" +" public override string _GetSaveExtension() \n" +" { \n" +" return \"mesh\"; \n" +" } \n" +"\n" +" public override string _GetResourceType() \n" +" { \n" +" return «mesh»; \n" +" } \n" +"\n" +" public override int _GetPresetCount() \n" +" { \n" +" return 1; \n" +" } \n" +"\n" +" public override string _GetPresetName(int presetIndex) \n" +" { \n" +" return \"Default\"; \n" +" } \n" +"\n" +" public override Godot.Collections.Array<Godot.Collections.Dictionary> " +"_GetImportOptions(String path, int presetIndex) \n" +" { \n" +" return \n" +" [ \n" +" new Godot.Collections.Dictionary \n" +" { \n" +" { \"name\", \"myOption\" }, \n" +" { \"default_value\", false }, \n" +" }, \n" +" ]; \n" +" } \n" +"\n" +" public override Error _Import(string sourceFile, string savePath, Godot." +"Collections.Dictionary options, Godot.Collections.Array<string> " +"platformVariants, Godot.Collections.Array<string> genFiles) \n" +" { \n" +" Using var file = FileAccess.Open(sourceFile, FileAccess.ModeFlags." +"Read); \n" +" if (file.GetError() != Error.Ok) \n" +" { \n" +" return Error.Failed; \n" +" } \n" +"\n" +" var mesh = new ArrayMesh(); \n" +" // Заповнити Mesh даними, зчитаними у \"файлі\", залишеними як вправа " +"для читача. \n" +" string filename = $\"{savePath}.{_GetSaveExtension()}\"; \n" +" return ResourceSaver.Save(mesh, filename); \n" +" } \n" +"}\n" +"[/csharp] \n" +"[/codeblocks] \n" +"Щоб використовувати [EditorImportPlugin], спочатку зареєструйте його за " +"допомогою методу [method EditorPlugin.add_import_plugin]." + msgid "Import plugins" msgstr "Імпорт плагінів" +msgid "" +"Tells whether this importer can be run in parallel on threads, or, on the " +"contrary, it's only safe for the editor to call it from the main thread, for " +"one file at a time.\n" +"If this method is not overridden, it will return [code]false[/code] by " +"default.\n" +"If this importer's implementation is thread-safe and can be run in parallel, " +"override this with [code]true[/code] to optimize for concurrency." +msgstr "" +"Повідомляє, чи можна цей імпортер запускати паралельно в потоках, чи, " +"навпаки, для редактора безпечно лише викликати його з основного потоку, для " +"одного файлу за раз.\n" +"Якщо цей метод не перевизначено, він повертатиме [code]false[/code] за " +"умовчанням.\n" +"Якщо реалізація цього імпортера є потоково-безпечною та може працювати " +"паралельно, замініть це на [code]true[/code], щоб оптимізувати для " +"паралелізму." + +msgid "" +"Gets the format version of this importer. Increment this version when making " +"incompatible changes to the format of the imported resources." +msgstr "" +"Отримує версію формату цього імпортера. Збільште цю версію, коли вносите " +"несумісні зміни у формат імпортованих ресурсів." + msgid "" "Gets the options and default values for the preset at this index. Returns an " "Array of Dictionaries with the following keys: [code]name[/code], " @@ -41778,6 +53846,75 @@ msgstr "" msgid "Gets the unique name of the importer." msgstr "Одержує унікальну назву імпортера." +msgid "" +"This method can be overridden to hide specific import options if conditions " +"are met. This is mainly useful for hiding options that depend on others if " +"one of them is disabled.\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _get_option_visibility(option, options):\n" +" # Only show the lossy quality setting if the compression mode is set to " +"\"Lossy\".\n" +" if option == \"compress/lossy_quality\" and options.has(\"compress/" +"mode\"):\n" +" return int(options[\"compress/mode\"]) == COMPRESS_LOSSY # This is a " +"constant that you set\n" +"\n" +" return true\n" +"[/gdscript]\n" +"[csharp]\n" +"public void _GetOptionVisibility(string option, Godot.Collections.Dictionary " +"options)\n" +"{\n" +" // Only show the lossy quality setting if the compression mode is set to " +"\"Lossy\".\n" +" if (option == \"compress/lossy_quality\" && options." +"ContainsKey(\"compress/mode\"))\n" +" {\n" +" return (int)options[\"compress/mode\"] == CompressLossy; // This is a " +"constant you set\n" +" }\n" +"\n" +" return true;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"Returns [code]true[/code] to make all options always visible." +msgstr "" +"Цей метод можна замінити, щоб приховати певні параметри імпорту, якщо " +"виконуються умови. Це в основному корисно для приховування параметрів, які " +"залежать від інших, якщо один із них вимкнено. \n" +"[codeblocks] \n" +"[gdscript] \n" +"func _get_option_visibility(опція, параметри): \n" +" # Відображати налаштування якості з втратами, лише якщо режим стиснення " +"встановлено на \"Lossy\". \n" +" if option == \"compress/lossy_quality\" і options.has(\"compress/" +"mode\"): \n" +" return int(options[\"compress/mode\"]) == COMPRESS_LOSSY # Це " +"константа, яку ви встановили \n" +"\n" +" return true \n" +"[/gdscript] \n" +"[csharp] \n" +"public void _GetOptionVisibility(string option, Godot.Collections.Dictionary, " +"options) \n" +"{\n" +" // Показувати налаштування якості з втратами, лише якщо для режиму " +"стиснення встановлено значення \"Lossy\". \n" +" if (option == \"compress/lossy_quality\" && options." +"ContainsKey(\"compress/mode\")) \n" +" { \n" +" return (int)options[\"compress/mode\"] == CompressLossy; // Це " +"встановлена вами константа \n" +" } \n" +"\n" +" return true; \n" +"}\n" +"[/csharp] \n" +"[/codeblocks] \n" +"Повертає [code]true[/code], щоб усі параметри завжди були видимими." + msgid "" "Gets the number of initial presets defined by the plugin. Use [method " "_get_import_options] to get the default options for the preset and [method " @@ -41931,12 +54068,31 @@ msgstr "" "зазвичай використовують імена, написані великими літерами, замість імен " "snake_cased." +msgid "" +"Shows the properties of the given [param object] in this inspector for " +"editing. To clear the inspector, call this method with [code]null[/code].\n" +"[b]Note:[/b] If you want to edit an object in the editor's main inspector, " +"use the [code]edit_*[/code] methods in [EditorInterface] instead." +msgstr "" +"Показує властивості даного [param object] у цьому інспекторі для редагування. " +"Щоб очистити інспектор, викличте цей метод за допомогою [code]null[/code].\n" +"[b]Примітка:[/b] Якщо ви хочете редагувати об’єкт у головному інспекторі " +"редактора, замість цього використовуйте методи [code]edit_*[/code] в " +"[EditorInterface]." + msgid "Returns the object currently selected in this inspector." msgstr "Повернення об'єкта в даний час обраний в цьому інспекторі." msgid "Gets the path of the currently selected property." msgstr "Одержує шлях до обраного майна." +msgid "" +"Creates a property editor that can be used by plugin UI to edit the specified " +"property of an [param object]." +msgstr "" +"Створює редактор властивостей, який може використовуватися інтерфейсом " +"користувача плагіна для редагування вказаної властивості [param object]." + msgid "Emitted when the object being edited by the inspector has changed." msgstr "Увімкнено, коли об’єкт, який редагував інспектор." @@ -42118,22 +54274,23 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"[EditorInterface] дає вам контроль над вікном редактора Godot. Він дозволяє " -"налаштувати вікно, збереження та (re-) завантаження сцен, відображення " -"сітчастих переглядів, перевірки та редагування ресурсів та об'єктів, а також " -"надає доступ до [РедагорНалаштування], [РедагорФайлСистема], [РедагорПогляд], " -"[ScriptEditor], Редактор редактора та інформацію про сцени.\n" -"[b]Примітка:[/b] Цей клас не повинен бути миттєвим. Замість, доступ до " -"єдинону безпосередньо за його назвою.\n" -"[блоки коду]\n" -"[видання]\n" -"var редактор_settings = EditorInterface.get_editor_settings()\n" -"[/gdscript]\n" -"[csharp]\n" -"(Українська) У C# Ви можете отримати доступ до нього за допомогою статичного " -"однотонного майна.\n" -"EditorSettings = EditorInterface.Singleton.GetEditorНалаштування ();\n" -"[/csharp]\n" +"[EditorInterface] надає вам контроль над вікном редактора Godot. Він дозволяє " +"налаштовувати вікно, зберігати та (повторно) завантажувати сцени, " +"відтворювати попередній перегляд сітки, перевіряти та редагувати ресурси та " +"об’єкти, а також надає доступ до [EditorSettings], [EditorFileSystem], " +"[EditorResourcePreview], [ScriptEditor], вікна перегляду редактора та " +"інформації про сцени. \n" +"[b]Примітка: [/b] Цей клас не слід створювати безпосередньо. Натомість " +"зверніться до синглтона безпосередньо за його іменем. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var editor_settings = EditorInterface.get_editor_settings() \n" +"[/gdscript] \n" +"[csharp] \n" +"// У C# ви можете отримати до нього доступ через статичну властивість " +"Singleton. \n" +"EditorSettings = settings EditorInterface.Singleton.GetEditorSettings(); \n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -42268,6 +54425,12 @@ msgstr "" "перевагу доступу до тематичних елементів безпосередньо з ваших вузлів GUI за " "допомогою методів [code]get_theme_*[/code]." +msgid "Returns the editor's [EditorToaster]." +msgstr "Повертає [EditorToaster] редактора." + +msgid "Returns the editor's [EditorUndoRedoManager]." +msgstr "Повертає [EditorUndoRedoManager] редактора." + msgid "" "Returns the 2D editor [SubViewport]. It does not have a camera. Instead, the " "view transforms are done directly and can be accessed with [member Viewport." @@ -42395,6 +54558,13 @@ msgstr "" msgid "Marks the current scene tab as unsaved." msgstr "Відзначає поточний вкладок сцени як незбережений." +msgid "" +"Opens the scene at the given path. If [param set_inherited] is [code]true[/" +"code], creates a new inherited scene." +msgstr "" +"Відкриває сцену на заданому шляху. Якщо [param set_inherited] має значення " +"[code]true[/code], створює нову успадковану сцену." + msgid "Plays the currently active scene." msgstr "Грає в даний час активний сцена." @@ -42404,6 +54574,48 @@ msgstr "Відтворює сцену, вказану її файлопатіє msgid "Plays the main scene." msgstr "Грає на головній сцені." +msgid "" +"Pops up an editor dialog for creating an object.\n" +"The [param callback] must take a single argument of type [StringName] which " +"will contain the type name of the selected object or be empty if no item is " +"selected.\n" +"The [param base_type] specifies the base type of objects to display. For " +"example, if you set this to \"Resource\", all types derived from [Resource] " +"will display in the create dialog.\n" +"The [param current_type] will be passed in the search box of the create " +"dialog, and the specified type can be immediately selected when the dialog " +"pops up. If the [param current_type] is not derived from [param base_type], " +"there will be no result of the type in the dialog.\n" +"The [param dialog_title] allows you to define a custom title for the dialog. " +"This is useful if you want to accurately hint the usage of the dialog. If the " +"[param dialog_title] is an empty string, the dialog will use \"Create New " +"'Base Type'\" as the default title.\n" +"The [param type_blocklist] contains a list of type names, and the types in " +"the blocklist will be hidden from the create dialog.\n" +"[b]Note:[/b] Trying to list the base type in the [param type_blocklist] will " +"hide all types derived from the base type from the create dialog." +msgstr "" +"Відкриває діалогове вікно редактора для створення об’єкта.\n" +"[param callback] має приймати один аргумент типу [StringName], який міститиме " +"назву типу вибраного об’єкта або бути порожнім, якщо жоден елемент не " +"вибрано.\n" +"[Параметр base_type] визначає базовий тип об’єктів для відображення. " +"Наприклад, якщо встановити значення «Ресурс», у діалоговому вікні створення " +"відображатимуться всі типи, отримані від [Ресурс].\n" +"Параметр [param current_type] буде передано в поле пошуку діалогового вікна " +"створення, і зазначений тип можна буде вибрати одразу, коли з’явиться " +"діалогове вікно. Якщо [param current_type] не є похідним від [param " +"base_type], у діалоговому вікні не буде результату типу.\n" +"Параметр [param dialog_title] дозволяє вам визначити настроюваний заголовок " +"для діалогового вікна. Це корисно, якщо ви хочете точно натякнути на " +"використання діалогового вікна. Якщо [param dialog_title] є порожнім рядком, " +"діалогове вікно використовуватиме «Створити новий 'базовий тип'» як назву за " +"умовчанням.\n" +"[Параметр type_blocklist] містить список імен типів, і типи в списку " +"блокувань будуть приховані в діалоговому вікні створення.\n" +"[b]Примітка:[/b] Спроба вказати базовий тип у [param type_blocklist] приховає " +"всі типи, похідні від базового типу, у діалоговому вікні створення." + msgid "" "Pops up the [param dialog] in the editor UI with [method Window." "popup_exclusive]. The dialog must have no current parent, otherwise the " @@ -42448,6 +54660,117 @@ msgstr "" "поточного батька, інакше метод не виходить.\n" "Дивись також [Method Window.set_unparent_when_invisible]." +msgid "" +"Pops up an editor dialog for selecting a method from [param object]. The " +"[param callback] must take a single argument of type [String] which will " +"contain the name of the selected method or be empty if the dialog is " +"canceled. If [param current_value] is provided, the method will be selected " +"automatically in the method list, if it exists." +msgstr "" +"Відкриває діалогове вікно редактора для вибору методу з [param object]. " +"[param callback] має приймати один аргумент типу [String], який міститиме " +"назву вибраного методу або бути порожнім, якщо діалогове вікно скасовано. " +"Якщо вказано [param current_value], метод буде вибрано автоматично у списку " +"методів, якщо він існує." + +msgid "" +"Pops up an editor dialog for selecting a [Node] from the edited scene. The " +"[param callback] must take a single argument of type [NodePath]. It is called " +"on the selected [NodePath] or the empty path [code]^\"\"[/code] if the dialog " +"is canceled. If [param valid_types] is provided, the dialog will only show " +"Nodes that match one of the listed Node types. If [param current_value] is " +"provided, the Node will be automatically selected in the tree, if it exists.\n" +"[b]Example:[/b] Display the node selection dialog as soon as this node is " +"added to the tree for the first time:\n" +"[codeblock]\n" +"func _ready():\n" +" if Engine.is_editor_hint():\n" +" EditorInterface.popup_node_selector(_on_node_selected, [\"Button\"])\n" +"\n" +"func _on_node_selected(node_path):\n" +" if node_path.is_empty():\n" +" print(\"node selection canceled\")\n" +" else:\n" +" print(\"selected \", node_path)\n" +"[/codeblock]" +msgstr "" +"Відкриває діалогове вікно редактора для вибору [Вузла] з редагованої сцени. " +"[param callback] має приймати один аргумент типу [NodePath]. Він викликається " +"на вибраному [NodePath] або порожньому шляху [code]^\"\"[/code], якщо " +"діалогове вікно скасовано. Якщо вказано [param valid_types], у діалоговому " +"вікні відображатимуться лише вузли, які відповідають одному з перелічених " +"типів вузлів. Якщо вказано [param current_value], вузол буде автоматично " +"вибрано в дереві, якщо воно існує.\n" +"[b]Приклад: [/b] Відобразити діалогове вікно вибору вузла, щойно цей вузол " +"буде додано до дерева вперше:\n" +"[codeblock]\n" +"func _ready():\n" +" if Engine.is_editor_hint():\n" +" EditorInterface.popup_node_selector(_on_node_selected, [\"Bottom\"])\n" +"\n" +"func _on_node_selected(node_path):\n" +" if node_path.is_empty():\n" +" print(\"вибір вузла скасовано\")\n" +" else:\n" +" print(\"вибрано\", node_path)\n" +"[/codeblock]" + +msgid "" +"Pops up an editor dialog for selecting properties from [param object]. The " +"[param callback] must take a single argument of type [NodePath]. It is called " +"on the selected property path (see [method NodePath.get_as_property_path]) or " +"the empty path [code]^\"\"[/code] if the dialog is canceled. If [param " +"type_filter] is provided, the dialog will only show properties that match one " +"of the listed [enum Variant.Type] values. If [param current_value] is " +"provided, the property will be selected automatically in the property list, " +"if it exists.\n" +"[codeblock]\n" +"func _ready():\n" +" if Engine.is_editor_hint():\n" +" EditorInterface.popup_property_selector(this, _on_property_selected, " +"[TYPE_INT])\n" +"\n" +"func _on_property_selected(property_path):\n" +" if property_path.is_empty():\n" +" print(\"property selection canceled\")\n" +" else:\n" +" print(\"selected \", property_path)\n" +"[/codeblock]" +msgstr "" +"Відкриває діалогове вікно редактора для вибору властивостей із [param " +"object]. [param callback] має приймати один аргумент типу [NodePath]. Він " +"викликається за вибраним шляхом властивості (див. [метод NodePath." +"get_as_property_path]) або порожнім шляхом [code]^\"\"[/code], якщо діалогове " +"вікно скасовано. Якщо надано [param type_filter], діалогове вікно " +"відображатиме лише властивості, які відповідають одному з перелічених значень " +"[enum Variant.Type]. Якщо вказано [param current_value], властивість буде " +"автоматично вибрано у списку властивостей, якщо він існує.\n" +"[codeblock]\n" +"func _ready():\n" +" if Engine.is_editor_hint():\n" +" EditorInterface.popup_property_selector(this, _on_property_selected, " +"[TYPE_INT])\n" +"\n" +"func _on_property_selected(property_path):\n" +" if property_path.is_empty():\n" +" print(\"вибір властивостей скасовано\")\n" +" else:\n" +" print(\"вибрано\", шлях_властивості)\n" +"[/codeblock]" + +msgid "" +"Pops up an editor dialog for quick selecting a resource file. The [param " +"callback] must take a single argument of type [String] which will contain the " +"path of the selected resource or be empty if the dialog is canceled. If " +"[param base_types] is provided, the dialog will only show resources that " +"match these types. Only types deriving from [Resource] are supported." +msgstr "" +"Відкриває діалогове вікно редактора для швидкого вибору файлу ресурсу. [param " +"callback] має приймати один аргумент типу [String], який міститиме шлях до " +"вибраного ресурсу або бути порожнім, якщо діалогове вікно скасовано. Якщо " +"вказано [param base_types], діалогове вікно відображатиме лише ресурси, які " +"відповідають цим типам. Підтримуються лише типи, похідні від [Resource]." + msgid "Reloads the scene at the given path." msgstr "Завантажує сцену на даній доріжці." @@ -42882,6 +55205,15 @@ msgstr "" "[UndoRedo] дії. Як і з усіма методами підгізмо, трансформуються в локальну " "космічну повагу Node3D. Зателефоновано для активного Gizmos цього плагіна." +msgid "" +"Override this method to return a custom [EditorNode3DGizmo] for the 3D nodes " +"of your choice, return [code]null[/code] for the rest of nodes. See also " +"[method _has_gizmo]." +msgstr "" +"Перевизначте цей метод, щоб повернути спеціальний [EditorNode3DGizmo] для 3D-" +"вузлів за вашим вибором, повернути [code]null[/code] для решти вузлів. " +"Дивіться також [метод _has_gizmo]." + msgid "" "Override this method to provide the name that will appear in the gizmo " "visibility menu." @@ -43153,14 +55485,14 @@ msgid "" "- Linux: ~/.cache/godot/\n" "[/codeblock]" msgstr "" -"Повертає абсолютний шлях до папки кешу користувача. Ця папка повинна бути " -"використана для тимчасових даних, які можуть бути видалені безпечно, коли " -"редактор закритий (наприклад, генерований масив ресурсів).\n" -"[b]Пріжки за платформою:[/b]\n" -"[codeblock lang=text]\n" -"- Вікна: %LOCALAPPDATA%\\Godot\\\n" -"- macOS: ~\n" -"English, Українська, Français...\n" +"Повертає абсолютний шлях до папки кешу користувача. Цю папку слід " +"використовувати для тимчасових даних, які можна безпечно видалити, коли " +"редактор закривається (наприклад, створені мініатюри ресурсів). \n" +"[b]Шляхи за умовчанням для кожної платформи:[/b] \n" +"[codeblock lang=text] \n" +"- Windows: %LOCALAPPDATA%\\Godot\\ \n" +"- macOS: ~/Library/Caches/Godot/ \n" +"- Linux: ~/.cache/godot/ \n" "[/codeblock]" msgid "" @@ -43389,41 +55721,43 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Зателефоновано двигуном, коли оновлений перегляд редактора 3D. Використовуйте " -"[code]overlay[/code] [Control] для малювання. Ви можете оновити порт " -"перегляду вручну за допомогою виклику [method update_overlays].\n" -"[блоки коду]\n" -"[видання]\n" -"Func _forward_3d_draw_over_viewport(overlay):\n" -"# Намалюйте коло на позицію курсора.\n" -"JavaScript licenses API Веб-сайт Go1.13.8 білий\n" +"Викликається механізмом, коли вікно перегляду 3D-редактора оновлюється. " +"Використовуйте [code]накладення[/code] [Control] для малювання. Ви можете " +"оновити область перегляду вручну, викликавши [метод update_overlays]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"func _forward_3d_draw_over_viewport(overlay): \n" +" # Намалюйте коло в позиції курсора. \n" +" overlay.draw_circle(overlay.get_local_mouse_position(), 64, Color." +"WHITE) \n" "\n" -"Func _forward_3d_gui_input(camera, захід):\n" -"якщо подія є Вхід\n" -"# Перегляд порту, коли курсор переміщається.\n" -"Update_overlays()\n" -"Редактор пароля.AFTER_GUI_INPUT_STOP\n" -"Редактор пароля.AFTER_GUI_INPUT_PASS\n" -"[/gdscript]\n" -"[csharp]\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"Довідник\n" -"(Українська) Намалюйте коло на позиції курсора.\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"Про нас\n" +"func _forward_3d_gui_input(camera, event): \n" +" якщо подією є InputEventMouseMotion: \n" +" # Перемалювати вікно перегляду під час переміщення курсору. \n" +" update_overlays() \n" +" return EditorPlugin.AFTER_GUI_INPUT_STOP \n" +" return EditorPlugin.AFTER_GUI_INPUT_PASS \n" +"[/gdscript] \n" +"[csharp] \n" +"public override void _Forward3DDrawOverViewport(Control viewportControl) \n" +"{\n" +" // Намалювати коло в позиції курсора. \n" +" viewportControl.DrawCircle(viewportControl.GetLocalMousePosition(), 64, " +"Colors.White); \n" +"}\n" "\n" -"аматор РедакторPlugin.AfterGuiInput _Forward3DGuiInput(Camera3D viewport " -"Камера, Вхід\n" -"Довідник\n" -"якщо (@event is InputEventMouseMouseMouseMotion)\n" -"Довідник\n" -"(Українська) Редагування портів при переході курсора.\n" -"UpdateOverlays();\n" -"Зворотній зв'язок\n" -"Про нас\n" -"Зворотній зв'язок Пас;\n" -"Про нас\n" -"[/csharp]\n" +"public override EditorPlugin.AfterGuiInput _Forward3DGuiInput(Camera3D " +"viewportCamera, InputEvent @event) \n" +"{\n" +" if (@event is InputEventMouseMotion) \n" +" { \n" +" // Перемальовувати вікно перегляду під час переміщення курсору. \n" +" UpdateOverlay(); \n" +" return EditorPlugin.AfterGuiInput.Stop; \n" +" } \n" +" return EditorPlugin.AfterGuiInput.Pass; \n" +"}\n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -43439,6 +55773,85 @@ msgstr "" "Вам потрібно включити виклик цього методу за допомогою " "[метод_config_draw_over_forwarding_enabled]." +msgid "" +"Called when there is a root node in the current edited scene, [method " +"_handles] is implemented, and an [InputEvent] happens in the 3D viewport. The " +"return value decides whether the [InputEvent] is consumed or forwarded to " +"other [EditorPlugin]s. See [enum AfterGUIInput] for options.\n" +"[codeblocks]\n" +"[gdscript]\n" +"# Prevents the InputEvent from reaching other Editor classes.\n" +"func _forward_3d_gui_input(camera, event):\n" +" return EditorPlugin.AFTER_GUI_INPUT_STOP\n" +"[/gdscript]\n" +"[csharp]\n" +"// Prevents the InputEvent from reaching other Editor classes.\n" +"public override EditorPlugin.AfterGuiInput _Forward3DGuiInput(Camera3D " +"camera, InputEvent @event)\n" +"{\n" +" return EditorPlugin.AfterGuiInput.Stop;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"This method must return [constant AFTER_GUI_INPUT_PASS] in order to forward " +"the [InputEvent] to other Editor classes.\n" +"[codeblocks]\n" +"[gdscript]\n" +"# Consumes InputEventMouseMotion and forwards other InputEvent types.\n" +"func _forward_3d_gui_input(camera, event):\n" +" return EditorPlugin.AFTER_GUI_INPUT_STOP if event is " +"InputEventMouseMotion else EditorPlugin.AFTER_GUI_INPUT_PASS\n" +"[/gdscript]\n" +"[csharp]\n" +"// Consumes InputEventMouseMotion and forwards other InputEvent types.\n" +"public override EditorPlugin.AfterGuiInput _Forward3DGuiInput(Camera3D " +"camera, InputEvent @event)\n" +"{\n" +" return @event is InputEventMouseMotion ? EditorPlugin.AfterGuiInput." +"Stop : EditorPlugin.AfterGuiInput.Pass;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Викликається, коли в поточній відредагованій сцені є кореневий вузол, [метод " +"_handles] реалізовано, а [InputEvent] відбувається у 3D-окні перегляду. " +"Повернене значення вирішує, чи споживається [InputEvent] чи пересилається " +"іншим [EditorPlugin]. Параметри див. [enum AfterGUInput]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"# Запобігає досягненню InputEvent інших класів Editor.\n" +"func _forward_3d_gui_input(camera, event): \n" +" return EditorPlugin.AFTER_GUI_INPUT_STOP \n" +"[/gdscript] \n" +"[csharp] \n" +"// Запобігає досягненню InputEvent інших класів редактора. \n" +"публічне перевизначення EditorPlugin.AfterGuiInput " +"_Forward3DGuiInput(Camera3D camera, InputEvent @event) \n" +"{\n" +" return EditorPlugin.AfterGuiInput.Stop; \n" +"}\n" +"[/csharp] \n" +"[/codeblocks] \n" +"Цей метод має повернути [константу AFTER_GUI_INPUT_PASS], щоб переслати " +"[InputEvent] до інших класів редактора. \n" +"[codeblocks] \n" +"[gdscript] \n" +"# Споживає InputEventMouseMotion і пересилає інші типи InputEvent. \n" +"func _forward_3d_gui_input(camera, event): \n" +" повертає EditorPlugin.AFTER_GUI_INPUT_STOP, якщо подією є " +"InputEventMouseMotion, інакше EditorPlugin.AFTER_GUI_INPUT_PASS \n" +"[/gdscript] \n" +"[csharp] \n" +"// Споживає InputEventMouseMotion і пересилає інші типи InputEvent. \n" +"публічне перевизначення EditorPlugin.AfterGuiInput " +"_Forward3DGuiInput(Camera3D camera, InputEvent @event) \n" +"{\n" +" return @event is InputEventMouseMotion? EditorPlugin.AfterGuiInput.Stop : " +"EditorPlugin.AfterGuiInput.Pass; \n" +"}\n" +"[/csharp] \n" +"[/codeblocks]" + msgid "" "Called by the engine when the 2D editor's viewport is updated. Use the " "[code]overlay[/code] [Control] for drawing. You can update the viewport " @@ -43477,40 +55890,42 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Зателефоновано двигуном, коли оновлений перегляд редактора 2D. Використовуйте " -"[code]overlay[/code] [Control] для малювання. Ви можете оновити порт " -"перегляду вручну за допомогою виклику [method update_overlays].\n" -"[блоки коду]\n" -"[видання]\n" -"Func _forward_canvas_draw_over_viewport(overlay):\n" -"# Намалюйте коло на позицію курсора.\n" -"JavaScript licenses API Веб-сайт Go1.13.8 білий\n" +"Викликається механізмом, коли вікно перегляду 2D-редактора оновлюється. " +"Використовуйте [code]накладення[/code] [Control] для малювання. Ви можете " +"оновити область перегляду вручну, викликавши [метод update_overlays]. \n" +"[кодові блоки] \n" +"[gdscript] \n" +"func _forward_canvas_draw_over_viewport(overlay): \n" +" # Намалюйте коло в позиції курсора. \n" +" overlay.draw_circle(overlay.get_local_mouse_position(), 64, Color." +"WHITE) \n" "\n" -"Func _forward_canvas_gui_input(event):\n" -"якщо подія є Вхід\n" -"# Перегляд порту, коли курсор переміщається.\n" -"Update_overlays()\n" -"Повернення\n" -"повернення false\n" -"[/gdscript]\n" -"[csharp]\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"Довідник\n" -"(Українська) Намалюйте коло на позиції курсора.\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"Про нас\n" +"func _forward_canvas_gui_input(event): \n" +" if event is InputEventMouseMotion: \n" +" # Перемалювати вікно перегляду під час переміщення курсору. \n" +" update_overlays() \n" +" return true \n" +" return false \n" +"[/gdscript] \n" +"[csharp] \n" +"public override void _ForwardCanvasDrawOverViewport(Control viewportControl)\n" +"{\n" +" // Намалювати коло в позиції курсора. \n" +" viewportControl.DrawCircle(viewportControl.GetLocalMousePosition(), 64, " +"Colors.White); \n" +"}\n" "\n" -"публічний надride bool _ForwardCanvasGuiInput(ВхідEvent @event)\n" -"Довідник\n" -"якщо (@event is InputEventMouseMouseMouseMotion)\n" -"Довідник\n" -"(Українська) Редагування портів при переході курсора.\n" -"UpdateOverlays();\n" -"повернути true;\n" -"Про нас\n" -"повернення false;\n" -"Про нас\n" -"[/csharp]\n" +"public override bool _ForwardCanvasGuiInput(InputEvent @event) \n" +"{\n" +" if (@event is InputEventMouseMotion) \n" +" { \n" +" // Перемальовувати вікно перегляду під час переміщення курсору. \n" +" UpdateOverlay(); \n" +" return ture; \n" +" } \n" +" return false; \n" +"}\n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -43526,6 +55941,90 @@ msgstr "" "Вам потрібно включити виклик цього методу за допомогою " "[метод_config_draw_over_forwarding_enabled]." +msgid "" +"Called when there is a root node in the current edited scene, [method " +"_handles] is implemented, and an [InputEvent] happens in the 2D viewport. If " +"this method returns [code]true[/code], [param event] is intercepted by this " +"[EditorPlugin], otherwise [param event] is forwarded to other Editor " +"classes.\n" +"[codeblocks]\n" +"[gdscript]\n" +"# Prevents the InputEvent from reaching other Editor classes.\n" +"func _forward_canvas_gui_input(event):\n" +" return true\n" +"[/gdscript]\n" +"[csharp]\n" +"// Prevents the InputEvent from reaching other Editor classes.\n" +"public override bool ForwardCanvasGuiInput(InputEvent @event)\n" +"{\n" +" return true;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"This method must return [code]false[/code] in order to forward the " +"[InputEvent] to other Editor classes.\n" +"[codeblocks]\n" +"[gdscript]\n" +"# Consumes InputEventMouseMotion and forwards other InputEvent types.\n" +"func _forward_canvas_gui_input(event):\n" +" if (event is InputEventMouseMotion):\n" +" return true\n" +" return false\n" +"[/gdscript]\n" +"[csharp]\n" +"// Consumes InputEventMouseMotion and forwards other InputEvent types.\n" +"public override bool _ForwardCanvasGuiInput(InputEvent @event)\n" +"{\n" +" if (@event is InputEventMouseMotion)\n" +" {\n" +" return true;\n" +" }\n" +" return false;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Викликається, коли в поточній відредагованій сцені є кореневий вузол, [метод " +"_handles] реалізується, а [InputEvent] відбувається у 2D вікні перегляду. " +"Якщо цей метод повертає [code]true[/code], [param event] перехоплюється цим " +"[EditorPlugin], інакше [param event] пересилається до інших класів Editor. \n" +"[codeblocks] \n" +"[gdscript] \n" +"# Запобігає досягненню InputEvent інших класів Editor. \n" +"func _forward_canvas_gui_input(подія): \n" +" return true \n" +"[/gdscript] \n" +"[csharp] \n" +"// Запобігає досягненню InputEvent інших класів редактора. \n" +"публічне перевизначення bool ForwardCanvasGuiInput(InputEvent @event) \n" +"{\n" +" return true; \n" +"}\n" +"[/csharp] \n" +"[/codeblocks] \n" +"Цей метод має повернути [code]false[/code], щоб переслати [InputEvent] до " +"інших класів Editor. \n" +"[codeblocks] \n" +"[gdscript] \n" +"# Споживає InputEventMouseMotion і пересилає інші типи InputEvent. \n" +"func _forward_canvas_gui_input(подія): \n" +" if (event is InputEventMouseMotion): \n" +" return true \n" +" return false \n" +"[/gdscript] \n" +"[csharp] \n" +"// Споживає InputEventMouseMotion і пересилає інші типи InputEvent. \n" +"public override bool _ForwardCanvasGuiInput(InputEvent @event) \n" +"{\n" +" if (@event is InputEventMouseMotion) \n" +" { \n" +" return true; \n" +" } \n" +" return false; \n" +"}\n" +"[/csharp] \n" +"[/codeblocks]" + msgid "" "This is for editors that edit script-based objects. You can return a list of " "breakpoints in the format ([code]script:line[/code]), for example: " @@ -43564,31 +56063,33 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Надіславши цей метод у вашому плагіні, щоб повернути [Texture2D] для того, " -"щоб дати його іконку.\n" -"Для основних плагінів екрана це з'являється у верхній частині екрана, " -"праворуч від кнопки «2D», «3D», «Script», «AssetLib».\n" -"В ідеалі іконка плагіна повинна бути біла з прозорим фоном і 16 × 16 пікселів " -"у розмірах.\n" -"[блоки коду]\n" -"[видання]\n" -"Func _get_plugin_icon():\n" -"# Ви можете використовувати на замовлення іконку:\n" -"(\"res://addons/my_plugin/my_plugin_icon.)\n" -"# Або використовувати вбудовану іконку:\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"[/gdscript]\n" -"[csharp]\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"Довідник\n" -"(Українська) Ви можете використовувати на замовлення іконку:\n" -"Редагування ресурсу.Load<Texture2D>(\"res://addons/my_plugin/my_plugin_icon." -"\");\n" -"(Українська) Або використовуйте вбудовану іконку:\n" -"Зворотній зв'язок.Singleton.GetEditorTheme().GetIcon(\"Node\", " -"\"EditorIcons\");\n" -"Про нас\n" -"[/csharp]\n" +"Перевизначте цей метод у своєму плагіні, щоб повернути [Texture2D], щоб " +"надати йому піктограму. \n" +"Для плагінів головного екрана це відображається у верхній частині екрана, " +"праворуч від кнопок «2D», «3D», «Сценарій» і «AssetLib». \n" +"В ідеалі значок плагіна має бути білим із прозорим фоном і розміром 16×16 " +"пікселів. \n" +"[codeblocks] \n" +"[gdscript] \n" +"func _get_plugin_icon(): \n" +" # Ви можете використовувати спеціальний значок: \n" +" повернути попереднє завантаження (\"res://addons/my_plugin/my_plugin_icon." +"svg\") \n" +" # Або використовуйте вбудовану піктограму: \n" +" return EditorInterface.get_editor_theme().get_icon(\"Вузол\", " +"\"EditorIcons\") \n" +"[/gdscript] \n" +"[csharp] \n" +"public override Texture2D _GetPluginIcon() \n" +"{\n" +" // Ви можете використовувати спеціальний значок: \n" +" return ResourceLoader.Load<Texture2D>(\"res://addons/my_plugin/" +"my_plugin_icon.svg\"); \n" +" // Або використовуйте вбудовану піктограму: \n" +" return EditorInterface.Singleton.GetEditorTheme().GetIcon(\"Вузол\", " +"\"EditorIcons\"); \n" +"}\n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -43634,10 +56135,10 @@ msgstr "" "налаштувань, які повинні зберігатися з проектом.\n" "[b]Примітка:[/b] Ви повинні здійснити [метод_plugin_name] для того, щоб " "держава зберігалася і відновила правильно.\n" -"[блокування коду]\n" +"[codeblock]\n" "Func _get_state():\n" -"var State = {\"zoom\": масштаб, \"preferred_color\": my_color}\n" -"стан повернення\n" +"var State = {\"zoom\": scale, \"preferred_color\": my_color}\n" +"return stase\n" "[/codeblock]" msgid "" @@ -43671,34 +56172,34 @@ msgid "" " return \"\"\n" "[/codeblock]" msgstr "" -"Зазначте цей метод, щоб забезпечити користувацьке повідомлення, яке списує " -"незбережені зміни. Редактор зателефонує цей метод при виході або при " -"закриванні сцени, і відображати повернутий рядок у діалоговому вікні " -"підтвердження. Поверніть порожній рядок, якщо плагін не заданий зміни.\n" -"При закриванні сцени, [param for_scene] - шлях до сцени, що закривається. Ви " -"можете використовувати його для обробки вбудованих ресурсів на цій сцені.\n" -"Якщо користувач підтверджує збереження, [метод _save_external_data] буде " -"викликано, перед закриттям редактора.\n" -"[блокування коду]\n" -"Func _get_unsaved_status(for_scene):\n" -"якщо не засуджено:\n" -"Зворотній зв'язок\n" +"Замініть цей метод, щоб надати спеціальне повідомлення зі списком " +"незбережених змін. Редактор викличе цей метод під час виходу або закриття " +"сцени та відобразить повернутий рядок у діалоговому вікні підтвердження. " +"Повертає порожній рядок, якщо плагін не має незбережених змін. \n" +"Під час закриття сцени [param for_scene] — це шлях до сцени, що закривається. " +"Ви можете використовувати його для обробки вбудованих ресурсів у цій сцені. \n" +"Якщо користувач підтвердить збереження, перед закриттям редактора буде " +"викликано [метод _save_external_data]. \n" +"[codeblock] \n" +"func _get_unsaved_status(for_scene): \n" +" is no unsaved: \n" +" return \"\" \n" "\n" -"if for_scene.is_empty():\n" -"повернення \"Зберегти зміни в MyCustomPlugin перед закриттям?\"\n" -"ще:\n" -"повернення \"Scene %s має зміни від MyCustomPlugin. Збережіть перед " -"закриттям? % for_scene.get_file()\n" +" якщо for_scene.is_empty(): \n" +" return \"Зберегти зміни в MyCustomPlugin перед закриттям?\" \n" +" else: \n" +" return \"Сцена %s має зміни з MyCustomPlugin. Зберегти перед " +"закриттям?\" % for_scene.get_file() \n" "\n" -"Func _save_external_data():\n" -"unsaved = false\n" -"[/codeblock]\n" -"Якщо плагін не має особливих змін, ви можете ігнорувати дзвінки при " -"закриванні сцен:\n" -"[блокування коду]\n" -"Func _get_unsaved_status(for_scene):\n" -"if not for_scene.is_empty():\n" -"Зворотній зв'язок\n" +"func _save_external_data(): \n" +" unsaved = false \n" +"[/codeblock] \n" +"Якщо плагін не має змін, пов’язаних зі сценою, ви можете ігнорувати виклики " +"під час закриття сцени: \n" +"[codeblock] \n" +"func _get_unsaved_status(for_scene): \n" +" if no for_scene.is_empty(): \n" +" return \"\" \n" "[/codeblock]" msgid "" @@ -43715,16 +56216,18 @@ msgid "" " configuration.set_value(\"MyPlugin\", \"icon_color\", $Icon.modulate)\n" "[/codeblock]" msgstr "" -"Зазначте цей метод, щоб надати графічний макет плагіна або будь-які інші " -"дані, які потрібно зберігати. Це використовується для збереження макета " -"редактора проекту, коли [метод черги_save_layout] називається або змінено " -"макет редактора (наприклад, зміна позиції дока). Дані зберігаються в файлі " -"[code]editor_layout.cfg[/code] в каталозі метаданих редактора.\n" -"Використовуйте [метод_window_layout] для відновлення збереженого макета.\n" -"[блокування коду]\n" -"Func _get_window_layout(конфігурація):\n" -"конфігурація.set_value(\"MyPlugin\", \"window_position\", $Window.position)\n" -"конфігурація.set_value(\"MyPlugin\", \"icon_color\", $Icon.modulate)\n" +"Перевизначте цей метод, щоб надати макет графічного інтерфейсу користувача " +"плагіна або будь-яких інших даних, які ви хочете зберегти. Це " +"використовується для збереження макета редактора проекту, коли викликається " +"[метод queue_save_layout] або змінюється макет редактора (наприклад, " +"змінюється положення дока). Дані зберігаються у файлі [code]editor_layout." +"cfg[/code] у каталозі метаданих редактора. \n" +"Використовуйте [метод _set_window_layout], щоб відновити збережений макет. \n" +"[codeblock] \n" +"func _get_window_layout(configuration): \n" +" configuration.set_value(\"MyPlugin\", \"window_position\", $Window." +"position) \n" +" configuration.set_value(\"MyPlugin\", \"icon_color\", $Icon.modulate) \n" "[/codeblock]" msgid "" @@ -43779,35 +56282,35 @@ msgid "" "\"EditorIcons\")\n" "[/codeblock]" msgstr "" -"Повертає [code]true[/code], якщо це основний плагін редактора екрана (він йде " -"в робочому просторі разом з [b]2D[/b], [b]3D[/b], [b]Script[/b] і " -"[b]AssetLib[/b]).\n" -"Коли вибрано робочий простір плагіна, будуть приховані інші основні плагіни, " -"але ваш плагін не з'явиться автоматично. Потрібно додавати у дитини " -"[методичний редакторІнтерface.get_editor_main_screen] і зробити видимий " -"всередині [метод].\n" -"Використовуйте [method _get_plugin_name] і [метод _get_plugin_icon] для " -"налаштування зовнішнього вигляду кнопки плагіна.\n" -"[блокування коду]\n" -"var плагін_control\n" +"Повертає [code]true[/code], якщо це плагін редактора головного екрана (він " +"входить у селектор робочої області разом із [b]2D[/b], [b]3D[/b], [b]Script[/" +"b] і [b]AssetLib[/b]). \n" +"Коли вибрано робочу область плагіна, інші плагіни головного екрана будуть " +"приховані, але ваш плагін не з’явиться автоматично. Його потрібно додати як " +"дочірнього елемента [method EditorInterface.get_editor_main_screen] і зробити " +"видимим у [method _make_visible]. \n" +"Використовуйте [method _get_plugin_name] і [method _get_plugin_icon], щоб " +"налаштувати вигляд кнопки плагіна. \n" +"[codeblock] \n" +"var plugin_control \n" "\n" -"Func _enter_tree():\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"EditorInterface.get_editor_main_screen().add_child(plugin_control)\n" -"плагін_control.hide()\n" +"func _enter_tree(): \n" +" plugin_control = preload(\"my_plugin_control.tscn\").instantiate() \n" +" EditorInterface.get_editor_main_screen().add_child(plugin_control) \n" +" plugin_control.hide() \n" "\n" -"Func _has_main_screen():\n" -"Повернення\n" +"func _has_main_screen(): \n" +" return true \n" "\n" -"href=\"http://realtor.if.ua/\" title=\"Агентство нерухомості Ріелтор\" /></" -"a>\n" -"JavaScript licenses API Веб-сайт\n" +"func _make_visible(visible): \n" +" plugin_control.visible = visible \n" "\n" -"Func _get_plugin_name():\n" -"Зворотній зв'язок \"My Super Cool Plugin 3000\"\n" +"func _get_plugin_name(): \n" +" return \"My Super Cool Plugin 3000\" \n" "\n" -"Func _get_plugin_icon():\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" +"func _get_plugin_icon(): \n" +" return EditorInterface.get_editor_theme().get_icon(\"Node\", " +"\"EditorIcons\") \n" "[/codeblock]" msgid "" @@ -43839,14 +56342,14 @@ msgid "" " preferred_color = data.get(\"my_color\", Color.WHITE)\n" "[/codeblock]" msgstr "" -"Відновити стан, який збережений [метод] _get_state. Цей метод називається, " -"коли в редакторі змінився поточний вкладок.\n" -"[b]Примітка:[/b] Ваш плагін повинен здійснюватися [метод _get_plugin_name], " -"інакше він не буде визнаний і цей метод не буде викликаний.\n" -"[блокування коду]\n" -"Func _set_state(data):\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"use_color = data.get(\"my_color\", Колір. білий\n" +"Відновити стан, збережений [методом _get_state]. Цей метод викликається, коли " +"поточна вкладка сцени змінюється в редакторі. \n" +"[b]Примітка.[/b] Ваш плагін має реалізовувати [метод _get_plugin_name], " +"інакше його не буде розпізнано, і цей метод не буде викликано. \n" +"[codeblock] \n" +"func _set_state(data): \n" +" zoom = data.get(\"zoom\", 1.0) \n" +" preferred_color = data.get(\"my_color\", Color.WHITE) \n" "[/codeblock]" msgid "" @@ -43861,20 +56364,55 @@ msgid "" "Color.WHITE)\n" "[/codeblock]" msgstr "" -"Відновити макет та дані плагіна, збережені [метод_window_layout]. Цей метод " -"називається для кожного плагіна для запуску редактора. Використовуйте надані " -"файли [param конфігурації] для читання збережених даних.\n" -"[блокування коду]\n" -"Func _set_window_layout(конфігурація):\n" -"$Window.position = конфігурація.get_value( \"MyPlugin\", \"window_position\", " -"Vector2()))\n" -"$Icon.modulate = конфігурація.get_value( \"MyPlugin\", \"icon_color\", колір. " -"білий\n" +"Відновити макет графічного інтерфейсу плагіна та дані, збережені [методом " +"_get_window_layout]. Цей метод викликається для кожного плагіна під час " +"запуску редактора. Використовуйте наданий файл [param configuration], щоб " +"прочитати збережені дані. \n" +"[codeblock] \n" +"func _set_window_layout(configuration): \n" +" $Window.position = configuration.get_value(\"MyPlugin\", " +"\"window_position\", Vector2()) \n" +" $Icon.modulate = configuration.get_value(\"MyPlugin\", \"icon_color\", " +"Color.WHITE) \n" "[/codeblock]" msgid "Adds a script at [param path] to the Autoload list as [param name]." msgstr "Додає скрипт [параметр шлях] до списку автозавантаження, як [прізвище]." +msgid "" +"Adds a plugin to the context menu. [param slot] is the context menu where the " +"plugin will be added.\n" +"See [enum EditorContextMenuPlugin.ContextMenuSlot] for available context " +"menus. A plugin instance can belong only to a single context menu slot." +msgstr "" +"Додає плагін до контекстного меню. [param slot] – це контекстне меню, куди " +"буде додано плагін.\n" +"Перегляньте [enum EditorContextMenuPlugin.ContextMenuSlot] для доступних " +"контекстних меню. Екземпляр плагіна може належати лише до одного слота " +"контекстного меню." + +msgid "" +"Adds a control to the bottom panel (together with Output, Debug, Animation, " +"etc.). Returns a reference to the button added. It's up to you to hide/show " +"the button when needed. When your plugin is deactivated, make sure to remove " +"your custom control with [method remove_control_from_bottom_panel] and free " +"it with [method Node.queue_free].\n" +"Optionally, you can specify a shortcut parameter. When pressed, this shortcut " +"will toggle the bottom panel's visibility. See the default editor bottom " +"panel shortcuts in the Editor Settings for inspiration. Per convention, they " +"all use [kbd]Alt[/kbd] modifier." +msgstr "" +"Додає елемент керування на нижню панель (разом з виводом, налагодженням, " +"анімацією тощо). Повертає посилання на додану кнопку. Ви самі вирішуєте " +"приховати/показати кнопку, коли це необхідно. Коли ваш плагін дезактивовано, " +"обов’язково видаліть свій настроюваний елемент керування за допомогою [методу " +"remove_control_from_bottom_panel] і звільніть його за допомогою [методу Node." +"queue_free].\n" +"За бажанням можна вказати параметр швидкого доступу. При натисканні цей ярлик " +"перемикає видимість нижньої панелі. Для натхнення перегляньте стандартні " +"ярлики нижньої панелі редактора в налаштуваннях редактора. Відповідно до " +"умов, усі вони використовують модифікатор [kbd]Alt[/kbd]." + msgid "" "Adds a custom control to a container (see [enum CustomControlContainer]). " "There are many locations where custom controls can be added in the editor " @@ -43955,6 +56493,13 @@ msgstr "" "Додає [script] як плагін для Debugger. Сценарій повинен продовжити " "[РедагорДебугерПлюгін]." +msgid "" +"Registers a new [EditorExportPlatform]. Export platforms provides " +"functionality of exporting to the specific platform." +msgstr "" +"Реєструє новий [EditorExportPlatform]. Платформи експорту забезпечують " +"функціональність експорту на певну платформу." + msgid "" "Registers a new [EditorExportPlugin]. Export plugins are used to perform " "tasks when the project is being exported.\n" @@ -44003,24 +56548,24 @@ msgid "" "[/gdscript]\n" "[/codeblocks]" msgstr "" -"Реєструє новий [РедагорІнспекторПлугін]. Інспектор плагінів використовується " -"для розширення [РедагорІнспектор] та забезпечення користувацьких " -"конфігураційних інструментів для властивостей вашого об'єкта.\n" -"[b]Примітка:[/b] Завжди використовується [метод видалення_inspector_plugin] " -"для видалення зареєстрованого [РедагорІнспекторПлугін] при видаленні витоків " -"та несподіваної поведінки.\n" -"[блоки коду]\n" -"[видання]\n" +"Реєструє новий [EditorInspectorPlugin]. Плагіни Inspector використовуються " +"для розширення [EditorInspector] і надання спеціальних інструментів " +"налаштування властивостей вашого об’єкта. \n" +"[b]Примітка.[/b] Завжди використовуйте [метод remove_inspector_plugin], щоб " +"видалити зареєстрований [EditorInspectorPlugin], коли ваш [EditorPlugin] " +"вимкнено, щоб запобігти витокам і неочікуваній поведінці. \n" +"[codeblocks] \n" +"[gdscript] \n" "const MyInspectorPlugin = preload(\"res://addons/your_addon/path/to/your/" -"script.gd\")\n" -"var inspector_plugin = MyInspectorPlugin.new()\n" +"script.gd\") \n" +"var inspector_plugin = MyInspectorPlugin.new() \n" "\n" -"Func _enter_tree():\n" -"add_inspector_plugin(інспектор_plugin)\n" +"func _enter_tree(): \n" +" add_inspector_plugin(inspector_plugin) \n" "\n" -"Func _exit_tree():\n" -"remove_inspector_plugin(інспектор_plugin)\n" -"[/gdscript]\n" +"func _exit_tree(): \n" +" remove_inspector_plugin(inspector_plugin) \n" +"[/gdscript] \n" "[/codeblocks]" msgid "" @@ -44159,6 +56704,9 @@ msgstr "Збережіть макет редактора проекту." msgid "Removes an Autoload [param name] from the list." msgstr "Видаліть Автозавантаження [прізвище] з списку." +msgid "Removes the specified context menu plugin." +msgstr "Видаляє вказаний плагін контекстного меню." + msgid "" "Removes the control from the bottom panel. You have to manually [method Node." "queue_free] the control." @@ -44185,12 +56733,20 @@ msgstr "Видаліть користувацький тип, доданий [м msgid "Removes the debugger plugin with given script from the Debugger." msgstr "Видалення плагіна debugger з даним скриптом від Debugger." +msgid "Removes an export platform registered by [method add_export_platform]." +msgstr "" +"Видаляє платформу експорту, зареєстровану [методом add_export_platform]." + msgid "Removes an export plugin registered by [method add_export_plugin]." msgstr "Видалити експортний плагін, зареєстрований [метод add_export_plugin]." msgid "Removes an import plugin registered by [method add_import_plugin]." msgstr "Видалити імпортний плагін, зареєстрований [метод add_import_plugin]." +msgid "Removes an inspector plugin registered by [method add_inspector_plugin]." +msgstr "" +"Видаляє плагін інспектора, зареєстрований [методом add_inspector_plugin]." + msgid "Removes a gizmo plugin registered by [method add_node_3d_gizmo_plugin]." msgstr "Видалити плагін Gizmo зареєстрований [метод add_node_3d_gizmo_plugin]." @@ -44440,6 +56996,9 @@ msgstr "" "додайте його тут. Це забезпечує, що фокус буде відновлений, якщо інспектор " "освіжається." +msgid "Draw property as not selected. Used by the inspector." +msgstr "Малювати властивість як невибрану. Використовується інспектором." + msgid "" "If one or several properties have changed, this must be called. [param field] " "is used in case your editor can modify fields separately (as an example, " @@ -44464,6 +57023,16 @@ msgstr "" "(подається через [методичний редакторInspectorPlugin._parse_property]), то це " "поверне майно." +msgid "" +"Returns [code]true[/code] if property is drawn as selected. Used by the " +"inspector." +msgstr "" +"Повертає [code]true[/code], якщо властивість намальована як вибрана. " +"Використовується інспектором." + +msgid "Draw property as selected. Used by the inspector." +msgstr "Намалювати властивість як вибрано. Використовується інспектором." + msgid "" "Puts the [param editor] control below the property label. The control must be " "previously added using [method Node.add_child]." @@ -44471,6 +57040,16 @@ msgstr "" "Поставить [параметр] контроль за міткою майна. Контроль необхідно попередньо " "додавати за допомогою [метод Node.add_child]." +msgid "" +"Used by the inspector, set to a control that will be used as a reference to " +"calculate the size of the label." +msgstr "" +"Використовується інспектором, установлюється на елемент керування, який " +"використовуватиметься як еталон для розрахунку розміру етикетки." + +msgid "Assigns object and property to edit." +msgstr "Призначає об’єкт і властивість для редагування." + msgid "Forces refresh of the property display." msgstr "Сили освіжають відображення майна." @@ -44494,6 +57073,20 @@ msgstr "" "Використовується інспектором, встановленим на [code]true[/code], коли майно " "може бути видалено користувачем." +msgid "" +"Used by the inspector, set to [code]true[/code] when the property label is " +"drawn." +msgstr "" +"Використовується інспектором, має значення [code]true[/code] під час " +"малювання мітки властивості." + +msgid "" +"Used by the inspector, set to [code]true[/code] when the property background " +"is drawn." +msgstr "" +"Використовується інспектором, має значення [code]true[/code], коли малюється " +"фон властивості." + msgid "" "Used by the inspector, set to [code]true[/code] when the property is drawn " "with the editor theme's warning color. This is used for editable children's " @@ -44514,6 +57107,9 @@ msgid "Set this property to change the label (if you want to show one)." msgstr "" "Встановіть цю властивість для зміни етикетки (якщо ви хочете показати один)." +msgid "Space distribution ratio between the label and the editing field." +msgstr "Співвідношення розподілу простору між міткою та полем редагування." + msgid "" "Used by the inspector, set to [code]true[/code] when the property is read-" "only." @@ -44521,6 +57117,20 @@ msgstr "" "Використовується інспектором, встановленим на [code]true[/code] при " "прочитуванні майна." +msgid "" +"Used by the inspector, set to [code]true[/code] when the property is " +"selectable." +msgstr "" +"Використовується інспектором, має значення [code]true[/code], якщо " +"властивість доступна для вибору." + +msgid "" +"Used by the inspector, set to [code]true[/code] when the property is using " +"folding." +msgstr "" +"Використовується інспектором, має значення [code]true[/code], коли " +"властивість використовує згортання." + msgid "" "Emit it if you want multiple properties modified at the same time. Do not use " "if added via [method EditorInspectorPlugin._parse_property]." @@ -44549,6 +57159,13 @@ msgstr "Випробувано при перевірці майна. Викор msgid "Emitted when a property was deleted. Used internally." msgstr "При видаленні майнового майна. Використовується внутрішньо." +msgid "" +"Emit it if you want to mark a property as favorited, making it appear at the " +"top of the inspector." +msgstr "" +"Випустіть його, якщо ви хочете позначити властивість як вибране, щоб вона " +"з’явилася у верхній частині інспектора." + msgid "" "Emit it if you want to add this value as an animation key (check for keying " "being enabled first)." @@ -44614,30 +57231,31 @@ msgid "" "To use an [EditorResourceConversionPlugin], register it using the [method " "EditorPlugin.add_resource_conversion_plugin] method first." msgstr "" -"[РедакторРедакшнКонверсіяПлугін] викликається при введенні контекстного меню " -"ресурсу в інспекторі редактора. Релевантні плагіни перетворення з'являються " -"як параметри меню для перетворення даного ресурсу в цільовий тип.\n" -"Нижче наведено приклад базового плагіна, який перетворить [ImageTexture] на " +"[EditorResourceConversionPlugin] викликається, коли для ресурсу відкривається " +"контекстне меню в інспекторі редактора. Відповідні плагіни перетворення " +"відображатимуться як параметри меню для перетворення даного ресурсу на " +"цільовий тип.\n" +"Нижче показано приклад базового плагіна, який перетворює [ImageTexture] на " "[PortableCompressedTexture2D].\n" -"[блоки коду]\n" -"[видання]\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" +"[codeblocks]\n" +"[gdscript]\n" +"розширює EditorResourceConversionPlugin\n" "\n" -"Func _handles(resource: Ресурс):\n" -"Зворотний ресурс - ImageTexture\n" +"func _handles(ресурс: ресурс):\n" +" return resourceImageTexture\n" "\n" -"Func _converts_to():\n" -"Зворотній зв'язок\n" +"func _converts_to():\n" +" return \"PortableCompressedTexture2D\"\n" "\n" -"Func _convert(itex: Ресурс):\n" -"var ptex = PortableCompressedTexture2D.new()\n" -"JavaScript licenses API Веб-сайт Go1.13.8 ПортативнийCompressedTexture2D." +"func _convert(itex: ресурс):\n" +" var ptex = PortableCompressedTexture2D.new()\n" +" ptex.create_from_image(itex.get_image(), PortableCompressedTexture2D." "COMPRESSION_MODE_LOSSLESS)\n" -"Зворотній зв'язок\n" +" return ptex\n" "[/gdscript]\n" "[/codeblocks]\n" -"Щоб використовувати метод [РедагуванняPlugin], зареєструйте його за допомогою " -"[методичного редактораPlugin.add_resource_conversion_plugin]." +"Щоб використовувати [EditorResourceConversionPlugin], спочатку зареєструйте " +"його за допомогою методу [method EditorPlugin.add_resource_conversion_plugin]." msgid "" "Takes an input [Resource] and converts it to the type given in [method " @@ -44773,6 +57391,48 @@ msgstr "" "Перевірте, чи зміниться ресурс, якщо це буде недійсним і відповідним " "сигналом, що вдається." +msgid "" +"Queue the [param resource] being edited for preview. Once the preview is " +"ready, the [param receiver]'s [param receiver_func] will be called. The " +"[param receiver_func] must take the following four arguments: [String] path, " +"[Texture2D] preview, [Texture2D] thumbnail_preview, [Variant] userdata. " +"[param userdata] can be anything, and will be returned when [param " +"receiver_func] is called.\n" +"[b]Note:[/b] If it was not possible to create the preview the [param " +"receiver_func] will still be called, but the preview will be [code]null[/" +"code]." +msgstr "" +"Поставте [param resource] у чергу для попереднього перегляду. Коли попередній " +"перегляд буде готовий, буде викликано [param receiver_func] [param receiver]. " +"[param receiver_func] має приймати такі чотири аргументи: шлях [String], " +"[Texture2D] preview, [Texture2D] thumbnail_preview, [Variant] userdata. " +"[param userdata] може бути будь-яким і повертатиметься під час виклику [param " +"receiver_func].\n" +"[b]Примітка:[/b] Якщо не вдалося створити попередній перегляд, [param " +"receiver_func] усе одно буде викликано, але попередній перегляд матиме " +"значення [code]null[/code]." + +msgid "" +"Queue a resource file located at [param path] for preview. Once the preview " +"is ready, the [param receiver]'s [param receiver_func] will be called. The " +"[param receiver_func] must take the following four arguments: [String] path, " +"[Texture2D] preview, [Texture2D] thumbnail_preview, [Variant] userdata. " +"[param userdata] can be anything, and will be returned when [param " +"receiver_func] is called.\n" +"[b]Note:[/b] If it was not possible to create the preview the [param " +"receiver_func] will still be called, but the preview will be [code]null[/" +"code]." +msgstr "" +"Поставте в чергу файл ресурсу, розташований за адресою [param path], для " +"попереднього перегляду. Коли попередній перегляд буде готовий, буде викликано " +"[param receiver_func] [param receiver]. Параметр [param receiver_func] має " +"приймати такі чотири аргументи: шлях [String], [Texture2D] preview, " +"[Texture2D] thumbnail_preview, [Variant] userdata. [param userdata] може бути " +"будь-яким і повертатиметься під час виклику [param receiver_func].\n" +"[b]Примітка:[/b] Якщо не вдалося створити попередній перегляд, [param " +"receiver_func] усе одно буде викликано, але попередній перегляд матиме " +"значення [code]null[/code]." + msgid "Removes a custom preview generator." msgstr "Видалити спеціальний генератор попереднього перегляду." @@ -44786,6 +57446,14 @@ msgstr "" msgid "Custom generator of previews." msgstr "Призначений для користувача генератор попереднього перегляду." +msgid "" +"Custom code to generate previews. Check [member EditorSettings.filesystem/" +"file_dialog/thumbnail_size] to find a proper size to generate previews at." +msgstr "" +"Спеціальний код для створення попереднього перегляду. Перевірте [member " +"EditorSettings.filesystem/file_dialog/thumbnail_size], щоб знайти відповідний " +"розмір для створення попереднього перегляду." + msgid "" "If this function returns [code]true[/code], the generator will call [method " "_generate] or [method _generate_from_path] for small previews as well.\n" @@ -44795,6 +57463,49 @@ msgstr "" "[метод _generate_from_path] для невеликих переглядів.\n" "За замовчуванням, він повертає [code]false[/code]." +msgid "" +"Generate a preview from a given resource with the specified size. This must " +"always be implemented.\n" +"Returning [code]null[/code] is an OK way to fail and let another generator " +"take care.\n" +"Care must be taken because this function is always called from a thread (not " +"the main thread).\n" +"[param metadata] dictionary can be modified to store file-specific metadata " +"that can be used in [method EditorResourceTooltipPlugin." +"_make_tooltip_for_path] (like image size, sample length etc.)." +msgstr "" +"Створіть попередній перегляд із заданого ресурсу з указаним розміром. Це " +"потрібно завжди виконувати.\n" +"Повернення [code]null[/code] — це нормальний спосіб вийти з ладу та дозволити " +"іншому генератору подбати про це.\n" +"Потрібно бути обережним, оскільки ця функція завжди викликається з потоку (а " +"не основного потоку).\n" +"Словник [param metadata] можна змінити для зберігання метаданих файлів, які " +"можна використовувати в [method EditorResourceTooltipPlugin." +"_make_tooltip_for_path] (наприклад, розмір зображення, довжина зразка тощо)." + +msgid "" +"Generate a preview directly from a path with the specified size. Implementing " +"this is optional, as default code will load and call [method _generate].\n" +"Returning [code]null[/code] is an OK way to fail and let another generator " +"take care.\n" +"Care must be taken because this function is always called from a thread (not " +"the main thread).\n" +"[param metadata] dictionary can be modified to store file-specific metadata " +"that can be used in [method EditorResourceTooltipPlugin." +"_make_tooltip_for_path] (like image size, sample length etc.)." +msgstr "" +"Створіть попередній перегляд безпосередньо з контуру вказаного розміру. " +"Реалізація цього необов’язкова, оскільки код за замовчуванням завантажуватиме " +"та викличе [method _generate].\n" +"Повернення [code]null[/code] — це нормальний спосіб вийти з ладу та дозволити " +"іншому генератору подбати про це.\n" +"Потрібно бути обережним, оскільки ця функція завжди викликається з потоку (а " +"не основного потоку).\n" +"Словник [param metadata] можна змінити для зберігання метаданих файлів, які " +"можна використовувати в [method EditorResourceTooltipPlugin." +"_make_tooltip_for_path] (наприклад, розмір зображення, довжина зразка тощо)." + msgid "" "If this function returns [code]true[/code], the generator will automatically " "generate the small previews from the normal preview texture generated by the " @@ -44866,28 +57577,30 @@ msgid "" " return base\n" "[/codeblock]" msgstr "" -"Створіть і поверніть інструмент, який буде відображатися, коли користувач " -"захопить ресурс під вказаною [пам'ятною шлях] в док файлової системи.\n" -"[param метаданих] словник забезпечується генератором попереднього перегляду " -"(див. [методичний редакторResourcePreviewGenerator._generate]).\n" -"[param base] є базовим інструментом за замовчуванням, який є [VBoxContainer] " -"з ім'ям файлів, типами та розмірами етикеток. Якщо інший плагін ручить той " -"самий тип файлів, [param base] буде виводити з попереднього плагіна. Для " -"найкращого результату, переконайтеся, що базовий інструмент, який є частиною " -"повернення [Control].\n" -"[b]Примітка:[/b] Це не рекомендується використовувати [метод ResourceLoader." -"load], особливо з великими ресурсами, такими як моделі або текстури, оскільки " -"він зробить редактор нечутливим при створенні інструменту. Ви можете " -"використовувати [метод запиту_thumbnail], якщо ви хочете відобразити " -"попередній перегляд у вашому пристрої.\n" -"[b]Примітка:[/b] Якщо ви вирішили відкинути [пам'ять бази], переконайтеся, що " -"телефонуйте [метод Node.queue_free], бо він не звільняється автоматично.\n" -"[блокування коду]\n" -"Func _make_tooltip_for_path(path, метадані, бази):\n" -"var t_rect = TextureRect.new()\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"База зворотнього зв'язку\n" +"Створіть і поверніть спливаючу підказку, яка відображатиметься, коли " +"користувач наведе курсор миші на ресурс під заданим [param path] у доку " +"файлової системи. \n" +"The [param metadata] dictionary is provided by preview generator (see [method " +"EditorResourcePreviewGenerator._generate]).\n" +"[param base] — базова спливаюча підказка за замовчуванням, яка є " +"[VBoxContainer] із назвою файлу, типом і мітками розміру. Якщо інший плагін " +"обробив той самий тип файлу, [param base] буде виведено з попереднього " +"плагіна. Щоб отримати найкращий результат, переконайтеся, що базова підказка " +"є частиною повернутого [Control]. \n" +"[b]Примітка.[/b] Не рекомендується використовувати [метод ResourceLoader." +"load], особливо з такими важкими ресурсами, як моделі чи текстури, оскільки " +"це призведе до того, що редактор перестане реагувати під час створення " +"підказки. Ви можете використовувати [method request_thumbnail], якщо хочете " +"відобразити попередній перегляд у підказці. \n" +"[b]Примітка:[/b] Якщо ви вирішите скинути [param base], обов’язково " +"викликайте [method Node.queue_free], оскільки він не звільняється " +"автоматично. \n" +"[codeblock] \n" +"func _make_tooltip_for_path(path, metadata, base): \n" +" var t_rect = TextureRect.new() \n" +" request_thumbnail(path, t_rect) \n" +" base.add_child(t_rect) # TextureRect з’явиться внизу підказки. \n" +" return base\n" "[/codeblock]" msgid "" @@ -44912,6 +57625,59 @@ msgstr "" "Для використання [РедакторSceneFormatImporter], зареєструйте його за " "допомогою [методичного редактораPlugin.add_scene_format_importer_plugin]." +msgid "Return supported file extensions for this scene importer." +msgstr "Повернути підтримувані розширення файлів для цього імпортера сцен." + +msgid "" +"Override to add general import options. These will appear in the main import " +"dock on the editor. Add options via [method add_import_option] and [method " +"add_import_option_advanced].\n" +"[b]Note:[/b] All [EditorSceneFormatImporter] and " +"[EditorScenePostImportPlugin] instances will add options for all files. It is " +"good practice to check the file extension when [param path] is non-empty.\n" +"When the user is editing project settings, [param path] will be empty. It is " +"recommended to add all options when [param path] is empty to allow the user " +"to customize Import Defaults." +msgstr "" +"Перевизначте, щоб додати загальні параметри імпорту. Вони з’являться в " +"головній панелі імпорту в редакторі. Додайте параметри за допомогою [метод " +"add_import_option] і [метод add_import_option_advanced].\n" +"[b]Примітка.[/b] Усі екземпляри [EditorSceneFormatImporter] і " +"[EditorScenePostImportPlugin] додадуть параметри для всіх файлів. " +"Рекомендується перевіряти розширення файлу, якщо [param path] не порожній.\n" +"Коли користувач редагує параметри проекту, [param path] буде порожнім. " +"Рекомендується додавати всі параметри, коли [param path] порожній, щоб " +"дозволити користувачеві налаштувати імпорт за замовчуванням." + +msgid "" +"Should return [code]true[/code] to show the given option, [code]false[/code] " +"to hide the given option, or [code]null[/code] to ignore." +msgstr "" +"Має повернути [code]true[/code], щоб показати заданий параметр, [code]false[/" +"code], щоб приховати вказаний параметр, або [code]null[/code], щоб " +"проігнорувати." + +msgid "" +"Perform the bulk of the scene import logic here, for example using " +"[GLTFDocument] or [FBXDocument]." +msgstr "" +"Виконайте основну частину логіки імпорту сцени тут, наприклад, використовуючи " +"[GLTFDocument] або [FBXDocument]." + +msgid "" +"Add a specific import option (name and default value only). This function can " +"only be called from [method _get_import_options]." +msgstr "" +"Додайте певний параметр імпорту (лише ім’я та значення за замовчуванням). Цю " +"функцію можна викликати лише з [метод _get_import_options]." + +msgid "" +"Add a specific import option. This function can only be called from [method " +"_get_import_options]." +msgstr "" +"Додайте окремий параметр імпорту. Цю функцію можна викликати лише з [метод " +"_get_import_options]." + msgid "Importer for Blender's [code].blend[/code] scene file format." msgstr "Імпортер для Blender [code].blend[/code] формат сцени." @@ -44979,6 +57745,113 @@ msgstr "" msgid "Post-processes scenes after import." msgstr "Поштові сцени після імпорту." +msgid "" +"Imported scenes can be automatically modified right after import by setting " +"their [b]Custom Script[/b] Import property to a [code]tool[/code] script that " +"inherits from this class.\n" +"The [method _post_import] callback receives the imported scene's root node " +"and returns the modified version of the scene:\n" +"[codeblocks]\n" +"[gdscript]\n" +"@tool # Needed so it runs in editor.\n" +"extends EditorScenePostImport\n" +"\n" +"# This sample changes all node names.\n" +"# Called right after the scene is imported and gets the root node.\n" +"func _post_import(scene):\n" +" # Change all node names to \"modified_[oldnodename]\"\n" +" iterate(scene)\n" +" return scene # Remember to return the imported scene\n" +"\n" +"func iterate(node):\n" +" if node != null:\n" +" node.name = \"modified_\" + node.name\n" +" for child in node.get_children():\n" +" iterate(child)\n" +"[/gdscript]\n" +"[csharp]\n" +"using Godot;\n" +"\n" +"// This sample changes all node names.\n" +"// Called right after the scene is imported and gets the root node.\n" +"[Tool]\n" +"public partial class NodeRenamer : EditorScenePostImport\n" +"{\n" +" public override GodotObject _PostImport(Node scene)\n" +" {\n" +" // Change all node names to \"modified_[oldnodename]\"\n" +" Iterate(scene);\n" +" return scene; // Remember to return the imported scene\n" +" }\n" +"\n" +" public void Iterate(Node node)\n" +" {\n" +" if (node != null)\n" +" {\n" +" node.Name = $\"modified_{node.Name}\";\n" +" foreach (Node child in node.GetChildren())\n" +" {\n" +" Iterate(child);\n" +" }\n" +" }\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Імпортовані сцени можна автоматично змінювати одразу після імпорту, " +"установивши для їхньої властивості [b]Custom Script[/b] Import у сценарій " +"[code]instrument[/code], який успадковує цей клас. \n" +"Зворотний виклик [method _post_import] отримує кореневий вузол імпортованої " +"сцени та повертає модифіковану версію сцени: \n" +"[codeblocks] \n" +"[gdscript] \n" +"@tool # Потрібен для роботи в редакторі. \n" +"extends EditorScenePostImport \n" +"\n" +"# Цей зразок змінює всі імена вузлів. \n" +"# Викликається одразу після імпорту сцени та отримує кореневий вузол. \n" +"func _post_import(scene): \n" +" # Змінити всі назви вузлів на \"modified_[oldnodename]\" \n" +" iterate (scene) \n" +" return scene # Не забудьте повернути імпортовану сцену \n" +"\n" +"функція ітерації (node): \n" +" if node != null: \n" +" node.name = \"modified_\" + node.name \n" +" for child is node.get_children(): \n" +" iterate (child) \n" +"[/gdscript] \n" +"[csharp] \n" +"Using Godot;\n" +"\n" +"// Цей зразок змінює всі імена вузлів. \n" +"// Викликається одразу після імпорту сцени та отримує кореневий вузол. \n" +"[Tool] \n" +"public partial class NodeRenamer : EditorScenePostImport \n" +"{\n" +" public override GodotObject _PostImport (Node scene) \n" +" { \n" +" // Змінити всі назви вузлів на \"modified_[oldnodename]\" \n" +" iterate (scene); \n" +" return scene; // Не забудьте повернути імпортовану сцену \n" +" } \n" +"\n" +" public void Iterate (Node node) \n" +" { \n" +" if (node != null) \n" +" { \n" +" node.Name = $\"modified_{node.Name}\"; \n" +" foreach (Node child у node.GetChildren()) \n" +" { \n" +" iterate (child); \n" +" } \n" +" } \n" +" } \n" +"}\n" +"[/csharp] \n" +"[/codeblocks]" + msgid "Importing 3D scenes: Configuration: Using import scripts for automation" msgstr "" "Імпорт 3D сцени: Конфігурація: Використання сценаріїв імпорту для " @@ -45027,6 +57900,13 @@ msgstr "" "діалоговому вікні імпорту 3D сцени. Додати параметри за допомогою [метод " "add_import_option] і [метод add_import_option_advanced]." +msgid "" +"Should return [code]true[/code] if the 3D view of the import dialog needs to " +"update when changing the given option." +msgstr "" +"Має повертати [code]true[/code], якщо 3D-вид діалогового вікна імпорту " +"потребує оновлення під час зміни заданого параметра." + msgid "Process a specific node or resource for a given category." msgstr "Процес конкретного вузла або ресурсу для даної категорії." @@ -45035,6 +57915,21 @@ msgid "" "been configured." msgstr "Після обробки сцени. Ця функція називається після завершення сцени." +msgid "" +"Pre Process the scene. This function is called right after the scene format " +"loader loaded the scene and no changes have been made.\n" +"Pre process may be used to adjust internal import options in the " +"[code]\"nodes\"[/code], [code]\"meshes\"[/code], [code]\"animations\"[/code] " +"or [code]\"materials\"[/code] keys inside " +"[code]get_option_value(\"_subresources\")[/code]." +msgstr "" +"Попередньо обробіть сцену. Ця функція викликається відразу після того, як " +"завантажувач формату сцени завантажив сцену і не було зроблено жодних змін.\n" +"Попередній процес можна використовувати для налаштування параметрів " +"внутрішнього імпорту в [code]\"nodes\"[/code], [code]\"meshes\"[/code], " +"[code]\"animations\"[/code] або [code]\"materials\"[/code] ключі в " +"[code]get_option_value(\"_subresources\")[/code]." + msgid "" "Add a specific import option (name and default value only). This function can " "only be called from [method _get_import_options] and [method " @@ -45063,6 +57958,80 @@ msgstr "" "Базовий скрипт, який можна використовувати для додавання функцій розширення " "до редактора." +msgid "" +"Scripts extending this class and implementing its [method _run] method can be " +"executed from the Script Editor's [b]File > Run[/b] menu option (or by " +"pressing [kbd]Ctrl + Shift + X[/kbd]) while the editor is running. This is " +"useful for adding custom in-editor functionality to Godot. For more complex " +"additions, consider using [EditorPlugin]s instead.\n" +"[b]Note:[/b] Extending scripts need to have [code]tool[/code] mode enabled.\n" +"[b]Example:[/b] Running the following script prints \"Hello from the Godot " +"Editor!\":\n" +"[codeblocks]\n" +"[gdscript]\n" +"@tool\n" +"extends EditorScript\n" +"\n" +"func _run():\n" +" print(\"Hello from the Godot Editor!\")\n" +"[/gdscript]\n" +"[csharp]\n" +"using Godot;\n" +"\n" +"[Tool]\n" +"public partial class HelloEditor : EditorScript\n" +"{\n" +" public override void _Run()\n" +" {\n" +" GD.Print(\"Hello from the Godot Editor!\");\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] The script is run in the Editor context, which means the output " +"is visible in the console window started with the Editor (stdout) instead of " +"the usual Godot [b]Output[/b] dock.\n" +"[b]Note:[/b] EditorScript is [RefCounted], meaning it is destroyed when " +"nothing references it. This can cause errors during asynchronous operations " +"if there are no references to the script." +msgstr "" +"Сценарії, що розширюють цей клас і реалізують його метод [method _run], можна " +"виконати за допомогою пункту меню [b]Файл > Виконати[/b] Редактора сценаріїв " +"(або натисненням [kbd]Ctrl + Shift + X[/kbd]) під час роботи редактора. Це " +"корисно для додавання спеціальної функції редактора до Godot. Для більш " +"складних доповнень подумайте про використання [EditorPlugin].\n" +"[b]Примітка:[/b] для сценаріїв розширення потрібно ввімкнути режим " +"[code]instrument[/code].\n" +"[b]Приклад:[/b] Запуск наступного сценарію друкує «Привіт від редактора " +"Годо!»:\n" +"[codeblocks]\n" +"[gdscript]\n" +"@tool\n" +"extendsEditorScript\n" +"\n" +"func _run():\n" +" print(\"Привіт від редактора Godot!\")\n" +"[/gdscript]\n" +"[csharp]\n" +"Using Godot;\n" +"\n" +"[Tool]\n" +"public partial class HelloEditor : EditorScript\n" +"{\n" +" public override void _Run()\n" +" {\n" +" GD.Print(\"Привіт від редактора Godot!\");\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Примітка:[/b] Сценарій виконується в контексті редактора, що означає, що " +"вихідні дані видно у вікні консолі, запущеному за допомогою редактора " +"(stdout), замість звичайної док-станції [b]Вивід[/b] Godot.\n" +"[b]Примітка:[/b] EditorScript є [RefCounted], тобто він знищується, якщо на " +"нього немає посилань. Це може викликати помилки під час асинхронних операцій, " +"якщо немає посилань на сценарій." + msgid "This method is executed by the Editor when [b]File > Run[/b] is used." msgstr "" "Цей метод виконується редактором, коли [b]File > Запуск [/b] використовується." @@ -45191,39 +58160,111 @@ msgid "" msgstr "" "Об'єкт, який містить налаштування редактора, незалежного від проекту. " "Зазвичай ці налаштування можна побачити в меню [b]Редактор > Параметри " -"редактора[/b].\n" +"редактора[/b]. \n" "У іменах властивостей для виділення розділів використовуються косі риски. " "Значення налаштувань можуть мати будь-який тип [Variant]. Рекомендується " "використовувати [code]snake_case[/code], щоб налаштування редактора " -"узгоджувалися з самим редактором Godot.\n" -"Доступ до налаштувань можна здійснити такими методами, як:\n" -"[кодові блоки]\n" -"[gdscript]\n" -"var settings = EditorInterface.get_editor_settings()\n" +"узгоджувалися з самим редактором Godot. \n" +"Доступ до налаштувань можна здійснити такими методами, як: \n" +"[codeblocks] \n" +"[gdscript] \n" +"var settings = EditorInterface.get_editor_settings() \n" "# `settings.set(\"some/property\", 10)` також працює, оскільки цей клас " -"внутрішньо перевизначає `_set()`.\n" -"settings.set_setting(\"деякі/власність\", 10)\n" +"внутрішньо перевизначає `_set()`. \n" +"settings.set_setting(\"деякі/власність\", 10) \n" "# `settings.get(\"some/property\")` також працює, оскільки цей клас " -"внутрішньо перевизначає `_get()`.\n" -"settings.get_setting(\"деякі/власність\")\n" -"var list_of_settings = settings.get_property_list()\n" -"[/gdscript]\n" -"[csharp]\n" -"Параметри EditorSettings = EditorInterface.Singleton.GetEditorSettings();\n" +"внутрішньо перевизначає `_get()`. \n" +"settings.get_setting(\"деякі/власність\") \n" +"var list_of_settings = settings.get_property_list() \n" +"[/gdscript] \n" +"[csharp] \n" +"Параметри EditorSettings = EditorInterface.Singleton.GetEditorSettings(); \n" "// `settings.set(\"some/property\", value)` також працює, оскільки цей клас " -"внутрішньо перевизначає `_set()`.\n" -"settings.SetSetting(\"деякі/власність\", значення);\n" +"внутрішньо перевизначає `_set()`. \n" +"settings.SetSetting(\"some/property\", valve); \n" "// `settings.get(\"some/property\", value)` також працює, оскільки цей клас " -"внутрішньо перевизначає `_get()`.\n" -"settings.GetSetting(\"деякі/власність\");\n" +"внутрішньо перевизначає `_get()`. \n" +"settings.GetSetting(\"some/property\"); \n" "Godot.Collections.Array<Godot.Collections.Dictionary> listOfSettings = " -"settings.GetPropertyList();\n" -"[/csharp]\n" -"[/codeblocks]\n" +"settings.GetPropertyList(); \n" +"[/csharp] \n" +"[/codeblocks] \n" "[b]Примітка: [/b] Цей клас не слід створювати безпосередньо. Натомість " "отримайте доступ до синглтона за допомогою [метод EditorInterface." "get_editor_settings]." +msgid "" +"Adds a custom property info to a property. The dictionary must contain:\n" +"- [code]name[/code]: [String] (the name of the property)\n" +"- [code]type[/code]: [int] (see [enum Variant.Type])\n" +"- optionally [code]hint[/code]: [int] (see [enum PropertyHint]) and " +"[code]hint_string[/code]: [String]\n" +"[codeblocks]\n" +"[gdscript]\n" +"var settings = EditorInterface.get_editor_settings()\n" +"settings.set(\"category/property_name\", 0)\n" +"\n" +"var property_info = {\n" +" \"name\": \"category/property_name\",\n" +" \"type\": TYPE_INT,\n" +" \"hint\": PROPERTY_HINT_ENUM,\n" +" \"hint_string\": \"one,two,three\"\n" +"}\n" +"\n" +"settings.add_property_info(property_info)\n" +"[/gdscript]\n" +"[csharp]\n" +"var settings = GetEditorInterface().GetEditorSettings();\n" +"settings.Set(\"category/property_name\", 0);\n" +"\n" +"var propertyInfo = new Godot.Collections.Dictionary\n" +"{\n" +" {\"name\", \"category/propertyName\"},\n" +" {\"type\", Variant.Type.Int},\n" +" {\"hint\", PropertyHint.Enum},\n" +" {\"hint_string\", \"one,two,three\"}\n" +"};\n" +"\n" +"settings.AddPropertyInfo(propertyInfo);\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Додає до властивості спеціальну інформацію про властивість. Словник повинен " +"містити:\n" +"- [code]ім'я[/code]: [рядок] (ім'я властивості)\n" +"- [code]тип[/code]: [int] (див. [enum Variant.Type])\n" +"- необов’язково [code]hint[/code]: [int] (див. [enum PropertyHint]) і " +"[code]hint_string[/code]: [String]\n" +"[codeblocks]\n" +"[gdscript]\n" +"var settings = EditorInterface.get_editor_settings()\n" +"settings.set(\"category/property_name\", 0)\n" +"\n" +"var property_info = {\n" +" \"name\": \"category/property_name\",\n" +" \"type\": TYPE_INT,\n" +" \"hint\": PROPERTY_HINT_ENUM,\n" +" \"hint_string\": \"one,two,three\"\n" +"}\n" +"\n" +"settings.add_property_info(property_info)\n" +"[/gdscript]\n" +"[csharp]\n" +"var settings = GetEditorInterface().GetEditorSettings();\n" +"settings.Set(\"category/property_name\", 0);\n" +"\n" +"var propertyInfo = new Godot.Collections.Dictionary\n" +"{\n" +" {\"name\", \"category/propertyName\"},\n" +" {\"type\", Variant.Type.Int},\n" +" {\"hint\", PropertyHint.Enum},\n" +" {\"hint_string\", \"one,two,three\"}\n" +"};\n" +"\n" +"settings.AddPropertyInfo(propertyInfo);\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Checks if any settings with the prefix [param setting_prefix] exist in the " "set of changed settings. See also [method get_changed_settings]." @@ -45296,6 +58337,17 @@ msgstr "" msgid "Sets the list of favorite files and directories for this project." msgstr "Налаштовує список улюблених файлів та каталогів для цього проекту." +msgid "" +"Sets the initial value of the setting specified by [param name] to [param " +"value]. This is used to provide a value for the Revert button in the Editor " +"Settings. If [param update_current] is [code]true[/code], the setting is " +"reset to [param value] as well." +msgstr "" +"Встановлює початкове значення параметра, визначеного [назва параметра], на " +"[значення параметра]. Це використовується для надання значення для кнопки " +"«Повернути» в налаштуваннях редактора. Якщо [param update_current] має " +"значення [code]true[/code], налаштування також скидається до [param value]." + msgid "" "Sets project-specific metadata with the [param section], [param key] and " "[param data] specified. This metadata is stored outside the project folder " @@ -45318,6 +58370,41 @@ msgstr "" "Налаштовує значення [парам] параметра [пам'ять]. Це еквівалентно використанню " "[методичного об'єкта.set] на екземплярі редактора." +msgid "" +"If [code]true[/code], the Asset Library uses multiple threads for its HTTP " +"requests. This prevents the Asset Library from blocking the main thread for " +"every loaded asset." +msgstr "" +"Якщо [code]true[/code], бібліотека активів використовує кілька потоків для " +"своїх HTTP-запитів. Це запобігає блокуванню бібліотекою активів основного " +"потоку для кожного завантаженого ресурсу." + +msgid "" +"If [code]true[/code], automatically switches to the [b]Remote[/b] scene tree " +"when running the project from the editor. If [code]false[/code], stays on the " +"[b]Local[/b] scene tree when running the project from the editor.\n" +"[b]Warning:[/b] Enabling this setting can cause stuttering when running a " +"project with a large amount of nodes (typically a few thousands of nodes or " +"more), even if the editor window isn't focused. This is due to the remote " +"scene tree being updated every second regardless of whether the editor is " +"focused." +msgstr "" +"Якщо [code]true[/code], автоматично перемикається на дерево сцен [b]Remote[/" +"b] під час запуску проекту з редактора. Якщо [code]false[/code], залишається " +"на дереві сцен [b]Local[/b] під час запуску проекту з редактора.\n" +"[b]Попередження:[/b] увімкнення цього параметра може спричинити затримку під " +"час виконання проекту з великою кількістю вузлів (зазвичай кілька тисяч " +"вузлів або більше), навіть якщо вікно редактора не сфокусовано. Це " +"відбувається через те, що дерево віддаленої сцени оновлюється щосекунди, " +"незалежно від того, чи сфокусовано редактор." + +msgid "" +"If [code]true[/code], automatically switches to the [b]Stack Trace[/b] panel " +"when the debugger hits a breakpoint or steps." +msgstr "" +"Якщо [code]true[/code], автоматично перемикається на панель [b]Stack Trace[/" +"b], коли налагоджувач досягає точки зупину або кроків." + msgid "" "If [code]true[/code], enables collection of profiling data from non-GDScript " "Godot functions, such as engine class methods. Enabling this slows execution " @@ -45352,6 +58439,13 @@ msgstr "" "[b]Примітка:[/b] Ця настройка тільки прочитана, коли профільник спочатку " "почався, тому зміна його під час профілювання не буде ефектно." +msgid "" +"The target frame rate shown in the visual profiler graph, in frames per " +"second." +msgstr "" +"Цільова частота кадрів, показана на графіку візуального профайлера, у кадрах " +"за секунду." + msgid "" "The refresh interval for the remote inspector's properties (in seconds). " "Lower values are more reactive, but may cause stuttering while the project is " @@ -45387,6 +58481,22 @@ msgstr "" "[b]Примітка:[/b] Ця установка не має ефекту, коли розщеплюється режим (який є " "за замовчуванням)." +msgid "" +"A comma separated list of unsupported file extensions to show in the " +"FileSystem dock, e.g. [code]\"ico,icns\"[/code]." +msgstr "" +"Відокремлений комами список непідтримуваних розширень файлів для відображення " +"в док-станції FileSystem, напр. [code]\"ico,icns\"[/code]." + +msgid "" +"A comma separated list of file extensions to consider as editable text files " +"in the FileSystem dock (by double-clicking on the files), e.g. [code]\"txt,md," +"cfg,ini,log,json,yml,yaml,toml,xml\"[/code]." +msgstr "" +"Відокремлений комами список розширень файлів, які можна вважати редагованими " +"текстовими файлами в док-станції FileSystem (подвійним клацанням файлів), " +"напр. [code]\"txt,md,cfg,ini,log,json,yml,yaml,toml,xml\"[/code]." + msgid "" "The thumbnail size to use in the FileSystem dock (in pixels). See also " "[member filesystem/file_dialog/thumbnail_size]." @@ -45415,6 +58525,29 @@ msgstr "" "інспекторі. Більшість значень у результаті більш помітної різниці кольору " "фону." +msgid "" +"If [code]true[/code], when a node is deleted with animation tracks " +"referencing it, a confirmation dialog appears before the tracks are deleted. " +"The dialog will appear even when using the \"Delete (No Confirm)\" shortcut." +msgstr "" +"Якщо [code]true[/code], коли вузол видаляється з доріжками анімації, які " +"посилаються на нього, перед видаленням доріжок з’являється діалогове вікно " +"підтвердження. Діалогове вікно з’явиться навіть у разі використання ярлика " +"«Видалити (без підтвердження)»." + +msgid "" +"If [code]true[/code], displays a confirmation dialog after left-clicking the " +"\"percent\" icon next to a node name in the Scene tree dock. When clicked, " +"this icon revokes the node's scene-unique name, which can impact the behavior " +"of scripts that rely on this scene-unique name due to identifiers not being " +"found anymore." +msgstr "" +"Якщо [code]true[/code], відображається діалогове вікно підтвердження після " +"клацання лівою кнопкою миші піктограми «відсоток» поруч із назвою вузла в " +"панелі дерева сцени. Якщо натиснути цю піктограму, скасовується унікальне " +"ім’я сцени вузла, що може вплинути на поведінку сценаріїв, які покладаються " +"на це унікальне ім’я сцени, оскільки ідентифікатори більше не знайдені." + msgid "" "If [code]true[/code], the scene tree dock will automatically unfold nodes " "when a node that has folded parents is selected." @@ -45429,6 +58562,15 @@ msgstr "" "Якщо [code]true[/code], новий вузол, створений при перепідготовці вершин (s) " "буде розташовано в середній позиції вибраного вузла (s)." +msgid "" +"If [code]true[/code], the scene tree dock will only show nodes that match the " +"filter, without showing parents that don't. This settings can also be changed " +"in the Scene dock's top menu." +msgstr "" +"Якщо [code]true[/code], док-станція дерева сцен відображатиме лише вузли, які " +"відповідають фільтру, без батьківських вузлів, які не відповідають. Ці " +"параметри також можна змінити у верхньому меню док-станції Scene." + msgid "" "If [code]true[/code], the Create dialog (Create New Node/Create New Resource) " "will start with all its sections expanded. Otherwise, sections will be " @@ -45517,6 +58659,15 @@ msgstr "" "У меню Параметри Snapping у верхній частині екрана 2D автоматично " "відображатимуться смарт-натискання." +msgid "" +"If [code]true[/code], the 2D editor will snap to integer zoom values when not " +"holding the [kbd]Alt[/kbd] key. If [code]false[/code], this behavior is " +"swapped." +msgstr "" +"Якщо [code]true[/code], 2D-редактор прив’яжеться до цілочисельних значень " +"масштабу, якщо не утримувати клавішу [kbd]Alt[/kbd]. Якщо [code]false[/code], " +"ця поведінка змінюється." + msgid "" "The color of the viewport border in the 2D editor. This border represents the " "viewport's size at the base resolution defined in the Project Settings. " @@ -45530,6 +58681,16 @@ msgstr "" "[Camera2D], або якщо вікно негабаритне, і режим розтягування встановлюється " "до [code], обмежений [/code]." +msgid "" +"The factor to use when zooming in or out in the 2D editor. For example, " +"[code]1.1[/code] will zoom in by 10% with every step. If set to [code]2.0[/" +"code], zooming will only cycle through powers of two." +msgstr "" +"Коефіцієнт, який використовується під час збільшення або зменшення масштабу в " +"2D-редакторі. Наприклад, [code]1.1[/code] буде збільшувати масштаб на 10% з " +"кожним кроком. Якщо встановлено значення [code]2.0[/code], масштабування " +"відбуватиметься лише за ступенями двійки." + msgid "" "The default camera vertical field of view to use in the 3D editor (in " "degrees). The camera field of view can be adjusted on a per-scene basis using " @@ -45723,6 +58884,47 @@ msgstr "" "залежності від положення камери, сітка може бути повністю видима, оскільки " "шейдер використовується для того, щоб її поступово згасити." +msgid "" +"If [code]true[/code], renders the grid on the XY plane in perspective view. " +"This can be useful for 3D side-scrolling games." +msgstr "" +"Якщо [code]true[/code], рендерить сітку на площині XY у перспективі. Це може " +"бути корисним для 3D-ігор із боковою прокруткою." + +msgid "" +"If [code]true[/code], renders the grid on the XZ plane in perspective view." +msgstr "Якщо [code]true[/code], рендерить сітку на площині XZ у перспективі." + +msgid "" +"If [code]true[/code], renders the grid on the YZ plane in perspective view. " +"This can be useful for 3D side-scrolling games." +msgstr "" +"Якщо [code]true[/code], рендерить сітку на площині YZ у перспективі. Це може " +"бути корисним для 3D-ігор із боковою прокруткою." + +msgid "Opacity of the default gizmo for moving, rotating, and scaling 3D nodes." +msgstr "" +"Непрозорість гізмо за замовчуванням для переміщення, обертання та " +"масштабування 3D-вузлів." + +msgid "Size of the default gizmo for moving, rotating, and scaling 3D nodes." +msgstr "" +"Розмір гізмо за замовчуванням для переміщення, обертання та масштабування 3D-" +"вузлів." + +msgid "" +"If [code]true[/code], enables 3-button mouse emulation mode. This is useful " +"on laptops when using a trackpad.\n" +"When 3-button mouse emulation mode is enabled, the pan, zoom and orbit " +"modifiers can always be used in the 3D editor viewport, even when not holding " +"down any mouse button." +msgstr "" +"Якщо [code]true[/code], вмикає режим емуляції 3-кнопкової миші. Це корисно на " +"ноутбуках, коли використовується трекпад.\n" +"Коли ввімкнено режим емуляції 3-кнопкової миші, модифікатори панорамування, " +"масштабування та орбіти завжди можна використовувати у вікні перегляду 3D-" +"редактора, навіть якщо не утримувати жодної кнопки миші." + msgid "" "If [code]true[/code], allows using the top row [kbd]0[/kbd]-[kbd]9[/kbd] keys " "to function as their equivalent numpad keys for 3D editor navigation. This " @@ -45749,6 +58951,83 @@ msgstr "" "Якщо [code]true[/code], ввімкніть вертикальну вісь мишки при пануванні, " "орбітуванні або використанні режиму Freelook в редакторі 3D." +msgid "" +"The navigation scheme preset to use in the 3D editor. Changing this setting " +"will affect the mouse button and modifier keys used to navigate the 3D editor " +"viewport.\n" +"All schemes can use [kbd]Mouse wheel[/kbd] to zoom.\n" +"- [b]Godot:[/b] [kbd]Middle mouse button[/kbd] to orbit. [kbd]Shift + Middle " +"mouse button[/kbd] to pan. [kbd]Ctrl + Middle mouse button[/kbd] to zoom.\n" +"- [b]Maya:[/b] [kbd]Alt + Left mouse button[/kbd] to orbit. [kbd]Middle mouse " +"button[/kbd] to pan, [kbd]Shift + Middle mouse button[/kbd] to pan 10 times " +"faster. [kbd]Alt + Right mouse button[/kbd] to zoom.\n" +"- [b]Modo:[/b] [kbd]Alt + Left mouse button[/kbd] to orbit. [kbd]Alt + Shift " +"+ Left mouse button[/kbd] to pan. [kbd]Ctrl + Alt + Left mouse button[/kbd] " +"to zoom.\n" +"- [b]Tablet/Trackpad:[/b] [kbd]Alt[/kbd] to orbit. [kbd]Shift[/kbd] to pan. " +"[kbd]Ctrl[/kbd] to zoom. Enables 3-button mouse emulation mode.\n" +"See also [member editors/3d/navigation/orbit_mouse_button], [member " +"editors/3d/navigation/pan_mouse_button], [member editors/3d/navigation/" +"zoom_mouse_button], [member editors/3d/freelook/freelook_navigation_scheme], " +"and [member editors/3d/navigation/emulate_3_button_mouse].\n" +"[b]Note:[/b] On certain window managers on Linux, the [kbd]Alt[/kbd] key will " +"be intercepted by the window manager when clicking a mouse button at the same " +"time. This means Godot will not see the modifier key as being pressed." +msgstr "" +"Попередньо встановлена схема навігації для використання в 3D-редакторі. Зміна " +"цього параметра вплине на кнопку миші та клавіші-модифікатори, які " +"використовуються для навігації вікном перегляду 3D-редактора.\n" +"Усі схеми можуть використовувати [kbd]колесо миші[/kbd] для масштабування.\n" +"- [b]Годо:[/b] [kbd]Середня кнопка миші[/kbd] на орбіту. [kbd]Shift + середня " +"кнопка миші[/kbd] для панорамування. [kbd]Ctrl + середня кнопка миші[/kbd] " +"для збільшення.\n" +"- [b]Майя:[/b] [kbd]Alt + ліва кнопка миші[/kbd] для орбіти. [kbd]Середня " +"кнопка миші[/kbd] для панорамування, [kbd]Shift + середня кнопка миші[/kbd] " +"для панорамування в 10 разів швидше. [kbd]Alt + права кнопка миші[/kbd] для " +"збільшення.\n" +"- [b]Modo: [/b] [kbd]Alt + ліва кнопка миші[/kbd] для орбіти. [kbd]Alt + " +"Shift + ліва кнопка миші[/kbd] для панорамування. [kbd]Ctrl + Alt + ліва " +"кнопка миші[/kbd] для збільшення.\n" +"- [b]Планшет/Трекпад:[/b] [kbd]Alt[/kbd] для орбіти. [kbd]Shift[/kbd] для " +"панорамування. [kbd]Ctrl[/kbd] для збільшення. Вмикає режим емуляції 3-" +"кнопкової миші.\n" +"Див. також [member editors/3d/navigation/orbit_mouse_button], [member " +"editors/3d/navigation/pan_mouse_button], [member editors/3d/navigation/" +"zoom_mouse_button], [member editors/3d/freelook/freelook_navigation_scheme] і " +"[member editors/3d/navigation/emulate_3_button_mouse].\n" +"[b]Примітка: [/b] У певних менеджерах вікон у Linux клавіша [kbd]Alt[/kbd] " +"буде перехоплена менеджером вікон під час одночасного натискання кнопки миші. " +"Це означає, що Годо не побачить натиснутої клавіші-модифікатора." + +msgid "" +"The mouse button that needs to be held down to orbit in the 3D editor " +"viewport." +msgstr "" +"Кнопка миші, яку потрібно утримувати, щоб обертатися у вікні перегляду 3D-" +"редактора." + +msgid "" +"The mouse button that needs to be held down to pan in the 3D editor viewport." +msgstr "" +"Кнопка миші, яку потрібно утримувати для панорамування у вікні перегляду 3D-" +"редактора." + +msgid "" +"If [code]true[/code], shows gizmos for moving and rotating the camera in the " +"bottom corners of the 3D editor's viewport. Useful for devices that use touch " +"screen." +msgstr "" +"Якщо [code]true[/code], у нижніх кутах вікна перегляду 3D-редактора " +"відображаються інструменти для переміщення та обертання камери. Корисно для " +"пристроїв із сенсорним екраном." + +msgid "" +"If [code]true[/code], shows a small orientation gizmo in the top-right corner " +"of the 3D editor's viewports." +msgstr "" +"Якщо [code]true[/code], у верхньому правому куті вікон перегляду 3D-редактора " +"відображається маленький інструмент орієнтації." + msgid "" "If [code]true[/code], warps the mouse around the 3D viewport while panning in " "the 3D editor. This makes it possible to pan over a large area without having " @@ -45758,6 +59037,12 @@ msgstr "" "редакторі 3D. Це дозволяє сковороди над великою площею, не маючи на виході " "панування і регулювати курсор мишки." +msgid "" +"The mouse button that needs to be held down to zoom in the 3D editor viewport." +msgstr "" +"Кнопка миші, яку потрібно утримувати, щоб збільшити вікно перегляду 3D-" +"редактора." + msgid "" "The mouse cursor movement direction to use when zooming by moving the mouse. " "This does not affect zooming with the mouse wheel." @@ -45786,6 +59071,9 @@ msgstr "" "Інерція для використання при пануванні в редакторі 3D. Більшість значень " "роблять запуск камери і повільніше, що виглядає гладкіше, але додає затримки." +msgid "The mouse sensitivity to use when panning in the 3D editor." +msgstr "Чутливість миші для панорамування в 3D-редакторі." + msgid "" "The inertia to use when zooming in the 3D editor. Higher values make the " "camera start and stop slower, which looks smoother but adds latency." @@ -45836,6 +59124,24 @@ msgstr "" "Колір для використання для Gizmo AABB, який відображає на замовлення " "[GeometryInstance3D] [AABB]." +msgid "The 3D editor gizmo color for [Camera3D]s." +msgstr "3D-редактор gizmo color для [Camera3D]." + +msgid "" +"The 3D editor gizmo color for CSG nodes (such as [CSGShape3D] or [CSGBox3D])." +msgstr "" +"Колір gizmo 3D-редактора для вузлів CSG (таких як [CSGShape3D] або " +"[CSGBox3D])." + +msgid "The 3D editor gizmo color for [Decal] nodes." +msgstr "Колір gizmo 3D-редактора для вузлів [Decal]." + +msgid "The 3D editor gizmo color for [FogVolume] nodes." +msgstr "Колір gizmo 3D-редактора для вузлів [FogVolume]." + +msgid "The 3D editor gizmo color for the [GridMap] grid." +msgstr "Колір gizmo 3D-редактора для сітки [GridMap]." + msgid "" "The color override to use for 3D editor gizmos if the [Node3D] in question is " "part of an instantiated scene file (from the perspective of the current " @@ -45847,6 +59153,116 @@ msgstr "" msgid "The 3D editor gizmo color for [Joint3D]s and [PhysicalBone3D]s." msgstr "3D редактор gizmo колір для [Joint3D] і [PhysicalBone3D]s." +msgid "Color for representing [member Joint3D.node_a] for some [Joint3D] types." +msgstr "" +"Колір для представлення [члена Joint3D.node_a] для деяких типів [Joint3D]." + +msgid "Color for representing [member Joint3D.node_b] for some [Joint3D] types." +msgstr "" +"Колір для представлення [члена Joint3D.node_b] для деяких типів [Joint3D]." + +msgid "Color of lines displayed in baked [LightmapGI] node's grid." +msgstr "Колір ліній, що відображаються в запеченій сітці вузла [LightmapGI]." + +msgid "The 3D editor gizmo color used for [LightmapProbe] nodes." +msgstr "" +"Колір gizmo 3D-редактора, який використовується для вузлів [LightmapProbe]." + +msgid "The 3D editor gizmo color used for [OccluderInstance3D] nodes." +msgstr "" +"Колір gizmo 3D-редактора, який використовується для вузлів " +"[OccluderInstance3D]." + +msgid "The 3D editor gizmo color used for [GPUParticlesAttractor3D] nodes." +msgstr "" +"Колір gizmo 3D-редактора, який використовується для вузлів " +"[GPUParticlesAttractor3D]." + +msgid "The 3D editor gizmo color used for [GPUParticlesCollision3D] nodes." +msgstr "" +"Колір gizmo 3D-редактора, який використовується для вузлів " +"[GPUParticlesCollision3D]." + +msgid "" +"The 3D editor gizmo color used for [CPUParticles3D] and [GPUParticles3D] " +"nodes." +msgstr "" +"Колір gizmo 3D-редактора, який використовується для вузлів [CPUParticles3D] і " +"[GPUParticles3D]." + +msgid "" +"The 3D editor gizmo color used for [Path3D] tilt circles, which indicate the " +"direction the [Curve3D] is tilted towards." +msgstr "" +"Колір gizmo редактора 3D, який використовується для кіл нахилу [Path3D], які " +"вказують напрямок нахилу [Curve3D]." + +msgid "The 3D editor gizmo color used for [ReflectionProbe] nodes." +msgstr "" +"Колір gizmo 3D-редактора, який використовується для вузлів [ReflectionProbe]." + +msgid "" +"The 3D editor gizmo color used for the currently selected [Skeleton3D] bone." +msgstr "" +"Колір штуковини 3D-редактора, який використовується для вибраної кістки " +"[Skeleton3D]." + +msgid "The 3D editor gizmo color used for [Skeleton3D] nodes." +msgstr "" +"Колір gizmo 3D-редактора, який використовується для вузлів [Skeleton3D]." + +msgid "The 3D editor gizmo color used for [SpringBoneCollision3D] nodes." +msgstr "" +"Колір gizmo 3D-редактора, який використовується для вузлів " +"[SpringBoneCollision3D]." + +msgid "" +"The 3D editor gizmo color used for [SpringBoneCollision3D] nodes with inside " +"mode." +msgstr "" +"Колір gizmo 3D-редактора, який використовується для вузлів " +"[SpringBoneCollision3D] із внутрішнім режимом." + +msgid "The 3D editor gizmo color used for [SpringBoneSimulator3D] nodes." +msgstr "" +"Колір gizmo 3D-редактора, який використовується для вузлів " +"[SpringBoneSimulator3D]." + +msgid "" +"The 3D editor gizmo color used for [AudioStreamPlayer3D]'s emission angle." +msgstr "" +"Колір gizmo 3D-редактора, який використовується для кута випромінювання " +"[AudioStreamPlayer3D]." + +msgid "" +"The 3D editor gizmo color used for [VisibleOnScreenNotifier3D] and " +"[VisibleOnScreenEnabler3D] nodes." +msgstr "" +"Колір gizmo 3D-редактора, який використовується для вузлів " +"[VisibleOnScreenNotifier3D] і [VisibleOnScreenEnabler3D]." + +msgid "The 3D editor gizmo color used for [VoxelGI] nodes." +msgstr "Колір gizmo 3D-редактора, який використовується для вузлів [VoxelGI]." + +msgid "The length of [Skeleton3D] bone gizmos in the 3D editor." +msgstr "Довжина кісток [Skeleton3D] у 3D-редакторі." + +msgid "" +"The shape of [Skeleton3D] bone gizmos in the 3D editor. [b]Wire[/b] is a thin " +"line, while [b]Octahedron[/b] is a set of lines that represent a thicker " +"hollow line pointing in a specific direction (similar to most 3D animation " +"software)." +msgstr "" +"Форма кісток [Skeleton3D] у 3D-редакторі. [b]Дріт[/b] — це тонка лінія, тоді " +"як [b]Октаедр[/b] — це набір ліній, які представляють більш товсту порожнисту " +"лінію, що вказує в певному напрямку (подібно до більшості програм для 3D-" +"анімації)." + +msgid "Size of the disk gizmo displayed when editing [Path3D]'s tilt handles." +msgstr "" +"Розмір гізммо диска, який відображається під час редагування маркерів нахилу " +"[Path3D]." + msgid "" "If [code]true[/code], automatically updates animation tracks' target paths " "when renaming or reparenting nodes in the Scene tree dock." @@ -45899,6 +59315,9 @@ msgstr "" "Модульний колір для використання рамок \"паст\", що відображаються в функції " "образу анімації редактора." +msgid "Minimum width of GridMap's mesh palette side panel." +msgstr "Мінімальна ширина бічної панелі палітри сітки GridMap." + msgid "" "The maximum distance at which tiles can be placed on a GridMap, relative to " "the camera position (in 3D units)." @@ -45906,6 +59325,11 @@ msgstr "" "Максимальна відстань, при якій плитка може бути розміщена на GridMap, " "відносно положення камери (в 3D одиниці)." +msgid "Texture size of mesh previews generated for GridMap's MeshLibrary." +msgstr "" +"Розмір текстури попереднього перегляду сітки, згенерований для MeshLibrary " +"GridMap." + msgid "" "The panning speed when using the mouse wheel or touchscreen events in the 2D " "editor. This setting does not apply to panning by holding down the middle or " @@ -46131,6 +59555,28 @@ msgstr "" "допомогою натискання іконки \"іє\" поряд з виходом). Вартість визначається в " "пікселях на 100% зумів, і буде масштабувати з збільшенням автоматично." +msgid "" +"Path to the SCP (secure copy) executable (used for remote deploy to desktop " +"platforms). If left empty, the editor will attempt to run [code]scp[/code] " +"from [code]PATH[/code].\n" +"[b]Note:[/b] SCP is not the same as SFTP. Specifying the SFTP executable here " +"will not work." +msgstr "" +"Шлях до виконуваного файлу SCP (захищеної копії) (використовується для " +"віддаленого розгортання на настільних платформах). Якщо залишити пустим, " +"редактор спробує запустити [code]scp[/code] із [code]PATH[/code].\n" +"[b]Примітка. [/b] SCP — це не те саме, що SFTP. Вказати тут виконуваний файл " +"SFTP не працюватиме." + +msgid "" +"Path to the SSH executable (used for remote deploy to desktop platforms). If " +"left empty, the editor will attempt to run [code]ssh[/code] from [code]PATH[/" +"code]." +msgstr "" +"Шлях до виконуваного файлу SSH (використовується для віддаленого розгортання " +"на настільних платформах). Якщо залишити пустим, редактор спробує запустити " +"[code]ssh[/code] із [code]PATH[/code]." + msgid "" "The folder where projects should be scanned for (recursively), in a way " "similar to the project manager's [b]Scan[/b] button. This can be set to the " @@ -46288,6 +59734,73 @@ msgstr "" "Розмір thumbnail для використання у діалогах файлів редактора (в пікселях). " "Дивись також [пам'яткові шкарпетки/filesystem/thumbnail_size]." +msgid "" +"Password used for file server when exporting project with remote file system." +msgstr "" +"Пароль, який використовується для файлового сервера під час експорту проекту " +"з віддаленою файловою системою." + +msgid "" +"Port used for file server when exporting project with remote file system." +msgstr "" +"Порт, який використовується для файлового сервера під час експорту проекту з " +"віддаленою файловою системою." + +msgid "" +"The path to the Blender executable used for converting the Blender 3D scene " +"files [code].blend[/code] to glTF 2.0 format during import. Blender 3.0 or " +"later is required.\n" +"To enable this feature for your specific project, use [member ProjectSettings." +"filesystem/import/blender/enabled].\n" +"If this setting is empty, Blender's default paths will be detected and used " +"automatically if present in this order:\n" +"[b]Windows:[/b]\n" +"[codeblock]\n" +"- C:\\Program Files\\Blender Foundation\\blender.exe\n" +"- C:\\Program Files (x86)\\Blender Foundation\\blender.exe\n" +"[/codeblock]\n" +"[b]macOS:[/b]\n" +"[codeblock]\n" +"- /opt/homebrew/bin/blender\n" +"- /opt/local/bin/blender\n" +"- /usr/local/bin/blender\n" +"- /usr/local/opt/blender\n" +"- /Applications/Blender.app/Contents/MacOS/Blender\n" +"[/codeblock]\n" +"[b]Linux/*BSD:[/b]\n" +"[codeblock]\n" +"- /usr/bin/blender\n" +"- /usr/local/bin/blender\n" +"- /opt/blender/bin/blender\n" +"[/codeblock]" +msgstr "" +"Шлях до виконуваного файлу Blender, який використовується для перетворення " +"файлів 3D сцени Blender [code].blend[/code] у формат glTF 2.0 під час " +"імпорту. Потрібен Blender 3.0 або новішої версії.\n" +"Щоб увімкнути цю функцію для вашого конкретного проекту, використовуйте " +"[member ProjectSettings.filesystem/import/blender/enabled].\n" +"Якщо це налаштування порожнє, шляхи за замовчуванням Blender будуть визначені " +"та використані автоматично, якщо вони присутні в такому порядку:\n" +"[b]Windows:[/b]\n" +"[codeblock]\n" +"- C:\\Program Files\\Blender Foundation\\blender.exe\n" +"- C:\\Program Files (x86)\\Blender Foundation\\blender.exe\n" +"[/codeblock]\n" +"[b]macOS:[/b]\n" +"[codeblock]\n" +"- /opt/homebrew/bin/blender\n" +"- /opt/local/bin/blender\n" +"- /usr/local/bin/blender\n" +"- /usr/local/opt/blender\n" +"- /Applications/Blender.app/Contents/MacOS/Blender\n" +"[/codeblock]\n" +"[b]Linux/*BSD:[/b]\n" +"[codeblock]\n" +"- /usr/bin/blender\n" +"- /usr/local/bin/blender\n" +"- /opt/blender/bin/blender\n" +"[/codeblock]" + msgid "" "The port number used for Remote Procedure Call (RPC) communication with " "Godot's created process of the blender executable.\n" @@ -46343,6 +59856,46 @@ msgstr "" "антивірусними програмами. У цьому випадку ви можете встановити це на " "[code]false[/code] для запобігання проблемам блокування файлів." +msgid "" +"If set to [code]Adaptive[/code], the dialog opens in list view or grid view " +"depending on the requested type. If set to [code]Last Used[/code], the " +"display mode will always open the way you last used it." +msgstr "" +"Якщо встановлено значення [code]Adaptive[/code], діалогове вікно " +"відкриватиметься у вигляді списку або таблиці залежно від потрібного типу. " +"Якщо встановлено значення [code]Останнє використання[/code], режим " +"відображення завжди відкриватиметься так, як ви його використовували востаннє." + +msgid "If [code]true[/code], fuzzy matching of search tokens is allowed." +msgstr "Якщо [code]true[/code], дозволено нечітке зіставлення маркерів пошуку." + +msgid "" +"If [code]true[/code], results will include files located in the [code]addons[/" +"code] folder." +msgstr "" +"Якщо [code]true[/code], результати включатимуть файли, розташовані в папці " +"[code]addons[/code]." + +msgid "" +"The number of allowed missed query characters in a match, if fuzzy matching " +"is enabled. For example, with the default value of 2, [code]foobar[/code] " +"would match [code]foobur[/code] and [code]foob[/code] but not [code]foo[/" +"code]." +msgstr "" +"Кількість дозволених пропущених символів запиту в збігу, якщо ввімкнено " +"нечітку відповідність. Наприклад, зі значенням за замовчуванням 2 " +"[code]foobar[/code] відповідатиме [code]foobur[/code] і [code]foob[/code], " +"але не [code]foo[/code]." + +msgid "Maximum number of matches to show in dialog." +msgstr "Максимальна кількість збігів для показу в діалоговому вікні." + +msgid "" +"If [code]true[/code], results will be highlighted with their search matches." +msgstr "" +"Якщо [code]true[/code], результати будуть виділені разом із пошуковими " +"збігами." + msgid "" "The path to the directory containing the Open Image Denoise (OIDN) " "executable, used optionally for denoising lightmaps. It can be downloaded " @@ -46519,6 +60072,13 @@ msgstr "" "contributing/documentation/editor_and_docs_localization.html]contribute для " "перекладу редактора на Weblate![/url]" +msgid "" +"The preferred monitor to display the editor. If [b]Auto[/b], the editor will " +"remember the last screen it was displayed on across restarts." +msgstr "" +"Бажаний монітор для відображення редактора. Якщо [b]Авто[/b], редактор " +"запам’ятає останній екран, на якому він відображався під час перезапуску." + msgid "" "Expanding main editor window content to the title, if supported by " "[DisplayServer]. See [constant DisplayServer.WINDOW_FLAG_EXTEND_TO_TITLE].\n" @@ -46528,6 +60088,22 @@ msgstr "" "[DisplayServer]. Див. [constant DisplayServer.WINDOW_FLAG_EXTEND_TO_TITLE].\n" "Специфікація на платформу macOS." +msgid "" +"If set to [code]true[/code], MSDF font rendering will be used for the visual " +"shader graph editor. You may need to set this to [code]false[/code] when " +"using a custom main font, as some fonts will look broken due to the use of " +"self-intersecting outlines in their font data. Downloading the font from the " +"font maker's official website as opposed to a service like Google Fonts can " +"help resolve this issue." +msgstr "" +"Якщо встановлено значення [code]true[/code], візуалізація шрифту MSDF " +"використовуватиметься для редактора графіків візуального шейдера. Можливо, " +"вам знадобиться встановити значення [code]false[/code] під час використання " +"спеціального основного шрифту, оскільки деякі шрифти виглядатимуть зламаними " +"через використання самопересічних контурів у їхніх даних шрифту. Завантаження " +"шрифту з офіційного веб-сайту виробника шрифтів на відміну від служби, як-от " +"Google Fonts, може допомогти вирішити цю проблему." + msgid "" "FreeType's font anti-aliasing mode used to render the editor fonts. Most " "fonts are not designed to look good with anti-aliasing disabled, so it's " @@ -46775,6 +60351,37 @@ msgstr "" "незалежно від цього значення налаштування. Щоб уникнути злиття з тим, що " "призведе до перевищення в реальних сценаріях світу." +msgid "" +"If [code]true[/code], embed modal windows such as docks inside the main " +"editor window. When single-window mode is enabled, tooltips will also be " +"embedded inside the main editor window, which means they can't be displayed " +"outside of the editor window. Single-window mode can be faster as it does not " +"need to create a separate window for every popup and tooltip, which can be a " +"slow operation depending on the operating system and rendering method in " +"use.\n" +"This is equivalent to [member ProjectSettings.display/window/subwindows/" +"embed_subwindows] in the running project, except the setting's value is " +"inverted.\n" +"[b]Note:[/b] To query whether the editor can use multiple windows in an " +"editor plugin, use [method EditorInterface.is_multi_window_enabled] instead " +"of querying the value of this editor setting.\n" +"[b]Note:[/b] If [code]true[/code], game embedding is disabled." +msgstr "" +"Якщо [code]true[/code], модальні вікна, такі як доки, вставляються в головне " +"вікно редактора. Коли ввімкнено одновіконний режим, підказки також буде " +"вбудовано в головне вікно редактора, що означає, що вони не можуть " +"відображатися за межами вікна редактора. Режим одного вікна може бути " +"швидшим, оскільки не потрібно створювати окреме вікно для кожного спливаючого " +"вікна та спливаючої підказки, що може бути повільною операцією залежно від " +"операційної системи та використовуваного методу візуалізації.\n" +"Це еквівалентно [member ProjectSettings.display/window/subwindows/" +"embed_subwindows] у запущеному проекті, за винятком того, що значення " +"параметра інвертується.\n" +"[b]Примітка.[/b] Щоб запитати, чи може редактор використовувати кілька вікон " +"у плагіні редактора, використовуйте [метод EditorInterface." +"is_multi_window_enabled] замість запиту значення цього параметра редактора.\n" +"[b]Примітка:[/b] Якщо [code]true[/code], вбудовування гри вимкнено." + msgid "Editor UI default layout direction." msgstr "Редактор UI напрямок макета." @@ -46852,6 +60459,22 @@ msgstr "" "[b]Note:[/b] Режими V-Sync, крім [b]Enabled[/b] підтримуються лише в методах " "Forward+ і Mobile рендерингу, не сумісність." +msgid "" +"If [code]true[/code], when extending a script, the global class name of the " +"script is inserted in the script creation dialog, if it exists. If " +"[code]false[/code], the script's file path is always inserted." +msgstr "" +"Якщо [code]true[/code], під час розширення сценарію ім’я глобального класу " +"сценарію вставляється в діалогове вікно створення сценарію, якщо воно існує. " +"Якщо [code]false[/code], завжди вставляється шлях до файлу сценарію." + +msgid "" +"If [code]true[/code], the Scene dock will display buttons to quickly add a " +"root node to a newly created scene." +msgstr "" +"Якщо [code]true[/code], док-станція Scene відображатиме кнопки для швидкого " +"додавання кореневого вузла до новоствореної сцени." + msgid "" "If [code]true[/code], automatically expands property groups in the Inspector " "dock when opening a scene that hasn't been opened previously. If [code]false[/" @@ -46905,6 +60528,19 @@ msgstr "" "[b]Примітка:[/b] Щоб відобразити перекладені імена параметрів проекту та " "налаштування редактора, скористайтеся інтерфейсом / editor/localize_settings." +msgid "" +"If [code]true[/code], add a margin around Array, Dictionary, and Resource " +"Editors that are not already colored.\n" +"[b]Note:[/b] If [member interface/inspector/nested_color_mode] is set to " +"[b]Containers & Resources[/b] this parameter will have no effect since those " +"editors will already be colored." +msgstr "" +"Якщо [code]true[/code], додайте поля навколо редакторів масиву, словника та " +"ресурсів, які ще не пофарбовані.\n" +"[b]Примітка:[/b] якщо для [member interface/inspector/nested_color_mode] " +"встановлено значення [b]Containers & Resources[/b], цей параметр не матиме " +"жодного ефекту, оскільки ці редактори вже будуть кольоровими." + msgid "" "If [code]true[/code], forces all property groups to be expanded in the " "Inspector dock and prevents collapsing them." @@ -46998,6 +60634,25 @@ msgstr "" "Якщо [code]true[/code], відображати функції OpenType, позначені як " "[code]hidden[/code] по файлу шрифту в редакторі [Font]." +msgid "" +"If [code]true[/code], multiple window support in editor is enabled. The " +"following panels can become dedicated windows (i.e. made floating): Docks, " +"Script editor, Shader editor, and Game Workspace.\n" +"[b]Note:[/b] When [member interface/editor/single_window_mode] is [code]true[/" +"code], the multi window support is always disabled.\n" +"[b]Note:[/b] To query whether the editor can use multiple windows in an " +"editor plugin, use [method EditorInterface.is_multi_window_enabled] instead " +"of querying the value of this editor setting." +msgstr "" +"Якщо [code]true[/code], у редакторі ввімкнено підтримку кількох вікон. " +"Наступні панелі можуть стати спеціальними вікнами (тобто зробити плаваючими): " +"Доки, Редактор сценаріїв, Редактор шейдерів і Робоча область гри.\n" +"[b]Примітка.[/b] Якщо [member interface/editor/single_window_mode] має " +"значення [code]true[/code], підтримка кількох вікон завжди вимкнена.\n" +"[b]Примітка.[/b] Щоб запитати, чи може редактор використовувати кілька вікон " +"у плагіні редактора, використовуйте [метод EditorInterface." +"is_multi_window_enabled] замість запиту значення цього параметра редактора." + msgid "" "If [code]true[/code], when panels are made floating they will be maximized.\n" "If [code]false[/code], when panels are made floating their position and size " @@ -47193,6 +60848,14 @@ msgstr "" "Редактор теми для використання. Дивись також [пам'яний інтерфейс/theme/" "base_spacing] та [пам'яний інтерфейс/theme/additional_spacing]." +msgid "" +"If [code]true[/code], set accent color based on system settings.\n" +"[b]Note:[/b] This setting is only effective on Windows, MacOS, and Android." +msgstr "" +"Якщо [code]true[/code], установіть колір акценту на основі налаштувань " +"системи.\n" +"[b]Примітка.[/b] Цей параметр діє лише в Windows, MacOS та Android." + msgid "" "If [code]true[/code], long press on touchscreen is treated as right click.\n" "[b]Note:[/b] Defaults to [code]true[/code] on touchscreen devices." @@ -47270,6 +60933,17 @@ msgstr "" "занепокоєння щодо конфіденційності, запобігаючи редакцією HTTP-запитів на веб-" "сайт Godot або сторонні платформи, що розміщують активи з бібліотеки Asset." +msgid "" +"The address to listen to when starting the remote debugger. This can be set " +"to this device's local IP address to allow external clients to connect to the " +"remote debugger (instead of restricting the remote debugger to connections " +"from [code]localhost[/code])." +msgstr "" +"Адреса для прослуховування під час запуску віддаленого налагоджувача. Це " +"можна встановити на локальну IP-адресу цього пристрою, щоб дозволити " +"зовнішнім клієнтам підключатися до віддаленого налагоджувача (замість " +"обмеження віддаленого налагоджувача підключеннями з [code]localhost[/code])." + msgid "" "The port to listen to when starting the remote debugger. Godot will try to " "use port numbers above the configured number if the configured number is " @@ -47316,6 +60990,18 @@ msgstr "" "blob/master/rdparty/certs/ca-certificates.crt] включено Використовуваний " "пакет сертифікатів від Mozilla." +msgid "" +"If [code]true[/code], enable TLSv1.3 negotiation.\n" +"[b]Note:[/b] Only supported when using Mbed TLS 3.0 or later (Linux " +"distribution packages may be compiled against older system Mbed TLS " +"packages), otherwise the maximum supported TLS version is always TLSv1.2." +msgstr "" +"Якщо [code]true[/code], увімкнути узгодження TLSv1.3. \n" +"[b]Примітка:[/b] Підтримується лише під час використання Mbed TLS 3.0 або " +"пізнішої версії (дистрибутивні пакети Linux можуть бути скомпільовані зі " +"старіших системних пакетів Mbed TLS), інакше максимальною підтримуваною " +"версією TLS завжди є TLSv1.2." + msgid "" "The renderer type that will be checked off by default when creating a new " "project. Accepted strings are \"forward_plus\", \"mobile\" or " @@ -47355,6 +61041,24 @@ msgstr "" "трохи, але це дозволяє запустити проект, який має незбережені зміни. " "(Нездійснені зміни не будуть видимі в проекті.)" +msgid "" +"The action to execute on the bottom panel when running the project.\n" +"[b]Note:[/b] This option won't do anything if the bottom panel switching is " +"locked using the pin button in the corner of the bottom panel." +msgstr "" +"Дія, яка виконується на нижній панелі під час запуску проекту.\n" +"[b]Примітка.[/b] Ця опція нічого не дасть, якщо перемикання нижньої панелі " +"заблоковано за допомогою кнопки закріплення в кутку нижньої панелі." + +msgid "" +"The action to execute on the bottom panel when stopping the project.\n" +"[b]Note:[/b] This option won't do anything if the bottom panel switching is " +"locked using the pin button in the corner of the bottom panel." +msgstr "" +"Дія, яка виконується на нижній панелі під час зупинки проекту.\n" +"[b]Примітка:[/b] цей параметр нічого не дасть, якщо перемикання нижньої " +"панелі заблоковано за допомогою кнопки закріплення в кутку нижньої панелі." + msgid "" "If [code]true[/code], the editor will clear the Output panel when running the " "project." @@ -47382,6 +61086,45 @@ msgstr "" "Якщо [code]true[/code], у Linux/BSD редактор спочатку перевірить наявність " "Wayland замість X11 (якщо доступно)." +msgid "" +"Specifies how the Play window is launched relative to the Android editor.\n" +"- [b]Auto (based on screen size)[/b] (default) will automatically choose how " +"to launch the Play window based on the device and screen metrics. Defaults to " +"[b]Same as Editor[/b] on phones and [b]Side-by-side with Editor[/b] on " +"tablets.\n" +"- [b]Same as Editor[/b] will launch the Play window in the same window as the " +"Editor.\n" +"- [b]Side-by-side with Editor[/b] will launch the Play window side-by-side " +"with the Editor window.\n" +"[b]Note:[/b] Only available in the Android editor." +msgstr "" +"Визначає спосіб запуску вікна Play відносно редактора Android. \n" +"- [b]Авто (на основі розміру екрана)[/b] (за замовчуванням) автоматично " +"вибере спосіб запуску вікна відтворення на основі показників пристрою та " +"екрана. За замовчуванням [b]Те саме, що редактор[/b] на телефонах і [b]поряд " +"із редактором[/b] на планшетах. \n" +"- [b]Same as Editor[/b] запустить вікно Play у тому ж вікні, що й редактор. \n" +"- [b]Пліч-о-пліч із редактором[/b] запустить вікно відтворення поруч із " +"вікном редактора. \n" +"[b]Примітка.[/b] Доступно лише в редакторі Android." + +msgid "" +"Overrides game embedding setting for all newly opened projects. If enabled, " +"game embedding settings are not saved." +msgstr "" +"Перевизначає налаштування вбудовування гри для всіх щойно відкритих проектів. " +"Якщо ввімкнено, налаштування вбудовування гри не зберігаються." + +msgid "" +"The window mode to use to display the project when starting the project from " +"the editor.\n" +"[b]Note:[/b] Game embedding is not available for \"Force Maximized\" or " +"\"Force Fullscreen.\"" +msgstr "" +"Режим вікна для відображення проекту під час запуску проекту з редактора.\n" +"[b]Примітка.[/b] Вбудовування гри недоступне для «Примусово розгорнуто» або " +"«Примусово на весь екран»" + msgid "" "The custom position to use when starting the project from the editor (in " "pixels from the top-left corner). Only effective if [member run/" @@ -47554,6 +61297,20 @@ msgstr "" "Простір додавати між лініями (у пікселях). Більша лінія спати може допомогти " "поліпшити читабельність за вартістю відображення менших ліній на екрані." +msgid "" +"If [code]true[/code], documentation tooltips will appear when hovering over a " +"symbol." +msgstr "" +"Якщо [code]true[/code], підказки документації з’являтимуться під час " +"наведення курсора на символ." + +msgid "" +"If [code]true[/code], tool scripts will be automatically soft-reloaded after " +"they are saved." +msgstr "" +"Якщо [code]true[/code], сценарії інструментів буде автоматично " +"перезавантажено після їх збереження." + msgid "" "If [code]true[/code], automatically reloads scripts in the editor when they " "have been modified and saved by external editors." @@ -47579,6 +61336,14 @@ msgstr "" "початкового редактора при збереженні сценарію. Дивись також [пам'ятний " "текст_editor/behavior/indent/type]." +msgid "" +"If [code]true[/code], opening a scene automatically opens the script attached " +"to the root node, or the topmost node if the root has no script." +msgstr "" +"Якщо [code]true[/code], відкриття сцени автоматично відкриває сценарій, " +"приєднаний до кореневого вузла, або найвищого вузла, якщо кореневий вузол не " +"має сценарію." + msgid "" "If [code]true[/code], reopens scripts that were opened in the last session " "when the editor is reopened on a given project." @@ -47610,6 +61375,14 @@ msgstr "" "призначення, вони можуть і повинні бути видалені, щоб зробити контроль версії " "дифузії менше шуму." +msgid "" +"If [code]true[/code], copying or cutting without a selection is performed on " +"all lines with a caret. Otherwise, copy and cut require a selection." +msgstr "" +"Якщо [code]true[/code], копіювання або вирізання без виділення виконується " +"для всіх рядків із кареткою. В іншому випадку копіювання та вирізання " +"потребують виділення." + msgid "" "If [code]true[/code], automatically indents code when pressing the " "[kbd]Enter[/kbd] key based on blocks above the new line." @@ -47802,6 +61575,21 @@ msgstr "" "скрипти будуть також автоматично мати натяки, додані в параметри методу та " "типи повернення." +msgid "" +"If [code]true[/code], automatically inserts the matching closing brace when " +"the opening brace is inserted by typing or autocompletion. Also automatically " +"removes the closing brace when pressing [kbd]Backspace[/kbd] on the opening " +"brace. This includes brackets ([code]()[/code], [code][][/code], [code]{}[/" +"code]), string quotation marks ([code]''[/code], [code]\"\"[/code]), and " +"comments ([code]/**/[/code]) if the language supports it." +msgstr "" +"Якщо [code]true[/code], автоматично вставляється відповідна закриваюча дужка, " +"коли відкриваюча дужка вставляється шляхом введення чи автозаповнення. Також " +"автоматично видаляє закриваючу дужку під час натискання [kbd]Backspace[/kbd] " +"на відкриваючій дужці. Це включає в себе дужки ([code]()[/code], [code][][/" +"code], [code]{}[/code]), лапки ([code]''[/code], [code]\"\"[/code]) і " +"коментарі ([code]/**/[/code]), якщо це підтримує мова." + msgid "" "The delay in seconds after which autocompletion suggestions should be " "displayed when the user stops typing." @@ -47843,6 +61631,16 @@ msgstr "" "Затримка за секундами, після чого редактор скрипту повинен перевіряти помилки " "при наборі користувачів." +msgid "" +"The delay used instead of [member text_editor/completion/idle_parse_delay], " +"when the parser has found errors. A lower value should feel more responsive " +"while fixing code, but may cause notable stuttering and increase CPU usage." +msgstr "" +"Затримка, яка використовується замість [member text_editor/completion/" +"idle_parse_delay], коли аналізатор знаходить помилки. Нижче значення має " +"сприяти кращому реагуванню під час виправлення коду, але може спричинити " +"помітне заїкання та збільшити використання ЦП." + msgid "" "If [code]true[/code], the code completion tooltip will appear below the " "current line unless there is no space on screen below the current line. If " @@ -47864,6 +61662,33 @@ msgstr "" "відповідає [url=$DOCS_URL/tutorials/scripting/gdscript/gdscript_styleguide." "html]GDScript стиль керівництво[/url])." +msgid "" +"The command-line arguments to pass to the external text editor that is run " +"when [member text_editor/external/use_external_editor] is [code]true[/code]. " +"See also [member text_editor/external/exec_path]." +msgstr "" +"Аргументи командного рядка для передачі зовнішньому текстовому редактору, " +"який запускається, коли [member text_editor/external/use_external_editor] має " +"значення [code]true[/code]. Дивіться також [член text_editor/external/" +"exec_path]." + +msgid "" +"The path to the text editor executable used to edit text files if [member " +"text_editor/external/use_external_editor] is [code]true[/code]." +msgstr "" +"Шлях до виконуваного файлу текстового редактора, який використовується для " +"редагування текстових файлів, якщо [member text_editor/external/" +"use_external_editor] має значення [code]true[/code]." + +msgid "" +"If [code]true[/code], uses an external editor instead of the built-in Script " +"Editor. See also [member text_editor/external/exec_path] and [member " +"text_editor/external/exec_flags]." +msgstr "" +"Якщо [code]true[/code], використовується зовнішній редактор замість " +"вбудованого редактора сценаріїв. Див. також [member text_editor/external/" +"exec_path] і [member text_editor/external/exec_flags]." + msgid "" "Controls which multi-line code blocks should be displayed in the editor help. " "This setting does not affect single-line code literals in the editor help." @@ -47896,6 +61721,55 @@ msgstr "" "Якщо [code]true[/code], виводить таблицю змісту зліва від редакторної " "допомоги (у місці, де учасники з'являються при редагування сценарію)." +msgid "" +"If [code]true[/code], the script's method list in the Script Editor is sorted " +"alphabetically." +msgstr "" +"Якщо [code]true[/code], список методів сценарію в редакторі сценаріїв " +"сортується за алфавітом." + +msgid "" +"If [code]true[/code], class reference pages are grouped together at the " +"bottom of the Script Editor's script list." +msgstr "" +"Якщо [code]true[/code], довідкові сторінки класів групуються разом у нижній " +"частині списку сценаріїв редактора сценаріїв." + +msgid "" +"If [code]true[/code], the scripts that are used by the current scene are " +"highlighted in the Script Editor's script list." +msgstr "" +"Якщо [code]true[/code], сценарії, які використовуються поточною сценою, " +"виділяються у списку сценаріїв редактора сценаріїв." + +msgid "" +"Specifies how script paths should be displayed in Script Editor's script " +"list. If using the \"Name\" option and some scripts share the same file name, " +"more parts of their paths are revealed to avoid conflicts." +msgstr "" +"Визначає спосіб відображення шляхів сценаріїв у списку сценаріїв редактора " +"сценаріїв. Якщо використовується параметр «Ім’я», а деякі сценарії мають " +"однакове ім’я файлу, для уникнення конфліктів буде показано більше частин " +"їхніх шляхів." + +msgid "" +"If [code]true[/code], the names of recently opened scripts in the Script " +"Editor are highlighted with the accent color, with its intensity based on how " +"recently they were opened." +msgstr "" +"Якщо [code]true[/code], назви нещодавно відкритих сценаріїв у редакторі " +"сценаріїв виділяються кольором акценту, інтенсивність якого залежить від " +"того, як нещодавно вони були відкриті." + +msgid "" +"How many script names can be highlighted at most, if [member text_editor/" +"script_list/script_temperature_enabled] is [code]true[/code]. Scripts older " +"than this value use the default font color." +msgstr "" +"Скільки імен сценаріїв можна виділити щонайбільше, якщо [member text_editor/" +"script_list/script_temperature_enabled] має значення [code]true[/code]. " +"Сценарії, старші за це значення, використовують колір шрифту за замовчуванням." + msgid "" "If [code]true[/code], displays an overview of the current script's member " "variables and functions at the left of the script editor. See also [member " @@ -47920,6 +61794,11 @@ msgstr "" "[b]Note:[/b] Тільки ефективний, якщо [пам'ятний " "текст_editor_list_show_members_overview] [code]true[/code]." +msgid "Specifies sorting used for Script Editor's open script list." +msgstr "" +"Визначає сортування, яке використовується для відкритого списку сценаріїв " +"редактора сценаріїв." + msgid "" "The syntax theme to use in the script editor.\n" "You can save your own syntax theme from your current settings by using " @@ -48044,6 +61923,9 @@ msgstr "" "[code]#[/code]. У C# використовується для коментарів, починаючи з [code]///[/" "code] або [code]/*[/code]." +msgid "The script editor's engine type color ([Object], [Mesh], [Node], ...)." +msgstr "Колір типу двигуна редактора сценаріїв ([Object], [Mesh], [Node], ...)." + msgid "" "The script editor's color for the debugger's executing line icon (displayed " "in the gutter)." @@ -48181,6 +62063,28 @@ msgstr "" "Колір редактора скрипта для слів, виділених за допомогою вибору їх. " "[code]true[/code]." +msgid "The vertical line separation used in text editors, in pixels." +msgstr "" +"Вертикальний поділ, що використовується в текстових редакторах, у пікселях." + +msgid "" +"Path to private SSH key file for the editor's Version Control integration " +"credentials." +msgstr "" +"Шлях до файлу приватного ключа SSH для облікових даних інтеграції керування " +"версіями редактора." + +msgid "" +"Path to public SSH key file for the editor's Version Control integration " +"credentials." +msgstr "" +"Шлях до загальнодоступного файлу ключа SSH для облікових даних інтеграції " +"керування версіями редактора." + +msgid "Default username for editor's Version Control integration." +msgstr "" +"Ім’я користувача за замовчуванням для інтеграції керування версіями редактора." + msgid "Emitted after any editor setting has changed." msgstr "Випробувано після зміни налаштувань редактора." @@ -48211,6 +62115,19 @@ msgstr "" "аналогічні [SpinBox]. Якщо значення [пам'ятний діапазон] не [code]1[/code], " "слайдер буде відображатися замість." +msgid "" +"If [code]true[/code], the [EditorSpinSlider] is considered to be editing an " +"integer value. If [code]false[/code], the [EditorSpinSlider] is considered to " +"be editing a floating-point value. This is used to determine whether a slider " +"should be drawn. The slider is only drawn for floats; integers use up-down " +"arrows similar to [SpinBox] instead." +msgstr "" +"Якщо [code]true[/code], вважається, що [EditorSpinSlider] редагує ціле " +"значення. Якщо [code]false[/code], вважається, що [EditorSpinSlider] редагує " +"значення з плаваючою комою. Це використовується для визначення того, чи слід " +"малювати повзунок. Повзунок малюється лише для поплавців; замість цілих чисел " +"використовуються стрілки вгору-вниз, схожі на [SpinBox]." + msgid "If [code]true[/code], the slider will not draw background." msgstr "Якщо [code]true[/code], повзунок не відображатиме фон." @@ -48238,12 +62155,25 @@ msgstr "Випробувано, коли шпинделя / болгарка з msgid "Emitted when the spinner/slider is ungrabbed." msgstr "Випробувано, коли хребт/слідер угорбається." +msgid "Emitted when the updown button is pressed." +msgstr "Випромінюється при натисканні кнопки вгору вниз." + msgid "Emitted when the value form gains focus." msgstr "Увімкніть, коли значення має фокус." msgid "Emitted when the value form loses focus." msgstr "Випробувано, коли форма значення втрачає фокус." +msgid "Single texture representing both the up and down buttons." +msgstr "Одна текстура, що представляє кнопки вгору та вниз." + +msgid "" +"Single texture representing both the up and down buttons, when the control is " +"readonly or disabled." +msgstr "" +"Одна текстура, що представляє кнопки вгору та вниз, коли елемент керування " +"доступний лише для читання або вимкнений." + msgid "Base class for [SyntaxHighlighter] used by the [ScriptEditor]." msgstr "Базовий клас для [SyntaxHighlighter] використовується [ScriptEditor]." @@ -48272,6 +62202,40 @@ msgstr "" "Віртуальний метод, який може передаватися для повернення підтримуваних мовних " "імен." +msgid "Manages toast notifications within the editor." +msgstr "Керує сповіщеннями в редакторі." + +msgid "" +"This object manages the functionality and display of toast notifications " +"within the editor, ensuring timely and informative alerts are presented to " +"users.\n" +"[b]Note:[/b] This class shouldn't be instantiated directly. Instead, access " +"the singleton using [method EditorInterface.get_editor_toaster]." +msgstr "" +"Цей об’єкт керує функціональністю та відображенням сповіщень у редакторі, " +"забезпечуючи надання користувачам своєчасних та інформативних сповіщень.\n" +"[b]Примітка: [/b] Цей клас не слід створювати безпосередньо. Натомість " +"отримайте доступ до синглтона за допомогою [метод EditorInterface." +"get_editor_toaster]." + +msgid "Pushes a toast notification to the editor for display." +msgstr "Надсилає сповіщення в редакторі для відображення." + +msgid "Toast will display with an INFO severity." +msgstr "Тост відображатиметься з інформацією про серйозність." + +msgid "" +"Toast will display with a WARNING severity and have a corresponding color." +msgstr "" +"Тост відображатиметься зі ступенем серйозності ПОПЕРЕДЖЕННЯ та матиме " +"відповідний колір." + +msgid "" +"Toast will display with an ERROR severity and have a corresponding color." +msgstr "" +"Тост відображатиметься зі значенням серйозності ПОМИЛКА та матиме відповідний " +"колір." + msgid "" "Plugin for adding custom parsers to extract strings that are to be translated " "from custom files (.csv, .json etc.)." @@ -48279,6 +62243,243 @@ msgstr "" "Плагін для додавання користувацьких парсерів для вилучення рядків, які " "повинні бути перекладені з користувацьких файлів (.csv, .json тощо)." +msgid "" +"[EditorTranslationParserPlugin] is invoked when a file is being parsed to " +"extract strings that require translation. To define the parsing and string " +"extraction logic, override the [method _parse_file] method in script.\n" +"The return value should be an [Array] of [PackedStringArray]s, one for each " +"extracted translatable string. Each entry should contain [code][msgid, " +"msgctxt, msgid_plural, comment][/code], where all except [code]msgid[/code] " +"are optional. Empty strings will be ignored.\n" +"The extracted strings will be written into a POT file selected by user under " +"\"POT Generation\" in \"Localization\" tab in \"Project Settings\" menu.\n" +"Below shows an example of a custom parser that extracts strings from a CSV " +"file to write into a POT.\n" +"[codeblocks]\n" +"[gdscript]\n" +"@tool\n" +"extends EditorTranslationParserPlugin\n" +"\n" +"func _parse_file(path):\n" +" var ret: Array[PackedStringArray] = []\n" +" var file = FileAccess.open(path, FileAccess.READ)\n" +" var text = file.get_as_text()\n" +" var split_strs = text.split(\",\", false)\n" +" for s in split_strs:\n" +" ret.append(PackedStringArray([s]))\n" +" #print(\"Extracted string: \" + s)\n" +"\n" +" return ret\n" +"\n" +"func _get_recognized_extensions():\n" +" return [\"csv\"]\n" +"[/gdscript]\n" +"[csharp]\n" +"using Godot;\n" +"\n" +"[Tool]\n" +"public partial class CustomParser : EditorTranslationParserPlugin\n" +"{\n" +" public override Godot.Collections.Array<string[]> _ParseFile(string " +"path)\n" +" {\n" +" Godot.Collections.Array<string[]> ret;\n" +" using var file = FileAccess.Open(path, FileAccess.ModeFlags.Read);\n" +" string text = file.GetAsText();\n" +" string[] splitStrs = text.Split(\",\", allowEmpty: false);\n" +" foreach (string s in splitStrs)\n" +" {\n" +" ret.Add([s]);\n" +" //GD.Print($\"Extracted string: {s}\");\n" +" }\n" +" return ret;\n" +" }\n" +"\n" +" public override string[] _GetRecognizedExtensions()\n" +" {\n" +" return [\"csv\"];\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"To add a translatable string associated with a context, plural, or comment:\n" +"[codeblocks]\n" +"[gdscript]\n" +"# This will add a message with msgid \"Test 1\", msgctxt \"context\", " +"msgid_plural \"test 1 plurals\", and comment \"test 1 comment\".\n" +"ret.append(PackedStringArray([\"Test 1\", \"context\", \"test 1 plurals\", " +"\"test 1 comment\"]))\n" +"# This will add a message with msgid \"A test without context\" and " +"msgid_plural \"plurals\".\n" +"ret.append(PackedStringArray([\"A test without context\", \"\", " +"\"plurals\"]))\n" +"# This will add a message with msgid \"Only with context\" and msgctxt \"a " +"friendly context\".\n" +"ret.append(PackedStringArray([\"Only with context\", \"a friendly " +"context\"]))\n" +"[/gdscript]\n" +"[csharp]\n" +"// This will add a message with msgid \"Test 1\", msgctxt \"context\", " +"msgid_plural \"test 1 plurals\", and comment \"test 1 comment\".\n" +"ret.Add([\"Test 1\", \"context\", \"test 1 plurals\", \"test 1 comment\"]);\n" +"// This will add a message with msgid \"A test without context\" and " +"msgid_plural \"plurals\".\n" +"ret.Add([\"A test without context\", \"\", \"plurals\"]);\n" +"// This will add a message with msgid \"Only with context\" and msgctxt \"a " +"friendly context\".\n" +"ret.Add([\"Only with context\", \"a friendly context\"]);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] If you override parsing logic for standard script types " +"(GDScript, C#, etc.), it would be better to load the [code]path[/code] " +"argument using [method ResourceLoader.load]. This is because built-in scripts " +"are loaded as [Resource] type, not [FileAccess] type. For example:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _parse_file(path):\n" +" var res = ResourceLoader.load(path, \"Script\")\n" +" var text = res.source_code\n" +" # Parsing logic.\n" +"\n" +"func _get_recognized_extensions():\n" +" return [\"gd\"]\n" +"[/gdscript]\n" +"[csharp]\n" +"public override Godot.Collections.Array<string[]> _ParseFile(string path)\n" +"{\n" +" var res = ResourceLoader.Load<Script>(path, \"Script\");\n" +" string text = res.SourceCode;\n" +" // Parsing logic.\n" +"}\n" +"\n" +"public override string[] _GetRecognizedExtensions()\n" +"{\n" +" return [\"gd\"];\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"To use [EditorTranslationParserPlugin], register it using the [method " +"EditorPlugin.add_translation_parser_plugin] method first." +msgstr "" +"[EditorTranslationParserPlugin] is invoked when a file is being parsed to " +"extract strings that require translation. To define the parsing and string " +"extraction logic, override the [method _parse_file] method in script.\n" +"Поверненим значенням має бути [Array] [PackedStringArray]s, по одному для " +"кожного вилученого перекладуваного рядка. Кожен запис має містити [code]" +"[msgid, msgctxt, msgid_plural, comment][/code], де всі, крім [code]msgid[/" +"code], є необов’язковими. Порожні рядки ігноруватимуться. \n" +"Витягнуті рядки будуть записані в POT-файл, вибраний користувачем у розділі " +"«POT Generation» на вкладці «Localization» у меню «Project Settings». \n" +"Нижче наведено приклад спеціального аналізатора, який витягує рядки з файлу " +"CSV для запису в POT. \n" +"[codeblocks] \n" +"[gdscript] \n" +"@tool \n" +"extends EditorTranslationParserPlugin\n" +"\n" +"func _parse_file(path): \n" +" було правильно: Array[PackedStringArray] = [] \n" +" var file = FileAccess.open(шлях, FileAccess.READ) \n" +" var text = file.get_as_text() \n" +" var split_strs = text.split(\",\", false) \n" +" для s у split_strs: \n" +" ret.append(PackedStringArray([s])) \n" +" #print(\"Видобутий рядок: \" + s) \n" +"\n" +" return ret \n" +"\n" +"func _get_recognized_extensions(): \n" +" return [\"csv\"] \n" +"[/gdscript] \n" +"[csharp] \n" +"using Godot; \n" +"\n" +"[Tool] \n" +"public partial class CustomParser : EditorTranslationParserPlugin\n" +"{\n" +" public override Godot.Collections.Array<string[]> _ParseFile(string " +"path) \n" +" { \n" +" Godot.Collections.Array<string[]> ret; \n" +" using var file = FileAccess.Open(path, FileAccess.ModeFlags.Read); \n" +" string text = file.GetAsText(); \n" +" string[] splitStrs = text.Split(\",\", allowEmpty: false); \n" +" foreach (String s у splitStrs) \n" +" { \n" +" ret.Add([s]); \n" +" //GD.Print($\"Видобутий рядок: {s}\"); \n" +" } \n" +" return ret; \n" +" } \n" +"\n" +" public override string[] _GetRecognizedExtensions() \n" +" { \n" +" return [\"csv\"]; \n" +" } \n" +"}\n" +"[/csharp] \n" +"[/codeblocks] \n" +"Щоб додати перекладний рядок, пов’язаний із контекстом, множиною чи " +"коментарем: \n" +"[codeblocks] \n" +"[gdscript] \n" +"# Це додасть повідомлення з msgid «Тест 1», msgctxt «контекст», msgid_plural " +"«тест 1 множини» та коментар «тест 1 коментар». \n" +"ret.append(PackedStringArray([\"Тест 1\", \"контекст\", \"тест 1 множини\", " +"\"тест 1 коментар\"])) \n" +"# Це додасть повідомлення з msgid \"Тест без контексту\" та msgid_plural " +"\"множина\". \n" +"ret.append(PackedStringArray([\"Тест без контексту\", \"\", \"множина\"])) \n" +"# Це додасть повідомлення з msgid \"Тільки з контекстом\" і msgctxt \"дружній " +"контекст\". \n" +"ret.append(PackedStringArray([\"Тільки з контекстом\", \"дружній " +"контекст\"])) \n" +"[/gdscript] \n" +"[csharp] \n" +"// Це додасть повідомлення з msgid \"Test 1\", msgctxt \"context\", " +"msgid_plural \"test 1 plurals\" і коментарем \"test 1 comment\". \n" +"ret.Add([\"Тест 1\", \"контекст\", \"тест 1 множини\", \"тест 1 " +"коментар\"]); \n" +"// Це додасть повідомлення з msgid \"Тест без контексту\" та msgid_plural " +"\"plurals\". \n" +"ret.Add([\"Тест без контексту\", \"\", \"множина\"]); \n" +"// Це додасть повідомлення з msgid \"Тільки з контекстом\" і msgctxt " +"\"дружній контекст\". \n" +"ret.Add([\"Тільки з контекстом\", \"дружній контекст\"]); \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка:[/b] Якщо ви замінюєте логіку аналізу для стандартних типів " +"сценаріїв (GDScript, C# тощо), було б краще завантажити аргумент [code]path[/" +"code] за допомогою [method ResourceLoader.load]. Це тому, що вбудовані " +"сценарії завантажуються як тип [Resource], а не як тип [FileAccess]. " +"Наприклад: \n" +"[codeblocks] \n" +"[gdscript] \n" +"func _parse_file(path): \n" +" var res = ResourceLoader.load(path, \"Script\") \n" +" var text = res.source_code \n" +" # Логіка розбору. \n" +"\n" +"func _get_recognized_extensions(): \n" +" return [\"gd\"] \n" +"[/gdscript] \n" +"[csharp] \n" +"public override Godot.Collections.Array<string[]> _ParseFile(string path) \n" +"{\n" +" var res = ResourceLoader.Load<Script>(String, \"Script\"); \n" +" string text = res.SourceCode; \n" +" // Розбір логіки. \n" +"}\n" +"\n" +"public override string[] _GetRecognizedExtensions() \n" +"{\n" +" return [\"gd\"]; \n" +"}\n" +"[/csharp] \n" +"[/codeblocks] \n" +"Щоб використовувати [EditorTranslationParserPlugin], спочатку зареєструйте " +"його за допомогою методу [method EditorPlugin.add_translation_parser_plugin]." + msgid "" "Gets the list of file extensions to associate with this parser, e.g. [code]" "[\"csv\"][/code]." @@ -48403,6 +62604,44 @@ msgstr "" "\"undo\". Це корисно в основному для вузлів, видалених за допомогою виклику " "«до» (не виклику «ундо»)." +msgid "" +"Clears the given undo history. You can clear history for a specific scene, " +"global history, or for all scenes at once if [param id] is [constant " +"INVALID_HISTORY].\n" +"If [param increase_version] is [code]true[/code], the undo history version " +"will be increased, marking it as unsaved. Useful for operations that modify " +"the scene, but don't support undo.\n" +"[codeblock]\n" +"var scene_root = EditorInterface.get_edited_scene_root()\n" +"var undo_redo = EditorInterface.get_editor_undo_redo()\n" +"undo_redo.clear_history(undo_redo.get_object_history_id(scene_root))\n" +"[/codeblock]\n" +"[b]Note:[/b] If you want to mark an edited scene as unsaved without clearing " +"its history, use [method EditorInterface.mark_scene_as_unsaved] instead." +msgstr "" +"Очищає задану історію скасувань. Ви можете очистити історію для певної сцени, " +"глобальної історії або для всіх сцен одночасно, якщо [param id] має значення " +"[constant INVALID_HISTORY].\n" +"Якщо [параметр increase_version] має значення [code]true[/code], версія " +"історії скасувань буде збільшена, позначаючи її як незбережену. Корисно для " +"операцій, які змінюють сцену, але не підтримують скасування.\n" +"[codeblock]\n" +"var scene_root = EditorInterface.get_edited_scene_root()\n" +"var undo_redo = EditorInterface.get_editor_undo_redo()\n" +"undo_redo.clear_history(undo_redo.get_object_history_id(scene_root))\n" +"[/codeblock]\n" +"[b]Примітка.[/b] Якщо ви хочете позначити відредаговану сцену як незбережену, " +"не очищаючи її історію, замість цього використовуйте [method EditorInterface." +"mark_scene_as_unsaved]." + +msgid "" +"Commits the action. If [param execute] is [code]true[/code] (default), all " +"\"do\" methods/properties are called/set when this function is called." +msgstr "" +"Здійснює дію. Якщо [param execute] має значення [code]true[/code] (за " +"замовчуванням), усі методи/властивості \"do\" викликаються/встановлюються під " +"час виклику цієї функції." + msgid "" "Create a new action. After this is called, do all your calls to [method " "add_do_method], [method add_undo_method], [method add_do_property], and " @@ -49316,6 +63555,16 @@ msgstr "" msgid "Returns the number of channels allocated for communication with peer." msgstr "Повертає кількість каналів, виділених для зв'язку з однолітками." +msgid "" +"Returns the ENet flags of the next packet in the received queue. See " +"[code]FLAG_*[/code] constants for available packet flags. Note that not all " +"flags are replicated from the sending peer to the receiving peer." +msgstr "" +"Повертає прапори ENet наступного пакета в отриманій черзі. Перегляньте " +"константи [code]FLAG_*[/code] для доступних прапорів пакетів. Зауважте, що не " +"всі прапори реплікуються від однорангового вузла-відправника до однорангового " +"вузла-одержувача." + msgid "Returns the IP address of this peer." msgstr "Повертає IP-адресу цього аналога." @@ -49636,6 +63885,38 @@ msgstr "" "такі як кадри на другий, часовий масштаб та інші. Він також зберігає " "інформацію про поточну структуру Godot, такі як поточна версія." +msgid "" +"Returns the name of the CPU architecture the Godot binary was built for. " +"Possible return values include [code]\"x86_64\"[/code], [code]\"x86_32\"[/" +"code], [code]\"arm64\"[/code], [code]\"arm32\"[/code], [code]\"rv64\"[/code], " +"[code]\"riscv\"[/code], [code]\"ppc64\"[/code], [code]\"ppc\"[/code], " +"[code]\"wasm64\"[/code], and [code]\"wasm32\"[/code].\n" +"To detect whether the current build is 64-bit, or the type of architecture, " +"don't use the architecture name. Instead, use [method OS.has_feature] to " +"check for the [code]\"64\"[/code] feature tag, or tags such as [code]\"x86\"[/" +"code] or [code]\"arm\"[/code]. See the [url=$DOCS_URL/tutorials/export/" +"feature_tags.html]Feature Tags[/url] documentation for more details.\n" +"[b]Note:[/b] This method does [i]not[/i] return the name of the system's CPU " +"architecture (like [method OS.get_processor_name]). For example, when running " +"an [code]x86_32[/code] Godot binary on an [code]x86_64[/code] system, the " +"returned value will still be [code]\"x86_32\"[/code]." +msgstr "" +"Повертає назву архітектури ЦП, для якої створено двійковий файл Godot. Серед " +"можливих повернених значень: [code]\"x86_64\"[/code], [code]\"x86_32\"[/" +"code], [code]\"arm64\"[/code], [code]\"arm32\"[/code], [code]\"rv64\"[/code], " +"[code]\"riscv\"[/code], [code]\"ppc64\"[/code], [code]\"ppc\"[/code], " +"[code]\"wasm64\"[/code] і [code]\"wasm32\"[/code].\n" +"Щоб визначити, чи є поточна збірка 64-розрядною, або тип архітектури, не " +"використовуйте назву архітектури. Замість цього використовуйте [method OS." +"has_feature], щоб перевірити тег функції [code]\"64\"[/code] або такі теги, " +"як [code]\"x86\"[/code] або [code]\"arm\"[/code]. Додаткову інформацію див. у " +"документації [url=$DOCS_URL/tutorials/export/feature_tags.html]Feature Tags[/" +"url].\n" +"[b]Примітка.[/b] Цей метод [i]не[/i] повертає назву архітектури ЦП системи " +"(як [method OS.get_processor_name]). Наприклад, під час запуску двійкового " +"файлу [code]x86_32[/code] Godot у системі [code]x86_64[/code] поверненим " +"значенням буде [code]\"x86_32\"[/code]." + msgid "" "Returns the engine author information as a [Dictionary], where each entry is " "an [Array] of strings with the names of notable contributors to the Godot " @@ -49757,29 +64038,30 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Повертаємо загальну кількість кадрів, що надходять з початку двигуна. Цей " -"номер збільшений кожен [b]фізичний каркас [/b]. Дивись також [method " -"get_process_frames].\n" -"Цей метод може бути використаний для запуску дорогої логіки, рідше без " -"перекриття на [Timer]:\n" -"[блоки коду]\n" -"[видання]\n" -"Func _physics_process(_delta):\n" -"if Engine.get_physics_frames() % 2 == 0:\n" -"прохід # Запуск дорогої логіки тільки один раз на 2 фізики кадрів тут.\n" -"[/gdscript]\n" -"[csharp]\n" -"public override неймовірно _PhysicsProcess(double delta)\n" -"Довідник\n" -"base._PhysicsProcess(delta);\n" +"Повертає загальну кількість кадрів, пройдених з моменту запуску двигуна. Це " +"число збільшується з кожним [b]фізичним кадром[/b]. Дивіться також [метод " +"get_process_frames]. \n" +"Цей метод можна використовувати для рідшого запуску дорогої логіки, не " +"покладаючись на [Timer]: \n" +"[codeblocks] \n" +"[gdscript] \n" +"func _physics_process(_delta): \n" +" if Engine.get_physics_frames() % 2 == 0: \n" +" pass # Виконуйте тут дорогу логіку лише один раз на кожні 2 кадри " +"фізики. \n" +"[/gdscript] \n" +"[csharp] \n" +"public override void _PhysicsProcess(подвійна дельта) \n" +"{\n" +" base._PhysicsProcess(дельта); \n" "\n" -"якщо (Engine.GetPhysicsFrames() % 2 == 0 р.\n" -"Довідник\n" -"(Українська) Запуск дорогий логіку тільки один раз, коли тут працюють 2 " -"фізики.\n" -"Про нас\n" -"Про нас\n" -"[/csharp]\n" +" if (Engine.GetPhysicsFrames() % 2 == 0) \n" +" { \n" +" // Виконуйте тут дорогу логіку лише один раз на кожні 2 кадри " +"фізики. \n" +" } \n" +"}\n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -49818,30 +64100,31 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Повертаємо загальну кількість кадрів, що надходять з початку двигуна. Цей " -"номер збільшений кожен [b]обробний каркас [/b], незалежно від того, чи " -"включена петля рендера. Дивись також [метод get_frames_drawn] і [метод " -"get_physics_frames].\n" -"Цей метод може бути використаний для запуску дорогої логіки, рідше без " -"перекриття на [Timer]:\n" -"[блоки коду]\n" -"[видання]\n" -"Func _ Процес(_delta):\n" -"якщо двигун.get_process_frames() % 5 == 0:\n" -"прохід # Запуск дорогої логіки тільки один раз на 5 процесах (render) тут.\n" -"[/gdscript]\n" -"[csharp]\n" -"public override неймовірно _Process(double delta)\n" -"Довідник\n" -"base._Process(delta);\n" +"Повертає загальну кількість кадрів, пройдених з моменту запуску двигуна. Це " +"число збільшується з кожним [b]кадром процесу[/b], незалежно від того, чи " +"ввімкнено цикл візуалізації. Дивіться також [метод get_frames_drawn] і [метод " +"get_physics_frames]. \n" +"Цей метод можна використовувати для рідшого запуску дорогої логіки, не " +"покладаючись на [Timer]: \n" +"[codeblocks] \n" +"[gdscript] \n" +"func _process(_delta): \n" +" if Engine.get_process_frames() % 5 == 0: \n" +" pass # Запускати дорогу логіку лише один раз на кожні 5 кадрів " +"процесу (рендерингу). \n" +"[/gdscript] \n" +"[csharp] \n" +"public override void _Process(double delta)\n" +"{\n" +" base._Process(delta); \n" "\n" -"якщо (Engine.GetProcessFrames() % 5 == 0 р.\n" -"Довідник\n" -"(Українська) Запуск дорогий логіку тільки один раз, коли кожен процес " -"(робочий) кадри тут.\n" -"Про нас\n" -"Про нас\n" -"[/csharp]\n" +" if (Engine.GetProcessFrames() % 5 == 0) \n" +" { \n" +" // Виконуйте дорогу логіку лише один раз на кожні 5 кадрів процесу " +"(рендерингу). \n" +" } \n" +"}\n" +"[/csharp] \n" "[/codeblocks]" msgid "Returns an instance of a [ScriptLanguage] with the given [param index]." @@ -49916,45 +64199,46 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Повертає інформацію про поточну версію двигуна як [Дикаційне], що містить " -"наступні записи:\n" -"- [code]major[/code] - Головний номер версії як int;\n" -"- [code]minor[/code] - номер мінора як інт;\n" -"- [code]patch[/code] - Номер патчів як інт;\n" -"- [code]hex[/code] - Повна версія зашифрована як шістнадцятковий інт з одним " -"байтом (2 гекс цифр) за номер (див. приклад нижче);\n" -"- [code]status[/code] - Статус (наприклад, \"beta\", \"rc1\", \"rc2\", " -"\"стабільний\" і т.д.) як String;\n" -"- [code]build[/code] - Створіть назву (наприклад, \"custom_build\") як " -"String;\n" -"- [code]hash[/code] - Повний Git комітує як String;\n" -"- [code]timestamp[/code] - Затримує дату виконання Git у UNIX за секундами, " -"як інт, або [code]0[/code], якщо недоступний;\n" -"- [code]string[/code] - [code]major[/code], [code]minor[/code], [code]patch[/" -"code], [code]status[/code], і [code]build[/code] в одному рядку.\n" -"[code]hex[/code] значення закодовано наступним чином, зліва направо: один " -"байт для основного, один байт для неповнолітнього, один байт для версії патч. " -"Наприклад, \"3.1.12\" [code]0x03010C[/code].\n" -"[b]Note:[/b] значення [code]hex[/code] є ще внутрішньою, а друк він дасть вам " -"свою десяткову уявлення, яка не особливо значуща. Використовуйте " -"шістнадцяткові літри для швидкого порівняння версій з коду:\n" -"[блоки коду]\n" -"[видання]\n" -"if Engine.get_version_info(.hex >= 0x040100:\n" -"пропуск # Чи є конкретні речі для версії 4.1 або пізніше.\n" -"ще:\n" -"перед 4.1.\n" -"[/gdscript]\n" -"[csharp]\n" -"Якщо ((int)Engine.GetVersionInfo()[\"hex\"] >= 0x040100)\n" -"Довідник\n" -"(Українська) Якщо ви хочете, щоб перевірити цю версію 4.1 або пізніше.\n" -"Про нас\n" -"ще\n" -"Довідник\n" -"(Українська) До версії до 4.1.\n" -"Про нас\n" -"[/csharp]\n" +"Повертає інформацію про поточну версію двигуна як [словник], що містить такі " +"записи: \n" +"- [code]major[/code] - номер основної версії як int; \n" +"- [код]мінор[/код] - номер другорядної версії як int; \n" +"- [код]патч[/код] - номер версії латки як int; \n" +"- [code]hex[/code] - повна версія, закодована як шістнадцяткове ціле число з " +"одним байтом (2 шістнадцяткові цифри) на число (див. приклад нижче); \n" +"- [код]статус[/код] - статус (такий як \"бета\", \"rc1\", \"rc2\", " +"\"стабільний\" тощо) у вигляді рядка; \n" +"- [code]build[/code] - назва збірки (наприклад, \"custom_build\") у вигляді " +"рядка; \n" +"- [код]хеш[/код] - повний хеш фіксації Git як рядок; \n" +"- [code]timestamp[/code] – зберігає мітку часу UNIX дати коміту Git у " +"секундах як int або [code]0[/code], якщо недоступний; \n" +"- [code]рядок[/code] - [code]основний[/code], [code]мінорний[/code], " +"[code]патч[/code], [code]статус[/code] і [code]збірка[/code] в одному " +"рядку. \n" +"Значення [code]hex[/code] кодується наступним чином, зліва направо: один байт " +"для основного, один байт для другорядного, один байт для версії виправлення. " +"Наприклад, \"3.1.12\" буде [код]0x03010C[/код]. \n" +"[b]Примітка: [/b] Значення [code]hex[/code] все ще внутрішньо є [int], і його " +"друк дасть вам його десяткове представлення, що не має особливого значення. " +"Використовуйте шістнадцяткові літерали для швидкого порівняння версій коду: \n" +"[codeblocks] \n" +"[gdscript] \n" +"if Engine.get_version_info().hex >= 0x040100: \n" +" pass # Робіть дії, характерні для версії 4.1 або новішої. \n" +"else: \n" +" pass # Робити речі, характерні для версій до 4.1. \n" +"[/gdscript] \n" +"[csharp] \n" +"if ((int)Engine.GetVersionInfo()[\"hex\"] >= 0x040100) \n" +"{\n" +" // Робіть речі, характерні для версії 4.1 або новішої. \n" +"}\n" +"else \n" +"{\n" +" // Робимо речі, характерні для версій до 4.1. \n" +"}\n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -49966,6 +64250,45 @@ msgstr "" "запущений в режимі Movie Maker. Шлях за замовчуванням може бути змінений в " "[пам'ятних проектів.editor/movie_parser/movie_file]." +msgid "" +"Returns [code]true[/code] if a singleton with the given [param name] exists " +"in the global scope. See also [method get_singleton].\n" +"[codeblocks]\n" +"[gdscript]\n" +"print(Engine.has_singleton(\"OS\")) # Prints true\n" +"print(Engine.has_singleton(\"Engine\")) # Prints true\n" +"print(Engine.has_singleton(\"AudioServer\")) # Prints true\n" +"print(Engine.has_singleton(\"Unknown\")) # Prints false\n" +"[/gdscript]\n" +"[csharp]\n" +"GD.Print(Engine.HasSingleton(\"OS\")); // Prints True\n" +"GD.Print(Engine.HasSingleton(\"Engine\")); // Prints True\n" +"GD.Print(Engine.HasSingleton(\"AudioServer\")); // Prints True\n" +"GD.Print(Engine.HasSingleton(\"Unknown\")); // Prints False\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] Global singletons are not the same as autoloaded nodes, which " +"are configurable in the project settings." +msgstr "" +"Повертає [code]true[/code], якщо синглтон із заданим [назва параметра] існує " +"в глобальній області. Дивіться також [метод get_singleton].\n" +"[codeblocks]\n" +"[gdscript]\n" +"print(Engine.has_singleton(\"OS\")) # Виводить true\n" +"print(Engine.has_singleton(\"Engine\")) # Виводить true\n" +"print(Engine.has_singleton(\"AudioServer\")) # Виводить true\n" +"print(Engine.has_singleton(\"Unknown\")) # Виводить false\n" +"[/gdscript]\n" +"[csharp]\n" +"GD.Print(Engine.HasSingleton(\"ОС\")); // Виводить True\n" +"GD.Print(Engine.HasSingleton(\"Engine\")); // Виводить True\n" +"GD.Print(Engine.HasSingleton(\"AudioServer\")); // Виводить True\n" +"GD.Print(Engine.HasSingleton(\"Невідомо\")); // Виводить False\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Примітка: [/b] Глобальні синглетони — це не те саме, що автоматично " +"завантажені вузли, які можна налаштувати в налаштуваннях проекту." + msgid "" "Returns [code]true[/code] if the script is currently running inside the " "editor, otherwise returns [code]false[/code]. This is useful for [code]@tool[/" @@ -49994,32 +64317,43 @@ msgid "" "editor and when running the project from the editor, but returns [code]false[/" "code] when run from an exported project." msgstr "" -"Повертає [code]true[/code], якщо скрипт наразі працює всередині редактора, " -"інакше повертає [code]false[/code]. Це корисно для [code]@tool[/code] " -"сценаріїв для умовно малювати редактори, або запобігти випадковому запуску " -"\"game\", який буде впливати на стан сцени, в той час як в редакторі:\n" -"[блоки коду]\n" -"[видання]\n" -"якщо Двигун.is_editor_hint():\n" -"Рис.1\n" -"ще:\n" -"імітатор_фізика()\n" -"[/gdscript]\n" -"[csharp]\n" -"якщо (Engine.IsEditorHint)\n" -"Малкa();\n" -"ще\n" -"СимуляціяФізика();\n" -"[/csharp]\n" -"[/codeblocks]\n" -"Див. [url=$DOCS_URL/tutorials/plugins/running_code_in_editor.html] Код роботи " -"в редакторі [/url] в документації для отримання додаткової інформації.\n" -"[b]Примітка:[/b] Щоб виявити, чи працює скрипт на редакторі [i]build[/i] " -"(наприклад, при натисканні [kbd]F5[/kbd]), скористайтеся [метод OS." -"has_feature] з [code]\"editor\"[/code] аргументом замість. [code]OS." -"has_feature(\"editor\")[/code] оцінити [code]true[/code] як при запуску " -"сценарію в редакторі, так і при запуску проекту з редактора, але повертає " -"[code]false[/code] при запуску з експортованого проекту." +"Повертає [code]true[/code], якщо сценарій зараз запущено в редакторі, інакше " +"повертає [code]false[/code]. Це корисно для сценаріїв [code]@tool[/code] для " +"умовного малювання помічників редактора або запобігання випадковому запуску " +"«ігрового» коду, який може вплинути на стан сцени під час роботи в " +"редакторі: \n" +"[codeblocks] \n" +"[gdscript] \n" +"if Engine.is_editor_hint(): \n" +" draw_gizmos() \n" +"else: \n" +" simulate_physics() \n" +"[/gdscript] \n" +"[csharp] \n" +"if (Engine.IsEditorHint()) \n" +" DrawGizmos(); \n" +"else \n" +" SimulatePhysics(); \n" +"[/csharp] \n" +"[/codeblocks] \n" +"Додаткову інформацію див. у документації [url=$DOCS_URL/tutorials/plugins/" +"running_code_in_the_editor.html]Запуск коду в редакторі[/url]. \n" +"[b]Примітка:[/b] Щоб визначити, чи виконується сценарій у [i]збірці[/i] " +"редактора (наприклад, під час натискання [kbd]F5[/kbd]), замість цього " +"використовуйте [method OS.has_feature] з аргументом [code]\"editor\"[/code]. " +"[code]OS.has_feature(\"editor\")[/code] має значення [code]true[/code] як під " +"час виконання сценарію в редакторі, так і під час запуску проекту з " +"редактора, але повертає [code]false[/code] під час запуску з експортованого " +"проекту." + +msgid "" +"Returns [code]true[/code] if the engine is running embedded in the editor. " +"This is useful to prevent attempting to update window mode or window flags " +"that are not supported when running the project embedded in the editor." +msgstr "" +"Повертає [code]true[/code], якщо двигун працює вбудований у редактор. Це " +"корисно, щоб запобігти спробам оновити режим вікна або прапорці вікна, які не " +"підтримуються під час виконання проекту, вбудованого в редактор." msgid "" "Returns [code]true[/code] if the engine is inside the fixed physics process " @@ -50037,19 +64371,19 @@ msgid "" " print(Engine.is_in_physics_frame()) # Prints true\n" "[/codeblock]" msgstr "" -"Повертаємо [code]true[/code], якщо двигун знаходиться всередині фіксованої " -"фізики крок головної петлі.\n" -"[блокування коду]\n" -"Func _enter_tree():\n" -"# Залежно від коли вершина додається до дерева,\n" -"# принти як \"true\" або \"false\".\n" -"Друк(Engine.is_in_physics_frame)\n" +"Повертає [code]true[/code], якщо двигун знаходиться всередині кроку " +"фіксованого фізичного процесу основного циклу. \n" +"[codeblock] \n" +"func _enter_tree(): \n" +" # Залежно від того, коли вузол додано до дерева, \n" +" # виводить «true» або «false». \n" +" print(Engine.is_in_physics_frame()) \n" "\n" -"Func _ Процес(delta):\n" -"Друк(Engine.is_in_physics_frame) # Друк false\n" +"func _process(delta): \n" +" print(Engine.is_in_physics_frame()) # Виводить false \n" "\n" -"Func _physics_process(delta):\n" -"Друк(Engine.is_in_physics_frame) # Друки правда\n" +"func _physics_process(delta): \n" +" print(Engine.is_in_physics_frame()) # Виводить true \n" "[/codeblock]" msgid "" @@ -50253,6 +64587,23 @@ msgstr "" "буде впливати на сам редактор. До [i] не[/i] ввімкнено помилки до " "забезпечення повідомлень про помилки (як вони за замовчуванням)." +msgid "" +"If [code]false[/code], stops printing messages (for example using [method " +"@GlobalScope.print]) to the console, log files, and editor Output log. This " +"property is equivalent to the [member ProjectSettings.application/run/" +"disable_stdout] project setting.\n" +"[b]Note:[/b] This does not stop printing errors or warnings produced by " +"scripts to the console or log files, for more details see [member " +"print_error_messages]." +msgstr "" +"Якщо [code]false[/code], припиняє друк повідомлень (наприклад, за допомогою " +"[method @GlobalScope.print]) на консоль, файли журналу та журнал виведення " +"редактора. Ця властивість еквівалентна налаштуванню проекту [member " +"ProjectSettings.application/run/disable_stdout].\n" +"[b]Примітка:[/b] це не зупиняє друк помилок або попереджень, створених " +"сценаріями, на консоль або файли журналу, для отримання додаткової інформації " +"див. [member print_error_messages]." + msgid "" "The speed multiplier at which the in-game clock updates, compared to real " "time. For example, if set to [code]2.0[/code] the game runs twice as fast, " @@ -50366,6 +64717,15 @@ msgstr "" "Повертає [code]true[/code], якщо налагоджувач пропускає точки зупину, інакше " "[code]false[/code]." +msgid "" +"Forces a processing loop of debugger events. The purpose of this method is " +"just processing events every now and then when the script might get too busy, " +"so that bugs like infinite loops can be caught." +msgstr "" +"Примусово запускає цикл обробки подій налагоджувача. Метою цього методу є " +"просто обробка подій час від часу, коли сценарій може бути занадто зайнятим, " +"щоб можна було виявити такі помилки, як нескінченні цикли." + msgid "" "Calls the [code]add[/code] callable of the profiler with given [param name] " "and [param data]." @@ -50382,6 +64742,25 @@ msgstr "" "[парам аргументи]. Увімкнути/Вимкнено однаковий профільер залежно від " "аргументу [param включити]." +msgid "" +"Registers a message capture with given [param name]. If [param name] is " +"\"my_message\" then messages starting with \"my_message:\" will be called " +"with the given callable.\n" +"The callable must accept a message string and a data array as argument. The " +"callable should return [code]true[/code] if the message is recognized.\n" +"[b]Note:[/b] The callable will receive the message with the prefix stripped, " +"unlike [method EditorDebuggerPlugin._capture]. See the [EditorDebuggerPlugin] " +"description for an example." +msgstr "" +"Реєструє захоплення повідомлення з заданим [назва параметра]. Якщо [назва " +"параметра] має значення \"my_message\", тоді повідомлення, що починаються з " +"\"my_message:\", викликатимуться за допомогою даного виклику.\n" +"Викликається має приймати рядок повідомлення та масив даних як аргумент. " +"Викликаний має повернути [code]true[/code], якщо повідомлення розпізнано.\n" +"[b]Примітка:[/b] Викликаний отримає повідомлення з видаленим префіксом, на " +"відміну від [method EditorDebuggerPlugin._capture]. Дивіться опис " +"[EditorDebuggerPlugin] для прикладу." + msgid "" "Registers a profiler with the given [param name]. See [EngineProfiler] for " "more information." @@ -50610,6 +64989,40 @@ msgstr "" msgid "The background mode. See [enum BGMode] for possible values." msgstr "Режим фону. Див. [enum BGMode] для можливих значень." +msgid "" +"If set above [code]0.0[/code] (exclusive), blends between the fog's color and " +"the color of the background [Sky], as read from the radiance cubemap. This " +"has a small performance cost when set above [code]0.0[/code]. Must have " +"[member background_mode] set to [constant BG_SKY].\n" +"This is useful to simulate [url=https://en.wikipedia.org/wiki/" +"Aerial_perspective]aerial perspective[/url] in large scenes with low density " +"fog. However, it is not very useful for high-density fog, as the sky will " +"shine through. When set to [code]1.0[/code], the fog color comes completely " +"from the [Sky]. If set to [code]0.0[/code], aerial perspective is disabled.\n" +"Notice that this does not sample the [Sky] directly, but rather the radiance " +"cubemap. The cubemap is sampled at a mipmap level depending on the depth of " +"the rendered pixel; the farther away, the higher the resolution of the " +"sampled mipmap. This results in the actual color being a blurred version of " +"the sky, with more blur closer to the camera. The highest mipmap resolution " +"is used at a depth of [member Camera3D.far]." +msgstr "" +"Якщо встановлено вище [code]0.0[/code] (ексклюзивно), колір туману змішується " +"з кольором фону [Sky], як зчитується з кубічної карти сяйва. Це має невелику " +"вартість продуктивності, якщо встановлено вище [code]0.0[/code]. Для [member " +"background_mode] має бути встановлено значення [constant BG_SKY].\n" +"Це корисно для симуляції [url=https://en.wikipedia.org/wiki/" +"Aerial_perspective]повітряної перспективи[/url] у великих сценах із низьким " +"туманом. Однак це не дуже корисно для високої щільності туману, оскільки небо " +"буде просвічувати. Якщо встановлено значення [code]1.0[/code], колір туману " +"повністю походить від [Неба]. Якщо встановлено значення [code]0.0[/code], " +"повітряна перспектива вимкнена.\n" +"Зауважте, що це не вибірка [Sky] безпосередньо, а скоріше кубична карта " +"сяйва. Кубічна карта відбирається на рівні MIP-карти залежно від глибини " +"візуалізованого пікселя; чим далі, тим вище роздільна здатність вибірки MIP-" +"карти. Це призводить до того, що фактичний колір є розмитою версією неба з " +"більшим розмиттям ближче до камери. Найвища роздільна здатність mipmap " +"використовується на глибині [член Camera3D.far]." + msgid "" "The fog density to be used. This is demonstrated in different ways depending " "on the [member fog_mode] mode chosen:\n" @@ -50881,6 +65294,27 @@ msgstr "" "рендерингу сумісності, завдяки цьому методу рендерингу за допомогою " "найпростішого ефекту, оптимізованого для пристроїв низького рівня." +msgid "" +"How strong of an influence the [member glow_map] should have on the overall " +"glow effect. A strength of [code]0.0[/code] means the glow map has no " +"influence, while a strength of [code]1.0[/code] means the glow map has full " +"influence.\n" +"[b]Note:[/b] If the glow map has black areas, a value of [code]1.0[/code] can " +"also turn off the glow effect entirely in specific areas of the screen.\n" +"[b]Note:[/b] [member glow_map_strength] has no effect when using the " +"Compatibility rendering method, due to this rendering method using a simpler " +"glow implementation optimized for low-end devices." +msgstr "" +"Наскільки сильний вплив [member glow_map] має мати на загальний ефект " +"світіння. Інтенсивність [code]0.0[/code] означає, що карта світіння не " +"впливає, а сила [code]1.0[/code] означає, що карта світіння має повний " +"вплив.\n" +"[b]Примітка.[/b] Якщо на карті світіння є чорні області, значення [code]1.0[/" +"code] також може повністю вимкнути ефект світіння в певних областях екрана.\n" +"[b]Примітка:[/b] [member glow_map_strength] не впливає на використання методу " +"відтворення сумісності, оскільки цей метод відтворення використовує простішу " +"реалізацію світіння, оптимізовану для пристроїв низького класу." + msgid "" "When using the [constant GLOW_BLEND_MODE_MIX] [member glow_blend_mode], this " "controls how much the source image is blended with the glow layer. A value of " @@ -51330,12 +65764,21 @@ msgstr "" "уповільнюються." msgid "" -"The default exposure used for tonemapping. Higher values result in a brighter " -"image. See also [member tonemap_white]." +"Adjusts the brightness of values before they are provided to the tonemapper. " +"Higher [member tonemap_exposure] values result in a brighter image. See also " +"[member tonemap_white].\n" +"[b]Note:[/b] Values provided to the tonemapper will also be multiplied by " +"[code]2.0[/code] and [code]1.8[/code] for [constant TONE_MAPPER_FILMIC] and " +"[constant TONE_MAPPER_ACES] respectively to produce a similar apparent " +"brightness as [constant TONE_MAPPER_LINEAR]." msgstr "" -"Вплив за замовчуванням, що використовується для налаштування. Більшість " -"значень призводить до більш яскравого образу. Дивись також [пам'ятна " -"карта_білий]." +"Регулює яскравість значень перед тим, як вони будуть надані тональному " +"картографу. Вищі значення [member tonemap_exposure] призводять до яскравішого " +"зображення. Дивіться також [member tonemap_white]. \n" +"[b]Примітка.[/b] Значення, надані в tonemapper, також буде помножено на " +"[code]2.0[/code] і [code]1.8[/code] для [константи TONE_MAPPER_FILMIC] і " +"[константи TONE_MAPPER_ACES] відповідно, щоб отримати таку саму видиму " +"яскравість, як [константа TONE_MAPPER_LINEAR]." msgid "" "The tonemapping mode to use. Tonemapping is the process that \"converts\" HDR " @@ -51346,6 +65789,23 @@ msgstr "" "значення HDR, який підходить для рендерінгу на дисплеї LDR. (Godot не " "підтримує покази HDR ще.)" +msgid "" +"The white reference value for tonemapping, which indicates where bright white " +"is located in the scale of values provided to the tonemapper. For " +"photorealistic lighting, recommended values are between [code]6.0[/code] and " +"[code]8.0[/code]. Higher values result in less blown out highlights, but may " +"make the scene appear lower contrast. See also [member tonemap_exposure].\n" +"[b]Note:[/b] [member tonemap_white] is ignored when using [constant " +"TONE_MAPPER_LINEAR] or [constant TONE_MAPPER_AGX]." +msgstr "" +"Еталонне значення білого для відображення тонів, яке вказує, де розташований " +"яскравий білий на шкалі значень, наданих до відображення тонів. Для " +"фотореалістичного освітлення рекомендовані значення від [code]6.0[/code] до " +"[code]8.0[/code]. Вищі значення призводять до меншого освітлення, але можуть " +"зробити сцену менш контрастною. Дивіться також [member tonemap_exposure]. \n" +"[b]Примітка.[/b] [member tonemap_white] ігнорується під час використання " +"[константи TONE_MAPPER_LINEAR] або [константи TONE_MAPPER_AGX]." + msgid "" "The [Color] of the volumetric fog when interacting with lights. Mist and fog " "have an albedo close to [code]Color(1, 1, 1, 1)[/code] while smoke has a " @@ -51609,38 +66069,66 @@ msgid "Use the [Sky] for reflections regardless of what the background is." msgstr "Використовуйте [Sky] для відображення незалежно від того, що фон є." msgid "" -"Linear tonemapper operator. Reads the linear data and passes it on " -"unmodified. This can cause bright lighting to look blown out, with noticeable " -"clipping in the output colors." +"Does not modify color data, resulting in a linear tonemapping curve which " +"unnaturally clips bright values, causing bright lighting to look blown out. " +"The simplest and fastest tonemapper." msgstr "" -"Оператор лінійного тонера. Читає лінійні дані і переходить на немодифіковані. " -"Це може викликати яскраве освітлення, щоб виглядати, з помітним затисканням у " -"вихідні кольори." +"Не змінює колірні дані, що призводить до лінійної кривої відображення тонів, " +"яка неприродно відсікає яскраві значення, через що яскраве освітлення " +"виглядає тьмяним. Найпростіший і найшвидший тональний картограф." msgid "" -"Filmic tonemapper operator. This avoids clipping bright highlights, with a " -"resulting image that usually looks more vivid than [constant " -"TONE_MAPPER_REINHARDT]." +"A simple tonemapping curve that rolls off bright values to prevent clipping. " +"This results in an image that can appear dull and low contrast. Slower than " +"[constant TONE_MAPPER_LINEAR].\n" +"[b]Note:[/b] When [member tonemap_white] is left at the default value of " +"[code]1.0[/code], [constant TONE_MAPPER_REINHARDT] produces an identical " +"image to [constant TONE_MAPPER_LINEAR]." msgstr "" -"Оператор карткового тонера. Це дозволяє затискати яскраві моменти, з " -"отриманим зображенням, яке зазвичай виглядає більш яскравим, ніж [constant " +"Проста крива відображення тону, яка зменшує яскраві значення, щоб запобігти " +"відсіканню. Це призводить до того, що зображення може виглядати тьмяним і " +"низькоконтрастним. Повільніше, ніж [постійний TONE_MAPPER_LINEAR]. \n" +"[b]Примітка.[/b] Якщо [member tonemap_white] залишити значення за " +"замовчуванням [code]1.0[/code], [константа TONE_MAPPER_REINHARDT] створює " +"зображення, ідентичне [константі TONE_MAPPER_LINEAR]." + +msgid "" +"Uses a film-like tonemapping curve to prevent clipping of bright values and " +"provide better contrast than [constant TONE_MAPPER_REINHARDT]. Slightly " +"slower than [constant TONE_MAPPER_REINHARDT]." +msgstr "" +"Використовує плівкову криву відображення тонів, щоб запобігти відсіканню " +"яскравих значень і забезпечити кращий контраст, ніж [постійний " +"TONE_MAPPER_REINHARDT]. Трохи повільніше, ніж [константа " "TONE_MAPPER_REINHARDT]." msgid "" -"Use the Academy Color Encoding System tonemapper. ACES is slightly more " -"expensive than other options, but it handles bright lighting in a more " -"realistic fashion by desaturating it as it becomes brighter. ACES typically " -"has a more contrasted output compared to [constant TONE_MAPPER_REINHARDT] and " -"[constant TONE_MAPPER_FILMIC].\n" +"Uses a high-contrast film-like tonemapping curve and desaturates bright " +"values for a more realistic appearance. Slightly slower than [constant " +"TONE_MAPPER_FILMIC].\n" "[b]Note:[/b] This tonemapping operator is called \"ACES Fitted\" in Godot 3.x." msgstr "" -"Використовуйте академію кольоровий конвертер системи. ACES трохи дорожче, ніж " -"інші варіанти, але він ручить яскраве освітлення в більш реалістичній моді, " -"відпадаючи його, як він стає більш яскравим. ACES, як правило, має більш " -"контрастний вихід у порівнянні з [constant TONE_MAPPER_REINHARDT] і [constant " -"TONE_MAPPER_FILMIC].\n" -"[b]Примітка:[/b] Цей оператор тономпінгу називається \"ACES Fitted\" в Godot " -"3.x." +"Використовує висококонтрастну криву відтворення тонів, подібну до плівки, і " +"зменшує насиченість яскравих значень для більш реалістичного вигляду. Трохи " +"повільніше, ніж [постійний TONE_MAPPER_FILMIC]. \n" +"[b]Примітка: [/b] Цей оператор тонального відображення називається «ACES " +"Fitted» у Godot 3.x." + +msgid "" +"Uses a film-like tonemapping curve and desaturates bright values for a more " +"realistic appearance. Better than other tonemappers at maintaining the hue of " +"colors as they become brighter. The slowest tonemapping option.\n" +"[b]Note:[/b] [member tonemap_white] is fixed at a value of [code]16.29[/" +"code], which makes [constant TONE_MAPPER_AGX] unsuitable for use with the " +"Mobile rendering method." +msgstr "" +"Використовує плівкову криву відображення тонів і зменшує насиченість яскравих " +"значень для більш реалістичного вигляду. Краще, ніж інші картографи тонів, " +"підтримує відтінок кольорів, коли вони стають яскравішими. Найповільніший " +"варіант тонального відображення. \n" +"[b]Примітка.[/b] [member tonemap_white] має значення [code]16.29[/code], що " +"робить [константу TONE_MAPPER_AGX] непридатною для використання з методом " +"мобільного візуалізації." msgid "" "Additive glow blending mode. Mostly used for particles, glows (bloom), lens " @@ -51772,52 +66260,52 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Вираз може бути виготовлений з будь-якої арифметичної операції, вбудованої " -"математики функції виклику, метод виклику пропущеної екземпляра або " -"вбудованого типу.\n" -"Приклад експрес-тексту за допомогою вбудованих функцій математики може бути " -"[code]sqrt(pow(3, 2) + pow(4, 2))[/code].\n" -"У наведеному нижче прикладі ми використовуємо вузол [LineEdit] для запису " -"нашого виразу та відображення результату.\n" -"[блоки коду]\n" -"[видання]\n" -"var експресія = Експресія.new()\n" +"Вираз може складатися з будь-якої арифметичної операції, виклику вбудованої " +"математичної функції, виклику методу переданого екземпляра або виклику " +"вбудованої конструкції типу. \n" +"Прикладом тексту виразу з використанням вбудованих математичних функцій може " +"бути [code]sqrt(pow(3, 2) + pow(4, 2))[/code]. \n" +"У наступному прикладі ми використовуємо вузол [LineEdit], щоб написати наш " +"вираз і показати результат. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var expression = Expression.new() \n" "\n" -"Func _ready():\n" -"$LineEdit.text_submitted.connect(self._on_text_submitted)\n" +"func _ready(): \n" +" $LineEdit.text_submitted.connect(self._on_text_submitted) \n" "\n" -"Func _on_text_submitted(command):\n" -"var помилка = експресія.parse(command)\n" -"якщо помилка != Головна\n" -"Друк(expression.get_error_text())\n" -"Увійти\n" -"var результат = вираз.execute()\n" -"якщо не вираз.has_execute_failed():\n" -"$LineEdit.text = str(result)\n" -"[/gdscript]\n" -"[csharp]\n" -"приватний Експресія _виявлення = новий вираз ();\n" +"func _on_text_submitted(command): \n" +" var error = expression.parse(command) \n" +" if помилка != OK: \n" +" print(expression.get_error_text()) \n" +" return \n" +" var result = expression.execute() \n" +" if no expression.has_execute_failed(): \n" +" $LineEdit.text = str(result) \n" +"[/gdscript] \n" +"[csharp] \n" +"private Expression _expression = new Expression();\n" "\n" -"public override _Читати()\n" -"Довідник\n" -"GetNode<LineEdit>(\"LineEdit\"). Текстовий += OnTextEntered;\n" -"Про нас\n" +"public override void _Ready() \n" +"{\n" +" GetNode<LineEdit>(\"LineEdit\").TextSubmitted += OnTextEntered; \n" +"}\n" "\n" -"приватний void OnTextEntered(string команди)\n" -"Довідник\n" -"Помилка помилки = _expression. Парсе (команд);\n" -"якщо (error != Помилка.Ok)\n" -"Довідник\n" -"GD.Print(_expression.GetErrorText());\n" -"повернення;\n" -"Про нас\n" -"Важкий результат = _expression.Execute();\n" -"якщо (!_expression.HasExecuteFailed())\n" -"Довідник\n" -"GetNode<LineEdit>(\"LineEdit\"). Текст = результат.ToString();\n" -"Про нас\n" -"Про нас\n" -"[/csharp]\n" +"private void OnTextEntered(string command) \n" +"{\n" +" Erorr error = _expression.Parse(command); \n" +" if (error != Erorr. Ok) \n" +" { \n" +" GD.Print(_expression.GetErrorText()); \n" +" return; \n" +" } \n" +" Variant result = _expression.Execute(); \n" +" if (!_expression.HasExecuteFailed()) \n" +" { \n" +" GetNode<LineEdit>(\"LineEdit\").Text = result.ToString(); \n" +" } \n" +"}\n" +"[/csharp] \n" "[/codeblocks]" msgid "Evaluating Expressions" @@ -51853,6 +66341,51 @@ msgstr "" "Ви можете додатково вказати імена змінних, які можуть з'явитися у виразі з " "[param вхід_names], так що ви можете зв'язати їх, коли він буде виконаний." +msgid "Texture which displays the content of an external buffer." +msgstr "Текстура, яка відображає вміст зовнішнього буфера." + +msgid "" +"Displays the content of an external buffer provided by the platform.\n" +"Requires the [url=https://registry.khronos.org/OpenGL/extensions/OES/" +"OES_EGL_image_external.txt]OES_EGL_image_external[/url] extension (OpenGL) or " +"[url=https://registry.khronos.org/vulkan/specs/1.1-extensions/html/vkspec." +"html#VK_ANDROID_external_memory_android_hardware_buffer]VK_ANDROID_external_memory_android_hardware_buffer[/" +"url] extension (Vulkan).\n" +"[b]Note:[/b] This is currently only supported in Android builds." +msgstr "" +"Відображає вміст зовнішнього буфера, наданого платформою.\n" +"Потрібне розширення [url=https://registry.khronos.org/OpenGL/extensions/OES/" +"OES_EGL_image_external.txt]OES_EGL_image_external[/url] (OpenGL) або " +"[url=https://registry.khronos.org/vulkan/specs/1.1-extensions/html/vkspec." +"html#VK_ANDROID_external_memory_android_hardware_buffer]VK_ANDROID_external_memory_android_hardware_buffer[/" +"url] розширення (Vulkan).\n" +"[b]Примітка.[/b] Наразі це підтримується лише в збірках Android." + +msgid "" +"Returns the external texture ID.\n" +"Depending on your use case, you may need to pass this to platform APIs, for " +"example, when creating an [code]android.graphics.SurfaceTexture[/code] on " +"Android." +msgstr "" +"Повертає ідентифікатор зовнішньої текстури.\n" +"Залежно від вашого випадку використання вам може знадобитися передати це в " +"API платформи, наприклад, під час створення [code]android.graphics." +"SurfaceTexture[/code] на Android." + +msgid "" +"Sets the external buffer ID.\n" +"Depending on your use case, you may need to call this with data received from " +"a platform API, for example, [code]SurfaceTexture.getHardwareBuffer()[/code] " +"on Android." +msgstr "" +"Встановлює ідентифікатор зовнішнього буфера.\n" +"Залежно від вашого випадку використання вам може знадобитися викликати це з " +"даними, отриманими з API платформи, наприклад, [code]SurfaceTexture." +"getHardwareBuffer()[/code] на Android." + +msgid "External texture size." +msgstr "Зовнішній розмір текстури." + msgid "Generates noise using the FastNoiseLite library." msgstr "Бібліотека FastNoiseLite." @@ -52028,6 +66561,22 @@ msgstr "" "У клітинку входить як шум у Worley і Voronoi діаграми, що створює різні " "регіони однакового значення." +msgid "" +"As opposed to [constant TYPE_PERLIN], gradients exist in a simplex lattice " +"rather than a grid lattice, avoiding directional artifacts. Internally uses " +"FastNoiseLite's OpenSimplex2 noise type." +msgstr "" +"На відміну від [константи TYPE_PERLIN], градієнти існують у симплексній " +"решітці, а не в сітці, уникаючи направлених артефактів. Внутрішньо " +"використовує тип шуму OpenSimplex2 FastNoiseLite." + +msgid "" +"Modified, higher quality version of [constant TYPE_SIMPLEX], but slower. " +"Internally uses FastNoiseLite's OpenSimplex2S noise type." +msgstr "" +"Модифікована, якісніша версія [константи TYPE_SIMPLEX], але повільніша. " +"Внутрішньо використовує тип шуму OpenSimplex2S FastNoiseLite." + msgid "No fractal noise." msgstr "Ні фрактальний шум." @@ -52055,6 +66604,13 @@ msgstr "Квадратний Euclidean відстань до найближчо msgid "Manhattan distance (taxicab metric) to the nearest point." msgstr "Манхеттенська відстань (датчикометрика) до найближчої точки." +msgid "" +"Blend of [constant DISTANCE_EUCLIDEAN] and [constant DISTANCE_MANHATTAN] to " +"give curved cell boundaries." +msgstr "" +"Поєднання [константи DISTANCE_EUCLIDEAN] і [константи DISTANCE_MANHATTAN], " +"щоб отримати вигнуті межі клітинок." + msgid "" "The cellular distance function will return the same value for all points " "within a cell." @@ -52160,6 +66716,120 @@ msgstr "" msgid "Provides methods for file reading and writing operations." msgstr "Забезпечує методи читання файлів і написання операцій." +msgid "" +"This class can be used to permanently store data in the user device's file " +"system and to read from it. This is useful for storing game save data or " +"player configuration files.\n" +"Here's a sample on how to write and read from a file:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func save_to_file(content):\n" +" var file = FileAccess.open(\"user://save_game.dat\", FileAccess.WRITE)\n" +" file.store_string(content)\n" +"\n" +"func load_from_file():\n" +" var file = FileAccess.open(\"user://save_game.dat\", FileAccess.READ)\n" +" var content = file.get_as_text()\n" +" return content\n" +"[/gdscript]\n" +"[csharp]\n" +"public void SaveToFile(string content)\n" +"{\n" +" using var file = FileAccess.Open(\"user://save_game.dat\", FileAccess." +"ModeFlags.Write);\n" +" file.StoreString(content);\n" +"}\n" +"\n" +"public string LoadFromFile()\n" +"{\n" +" using var file = FileAccess.Open(\"user://save_game.dat\", FileAccess." +"ModeFlags.Read);\n" +" string content = file.GetAsText();\n" +" return content;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"In the example above, the file will be saved in the user data folder as " +"specified in the [url=$DOCS_URL/tutorials/io/data_paths.html]Data paths[/url] " +"documentation.\n" +"[FileAccess] will close when it's freed, which happens when it goes out of " +"scope or when it gets assigned with [code]null[/code]. [method close] can be " +"used to close it before then explicitly. In C# the reference must be disposed " +"manually, which can be done with the [code]using[/code] statement or by " +"calling the [code]Dispose[/code] method directly.\n" +"[b]Note:[/b] To access project resources once exported, it is recommended to " +"use [ResourceLoader] instead of [FileAccess], as some files are converted to " +"engine-specific formats and their original source files might not be present " +"in the exported PCK package. If using [FileAccess], make sure the file is " +"included in the export by changing its import mode to [b]Keep File (exported " +"as is)[/b] in the Import dock, or, for files where this option is not " +"available, change the non-resource export filter in the Export dialog to " +"include the file's extension (e.g. [code]*.txt[/code]).\n" +"[b]Note:[/b] Files are automatically closed only if the process exits " +"\"normally\" (such as by clicking the window manager's close button or " +"pressing [b]Alt + F4[/b]). If you stop the project execution by pressing " +"[b]F8[/b] while the project is running, the file won't be closed as the game " +"process will be killed. You can work around this by calling [method flush] at " +"regular intervals." +msgstr "" +"Цей клас можна використовувати для постійного зберігання даних у файловій " +"системі пристрою користувача та читання з неї. Це корисно для зберігання " +"даних збереження гри або конфігураційних файлів гравця. \n" +"Ось приклад запису та читання файлу: \n" +"[codeblocks] \n" +"[gdscript] \n" +"func save_to_file (content):\n" +" var file = FileAccess.open(\"user://save_game.dat\", FileAccess.WRITE) \n" +" file.store_string(вміст) \n" +"\n" +"func load_from_file(): \n" +" var file = FileAccess.open(\"user://save_game.dat\", FileAccess.READ) \n" +" var content = file.get_as_text() \n" +" повернути вміст \n" +"[/gdscript] \n" +"[csharp] \n" +"public void SaveToFile (string content) \n" +"{\n" +" Using var file = FileAccess.Open(\"user://save_game.dat\", FileAccess." +"ModeFlags.Write); \n" +" file.StoreString(вміст); \n" +"}\n" +"\n" +"public string LoadFromFile() \n" +"{\n" +" Using var file = FileAccess.Open(\"user://save_game.dat\", FileAccess." +"ModeFlags.Read); \n" +" string content = file.GetAsText(); \n" +" return content; \n" +"}\n" +"[/csharp] \n" +"[/codeblocks] \n" +"У наведеному вище прикладі файл буде збережено в папці даних користувача, як " +"зазначено в документації [url=$DOCS_URL/tutorials/io/data_paths.html]Шляхи до " +"даних[/url]. \n" +"[FileAccess] закриється, коли його буде звільнено, що станеться, коли він " +"виходить за межі або коли йому буде призначено [code]null[/code]. [method " +"close] можна використовувати, щоб закрити його раніше, ніж потім явно. У C# " +"посилання потрібно видалити вручну, що можна зробити за допомогою оператора " +"[code]using[/code] або шляхом безпосереднього виклику методу [code]Dispose[/" +"code]. \n" +"[b]Примітка: [/b] Щоб отримати доступ до ресурсів проекту після експорту, " +"рекомендується використовувати [ResourceLoader] замість [FileAccess], " +"оскільки деякі файли перетворюються на формати, специфічні для механізму, і " +"їхні оригінальні вихідні файли можуть не бути присутніми в експортованому " +"пакеті PCK. Якщо використовується [FileAccess], переконайтеся, що файл " +"включено в експорт, змінивши його режим імпорту на [b]Зберігати файл " +"(експортований як є)[/b] у док-станції «Імпорт», або, для файлів, для яких " +"цей параметр недоступний, змініть фільтр експорту без ресурсів у діалоговому " +"вікні «Експорт», щоб включити розширення файлу (наприклад, [код]*.txt[/" +"код]). \n" +"[b]Примітка: [/b] Файли автоматично закриваються, лише якщо процес " +"завершується \"звичайним чином\" (наприклад, натисканням кнопки закриття " +"диспетчера вікон або натисканням [b]Alt + F4[/b]). Якщо ви зупините виконання " +"проекту, натиснувши [b]F8[/b] під час виконання проекту, файл не буде " +"закрито, оскільки процес гри буде припинено. Ви можете обійти це, викликаючи " +"[method flush] через регулярні проміжки часу." + msgid "" "Closes the currently opened file and prevents subsequent read/write " "operations. Use [method flush] to persist the data to disk without closing " @@ -52179,6 +66849,29 @@ msgstr "" "ми закінчимо його використовувати, це можна зробити за допомогою оператора " "[code]using[/code] або безпосереднього виклику методу [code]Dispose[/code]." +msgid "" +"Creates a temporary file. This file will be freed when the returned " +"[FileAccess] is freed.\n" +"If [param prefix] is not empty, it will be prefixed to the file name, " +"separated by a [code]-[/code].\n" +"If [param extension] is not empty, it will be appended to the temporary file " +"name.\n" +"If [param keep] is [code]true[/code], the file is not deleted when the " +"returned [FileAccess] is freed.\n" +"Returns [code]null[/code] if opening the file failed. You can use [method " +"get_open_error] to check the error that occurred." +msgstr "" +"Створює тимчасовий файл. Цей файл буде звільнено, коли буде звільнено " +"повернутий [FileAccess].\n" +"Якщо [param prefix] не порожній, він буде додано до імені файлу, розділеного " +"[code]-[/code].\n" +"Якщо [param extension] не пусте, воно буде додано до імені тимчасового " +"файлу.\n" +"Якщо [param keep] має значення [code]true[/code], файл не видаляється, коли " +"звільняється повернутий [FileAccess].\n" +"Повертає [code]null[/code], якщо відкрити файл не вдалося. Ви можете " +"використовувати [метод get_open_error], щоб перевірити помилку, яка сталася." + msgid "" "Returns [code]true[/code] if the file cursor has already read past the end of " "the file.\n" @@ -52198,22 +66891,21 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Повертає [code]true[/code], якщо курсор файлів вже прочитав закінчення " -"файлу.\n" -"[b]Note:[/b] [code]eof_reached() == false[/code] не можна використовувати для " -"перевірки того, чи є інші дані доступні. Для петлі в той час як є більш " -"доступні дані, використовуйте:\n" -"[блоки коду]\n" -"[видання]\n" -"в той час як файл.get_position() < file.get_length():\n" -"# Читати дані\n" -"[/gdscript]\n" -"[csharp]\n" -"при (файл.GetPosition() < файл.GetLength())\n" -"Довідник\n" -"(Українська) Читати дані\n" -"Про нас\n" -"[/csharp]\n" +"Повертає [code]true[/code], якщо файловий курсор уже прочитав кінець файлу. \n" +"[b]Примітка:[/b] [code]eof_reached() == false[/code] не можна використовувати " +"для перевірки наявності додаткових даних. Для циклу, поки є більше доступних " +"даних, використовуйте: \n" +"[codeblocks] \n" +"[gdscript] \n" +"while file.get_position() < file.get_length(): \n" +" # Читання даних \n" +"[/gdscript] \n" +"[csharp] \n" +"while (file.GetPosition() < file.GetLength()) \n" +"{\n" +" // Читання даних \n" +"}\n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -52374,6 +67066,13 @@ msgstr "" msgid "Returns the next 32 bits from the file as a floating-point number." msgstr "Повертаємо наступні 32 біти з файлу як плаваючий номер точки." +msgid "" +"Returns the next 16 bits from the file as a half-precision floating-point " +"number." +msgstr "" +"Повертає наступні 16 бітів із файлу як число половинної точності з плаваючою " +"комою." + msgid "" "Returns [code]true[/code], if file [code]hidden[/code] attribute is set.\n" "[b]Note:[/b] This method is implemented on iOS, BSD, macOS, and Windows." @@ -52381,6 +67080,13 @@ msgstr "" "Повертає [code]true[/code], якщо файл [code]Прихований атрибут [/code].\n" "[b]Примітка:[/b] Цей метод реалізується на iOS, BSD, macOS та Windows." +msgid "" +"Returns the size of the file in bytes. For a pipe, returns the number of " +"bytes available for reading from the pipe." +msgstr "" +"Повертає розмір файлу в байтах. Для каналу повертає кількість байтів, " +"доступних для читання з каналу." + msgid "" "Returns the next line of the file as a [String]. The returned string doesn't " "include newline ([code]\\n[/code]) or carriage return ([code]\\r[/code]) " @@ -52572,6 +67278,278 @@ msgstr "" "Встановлює файл УНІКС дозволів.\n" "[b]Примітка:[/b] Цей метод реалізується на iOS, Linux/BSD та macOS." +msgid "" +"Stores an integer as 8 bits in the file.\n" +"[b]Note:[/b] The [param value] should lie in the interval [code][0, 255][/" +"code]. Any other value will overflow and wrap around.\n" +"[b]Note:[/b] If an error occurs, the resulting value of the file position " +"indicator is indeterminate.\n" +"To store a signed integer, use [method store_64], or convert it manually (see " +"[method store_16] for an example)." +msgstr "" +"Зберігає ціле число у вигляді 8 біт у файлі.\n" +"[b]Примітка: [/b] [значення параметра] має лежати в інтервалі [code][0, 255][/" +"code]. Будь-яке інше значення буде переповнюватися та обертатися.\n" +"[b]Примітка:[/b] Якщо виникає помилка, кінцеве значення індикатора позиції " +"файлу є невизначеним.\n" +"Щоб зберегти ціле число зі знаком, використовуйте [method store_64] або " +"перетворіть його вручну (дивіться [method store_16] для прикладу)." + +msgid "" +"Stores an integer as 16 bits in the file.\n" +"[b]Note:[/b] The [param value] should lie in the interval [code][0, 2^16 - 1]" +"[/code]. Any other value will overflow and wrap around.\n" +"[b]Note:[/b] If an error occurs, the resulting value of the file position " +"indicator is indeterminate.\n" +"To store a signed integer, use [method store_64] or store a signed integer " +"from the interval [code][-2^15, 2^15 - 1][/code] (i.e. keeping one bit for " +"the signedness) and compute its sign manually when reading. For example:\n" +"[codeblocks]\n" +"[gdscript]\n" +"const MAX_15B = 1 << 15\n" +"const MAX_16B = 1 << 16\n" +"\n" +"func unsigned16_to_signed(unsigned):\n" +" return (unsigned + MAX_15B) % MAX_16B - MAX_15B\n" +"\n" +"func _ready():\n" +" var f = FileAccess.open(\"user://file.dat\", FileAccess.WRITE_READ)\n" +" f.store_16(-42) # This wraps around and stores 65494 (2^16 - 42).\n" +" f.store_16(121) # In bounds, will store 121.\n" +" f.seek(0) # Go back to start to read the stored value.\n" +" var read1 = f.get_16() # 65494\n" +" var read2 = f.get_16() # 121\n" +" var converted1 = unsigned16_to_signed(read1) # -42\n" +" var converted2 = unsigned16_to_signed(read2) # 121\n" +"[/gdscript]\n" +"[csharp]\n" +"public override void _Ready()\n" +"{\n" +" using var f = FileAccess.Open(\"user://file.dat\", FileAccess.ModeFlags." +"WriteRead);\n" +" f.Store16(unchecked((ushort)-42)); // This wraps around and stores 65494 " +"(2^16 - 42).\n" +" f.Store16(121); // In bounds, will store 121.\n" +" f.Seek(0); // Go back to start to read the stored value.\n" +" ushort read1 = f.Get16(); // 65494\n" +" ushort read2 = f.Get16(); // 121\n" +" short converted1 = (short)read1; // -42\n" +" short converted2 = (short)read2; // 121\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Зберігає ціле число у вигляді 16 біт у файлі.\n" +"[b]Примітка: [/b] [значення параметра] має лежати в інтервалі [код][0, 2^16 - " +"1][/код]. Будь-яке інше значення буде переповнюватися та обертатися.\n" +"[b]Примітка:[/b] Якщо виникає помилка, кінцеве значення індикатора позиції " +"файлу є невизначеним.\n" +"Щоб зберегти ціле число зі знаком, використовуйте [метод store_64] або " +"збережіть ціле число зі знаком з інтервалу [код][-2^15, 2^15 - 1][/код] " +"(тобто зберігаючи один біт для знаку) і обчислюйте його знак вручну під час " +"читання. Наприклад:\n" +"[codeblocks]\n" +"[gdscript]\n" +"const MAX_15B = 1 << 15\n" +"const MAX_16B = 1 << 16\n" +"\n" +"func unsigned16_to_signed(unsigned):\n" +" return (unsigned + MAX_15B) % MAX_16B - MAX_15B\n" +"\n" +"func _ready():\n" +" var f = FileAccess.open(\"user://file.dat\", FileAccess.WRITE_READ)\n" +" f.store_16(-42) # Це обертається і зберігає 65494 (2^16 - 42).\n" +" f.store_16(121) # У межах, зберігатиме 121.\n" +" f.seek(0) # Повернутися назад, щоб почати читати збережене значення.\n" +" var read1 = f.get_16() # 65494\n" +" var read2 = f.get_16() # 121\n" +" var converted1 = unsigned16_to_signed(read1) # -42\n" +" var converted2 = unsigned16_to_signed(read2) # 121\n" +"[/gdscript]\n" +"[csharp]\n" +"public override void _Ready()\n" +"{\n" +" Using var f = FileAccess.Open(\"user://file.dat\", FileAccess.ModeFlags." +"WriteRead);\n" +" f.Store16(unchecked((ushort)-42)); // Це обертається та зберігає 65494 (2^16 " +"- 42).\n" +" f.Store16(121); // У межах буде зберігатися 121.\n" +" f.Seek(0); // Повернутися, щоб почати читати збережене значення.\n" +" ushort read1 = f.Get16(); // 65494\n" +" ushort read2 = f.Get16(); // 121\n" +" short converted1 = (short)read1; // -42\n" +" short converted2 = (short)read2; // 121\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" + +msgid "" +"Stores an integer as 32 bits in the file.\n" +"[b]Note:[/b] The [param value] should lie in the interval [code][0, 2^32 - 1]" +"[/code]. Any other value will overflow and wrap around.\n" +"[b]Note:[/b] If an error occurs, the resulting value of the file position " +"indicator is indeterminate.\n" +"To store a signed integer, use [method store_64], or convert it manually (see " +"[method store_16] for an example)." +msgstr "" +"Зберігає ціле число у вигляді 32 бітів у файлі.\n" +"[b]Примітка: [/b] [значення параметра] має лежати в інтервалі [code][0, 2^32 " +"- 1][/code]. Будь-яке інше значення буде переповнюватись і обертатися.\n" +"[b]Примітка:[/b] Якщо виникає помилка, кінцеве значення індикатора позиції " +"файлу є невизначеним.\n" +"Щоб зберегти ціле число зі знаком, використовуйте [method store_64] або " +"перетворіть його вручну (дивіться [method store_16] для прикладу)." + +msgid "" +"Stores an integer as 64 bits in the file.\n" +"[b]Note:[/b] The [param value] must lie in the interval [code][-2^63, 2^63 - " +"1][/code] (i.e. be a valid [int] value).\n" +"[b]Note:[/b] If an error occurs, the resulting value of the file position " +"indicator is indeterminate." +msgstr "" +"Зберігає ціле число у вигляді 64 бітів у файлі.\n" +"[b]Примітка:[/b] [значення параметра] має лежати в інтервалі [code][-2^63, " +"2^63 - 1][/code] (тобто бути дійсним значенням [int]).\n" +"[b]Примітка:[/b] Якщо виникає помилка, кінцеве значення індикатора позиції " +"файлу є невизначеним." + +msgid "" +"Stores the given array of bytes in the file.\n" +"[b]Note:[/b] If an error occurs, the resulting value of the file position " +"indicator is indeterminate." +msgstr "" +"Зберігає заданий масив байтів у файлі.\n" +"[b]Примітка.[/b] Якщо виникає помилка, кінцеве значення індикатора позиції " +"файлу є невизначеним." + +msgid "" +"Store the given [PackedStringArray] in the file as a line formatted in the " +"CSV (Comma-Separated Values) format. You can pass a different delimiter " +"[param delim] to use other than the default [code]\",\"[/code] (comma). This " +"delimiter must be one-character long.\n" +"Text will be encoded as UTF-8.\n" +"[b]Note:[/b] If an error occurs, the resulting value of the file position " +"indicator is indeterminate." +msgstr "" +"Зберігайте заданий [PackedStringArray] у файлі як рядок, відформатований у " +"форматі CSV (значення, розділені комами). Ви можете передати інший роздільник " +"[param delim], щоб використовувати інший, ніж стандартний [code]\",\"[/code] " +"(кома). Цей роздільник має складатися з одного символу.\n" +"Текст буде закодовано як UTF-8.\n" +"[b]Примітка:[/b] Якщо виникає помилка, кінцеве значення індикатора позиції " +"файлу є невизначеним." + +msgid "" +"Stores a floating-point number as 64 bits in the file.\n" +"[b]Note:[/b] If an error occurs, the resulting value of the file position " +"indicator is indeterminate." +msgstr "" +"Зберігає у файлі число з плаваючою комою як 64 біти.\n" +"[b]Примітка:[/b] Якщо виникає помилка, кінцеве значення індикатора позиції " +"файлу є невизначеним." + +msgid "" +"Stores a floating-point number as 32 bits in the file.\n" +"[b]Note:[/b] If an error occurs, the resulting value of the file position " +"indicator is indeterminate." +msgstr "" +"Зберігає у файлі число з плаваючою комою як 32 біти.\n" +"[b]Примітка.[/b] Якщо виникає помилка, кінцеве значення індикатора позиції " +"файлу є невизначеним." + +msgid "Stores a half-precision floating-point number as 16 bits in the file." +msgstr "" +"Зберігає число половинної точності з плаваючою комою у вигляді 16 біт у файлі." + +msgid "" +"Stores [param line] in the file followed by a newline character ([code]\\n[/" +"code]), encoding the text as UTF-8.\n" +"[b]Note:[/b] If an error occurs, the resulting value of the file position " +"indicator is indeterminate." +msgstr "" +"Зберігає [рядок параметрів] у файлі, після якого йде символ нового рядка " +"([code]\\n[/code]), кодуючи текст як UTF-8.\n" +"[b]Примітка:[/b] Якщо виникає помилка, кінцеве значення індикатора позиції " +"файлу є невизначеним." + +msgid "" +"Stores the given [String] as a line in the file in Pascal format (i.e. also " +"store the length of the string).\n" +"Text will be encoded as UTF-8.\n" +"[b]Note:[/b] If an error occurs, the resulting value of the file position " +"indicator is indeterminate." +msgstr "" +"Зберігає заданий [String] як рядок у файлі у форматі Pascal (тобто також " +"зберігає довжину рядка).\n" +"Текст буде закодовано як UTF-8.\n" +"[b]Примітка:[/b] Якщо виникає помилка, кінцеве значення індикатора позиції " +"файлу є невизначеним." + +msgid "" +"Stores a floating-point number in the file.\n" +"[b]Note:[/b] If an error occurs, the resulting value of the file position " +"indicator is indeterminate." +msgstr "" +"Зберігає число з плаваючою комою у файлі.\n" +"[b]Примітка:[/b] Якщо виникає помилка, кінцеве значення індикатора позиції " +"файлу є невизначеним." + +msgid "" +"Stores [param string] in the file without a newline character ([code]\\n[/" +"code]), encoding the text as UTF-8.\n" +"[b]Note:[/b] This method is intended to be used to write text files. The " +"string is stored as a UTF-8 encoded buffer without string length or " +"terminating zero, which means that it can't be loaded back easily. If you " +"want to store a retrievable string in a binary file, consider using [method " +"store_pascal_string] instead. For retrieving strings from a text file, you " +"can use [code]get_buffer(length).get_string_from_utf8()[/code] (if you know " +"the length) or [method get_as_text].\n" +"[b]Note:[/b] If an error occurs, the resulting value of the file position " +"indicator is indeterminate." +msgstr "" +"Зберігає [рядок параметрів] у файлі без символу нового рядка ([code]\\n[/" +"code]), кодуючи текст як UTF-8.\n" +"[b]Примітка: [/b] Цей метод призначений для використання для запису текстових " +"файлів. Рядок зберігається як буфер із кодуванням UTF-8 без довжини рядка або " +"кінцевого нуля, що означає, що його не можна легко завантажити назад. Якщо ви " +"хочете зберегти відновлюваний рядок у двійковому файлі, подумайте про " +"використання [метод store_pascal_string]. Щоб отримати рядки з текстового " +"файлу, ви можете використовувати [code]get_buffer(length)." +"get_string_from_utf8()[/code] (якщо вам відома довжина) або [метод " +"get_as_text].\n" +"[b]Примітка:[/b] Якщо виникає помилка, кінцеве значення індикатора позиції " +"файлу є невизначеним." + +msgid "" +"Stores any Variant value in the file. If [param full_objects] is [code]true[/" +"code], encoding objects is allowed (and can potentially include code).\n" +"Internally, this uses the same encoding mechanism as the [method @GlobalScope." +"var_to_bytes] method.\n" +"[b]Note:[/b] Not all properties are included. Only properties that are " +"configured with the [constant PROPERTY_USAGE_STORAGE] flag set will be " +"serialized. You can add a new usage flag to a property by overriding the " +"[method Object._get_property_list] method in your class. You can also check " +"how property usage is configured by calling [method Object." +"_get_property_list]. See [enum PropertyUsageFlags] for the possible usage " +"flags.\n" +"[b]Note:[/b] If an error occurs, the resulting value of the file position " +"indicator is indeterminate." +msgstr "" +"Зберігає будь-яке значення Variant у файлі. Якщо [параметр full_objects] має " +"значення [code]true[/code], кодування об’єктів дозволено (і потенційно може " +"містити код).\n" +"Внутрішньо це використовує той самий механізм кодування, що й метод [method " +"@GlobalScope.var_to_bytes].\n" +"[b]Примітка: [/b] не всі властивості включено. Буде серіалізовано лише " +"властивості, які налаштовано з установленим прапорцем [constant " +"PROPERTY_USAGE_STORAGE]. Ви можете додати новий прапор використання до " +"властивості, перевизначивши метод [method Object._get_property_list] у своєму " +"класі. Ви також можете перевірити, як налаштовано використання властивості, " +"викликавши [метод Object._get_property_list]. Перегляньте [enum " +"PropertyUsageFlags] для можливих позначок використання.\n" +"[b]Примітка:[/b] Якщо виникає помилка, кінцеве значення індикатора позиції " +"файлу є невизначеним." + msgid "" "If [code]true[/code], the file is read with big-endian [url=https://en." "wikipedia.org/wiki/Endianness]endianness[/url]. If [code]false[/code], the " @@ -52794,6 +67772,40 @@ msgstr "В даний час вибраний файл діалогу файлі msgid "The currently selected file path of the file dialog." msgstr "В даний час вибраний шлях файлу діалогу." +msgid "" +"The filter for file names (case-insensitive). When set to a non-empty string, " +"only files that contains the substring will be shown. [member " +"filename_filter] can be edited by the user with the filter button at the top " +"of the file dialog.\n" +"See also [member filters], which should be used to restrict the file types " +"that can be selected instead of [member filename_filter] which is meant to be " +"set by the user." +msgstr "" +"Фільтр імен файлів (незалежний від регістру). Якщо встановлено непорожній " +"рядок, відображатимуться лише файли, які містять цей підрядок. [member " +"filename_filter] користувач може редагувати за допомогою кнопки фільтра у " +"верхній частині діалогового вікна файлу.\n" +"Дивіться також [member filters], який слід використовувати для обмеження " +"типів файлів, які можна вибрати, замість [member filename_filter], який має " +"встановлювати користувач." + +msgid "" +"The available file type filters. Each filter string in the array should be " +"formatted like this: [code]*.png,*.jpg,*.jpeg;Image Files;image/png,image/" +"jpeg[/code]. The description text of the filter is optional and can be " +"omitted. Both file extensions and MIME type should be always set.\n" +"[b]Note:[/b] Embedded file dialog and Windows file dialog support only file " +"extensions, while Android, Linux, and macOS file dialogs also support MIME " +"types." +msgstr "" +"Доступні фільтри типів файлів. Кожен рядок фільтра в масиві має бути " +"відформатований таким чином: [код]*.png,*.jpg,*.jpeg;файли зображень;" +"зображення/png,зображення/jpeg[/код]. Текст опису фільтра необов’язковий і " +"його можна опустити. Слід завжди встановлювати розширення файлів і тип MIME.\n" +"[b]Примітка.[/b] Вбудоване діалогове вікно файлів і діалогове вікно файлів " +"Windows підтримують лише розширення файлів, тоді як діалогові вікна файлів " +"Android, Linux і macOS також підтримують типи MIME." + msgid "" "If [code]true[/code], changing the [member file_mode] property will set the " "window title accordingly (e.g. setting [member file_mode] to [constant " @@ -52812,6 +67824,45 @@ msgstr "" "користувач не зможе перейти до свого батьківського каталогу.\n" "[b]Примітка:[/b] Ця властивість ігнорується рідними діалогами файлів." +msgid "" +"If [code]true[/code], the dialog will show hidden files.\n" +"[b]Note:[/b] This property is ignored by native file dialogs on Android and " +"Linux." +msgstr "" +"Якщо [code]true[/code], діалогове вікно покаже приховані файли.\n" +"[b]Примітка:[/b] Ця властивість ігнорується рідними діалоговими вікнами " +"файлів на Android і Linux." + +msgid "" +"If [code]true[/code], and if supported by the current [DisplayServer], OS " +"native dialog will be used instead of custom one.\n" +"[b]Note:[/b] On Android, it is only supported when using [constant " +"ACCESS_FILESYSTEM]. For access mode [constant ACCESS_RESOURCES] and [constant " +"ACCESS_USERDATA], the system will fall back to custom FileDialog.\n" +"[b]Note:[/b] On Linux and macOS, sandboxed apps always use native dialogs to " +"access the host file system.\n" +"[b]Note:[/b] On macOS, sandboxed apps will save security-scoped bookmarks to " +"retain access to the opened folders across multiple sessions. Use [method OS." +"get_granted_permissions] to get a list of saved bookmarks.\n" +"[b]Note:[/b] Native dialogs are isolated from the base process, file dialog " +"properties can't be modified once the dialog is shown." +msgstr "" +"Якщо [code]true[/code] і підтримується поточним [DisplayServer], власне " +"діалогове вікно ОС використовуватиметься замість спеціального.\n" +"[b]Примітка:[/b] на Android це підтримується лише за використання [константи " +"ACCESS_FILESYSTEM]. Для режиму доступу [постійний ACCESS_RESOURCES] і " +"[постійний ACCESS_USERDATA] система повернеться до спеціального FileDialog.\n" +"[b]Примітка.[/b] У Linux і macOS програми ізольованого програмного середовища " +"завжди використовують власні діалогові вікна для доступу до файлової системи " +"хоста.\n" +"[b]Примітка.[/b] У macOS програми ізольованого програмного середовища " +"зберігають закладки з областю безпеки, щоб зберегти доступ до відкритих папок " +"протягом кількох сеансів. Використовуйте [метод OS.get_granted_permissions], " +"щоб отримати список збережених закладок.\n" +"[b]Примітка:[/b] рідні діалогові вікна ізольовані від базового процесу, " +"властивості діалогового вікна файлу не можна змінити після того, як діалогове " +"вікно показано." + msgid "Emitted when the user selects a directory." msgstr "Увімкніть, коли користувач вибирає каталог." @@ -52893,6 +67944,9 @@ msgstr "Користувальницькі іконки для стрілки п msgid "Custom icon for the reload button." msgstr "Настроювання іконки для кнопки перевантаження." +msgid "Custom icon for the toggle button for the filter for file names." +msgstr "Настроювана піктограма для кнопки-перемикача фільтра імен файлів." + msgid "Custom icon for the toggle hidden button." msgstr "Користувальницька ікона для окуляри прихована кнопка." @@ -53055,6 +68109,18 @@ msgstr "" "Повертає [code]true[/code], якщо значення цілого числа відрізняється від " "числа з плаваючою точкою." +msgid "" +"Multiplies each component of the [Color], including the alpha, by the given " +"[float].\n" +"[codeblock]\n" +"print(1.5 * Color(0.5, 0.5, 0.5)) # Prints (0.75, 0.75, 0.75, 1.5)\n" +"[/codeblock]" +msgstr "" +"Множить кожен компонент [Color], включаючи альфа, на заданий [float].\n" +"[codeblock]\n" +"print(1.5 * Color(0.5, 0.5, 0.5)) # Prints (0.75, 0.75, 0.75, 1.5)\n" +"[/codeblock]" + msgid "" "Multiplies each component of the [Quaternion] by the given [float]. This " "operation is not meaningful on its own, but it can be used as a part of a " @@ -53063,12 +68129,59 @@ msgstr "" "Множення кожного компонента [Quaternion] за умови [float]. Ця операція не має " "значення самостійно, але її можна використовувати в складі більшого виразу." +msgid "" +"Multiplies each component of the [Vector2] by the given [float].\n" +"[codeblock]\n" +"print(2.5 * Vector2(1, 3)) # Prints (2.5, 7.5)\n" +"[/codeblock]" +msgstr "" +"Множить кожен компонент [Vector2] на заданий [float].\n" +"[codeblock]\n" +"print(2.5 * Vector2(1, 3)) # Prints (2.5, 7.5)\n" +"[/codeblock]" + +msgid "" +"Multiplies each component of the [Vector2i] by the given [float]. Returns a " +"[Vector2].\n" +"[codeblock]\n" +"print(0.9 * Vector2i(10, 15)) # Prints (9.0, 13.5)\n" +"[/codeblock]" +msgstr "" +"Множить кожен компонент [Vector2i] на заданий [float]. Повертає [Вектор2].\n" +"[codeblock]\n" +"print(0.9 * Vector2i(10, 15)) # Prints (9.0, 13.5)\n" +"[/codeblock]" + msgid "Multiplies each component of the [Vector3] by the given [float]." msgstr "Множення кожного компонента [Vector3] заданими [float]." +msgid "" +"Multiplies each component of the [Vector3i] by the given [float]. Returns a " +"[Vector3].\n" +"[codeblock]\n" +"print(0.9 * Vector3i(10, 15, 20)) # Prints (9.0, 13.5, 18.0)\n" +"[/codeblock]" +msgstr "" +"Множить кожен компонент [Vector3i] на заданий [float]. Повертає [Вектор3].\n" +"[codeblock]\n" +"print(0.9 * Vector3i(10, 15, 20)) # Prints (9.0, 13.5, 18.0)\n" +"[/codeblock]" + msgid "Multiplies each component of the [Vector4] by the given [float]." msgstr "Множення кожного компонента [Vector4] заданими [float]." +msgid "" +"Multiplies each component of the [Vector4i] by the given [float]. Returns a " +"[Vector4].\n" +"[codeblock]\n" +"print(0.9 * Vector4i(10, 15, 20, -10)) # Prints (9.0, 13.5, 18.0, -9.0)\n" +"[/codeblock]" +msgstr "" +"Множить кожен компонент [Vector4i] на заданий [float]. Повертає [Вектор4].\n" +"[codeblock]\n" +"print(0.9 * Vector4i(10, 15, 20, -10)) # Друк (9.0, 13.5, 18.0, -9.0)\n" +"[/codeblock]" + msgid "Multiplies two [float]s." msgstr "Множить два [float]." @@ -53708,31 +68821,30 @@ msgid "" "[b]Note:[/b] Real height of the string is context-dependent and can be " "significantly different from the value returned by [method get_height]." msgstr "" -"Повертає розмір граничної коробки однолінійного рядка, що приймає кермування, " -"просування та позиціювання підпікселя. Дивись також [метод " -"get_multiline_string_size] і [метод_string].\n" -"Наприклад, щоб отримати розмір рядка, як відображається одним рядком " -"етикеток, використовуйте:\n" -"[блоки коду]\n" -"[видання]\n" +"Повертає розмір обмежувальної рамки однорядкового рядка, враховуючи кернінг, " +"просування та субпіксельне позиціонування. Дивіться також [метод " +"get_multiline_string_size] і [метод draw_string]. \n" +"Наприклад, щоб отримати розмір рядка, який відображається однорядковою " +"міткою, використовуйте: \n" +"[codeblocks] \n" +"[gdscript] \n" "var string_size = $Label.get_theme_font(\"font\").get_string_size($Label." "text, HORIZONTAL_ALIGNMENT_LEFT, -1, $Label." -"get_theme_font_size(\"font_size\"))\n" -"[/gdscript]\n" -"[csharp]\n" -"етикетка = GetNode<Label>(\"Label\");\n" -"Вектор2 stringSize = мітка.GetThemeFont(\"font\"). GetStringSize(лаборатор. " -"Текст, Горизонталізація. лівий, -1, етикетка." -"GetThemeFontSize(\"font_size\"));\n" -"[/csharp]\n" -"[/codeblocks]\n" -"[b]Note:[/b] Оскільки кермування, просування та позиціонування підпікселів " -"враховуються [метод get_string_size], використовуючи окремі [метод " -"get_string_size] дзвінки на підрядах рядка, після чого додавання результатів " -"разом повернеться інший результат у порівнянні з використанням одного [метод " -"get_string_size] виклик на повному рядку.\n" -"[b]Примітка:[/b] Реальна висота рядка є контекстно-залежною і може бути " -"значно відрізняється від значення, що повертається [метод]." +"get_theme_font_size(\"font_size\")) \n" +"[/gdscript] \n" +"[csharp] \n" +"Label label = GetNode<Label>(\"Label\"); \n" +"Vector2 stringSize = label.GetThemeFont(\"font\").GetStringSize(label.Text, " +"HorizontalAlignment.Left, -1, label.GetThemeFontSize(\"font_size\")); \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка.[/b] Оскільки [метод get_string_size] враховує кернінг, " +"просування та субпіксельне позиціонування, використання окремих викликів " +"[методу get_string_size] для підрядків рядка, а потім додавання результатів " +"разом призведе до іншого результату порівняно з використанням одного виклику " +"[методу get_string_size] для повного рядка. \n" +"[b]Примітка:[/b] Справжня висота рядка залежить від контексту та може значно " +"відрізнятися від значення, яке повертає [метод get_height]." msgid "" "Returns a string containing all the characters available in the font.\n" @@ -53766,25 +68878,25 @@ msgid "" "[b]Note:[/b] To set and get variation coordinates of a [FontVariation], use " "[member FontVariation.variation_opentype]." msgstr "" -"Повернути список підтриманих [url=https://docs.microsoft.com/en-us/typography/" -"opentype/spec/dvaraxisreg]variation координат[/url], кожен координатор " -"повертається як [code]tag: Vector3i(min_value,max_value,default_value)[/" -"code].\n" -"Варіанти шрифту дозволяють безперервно змінювати характеристики гліфів по " -"деякій даній осі дизайну, таких як вага, ширина або шлам.\n" -"Для друку доступні варіації осей змінного шрифту:\n" -"[блокування коду]\n" -"var fv = Фонтанція.new()\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"var варіація_list = fv.get_supported_variation_list()\n" -"для тегів в варіаціях_list:\n" -"var name = TextServerManager.get_primary_interface().tag_to_name(tag)\n" -"var значення = варіація_list[tag]\n" -"Друк(\"variation axis: %s (%d)\\n\\tmin, макс., за замовчуванням: %s\" % " -"[name, тег, значення])\n" -"[/codeblock]\n" -"[b]Примітка:[/b] Щоб встановити і отримати варіаційні координати " -"[FontVariation], скористайтеся [член FontVariation.variation_opentype]." +"Повертає список підтримуваних [url=https://docs.microsoft.com/en-us/" +"typography/opentype/spec/dvaraxisreg]варіантних координат[/url], кожна " +"координата повертається як [code]тег: Vector3i(min_value,max_value," +"default_value)[/code]. \n" +"Варіації шрифту дозволяють безперервно змінювати характеристики гліфа вздовж " +"певної заданої осі дизайну, наприклад товщину, ширину чи нахил. \n" +"Щоб надрукувати доступні осі варіацій змінного шрифту: \n" +"[codeblock] \n" +"var fv = FontVariation.new() \n" +"fv.base_font = load(\"res://RobotoFlex.ttf\") \n" +"var variation_list = fv.get_supported_variation_list() \n" +"для тегу в variation_list: \n" +" var name = TextServerManager.get_primary_interface().tag_to_name(tag) \n" +" var valve = variation_list[тег] \n" +" print(\"вісь варіації: %s (%d)\\n\\tmin, max, за замовчуванням: %s\" % " +"[назва, тег, значення]) \n" +"[/codeblock] \n" +"[b]Примітка:[/b] щоб установити та отримати координати варіації " +"[FontVariation], використовуйте [member FontVariation.variation_opentype]." msgid "" "Returns average pixel offset of the underline below the baseline.\n" @@ -53884,40 +68996,41 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"[FontFile] містить набір гліфів, щоб представити символи Unicode, імпортовані " -"з файлу шрифту, а також кеш rasterized glyphs, а набір падлогів [Font] для " -"використання.\n" -"Використовуйте [FontVariation] для доступу до конкретної варіації OpenType " -"шрифту, створення імітаційного сміливого / сланцевого варіанту, а також рядів " -"тексту.\n" -"Для більш складної обробки тексту використовуйте [FontVariation] в поєднанні " -"з [TextLine] або [TextParagraph].\n" -"Підтримувані формати шрифтів:\n" -"- Динамічний імпортер шрифтів: TrueType (.ttf), TrueType (.ttc), OpenType (." -"otf), OpenType collection (.otc), WOFF (.woff), WOFF2 (.woff2), Type 1 (." -"pfb, .pfm).\n" -"- Bitmap font імпортер: AngelCode BMFont (.fnt, .font), текст та бінарні " -"(версія 3) варіанти форматів.\n" -"- Імпортування шрифтів Monospace: Усі формати зображень.\n" -"[b]Note:[/b] Символ, який являє собою елемент (letter, digit тощо) в " -"абстрактному вигляді.\n" -"[b]Note:[/b] A glyph є бітмапа або форма, яка використовується для малювання " -"одного або декількох символів в контекстному порядку. Glyph індекси пов'язані " -"з певним джерелом даних шрифтів.\n" -"[b]Примітка:[/b] Якщо жоден з джерел даних шрифтів містить гліфи для " -"персонажа, що використовується в рядку, характер буде замінений на вікно, що " -"відображає його шістнадцятковий код.\n" -"[блоки коду]\n" -"[видання]\n" -"var f = навантаження(\"res://BarlowCondensed-Bold.ttf\")\n" -"$Label.add_theme_font_override(\"font\", f)\n" -"$Label.add_theme_font_override(\"font_size\", 64)\n" -"[/gdscript]\n" -"[csharp]\n" -"var f = ResourceLoader.Load<FontFile>(\"res://BarlowCondensed-Bold.ttf\");\n" -"GetNode(\"Label\").AddThemeFontOverride(\"font\", f);\n" -"GetNode(\"Label\").ДодатиThemeFontSizeOverride(\"font_size\", 64);\n" -"[/csharp]\n" +"[FontFile] містить набір гліфів для представлення символів Unicode, " +"імпортованих із файлу шрифту, а також кеш растеризованих гліфів і набір " +"резервних [Font] для використання. \n" +"Використовуйте [FontVariation], щоб отримати доступ до певної варіації шрифту " +"OpenType, створити імітацію жирного/похилого шрифту та намалювати рядки " +"тексту. \n" +"Для більш складної обробки тексту використовуйте [FontVariation] у поєднанні " +"з [TextLine] або [TextParagraph]. \n" +"Підтримувані формати шрифтів: \n" +"— Імпорт динамічних шрифтів: TrueType (.ttf), TrueType collection (.ttc), " +"OpenType (.otf), OpenType collection (.otc), WOFF (.woff), WOFF2 (.woff2), " +"Type 1 (.pfb, .pfm). \n" +"— Імпорт растрових шрифтів: AngelCode BMFont (.fnt, .font), текстовий і " +"двійковий (версія 3) формати. \n" +"— Імпорт шрифтів моноширинних зображень: усі підтримувані формати " +"зображень. \n" +"[b]Примітка:[/b] Символ — це символ, який представляє елемент (літеру, цифру " +"тощо) абстрактним способом. \n" +"[b]Примітка.[/b] Гліф — це растрове зображення або фігура, яка " +"використовується для малювання одного чи кількох символів залежно від " +"контексту. Індекси гліфів прив’язані до певного джерела даних шрифту. \n" +"[b]Примітка:[/b] Якщо жодне з джерел даних шрифту не містить гліфів для " +"символу, що використовується в рядку, символ, про який йде мова, буде " +"замінено полем із відображенням його шістнадцяткового коду. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var f = load(\"res://BarlowCondensed-Bold.ttf\") \n" +"$Label.add_theme_font_override(\"font\", f) \n" +"$Label.add_theme_font_size_override(\"size_font\", 64) \n" +"[/gdscript] \n" +"[csharp] \n" +"var f = ResourceLoader.Load<FontFile>(\"res://BarlowCondensed-Bold.ttf\"); \n" +"GetNode(\"Label\").AddThemeFontOverride(\"font\", f); \n" +"GetNode(\"Label\").AddThemeFontSizeOverride(\"font_size\", 64); \n" +"[/csharp] \n" "[/codeblocks]" msgid "Removes all font cache entries." @@ -54286,6 +69399,16 @@ msgstr "" msgid "Font hinting mode. Used by dynamic fonts only." msgstr "Режим натяження шрифту. Використовується тільки динамічними шрифтами." +msgid "" +"If set to [code]true[/code], when aligning glyphs to the pixel boundaries " +"rounding remainders are accumulated to ensure more uniform glyph " +"distribution. This setting has no effect if subpixel positioning is enabled." +msgstr "" +"Якщо встановлено значення [code]true[/code], під час вирівнювання гліфів до " +"меж пікселів залишки округлення накопичуються для забезпечення більш " +"рівномірного розподілу гліфів. Цей параметр не діє, якщо ввімкнено " +"субпіксельне позиціонування." + msgid "" "The width of the range around the shape between the minimum and maximum " "representable signed distance. If using font outlines, [member " @@ -54405,32 +69528,33 @@ msgid "" "name_to_tag(\"custom_hght\"): 900 }\n" "[/codeblock]" msgstr "" -"Забезпечує відкритий Тип варіації, імітовані сміливі / slant, і додаткові " -"параметри шрифту, такі як функції OpenType і додаткові інтервали.\n" -"Для використання імітованих сміливих варіантів шрифту:\n" -"[блоки коду]\n" -"[видання]\n" -"var fv = Фонтанція.new()\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"fv.variation_embolden = 1.2\n" -"$Label.add_theme_font_override(\"font\", fv)\n" -"$Label.add_theme_font_override(\"font_size\", 64)\n" -"[/gdscript]\n" -"[csharp]\n" -"var fv = нова версія ();\n" +"Забезпечує варіації OpenType, симуляцію напівжирного/похилого шрифту та " +"додаткові параметри шрифту, як-от функції OpenType та додаткові інтервали. \n" +"Щоб використати імітований варіант жирного шрифту: \n" +"[codeblocks] \n" +"[gdscript] \n" +"var fv = FontVariation.new() \n" +"fv.base_font = load(\"res://BarlowCondensed-Regular.ttf\") \n" +"fv.variation_embolden = 1,2 \n" +"$Label.add_theme_font_override(\"шрифт\", fv) \n" +"$Label.add_theme_font_size_override(\"font_size\", 64) \n" +"[/gdscript] \n" +"[csharp] \n" +"var fv = new FontVariation(); \n" "fv.SetBaseFont(ResourceLoader.Load<FontFile>(\"res://BarlowCondensed-Regular." -"ttf));\n" -"fv.SetVariationEmbolden(1.2);\n" -"GetNode(\"Label\").AddThemeFontOverride(\"font\", fv);\n" -"GetNode(\"Label\").ДодатиThemeFontSizeOverride(\"font_size\", 64);\n" -"[/csharp]\n" -"[/codeblocks]\n" -"Щоб встановити координату декількох варіаційних осей:\n" -"[блокування коду]\n" -"var fv = Фонтанція.new();\n" -"var ts = TextServerManager.get_primary_interface()\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" +"ttf\")); \n" +"fv.SetVariationEmbolden(1.2); \n" +"GetNode(\"Label\").AddThemeFontOverride(\"font\", fv); \n" +"GetNode(\"Label\").AddThemeFontSizeOverride(\"font_size\", 64); \n" +"[/csharp] \n" +"[/codeblocks] \n" +"Щоб встановити координати кількох варіаційних осей: \n" +"[codeblock] \n" +"var fv = FontVariation.new(); \n" +"var ts = TextServerManager.get_primary_interface() \n" +"fv.base_font = load(\"res://BarlowCondensed-Regular.ttf\") \n" +"fv.variation_opentype = { ts.name_to_tag(\"wght\"): 900, ts." +"name_to_tag(\"custom_hght\"): 900 } \n" "[/codeblock]" msgid "" @@ -54552,14 +69676,12 @@ msgid "" "[b]Note:[/b] GDExtension itself is not a scripting language and has no " "relation to [GDScript] resources." msgstr "" -"EnglishDeutschPусский简体中文中國傳統" -"EspañolالعربيةFrançaisελληνικάDanskАнглійскаябългарскиCatalàČeskýEestiSuomiGaeilgeहिन्दीHrvatskiMagyarIndonesiaIcelandicItalianoעברי" -"日本の한국의" -"LietuvosLatvijasмакедонскиMalayMaltiNederlandsNorskPolskiPortuguêsRomânescSlovenskýSlovenskiShqiptarCрпскиSvenskaไทยTürkçeYкраїнськийTiếng " -"việtייִדישKiswahili [GDExtensionManager] однотон відповідає за завантаження, " -"перевантаження та розвантаження [GDExtension] ресурсів.\n" -"[b]Note:[/b] GDExtension сама не скриптова мова і не має відношення до " -"ресурсів [GDScript]." +"Тип ресурсу [GDExtension] представляє [url=https://en.wikipedia.org/wiki/" +"Shared_library]спільну бібліотеку[/url], яка може розширити функціональні " +"можливості механізму. Синглтон [GDExtensionManager] відповідає за " +"завантаження, перезавантаження та вивантаження ресурсів [GDExtension]. \n" +"[b]Примітка:[/b] GDExtension сама по собі не є мовою сценаріїв і не має " +"жодного відношення до ресурсів [GDScript]." msgid "GDExtension overview" msgstr "Огляд GDExtension" @@ -54665,6 +69787,20 @@ msgstr "" "вказувати на вже завантажені [GDExtension], інакше цей метод повертає " "[constant LOAD_STATUS_NOT_LOADED]." +msgid "" +"Emitted after the editor has finished loading a new extension.\n" +"[b]Note:[/b] This signal is only emitted in editor builds." +msgstr "" +"Видається після того, як редактор завершив завантаження нового розширення.\n" +"[b]Примітка.[/b] Цей сигнал видається лише у збірках редактора." + +msgid "" +"Emitted before the editor starts unloading an extension.\n" +"[b]Note:[/b] This signal is only emitted in editor builds." +msgstr "" +"Видається перед тим, як редактор починає вивантажувати розширення.\n" +"[b]Примітка.[/b] Цей сигнал видається лише у збірках редактора." + msgid "Emitted after the editor has finished reloading one or more extensions." msgstr "" "Після того, як редактор закінчив перевантаження одного або декількох " @@ -54712,6 +69848,59 @@ msgstr "" msgid "GDScript documentation index" msgstr "Індекс документації GDScript" +msgid "" +"Returns a new instance of the script.\n" +"[codeblock]\n" +"var MyClass = load(\"myclass.gd\")\n" +"var instance = MyClass.new()\n" +"print(instance.get_script() == MyClass) # Prints true\n" +"[/codeblock]" +msgstr "" +"Повертає новий екземпляр сценарію.\n" +"[codeblock]\n" +"var MyClass = load(\"myclass.gd\")\n" +"var instance = MyClass.new()\n" +"print(instance.get_script() == MyClass) # Виводить true\n" +"[/codeblock]" + +msgid "" +"A GDScript syntax highlighter that can be used with [TextEdit] and [CodeEdit] " +"nodes." +msgstr "" +"Підсвічувач синтаксису GDScript, який можна використовувати з вузлами " +"[TextEdit] і [CodeEdit]." + +msgid "" +"[b]Note:[/b] This class can only be used for editor plugins because it relies " +"on editor settings.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var code_preview = TextEdit.new()\n" +"var highlighter = GDScriptSyntaxHighlighter.new()\n" +"code_preview.syntax_highlighter = highlighter\n" +"[/gdscript]\n" +"[csharp]\n" +"var codePreview = new TextEdit();\n" +"var highlighter = new GDScriptSyntaxHighlighter();\n" +"codePreview.SyntaxHighlighter = highlighter;\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"[b]Примітка:[/b] цей клас можна використовувати лише для плагінів редактора, " +"оскільки він залежить від налаштувань редактора.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var code_preview = TextEdit.new()\n" +"var highlighter = GDScriptSyntaxHighlighter.new()\n" +"code_preview.syntax_highlighter = highlighter\n" +"[/gdscript]\n" +"[csharp]\n" +"var codePreview = new TextEdit();\n" +"var highlighter = new GDScriptSyntaxHighlighter();\n" +"codePreview.SyntaxHighlighter = highlighter;\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "A physics joint that allows for complex movement and rotation between two 3D " "physics bodies." @@ -55113,6 +70302,35 @@ msgstr "" "Забезпечує набір допоміжних функцій для створення геометричних форм, складних " "перехрестя між формами та процесом різних інших геометричних операцій в 2D." +msgid "" +"Returns the [url=https://en.wikipedia.org/wiki/" +"Bresenham%27s_line_algorithm]Bresenham line[/url] between the [param from] " +"and [param to] points. A Bresenham line is a series of pixels that draws a " +"line and is always 1-pixel thick on every row and column of the drawing " +"(never more, never less).\n" +"Example code to draw a line between two [Marker2D] nodes using a series of " +"[method CanvasItem.draw_rect] calls:\n" +"[codeblock]\n" +"func _draw():\n" +" for pixel in Geometry2D.bresenham_line($MarkerA.position, $MarkerB." +"position):\n" +" draw_rect(Rect2(pixel, Vector2.ONE), Color.WHITE)\n" +"[/codeblock]" +msgstr "" +"Повертає [url=https://en.wikipedia.org/wiki/" +"Bresenham%27s_line_algorithm]лінію Брезенхема[/url] між точками [param from] " +"і [param to]. Лінія Брезенхема — це ряд пікселів, які малюють лінію, і завжди " +"мають товщину 1 піксель у кожному рядку та стовпці малюнка (ніколи більше, ні " +"менше). \n" +"Приклад коду для малювання лінії між двома вузлами [Marker2D] за допомогою " +"серії викликів [method CanvasItem.draw_rect]: \n" +"[codeblock] \n" +"func _draw(): \n" +" for pixel in Geometry2D.bresenham_line($MarkerA.position, $MarkerB." +"position): \n" +" draw_rect(Rect2(pixel, Vector2.ONE), Color.WHITE) \n" +"[/codeblock]" + msgid "" "Clips [param polygon_a] against [param polygon_b] and returns an array of " "clipped polygons. This performs [constant OPERATION_DIFFERENCE] between " @@ -55262,6 +70480,73 @@ msgstr "" "+y[/code] вниз), то результат буде потрібно розбити (тобто [code]true[/code] " "результат буде вказувати на проти годинникової стрілки." +msgid "" +"Returns the point of intersection between the two lines ([param from_a], " +"[param dir_a]) and ([param from_b], [param dir_b]). Returns a [Vector2], or " +"[code]null[/code] if the lines are parallel.\n" +"[code]from[/code] and [code]dir[/code] are [i]not[/i] endpoints of a line " +"segment or ray but the slope ([code]dir[/code]) and a known point " +"([code]from[/code]) on that line.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var from_a = Vector2.ZERO\n" +"var dir_a = Vector2.RIGHT\n" +"var from_b = Vector2.DOWN\n" +"\n" +"# Returns Vector2(1, 0)\n" +"Geometry2D.line_intersects_line(from_a, dir_a, from_b, Vector2(1, -1))\n" +"# Returns Vector2(-1, 0)\n" +"Geometry2D.line_intersects_line(from_a, dir_a, from_b, Vector2(-1, -1))\n" +"# Returns null\n" +"Geometry2D.line_intersects_line(from_a, dir_a, from_b, Vector2.RIGHT)\n" +"[/gdscript]\n" +"[csharp]\n" +"var fromA = Vector2.Zero;\n" +"var dirA = Vector2.Right;\n" +"var fromB = Vector2.Down;\n" +"\n" +"// Returns new Vector2(1, 0)\n" +"Geometry2D.LineIntersectsLine(fromA, dirA, fromB, new Vector2(1, -1));\n" +"// Returns new Vector2(-1, 0)\n" +"Geometry2D.LineIntersectsLine(fromA, dirA, fromB, new Vector2(-1, -1));\n" +"// Returns null\n" +"Geometry2D.LineIntersectsLine(fromA, dirA, fromB, Vector2.Right);\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Повертає точку перетину між двома лініями ([param from_a], [param dir_a]) і " +"([param from_b], [param dir_b]). Повертає [Вектор2] або [код]нуль[/код], якщо " +"лінії паралельні.\n" +"[code]from[/code] і [code]dir[/code] є [i]не[/i] кінцевими точками відрізка " +"або променя, а нахилом ([code]dir[/code]) і відомою точкою ([code]from[/" +"code]) на цій лінії.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var from_a = Vector2.ZERO\n" +"var dir_a = Vector2.RIGHT\n" +"var from_b = Vector2.DOWN\n" +"\n" +"# Повертає Vector2(1, 0)\n" +"Geometry2D.line_intersects_line(from_a, dir_a, from_b, Vector2(1, -1))\n" +"# Повертає Vector2(-1, 0)\n" +"Geometry2D.line_intersects_line(from_a, dir_a, from_b, Vector2(-1, -1))\n" +"# Повертає null\n" +"Geometry2D.line_intersects_line(from_a, dir_a, from_b, Vector2.RIGHT)\n" +"[/gdscript]\n" +"[csharp]\n" +"var fromA = Vector2.Zero;\n" +"var dirA = Vector2.Right;\n" +"var fromB = Vector2.Down;\n" +"\n" +"// Повертає новий Vector2(1, 0)\n" +"Geometry2D.LineIntersectsLine(fromA, dirA, fromB, new Vector2(1, -1));\n" +"// Повертає новий Vector2(-1, 0)\n" +"Geometry2D.LineIntersectsLine(fromA, dirA, fromB, new Vector2(-1, -1));\n" +"// Повертає null\n" +"Geometry2D.LineIntersectsLine(fromA, dirA, fromB, Vector2.Right);\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Given an array of [Vector2]s representing tiles, builds an atlas. The " "returned dictionary has two keys: [code]points[/code] is a " @@ -55287,6 +70572,73 @@ msgstr "" "внутрішніх полігонів (холок) виробництва яких можна відрізняти за допомогою " "виклику [метод_polygon_clockwise]." +msgid "" +"Inflates or deflates [param polygon] by [param delta] units (pixels). If " +"[param delta] is positive, makes the polygon grow outward. If [param delta] " +"is negative, shrinks the polygon inward. Returns an array of polygons because " +"inflating/deflating may result in multiple discrete polygons. Returns an " +"empty array if [param delta] is negative and the absolute value of it " +"approximately exceeds the minimum bounding rectangle dimensions of the " +"polygon.\n" +"Each polygon's vertices will be rounded as determined by [param join_type], " +"see [enum PolyJoinType].\n" +"The operation may result in an outer polygon (boundary) and inner polygon " +"(hole) produced which could be distinguished by calling [method " +"is_polygon_clockwise].\n" +"[b]Note:[/b] To translate the polygon's vertices specifically, multiply them " +"to a [Transform2D]:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var polygon = PackedVector2Array([Vector2(0, 0), Vector2(100, 0), " +"Vector2(100, 100), Vector2(0, 100)])\n" +"var offset = Vector2(50, 50)\n" +"polygon = Transform2D(0, offset) * polygon\n" +"print(polygon) # Prints [(50.0, 50.0), (150.0, 50.0), (150.0, 150.0), (50.0, " +"150.0)]\n" +"[/gdscript]\n" +"[csharp]\n" +"Vector2[] polygon = [new Vector2(0, 0), new Vector2(100, 0), new Vector2(100, " +"100), new Vector2(0, 100)];\n" +"var offset = new Vector2(50, 50);\n" +"polygon = new Transform2D(0, offset) * polygon;\n" +"GD.Print((Variant)polygon); // Prints [(50, 50), (150, 50), (150, 150), (50, " +"150)]\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Збільшує або зменшує [param polygon] на [param delta] одиниці (пікселі). Якщо " +"[param delta] додатне, багатокутник росте назовні. Якщо [param delta] " +"від’ємне, багатокутник згортається всередину. Повертає масив багатокутників, " +"оскільки розширення/зменшення може призвести до кількох дискретних " +"багатокутників. Повертає порожній масив, якщо [param delta] є від’ємним і " +"його абсолютне значення приблизно перевищує мінімальні розміри обмежуючого " +"прямокутника багатокутника. \n" +"Кожна вершина багатокутника буде округлена, як визначено [параметром " +"join_type], див. [enum PolyJoinType]. \n" +"Операція може призвести до створення зовнішнього багатокутника (межі) та " +"внутрішнього багатокутника (діри), які можна розрізнити викликом [method " +"is_polygon_clockwise]. \n" +"[b]Примітка:[/b] Щоб конкретно перекласти вершини багатокутника, помножте їх " +"на [Transform2D]: \n" +"[codeblocks] \n" +"[gdscript] \n" +"var polygon = PackedVector2Array([Vector2(0, 0), Vector2(100, 0), " +"Vector2(100, 100), Vector2(0, 100)]) \n" +"var offset = Vector2(50, 50) \n" +"полігон = Transform2D(0, offset) * polygon \n" +"print(polygon) # Друк [(50.0, 50.0), (150.0, 50.0), (150.0, 150.0), (50.0, " +"150.0)] \n" +"[/gdscript] \n" +"[csharp] \n" +"Vector2[] polygon = [new Vector2(0, 0), new Vector2(100, 0), new Vector2(100, " +"100), new Vector2(0, 100)]; \n" +"var offset = new Vector2(50, 50); \n" +"polygon = new Transform2D(0, offset) * polygon; \n" +"GD.Print((Variant)polygon); // Виводить [(50, 50), (150, 50), (150, 150), " +"(50, 150)] \n" +"[/csharp] \n" +"[/codeblocks]" + msgid "" "Inflates or deflates [param polyline] by [param delta] units (pixels), " "producing polygons. If [param delta] is positive, makes the polyline grow " @@ -55642,6 +70994,34 @@ msgstr "" msgid "Visibility ranges (HLOD)" msgstr "Діапазони життєздатності (HLOD)" +msgid "" +"Set the value of a shader uniform for this instance only ([url=$DOCS_URL/" +"tutorials/shaders/shader_reference/shading_language.html#per-instance-" +"uniforms]per-instance uniform[/url]). See also [method ShaderMaterial." +"set_shader_parameter] to assign a uniform on all instances using the same " +"[ShaderMaterial].\n" +"[b]Note:[/b] For a shader uniform to be assignable on a per-instance basis, " +"it [i]must[/i] be defined with [code]instance uniform ...[/code] rather than " +"[code]uniform ...[/code] in the shader code.\n" +"[b]Note:[/b] [param name] is case-sensitive and must match the name of the " +"uniform in the code exactly (not the capitalized name in the inspector).\n" +"[b]Note:[/b] Per-instance shader uniforms are only available in Spatial and " +"CanvasItem shaders, but not for Fog, Sky, or Particles shaders." +msgstr "" +"Встановіть значення шейдерної уніформи лише для цього екземпляра " +"([url=$DOCS_URL/tutorials/shaders/shader_reference/shading_language.html#per-" +"instance-uniforms]per-instance uniform[/url]). Дивіться також [метод " +"ShaderMaterial.set_shader_parameter], щоб призначити однорідність для всіх " +"екземплярів, використовуючи той самий [ShaderMaterial].\n" +"[b]Примітка.[/b] Щоб уніформу шейдера можна було призначати окремо для " +"кожного екземпляра, її [i]має[/i] визначати [code]instance uniform ...[/" +"code], а не [code]uniform ...[/code] у коді шейдера.\n" +"[b]Примітка: [/b] [назва параметра] чутлива до регістру та має точно " +"відповідати назві уніформи в коді (а не назві, написаній великими літерами в " +"інспекторі).\n" +"[b]Примітка.[/b] Уніформи шейдерів для кожного екземпляра доступні лише для " +"шейдерів Spatial і CanvasItem, але не для шейдерів Fog, Sky або Particles." + msgid "" "The selected shadow casting flag. See [enum ShadowCastingSetting] for " "possible values." @@ -55680,6 +71060,39 @@ msgstr "" "Додаткова відстань, додана до GeometryInstance3D, що межує з коробкою " "([AABB]) для збільшення її зчеплення." +msgid "Use [member gi_lightmap_texel_scale] instead." +msgstr "Натомість використовуйте [member gi_lightmap_texel_scale]." + +msgid "The texel density to use for lightmapping in [LightmapGI]." +msgstr "" +"Щільність текселів, яка використовується для відображення світла в " +"[LightmapGI]." + +msgid "" +"The texel density to use for lightmapping in [LightmapGI]. Greater scale " +"values provide higher resolution in the lightmap, which can result in sharper " +"shadows for lights that have both direct and indirect light baked. However, " +"greater scale values will also increase the space taken by the mesh in the " +"lightmap texture, which increases the memory, storage, and bake time " +"requirements. When using a single mesh at different scales, consider " +"adjusting this value to keep the lightmap texel density consistent across " +"meshes.\n" +"For example, doubling [member gi_lightmap_texel_scale] doubles the lightmap " +"texture resolution for this object [i]on each axis[/i], so it will " +"[i]quadruple[/i] the texel count." +msgstr "" +"Щільність текселів, яка використовується для відображення світла в " +"[LightmapGI]. Вищі значення масштабу забезпечують вищу роздільну здатність на " +"карті освітлення, що може призвести до більш чітких тіней для джерел світла, " +"які мають як пряме, так і непряме світло. Однак більші значення масштабу " +"також збільшать простір, який займає сітка в текстурі карти освітлення, що " +"збільшує вимоги до пам’яті, зберігання та часу випічки. Використовуючи одну " +"сітку в різних масштабах, подумайте про коригування цього значення, щоб " +"підтримувати однакову щільність текселів карти освітлення в усіх сітках.\n" +"Наприклад, подвоєння [члена gi_lightmap_texel_scale] подвоює роздільну " +"здатність текстури карти освітлення для цього об’єкта [i]на кожній осі[/i], " +"тому кількість текселів [i]збільшиться в чотири рази[/i]." + msgid "" "The global illumination mode to use for the whole geometry. To avoid " "inconsistent results, use a mode that matches the purpose of the mesh during " @@ -55994,9 +71407,38 @@ msgstr "" "використанні методу мобільного або сумісного рендерингу, цей режим діє як " "[constant VISIBILITY_RANGE_FADE_DISABLED], але з гістерезом вимкнено." +msgid "Represents a glTF accessor." +msgstr "Представляє засіб доступу glTF." + +msgid "" +"GLTFAccessor is a data structure representing a glTF [code]accessor[/code] " +"that would be found in the [code]\"accessors\"[/code] array. A buffer is a " +"blob of binary data. A buffer view is a slice of a buffer. An accessor is a " +"typed interpretation of the data in a buffer view.\n" +"Most custom data stored in glTF does not need accessors, only buffer views " +"(see [GLTFBufferView]). Accessors are for more advanced use cases such as " +"interleaved mesh data encoded for the GPU." +msgstr "" +"GLTFAccessor — це структура даних, що представляє [code]accessor[/code] glTF, " +"який можна знайти в масиві [code]\"accessors\"[/code]. Буфер — це блок " +"двійкових даних. Перегляд буфера — це частина буфера. Інструмент доступу — це " +"типізована інтерпретація даних у поданні буфера.\n" +"Більшість користувальницьких даних, що зберігаються в glTF, не потребують " +"засобів доступу, лише представлення буфера (див. [GLTFBufferView]). Аксесери " +"призначені для більш розширених випадків використання, таких як перемежовані " +"сітчасті дані, закодовані для GPU." + msgid "Buffers, BufferViews, and Accessors in Khronos glTF specification" msgstr "Буфери, BufferViews та Accessors в специфікації Hronos glTF" +msgid "" +"The glTF accessor type as an enum. Possible values are 0 for \"SCALAR\", 1 " +"for \"VEC2\", 2 for \"VEC3\", 3 for \"VEC4\", 4 for \"MAT2\", 5 for \"MAT3\", " +"and 6 for \"MAT4\"." +msgstr "" +"Тип доступу glTF як перелік. Можливі значення: 0 для «SCALAR», 1 для «VEC2», " +"2 для «VEC3», 3 для «VEC4», 4 для «MAT2», 5 для «MAT3» і 6 для «MAT4»." + msgid "" "The index of the buffer view this accessor is referencing. If [code]-1[/" "code], this accessor is not referencing any buffer view." @@ -56007,6 +71449,17 @@ msgstr "" msgid "The offset relative to the start of the buffer view in bytes." msgstr "Зміщення відносно запуску буферного вигляду в байтах." +msgid "" +"The glTF component type as an enum. See [enum GLTFComponentType] for possible " +"values. Within the core glTF specification, a value of 5125 or " +"\"UNSIGNED_INT\" must not be used for any accessor that is not referenced by " +"mesh.primitive.indices." +msgstr "" +"Тип компонента glTF як перелік. Перегляньте [enum GLTFComponentType] для " +"можливих значень. У рамках основної специфікації glTF значення 5125 або " +"\"UNSIGNED_INT\" не можна використовувати для будь-якого засобу доступу, на " +"який не посилається mesh.primitive.indices." + msgid "The number of elements referenced by this accessor." msgstr "Кількість елементів, що додаються цим аксесуаром." @@ -56051,6 +71504,10 @@ msgstr "Зміщення відносно початку буферуПерег msgid "Use [member accessor_type] instead." msgstr "Використовуйте [пам'ятний доступ] замість." +msgid "The glTF accessor type as an enum. Use [member accessor_type] instead." +msgstr "" +"Тип доступу glTF як перелік. Натомість використовуйте [member accessor_type]." + msgid "" "Accessor type \"SCALAR\". For the glTF object model, this can be used to map " "to a single float, int, or bool value, or a float array." @@ -56100,9 +71557,188 @@ msgstr "" "Тип аксесуара \"MAT4\". Для моделі об'єкта glTF, це карти для \"float4x4\", " "представлених в GlTF JSON як масив шестигранних плавань." +msgid "" +"Component type \"NONE\". This is not a valid component type, and is used to " +"indicate that the component type is not set." +msgstr "" +"Тип компонента \"НЕМАЄ\". Це недійсний тип компонента та використовується для " +"вказівки, що тип компонента не встановлено." + +msgid "" +"Component type \"BYTE\". The value is [code]0x1400[/code] which comes from " +"OpenGL. This indicates data is stored in 1-byte or 8-bit signed integers. " +"This is a core part of the glTF specification." +msgstr "" +"Тип компонента «БАЙТ». Значення [code]0x1400[/code] походить від OpenGL. Це " +"означає, що дані зберігаються в 1-байтових або 8-бітових цілих числах зі " +"знаком. Це основна частина специфікації glTF." + +msgid "" +"Component type \"UNSIGNED_BYTE\". The value is [code]0x1401[/code] which " +"comes from OpenGL. This indicates data is stored in 1-byte or 8-bit unsigned " +"integers. This is a core part of the glTF specification." +msgstr "" +"Тип компонента \"UNSIGNED_BYTE\". Значення [code]0x1401[/code] походить від " +"OpenGL. Це означає, що дані зберігаються в 1-байтових або 8-бітових цілих " +"числах без знаку. Це основна частина специфікації glTF." + +msgid "" +"Component type \"SHORT\". The value is [code]0x1402[/code] which comes from " +"OpenGL. This indicates data is stored in 2-byte or 16-bit signed integers. " +"This is a core part of the glTF specification." +msgstr "" +"Тип компонента \"SHORT\". Значення [code]0x1402[/code] походить від OpenGL. " +"Це означає, що дані зберігаються у 2-байтових або 16-бітових цілих числах зі " +"знаком. Це основна частина специфікації glTF." + +msgid "" +"Component type \"UNSIGNED_SHORT\". The value is [code]0x1403[/code] which " +"comes from OpenGL. This indicates data is stored in 2-byte or 16-bit unsigned " +"integers. This is a core part of the glTF specification." +msgstr "" +"Тип компонента \"UNSIGNED_SHORT\". Значення [code]0x1403[/code] походить від " +"OpenGL. Це означає, що дані зберігаються у 2-байтових або 16-бітових цілих " +"числах без знаку. Це основна частина специфікації glTF." + +msgid "" +"Component type \"INT\". The value is [code]0x1404[/code] which comes from " +"OpenGL. This indicates data is stored in 4-byte or 32-bit signed integers. " +"This is NOT a core part of the glTF specification, and may not be supported " +"by all glTF importers. May be used by some extensions including " +"[code]KHR_interactivity[/code]." +msgstr "" +"Тип компонента \"INT\". Значення [code]0x1404[/code] походить від OpenGL. Це " +"означає, що дані зберігаються в 4-байтових або 32-бітових цілих числах зі " +"знаком. Це НЕ є основною частиною специфікації glTF і може підтримуватися не " +"всіма імпортерами glTF. Може використовуватися деякими розширеннями, зокрема " +"[code]KHR_interactivity[/code]." + +msgid "" +"Component type \"UNSIGNED_INT\". The value is [code]0x1405[/code] which comes " +"from OpenGL. This indicates data is stored in 4-byte or 32-bit unsigned " +"integers. This is a core part of the glTF specification." +msgstr "" +"Тип компонента \"UNSIGNED_INT\". Значення [code]0x1405[/code] походить від " +"OpenGL. Це означає, що дані зберігаються в 4-байтових або 32-бітових цілих " +"числах без знаку. Це основна частина специфікації glTF." + +msgid "" +"Component type \"FLOAT\". The value is [code]0x1406[/code] which comes from " +"OpenGL. This indicates data is stored in 4-byte or 32-bit floating-point " +"numbers. This is a core part of the glTF specification." +msgstr "" +"Тип компонента \"FLOAT\". Значення [code]0x1406[/code] походить від OpenGL. " +"Це означає, що дані зберігаються в 4-байтових або 32-бітових числах з " +"плаваючою комою. Це основна частина специфікації glTF." + +msgid "" +"Component type \"DOUBLE\". The value is [code]0x140A[/code] which comes from " +"OpenGL. This indicates data is stored in 8-byte or 64-bit floating-point " +"numbers. This is NOT a core part of the glTF specification, and may not be " +"supported by all glTF importers. May be used by some extensions including " +"[code]KHR_interactivity[/code]." +msgstr "" +"Тип компонента \"DOUBLE\". Значення [code]0x140A[/code] походить від OpenGL. " +"Це вказує на те, що дані зберігаються у 8-байтових або 64-бітових числах з " +"плаваючою комою. Це НЕ є основною частиною специфікації glTF і може " +"підтримуватися не всіма імпортерами glTF. Може використовуватися деякими " +"розширеннями, зокрема [code]KHR_interactivity[/code]." + +msgid "" +"Component type \"HALF_FLOAT\". The value is [code]0x140B[/code] which comes " +"from OpenGL. This indicates data is stored in 2-byte or 16-bit floating-point " +"numbers. This is NOT a core part of the glTF specification, and may not be " +"supported by all glTF importers. May be used by some extensions including " +"[code]KHR_interactivity[/code]." +msgstr "" +"Тип компонента \"HALF_FLOAT\". Значення [code]0x140B[/code] походить від " +"OpenGL. Це означає, що дані зберігаються у 2-байтових або 16-бітових числах з " +"плаваючою комою. Це НЕ є основною частиною специфікації glTF і може " +"підтримуватися не всіма імпортерами glTF. Може використовуватися деякими " +"розширеннями, зокрема [code]KHR_interactivity[/code]." + +msgid "" +"Component type \"LONG\". The value is [code]0x140E[/code] which comes from " +"OpenGL. This indicates data is stored in 8-byte or 64-bit signed integers. " +"This is NOT a core part of the glTF specification, and may not be supported " +"by all glTF importers. May be used by some extensions including " +"[code]KHR_interactivity[/code]." +msgstr "" +"Тип компонента \"LONG\". Значення [code]0x140E[/code] походить від OpenGL. Це " +"означає, що дані зберігаються у 8-байтових або 64-бітових цілих числах зі " +"знаком. Це НЕ є основною частиною специфікації glTF і може підтримуватися не " +"всіма імпортерами glTF. Може використовуватися деякими розширеннями, зокрема " +"[code]KHR_interactivity[/code]." + +msgid "" +"Component type \"UNSIGNED_LONG\". The value is [code]0x140F[/code] which " +"comes from OpenGL. This indicates data is stored in 8-byte or 64-bit unsigned " +"integers. This is NOT a core part of the glTF specification, and may not be " +"supported by all glTF importers. May be used by some extensions including " +"[code]KHR_interactivity[/code]." +msgstr "" +"Тип компонента \"UNSIGNED_LONG\". Значення [code]0x140F[/code] походить від " +"OpenGL. Це означає, що дані зберігаються у 8-байтових або 64-бітових цілих " +"числах без знаку. Це НЕ є основною частиною специфікації glTF і може " +"підтримуватися не всіма імпортерами glTF. Може використовуватися деякими " +"розширеннями, зокрема [code]KHR_interactivity[/code]." + +msgid "" +"Gets additional arbitrary data in this [GLTFAnimation] instance. This can be " +"used to keep per-node state data in [GLTFDocumentExtension] classes, which is " +"important because they are stateless.\n" +"The argument should be the [GLTFDocumentExtension] name (does not have to " +"match the extension name in the glTF file), and the return value can be " +"anything you set. If nothing was set, the return value is [code]null[/code]." +msgstr "" +"Отримує додаткові довільні дані в цьому екземплярі [GLTFAnimation]. Це можна " +"використовувати для збереження даних про стан кожного вузла в класах " +"[GLTFDocumentExtension], що важливо, оскільки вони не мають стану.\n" +"Аргументом має бути ім’я [GLTFDocumentExtension] (не має збігатися з ім’ям " +"розширення у файлі glTF), а значенням, що повертається, може бути будь-яке, " +"яке ви встановите. Якщо нічого не встановлено, повертається значення " +"[code]null[/code]." + +msgid "" +"Sets additional arbitrary data in this [GLTFAnimation] instance. This can be " +"used to keep per-node state data in [GLTFDocumentExtension] classes, which is " +"important because they are stateless.\n" +"The first argument should be the [GLTFDocumentExtension] name (does not have " +"to match the extension name in the glTF file), and the second argument can be " +"anything you want." +msgstr "" +"Встановлює додаткові довільні дані в цьому екземплярі [GLTFAnimation]. Це " +"можна використовувати для збереження даних про стан кожного вузла в класах " +"[GLTFDocumentExtension], що важливо, оскільки вони не мають стану.\n" +"Першим аргументом має бути ім’я [GLTFDocumentExtension] (не має збігатися з " +"ім’ям розширення у файлі glTF), а другий аргумент може бути будь-яким." + msgid "The original name of the animation." msgstr "Оригінальна назва анімації." +msgid "Represents a glTF buffer view." +msgstr "Представляє вигляд буфера glTF." + +msgid "" +"GLTFBufferView is a data structure representing a glTF [code]bufferView[/" +"code] that would be found in the [code]\"bufferViews\"[/code] array. A buffer " +"is a blob of binary data. A buffer view is a slice of a buffer that can be " +"used to identify and extract data from the buffer.\n" +"Most custom uses of buffers only need to use the [member buffer], [member " +"byte_length], and [member byte_offset]. The [member byte_stride] and [member " +"indices] properties are for more advanced use cases such as interleaved mesh " +"data encoded for the GPU." +msgstr "" +"GLTFBufferView — це структура даних, що представляє [code]bufferView[/code] " +"glTF, який можна знайти в масиві [code]\"bufferViews\"[/code]. Буфер — це " +"блок двійкових даних. Перегляд буфера — це фрагмент буфера, який можна " +"використовувати для ідентифікації та вилучення даних із буфера.\n" +"Для більшості нестандартних варіантів використання буферів потрібно " +"використовувати лише [member buffer], [member byte_length] і [member " +"byte_offset]. Властивості [member byte_stride] і [member indices] призначені " +"для більш розширених випадків використання, таких як перемежовані сітчасті " +"дані, закодовані для GPU." + msgid "" "Loads the buffer view data from the buffer referenced by this buffer view in " "the given [GLTFState]. Interleaved data with a byte stride is not yet " @@ -56139,6 +71775,54 @@ msgstr "" "Стійка, в байтах, між ними. Якщо [code]-1[/code], цей вид буфера не " "переповнений." +msgid "" +"[code]true[/code] if the GLTFBufferView's OpenGL GPU buffer type is an " +"[code]ELEMENT_ARRAY_BUFFER[/code] used for vertex indices (integer constant " +"[code]34963[/code]). [code]false[/code] if the buffer type is any other " +"value. See [url=https://github.com/KhronosGroup/glTF-Tutorials/blob/master/" +"gltfTutorial/gltfTutorial_005_BuffersBufferViewsAccessors.md]Buffers, " +"BufferViews, and Accessors[/url] for possible values. This property is set on " +"import and used on export." +msgstr "" +"[code]true[/code], якщо тип буфера OpenGL GPU GLTFBufferView є " +"[code]ELEMENT_ARRAY_BUFFER[/code], який використовується для індексів вершин " +"(ціла константа [code]34963[/code]). [code]false[/code], якщо тип буфера має " +"будь-яке інше значення. Перегляньте [url=https://github.com/KhronosGroup/glTF-" +"Tutorials/blob/master/gltfTutorial/" +"gltfTutorial_005_BuffersBufferViewsAccessors.md]Буфери, BufferViews і " +"Accessors[/url], щоб дізнатися про можливі значення. Ця властивість " +"встановлюється під час імпорту та використовується під час експорту." + +msgid "" +"[code]true[/code] if the GLTFBufferView's OpenGL GPU buffer type is an " +"[code]ARRAY_BUFFER[/code] used for vertex attributes (integer constant " +"[code]34962[/code]). [code]false[/code] if the buffer type is any other " +"value. See [url=https://github.com/KhronosGroup/glTF-Tutorials/blob/master/" +"gltfTutorial/gltfTutorial_005_BuffersBufferViewsAccessors.md]Buffers, " +"BufferViews, and Accessors[/url] for possible values. This property is set on " +"import and used on export." +msgstr "" +"[code]true[/code], якщо тип буфера OpenGL GPU GLTFBufferView є " +"[code]ARRAY_BUFFER[/code], який використовується для атрибутів вершин (ціла " +"константа [code]34962[/code]). [code]false[/code], якщо тип буфера має будь-" +"яке інше значення. Перегляньте [url=https://github.com/KhronosGroup/glTF-" +"Tutorials/blob/master/gltfTutorial/" +"gltfTutorial_005_BuffersBufferViewsAccessors.md]Буфери, BufferViews і " +"Accessors[/url], щоб дізнатися про можливі значення. Ця властивість " +"встановлюється під час імпорту та використовується під час експорту." + +msgid "Represents a glTF camera." +msgstr "Представляє камеру glTF." + +msgid "Represents a camera as defined by the base glTF spec." +msgstr "Представляє камеру, як визначено базовою специфікацією glTF." + +msgid "glTF camera detailed specification" +msgstr "детальна специфікація камери glTF" + +msgid "glTF camera spec and example file" +msgstr "Специфікація камери glTF і файл прикладу" + msgid "Creates a new GLTFCamera instance by parsing the given [Dictionary]." msgstr "Створює новий екземпляр GLTFCamera за допомогою парсингу [Dictionary]." @@ -56151,15 +71835,117 @@ msgstr "Сфералізує цей екземпляр GLTFCamera в [Дикат msgid "Converts this GLTFCamera instance into a Godot [Camera3D] node." msgstr "Перетворення цієї GLTFCamera екземпляр в вузол Godot [Camera3D]." +msgid "" +"The distance to the far culling boundary for this camera relative to its " +"local Z axis, in meters. This maps to glTF's [code]zfar[/code] property." +msgstr "" +"Відстань до дальньої межі вибракування для цієї камери відносно її локальної " +"осі Z, у метрах. Це відображається на властивості [code]zfar[/code] glTF." + +msgid "" +"The distance to the near culling boundary for this camera relative to its " +"local Z axis, in meters. This maps to glTF's [code]znear[/code] property." +msgstr "" +"Відстань до найближчої межі вибракування для цієї камери відносно її " +"локальної осі Z, у метрах. Це відображається на властивості [code]znear[/" +"code] glTF." + +msgid "" +"The FOV of the camera. This class and glTF define the camera FOV in radians, " +"while Godot uses degrees. This maps to glTF's [code]yfov[/code] property. " +"This value is only used for perspective cameras, when [member perspective] is " +"[code]true[/code]." +msgstr "" +"Поле огляду камери. Цей клас і glTF визначають поле зору камери в радіанах, " +"тоді як Годо використовує градуси. Це відображається на властивості " +"[code]yfov[/code] glTF. Це значення використовується лише для перспективних " +"камер, якщо [member perspective] має значення [code]true[/code]." + +msgid "" +"If [code]true[/code], the camera is in perspective mode. Otherwise, the " +"camera is in orthographic/orthogonal mode. This maps to glTF's camera " +"[code]type[/code] property. See [member Camera3D.projection] and the glTF " +"spec for more information." +msgstr "" +"Якщо [code]true[/code], камера перебуває в режимі перспективи. В іншому " +"випадку камера працює в ортографічному/ортогональному режимі. Це " +"відображається на властивості [code]type[/code] камери glTF. Для отримання " +"додаткової інформації перегляньте [member Camera3D.projection] і специфікацію " +"glTF." + +msgid "" +"The size of the camera. This class and glTF define the camera size magnitude " +"as a radius in meters, while Godot defines it as a diameter in meters. This " +"maps to glTF's [code]ymag[/code] property. This value is only used for " +"orthographic/orthogonal cameras, when [member perspective] is [code]false[/" +"code]." +msgstr "" +"Розмір камери. Цей клас і glTF визначають величину розміру камери як радіус у " +"метрах, тоді як Годо визначає її як діаметр у метрах. Це відображається на " +"властивості [code]ymag[/code] glTF. Це значення використовується лише для " +"ортографічних/ортогональних камер, якщо [member perspective] має значення " +"[code]false[/code]." + msgid "Class for importing and exporting glTF files in and out of Godot." msgstr "Клас імпорту та експорту файлів glTF і з Godot." +msgid "" +"GLTFDocument supports reading data from a glTF file, buffer, or Godot scene. " +"This data can then be written to the filesystem, buffer, or used to create a " +"Godot scene.\n" +"All of the data in a glTF scene is stored in the [GLTFState] class. " +"GLTFDocument processes state objects, but does not contain any scene data " +"itself. GLTFDocument has member variables to store export configuration " +"settings such as the image format, but is otherwise stateless. Multiple " +"scenes can be processed with the same settings using the same GLTFDocument " +"object and different [GLTFState] objects.\n" +"GLTFDocument can be extended with arbitrary functionality by extending the " +"[GLTFDocumentExtension] class and registering it with GLTFDocument via " +"[method register_gltf_document_extension]. This allows for custom data to be " +"imported and exported." +msgstr "" +"GLTFDocument підтримує читання даних із файлу glTF, буфера або сцени Годо. " +"Потім ці дані можна записати у файлову систему, буфер або використати для " +"створення сцени Годо.\n" +"Усі дані сцени glTF зберігаються в класі [GLTFState]. GLTFDocument обробляє " +"об’єкти стану, але сам по собі не містить даних сцени. GLTFDocument має " +"змінні-учасники для зберігання налаштувань конфігурації експорту, таких як " +"формат зображення, але в іншому випадку не має стану. Кілька сцен можна " +"обробити з однаковими параметрами, використовуючи той самий об’єкт " +"GLTFDocument і різні об’єкти [GLTFState].\n" +"GLTFDocument можна розширити довільними функціями, розширивши клас " +"[GLTFDocumentExtension] і зареєструвавши його в GLTFDocument через [метод " +"register_gltf_document_extension]. Це дозволяє імпортувати й експортувати " +"спеціальні дані." + msgid "glTF 'What the duck?' guide" msgstr "glTF 'Що качка?' Керівництво" msgid "Khronos glTF specification" msgstr "Хронос glTF специфікація" +msgid "" +"Takes a [PackedByteArray] defining a glTF and imports the data to the given " +"[GLTFState] object through the [param state] parameter.\n" +"[b]Note:[/b] The [param base_path] tells [method append_from_buffer] where to " +"find dependencies and can be empty." +msgstr "" +"Бере [PackedByteArray], що визначає glTF, і імпортує дані в заданий об’єкт " +"[GLTFState] через параметр [param state].\n" +"[b]Примітка: [/b] [параметр базовий_шлях] повідомляє [методу " +"append_from_buffer], де знайти залежності, і може бути порожнім." + +msgid "" +"Takes a path to a glTF file and imports the data at that file path to the " +"given [GLTFState] object through the [param state] parameter.\n" +"[b]Note:[/b] The [param base_path] tells [method append_from_file] where to " +"find dependencies and can be empty." +msgstr "" +"Вибирає шлях до файлу glTF та імпортує дані за цим шляхом до вказаного " +"об’єкта [GLTFState] через параметр [param state].\n" +"[b]Примітка:[/b] [параметр базовий_шлях] повідомляє [методу " +"append_from_file], де знайти залежності, і може бути порожнім." + msgid "" "Takes a Godot Engine scene node and exports it and its descendants to the " "given [GLTFState] object through the [param state] parameter." @@ -56167,6 +71953,26 @@ msgstr "" "Візьміть вершину сцени Godot Engine і експортуйте його і його нащадків до " "вказаного параметра [GLTFState]." +msgid "" +"Determines a mapping between the given Godot [param node_path] and the " +"corresponding glTF Object Model JSON pointer(s) in the generated glTF file. " +"The details of this mapping are returned in a [GLTFObjectModelProperty] " +"object. Additional mappings can be supplied via the [method " +"GLTFDocumentExtension._import_object_model_property] callback method." +msgstr "" +"Визначає зіставлення між даним Godot [param node_path] і відповідним " +"покажчиком(ами) JSON об’єктної моделі glTF у згенерованому файлі glTF. Деталі " +"цього зіставлення повертаються в об’єкті [GLTFObjectModelProperty]. Додаткові " +"зіставлення можна надати через метод зворотного виклику [метод " +"GLTFDocumentExtension._import_object_model_property]." + +msgid "" +"Takes a [GLTFState] object through the [param state] parameter and returns a " +"glTF [PackedByteArray]." +msgstr "" +"Отримує об’єкт [GLTFState] через параметр [param state] і повертає glTF " +"[PackedByteArray]." + msgid "" "Takes a [GLTFState] object through the [param state] parameter and returns a " "Godot Engine scene node.\n" @@ -56176,6 +71982,55 @@ msgstr "" "сцени Godot Engine.\n" "Параметри параметра [param fix_fps] наділяє пекарні_fps в [param State]." +msgid "" +"Returns a list of all support glTF extensions, including extensions supported " +"directly by the engine, and extensions supported by user plugins registering " +"[GLTFDocumentExtension] classes.\n" +"[b]Note:[/b] If this method is run before a GLTFDocumentExtension is " +"registered, its extensions won't be included in the list. Be sure to only run " +"this method after all extensions are registered. If you run this when the " +"engine starts, consider waiting a frame before calling this method to ensure " +"all extensions are registered." +msgstr "" +"Повертає список усіх підтримуваних розширень glTF, включно з розширеннями, " +"які підтримуються безпосередньо системою, і розширеннями, які підтримуються " +"плагінами користувача, що реєструють класи [GLTFDocumentExtension].\n" +"[b]Примітка:[/b] якщо цей метод запущено до того, як GLTFDocumentExtension " +"зареєстровано, його розширення не буде включено до списку. Обов’язково " +"запускайте цей метод лише після реєстрації всіх розширень. Якщо ви запускаєте " +"це під час запуску двигуна, зачекайте кадр перед викликом цього методу, щоб " +"переконатися, що всі розширення зареєстровано." + +msgid "" +"Determines a mapping between the given glTF Object Model [param json_pointer] " +"and the corresponding Godot node path(s) in the generated Godot scene. The " +"details of this mapping are returned in a [GLTFObjectModelProperty] object. " +"Additional mappings can be supplied via the [method GLTFDocumentExtension." +"_export_object_model_property] callback method." +msgstr "" +"Визначає зіставлення між заданою об’єктною моделлю glTF [param json_pointer] " +"і відповідним шляхом(ями) вузла Godot у згенерованій сцені Godot. Деталі " +"цього зіставлення повертаються в об’єкті [GLTFObjectModelProperty]. Додаткові " +"зіставлення можна надати через метод зворотного виклику [метод " +"GLTFDocumentExtension._export_object_model_property]." + +msgid "" +"Registers the given [GLTFDocumentExtension] instance with GLTFDocument. If " +"[param first_priority] is [code]true[/code], this extension will be run " +"first. Otherwise, it will be run last.\n" +"[b]Note:[/b] Like GLTFDocument itself, all GLTFDocumentExtension classes must " +"be stateless in order to function properly. If you need to store data, use " +"the [code]set_additional_data[/code] and [code]get_additional_data[/code] " +"methods in [GLTFState] or [GLTFNode]." +msgstr "" +"Реєструє даний екземпляр [GLTFDocumentExtension] у GLTFDocument. Якщо [param " +"first_priority] має значення [code]true[/code], це розширення буде запущено " +"першим. В іншому випадку він буде запущений останнім.\n" +"[b]Примітка:[/b] Як і сам GLTFDocument, усі класи GLTFDocumentExtension мають " +"бути без стану, щоб функціонувати належним чином. Якщо вам потрібно зберігати " +"дані, використовуйте методи [code]set_additional_data[/code] і " +"[code]get_additional_data[/code] у [GLTFState] або [GLTFNode]." + msgid "Unregisters the given [GLTFDocumentExtension] instance." msgstr "Незареєстровані дані [GLTFDocumentExtension]." @@ -56190,6 +72045,20 @@ msgstr "" "[b]Note:[/b] Розширення файлу glTF визначає, якщо це бінарний файл .glb або " "текстовий файл .gltf." +msgid "" +"The user-friendly name of the export image format. This is used when " +"exporting the glTF file, including writing to a file and writing to a byte " +"array.\n" +"By default, Godot allows the following options: \"None\", \"PNG\", \"JPEG\", " +"\"Lossless WebP\", and \"Lossy WebP\". Support for more image formats can be " +"added in [GLTFDocumentExtension] classes." +msgstr "" +"Зручна назва формату експортованого зображення. Це використовується під час " +"експорту файлу glTF, включаючи запис у файл і запис у масив байтів.\n" +"За замовчуванням Godot дозволяє такі параметри: «Немає», «PNG», «JPEG», «WebP " +"без втрат» і «WebP з втратами». У класи [GLTFDocumentExtension] можна додати " +"підтримку інших форматів зображень." + msgid "" "If [member image_format] is a lossy image format, this determines the lossy " "quality of the image. On a range of [code]0.0[/code] to [code]1.0[/code], " @@ -56253,6 +72122,168 @@ msgstr "" msgid "[GLTFDocument] extension class." msgstr "[GLTFDocument] класу розширення." +msgid "" +"Extends the functionality of the [GLTFDocument] class by allowing you to run " +"arbitrary code at various stages of glTF import or export.\n" +"To use, make a new class extending GLTFDocumentExtension, override any " +"methods you need, make an instance of your class, and register it using " +"[method GLTFDocument.register_gltf_document_extension].\n" +"[b]Note:[/b] Like GLTFDocument itself, all GLTFDocumentExtension classes must " +"be stateless in order to function properly. If you need to store data, use " +"the [code]set_additional_data[/code] and [code]get_additional_data[/code] " +"methods in [GLTFState] or [GLTFNode]." +msgstr "" +"Розширює функціональність класу [GLTFDocument], дозволяючи запускати " +"довільний код на різних етапах імпорту або експорту glTF.\n" +"Для використання створіть новий клас, що розширює GLTFDocumentExtension, " +"замініть будь-які методи, які вам потрібні, створіть екземпляр свого класу та " +"зареєструйте його за допомогою [методу GLTFDocument." +"register_gltf_document_extension].\n" +"[b]Примітка:[/b] Як і сам GLTFDocument, усі класи GLTFDocumentExtension мають " +"бути без стану, щоб функціонувати належним чином. Якщо вам потрібно зберігати " +"дані, використовуйте методи [code]set_additional_data[/code] і " +"[code]get_additional_data[/code] у [GLTFState] або [GLTFNode]." + +msgid "" +"Part of the export process. This method is run after [method " +"_export_preflight] and before [method _export_post_convert].\n" +"Runs when converting the data from a Godot scene node. This method can be " +"used to process the Godot scene node data into a format that can be used by " +"[method _export_node]." +msgstr "" +"Частина процесу експорту. Цей метод запускається після [метод " +"_export_preflight] і перед [метод _export_post_convert].\n" +"Запускається під час перетворення даних із вузла сцени Годо. Цей метод можна " +"використовувати для обробки даних вузла сцени Godot у формат, який може " +"використовуватися [method _export_node]." + +msgid "" +"Part of the export process. This method is run after [method " +"_get_saveable_image_formats] and before [method _export_post]. If this " +"[GLTFDocumentExtension] is used for exporting images, this runs after [method " +"_serialize_texture_json].\n" +"This method can be used to modify the final JSON of each node. Data should be " +"primarily stored in [param gltf_node] prior to serializing the JSON, but the " +"original Godot [Node] is also provided if available. [param node] may be " +"[code]null[/code] if not available, such as when exporting glTF data not " +"generated from a Godot scene." +msgstr "" +"Частина процесу експорту. Цей метод запускається після [метод " +"_get_saveable_image_formats] і перед [метод _export_post]. Якщо цей " +"[GLTFDocumentExtension] використовується для експорту зображень, він " +"запускається після [method _serialize_texture_json].\n" +"Цей метод можна використовувати для зміни остаточного JSON кожного вузла. " +"Дані мають зберігатися в [param gltf_node] перед серіалізацією JSON, але " +"оригінальний Godot [вузол] також надається, якщо доступний. [param node] може " +"мати значення [code]null[/code], якщо він недоступний, наприклад, під час " +"експорту даних glTF, не згенерованих зі сцени Годо." + +msgid "" +"Part of the export process. Allows GLTFDocumentExtension classes to provide " +"mappings for properties of nodes in the Godot scene tree, to JSON pointers to " +"glTF properties, as defined by the glTF object model.\n" +"Returns a [GLTFObjectModelProperty] instance that defines how the property " +"should be mapped. If your extension can't handle the property, return " +"[code]null[/code] or an instance without any JSON pointers (see [method " +"GLTFObjectModelProperty.has_json_pointers]). You should use [method " +"GLTFObjectModelProperty.set_types] to set the types, and set the JSON " +"pointer(s) using the [member GLTFObjectModelProperty.json_pointers] " +"property.\n" +"The parameters provide context for the property, including the NodePath, the " +"Godot node, the GLTF node index, and the target object. The [param " +"target_object] will be equal to [param godot_node] if no sub-object can be " +"found, otherwise it will point to a sub-object. For example, if the path is " +"[code]^\"A/B/C/MeshInstance3D:mesh:surface_0/material:emission_intensity\"[/" +"code], it will get the node, then the mesh, and then the material, so [param " +"target_object] will be the [Material] resource, and [param target_depth] will " +"be 2 because 2 levels were traversed to get to the target." +msgstr "" +"Частина процесу експорту. Дозволяє класам GLTFDocumentExtension забезпечувати " +"зіставлення властивостей вузлів у дереві сцени Годо з покажчиками JSON на " +"властивості glTF, як визначено об’єктною моделлю glTF.\n" +"Повертає екземпляр [GLTFObjectModelProperty], який визначає, як має бути " +"відображено властивість. Якщо ваше розширення не може обробити властивість, " +"поверніть [code]null[/code] або екземпляр без жодних покажчиків JSON (див. " +"[метод GLTFObjectModelProperty.has_json_pointers]). Вам слід використовувати " +"[метод GLTFObjectModelProperty.set_types], щоб установити типи та встановити " +"покажчик(и) JSON за допомогою властивості [член GLTFObjectModelProperty." +"json_pointers].\n" +"Параметри надають контекст для властивості, включаючи NodePath, вузол Godot, " +"індекс вузла GLTF і цільовий об’єкт. [param target_object] дорівнюватиме " +"[param godot_node], якщо субоб’єкт не знайдено, інакше він вказуватиме на " +"субоб’єкт. Наприклад, якщо шлях [code]^\"A/B/C/MeshInstance3D:mesh:surface_0/" +"material:emission_intensity\"[/code], він отримає вузол, потім сітку, а потім " +"матеріал, тому [param target_object] буде ресурсом [Material], а [param " +"target_depth] матиме 2, оскільки для досягнення цілі було пройдено 2 рівні." + +msgid "" +"Part of the export process. This method is run last, after all other parts of " +"the export process.\n" +"This method can be used to modify the final JSON of the generated glTF file." +msgstr "" +"Частина процесу експорту. Цей метод запускається останнім, після всіх інших " +"частин процесу експорту.\n" +"Цей метод можна використовувати для зміни остаточного JSON створеного файлу " +"glTF." + +msgid "" +"Part of the export process. This method is run after [method " +"_convert_scene_node] and before [method _export_preserialize].\n" +"This method can be used to modify the converted node data structures before " +"serialization with any additional data from the scene tree." +msgstr "" +"Частина процесу експорту. Цей метод запускається після [method " +"_convert_scene_node] і перед [method _export_preserialize].\n" +"Цей метод можна використовувати для зміни перетворених структур даних вузла " +"перед серіалізацією з будь-якими додатковими даними з дерева сцени." + +msgid "" +"Part of the export process. This method is run first, before all other parts " +"of the export process.\n" +"The return value is used to determine if this [GLTFDocumentExtension] " +"instance should be used for exporting a given glTF file. If [constant OK], " +"the export will use this [GLTFDocumentExtension] instance. If not overridden, " +"[constant OK] is returned." +msgstr "" +"Частина процесу експорту. Цей метод запускається першим, перед усіма іншими " +"частинами процесу експорту.\n" +"Повернене значення використовується для визначення того, чи слід " +"використовувати цей екземпляр [GLTFDocumentExtension] для експорту заданого " +"файлу glTF. Якщо [константа OK], експорт використовуватиме цей екземпляр " +"[GLTFDocumentExtension]. Якщо не перевизначено, повертається [константа OK]." + +msgid "" +"Part of the export process. This method is run after [method " +"_export_post_convert] and before [method _get_saveable_image_formats].\n" +"This method can be used to alter the state before performing serialization. " +"It runs every time when generating a buffer with [method GLTFDocument." +"generate_buffer] or writing to the file system with [method GLTFDocument." +"write_to_filesystem]." +msgstr "" +"Частина процесу експорту. Цей метод запускається після [метод " +"_export_post_convert] і перед [метод _get_saveable_image_formats].\n" +"Цей метод можна використовувати для зміни стану перед виконанням " +"серіалізації. Він запускається кожного разу, коли створюється буфер за " +"допомогою [методу GLTFDocument.generate_buffer] або записується у файлову " +"систему за допомогою [методу GLTFDocument.write_to_filesystem]." + +msgid "" +"Part of the import process. This method is run after [method " +"_import_pre_generate] and before [method _import_node].\n" +"Runs when generating a Godot scene node from a GLTFNode. The returned node " +"will be added to the scene tree. Multiple nodes can be generated in this step " +"if they are added as a child of the returned node.\n" +"[b]Note:[/b] The [param scene_parent] parameter may be [code]null[/code] if " +"this is the single root node." +msgstr "" +"Частина процесу імпорту. Цей метод запускається після [method " +"_import_pre_generate] і перед [method _import_node].\n" +"Запускається під час генерації вузла сцени Годо з GLTFNode. Повернений вузол " +"буде додано до дерева сцени. На цьому кроці можна створити кілька вузлів, " +"якщо їх додати як дочірні вузли повернутого вузла.\n" +"[b]Примітка: [/b] Параметр [param scene_parent] може мати значення " +"[code]null[/code], якщо це єдиний кореневий вузол." + msgid "" "Returns the file extension to use for saving image data into, for example, " "[code]\".png\"[/code]. If defined, when this extension is used to handle " @@ -56290,6 +72321,19 @@ msgstr "" "_export_node] буде запущено наступним. Якщо назва формату містить " "[code]\"Lossy\"[/code], відображатиметься повзунок якості з втратами." +msgid "" +"Part of the import process. This method is run after [method " +"_import_preflight] and before [method _parse_node_extensions].\n" +"Returns an array of the glTF extensions supported by this " +"GLTFDocumentExtension class. This is used to validate if a glTF file with " +"required extensions can be loaded." +msgstr "" +"Частина процесу імпорту. Цей метод запускається після [method " +"_import_preflight] і перед [method _parse_node_extensions].\n" +"Повертає масив розширень glTF, які підтримуються цим класом " +"GLTFDocumentExtension. Це використовується для перевірки того, чи можна " +"завантажити файл glTF із потрібними розширеннями." + msgid "" "Part of the import process. This method is run after [method " "_generate_scene_node] and before [method _import_post].\n" @@ -56301,6 +72345,47 @@ msgstr "" "Цей метод може бути використаний для внесення змін до кожного з створених " "вузлів сцени Godot." +msgid "" +"Part of the import process. Allows GLTFDocumentExtension classes to provide " +"mappings for JSON pointers to glTF properties, as defined by the glTF object " +"model, to properties of nodes in the Godot scene tree.\n" +"Returns a [GLTFObjectModelProperty] instance that defines how the property " +"should be mapped. If your extension can't handle the property, return " +"[code]null[/code] or an instance without any NodePaths (see [method " +"GLTFObjectModelProperty.has_node_paths]). You should use [method " +"GLTFObjectModelProperty.set_types] to set the types, and [method " +"GLTFObjectModelProperty.append_path_to_property] function is useful for most " +"simple cases.\n" +"In many cases, [param partial_paths] will contain the start of a path, " +"allowing the extension to complete the path. For example, for [code]/nodes/3/" +"extensions/MY_ext/prop[/code], Godot will pass you a NodePath that leads to " +"node 3, so the GLTFDocumentExtension class only needs to resolve the last " +"[code]MY_ext/prop[/code] part of the path. In this example, the extension " +"should check [code]split.size() > 4 and split[0] == \"nodes\" and split[2] == " +"\"extensions\" and split[3] == \"MY_ext\"[/code] at the start of the function " +"to check if this JSON pointer applies to it, then it can use [param " +"partial_paths] and handle [code]split[4][/code]." +msgstr "" +"Частина процесу імпорту. Дозволяє класам GLTFDocumentExtension забезпечувати " +"зіставлення покажчиків JSON на властивості glTF, як визначено об’єктною " +"моделлю glTF, на властивості вузлів у дереві сцени Годо.\n" +"Повертає екземпляр [GLTFObjectModelProperty], який визначає, як має бути " +"відображено властивість. Якщо ваше розширення не може обробити властивість, " +"поверніть [code]null[/code] або екземпляр без будь-яких NodePaths (див. " +"[метод GLTFObjectModelProperty.has_node_paths]). Для встановлення типів слід " +"використовувати [метод GLTFObjectModelProperty.set_types], а функція [метод " +"GLTFObjectModelProperty.append_path_to_property] корисна для більшості " +"простих випадків.\n" +"У багатьох випадках [param partial_paths] міститиме початок шляху, дозволяючи " +"розширенню завершити шлях. Наприклад, для [code]/nodes/3/extensions/MY_ext/" +"prop[/code] Godot передасть вам NodePath, який веде до вузла 3, тому клас " +"GLTFDocumentExtension має розпізнати лише останню частину шляху [code]MY_ext/" +"prop[/code]. У цьому прикладі розширення має перевірити [code]split.size() > " +"4 і split[0] == \"nodes\" і split[2] == \"extensions\" і split[3] == " +"\"MY_ext\"[/code] на початку функції, щоб перевірити, чи цей покажчик JSON " +"застосовується до нього, тоді воно може використовувати [param partial_paths] " +"і обробляти [code]split[4][/code]." + msgid "" "Part of the import process. This method is run last, after all other parts of " "the import process.\n" @@ -56312,6 +72397,58 @@ msgstr "" "Цей метод може бути використаний для зміни кінцевої сцени Godot, створеної " "процесом імпорту." +msgid "" +"Part of the import process. This method is run after [method " +"_parse_node_extensions] and before [method _import_pre_generate].\n" +"This method can be used to modify any of the data imported so far after " +"parsing each node, but before generating the scene or any of its nodes." +msgstr "" +"Частина процесу імпорту. Цей метод запускається після [метод " +"_parse_node_extensions] і перед [метод _import_pre_generate].\n" +"Цей метод можна використовувати для зміни будь-яких даних, імпортованих на " +"даний момент після аналізу кожного вузла, але перед генерацією сцени або будь-" +"якого з її вузлів." + +msgid "" +"Part of the import process. This method is run after [method " +"_import_post_parse] and before [method _generate_scene_node].\n" +"This method can be used to modify or read from any of the processed data " +"structures, before generating the nodes and then running the final per-node " +"import step." +msgstr "" +"Частина імпортного процесу. Цей метод працює після [метод] " +"_parse_node_extensions] і перед [метод_generate_scene_node].\n" +"Цей метод може бути використаний для зміни будь-яких даних, що імпортуються " +"так далеко після парсингу, перед створенням вузлів, а потім запуску " +"кінцевого / без імпортного кроку." + +msgid "" +"Part of the import process. This method is run first, before all other parts " +"of the import process.\n" +"The return value is used to determine if this [GLTFDocumentExtension] " +"instance should be used for importing a given glTF file. If [constant OK], " +"the import will use this [GLTFDocumentExtension] instance. If not overridden, " +"[constant OK] is returned." +msgstr "" +"Частина процесу імпорту. Цей метод запускається першим, перед усіма іншими " +"частинами процесу імпорту.\n" +"Повернене значення використовується для визначення того, чи слід " +"використовувати цей екземпляр [GLTFDocumentExtension] для імпорту даного " +"файлу glTF. Якщо [constant OK], імпорт використовуватиме цей екземпляр " +"[GLTFDocumentExtension]. Якщо не перевизначено, повертається [константа OK]." + +msgid "" +"Part of the import process. This method is run after [method " +"_parse_node_extensions] and before [method _parse_texture_json].\n" +"Runs when parsing image data from a glTF file. The data could be sourced from " +"a separate file, a URI, or a buffer, and then is passed as a byte array." +msgstr "" +"Частина процесу імпорту. Цей метод запускається після [метод " +"_parse_node_extensions] і перед [метод _parse_texture_json].\n" +"Запускається під час аналізу даних зображення з файлу glTF. Дані можуть бути " +"отримані з окремого файлу, URI або буфера, а потім передаються як масив " +"байтів." + msgid "" "Part of the import process. This method is run after [method " "_get_supported_extensions] and before [method _import_post_parse].\n" @@ -56327,6 +72464,56 @@ msgstr "" "використовувати за допомогою [метод_generate_scene_node]. Вартість повернення " "повинна бути членом [повідомлення]." +msgid "" +"Part of the import process. This method is run after [method " +"_parse_image_data] and before [method _generate_scene_node].\n" +"Runs when parsing the texture JSON from the glTF textures array. This can be " +"used to set the source image index to use as the texture." +msgstr "" +"Частина процесу імпорту. Цей метод запускається після [method " +"_parse_image_data] і перед [method _generate_scene_node].\n" +"Запускається під час аналізу JSON текстури з масиву текстур glTF. Це можна " +"використовувати для встановлення індексу вихідного зображення для " +"використання як текстури." + +msgid "" +"Part of the export process. This method is run after [method " +"_get_saveable_image_formats] and before [method _serialize_texture_json].\n" +"This method is run when saving images separately from the glTF file. When " +"images are embedded, [method _serialize_image_to_bytes] runs instead. Note " +"that these methods only run when this [GLTFDocumentExtension] is selected as " +"the image exporter." +msgstr "" +"Частина процесу експорту. Цей метод запускається після [методу " +"_get_saveable_image_formats] і перед [методом _serialize_texture_json].\n" +"Цей метод запускається під час збереження зображень окремо від файлу glTF. " +"Коли зображення вбудовані, замість них виконується [метод " +"_serialize_image_to_bytes]. Зауважте, що ці методи запускаються лише тоді, " +"коли [GLTFDocumentExtension] вибрано як експортер зображень." + +msgid "" +"Part of the export process. This method is run after [method " +"_get_saveable_image_formats] and before [method _serialize_texture_json].\n" +"This method is run when embedding images in the glTF file. When images are " +"saved separately, [method _save_image_at_path] runs instead. Note that these " +"methods only run when this [GLTFDocumentExtension] is selected as the image " +"exporter.\n" +"This method must set the image MIME type in the [param image_dict] with the " +"[code]\"mimeType\"[/code] key. For example, for a PNG image, it would be set " +"to [code]\"image/png\"[/code]. The return value must be a [PackedByteArray] " +"containing the image data." +msgstr "" +"Частина процесу експорту. Цей метод запускається після [методу " +"_get_saveable_image_formats] і перед [методом _serialize_texture_json].\n" +"Цей метод запускається під час вбудовування зображень у файл glTF. Коли " +"зображення зберігаються окремо, замість них виконується [метод " +"_save_image_at_path]. Зауважте, що ці методи запускаються лише тоді, коли " +"[GLTFDocumentExtension] вибрано як експортер зображень.\n" +"Цей метод має встановити тип MIME зображення в [param image_dict] за " +"допомогою ключа [code]\"mimeType\"[/code]. Наприклад, для зображення PNG буде " +"встановлено значення [code]\"image/png\"[/code]. Поверненим значенням має " +"бути [PackedByteArray], що містить дані зображення." + msgid "" "Part of the export process. This method is run after [method " "_save_image_at_path] or [method _serialize_image_to_bytes], and before " @@ -56348,6 +72535,19 @@ msgstr "" "add_used_extension], обов'язково, щоб встановити [code]0[/code] до " "[code]true[/code], якщо ви не надаєте зворотному зв'язку." +msgid "Represents a glTF light." +msgstr "Представляє світло glTF." + +msgid "" +"Represents a light as defined by the [code]KHR_lights_punctual[/code] glTF " +"extension." +msgstr "" +"Представляє світло, як визначено розширенням [code]KHR_lights_punctual[/code] " +"glTF." + +msgid "KHR_lights_punctual glTF extension spec" +msgstr "Специфікація розширення KHR_lights_punctual glTF" + msgid "Creates a new GLTFLight instance by parsing the given [Dictionary]." msgstr "Створює новий екземпляр GLTFLight, що приписує дані [Dictionary]." @@ -56418,6 +72618,57 @@ msgstr "" "усіх напрямках. При створенні Godot [SpotLight3D] зовнішній кут конуса " "використовується в якості кута прожектора." +msgid "" +"The range of the light, beyond which the light has no effect. glTF lights " +"with no range defined behave like physical lights (which have infinite " +"range). When creating a Godot light, the range is clamped to 4096." +msgstr "" +"Діапазон світла, за межами якого світло не діє. Вогні glTF без визначеного " +"діапазону поводяться як фізичні вогні (які мають нескінченний діапазон). Під " +"час створення світла Годо діапазон обмежується до 4096." + +msgid "GLTFMesh represents a glTF mesh." +msgstr "GLTFMesh представляє сітку glTF." + +msgid "" +"GLTFMesh handles 3D mesh data imported from glTF files. It includes " +"properties for blend channels, blend weights, instance materials, and the " +"mesh itself." +msgstr "" +"GLTFMesh обробляє тривимірні дані сітки, імпортовані з файлів glTF. Він " +"містить властивості для каналів змішування, ваги змішування, матеріалів " +"екземплярів і самої сітки." + +msgid "" +"Gets additional arbitrary data in this [GLTFMesh] instance. This can be used " +"to keep per-node state data in [GLTFDocumentExtension] classes, which is " +"important because they are stateless.\n" +"The argument should be the [GLTFDocumentExtension] name (does not have to " +"match the extension name in the glTF file), and the return value can be " +"anything you set. If nothing was set, the return value is [code]null[/code]." +msgstr "" +"Отримує додаткові довільні дані в цьому екземплярі [GLTFMesh]. Це можна " +"використовувати для збереження даних про стан кожного вузла в класах " +"[GLTFDocumentExtension], що важливо, оскільки вони не мають стану. \n" +"Аргументом має бути ім’я [GLTFDocumentExtension] (не має збігатися з ім’ям " +"розширення у файлі glTF), а значенням, що повертається, може бути будь-яке, " +"яке ви встановите. Якщо нічого не встановлено, повертається значення " +"[code]null[/code]." + +msgid "" +"Sets additional arbitrary data in this [GLTFMesh] instance. This can be used " +"to keep per-node state data in [GLTFDocumentExtension] classes, which is " +"important because they are stateless.\n" +"The first argument should be the [GLTFDocumentExtension] name (does not have " +"to match the extension name in the glTF file), and the second argument can be " +"anything you want." +msgstr "" +"Встановлює додаткові довільні дані в цьому екземплярі [GLTFMesh]. Це можна " +"використовувати для збереження даних про стан кожного вузла в класах " +"[GLTFDocumentExtension], що важливо, оскільки вони не мають стану. \n" +"Першим аргументом має бути ім’я [GLTFDocumentExtension] (не має збігатися з " +"ім’ям розширення у файлі glTF), а другий аргумент може бути будь-яким." + msgid "An array of floats representing the blend weights of the mesh." msgstr "Багато плавок, що представляють собою змішані ваги сітки." @@ -56432,6 +72683,96 @@ msgstr "[ImporterMesh] об'єкт, що представляє саму сіт msgid "The original name of the mesh." msgstr "Оригінальна назва сітки." +msgid "glTF node class." +msgstr "клас вузла glTF." + +msgid "" +"Represents a glTF node. glTF nodes may have names, transforms, children " +"(other glTF nodes), and more specialized properties (represented by their own " +"classes).\n" +"glTF nodes generally exist inside of [GLTFState] which represents all data of " +"a glTF file. Most of GLTFNode's properties are indices of other data in the " +"glTF file. You can extend a glTF node with additional properties by using " +"[method get_additional_data] and [method set_additional_data]." +msgstr "" +"Представляє вузол glTF. Вузли glTF можуть мати імена, перетворення, дочірні " +"елементи (інші вузли glTF) і більш спеціалізовані властивості (представлені " +"власними класами). \n" +"Вузли glTF зазвичай існують усередині [GLTFState], який представляє всі дані " +"файлу glTF. Більшість властивостей GLTFNode є індексами інших даних у файлі " +"glTF. Ви можете розширити вузол glTF додатковими властивостями за допомогою " +"[method get_additional_data] і [method set_additional_data]." + +msgid "glTF scene and node spec" +msgstr "специфікації сцени та вузла glTF" + +msgid "Appends the given child node index to the [member children] array." +msgstr "Додає вказаний індекс дочірнього вузла до масиву [дочірні члени]." + +msgid "" +"Gets additional arbitrary data in this [GLTFNode] instance. This can be used " +"to keep per-node state data in [GLTFDocumentExtension] classes, which is " +"important because they are stateless.\n" +"The argument should be the [GLTFDocumentExtension] name (does not have to " +"match the extension name in the glTF file), and the return value can be " +"anything you set. If nothing was set, the return value is [code]null[/code]." +msgstr "" +"Отримує додаткові довільні дані в цьому екземплярі [GLTFNode]. Це можна " +"використовувати для збереження даних про стан кожного вузла в класах " +"[GLTFDocumentExtension], що важливо, оскільки вони не мають стану. \n" +"Аргументом має бути ім’я [GLTFDocumentExtension] (не має збігатися з ім’ям " +"розширення у файлі glTF), а значенням, що повертається, може бути будь-яке, " +"яке ви встановите. Якщо нічого не встановлено, повертається значення " +"[code]null[/code]." + +msgid "" +"Returns the [NodePath] that this GLTF node will have in the Godot scene tree " +"after being imported. This is useful when importing glTF object model " +"pointers with [GLTFObjectModelProperty], for handling extensions such as " +"[code]KHR_animation_pointer[/code] or [code]KHR_interactivity[/code].\n" +"If [param handle_skeletons] is [code]true[/code], paths to skeleton bone glTF " +"nodes will be resolved properly. For example, a path that would be [code]^\"A/" +"B/C/Bone1/Bone2/Bone3\"[/code] if [code]false[/code] will become [code]^\"A/B/" +"C/Skeleton3D:Bone3\"[/code]." +msgstr "" +"Повертає [NodePath], який цей вузол GLTF матиме в дереві сцени Godot після " +"імпорту. Це корисно під час імпорту вказівників об’єктної моделі glTF за " +"допомогою [GLTFObjectModelProperty] для обробки таких розширень, як " +"[code]KHR_animation_pointer[/code] або [code]KHR_interactivity[/code]. \n" +"Якщо [param handle_skeletons] має значення [code]true[/code], шляхи до вузлів " +"glTF кісток скелета будуть розпізнані належним чином. Наприклад, шлях, який " +"буде [code]^\"A/B/C/Bone1/Bone2/Bone3\"[/code], якщо [code]false[/code] стане " +"[code]^\"A/B/C/Skeleton3D:Bone3\"[/code]." + +msgid "" +"Sets additional arbitrary data in this [GLTFNode] instance. This can be used " +"to keep per-node state data in [GLTFDocumentExtension] classes, which is " +"important because they are stateless.\n" +"The first argument should be the [GLTFDocumentExtension] name (does not have " +"to match the extension name in the glTF file), and the second argument can be " +"anything you want." +msgstr "" +"Встановлює додаткові довільні дані в цьому екземплярі [GLTFNode]. Це можна " +"використовувати для збереження даних про стан кожного вузла в класах " +"[GLTFDocumentExtension], що важливо, оскільки вони не мають стану. \n" +"Першим аргументом має бути ім’я [GLTFDocumentExtension] (не має збігатися з " +"ім’ям розширення у файлі glTF), а другий аргумент може бути будь-яким." + +msgid "" +"If this glTF node is a camera, the index of the [GLTFCamera] in the " +"[GLTFState] that describes the camera's properties. If -1, this node is not a " +"camera." +msgstr "" +"Якщо цей вузол glTF є камерою, індекс [GLTFCamera] в [GLTFState], який описує " +"властивості камери. Якщо -1, цей вузол не є камерою." + +msgid "" +"The indices of the child nodes in the [GLTFState]. If this glTF node has no " +"children, this will be an empty array." +msgstr "" +"Індекси дочірніх вузлів у [GLTFState]. Якщо цей вузол glTF не має дітей, це " +"буде порожній масив." + msgid "" "How deep into the node hierarchy this node is. A root node will have a height " "of 0, its children will have a height of 1, and so on. If -1, the height has " @@ -56440,6 +72781,20 @@ msgstr "" "Як глибоко в вершину ієрархії цей вузол. У кореневу вершину буде висота 0, її " "діти матимуть висоту 1, і так далі. Якщо -1, висота не була розрахована." +msgid "" +"If this glTF node is a light, the index of the [GLTFLight] in the [GLTFState] " +"that describes the light's properties. If -1, this node is not a light." +msgstr "" +"Якщо цей вузол glTF є світлом, індекс [GLTFLight] у [GLTFState], який описує " +"властивості світла. Якщо -1, цей вузол не є світлом." + +msgid "" +"If this glTF node is a mesh, the index of the [GLTFMesh] in the [GLTFState] " +"that describes the mesh's properties. If -1, this node is not a mesh." +msgstr "" +"Якщо цей вузол glTF є сіткою, індекс [GLTFMesh] у [GLTFState], який описує " +"властивості сіті. Якщо -1, цей вузол не є сіткою." + msgid "The original name of the node." msgstr "Оригінальна назва вузла." @@ -56450,6 +72805,336 @@ msgstr "" "Індекс материнської вершини в [GLTFState]. Якщо -1, цей вузол є кореневою " "вершиною." +msgid "The position of the glTF node relative to its parent." +msgstr "Положення вузла glTF відносно його батьківського вузла." + +msgid "The rotation of the glTF node relative to its parent." +msgstr "Обертання вузла glTF відносно його батьківського вузла." + +msgid "The scale of the glTF node relative to its parent." +msgstr "Масштаб вузла glTF відносно його батьківського вузла." + +msgid "" +"If this glTF node has a skeleton, the index of the [GLTFSkeleton] in the " +"[GLTFState] that describes the skeleton's properties. If -1, this node does " +"not have a skeleton." +msgstr "" +"Якщо цей вузол glTF має скелет, індекс [GLTFSkeleton] у [GLTFState], який " +"описує властивості скелета. Якщо -1, цей вузол не має скелета." + +msgid "" +"If this glTF node has a skin, the index of the [GLTFSkin] in the [GLTFState] " +"that describes the skin's properties. If -1, this node does not have a skin." +msgstr "" +"Якщо цей вузол glTF має оболонку, індекс [GLTFSkin] у [GLTFState], який " +"описує властивості оболонки. Якщо -1, цей вузол не має шкіри." + +msgid "" +"The transform of the glTF node relative to its parent. This property is " +"usually unused since the position, rotation, and scale properties are " +"preferred." +msgstr "" +"Перетворення вузла glTF відносно його батьківського вузла. Ця властивість " +"зазвичай не використовується, оскільки перевага надається властивостям " +"положення, обертання та масштабу." + +msgid "Describes how to access a property as defined in the glTF object model." +msgstr "" +"Описує, як отримати доступ до властивості, визначеної в об’єктній моделі glTF." + +msgid "" +"GLTFObjectModelProperty defines a mapping between a property in the glTF " +"object model and a NodePath in the Godot scene tree. This can be used to " +"animate properties in a glTF file using the [code]KHR_animation_pointer[/" +"code] extension, or to access them through an engine-agnostic script such as " +"a behavior graph as defined by the [code]KHR_interactivity[/code] extension.\n" +"The glTF property is identified by JSON pointer(s) stored in [member " +"json_pointers], while the Godot property it maps to is defined by [member " +"node_paths]. In most cases [member json_pointers] and [member node_paths] " +"will each only have one item, but in some cases a single glTF JSON pointer " +"will map to multiple Godot properties, or a single Godot property will be " +"mapped to multiple glTF JSON pointers, or it might be a many-to-many " +"relationship.\n" +"[Expression] objects can be used to define conversions between the data, such " +"as when glTF defines an angle in radians and Godot uses degrees. The [member " +"object_model_type] property defines the type of data stored in the glTF file " +"as defined by the object model, see [enum GLTFObjectModelType] for possible " +"values." +msgstr "" +"GLTFObjectModelProperty визначає відображення між властивістю в об’єктній " +"моделі glTF і NodePath у дереві сцени Godot. Це можна використовувати для " +"анімації властивостей у файлі glTF за допомогою розширення " +"[code]KHR_animation_pointer[/code] або для доступу до них через сценарій, що " +"не залежить від механізму, наприклад графік поведінки, як визначено " +"розширенням [code]KHR_interactivity[/code]. \n" +"Властивість glTF ідентифікується покажчиком(-ами) JSON, що зберігається в " +"[member json_pointers], тоді як властивість Godot, на яку вона " +"відображається, визначається [member node_paths]. У більшості випадків " +"[member json_pointers] і [member node_paths] матимуть лише один елемент, але " +"в деяких випадках один вказівник glTF JSON буде зіставлено з декількома " +"властивостями Godot, або одна властивість Godot буде зіставлена з кількома " +"покажчиками glTF JSON, або це може бути зв’язок «багато-до-багатьох». \n" +"Об’єкти [Expression] можна використовувати для визначення перетворень між " +"даними, наприклад, коли glTF визначає кут у радіанах, а Godot використовує " +"градуси. Властивість [member object_model_type] визначає тип даних, що " +"зберігаються у файлі glTF, як визначено об’єктною моделлю, перегляньте " +"можливі значення [enum GLTFObjectModelType]." + +msgid "GLTF Object Model" +msgstr "Об'єктна модель GLTF" + +msgid "KHR_animation_pointer GLTF extension" +msgstr "Розширення KHR_animation_pointer GLTF" + +msgid "" +"Appends a [NodePath] to [member node_paths]. This can be used by " +"[GLTFDocumentExtension] classes to define how a glTF object model property " +"maps to a Godot property, or multiple Godot properties. Prefer using [method " +"append_path_to_property] for simple cases. Be sure to also call [method " +"set_types] once (the order does not matter)." +msgstr "" +"Додає [NodePath] до [member node_paths]. Це може використовуватися класами " +"[GLTFDocumentExtension], щоб визначити, як властивість об’єктної моделі glTF " +"зіставляється з властивістю Годо або кількома властивостями Годо. Надавайте " +"перевагу використанню [метод append_path_to_property] для простих випадків. " +"Не забудьте також один раз викликати [method set_types] (порядок не має " +"значення)." + +msgid "" +"High-level wrapper over [method append_node_path] that handles the most " +"common cases. It constructs a new [NodePath] using [param node_path] as a " +"base and appends [param prop_name] to the subpath. Be sure to also call " +"[method set_types] once (the order does not matter)." +msgstr "" +"Високорівнева оболонка над [method append_node_path], яка обробляє " +"найпоширеніші випадки. Він створює новий [NodePath], використовуючи [param " +"node_path] як основу, і додає [param prop_name] до підшляху. Не забудьте " +"також один раз викликати [method set_types] (порядок не має значення)." + +msgid "" +"The GLTF accessor type associated with this property's [member " +"object_model_type]. See [member GLTFAccessor.accessor_type] for possible " +"values, and see [enum GLTFObjectModelType] for how the object model type maps " +"to accessor types." +msgstr "" +"Тип засобу доступу GLTF, пов’язаний із [member object_model_type] цієї " +"властивості. Дивіться [member GLTFAccessor.accessor_type], щоб дізнатися про " +"можливі значення, і див. [enum GLTFObjectModelType], щоб дізнатися, як тип " +"об’єктної моделі зіставляється з типами засобів доступу." + +msgid "" +"Returns [code]true[/code] if [member json_pointers] is not empty. This is " +"used during export to determine if a [GLTFObjectModelProperty] can handle " +"converting a Godot property to a glTF object model property." +msgstr "" +"Повертає [code]true[/code], якщо [member json_pointers] не порожній. Це " +"використовується під час експорту, щоб визначити, чи може " +"[GLTFObjectModelProperty] обробляти перетворення властивості Godot у " +"властивість об’єктної моделі glTF." + +msgid "" +"Returns [code]true[/code] if [member node_paths] is not empty. This is used " +"during import to determine if a [GLTFObjectModelProperty] can handle " +"converting a glTF object model property to a Godot property." +msgstr "" +"Повертає [code]true[/code], якщо [member node_paths] не порожній. Це " +"використовується під час імпорту, щоб визначити, чи може " +"[GLTFObjectModelProperty] обробляти перетворення властивості об’єктної моделі " +"glTF на властивість Godot." + +msgid "" +"Sets the [member variant_type] and [member object_model_type] properties. " +"This is a convenience method to set both properties at once, since they are " +"almost always known at the same time. This method should be called once. " +"Calling it again with the same values will have no effect." +msgstr "" +"Встановлює властивості [member variant_type] і [member object_model_type]. Це " +"зручний метод встановлення обох властивостей одночасно, оскільки вони майже " +"завжди відомі одночасно. Цей метод слід викликати один раз. Повторний виклик " +"із тими самими значеннями не матиме ефекту." + +msgid "" +"If set, this [Expression] will be used to convert the property value from the " +"glTF object model to the value expected by the Godot property. This is useful " +"when the glTF object model uses a different unit system, or when the data " +"needs to be transformed in some way. If [code]null[/code], the value will be " +"copied as-is." +msgstr "" +"Якщо встановлено, цей [вираз] використовуватиметься для перетворення значення " +"властивості з об’єктної моделі glTF у значення, очікуване властивістю Годо. " +"Це корисно, коли об’єктна модель glTF використовує іншу систему одиниць " +"вимірювання або коли дані потрібно якимось чином трансформувати. Якщо " +"[code]null[/code], значення буде скопійовано як є." + +msgid "" +"If set, this [Expression] will be used to convert the property value from the " +"Godot property to the value expected by the glTF object model. This is useful " +"when the glTF object model uses a different unit system, or when the data " +"needs to be transformed in some way. If [code]null[/code], the value will be " +"copied as-is." +msgstr "" +"Якщо встановлено, цей [вираз] використовуватиметься для перетворення значення " +"властивості з властивості Godot у значення, очікуване об’єктною моделлю glTF. " +"Це корисно, коли об’єктна модель glTF використовує іншу систему одиниць " +"вимірювання або коли дані потрібно якимось чином трансформувати. Якщо " +"[code]null[/code], значення буде скопійовано як є." + +msgid "" +"The glTF object model JSON pointers used to identify the property in the glTF " +"object model. In most cases, there will be only one item in this array, but " +"niche cases may require multiple pointers. The items are themselves arrays " +"which represent the JSON pointer split into its components." +msgstr "" +"Об’єктна модель glTF Покажчики JSON, які використовуються для ідентифікації " +"властивості в об’єктній моделі glTF. У більшості випадків у цьому масиві буде " +"лише один елемент, але для нішевих випадків може знадобитися кілька " +"вказівників. Самі елементи є масивами, які представляють покажчик JSON, " +"розділений на його компоненти." + +msgid "" +"An array of [NodePath]s that point to a property, or multiple properties, in " +"the Godot scene tree. On import, this will either be set by [GLTFDocument], " +"or by a [GLTFDocumentExtension] class. For simple cases, use [method " +"append_path_to_property] to add properties to this array.\n" +"In most cases [member node_paths] will only have one item, but in some cases " +"a single glTF JSON pointer will map to multiple Godot properties. For " +"example, a [GLTFCamera] or [GLTFLight] used on multiple glTF nodes will be " +"represented by multiple Godot nodes." +msgstr "" +"Масив [NodePath], який вказує на властивість або кілька властивостей у дереві " +"сцени Годо. Під час імпорту це буде встановлено [GLTFDocument] або класом " +"[GLTFDocumentExtension]. У простих випадках використовуйте [метод " +"append_path_to_property], щоб додати властивості до цього масиву. \n" +"У більшості випадків [member node_paths] матиме лише один елемент, але в " +"деяких випадках один вказівник glTF JSON буде зіставлятися з кількома " +"властивостями Годо. Наприклад, [GLTFCamera] або [GLTFLight], які " +"використовуються на кількох вузлах glTF, будуть представлені кількома вузлами " +"Годо." + +msgid "" +"The type of data stored in the glTF file as defined by the object model. This " +"is a superset of the available accessor types, and determines the accessor " +"type. See [enum GLTFObjectModelType] for possible values." +msgstr "" +"Тип даних, що зберігаються у файлі glTF, як визначено об’єктною моделлю. Це " +"надмножина доступних типів засобів доступу, яка визначає тип засобу доступу. " +"Перегляньте [enum GLTFObjectModelType] для можливих значень." + +msgid "" +"The type of data stored in the Godot property. This is the type of the " +"property that the [member node_paths] point to." +msgstr "" +"Тип даних, що зберігаються у властивості Годо. Це тип властивості, на який " +"вказує [member node_paths]." + +msgid "" +"Unknown or not set object model type. If the object model type is set to this " +"value, the real type still needs to be determined." +msgstr "" +"Невідомий або не встановлений тип моделі об’єкта. Якщо для типу об’єктної " +"моделі встановлено це значення, реальний тип ще потрібно визначити." + +msgid "" +"Object model type \"bool\". Represented in the glTF JSON as a boolean, and " +"encoded in a [GLTFAccessor] as \"SCALAR\". When encoded in an accessor, a " +"value of [code]0[/code] is [code]false[/code], and any other value is " +"[code]true[/code]." +msgstr "" +"Об'єктна модель типу \"bool\". Представлено в glTF JSON як логічне значення " +"та закодовано в [GLTFAccessor] як \"SCALAR\". Коли кодується в аксесорі, " +"значення [code]0[/code] є [code]false[/code], а будь-яке інше значення є " +"[code]true[/code]." + +msgid "" +"Object model type \"float\". Represented in the glTF JSON as a number, and " +"encoded in a [GLTFAccessor] as \"SCALAR\"." +msgstr "" +"Об'єктна модель типу \"float\". Представлено в glTF JSON як число та " +"закодовано в [GLTFAccessor] як \"SCALAR\"." + +msgid "" +"Object model type \"float[lb][rb]\". Represented in the glTF JSON as an array " +"of numbers, and encoded in a [GLTFAccessor] as \"SCALAR\"." +msgstr "" +"Тип об'єктної моделі \"float[lb][rb]\". Представлено в glTF JSON у вигляді " +"масиву чисел і закодовано в [GLTFAccessor] як \"SCALAR\"." + +msgid "" +"Object model type \"float2\". Represented in the glTF JSON as an array of two " +"numbers, and encoded in a [GLTFAccessor] as \"VEC2\"." +msgstr "" +"Об'єктна модель типу \"float2\". Представлено в glTF JSON у вигляді масиву з " +"двох чисел і закодовано в [GLTFAccessor] як \"VEC2\"." + +msgid "" +"Object model type \"float3\". Represented in the glTF JSON as an array of " +"three numbers, and encoded in a [GLTFAccessor] as \"VEC3\"." +msgstr "" +"Об'єктна модель типу \"float3\". Представлено в glTF JSON у вигляді масиву з " +"трьох чисел і закодовано в [GLTFAccessor] як \"VEC3\"." + +msgid "" +"Object model type \"float4\". Represented in the glTF JSON as an array of " +"four numbers, and encoded in a [GLTFAccessor] as \"VEC4\"." +msgstr "" +"Об'єктна модель типу \"float4\". Представлено в glTF JSON у вигляді масиву з " +"чотирьох чисел і закодовано в [GLTFAccessor] як \"VEC4\"." + +msgid "" +"Object model type \"float2x2\". Represented in the glTF JSON as an array of " +"four numbers, and encoded in a [GLTFAccessor] as \"MAT2\"." +msgstr "" +"Об'єктна модель типу \"float2x2\". Представлено в glTF JSON у вигляді масиву " +"з чотирьох чисел і закодовано в [GLTFAccessor] як \"MAT2\"." + +msgid "" +"Object model type \"float3x3\". Represented in the glTF JSON as an array of " +"nine numbers, and encoded in a [GLTFAccessor] as \"MAT3\"." +msgstr "" +"Об'єктна модель типу \"float3x3\". Представлено в glTF JSON у вигляді масиву " +"з дев’яти чисел і закодовано в [GLTFAccessor] як «MAT3»." + +msgid "" +"Object model type \"float4x4\". Represented in the glTF JSON as an array of " +"sixteen numbers, and encoded in a [GLTFAccessor] as \"MAT4\"." +msgstr "" +"Об'єктна модель типу \"float4x4\". Представлено в glTF JSON у вигляді масиву " +"з шістнадцяти чисел і закодовано в [GLTFAccessor] як \"MAT4\"." + +msgid "" +"Object model type \"int\". Represented in the glTF JSON as a number, and " +"encoded in a [GLTFAccessor] as \"SCALAR\". The range of values is limited to " +"signed integers. For [code]KHR_interactivity[/code], only 32-bit integers are " +"supported." +msgstr "" +"Об'єктна модель типу \"int\". Представлено в glTF JSON як число та закодовано " +"в [GLTFAccessor] як \"SCALAR\". Діапазон значень обмежений цілими числами зі " +"знаком. Для [code]KHR_interactivity[/code] підтримуються лише 32-розрядні " +"цілі числа." + +msgid "Represents a glTF physics body." +msgstr "Представляє фізичне тіло glTF." + +msgid "" +"Represents a physics body as an intermediary between the " +"[code]OMI_physics_body[/code] glTF data and Godot's nodes, and it's " +"abstracted in a way that allows adding support for different glTF physics " +"extensions in the future." +msgstr "" +"Представляє фізичне тіло як посередника між даними [code]OMI_physics_body[/" +"code] glTF і вузлами Годо, і його абстраговано таким чином, що дозволяє " +"додавати підтримку для різних розширень фізики glTF у майбутньому." + +msgid "OMI_physics_body glTF extension" +msgstr "Розширення OMI_physics_body glTF" + +msgid "" +"Creates a new GLTFPhysicsBody instance by parsing the given [Dictionary] in " +"the [code]OMI_physics_body[/code] glTF extension format." +msgstr "" +"Створює новий екземпляр GLTFPhysicsBody шляхом аналізу даного [словника] у " +"форматі розширення glTF [code]OMI_physics_body[/code]." + msgid "" "Creates a new GLTFPhysicsBody instance from the given Godot " "[CollisionObject3D] node." @@ -56457,6 +73142,13 @@ msgstr "" "Створення нової GLTFPhysics Приклад тіла з даної Godot [CollisionObject3D] " "вершина." +msgid "" +"Serializes this GLTFPhysicsBody instance into a [Dictionary]. It will be in " +"the format expected by the [code]OMI_physics_body[/code] glTF extension." +msgstr "" +"Серіалізує цей екземпляр GLTFPhysicsBody у [словник]. Він матиме формат, " +"очікуваний розширенням [code]OMI_physics_body[/code] glTF." + msgid "" "Converts this GLTFPhysicsBody instance into a Godot [CollisionObject3D] node." msgstr "" @@ -56539,6 +73231,26 @@ msgstr "" "Маса фізичного тіла, в кілограмах. Це використовується тільки при типі тіла " "\"холодний\" або \"вехікул\"." +msgid "Represents a glTF physics shape." +msgstr "Представляє фізичну форму glTF." + +msgid "" +"Represents a physics shape as defined by the [code]OMI_physics_shape[/code] " +"or [code]OMI_collider[/code] glTF extensions. This class is an intermediary " +"between the glTF data and Godot's nodes, and it's abstracted in a way that " +"allows adding support for different glTF physics extensions in the future." +msgstr "" +"Представляє фізичну форму, як визначено розширеннями glTF " +"[code]OMI_physics_shape[/code] або [code]OMI_collider[/code]. Цей клас є " +"посередником між даними glTF і вузлами Годо, і він абстрагований таким чином, " +"що дозволяє додавати підтримку для різних розширень фізики glTF у майбутньому." + +msgid "OMI_physics_shape glTF extension" +msgstr "Розширення OMI_physics_shape glTF" + +msgid "OMI_collider glTF extension" +msgstr "Розширення OMI_collider glTF" + msgid "" "Creates a new GLTFPhysicsShape instance by parsing the given [Dictionary]." msgstr "" @@ -56602,6 +73314,13 @@ msgstr "" "призначений для використання поряд з тим, коли вирішуючи, де додати створену " "вершину як дитину." +msgid "" +"The index of the shape's mesh in the glTF file. This is only used when the " +"shape type is \"hull\" (convex hull) or \"trimesh\" (concave trimesh)." +msgstr "" +"Індекс сітки фігури у файлі glTF. Це використовується лише тоді, коли тип " +"форми – «корпус» (опукла оболонка) або «трисітка» (увігнута трисітка)." + msgid "" "The radius of the shape, in meters. This is only used when the shape type is " "\"capsule\", \"cylinder\", or \"sphere\". This value should not be negative." @@ -56625,6 +73344,41 @@ msgstr "" "Розмір форми, в метрах. Це тільки використовується при типі форми \"бокс\", і " "являє собою \"діаметр\" коробки. Це значення не повинно бути негативним." +msgid "" +"Returns a [Dictionary] that maps skeleton bone indices to the indices of glTF " +"nodes. This property is unused during import, and only set during export. In " +"a glTF file, a bone is a node, so Godot converts skeleton bones to glTF nodes." +msgstr "" +"Повертає [Словник], який зіставляє індекси кісток скелета з індексами вузлів " +"glTF. Ця властивість не використовується під час імпорту та встановлюється " +"лише під час експорту. У файлі glTF кістка є вузлом, тому Годо перетворює " +"кістки скелета на вузли glTF." + +msgid "" +"Sets a [Dictionary] that maps skeleton bone indices to the indices of glTF " +"nodes. This property is unused during import, and only set during export. In " +"a glTF file, a bone is a node, so Godot converts skeleton bones to glTF nodes." +msgstr "" +"Встановлює [Словник], який зіставляє індекси кісток скелета з індексами " +"вузлів glTF. Ця властивість не використовується під час імпорту та " +"встановлюється лише під час експорту. У файлі glTF кістка є вузлом, тому Годо " +"перетворює кістки скелета на вузли glTF." + +msgid "Archived glTF extension for specular/glossy materials." +msgstr "Архівне розширення glTF для дзеркальних/глянцевих матеріалів." + +msgid "" +"KHR_materials_pbrSpecularGlossiness is an archived glTF extension. This means " +"that it is deprecated and not recommended for new files. However, it is still " +"supported for loading old files." +msgstr "" +"KHR_materials_pbrSpecularGlossiness — це заархівоване розширення glTF. Це " +"означає, що він застарів і не рекомендований для нових файлів. Однак він все " +"ще підтримується для завантаження старих файлів." + +msgid "KHR_materials_pbrSpecularGlossiness glTF extension spec" +msgstr "Специфікація розширення KHR_materials_pbrSpecularGlossiness glTF" + msgid "The reflected diffuse factor of the material." msgstr "Відображений дифузійний фактор матеріалу." @@ -56640,6 +73394,165 @@ msgstr "Характерно-глянцева текстура." msgid "The specular RGB color of the material. The alpha channel is unused." msgstr "Характерний колір RGB матеріалу. Альфа-канал невикористаний." +msgid "Represents all data of a glTF file." +msgstr "Представляє всі дані файлу glTF." + +msgid "" +"Contains all nodes and resources of a glTF file. This is used by " +"[GLTFDocument] as data storage, which allows [GLTFDocument] and all " +"[GLTFDocumentExtension] classes to remain stateless.\n" +"GLTFState can be populated by [GLTFDocument] reading a file or by converting " +"a Godot scene. Then the data can either be used to create a Godot scene or " +"save to a glTF file. The code that converts to/from a Godot scene can be " +"intercepted at arbitrary points by [GLTFDocumentExtension] classes. This " +"allows for custom data to be stored in the glTF file or for custom data to be " +"converted to/from Godot nodes." +msgstr "" +"Містить усі вузли та ресурси файлу glTF. Це використовується [GLTFDocument] " +"як сховище даних, що дозволяє [GLTFDocument] і всім класам " +"[GLTFDocumentExtension] залишатися без стану. \n" +"GLTFState можна заповнити [GLTFDocument], який читає файл, або перетворюючи " +"сцену Годо. Потім дані можна використати для створення сцени Годо або " +"зберегти у файл glTF. Класи [GLTFDocumentExtension] можуть перехоплювати код, " +"який перетворює сцену Годо в/зі сцени Годо, у довільних точках. Це дозволяє " +"зберігати спеціальні дані у файлі glTF або конвертувати спеціальні дані до/з " +"вузлів Годо." + +msgid "glTF asset header schema" +msgstr "схема заголовка ресурсу glTF" + +msgid "" +"Appends an extension to the list of extensions used by this glTF file during " +"serialization. If [param required] is [code]true[/code], the extension will " +"also be added to the list of required extensions. Do not run this in [method " +"GLTFDocumentExtension._export_post], as that stage is too late to add " +"extensions. The final list is sorted alphabetically." +msgstr "" +"Додає розширення до списку розширень, які використовує цей файл glTF під час " +"серіалізації. Якщо [param required] має значення [code]true[/code], " +"розширення також буде додано до списку необхідних розширень. Не запускайте це " +"в [метод GLTFDocumentExtension._export_post], оскільки цей етап надто пізній " +"для додавання розширень. Остаточний список відсортовано за алфавітом." + +msgid "" +"Appends the given byte array data to the buffers and creates a " +"[GLTFBufferView] for it. The index of the destination [GLTFBufferView] is " +"returned. If [param deduplication] is [code]true[/code], the buffers will " +"first be searched for duplicate data, otherwise new bytes will always be " +"appended." +msgstr "" +"Додає вказані дані масиву байтів до буферів і створює для нього " +"[GLTFBufferView]. Повертається індекс призначення [GLTFBufferView]. Якщо " +"[param deduplication] має значення [code]true[/code], буфери спочатку " +"шукатимуть дублікати даних, інакше нові байти завжди додаватимуться." + +msgid "" +"Append the given [GLTFNode] to the state, and return its new index. This can " +"be used to export one Godot node as multiple glTF nodes, or inject new glTF " +"nodes at import time. On import, this must be called before [method " +"GLTFDocumentExtension._generate_scene_node] finishes for the parent node. On " +"export, this must be called before [method GLTFDocumentExtension." +"_export_node] runs for the parent node.\n" +"The [param godot_scene_node] parameter is the Godot scene node that " +"corresponds to this glTF node. This is highly recommended to be set to a " +"valid node, but may be [code]null[/code] if there is no corresponding Godot " +"scene node. One Godot scene node may be used for multiple glTF nodes, so if " +"exporting multiple glTF nodes for one Godot scene node, use the same Godot " +"scene node for each.\n" +"The [param parent_node_index] parameter is the index of the parent [GLTFNode] " +"in the state. If [code]-1[/code], the node will be a root node, otherwise the " +"new node will be added to the parent's list of children. The index will also " +"be written to the [member GLTFNode.parent] property of the new node." +msgstr "" +"Додайте заданий [GLTFNode] до стану та поверніть його новий індекс. Це можна " +"використовувати для експорту одного вузла Годо як кількох вузлів glTF або " +"введення нових вузлів glTF під час імпорту. Під час імпорту це має бути " +"викликано до завершення [метод GLTFDocumentExtension._generate_scene_node] " +"для батьківського вузла. Під час експорту це потрібно викликати перед тим, як " +"[метод GLTFDocumentExtension._export_node] буде запущено для батьківського " +"вузла. \n" +"Параметр [param godot_scene_node] — це вузол сцени Годо, який відповідає " +"цьому вузлу glTF. Настійно рекомендується встановити дійсний вузол, але може " +"мати значення [code]null[/code], якщо немає відповідного вузла сцени Godot. " +"Один вузол сцени Годо можна використовувати для кількох вузлів glTF, тому, " +"якщо експортуєте кілька вузлів glTF для одного вузла сцени Годо, " +"використовуйте той самий вузол сцени Годо для кожного. \n" +"Параметр [param parent_node_index] є індексом батьківського [GLTFNode] у " +"стані. Якщо [code]-1[/code], вузол буде кореневим вузлом, інакше новий вузол " +"буде додано до списку дочірніх вузлів. Індекс також буде записаний у " +"властивість [member GLTFNode.parent] нового вузла." + +msgid "" +"Gets additional arbitrary data in this [GLTFState] instance. This can be used " +"to keep per-file state data in [GLTFDocumentExtension] classes, which is " +"important because they are stateless.\n" +"The argument should be the [GLTFDocumentExtension] name (does not have to " +"match the extension name in the glTF file), and the return value can be " +"anything you set. If nothing was set, the return value is [code]null[/code]." +msgstr "" +"Отримує додаткові довільні дані в цьому екземплярі [GLTFState]. Це можна " +"використовувати для збереження даних про стан кожного файлу в класах " +"[GLTFDocumentExtension], що важливо, оскільки вони не мають стану. \n" +"Аргументом має бути ім’я [GLTFDocumentExtension] (не має збігатися з ім’ям " +"розширення у файлі glTF), а значенням, що повертається, може бути будь-яке, " +"яке ви встановите. Якщо нічого не встановлено, повертається значення " +"[code]null[/code]." + +msgid "" +"Returns the [AnimationPlayer] node with the given index. These nodes are only " +"used during the export process when converting Godot [AnimationPlayer] nodes " +"to glTF animations." +msgstr "" +"Повертає вузол [AnimationPlayer] із заданим індексом. Ці вузли " +"використовуються лише під час процесу експорту під час перетворення вузлів " +"Godot [AnimationPlayer] на анімацію glTF." + +msgid "" +"Returns the number of [AnimationPlayer] nodes in this [GLTFState]. These " +"nodes are only used during the export process when converting Godot " +"[AnimationPlayer] nodes to glTF animations." +msgstr "" +"Повертає кількість вузлів [AnimationPlayer] у цьому [GLTFState]. Ці вузли " +"використовуються лише під час процесу експорту під час перетворення вузлів " +"Godot [AnimationPlayer] на анімацію glTF." + +msgid "" +"Returns an array of all [GLTFAnimation]s in the glTF file. When importing, " +"these will be generated as animations in an [AnimationPlayer] node. When " +"exporting, these will be generated from Godot [AnimationPlayer] nodes." +msgstr "" +"Повертає масив усіх [GLTFAnimation] у файлі glTF. Під час імпортування вони " +"будуть створені як анімації у вузлі [AnimationPlayer]. Під час експорту вони " +"будуть створені з вузлів Godot [AnimationPlayer]." + +msgid "" +"Returns an array of all [GLTFCamera]s in the glTF file. These are the cameras " +"that the [member GLTFNode.camera] index refers to." +msgstr "" +"Повертає масив усіх [GLTFCamera] у файлі glTF. Це камери, на які посилається " +"індекс [член GLTFNode.camera]." + +msgid "" +"Gets the images of the glTF file as an array of [Texture2D]s. These are the " +"images that the [member GLTFTexture.src_image] index refers to." +msgstr "" +"Отримує зображення файлу glTF як масив [Texture2D]. Це зображення, на які " +"посилається індекс [член GLTFTexture.src_image]." + +msgid "" +"Returns an array of all [GLTFLight]s in the glTF file. These are the lights " +"that the [member GLTFNode.light] index refers to." +msgstr "" +"Повертає масив усіх [GLTFLight] у файлі glTF. Це джерела світла, на які " +"посилається індекс [член GLTFNode.light]." + +msgid "" +"Returns an array of all [GLTFMesh]es in the glTF file. These are the meshes " +"that the [member GLTFNode.mesh] index refers to." +msgstr "" +"Повертає масив усіх [GLTFMesh] у файлі glTF. Це сітки, на які посилається " +"індекс [член GLTFNode.mesh]." + msgid "" "Returns the index of the [GLTFNode] corresponding to this Godot scene node. " "This is the inverse of [method get_scene_node]. Useful during the export " @@ -56654,6 +73567,17 @@ msgstr "" "і не кожен [GLTFNode] буде мати сцену, створену. Якщо немає індексу " "[GLTFNode] для цього вузла сцени, [code]-1[/code] повертається." +msgid "" +"Returns an array of all [GLTFNode]s in the glTF file. These are the nodes " +"that [member GLTFNode.children] and [member root_nodes] refer to. This " +"includes nodes that may not be generated in the Godot scene, or nodes that " +"may generate multiple Godot scene nodes." +msgstr "" +"Повертає масив усіх [GLTFNode] у файлі glTF. Це вузли, на які посилаються " +"[member GLTFNode.children] і [member root_nodes]. Це включає вузли, які не " +"можуть бути згенеровані в сцені Годо, або вузли, які можуть генерувати кілька " +"вузлів сцени Годо." + msgid "" "Returns the Godot scene node that corresponds to the same index as the " "[GLTFNode] it was generated from. This is the inverse of [method " @@ -56668,6 +73592,27 @@ msgstr "" "створений вузол сцени буде мати відповідну [GLTFNode]. Якщо відсутня вершина " "сцени для цього [GLTFNode] індекс, [code]null[/code] повертається." +msgid "" +"Returns an array of all [GLTFSkeleton]s in the glTF file. These are the " +"skeletons that the [member GLTFNode.skeleton] index refers to." +msgstr "" +"Повертає масив усіх [GLTFSkeleton] у файлі glTF. Це скелети, на які " +"посилається індекс [член GLTFNode.skeleton]." + +msgid "" +"Returns an array of all [GLTFSkin]s in the glTF file. These are the skins " +"that the [member GLTFNode.skin] index refers to." +msgstr "" +"Повертає масив усіх [GLTFSkin] у файлі glTF. Це скіни, на які посилається " +"індекс [член GLTFNode.skin]." + +msgid "" +"Retrieves the array of texture samplers that are used by the textures " +"contained in the glTF." +msgstr "" +"Отримує масив зразків текстур, які використовуються текстурами, що містяться " +"в glTF." + msgid "" "Returns an array of unique animation names. This is only used during the " "import process." @@ -56681,6 +73626,20 @@ msgstr "" "Повертає масив унікальних назв вузлів. Використовується як в процесі імпорту, " "так і в процесі експорту." +msgid "" +"Sets additional arbitrary data in this [GLTFState] instance. This can be used " +"to keep per-file state data in [GLTFDocumentExtension] classes, which is " +"important because they are stateless.\n" +"The first argument should be the [GLTFDocumentExtension] name (does not have " +"to match the extension name in the glTF file), and the second argument can be " +"anything you want." +msgstr "" +"Встановлює додаткові довільні дані в цьому екземплярі [GLTFState]. Це можна " +"використовувати для збереження даних про стан кожного файлу в класах " +"[GLTFDocumentExtension], що важливо, оскільки вони не мають стану. \n" +"Першим аргументом має бути ім’я [GLTFDocumentExtension] (не має збігатися з " +"ім’ям розширення у файлі glTF), а другий аргумент може бути будь-яким." + msgid "" "Sets the [GLTFAnimation]s in the state. When importing, these will be " "generated as animations in an [AnimationPlayer] node. When exporting, these " @@ -56744,6 +73703,13 @@ msgstr "" "Встановлюємо [GLTFSkin] в державі. Це шкури, які індексом [член GLTFNode." "skin]." +msgid "" +"Sets the array of texture samplers that are used by the textures contained in " +"the glTF." +msgstr "" +"Встановлює масив зразків текстур, які використовуються текстурами, що " +"містяться в glTF." + msgid "" "Sets the unique animation names in the state. This is only used during the " "import process." @@ -56761,12 +73727,70 @@ msgstr "" msgid "The baking fps of the animation for either import or export." msgstr "Випікання псів анімації для імпорту або експорту." +msgid "" +"The folder path associated with this glTF data. This is used to find other " +"files the glTF file references, like images or binary buffers. This will be " +"set during import when appending from a file, and will be set during export " +"when writing to a file." +msgstr "" +"Шлях папки, пов’язаної з даними glTF. Це використовується для пошуку інших " +"файлів, на які посилається файл glTF, наприклад зображень або двійкових " +"буферів. Це буде встановлено під час імпорту під час додавання з файлу та " +"буде встановлено під час експорту під час запису у файл." + +msgid "" +"The copyright string in the asset header of the glTF file. This is set during " +"import if present and export if non-empty. See the glTF asset header " +"documentation for more information." +msgstr "" +"Рядок авторського права в заголовку ресурсу файлу glTF. Цей параметр " +"встановлюється під час імпорту, якщо він присутній, і експорту, якщо він не " +"порожній. Для отримання додаткової інформації див. документацію заголовка " +"ресурсу glTF." + +msgid "" +"The file name associated with this glTF data. If it ends with [code].gltf[/" +"code], this is text-based glTF, otherwise this is binary GLB. This will be " +"set during import when appending from a file, and will be set during export " +"when writing to a file. If writing to a buffer, this will be an empty string." +msgstr "" +"Ім’я файлу, пов’язане з даними glTF. Якщо він закінчується на [code].gltf[/" +"code], це текстовий glTF, інакше це двійковий GLB. Це буде встановлено під " +"час імпорту під час додавання з файлу та буде встановлено під час експорту " +"під час запису у файл. У разі запису в буфер це буде порожній рядок." + msgid "The binary buffer attached to a .glb file." msgstr "Бінарний буфер, прикріплений до файлу .glb." +msgid "" +"If [code]true[/code], forces all GLTFNodes in the document to be bones of a " +"single [Skeleton3D] Godot node." +msgstr "" +"Якщо [code]true[/code], усі вузли GLTF у документі мають бути кістками одного " +"вузла Годо [Skeleton3D]." + msgid "The original raw JSON document corresponding to this GLTFState." msgstr "Оригінальний сирий JSON документ, що відповідає цьому GLTFState." +msgid "" +"The root nodes of the glTF file. Typically, a glTF file will only have one " +"scene, and therefore one root node. However, a glTF file may have multiple " +"scenes and therefore multiple root nodes, which will be generated as siblings " +"of each other and as children of the root node of the generated Godot scene." +msgstr "" +"Кореневі вузли файлу glTF. Як правило, файл glTF матиме лише одну сцену, а " +"отже, один кореневий вузол. Однак файл glTF може мати кілька сцен і, отже, " +"кілька кореневих вузлів, які будуть згенеровані як рідні один одному та як " +"дочірні елементи кореневого вузла згенерованої сцени Годо." + +msgid "" +"The name of the scene. When importing, if not specified, this will be the " +"file name. When exporting, if specified, the scene name will be saved to the " +"glTF file." +msgstr "" +"Назва сцени. Під час імпорту, якщо не вказано, це буде ім’я файлу. Під час " +"експорту, якщо вказано, назву сцени буде збережено у файлі glTF." + msgid "Discards all embedded textures and uses untextured materials." msgstr "" "Відображає всі вбудовані текстури і використовує нетекстуровані матеріали." @@ -56789,6 +73813,9 @@ msgstr "" "Вбудовується текстури, що стискаються без втрат в створену сцену, що " "відповідає старій поведінці." +msgid "GLTFTexture represents a texture in a glTF file." +msgstr "GLTFTexture представляє текстуру у файлі glTF." + msgid "" "ID of the texture sampler to use when sampling the image. If -1, then the " "default texture sampler is used (linear filtering, and repeat wrapping in " @@ -56805,6 +73832,18 @@ msgstr "" "Індекс зображення, пов'язаних з цією текстурою, див. [метод GLTFState." "get_images]. Якщо -1, то ця текстура не має призначеного зображення." +msgid "Represents a glTF texture sampler" +msgstr "Представляє семплер текстур glTF" + +msgid "" +"Represents a texture sampler as defined by the base glTF spec. Texture " +"samplers in glTF specify how to sample data from the texture's base image, " +"when rendering the texture on an object." +msgstr "" +"Представляє вибірку текстур, як визначено базовою специфікацією glTF. " +"Семплери текстури в glTF визначають, як брати дані з базового зображення " +"текстури під час відтворення текстури на об’єкті." + msgid "" "Texture's magnification filter, used when texture appears larger on screen " "than the source image." @@ -56872,6 +73911,42 @@ msgstr "" "Налаштовує властивості цього вузла, щоб відповідати даній [CPUParticles2D] " "вершині." +msgid "" +"Emits a single particle. Whether [param xform], [param velocity], [param " +"color] and [param custom] are applied depends on the value of [param flags]. " +"See [enum EmitFlags].\n" +"The default ParticleProcessMaterial will overwrite [param color] and use the " +"contents of [param custom] as [code](rotation, age, animation, lifetime)[/" +"code].\n" +"[b]Note:[/b] [method emit_particle] is only supported on the Forward+ and " +"Mobile rendering methods, not Compatibility." +msgstr "" +"Випромінює одну частинку. Чи застосовуються [param xform], [param velocity], " +"[param color] і [param custom], залежить від значення [param flags]. Див. " +"[enum EmitFlags]. \n" +"За замовчуванням ParticleProcessMaterial перезапише [param color] і " +"використає вміст [param custom] як [code](rotation, age, animation, lifetime)" +"[/code]. \n" +"[b]Примітка:[/b] [метод emit_particle] підтримується лише методами " +"візуалізації Forward+ і Mobile, а не Compatibility." + +msgid "" +"Restarts the particle emission cycle, clearing existing particles. To avoid " +"particles vanishing from the viewport, wait for the [signal finished] signal " +"before calling.\n" +"[b]Note:[/b] The [signal finished] signal is only emitted by [member " +"one_shot] emitters.\n" +"If [param keep_seed] is [code]true[/code], the current random seed will be " +"preserved. Useful for seeking and playback." +msgstr "" +"Перезапускає цикл викиду частинок, очищаючи існуючі частинки. Щоб уникнути " +"зникнення частинок із вікна перегляду, дочекайтеся сигналу [сигнал завершено] " +"перед викликом. \n" +"[b]Примітка:[/b] Сигнал [сигнал завершено] випромінюють лише випромінювачі " +"[member one_shot]. \n" +"Якщо [param keep_seed] має значення [code]true[/code], поточне випадкове " +"початкове число буде збережено. Корисно для пошуку та відтворення." + msgid "" "The number of particles to emit in one emission cycle. The effective emission " "rate is [code](amount * amount_ratio) / lifetime[/code] particles per second. " @@ -57007,6 +74082,21 @@ msgstr "" "вузла [GPUParticles2D] (і його батьки), коли він переміщається або " "обертається." +msgid "" +"Particle system starts as if it had already run for this many seconds.\n" +"[b]Note:[/b] This can be very expensive if set to a high number as it " +"requires running the particle shader a number of times equal to the [member " +"fixed_fps] (or 30, if [member fixed_fps] is 0) for every second. In extreme " +"cases it can even lead to a GPU crash due to the volume of work done in a " +"single frame." +msgstr "" +"Система частинок запускається так, ніби вона вже працювала стільки секунд. \n" +"[b]Примітка:[/b] Це може бути дуже дорогим, якщо встановлено велике число, " +"оскільки це вимагає запуску шейдера частинок кількість разів, що дорівнює " +"[member fixed_fps] (або 30, якщо [member fixed_fps] дорівнює 0) за кожну " +"секунду. У крайніх випадках це може навіть призвести до збою GPU через обсяг " +"роботи, виконаної в одному кадрі." + msgid "" "[Material] for processing particles. Can be a [ParticleProcessMaterial] or a " "[ShaderMaterial]." @@ -57101,6 +74191,26 @@ msgstr "" "надходить / виводить екран. [Rect2] може бути вирощений за допомогою коду або " "з [b]Пачастини → Генерувати Visibility Rect[/b] редактор інструмент." +msgid "" +"Emitted when all active particles have finished processing. To immediately " +"restart the emission cycle, call [method restart].\n" +"This signal is never emitted when [member one_shot] is disabled, as particles " +"will be emitted and processed continuously.\n" +"[b]Note:[/b] For [member one_shot] emitters, due to the particles being " +"computed on the GPU, there may be a short period after receiving the signal " +"during which setting [member emitting] to [code]true[/code] will not restart " +"the emission cycle. This delay is avoided by instead calling [method restart]." +msgstr "" +"Випромінюється, коли всі активні частинки закінчили обробку. Щоб негайно " +"перезапустити цикл викидів, викличте [method restart]. \n" +"Цей сигнал ніколи не випромінюється, коли [member one_shot] вимкнено, " +"оскільки частинки випромінюються та обробляються постійно. \n" +"[b]Примітка:[/b] Для випромінювачів [member one_shot], через те, що частинки " +"обчислюються графічним процесором, може бути короткий період після отримання " +"сигналу, протягом якого налаштування [member emitting] на [code]true[/code] " +"не перезапустить цикл випромінювання. Цю затримку можна уникнути шляхом " +"виклику [method restart]." + msgid "" "Particles are drawn in reverse order of remaining lifetime. In other words, " "the particle with the lowest lifetime is drawn at the front." @@ -57234,6 +74344,23 @@ msgstr "" "Якщо [code]true[/code], буде введена тільки кількість частинок, що дорівнює " "[пам'ятній кількості]." +msgid "" +"Amount of time to preprocess the particles before animation starts. Lets you " +"start the animation some time after particles have started emitting.\n" +"[b]Note:[/b] This can be very expensive if set to a high number as it " +"requires running the particle shader a number of times equal to the [member " +"fixed_fps] (or 30, if [member fixed_fps] is 0) for every second. In extreme " +"cases it can even lead to a GPU crash due to the volume of work done in a " +"single frame." +msgstr "" +"Час для попередньої обробки частинок перед початком анімації. Дозволяє " +"запускати анімацію через деякий час після початку випромінювання частинок. \n" +"[b]Примітка:[/b] Це може бути дуже дорогим, якщо встановлено велике число, " +"оскільки це вимагає запуску шейдера частинок кількість разів, що дорівнює " +"[member fixed_fps] (або 30, якщо [member fixed_fps] дорівнює 0) за кожну " +"секунду. У крайніх випадках це може навіть призвести до збою GPU через обсяг " +"роботи, виконаної в одному кадрі." + msgid "Emission randomness ratio." msgstr "Співвідношення випадковості випромінювання." @@ -57548,6 +74675,36 @@ msgstr "" "параметра [пам'ятних частинок GPU3D.fixed_fps] до [code]0[/code] або " "значення, яке відповідає або перевищує цільовий каркас." +msgid "" +"The particle rendering layers ([member VisualInstance3D.layers]) that will be " +"affected by the collision shape. By default, all particles that have [member " +"ParticleProcessMaterial.collision_mode] set to [constant " +"ParticleProcessMaterial.COLLISION_RIGID] or [constant ParticleProcessMaterial." +"COLLISION_HIDE_ON_CONTACT] will be affected by a collision shape.\n" +"After configuring particle nodes accordingly, specific layers can be " +"unchecked to prevent certain particles from being affected by colliders. For " +"example, this can be used if you're using a collider as part of a spell " +"effect but don't want the collider to affect unrelated weather particles at " +"the same position.\n" +"Particle collision can also be disabled on a per-process material basis by " +"setting [member ParticleProcessMaterial.collision_mode] on the " +"[GPUParticles3D] node." +msgstr "" +"Шари візуалізації частинок ([член VisualInstance3D.layers]), на які " +"впливатиме форма зіткнення. За замовчуванням на всі частинки, для яких " +"[member ParticleProcessMaterial.collision_mode] встановлено значення " +"[constant ParticleProcessMaterial.COLLISION_RIGID] або [constant " +"ParticleProcessMaterial.COLLISION_HIDE_ON_CONTACT], буде впливати форма " +"зіткнення. \n" +"Після відповідного налаштування вузлів частинок можна зняти прапорці з певних " +"шарів, щоб запобігти впливу коллайдерів на певні частинки. Наприклад, це " +"можна використовувати, якщо ви використовуєте колайдер як частину ефекту " +"заклинання, але не хочете, щоб колайдер впливав на непов’язані частинки " +"погоди в тому самому місці. \n" +"Зіткнення частинок також можна вимкнути на основі матеріалу для кожного " +"процесу, установивши [member ParticleProcessMaterial.collision_mode] у вузлі " +"[GPUParticles3D]." + msgid "" "A box-shaped 3D particle collision shape affecting [GPUParticles3D] nodes." msgstr "" @@ -57625,6 +74782,24 @@ msgstr "" "[b]Примітка.[/b] Зіткнення частинок впливає лише на [GPUParticles3D], а не на " "[CPUParticles3D]." +msgid "" +"Returns [code]true[/code] if the specified layer of the [member " +"heightfield_mask] is enabled, given a [param layer_number] between [code]1[/" +"code] and [code]20[/code], inclusive." +msgstr "" +"Повертає [code]true[/code], якщо вказаний шар [member heightfield_mask] " +"увімкнено, враховуючи [param layer_number] між [code]1[/code] і [code]20[/" +"code] включно." + +msgid "" +"Based on [param value], enables or disables the specified layer in the " +"[member heightfield_mask], given a [param layer_number] between [code]1[/" +"code] and [code]20[/code], inclusive." +msgstr "" +"На основі [param value] вмикає або вимикає вказаний шар у [member " +"heightfield_mask], враховуючи [param layer_number] від [code]1[/code] до " +"[code]20[/code] включно." + msgid "" "If [code]true[/code], the [GPUParticlesCollisionHeightField3D] will follow " "the current camera in global space. The [GPUParticlesCollisionHeightField3D] " @@ -57641,6 +74816,34 @@ msgstr "" "зниження [member resolution], щоб покращити продуктивність, якщо [member " "follow_camera_enabled] має значення [code]true[/code]." +msgid "" +"The visual layers to account for when updating the heightmap. Only " +"[MeshInstance3D]s whose [member VisualInstance3D.layers] match with this " +"[member heightfield_mask] will be included in the heightmap collision update. " +"By default, all 20 user-visible layers are taken into account for updating " +"the heightmap collision.\n" +"[b]Note:[/b] Since the [member heightfield_mask] allows for 32 layers to be " +"stored in total, there are an additional 12 layers that are only used " +"internally by the engine and aren't exposed in the editor. Setting [member " +"heightfield_mask] using a script allows you to toggle those reserved layers, " +"which can be useful for editor plugins.\n" +"To adjust [member heightfield_mask] more easily using a script, use [method " +"get_heightfield_mask_value] and [method set_heightfield_mask_value]." +msgstr "" +"Візуальні шари, які слід враховувати під час оновлення карти висот. Лише " +"[MeshInstance3D], чий [член VisualInstance3D.layers] збігається з цим [членом " +"heightfield_mask], буде включено в оновлення зіткнень карти висот. За " +"замовчуванням усі 20 видимих користувачем шарів враховуються для оновлення " +"колізії карти висот. \n" +"[b]Примітка:[/b] Оскільки [member heightfield_mask] дозволяє зберігати " +"загалом 32 шари, є додаткові 12 шарів, які використовуються лише внутрішньо " +"механізмом і не відображаються в редакторі. Налаштування [member " +"heightfield_mask] за допомогою сценарію дозволяє перемикати ці зарезервовані " +"шари, що може бути корисним для плагінів редактора. \n" +"Щоб легше налаштувати [member heightfield_mask] за допомогою сценарію, " +"використовуйте [method get_heightfield_mask_value] і [method " +"set_heightfield_mask_value]." + msgid "" "Higher resolutions can represent small details more accurately in large " "scenes, at the cost of lower performance. If [member update_mode] is " @@ -58199,6 +75402,79 @@ msgstr "" "Віртуальний метод, який можна змінити, щоб налаштувати спосіб малювання " "з’єднань." +msgid "" +"Returns whether the [param mouse_position] is in the input hot zone.\n" +"By default, a hot zone is a [Rect2] positioned such that its center is at " +"[param in_node].[method GraphNode.get_input_port_position]([param in_port]) " +"(For output's case, call [method GraphNode.get_output_port_position] " +"instead). The hot zone's width is twice the Theme Property " +"[code]port_grab_distance_horizontal[/code], and its height is twice the " +"[code]port_grab_distance_vertical[/code].\n" +"Below is a sample code to help get started:\n" +"[codeblock]\n" +"func _is_in_input_hotzone(in_node, in_port, mouse_position):\n" +" var port_size = " +"Vector2(get_theme_constant(\"port_grab_distance_horizontal\"), " +"get_theme_constant(\"port_grab_distance_vertical\"))\n" +" var port_pos = in_node.get_position() + in_node." +"get_input_port_position(in_port) - port_size / 2\n" +" var rect = Rect2(port_pos, port_size)\n" +"\n" +" return rect.has_point(mouse_position)\n" +"[/codeblock]" +msgstr "" +"Повертає, чи знаходиться [параметр mouse_position] у гарячій зоні введення. \n" +"За замовчуванням гаряча зона — це [Rect2], розташована таким чином, що її " +"центр знаходиться в [param in_node].[method GraphNode.get_input_port_position]" +"([param in_port]) (Для випадку виведення замість цього викличте [method " +"GraphNode.get_output_port_position]). Ширина гарячої зони вдвічі перевищує " +"властивість теми [code]port_grab_distance_horizontal[/code], а її висота " +"вдвічі перевищує [code]port_grab_distance_vertical[/code]. \n" +"Нижче наведено зразок коду, який допоможе почати: \n" +"[codeblock] \n" +"func _is_in_input_hotzone(in_node, in_port, mouse_position): \n" +" var port_size = " +"Vector2(get_theme_constant(\"port_grab_distance_horizontal\"), " +"get_theme_constant(\"port_grab_distance_vertical\")) \n" +" var port_pos = in_node.get_position() + in_node." +"get_input_port_position(in_port) - port_size / 2 \n" +" var rect = Rect2(port_pos, port_size) \n" +"\n" +" return rect.has_point(mouse_position) \n" +"[/codeblock]" + +msgid "" +"Returns whether the [param mouse_position] is in the output hot zone. For " +"more information on hot zones, see [method _is_in_input_hotzone].\n" +"Below is a sample code to help get started:\n" +"[codeblock]\n" +"func _is_in_output_hotzone(in_node, in_port, mouse_position):\n" +" var port_size = " +"Vector2(get_theme_constant(\"port_grab_distance_horizontal\"), " +"get_theme_constant(\"port_grab_distance_vertical\"))\n" +" var port_pos = in_node.get_position() + in_node." +"get_output_port_position(in_port) - port_size / 2\n" +" var rect = Rect2(port_pos, port_size)\n" +"\n" +" return rect.has_point(mouse_position)\n" +"[/codeblock]" +msgstr "" +"Повертає, чи знаходиться [param mouse_position] у гарячій зоні виведення. Для " +"отримання додаткової інформації про гарячі зони див. [method " +"_is_in_input_hotzone]. \n" +"Нижче наведено зразок коду, який допоможе почати: \n" +"[codeblock] \n" +"func _is_in_output_hotzone(in_node, in_port, mouse_position): \n" +" var port_size = " +"Vector2(get_theme_constant(\"port_grab_distance_horizontal\"), " +"get_theme_constant(\"port_grab_distance_vertical\")) \n" +" var port_pos = in_node.get_position() + in_node." +"get_output_port_position(in_port) - port_size / 2 \n" +" var rect = Rect2(port_pos, port_size) \n" +"\n" +" return rect.has_point(mouse_position) \n" +"[/codeblock]" + msgid "" "This virtual method can be used to insert additional error detection while " "the user is dragging a connection over a valid port.\n" @@ -58222,23 +75498,23 @@ msgid "" "[/codeblocks]" msgstr "" "Цей віртуальний метод можна використовувати для введення додаткового " -"виявлення помилок, коли користувач перетягує з’єднання через дійсний порт.\n" +"виявлення помилок, коли користувач перетягує з’єднання через дійсний порт. \n" "Поверніть [code]true[/code], якщо з’єднання справді дійсне, або [code]false[/" "code], якщо з’єднання неможливе. Якщо підключення неможливе, прив’язка до " -"порту і, отже, запит на підключення до цього порту не відбудеться.\n" -"У цьому прикладі з’єднання з тим самим вузлом пригнічено:\n" -"[кодові блоки]\n" -"[gdscript]\n" -"func _is_node_hover_valid(from, from_port, to, to_port):\n" -" повернутися з != до\n" -"[/gdscript]\n" -"[csharp]\n" +"порту і, отже, запит на підключення до цього порту не відбудеться. \n" +"У цьому прикладі з’єднання з тим самим вузлом пригнічено: \n" +"[codeblocks] \n" +"[gdscript] \n" +"func _is_node_hover_valid(from, from_port, to, to_port): \n" +" return from != to \n" +"[/gdscript] \n" +"[csharp] \n" "public override bool _IsNodeHoverValid(StringName fromNode, int fromPort, " -"StringName toNode, int toPort)\n" +"StringName toNode, int toPort) \n" "{\n" -" return fromNode != toNode;\n" +" return fromNode != toNode; \n" "}\n" -"[/csharp]\n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -58287,6 +75563,19 @@ msgstr "Приєднує [param element] [GraphElement] до [param frame] [Grap msgid "Removes all connections between nodes." msgstr "Видаляє всі зв'язки між вузлами." +msgid "" +"Create a connection between the [param from_port] of the [param from_node] " +"[GraphNode] and the [param to_port] of the [param to_node] [GraphNode]. If " +"the connection already exists, no connection is created.\n" +"Connections with [param keep_alive] set to [code]false[/code] may be deleted " +"automatically if invalid during a redraw." +msgstr "" +"Створіть з’єднання між [param from_port] [param from_node] [GraphNode] і " +"[param to_port] [param to_node] [GraphNode]. Якщо підключення вже існує, " +"підключення не створюється. \n" +"З’єднання з [param keep_alive], встановленим на [code]false[/code], можуть " +"автоматично видалятися, якщо під час перемальовування є недійсними." + msgid "" "Detaches the [param element] [GraphElement] from the [GraphFrame] it is " "currently attached to." @@ -58328,6 +75617,54 @@ msgid "" msgstr "" "Повертає масив імен вузлів, які приєднані до [GraphFrame] із заданим іменем." +msgid "" +"Returns the closest connection to the given point in screen space. If no " +"connection is found within [param max_distance] pixels, an empty [Dictionary] " +"is returned.\n" +"A connection is represented as a [Dictionary] in the form of:\n" +"[codeblock]\n" +"{\n" +" from_node: StringName,\n" +" from_port: int,\n" +" to_node: StringName,\n" +" to_port: int,\n" +" keep_alive: bool\n" +"}\n" +"[/codeblock]\n" +"For example, getting a connection at a given mouse position can be achieved " +"like this:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var connection = get_closest_connection_at_point(mouse_event.get_position())\n" +"[/gdscript]\n" +"[/codeblocks]" +msgstr "" +"Повертає найближче з’єднання з заданою точкою простору екрана. Якщо з’єднання " +"не знайдено в межах [param max_distance] пікселів, повертається порожній " +"[Dictionary]. \n" +"З’єднання представлено як [Словник] у формі: \n" +"[codeblock] \n" +"{\n" +" from_node: StringName, \n" +" from_port: int, \n" +" to_node: StringName, \n" +" to_port: int, \n" +" keep_alive: bool \n" +"}\n" +"[/codeblock] \n" +"Наприклад, отримати з’єднання в заданому положенні миші можна таким чином: \n" +"[codeblocks] \n" +"[gdscript] \n" +"var connection = get_closest_connection_at_point(mouse_event." +"get_position()) \n" +"[/gdscript] \n" +"[/codeblocks]" + +msgid "" +"Returns the number of connections from [param from_port] of [param from_node]." +msgstr "" +"Повертає кількість підключень від [param from_port] до [param from_node]." + msgid "" "Returns the points which would make up a connection between [param from_node] " "and [param to_node]." @@ -58335,6 +75672,33 @@ msgstr "" "Повертає точки, які створюють з’єднання між [param from_node] і [param " "to_node]." +msgid "" +"Returns an [Array] containing the list of connections that intersect with the " +"given [Rect2].\n" +"A connection is represented as a [Dictionary] in the form of:\n" +"[codeblock]\n" +"{\n" +" from_node: StringName,\n" +" from_port: int,\n" +" to_node: StringName,\n" +" to_port: int,\n" +" keep_alive: bool\n" +"}\n" +"[/codeblock]" +msgstr "" +"Повертає [Array], що містить список з’єднань, які перетинаються з заданим " +"[Rect2]. \n" +"З’єднання представлено як [Словник] у формі: \n" +"[codeblock] \n" +"{\n" +" from_node: StringName, \n" +" from_port: int, \n" +" to_node: StringName, \n" +" to_port: int, \n" +" keep_alive: bool \n" +"}\n" +"[/codeblock]" + msgid "" "Returns the [GraphFrame] that contains the [GraphElement] with the given name." msgstr "Повертаємо [GraphFrame], що містить [GraphElement] з вказаною назвою." @@ -58437,6 +75801,35 @@ msgstr "Кривизна ліній між вузлами. 0 призводит msgid "The thickness of the lines between the nodes." msgstr "Товщина ліній між вузлами." +msgid "" +"The connections between [GraphNode]s.\n" +"A connection is represented as a [Dictionary] in the form of:\n" +"[codeblock]\n" +"{\n" +" from_node: StringName,\n" +" from_port: int,\n" +" to_node: StringName,\n" +" to_port: int,\n" +" keep_alive: bool\n" +"}\n" +"[/codeblock]\n" +"Connections with [code]keep_alive[/code] set to [code]false[/code] may be " +"deleted automatically if invalid during a redraw." +msgstr "" +"Зв’язки між [GraphNode]. \n" +"З’єднання представлено як [Словник] у формі: \n" +"[codeblock] \n" +"{\n" +" from_node: StringName, \n" +" from_port: int, \n" +" to_node: StringName, \n" +" to_port: int, \n" +" keep_alive: bool \n" +"}\n" +"[/codeblock] \n" +"З’єднання з [code]keep_alive[/code], встановленим на [code]false[/code], " +"можуть автоматично видалятися, якщо під час перемальовування є недійсними." + msgid "The pattern used for drawing the grid." msgstr "Шаблон, який використовується для малювання сітки." @@ -58564,6 +75957,15 @@ msgstr "" "C[/kbd] за замовчуванням). Загалом цей сигнал вказує на те, що вибрані " "елементи [GraphElement] слід скопіювати." +msgid "" +"Emitted when this [GraphEdit] captures a [code]ui_cut[/code] action " +"([kbd]Ctrl + X[/kbd] by default). In general, this signal indicates that the " +"selected [GraphElement]s should be cut." +msgstr "" +"Видається, коли цей [GraphEdit] фіксує дію [code]ui_cut[/code] ([kbd]Ctrl + " +"X[/kbd] за замовчуванням). Загалом, цей сигнал вказує на те, що вибрані " +"елементи [GraphElement] слід вирізати." + msgid "" "Emitted when this [GraphEdit] captures a [code]ui_graph_delete[/code] action " "([kbd]Delete[/kbd] by default).\n" @@ -58701,6 +76103,15 @@ msgstr "Колір заливки прямокутника виділення." msgid "The outline color of the selection rectangle." msgstr "Колір контуру виділеного прямокутника." +msgid "" +"Widen the line of the connection when the mouse is hovering over it by a " +"percentage factor. A value of [code]0[/code] disables the highlight. A value " +"of [code]100[/code] doubles the line width." +msgstr "" +"Розширити лінію з'єднання при наведенні на неї курсора миші на певний " +"відсоток. Значення [code]0[/code] вимикає підсвічування. Значення [code]100[/" +"code] подвоює ширину лінії." + msgid "The horizontal range within which a port can be grabbed (inner side)." msgstr "" "Горизонтальний діапазон, у межах якого можна захопити порт (внутрішня " @@ -59048,6 +76459,13 @@ msgstr "" "використовувати для додавання настроюваних елементів керування до рядка " "заголовка, наприклад кнопок опцій або закриття." +msgid "" +"Returns [code]true[/code] if the background [StyleBox] of the slot with the " +"given [param slot_index] is drawn." +msgstr "" +"Повертає [code]true[/code], якщо намальовано фон [StyleBox] слота з указаним " +"[параметром slot_index]." + msgid "" "Returns [code]true[/code] if left (input) side of the slot with the given " "[param slot_index] is enabled." @@ -59500,6 +76918,61 @@ msgstr "" "set_cell_item] для очищення клітинок (або представляти порожню клітинку в " "[методі get_cell_item])." +msgid "Editor for [GridMap] nodes." +msgstr "Редактор для вузлів [GridMap]." + +msgid "" +"GridMapEditorPlugin provides access to the [GridMap] editor functionality." +msgstr "GridMapEditorPlugin надає доступ до функцій редактора [GridMap]." + +msgid "Deselects any currently selected cells." +msgstr "Скасовує виділення будь-яких поточних вибраних клітинок." + +msgid "Returns the [GridMap] node currently edited by the grid map editor." +msgstr "Повертає вузол [GridMap], редагований редактором карт сітки." + +msgid "Returns an array of [Vector3i]s with the selected cells' coordinates." +msgstr "Повертає масив [Vector3i] з координатами вибраних клітинок." + +msgid "" +"Returns the index of the selected [MeshLibrary] item in the grid map editor's " +"palette or [code]-1[/code] if no item is selected.\n" +"[b]Note:[/b] The indices might not be in the same order as they appear in the " +"editor's interface." +msgstr "" +"Повертає індекс вибраного елемента [MeshLibrary] у палітрі редактора карт " +"сітки або [code]-1[/code], якщо жоден елемент не вибрано. \n" +"[b]Примітка: [/b] Порядок індексів може відрізнятися від того, у якому вони " +"відображаються в інтерфейсі редактора." + +msgid "" +"Returns the cell coordinate bounds of the current selection. Use [method " +"has_selection] to check if there is an active selection." +msgstr "" +"Повертає межі координат комірки поточного виділення. Використовуйте [метод " +"has_selection], щоб перевірити, чи є активний вибір." + +msgid "Returns [code]true[/code] if there are selected cells." +msgstr "Повертає [code]true[/code], якщо є вибрані клітинки." + +msgid "" +"Selects the [MeshLibrary] item with the given index in the grid map editor's " +"palette. If a negative index is given, no item will be selected. If a value " +"greater than the last index is given, the last item will be selected.\n" +"[b]Note:[/b] The indices might not be in the same order as they appear in the " +"editor's interface." +msgstr "" +"Вибирає елемент [MeshLibrary] із заданим індексом у палітрі редактора карт " +"сітки. Якщо вказано від’ємний індекс, жоден елемент не буде вибрано. Якщо " +"вказано значення, що перевищує останній індекс, буде вибрано останній " +"елемент. \n" +"[b]Примітка: [/b] Порядок індексів може відрізнятися від того, у якому вони " +"відображаються в інтерфейсі редактора." + +msgid "" +"Selects the cells inside the given bounds from [param begin] to [param end]." +msgstr "Вибирає комірки в заданих межах від [param begin] до [param end]." + msgid "" "A physics joint that restricts the movement of two 2D physics bodies to a " "fixed axis." @@ -59600,19 +77073,19 @@ msgstr "" "доведеться завантажувати їх усі в пам’ять), мережевих потоків і потоків даних " "загалом (тому вам не доведеться зберігати буфери).\n" "Перелік [enum HashType] показує підтримувані алгоритми хешування.\n" -"[кодові блоки]\n" +"[codeblocks]\n" "[gdscript]\n" "const CHUNK_SIZE = 1024\n" "\n" -"func hash_file(шлях):\n" +"func hash_file(path):\n" " # Перевірити наявність файлу.\n" -" якщо не FileAccess.file_exists(шлях):\n" -" повернення\n" +" if not FileAccess.file_exists(path):\n" +" return \n" " # Запустіть контекст SHA-256.\n" " var ctx = HashingContext.new()\n" " ctx.start(HashingContext.HASH_SHA256)\n" " # Відкрийте файл для хешування.\n" -" var file = FileAccess.open(шлях, FileAccess.READ)\n" +" var file = FileAccess.open(path, FileAccess.READ)\n" " # Оновлюйте контекст після читання кожного фрагмента.\n" " while file.get_position() < file.get_length():\n" " var remaining = file.get_length() - file.get_position()\n" @@ -59625,23 +77098,22 @@ msgstr "" "[csharp]\n" "public const int ChunkSize = 1024;\n" "\n" -"public void HashFile (рядковий шлях)\n" +"public void HashFile (string path)\n" "{\n" " // Перевірка існування файлу.\n" -" якщо (!FileAccess.FileExists(шлях))\n" +" if (!FileAccess.FileExists(path))\n" " {\n" -" повернення;\n" +" return;\n" " }\n" " // Запуск контексту SHA-256.\n" " var ctx = new HashingContext();\n" " ctx.Start(HashingContext.HashType.Sha256);\n" " // Відкрити файл для хешування.\n" -" за допомогою var file = FileAccess.Open(path, FileAccess.ModeFlags." -"Read);\n" +" using var file = FileAccess.Open(path, FileAccess.ModeFlags.Read);\n" " // Оновлення контексту після читання кожного шматка.\n" " while (file.GetPosition() < file.GetLength())\n" " {\n" -" int залишок = (int)(file.GetLength() - file.GetPosition());\n" +" int remainder = (int)(file.GetLength() - file.GetPosition());\n" " ctx.Update(file.GetBuffer(Mathf.Min(remaining, ChunkSize)));\n" " }\n" " // Отримати обчислений хеш.\n" @@ -59690,6 +77162,51 @@ msgid "A 3D height map shape used for physics collision." msgstr "" "Тривимірна форма карти висоти, яка використовується для фізичного зіткнення." +msgid "" +"A 3D heightmap shape, intended for use in physics. Usually used to provide a " +"shape for a [CollisionShape3D]. This is useful for terrain, but it is limited " +"as overhangs (such as caves) cannot be stored. Holes in a [HeightMapShape3D] " +"are created by assigning very low values to points in the desired area.\n" +"[b]Performance:[/b] [HeightMapShape3D] is faster to check collisions against " +"than [ConcavePolygonShape3D], but it is significantly slower than primitive " +"shapes like [BoxShape3D].\n" +"A heightmap collision shape can also be build by using an [Image] reference:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var heightmap_texture = ResourceLoader.load(\"res://heightmap_image.exr\")\n" +"var heightmap_image = heightmap_texture.get_image()\n" +"heightmap_image.convert(Image.FORMAT_RF)\n" +"\n" +"var height_min = 0.0\n" +"var height_max = 10.0\n" +"\n" +"update_map_data_from_image(heightmap_image, height_min, height_max)\n" +"[/gdscript]\n" +"[/codeblocks]" +msgstr "" +"Тривимірна форма карти висот, призначена для використання у фізиці. Зазвичай " +"використовується для надання форми для [CollisionShape3D]. Це корисно для " +"рельєфу, але обмежено, оскільки виступи (наприклад, печери) не можна " +"зберігати. Отвори в [HeightMapShape3D] створюються шляхом призначення дуже " +"низьких значень точкам у потрібній області. \n" +"[b]Продуктивність:[/b] [HeightMapShape3D] швидше перевіряє зіткнення, ніж " +"[ConcavePolygonShape3D], але значно повільніше, ніж такі примітивні форми, як " +"[BoxShape3D]. \n" +"Форму зіткнення карти висот також можна створити за допомогою посилання " +"[Зображення]: \n" +"[codeblocks] \n" +"[gdscript] \n" +"var heightmap_texture = ResourceLoader.load(\"res://heightmap_image.exr\") \n" +"var heightmap_image = heightmap_texture.get_image() \n" +"heightmap_image.convert(Image.FORMAT_RF) \n" +"\n" +"var height_min = 0,0 \n" +"var height_max = 10,0 \n" +"\n" +"update_map_data_from_image(heightmap_image, height_min, height_max) \n" +"[/gdscript] \n" +"[/codeblocks]" + msgid "" "Returns the largest height value found in [member map_data]. Recalculates " "only when [member map_data] changes." @@ -59900,50 +77417,50 @@ msgid "" msgstr "" "Клас HMACContext корисний для розширених випадків використання HMAC, таких як " "потокове передавання повідомлення, оскільки він підтримує створення " -"повідомлення з часом, а не надає все відразу.\n" -"[кодові блоки]\n" -"[gdscript]\n" -"розширює вузол\n" -"var ctx = HMACContext.new()\n" +"повідомлення з часом, а не надає все відразу. \n" +"[codeblocks] \n" +"[gdscript] \n" +"extends Node \n" +"var ctx = HMACContext.new() \n" "\n" -"func _ready():\n" -" var key = \"supersecret\".to_utf8_buffer()\n" -" var err = ctx.start(HashingContext.HASH_SHA256, ключ)\n" -" assert(err == OK)\n" -" var msg1 = \"це \".to_utf8_buffer()\n" -" var msg2 = \"супер-дупер секрет\".to_utf8_buffer()\n" -" err = ctx.update(msg1)\n" -" assert(err == OK)\n" -" err = ctx.update(msg2)\n" -" assert(err == OK)\n" -" var hmac = ctx.finish()\n" -" print(hmac.hex_encode())\n" +"func _ready(): \n" +" var key = \"supersecret\".to_utf8_buffer() \n" +" var err = ctx.start(HashingContext.HASH_SHA256, ключ) \n" +" assert(err == OK) \n" +" var msg1 = \"це \".to_utf8_buffer() \n" +" var msg2 = \"super-duper secret\".to_utf8_buffer() \n" +" err = ctx.update(msg1) \n" +" assert(err == OK) \n" +" err = ctx.update(msg2) \n" +" assert(err == OK) \n" +" var hmac = ctx.finish() \n" +" print(hmac.hex_encode()) \n" "\n" -"[/gdscript]\n" -"[csharp]\n" -"за допомогою Годо;\n" -"за допомогою System.Diagnostics;\n" +"[/gdscript] \n" +"[csharp] \n" +"using Godot; \n" +"using System.Diagnostics; \n" "\n" -"публічний частковий клас MyNode : Node\n" +"public partial class MyNode : Node \n" "{\n" -" приватний HmacContext _ctx = новий HmacContext();\n" +" private HmacContext _ctx = new HmacContext(); \n" "\n" -" public override void _Ready()\n" -" {\n" -" byte[] key = \"supersecret\".ToUtf8Buffer();\n" -" Помилка err = _ctx.Start(HashingContext.HashType.Sha256, ключ);\n" -" Debug.Assert(err == Error.Ok);\n" -" byte[] msg1 = \"це \".ToUtf8Buffer();\n" -" byte[] msg2 = \"супер-пупер секрет\".ToUtf8Buffer();\n" -" err = _ctx.Update(msg1);\n" -" Debug.Assert(err == Error.Ok);\n" -" err = _ctx.Update(msg2);\n" -" Debug.Assert(err == Error.Ok);\n" -" byte[] hmac = _ctx.Finish();\n" -" GD.Print(hmac.HexEncode());\n" -" }\n" +" public override void _Ready() \n" +" { \n" +" byte[] key = \"supersecret\".ToUtf8Buffer(); \n" +" Error err = _ctx.Start(HashingContext.HashType.Sha256, key); \n" +" Debug.Assert(err == Error.Ok); \n" +" byte[] msg1 = \"this is \".ToUtf8Buffer(); \n" +" byte[] msg2 = \"super duper secret\".ToUtf8Buffer(); \n" +" err = _ctx.Update(msg1); \n" +" Debug.Assert(err == Error.Ok); \n" +" err = _ctx.Update(msg2); \n" +" Debug.Assert(err == Error.Ok); \n" +" byte[] hmac = _ctx.Finish(); \n" +" GD.Print(hmac.HexEncode()); \n" +" } \n" "}\n" -"[/csharp]\n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -60024,6 +77541,90 @@ msgstr "" msgid "Low-level hyper-text transfer protocol client." msgstr "Клієнт протоколу передачі гіпертексту низького рівня." +msgid "" +"Hyper-text transfer protocol client (sometimes called \"User Agent\"). Used " +"to make HTTP requests to download web content, upload files and other data or " +"to communicate with various services, among other use cases.\n" +"See the [HTTPRequest] node for a higher-level alternative.\n" +"[b]Note:[/b] This client only needs to connect to a host once (see [method " +"connect_to_host]) to send multiple requests. Because of this, methods that " +"take URLs usually take just the part after the host instead of the full URL, " +"as the client is already connected to a host. See [method request] for a full " +"example and to get started.\n" +"A [HTTPClient] should be reused between multiple requests or to connect to " +"different hosts instead of creating one client per request. Supports " +"Transport Layer Security (TLS), including server certificate verification. " +"HTTP status codes in the 2xx range indicate success, 3xx redirection (i.e. " +"\"try again, but over here\"), 4xx something was wrong with the request, and " +"5xx something went wrong on the server's side.\n" +"For more information on HTTP, see [url=https://developer.mozilla.org/en-US/" +"docs/Web/HTTP]MDN's documentation on HTTP[/url] (or read [url=https://tools." +"ietf.org/html/rfc2616]RFC 2616[/url] to get it straight from the source).\n" +"[b]Note:[/b] When exporting to Android, make sure to enable the " +"[code]INTERNET[/code] permission in the Android export preset before " +"exporting the project or using one-click deploy. Otherwise, network " +"communication of any kind will be blocked by Android.\n" +"[b]Note:[/b] It's recommended to use transport encryption (TLS) and to avoid " +"sending sensitive information (such as login credentials) in HTTP GET URL " +"parameters. Consider using HTTP POST requests or HTTP headers for such " +"information instead.\n" +"[b]Note:[/b] When performing HTTP requests from a project exported to Web, " +"keep in mind the remote server may not allow requests from foreign origins " +"due to [url=https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS]CORS[/" +"url]. If you host the server in question, you should modify its backend to " +"allow requests from foreign origins by adding the [code]Access-Control-Allow-" +"Origin: *[/code] HTTP header.\n" +"[b]Note:[/b] TLS support is currently limited to TLSv1.2 and TLSv1.3. " +"Attempting to connect to a server that only supports older (insecure) TLS " +"versions will return an error.\n" +"[b]Warning:[/b] TLS certificate revocation and certificate pinning are " +"currently not supported. Revoked certificates are accepted as long as they " +"are otherwise valid. If this is a concern, you may want to use automatically " +"managed certificates with a short validity period." +msgstr "" +"Клієнт протоколу передачі гіпертексту (іноді його називають «Агентом " +"користувача»). Використовується для надсилання запитів HTTP на завантаження " +"веб-вмісту, завантаження файлів та інших даних або для зв’язку з різними " +"службами, серед іншого. \n" +"Перегляньте вузол [HTTPRequest] для альтернативи вищого рівня. \n" +"[b]Примітка.[/b] Цьому клієнту потрібно лише один раз підключитися до хосту " +"(див. [метод connect_to_host]), щоб надіслати кілька запитів. Через це " +"методи, які приймають URL-адреси, зазвичай беруть лише частину після хосту " +"замість повної URL-адреси, оскільки клієнт уже підключений до хосту. " +"Перегляньте [method request] для повного прикладу та для початку. \n" +"[HTTPClient] слід повторно використовувати між кількома запитами або для " +"підключення до різних хостів замість створення одного клієнта для кожного " +"запиту. Підтримує транспортний рівень безпеки (TLS), включаючи перевірку " +"сертифіката сервера. Коди статусу HTTP в діапазоні 2xx вказують на успіх, 3xx " +"переспрямування (тобто «спробуйте ще раз, але тут»), 4xx щось не так із " +"запитом, а 5xx щось пішло не так на стороні сервера. \n" +"Щоб дізнатися більше про HTTP, перегляньте [url=https://developer.mozilla.org/" +"en-US/docs/Web/HTTP]документацію MDN щодо HTTP[/url] (або прочитайте " +"[url=https://tools.ietf.org/html/rfc2616]RFC 2616[/url], щоб отримати це " +"прямо з джерела). \n" +"[b]Примітка.[/b] Під час експорту в Android переконайтеся, що ви ввімкнули " +"дозвіл [code]INTERNET[/code] у попередньому налаштуванні експорту Android " +"перед експортом проекту або використанням розгортання одним клацанням миші. " +"Інакше будь-який мережевий зв’язок буде заблокований Android. \n" +"[b]Примітка.[/b] Рекомендується використовувати транспортне шифрування (TLS) " +"і уникати надсилання конфіденційної інформації (наприклад, облікових даних " +"для входу) у параметрах URL-адреси HTTP GET. Замість цього розгляньте " +"можливість використання запитів HTTP POST або заголовків HTTP для такої " +"інформації. \n" +"[b]Примітка:[/b] Виконуючи HTTP-запити з проекту, експортованого в Інтернет, " +"майте на увазі, що віддалений сервер може не дозволяти запити з іноземних " +"джерел через [url=https://developer.mozilla.org/en-US/docs/Web/HTTP/" +"CORS]CORS[/url]. Якщо ви розміщуєте відповідний сервер, вам слід змінити його " +"серверну частину, щоб дозволити запити з іноземних джерел, додавши HTTP-" +"заголовок [code]Access-Control-Allow-Origin: *[/code]. \n" +"[b]Примітка.[/b] Підтримка TLS наразі обмежена TLSv1.2 і TLSv1.3. Спроба " +"підключитися до сервера, який підтримує лише старі (незахищені) версії TLS, " +"поверне помилку. \n" +"[b]Попередження:[/b] Відкликання сертифіката TLS і закріплення сертифіката " +"наразі не підтримуються. Відкликані сертифікати приймаються доти, доки вони є " +"дійсними. Якщо це викликає занепокоєння, ви можете використовувати " +"автоматично керовані сертифікати з коротким терміном дії." + msgid "HTTP client class" msgstr "Клас клієнта HTTP" @@ -60071,6 +77672,27 @@ msgstr "Повертає код статусу HTTP відповіді." msgid "Returns the response headers." msgstr "Повертає заголовки відповідей." +msgid "" +"Returns all response headers as a [Dictionary]. Each entry is composed by the " +"header name, and a [String] containing the values separated by [code]\"; \"[/" +"code]. The casing is kept the same as the headers were received.\n" +"[codeblock]\n" +"{\n" +" \"content-length\": 12,\n" +" \"Content-Type\": \"application/json; charset=UTF-8\",\n" +"}\n" +"[/codeblock]" +msgstr "" +"Повертає всі заголовки відповідей як [Словник]. Кожен запис складається з " +"імені заголовка та [String], що містить значення, розділені [code]\"; \"[/" +"code]. Оболочка зберігається такою ж, як були отримані заголовки. \n" +"[codeblock] \n" +"{\n" +" \"content-length\": 12, \n" +" \"Content-Type\": \"application/json; charset=UTF-8\", \n" +"}\n" +"[/codeblock]" + msgid "" "Returns a [enum Status] constant. Need to call [method poll] in order to get " "status updates." @@ -60131,49 +77753,119 @@ msgid "" "[/codeblocks]" msgstr "" "Створює рядок запиту в стилі GET/POST application/x-www-form-urlencoded із " -"наданого словника, наприклад:\n" -"[кодові блоки]\n" -"[gdscript]\n" -"var fields = {\"username\": \"user\", \"password\": \"pass\"}\n" -"var query_string = http_client.query_string_from_dict(поля)\n" -"# Повертає \"username=user&password=pass\"\n" -"[/gdscript]\n" -"[csharp]\n" -"var fields = new Godot.Collections.Dictionary { { \"ім'я користувача\", " -"\"користувач\" }, { \"пароль\", \"перепустка\" } };\n" -"рядок queryString = httpClient.QueryStringFromDict(поля);\n" -"// Повертає \"username=user&password=pass\"\n" -"[/csharp]\n" -"[/codeblocks]\n" +"наданого словника, наприклад: \n" +"[codeblocks] \n" +"[gdscript] \n" +"var fields = {\"username\": \"user\", \"password\": \"pass\"} \n" +"var query_string = http_client.query_string_from_dict(fields) \n" +"# Повертає \"username=user&password=pass\" \n" +"[/gdscript] \n" +"[csharp] \n" +"var fields = new Godot.Collections.Dictionary { { \"username\", \"user\" }, " +"{ \"password\", \"pass\" } }; \n" +"рядок queryString = httpClient.QueryStringFromDict(fields); \n" +"// Повертає \"username=user&password=pass\" \n" +"[/csharp] \n" +"[/codeblocks] \n" "Крім того, якщо ключ має значення [code]null[/code], додається лише сам ключ " "без знака рівності та значення. Якщо значення є масивом, для кожного значення " -"в ньому додається пара з однаковим ключем.\n" -"[кодові блоки]\n" -"[gdscript]\n" +"в ньому додається пара з однаковим ключем. \n" +"[codeblocks] \n" +"[gdscript] \n" "var fields = {\"single\": 123, \"not_valued\": null, \"multiple\": [22, 33, " -"44]}\n" -"var query_string = http_client.query_string_from_dict(поля)\n" -"# Повертає \"single=123¬_valued&multiple=22&multiple=33&multiple=44\"\n" -"[/gdscript]\n" -"[csharp]\n" -"var fields = new Godot.Collections.Dictionary\n" +"44]} \n" +"var query_string = http_client.query_string_from_dict(fields) \n" +"# Повертає \"single=123¬_valued&multiple=22&multiple=33&multiple=44\" \n" +"[/gdscript] \n" +"[csharp] \n" +"var fields = new Godot.Collections.Dictionary \n" "{\n" -" { \"один\", 123 },\n" -" { \"notValued\", за умовчанням },\n" -" { \"кілька\", новий Godot.Collections.Array { 22, 33, 44 } },\n" +" { \"single\", 123 }, \n" +" { \"notValued\", default }, \n" +" { \"multiple\", new Godot.Collections.Array { 22, 33, 44 } }, \n" "};\n" -"рядок queryString = httpClient.QueryStringFromDict(поля);\n" -"// Повертає \"single=123¬_valued&multiple=22&multiple=33&multiple=44\"\n" -"[/csharp]\n" +"рядок queryString = httpClient.QueryStringFromDict(fields); \n" +"// Повертає \"single=123¬_valued&multiple=22&multiple=33&multiple=44\" \n" +"[/csharp] \n" "[/codeblocks]" msgid "Reads one chunk from the response." msgstr "Читає один фрагмент із відповіді." +msgid "" +"Sends a request to the connected host.\n" +"The URL parameter is usually just the part after the host, so for " +"[code]https://example.com/index.php[/code], it is [code]/index.php[/code]. " +"When sending requests to an HTTP proxy server, it should be an absolute URL. " +"For [constant HTTPClient.METHOD_OPTIONS] requests, [code]*[/code] is also " +"allowed. For [constant HTTPClient.METHOD_CONNECT] requests, it should be the " +"authority component ([code]host:port[/code]).\n" +"Headers are HTTP request headers. For available HTTP methods, see [enum " +"Method].\n" +"To create a POST request with query strings to push to the server, do:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var fields = {\"username\" : \"user\", \"password\" : \"pass\"}\n" +"var query_string = http_client.query_string_from_dict(fields)\n" +"var headers = [\"Content-Type: application/x-www-form-urlencoded\", \"Content-" +"Length: \" + str(query_string.length())]\n" +"var result = http_client.request(http_client.METHOD_POST, \"/index.php\", " +"headers, query_string)\n" +"[/gdscript]\n" +"[csharp]\n" +"var fields = new Godot.Collections.Dictionary { { \"username\", \"user\" }, " +"{ \"password\", \"pass\" } };\n" +"string queryString = new HttpClient().QueryStringFromDict(fields);\n" +"string[] headers = [\"Content-Type: application/x-www-form-urlencoded\", $" +"\"Content-Length: {queryString.Length}\"];\n" +"var result = new HttpClient().Request(HttpClient.Method.Post, \"index.php\", " +"headers, queryString);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] The [param body] parameter is ignored if [param method] is " +"[constant HTTPClient.METHOD_GET]. This is because GET methods can't contain " +"request data. As a workaround, you can pass request data as a query string in " +"the URL. See [method String.uri_encode] for an example." +msgstr "" +"Надсилає запит підключеному хосту. \n" +"Параметр URL-адреси зазвичай є частиною після хосту, тому для [code]https://" +"example.com/index.php[/code] це [code]/index.php[/code]. Під час надсилання " +"запитів до проксі-сервера HTTP це має бути абсолютна URL-адреса. Для запитів " +"[constant HTTPClient.METHOD_OPTIONS] також дозволено [code]*[/code]. Для " +"запитів [constant HTTPClient.METHOD_CONNECT] це має бути компонент " +"повноважень ([code]host:port[/code]). \n" +"Заголовки – це заголовки запитів HTTP. Доступні методи HTTP див. [метод " +"enum]. \n" +"Щоб створити запит POST із рядками запиту для надсилання на сервер, " +"виконайте: \n" +"[codeblocks] \n" +"[gdscript] \n" +"var fields = {\"username\" : \"user\", \"password\" : \"pass\"} \n" +"var query_string = http_client.query_string_from_dict(поля) \n" +"var headers = [\"Content-Type: application/x-www-form-urlencoded\", \"Content-" +"Length: \" + str(query_string.length())] \n" +"var result = http_client.request(http_client.METHOD_POST, \"/index.php\", " +"headers, query_string) \n" +"[/gdscript] \n" +"[csharp] \n" +"var fields = new Godot.Collections.Dictionary { { \"username\", \"user\" }, " +"{ \"password\", \"pass\" } }; \n" +"String queryString = new HttpClient().QueryStringFromDict(поля); \n" +"string[] headers = [\"Content-Type: application/x-www-form-urlencoded\", $" +"\"Content-Length: {queryString.Length}\"]; \n" +"var result = new HttpClient().Request(HttpClient.Method.Post, \"index.php\", " +"headers, queryString); \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка: [/b] Параметр [param body] ігнорується, якщо [param method] має " +"значення [constant HTTPClient.METHOD_GET]. Це тому, що методи GET не можуть " +"містити дані запиту. Як обхідний шлях можна передати дані запиту як рядок " +"запиту в URL-адресі. Для прикладу див. [метод String.uri_encode]." + msgid "" "Sends a raw request to the connected host.\n" "The URL parameter is usually just the part after the host, so for " -"[code]https://somehost.com/index.php[/code], it is [code]/index.php[/code]. " +"[code]https://example.com/index.php[/code], it is [code]/index.php[/code]. " "When sending requests to an HTTP proxy server, it should be an absolute URL. " "For [constant HTTPClient.METHOD_OPTIONS] requests, [code]*[/code] is also " "allowed. For [constant HTTPClient.METHOD_CONNECT] requests, it should be the " @@ -60182,15 +77874,15 @@ msgid "" "Method].\n" "Sends the body data raw, as a byte array and does not encode it in any way." msgstr "" -"Надсилає необроблений запит підключеному хосту.\n" +"Надсилає необроблений запит підключеному хосту. \n" "Параметр URL-адреси зазвичай є частиною після хосту, тому для [code]https://" -"somehost.com/index.php[/code] це [code]/index.php[/code]. Під час надсилання " +"example.com/index.php[/code] це [code]/index.php[/code]. Під час надсилання " "запитів до проксі-сервера HTTP це має бути абсолютна URL-адреса. Для запитів " "[constant HTTPClient.METHOD_OPTIONS] також дозволено [code]*[/code]. Для " "запитів [constant HTTPClient.METHOD_CONNECT] це має бути компонент " -"повноважень ([code]host:port[/code]).\n" +"повноважень ([code]host:port[/code]). \n" "Заголовки – це заголовки запитів HTTP. Доступні методи HTTP див. [метод " -"enum].\n" +"enum]. \n" "Надсилає необроблені дані тіла у вигляді масиву байтів і жодним чином не " "кодує їх." @@ -60359,6 +78051,28 @@ msgstr "" "Код статусу HTTP [code]102 Processing[/code] (WebDAV). Вказує на те, що " "сервер отримав і обробляє запит, але відповіді ще немає." +msgid "" +"HTTP status code [code]200 OK[/code]. The request has succeeded. Default " +"response for successful requests. Meaning varies depending on the request:\n" +"- [constant METHOD_GET]: The resource has been fetched and is transmitted in " +"the message body.\n" +"- [constant METHOD_HEAD]: The entity headers are in the message body.\n" +"- [constant METHOD_POST]: The resource describing the result of the action is " +"transmitted in the message body.\n" +"- [constant METHOD_TRACE]: The message body contains the request message as " +"received by the server." +msgstr "" +"Код статусу HTTP [code]200 OK[/code]. Запит виконано. Відповідь за умовчанням " +"для успішних запитів. Значення залежить від запиту: \n" +"- [константа METHOD_GET]: ресурс було отримано та передано в тілі " +"повідомлення. \n" +"- [константа METHOD_HEAD]: заголовки об’єктів знаходяться в тілі " +"повідомлення. \n" +"- [константа METHOD_POST]: ресурс, що описує результат дії, передається в " +"тілі повідомлення. \n" +"- [константа METHOD_TRACE]: тіло повідомлення містить повідомлення запиту, " +"отримане сервером." + msgid "" "HTTP status code [code]201 Created[/code]. The request has succeeded and a " "new resource has been created as a result of it. This is typically the " @@ -60897,6 +78611,346 @@ msgstr "" msgid "A node with the ability to send HTTP(S) requests." msgstr "Вузол із можливістю надсилання запитів HTTP(S)." +msgid "" +"A node with the ability to send HTTP requests. Uses [HTTPClient] internally.\n" +"Can be used to make HTTP requests, i.e. download or upload files or web " +"content via HTTP.\n" +"[b]Warning:[/b] See the notes and warnings on [HTTPClient] for limitations, " +"especially regarding TLS security.\n" +"[b]Note:[/b] When exporting to Android, make sure to enable the " +"[code]INTERNET[/code] permission in the Android export preset before " +"exporting the project or using one-click deploy. Otherwise, network " +"communication of any kind will be blocked by Android.\n" +"[b]Example:[/b] Contact a REST API and print one of its returned fields:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _ready():\n" +" # Create an HTTP request node and connect its completion signal.\n" +" var http_request = HTTPRequest.new()\n" +" add_child(http_request)\n" +" http_request.request_completed.connect(self._http_request_completed)\n" +"\n" +" # Perform a GET request. The URL below returns JSON as of writing.\n" +" var error = http_request.request(\"https://httpbin.org/get\")\n" +" if error != OK:\n" +" push_error(\"An error occurred in the HTTP request.\")\n" +"\n" +" # Perform a POST request. The URL below returns JSON as of writing.\n" +" # Note: Don't make simultaneous requests using a single HTTPRequest " +"node.\n" +" # The snippet below is provided for reference only.\n" +" var body = JSON.new().stringify({\"name\": \"Godette\"})\n" +" error = http_request.request(\"https://httpbin.org/post\", [], HTTPClient." +"METHOD_POST, body)\n" +" if error != OK:\n" +" push_error(\"An error occurred in the HTTP request.\")\n" +"\n" +"# Called when the HTTP request is completed.\n" +"func _http_request_completed(result, response_code, headers, body):\n" +" var json = JSON.new()\n" +" json.parse(body.get_string_from_utf8())\n" +" var response = json.get_data()\n" +"\n" +" # Will print the user agent string used by the HTTPRequest node (as " +"recognized by httpbin.org).\n" +" print(response.headers[\"User-Agent\"])\n" +"[/gdscript]\n" +"[csharp]\n" +"public override void _Ready()\n" +"{\n" +" // Create an HTTP request node and connect its completion signal.\n" +" var httpRequest = new HttpRequest();\n" +" AddChild(httpRequest);\n" +" httpRequest.RequestCompleted += HttpRequestCompleted;\n" +"\n" +" // Perform a GET request. The URL below returns JSON as of writing.\n" +" Error error = httpRequest.Request(\"https://httpbin.org/get\");\n" +" if (error != Error.Ok)\n" +" {\n" +" GD.PushError(\"An error occurred in the HTTP request.\");\n" +" }\n" +"\n" +" // Perform a POST request. The URL below returns JSON as of writing.\n" +" // Note: Don't make simultaneous requests using a single HTTPRequest " +"node.\n" +" // The snippet below is provided for reference only.\n" +" string body = new Json().Stringify(new Godot.Collections.Dictionary\n" +" {\n" +" { \"name\", \"Godette\" }\n" +" });\n" +" error = httpRequest.Request(\"https://httpbin.org/post\", null, " +"HttpClient.Method.Post, body);\n" +" if (error != Error.Ok)\n" +" {\n" +" GD.PushError(\"An error occurred in the HTTP request.\");\n" +" }\n" +"}\n" +"\n" +"// Called when the HTTP request is completed.\n" +"private void HttpRequestCompleted(long result, long responseCode, string[] " +"headers, byte[] body)\n" +"{\n" +" var json = new Json();\n" +" json.Parse(body.GetStringFromUtf8());\n" +" var response = json.GetData().AsGodotDictionary();\n" +"\n" +" // Will print the user agent string used by the HTTPRequest node (as " +"recognized by httpbin.org).\n" +" GD.Print((response[\"headers\"].AsGodotDictionary())[\"User-Agent\"]);\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Example:[/b] Load an image using [HTTPRequest] and display it:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _ready():\n" +" # Create an HTTP request node and connect its completion signal.\n" +" var http_request = HTTPRequest.new()\n" +" add_child(http_request)\n" +" http_request.request_completed.connect(self._http_request_completed)\n" +"\n" +" # Perform the HTTP request. The URL below returns a PNG image as of " +"writing.\n" +" var error = http_request.request(\"https://placehold.co/512\")\n" +" if error != OK:\n" +" push_error(\"An error occurred in the HTTP request.\")\n" +"\n" +"# Called when the HTTP request is completed.\n" +"func _http_request_completed(result, response_code, headers, body):\n" +" if result != HTTPRequest.RESULT_SUCCESS:\n" +" push_error(\"Image couldn't be downloaded. Try a different image.\")\n" +"\n" +" var image = Image.new()\n" +" var error = image.load_png_from_buffer(body)\n" +" if error != OK:\n" +" push_error(\"Couldn't load the image.\")\n" +"\n" +" var texture = ImageTexture.create_from_image(image)\n" +"\n" +" # Display the image in a TextureRect node.\n" +" var texture_rect = TextureRect.new()\n" +" add_child(texture_rect)\n" +" texture_rect.texture = texture\n" +"[/gdscript]\n" +"[csharp]\n" +"public override void _Ready()\n" +"{\n" +" // Create an HTTP request node and connect its completion signal.\n" +" var httpRequest = new HttpRequest();\n" +" AddChild(httpRequest);\n" +" httpRequest.RequestCompleted += HttpRequestCompleted;\n" +"\n" +" // Perform the HTTP request. The URL below returns a PNG image as of " +"writing.\n" +" Error error = httpRequest.Request(\"https://placehold.co/512\");\n" +" if (error != Error.Ok)\n" +" {\n" +" GD.PushError(\"An error occurred in the HTTP request.\");\n" +" }\n" +"}\n" +"\n" +"// Called when the HTTP request is completed.\n" +"private void HttpRequestCompleted(long result, long responseCode, string[] " +"headers, byte[] body)\n" +"{\n" +" if (result != (long)HttpRequest.Result.Success)\n" +" {\n" +" GD.PushError(\"Image couldn't be downloaded. Try a different image." +"\");\n" +" }\n" +" var image = new Image();\n" +" Error error = image.LoadPngFromBuffer(body);\n" +" if (error != Error.Ok)\n" +" {\n" +" GD.PushError(\"Couldn't load the image.\");\n" +" }\n" +"\n" +" var texture = ImageTexture.CreateFromImage(image);\n" +"\n" +" // Display the image in a TextureRect node.\n" +" var textureRect = new TextureRect();\n" +" AddChild(textureRect);\n" +" textureRect.Texture = texture;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] [HTTPRequest] nodes will automatically handle decompression of " +"response bodies. A [code]Accept-Encoding[/code] header will be automatically " +"added to each of your requests, unless one is already specified. Any response " +"with a [code]Content-Encoding: gzip[/code] header will automatically be " +"decompressed and delivered to you as uncompressed bytes." +msgstr "" +"Вузол із можливістю надсилання HTTP-запитів. Внутрішньо використовує " +"[HTTPClient].\n" +"Може використовуватися для надсилання HTTP-запитів, тобто завантаження або " +"завантаження файлів або веб-вмісту через HTTP.\n" +"[b]Попередження:[/b] див. примітки та попередження на [HTTPClient] щодо " +"обмежень, особливо щодо безпеки TLS.\n" +"[b]Примітка.[/b] Під час експорту в Android переконайтеся, що ви ввімкнули " +"дозвіл [code]INTERNET[/code] у попередньому налаштуванні експорту Android " +"перед експортом проекту або використанням розгортання одним клацанням миші. " +"Інакше будь-який мережевий зв’язок буде заблоковано Android.\n" +"[b]Приклад:[/b] Зв’яжіться з REST API та надрукуйте одне з полів, що " +"повертаються:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _ready():\n" +" # Створіть вузол запиту HTTP та підключіть його сигнал завершення.\n" +" var http_request = HTTPRequest.new()\n" +" add_child(http_request)\n" +" http_request.request_completed.connect(self._http_request_completed)\n" +"\n" +" # Виконайте запит GET. URL-адреса нижче повертає JSON на момент написання.\n" +" var error = http_request.request(\"https://httpbin.org/get\")\n" +" if error != OK:\n" +" push_error(\"У HTTP-запиті сталася помилка.\")\n" +"\n" +" # Виконайте запит POST. URL-адреса нижче повертає JSON на момент написання.\n" +" # Примітка: не робіть одночасних запитів, використовуючи один вузол " +"HTTPRequest.\n" +" # Наведений нижче фрагмент надається лише для довідки.\n" +" var body = JSON.new().stringify({\"name\": \"Godette\"})\n" +" error = http_request.request(\"https://httpbin.org/post\", [], HTTPClient." +"METHOD_POST, body)\n" +" if error != OK:\n" +" push_error(\"У HTTP-запиті сталася помилка.\")\n" +"\n" +"# Викликається після завершення запиту HTTP.\n" +"func _http_request_completed(result, response_code, headers, body):\n" +" var json = JSON.new()\n" +" json.parse(body.get_string_from_utf8())\n" +" var response = json.get_data()\n" +"\n" +" # Буде надруковано рядок агента користувача, який використовується вузлом " +"HTTPRequest (як розпізнає httpbin.org).\n" +" print(response.headers[\"User-Agent\"])\n" +"[/gdscript]\n" +"[csharp]\n" +"public override void _Ready()\n" +"{\n" +" // Створення вузла запиту HTTP та підключення його сигналу завершення.\n" +" var httpRequest = new HttpRequest();\n" +" AddChild(httpRequest);\n" +" httpRequest.RequestCompleted += HttpRequestCompleted;\n" +"\n" +" // Виконати запит GET. URL-адреса нижче повертає JSON на момент написання.\n" +" Error error = httpRequest.Request(\"https://httpbin.org/get\");\n" +" if (error != error. Ok)\n" +" {\n" +" GD.PushError(\"У HTTP-запиті сталася помилка.\");\n" +" }\n" +"\n" +" // Виконання запиту POST. URL-адреса нижче повертає JSON на момент " +"написання.\n" +" // Примітка: не робіть одночасних запитів за допомогою одного вузла " +"HTTPRequest.\n" +" // Наведений нижче фрагмент надається лише для довідки.\n" +" string body = new Json().Stringify(new Godot.Collections.Dictionary\n" +" {\n" +" {\"name\", \"Godette\" }\n" +" });\n" +" error = httpRequest.Request(\"https://httpbin.org/post\", null, HttpClient." +"Method.Post, body);\n" +" if(error != Error. Ok)\n" +" {\n" +" GD.PushError(\"У HTTP-запиті сталася помилка.\");\n" +" }\n" +"}\n" +"\n" +"// Викликається після завершення HTTP-запиту.\n" +"private void HttpRequestCompleted(long result, long responseCode, string[] " +"headers, byte[] body)\n" +"{\n" +" var json = new Json();\n" +" json.Parse(body.GetStringFromUtf8());\n" +" var response = json.GetData().AsGodotDictionary();\n" +"\n" +" // Надрукує рядок агента користувача, який використовується вузлом " +"HTTPRequest (як розпізнає httpbin.org).\n" +" GD.Print((response[\"headers\"].AsGodotDictionary())[\"User agent\"]);\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Приклад:[/b] Завантажте зображення за допомогою [HTTPRequest] і " +"відобразіть його:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _ready():\n" +" # Створіть вузол запиту HTTP та підключіть його сигнал завершення.\n" +" var http_request = HTTPRequest.new()\n" +" add_child(http_request)\n" +" http_request.request_completed.connect(self._http_request_completed)\n" +"\n" +" # Виконайте HTTP-запит. URL-адреса нижче повертає зображення PNG на момент " +"написання.\n" +" var error = http_request.request(\"https://placehold.co/512\")\n" +" if error != OK:\n" +" push_error(\"У HTTP-запиті сталася помилка.\")\n" +"\n" +"# Викликається після завершення запиту HTTP.\n" +"func _http_request_completed(result, response_code, headers, body):\n" +" if result != HTTPRequest.RESULT_SUCCESS:\n" +" push_error(«Не вдалося завантажити зображення. Спробуйте інше зображення.»)\n" +"\n" +" var image = Image.new()\n" +" var error = image.load_png_from_buffer(body)\n" +" if error != OK:\n" +" push_error(\"Не вдалося завантажити зображення.\")\n" +"\n" +" var texture = ImageTexture.create_from_image(image)\n" +"\n" +" # Відображення зображення у вузлі TextureRect.\n" +" var texture_rect = TextureRect.new()\n" +" add_child(texture_rect)\n" +" texture_rect.texture = texture\n" +"[/gdscript]\n" +"[csharp]\n" +"public override void _Ready()\n" +"{\n" +" // Створення вузла запиту HTTP та підключення його сигналу завершення.\n" +" var httpRequest = new HttpRequest();\n" +" AddChild(httpRequest);\n" +" httpRequest.RequestCompleted += HttpRequestCompleted;\n" +"\n" +" // Виконання HTTP-запиту. URL-адреса нижче повертає зображення PNG на момент " +"написання.\n" +" Error error = httpRequest.Request(\"https://placehold.co/512\");\n" +" if (error != Error. Ok)\n" +" {\n" +" GD.PushError(\"У HTTP-запиті сталася помилка.\");\n" +" }\n" +"} \n" +"// Викликається після завершення HTTP-запиту.\n" +"private void HttpRequestCompleted(long result, long responseCode, string[] " +"headers, byte[] body)\n" +"{\n" +" if ( result != (long)HttpRequest.Result.Success)\n" +" {\n" +" GD.PushError(\"Не вдалося завантажити зображення. Спробуйте інше зображення." +"\");\n" +" }\n" +" var image = new Image();\n" +" Error error = image.LoadPngFromBuffer(body);\n" +" if (error != Error. Ok)\n" +" {\n" +" GD.PushError(\"Не вдалося завантажити зображення.\");\n" +" }\n" +"\n" +" var texture = ImageTexture.CreateFromImage(image);\n" +"\n" +" // Показ зображення у вузлі TextureRect.\n" +" var textureRect = new TextureRect();\n" +" AddChild(textureRect);\n" +" textureRect.Texture = texture;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Примітка:[/b] вузли [HTTPRequest] автоматично оброблятимуть розпакування " +"тіл відповідей. Заголовок [code]Accept-Encoding[/code] буде автоматично " +"додано до кожного вашого запиту, якщо його ще не вказано. Будь-яку відповідь " +"із заголовком [code]Content-Encoding: gzip[/code] буде автоматично " +"розпаковано та доставлено вам у вигляді нестиснутих байтів." + msgid "Making HTTP requests" msgstr "Виконання HTTP-запитів" @@ -61079,6 +79133,15 @@ msgstr "При заповненні запиту." msgid "Request successful." msgstr "Запитати успішним." +msgid "" +"Request failed due to a mismatch between the expected and actual chunked body " +"size during transfer. Possible causes include network errors, server " +"misconfiguration, or issues with chunked encoding." +msgstr "" +"Помилка запиту через невідповідність між очікуваним і фактичним розміром " +"частини тіла під час передачі. Серед можливих причин – помилки мережі, " +"неправильна конфігурація сервера або проблеми з фрагментованим кодуванням." + msgid "Request failed while connecting." msgstr "Запит не вдалося при підключенні." @@ -61098,6 +79161,15 @@ msgid "Request exceeded its maximum size limit, see [member body_size_limit]." msgstr "" "Запит перевищив максимальний ліміт розмірів, див. [член body_size_limit]." +msgid "" +"Request failed due to an error while decompressing the response body. " +"Possible causes include unsupported or incorrect compression format, " +"corrupted data, or incomplete transfer." +msgstr "" +"Запит не виконано через помилку під час розпакування тіла відповіді. Можливі " +"причини включають непідтримуваний або неправильний формат стиснення, " +"пошкоджені дані або неповне передавання." + msgid "Request failed (currently unused)." msgstr "Запит не вдалося (надалі невикористано)." @@ -61189,6 +79261,23 @@ msgstr "" "але вони можуть мати різні формати. [param src_rect] з непозитивним розміром " "обробляється як порожній." +msgid "" +"Copies [param src_rect] from [param src] image to this image at coordinates " +"[param dst], clipped accordingly to both image bounds. This image and [param " +"src] image [b]must[/b] have the same format. [param src_rect] with non-" +"positive size is treated as empty.\n" +"[b]Note:[/b] The alpha channel data in [param src] will overwrite the " +"corresponding data in this image at the target position. To blend alpha " +"channels, use [method blend_rect] instead." +msgstr "" +"Копіює [param src_rect] із зображення [param src] у це зображення за " +"координатами [param dst], обрізаючи відповідно до обох меж зображення. Це " +"зображення та зображення [param src] [b]повинні[/b] мати однаковий формат. " +"[параметр src_rect] із неподатним розміром розглядається як порожній. \n" +"[b]Примітка:[/b] Дані альфа-каналу в [param src] перезапишуть відповідні дані " +"на цьому зображенні в цільовій позиції. Для змішування альфа-каналів замість " +"цього використовуйте [метод blend_rect]." + msgid "" "Blits [param src_rect] area from [param src] image to this image at the " "coordinates given by [param dst], clipped accordingly to both image bounds. " @@ -61455,6 +79544,15 @@ msgstr "" "0. Повертає [code]false[/code], якщо будь-який піксель має значення альфа " "вище 0." +msgid "" +"Converts the entire image from the linear colorspace to the sRGB colorspace. " +"Only works on images with [constant FORMAT_RGB8] or [constant FORMAT_RGBA8] " +"formats." +msgstr "" +"Перетворює все зображення з лінійного простору кольорів у простір кольорів " +"sRGB. Працює лише на зображеннях із форматами [постійний FORMAT_RGB8] або " +"[постійний FORMAT_RGBA8]." + msgid "" "Loads an image from file [param path]. See [url=$DOCS_URL/tutorials/" "assets_pipeline/importing_images.html#supported-image-formats]Supported image " @@ -61703,6 +79801,41 @@ msgstr "Заощаджує зображення як файл PNG у файл [ msgid "Saves the image as a PNG file to a byte array." msgstr "Заощаджує зображення як файл PNG на байтовий масив." +msgid "" +"Saves the image as a WebP (Web Picture) file to the file at [param path]. By " +"default it will save lossless. If [param lossy] is [code]true[/code], the " +"image will be saved lossy, using the [param quality] setting between " +"[code]0.0[/code] and [code]1.0[/code] (inclusive). Lossless WebP offers more " +"efficient compression than PNG.\n" +"[b]Note:[/b] The WebP format is limited to a size of 16383×16383 pixels, " +"while PNG can save larger images." +msgstr "" +"Зберігає зображення як файл WebP (Web Picture) у файл за адресою [param " +"path]. За замовчуванням він збереже без втрат. Якщо [param lossy] має " +"значення [code]true[/code], зображення буде збережено з втратами, " +"використовуючи налаштування [param quality] від [code]0.0[/code] до " +"[code]1.0[/code] (включно). WebP без втрат забезпечує більш ефективне " +"стиснення, ніж PNG. \n" +"[b]Примітка: [/b] Формат WebP обмежений розміром 16383×16383 пікселів, у той " +"час як у PNG можна зберігати більші зображення." + +msgid "" +"Saves the image as a WebP (Web Picture) file to a byte array. By default it " +"will save lossless. If [param lossy] is [code]true[/code], the image will be " +"saved lossy, using the [param quality] setting between [code]0.0[/code] and " +"[code]1.0[/code] (inclusive). Lossless WebP offers more efficient compression " +"than PNG.\n" +"[b]Note:[/b] The WebP format is limited to a size of 16383×16383 pixels, " +"while PNG can save larger images." +msgstr "" +"Зберігає зображення як файл WebP (Web Picture) у байтовому масиві. За " +"замовчуванням він збереже без втрат. Якщо [param lossy] має значення " +"[code]true[/code], зображення буде збережено з втратами, використовуючи " +"налаштування [param quality] від [code]0.0[/code] до [code]1.0[/code] " +"(включно). WebP без втрат забезпечує більш ефективне стиснення, ніж PNG. \n" +"[b]Примітка: [/b] Формат WebP обмежений розміром 16383×16383 пікселів, у той " +"час як у PNG можна зберігати більші зображення." + msgid "" "Overwrites data of an existing [Image]. Non-static equivalent of [method " "create_from_data]." @@ -61710,6 +79843,91 @@ msgstr "" "Перезаписи даних існуючого [Image]. Нестатичний еквівалент [метод " "створення_від_data]." +msgid "" +"Sets the [Color] of the pixel at [code](x, y)[/code] to [param color].\n" +"[codeblocks]\n" +"[gdscript]\n" +"var img_width = 10\n" +"var img_height = 5\n" +"var img = Image.create(img_width, img_height, false, Image.FORMAT_RGBA8)\n" +"\n" +"img.set_pixel(1, 2, Color.RED) # Sets the color at (1, 2) to red.\n" +"[/gdscript]\n" +"[csharp]\n" +"int imgWidth = 10;\n" +"int imgHeight = 5;\n" +"var img = Image.Create(imgWidth, imgHeight, false, Image.Format.Rgba8);\n" +"\n" +"img.SetPixel(1, 2, Colors.Red); // Sets the color at (1, 2) to red.\n" +"[/csharp]\n" +"[/codeblocks]\n" +"This is the same as [method set_pixelv], but with a two integer arguments " +"instead of a [Vector2i] argument." +msgstr "" +"Встановлює [Color] пікселя в [code](x, y)[/code] на [param color]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"змінна img_width = 10 \n" +"змінна img_height = 5 \n" +"var img = Image.create(img_width, img_height, false, Image.FORMAT_RGBA8) \n" +"\n" +"img.set_pixel(1, 2, Color.RED) # Встановлює колір (1, 2) на червоний. \n" +"[/gdscript] \n" +"[csharp] \n" +"int imgWidth = 10; \n" +"int imgHeight = 5; \n" +"var img = Image.Create(imgWidth, imgHeight, false, Image.Format.Rgba8); \n" +"\n" +"img.SetPixel(1, 2, Colors.Red); // Встановлює колір (1, 2) на червоний. \n" +"[/csharp] \n" +"[/codeblocks] \n" +"Це те саме, що [method set_pixelv], але з двома цілими аргументами замість " +"аргументу [Vector2i]." + +msgid "" +"Sets the [Color] of the pixel at [param point] to [param color].\n" +"[codeblocks]\n" +"[gdscript]\n" +"var img_width = 10\n" +"var img_height = 5\n" +"var img = Image.create(img_width, img_height, false, Image.FORMAT_RGBA8)\n" +"\n" +"img.set_pixelv(Vector2i(1, 2), Color.RED) # Sets the color at (1, 2) to red.\n" +"[/gdscript]\n" +"[csharp]\n" +"int imgWidth = 10;\n" +"int imgHeight = 5;\n" +"var img = Image.Create(imgWidth, imgHeight, false, Image.Format.Rgba8);\n" +"\n" +"img.SetPixelv(new Vector2I(1, 2), Colors.Red); // Sets the color at (1, 2) to " +"red.\n" +"[/csharp]\n" +"[/codeblocks]\n" +"This is the same as [method set_pixel], but with a [Vector2i] argument " +"instead of two integer arguments." +msgstr "" +"Встановлює [Color] пікселя в [param point] на [param color]. \n" +"[codeblock] \n" +"[gdscript] \n" +"змінна img_width = 10 \n" +"змінна img_height = 5 \n" +"var img = Image.create(img_width, img_height, false, Image.FORMAT_RGBA8) \n" +"\n" +"img.set_pixelv(Vector2i(1, 2), Color.RED) # Встановлює колір (1, 2) на " +"червоний. \n" +"[/gdscript] \n" +"[csharp] \n" +"int imgWidth = 10; \n" +"int imgHeight = 5; \n" +"var img = Image.Create(imgWidth, imgHeight, false, Image.Format.Rgba8); \n" +"\n" +"img.SetPixelv(новий Vector2I(1, 2), Colors.Red); // Встановлює колір (1, 2) " +"на червоний. \n" +"[/csharp] \n" +"[/codeblocks] \n" +"Це те саме, що [method set_pixel], але з аргументом [Vector2i] замість двох " +"цілих аргументів." + msgid "" "Shrinks the image by a factor of 2 on each axis (this divides the pixel count " "by 4)." @@ -61717,6 +79935,14 @@ msgstr "" "Подрібнює зображення фактором 2 на кожну вісь (це розділяє кількість пікселів " "на 4)." +msgid "" +"Converts the raw data from the sRGB colorspace to a linear scale. Only works " +"on images with [constant FORMAT_RGB8] or [constant FORMAT_RGBA8] formats." +msgstr "" +"Перетворює необроблені дані з колірного простору sRGB на лінійний масштаб. " +"Працює лише на зображеннях із форматами [постійний FORMAT_RGB8] або " +"[постійний FORMAT_RGBA8]." + msgid "" "Holds all the image's color data in a given format. See [enum Format] " "constants." @@ -62302,6 +80528,81 @@ msgstr "Видалити цей формат навантажувача з дв msgid "A [Texture2D] based on an [Image]." msgstr "[Texture2D] на основі [Image]." +msgid "" +"A [Texture2D] based on an [Image]. For an image to be displayed, an " +"[ImageTexture] has to be created from it using the [method create_from_image] " +"method:\n" +"[codeblock]\n" +"var image = Image.load_from_file(\"res://icon.svg\")\n" +"var texture = ImageTexture.create_from_image(image)\n" +"$Sprite2D.texture = texture\n" +"[/codeblock]\n" +"This way, textures can be created at run-time by loading images both from " +"within the editor and externally.\n" +"[b]Warning:[/b] Prefer to load imported textures with [method @GDScript.load] " +"over loading them from within the filesystem dynamically with [method Image." +"load], as it may not work in exported projects:\n" +"[codeblock]\n" +"var texture = load(\"res://icon.svg\")\n" +"$Sprite2D.texture = texture\n" +"[/codeblock]\n" +"This is because images have to be imported as a [CompressedTexture2D] first " +"to be loaded with [method @GDScript.load]. If you'd still like to load an " +"image file just like any other [Resource], import it as an [Image] resource " +"instead, and then load it normally using the [method @GDScript.load] method.\n" +"[b]Note:[/b] The image can be retrieved from an imported texture using the " +"[method Texture2D.get_image] method, which returns a copy of the image:\n" +"[codeblock]\n" +"var texture = load(\"res://icon.svg\")\n" +"var image = texture.get_image()\n" +"[/codeblock]\n" +"An [ImageTexture] is not meant to be operated from within the editor " +"interface directly, and is mostly useful for rendering images on screen " +"dynamically via code. If you need to generate images procedurally from within " +"the editor, consider saving and importing images as custom texture resources " +"implementing a new [EditorImportPlugin].\n" +"[b]Note:[/b] The maximum texture size is 16384×16384 pixels due to graphics " +"hardware limitations." +msgstr "" +"[Texture2D] на основі [Image]. Щоб зображення було відображено, з нього " +"потрібно створити [ImageTexture] за допомогою методу [method " +"create_from_image]: \n" +"[codeblock]\n" +"Image.load_from_file(\"res://icon.svg\") \n" +"var texture = ImageTexture.create_from_image(image) \n" +"$Sprite2D.texture = текстура \n" +"[/codeblock] \n" +"Таким чином текстури можна створювати під час виконання, завантажуючи " +"зображення як із редактора, так і ззовні. \n" +"[b]Попередження:[/b] краще завантажувати імпортовані текстури за допомогою " +"[методу @GDScript.load], а не динамічно завантажувати їх із файлової системи " +"за допомогою [методу Image.load], оскільки це може не працювати в " +"експортованих проектах: \n" +"[codeblock] \n" +"var texture = load(\"res://icon.svg\") \n" +"$Sprite2D.texture = текстура \n" +"[/codeblock] \n" +"Це пояснюється тим, що зображення потрібно імпортувати як " +"[CompressedTexture2D], щоб завантажити їх за допомогою [методу @GDScript." +"load]. Якщо ви все одно хочете завантажити файл зображення, як і будь-який " +"інший [ресурс], імпортуйте його як ресурс [зображення], а потім завантажте " +"його звичайним способом за допомогою методу [method @GDScript.load]. \n" +"[b]Примітка.[/b] Зображення можна отримати з імпортованої текстури за " +"допомогою методу [method Texture2D.get_image], який повертає копію " +"зображення: \n" +"[codeblock] \n" +"var texture = load(\"res://icon.svg\") \n" +"var image = texture.get_image() \n" +"[/codeblock] \n" +"[ImageTexture] не призначений для безпосереднього керування з інтерфейсу " +"редактора, і він здебільшого корисний для динамічного відтворення зображень " +"на екрані за допомогою коду. Якщо вам потрібно процедурно генерувати " +"зображення з редактора, розгляньте можливість збереження та імпорту зображень " +"як користувальницьких текстурних ресурсів за допомогою нового " +"[EditorImportPlugin]. \n" +"[b]Примітка. [/b] Максимальний розмір текстури становить 16384 × 16384 " +"пікселів через обмеження графічного обладнання." + msgid "" "Creates a new [ImageTexture] and initializes it by allocating and setting the " "data from an [Image]." @@ -62409,13 +80710,92 @@ msgid "" "create] for the expected data format. The first image decides the width, " "height, image format and mipmapping setting. The other images [i]must[/i] " "have the same width, height, image format and mipmapping setting.\n" -"Each [Image] represents one [code]layer[/code]." +"Each [Image] represents one [code]layer[/code].\n" +"[codeblock]\n" +"# Fill in an array of Images with different colors.\n" +"var images = []\n" +"const LAYERS = 6\n" +"for i in LAYERS:\n" +" var image = Image.create_empty(128, 128, false, Image.FORMAT_RGB8)\n" +" if i % 3 == 0:\n" +" image.fill(Color.RED)\n" +" elif i % 3 == 1:\n" +" image.fill(Color.GREEN)\n" +" else:\n" +" image.fill(Color.BLUE)\n" +" images.push_back(image)\n" +"\n" +"# Create and save a 2D texture array. The array of images must have at least " +"1 Image.\n" +"var texture_2d_array = Texture2DArray.new()\n" +"texture_2d_array.create_from_images(images)\n" +"ResourceSaver.save(texture_2d_array, \"res://texture_2d_array.res\", " +"ResourceSaver.FLAG_COMPRESS)\n" +"\n" +"# Create and save a cubemap. The array of images must have exactly 6 Images.\n" +"# The cubemap's images are specified in this order: X+, X-, Y+, Y-, Z+, Z-\n" +"# (in Godot's coordinate system, so Y+ is \"up\" and Z- is \"forward\").\n" +"var cubemap = Cubemap.new()\n" +"cubemap.create_from_images(images)\n" +"ResourceSaver.save(cubemap, \"res://cubemap.res\", ResourceSaver." +"FLAG_COMPRESS)\n" +"\n" +"# Create and save a cubemap array. The array of images must have a multiple " +"of 6 Images.\n" +"# Each cubemap's images are specified in this order: X+, X-, Y+, Y-, Z+, Z-\n" +"# (in Godot's coordinate system, so Y+ is \"up\" and Z- is \"forward\").\n" +"var cubemap_array = CubemapArray.new()\n" +"cubemap_array.create_from_images(images)\n" +"ResourceSaver.save(cubemap_array, \"res://cubemap_array.res\", ResourceSaver." +"FLAG_COMPRESS)\n" +"[/codeblock]" msgstr "" -"Створює [ImageTextureLayered] з масиву [Image]. Див. [method Image.create] " -"для очікуваного формату даних. Перший образ вирішує ширину, висоту, формат " -"зображення та налаштування зображення. Інші зображення [i]must[/i] мають " -"однакову ширину, висоту, формат зображення і налаштування зображення.\n" -"[code]layer[/code]." +"Створює [ImageTextureLayered] із масиву [Image]. Очікуваний формат даних див. " +"у [method Image.create]. Перше зображення визначає ширину, висоту, формат " +"зображення та параметр відображення mip. Інші зображення [i]повинні[/i] мати " +"однакову ширину, висоту, формат зображення та параметри відображення mip. \n" +"Кожне [Зображення] представляє один [код]шар[/код]. \n" +"[codeblock] \n" +"# Заповніть масив зображень різними кольорами. \n" +"var image= [] \n" +"const LAYERS = 6 \n" +"for I in LAYERS: \n" +" var image = Image.create_empty(128, 128, false, Image.FORMAT_RGB8) \n" +" if i % 3 == 0: \n" +" image.fill(Color.RED) \n" +" elif i % 3 == 1: \n" +" image.fill(Color.GREEN) \n" +" else: \n" +" image.fill(Color.BLUE) \n" +" images.push_back(image) \n" +"\n" +"# Створіть і збережіть 2D масив текстур. Масив зображень має містити " +"принаймні 1 зображення. \n" +"var texture_2d_array = Texture2DArray.new() \n" +"texture_2d_array.create_from_images(image) \n" +"ResourceSaver.save(texture_2d_array, \"res://texture_2d_array.res\", " +"ResourceSaver.FLAG_COMPRESS) \n" +"\n" +"# Створіть і збережіть кубічну карту. Масив зображень повинен містити рівно 6 " +"зображень. \n" +"# Зображення кубічної карти вказуються в такому порядку: X+, X-, Y+, Y-, Z+, " +"Z- \n" +"# (у системі координат Годо, тому Y+ означає «вгору», а Z- — «вперед»). \n" +"var cubemap = Cubemap.new() \n" +"cubemap.create_from_images(image) \n" +"ResourceSaver.save(cubemap, \"res://cubemap.res\", ResourceSaver." +"FLAG_COMPRESS) \n" +"\n" +"# Створіть і збережіть масив cubemap. Масив зображень має бути кратним 6 " +"зображенням. \n" +"# Зображення кожної кубічної карти вказуються в такому порядку: X+, X-, Y+, " +"Y-, Z+, Z- \n" +"# (у системі координат Годо, тому Y+ означає «вгору», а Z- — «вперед»). \n" +"var cubemap_array = CubemapArray.new() \n" +"cubemap_array.create_from_images(image) \n" +"ResourceSaver.save(cubemap_array, \"res://cubemap_array.res\", ResourceSaver." +"FLAG_COMPRESS) \n" +"[/codeblock]" msgid "" "Replaces the existing [Image] data at the given [param layer] with this new " @@ -62564,6 +80944,35 @@ msgstr "" msgid "Removes all surfaces and blend shapes from this [ImporterMesh]." msgstr "Видаліть всі поверхні та форми змішування з цього [ImporterMesh]." +msgid "" +"Generates all lods for this ImporterMesh.\n" +"[param normal_merge_angle] is in degrees and used in the same way as the " +"importer settings in [code]lods[/code].\n" +"[param normal_split_angle] is not used and only remains for compatibility " +"with older versions of the API.\n" +"The number of generated lods can be accessed using [method " +"get_surface_lod_count], and each LOD is available in [method " +"get_surface_lod_size] and [method get_surface_lod_indices].\n" +"[param bone_transform_array] is an [Array] which can be either empty or " +"contain [Transform3D]s which, for each of the mesh's bone IDs, will apply " +"mesh skinning when generating the LOD mesh variations. This is usually used " +"to account for discrepancies in scale between the mesh itself and its " +"skinning data." +msgstr "" +"Генерує всі lods для цього ImporterMesh. \n" +"[параметр normal_merge_angle] у градусах і використовується так само, як " +"налаштування імпортера в [code]lods[/code]. \n" +"[param normal_split_angle] не використовується і залишається лише для " +"сумісності зі старішими версіями API. \n" +"Доступ до кількості згенерованих lods можна отримати за допомогою [методу " +"get_surface_lod_count], і кожен LOD доступний у [method get_surface_lod_size] " +"і [method get_surface_lod_indices]. \n" +"[param bone_transform_array] — це [Array], який може бути порожнім або " +"містити [Transform3D], які для кожного з ідентифікаторів кістки сітки " +"застосовуватимуть скінінг сітки під час генерації варіантів сітки LOD. " +"Зазвичай це використовується для врахування розбіжностей у масштабі між самою " +"сіткою та її даними шкірування." + msgid "Returns the number of blend shapes that the mesh holds." msgstr "Повертаємо кількість форм блендера, що має сітки." @@ -62716,15 +81125,20 @@ msgid "" "when your device has an accelerometer. You must export your project to a " "supported device to read values from the accelerometer.\n" "[b]Note:[/b] This method only works on Android and iOS. On other platforms, " -"it always returns [constant Vector3.ZERO]." +"it always returns [constant Vector3.ZERO].\n" +"[b]Note:[/b] For Android, [member ProjectSettings.input_devices/sensors/" +"enable_accelerometer] must be enabled." msgstr "" -"Повертає прискорення в м/с2 датчика акселерометра пристрою, якщо пристрій має " -"один. В іншому випадку метод повертає [constant Vector3.ZERO].\n" -"Зверніть увагу, що цей метод повертає порожній [Vector3] при роботі з " -"редактором навіть коли ваш пристрій має акселерометр. Ви повинні експортувати " -"свій проект на підтримуваний пристрій для читання значень від акселерометра.\n" -"[b]Примітка:[/b] Цей метод працює тільки на Android і iOS. На інших " -"платформах завжди повертається [constant Vector3.ZERO]." +"Повертає прискорення в м/с² датчика акселерометра пристрою, якщо він є. В " +"іншому випадку метод повертає [константа Vector3.ZERO]. \n" +"Зауважте, що цей метод повертає порожній [Vector3] під час запуску з " +"редактора, навіть якщо ваш пристрій має акселерометр. Ви повинні експортувати " +"свій проект на підтримуваний пристрій, щоб зчитувати значення з " +"акселерометра. \n" +"[b]Примітка.[/b] Цей метод працює лише на Android та iOS. На інших платформах " +"він завжди повертає [константа Vector3.ZERO]. \n" +"[b]Примітка.[/b] Для Android потрібно ввімкнути [member ProjectSettings." +"input_devices/sensors/enable_accelerometer]." msgid "" "Returns a value between 0 and 1 representing the raw intensity of the given " @@ -62784,25 +81198,33 @@ msgid "" "Returns the gravity in m/s² of the device's accelerometer sensor, if the " "device has one. Otherwise, the method returns [constant Vector3.ZERO].\n" "[b]Note:[/b] This method only works on Android and iOS. On other platforms, " -"it always returns [constant Vector3.ZERO]." +"it always returns [constant Vector3.ZERO].\n" +"[b]Note:[/b] For Android, [member ProjectSettings.input_devices/sensors/" +"enable_gravity] must be enabled." msgstr "" -"Повернення ваги в м/с2 датчика акселерометра пристрою, якщо пристрій має " -"один. В іншому випадку метод повертає [constant Vector3.ZERO].\n" -"[b]Примітка:[/b] Цей метод працює тільки на Android і iOS. На інших " -"платформах завжди повертається [constant Vector3.ZERO]." +"Повертає силу тяжіння в м/с² датчика акселерометра пристрою, якщо він є. В " +"іншому випадку метод повертає [константа Vector3.ZERO]. \n" +"[b]Примітка.[/b] Цей метод працює лише на Android та iOS. На інших платформах " +"він завжди повертає [константа Vector3.ZERO]. \n" +"[b]Примітка.[/b] Для Android потрібно ввімкнути [member ProjectSettings." +"input_devices/sensors/enable_gravity]." msgid "" "Returns the rotation rate in rad/s around a device's X, Y, and Z axes of the " "gyroscope sensor, if the device has one. Otherwise, the method returns " "[constant Vector3.ZERO].\n" "[b]Note:[/b] This method only works on Android and iOS. On other platforms, " -"it always returns [constant Vector3.ZERO]." +"it always returns [constant Vector3.ZERO].\n" +"[b]Note:[/b] For Android, [member ProjectSettings.input_devices/sensors/" +"enable_gyroscope] must be enabled." msgstr "" -"Повертаємо швидкість обертання в раді/с навколо пристрою X, Y та Z осі " -"датчика гіроскопа, якщо пристрій має один. В іншому випадку метод повертає " -"[constant Vector3.ZERO].\n" -"[b]Примітка:[/b] Цей метод працює тільки на Android і iOS. На інших " -"платформах завжди повертається [constant Vector3.ZERO]." +"Повертає швидкість обертання в рад/с навколо осей X, Y і Z пристрою датчика " +"гіроскопа, якщо він є. В іншому випадку метод повертає [константа Vector3." +"ZERO]. \n" +"[b]Примітка.[/b] Цей метод працює лише на Android та iOS. На інших платформах " +"він завжди повертає [константа Vector3.ZERO]. \n" +"[b]Примітка.[/b] Для Android потрібно ввімкнути [member ProjectSettings." +"input_devices/sensors/enable_gyroscope]." msgid "" "Returns the current value of the joypad axis at given index (see [enum " @@ -62811,6 +81233,58 @@ msgstr "" "Повертаємо поточну вартість осі джойпада в даній індексі (див. [enum " "JoyAxis])." +msgid "" +"Returns an SDL2-compatible device GUID on platforms that use gamepad " +"remapping, e.g. [code]030000004c050000c405000000010000[/code]. Returns an " +"empty string if it cannot be found. Godot uses the [url=https://github.com/" +"gabomdq/SDL_GameControllerDB]SDL2 game controller database[/url] to determine " +"gamepad names and mappings based on this GUID.\n" +"On Windows, all XInput joypad GUIDs will be overridden by Godot to " +"[code]__XINPUT_DEVICE__[/code], because their mappings are the same." +msgstr "" +"Returns an SDL2-compatible device GUID on platforms that use gamepad " +"remapping, e.g. [code]030000004c050000c405000000010000[/code]. Returns an " +"empty string if it cannot be found. Godot uses the [url=https://github.com/" +"gabomdq/SDL_GameControllerDB]SDL2 game controller database[/url] to determine " +"gamepad names and mappings based on this GUID.\n" +"У Windows усі GUID джойстика XInput буде замінено Godot на " +"[code]__XINPUT_DEVICE__[/code], оскільки їхні зіставлення однакові." + +msgid "" +"Returns a dictionary with extra platform-specific information about the " +"device, e.g. the raw gamepad name from the OS or the Steam Input index.\n" +"On Windows, the dictionary contains the following fields:\n" +"[code]xinput_index[/code]: The index of the controller in the XInput system. " +"Undefined for DirectInput devices.\n" +"[code]vendor_id[/code]: The USB vendor ID of the device.\n" +"[code]product_id[/code]: The USB product ID of the device.\n" +"On Linux:\n" +"[code]raw_name[/code]: The name of the controller as it came from the OS, " +"before getting renamed by the godot controller database.\n" +"[code]vendor_id[/code]: The USB vendor ID of the device.\n" +"[code]product_id[/code]: The USB product ID of the device.\n" +"[code]steam_input_index[/code]: The Steam Input gamepad index, if the device " +"is not a Steam Input device this key won't be present.\n" +"[b]Note:[/b] The returned dictionary is always empty on Web, iOS, Android, " +"and macOS." +msgstr "" +"Повертає словник із додатковою інформацією щодо конкретної платформи про " +"пристрій, напр. необроблена назва геймпада з ОС або індексу Steam Input. \n" +"У Windows словник містить такі поля: \n" +"[code]xinput_index[/code]: індекс контролера в системі XInput. Не визначено " +"для пристроїв DirectInput. \n" +"[code]vendor_id[/code]: Ідентифікатор виробника USB пристрою. \n" +"[code]product_id[/code]: ідентифікатор USB-продукту пристрою. \n" +"У Linux: \n" +"[code]raw_name[/code]: ім’я контролера, як воно походить від ОС, перш ніж " +"його перейменувала база даних контролера godot. \n" +"[code]vendor_id[/code]: Ідентифікатор виробника USB пристрою. \n" +"[code]product_id[/code]: ідентифікатор USB-продукту пристрою. \n" +"[code]steam_input_index[/code]: індекс геймпада Steam Input, якщо пристрій не " +"є пристроєм введення Steam, цей ключ не буде присутній. \n" +"[b]Примітка.[/b] Повернений словник завжди порожній в Інтернеті, iOS, Android " +"і macOS." + msgid "" "Returns the name of the joypad at the specified device index, e.g. [code]PS4 " "Controller[/code]. Godot uses the [url=https://github.com/gabomdq/" @@ -62855,13 +81329,17 @@ msgid "" "device's magnetometer sensor, if the device has one. Otherwise, the method " "returns [constant Vector3.ZERO].\n" "[b]Note:[/b] This method only works on Android and iOS. On other platforms, " -"it always returns [constant Vector3.ZERO]." +"it always returns [constant Vector3.ZERO].\n" +"[b]Note:[/b] For Android, [member ProjectSettings.input_devices/sensors/" +"enable_magnetometer] must be enabled." msgstr "" -"Повертає міцність магнітного поля в мікро-Tesla для всіх осей датчика " -"магнітометра пристрою, якщо пристрій має один. В іншому випадку метод " -"повертає [constant Vector3.ZERO].\n" -"[b]Примітка:[/b] Цей метод працює тільки на Android і iOS. На інших " -"платформах завжди повертається [constant Vector3.ZERO]." +"Повертає напруженість магнітного поля в мікротеслах для всіх осей датчика " +"магнітометра пристрою, якщо він є. В іншому випадку метод повертає [константа " +"Vector3.ZERO]. \n" +"[b]Примітка.[/b] Цей метод працює лише на Android та iOS. На інших платформах " +"він завжди повертає [константа Vector3.ZERO]. \n" +"[b]Примітка.[/b] Для Android потрібно ввімкнути [member ProjectSettings." +"input_devices/sensors/enable_magnetometer]." msgid "" "Returns mouse buttons as a bitmask. If multiple mouse buttons are pressed at " @@ -63078,6 +81556,61 @@ msgstr "" "html#keyboard-events]Налаштування прикладів[/url] в документації для " "отримання додаткової інформації." +msgid "" +"Feeds an [InputEvent] to the game. Can be used to artificially trigger input " +"events from code. Also generates [method Node._input] calls.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var cancel_event = InputEventAction.new()\n" +"cancel_event.action = \"ui_cancel\"\n" +"cancel_event.pressed = true\n" +"Input.parse_input_event(cancel_event)\n" +"[/gdscript]\n" +"[csharp]\n" +"var cancelEvent = new InputEventAction();\n" +"cancelEvent.Action = \"ui_cancel\";\n" +"cancelEvent.Pressed = true;\n" +"Input.ParseInputEvent(cancelEvent);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] Calling this function has no influence on the operating system. " +"So for example sending an [InputEventMouseMotion] will not move the OS mouse " +"cursor to the specified position (use [method warp_mouse] instead) and " +"sending [kbd]Alt/Cmd + Tab[/kbd] as [InputEventKey] won't toggle between " +"active windows." +msgstr "" +"Подає [InputEvent] у гру. Може використовуватися для штучного запуску подій " +"введення з коду. Також генерує виклики [method Node._input]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var cancel_event = InputEventAction.new() \n" +"cancel_event.action = \"ui_cancel\" \n" +"cancel_event.pressed = правда \n" +"Input.parse_input_event(cancel_event) \n" +"[/gdscript] \n" +"[csharp] \n" +"var cancelEvent = new InputEventAction(); \n" +"cancelEvent.Action = \"ui_cancel\"; \n" +"cancelEvent.Pressed = true; \n" +"Input.ParseInputEvent(cancelEvent); \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка:[/b] виклик цієї функції не впливає на операційну систему. Так, " +"наприклад, надсилання [InputEventMouseMotion] не перемістить курсор миші ОС у " +"вказану позицію (натомість використовуйте [method warp_mouse]), а надсилання " +"[kbd]Alt/Cmd + Tab[/kbd] як [InputEventKey] не призведе до перемикання між " +"активними вікнами." + +msgid "" +"Removes all mappings from the internal database that match the given GUID. " +"All currently connected joypads that use this GUID will become unmapped.\n" +"On Android, Godot will map to an internal fallback mapping." +msgstr "" +"Видаляє всі зіставлення з внутрішньої бази даних, які відповідають заданому " +"GUID. Усі наразі підключені джойстики, які використовують цей GUID, стануть " +"невідповідними. \n" +"На Android Godot відображатиме внутрішнє резервне відображення." + msgid "" "Sets the acceleration value of the accelerometer sensor. Can be used for " "debugging on devices without a hardware sensor, for example in an editor on a " @@ -63578,6 +82111,30 @@ msgstr "" "працює правильно на всіх конфігураціях, не припустимо, користувач має " "конкретну функцію повторення ключа в поведінці вашого проекту." +msgid "" +"Returns [code]true[/code] if the specified [param event] matches this event. " +"Only valid for action events i.e key ([InputEventKey]), button " +"([InputEventMouseButton] or [InputEventJoypadButton]), axis " +"[InputEventJoypadMotion] or action ([InputEventAction]) events.\n" +"If [param exact_match] is [code]false[/code], it ignores additional input " +"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the " +"direction for [InputEventJoypadMotion] events.\n" +"[b]Note:[/b] Only considers the event configuration (such as the keyboard key " +"or joypad axis), not state information like [method is_pressed], [method " +"is_released], [method is_echo], or [method is_canceled]." +msgstr "" +"Повертає [code]true[/code], якщо вказаний [param event] відповідає цій події. " +"Дійсний лише для подій дії, наприклад подій клавіші ([InputEventKey]), кнопки " +"([InputEventMouseButton] або [InputEventJoypadButton]), осі " +"[InputEventJoypadMotion] або дії ([InputEventAction]). \n" +"Якщо [параметр exact_match] має значення [code]false[/code], він ігнорує " +"додаткові модифікатори введення для подій [InputEventKey] і " +"[InputEventMouseButton], а також напрямок для подій " +"[InputEventJoypadMotion]. \n" +"[b]Примітка:[/b] розглядається лише конфігурація події (наприклад, клавіша " +"клавіатури чи вісь джойстика), а не інформація про стан, як-от [method " +"is_pressed], [method is_released], [method is_echo] або [method is_canceled]." + msgid "" "Returns [code]true[/code] if this input event is pressed. Not relevant for " "events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n" @@ -64049,6 +82606,142 @@ msgid "" msgstr "" "Представляє повідомлення MIDI з пристрою MIDI, такі як музична клавіатура." +msgid "" +"InputEventMIDI stores information about messages from [url=https://en." +"wikipedia.org/wiki/MIDI]MIDI[/url] (Musical Instrument Digital Interface) " +"devices. These may include musical keyboards, synthesizers, and drum " +"machines.\n" +"MIDI messages can be received over a 5-pin MIDI connector or over USB. If " +"your device supports both be sure to check the settings in the device to see " +"which output it is using.\n" +"By default, Godot does not detect MIDI devices. You need to call [method OS." +"open_midi_inputs], first. You can check which devices are detected with " +"[method OS.get_connected_midi_inputs], and close the connection with [method " +"OS.close_midi_inputs].\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _ready():\n" +" OS.open_midi_inputs()\n" +" print(OS.get_connected_midi_inputs())\n" +"\n" +"func _input(input_event):\n" +" if input_event is InputEventMIDI:\n" +" _print_midi_info(input_event)\n" +"\n" +"func _print_midi_info(midi_event):\n" +" print(midi_event)\n" +" print(\"Channel \", midi_event.channel)\n" +" print(\"Message \", midi_event.message)\n" +" print(\"Pitch \", midi_event.pitch)\n" +" print(\"Velocity \", midi_event.velocity)\n" +" print(\"Instrument \", midi_event.instrument)\n" +" print(\"Pressure \", midi_event.pressure)\n" +" print(\"Controller number: \", midi_event.controller_number)\n" +" print(\"Controller value: \", midi_event.controller_value)\n" +"[/gdscript]\n" +"[csharp]\n" +"public override void _Ready()\n" +"{\n" +" OS.OpenMidiInputs();\n" +" GD.Print(OS.GetConnectedMidiInputs());\n" +"}\n" +"\n" +"public override void _Input(InputEvent inputEvent)\n" +"{\n" +" if (inputEvent is InputEventMidi midiEvent)\n" +" {\n" +" PrintMIDIInfo(midiEvent);\n" +" }\n" +"}\n" +"\n" +"private void PrintMIDIInfo(InputEventMidi midiEvent)\n" +"{\n" +" GD.Print(midiEvent);\n" +" GD.Print($\"Channel {midiEvent.Channel}\");\n" +" GD.Print($\"Message {midiEvent.Message}\");\n" +" GD.Print($\"Pitch {midiEvent.Pitch}\");\n" +" GD.Print($\"Velocity {midiEvent.Velocity}\");\n" +" GD.Print($\"Instrument {midiEvent.Instrument}\");\n" +" GD.Print($\"Pressure {midiEvent.Pressure}\");\n" +" GD.Print($\"Controller number: {midiEvent.ControllerNumber}\");\n" +" GD.Print($\"Controller value: {midiEvent.ControllerValue}\");\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] Godot does not support MIDI output, so there is no way to emit " +"MIDI messages from Godot. Only MIDI input is supported.\n" +"[b]Note:[/b] On the Web platform, using MIDI input requires a browser " +"permission to be granted first. This permission request is performed when " +"calling [method OS.open_midi_inputs]. MIDI input will not work until the user " +"accepts the permission request." +msgstr "" +"InputEventMIDI зберігає інформацію про повідомлення з пристроїв [url=https://" +"en.wikipedia.org/wiki/MIDI]MIDI[/url] (цифровий інтерфейс музичних " +"інструментів). Це можуть бути музичні клавішні, синтезатори та драм-машини. \n" +"Повідомлення MIDI можна отримувати через 5-контактний роз’єм MIDI або через " +"USB. Якщо ваш пристрій підтримує обидва, обов’язково перевірте налаштування " +"пристрою, щоб дізнатися, який вихід він використовує. \n" +"За замовчуванням Godot не виявляє пристрої MIDI. Спочатку потрібно викликати " +"[метод OS.open_midi_inputs]. Ви можете перевірити, які пристрої виявлено за " +"допомогою [методу OS.get_connected_midi_inputs], і закрити з’єднання за " +"допомогою [методу OS.close_midi_inputs]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"func _ready(): \n" +" OS.open_midi_inputs() \n" +" print(OS.get_connected_midi_inputs()) \n" +"\n" +"func _input(input_event): \n" +" якщо input_event є InputEventMIDI: \n" +" _print_midi_info(input_event) \n" +"\n" +"func _print_midi_info(midi_event): \n" +" print(midi_event) \n" +" print(\"Канал \", midi_event.channel) \n" +" print(\"Повідомлення \", midi_event.message) \n" +" print(\"Pitch \", midi_event.pitch) \n" +" print(\"Швидкість \", midi_event.velocity) \n" +" print(\"Інструмент \", midi_event.instrument) \n" +" print(\"Тиск \", midi_event.pressure) \n" +" print(\"Номер контролера: \", midi_event.controller_number) \n" +" print(\"Значення контролера: \", midi_event.controller_value) \n" +"[/gdscript] \n" +"[csharp] \n" +"public override void _Ready() \n" +"{\n" +" OS.OpenMidiInputs(); \n" +" GD.Print(OS.GetConnectedMidiInputs()); \n" +"}\n" +"\n" +"public override void _Input(InputEvent inputEvent) \n" +"{\n" +" if (inputEvent є InputEventMidi midiEvent) \n" +" { \n" +" PrintMIDIInfo(midiEvent); \n" +" } \n" +"}\n" +"\n" +"private void PrintMIDIInfo(InputEventMidi midiEvent) \n" +"{\n" +" GD.Print(midiEvent); \n" +" GD.Print($\"Канал {midiEvent.Channel}\"); \n" +" GD.Print($\"Повідомлення {midiEvent.Message}\"); \n" +" GD.Print($\"Pitch {midiEvent.Pitch}\"); \n" +" GD.Print($\"Швидкість {midiEvent.Velocity}\"); \n" +" GD.Print($\"Інструмент {midiEvent.Instrument}\"); \n" +" GD.Print($\"Тиск {midiEvent.Pressure}\"); \n" +" GD.Print($\"Номер контролера: {midiEvent.ControllerNumber}\"); \n" +" GD.Print($\"Значення контролера: {midiEvent.ControllerValue}\"); \n" +"}\n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка:[/b] Godot не підтримує вихід MIDI, тому немає способу видавати " +"повідомлення MIDI від Godot. Підтримується лише вхід MIDI. \n" +"[b]Примітка.[/b] На веб-платформі для використання MIDI-введення спочатку " +"потрібно надати дозвіл браузера. Цей запит на дозвіл виконується під час " +"виклику [методу OS.open_midi_inputs]. Введення MIDI не працюватиме, доки " +"користувач не прийме запит на дозвіл." + msgid "MIDI Message Status Byte List" msgstr "Статус на сервери" @@ -64272,6 +82965,35 @@ msgstr "" msgid "Represents a mouse or a pen movement." msgstr "Представляємо мишу або ручний рух." +msgid "" +"Stores information about a mouse or a pen motion. This includes relative " +"position, absolute position, and velocity. See [method Node._input].\n" +"[b]Note:[/b] By default, this event is only emitted once per frame rendered " +"at most. If you need more precise input reporting, set [member Input." +"use_accumulated_input] to [code]false[/code] to make events emitted as often " +"as possible. If you use InputEventMouseMotion to draw lines, consider using " +"[method Geometry2D.bresenham_line] as well to avoid visible gaps in lines if " +"the user is moving the mouse quickly.\n" +"[b]Note:[/b] This event may be emitted even when the mouse hasn't moved, " +"either by the operating system or by Godot itself. If you really need to know " +"if the mouse has moved (e.g. to suppress displaying a tooltip), you should " +"check that [code]relative.is_zero_approx()[/code] is [code]false[/code]." +msgstr "" +"Зберігає інформацію про рух миші або пера. Це включає відносне положення, " +"абсолютне положення та швидкість. Див. [метод Node._input]. \n" +"[b]Примітка:[/b] За замовчуванням ця подія генерується щонайбільше один раз " +"на відтворений кадр. Якщо вам потрібні точніші звіти про вхідні дані, " +"встановіть [member Input.use_accumulated_input] на [code]false[/code], щоб " +"події виникали якомога частіше. Якщо ви використовуєте InputEventMouseMotion " +"для малювання ліній, також подумайте про використання [метод Geometry2D." +"bresenham_line], щоб уникнути видимих прогалин у лініях, якщо користувач " +"швидко рухає мишею. \n" +"[b]Примітка:[/b] Ця подія може виникати навіть тоді, коли миша не рухалася " +"операційною системою чи самим Godot. Якщо вам справді потрібно знати, чи " +"рухалася миша (наприклад, щоб не показувати спливаючу підказку), вам слід " +"перевірити, що [code]relative.is_zero_approx()[/code] має значення " +"[code]false[/code]." + msgid "" "Returns [code]true[/code] when using the eraser end of a stylus pen.\n" "[b]Note:[/b] This property is implemented on Linux, macOS and Windows." @@ -64286,6 +83008,53 @@ msgstr "" "Представляє тиск, користувач кладе на ручку. Діапазони [code]0.0[/code] до " "[code]1.0[/code]." +msgid "" +"The mouse position relative to the previous position (position at the last " +"frame).\n" +"[b]Note:[/b] Since [InputEventMouseMotion] may only be emitted when the mouse " +"moves, it is not possible to reliably detect when the mouse has stopped " +"moving by checking this property. A separate, short timer may be necessary.\n" +"[b]Note:[/b] [member relative] is automatically scaled according to the " +"content scale factor, which is defined by the project's stretch mode " +"settings. This means mouse sensitivity will appear different depending on " +"resolution when using [member relative] in a script that handles mouse aiming " +"with the [constant Input.MOUSE_MODE_CAPTURED] mouse mode. To avoid this, use " +"[member screen_relative] instead." +msgstr "" +"Позиція миші відносно попередньої позиції (позиція в останньому кадрі). \n" +"[b]Примітка:[/b] Оскільки [InputEventMouseMotion] може виникати лише під час " +"руху миші, перевіркою цієї властивості неможливо надійно визначити, коли миша " +"припинила рух. Може знадобитися окремий короткий таймер. \n" +"[b]Примітка: [/b] [відносний учасник] автоматично масштабується відповідно до " +"коефіцієнта масштабування вмісту, який визначається налаштуваннями режиму " +"розтягування проекту. Це означає, що чутливість миші буде різною залежно від " +"роздільної здатності під час використання [member relative] у сценарії, який " +"обробляє націлювання миші в режимі миші [constant Input.MOUSE_MODE_CAPTURED]. " +"Щоб уникнути цього, замість цього використовуйте [member screen_relative]." + +msgid "" +"The unscaled mouse position relative to the previous position in the " +"coordinate system of the screen (position at the last frame).\n" +"[b]Note:[/b] Since [InputEventMouseMotion] may only be emitted when the mouse " +"moves, it is not possible to reliably detect when the mouse has stopped " +"moving by checking this property. A separate, short timer may be necessary.\n" +"[b]Note:[/b] This coordinate is [i]not[/i] scaled according to the content " +"scale factor or calls to [method InputEvent.xformed_by]. This should be " +"preferred over [member relative] for mouse aiming when using the [constant " +"Input.MOUSE_MODE_CAPTURED] mouse mode, regardless of the project's stretch " +"mode." +msgstr "" +"Немасштабована позиція миші відносно попередньої позиції в системі координат " +"екрана (позиція в останньому кадрі). \n" +"[b]Примітка:[/b] Оскільки [InputEventMouseMotion] може виникати лише під час " +"руху миші, перевіркою цієї властивості неможливо надійно визначити, коли миша " +"припинила рух. Може знадобитися окремий короткий таймер. \n" +"[b]Примітка:[/b] Ця координата [i]не[/i] масштабується відповідно до " +"коефіцієнта масштабування вмісту або викликів [методу InputEvent.xformed_by]. " +"Цьому слід надавати перевагу над [member relative] для наведення миші під час " +"використання режиму миші [constant Input.MOUSE_MODE_CAPTURED], незалежно від " +"режиму розтягування проекту." + msgid "" "The unscaled mouse velocity in pixels per second in screen coordinates. This " "velocity is [i]not[/i] scaled according to the content scale factor or calls " @@ -64486,6 +83255,23 @@ msgstr "" "Текстовий базовий клас для вхідних заходів, що впливають на ключі " "модифікатора, такі як [kbd]Shift[/kbd] і [kbd]Alt[/kbd]." +msgid "" +"Stores information about mouse, keyboard, and touch gesture input events. " +"This includes information about which modifier keys are pressed, such as " +"[kbd]Shift[/kbd] or [kbd]Alt[/kbd]. See [method Node._input].\n" +"[b]Note:[/b] Modifier keys are considered modifiers only when used in " +"combination with another key. As a result, their corresponding member " +"variables, such as [member ctrl_pressed], will return [code]false[/code] if " +"the key is pressed on its own." +msgstr "" +"Зберігає інформацію про події введення миші, клавіатури та жестів дотиком. Це " +"включає інформацію про те, які клавіші-модифікатори натиснуті, наприклад " +"[kbd]Shift[/kbd] або [kbd]Alt[/kbd]. Див. [метод Node._input]. \n" +"[b]Примітка: [/b] Клавіші-модифікатори вважаються модифікаторами лише тоді, " +"коли використовуються в комбінації з іншою клавішею. У результаті їхні " +"відповідні змінні-члени, такі як [member ctrl_pressed], повертатимуть " +"[code]false[/code], якщо клавішу натиснуто окремо." + msgid "Returns the keycode combination of modifier keys." msgstr "Повертає комбінацію коду модифікатора ключів." @@ -64738,54 +83524,55 @@ msgstr "" "64-розрядний цілочисельний тип зі знаком. Це означає, що він може приймати " "значення від [code]-2^63[/code] до [code]2^63 - 1[/code], тобто від " "[code]-9223372036854775808[/code] до [code]9223372036854775807[/code]. Коли " -"він перевищує ці межі, він обертається.\n" +"він перевищує ці межі, він обертається. \n" "[int]s можна автоматично перетворити на [float]s, коли це необхідно, " "наприклад, коли вони передаються як аргументи у функціях. [float] буде " -"максимально близьким до початкового цілого числа.\n" +"максимально близьким до початкового цілого числа. \n" "Подібним чином [float]s можна автоматично перетворити на [int]s. Це скоротить " -"[float], відкидаючи все, що стоїть після числа з плаваючою комою.\n" -"[b]Примітка: [/b] У логічному контексті [int] матиме значення [code]false[/" -"code], якщо він дорівнює [code]0[/code], і [code]true[/code] інакше.\n" -"[кодові блоки]\n" -"[gdscript]\n" -"змінна x: int = 1 # x дорівнює 1\n" -"x = 4,2 # x дорівнює 4, тому що 4,2 скорочується\n" +"[float], відкидаючи все, що стоїть після числа з плаваючою комою. \n" +"[b]Примітка.[/b] У логічному контексті [int] матиме значення [code]false[/" +"code], якщо він дорівнює [code]0[/code], і [code]true[/code] в іншому " +"випадку. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var x: int = 1 # x дорівнює 1 \n" +"x = 4,2 # x дорівнює 4, тому що 4,2 скорочується \n" "var max_int = 9223372036854775807 # Найбільше значення, яке може зберігати " -"int\n" +"int \n" "max_int += 1 # max_int дорівнює -9223372036854775808, тому що він обертається " -"навколо\n" -"[/gdscript]\n" -"[csharp]\n" -"int x = 1; // x дорівнює 1\n" -"х = (ціл.)4,2; // x дорівнює 4, тому що 4.2 скорочується\n" +"навколо \n" +"[/gdscript] \n" +"[csharp] \n" +"int x = 1; // x дорівнює 1 \n" +"х = (ціл.)4,2; // x дорівнює 4, тому що 4.2 скорочується \n" "// Нижче ми використовуємо long, тому що int GDScript є 64-бітним, тоді як " -"int C# є 32-бітним.\n" +"int C# є 32-бітним. \n" "long maxLong = 9223372036854775807; // Найбільше значення, яке може зберігати " -"long\n" +"long \n" "maxLong++; // maxLong тепер дорівнює -9223372036854775808, тому що він " -"обертався.\n" +"обертався. \n" "\n" "// Альтернативно з 32-розрядним типом int C#, який має менше максимальне " -"значення.\n" -"int maxInt = 2147483647; // Найбільше значення, яке може зберігати int\n" -"maxInt++; // maxInt тепер -2147483648, тому що він обертався\n" -"[/csharp]\n" -"[/codeblocks]\n" +"значення. \n" +"int maxInt = 2147483647; // Найбільше значення, яке може зберігати int \n" +"maxInt++; // maxInt тепер -2147483648, тому що він обертався \n" +"[/csharp] \n" +"[/codeblocks] \n" "Ви можете використовувати літерал [code]0b[/code] для двійкового " "представлення, літерал [code]0x[/code] для шістнадцяткового представлення та " "символ [code]_[/code] для розділення довгих чисел і покращення " -"читабельності.\n" -"[кодові блоки]\n" -"[gdscript]\n" -"var x = 0b1001 # x дорівнює 9\n" -"var y = 0xF5 # y дорівнює 245\n" -"var z = 10_000_000 # z дорівнює 10000000\n" -"[/gdscript]\n" -"[csharp]\n" -"int x = 0b1001; // х дорівнює 9\n" -"int y = 0xF5; // y дорівнює 245\n" -"int z = 10_000_000; // z дорівнює 10000000\n" -"[/csharp]\n" +"читабельності. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var x = 0b1001 # x дорівнює 9 \n" +"var y = 0xF5 # y дорівнює 245 \n" +"var z = 10_000_000 # z дорівнює 10000000 \n" +"[/gdscript] \n" +"[csharp] \n" +"int x = 0b1001; // х дорівнює 9 \n" +"int y = 0xF5; // y дорівнює 245 \n" +"int z = 10_000_000; // z дорівнює 10000000 \n" +"[/csharp] \n" "[/codeblocks]" msgid "Constructs an [int] set to [code]0[/code]." @@ -64831,13 +83618,13 @@ msgid "" "print(-5 % 3) # Prints -2\n" "[/codeblock]" msgstr "" -"Повертаємо решту після поділу двох [вхід]. Використовує розірваний поділ, " -"який повертає негативний номер, якщо дивіденд негативний. Якщо це не " -"потрібно, розглянемо використання [метод @GlobalScope.posmod].\n" -"[блокування коду]\n" -"Друк(6 % 2) # Друки 0\n" -"Друк(11 % 4) # Друки 3\n" -"Друк(-5 % 3) # Друки -2\n" +"Повертає залишок після ділення двох [int]. Використовує скорочене ділення, " +"яке повертає від’ємне число, якщо дивіденд від’ємний. Якщо це небажано, " +"спробуйте використати [метод @GlobalScope.posmod]. \n" +"[codeblock] \n" +"print(6 % 2) # Виводить 0 \n" +"print(11 % 4) # Друкує 3 \n" +"print(-5 % 3) # Виводить -2 \n" "[/codeblock]" msgid "" @@ -64853,16 +83640,16 @@ msgid "" " do_stuff() # This line will run.\n" "[/codeblock]" msgstr "" -"Виконує бітумну операцію [code] і[/code].\n" -"[блокування коду]\n" -"Друк(0b1100 & 0b1010) # Друк 8 (внутр. 1000)\n" -"[/codeblock]\n" -"Це корисно для оновлення бінарних прапорів з змінної.\n" -"[блокування коду]\n" -"Вар прапори = 0b101\n" -"Нема Перевірте, чи ввімкнено перший або другий біт.\n" -"якщо прапори & 0b011:\n" -"do_stuff() # Ця лінія буде працювати.\n" +"Виконує порозрядну операцію [код]І[/код]. \n" +"[codeblock] \n" +"print(0b1100 & 0b1010) # Виводить 8 (двійковий 1000) \n" +"[/codeblock] \n" +"Це корисно для отримання двійкових прапорів зі змінної. \n" +"[codeblock] \n" +"змінні прапори = 0b101 \n" +"# Перевірте, чи ввімкнено перший або другий біт. \n" +"якщо прапори & 0b011: \n" +" do_stuff() # Цей рядок буде виконано. \n" "[/codeblock]" msgid "Multiplies each component of the [Color] by the [int]." @@ -64882,9 +83669,9 @@ msgid "" "print(2 * Vector2(1, 4)) # Prints (2, 8)\n" "[/codeblock]" msgstr "" -"Множиці кожного компонента [Vector2] [int].\n" -"[блокування коду]\n" -"Друк(2 * Vector2(1, 4) # Друки (2,8)\n" +"Множить кожен компонент [Vector2] на [int].\n" +"[codeblock]\n" +"print(2 * Vector2(1, 4)) # Prints (2, 8)\n" "[/codeblock]" msgid "Multiplies each component of the [Vector2i] by the [int]." @@ -64914,9 +83701,9 @@ msgid "" "print(2 ** 0.5) # Prints 1.4142135623731\n" "[/codeblock]" msgstr "" -"З'ясуйте [вхід] до влади [float]. Результатом є [float].\n" -"[блокування коду]\n" -"Друк(2 ** 0.5) # Друки 1.4142135623731\n" +"Підносить [int] до степеня [float]. Результатом буде [float].\n" +"[codeblock]\n" +"print(2 ** 0.5) # Prints 1.4142135623731\n" "[/codeblock]" msgid "" @@ -64925,9 +83712,9 @@ msgid "" "print(3 ** 4) # Prints 81\n" "[/codeblock]" msgstr "" -"Знімає ліву [вхід] до влади права [втом].\n" -"[блокування коду]\n" -"Друк(3 ** 4) # Друки 81\n" +"Підносить лівий [int] до степеня правого [int].\n" +"[codeblock]\n" +"print(3 ** 4) # Виводить 81\n" "[/codeblock]" msgid "Adds the [int] and the [float]. The result is a [float]." @@ -64948,9 +83735,9 @@ msgid "" "print(10 / 3.0) # Prints 3.33333333333333\n" "[/codeblock]" msgstr "" -"Дивиди [int] [float]. Результатом є [float].\n" -"[блокування коду]\n" -"Друк(10 / 3.0) # Друки 3.33333333333\n" +"Розділяє [int] на [float]. Результатом буде [float].\n" +"[codeblock]\n" +"print(10 / 3.0) # Prints 3.33333333333333\n" "[/codeblock]" msgid "" @@ -64961,11 +83748,11 @@ msgid "" "print(5 / 3) # Prints 1\n" "[/codeblock]" msgstr "" -"Дивиди два [вхід]. Результатом є [int]. Це буде truncate [float], відкидаючи " -"що-небудь після плаваючої точки.\n" -"[блокування коду]\n" -"Друк(6 / 2) # Друки 3\n" -"Друк(5 / 3) # Друки 1\n" +"Розділяє два [int]. Результатом є [int]. Це скоротить [float], відкинувши все " +"після коми з плаваючою комою.\n" +"[codeblock]\n" +"print(6 / 2) # Виводить 3\n" +"print(5 / 3) # Виводить 1\n" "[/codeblock]" msgid "Returns [code]true[/code] if the [int] is less than the [float]." @@ -64983,11 +83770,11 @@ msgid "" "print(0b1010 << 3) # Prints 80 (binary 1010000)\n" "[/codeblock]" msgstr "" -"Виконує бітумний зсув лівої операції. Ефективно так само, як і розмноження " -"потужністю 2.\n" -"[блокування коду]\n" -"Друк(0b1010 << 1) # Друк 20 (внутр. 10100)\n" -"Друк(0b1010 << 3) # Друк 80 (внутр. 1010000)\n" +"Виконує операцію побітового зсуву вліво. Фактично те саме, що множення на " +"ступінь 2. \n" +"[codeblock] \n" +"print(0b1010 << 1) # Виводить 20 (двійковий 10100) \n" +"print(0b1010 << 3) # Виводить 80 (двійковий 1010000) \n" "[/codeblock]" msgid "" @@ -65033,11 +83820,11 @@ msgid "" "print(0b1010 >> 2) # Prints 2 (binary 10)\n" "[/codeblock]" msgstr "" -"Виконує автоматичне перемикання правої операції. Ефективно так само, як і " -"ділення від влади 2.\n" -"[блокування коду]\n" -"Друк(0b1010 >> 1) # Друки 5 (внутр. 101)\n" -"Друк(0b1010 >> 2) # Друки 2 (внутр. 10)\n" +"Виконує операцію порозрядного зсуву вправо. Фактично те саме, що ділення на " +"ступінь 2.\n" +"[codeblock]\n" +"print(0b1010 >> 1) # Виводить 5 (двійковий 101)\n" +"print(0b1010 >> 2) # Виводить 2 (двійковий 10)\n" "[/codeblock]" msgid "" @@ -65046,9 +83833,9 @@ msgid "" "print(0b1100 ^ 0b1010) # Prints 6 (binary 110)\n" "[/codeblock]" msgstr "" -"Виконує трохи більше [code]XOR[/code].\n" -"[блокування коду]\n" -"Друк(0b1100 ^ 0b1010) # Друк 6 (внутр. 110)\n" +"Виконує побітову операцію [code]XOR[/code].\n" +"[codeblock]\n" +"print(0b1100 ^ 0b1010) # Виводить 6 (двійковий 110)\n" "[/codeblock]" msgid "" @@ -65070,14 +83857,14 @@ msgid "" "flags |= 0b101 # Turn the first and third bits on.\n" "[/codeblock]" msgstr "" -"Виконує бітум [code]OR[/code].\n" -"[блокування коду]\n" -"Друк(0b1d 0b1010) # Друк 14 (внутр. 1110)\n" -"[/codeblock]\n" -"Це корисно для зберігання бінарних прапорів у змінній.\n" -"[блокування коду]\n" -"Вар прапори = 0\n" -"прапори: 0b101 # Поверніть перший і третій біт на.\n" +"Виконує порозрядну операцію [code]АБО[/code]. \n" +"[codeblock] \n" +"print(0b1100 | 0b1010) # Виводить 14 (двійковий 1110) \n" +"[/codeblock] \n" +"Це корисно для збереження двійкових позначок у змінній. \n" +"[codeblock] \n" +"змінні прапори = 0 \n" +"flags |= 0b101 # Увімкнути перший і третій біти. \n" "[/codeblock]" msgid "" @@ -65089,12 +83876,12 @@ msgid "" "print(~(-7)) # Prints 6\n" "[/codeblock]" msgstr "" -"Виконує бітумну операцію [code]NOT[/code] на [int]. У зв'язку з [url=https://" -"en.wikipedia.org/wiki/Two%27s_complement]2 доповнення[/url], це ефективно " -"рівні [code]-(int + 1)[/code].\n" -"[блокування коду]\n" -"Друк(~4) # Друки -5\n" -"Друк(~(-7) # Друки 6\n" +"Виконує побітову операцію [code]NOT[/code] над [int]. Завдяки доповненню " +"[url=https://en.wikipedia.org/wiki/Two%27s_complement]2[/url] воно фактично " +"дорівнює [code]-(int + 1)[/code]. \n" +"[codeblock] \n" +"print(~4) # Виводить -5 \n" +"print(~(-7)) # Виводить 6 \n" "[/codeblock]" msgid "Creates an idle interval in a [Tween] animation." @@ -65156,16 +83943,16 @@ msgid "" "}\n" "[/codeblock]" msgstr "" -"Повертає всі мережеві адаптери як масив.\n" -"Кожен адаптер є словником форми:\n" -"[блокування коду]\n" -"Довідник\n" -"\"index\": \"1\", # Індекс інтерфейсу.\n" -"\"name\": \"eth0\", # Назва інтерфейсу.\n" -"\"дружий\": \"Етернет Один\", # дружелюбне ім'я (навіть порожній).\n" -"\"addresses\": [\"192.168.1.101\"], # array of IP адреси, пов'язані з цим " -"інтерфейсом.\n" -"Про нас\n" +"Повертає всі мережеві адаптери як масив. \n" +"Кожен адаптер є словником такого вигляду: \n" +"[codeblock] \n" +"{\n" +" \"index\": \"1\", # Індекс інтерфейсу. \n" +" \"name\": \"eth0\", # Назва інтерфейсу. \n" +" \"friendly\": \"Ethernet One\", # Зрозуміле ім'я (може бути пустим). \n" +" \"addresses\": [\"192.168.1.101\"], # Масив IP-адрес, пов'язаних з цим " +"інтерфейсом. \n" +"}\n" "[/codeblock]" msgid "" @@ -65321,6 +84108,20 @@ msgstr "" "Додати товар до списку товарів без тексту, тільки іконку. Повертає індекс " "доданої позиції." +msgid "" +"Adds an item to the item list with specified text. Returns the index of an " +"added item.\n" +"Specify an [param icon], or use [code]null[/code] as the [param icon] for a " +"list item with no icon.\n" +"If [param selectable] is [code]true[/code], the list item will be selectable." +msgstr "" +"Додає елемент до списку елементів із вказаним текстом. Повертає індекс " +"доданого елемента. \n" +"Укажіть [піктограму параметра] або використовуйте [code]null[/code] як " +"[піктограму параметра] для елемента списку без піктограми. \n" +"Якщо [param selectable] має значення [code]true[/code], елемент списку можна " +"вибрати." + msgid "Removes all items from the list." msgstr "Видаліть всі товари зі списку." @@ -65348,6 +84149,18 @@ msgstr "" "такі як [член auto_height], зміна. Метод може використовуватися для запуску " "оновлення на наступний прохід." +msgid "" +"Returns the horizontal scrollbar.\n" +"[b]Warning:[/b] This is a required internal node, removing and freeing it may " +"cause a crash. If you wish to hide it or any of its children, use their " +"[member CanvasItem.visible] property." +msgstr "" +"Повертає горизонтальну смугу прокручування. \n" +"[b]Попередження:[/b] Це обов’язковий внутрішній вузол, його видалення та " +"звільнення може призвести до збою. Якщо ви бажаєте приховати його чи будь-" +"який із його дочірніх елементів, скористайтеся властивістю [member CanvasItem." +"visible]." + msgid "" "Returns the item index at the given [param position].\n" "When there is no item at that point, -1 will be returned if [param exact] is " @@ -65361,6 +84174,9 @@ msgstr "" "[b]Примітка:[/b] Повернуте значення ненадійне, якщо називається правою після " "зміни [ItemList], перш ніж він перекидається в наступному кадрі." +msgid "Returns item's auto translate mode." +msgstr "Повертає режим автоматичного перекладу елемента." + msgid "" "Returns the custom background color of the item specified by [param idx] " "index." @@ -65473,6 +84289,18 @@ msgstr "" "Виберіть пункт в зазначеному індексі.\n" "[b]Примітка:[/b] Цей метод не викликає сигналу вибору елемента." +msgid "" +"Sets the auto translate mode of the item associated with the specified " +"index.\n" +"Items use [constant Node.AUTO_TRANSLATE_MODE_INHERIT] by default, which uses " +"the same auto translate mode as the [ItemList] itself." +msgstr "" +"Встановлює режим автоматичного перекладу елемента, пов’язаного з указаним " +"індексом. \n" +"Елементи за замовчуванням використовують [constant Node." +"AUTO_TRANSLATE_MODE_INHERIT], який використовує той самий режим автоматичного " +"перекладу, що й сам [ItemList]." + msgid "" "Sets the background color of the item specified by [param idx] index to the " "specified [Color]." @@ -65570,6 +84398,13 @@ msgstr "" "Якщо [code]true[/code], контроль буде автоматично змінювати висоту, щоб " "відповідати його вмісту." +msgid "" +"If [code]true[/code], the control will automatically resize the width to fit " +"its content." +msgstr "" +"Якщо [code]true[/code], елемент керування автоматично змінить розмір ширини " +"відповідно до вмісту." + msgid "" "The width all columns will be adjusted to.\n" "A value of zero disables the adjustment, each item will have a width equal to " @@ -65650,6 +84485,61 @@ msgstr "" "Встановлює поведінку кліпінгу, коли текст перевищить фрагмент елемента. " "Дивитися [enum TextServer. OverrunBehavior - опис всіх режимів." +msgid "" +"If [code]true[/code], the control will automatically move items into a new " +"row to fit its content. See also [HFlowContainer] for this behavior.\n" +"If [code]false[/code], the control will add a horizontal scrollbar to make " +"all items visible." +msgstr "" +"Якщо [code]true[/code], елемент керування автоматично перемістить елементи в " +"новий рядок відповідно до його вмісту. Перегляньте також [HFlowContainer] для " +"цієї поведінки. \n" +"Якщо [code]false[/code], елемент керування додасть горизонтальну смугу " +"прокручування, щоб усі елементи були видимими." + +msgid "" +"Emitted when any mouse click is issued within the rect of the list but on " +"empty space.\n" +"[param at_position] is the click position in this control's local coordinate " +"system." +msgstr "" +"Випускається, коли будь-яке клацання мишею виконується в правій частині " +"списку, але на порожньому місці.\n" +"[param at_position] — це позиція клацання в локальній системі координат цього " +"елемента керування." + +msgid "" +"Emitted when specified list item is activated via double-clicking or by " +"pressing [kbd]Enter[/kbd]." +msgstr "" +"Видається, коли вказаний елемент списку активується подвійним клацанням або " +"натисканням [kbd]Enter[/kbd]." + +msgid "" +"Emitted when specified list item has been clicked with any mouse button.\n" +"[param at_position] is the click position in this control's local coordinate " +"system." +msgstr "" +"Видається, коли вказаний елемент списку клацнуто будь-якою кнопкою миші.\n" +"[param at_position] — це позиція клацання в локальній системі координат цього " +"елемента керування." + +msgid "" +"Emitted when specified item has been selected. Only applicable in single " +"selection mode.\n" +"[member allow_reselect] must be enabled to reselect an item." +msgstr "" +"Видається, коли вибрано вказаний елемент. Застосовується лише в режимі одного " +"вибору.\n" +"Для повторного вибору елемента потрібно ввімкнути [member allow_reselect]." + +msgid "" +"Emitted when a multiple selection is altered on a list allowing multiple " +"selection." +msgstr "" +"Випускається, коли множинний вибір змінюється у списку, що дозволяє множинний " +"вибір." + msgid "Icon is drawn above the text." msgstr "Ікона намальована над текстом." @@ -65666,6 +84556,9 @@ msgstr "" "Дозволяє вибрати декілька елементів за допомогою холдингу [kbd]Ctrl[/kbd] або " "[kbd]Shift[/kbd]." +msgid "Allows selecting multiple items by toggling them on and off." +msgstr "Дозволяє вибирати кілька елементів, умикаючи та вимикаючи їх." + msgid "Default text [Color] of the item." msgstr "Текст за замовчуванням [Color] пункту." @@ -65673,9 +84566,15 @@ msgid "Text [Color] used when the item is hovered and not selected yet." msgstr "" "Текст [Color] використовується, коли елемент передається і не вибрано ще." +msgid "Text [Color] used when the item is hovered and selected." +msgstr "Текст [Колір] використовується, коли елемент наведено та вибрано." + msgid "The tint of text outline of the item." msgstr "Вміст текстового контуру виробу." +msgid "Text [Color] used when the item is selected, but not hovered." +msgstr "Текст [Колір] використовується, коли елемент вибрано, але не наведено." + msgid "" "[Color] of the guideline. The guideline is a line drawn between each row of " "items." @@ -65732,6 +84631,20 @@ msgstr "" msgid "[StyleBox] for the hovered, but not selected items." msgstr "[StyleBox] для обхвату, але не вибрані елементи." +msgid "" +"[StyleBox] for the hovered and selected items, used when the [ItemList] is " +"not being focused." +msgstr "" +"[StyleBox] для наведених і вибраних елементів, використовується, коли " +"[ItemList] не в фокусі." + +msgid "" +"[StyleBox] for the hovered and selected items, used when the [ItemList] is " +"being focused." +msgstr "" +"[StyleBox] для наведених і вибраних елементів, що використовується під час " +"фокусування [ItemList]." + msgid "The background style for the [ItemList]." msgstr "Стиль фону для [ItemList]." @@ -65747,9 +84660,85 @@ msgid "" msgstr "" "[StyleBox] для вибраних елементів, які використовуються при фокусі [ItemList]." +msgid "Represents a class from the Java Native Interface." +msgstr "Представляє клас із рідного інтерфейсу Java." + +msgid "" +"Represents a class from the Java Native Interface. It is returned from " +"[method JavaClassWrapper.wrap].\n" +"[b]Note:[/b] This class only works on Android. On any other platform, this " +"class does nothing.\n" +"[b]Note:[/b] This class is not to be confused with [JavaScriptObject]." +msgstr "" +"Представляє клас із рідного інтерфейсу Java. Його повертає [метод " +"JavaClassWrapper.wrap]. \n" +"[b]Примітка:[/b] цей клас працює лише на Android. На будь-якій іншій " +"платформі цей клас нічого не робить. \n" +"[b]Примітка:[/b] Цей клас не слід плутати з [JavaScriptObject]." + +msgid "Returns the Java class name." +msgstr "Повертає назву класу Java." + +msgid "" +"Returns the object's Java methods and their signatures as an [Array] of " +"dictionaries, in the same format as [method Object.get_method_list]." +msgstr "" +"Повертає методи Java об’єкта та їхні сигнатури як [масив] словників у тому " +"самому форматі, що й [метод Object.get_method_list]." + +msgid "Returns a [JavaClass] representing the Java parent class of this class." +msgstr "" +"Повертає [JavaClass], що представляє батьківський клас Java цього класу." + msgid "Provides access to the Java Native Interface." msgstr "Забезпечує доступ до Java рідного інтерфейсу." +msgid "" +"The JavaClassWrapper singleton provides a way for the Godot application to " +"send and receive data through the [url=https://developer.android.com/training/" +"articles/perf-jni]Java Native Interface[/url] (JNI).\n" +"[b]Note:[/b] This singleton is only available in Android builds.\n" +"[codeblock]\n" +"var LocalDateTime = JavaClassWrapper.wrap(\"java.time.LocalDateTime\")\n" +"var DateTimeFormatter = JavaClassWrapper.wrap(\"java.time.format." +"DateTimeFormatter\")\n" +"\n" +"var datetime = LocalDateTime.now()\n" +"var formatter = DateTimeFormatter.ofPattern(\"dd-MM-yyyy HH:mm:ss\")\n" +"\n" +"print(datetime.format(formatter))\n" +"[/codeblock]\n" +"[b]Warning:[/b] When calling Java methods, be sure to check [method " +"JavaClassWrapper.get_exception] to check if the method threw an exception." +msgstr "" +"Синглтон JavaClassWrapper надає програмі Godot спосіб надсилати й отримувати " +"дані через [url=https://developer.android.com/training/articles/perf-" +"jni]власний інтерфейс Java[/url] (JNI). \n" +"[b]Примітка.[/b] Цей синглтон доступний лише в збірках Android. \n" +"[кодовий блок] \n" +"var LocalDateTime = JavaClassWrapper.wrap(\"java.time.LocalDateTime\") \n" +"var DateTimeFormatter = JavaClassWrapper.wrap(\"java.time.format." +"DateTimeFormatter\") \n" +"\n" +"var datetime = LocalDateTime.now() \n" +"var formatter = DateTimeFormatter.ofPattern(\"dd-MM-yyyy HH:mm:ss\") \n" +"\n" +"print(datetime.format(formatter)) \n" +"[/codeblock] \n" +"[b]Попередження:[/b] Викликаючи методи Java, обов’язково перевірте [method " +"JavaClassWrapper.get_exception], щоб перевірити, чи метод викликав виняток." + +msgid "" +"Returns the Java exception from the last call into a Java class. If there was " +"no exception, it will return [code]null[/code].\n" +"[b]Note:[/b] This method only works on Android. On every other platform, this " +"method will always return [code]null[/code]." +msgstr "" +"Повертає виняток Java з останнього виклику в клас Java. Якщо не було винятку, " +"він поверне [code]null[/code]. \n" +"[b]Примітка.[/b] Цей спосіб працює лише на Android. На будь-якій іншій " +"платформі цей метод завжди повертатиме [code]null[/code]." + msgid "" "Wraps a class defined in Java, and returns it as a [JavaClass] [Object] type " "that Godot can interact with.\n" @@ -65764,6 +84753,24 @@ msgstr "" msgid "Represents an object from the Java Native Interface." msgstr "Представляє об'єкт з Java рідного інтерфейсу." +msgid "" +"Represents an object from the Java Native Interface. It can be returned from " +"Java methods called on [JavaClass] or other [JavaObject]s. See " +"[JavaClassWrapper] for an example.\n" +"[b]Note:[/b] This class only works on Android. On any other platform, this " +"class does nothing.\n" +"[b]Note:[/b] This class is not to be confused with [JavaScriptObject]." +msgstr "" +"Представляє об’єкт із рідного інтерфейсу Java. Його можна повернути з методів " +"Java, викликаних у [JavaClass] або інших [JavaObject]. Перегляньте " +"[JavaClassWrapper] для прикладу. \n" +"[b]Примітка:[/b] цей клас працює лише на Android. На будь-якій іншій " +"платформі цей клас нічого не робить. \n" +"[b]Примітка:[/b] Цей клас не слід плутати з [JavaScriptObject]." + +msgid "Returns the [JavaClass] that this object is an instance of." +msgstr "Повертає [JavaClass], екземпляром якого є цей об’єкт." + msgid "" "Singleton that connects the engine with the browser's JavaScript context in " "Web export." @@ -65792,6 +84799,24 @@ msgstr "" msgid "Exporting for the Web: Calling JavaScript from script" msgstr "Експорт за веб-сайт: Calling JavaScript from script" +msgid "" +"Creates a reference to a [Callable] that can be used as a callback by " +"JavaScript. The reference must be kept until the callback happens, or it " +"won't be called at all. See [JavaScriptObject] for usage.\n" +"[b]Note:[/b] The callback function must take exactly one [Array] argument, " +"which is going to be the JavaScript [url=https://developer.mozilla.org/en-US/" +"docs/Web/JavaScript/Reference/Functions/arguments]arguments object[/url] " +"converted to an array." +msgstr "" +"Створює посилання на [Callable], який може використовуватися як зворотний " +"виклик JavaScript. Посилання має зберігатися, доки не відбудеться зворотний " +"виклик, інакше воно не буде викликано взагалі. Перегляньте [JavaScriptObject] " +"для використання. \n" +"[b]Примітка.[/b] Функція зворотного виклику має приймати рівно один аргумент " +"[Array], який буде [url=https://developer.mozilla.org/en-US/docs/Web/" +"JavaScript/Reference/Functions/arguments]об’єктом аргументів[/url] " +"JavaScript, перетвореним на масив." + msgid "" "Creates a new JavaScript object using the [code]new[/code] constructor. The " "[param object] must a valid property of the JavaScript [code]window[/code]. " @@ -65856,6 +84881,30 @@ msgstr "" "один аргумент [Array], який міститиме JavaScript [code]arguments[/code]. Див. " "[JavaScriptObject] для використання." +msgid "" +"Returns [code]true[/code] if the given [param javascript_object] is of type " +"[url=https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/" +"Global_Objects/ArrayBuffer][code]ArrayBuffer[/code][/url], [url=https://" +"developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/" +"DataView][code]DataView[/code][/url], or one of the many [url=https://" +"developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/" +"TypedArray]typed array objects[/url]." +msgstr "" +"Повертає [code]true[/code], якщо заданий [параметр javascript_object] має тип " +"[url=https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/" +"Global_Objects/ArrayBuffer][code]ArrayBuffer[/code][/url], [url=https://" +"developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/" +"DataView][code]DataView[/code][/url] або один із багатьох типізованих масивів " +"[url=https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/" +"Global_Objects/TypedArray] об'єктів[/url]." + +msgid "" +"Returns a copy of [param javascript_buffer]'s contents as a " +"[PackedByteArray]. See also [method is_js_buffer]." +msgstr "" +"Повертає копію вмісту [param javascript_buffer] як [PackedByteArray]. " +"Дивіться також [метод is_js_buffer]." + msgid "" "Returns [code]true[/code] if a new version of the progressive web app is " "waiting to be activated.\n" @@ -65890,6 +84939,84 @@ msgstr "" msgid "A wrapper class for web native JavaScript objects." msgstr "Клас обгортки для веб- рідних об'єктів JavaScript." +msgid "" +"JavaScriptObject is used to interact with JavaScript objects retrieved or " +"created via [method JavaScriptBridge.get_interface], [method JavaScriptBridge." +"create_object], or [method JavaScriptBridge.create_callback].\n" +"[codeblock]\n" +"extends Node\n" +"\n" +"var _my_js_callback = JavaScriptBridge.create_callback(myCallback) # This " +"reference must be kept\n" +"var console = JavaScriptBridge.get_interface(\"console\")\n" +"\n" +"func _init():\n" +" var buf = JavaScriptBridge.create_object(\"ArrayBuffer\", 10) # new " +"ArrayBuffer(10)\n" +" print(buf) # Prints [JavaScriptObject:OBJECT_ID]\n" +" var uint8arr = JavaScriptBridge.create_object(\"Uint8Array\", buf) # new " +"Uint8Array(buf)\n" +" uint8arr[1] = 255\n" +" prints(uint8arr[1], uint8arr.byteLength) # Prints \"255 10\"\n" +"\n" +" # Prints \"Uint8Array(10) [ 0, 255, 0, 0, 0, 0, 0, 0, 0, 0 ]\" in the " +"browser's console.\n" +" console.log(uint8arr)\n" +"\n" +" # Equivalent of JavaScriptBridge: Array.from(uint8arr)." +"forEach(myCallback)\n" +" JavaScriptBridge.get_interface(\"Array\").from(uint8arr)." +"forEach(_my_js_callback)\n" +"\n" +"func myCallback(args):\n" +" # Will be called with the parameters passed to the \"forEach\" callback\n" +" # [0, 0, [JavaScriptObject:1173]]\n" +" # [255, 1, [JavaScriptObject:1173]]\n" +" # ...\n" +" # [0, 9, [JavaScriptObject:1180]]\n" +" print(args)\n" +"[/codeblock]\n" +"[b]Note:[/b] Only available in the Web platform." +msgstr "" +"JavaScriptObject використовується для взаємодії з об’єктами JavaScript, " +"отриманими або створеними за допомогою [метод JavaScriptBridge." +"get_interface], [метод JavaScriptBridge.create_object] або [метод " +"JavaScriptBridge.create_callback]. \n" +"[codeblock] \n" +"extends Node \n" +"\n" +"var _my_js_callback = JavaScriptBridge.create_callback(myCallback) # Це " +"посилання має зберігатися \n" +"var console = JavaScriptBridge.get_interface(\"console\") \n" +"\n" +"func _init(): \n" +" var buf = JavaScriptBridge.create_object(\"ArrayBuffer\", 10) # new " +"ArrayBuffer(10) \n" +" print(buf) # Друк [JavaScriptObject:OBJECT_ID] \n" +" var uint8arr = JavaScriptBridge.create_object(\"Uint8Array\", buf) # " +"новий Uint8Array(buf) \n" +" uint8arr[1] = 255 \n" +" prints(uint8arr[1], uint8arr.byteLength) # Виводить \"255 10\" \n" +"\n" +" # Виводить \"Uint8Array(10) [ 0, 255, 0, 0, 0, 0, 0, 0, 0, 0 ]\" у " +"консолі браузера. \n" +" console.log(uint8arr) \n" +"\n" +" # Еквівалент JavaScriptBridge: Array.from(uint8arr).forEach(myCallback) \n" +" JavaScriptBridge.get_interface(\"Масив\").from(uint8arr)." +"forEach(_my_js_callback) \n" +"\n" +"func myCallback(args): \n" +" # Викликатиметься з параметрами, переданими зворотному виклику " +"\"forEach\". \n" +" # [0, 0, [JavaScriptObject:1173]] \n" +" # [255, 1, [JavaScriptObject:1173]] \n" +" # ... \n" +" # [0, 9, [JavaScriptObject:1180]] \n" +" print(args) \n" +"[/codeblock] \n" +"[b]Примітка:[/b] доступно лише на веб-платформі." + msgid "" "Singleton that connects the engine with Android plugins to interface with " "native Android code." @@ -66016,6 +85143,121 @@ msgstr "" msgid "Helper class for creating and parsing JSON data." msgstr "Помічник класу створення та оформлення даних JSON." +msgid "" +"The [JSON] class enables all data types to be converted to and from a JSON " +"string. This is useful for serializing data, e.g. to save to a file or send " +"over the network.\n" +"[method stringify] is used to convert any data type into a JSON string.\n" +"[method parse] is used to convert any existing JSON data into a [Variant] " +"that can be used within Godot. If successfully parsed, use [member data] to " +"retrieve the [Variant], and use [method @GlobalScope.typeof] to check if the " +"Variant's type is what you expect. JSON Objects are converted into a " +"[Dictionary], but JSON data can be used to store [Array]s, numbers, [String]s " +"and even just a boolean.\n" +"[codeblock]\n" +"var data_to_send = [\"a\", \"b\", \"c\"]\n" +"var json_string = JSON.stringify(data_to_send)\n" +"# Save data\n" +"# ...\n" +"# Retrieve data\n" +"var json = JSON.new()\n" +"var error = json.parse(json_string)\n" +"if error == OK:\n" +" var data_received = json.data\n" +" if typeof(data_received) == TYPE_ARRAY:\n" +" print(data_received) # Prints the array.\n" +" else:\n" +" print(\"Unexpected data\")\n" +"else:\n" +" print(\"JSON Parse Error: \", json.get_error_message(), \" in \", " +"json_string, \" at line \", json.get_error_line())\n" +"[/codeblock]\n" +"Alternatively, you can parse strings using the static [method parse_string] " +"method, but it doesn't handle errors.\n" +"[codeblock]\n" +"var data = JSON.parse_string(json_string) # Returns null if parsing failed.\n" +"[/codeblock]\n" +"[b]Note:[/b] Both parse methods do not fully comply with the JSON " +"specification:\n" +"- Trailing commas in arrays or objects are ignored, instead of causing a " +"parser error.\n" +"- New line and tab characters are accepted in string literals, and are " +"treated like their corresponding escape sequences [code]\\n[/code] and " +"[code]\\t[/code].\n" +"- Numbers are parsed using [method String.to_float] which is generally more " +"lax than the JSON specification.\n" +"- Certain errors, such as invalid Unicode sequences, do not cause a parser " +"error. Instead, the string is cleaned up and an error is logged to the " +"console." +msgstr "" +"Клас [JSON] дозволяє конвертувати всі типи даних у рядок JSON і з нього. Це " +"корисно для серіалізації даних, напр. щоб зберегти у файл або надіслати через " +"мережу. \n" +"[метод stringify] використовується для перетворення будь-якого типу даних у " +"рядок JSON. \n" +"[method parse] використовується для перетворення будь-яких наявних даних JSON " +"у [Variant], який можна використовувати в Godot. У разі успішного аналізу " +"скористайтеся [даними про учасника], щоб отримати [Варіант], і використовуйте " +"[метод @GlobalScope.typeof], щоб перевірити, чи відповідає тип Варіанта тому, " +"що ви очікуєте. Об’єкти JSON перетворюються на [словник], але дані JSON можна " +"використовувати для зберігання [масивів], чисел, [рядків] і навіть просто " +"логічних значень. \n" +"[codeblock] \n" +"var data_to_send = [\"a\", \"b\", \"c\"] \n" +"var json_string = JSON.stringify(data_to_send) \n" +"# Збереження даних \n" +"# ... \n" +"# Отримати дані \n" +"var json = JSON.new() \n" +"var error = json.parse(json_string) \n" +"if error == OK: \n" +" var data_received = json.data \n" +" if typeof(data_received) == TYPE_ARRAY: \n" +" print(data_received) # Друкує масив. \n" +" else: \n" +" print(\"Неочікувані дані\") \n" +"else: \n" +" print(\"Помилка аналізу JSON: \", json.get_error_message(), \" in \", " +"json_string, \" at line \", json.get_error_line()) \n" +"[/codeblock] \n" +"Крім того, ви можете аналізувати рядки за допомогою статичного методу [method " +"parse_string], але він не обробляє помилки. \n" +"[codeblock] \n" +"var data = JSON.parse_string(json_string) # Повертає null, якщо розбір не " +"вдався. \n" +"[/codeblock] \n" +"[b]Примітка:[/b] Обидва методи аналізу не повністю відповідають специфікації " +"JSON: \n" +"— Кінцеві коми в масивах або об’єктах ігноруються, замість того, щоб " +"викликати помилку аналізатора. \n" +"- Нові символи рядка та табуляції приймаються в рядкових літералах і " +"обробляються як їхні відповідні керуючі послідовності [код]\\n[/код] і " +"[код]\\t[/код]. \n" +"- Числа аналізуються за допомогою [методу String.to_float], який зазвичай " +"більш м’який, ніж специфікація JSON. \n" +"- Певні помилки, такі як недійсні послідовності Unicode, не викликають " +"помилки синтаксичного аналізатора. Натомість рядок очищається, а помилка " +"реєструється на консолі." + +msgid "" +"Converts a native engine type to a JSON-compliant value.\n" +"By default, objects are ignored for security reasons, unless [param " +"full_objects] is [code]true[/code].\n" +"You can convert a native value to a JSON string like this:\n" +"[codeblock]\n" +"func encode_data(value, full_objects = false):\n" +" return JSON.stringify(JSON.from_native(value, full_objects))\n" +"[/codeblock]" +msgstr "" +"Перетворює нативний тип механізму на JSON-сумісне значення. \n" +"За умовчанням об’єкти ігноруються з міркувань безпеки, якщо [param " +"full_objects] не має значення [code]true[/code]. \n" +"Ви можете перетворити нативне значення на рядок JSON так: \n" +"[codeblock] \n" +"func encode_data(значення, full_objects = false): \n" +" return JSON.stringify(JSON.from_native(value, full_objects)) \n" +"[/codeblock]" + msgid "" "Returns [code]0[/code] if the last call to [method parse] was successful, or " "the line number where the parse failed." @@ -66124,58 +85366,79 @@ msgid "" "[/codeblock]" msgstr "" "Перетворює змінну [Variant] на текст JSON і повертає результат. Корисно для " -"серіалізації даних для зберігання або надсилання через мережу.\n" +"серіалізації даних для зберігання або надсилання через мережу. \n" "[b]Примітка:[/b] Специфікація JSON не визначає цілі чи типи з плаваючою " "точкою, а лише тип [i]число[/i]. Таким чином, перетворення Variant на текст " -"JSON перетворить усі числові значення на типи [float].\n" +"JSON перетворить усі числові значення на типи [float]. \n" "[b]Примітка:[/b] Якщо [param full_precision] має значення [code]true[/code], " "під час утворення рядків з плаваючою точкою ненадійні цифри утворюються в " -"рядки на додаток до надійних цифр, щоб гарантувати точне декодування.\n" -"Параметр [param indent] керує тим, чи мається відступ і як це відбувається; " +"рядки на додаток до надійних цифр, щоб гарантувати точне декодування. \n" +"Параметр [param indent] контролює, чи мається відступ і як це відбувається; " "його вміст буде використано там, де має бути відступ у виведених даних. " "Навіть такі пробіли, як [code]\" \"[/code], будуть працювати. [code]\\t[/" "code] і [code]\\n[/code] також можна використовувати для відступу табуляції " -"або для створення нового рядка для кожного відступу відповідно.\n" -"[b]Приклад результату:[/b]\n" -"[кодовий блок]\n" -"## JSON.stringify(my_dictionary)\n" +"або для створення нового рядка для кожного відступу відповідно. \n" +"[b]Приклад результату:[/b] \n" +"[codeblock] \n" +"## JSON.stringify(my_dictionary) \n" "{\"name\":\"my_dictionary\",\"version\":\"1.0.0\",\"entities\":[{\"name\":" -"\"entity_0\",\"value\":\"value_0\"},{\"name\":\"entity_1\" ,\"value\":" -"\"value_1\"}]}\n" +"\"entity_0\",\"value\":\"value_0\"},{\"name\":\"entity_1\",\"value\":" +"\"value_1\"}]} \n" "\n" -"## JSON.stringify(my_dictionary, \"\\t\")\n" +"## JSON.stringify(my_dictionary, \"\\t\") \n" "{\n" -" \"ім'я\": \"мій_словник\",\n" -" \"версія\": \"1.0.0\",\n" -" \"сутності\": [\n" -" {\n" -" \"ім'я\": \"сутність_0\",\n" -" \"значення\": \"значення_0\"\n" -" },\n" -" {\n" -" \"ім'я\": \"сутність_1\",\n" -" \"value\": \"value_1\"\n" -" }\n" -" ]\n" +" \"ім'я\": \"мій_словник\", \n" +" \"версія\": \"1.0.0\", \n" +" \"сутності\": [ \n" +" { \n" +" \"ім'я\": \"сутність_0\", \n" +" \"значення\": \"значення_0\" \n" +" }, \n" +" { \n" +" \"ім'я\": \"сутність_1\", \n" +" \"value\": \"value_1\" \n" +" } \n" +" ] \n" "}\n" "\n" -"## JSON.stringify(my_dictionary, \"...\")\n" +"## JSON.stringify(my_dictionary, \"...\") \n" "{\n" -"...\"ім'я\": \"мій_словник\",\n" -"...\"версія\": \"1.0.0\",\n" -"...\"сутності\": [\n" +"...\"ім'я\": \"мій_словник\", \n" +"...\"версія\": \"1.0.0\", \n" +"...\"сутності\": [ \n" "......{\n" -".........\"ім'я\": \"сутність_0\",\n" -".........\"значення\": \"значення_0\"\n" +".........\"ім'я\": \"сутність_0\", \n" +".........\"значення\": \"значення_0\" \n" "......},\n" "......{\n" -".........\"ім'я\": \"сутність_1\",\n" -".........\"значення\": \"значення_1\"\n" +".........\"ім'я\": \"сутність_1\", \n" +".........\"значення\": \"значення_1\" \n" "......}\n" "...]\n" "}\n" "[/codeblock]" +msgid "" +"Converts a JSON-compliant value that was created with [method from_native] " +"back to native engine types.\n" +"By default, objects are ignored for security reasons, unless [param " +"allow_objects] is [code]true[/code].\n" +"You can convert a JSON string back to a native value like this:\n" +"[codeblock]\n" +"func decode_data(string, allow_objects = false):\n" +" return JSON.to_native(JSON.parse_string(string), allow_objects)\n" +"[/codeblock]" +msgstr "" +"Перетворює JSON-сумісне значення, створене за допомогою [методу from_native], " +"назад у рідні типи механізмів. \n" +"За замовчуванням об’єкти ігноруються з міркувань безпеки, якщо [param " +"allow_objects] не має значення [code]true[/code]. \n" +"Ви можете перетворити рядок JSON назад на нативне значення так: \n" +"[codeblock] \n" +"func decode_data(рядок, allow_objects = false): \n" +" return JSON.to_native(JSON.parse_string(string), allow_objects) \n" +"[/codeblock]" + msgid "Contains the parsed JSON data in [Variant] form." msgstr "Містить дані парсованих JSON у формі [Variant]." @@ -66477,6 +85740,19 @@ msgstr "" "насичені формати тексту. Для цього використовуйте [RichTextLabel] замість " "цього." +msgid "" +"Returns the bounding rectangle of the character at position [param pos] in " +"the label's local coordinate system. If the character is a non-visual " +"character or [param pos] is outside the valid range, an empty [Rect2] is " +"returned. If the character is a part of a composite grapheme, the bounding " +"rectangle of the whole grapheme is returned." +msgstr "" +"Повертає обмежувальний прямокутник символу в позиції [param pos] у локальній " +"системі координат мітки. Якщо символ є невізуальним або [param pos] " +"знаходиться за межами допустимого діапазону, повертається порожній [Rect2]. " +"Якщо символ є частиною складеної графеми, повертається обмежувальний " +"прямокутник усієї графеми." + msgid "Returns the number of lines of text the Label has." msgstr "Повертає кількість рядків тексту, що має етикетку." @@ -66532,6 +85808,13 @@ msgstr "" "і заповнювати, або виправдати. Налаштуйте його на одну з констанцій [enum " "HorizontalAlignment]." +msgid "" +"Line fill alignment rules. See [enum TextServer.JustificationFlag] for more " +"information." +msgstr "" +"Правила вирівнювання заливки лінії. Для отримання додаткової інформації див. " +"[enum TextServer.JustificationFlag]." + msgid "" "A [LabelSettings] resource that can be shared between multiple [Label] nodes. " "Takes priority over theme properties." @@ -66549,6 +85832,13 @@ msgstr "" msgid "Limits the lines of text the node shows on screen." msgstr "Увімкніть рядки текстового вузла на екрані." +msgid "" +"String used as a paragraph separator. Each paragraph is processed " +"independently, in its own BiDi context." +msgstr "" +"Рядок, який використовується як роздільник абзаців. Кожен абзац обробляється " +"незалежно, у власному контексті BiDi." + msgid "Set BiDi algorithm override for the structured text." msgstr "Настроювання алгоритму BiDi для структурованого тексту." @@ -66639,6 +85929,11 @@ msgstr "" "рекомендується, оскільки контур шрифту може бути повністю закритий в цьому " "випадку." +msgid "" +"Vertical space between paragraphs. Added on top of [theme_item line_spacing]." +msgstr "" +"Вертикальний інтервал між абзацами. Додано поверх [theme_item line_spacing]." + msgid "The horizontal offset of the text's shadow." msgstr "Горизонтальний зсув тіні тексту." @@ -66936,6 +86231,11 @@ msgstr "Розмір тексту." msgid "The color of the outline." msgstr "Колір контуру." +msgid "" +"Vertical space between paragraphs. Added on top of [member line_spacing]." +msgstr "" +"Вертикальний інтервал між абзацами. Додано поверх [member line_spacing]." + msgid "" "Color of the shadow effect. If alpha is [code]0[/code], no shadow will be " "drawn." @@ -67422,6 +86722,9 @@ msgstr "" "робити тіні з'являються зернові та можуть викликати інші небажані артефакти. " "Намагайтеся тримати якомога ближче за замовчуванням." +msgid "The light will only cast shadows using objects in the selected layers." +msgstr "Світло лише відкидає тіні, використовуючи об’єкти у вибраних шарах." + msgid "" "If [code]true[/code], the light will cast real-time shadows. This has a " "significant performance cost. Only enable shadow rendering when it makes a " @@ -67614,6 +86917,67 @@ msgstr "" msgid "Computes and stores baked lightmaps for fast global illumination." msgstr "Склади та магазини запечені мапи для швидкого глобального освітлення." +msgid "" +"The [LightmapGI] node is used to compute and store baked lightmaps. Lightmaps " +"are used to provide high-quality indirect lighting with very little light " +"leaking. [LightmapGI] can also provide rough reflections using spherical " +"harmonics if [member directional] is enabled. Dynamic objects can receive " +"indirect lighting thanks to [i]light probes[/i], which can be automatically " +"placed by setting [member generate_probes_subdiv] to a value other than " +"[constant GENERATE_PROBES_DISABLED]. Additional lightmap probes can also be " +"added by creating [LightmapProbe] nodes. The downside is that lightmaps are " +"fully static and cannot be baked in an exported project. Baking a " +"[LightmapGI] node is also slower compared to [VoxelGI].\n" +"[b]Procedural generation:[/b] Lightmap baking functionality is only available " +"in the editor. This means [LightmapGI] is not suited to procedurally " +"generated or user-built levels. For procedurally generated or user-built " +"levels, use [VoxelGI] or SDFGI instead (see [member Environment." +"sdfgi_enabled]).\n" +"[b]Performance:[/b] [LightmapGI] provides the best possible run-time " +"performance for global illumination. It is suitable for low-end hardware " +"including integrated graphics and mobile devices.\n" +"[b]Note:[/b] Due to how lightmaps work, most properties only have a visible " +"effect once lightmaps are baked again.\n" +"[b]Note:[/b] Lightmap baking on [CSGShape3D]s and [PrimitiveMesh]es is not " +"supported, as these cannot store UV2 data required for baking.\n" +"[b]Note:[/b] If no custom lightmappers are installed, [LightmapGI] can only " +"be baked from devices that support the Forward+ or Mobile renderers.\n" +"[b]Note:[/b] The [LightmapGI] node only bakes light data for child nodes of " +"its parent. Nodes further up the hierarchy of the scene will not be baked." +msgstr "" +"Вузол [LightmapGI] використовується для обчислення та зберігання запечених " +"карт світла. Карти освітлення використовуються для забезпечення " +"високоякісного непрямого освітлення з дуже невеликим витоком світла. " +"[LightmapGI] також може забезпечити приблизні відбиття за допомогою сферичних " +"гармонік, якщо ввімкнено [member directional]. Динамічні об’єкти можуть " +"отримувати непряме освітлення завдяки [i]світловим пробникам[/i], які можна " +"автоматично розміщувати, установивши для [члена generate_probes_subdiv] " +"значення, відмінне від [константи GENERATE_PROBES_DISABLED]. Додаткові зонди " +"карт освітлення також можна додати, створивши вузли [LightmapProbe]. " +"Недоліком є те, що світлові карти є повністю статичними і не можуть бути " +"запікані в експортованому проекті. Запікання вузла [LightmapGI] також " +"повільніше порівняно з [VoxelGI]. \n" +"[b]Процедурна генерація:[/b] функція запікання карти світла доступна лише в " +"редакторі. Це означає, що [LightmapGI] не підходить для процедурно " +"згенерованих або створених користувачами рівнів. Для процедурно згенерованих " +"або створених користувачами рівнів замість цього використовуйте [VoxelGI] або " +"SDFGI (див. [member Environment.sdfgi_enabled]). \n" +"[b]Продуктивність: [/b] [LightmapGI] забезпечує найкращу продуктивність під " +"час виконання для глобального освітлення. Він підходить для апаратного " +"забезпечення низького рівня, включаючи інтегровану графіку та мобільні " +"пристрої. \n" +"[b]Примітка:[/b] Через те, як працюють карти освітлення, більшість " +"властивостей мають видимий ефект лише після повторного запікання карт " +"освітлення. \n" +"[b]Примітка.[/b] Запікання карти освітлення на [CSGShape3D] і [PrimitiveMesh] " +"не підтримується, оскільки вони не можуть зберігати дані UV2, необхідні для " +"запікання. \n" +"[b]Примітка.[/b] Якщо не встановлено користувальницькі інструменти " +"відображення світла, [LightmapGI] можна створити лише з пристроїв, які " +"підтримують засоби візуалізації Forward+ або Mobile. \n" +"[b]Примітка: [/b] Вузол [LightmapGI] записує легкі дані лише для дочірніх " +"вузлів свого батька. Вузли вище в ієрархії сцени не будуть запікатися." + msgid "Using Lightmap global illumination" msgstr "Використання глобального освітлення Lightmap" @@ -67792,6 +87156,104 @@ msgstr "" "коментар max_texture_size] за замовчуванням значення [code]16384[/code] if " "unsure." +msgid "" +"The quality preset to use when baking lightmaps. This affects bake times, but " +"output file sizes remain mostly identical across quality levels.\n" +"To further speed up bake times, decrease [member bounces], disable [member " +"use_denoiser] and/or decrease [member texel_scale].\n" +"To further increase quality, enable [member supersampling] and/or increase " +"[member texel_scale]." +msgstr "" +"Попереднє налаштування якості для використання під час запікання карт " +"освітлення. Це впливає на час запікання, але розмір вихідного файлу " +"залишається переважно однаковим на всіх рівнях якості. \n" +"Щоб ще більше пришвидшити час запікання, зменште [member bounces], вимкніть " +"[member use_denoiser] і/або зменште [member texel_scale]. \n" +"Щоб ще більше підвищити якість, увімкніть [member supersampling] і/або " +"збільште [member texel_scale]." + +msgid "" +"The shadowmasking policy to use for directional shadows on static objects " +"that are baked with this [LightmapGI] instance.\n" +"Shadowmasking allows [DirectionalLight3D] nodes to cast shadows even outside " +"the range defined by their [member DirectionalLight3D." +"directional_shadow_max_distance] property. This is done by baking a texture " +"that contains a shadowmap for the directional light, then using this texture " +"according to the current shadowmask mode.\n" +"[b]Note:[/b] The shadowmask texture is only created if [member " +"shadowmask_mode] is not [constant LightmapGIData.SHADOWMASK_MODE_NONE]. To " +"see a difference, you need to bake lightmaps again after switching from " +"[constant LightmapGIData.SHADOWMASK_MODE_NONE] to any other mode." +msgstr "" +"Політика маскування тіней, яка використовується для спрямованих тіней на " +"статичних об’єктах, запечених за допомогою цього екземпляра [LightmapGI]. \n" +"Shadowmasking дозволяє вузлам [DirectionalLight3D] відкидати тіні навіть за " +"межами діапазону, визначеного їх властивістю [member DirectionalLight3D." +"directional_shadow_max_distance]. Це робиться шляхом запікання текстури, яка " +"містить карту тіней для спрямованого світла, а потім використання цієї " +"текстури відповідно до поточного режиму маски тіней. \n" +"[b]Примітка.[/b] Текстура тіньової маски створюється, лише якщо [member " +"shadowmask_mode] не є [constant LightmapGIData.SHADOWMASK_MODE_NONE]. Щоб " +"побачити різницю, потрібно знову запекти карти світла після переходу з " +"[constant LightmapGIData.SHADOWMASK_MODE_NONE] на будь-який інший режим." + +msgid "" +"If [code]true[/code], lightmaps are baked with the texel scale multiplied " +"with [member supersampling_factor] and downsampled before saving the lightmap " +"(so the effective texel density is identical to having supersampling " +"disabled).\n" +"Supersampling provides increased lightmap quality with less noise, smoother " +"shadows and better shadowing of small-scale features in objects. However, it " +"may result in significantly increased bake times and memory usage while " +"baking lightmaps. Padding is automatically adjusted to avoid increasing light " +"leaking." +msgstr "" +"Якщо [code]true[/code], карти освітлення запікаються зі шкалою текселів, " +"помноженою на [member supersampling_factor], і перед збереженням карти " +"освітлення зменшується дискретизація (тому ефективна щільність текселів є " +"ідентичною щільності супервибірки вимкнуто). \n" +"Надвибірка забезпечує покращену якість карти освітлення з меншим шумом, більш " +"гладкими тінями та кращим затіненням дрібних елементів об’єктів. Однак це " +"може призвести до значного збільшення часу запікання та використання пам’яті " +"під час запікання світлових карт. Підкладка автоматично регулюється, щоб " +"уникнути збільшення витоку світла." + +msgid "" +"The factor by which the texel density is multiplied for supersampling. For " +"best results, use an integer value. While fractional values are allowed, they " +"can result in increased light leaking and a blurry lightmap.\n" +"Higher values may result in better quality, but also increase bake times and " +"memory usage while baking.\n" +"See [member supersampling] for more information." +msgstr "" +"Коефіцієнт, на який множиться щільність текселів для супердискретизації. Для " +"отримання найкращих результатів використовуйте ціле число. Хоча дробові " +"значення дозволені, вони можуть призвести до збільшення витоку світла та " +"розмитості карти освітлення. \n" +"Вищі значення можуть призвести до кращої якості, але також збільшити час " +"випікання та використання пам’яті під час випікання. \n" +"Для отримання додаткової інформації див. [супервибірка учасників]." + +msgid "" +"Scales the lightmap texel density of all meshes for the current bake. This is " +"a multiplier that builds upon the existing lightmap texel size defined in " +"each imported 3D scene, along with the per-mesh density multiplier (which is " +"designed to be used when the same mesh is used at different scales). Lower " +"values will result in faster bake times.\n" +"For example, doubling [member texel_scale] doubles the lightmap texture " +"resolution for all objects [i]on each axis[/i], so it will [i]quadruple[/i] " +"the texel count." +msgstr "" +"Масштабує щільність текселів на карті освітлення всіх сіток для поточного " +"запікання. Це множник, який базується на наявному розмірі текселів карти " +"освітлення, визначеному в кожній імпортованій 3D-сцені, а також множнику " +"щільності для кожної сітки (який призначений для використання, коли та сама " +"сітка використовується в різних масштабах). Менші значення призведуть до " +"швидшого часу випікання. \n" +"Наприклад, подвоєння [member texel_scale] подвоює роздільну здатність " +"текстури світлової карти для всіх об’єктів [i]на кожній осі[/i], тому " +"кількість текселів [i]збільшується вчетверо[/i]." + msgid "" "If [code]true[/code], uses a GPU-based denoising algorithm on the generated " "lightmap. This eliminates most noise within the generated lightmap at the " @@ -68069,6 +87531,57 @@ msgstr "Мапа накладної текстури, створеної бли msgid "The lightmap atlas textures generated by the lightmapper." msgstr "Легка карта атласних текстур, створених Lightmapper." +msgid "The shadowmask atlas textures generated by the lightmapper." +msgstr "Текстури атласу тіньової маски, створені програмою Lightmapper." + +msgid "" +"Shadowmasking is disabled. No shadowmask texture will be created when baking " +"lightmaps. Existing shadowmask textures will be removed during baking." +msgstr "" +"Маскування тіней вимкнено. Під час запікання карт освітлення текстура " +"тіньової маски не створюватиметься. Існуючі текстури тіньової маски буде " +"видалено під час запікання." + +msgid "" +"Shadowmasking is enabled. Directional shadows that are outside the [member " +"DirectionalLight3D.directional_shadow_max_distance] will be rendered using " +"the shadowmask texture. Shadows that are inside the range will be rendered " +"using real-time shadows exclusively. This mode allows for more precise real-" +"time shadows up close, without the potential \"smearing\" effect that can " +"occur when using lightmaps with a high texel size. The downside is that when " +"the camera moves fast, the transition between the real-time light and " +"shadowmask can be obvious. Also, objects that only have shadows baked in the " +"shadowmask (and no real-time shadows) won't display any shadows up close." +msgstr "" +"Тіньове маскування ввімкнено. Спрямовані тіні, які знаходяться за межами " +"[члена DirectionalLight3D.directional_shadow_max_distance], відображатимуться " +"за допомогою текстури тіньової маски. Тіні, які знаходяться в межах " +"діапазону, відображатимуться виключно за допомогою тіней у реальному часі. " +"Цей режим дозволяє отримати точніші тіні в реальному часі зблизька без " +"потенційного ефекту «розмазування», який може виникнути під час використання " +"карт освітлення з великим розміром текселів. Недоліком є те, що коли камера " +"рухається швидко, перехід між світлом у реальному часі та тіньовою маскою " +"може бути очевидним. Крім того, об’єкти, які мають лише тіні, запечені в " +"тіньовій масці (і не мають тіней у реальному часі), не відображатимуть тіні " +"зблизька." + +msgid "" +"Shadowmasking is enabled. Directional shadows will be rendered with real-time " +"shadows overlaid on top of the shadowmask texture. This mode makes for " +"smoother shadow transitions when the camera moves fast, at the cost of a " +"potential smearing effect for directional shadows that are up close (due to " +"the real-time shadow being mixed with a low-resolution shadowmask). Objects " +"that only have shadows baked in the shadowmask (and no real-time shadows) " +"will keep their shadows up close." +msgstr "" +"Тіньове маскування ввімкнено. Спрямовані тіні відображатимуться з тінями в " +"реальному часі, накладеними поверх текстури тіньової маски. Цей режим " +"забезпечує більш плавні переходи тіней, коли камера рухається швидко, ціною " +"потенційного ефекту розмазування спрямованих тіней, розташованих поблизу " +"(через те, що тінь у реальному часі змішується з тіньовою маскою низької " +"роздільної здатності). Об’єкти, які мають лише тіні, запечені в тіньовій " +"масці (і не тіні в реальному часі), збережуть свої тіні поблизу." + msgid "Abstract class extended by lightmappers, for use in [LightmapGI]." msgstr "Для використання в [LightmapGI]." @@ -68090,6 +87603,24 @@ msgid "The built-in GPU-based lightmapper for use with [LightmapGI]." msgstr "" "Вбудований графічний процесор на основі GPU для використання з [LightmapGI]." +msgid "" +"LightmapperRD (\"RD\" stands for [RenderingDevice]) is the built-in GPU-based " +"lightmapper for use with [LightmapGI]. On most dedicated GPUs, it can bake " +"lightmaps much faster than most CPU-based lightmappers. LightmapperRD uses " +"compute shaders to bake lightmaps, so it does not require CUDA or OpenCL " +"libraries to be installed to be usable.\n" +"[b]Note:[/b] Only usable when using the RenderingDevice backend (Forward+ or " +"Mobile renderers), not Compatibility." +msgstr "" +"LightmapperRD («RD» означає [RenderingDevice]) — це вбудований світловий " +"маппер на основі GPU для використання з [LightmapGI]. На більшості " +"спеціалізованих графічних процесорів він може записувати світлові карти " +"набагато швидше, ніж більшість процесорів. LightmapperRD використовує " +"обчислювальні шейдери для створення світлових карт, тому для використання не " +"потрібно встановлювати бібліотеки CUDA або OpenCL. \n" +"[b]Примітка:[/b] можна використовувати лише під час використання серверної " +"частини RenderingDevice (Forward+ або Mobile renderers), а не для сумісності." + msgid "" "Represents a single manually placed probe for dynamic object lighting with " "[LightmapGI]." @@ -68314,6 +87845,14 @@ msgstr "" msgid "The polyline's width." msgstr "Ширина поліліну." +msgid "" +"The polyline's width curve. The width of the polyline over its length will be " +"equivalent to the value of the width curve over its domain. The width curve " +"should be a unit [Curve]." +msgstr "" +"Крива ширини полілінії. Ширина полілінії по її довжині буде еквівалентна " +"значенню кривої ширини по її області. Крива ширини має бути одиницею [Крива]." + msgid "" "Makes the polyline's joints pointy, connecting the sides of the two segments " "by extending them until they intersect. If the rotation of a joint is too big " @@ -68375,6 +87914,119 @@ msgstr "" msgid "An input field for single-line text." msgstr "Вхідне поле для однолінійного тексту." +msgid "" +"[LineEdit] provides an input field for editing a single line of text.\n" +"- When the [LineEdit] control is focused using the keyboard arrow keys, it " +"will only gain focus and not enter edit mode.\n" +"- To enter edit mode, click on the control with the mouse, see also [member " +"keep_editing_on_text_submit].\n" +"- To exit edit mode, press [code]ui_text_submit[/code] or [code]ui_cancel[/" +"code] (by default [kbd]Escape[/kbd]) actions.\n" +"- Check [method edit], [method unedit], [method is_editing], and [signal " +"editing_toggled] for more information.\n" +"[b]Important:[/b]\n" +"- Focusing the [LineEdit] with [code]ui_focus_next[/code] (by default " +"[kbd]Tab[/kbd]) or [code]ui_focus_prev[/code] (by default [kbd]Shift + Tab[/" +"kbd]) or [method Control.grab_focus] still enters edit mode (for " +"compatibility).\n" +"[LineEdit] features many built-in shortcuts that are always available " +"([kbd]Ctrl[/kbd] here maps to [kbd]Cmd[/kbd] on macOS):\n" +"- [kbd]Ctrl + C[/kbd]: Copy\n" +"- [kbd]Ctrl + X[/kbd]: Cut\n" +"- [kbd]Ctrl + V[/kbd] or [kbd]Ctrl + Y[/kbd]: Paste/\"yank\"\n" +"- [kbd]Ctrl + Z[/kbd]: Undo\n" +"- [kbd]Ctrl + ~[/kbd]: Swap input direction.\n" +"- [kbd]Ctrl + Shift + Z[/kbd]: Redo\n" +"- [kbd]Ctrl + U[/kbd]: Delete text from the caret position to the beginning " +"of the line\n" +"- [kbd]Ctrl + K[/kbd]: Delete text from the caret position to the end of the " +"line\n" +"- [kbd]Ctrl + A[/kbd]: Select all text\n" +"- [kbd]Up Arrow[/kbd]/[kbd]Down Arrow[/kbd]: Move the caret to the beginning/" +"end of the line\n" +"On macOS, some extra keyboard shortcuts are available:\n" +"- [kbd]Cmd + F[/kbd]: Same as [kbd]Right Arrow[/kbd], move the caret one " +"character right\n" +"- [kbd]Cmd + B[/kbd]: Same as [kbd]Left Arrow[/kbd], move the caret one " +"character left\n" +"- [kbd]Cmd + P[/kbd]: Same as [kbd]Up Arrow[/kbd], move the caret to the " +"previous line\n" +"- [kbd]Cmd + N[/kbd]: Same as [kbd]Down Arrow[/kbd], move the caret to the " +"next line\n" +"- [kbd]Cmd + D[/kbd]: Same as [kbd]Delete[/kbd], delete the character on the " +"right side of caret\n" +"- [kbd]Cmd + H[/kbd]: Same as [kbd]Backspace[/kbd], delete the character on " +"the left side of the caret\n" +"- [kbd]Cmd + A[/kbd]: Same as [kbd]Home[/kbd], move the caret to the " +"beginning of the line\n" +"- [kbd]Cmd + E[/kbd]: Same as [kbd]End[/kbd], move the caret to the end of " +"the line\n" +"- [kbd]Cmd + Left Arrow[/kbd]: Same as [kbd]Home[/kbd], move the caret to the " +"beginning of the line\n" +"- [kbd]Cmd + Right Arrow[/kbd]: Same as [kbd]End[/kbd], move the caret to the " +"end of the line\n" +"[b]Note:[/b] Caret movement shortcuts listed above are not affected by " +"[member shortcut_keys_enabled]." +msgstr "" +"[LineEdit] надає поле введення для редагування одного рядка тексту. \n" +"- Коли елемент керування [LineEdit] фокусується за допомогою клавіш зі " +"стрілками на клавіатурі, він лише отримує фокус, а не переходить у режим " +"редагування. \n" +"- Щоб увійти в режим редагування, клацніть на елементі керування мишею, див. " +"також [member keep_editing_on_text_submit]. \n" +"- Щоб вийти з режиму редагування, натисніть дії [code]ui_text_submit[/code] " +"або [code]ui_cancel[/code] (за умовчанням [kbd]Escape[/kbd]). \n" +"- Для отримання додаткової інформації перевірте [method edit], [method " +"unedit], [method is_editing] і [signal editing_toggled]. \n" +"[b]Важливо:[/b] \n" +"- Фокусування [LineEdit] за допомогою [code]ui_focus_next[/code] (за " +"замовчуванням [kbd]Tab[/kbd]) або [code]ui_focus_prev[/code] (за " +"замовчуванням [kbd]Shift + Tab[/kbd]) або [метод Control.grab_focus] все ще " +"переходить у режим редагування (для сумісності). \n" +"[LineEdit] містить багато вбудованих ярликів, які завжди доступні ([kbd]Ctrl[/" +"kbd] тут відповідає [kbd]Cmd[/kbd] у macOS): \n" +"- [kbd]Ctrl + C[/kbd]: Копіювати \n" +"- [kbd]Ctrl + X[/kbd]: Вирізати \n" +"- [kbd]Ctrl + V[/kbd] або [kbd]Ctrl + Y[/kbd]: Вставити/\"витягнути\" \n" +"- [kbd]Ctrl + Z[/kbd]: Скасувати \n" +"- [kbd]Ctrl + ~[/kbd]: Поміняти напрямок введення. \n" +"- [kbd]Ctrl + Shift + Z[/kbd]: повторити \n" +"- [kbd]Ctrl + U[/kbd]: Видалити текст від позиції каретки до початку рядка \n" +"- [kbd]Ctrl + K[/kbd]: Видалити текст від позиції каретки до кінця рядка \n" +"- [kbd]Ctrl + A[/kbd]: виділення всього тексту \n" +"- [kbd]Стрілка вгору[/kbd]/[kbd]Стрілка вниз[/kbd]: перемістити курсор на " +"початок/кінець рядка \n" +"У macOS доступні додаткові комбінації клавіш: \n" +"- [kbd]Cmd + F[/kbd]: Те саме, що [kbd]Стрілка вправо[/kbd], перемістіть " +"курсор на один символ праворуч \n" +"- [kbd]Cmd + B[/kbd]: Те саме, що [kbd]Стрілка вліво[/kbd], перемістіть " +"курсор на один символ ліворуч \n" +"- [kbd]Cmd + P[/kbd]: те саме, що [kbd]Стрілка вгору[/kbd], переміщення " +"каретки на попередній рядок \n" +"- [kbd]Cmd + N[/kbd]: Те саме, що [kbd]Стрілка вниз[/kbd], переміщення " +"каретки на наступний рядок \n" +"- [kbd]Cmd + D[/kbd]: те саме, що [kbd]Delete[/kbd], видалення символу з " +"правого боку каретки \n" +"- [kbd]Cmd + H[/kbd]: Те саме, що [kbd]Backspace[/kbd], видалення символу " +"зліва від каретки \n" +"- [kbd]Cmd + A[/kbd]: те саме, що [kbd]Home[/kbd], перемістити курсор на " +"початок рядка \n" +"- [kbd]Cmd + E[/kbd]: те саме, що [kbd]End[/kbd], перемістити курсор у кінець " +"рядка \n" +"- [kbd]Cmd + стрілка вліво[/kbd]: те саме, що [kbd]Home[/kbd], перемістіть " +"курсор на початок рядка \n" +"- [kbd]Cmd + стрілка вправо[/kbd]: те саме, що [kbd]End[/kbd], перемістіть " +"курсор у кінець рядка \n" +"[b]Примітка:[/b] [member shortcut_keys_enabled] не впливає на наведені вище " +"ярлики переміщення курсору." + +msgid "" +"Applies text from the [url=https://en.wikipedia.org/wiki/Input_method]Input " +"Method Editor[/url] (IME) and closes the IME if it is open." +msgstr "" +"Застосовує текст із [url=https://en.wikipedia.org/wiki/Input_method]Редактора " +"методів введення[/url] (IME) і закриває IME, якщо він відкритий." + msgid "" "Closes the [url=https://en.wikipedia.org/wiki/Input_method]Input Method " "Editor[/url] (IME) if it is open. Any text in the IME will be lost." @@ -68403,6 +88055,14 @@ msgstr "" msgid "Clears the current selection." msgstr "Очищає поточний вибір." +msgid "" +"Allows entering edit mode whether the [LineEdit] is focused or not.\n" +"See also [member keep_editing_on_text_submit]." +msgstr "" +"Дозволяє ввійти в режим редагування, незалежно від того, у фокусі [LineEdit] " +"чи ні.\n" +"Дивіться також [member keep_editing_on_text_submit]." + msgid "" "Returns the [PopupMenu] of this [LineEdit]. By default, this menu is " "displayed when right-clicking on the [LineEdit].\n" @@ -68450,51 +88110,53 @@ msgid "" "cause a crash. If you wish to hide it or any of its children, use their " "[member Window.visible] property." msgstr "" -"Повернення [PopupMenu] цього [LineEdit]. За замовчуванням, це меню " -"відображається при правому зверненні на [LineEdit].\n" -"Ви можете додати спеціальні елементи меню або видалити стандартні. Ми " -"впевнені, що Ваші ідентифікатори не суперечать стандартам. Наприклад:\n" -"[блоки коду]\n" -"[видання]\n" -"Func _ready():\n" -"var меню = get_menu()\n" -"# Видалити всі елементи після \"Редо\".\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"# Додати спеціальні товари.\n" -"меню.add_separator()\n" -"Меню.add_item(\"Дата вставки\", MENU_MAX + 1)\n" -"# Зворотній дзвінок.\n" -"JavaScript licenses API Веб-сайт\n" +"Повертає [PopupMenu] цього [LineEdit]. За замовчуванням це меню " +"відображається, якщо клацнути правою кнопкою миші [LineEdit]. \n" +"Ви можете додати власні пункти меню або видалити стандартні. Переконайтеся, " +"що ваші ідентифікатори не конфліктують зі стандартними (див. [enum " +"MenuItems]). Наприклад: \n" +"[codeblocks] \n" +"[gdscript] \n" +"func _ready(): \n" +" var menu = get_menu() \n" +" # Видалити всі елементи після \"Повторити\". \n" +" menu.item_count = menu.get_item_index(MENU_REDO) + 1 \n" +" # Додайте спеціальні елементи. \n" +" menu.add_separator() \n" +" menu.add_item(\"Insert date\", MENU_MAX + 1) \n" +" # Підключити зворотній дзвінок. \n" +" menu.id_pressed.connect(_on_item_pressed) \n" "\n" -"Func _on_item_pressed(id):\n" -"якщо id == MENU_MAX + 1:\n" -"вставка_text_at_caret(Time.get_date_string__system()))\n" -"[/gdscript]\n" -"[csharp]\n" -"public override _Читати()\n" -"Довідник\n" -"var меню = GetMenu();\n" -"(Українська) Видалити всі елементи після \"Редо\".\n" -"меню.ItemCount = меню.GetItemIndex(LineEdit.MenuItems.Redo) + 1;\n" -"(Українська) Додати спеціальні товари.\n" -"меню.AddSeparator();\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"(Українська) Додати обробник подій.\n" -"Меню IdPressed += OnItemПресований;\n" -"Про нас\n" +"func _on_item_pressed(id): \n" +" if id == MENU_MAX + 1: \n" +" insert_text_at_caret(Time.get_date_string_from_system()) \n" +"[/gdscript] \n" +"[csharp] \n" +"public override void _Ready() \n" +"{\n" +" var menu = GetMenu(); \n" +" // Видалити всі елементи після \"Redo\". \n" +" menu.ItemCount = menu.GetItemIndex(LineEdit.MenuItems.Redo) + 1; \n" +" // Додати власні елементи. \n" +" menu.AddSeparator(); \n" +" menu.AddItem(\"Insert date\", LineEdit.MenuItems.Max + 1); \n" +" // Додати обробник події. \n" +" menu.IdPressed += OnItemPressed; \n" +"}\n" "\n" -"public void OnItemПресована(int id)\n" -"Довідник\n" -"Якщо (id= LineEdit.MenuItems.Max + 1 час\n" -"Довідник\n" -"InsertTextAtCaret(Time.GetDateStringFromSystem());\n" -"Про нас\n" -"Про нас\n" -"[/csharp]\n" -"[/codeblocks]\n" -"[b]Навігація:[/b] Це необхідний внутрішній вузол, видаляючи і звільняючи його " -"може призвести до аварії. Якщо ви хочете приховати його або будь-який з своїх " -"дітей, скористайтеся їх [пам'ятне вікно.видиме]." +"public void OnItemPressed(int id) \n" +"{\n" +" if (id == LineEdit.MenuItems.Max + 1) \n" +" { \n" +" InsertTextAtCaret(Time.GetDateStringFromSystem()); \n" +" } \n" +"}\n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Попередження:[/b] Це обов’язковий внутрішній вузол, його видалення та " +"звільнення може призвести до збою. Якщо ви бажаєте приховати його чи будь-" +"який із його дочірніх елементів, скористайтеся властивістю [member Window." +"visible]." msgid "" "Returns the scroll offset due to [member caret_column], as a number of " @@ -68534,6 +88196,9 @@ msgstr "" "Вставки [param text] у догляді. Якщо отримане значення більше, ніж [пам'ятний " "максимум_довжина], нічого не буває." +msgid "Returns whether the [LineEdit] is being edited." +msgstr "Повертає інформацію про те, чи редагується [LineEdit]." + msgid "" "Returns whether the menu is visible. Use this instead of [code]get_menu()." "visible[/code] to improve performance (so the creation of the menu is " @@ -68564,26 +88229,29 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Виберіть символи всередині [LineEdit] між [param] і [param to]. За " -"замовчуванням [param] знаходиться на початку і [param to] в кінці.\n" -"[блоки коду]\n" -"[видання]\n" -"JavaScript licenses API Веб-сайт\n" -"вибрати() # Оберемо \"Велком\".\n" -"вибрати(4) # Обрати \"ме\".\n" -"виберіть \"Lco\".\n" -"[/gdscript]\n" -"[csharp]\n" -"Текст = \"Велком\";\n" -"Виберіть(); // Підберемо \"Велком\".\n" -"Виберіть(4); // Підберемо «ме».\n" -"Виберіть(2, 5); // Підберемо \"лько\".\n" -"[/csharp]\n" +"Вибирає символи всередині [LineEdit] між [param from] і [param to]. За " +"замовчуванням [param from] знаходиться на початку, а [param to] у кінці. \n" +"[codeblocks] \n" +"[gdscript] \n" +"text = \"Ласкаво просимо\" \n" +"select() # Вибере \"Ласкаво просимо\". \n" +"select(4) # Вибере \"ome\". \n" +"select(2, 5) # Вибере \"lco\". \n" +"[/gdscript] \n" +"[csharp] \n" +"Text = \"Ласкаво просимо\"; \n" +"select(); // Вибере \"Ласкаво просимо\". \n" +"select(4); // Вибере \"ome\". \n" +"select(2, 5); // Вибере \"lco\". \n" +"[/csharp] \n" "[/codeblocks]" msgid "Selects the whole [String]." msgstr "Виберіть все [String]." +msgid "Allows exiting edit mode while preserving focus." +msgstr "Дозволяє вийти з режиму редагування зі збереженням фокусу." + msgid "Text alignment as defined in the [enum HorizontalAlignment] enum." msgstr "Вирівнювання тексту, як визначено в [enum HorizontalAlignment]." @@ -68647,6 +88315,9 @@ msgstr "" "Якщо [code]false[/code], існуючий текст не може бути змінений і новий текст " "не можна додавати." +msgid "If [code]true[/code], \"Emoji and Symbols\" menu is enabled." +msgstr "Якщо [code]true[/code], меню «Емодзі та символи» ввімкнено." + msgid "" "If [code]true[/code], the [LineEdit] width will increase to stay longer than " "the [member text]. It will [b]not[/b] compress if the [member text] is " @@ -68658,6 +88329,15 @@ msgstr "" msgid "If [code]true[/code], the [LineEdit] doesn't display decoration." msgstr "Якщо [code]true[/code], [LineEdit] не відображається прикраса." +msgid "" +"If [code]true[/code], the [LineEdit] will not exit edit mode when text is " +"submitted by pressing [code]ui_text_submit[/code] action (by default: " +"[kbd]Enter[/kbd] or [kbd]Kp Enter[/kbd])." +msgstr "" +"Якщо [code]true[/code], [LineEdit] не вийде з режиму редагування, коли текст " +"надсилається натисканням кнопки [code]ui_text_submit[/code] (за умовчанням: " +"[kbd]Enter[/kbd] або [kbd]Kp Enter[/kbd])." + msgid "" "Language code used for line-breaking and text shaping algorithms. If left " "empty, current locale is used instead." @@ -68665,6 +88345,65 @@ msgstr "" "Мовний код, який використовується для алгоритмів формування рядків та тексту. " "Якщо лівий порожній, то замість цього використовується струм." +msgid "" +"Maximum number of characters that can be entered inside the [LineEdit]. If " +"[code]0[/code], there is no limit.\n" +"When a limit is defined, characters that would exceed [member max_length] are " +"truncated. This happens both for existing [member text] contents when setting " +"the max length, or for new text inserted in the [LineEdit], including " +"pasting.\n" +"If any input text is truncated, the [signal text_change_rejected] signal is " +"emitted with the truncated substring as parameter:\n" +"[codeblocks]\n" +"[gdscript]\n" +"text = \"Hello world\"\n" +"max_length = 5\n" +"# `text` becomes \"Hello\".\n" +"max_length = 10\n" +"text += \" goodbye\"\n" +"# `text` becomes \"Hello good\".\n" +"# `text_change_rejected` is emitted with \"bye\" as parameter.\n" +"[/gdscript]\n" +"[csharp]\n" +"Text = \"Hello world\";\n" +"MaxLength = 5;\n" +"// `Text` becomes \"Hello\".\n" +"MaxLength = 10;\n" +"Text += \" goodbye\";\n" +"// `Text` becomes \"Hello good\".\n" +"// `text_change_rejected` is emitted with \"bye\" as parameter.\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Максимальна кількість символів, які можна ввести в [LineEdit]. Якщо [код]0[/" +"код], обмежень немає. \n" +"Якщо визначено обмеження, символи, які перевищуватимуть [member max_length], " +"скорочуються. Це відбувається як для наявного вмісту [member text] під час " +"встановлення максимальної довжини, так і для нового тексту, вставленого в " +"[LineEdit], включаючи вставлення. \n" +"Якщо будь-який вхідний текст усічено, сигнал [signal text_change_rejected] " +"випромінюється з усіченим підрядком як параметром: \n" +"[codeblocks] \n" +"[gdscript] \n" +"text = \"Привіт, світ\" \n" +"max_length = 5 \n" +"# `text` стає \"Hello\". \n" +"max_length = 10 \n" +"text += \"до побачення\" \n" +"# `text` стає \"Hello good\". \n" +"# `text_change_rejected` випускається з параметром \"bye\". \n" +"[/gdscript] \n" +"[csharp] \n" +"Text = \"Привіт, світ\"; \n" +"MaxLength = 5; \n" +"// `Текст` стає \"Привіт\". \n" +"MaxLength = 10; \n" +"Text += \"до побачення\"; \n" +"// `Текст` стає \"Hello good\". \n" +"// `text_change_rejected` випускається з параметром \"bye\". \n" +"[/csharp] \n" +"[/codeblocks]" + msgid "" "If [code]false[/code], using middle mouse button to paste clipboard will be " "disabled.\n" @@ -68745,6 +88484,11 @@ msgstr "" msgid "Specifies the type of virtual keyboard to show." msgstr "Визначає тип віртуальної клавіатури для відображення." +msgid "Emitted when the [LineEdit] switches in or out of edit mode." +msgstr "" +"Видається, коли [LineEdit] перемикається в режим редагування або виходить з " +"нього." + msgid "" "Emitted when appending text that overflows the [member max_length]. The " "appended text is truncated to fit [member max_length], and the part that " @@ -68757,6 +88501,15 @@ msgstr "" msgid "Emitted when the text changes." msgstr "Випробувано при зміні тексту." +msgid "" +"Emitted when the user presses the [code]ui_text_submit[/code] action (by " +"default: [kbd]Enter[/kbd] or [kbd]Kp Enter[/kbd]) while the [LineEdit] has " +"focus." +msgstr "" +"Видається, коли користувач натискає дію [code]ui_text_submit[/code] (за " +"замовчуванням: [kbd]Enter[/kbd] або [kbd]Kp Enter[/kbd]), коли [LineEdit] має " +"фокус." + msgid "Cuts (copies and clears) the selected text." msgstr "Вирізи (копії та очищення) вибраного тексту." @@ -68854,6 +88607,9 @@ msgstr "Вставте слово-приєднувач (WJ) символ." msgid "Inserts soft hyphen (SHY) character." msgstr "Вставки м'якого фена (ШІ) характеру." +msgid "Opens system emoji and symbol picker." +msgstr "Відкриває системний засіб вибору смайлів і символів." + msgid "Represents the size of the [enum MenuItems] enum." msgstr "Представляємо розмір [enum MenuItems] enum." @@ -68965,6 +88721,51 @@ msgstr "" "Режим доступу до тексту. Дивитися [enum LinkButton. ПідлайнМод] для доступних " "режимів." +msgid "" +"The [url=https://en.wikipedia.org/wiki/Uniform_Resource_Identifier]URI[/url] " +"for this [LinkButton]. If set to a valid URI, pressing the button opens the " +"URI using the operating system's default program for the protocol (via " +"[method OS.shell_open]). HTTP and HTTPS URLs open the default web browser.\n" +"[codeblocks]\n" +"[gdscript]\n" +"uri = \"https://godotengine.org\" # Opens the URL in the default web " +"browser.\n" +"uri = \"C:\\SomeFolder\" # Opens the file explorer at the given path.\n" +"uri = \"C:\\SomeImage.png\" # Opens the given image in the default viewing " +"app.\n" +"[/gdscript]\n" +"[csharp]\n" +"Uri = \"https://godotengine.org\"; // Opens the URL in the default web " +"browser.\n" +"Uri = \"C:\\SomeFolder\"; // Opens the file explorer at the given path.\n" +"Uri = \"C:\\SomeImage.png\"; // Opens the given image in the default viewing " +"app.\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"[url=https://en.wikipedia.org/wiki/Uniform_Resource_Identifier]URI[/url] для " +"цієї [LinkButton]. Якщо встановлено дійсний URI, натискання кнопки відкриває " +"URI за допомогою програми операційної системи за замовчуванням для протоколу " +"(через [метод OS.shell_open]). URL-адреси HTTP та HTTPS відкривають веб-" +"переглядач за умовчанням. \n" +"[codeblocks] \n" +"[gdscript] \n" +"uri = \"https://godotengine.org\" # Відкриває URL у веб-переглядачі за " +"замовчуванням. \n" +"uri = \"C:\\SomeFolder\" # Відкриває файловий провідник за вказаним шляхом. \n" +"uri = \"C:\\SomeImage.png\" # Відкриває дане зображення в програмі перегляду " +"за замовчуванням. \n" +"[/gdscript] \n" +"[csharp] \n" +"Uri = \"https://godotengine.org\"; // Відкриває URL у веб-переглядачі за " +"замовчуванням. \n" +"Uri = \"C:\\SomeFolder\"; // Відкриває файловий провідник за вказаним " +"шляхом. \n" +"Uri = \"C:\\SomeImage.png\"; // Відкриває дане зображення в програмі " +"перегляду за умовчанням. \n" +"[/csharp] \n" +"[/codeblocks]" + msgid "The LinkButton will always show an underline at the bottom of its text." msgstr "Кнопка Link завжди покаже в нижній частині його тексту." @@ -69032,15 +88833,519 @@ msgstr "" "візуального ефекту фокусу буде завдати шкоди клавіатурі / керованій " "навігації, тому це не рекомендується для причин доступності." +msgid "The [LookAtModifier3D] rotates a bone to look at a target." +msgstr "[LookAtModifier3D] повертає кістку, щоб дивитися на ціль." + +msgid "" +"This [SkeletonModifier3D] rotates a bone to look at a target. This is helpful " +"for moving a character's head to look at the player, rotating a turret to " +"look at a target, or any other case where you want to make a bone rotate " +"towards something quickly and easily.\n" +"When applying multiple [LookAtModifier3D]s, the [LookAtModifier3D] assigned " +"to the parent bone must be put above the [LookAtModifier3D] assigned to the " +"child bone in the list in order for the child bone results to be correct." +msgstr "" +"Цей [SkeletonModifier3D] повертає кістку, щоб дивитися на ціль. Це корисно " +"для руху голови персонажа, щоб дивитися на гравця, обертання вежі, щоб " +"дивитися на ціль, або в будь-якому іншому випадку, коли ви хочете швидко й " +"легко повернути кістку до чогось. \n" +"У разі застосування кількох [LookAtModifier3D], [LookAtModifier3D], " +"призначений батьківській кістці, має бути розміщений у списку над " +"[LookAtModifier3D], призначеним дочірній кістці, щоб результати для дочірньої " +"кістки були правильними." + +msgid "Returns the remaining seconds of the time-based interpolation." +msgstr "Повертає решту секунд інтерполяції на основі часу." + +msgid "" +"Returns whether the time-based interpolation is running or not. If " +"[code]true[/code], it is equivalent to [method get_interpolation_remaining] " +"being [code]0[/code].\n" +"This is useful to determine whether a [LookAtModifier3D] can be removed " +"safely." +msgstr "" +"Повертає, чи виконується інтерполяція на основі часу. Якщо [code]true[/code], " +"це еквівалентно тому, що [method get_interpolation_remaining] дорівнює " +"[code]0[/code]. \n" +"Це корисно, щоб визначити, чи можна безпечно видалити [LookAtModifier3D]." + +msgid "" +"Returns whether the target is within the angle limitations. It is useful for " +"unsetting the [member target_node] when the target is outside of the angle " +"limitations.\n" +"[b]Note:[/b] The value is updated after [method SkeletonModifier3D." +"_process_modification]. To retrieve this value correctly, we recommend using " +"the signal [signal SkeletonModifier3D.modification_processed]." +msgstr "" +"Повертає, чи знаходиться ціль у межах кутових обмежень. Це корисно для " +"скасування [member target_node], коли ціль знаходиться за межами кутових " +"обмежень. \n" +"[b]Примітка:[/b] значення оновлюється після [метод SkeletonModifier3D." +"_process_modification]. Щоб правильно отримати це значення, ми рекомендуємо " +"використовувати сигнал [signal SkeletonModifier3D.modification_processed]." + +msgid "Index of the [member bone_name] in the parent [Skeleton3D]." +msgstr "Індекс [member bone_name] у батьківському [Skeleton3D]." + +msgid "The bone name of the [Skeleton3D] that the modification will operate on." +msgstr "Назва кістки [Skeleton3D], на якій працюватиме модифікація." + +msgid "" +"The duration of the time-based interpolation. Interpolation is triggered at " +"the following cases:\n" +"- When the target node is changed\n" +"- When an axis is flipped due to angle limitation\n" +"[b]Note:[/b] The flipping occurs when the target is outside the angle " +"limitation and the internally computed secondary rotation axis of the forward " +"vector is flipped. Visually, it occurs when the target is outside the angle " +"limitation and crosses the plane of the [member forward_axis] and [member " +"primary_rotation_axis]." +msgstr "" +"Тривалість інтерполяції на основі часу. Інтерполяція запускається в таких " +"випадках: \n" +"- Коли цільовий вузол змінено \n" +"- Коли вісь перевернуто через обмеження кута \n" +"[b]Примітка.[/b] Переворот відбувається, коли ціль знаходиться за межами " +"обмеження кута, а внутрішньо обчислена вторинна вісь обертання вектора вперед " +"перевертається. Візуально це відбувається, коли ціль знаходиться за межами " +"обмеження кута та перетинає площину [члена вперед_вісь] і [основної " +"осі_обертання елемента]." + +msgid "" +"The ease type of the time-based interpolation. See also [enum Tween.EaseType]." +msgstr "" +"Тип простоти інтерполяції на основі часу. Дивіться також [enum Tween." +"EaseType]." + +msgid "" +"The forward axis of the bone. This [SkeletonModifier3D] modifies the bone so " +"that this axis points toward the [member target_node]." +msgstr "" +"Передня вісь кістки. Цей [SkeletonModifier3D] модифікує кістку так, щоб ця " +"вісь вказувала на [member target_node]." + +msgid "Index of the [member origin_bone_name] in the parent [Skeleton3D]." +msgstr "Індекс [member origin_bone_name] у батьківському [Skeleton3D]." + +msgid "" +"If [member origin_from] is [constant ORIGIN_FROM_SPECIFIC_BONE], the bone " +"global pose position specified for this is used as origin." +msgstr "" +"Якщо [member origin_from] дорівнює [константі ORIGIN_FROM_SPECIFIC_BONE], " +"загальна позиція кістки, указана для цього, використовується як джерело." + +msgid "" +"If [member origin_from] is [constant ORIGIN_FROM_EXTERNAL_NODE], the global " +"position of the [Node3D] specified for this is used as origin." +msgstr "" +"Якщо [member origin_from] є [константою ORIGIN_FROM_EXTERNAL_NODE], глобальна " +"позиція [Node3D], указана для цього, використовується як джерело." + +msgid "" +"This value determines from what origin is retrieved for use in the " +"calculation of the forward vector." +msgstr "" +"Це значення визначає, з якого джерела буде отримано для використання в " +"обчисленні прямого вектора." + +msgid "" +"The offset of the bone pose origin. Matching the origins by offset is useful " +"for cases where multiple bones must always face the same direction, such as " +"the eyes.\n" +"[b]Note:[/b] This value indicates the local position of the object set in " +"[member origin_from]." +msgstr "" +"Зсув походження пози кістки. Зіставлення початків за зсувом корисно у " +"випадках, коли кілька кісток завжди мають бути спрямовані в одному напрямку, " +"наприклад очі. \n" +"[b]Примітка:[/b] це значення вказує на локальне положення об’єкта, " +"встановленого в [member origin_from]." + +msgid "" +"If the target passes through too close to the origin than this value, time-" +"based interpolation is used even if the target is within the angular " +"limitations, to prevent the angular velocity from becoming too high." +msgstr "" +"Якщо ціль проходить занадто близько до початку координат, ніж це значення, " +"використовується інтерполяція на основі часу, навіть якщо ціль знаходиться в " +"межах кутових обмежень, щоб запобігти тому, щоб кутова швидкість стала " +"занадто високою." + +msgid "" +"The threshold to start damping for [member primary_limit_angle]. It provides " +"non-linear (b-spline) interpolation, let it feel more resistance the more it " +"rotate to the edge limit. This is useful for simulating the limits of human " +"motion.\n" +"If [code]1.0[/code], no damping is performed. If [code]0.0[/code], damping is " +"always performed." +msgstr "" +"Порогове значення для початку демпфування для [члена " +"первинний_граничний_кут]. Він забезпечує нелінійну (b-сплайн) інтерполяцію, " +"нехай він відчуває більший опір, чим більше він повертається до межі краю. Це " +"корисно для імітації обмежень руху людини. \n" +"Якщо [code]1.0[/code], демпфування не виконується. Якщо [code]0.0[/code], " +"демпфування виконується завжди." + +msgid "" +"The limit angle of the primary rotation when [member symmetry_limitation] is " +"[code]true[/code]." +msgstr "" +"Граничний кут первинного повороту, коли [member symmetry_limitation] має " +"значення [code]true[/code]." + +msgid "" +"The threshold to start damping for [member primary_negative_limit_angle]." +msgstr "" +"Порогове значення для початку демпфування для [члена " +"первинний_негативний_межовий_кут]." + +msgid "" +"The limit angle of negative side of the primary rotation when [member " +"symmetry_limitation] is [code]false[/code]." +msgstr "" +"Граничний кут від’ємної сторони основного повороту, коли [член " +"симетрії_обмеження] має значення [code]false[/code]." + +msgid "" +"The threshold to start damping for [member primary_positive_limit_angle]." +msgstr "" +"Порогове значення для початку демпфування для " +"[основний_позитивний_граничний_кут_члена]." + +msgid "" +"The limit angle of positive side of the primary rotation when [member " +"symmetry_limitation] is [code]false[/code]." +msgstr "" +"Граничний кут позитивної сторони основного обертання, коли [обмеження " +"симетрії елемента] має значення [code]false[/code]." + +msgid "" +"The axis of the first rotation. This [SkeletonModifier3D] works by " +"compositing the rotation by Euler angles to prevent to rotate the [member " +"forward_axis]." +msgstr "" +"Вісь першого повороту. Цей [SkeletonModifier3D] працює, об’єднуючи обертання " +"за кутами Ейлера, щоб запобігти обертанню [члена forward_axis]." + +msgid "The threshold to start damping for [member secondary_limit_angle]." +msgstr "" +"Порогове значення для початку демпфування для [member secondary_limit_angle]." + +msgid "" +"The limit angle of the secondary rotation when [member symmetry_limitation] " +"is [code]true[/code]." +msgstr "" +"Граничний кут вторинного обертання, коли [member symmetry_limitation] має " +"значення [code]true[/code]." + +msgid "" +"The threshold to start damping for [member secondary_negative_limit_angle]." +msgstr "" +"Порогове значення для початку демпфування для [член " +"secondary_negative_limit_angle]." + +msgid "" +"The limit angle of negative side of the secondary rotation when [member " +"symmetry_limitation] is [code]false[/code]." +msgstr "" +"Граничний кут від’ємної сторони вторинного обертання, коли [член " +"симетрії_обмеження] має значення [code]false[/code]." + +msgid "" +"The threshold to start damping for [member secondary_positive_limit_angle]." +msgstr "" +"Порогове значення для початку демпфування для [член " +"secondary_positive_limit_angle]." + +msgid "" +"The limit angle of positive side of the secondary rotation when [member " +"symmetry_limitation] is [code]false[/code]." +msgstr "" +"Граничний кут додатної сторони вторинного обертання, коли [член " +"симетрії_обмеження] має значення [code]false[/code]." + +msgid "" +"If [code]true[/code], the limitations are spread from the bone " +"symmetrically.\n" +"If [code]false[/code], the limitation can be specified separately for each " +"side of the bone rest." +msgstr "" +"Якщо [code]true[/code], обмеження поширюються від кістки симетрично.\n" +"Якщо [code]false[/code], обмеження можна вказати окремо для кожної сторони " +"опори для кістки." + +msgid "" +"The [NodePath] to the node that is the target for the look at modification. " +"This node is what the modification will rotate the bone to." +msgstr "" +"[NodePath] до вузла, який є метою перегляду модифікації. Цей вузол є тим, до " +"чого модифікація повертатиме кістку." + +msgid "" +"The transition type of the time-based interpolation. See also [enum Tween." +"TransitionType]." +msgstr "" +"Тип переходу інтерполяції на основі часу. Дивіться також [enum Tween." +"TransitionType]." + +msgid "" +"If [code]true[/code], limits the degree of rotation. This helps prevent the " +"character's neck from rotating 360 degrees.\n" +"[b]Note:[/b] As with [AnimationTree] blending, interpolation is provided that " +"favors [method Skeleton3D.get_bone_rest]. This means that interpolation does " +"not select the shortest path in some cases.\n" +"[b]Note:[/b] Some [member transition_type] may exceed the limitations (e.g. " +"`Back`, `Elastic`, and `Spring`). If interpolation occurs while overshooting " +"the limitations, the result might possibly not respect the bone rest." +msgstr "" +"Якщо [code]true[/code], обмежує ступінь повороту. Це допомагає запобігти " +"повороту шиї персонажа на 360 градусів. \n" +"[b]Примітка:[/b] Як і у випадку змішування [AnimationTree], надається " +"інтерполяція, яка надає перевагу [методу Skeleton3D.get_bone_rest]. Це " +"означає, що в деяких випадках інтерполяція не вибирає найкоротший шлях. \n" +"[b]Примітка: [/b] Деякі [member conversion_type] можуть перевищувати " +"обмеження (наприклад, `Back`, `Elastic` і `Spring`). Якщо інтерполяція " +"відбувається з перевищенням обмежень, результат може не відповідати опорі " +"кістки." + +msgid "If [code]true[/code], provides rotation by two axes." +msgstr "Якщо [code]true[/code], забезпечує обертання за двома осями." + +msgid "" +"The bone rest position of the bone specified in [member bone] is used as " +"origin." +msgstr "" +"Позиція спокою кістки, указана в [member bone], використовується як вихідна " +"точка." + +msgid "" +"The bone global pose position of the bone specified in [member origin_bone] " +"is used as origin.\n" +"[b]Note:[/b] It is recommended that you select only the parent bone unless " +"you are familiar with the bone processing process. The specified bone pose at " +"the time the [LookAtModifier3D] is processed is used as a reference. In other " +"words, if you specify a child bone and the [LookAtModifier3D] causes the " +"child bone to move, the rendered result and direction will not match." +msgstr "" +"Глобальне положення позиції кістки, указане в [member origin_bone], " +"використовується як джерело. \n" +"[b]Примітка: [/b] Рекомендується вибирати лише вихідну кістку, якщо ви не " +"знайомі з процесом обробки кістки. Зазначена поза кістки під час обробки " +"[LookAtModifier3D] використовується як еталон. Іншими словами, якщо ви " +"вкажете дочірню кістку, а [LookAtModifier3D] змушує дочірню кістку рухатися, " +"відтворений результат і напрямок не збігатимуться." + +msgid "" +"The global position of the [Node3D] specified in [member " +"origin_external_node] is used as origin.\n" +"[b]Note:[/b] Same as [constant ORIGIN_FROM_SPECIFIC_BONE], when specifying a " +"[BoneAttachment3D] with a child bone assigned, the rendered result and " +"direction will not match." +msgstr "" +"Глобальна позиція [Node3D], указана в [member origin_external_node], " +"використовується як джерело. \n" +"[b]Примітка: [/b] Так само, як [константа ORIGIN_FROM_SPECIFIC_BONE], якщо " +"вказати [BoneAttachment3D] із призначеною дочірньою кісткою, відтворений " +"результат і напрямок не збігатимуться." + msgid "Abstract base class for the game's main loop." msgstr "Абстрактний базовий клас для основної петлі гри." +msgid "" +"[MainLoop] is the abstract base class for a Godot project's game loop. It is " +"inherited by [SceneTree], which is the default game loop implementation used " +"in Godot projects, though it is also possible to write and use one's own " +"[MainLoop] subclass instead of the scene tree.\n" +"Upon the application start, a [MainLoop] implementation must be provided to " +"the OS; otherwise, the application will exit. This happens automatically (and " +"a [SceneTree] is created) unless a [MainLoop] [Script] is provided from the " +"command line (with e.g. [code]godot -s my_loop.gd[/code]) or the [member " +"ProjectSettings.application/run/main_loop_type] project setting is " +"overwritten.\n" +"Here is an example script implementing a simple [MainLoop]:\n" +"[codeblocks]\n" +"[gdscript]\n" +"class_name CustomMainLoop\n" +"extends MainLoop\n" +"\n" +"var time_elapsed = 0\n" +"\n" +"func _initialize():\n" +" print(\"Initialized:\")\n" +" print(\" Starting time: %s\" % str(time_elapsed))\n" +"\n" +"func _process(delta):\n" +" time_elapsed += delta\n" +" # Return true to end the main loop.\n" +" return Input.get_mouse_button_mask() != 0 || Input." +"is_key_pressed(KEY_ESCAPE)\n" +"\n" +"func _finalize():\n" +" print(\"Finalized:\")\n" +" print(\" End time: %s\" % str(time_elapsed))\n" +"[/gdscript]\n" +"[csharp]\n" +"using Godot;\n" +"\n" +"[GlobalClass]\n" +"public partial class CustomMainLoop : MainLoop\n" +"{\n" +" private double _timeElapsed = 0;\n" +"\n" +" public override void _Initialize()\n" +" {\n" +" GD.Print(\"Initialized:\");\n" +" GD.Print($\" Starting Time: {_timeElapsed}\");\n" +" }\n" +"\n" +" public override bool _Process(double delta)\n" +" {\n" +" _timeElapsed += delta;\n" +" // Return true to end the main loop.\n" +" return Input.GetMouseButtonMask() != 0 || Input.IsKeyPressed(Key." +"Escape);\n" +" }\n" +"\n" +" private void _Finalize()\n" +" {\n" +" GD.Print(\"Finalized:\");\n" +" GD.Print($\" End Time: {_timeElapsed}\");\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"[MainLoop] — це абстрактний базовий клас для ігрового циклу проекту Godot. " +"Його успадковує [SceneTree], який є реалізацією ігрового циклу за " +"замовчуванням, що використовується в проектах Godot, хоча також можна " +"написати та використовувати власний підклас [MainLoop] замість дерева " +"сцени. \n" +"Після запуску програми ОС повинна бути надана реалізація [MainLoop]; інакше " +"програма завершить роботу. Це відбувається автоматично (і [SceneTree] " +"створюється), якщо [MainLoop] [Script] не надано з командного рядка " +"(наприклад, [code]godot -s my_loop.gd[/code]) або налаштування проекту " +"[member ProjectSettings.application/run/main_loop_type] не перезаписано. \n" +"Ось приклад сценарію, що реалізує простий [MainLoop]: \n" +"[codeblocks] \n" +"[gdscript] \n" +"class_name CustomMainLoop \n" +"extends MainLoop \n" +"\n" +"var time_elapsed = 0 \n" +"\n" +"func _initialize(): \n" +" print(\"Ініціалізовано:\") \n" +" print(\" Час початку: %s\" % str(time_elapsed)) \n" +"\n" +"func _process(delta): \n" +" time_elapsed += delta \n" +" # Повернути true для завершення основного циклу. \n" +" return Input.get_mouse_button_mask() != 0 || Input." +"is_key_pressed(KEY_ESCAPE) \n" +"\n" +"func _finalize(): \n" +" print(\"Завершено:\") \n" +" print(\" Час завершення: %s\" % str(time_elapsed)) \n" +"[/gdscript] \n" +"[csharp] \n" +"using Godot; \n" +"\n" +"[Global class] \n" +"public partial class CustomMainLoop : MainLoop \n" +"{\n" +" private double _timeElapsed = 0; \n" +"\n" +" public override void _Initialize() \n" +" { \n" +" GD.Print(\"Ініціалізовано:\"); \n" +" GD.Print($\" Час початку: {_timeElapsed}\"); \n" +" } \n" +"\n" +" public override bool _Process(double delta) \n" +" { \n" +" _timeElapsed += delta; \n" +" // Повертає true для завершення основного циклу. \n" +" return Input.GetMouseButtonMask() != 0 || Input.IsKeyPressed(Key." +"Escape); \n" +" } \n" +"\n" +" private void _Finalize() \n" +" { \n" +" GD.Print(\"Завершено:\"); \n" +" GD.Print($\" Час завершення: {_timeElapsed}\"); \n" +" } \n" +"}\n" +"[/csharp] \n" +"[/codeblocks]" + msgid "Called before the program exits." msgstr "Зателефонуйте до виходу програми." msgid "Called once during initialization." msgstr "Викликається після ініціалізації." +msgid "" +"Called each physics frame with the time since the last physics frame as " +"argument ([param delta], in seconds). Equivalent to [method Node." +"_physics_process].\n" +"If implemented, the method must return a boolean value. [code]true[/code] " +"ends the main loop, while [code]false[/code] lets it proceed to the next " +"frame.\n" +"[b]Note:[/b] [param delta] will be larger than expected if running at a " +"framerate lower than [member Engine.physics_ticks_per_second] / [member " +"Engine.max_physics_steps_per_frame] FPS. This is done to avoid \"spiral of " +"death\" scenarios where performance would plummet due to an ever-increasing " +"number of physics steps per frame. This behavior affects both [method " +"_process] and [method _physics_process]. As a result, avoid using [param " +"delta] for time measurements in real-world seconds. Use the [Time] " +"singleton's methods for this purpose instead, such as [method Time." +"get_ticks_usec]." +msgstr "" +"Викликано кожен фізичний кадр із часом із моменту останнього фізичного кадру " +"як аргумент ([param delta], у секундах). Еквівалент [method Node." +"_physics_process]. \n" +"Якщо реалізовано, метод повинен повертати логічне значення. [code]true[/code] " +"завершує основний цикл, а [code]false[/code] дозволяє перейти до наступного " +"кадру. \n" +"[b]Примітка.[/b] [param delta] буде більшим, ніж очікувалося, якщо частота " +"кадрів буде нижчою за [member Engine.physics_ticks_per_second] / [member " +"Engine.max_physics_steps_per_frame] FPS. Це зроблено, щоб уникнути сценаріїв " +"«спіралі смерті», коли продуктивність різко впаде через постійно зростаючу " +"кількість кроків фізики на кадр. Ця поведінка впливає на [method _process] і " +"[method _physics_process]. Тому уникайте використання [param delta] для " +"вимірювання часу в реальних секундах. Замість цього використовуйте для цієї " +"мети методи [Time] singleton, наприклад [method Time.get_ticks_usec]." + +msgid "" +"Called each process (idle) frame with the time since the last process frame " +"as argument (in seconds). Equivalent to [method Node._process].\n" +"If implemented, the method must return a boolean value. [code]true[/code] " +"ends the main loop, while [code]false[/code] lets it proceed to the next " +"frame.\n" +"[b]Note:[/b] [param delta] will be larger than expected if running at a " +"framerate lower than [member Engine.physics_ticks_per_second] / [member " +"Engine.max_physics_steps_per_frame] FPS. This is done to avoid \"spiral of " +"death\" scenarios where performance would plummet due to an ever-increasing " +"number of physics steps per frame. This behavior affects both [method " +"_process] and [method _physics_process]. As a result, avoid using [param " +"delta] for time measurements in real-world seconds. Use the [Time] " +"singleton's methods for this purpose instead, such as [method Time." +"get_ticks_usec]." +msgstr "" +"Викликається кожен фрейм процесу (неактивний) із часом з часу останнього " +"кадру процесу як аргумент (у секундах). Еквівалент [метод Node._process]. \n" +"Якщо реалізовано, метод повинен повертати логічне значення. [code]true[/code] " +"завершує основний цикл, а [code]false[/code] дозволяє перейти до наступного " +"кадру. \n" +"[b]Примітка.[/b] [param delta] буде більшим, ніж очікувалося, якщо частота " +"кадрів буде нижчою за [member Engine.physics_ticks_per_second] / [member " +"Engine.max_physics_steps_per_frame] FPS. Це зроблено, щоб уникнути сценаріїв " +"«спіралі смерті», коли продуктивність різко впаде через постійно зростаючу " +"кількість кроків фізики на кадр. Ця поведінка впливає на [method _process] і " +"[method _physics_process]. Тому уникайте використання [param delta] для " +"вимірювання часу в реальних секундах. Замість цього використовуйте для цієї " +"мети методи [Time] singleton, наприклад [method Time.get_ticks_usec]." + msgid "Emitted when a user responds to a permission request." msgstr "Увімкніть, коли користувач реагує на запит на дозвіл." @@ -69163,30 +89468,31 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"[MarginContainer] додає регульований запас з кожного боку його контрольних " -"систем. Позбавлення додаються навколо всіх дітей, не навколо кожного " -"індивіда. Щоб контролювати [MarginContainer] запаси, скористайтеся " -"[code]Margin_*[/code] тематичні властивості, перераховані нижче.\n" -"[b]Note:[/b] Розміри запасів – тема наднаряддя, не нормальні властивості. Це " -"приклад того, як змінити їх у коді:\n" -"[блоки коду]\n" -"[видання]\n" -"Нема Цей зразок коду приймає поточний скрипт розширення MarginContainer.\n" -"Вар маржа_значення = 100\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"[/gdscript]\n" -"[csharp]\n" -"(Українська) Цей зразок коду приймає поточний скрипт розширення " -"MarginContainer.\n" -"марка Значення = 100;\n" -"AddThemeConstantOverride(\"margin_top\", маржинаValue);\n" -"AddThemeConstantOverride(\"margin_left\", маржаValue);\n" -"AddThemeConstantOverride(\"Маргін_зниз\", маржинаValue);\n" -"AddThemeConstantOverride(\"margin_right\", маржаValue);\n" -"[/csharp]\n" +"[MarginContainer] додає регульоване поле з кожного боку дочірніх елементів " +"керування. Поля додаються навколо всіх дітей, а не навколо кожного окремо. " +"Щоб керувати полями [MarginContainer], використовуйте властивості теми " +"[code]margin_*[/code], наведені нижче. \n" +"[b]Примітка: [/b] Розміри полів є заміною теми, а не звичайними " +"властивостями. Це приклад того, як змінити їх у коді: \n" +"[codeblocks] \n" +"[gdscript] \n" +"# Цей зразок коду передбачає, що поточний сценарій розширює " +"MarginContainer. \n" +"var margin_value = 100 \n" +"add_theme_constant_override(\"margin_top\", margin_value) \n" +"add_theme_constant_override(\"margin_left\", margin_value) \n" +"add_theme_constant_override(\"margin_bottom\", margin_value) \n" +"add_theme_constant_override(\"margin_right\", margin_value) \n" +"[/gdscript] \n" +"[csharp] \n" +"// Цей зразок коду передбачає, що поточний сценарій розширює " +"MarginContainer. \n" +"int marginValue = 100; \n" +"AddThemeConstantOverride(\"margin_top\", marginValue); \n" +"AddThemeConstantOverride(\"margin_left\", marginValue); \n" +"AddThemeConstantOverride(\"margin_bottom\", marginValue); \n" +"AddThemeConstantOverride(\"margin_right\", marginValue); \n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -69360,6 +89666,15 @@ msgstr "" msgid "Creates a placeholder version of this resource ([PlaceholderMaterial])." msgstr "Створює резиденцію вкладника цього ресурсу ([Складацький статут])." +msgid "" +"Only available when running in the editor. Opens a popup that visualizes the " +"generated shader code, including all variants and internal shader code. See " +"also [method Shader.inspect_native_shader_code]." +msgstr "" +"Доступно лише під час роботи в редакторі. Відкриває спливаюче вікно, яке " +"візуалізує згенерований код шейдера, включаючи всі варіанти та внутрішній код " +"шейдера. Дивіться також [метод Shader.inspect_native_shader_code]." + msgid "" "Sets the [Material] to be used for the next pass. This renders the object " "again using a different material.\n" @@ -69409,6 +89724,23 @@ msgstr "Максимальне значення параметра [пам'ят msgid "Minimum value for the [member render_priority] parameter." msgstr "Мінімальне значення параметра [пам'яті рендер_пріоритет]." +msgid "A horizontal menu bar that creates a menu for each [PopupMenu] child." +msgstr "" +"Горизонтальна панель меню, яка створює меню для кожного дочірнього елемента " +"[PopupMenu]." + +msgid "" +"A horizontal menu bar that creates a menu for each [PopupMenu] child. New " +"items are created by adding [PopupMenu]s to this node. Item title is " +"determined by [member Window.title], or node name if [member Window.title] is " +"empty. Item title can be overridden using [method set_menu_title]." +msgstr "" +"Горизонтальна панель меню, яка створює меню для кожного дочірнього меню " +"[PopupMenu]. Нові елементи створюються шляхом додавання [PopupMenu] до цього " +"вузла. Назва елемента визначається [членом Window.title] або назвою вузла, " +"якщо [член Window.title] порожній. Заголовок елемента можна змінити за " +"допомогою [методу set_menu_title]." + msgid "Returns number of menu items." msgstr "Повертає кількість пунктів меню." @@ -69456,6 +89788,33 @@ msgstr "Встановлює меню пункти меню." msgid "Flat [MenuBar] don't display item decoration." msgstr "Плоскі [MenuBar] не відображають предмети прикраси." +msgid "" +"If [code]true[/code], [MenuBar] will use system global menu when supported.\n" +"[b]Note:[/b] If [code]true[/code] and global menu is supported, this node is " +"not displayed, has zero size, and all its child nodes except [PopupMenu]s are " +"inaccessible.\n" +"[b]Note:[/b] This property overrides the value of the [member PopupMenu." +"prefer_native_menu] property of the child nodes." +msgstr "" +"Якщо [code]true[/code], [MenuBar] використовуватиме системне глобальне меню, " +"якщо це підтримується. \n" +"[b]Примітка:[/b] Якщо підтримується [code]true[/code] і глобальне меню, цей " +"вузол не відображається, має нульовий розмір, і всі його дочірні вузли, крім " +"[PopupMenu], недоступні. \n" +"[b]Примітка:[/b] Ця властивість перевизначає значення властивості [member " +"PopupMenu.prefer_native_menu] дочірніх вузлів." + +msgid "" +"Position order in the global menu to insert [MenuBar] items at. All menu " +"items in the [MenuBar] are always inserted as a continuous range. Menus with " +"lower [member start_index] are inserted first. Menus with [member " +"start_index] equal to [code]-1[/code] are inserted last." +msgstr "" +"Порядок розташування в глобальному меню для вставлення елементів [MenuBar]. " +"Усі пункти меню в [MenuBar] завжди вставляються як безперервний діапазон. " +"Меню з нижчим [member start_index] вставляються першими. Меню з " +"[початковим_індексом члена] дорівнює [code]-1[/code] вставляються останніми." + msgid "" "If [code]true[/code], when the cursor hovers above menu item, it will close " "the current [PopupMenu] and open the other one." @@ -70298,55 +90657,55 @@ msgid "" msgstr "" "MeshDataTool надає доступ до окремих вершин у [Mesh]. Це дозволяє " "користувачам читати та редагувати дані вершин сіток. Він також створює масив " -"граней і країв.\n" +"граней і країв. \n" "Щоб використовувати MeshDataTool, завантажте сітку за допомогою [методу " "create_from_surface]. Коли ви закінчите редагувати дані, зафіксуйте дані в " -"сітці за допомогою [методу commit_to_surface].\n" -"Нижче наведено приклад того, як можна використовувати MeshDataTool.\n" -"[кодові блоки]\n" -"[gdscript]\n" -"var mesh = ArrayMesh.new()\n" +"сітці за допомогою [методу commit_to_surface]. \n" +"Нижче наведено приклад того, як можна використовувати MeshDataTool. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var mesh = ArrayMesh.new() \n" "mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, BoxMesh.new()." -"get_mesh_arrays())\n" -"var mdt = MeshDataTool.new()\n" -"mdt.create_from_surface(сітка, 0)\n" -"для i в діапазоні (mdt.get_vertex_count()):\n" -" var vertex = mdt.get_vertex(i)\n" +"get_mesh_arrays()) \n" +"var mdt = MeshDataTool new(). \n" +"mdt.create_from_surface(mesh, 0) \n" +"for i in range (mdt.get_vertex_count()): \n" +" var vertex = mdt.get_vertex(i) \n" " # У цьому прикладі ми розширюємо сітку на одну одиницю, що призводить до " -"розділених граней, оскільки вона заштрихована.\n" -" вершина += mdt.get_vertex_normal(i)\n" -" # Збережіть зміни.\n" -" mdt.set_vertex(i, вершина)\n" -"mesh.clear_surfaces()\n" -"mdt.commit_to_surface(сітка)\n" -"var mi = MeshInstance.new()\n" -"mi.mesh = сітка\n" -"add_child(милі)\n" -"[/gdscript]\n" -"[csharp]\n" -"var mesh = new ArrayMesh();\n" +"розділених граней, оскільки вона заштрихована. \n" +" vertex += mdt.get_vertex_normal(i) \n" +" # Збережіть зміни. \n" +" mdt.set_vertex(i, vertex) \n" +"mesh.clear_surfaces() \n" +"mdt.commit_to_surface(mesh) \n" +"var mi = MeshInstance.new() \n" +"mi.mesh = mesh \n" +"add_child(mi) \n" +"[/gdscript] \n" +"[csharp] \n" +"var mesh = new ArrayMesh(); \n" "mesh.AddSurfaceFromArrays(Mesh.PrimitiveType.Triangles, new BoxMesh()." -"GetMeshArrays());\n" -"var mdt = new MeshDataTool();\n" -"mdt.CreateFromSurface(сітка, 0);\n" -"for (var i = 0; i < mdt.GetVertexCount(); i++)\n" +"GetMeshArrays()); \n" +"var mdt = new MeshDataTool(); \n" +"mdt.CreateFromSurface(mesh, 0); \n" +"for (var i = 0; i < mdt.GetVertexCount(); i++) \n" "{\n" -" Vertex Vector3 = mdt.GetVertex(i);\n" +" Vertex Vector3 = mdt.GetVertex(i); \n" " // У цьому прикладі ми розширюємо сітку на одну одиницю, що призводить до " -"розділених граней, оскільки вона заштрихована.\n" -" вершина += mdt.GetVertexNormal(i);\n" -" // Збережіть зміни.\n" -" mdt.SetVertex(i, вершина);\n" +"розділених граней, оскільки вона заштрихована. \n" +" vertex += mdt.GetVertexNormal(i); \n" +" // Збережіть зміни. \n" +" mdt.SetVertex(i, vertex); \n" "}\n" -"mesh.ClearSurfaces();\n" -"mdt.CommitToSurface(сітка);\n" -"var mi = new MeshInstance();\n" -"mi.Mesh = сітка;\n" -"AddChild(mi);\n" -"[/csharp]\n" -"[/codeblocks]\n" +"mesh.ClearSurfaces(); \n" +"mdt.CommitToSurface(mesh); \n" +"var mi = new MeshInstance(); \n" +"mi.Mesh = mesh; \n" +"AddChild(mi); \n" +"[/csharp] \n" +"[/codeblocks] \n" "Дивіться також [ArrayMesh], [ImmediateMesh] і [SurfaceTool] для створення " -"процедурної геометрії.\n" +"процедурної геометрії. \n" "[b]Примітка:[/b] Годо використовує [url=https://learnopengl.com/Advanced-" "OpenGL/Face-culling]порядок намотування[/url] за годинниковою стрілкою для " "передніх граней примітивних режимів трикутника." @@ -70403,6 +90762,43 @@ msgstr "Повертає метадані, пов’язані з цим обл msgid "Calculates and returns the face normal of the given face." msgstr "Розрахунок і повернення нормального обличчя даної особи." +msgid "" +"Returns the specified vertex index of the given face.\n" +"[param vertex] must be either [code]0[/code], [code]1[/code], or [code]2[/" +"code] because faces contain three vertices.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var index = mesh_data_tool.get_face_vertex(0, 1) # Gets the index of the " +"second vertex of the first face.\n" +"var position = mesh_data_tool.get_vertex(index)\n" +"var normal = mesh_data_tool.get_vertex_normal(index)\n" +"[/gdscript]\n" +"[csharp]\n" +"int index = meshDataTool.GetFaceVertex(0, 1); // Gets the index of the second " +"vertex of the first face.\n" +"Vector3 position = meshDataTool.GetVertex(index);\n" +"Vector3 normal = meshDataTool.GetVertexNormal(index);\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Повертає вказаний індекс вершини заданої грані. \n" +"[param vertex] має мати значення [code]0[/code], [code]1[/code] або [code]2[/" +"code], оскільки грані містять три вершини. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var index = mesh_data_tool.get_face_vertex(0, 1) # Отримує індекс другої " +"вершини першої грані. \n" +"змінна позиція = mesh_data_tool.get_vertex(index) \n" +"var normal = mesh_data_tool.get_vertex_normal(index) \n" +"[/gdscript] \n" +"[csharp] \n" +"int index = meshDataTool.GetFaceVertex(0, 1); // Отримує індекс другої " +"вершини першої грані. \n" +"Vector3 position = meshDataTool.GetVertex(index); \n" +"Vector3 normal = meshDataTool.GetVertexNormal(index); \n" +"[/csharp] \n" +"[/codeblocks]" + msgid "" "Returns the [Mesh]'s format as a combination of the [enum Mesh.ArrayFormat] " "flags. For example, a mesh containing both vertices and normals would return " @@ -70554,6 +90950,23 @@ msgstr "" "[b]Перформанс:[/b] [Меш] дані повинні бути отримані з GPU, стеблінгу " "[RenderingServer] в процесі." +msgid "" +"Takes a snapshot of the current animated skeleton pose of the skinned mesh " +"and bakes it to the provided [param existing] mesh. If no [param existing] " +"mesh is provided a new [ArrayMesh] is created, baked, and returned. Requires " +"a skeleton with a registered skin to work. Blendshapes are ignored. Mesh " +"surface materials are not copied.\n" +"[b]Performance:[/b] [Mesh] data needs to be retrieved from the GPU, stalling " +"the [RenderingServer] in the process." +msgstr "" +"Робить знімок поточної анімованої пози скелета шкірної сітки та запікає її до " +"наданої сітки [параметр існуючий]. Якщо сітка [параметр існуючий] не " +"надається, створюється нова [ArrayMesh], запікається та повертається. Для " +"роботи потрібен скелет із зареєстрованою шкірою. Blendshapes ігноруються. " +"Матеріали сітчастої поверхні не копіюються. \n" +"[b]Продуктивність:[/b] дані [Mesh] потрібно отримати з графічного процесора, " +"зупиняючи процес [RenderingServer]." + msgid "" "This helper creates a [StaticBody3D] child node with a [ConvexPolygonShape3D] " "collision shape calculated from the mesh geometry. It's mainly used for " @@ -70682,6 +91095,23 @@ msgstr "" "Встановлює значення форми блендера на [param mix_shape_idx] до [param value]. " "[code]null[/code] або не має форми блендера в цьому індексі." +msgid "" +"Sets the override [param material] for the specified [param surface] of the " +"[Mesh] resource. This material is associated with this [MeshInstance3D] " +"rather than with [member mesh].\n" +"[b]Note:[/b] This assigns the [Material] associated to the [MeshInstance3D]'s " +"Surface Material Override properties, not the material within the [Mesh] " +"resource. To set the material within the [Mesh] resource, use [method Mesh." +"surface_set_material] instead." +msgstr "" +"Встановлює перевизначення [param material] для вказаної [param surface] " +"ресурсу [Mesh]. Цей матеріал пов’язаний із цим [MeshInstance3D], а не з " +"[member mesh]. \n" +"[b]Примітка:[/b] це призначає [Material], пов’язаний із властивостями Surface " +"Material Override [MeshInstance3D], а не матеріалом у ресурсі [Mesh]. Щоб " +"установити матеріал у межах ресурсу [Mesh], замість цього використовуйте " +"[method Mesh.surface_set_material]." + msgid "The [Mesh] resource for the instance." msgstr "[Меш] ресурс для екземпляра." @@ -70727,6 +91157,13 @@ msgstr "Повертає список ідентифікаторів пункт msgid "Returns the item's mesh." msgstr "Повертаємо сіточку виробу." +msgid "" +"Returns the item's shadow casting mode. See [enum RenderingServer." +"ShadowCastingSetting] for possible values." +msgstr "" +"Повертає режим відкидання тіні предмета. Перегляньте можливі значення [enum " +"RenderingServer.ShadowCastingSetting]." + msgid "Returns the transform applied to the item's mesh." msgstr "Повертаємо трансформатор, що наноситься на сіточку виробу." @@ -70772,6 +91209,13 @@ msgstr "Видалити елемент." msgid "Sets the item's mesh." msgstr "Настроювання сітки виробу." +msgid "" +"Sets the item's shadow casting mode. See [enum RenderingServer." +"ShadowCastingSetting] for possible values." +msgstr "" +"Встановлює режим відкидання тіні елемента. Перегляньте можливі значення [enum " +"RenderingServer.ShadowCastingSetting]." + msgid "Sets the transform to apply to the item's mesh." msgstr "Встановлює трансформацію до сітки виробу." @@ -70954,35 +91398,6 @@ msgstr "" msgid "Generic mobile VR implementation." msgstr "Створення мобільної VR." -msgid "" -"This is a generic mobile VR implementation where you need to provide details " -"about the phone and HMD used. It does not rely on any existing framework. " -"This is the most basic interface we have. For the best effect, you need a " -"mobile phone with a gyroscope and accelerometer.\n" -"Note that even though there is no positional tracking, the camera will assume " -"the headset is at a height of 1.85 meters. You can change this by setting " -"[member eye_height].\n" -"You can initialize this interface as follows:\n" -"[codeblock]\n" -"var interface = XRServer.find_interface(\"Native mobile\")\n" -"if interface and interface.initialize():\n" -" get_viewport().use_xr = true\n" -"[/codeblock]" -msgstr "" -"Це загальний мобільний VR-провайдер, де потрібно надати деталі щодо телефону " -"та HMD. На будь-який наявний каркас не спирається. Це самий базовий " -"інтерфейс, який ми маємо. Для кращого ефекту потрібно мобільний телефон з " -"гіроскопом і акселерометром.\n" -"Зверніть увагу, що навіть не існує позиційного відстеження, камера " -"припустимо, що гарнітура знаходиться на висоті 1.85 метрів. Ви можете змінити " -"цей параметр за допомогою параметра [пам'ятка].\n" -"Ви можете ініціалізувати цей інтерфейс наступним чином:\n" -"[блокування коду]\n" -"var інтерфейс = XRServer.find_interface(\"Нативний мобільний\")\n" -"якщо інтерфейс і інтерфейс.initialize():\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"[/codeblock]" - msgid "" "The distance between the display and the lenses inside of the device in " "centimeters." @@ -71182,18 +91597,19 @@ msgid "" " return path.get_extension().to_lower() == \"mkv\"\n" "[/codeblock]" msgstr "" -"Викликається, коли двигун визначає, чи це [MovieWriter] може обробляти файл " -"на [патентний шлях]. Поверніть [code]true[/code], якщо це [MovieWriter] може " -"обробляти цей шлях файлу, [code]false[/code] в іншому випадку. Зазвичай " -"[method_file] перейменується таким чином, щоб дозволити користувачеві " -"записувати файл на будь-який шлях з даної розширенням файлів:\n" -"[блокування коду]\n" -"Func _handles_file(path):\n" -"# Дозволяє вказати вихідний файл з розширенням файлів `.mkv` (case-" -"insensitive),\n" -"# або в налаштуваннях проекту або з аргументом командного рядка `-write-movie " -"<path>.\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" +"Викликається, коли механізм визначає, чи здатний цей [MovieWriter] обробити " +"файл за [param path]. Має повернути [code]true[/code], якщо цей [MovieWriter] " +"здатний обробити заданий шлях до файлу, [code]false[/code] інакше. Як " +"правило, [method _handles_file] замінюється таким чином, щоб дозволити " +"користувачеві записувати файл за будь-яким шляхом із заданим розширенням " +"файлу: \n" +"[codeblock] \n" +"func _handles_file(path): \n" +" # Дозволяє вказувати вихідний файл із розширенням файлу `.mkv` (незалежно " +"від регістру), \n" +" # або в налаштуваннях проекту, або за допомогою аргументу командного " +"рядка `--write-movie <шлях>`. \n" +" return path.get_extension().to_lower() == \"mkv\" \n" "[/codeblock]" msgid "" @@ -71307,6 +91723,38 @@ msgstr "Повернення [Transform3D] конкретного екземпл msgid "Returns the [Transform2D] of a specific instance." msgstr "Повернення [Transform2D] конкретного екземпляра." +msgid "" +"When using [i]physics interpolation[/i], this function allows you to prevent " +"interpolation on an instance in the current physics tick.\n" +"This allows you to move instances instantaneously, and should usually be used " +"when initially placing an instance such as a bullet to prevent graphical " +"glitches." +msgstr "" +"Під час використання [i]фізичної інтерполяції[/i] ця функція дозволяє " +"запобігти інтерполяції на екземплярі в поточному фізичному тику. \n" +"Це дозволяє миттєво переміщувати екземпляри, і зазвичай його слід " +"використовувати під час початкового розміщення екземпляра, наприклад кулі, " +"щоб запобігти графічним збоям." + +msgid "" +"An alternative to setting the [member buffer] property, which can be used " +"with [i]physics interpolation[/i]. This method takes two arrays, and can set " +"the data for the current and previous tick in one go. The renderer will " +"automatically interpolate the data at each frame.\n" +"This is useful for situations where the order of instances may change from " +"physics tick to tick, such as particle systems.\n" +"When the order of instances is coherent, the simpler alternative of setting " +"[member buffer] can still be used with interpolation." +msgstr "" +"Альтернатива встановленню властивості [member buffer], яку можна " +"використовувати з [i]фізичною інтерполяцією[/i]. Цей метод використовує два " +"масиви та може встановити дані для поточного та попереднього тику за один " +"раз. Програма візуалізації автоматично інтерполює дані в кожному кадрі. \n" +"Це корисно для ситуацій, коли порядок екземплярів може змінюватися від " +"тиканки до тиканки, наприклад у системах частинок. \n" +"Коли порядок екземплярів узгоджений, простіший варіант налаштування [буфера-" +"члена] все ще може використовуватися з інтерполяцією." + msgid "" "Sets the color of a specific instance by [i]multiplying[/i] the mesh's " "existing vertex colors. This allows for different color tinting per " @@ -71409,6 +91857,22 @@ msgstr "" "Перегляд окремих екземплярів можна змінити за допомогою [методичного " "набору_instance_color] та [метод_instance_custom_data]." +msgid "" +"Choose whether to use an interpolation method that favors speed or quality.\n" +"When using low physics tick rates (typically below 20) or high rates of " +"object rotation, you may get better results from the high quality setting.\n" +"[b]Note:[/b] Fast quality does not equate to low quality. Except in the " +"special cases mentioned above, the quality should be comparable to high " +"quality." +msgstr "" +"Виберіть метод інтерполяції, що сприяє швидкості чи якості. \n" +"Використовуючи низькі показники фізики (зазвичай нижче 20) або високі " +"показники обертання об’єкта, ви можете отримати кращі результати завдяки " +"високій якості. \n" +"[b]Примітка. [/b] Швидка якість не означає низьку якість. За винятком " +"особливих випадків, згаданих вище, якість має бути порівнянна з високою " +"якістю." + msgid "" "Accessing this property is very slow. Use [method set_instance_transform_2d] " "and [method get_instance_transform_2d] instead." @@ -71485,6 +91949,20 @@ msgstr "Використовуйте це при використанні 2D т msgid "Use this when using 3D transforms." msgstr "Використовуйте це при використанні трансформаторів 3D." +msgid "" +"Always interpolate using Basis lerping, which can produce warping artifacts " +"in some situations." +msgstr "" +"Завжди інтерполюйте з використанням Basis lerping, який у деяких ситуаціях " +"може спричиняти артефакти викривлення." + +msgid "" +"Attempt to interpolate using Basis slerping (spherical linear interpolation) " +"where possible, otherwise fall back to lerping." +msgstr "" +"Спробуйте виконати інтерполяцію за допомогою Basis slerping (сферична лінійна " +"інтерполяція), де це можливо, інакше поверніться до lerping." + msgid "Node that instances a [MultiMesh] in 2D." msgstr "Node, що екземпляри [Мультимеш] в 2D." @@ -71655,6 +92133,27 @@ msgstr "" "будуть виконані в одному контексті цієї функції (наприклад, [code]_process[/" "code], [code]physics[/code], [Thread])." +msgid "" +"Sends an RPC to the target [param peer]. The given [param method] will be " +"called on the remote [param object] with the provided [param arguments]. The " +"RPC may also be called locally depending on the implementation and RPC " +"configuration. See [method Node.rpc] and [method Node.rpc_config].\n" +"[b]Note:[/b] Prefer using [method Node.rpc], [method Node.rpc_id], or " +"[code]my_method.rpc(peer, arg1, arg2, ...)[/code] (in GDScript), since they " +"are faster. This method is mostly useful in conjunction with " +"[MultiplayerAPIExtension] when extending or replacing the multiplayer " +"capabilities." +msgstr "" +"Надсилає RPC цільовому [param peer]. Даний [метод param] буде викликано на " +"віддаленому [об’єкті param] із наданими аргументами [param]. RPC також може " +"викликатися локально залежно від реалізації та конфігурації RPC. Див. [метод " +"Node.rpc] і [метод Node.rpc_config]. \n" +"[b]Примітка.[/b] Надавайте перевагу використанню [method Node.rpc], [method " +"Node.rpc_id] або [code]my_method.rpc(peer, arg1, arg2, ...)[/code] (у " +"GDScript), оскільки вони швидші. Цей метод здебільшого корисний у поєднанні з " +"[MultiplayerAPIExtension] під час розширення або заміни можливостей " +"багатокористувацької гри." + msgid "" "Sets the default MultiplayerAPI implementation class. This method can be used " "by modules and extensions to configure which implementation will be used by " @@ -71755,6 +92254,178 @@ msgstr "" msgid "Base class used for extending the [MultiplayerAPI]." msgstr "Базовий клас, який використовується для розширення [MultiplayerAPI]." +msgid "" +"This class can be used to extend or replace the default [MultiplayerAPI] " +"implementation via script or extensions.\n" +"The following example extend the default implementation ([SceneMultiplayer]) " +"by logging every RPC being made, and every object being configured for " +"replication.\n" +"[codeblocks]\n" +"[gdscript]\n" +"extends MultiplayerAPIExtension\n" +"class_name LogMultiplayer\n" +"\n" +"# We want to extend the default SceneMultiplayer.\n" +"var base_multiplayer = SceneMultiplayer.new()\n" +"\n" +"func _init():\n" +" # Just passthrough base signals (copied to var to avoid cyclic " +"reference)\n" +" var cts = connected_to_server\n" +" var cf = connection_failed\n" +" var pc = peer_connected\n" +" var pd = peer_disconnected\n" +" base_multiplayer.connected_to_server.connect(func(): cts.emit())\n" +" base_multiplayer.connection_failed.connect(func(): cf.emit())\n" +" base_multiplayer.peer_connected.connect(func(id): pc.emit(id))\n" +" base_multiplayer.peer_disconnected.connect(func(id): pd.emit(id))\n" +"\n" +"func _poll():\n" +" return base_multiplayer.poll()\n" +"\n" +"# Log RPC being made and forward it to the default multiplayer.\n" +"func _rpc(peer: int, object: Object, method: StringName, args: Array) -> " +"Error:\n" +" print(\"Got RPC for %d: %s::%s(%s)\" % [peer, object, method, args])\n" +" return base_multiplayer.rpc(peer, object, method, args)\n" +"\n" +"# Log configuration add. E.g. root path (nullptr, NodePath), replication " +"(Node, Spawner|Synchronizer), custom.\n" +"func _object_configuration_add(object, config: Variant) -> Error:\n" +" if config is MultiplayerSynchronizer:\n" +" print(\"Adding synchronization configuration for %s. Synchronizer: " +"%s\" % [object, config])\n" +" elif config is MultiplayerSpawner:\n" +" print(\"Adding node %s to the spawn list. Spawner: %s\" % [object, " +"config])\n" +" return base_multiplayer.object_configuration_add(object, config)\n" +"\n" +"# Log configuration remove. E.g. root path (nullptr, NodePath), replication " +"(Node, Spawner|Synchronizer), custom.\n" +"func _object_configuration_remove(object, config: Variant) -> Error:\n" +" if config is MultiplayerSynchronizer:\n" +" print(\"Removing synchronization configuration for %s. Synchronizer: " +"%s\" % [object, config])\n" +" elif config is MultiplayerSpawner:\n" +" print(\"Removing node %s from the spawn list. Spawner: %s\" % " +"[object, config])\n" +" return base_multiplayer.object_configuration_remove(object, config)\n" +"\n" +"# These can be optional, but in our case we want to extend SceneMultiplayer, " +"so forward everything.\n" +"func _set_multiplayer_peer(p_peer: MultiplayerPeer):\n" +" base_multiplayer.multiplayer_peer = p_peer\n" +"\n" +"func _get_multiplayer_peer() -> MultiplayerPeer:\n" +" return base_multiplayer.multiplayer_peer\n" +"\n" +"func _get_unique_id() -> int:\n" +" return base_multiplayer.get_unique_id()\n" +"\n" +"func _get_peer_ids() -> PackedInt32Array:\n" +" return base_multiplayer.get_peers()\n" +"[/gdscript]\n" +"[/codeblocks]\n" +"Then in your main scene or in an autoload call [method SceneTree." +"set_multiplayer] to start using your custom [MultiplayerAPI]:\n" +"[codeblocks]\n" +"[gdscript]\n" +"# autoload.gd\n" +"func _enter_tree():\n" +" # Sets our custom multiplayer as the main one in SceneTree.\n" +" get_tree().set_multiplayer(LogMultiplayer.new())\n" +"[/gdscript]\n" +"[/codeblocks]\n" +"Native extensions can alternatively use the [method MultiplayerAPI." +"set_default_interface] method during initialization to configure themselves " +"as the default implementation." +msgstr "" +"Цей клас можна використовувати для розширення або заміни стандартної " +"реалізації [MultiplayerAPI] за допомогою сценарію або розширень. \n" +"Наступний приклад розширює реалізацію за замовчуванням ([SceneMultiplayer]), " +"реєструючи кожен зроблений RPC і кожен об’єкт, налаштований для реплікації. \n" +"[codeblocks] \n" +"[gdscript] \n" +"extends MultiplayerAPIExtension \n" +"class_name LogMultiplayer \n" +"\n" +"# Ми хочемо розширити стандартний SceneMultiplayer. \n" +"var base_multiplayer = SceneMultiplayer.new() \n" +"\n" +"func _init(): \n" +" # Просто проходження базових сигналів (скопійовано до var, щоб уникнути " +"циклічного посилання) \n" +" var cts = connected_to_server \n" +" var cf = connection_failed \n" +" var pc = peer_connected \n" +" var pd = peer_disconnected \n" +" base_multiplayer.connected_to_server.connect(func(): cts.emit()) \n" +" base_multiplayer.connection_failed.connect(func(): cf.emit()) \n" +" base_multiplayer.peer_connected.connect(func(id): pc.emit(id)) \n" +" base_multiplayer.peer_disconnected.connect(func(id): pd.emit(id)) \n" +"\n" +"func _poll(): \n" +" return base_multiplayer.poll() \n" +"\n" +"# Реєструйте RPC, що виконується, і пересилайте його в мультиплеер за " +"замовчуванням. \n" +"func _rpc(peer: int, object: Object, method: StringName, args: Array) -> " +"Помилка: \n" +" print(\"Отримано RPC для %d: %s::%s(%s)\" % [рівний, об'єкт, метод, " +"аргументи]) \n" +" return base_multiplayer.rpc(peer, object, method, args) \n" +"\n" +"# Додавання конфігурації журналу. наприклад кореневий шлях (nullptr, " +"NodePath), реплікація (Node, Spawner|Synchronizer), настроюваний. \n" +"func _object_configuration_add(object, config: Variant) -> Error: \n" +" if config is MultiplayerSynchronizer: \n" +" print(\"Додавання конфігурації синхронізації для %s. Синхронізатор: " +"%s\" % [об'єкт, конфігурація]) \n" +" config elif — MultiplayerSpawner: \n" +" print(\"Додавання вузла %s до списку спауна. Спаунер: %s\" % [об'єкт, " +"конфігурація]) \n" +" return base_multiplayer.object_configuration_add(object, config) \n" +"\n" +"# Видалити конфігурацію журналу. наприклад кореневий шлях (nullptr, " +"NodePath), реплікація (Node, Spawner|Synchronizer), настроюваний. \n" +"func _object_configuration_remove(object, config: Variant) -> Error: \n" +" if config is MultiplayerSynchronizer: \n" +" print(\"Видалення конфігурації синхронізації для %s. Синхронізатор: " +"%s\" % [об'єкт, конфігурація]) \n" +" конфігурація elif — MultiplayerSpawner: \n" +" print(\"Видалення вузла %s зі списку спауна. Спаунер: %s\" % [об'єкт, " +"конфігурація]) \n" +" return base_multiplayer.object_configuration_remove(object, config) \n" +"\n" +"# Вони можуть бути необов’язковими, але в нашому випадку ми хочемо розширити " +"SceneMultiplayer, тому пересилайте все. \n" +"func _set_multiplayer_peer(p_peer: MultiplayerPeer): \n" +" base_multiplayer.multiplayer_peer = p_peer \n" +"\n" +"func _get_multiplayer_peer() -> MultiplayerPeer: \n" +" повертає base_multiplayer.multiplayer_peer \n" +"\n" +"func _get_unique_id() -> int: \n" +" повернути base_multiplayer.get_unique_id() \n" +"\n" +"func _get_peer_ids() -> PackedInt32Array: \n" +" повернути base_multiplayer.get_peers() \n" +"[/gdscript] \n" +"[/codeblocks] \n" +"Потім у вашій головній сцені або в автозавантаженні викличте [метод SceneTree." +"set_multiplayer], щоб почати використовувати свій власний [MultiplayerAPI]: \n" +"[codeblocks] \n" +"[gdscript] \n" +"# autoload.gd \n" +"func _enter_tree(): \n" +" # Встановлює нашу спеціальну мультиплеєр як основну в SceneTree. \n" +" get_tree().set_multiplayer(LogMultiplayer.new()) \n" +"[/gdscript] \n" +"[/codeblocks] \n" +"Власні розширення можуть альтернативно використовувати метод [method " +"MultiplayerAPI.set_default_interface] під час ініціалізації, щоб налаштувати " +"себе як реалізацію за замовчуванням." + msgid "Called when the [member MultiplayerAPI.multiplayer_peer] is retrieved." msgstr "Зателефоновано при отриманні [пам'яті MultiplayerAPI.multiplayer_peer]." @@ -71861,6 +92532,17 @@ msgstr "" msgid "Returns the ID of this [MultiplayerPeer]." msgstr "Повертає ідентифікатор цього [MultiplayerPeer]." +msgid "" +"Returns [code]true[/code] if the server can act as a relay in the current " +"configuration. That is, if the higher level [MultiplayerAPI] should notify " +"connected clients of other peers, and implement a relay protocol to allow " +"communication between them." +msgstr "" +"Повертає [code]true[/code], якщо сервер може діяти як ретранслятор у поточній " +"конфігурації. Тобто, якщо вищий рівень [MultiplayerAPI] повинен сповіщати " +"підключених клієнтів про інших однорангових вузлів і реалізувати протокол " +"ретрансляції, щоб дозволити зв’язок між ними." + msgid "Waits up to 1 second to receive a new network event." msgstr "Очікується до 1 секунди, щоб отримати новий мережевий захід." @@ -72258,6 +92940,22 @@ msgstr "" "Шлях до кореня спавна. Просторінки, які додаються як прямі діти, реплікуються " "на інші однолітки." +msgid "" +"Emitted when a spawnable scene or custom spawn was despawned by the " +"multiplayer authority. Only called on remote peers." +msgstr "" +"Випускається, коли сцена, яка може породжуватися, або спеціальний спавн були " +"скасовані повноваженнями для кількох гравців. Виклик лише віддалених " +"однорангових пристроїв." + +msgid "" +"Emitted when a spawnable scene or custom spawn was spawned by the multiplayer " +"authority. Only called on remote peers." +msgstr "" +"Випускається, коли повноваження для багатокористувацьких ігор створюють сцену " +"з можливістю породження або спеціальний спавн. Виклик лише віддалених " +"однорангових пристроїв." + msgid "" "Synchronizes properties from the multiplayer authority to the remote peers." msgstr "" @@ -72331,6 +93029,18 @@ msgstr "" "[param for_peer] є [code]0[/code] (за замовчуванням), всі можливості " "однолітків оновлюються." +msgid "" +"Time interval between delta synchronizations. Used when the replication is " +"set to [constant SceneReplicationConfig.REPLICATION_MODE_ON_CHANGE]. If set " +"to [code]0.0[/code] (the default), delta synchronizations happen every " +"network process frame." +msgstr "" +"Інтервал часу між дельта-синхронізаціями. Використовується, коли для " +"реплікації встановлено значення [постійна SceneReplicationConfig." +"REPLICATION_MODE_ON_CHANGE]. Якщо встановлено значення [code]0.0[/code] (за " +"замовчуванням), дельта-синхронізації відбуваються в кожному кадрі мережевого " +"процесу." + msgid "" "Whether synchronization should be visible to all peers by default. See " "[method set_visibility_for] and [method add_visibility_filter] for ways of " @@ -72343,6 +93053,17 @@ msgstr "" msgid "Resource containing which properties to synchronize." msgstr "Ресурс, що містить які властивості синхронізувати." +msgid "" +"Time interval between synchronizations. Used when the replication is set to " +"[constant SceneReplicationConfig.REPLICATION_MODE_ALWAYS]. If set to " +"[code]0.0[/code] (the default), synchronizations happen every network process " +"frame." +msgstr "" +"Інтервал часу між синхронізаціями. Використовується, коли для реплікації " +"встановлено значення [constant SceneReplicationConfig." +"REPLICATION_MODE_ALWAYS]. Якщо встановлено значення [code]0.0[/code] (за " +"замовчуванням), синхронізація відбувається кожного кадру мережевого процесу." + msgid "" "Node path that replicated properties are relative to.\n" "If [member root_path] was spawned by a [MultiplayerSpawner], the node will be " @@ -72522,41 +93243,44 @@ msgid "" " NativeMenu.free_menu(menu)\n" "[/codeblock]" msgstr "" -"[NativeMenu] керує низьким рівнем доступу до меню OS рідного глобального меню " -"та меню поштових повідомлень.\n" -"[b]Примітка:[/b] Це низький рівень API, розглянемо використання [MenuBar] з " -"[пам'ятним менюBar.prefer_global_menu], встановленим на [code]true[/code], і " -"[PopupMenu] з [пам'ятний PopupMenu.prefer_native_menu], встановлений на " -"[code]true[/code].\n" -"Щоб створити меню, скористайтеся [методи створення_menu], додайте меню " -"[code]add_*_item[/code]. Щоб видалити меню, скористайтеся [метод Free_menu].\n" -"[блокування коду]\n" -"Меню вар\n" +"[NativeMenu] обробляє низькорівневий доступ до внутрішньої глобальної панелі " +"меню та спливних меню ОС. \n" +"[b]Примітка:[/b] Це низькорівневий API, розгляньте можливість використання " +"[MenuBar] із [member MenuBar.prefer_global_menu], установленим на [code]true[/" +"code], і [PopupMenu] з [member PopupMenu.prefer_native_menu], встановленим на " +"[code]true[/code]. \n" +"Щоб створити меню, використовуйте [метод create_menu], додайте пункти меню за " +"допомогою методів [code]add_*_item[/code]. Щоб видалити меню, використовуйте " +"[метод free_menu]. \n" +"[codeblock] \n" +"var menu \n" "\n" -"Func _menu_callback(item_id):\n" -"Якщо пункт_id= \"ITEM_CUT\":\n" -"зріз()\n" -"elif пункт_id= \"ITEM_COPY\":\n" -"копія()\n" -"elif пункт_id= \"ITEM_PASTE\":\n" -"паста()\n" +"func _menu_callback(item_id): \n" +" if item_id == \"ITEM_CUT\": \n" +" cut() \n" +" elif item_id == \"ITEM_COPY\": \n" +" copy() \n" +" elif item_id == \"ITEM_PASTE\": \n" +" paste() \n" "\n" -"Func _enter_tree():\n" -"# Створити нове меню і додати елементи:\n" -"Ім'я користувача\n" -"English, Українська, Français...\n" -"English, Українська, Français...\n" -"NativeMenu.add_separator(menu)\n" -"NativeMenu.add_item(menu, \"Paste\", _menu_callback, Callable(), " -"\"ITEM_PASTE\")\n" +"func _enter_tree(): \n" +" # Створіть нове меню та додайте елементи: \n" +" menu = NativeMenu.create_menu() \n" +" NativeMenu.add_item(menu, \"Cut\", _menu_callback, Callable(), " +"\"ITEM_CUT\") \n" +" NativeMenu.add_item(menu, \"Copy\", _menu_callback, Callable(), " +"\"ITEM_COPY\") \n" +" NativeMenu.add_separator(menu) \n" +" NativeMenu.add_item(menu, \"Paste\", _menu_callback, Callable(), " +"\"ITEM_PASTE\") \n" "\n" -"Func _on_button_pressed():\n" -"# Показати меню popup в положенні мишки:\n" -"English, Українська, Français...\n" +"func _on_button_pressed(): \n" +" # Показувати спливаюче меню в положенні миші: \n" +" NativeMenu.popup(menu, DisplayServer.mouse_get_position()) \n" "\n" -"Func _exit_tree():\n" -"# Видалити меню, коли це більше не потрібно:\n" -"NativeMenu.free_menu(menu)\n" +"func _exit_tree(): \n" +" # Видалити меню, коли воно більше не потрібне: \n" +" NativeMenu.free_menu(menu) \n" "[/codeblock]" msgid "" @@ -72965,6 +93689,13 @@ msgstr "" "Повернутися до глобального меню мінімальної ширини.\n" "[b]Примітка:[/b] Цей метод реалізується тільки на macOS." +msgid "" +"Returns global menu close callback.\n" +"[b]Note:[/b] This method is implemented on macOS and Windows." +msgstr "" +"Повертає зворотний виклик із закриття глобального меню.\n" +"[b]Примітка.[/b] Цей метод реалізовано в macOS і Windows." + msgid "" "Returns global menu open callback.\n" "b]Note:[/b] This method is implemented only on macOS." @@ -73222,6 +93953,20 @@ msgstr "" "Налаштування мінімальної ширини глобального меню.\n" "[b]Примітка:[/b] Цей метод реалізується тільки на macOS." +msgid "" +"Registers callable to emit when the menu is about to show.\n" +"[b]Note:[/b] The OS can simulate menu opening to track menu item changes and " +"global shortcuts, in which case the corresponding close callback is not " +"triggered. Use [method is_opened] to check if the menu is currently opened.\n" +"[b]Note:[/b] This method is implemented on macOS and Windows." +msgstr "" +"Реєстри, що викликаються, щоб випустити, коли меню ось-ось відобразиться. \n" +"[b]Примітка:[/b] ОС може імітувати відкриття меню для відстеження змін " +"пунктів меню та глобальних ярликів, у цьому випадку відповідний зворотний " +"виклик закриття не запускається. Використовуйте [метод is_opened], щоб " +"перевірити, чи відкрито меню в даний момент. \n" +"[b]Примітка.[/b] Цей метод реалізовано в macOS і Windows." + msgid "" "Registers callable to emit after the menu is closed.\n" "[b]Note:[/b] This method is implemented only on macOS." @@ -74719,6 +95464,15 @@ msgstr "Очистити внутрішні дані." msgid "Clears all projected obstructions." msgstr "Очищає всі проєктовані обструкції." +msgid "" +"Returns an axis-aligned bounding box that covers all the stored geometry " +"data. The bounds are calculated when calling this function with the result " +"cached until further geometry changes are made." +msgstr "" +"Повертає вирівняну по осі обмежувальну рамку, яка охоплює всі збережені " +"геометричні дані. Межі обчислюються під час виклику цієї функції з кешуванням " +"результату до подальших змін геометрії." + msgid "Returns all the obstructed area outlines arrays." msgstr "Повертає всі обстрункі області обмітує масиви." @@ -74765,12 +95519,12 @@ msgid "" "[/gdscript]\n" "[/codeblocks]" msgstr "" -"Налаштовує проєктовані обструкції з Array of Dictionaries з наступними парами " -"ключових значень:\n" -"[блоки коду]\n" -"[видання]\n" -"\"Перекази\" : ПакетиФлоат32 Арра\n" -"\"Короб\" : боль\n" +"Встановлює спроектовані перешкоди за допомогою масиву словників із такими " +"парами ключ-значення:\n" +"[codeblocks]\n" +"[gdscript]\n" +"\"vertices\" : PackedFloat32Array\n" +"\"carve\" : bool\n" "[/gdscript]\n" "[/codeblocks]" @@ -74896,14 +95650,14 @@ msgid "" "[/gdscript]\n" "[/codeblocks]" msgstr "" -"Налаштовує проєктовані обструкції з Array of Dictionaries з наступними парами " -"ключових значень:\n" -"[блоки коду]\n" -"[видання]\n" -"\"Перекази\" : ПакетиФлоат32 Арра\n" -"«Лікування» : плавати\n" -"\"Шайт\" : плавати\n" -"\"Короб\" : боль\n" +"Встановлює спроектовані перешкоди за допомогою масиву словників із такими " +"парами ключ-значення:\n" +"[codeblocks]\n" +"[gdscript]\n" +"\"vertices\" : PackedFloat32Array\n" +"\"elevation\" : float\n" +"\"height\" : float\n" +"\"carve\" : bool\n" "[/gdscript]\n" "[/codeblocks]" @@ -75179,6 +95933,13 @@ msgstr "" "краю. Це створює кращі доріжки для кахельних або сітчастих макетів, які " "обмежують рух до центру клітин." +msgid "" +"Applies no postprocessing and returns the raw path corridor as found by the " +"pathfinding algorithm." +msgstr "" +"Не застосовує постобробку та повертає необроблений коридор шляху, знайдений " +"алгоритмом пошуку шляху." + msgid "Don't include any additional metadata about the returned path." msgstr "Не містить додаткових метаданих щодо способу повернення." @@ -75288,6 +96049,105 @@ msgid "" "A 2D navigation mesh that describes a traversable surface for pathfinding." msgstr "Навігація на 2D, яка описує трафаретну поверхню для вирівнювання." +msgid "" +"A navigation mesh can be created either by baking it with the help of the " +"[NavigationServer2D], or by adding vertices and convex polygon indices arrays " +"manually.\n" +"To bake a navigation mesh at least one outline needs to be added that defines " +"the outer bounds of the baked area.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var new_navigation_mesh = NavigationPolygon.new()\n" +"var bounding_outline = PackedVector2Array([Vector2(0, 0), Vector2(0, 50), " +"Vector2(50, 50), Vector2(50, 0)])\n" +"new_navigation_mesh.add_outline(bounding_outline)\n" +"NavigationServer2D.bake_from_source_geometry_data(new_navigation_mesh, " +"NavigationMeshSourceGeometryData2D.new());\n" +"$NavigationRegion2D.navigation_polygon = new_navigation_mesh\n" +"[/gdscript]\n" +"[csharp]\n" +"var newNavigationMesh = new NavigationPolygon();\n" +"Vector2[] boundingOutline = [new Vector2(0, 0), new Vector2(0, 50), new " +"Vector2(50, 50), new Vector2(50, 0)];\n" +"newNavigationMesh.AddOutline(boundingOutline);\n" +"NavigationServer2D.BakeFromSourceGeometryData(newNavigationMesh, new " +"NavigationMeshSourceGeometryData2D());\n" +"GetNode<NavigationRegion2D>(\"NavigationRegion2D\").NavigationPolygon = " +"newNavigationMesh;\n" +"[/csharp]\n" +"[/codeblocks]\n" +"Adding vertices and polygon indices manually.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var new_navigation_mesh = NavigationPolygon.new()\n" +"var new_vertices = PackedVector2Array([Vector2(0, 0), Vector2(0, 50), " +"Vector2(50, 50), Vector2(50, 0)])\n" +"new_navigation_mesh.vertices = new_vertices\n" +"var new_polygon_indices = PackedInt32Array([0, 1, 2, 3])\n" +"new_navigation_mesh.add_polygon(new_polygon_indices)\n" +"$NavigationRegion2D.navigation_polygon = new_navigation_mesh\n" +"[/gdscript]\n" +"[csharp]\n" +"var newNavigationMesh = new NavigationPolygon();\n" +"Vector2[] newVertices = [new Vector2(0, 0), new Vector2(0, 50), new " +"Vector2(50, 50), new Vector2(50, 0)];\n" +"newNavigationMesh.Vertices = newVertices;\n" +"int[] newPolygonIndices = [0, 1, 2, 3];\n" +"newNavigationMesh.AddPolygon(newPolygonIndices);\n" +"GetNode<NavigationRegion2D>(\"NavigationRegion2D\").NavigationPolygon = " +"newNavigationMesh;\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Навігаційну сітку можна створити або за допомогою запікання за допомогою " +"[NavigationServer2D], або шляхом додавання вершин і масивів індексів опуклих " +"полігонів вручну. \n" +"Щоб запекти навігаційну сітку, необхідно додати принаймні один контур, який " +"визначає зовнішні межі запеченої області. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var new_navigation_mesh = NavigationPolygon.new() \n" +"var bounding_outline = PackedVector2Array([Vector2(0, 0), Vector2(0, 50), " +"Vector2(50, 50), Vector2(50, 0)]) \n" +"new_navigation_mesh.add_outline(bounding_outline) \n" +"NavigationServer2D.bake_from_source_geometry_data(new_navigation_mesh, " +"NavigationMeshSourceGeometryData2D.new());\n" +"$NavigationRegion2D.navigation_polygon = new_navigation_mesh \n" +"[/gdscript] \n" +"[csharp] \n" +"var newNavigationMesh = новий NavigationPolygon(); \n" +"Vector2[] boundingOutline = [new Vector2(0, 0), new Vector2(0, 50), new " +"Vector2(50, 50), new Vector2(50, 0)]; \n" +"newNavigationMesh.AddOutline(boundingOutline); \n" +"NavigationServer2D.BakeFromSourceGeometryData(newNavigationMesh, new " +"NavigationMeshSourceGeometryData2D());\n" +"GetNode<NavigationRegion2D>(\"NavigationRegion2D\").NavigationPolygon = " +"newNavigationMesh; \n" +"[/csharp] \n" +"[/codeblocks] \n" +"Додавання вершин і індексів багатокутників вручну. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var new_navigation_mesh = NavigationPolygon.new() \n" +"var new_vertices = PackedVector2Array([Vector2(0, 0), Vector2(0, 50), " +"Vector2(50, 50), Vector2(50, 0)]) \n" +"new_navigation_mesh.vertices = нові_вершини \n" +"var new_polygon_indices = PackedInt32Array([0, 1, 2, 3]) \n" +"new_navigation_mesh.add_polygon(new_polygon_indices) \n" +"$NavigationRegion2D.navigation_polygon = new_navigation_mesh \n" +"[/gdscript] \n" +"[csharp] \n" +"var newNavigationMesh = новий NavigationPolygon(); \n" +"Vector2[] newVertices = [new Vector2(0, 0), new Vector2(0, 50), new " +"Vector2(50, 50), new Vector2(50, 0)]; \n" +"newNavigationMesh.Vertices = newVertices; \n" +"int[] newPolygonIndices = [0, 1, 2, 3]; \n" +"newNavigationMesh.AddPolygon(newPolygonIndices); \n" +"GetNode<NavigationRegion2D>(\"NavigationRegion2D\").NavigationPolygon = " +"newNavigationMesh; \n" +"[/csharp] \n" +"[/codeblocks]" + msgid "Navigation Polygon 2D Demo" msgstr "Навігація Polygon 2D демо" @@ -75445,6 +96305,14 @@ msgstr "" "SOURCE_GEOMETRY_GROUPS_WITH_CHILDREN] або [constant " "SOURCE_GEOMETRY_GROUPS_EXPLICIT]." +msgid "Convex partitioning that yields navigation mesh with convex polygons." +msgstr "Опукле розбиття, яке дає навігаційну сітку з опуклими багатокутниками." + +msgid "" +"Triangulation partitioning that yields navigation mesh with triangle polygons." +msgstr "" +"Розбиття тріангуляції, що дає навігаційну сітку з трикутними багатокутниками." + msgid "" "Parses mesh instances as obstruction geometry. This includes [Polygon2D], " "[MeshInstance2D], [MultiMeshInstance2D], and [TileMap] nodes.\n" @@ -75528,6 +96396,13 @@ msgstr "" "[НавігаціяПолігон]. Якщо [param on_thread] встановлюється до [code]true[/" "code] (default), випікання проводиться на окремій нитки." +msgid "" +"Returns the axis-aligned rectangle for the region's transformed navigation " +"mesh." +msgstr "" +"Повертає вирівняний за віссю прямокутник для трансформованої навігаційної " +"сітки області." + msgid "Returns the current navigation map [RID] used by this region." msgstr "" "Повернення поточного навігаційної карти [RID], що використовується цим " @@ -75677,6 +96552,13 @@ msgstr "" "нитку автоматично відключається на операційні системи, які не можуть " "використовувати нитки (наприклад, Web з вимкненими нитками)." +msgid "" +"Returns the axis-aligned bounding box for the region's transformed navigation " +"mesh." +msgstr "" +"Повертає вирівняну по осі обмежувальну рамку для трансформованої навігаційної " +"сітки області." + msgid "Returns the [RID] of this region on the [NavigationServer3D]." msgstr "Повернення [RID] цієї області на [NavigationServer3D]." @@ -75873,6 +96755,10 @@ msgstr "" "Повернутися [code]true[/code], якщо зазначений [param агент] має зворотний " "дзвінок." +msgid "Returns [code]true[/code] if the map got changed the previous frame." +msgstr "" +"Повертає [code]true[/code], якщо карта була змінена в попередньому кадрі." + msgid "" "Sets the callback [Callable] that gets called after each avoidance processing " "step for the [param agent]. The calculated [code]safe_velocity[/code] will be " @@ -75945,6 +96831,15 @@ msgstr "" "навігацію. Чим більший цей номер, тим довше робочий час моделювання. Якщо " "номер занадто низький, моделювання не буде безпечним." +msgid "" +"If [param paused] is [code]true[/code] the specified [param agent] will not " +"be processed, e.g. calculate avoidance velocities or receive avoidance " +"callbacks." +msgstr "" +"Якщо [param paused] має значення [code]true[/code], указаний [param agent] не " +"буде оброблено, наприклад. розрахувати швидкість уникнення або отримати " +"зворотні виклики уникнення." + msgid "Sets the position of the agent in world space." msgstr "Встановлює позицію агента у світовому просторі." @@ -76182,6 +97077,20 @@ msgstr "" "Повертає розмір карткової комірки, що використовується для стерилізації " "навігаторів сітки." +msgid "" +"Returns the navigation mesh surface point closest to the provided [param " +"to_point] on the navigation [param map]." +msgstr "" +"Повертає точку поверхні навігаційної сітки, найближчу до наданого [param " +"to_point] на навігаційній [param map]." + +msgid "" +"Returns the owner region RID for the navigation mesh surface point closest to " +"the provided [param to_point] on the navigation [param map]." +msgstr "" +"Повертає RID регіону власника для точки поверхні навігаційної сітки, " +"найближчої до наданого [param to_point] на навігаційній [param map]." + msgid "" "Returns the edge connection margin of the map. The edge connection margin is " "a distance used to connect two regions." @@ -76254,6 +97163,13 @@ msgstr "" "Повертає всі навігаційні регіони [RID], які в даний час приписуються на " "задану навігацію [пам. карта]." +msgid "" +"Returns [code]true[/code] if the [param map] synchronization uses an async " +"process that runs on a background thread." +msgstr "" +"Повертає [code]true[/code], якщо синхронізація [param map] використовує " +"асинхронний процес, який виконується у фоновому потоці." + msgid "" "Returns whether the navigation [param map] allows navigation regions to use " "edge connections to connect with other navigation regions within proximity of " @@ -76264,6 +97180,9 @@ msgstr "" "навігаційними регіонами в безпосередній близькості від навігації краю " "з'єднання." +msgid "Returns [code]true[/code] if the map is active." +msgstr "Повертає [code]true[/code], якщо карта активна." + msgid "Sets the map active." msgstr "Налаштовує активацію карти." @@ -76288,6 +97207,13 @@ msgstr "" "Налаштуйте радіус підключення до карти, який використовується для підключення " "посилань на навігацію полігонів." +msgid "" +"If [param enabled] is [code]true[/code] the [param map] synchronization uses " +"an async process that runs on a background thread." +msgstr "" +"Якщо [param enabled] має значення [code]true[/code], синхронізація [param " +"map] використовує асинхронний процес, який виконується у фоновому потоці." + msgid "" "Set the navigation [param map] edge connection use. If [param enabled] is " "[code]true[/code], the navigation map allows navigation regions to use edge " @@ -76350,6 +97276,13 @@ msgstr "Набір перешкод [code]avoidance_layers[/code] bitmask." msgid "Sets the navigation map [RID] for the obstacle." msgstr "Настроювання навігаційної карти [RID] для перешкод." +msgid "" +"If [param paused] is [code]true[/code] the specified [param obstacle] will " +"not be processed, e.g. affect avoidance velocities." +msgstr "" +"Якщо [param paused] має значення [code]true[/code], указаний [param obstacle] " +"не буде оброблено, наприклад. впливають на швидкість уникнення." + msgid "Sets the position of the obstacle in world space." msgstr "Налаштовує позицію перешкод у світі." @@ -76400,9 +97333,36 @@ msgstr "" "GPU, стеблінгу [RenderingServer] в процесі. Для виконання воліє використання " "електронних форм зіткнення або створення масивів даних повністю в коді." +msgid "" +"Queries a path in a given navigation map. Start and target position and other " +"parameters are defined through [NavigationPathQueryParameters2D]. Updates the " +"provided [NavigationPathQueryResult2D] result object with the path among " +"other results requested by the query. After the process is finished the " +"optional [param callback] will be called." +msgstr "" +"Запитує шлях на даній навігаційній карті. Початкова та цільова позиція та " +"інші параметри визначаються через [NavigationPathQueryParameters2D]. Оновлює " +"наданий об’єкт результату [NavigationPathQueryResult2D] за допомогою шляху " +"серед інших результатів, запитуваних запитом. Після завершення процесу буде " +"викликано додатковий [param callback]." + msgid "Creates a new region." msgstr "Створення нового регіону." +msgid "" +"Returns the axis-aligned rectangle for the [param region]'s transformed " +"navigation mesh." +msgstr "" +"Повертає вирівняний за віссю прямокутник для перетвореної навігаційної сітки " +"[param region]." + +msgid "" +"Returns the navigation mesh surface point closest to the provided [param " +"to_point] on the navigation [param region]." +msgstr "" +"Повертає точку поверхні навігаційної сітки, найближчу до наданого [param " +"to_point] у навігаційній [param області]." + msgid "" "Returns the ending point of a connection door. [param connection] is an index " "between 0 and the return value of [method region_get_connections_count]." @@ -76791,6 +97751,25 @@ msgstr "" "Повертає розмір карткової комірки, що використовується для стерилізації " "навігаційних вершин на площині XZ." +msgid "" +"Returns the navigation mesh surface normal closest to the provided [param " +"to_point] on the navigation [param map]." +msgstr "" +"Повертає нормаль поверхні навігаційної сітки, найближчу до наданого [param " +"to_point] на навігаційній [param map]." + +msgid "" +"Returns the navigation mesh surface point closest to the provided [param " +"start] and [param end] segment on the navigation [param map].\n" +"If [param use_collision] is [code]true[/code], a closest point test is only " +"done when the segment intersects with the navigation mesh surface." +msgstr "" +"Повертає точку поверхні навігаційної сітки, найближчу до наданого сегмента " +"[param start] і [param end] на навігаційній [param map]. \n" +"Якщо [параметр use_collision] має значення [code]true[/code], перевірка " +"найближчої точки виконується лише тоді, коли сегмент перетинається з " +"поверхнею навігаційної сітки." + msgid "" "Returns the edge connection margin of the map. This distance is the minimum " "vertex distance needed to connect two edges from different regions." @@ -76804,6 +97783,15 @@ msgstr "Повертає внутрішню об'єднання растрови msgid "Returns the map's up direction." msgstr "Повертає напрямок карти." +msgid "" +"Returns [code]true[/code] if the navigation [param map] allows navigation " +"regions to use edge connections to connect with other navigation regions " +"within proximity of the navigation map edge connection margin." +msgstr "" +"Повертає [code]true[/code], якщо навігаційний [param map] дозволяє " +"навігаційним регіонам використовувати крайові з’єднання для з’єднання з " +"іншими навігаційними регіонами в межах поля з’єднання краю навігаційної карти." + msgid "" "Sets the map cell height used to rasterize the navigation mesh vertices on " "the Y axis. Must match with the cell height of the used navigation meshes." @@ -76865,6 +97853,19 @@ msgstr "" "Налаштовує, якщо увімкнено [параційна перешкода] 2D ухилення або увімкнення " "3D." +msgid "" +"Queries a path in a given navigation map. Start and target position and other " +"parameters are defined through [NavigationPathQueryParameters3D]. Updates the " +"provided [NavigationPathQueryResult3D] result object with the path among " +"other results requested by the query. After the process is finished the " +"optional [param callback] will be called." +msgstr "" +"Запитує шлях на даній навігаційній карті. Початкова та цільова позиція та " +"інші параметри визначаються через [NavigationPathQueryParameters3D]. Оновлює " +"наданий об’єкт результату [NavigationPathQueryResult3D] за допомогою шляху " +"серед інших результатів, запитуваних запитом. Після завершення процесу буде " +"викликано додатковий [param callback]." + msgid "" "Bakes the [param navigation_mesh] with bake source geometry collected " "starting from the [param root_node]." @@ -76872,6 +97873,41 @@ msgstr "" "Bakes the [param Navigation_mesh] з геометрією джерела випікання, зібраної з " "[param корінь_node]." +msgid "" +"Returns the axis-aligned bounding box for the [param region]'s transformed " +"navigation mesh." +msgstr "" +"Повертає вирівняну по осі обмежувальну рамку для трансформованої навігаційної " +"сітки [param region]." + +msgid "" +"Returns the navigation mesh surface normal closest to the provided [param " +"to_point] on the navigation [param region]." +msgstr "" +"Повертає нормаль поверхні навігаційної сітки, найближчу до наданого [param " +"to_point] у навігаційній [param області]." + +msgid "" +"Returns the navigation mesh surface point closest to the provided [param " +"start] and [param end] segment on the navigation [param region].\n" +"If [param use_collision] is [code]true[/code], a closest point test is only " +"done when the segment intersects with the navigation mesh surface." +msgstr "" +"Повертає точку поверхні навігаційної сітки, найближчу до наданого сегмента " +"[param start] і [param end] у навігаційній [param region]. \n" +"Якщо [параметр use_collision] має значення [code]true[/code], перевірка " +"найближчої точки виконується лише тоді, коли сегмент перетинається з " +"поверхнею навігаційної сітки." + +msgid "" +"Returns [code]true[/code] if the navigation [param region] is set to use edge " +"connections to connect with other navigation regions within proximity of the " +"navigation map edge connection margin." +msgstr "" +"Повертає [code]true[/code], якщо навігаційний [param region] налаштовано на " +"використання граничних з’єднань для з’єднання з іншими навігаційними " +"областями в межах поля з’єднання краю навігаційної карти." + msgid "" "If [param enabled] is [code]true[/code], the specified [param region] will " "contribute to its current navigation map." @@ -76961,6 +97997,9 @@ msgstr "" "можуть бути об'єднані, але можуть бути як і раніше пов'язані з кутовою " "близькістю або з посиланнями." +msgid "Constant to get the number of active navigation obstacles." +msgstr "Константа для отримання кількості активних навігаційних перешкод." + msgid "" "A control that displays a texture by keeping its corners intact, but tiling " "its edges and center." @@ -77280,23 +98319,23 @@ msgid "" " return []\n" "[/codeblock]" msgstr "" -"Елементи в масиві, що повернуті з цього способу, відображаються як " -"попередження в Сцену док, якщо скрипт, який перенаречений він є [code]tool[/" -"code] скрипт.\n" -"Повернути порожній масив не застереження.\n" -"Дзвоните до [method update_configuration_warnings], коли попередження повинні " -"бути оновлені для цього вузла.\n" -"[блокування коду]\n" -"@export var енергія = 0:\n" -"набір(значення):\n" -"енергія = значення\n" -"Update_configuration_warnings()\n" +"Елементи в масиві, який повертає цей метод, відображаються як попередження в " +"доку Scene, якщо сценарій, який замінює його, є сценарієм [code]інструмента[/" +"code].\n" +"Повернення порожнього масиву не створює попереджень.\n" +"Викличте [метод update_configuration_warnings], коли потрібно оновити " +"попередження для цього вузла.\n" +"[codeblock]\n" +"@export var energy = 0:\n" +" set(value):\n" +" energy = value\n" +" update_configuration_warnings()\n" "\n" -"Func _get_configuration_warnings():\n" -"якщо енергія < 0:\n" -"Зворотній зв'язок\n" -"ще:\n" -"Зворотній зв'язок\n" +"func _get_configuration_warnings():\n" +" if energy < 0:\n" +" return [\"Energy must be 0 or greater.\"]\n" +" else:\n" +" return []\n" "[/codeblock]" msgid "" @@ -77326,6 +98365,103 @@ msgstr "" "[b]Примітка:[/b] Цей метод називається лише якщо вершина присутній на ялинці " "(тобто якщо це не дитячий будинок)." +msgid "" +"Called during the physics processing step of the main loop. Physics " +"processing means that the frame rate is synced to the physics, i.e. the " +"[param delta] parameter will [i]generally[/i] be constant (see exceptions " +"below). [param delta] is in seconds.\n" +"It is only called if physics processing is enabled, which is done " +"automatically if this method is overridden, and can be toggled with [method " +"set_physics_process].\n" +"Processing happens in order of [member process_physics_priority], lower " +"priority values are called first. Nodes with the same priority are processed " +"in tree order, or top to bottom as seen in the editor (also known as pre-" +"order traversal).\n" +"Corresponds to the [constant NOTIFICATION_PHYSICS_PROCESS] notification in " +"[method Object._notification].\n" +"[b]Note:[/b] This method is only called if the node is present in the scene " +"tree (i.e. if it's not an orphan).\n" +"[b]Note:[/b] [param delta] will be larger than expected if running at a " +"framerate lower than [member Engine.physics_ticks_per_second] / [member " +"Engine.max_physics_steps_per_frame] FPS. This is done to avoid \"spiral of " +"death\" scenarios where performance would plummet due to an ever-increasing " +"number of physics steps per frame. This behavior affects both [method " +"_process] and [method _physics_process]. As a result, avoid using [param " +"delta] for time measurements in real-world seconds. Use the [Time] " +"singleton's methods for this purpose instead, such as [method Time." +"get_ticks_usec]." +msgstr "" +"Викликається під час етапу фізичної обробки основного циклу. Фізичне " +"оброблення означає, що частота кадрів синхронізується з фізикою, тобто " +"параметр [param delta] [i]зазвичай[/i] буде постійним (див. винятки нижче). " +"[param delta] у секундах. \n" +"Він викликається, лише якщо ввімкнено фізичну обробку, яка виконується " +"автоматично, якщо цей метод перевизначено, і її можна перемикати за допомогою " +"[method set_physics_process]. \n" +"Обробка відбувається в порядку [member process_physics_priority], нижчі " +"значення пріоритету викликаються першими. Вузли з однаковим пріоритетом " +"обробляються в порядку дерева або зверху вниз, як видно в редакторі (також " +"відомий як обхід попереднього порядку). \n" +"Відповідає сповіщенню [константи NOTIFICATION_PHYSICS_PROCESS] у [методі " +"Object._notification]. \n" +"[b]Примітка:[/b] Цей метод викликається, лише якщо вузол присутній у дереві " +"сцени (тобто якщо він не є сиротою). \n" +"[b]Примітка.[/b] [param delta] буде більшим, ніж очікувалося, якщо частота " +"кадрів буде нижчою за [member Engine.physics_ticks_per_second] / [member " +"Engine.max_physics_steps_per_frame] FPS. Це зроблено, щоб уникнути сценаріїв " +"«спіралі смерті», коли продуктивність різко впаде через постійно зростаючу " +"кількість кроків фізики на кадр. Ця поведінка впливає на [method _process] і " +"[method _physics_process]. Тому уникайте використання [param delta] для " +"вимірювання часу в реальних секундах. Замість цього використовуйте для цієї " +"мети методи [Time] singleton, наприклад [method Time.get_ticks_usec]." + +msgid "" +"Called during the processing step of the main loop. Processing happens at " +"every frame and as fast as possible, so the [param delta] time since the " +"previous frame is not constant. [param delta] is in seconds.\n" +"It is only called if processing is enabled, which is done automatically if " +"this method is overridden, and can be toggled with [method set_process].\n" +"Processing happens in order of [member process_priority], lower priority " +"values are called first. Nodes with the same priority are processed in tree " +"order, or top to bottom as seen in the editor (also known as pre-order " +"traversal).\n" +"Corresponds to the [constant NOTIFICATION_PROCESS] notification in [method " +"Object._notification].\n" +"[b]Note:[/b] This method is only called if the node is present in the scene " +"tree (i.e. if it's not an orphan).\n" +"[b]Note:[/b] [param delta] will be larger than expected if running at a " +"framerate lower than [member Engine.physics_ticks_per_second] / [member " +"Engine.max_physics_steps_per_frame] FPS. This is done to avoid \"spiral of " +"death\" scenarios where performance would plummet due to an ever-increasing " +"number of physics steps per frame. This behavior affects both [method " +"_process] and [method _physics_process]. As a result, avoid using [param " +"delta] for time measurements in real-world seconds. Use the [Time] " +"singleton's methods for this purpose instead, such as [method Time." +"get_ticks_usec]." +msgstr "" +"Викликається на етапі обробки основного циклу. Обробка відбувається в кожному " +"кадрі якомога швидше, тому час [param delta] від попереднього кадру не є " +"постійним. [param delta] у секундах. \n" +"Він викликається, лише якщо ввімкнено обробку, яка виконується автоматично, " +"якщо цей метод перевизначено, і її можна перемикати за допомогою [method " +"set_process]. \n" +"Обробка відбувається в порядку [member process_priority], першими " +"викликаються значення нижчого пріоритету. Вузли з однаковим пріоритетом " +"обробляються в порядку дерева або зверху вниз, як видно в редакторі (також " +"відомий як обхід попереднього порядку). \n" +"Відповідає сповіщенню [constant NOTIFICATION_PROCESS] у [method Object." +"_notification]. \n" +"[b]Примітка:[/b] Цей метод викликається, лише якщо вузол присутній у дереві " +"сцени (тобто якщо він не є сиротою). \n" +"[b]Примітка.[/b] [param delta] буде більшим, ніж очікувалося, якщо частота " +"кадрів буде нижчою за [member Engine.physics_ticks_per_second] / [member " +"Engine.max_physics_steps_per_frame] FPS. Це зроблено, щоб уникнути сценаріїв " +"«спіралі смерті», коли продуктивність різко впаде через постійно зростаючу " +"кількість кроків фізики на кадр. Ця поведінка впливає на [method _process] і " +"[method _physics_process]. Тому уникайте використання [param delta] для " +"вимірювання часу в реальних секундах. Замість цього використовуйте для цієї " +"мети методи [Time] singleton, наприклад [method Time.get_ticks_usec]." + msgid "" "Called when the node is \"ready\", i.e. when both the node and its children " "have entered the scene tree. If the node has children, their [method _ready] " @@ -77512,41 +98648,41 @@ msgstr "" "Додає дочірній [вузол param]. Вузли можуть мати будь-яку кількість дітей, але " "кожна дитина повинна мати унікальне ім’я. Дочірні вузли автоматично " "видаляються, коли видаляється батьківський вузол, тому всю сцену можна " -"видалити, видаливши її найвищий вузол.\n" +"видалити, видаливши її найвищий вузол. \n" "Якщо [param force_readable_name] має значення [code]true[/code], покращується " "читабельність доданого [вузла param]. Якщо ім’я не вказано, [вузол param] " "перейменовується відповідно до його типу, а якщо він спільний [ім’я члена] з " "братом або сестрою, число додається більш відповідним суфіксом. Ця операція " "дуже повільна. Таким чином, рекомендується залишити значення [code]false[/" -"code], яке призначає фіктивне ім’я з [code]@[/code] в обох ситуаціях.\n" +"code], яке призначає фіктивне ім’я з [code]@[/code] в обох ситуаціях. \n" "Якщо [param internal] відрізняється від [constant INTERNAL_MODE_DISABLED], " "дочірній елемент буде додано як внутрішній вузол. Ці вузли ігноруються такими " "методами, як [method get_children], якщо їх параметр [code]include_internal[/" "code] не має значення [code]true[/code]. Передбачене використання полягає в " "тому, щоб приховати внутрішні вузли від користувача, щоб користувач випадково " -"не видалив або змінив їх. Використовується деякими вузлами GUI, наприклад " -"[ColorPicker]. Дивіться [enum InternalMode] для доступних режимів.\n" +"не видалив або змінив їх. Використовується деякими вузлами GUI, напр. [Вибір " +"кольору]. Дивіться [enum InternalMode] для доступних режимів. \n" "[b]Примітка:[/b] Якщо [param node] уже має батьківського елемента, цей метод " "не вдасться виконати. Спочатку використовуйте [method remove_child], щоб " -"видалити [вузол param] із поточного батьківського елемента. Наприклад:\n" -"[кодові блоки]\n" -"[gdscript]\n" -"var child_node = get_child(0)\n" -"if child_node.get_parent():\n" -" child_node.get_parent().remove_child(child_node)\n" -"add_child(child_node)\n" -"[/gdscript]\n" -"[csharp]\n" -"Вузол childNode = GetChild(0);\n" -"if (childNode.GetParent() != null)\n" +"видалити [вузол param] із поточного батьківського елемента. Наприклад: \n" +"[codeblocks] \n" +"[gdscript] \n" +"var child_node = get_child(0) \n" +"if child_node.get_parent(): \n" +" child_node.get_parent().remove_child(child_node) \n" +"add_child(child_node) \n" +"[/gdscript] \n" +"[csharp] \n" +"Node childNode = GetChild(0); \n" +"if (childNode.GetParent() != null) \n" "{\n" -" childNode.GetParent().RemoveChild(childNode);\n" +" childNode.GetParent().RemoveChild(childNode); \n" "}\n" -"AddChild(childNode);\n" -"[/csharp]\n" -"[/codeblocks]\n" +"AddChild(childNode); \n" +"[/csharp] \n" +"[/codeblocks] \n" "Якщо вам потрібно додати дочірній вузол нижче певного вузла в списку " -"дочірніх, використовуйте [method add_sibling] замість цього методу.\n" +"дочірніх, використовуйте [method add_sibling] замість цього методу. \n" "[b]Примітка:[/b] Якщо ви хочете, щоб дочірній елемент залишався в " "[PackedScene], ви повинні встановити [member owner] на додаток до виклику " "[method add_child]. Зазвичай це стосується [url=$DOCS_URL/tutorials/plugins/" @@ -77751,22 +98887,37 @@ msgid "" "[b]Note:[/b] The method can still be used when the node is not inside " "[SceneTree]. It can fail in an unlikely case of using a custom [MainLoop]." msgstr "" -"Створює новий [Tween] і зв'язує його в цей вузол.\n" -"Це еквівалент виконання:\n" -"[блоки коду]\n" -"[видання]\n" -"get_tree().create_tween().bind_node(self)\n" -"[/gdscript]\n" -"[csharp]\n" -"GetTree().CreateTween().BindNode(this);\n" -"[/csharp]\n" -"[/codeblocks]\n" -"Tween автоматично почнеться на наступному етапі рамки або фізиці (в " -"залежності від [enum Tween.TweenProcessMode]). Детальніше про Tween." -"bind_node\n" -"[b]Примітка:[/b] Метод може використовуватися, коли вузол не всередині " -"[SceneTree]. Це може не в малоймовірному випадку використання на замовлення " -"[MainLoop]." +"Створює новий [Tween] і прив’язує його до цього вузла. \n" +"Це еквівалент виконання: \n" +"[codeblocks] \n" +"[gdscript] \n" +"get_tree().create_tween().bind_node(self) \n" +"[/gdscript] \n" +"[csharp] \n" +"GetTree().CreateTween().BindNode(this); \n" +"[/csharp] \n" +"[/codeblocks] \n" +"Анімація запуститься автоматично на наступному кадрі процесу або кадрі фізики " +"(залежно від [enum Tween.TweenProcessMode]). Дивіться [method Tween." +"bind_node], щоб дізнатися більше про Tween, прив’язаний до вузлів. \n" +"[b]Примітка: [/b] Метод усе ще можна використовувати, якщо вузол не " +"знаходиться всередині [SceneTree]. Це може вийти з ладу в малоймовірному " +"випадку використання спеціального [MainLoop]." + +msgid "" +"Duplicates the node, returning a new node with all of its properties, " +"signals, groups, and children copied from the original. The behavior can be " +"tweaked through the [param flags] (see [enum DuplicateFlags]).\n" +"[b]Note:[/b] For nodes with a [Script] attached, if [method Object._init] has " +"been defined with required parameters, the duplicated node will not have a " +"[Script]." +msgstr "" +"Дублює вузол, повертаючи новий вузол із усіма його властивостями, сигналами, " +"групами та дочірніми елементами, скопійованими з оригіналу. Поведінку можна " +"налаштувати за допомогою [param flags] (див. [enum DuplicateFlags]). \n" +"[b]Примітка:[/b] Для вузлів із приєднаним [Сценарієм], якщо [метод Object." +"_init] було визначено з необхідними параметрами, дубльований вузол не матиме " +"[Сценарію]." msgid "" "Finds the first descendant of this node whose [member name] matches [param " @@ -77886,25 +99037,27 @@ msgid "" "[/codeblock]\n" "[b]Note:[/b] To fetch a node by [NodePath], use [method get_node]." msgstr "" -"Захоплює дочірню вершину за індексом. Кожна дитяча вершина має індекс " -"відносно своїх дробів (див. [метод get_index]). Перша дитина в індексі 0 р. " -"Негативні значення можуть бути використані для запуску з кінця списку. Цей " -"метод можна використовувати в поєднанні з [метод get_child_count], щоб " -"ітерувати дітей цього вузла. Якщо дитина не існує в даній індексі, цей метод " -"повертає [code]null[/code] і створюється помилка.\n" -"[code]false[/code], внутрішні діти ігноруються (див. [метод add_child] " -"[code]internal[/code].\n" -"[блокування коду]\n" -"Нема Припустимо, що такі діти цієї вершини, для того, щоб:\n" -"# Перший, Середній, Останній.\n" +"Отримує дочірній вузол за його індексом. Кожен дочірній вузол має індекс " +"відносно своїх братів і сестер (див. [метод get_index]). Перший дочірній " +"елемент має індекс 0. Від’ємні значення також можна використовувати для " +"початку з кінця списку. Цей метод можна використовувати в поєднанні з " +"[методом get_child_count] для повторення дочірніх елементів цього вузла. Якщо " +"за вказаним індексом не існує дочірнього елемента, цей метод повертає " +"[code]null[/code] і генерується помилка. \n" +"Якщо [param include_internal] має значення [code]false[/code], внутрішні " +"дочірні елементи ігноруються (див. [code]internal[/code] параметр [method " +"add_child]). \n" +"[codeblock] \n" +"# Припускаючи, що наступні є дочірніми елементами цього вузла, у порядку: \n" +"# Перший, середній, останній. \n" "\n" -"var a = get_child(0).name # a \"Перший\"\n" -"var b = get_child(1).name # б є \"Міддл\"\n" -"var b = get_child(2).name # b є \"Останній\"\n" -"var c = get_child(-1).name # c is \"Останній\"\n" -"[/codeblock]\n" -"[b]Примітка:[/b] Щоб викинути вузол [NodePath], скористайтеся [метод " -"get_node]." +"var a = get_child(0).name # a це \"Перший\" \n" +"var b = get_child(1).name # b це \"Середній\" \n" +"var b = get_child(2).name # b це \"Останнє\" \n" +"var c = get_child(-1).name # c це \"Останнє\" \n" +"[/codeblock] \n" +"[b]Примітка:[/b] щоб отримати вузол за допомогою [NodePath], використовуйте " +"[method get_node]." msgid "" "Returns the number of children of this node.\n" @@ -77953,31 +99106,32 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Повертаємо назву групи, яку додано вершину.\n" -"[b]Примітка:[/b] Щоб підвищити продуктивність, замовлення назв груп [i] не[/" -"i] гарантовано і може відрізнятися між проектами. Тому не покладайтеся на " -"групове замовлення.\n" -"[b]Примітка:[/b] Цей метод також може повернути деякі назви груп, починаючи з " -"низу ([code]_[/code]). Це внутрішньо використовується двигуном. Щоб уникнути " -"конфліктів, не використовуйте користувацькі групи, починаючи з низу. Щоб " -"виключити внутрішні групи, див. наступний код хіппе:\n" -"[блоки коду]\n" -"[видання]\n" -"Нема Зберігайте неінтервальні групи вершини (як масив StringNames).\n" -"var non_internal_groups = []\n" -"для групи в get_groups():\n" -"якщо не стр(група).begins_with(\"_\"):\n" -"n_internal_groups.push_back(група)\n" -"[/gdscript]\n" -"[csharp]\n" -"(Українська) Зберігайте невтрачні групи вершини (як список StringNames).\n" -"Список<string> nonInternalGroups = новий список<string>();\n" -"foreach (string група в GetGroups())\n" -"Довідник\n" -"якщо (!group.BeginsWith(\"_\")\n" -"неінтерналГрупи.Додати(група);\n" -"Про нас\n" -"[/csharp]\n" +"Повертає [Масив] імен груп, до яких було додано вузол. \n" +"[b]Примітка:[/b] Щоб покращити продуктивність, порядок назв груп [i]не[/i] " +"гарантований і може змінюватися між запусками проекту. Тому не покладайтеся " +"на груповий порядок. \n" +"[b]Примітка: [/b] Цей метод також може повертати назви деяких груп, які " +"починаються з підкреслення ([код]_[/код]). Вони використовуються внутрішньо " +"двигуном. Щоб уникнути конфліктів, не використовуйте спеціальні групи, які " +"починаються з підкреслення. Щоб виключити внутрішні групи, перегляньте такий " +"фрагмент коду: \n" +"[codeblocks] \n" +"[gdscript] \n" +"# Зберігає лише невнутрішні групи вузла (як масив StringNames). \n" +"var non_internal_groups = [] \n" +"for group в get_groups(): \n" +" if not str(group).begins_with(\"_\"): \n" +" non_internal_groups.push_back(group) \n" +"[/gdscript] \n" +"[csharp] \n" +"// Зберігає лише невнутрішні групи вузла (як список імен рядків). \n" +"List<string> nonInternalGroups = new List<string>(); \n" +"foreach (група рядків у GetGroups()) \n" +"{\n" +" if (!group.BeginsWith(\"_\")) \n" +" nonInternalGroups.Add(group); \n" +"}\n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -78048,39 +99202,39 @@ msgstr "" "Отримує вузол. [NodePath] може бути або відносним шляхом (від цього вузла), " "або абсолютним шляхом (від [члена SceneTree.root]) до вузла. Якщо [param " "path] не вказує на дійсний вузол, створюється помилка та повертається " -"[code]null[/code]. Спроби отримати доступ до методів у поверненому значенні " -"призведуть до [i]\"Спроба виклику<method> на нульовому екземплярі.\"[/i] " -"помилка.\n" +"[code]null[/code]. Спроби отримати доступ до методів із значенням, що " +"повертається, призведуть до помилки [i]\"Спроба викликати <method> у " +"нульовому екземплярі.\"[/i]. \n" "[b]Примітка:[/b] Отримання за абсолютним шляхом працює лише тоді, коли вузол " -"знаходиться всередині дерева сцени (див. [метод is_inside_tree]).\n" +"знаходиться всередині дерева сцени (див. [метод is_inside_tree]). \n" "[b]Приклад:[/b] Припустімо, що цей метод викликається з вузла Character у " -"такому дереві:\n" +"такому дереві: \n" "[codeblock lang=text]\n" -" ┖╴корінь\n" -" ┠╴Персонаж (ви тут!)\n" -" ┃ ┠╴Меч\n" -" ┃ ┖╴Рюкзак\n" -" ┃ ┖╴Кинджал\n" -" ┠╴Моя гра\n" -" ┖╴Болото\n" -" ┠╴Алігатор\n" -" ┠╴Комар\n" -" ┖╴Гоблін\n" -"[/codeblock]\n" -"Наступні виклики повернуть дійсний вузол:\n" -"[кодові блоки]\n" -"[gdscript]\n" -"get_node(\"Меч\")\n" -"get_node(\"Рюкзак/кинджал\")\n" -"get_node(\"../Болото/Алігатор\")\n" +" ┖╴root\n" +" ┠╴Character (you are here!)\n" +" ┃ ┠╴Sword\n" +" ┃ ┖╴Backpack\n" +" ┃ ┖╴Dagger\n" +" ┠╴MyGame\n" +" ┖╴Swamp\n" +" ┠╴Alligator\n" +" ┠╴Mosquito\n" +" ┖╴Goblin\n" +"[/codeblock] \n" +"Наступні виклики повернуть дійсний вузол: \n" +"[codeblocks] \n" +"[gdscript] \n" +"get_node(\"Sword\")\n" +"get_node(\"Backpack/Dagger\")\n" +"get_node(\"../Swamp/Alligator\")\n" "get_node(\"/root/MyGame\")\n" "[/gdscript]\n" "[csharp]\n" -"GetNode(\"Меч\");\n" -"GetNode(\"Рюкзак/кинджал\");\n" -"GetNode(\"../Болото/Алігатор\");\n" +"GetNode(\"Sword\");\n" +"GetNode(\"Backpack/Dagger\");\n" +"GetNode(\"../Swamp/Alligator\");\n" "GetNode(\"/root/MyGame\");\n" -"[/csharp]\n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -78130,48 +99284,48 @@ msgid "" "[/codeblocks]" msgstr "" "Отримує вузол і його найбільш вкладений ресурс, як зазначено в підназві " -"[NodePath]. Повертає [Масив] розміром [code]3[/code] де:\n" -"- Елемент [code]0[/code] є [Node] або [code]null[/code], якщо не знайдено;\n" +"[NodePath]. Повертає [Масив] розміром [код]3[/код] де: \n" +"- Елемент [code]0[/code] є [Node] або [code]null[/code], якщо не знайдено; \n" "- Елемент [code]1[/code] є останнім вкладеним [Resource] субназви або " -"[code]null[/code], якщо не знайдено;\n" +"[code]null[/code], якщо не знайдено; \n" "- Елемент [code]2[/code] є рештою [NodePath], яка посилається на існуючу " -"властивість, яка не є [Resource] (див. [method Object.get_indexed]).\n" +"властивість, яка не є [Resource] (див. [method Object.get_indexed]). \n" "[b]Приклад:[/b] Припустімо, що дочірньому [члену Sprite2D.texture] було " -"призначено [AtlasTexture]:\n" -"[кодові блоки]\n" -"[gdscript]\n" -"var a = get_node_and_resource(\"Area2D/Sprite2D\")\n" -"print(a[0].name) # Друкує Sprite2D\n" -"print(a[1]) # Друкує<null>\n" -"print(a[2]) # Виводить ^\"\"\n" +"призначено [AtlasTexture]: \n" +"[codeblocks] \n" +"[gdscript] \n" +"var a = get_node_and_resource(\"Area2D/Sprite2D\") \n" +"print(a[0].name) # Друкує Sprite2D \n" +"print(a[1]) # Виводить <null> \n" +"print(a[2]) # Виводить ^\"\" \n" "\n" -"var b = get_node_and_resource(\"Area2D/Sprite2D:texture:atlas\")\n" -"print(b[0].name) # Друк Sprite2D\n" -"print(b[1].get_class()) # Друк AtlasTexture\n" -"print(b[2]) # Виводить ^\"\"\n" +"var b = get_node_and_resource(\"Area2D/Sprite2D:texture:atlas\") \n" +"print(b[0].name) # Друк Sprite2D \n" +"print(b[1].get_class()) # Друк AtlasTexture \n" +"print(b[2]) # Виводить ^\"\" \n" "\n" -"var c = get_node_and_resource(\"Area2D/Sprite2D:texture:atlas:region\")\n" -"print(c[0].name) # Друк Sprite2D\n" -"print(c[1].get_class()) # Друк AtlasTexture\n" -"print(c[2]) # Виводить ^\":область\"\n" -"[/gdscript]\n" -"[csharp]\n" -"var a = GetNodeAndResource(NodePath(\"Area2D/Sprite2D\"));\n" -"GD.Print(a[0].Name); // Друкує Sprite2D\n" -"GD.Print(a[1]); // Друкує<null>\n" -"GD.Print(a[2]); // Друкує ^\"\n" +"var c = get_node_and_resource(\"Area2D/Sprite2D:texture:atlas:region\") \n" +"print(c[0].name) # Друк Sprite2D \n" +"print(c[1].get_class()) # Друк AtlasTexture \n" +"print(c[2]) # Виводить ^\":область\" \n" +"[/gdscript] \n" +"[csharp] \n" +"var a = GetNodeAndResource(NodePath(\"Area2D/Sprite2D\")); \n" +"GD.Print(a[0].Name); // Друкує Sprite2D \n" +"GD.Print(a[1]); // Виводить <null> \n" +"GD.Print(a[2]); // Друкує ^\" \n" "\n" -"var b = GetNodeAndResource(NodePath(\"Area2D/Sprite2D:texture:atlas\"));\n" -"GD.Print(b[0].name); // Друкує Sprite2D\n" -"GD.Print(b[1].get_class()); // Друк AtlasTexture\n" -"GD.Print(b[2]); // Друкує ^\"\"\n" +"var b = GetNodeAndResource(NodePath(\"Area2D/Sprite2D:texture:atlas\")); \n" +"GD.Print(b[0].name); // Друкує Sprite2D \n" +"GD.Print(b[1].get_class()); // Друк AtlasTexture \n" +"GD.Print(b[2]); // Друкує ^\"\" \n" "\n" "var c = GetNodeAndResource(NodePath(\"Area2D/Sprite2D:texture:atlas:" -"region\"));\n" -"GD.Print(c[0].name); // Друкує Sprite2D\n" -"GD.Print(c[1].get_class()); // Друк AtlasTexture\n" -"GD.Print(c[2]); // Друкує ^\":region\"\n" -"[/csharp]\n" +"region\")); \n" +"GD.Print(c[0].name); // Друкує Sprite2D \n" +"GD.Print(c[1].get_class()); // Друк AtlasTexture \n" +"GD.Print(c[2]); // Друкує ^\":region\" \n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -78217,6 +99371,70 @@ msgstr "" "унікального вузла, шлях може бути більшим, ніж нормальний відносний шлях, " "завдяки додаванню імені унікального вузла." +msgid "" +"Returns the time elapsed (in seconds) since the last physics callback. This " +"value is identical to [method _physics_process]'s [code]delta[/code] " +"parameter, and is often consistent at run-time, unless [member Engine." +"physics_ticks_per_second] is changed. See also [constant " +"NOTIFICATION_PHYSICS_PROCESS].\n" +"[b]Note:[/b] The returned value will be larger than expected if running at a " +"framerate lower than [member Engine.physics_ticks_per_second] / [member " +"Engine.max_physics_steps_per_frame] FPS. This is done to avoid \"spiral of " +"death\" scenarios where performance would plummet due to an ever-increasing " +"number of physics steps per frame. This behavior affects both [method " +"_process] and [method _physics_process]. As a result, avoid using " +"[code]delta[/code] for time measurements in real-world seconds. Use the " +"[Time] singleton's methods for this purpose instead, such as [method Time." +"get_ticks_usec]." +msgstr "" +"Повертає час, що минув (у секундах) з моменту останнього фізичного зворотного " +"виклику. Це значення ідентичне параметру [code]delta[/code] [method " +"_physics_process] і часто є узгодженим під час виконання, якщо [member Engine." +"physics_ticks_per_second] не змінено. Дивіться також [константа " +"NOTIFICATION_PHYSICS_PROCESS]. \n" +"[b]Примітка.[/b] Повернене значення буде більшим за очікуване, якщо частота " +"кадрів буде нижчою за [member Engine.physics_ticks_per_second] / [member " +"Engine.max_physics_steps_per_frame] FPS. Це зроблено, щоб уникнути сценаріїв " +"«спіралі смерті», коли продуктивність різко впаде через постійно зростаючу " +"кількість кроків фізики на кадр. Ця поведінка впливає на [method _process] і " +"[method _physics_process]. Тому уникайте використання [code]delta[/code] для " +"вимірювання часу в реальних секундах. Використовуйте для цієї мети натомість " +"методи синглтона [Time], наприклад [method Time.get_ticks_usec]." + +msgid "" +"Returns the time elapsed (in seconds) since the last process callback. This " +"value is identical to [method _process]'s [code]delta[/code] parameter, and " +"may vary from frame to frame. See also [constant NOTIFICATION_PROCESS].\n" +"[b]Note:[/b] The returned value will be larger than expected if running at a " +"framerate lower than [member Engine.physics_ticks_per_second] / [member " +"Engine.max_physics_steps_per_frame] FPS. This is done to avoid \"spiral of " +"death\" scenarios where performance would plummet due to an ever-increasing " +"number of physics steps per frame. This behavior affects both [method " +"_process] and [method _physics_process]. As a result, avoid using " +"[code]delta[/code] for time measurements in real-world seconds. Use the " +"[Time] singleton's methods for this purpose instead, such as [method Time." +"get_ticks_usec]." +msgstr "" +"Повертає час, що минув (у секундах) з моменту останнього зворотного виклику " +"процесу. Це значення ідентичне параметру [code]delta[/code] [method _process] " +"і може відрізнятися від кадру до кадру. Дивіться також [постійний " +"NOTIFICATION_PROCESS]. \n" +"[b]Примітка.[/b] Повернене значення буде більшим за очікуване, якщо частота " +"кадрів буде нижчою за [member Engine.physics_ticks_per_second] / [member " +"Engine.max_physics_steps_per_frame] FPS. Це зроблено, щоб уникнути сценаріїв " +"«спіралі смерті», коли продуктивність різко впаде через постійно зростаючу " +"кількість кроків фізики на кадр. Ця поведінка впливає на [method _process] і " +"[method _physics_process]. Тому уникайте використання [code]delta[/code] для " +"вимірювання часу в реальних секундах. Використовуйте для цієї мети натомість " +"методи синглтона [Time], наприклад [method Time.get_ticks_usec]." + +msgid "" +"Returns a [Dictionary] mapping method names to their RPC configuration " +"defined for this node using [method rpc_config]." +msgstr "" +"Повертає назви методів зіставлення [Словника] з їхньою конфігурацією RPC, " +"визначеною для цього вузла за допомогою [методу rpc_config]." + msgid "" "Returns [code]true[/code] if this node is an instance load placeholder. See " "[InstancePlaceholder] and [method set_scene_instance_load_placeholder]." @@ -78249,15 +99467,15 @@ msgid "" "TheGame/SplashScreen/Camera2D\n" "[/codeblock]" msgstr "" -"Повертає дерево як [String]. Використовуються переважно для знеболювання " -"цілей. Ця версія відображає шлях відносно поточного вузла, і добре підходить " -"для копіювання / розміщення в функції [метод get_node]. Також можна " -"використовувати в грі UI/UX.\n" -"Може друк, наприклад:\n" +"Повертає дерево як [String]. Використовується в основному для налагодження. " +"Ця версія відображає шлях відносно поточного вузла та підходить для " +"копіювання/вставлення в [метод get_node] функція. Його також можна " +"використовувати в UI/UX гри.\n" +"Можна друкувати, наприклад:\n" "[codeblock lang=text]\n" -"Гюм\n" -"TheGame/Мену\n" -"TheGame/Мену/Лабор\n" +"TheGame\n" +"TheGame/Menu\n" +"TheGame/Menu/Label\n" "TheGame/Menu/Camera2D\n" "TheGame/SplashScreen\n" "TheGame/SplashScreen/Camera2D\n" @@ -78278,16 +99496,16 @@ msgid "" "[/codeblock]" msgstr "" "Подібно до [method get_tree_string], це повертає дерево як [String]. Ця " -"версія відображає більш графічне уявлення, схоже на те, що відображається на " -"сцені Dock. Корисно для інспектування великих дерев.\n" -"Може друк, наприклад:\n" +"версія відображає більш графічне представлення, подібне до того, що " +"відображається в Scene Dock. Це корисно для огляду великих дерев.\n" +"Можна друкувати, наприклад:\n" "[codeblock lang=text]\n" -"й\n" -"й\n" -"й\n" -"浜у 涓 蹇\n" -"п»ї\n" -"浜у 涓 蹇\n" +" ┖╴TheGame\n" +" ┠╴Menu\n" +" ┃ ┠╴Label\n" +" ┃ ┖╴Camera2D\n" +" ┖╴SplashScreen\n" +" ┖╴Camera2D\n" "[/codeblock]" msgid "" @@ -78527,18 +99745,18 @@ msgid "" "SplashScreen/Camera2D\n" "[/codeblock]" msgstr "" -"Друкувати вузол і його дітей до консолі, рекурсивно. вузол не повинен бути " -"всередині дерева. Цей метод виводить [NodePath] відносно цього вузла, і добре " -"підходить для копіювання / розміщення в [метод get_node]. Дивись також " -"[методичного друку_tree_pretty].\n" -"Може друк, наприклад:\n" +"Виводить вузол і його дочірні елементи на консоль рекурсивно. Вузол не " +"обов'язково повинен бути всередині дерева. Цей метод виводить [NodePath]s " +"відносно цього вузла, і добре підходить для копіювання/вставлення в [метод " +"get_node]. Дивіться також [method print_tree_pretty].\n" +"May print, for example:\n" "[codeblock lang=text]\n" -"й\n" -"Навігація\n" -"Меню/Лабор\n" -"Меню/Camera2D\n" -"Шпильки\n" -"ШпилькиScreen/Camera2D\n" +".\n" +"Menu\n" +"Menu/Label\n" +"Menu/Camera2D\n" +"SplashScreen\n" +"SplashScreen/Camera2D\n" "[/codeblock]" msgid "" @@ -78556,18 +99774,18 @@ msgid "" " ┖╴Camera2D\n" "[/codeblock]" msgstr "" -"Друкувати вузол і його дітей до консолі, рекурсивно. вузол не повинен бути " -"всередині дерева. Подібно до [method print_tree], але графічне представлення " -"схоже на те, що відображається у вікні редактора. Корисно для інспектування " -"великих дерев.\n" -"Може друк, наприклад:\n" +"Виводить вузол і його дочірні елементи на консоль рекурсивно. Вузол не " +"обов'язково повинен бути всередині дерева. Схожий на [метод print_tree], але " +"графічний представлення виглядає як те, що відображається в док-станції Scene " +"редактора. Це корисно для огляду великих дерев.\n" +"Можна друкувати, наприклад:\n" "[codeblock lang=text]\n" -"й\n" -"й\n" -"й\n" -"浜у 涓 蹇\n" -"п»ї\n" -"浜у 涓 蹇\n" +" ┖╴TheGame\n" +" ┠╴Menu\n" +" ┃ ┠╴Label\n" +" ┃ ┖╴Camera2D\n" +" ┖╴SplashScreen\n" +" ┖╴Camera2D\n" "[/codeblock]" msgid "" @@ -78988,6 +100206,18 @@ msgid "Similar to [method call_thread_safe], but for setting properties." msgstr "" "Подібно до [method call_thread_safe], але для налаштування властивостей." +msgid "" +"Makes this node inherit the translation domain from its parent node. If this " +"node has no parent, the main translation domain will be used.\n" +"This is the default behavior for all nodes. Calling [method Object." +"set_translation_domain] disables this behavior." +msgstr "" +"Цей вузол успадковує домен перекладу від свого батьківського вузла. Якщо цей " +"вузол не має батьківського вузла, буде використано основний домен " +"перекладу. \n" +"Це стандартна поведінка для всіх вузлів. Виклик [методу Object." +"set_translation_domain] вимикає цю поведінку." + msgid "" "Refreshes the warnings displayed for this node in the Scene dock. Use [method " "_get_configuration_warnings] to customize the warning messages to display." @@ -79049,6 +100279,22 @@ msgstr "" "code]). [code][/code] символ зарезервований для автоматично сформованих імен. " "Дивись також [метод String.validate_node_name]." +msgid "" +"The owner of this node. The owner must be an ancestor of this node. When " +"packing the owner node in a [PackedScene], all the nodes it owns are also " +"saved with it. See also [member unique_name_in_owner].\n" +"[b]Note:[/b] In the editor, nodes not owned by the scene root are usually not " +"displayed in the Scene dock, and will [b]not[/b] be saved. To prevent this, " +"remember to set the owner after calling [method add_child]." +msgstr "" +"Власник цього вузла. Власник має бути предком цього вузла. Під час упаковки " +"вузла власника в [PackedScene] усі вузли, якими він володіє, також " +"зберігаються разом із ним. Дивіться також [member unique_name_in_owner]. \n" +"[b]Примітка:[/b] У редакторі вузли, які не належать кореневій частині сцени, " +"зазвичай не відображаються в доку сцени та [b]не[/b] зберігаються. Щоб " +"запобігти цьому, не забудьте встановити власника після виклику [method " +"add_child]." + msgid "" "Allows enabling or disabling physics interpolation per node, offering a finer " "grain of control than turning physics interpolation on and off globally. See " @@ -79073,6 +100319,27 @@ msgstr "" "Поведінка обробки вершини (див. [enum ProcessMode]). Щоб перевірити, якщо " "вершина може оброблятися в його поточному режимі, скористайтеся [метод]." +msgid "" +"Similar to [member process_priority] but for [constant " +"NOTIFICATION_PHYSICS_PROCESS], [method _physics_process], or [constant " +"NOTIFICATION_INTERNAL_PHYSICS_PROCESS]." +msgstr "" +"Подібно до [member process_priority], але для [constant " +"NOTIFICATION_PHYSICS_PROCESS], [method _physics_process] або [constant " +"NOTIFICATION_INTERNAL_PHYSICS_PROCESS]." + +msgid "" +"The node's execution order of the process callbacks ([method _process], " +"[constant NOTIFICATION_PROCESS], and [constant " +"NOTIFICATION_INTERNAL_PROCESS]). Nodes whose priority value is [i]lower[/i] " +"call their process callbacks first, regardless of tree order." +msgstr "" +"Порядок виконання вузлом зворотних викликів процесу ([метод _process], " +"[константа NOTIFICATION_PROCESS] і [константа " +"NOTIFICATION_INTERNAL_PROCESS]). Вузли, значення пріоритету яких [i]нижче[/" +"i], викликають зворотні виклики своїх процесів першими, незалежно від порядку " +"дерева." + msgid "" "Set the process thread group for this node (basically, whether it receives " "[constant NOTIFICATION_PROCESS], [constant NOTIFICATION_PHYSICS_PROCESS], " @@ -79208,6 +100475,13 @@ msgstr "" msgid "Emitted when the node's editor description field changed." msgstr "Увімкнено, коли поле опису вершини змінено." +msgid "" +"Emitted when an attribute of the node that is relevant to the editor is " +"changed. Only emitted in the editor." +msgstr "" +"Видається, коли змінюється атрибут вузла, який має відношення до редактора. " +"Видається тільки в редакторі." + msgid "" "Emitted when the node is considered ready, after [method _ready] is called." msgstr "Увімкнено, коли вузол вважається готовим, після [метод_ready]." @@ -79564,24 +100838,25 @@ msgid "" " $Label.text = atr(\"%d Bananas\") % banana_counter\n" "[/codeblock]" msgstr "" -"Повідомлення, отримане при зміні перекладу. Може бути запущений користувачем, " -"змінивши локальне місце, змінивши [член auto_translate_mode] або коли вершина " -"надходить на ялинку. Може використовуватися для відповіді на мовні зміни, " -"наприклад, для зміни рядків UI на літа. Корисно при роботі з вбудованим " -"перекладом, як [метод].\n" -"[b]Примітка:[/b] Це повідомлення надійшло поряд з [constant " -"NOTIFICATION_ENTER_TREE], тому якщо ви миттєво переглядаєте сцена, дочірні " -"вузли ще не будуть ініціюватися. Ви можете використовувати його для " -"налаштування перекладів для цієї вершини, дочірні вершини, створені з " -"сценарію, або якщо ви хочете отримати доступ до дочірніх вузлів, доданих в " -"редакторі, переконайтеся, що вершина готова використовувати " -"[метод_node_ready].\n" -"[блокування коду]\n" -"Func _notification(що):\n" -"якщо це == УВАГА!\n" -"якщо немає_node_ready():\n" -"готовий # Очікується до готовності сигналу.\n" -"$Label.text = atr(\"%d Bananas\") % банан_counter\n" +"Отримано сповіщення, коли переклади могли змінитися. Може бути викликано " +"зміною користувачем локалі, зміною [member auto_translate_mode] або коли " +"вузол входить у дерево сцени. Може використовуватися для реагування на зміни " +"мови, наприклад, для зміни рядків інтерфейсу користувача на льоту. Корисно " +"під час роботи з вбудованою підтримкою перекладу, наприклад [method Object." +"tr]. \n" +"[b]Примітка:[/b] це сповіщення отримано разом із [константою " +"NOTIFICATION_ENTER_TREE], тому, якщо ви створюєте екземпляр сцени, дочірні " +"вузли ще не буде ініціалізовано. Ви можете використовувати його, щоб " +"налаштувати переклади для цього вузла, дочірніх вузлів, створених зі " +"сценарію, або якщо ви хочете отримати доступ до дочірніх вузлів, доданих у " +"редакторі, переконайтеся, що вузол готовий за допомогою [method " +"is_node_ready]. \n" +"[codeblock] \n" +"func _notification(що): \n" +" if what == NOTIFICATION_TRANSLATION_CHANGED: \n" +" if not is_node_ready(): \n" +" await ready # Зачекайте до сигналу готовності. \n" +" $Label.text = atr(\"%d Bananas\") % banana_counter \n" "[/codeblock]" msgid "" @@ -79731,6 +101006,15 @@ msgstr "" "Дублікат сценарію вершини (також переймаючи дубліковані дитячі скрипти, якщо " "поєднується з [constant DUPLICATE_USE_INSTANTIATION])." +msgid "" +"Duplicate using [method PackedScene.instantiate]. If the node comes from a " +"scene saved on disk, reuses [method PackedScene.instantiate] as the base for " +"the duplicated node and its children." +msgstr "" +"Дублюйте за допомогою [метод PackedScene.instantiate]. Якщо вузол походить зі " +"сцени, збереженої на диску, повторно використовує [метод PackedScene." +"instantiate] як основу для дубльованого вузла та його дочірніх елементів." + msgid "The node will not be internal." msgstr "Вузол не буде внутрішнім." @@ -79772,6 +101056,31 @@ msgstr "" "Для цього вузла та дітей, які встановлюються до [constant " "AUTO_TRANSLATE_MODE_INHERIT]." +msgid "" +"A 2D game object, inherited by all 2D-related nodes. Has a position, " +"rotation, scale, and skew." +msgstr "" +"Двовимірний ігровий об’єкт, успадкований усіма двовимірними вузлами. Має " +"положення, поворот, масштаб і нахил." + +msgid "" +"A 2D game object, with a transform (position, rotation, and scale). All 2D " +"nodes, including physics objects and sprites, inherit from Node2D. Use Node2D " +"as a parent node to move, scale and rotate children in a 2D project. Also " +"gives control of the node's render order.\n" +"[b]Note:[/b] Since both [Node2D] and [Control] inherit from [CanvasItem], " +"they share several concepts from the class such as the [member CanvasItem." +"z_index] and [member CanvasItem.visible] properties." +msgstr "" +"Двовимірний ігровий об’єкт із трансформацією (положення, обертання та " +"масштаб). Усі 2D-вузли, включаючи фізичні об’єкти та спрайти, успадковуються " +"від Node2D. Використовуйте Node2D як батьківський вузол для переміщення, " +"масштабування та повороту дочірніх елементів у 2D-проекті. Також дає змогу " +"керувати порядком візуалізації вузла. \n" +"[b]Примітка:[/b] Оскільки [Node2D] і [Control] успадковують [CanvasItem], " +"вони мають спільні концепції з класу, наприклад властивості [member " +"CanvasItem.z_index] і [member CanvasItem.visible]." + msgid "All 2D Demos" msgstr "Всі 2D Демо" @@ -79858,6 +101167,93 @@ msgid "Translates the node by the given [param offset] in local coordinates." msgstr "" "Перекладає вершину заданими [параметровий зсув] в локальних координатах." +msgid "Global position. See also [member position]." +msgstr "Глобальна позиція. Дивіться також [позиція члена]." + +msgid "Global rotation in radians. See also [member rotation]." +msgstr "Глобальне обертання в радіанах. Дивіться також [ротація учасників]." + +msgid "" +"Helper property to access [member global_rotation] in degrees instead of " +"radians. See also [member rotation_degrees]." +msgstr "" +"Допоміжна властивість для доступу до [member global_rotation] у градусах " +"замість радіан. Дивіться також [member rotation_degrees]." + +msgid "Global scale. See also [member scale]." +msgstr "Світовий масштаб. Дивіться також [шкала учасників]." + +msgid "Global skew in radians. See also [member skew]." +msgstr "Глобальний перекіс у радіанах. Дивіться також [member skew]." + +msgid "Global [Transform2D]. See also [member transform]." +msgstr "Глобальний [Transform2D]. Дивіться також [перетворення члена]." + +msgid "" +"Position, relative to the node's parent. See also [member global_position]." +msgstr "" +"Позиція відносно батьківського вузла. Дивіться також [member global_position]." + +msgid "" +"Rotation in radians, relative to the node's parent. See also [member " +"global_rotation].\n" +"[b]Note:[/b] This property is edited in the inspector in degrees. If you want " +"to use degrees in a script, use [member rotation_degrees]." +msgstr "" +"Поворот у радіанах відносно батьківського вузла. Дивіться також [member " +"global_rotation]. \n" +"[b]Примітка:[/b] Ця властивість редагується в інспекторі в градусах. Якщо ви " +"хочете використовувати градуси в сценарії, використовуйте [member " +"rotation_degrees]." + +msgid "" +"Helper property to access [member rotation] in degrees instead of radians. " +"See also [member global_rotation_degrees]." +msgstr "" +"Допоміжна властивість для доступу до [обертання елементів] у градусах замість " +"радіанів. Дивіться також [member global_rotation_degrees]." + +msgid "" +"The node's scale, relative to the node's parent. Unscaled value: [code](1, 1)" +"[/code]. See also [member global_scale].\n" +"[b]Note:[/b] Negative X scales in 2D are not decomposable from the " +"transformation matrix. Due to the way scale is represented with " +"transformation matrices in Godot, negative scales on the X axis will be " +"changed to negative scales on the Y axis and a rotation of 180 degrees when " +"decomposed." +msgstr "" +"Масштаб вузла відносно батьківського вузла. Немасштабоване значення: [код](1, " +"1)[/код]. Дивіться також [member global_scale]. \n" +"[b]Примітка: [/b] Негативні шкали X у 2D не можна розкласти з матриці " +"трансформації. Завдяки способу представлення масштабу за допомогою матриць " +"трансформації в Godot, негативні масштаби на осі X будуть змінені на " +"негативні масштаби на осі Y і поворот на 180 градусів під час розкладання." + +msgid "" +"If set to a non-zero value, slants the node in one direction or another. This " +"can be used for pseudo-3D effects. See also [member global_skew].\n" +"[b]Note:[/b] Skew is performed on the X axis only, and [i]between[/i] " +"rotation and scaling.\n" +"[b]Note:[/b] This property is edited in the inspector in degrees. If you want " +"to use degrees in a script, use [code]skew = deg_to_rad(value_in_degrees)[/" +"code]." +msgstr "" +"Якщо встановлено ненульове значення, нахиляє вузол в тому чи іншому напрямку. " +"Це можна використовувати для псевдо-3D-ефектів. Дивіться також [member " +"global_skew]. \n" +"[b]Примітка: [/b] Нахил виконується лише на осі X і [i]між[/i] обертанням і " +"масштабуванням. \n" +"[b]Примітка:[/b] Ця властивість редагується в інспекторі в градусах. Якщо ви " +"хочете використовувати градуси в скрипті, використовуйте [code]skew = " +"deg_to_rad(value_in_degrees)[/code]." + +msgid "" +"The node's [Transform2D], relative to the node's parent. See also [member " +"global_transform]." +msgstr "" +"[Transform2D] вузла відносно батьківського вузла. Дивіться також [member " +"global_transform]." + msgid "Most basic 3D game object, parent of all 3D-related nodes." msgstr "Більшість основних об'єктів 3D гри, батьків всіх 3D-пов'язаних вузлів." @@ -79924,6 +101320,35 @@ msgstr "" msgid "Returns all the gizmos attached to this [Node3D]." msgstr "Повертає всі гізмос, прикріплені до цього [Node3D]." +msgid "" +"When using physics interpolation, there will be circumstances in which you " +"want to know the interpolated (displayed) transform of a node rather than the " +"standard transform (which may only be accurate to the most recent physics " +"tick).\n" +"This is particularly important for frame-based operations that take place in " +"[method Node._process], rather than [method Node._physics_process]. Examples " +"include [Camera3D]s focusing on a node, or finding where to fire lasers from " +"on a frame rather than physics tick.\n" +"[b]Note:[/b] This function creates an interpolation pump on the [Node3D] the " +"first time it is called, which can respond to physics interpolation resets. " +"If you get problems with \"streaking\" when initially following a [Node3D], " +"be sure to call [method get_global_transform_interpolated] at least once " +"[i]before[/i] resetting the [Node3D] physics interpolation." +msgstr "" +"Під час використання фізичної інтерполяції виникнуть обставини, за яких " +"потрібно знати інтерпольоване (відображене) перетворення вузла, а не " +"стандартне перетворення (яке може бути точним лише до останнього фізичного " +"тика). \n" +"Це особливо важливо для операцій на основі кадрів, які виконуються в [method " +"Node._process], а не в [method Node._physics_process]. Приклади включають " +"фокусування [Camera3D] на вузлі або пошук місця, звідки запускати лазери на " +"кадрі, а не на фізиці. \n" +"[b]Примітка: [/b] Ця функція створює насос інтерполяції на [Node3D] під час " +"першого виклику, який може реагувати на скидання інтерполяції фізики. Якщо у " +"вас виникли проблеми з «смугами» під час початкового дотримання [Node3D], " +"обов’язково викличте [method get_global_transform_interpolated] принаймні " +"один раз [i]перед[/i] скиданням фізичної інтерполяції [Node3D]." + msgid "" "Returns the parent [Node3D], or [code]null[/code] if no parent exists, the " "parent is not of type [Node3D], or [member top_level] is [code]true[/code].\n" @@ -79985,6 +101410,64 @@ msgstr "" "Повертаємо Вашу увагу на те, що вершина об’єднує глобальні та локальні зміни " "трансформації. [Node3D] не пропагувати це за замовчуванням." +msgid "" +"Returns [code]true[/code] if the node is present in the [SceneTree], its " +"[member visible] property is [code]true[/code] and all its ancestors are also " +"visible. If any ancestor is hidden, this node will not be visible in the " +"scene tree.\n" +"Visibility is checked only in parent nodes that inherit from [Node3D]. If the " +"parent is of any other type (such as [Node], [AnimationPlayer], or [Node2D]), " +"it is assumed to be visible.\n" +"[b]Note:[/b] This method does not take [member VisualInstance3D.layers] into " +"account, so even if this method returns [code]true[/code], the node might end " +"up not being rendered." +msgstr "" +"Повертає [code]true[/code], якщо вузол присутній у [SceneTree], його " +"властивість [member visible] має значення [code]true[/code] і всі його предки " +"також видимі. Якщо будь-який предок приховано, цей вузол не буде видно в " +"дереві сцени. \n" +"Видимість перевіряється лише в батьківських вузлах, які успадковуються від " +"[Node3D]. Якщо батьківський елемент має будь-який інший тип (наприклад, " +"[Node], [AnimationPlayer] або [Node2D]), він вважається видимим. \n" +"[b]Примітка:[/b] цей метод не враховує [член VisualInstance3D.layers], тож " +"навіть якщо цей метод повертає [code]true[/code], вузол може не відобразитися." + +msgid "" +"Rotates the node so that the local forward axis (-Z, [constant Vector3." +"FORWARD]) points toward the [param target] position.\n" +"The local up axis (+Y) points as close to the [param up] vector as possible " +"while staying perpendicular to the local forward axis. The resulting " +"transform is orthogonal, and the scale is preserved. Non-uniform scaling may " +"not work correctly.\n" +"The [param target] position cannot be the same as the node's position, the " +"[param up] vector cannot be zero.\n" +"The [param target] and the [param up] cannot be [constant Vector3.ZERO], and " +"shouldn't be colinear to avoid unintended rotation around local Z axis.\n" +"Operations take place in global space, which means that the node must be in " +"the scene tree.\n" +"If [param use_model_front] is [code]true[/code], the +Z axis (asset front) is " +"treated as forward (implies +X is left) and points toward the [param target] " +"position. By default, the -Z axis (camera forward) is treated as forward " +"(implies +X is right)." +msgstr "" +"Обертає вузол так, щоб локальна вісь вперед (-Z, [константа Vector3.FORWARD]) " +"вказувала на позицію [param target]. \n" +"Локальна вісь вгору (+Y) спрямована якомога ближче до вектора [param up], " +"залишаючись перпендикулярною до локальної передньої осі. Отримане " +"перетворення є ортогональним, а масштаб зберігається. Нерівномірне " +"масштабування може працювати неправильно. \n" +"Позиція [param target] не може збігатися з позицією вузла, вектор [param up] " +"не може дорівнювати нулю. \n" +"[param target] і [param up] не можуть бути [constant Vector3.ZERO] і не " +"повинні бути колінеарними, щоб уникнути ненавмисного обертання навколо " +"локальної осі Z. \n" +"Операції відбуваються в глобальному просторі, а це означає, що вузол повинен " +"бути в дереві сцени. \n" +"Якщо [param use_model_front] має значення [code]true[/code], вісь +Z (фронт " +"активу) розглядається як передня (означає, що +X ліворуч) і вказує на позицію " +"[param target]. За замовчуванням вісь -Z (передня камера) розглядається як " +"передня (вказує на те, що +X правильна)." + msgid "" "Moves the node to the specified [param position], and then rotates the node " "to point toward the [param target] as per [method look_at]. Operations take " @@ -80406,58 +101889,58 @@ msgid "" msgstr "" "Вбудований тип [NodePath] [Variant] представляє шлях до вузла або властивості " "в ієрархії вузлів. Його розроблено для ефективної передачі в багато " -"вбудованих методів (таких як [method Node.get_node], [method Object." -"set_indexed], [method Tween.tween_property] тощо) без жорсткої залежності від " -"вузла чи властивості, яку вони вказувати на.\n" -"Шлях до вузла представлено як [String], що складається з назв вузлів, " +"вбудованих методів (таких як [м. Node.get_node], [м. Object.set_indexed], " +"[метод Tween.tween_property] тощо) без жорсткої залежності від вузла чи " +"властивості, на які вони вказують. \n" +"Шлях до вузла представлено як [String], що складається з імен вузлів, " "розділених скісною рискою ([code]/[/code]) і розділених двокрапками ([code]:[/" -"code]) назв властивостей (також званих «підіменами») . Подібно до шляху " +"code]) імен властивостей (також званих «підіменами»). Подібно до шляху " "файлової системи, [code]\"..\"[/code] і [code]\".\"[/code] є спеціальними " "іменами вузлів. Вони посилаються на батьківський вузол і поточний вузол " -"відповідно.\n" -"Наведені нижче приклади є шляхами відносно поточного вузла:\n" -"[кодовий блок]\n" -"^\"A\" # Вказує на пряму дочірню A.\n" -"^\"A/B\" # Вказує на дочірній елемент B.\n" -"^\".\" # Вказує на поточний вузол.\n" -"^\"..\" # Вказує на батьківський вузол.\n" -"^\"../C\" # Вказує на рідний вузол C.\n" -"^\"../..\" # Вказує на дідусовий вузол.\n" -"[/codeblock]\n" -"Слеш на початку означає, що шлях є абсолютним і починається з [SceneTree]:\n" -"[кодовий блок]\n" -"^\"/root\" # Вказує на кореневе вікно SceneTree.\n" +"відповідно. \n" +"Наведені нижче приклади є шляхами відносно поточного вузла: \n" +"[codeblock] \n" +"^\"A\" # Вказує на пряму дочірню A. \n" +"^\"A/B\" # Вказує на дочірній елемент B. \n" +"^\".\" # Вказує на поточний вузол. \n" +"^\"..\" # Вказує на батьківський вузол. \n" +"^\"../C\" # Вказує на рідний вузол C. \n" +"^\"../..\" # Вказує на дідусовий вузол. \n" +"[/codeblock] \n" +"Слеш на початку означає, що шлях є абсолютним і починається з [SceneTree]: \n" +"[codeblock] \n" +"^\"/root\" # Вказує на кореневе вікно SceneTree. \n" "^\"/root/Title\" # Може вказувати на кореневий вузол головної сцени під " -"назвою \"Title\".\n" +"назвою \"Title\". \n" "^\"/root/Global\" # Може вказувати на автоматично завантажений вузол або " -"сцену під назвою \"Global\".\n" -"[/codeblock]\n" +"сцену під назвою \"Global\". \n" +"[/codeblock] \n" "Незважаючи на свою назву, шляхи вузлів також можуть вказувати на " -"властивість:\n" -"[кодовий блок]\n" -"^\":position\" # Вказує на позицію цього об'єкта.\n" -"^\":position:x\" # Вказує на положення цього об'єкта на осі x.\n" +"властивість: \n" +"[codeblock] \n" +"^\":position\" # Вказує на позицію цього об'єкта. \n" +"^\":position:x\" # Вказує на положення цього об'єкта на осі x. \n" "^\"Camera3D:rotation:y\" # Вказує на дочірню камеру Camera3D і її обертання " -"y.\n" -"^\"/root:size:x\" # Вказує на кореневе вікно та його ширину.\n" -"[/codeblock]\n" -"У деяких ситуаціях можна опустити початковий [code]:[/code] під час вказівки " -"на властивість об’єкта. Як приклад, це випадок [method Object.set_indexed] і " +"y. \n" +"^\"/root:size:x\" # Вказує на кореневе вікно та його ширину. \n" +"[/codeblock] \n" +"У деяких ситуаціях можна опустити початковий [код]:[/код] під час вказівки на " +"властивість об’єкта. Як приклад, це випадок [method Object.set_indexed] і " "[method Tween.tween_property], оскільки ці методи викликають [method NodePath." "get_as_property_path] під капотом. Однак зазвичай рекомендується зберігати " -"префікс [code]:[/code].\n" +"префікс [код]:[/код]. \n" "Шляхи вузлів не можуть перевірити, чи вони дійсні, і можуть вказувати на " "вузли або властивості, які не існують. Їхнє значення повністю залежить від " -"контексту, у якому вони використовуються.\n" +"контексту, у якому вони використовуються. \n" "Зазвичай вам не потрібно турбуватися про тип [NodePath], оскільки рядки " "автоматично перетворюються на тип, коли це необхідно. Бувають випадки, коли " "визначення шляхів вузлів є корисним. Наприклад, експортовані властивості " "[NodePath] дозволяють легко вибрати будь-який вузол у поточній редагованій " "сцені. Вони також автоматично оновлюються під час переміщення, перейменування " "або видалення вузлів у редакторі дерева сцен. Дивіться також [анотацію " -"@GDScript.@export_node_path].\n" +"@GDScript.@export_node_path]. \n" "Дивіться також [StringName], який є подібним типом, розробленим для " -"оптимізованих рядків.\n" +"оптимізованих рядків. \n" "[b]Примітка.[/b] У логічному контексті [NodePath] матиме значення " "[code]false[/code], якщо він порожній ([code]NodePath(\"\")[/code]). В іншому " "випадку [NodePath] завжди матиме значення [code]true[/code]." @@ -80471,6 +101954,113 @@ msgstr "Будуємо порожній [NodePath]." msgid "Constructs a [NodePath] as a copy of the given [NodePath]." msgstr "Constructs a [NodePath] як копія даної [NodePath]." +msgid "" +"Constructs a [NodePath] from a [String]. The created path is absolute if " +"prefixed with a slash (see [method is_absolute]).\n" +"The \"subnames\" optionally included after the path to the target node can " +"point to properties, and can also be nested.\n" +"The following strings can be valid node paths:\n" +"[codeblock]\n" +"# Points to the Sprite2D node.\n" +"\"Level/RigidBody2D/Sprite2D\"\n" +"\n" +"# Points to the Sprite2D node and its \"texture\" resource.\n" +"# get_node() would retrieve the Sprite2D, while get_node_and_resource()\n" +"# would retrieve both the Sprite2D node and the \"texture\" resource.\n" +"\"Level/RigidBody2D/Sprite2D:texture\"\n" +"\n" +"# Points to the Sprite2D node and its \"position\" property.\n" +"\"Level/RigidBody2D/Sprite2D:position\"\n" +"\n" +"# Points to the Sprite2D node and the \"x\" component of its \"position\" " +"property.\n" +"\"Level/RigidBody2D/Sprite2D:position:x\"\n" +"\n" +"# Points to the RigidBody2D node as an absolute path beginning from the " +"SceneTree.\n" +"\"/root/Level/RigidBody2D\"\n" +"[/codeblock]\n" +"[b]Note:[/b] In GDScript, it's also possible to convert a constant string " +"into a node path by prefixing it with [code]^[/code]. [code]^\"path/to/" +"node\"[/code] is equivalent to [code]NodePath(\"path/to/node\")[/code]." +msgstr "" +"Створює [NodePath] із [String]. Створений шлях є абсолютним, якщо перед ним " +"ставиться коса риска (див. [method is_absolute]). \n" +"«Підімена», необов’язково включені після шляху до цільового вузла, можуть " +"вказувати на властивості, а також можуть бути вкладеними. \n" +"Наступні рядки можуть бути дійсними шляхами вузлів: \n" +"[codeblock] \n" +"# Вказує на вузол Sprite2D. \n" +"\"Level/RigidBody2D/Sprite2D\" \n" +"\n" +"# Вказує на вузол Sprite2D і його \"текстурний\" ресурс. \n" +"# get_node() отримає Sprite2D, а get_node_and_resource() \n" +"# отримає як вузол Sprite2D, так і ресурс \"текстура\". \n" +"\"Level/RigidBody2D/Sprite2D: текстура\" \n" +"\n" +"# Вказує на вузол Sprite2D і його властивість \"position\". \n" +"\"Level/RigidBody2D/Sprite2D:позиція\" \n" +"\n" +"# Вказує на вузол Sprite2D і компонент \"x\" його властивості \"position\". \n" +"\"Level/RigidBody2D/Sprite2D:position:x\" \n" +"\n" +"# Вказує на вузол RigidBody2D як абсолютний шлях, що починається від " +"SceneTree. \n" +"\"/root/Level/RigidBody2D\" \n" +"[/codeblock] \n" +"[b]Примітка:[/b] У GDScript також можна перетворити постійний рядок на шлях " +"до вузла, додавши до нього префікс [code]^[/code]. [code]^\"шлях/до/вузла\"[/" +"code] еквівалентний [code]NodePath(\"шлях/до/вузла\")[/code]." + +msgid "" +"Returns a copy of this node path with a colon character ([code]:[/code]) " +"prefixed, transforming it to a pure property path with no node names " +"(relative to the current node).\n" +"[codeblocks]\n" +"[gdscript]\n" +"# node_path points to the \"x\" property of the child node named " +"\"position\".\n" +"var node_path = ^\"position:x\"\n" +"\n" +"# property_path points to the \"position\" in the \"x\" axis of this node.\n" +"var property_path = node_path.get_as_property_path()\n" +"print(property_path) # Prints \":position:x\"\n" +"[/gdscript]\n" +"[csharp]\n" +"// nodePath points to the \"x\" property of the child node named " +"\"position\".\n" +"var nodePath = new NodePath(\"position:x\");\n" +"\n" +"// propertyPath points to the \"position\" in the \"x\" axis of this node.\n" +"NodePath propertyPath = nodePath.GetAsPropertyPath();\n" +"GD.Print(propertyPath); // Prints \":position:x\"\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Повертає копію шляху цього вузла з префіксом двокрапки ([code]:[/code]), " +"перетворюючи його на чистий шлях властивостей без імен вузла (відносно " +"поточного вузла). \n" +"[codeblocks] \n" +"[gdscript] \n" +"# node_path вказує на властивість \"x\" дочірнього вузла з назвою " +"\"position\". \n" +"var node_path = ^\"position:x\" \n" +"\n" +"# property_path вказує на «позицію» на осі «x» цього вузла. \n" +"var property_path = node_path.get_as_property_path() \n" +"print(property_path) # Виводить \":position:x\" \n" +"[/gdscript] \n" +"[csharp] \n" +"// nodePath вказує на властивість \"x\" дочірнього вузла з назвою " +"\"position\". \n" +"var nodePath = new NodePath(\"position:x\"); \n" +"\n" +"// propertyPath вказує на \"положення\" на осі \"x\" цього вузла. \n" +"NodePath propertyPath = nodePath.GetAsPropertyPath(); \n" +"GD.Print(propertyPath); // Виводить \":position:x\" \n" +"[/csharp] \n" +"[/codeblocks]" + msgid "" "Returns all node names concatenated with a slash character ([code]/[/code]) " "as a single [StringName]." @@ -80478,6 +102068,74 @@ msgstr "" "Повертає всі імена вузлів, що містяться у символіці сусле ([code]/[/code]) як " "єдиний [StringName]." +msgid "" +"Returns all property subnames concatenated with a colon character ([code]:[/" +"code]) as a single [StringName].\n" +"[codeblocks]\n" +"[gdscript]\n" +"var node_path = ^\"Sprite2D:texture:resource_name\"\n" +"print(node_path.get_concatenated_subnames()) # Prints \"texture:" +"resource_name\"\n" +"[/gdscript]\n" +"[csharp]\n" +"var nodePath = new NodePath(\"Sprite2D:texture:resource_name\");\n" +"GD.Print(nodePath.GetConcatenatedSubnames()); // Prints \"texture:" +"resource_name\"\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Повертає всі підназви властивостей, об’єднані символом двокрапки ([код]:[/" +"код]) як один [StringName]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var node_path = ^\"Sprite2D:texture:resource_name\" \n" +"print(node_path.get_concatenated_subnames()) # Виводить \"texture:" +"resource_name\" \n" +"[/gdscript] \n" +"[csharp] \n" +"var nodePath = new NodePath(\"Sprite2D:texture:resource_name\"); \n" +"GD.Print(nodePath.GetConcatenatedSubnames()); // Друкує \"texture:" +"resource_name\" \n" +"[/csharp] \n" +"[/codeblocks]" + +msgid "" +"Returns the node name indicated by [param idx], starting from 0. If [param " +"idx] is out of bounds, an error is generated. See also [method " +"get_subname_count] and [method get_name_count].\n" +"[codeblocks]\n" +"[gdscript]\n" +"var sprite_path = NodePath(\"../RigidBody2D/Sprite2D\")\n" +"print(sprite_path.get_name(0)) # Prints \"..\"\n" +"print(sprite_path.get_name(1)) # Prints \"RigidBody2D\"\n" +"print(sprite_path.get_name(2)) # Prints \"Sprite\"\n" +"[/gdscript]\n" +"[csharp]\n" +"var spritePath = new NodePath(\"../RigidBody2D/Sprite2D\");\n" +"GD.Print(spritePath.GetName(0)); // Prints \"..\"\n" +"GD.Print(spritePath.GetName(1)); // Prints \"PathFollow2D\"\n" +"GD.Print(spritePath.GetName(2)); // Prints \"Sprite\"\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Повертає ім’я вузла, указане [param idx], починаючи з 0. Якщо [param idx] " +"виходить за межі, генерується помилка. Дивіться також [method " +"get_subname_count] і [method get_name_count]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var sprite_path = NodePath(\"../RigidBody2D/Sprite2D\") \n" +"print(sprite_path.get_name(0)) # Виводить \"..\" \n" +"print(sprite_path.get_name(1)) # Друкує \"RigidBody2D\" \n" +"print(sprite_path.get_name(2)) # Виводить \"Sprite\" \n" +"[/gdscript] \n" +"[csharp] \n" +"var spritePath = new NodePath(\"../RigidBody2D/Sprite2D\"); \n" +"GD.Print(spritePath.GetName(0)); // Виводить \"..\" \n" +"GD.Print(spritePath.GetName(1)); // Друкує \"PathFollow2D\" \n" +"GD.Print(spritePath.GetName(2)); // Друкує \"Sprite\" \n" +"[/csharp] \n" +"[/codeblocks]" + msgid "" "Returns the number of node names in the path. Property subnames are not " "included.\n" @@ -80488,6 +102146,39 @@ msgstr "" "Наприклад, [code]./RigidBody2D/Sprite2D:texture\"[/code] містить назви вузлів " "3." +msgid "" +"Returns the property name indicated by [param idx], starting from 0. If " +"[param idx] is out of bounds, an error is generated. See also [method " +"get_subname_count].\n" +"[codeblocks]\n" +"[gdscript]\n" +"var path_to_name = NodePath(\"Sprite2D:texture:resource_name\")\n" +"print(path_to_name.get_subname(0)) # Prints \"texture\"\n" +"print(path_to_name.get_subname(1)) # Prints \"resource_name\"\n" +"[/gdscript]\n" +"[csharp]\n" +"var pathToName = new NodePath(\"Sprite2D:texture:resource_name\");\n" +"GD.Print(pathToName.GetSubname(0)); // Prints \"texture\"\n" +"GD.Print(pathToName.GetSubname(1)); // Prints \"resource_name\"\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Повертає назву властивості, указану [param idx], починаючи з 0. Якщо [param " +"idx] виходить за межі, генерується помилка. Дивіться також [метод " +"get_subname_count]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var path_to_name = NodePath(\"Sprite2D:texture:resource_name\") \n" +"print(path_to_name.get_subname(0)) # Друкує \"текстуру\" \n" +"print(path_to_name.get_subname(1)) # Виводить \"назва_ресурсу\" \n" +"[/gdscript] \n" +"[csharp] \n" +"var pathToName = new NodePath(\"Sprite2D:texture:resource_name\"); \n" +"GD.Print(pathToName.GetSubname(0)); // Друкує \"текстуру\" \n" +"GD.Print(pathToName.GetSubname(1)); // Виводить \"resource_name\" \n" +"[/csharp] \n" +"[/codeblocks]" + msgid "" "Returns the number of property names (\"subnames\") in the path. Each subname " "in the node path is listed after a colon character ([code]:[/code]).\n" @@ -80661,19 +102352,20 @@ msgid "" "var data = image.get_data()\n" "[/codeblock]" msgstr "" -"Використовуйте бібліотеку [FastNoiseLite] або інші шумогенератори для " -"заповнення текстурних даних потрібного розміру. [NoiseTexture2D] також може " -"генерувати нормальні текстури карти.\n" -"У класі використовуються [Thread] для створення текстурних даних внутрішньо, " -"тому [метод Texture2D.get_image] може повернутися [code]null[/code], якщо " -"процес генерації ще не завершено. У цьому випадку потрібно чекати фактури, " -"щоб бути генеровані до доступу до зображення та сформованих даних байтів:\n" -"[блокування коду]\n" -"var текстура = NoiseTexture2D.new()\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"чекає фактура. змінено\n" -"var image = текстура.get_image()\n" -"var data = image.get_data()\n" +"Використовує бібліотеку [FastNoiseLite] або інші генератори шуму для " +"заповнення даними текстури бажаного розміру. [NoiseTexture2D] також може " +"генерувати нормальні текстури карти. \n" +"Клас використовує [Thread] для внутрішньої генерації даних текстури, тому " +"[метод Texture2D.get_image] може повернути [code]null[/code], якщо процес " +"генерації ще не завершено. У такому випадку вам потрібно дочекатися генерації " +"текстури, перш ніж отримати доступ до зображення та згенерованих байтових " +"даних: \n" +"[codeblock] \n" +"var texture = NoiseTexture2D.new() \n" +"texture.noise = FastNoiseLite.new() \n" +"await texture.changed \n" +"var image = texture.get_image() \n" +"var data = image.get_data() \n" "[/codeblock]" msgid "" @@ -80801,17 +102493,17 @@ msgid "" "var data = texture.get_data()\n" "[/codeblock]" msgstr "" -"Використовуйте бібліотеку [FastNoiseLite] або інші шумогенератори для " -"заповнення текстурних даних потрібного розміру.\n" -"У класі використовуються [Thread] для створення текстурних даних внутрішньо, " -"тому [метод Текстура3D.get_data] може повернутися [code]null[/code], якщо " -"процес генерації ще не завершено. У цьому випадку потрібно чекати фактури, " -"щоб бути створеною перед отриманням образу:\n" -"[блокування коду]\n" -"var текстура = NoiseTexture3D.new()\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"чекає фактура. змінено\n" -"var data = фактура.get_data()\n" +"Використовує бібліотеку [FastNoiseLite] або інші генератори шуму для " +"заповнення даних текстури бажаного розміру. \n" +"Клас використовує [Thread] для внутрішньої генерації даних текстури, тому " +"[метод Texture3D.get_data] може повернути [code]null[/code], якщо процес " +"генерації ще не завершено. У такому випадку вам потрібно дочекатися створення " +"текстури, перш ніж отримати доступ до зображення: \n" +"[codeblock] \n" +"var texture = NoiseTexture3D.new() \n" +"texture.noise = FastNoiseLite.new() \n" +"await texture.changed \n" +"var data = texture.get_data() \n" "[/codeblock]" msgid "Depth of the generated texture (in pixels)." @@ -80860,6 +102552,125 @@ msgstr "" msgid "Base class for all other classes in the engine." msgstr "Базовий клас для всіх інших класів двигуна." +msgid "" +"An advanced [Variant] type. All classes in the engine inherit from Object. " +"Each class may define new properties, methods or signals, which are available " +"to all inheriting classes. For example, a [Sprite2D] instance is able to call " +"[method Node.add_child] because it inherits from [Node].\n" +"You can create new instances, using [code]Object.new()[/code] in GDScript, or " +"[code]new GodotObject[/code] in C#.\n" +"To delete an Object instance, call [method free]. This is necessary for most " +"classes inheriting Object, because they do not manage memory on their own, " +"and will otherwise cause memory leaks when no longer in use. There are a few " +"classes that perform memory management. For example, [RefCounted] (and by " +"extension [Resource]) deletes itself when no longer referenced, and [Node] " +"deletes its children when freed.\n" +"Objects can have a [Script] attached to them. Once the [Script] is " +"instantiated, it effectively acts as an extension to the base class, allowing " +"it to define and inherit new properties, methods and signals.\n" +"Inside a [Script], [method _get_property_list] may be overridden to customize " +"properties in several ways. This allows them to be available to the editor, " +"display as lists of options, sub-divide into groups, save on disk, etc. " +"Scripting languages offer easier ways to customize properties, such as with " +"the [annotation @GDScript.@export] annotation.\n" +"Godot is very dynamic. An object's script, and therefore its properties, " +"methods and signals, can be changed at run-time. Because of this, there can " +"be occasions where, for example, a property required by a method may not " +"exist. To prevent run-time errors, see methods such as [method set], [method " +"get], [method call], [method has_method], [method has_signal], etc. Note that " +"these methods are [b]much[/b] slower than direct references.\n" +"In GDScript, you can also check if a given property, method, or signal name " +"exists in an object with the [code]in[/code] operator:\n" +"[codeblock]\n" +"var node = Node.new()\n" +"print(\"name\" in node) # Prints true\n" +"print(\"get_parent\" in node) # Prints true\n" +"print(\"tree_entered\" in node) # Prints true\n" +"print(\"unknown\" in node) # Prints false\n" +"[/codeblock]\n" +"Notifications are [int] constants commonly sent and received by objects. For " +"example, on every rendered frame, the [SceneTree] notifies nodes inside the " +"tree with a [constant Node.NOTIFICATION_PROCESS]. The nodes receive it and " +"may call [method Node._process] to update. To make use of notifications, see " +"[method notification] and [method _notification].\n" +"Lastly, every object can also contain metadata (data about data). [method " +"set_meta] can be useful to store information that the object itself does not " +"depend on. To keep your code clean, making excessive use of metadata is " +"discouraged.\n" +"[b]Note:[/b] Unlike references to a [RefCounted], references to an object " +"stored in a variable can become invalid without being set to [code]null[/" +"code]. To check if an object has been deleted, do [i]not[/i] compare it " +"against [code]null[/code]. Instead, use [method @GlobalScope." +"is_instance_valid]. It's also recommended to inherit from [RefCounted] for " +"classes storing data instead of [Object].\n" +"[b]Note:[/b] The [code]script[/code] is not exposed like most properties. To " +"set or get an object's [Script] in code, use [method set_script] and [method " +"get_script], respectively.\n" +"[b]Note:[/b] In a boolean context, an [Object] will evaluate to [code]false[/" +"code] if it is equal to [code]null[/code] or it has been freed. Otherwise, an " +"[Object] will always evaluate to [code]true[/code]. See also [method " +"@GlobalScope.is_instance_valid]." +msgstr "" +"Розширений тип [Variant]. Усі класи в двигуні успадковуються від Object. " +"Кожен клас може визначати нові властивості, методи або сигнали, які доступні " +"для всіх успадкованих класів. Наприклад, екземпляр [Sprite2D] може викликати " +"[метод Node.add_child], оскільки він успадковує [Node]. \n" +"Ви можете створювати нові екземпляри за допомогою [code]Object.new()[/code] у " +"GDScript або [code]new GodotObject[/code] у C#. \n" +"Щоб видалити примірник Object, викличте [method free]. Це необхідно для " +"більшості класів, які успадковують Object, тому що вони не керують пам’яттю " +"самостійно, і в іншому випадку призведуть до витоків пам’яті, коли вони " +"більше не використовуються. Є кілька класів, які виконують керування " +"пам'яттю. Наприклад, [RefCounted] (і за розширенням [Resource]) видаляє себе, " +"коли на нього більше не посилаються, а [Node] видаляє своїх дочірніх " +"елементів, коли звільняється. \n" +"До об’єктів може бути прикріплений [Script]. Після того, як [Script] " +"створено, він фактично діє як розширення базового класу, дозволяючи йому " +"визначати та успадковувати нові властивості, методи та сигнали. \n" +"У [Сценарії] [метод _get_property_list] можна замінити, щоб налаштувати " +"властивості кількома способами. Це дозволяє їм бути доступними для редактора, " +"відображатися як списки параметрів, ділитися на групи, зберігати на диску " +"тощо. Мови сценаріїв пропонують прості способи налаштування властивостей, " +"наприклад, за допомогою анотації [анотація @GDScript.@export]. \n" +"Годо дуже динамічний. Сценарій об’єкта, а отже, його властивості, методи та " +"сигнали можна змінювати під час виконання. Через це можуть бути випадки, " +"коли, наприклад, властивість, необхідна для методу, може не існувати. Щоб " +"запобігти помилкам під час виконання, перегляньте такі методи, як [method " +"set], [method get], [method call], [method has_method], [method has_signal] " +"тощо. Зауважте, що ці методи [b]набагато[/b] повільніші за прямі посилання. \n" +"У GDScript ви також можете перевірити, чи властивість, метод або ім’я сигналу " +"існує в об’єкті за допомогою оператора [code]in[/code]: \n" +"[codeblock] \n" +"var node = Node.new() \n" +"print(\"name\" in node) # Друкує true \n" +"print(\"get_parent\" in node) # Виводить true \n" +"print(\"tree_entered\" in node) # Виводить true \n" +"print(\"unknown\" in node) # Виводить false \n" +"[/codeblock] \n" +"Сповіщення — це константи [int], які зазвичай надсилаються й отримуються " +"об’єктами. Наприклад, у кожному відтвореному кадрі [SceneTree] сповіщає вузли " +"всередині дерева за допомогою [константи Node.NOTIFICATION_PROCESS]. Вузли " +"отримують його та можуть викликати [метод Node._process] для оновлення. Щоб " +"скористатися сповіщеннями, перегляньте [method notification] і [method " +"_notification]. \n" +"Нарешті, кожен об’єкт також може містити метадані (дані про дані). [метод " +"set_meta] може бути корисним для зберігання інформації, від якої не залежить " +"сам об’єкт. Щоб ваш код був чистим, не рекомендується надмірне використання " +"метаданих. \n" +"[b]Примітка:[/b] На відміну від посилань на [RefCounted], посилання на " +"об’єкт, що зберігається у змінній, можуть стати недійсними без встановлення " +"значення [code]null[/code]. Щоб перевірити, чи об’єкт видалено, [i]не[/i] " +"порівнюйте його з [code]null[/code]. Натомість використовуйте [method " +"@GlobalScope.is_instance_valid]. Також рекомендується успадкувати від " +"[RefCounted] для класів, які зберігають дані замість [Object]. \n" +"[b]Примітка:[/b] [code]сценарій[/code] не доступний, як більшість " +"властивостей. Щоб встановити або отримати [Script] об’єкта в коді, " +"використовуйте [method set_script] і [method get_script] відповідно. \n" +"[b]Примітка: [/b] У логічному контексті [Object] матиме значення [code]false[/" +"code], якщо він дорівнює [code]null[/code] або його було звільнено. В іншому " +"випадку [Object] завжди матиме значення [code]true[/code]. Дивіться також " +"[method @GlobalScope.is_instance_valid]." + msgid "Object class introduction" msgstr "Введення об'єктів" @@ -80869,6 +102680,349 @@ msgstr "Коли і як уникнути використання вузлів msgid "Object notifications" msgstr "Повідомлення про об'єкт" +msgid "" +"Override this method to customize the behavior of [method get]. Should return " +"the given [param property]'s value, or [code]null[/code] if the [param " +"property] should be handled normally.\n" +"Combined with [method _set] and [method _get_property_list], this method " +"allows defining custom properties, which is particularly useful for editor " +"plugins. Note that a property must be present in [method get_property_list], " +"otherwise this method will not be called.\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _get(property):\n" +" if property == \"fake_property\":\n" +" print(\"Getting my property!\")\n" +" return 4\n" +"\n" +"func _get_property_list():\n" +" return [\n" +" { \"name\": \"fake_property\", \"type\": TYPE_INT }\n" +" ]\n" +"[/gdscript]\n" +"[csharp]\n" +"public override Variant _Get(StringName property)\n" +"{\n" +" if (property == \"FakeProperty\")\n" +" {\n" +" GD.Print(\"Getting my property!\");\n" +" return 4;\n" +" }\n" +" return default;\n" +"}\n" +"\n" +"public override Godot.Collections.Array<Godot.Collections.Dictionary> " +"_GetPropertyList()\n" +"{\n" +" return\n" +" [\n" +" new Godot.Collections.Dictionary()\n" +" {\n" +" { \"name\", \"FakeProperty\" },\n" +" { \"type\", (int)Variant.Type.Int },\n" +" },\n" +" ];\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Перевизначте цей метод, щоб налаштувати поведінку [method get]. Має повертати " +"задане значення [param property] або [code]null[/code], якщо [param property] " +"потрібно обробляти нормально. \n" +"У поєднанні з [method _set] і [method _get_property_list] цей метод дозволяє " +"визначати спеціальні властивості, що особливо корисно для плагінів редактора. " +"Зауважте, що властивість має бути присутня в [method get_property_list], " +"інакше цей метод не буде викликано. \n" +"[codeblocks] \n" +"[gdscript] \n" +"func _get(властивість): \n" +" if property == \"fake_property\": \n" +" print(\"Отримання моєї власності!\") \n" +" return 4 \n" +"\n" +"func _get_property_list(): \n" +" return [ \n" +" { \"name\": \"fake_property\", \"type\": TYPE_INT } \n" +" ] \n" +"[/gdscript] \n" +"[csharp] \n" +"публічне перевизначення Variant _Get(властивість StringName) \n" +"{\n" +" якщо (властивість == \"FakeProperty\") \n" +" { \n" +" GD.Print(\"Отримання моєї власності!\"); \n" +" return 4; \n" +" } \n" +" return default; \n" +"}\n" +"\n" +"public override Godot.Collections.Array<Godot.Collections.Dictionary> " +"_GetPropertyList() \n" +"{\n" +" return \n" +" [ \n" +" новий Godot.Collections.Dictionary() \n" +" { \n" +" { \"name\", \"FakeProperty\" }, \n" +" { \"type\", (int)Variant.Type.Int }, \n" +" }, \n" +" ]; \n" +"}\n" +"[/csharp] \n" +"[/codeblocks]" + +msgid "" +"Override this method to provide a custom list of additional properties to " +"handle by the engine.\n" +"Should return a property list, as an [Array] of dictionaries. The result is " +"added to the array of [method get_property_list], and should be formatted in " +"the same way. Each [Dictionary] must at least contain the [code]name[/code] " +"and [code]type[/code] entries.\n" +"You can use [method _property_can_revert] and [method _property_get_revert] " +"to customize the default values of the properties added by this method.\n" +"The example below displays a list of numbers shown as words going from " +"[code]ZERO[/code] to [code]FIVE[/code], with [code]number_count[/code] " +"controlling the size of the list:\n" +"[codeblocks]\n" +"[gdscript]\n" +"@tool\n" +"extends Node\n" +"\n" +"@export var number_count = 3:\n" +" set(nc):\n" +" number_count = nc\n" +" numbers.resize(number_count)\n" +" notify_property_list_changed()\n" +"\n" +"var numbers = PackedInt32Array([0, 0, 0])\n" +"\n" +"func _get_property_list():\n" +" var properties = []\n" +"\n" +" for i in range(number_count):\n" +" properties.append({\n" +" \"name\": \"number_%d\" % i,\n" +" \"type\": TYPE_INT,\n" +" \"hint\": PROPERTY_HINT_ENUM,\n" +" \"hint_string\": \"ZERO,ONE,TWO,THREE,FOUR,FIVE\",\n" +" })\n" +"\n" +" return properties\n" +"\n" +"func _get(property):\n" +" if property.begins_with(\"number_\"):\n" +" var index = property.get_slice(\"_\", 1).to_int()\n" +" return numbers[index]\n" +"\n" +"func _set(property, value):\n" +" if property.begins_with(\"number_\"):\n" +" var index = property.get_slice(\"_\", 1).to_int()\n" +" numbers[index] = value\n" +" return true\n" +" return false\n" +"[/gdscript]\n" +"[csharp]\n" +"[Tool]\n" +"public partial class MyNode : Node\n" +"{\n" +" private int _numberCount;\n" +"\n" +" [Export]\n" +" public int NumberCount\n" +" {\n" +" get => _numberCount;\n" +" set\n" +" {\n" +" _numberCount = value;\n" +" _numbers.Resize(_numberCount);\n" +" NotifyPropertyListChanged();\n" +" }\n" +" }\n" +"\n" +" private Godot.Collections.Array<int> _numbers = [];\n" +"\n" +" public override Godot.Collections.Array<Godot.Collections.Dictionary> " +"_GetPropertyList()\n" +" {\n" +" Godot.Collections.Array<Godot.Collections.Dictionary> properties = " +"[];\n" +"\n" +" for (int i = 0; i < _numberCount; i++)\n" +" {\n" +" properties.Add(new Godot.Collections.Dictionary()\n" +" {\n" +" { \"name\", $\"number_{i}\" },\n" +" { \"type\", (int)Variant.Type.Int },\n" +" { \"hint\", (int)PropertyHint.Enum },\n" +" { \"hint_string\", \"Zero,One,Two,Three,Four,Five\" },\n" +" });\n" +" }\n" +"\n" +" return properties;\n" +" }\n" +"\n" +" public override Variant _Get(StringName property)\n" +" {\n" +" string propertyName = property.ToString();\n" +" if (propertyName.StartsWith(\"number_\"))\n" +" {\n" +" int index = int.Parse(propertyName.Substring(\"number_\"." +"Length));\n" +" return _numbers[index];\n" +" }\n" +" return default;\n" +" }\n" +"\n" +" public override bool _Set(StringName property, Variant value)\n" +" {\n" +" string propertyName = property.ToString();\n" +" if (propertyName.StartsWith(\"number_\"))\n" +" {\n" +" int index = int.Parse(propertyName.Substring(\"number_\"." +"Length));\n" +" _numbers[index] = value.As<int>();\n" +" return true;\n" +" }\n" +" return false;\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] This method is intended for advanced purposes. For most common " +"use cases, the scripting languages offer easier ways to handle properties. " +"See [annotation @GDScript.@export], [annotation @GDScript.@export_enum], " +"[annotation @GDScript.@export_group], etc. If you want to customize exported " +"properties, use [method _validate_property].\n" +"[b]Note:[/b] If the object's script is not [annotation @GDScript.@tool], this " +"method will not be called in the editor." +msgstr "" +"Перевизначте цей метод, щоб надати спеціальний список додаткових властивостей " +"для обробки механізмом. \n" +"Має повертати список властивостей у вигляді [масиву] словників. Результат " +"додається до масиву [методу get_property_list] і має бути відформатований " +"таким же чином. Кожен [Словник] має містити принаймні записи [код]ім’я[/код] " +"і [код]тип[/код]. \n" +"Ви можете використовувати [method _property_can_revert] і [method " +"_property_get_revert], щоб налаштувати значення за замовчуванням " +"властивостей, доданих цим методом. \n" +"У наведеному нижче прикладі показано список чисел, показаних у вигляді слів " +"від [code]ZERO[/code] до [code]FIVE[/code], де [code]number_count[/code] " +"контролює розмір списку: \n" +"[codeblocks] \n" +"[gdscript] \n" +"@tool \n" +"extends Node \n" +"\n" +"@export var number_count = 3: \n" +" set(nc): \n" +" number_count = nc \n" +" numbers.resize(number_count) \n" +" notify_property_list_changed() \n" +"\n" +"vae number = PackedInt32Array([0, 0, 0]) \n" +"\n" +"func _get_property_list(): \n" +" var properties = [] \n" +"\n" +" for i in range (number_count): \n" +" properties.append({ \n" +" \"name\": \"number%d\" % i, \n" +" \"type\": TYPE_INT, \n" +" \"hint\": PROPERTY_HINT_ENUM, \n" +" \"hint_string\": \"НУЛЬ, ОДИН, ДВА, ТРИ, ЧОТИРИ, П'ЯТЬ\", \n" +" }) \n" +"\n" +" return properties \n" +"\n" +"func _get(properties): \n" +" if property.begins_with(\"number_\"): \n" +" var index = property.get_slice(\"_\", 1).to_int() \n" +" return number [index] \n" +"\n" +"func _set(properties, valve): \n" +" if property.begins_with(\"number_\"): \n" +" var index = property.get_slice(\"_\", 1).to_int() \n" +" number [index] = valve \n" +" return true \n" +" return false \n" +"[/gdscript] \n" +"[csharp] \n" +"[tool] \n" +"public partial class MyNode : Node \n" +"{\n" +" private int _numberCount; \n" +"\n" +" [Export] \n" +" public int NumberCount \n" +" { \n" +" get => _numberCount; \n" +" set \n" +" { \n" +" _numberCount = valve; \n" +" _numbers.Resize(_numberCount); \n" +" NotifyPropertyListChanged(); \n" +" } \n" +" } \n" +"\n" +" private Godot.Collections.Array<int> _numbers = []; \n" +"\n" +" public override Godot.Collections.Array<Godot.Collections.Dictionary> " +"_GetPropertyList() \n" +" { \n" +" Godot.Collections.Array<Godot.Collections.Dictionary> properties = " +"[]; \n" +"\n" +" for (int i = 0; i < _numberCount; i++) \n" +" { \n" +" properties.Add(new Godot.Collections.Dictionary() \n" +" { \n" +" { \"name\", $\"number {i}\" }, \n" +" { \"type\", (int)Variant.Type.Int }, \n" +" { \"hint\", (int)PropertyHint.Enum }, \n" +" { \"hint_string\", \"Нуль, один, два, три, чотири, " +"п'ять\" }, \n" +" }); \n" +" } \n" +"\n" +" return properties; \n" +" } \n" +"\n" +" public override Variant _Get(властивість StringName) \n" +" { \n" +" string propertyName = property.ToString(); \n" +" if (propertyName.StartsWith(\"number_\")) \n" +" { \n" +" int index = int.Parse(propertyName.Substring(\"number_\"." +"Length)); \n" +" return _numbers[index]; \n" +" } \n" +" return default; \n" +" } \n" +"\n" +" public override bool _Set(property StringName, valve Variant) \n" +" { \n" +" string propertyName = property.ToString(); \n" +" if (propertyName.StartsWith(\"number_\")) \n" +" { \n" +" int index = int.Parse(propertyName.Substring(\"number_\"." +"Length)); \n" +" _numbers[index] = value.As<int>(); \n" +" return ture; \n" +" } \n" +" return false; \n" +" } \n" +"}\n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка.[/b] Цей метод призначений для розширених цілей. Для більшості " +"ширених випадків використання мови сценаріїв пропонують прості способи " +"обробки властивостей. Див. [анотація @GDScript.@export], [анотація @GDScript." +"@export_enum], [анотація @GDScript.@export_group] тощо. Якщо ви хочете " +"налаштувати експортовані властивості, використовуйте [метод " +"_validate_property]. \n" +"[b]Примітка:[/b] Якщо сценарієм об’єкта не є [анотація @GDScript.@tool], цей " +"метод не буде викликано в редакторі." + msgid "" "Called when the object's script is instantiated, oftentimes after the object " "is initialized in memory (through [code]Object.new()[/code] in GDScript, or " @@ -80889,6 +103043,104 @@ msgstr "" "(наприклад, [методик PackedScene.instantiate] або [метод Node.duplicate]) " "використовуються, ініціалізація скрипта не буде." +msgid "" +"Returns the current iterable value. [param iter] stores the iteration state, " +"but unlike [method _iter_init] and [method _iter_next] the state is supposed " +"to be read-only, so there is no [Array] wrapper." +msgstr "" +"Повертає поточне ітераційне значення. [param iter] зберігає стан ітерації, " +"але на відміну від [method _iter_init] і [method _iter_next] стан має бути " +"лише для читання, тому немає оболонки [Array]." + +msgid "" +"Initializes the iterator. [param iter] stores the iteration state. Since " +"GDScript does not support passing arguments by reference, a single-element " +"array is used as a wrapper. Returns [code]true[/code] so long as the iterator " +"has not reached the end.\n" +"Example:\n" +"[codeblock]\n" +"class MyRange:\n" +" var _from\n" +" var _to\n" +"\n" +" func _init(from, to):\n" +" assert(from <= to)\n" +" _from = from\n" +" _to = to\n" +"\n" +" func _iter_init(iter):\n" +" iter[0] = _from\n" +" return iter[0] < _to\n" +"\n" +" func _iter_next(iter):\n" +" iter[0] += 1\n" +" return iter[0] < _to\n" +"\n" +" func _iter_get(iter):\n" +" return iter\n" +"\n" +"func _ready():\n" +" var my_range = MyRange.new(2, 5)\n" +" for x in my_range:\n" +" print(x) # Prints 2, 3, 4.\n" +"[/codeblock]\n" +"[b]Note:[/b] Alternatively, you can ignore [param iter] and use the object's " +"state instead, see [url=$DOCS_URL/tutorials/scripting/gdscript/" +"gdscript_advanced.html#custom-iterators]online docs[/url] for an example. " +"Note that in this case you will not be able to reuse the same iterator " +"instance in nested loops. Also, make sure you reset the iterator state in " +"this method if you want to reuse the same instance multiple times." +msgstr "" +"Ініціалізує ітератор. [param iter] зберігає стан ітерації. Оскільки GDScript " +"не підтримує передачу аргументів за посиланням, одноелементний масив " +"використовується як оболонка. Повертає [code]true[/code], доки ітератор не " +"досяг кінця. \n" +"приклад:\n" +"[codeblock] \n" +"клас MyRange: \n" +" var _from \n" +" var _to \n" +"\n" +" func _init(from, to): \n" +" assert (from <= to) \n" +" _from = from \n" +" _to = to \n" +"\n" +" func _iter_init(iter): \n" +" iter[0] = _from \n" +" return iter[0] < _to \n" +"\n" +" func _iter_next(iter): \n" +" iter[0] += 1 \n" +" return iter[0] < _to \n" +"\n" +" func _iter_get(iter): \n" +" return iter \n" +"\n" +"func _ready(): \n" +" var my_range = MyRange.new(2, 5) \n" +" для x у my_range: \n" +" print(x) # Виводить 2, 3, 4. \n" +"[/codeblock] \n" +"[b]Примітка:[/b] Крім того, ви можете ігнорувати [param iter] і " +"використовувати замість нього стан об’єкта, див. [url=$DOCS_URL/tutorials/" +"scripting/gdscript/gdscript_advanced.html#custom-iterators]онлайн-документи[/" +"url] для прикладу. Зверніть увагу, що в цьому випадку ви не зможете повторно " +"використовувати той самий екземпляр ітератора у вкладених циклах. Крім того, " +"переконайтеся, що ви скинули стан ітератора в цьому методі, якщо ви хочете " +"повторно використовувати той самий екземпляр кілька разів." + +msgid "" +"Moves the iterator to the next iteration. [param iter] stores the iteration " +"state. Since GDScript does not support passing arguments by reference, a " +"single-element array is used as a wrapper. Returns [code]true[/code] so long " +"as the iterator has not reached the end." +msgstr "" +"Переміщує ітератор до наступної ітерації. [param iter] зберігає стан " +"ітерації. Оскільки GDScript не підтримує передачу аргументів за посиланням, " +"одноелементний масив використовується як оболонка. Повертає [code]true[/" +"code], доки ітератор не досяг кінця." + msgid "" "Called when the object receives a notification, which can be identified in " "[param what] by comparing it with a constant. See also [method " @@ -80914,30 +103166,29 @@ msgid "" "Inheriting classes such as [Node] define a lot more notifications, which are " "also received by this method." msgstr "" -"Викликається, коли об'єкт отримує повідомлення, яке можна визначити в " -"[пам'яті чого], порівнявши його з констанцією. Дивитися також [метод " -"повідомлення].\n" -"[блоки коду]\n" -"[видання]\n" -"Func _notification(що):\n" -"якщо це == УВАГА!\n" -"Друк(\"Goodbye!\")\n" -"[/gdscript]\n" -"[csharp]\n" -"громадська наднаречена _Повідомлення(на що)\n" -"Довідник\n" -"якщо " -"(що=============================================================================================================================================================================================================================================================\n" -"Довідник\n" -"GD.Print(\"Goodbye!\");\n" -"Про нас\n" -"Про нас\n" -"[/csharp]\n" -"[/codeblocks]\n" -"[b]Примітка:[/b] Основа [об'єкт] визначає кілька повідомлень ([constant " -"NOTIFICATION_POSTINITIALIZE] і [constant NOTIFICATION_PREDELETE]). Визначені " -"класи, такі як [Нод], визначають більше повідомлень, які також отримують цей " -"метод." +"Викликається, коли об’єкт отримує сповіщення, яке можна ідентифікувати в " +"[param what], порівнюючи його з константою. Дивіться також [метод " +"повідомлення]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"func _notification(що): \n" +" if what == NOTIFICATION_PREDELETE: \n" +" print(\"До побачення!\") \n" +"[/gdscript] \n" +"[csharp] \n" +"public override void _Notification(int what) \n" +"{\n" +" if (what == NotificationPredelete) \n" +" { \n" +" GD.Print(\"До побачення!\"); \n" +" } \n" +"}\n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка:[/b] базовий [Object] визначає кілька сповіщень ([константа " +"NOTIFICATION_POSTINITIALIZE] і [константа NOTIFICATION_PREDELETE]). " +"Успадковані класи, такі як [Node], визначають набагато більше сповіщень, які " +"також отримані цим методом." msgid "" "Override this method to customize the given [param property]'s revert " @@ -80971,6 +103222,142 @@ msgstr "" "[b]Примітка:[/b] [метод _property_can_revert] також повинен бути переданий " "для цього методу." +msgid "" +"Override this method to customize the behavior of [method set]. Should set " +"the [param property] to [param value] and return [code]true[/code], or " +"[code]false[/code] if the [param property] should be handled normally. The " +"[i]exact[/i] way to set the [param property] is up to this method's " +"implementation.\n" +"Combined with [method _get] and [method _get_property_list], this method " +"allows defining custom properties, which is particularly useful for editor " +"plugins. Note that a property [i]must[/i] be present in [method " +"get_property_list], otherwise this method will not be called.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var internal_data = {}\n" +"\n" +"func _set(property, value):\n" +" if property == \"fake_property\":\n" +" # Storing the value in the fake property.\n" +" internal_data[\"fake_property\"] = value\n" +" return true\n" +" return false\n" +"\n" +"func _get_property_list():\n" +" return [\n" +" { \"name\": \"fake_property\", \"type\": TYPE_INT }\n" +" ]\n" +"[/gdscript]\n" +"[csharp]\n" +"private Godot.Collections.Dictionary _internalData = new Godot.Collections." +"Dictionary();\n" +"\n" +"public override bool _Set(StringName property, Variant value)\n" +"{\n" +" if (property == \"FakeProperty\")\n" +" {\n" +" // Storing the value in the fake property.\n" +" _internalData[\"FakeProperty\"] = value;\n" +" return true;\n" +" }\n" +"\n" +" return false;\n" +"}\n" +"\n" +"public override Godot.Collections.Array<Godot.Collections.Dictionary> " +"_GetPropertyList()\n" +"{\n" +" return\n" +" [\n" +" new Godot.Collections.Dictionary()\n" +" {\n" +" { \"name\", \"FakeProperty\" },\n" +" { \"type\", (int)Variant.Type.Int },\n" +" },\n" +" ];\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Перевизначте цей метод, щоб налаштувати поведінку [method set]. Потрібно " +"встановити [param property] на [param value] і повернути [code]true[/code] " +"або [code]false[/code], якщо [param property] потрібно обробляти нормально. " +"[i]Точний[/i] спосіб встановлення [властивості param] залежить від реалізації " +"цього методу. \n" +"У поєднанні з [method _get] і [method _get_property_list] цей метод дозволяє " +"визначати власні властивості, що особливо корисно для плагінів редактора. " +"Зауважте, що властивість [i]повинна[/i] бути присутньою в [методі " +"get_property_list], інакше цей метод не буде викликано. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var internal_data = {} \n" +"\n" +"func _set(peorerty, valve): \n" +" if property == \"fake_property\": \n" +" # Зберігання значення у фальшивій властивості. \n" +" internal_data[\"fake_property\"] = valve \n" +" return ture \n" +" return false \n" +"\n" +"func _get_property_list(): \n" +" return [ \n" +" { \"name\": \"fake_property\", \"type\": TYPE_INT } \n" +" ] \n" +"[/gdscript] \n" +"[csharp] \n" +"private Godot.Collections.Dictionary _internalData = new Godot.Collections." +"Dictionary(); \n" +"\n" +"public override bool _Set(property StringName, valve Variant) \n" +"{\n" +" if (prorerty == \"FakeProperty\") \n" +" { \n" +" // Зберігання значення у фальшивій властивості. \n" +" _internalData[\"FakeProperty\"] = valve; \n" +" return ture; \n" +" } \n" +"\n" +" return false; \n" +"}\n" +"\n" +"public override Godot.Collections.Array<Godot.Collections.Dictionary> " +"_GetPropertyList() \n" +"{\n" +" return \n" +" [ \n" +" new Godot.Collections.Dictionary() \n" +" { \n" +" { \"name\", \"FakeProperty\" }, \n" +" { \"type\", (int)Variant.Type.Int }, \n" +" }, \n" +" ]; \n" +"}\n" +"[/csharp] \n" +"[/codeblocks]" + +msgid "" +"Override this method to customize the return value of [method to_string], and " +"therefore the object's representation as a [String].\n" +"[codeblock]\n" +"func _to_string():\n" +" return \"Welcome to Godot 4!\"\n" +"\n" +"func _init():\n" +" print(self) # Prints \"Welcome to Godot 4!\"\n" +" var a = str(self) # a is \"Welcome to Godot 4!\"\n" +"[/codeblock]" +msgstr "" +"Перевизначте цей метод, щоб налаштувати значення, що повертається [method " +"to_string], і, отже, представлення об’єкта як [String]. \n" +"[codeblock] \n" +"func _to_string(): \n" +" return \"Ласкаво просимо до Godot 4!\" \n" +"\n" +"func _init(): \n" +" print(self) # Виводить \"Ласкаво просимо до Godot 4!\" \n" +" var a = str(self) # a це \"Ласкаво просимо до Godot 4!\" \n" +"[/codeblock]" + msgid "" "Override this method to customize existing properties. Every property info " "goes through this method, except properties added with [method " @@ -81026,57 +103413,117 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"На відміну від цього способу налаштувати існуючі властивості. Інформація про " -"нерухомість проходить за допомогою цього методу, крім властивостей, доданих " -"[метод]. Вміст словника є таким же, як в [метод_get_property_list].\n" -"[блоки коду]\n" -"[видання]\n" -"@інструмент\n" -"Подовжувачі Нід\n" +"Перевизначте цей метод, щоб налаштувати наявні властивості. Усі відомості про " +"властивості проходять через цей метод, за винятком властивостей, доданих за " +"допомогою [method _get_property_list]. Вміст словника такий самий, як і в " +"[method _get_property_list]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"@tool \n" +"extends Node \n" "\n" -"@export var_number_editable: bool:\n" -"набір(значення):\n" -"is_number_editable = значення\n" -"JavaScript licenses API Веб-сайт\n" -"@export var номер: int\n" +"@export var is_number_editable: bool: \n" +" set(valve): \n" +" is_number_editable = valve \n" +" notify_property_list_changed() \n" +"@export var number: int \n" "\n" -"Func _validate_property(property: Словник):\n" -"якщо майно.name = \"number\" і не є_number_editable:\n" -"Головна сторінка UKRAINE UA > Продукція > PROPERTY_USAGE\n" +"func _validate_property(property: Dictionary): \n" +" if property.name == \"number\", and not is_number_editable: \n" +" property.usage |= PROPERTY_USAGE_READ_ONLY \n" +"[/gdscript] \n" +"[csharp] \n" +"[Tool] \n" +"public partial class MyNode : Node \n" +"{\n" +" private bool _isNumberEditable; \n" +"\n" +" [Export] \n" +" public bool IsNumberEditable \n" +" { \n" +" get => _isNumberEditable; \n" +" set \n" +" { \n" +" _isNumberEditable = valve; \n" +" NotifyPropertyListChanged(); \n" +" } \n" +" } \n" +"\n" +" [Export] \n" +" public int Number { get; set; } \n" +"\n" +" public override void _ValidateProperty(властивість Godot.Collections." +"Dictionary) \n" +" { \n" +" if (property[\"name\"].AsStringName() == PropertyName.Number && !" +"IsNumberEditable) \n" +" { \n" +" var usage = property[\"usage\"].As<PropertyUsageFlags>() | " +"PropertyUsageFlags.ReadOnly; \n" +" property[\"usage\"] = (int)usage; \n" +" } \n" +" } \n" +"}\n" +"[/csharp] \n" +"[/codeblocks]" + +msgid "" +"Adds a user-defined signal named [param signal]. Optional arguments for the " +"signal can be added as an [Array] of dictionaries, each defining a " +"[code]name[/code] [String] and a [code]type[/code] [int] (see [enum Variant." +"Type]). See also [method has_user_signal] and [method remove_user_signal].\n" +"[codeblocks]\n" +"[gdscript]\n" +"add_user_signal(\"hurt\", [\n" +" { \"name\": \"damage\", \"type\": TYPE_INT },\n" +" { \"name\": \"source\", \"type\": TYPE_OBJECT }\n" +"])\n" "[/gdscript]\n" "[csharp]\n" -"[Tool]\n" -"публічний частковий клас MyNode : Node\n" -"Довідник\n" -"приватний bool _isКількістьEditable;\n" -"\n" -"[Експорт]\n" -"публічний bool IsNumberEditable\n" -"Довідник\n" -"Завантажити [xml.tar.bz2] Редагування;\n" -"Комплекти\n" -"Довідник\n" -"_isКількістьEditable = значення;\n" -"Повідомити проксимуляцію();\n" -"Про нас\n" -"Про нас\n" -"\n" -"[Експорт]\n" -"JavaScript licenses API Веб-сайт\n" -"\n" -"public override void _ValidateProperty(Godot.Collections. Словникове майно)\n" -"Довідник\n" -"if (property[\"name\"]. AsStringName() ==Назва власності.Кількість та & !" -"IsКількістьEditable)\n" -"Довідник\n" -"var use = власність[\"usage\"]. Як <PropertyUsageFlags>() 浜у 灞 绀 Читати " -"далі;\n" -"майно[\"usage\"] = (int)usage;\n" -"Про нас\n" -"Про нас\n" -"Про нас\n" +"AddUserSignal(\"Hurt\",\n" +"[\n" +" new Godot.Collections.Dictionary()\n" +" {\n" +" { \"name\", \"damage\" },\n" +" { \"type\", (int)Variant.Type.Int },\n" +" },\n" +" new Godot.Collections.Dictionary()\n" +" {\n" +" { \"name\", \"source\" },\n" +" { \"type\", (int)Variant.Type.Object },\n" +" },\n" +"]);\n" "[/csharp]\n" "[/codeblocks]" +msgstr "" +"Додає визначений користувачем сигнал під назвою [param signal]. Необов’язкові " +"аргументи для сигналу можна додати як [Масив] словників, кожен з яких " +"визначає [код]ім’я[/код] [Рядок] і [код]тип[/код] [int] (див. [enum Variant." +"Type]). Дивіться також [method has_user_signal] і [method " +"remove_user_signal]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"add_user_signal(\"пошкодити\", [ \n" +" { \"ім'я\": \"шкода\", \"тип\": TYPE_INT }, \n" +" { \"ім'я\": \"джерело\", \"тип\": TYPE_OBJECT } \n" +"])\n" +"[/gdscript] \n" +"[csharp] \n" +"AddUserSignal(\"Пошкодження\", \n" +"[\n" +" новий Godot.Collections.Dictionary() \n" +" { \n" +" { \"ім'я\", \"пошкодження\" }, \n" +" { \"тип\", (int)Variant.Type.Int }, \n" +" }, \n" +" новий Godot.Collections.Dictionary() \n" +" { \n" +" { \"назва\", \"джерело\" }, \n" +" { \"type\", (int)Variant.Type.Object }, \n" +" }, \n" +"]);\n" +"[/csharp] \n" +"[/codeblocks]" msgid "" "Calls the [param method] on the object and returns the result. This method " @@ -81115,6 +103562,125 @@ msgstr "" "[code]MethodName[/code] класу, щоб уникнути виділення нового [StringName] на " "кожному виклику." +msgid "" +"Calls the [param method] on the object during idle time. Always returns " +"[code]null[/code], [b]not[/b] the method's result.\n" +"Idle time happens mainly at the end of process and physics frames. In it, " +"deferred calls will be run until there are none left, which means you can " +"defer calls from other deferred calls and they'll still be run in the current " +"idle time cycle. This means you should not call a method deferred from itself " +"(or from a method called by it), as this causes infinite recursion the same " +"way as if you had called the method directly.\n" +"This method supports a variable number of arguments, so parameters can be " +"passed as a comma separated list.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var node = Node3D.new()\n" +"node.call_deferred(\"rotate\", Vector3(1.0, 0.0, 0.0), 1.571)\n" +"[/gdscript]\n" +"[csharp]\n" +"var node = new Node3D();\n" +"node.CallDeferred(Node3D.MethodName.Rotate, new Vector3(1f, 0f, 0f), " +"1.571f);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"See also [method Callable.call_deferred].\n" +"[b]Note:[/b] In C#, [param method] must be in snake_case when referring to " +"built-in Godot methods. Prefer using the names exposed in the " +"[code]MethodName[/code] class to avoid allocating a new [StringName] on each " +"call.\n" +"[b]Note:[/b] If you're looking to delay the function call by a frame, refer " +"to the [signal SceneTree.process_frame] and [signal SceneTree.physics_frame] " +"signals.\n" +"[codeblock]\n" +"var node = Node3D.new()\n" +"# Make a Callable and bind the arguments to the node's rotate() call.\n" +"var callable = node.rotate.bind(Vector3(1.0, 0.0, 0.0), 1.571)\n" +"# Connect the callable to the process_frame signal, so it gets called in the " +"next process frame.\n" +"# CONNECT_ONE_SHOT makes sure it only gets called once instead of every " +"frame.\n" +"get_tree().process_frame.connect(callable, CONNECT_ONE_SHOT)\n" +"[/codeblock]" +msgstr "" +"Викликає метод [param] для об’єкта під час простою. Завжди повертає " +"[code]null[/code], [b]не[/b] результат методу. \n" +"Час простою відбувається в основному в кінці кадрів процесу та фізики. У " +"ньому відкладені дзвінки виконуватимуться, доки їх не залишиться, що означає, " +"що ви можете відкласти дзвінки з інших відкладених дзвінків, і вони все одно " +"виконуватимуться в поточному циклі простою. Це означає, що ви не повинні " +"викликати метод, відкладений від самого себе (або від викликаного ним " +"методу), оскільки це спричиняє нескінченну рекурсію так само, як якщо б ви " +"викликали метод безпосередньо. \n" +"Цей метод підтримує змінну кількість аргументів, тому параметри можна " +"передавати як список, розділений комами. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var node = Node3D.new() \n" +"node.call_deferred(\"rotate\", Vector3(1.0, 0.0, 0.0), 1.571) \n" +"[/gdscript] \n" +"[csharp] \n" +"var node = new Node3D(); \n" +"node.CallDeferred(Node3D.MethodName.Rotate, new Vector3(1f, 0f, 0f), " +"1.571f); \n" +"[/csharp] \n" +"[/codeblocks] \n" +"Дивіться також [метод Callable.call_deferred]. \n" +"[b]Примітка.[/b] У C# [param method] має бути в snake_case, коли йдеться про " +"вбудовані методи Godot. Надавайте перевагу використанню назв, представлених у " +"класі [code]MethodName[/code], щоб уникнути виділення нового [StringName] під " +"час кожного виклику. \n" +"[b]Примітка.[/b] Якщо ви хочете затримати виклик функції на кадр, зверніться " +"до сигналів [signal SceneTree.process_frame] і [signal SceneTree." +"physics_frame]. \n" +"[codeblock] \n" +"var node = Node3D.new() \n" +"# Створіть Callable і прив’яжіть аргументи до виклику rotate() вузла. \n" +"var callable = node.rotate.bind(Vector3(1.0, 0.0, 0.0), 1.571) \n" +"# З’єднайте виклик із сигналом process_frame, щоб він викликався в наступному " +"кадрі процесу. \n" +"# CONNECT_ONE_SHOT гарантує, що він викликається лише один раз замість " +"кожного кадру. \n" +"get_tree().process_frame.connect(може викликатися, CONNECT_ONE_SHOT) \n" +"[/codeblock]" + +msgid "" +"Calls the [param method] on the object and returns the result. Unlike [method " +"call], this method expects all parameters to be contained inside [param " +"arg_array].\n" +"[codeblocks]\n" +"[gdscript]\n" +"var node = Node3D.new()\n" +"node.callv(\"rotate\", [Vector3(1.0, 0.0, 0.0), 1.571])\n" +"[/gdscript]\n" +"[csharp]\n" +"var node = new Node3D();\n" +"node.Callv(Node3D.MethodName.Rotate, [new Vector3(1f, 0f, 0f), 1.571f]);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] In C#, [param method] must be in snake_case when referring to " +"built-in Godot methods. Prefer using the names exposed in the " +"[code]MethodName[/code] class to avoid allocating a new [StringName] on each " +"call." +msgstr "" +"Викликає метод [param] для об’єкта та повертає результат. На відміну від " +"[виклику методу], цей метод очікує, що всі параметри будуть міститися в " +"[param arg_array]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var node = Node3D.new() \n" +"node.callv(\"rotate\", [Vector3(1.0, 0.0, 0.0), 1.571]) \n" +"[/gdscript] \n" +"[csharp] \n" +"var node = new Node3D(); \n" +"node.Callv(Node3D.MethodName.Rotate, [new Vector3(1f, 0f, 0f), 1.571f]); \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка.[/b] У C# [param method] має бути в snake_case, коли йдеться про " +"вбудовані методи Godot. Надавайте перевагу використанню назв, представлених у " +"класі [code]MethodName[/code], щоб уникнути виділення нового [StringName] під " +"час кожного виклику." + msgid "" "Returns [code]true[/code] if the object is allowed to translate messages with " "[method tr] and [method tr_n]. See also [method set_message_translation]." @@ -81310,175 +103876,173 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Підключає [параметровий сигнал] за назвою [парафікований]. Додаткові " -"[параметри] можуть бути також додані для налаштування поведінки з'єднання " -"(див. [enum ConnectFlags].\n" -"сигнал може бути підключений тільки один раз до того ж [знімний]. Якщо сигнал " -"вже підключений, цей метод повертає [constant ERR_INVALID_PARAMETER] і " -"відштовхує повідомлення про помилку, якщо сигнал підключено до [constant " -"CONNECT_REFERENCE_COUNTED]. Для запобігання цього використовується " -"[метод_connected] для перевірки існуючих підключень.\n" -"Якщо об'єкт [param callable] звільняється, зв'язок буде втрачено.\n" -"[b]Examples з рекомендованим синтаксисом:[/b]\n" -"З'єднання сигналів є одним з найбільш поширених операцій в Godot і API дає " -"безліч варіантів зробити це, які описані далі. Код блок нижче показує " +"З’єднує [param signal] за назвою з [param callable]. Також можна додати " +"необов’язкові [param flags], щоб налаштувати поведінку з’єднання (див. " +"константи [enum ConnectFlags]).\n" +"Сигнал можна підключити лише один раз до одного [Callable]. Якщо сигнал уже " +"підключено, цей метод повертає [константу ERR_INVALID_PARAMETER] і надсилає " +"повідомлення про помилку, якщо сигнал не підключено до [константи " +"CONNECT_REFERENCE_COUNTED]. Щоб запобігти цьому, спочатку використовуйте " +"[методis_connected], щоб перевірити наявність підключень.\n" +"Якщо об’єкт [param callable] звільнено, з’єднання буде втрачено.\n" +"[b]Приклади з рекомендованим синтаксисом:[/b]\n" +"Підключення сигналів є однією з найпоширеніших операцій у Godot, і API надає " +"багато варіантів для цього, які описані нижче. Блок коду нижче показує " "рекомендований підхід.\n" -"[блоки коду]\n" -"[видання]\n" -"Func _ready():\n" -"Кнопка варення = Button.new()\n" -"# `button_down` тут є тип сигналу, і ми, таким чином, називаємо Signal. " -"Підключення() метод, не Об'єкт.connect().\n" -"# Переглядайте обговорення нижче для більш детального огляду API.\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" +"[codeblocjs]\n" +"[gdscript]\n" +"func _ready():\n" +" var botton = Button.new()\n" +" # `button_down` тут є варіантом типу Signal, тому ми викликаємо метод Signal." +"connect(), а не Object.connect().\n" +" # Перегляньте обговорення нижче для більш глибокого огляду API.\n" +" button.button_down.connect(_on_button_down)\n" "\n" -"Нема У цьому випадку існує клас `Player`, який визначає сигнал `hit`.\n" -"var гравець = Player.new()\n" -"# Ми використовуємо Signal.connect() знову, і ми використовуємо метод " +" # Це припускає, що існує клас `Player`, який визначає сигнал `hit`.\n" +" var player = Player.new()\n" +" # Ми знову використовуємо Signal.connect(), а також використовуємо метод " "Callable.bind(),\n" -"# який повертає новий Увімкнути з параметром\n" -"плеєр.hit.connect(_on_player_hit.bind(\"sword\", 100)\n" +" # який повертає новий Callable з параметром binds.\n" +" player.hit.connect(_on_player_hit.bind(\"sword\", 100))\n" "\n" -"Func _on_button_down():\n" -"Друк(\"Button Down!\")\n" +"func _on_button_down():\n" +" print(\"Гудзик вниз!\")\n" "\n" -"Func _on_player_hit(weapon_type, пошкодження):\n" -"Друк(\"Примітка з зброєю %s за %d пошкодження.\" % [weapon_type, " -"пошкодження])\n" +"func _on_player_hit(weapon_type, damage):\n" +" print(\"Удар зі зброї %s для %d шкоди.\" % [weapon_type, damage])\n" "[/gdscript]\n" "[csharp]\n" -"public override _Читати()\n" -"Довідник\n" -"кнопка вар = нова кнопка ();\n" -"// C# підтримує проходження сигналів як подій, тому ми можемо використовувати " -"цей ідіоматичний дизайн:\n" -"кнопка. ButtonDown += OnButtonDown;\n" +"public override void _Ready()\n" +"{\n" +" var bottom = new botton();\n" +" // C# підтримує передачу сигналів як подій, тому ми можемо використовувати " +"цю ідіоматичну конструкцію:\n" +" button.ButtonDown += OnButtonDown;\n" "\n" -"(Українська) У цьому випадку існує клас `Player`, який визначає сигнал " -"`Hit`.\n" -"var гравця = новий плеєр ();\n" -"(Українська) Ми можемо використовувати лямбочки, коли нам потрібно зв'язати " +" // Це припускає, що існує клас `Player`, який визначає сигнал `Hit`.\n" +" var player = new Player();\n" +" // Ми можемо використовувати лямбда-вирази, коли нам потрібно прив’язати " "додаткові параметри.\n" -"гравець. Хіт += () => OnPlayerHit(\"sword\", 100);\n" -"Про нас\n" +" player.Hit += () => OnPlayerHit(\"sword\", 100);\n" +"}\n" "\n" -"приватний void OnButtonDown()\n" -"Довідник\n" -"GD.Print(\"Button вниз!\");\n" -"Про нас\n" +"private void OnButtonDown()\n" +"{\n" +" GD.Print(\"Кудзик вниз!\");\n" +"}\n" "\n" -"приватний void OnPlayerHit(string зброя Тип, не пошкодити)\n" -"Довідник\n" -"GD.Print($\"Примітка з зброєю {weaponType} для пошкодження {damage}\");\n" -"Про нас\n" +"private void OnPlayerHit(string weaponType, int damage)\n" +"{\n" +" GD.Print($\"Удар зі зброї {weaponType} для {damage} шкоди.\");\n" +"}\n" "[/csharp]\n" "[/codeblocks]\n" -"[b][code skip-lint]Object.connect()[/code] або [код пропустити-lint]Signal." -"connect()[/код]?[/b]\n" -"Як видно вище, рекомендований метод підключення сигналів не [метод об'єкт." -"connect]. Введіть номер мобільного, який Ви вказали при укладаннi договору з " -"банком - для ідентифікації.\n" -"[блоки коду]\n" -"[видання]\n" -"Func _ready():\n" -"Кнопка варення = Button.new()\n" -"# Option 1: Об'єкт.connect() з настройкою, що відповідає за визначену " -"функцію.\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"# Option 2: Об'єкт.connect() з вбудованим Увімкненням за допомогою цільового " -"об'єкта та імені методу.\n" -"button.connect(\"button_down\", Вимкнено(self, \"_on_button_down\")\n" -"# Option 3: Signal.connect() з відключенням для визначеної функції.\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"# Option 4: Signal.connect() з вбудованим Callable за допомогою цільового " -"об'єкта та імені методу.\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" +"[b][code skip-lint]Object.connect()[/code] або [code skip-lint]Signal." +"connect()[/code]?[/b]\n" +"Як видно вище, рекомендований метод підключення сигналів не є [метод Object." +"connect]. У наведеному нижче блоці коду показано чотири варіанти з’єднання " +"сигналів, використовуючи або цей застарілий метод, або рекомендований [метод " +"Signal.connect], а також використовуючи неявний [Callable] або визначений " +"вручну.\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _ready():\n" +" var botton = Button.new()\n" +" # Варіант 1: Object.connect() із неявним Callable для визначеної функції.\n" +" button.connect(\"button_down\", _on_button_down)\n" +" # Варіант 2: Object.connect() зі сконструйованим Callable з використанням " +"цільового об’єкта та імені методу.\n" +" button.connect(\"button_down\", Callable(self, \"_on_button_down\"))\n" +" # Варіант 3: Signal.connect() із неявним Callable для визначеної функції.\n" +" button.button_down.connect(_on_button_down)\n" +" # Варіант 4: Signal.connect() зі створеним Callable з використанням " +"цільового об’єкта та імені методу.\n" +" button.button_down.connect(Callable(self, \"_on_button_down\"))\n" "\n" -"Func _on_button_down():\n" -"Друк(\"Button Down!\")\n" +"func _on_button_down():\n" +" print(\"Гудзик вниз!\")\n" "[/gdscript]\n" "[csharp]\n" -"public override _Читати()\n" -"Довідник\n" -"кнопка вар = нова кнопка ();\n" -"// Варіант 1: У C# ми можемо використовувати сигнали як події і підключитися " -"з цим ідіоматичним синтаксисом:\n" -"кнопка. ButtonDown += OnButtonDown;\n" -"// Варіант 2: GodotObject.Connect() з вбудованим Callable з групи методів.\n" -"кнопка. Підключіть(Button.SignalName.ButtonDown, Callable. " -"Від(НаButtonDown));\n" -"// Варіант 3: GodotObject.Connect() з вбудованим Callable за допомогою " -"цільового об'єкта та методу ім'я.\n" -"кнопка. Підключіть(Button.SignalName.ButtonDown, новий Callable(this, " -"MethodName.OnButtonDown));\n" -"Про нас\n" +"public override void _Ready()\n" +"{\n" +" var bottom = new botton();\n" +" // Варіант 1: у C# ми можемо використовувати сигнали як події та " +"підключатися за допомогою цього ідіоматичного синтаксису:\n" +" button.ButtonDown += OnButtonDown;\n" +" // Варіант 2: GodotObject.Connect() зі створеним Callable із групи методів.\n" +" button.Connect(Button.SignalName.ButtonDown, Callable.From(OnButtonDown));\n" +" // Варіант 3: GodotObject.Connect() зі створеним Callable з використанням " +"цільового об’єкта та імені методу.\n" +" button.Connect(Button.SignalName.ButtonDown, new Callable(this, MethodName." +"OnButtonDown));\n" +"}\n" "\n" -"приватний void OnButtonDown()\n" -"Довідник\n" -"GD.Print(\"Button вниз!\");\n" -"Про нас\n" +"private void OnButtonDown()\n" +"{\n" +" GD.Print(\"Кудзик вниз!\");\n" +"}\n" "[/csharp]\n" "[/codeblocks]\n" -"Незважаючи на те, що всі параметри мають однаковий результат ([code]button[/" -"code] [signal BaseButton.button_down] сигнал буде підключений до " -"[code]_on_button_down[/code]), [b]option 3[/b] пропонує кращу перевірку " -"помилки в режимі компіляції, якщо або [code]button_down[/code] [Signal] або " -"[code]_on_button_down[/code] [Callable] З іншого боку, [b]option 2[/b] тільки " -"спирається на імена рядка і буде в змозі підтвердити будь-які імена в режимі " -"runtime: він буде друкувати помилки в режимі runtime, якщо " +"Хоча всі варіанти мають однаковий результат (сигнал [signal BaseButton." +"button_down] [code]кнопки[/code] буде підключено до [code]_on_button_down[/" +"code]), [b]варіант 3[/b] пропонує найкращу перевірку: він видасть помилку під " +"час компіляції, якщо [code]button_down[/code] [Signal] або " +"[code]_on_button_down[/code] [Callable] не визначено. З іншого боку, " +"[b]варіант 2[/b] покладається лише на назви рядків і зможе перевірити будь-" +"яке ім’я лише під час виконання: він виведе помилку виконання, якщо " "[code]\"button_down\"[/code] не відповідає сигналу, або якщо " -"[code]\"_on_button_down\"[/code] не зареєстрований метод в об'єкті " -"[code]self[/code]. Основна причина використання опцій 1, 2, або 4 буде, якщо " -"ви дійсно повинні використовувати рядки (наприклад, для підключення сигналів " -"программатично засновані на рядках, що читаються з конфігураційного файлу). В " -"іншому випадку варіант 3 є рекомендованим (і найшвидшим) способом.\n" -"[b]Бінжджі та параметри проходження:[/b]\n" -"Синтаксис до об'єктивних параметрів здійснюється через [метод Callable.bind], " -"який повертає копію [Callable] з параметрами, що межують.\n" -"При викликі [метод емітента] або [метод Signal.emit] параметри сигналу можуть " -"бути також передані. Приклади нижче відображають зв'язок між цими параметрами " -"сигналу і обмеженими параметрами.\n" -"[блоки коду]\n" -"[видання]\n" -"Func _ready():\n" -"Нема У цьому випадку існує клас `Player`, який визначає сигнал `hit`.\n" -"var гравець = Player.new()\n" -"# Використання Callable.bind().\n" -"плеєр.hit.connect(_on_player_hit.bind(\"sword\", 100)\n" +"[code]\"_on_button_down\"[/code] не є зареєстрованим методом в об’єкті " +"[code]self[/code]. Основною причиною використання варіантів 1, 2 або 4 було " +"б, якщо вам справді потрібно використовувати рядки (наприклад, для " +"підключення сигналів програмним шляхом на основі рядків, зчитаних із файлу " +"конфігурації). В іншому випадку варіант 3 є рекомендованим (і найшвидшим) " +"методом.\n" +"[b]Параметри зв’язування та передачі:[/b]\n" +"Синтаксис зв'язуваннячерез [метод Callable.bind], який повертає копію " +"[Callable] із прив’язаними параметрами.\n" +"Під час виклику [method emit_signal] або [method Signal.emit] також можна " +"передати параметри сигналу. Наведені нижче приклади показують зв’язок між " +"цими параметрами сигналу та зв’язаними параметрами.\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _ready():\n" +" # Це припускає, що існує клас `Player`, який визначає сигнал `hit`.\n" +" var player = Player.new()\n" +" # Використання Callable.bind().\n" +" player.hit.connect(_on_player_hit.bind(\"srowd\", 100))\n" "\n" -"# Параметри додаються при випромінюванні сигналу пропускаються першими.\n" -"гравець.hit.emit(\"Дарк лорда\", 5)\n" +" # Параметри, додані під час випромінювання сигналу, передаються першими.\n" +" player.hit.emit(\"Темний лорд\", 5)\n" "\n" -"Нема При випромінюванні (`hit_by`, `level`),\n" -"# і зв’язати два аргументи при підключенні (`weapon_type`, `damage`).\n" -"Func _on_player_hit(hit_by, рівень, зброя_type, пошкодження):\n" -"Друк(\"Примітка %s (рівень %d) з зброєю %s за %d пошкодження.\" % [hit_by, " -"рівень, зброя_type, пошкодження])\n" +"# Ми передаємо два аргументи при видачі (`hit_by`, `level`),\n" +"# і зв’яжіть ще два аргументи під час підключення (`weapon_type`, `damage`).\n" +"func _on_player_hit(hit_by, level, weapon_type, damage):\n" +" print(\"Удар від %s (рівень %d) зброєю %s для %d шкоди.\" % [hit_by, level, " +"weapon_type, damage])\n" "[/gdscript]\n" "[csharp]\n" -"public override _Читати()\n" -"Довідник\n" -"(Українська) У цьому випадку існує клас `Player`, який визначає сигнал " -"`Hit`.\n" -"var гравця = новий плеєр ();\n" -"(Українська) Використання виразів лямбда, які створюють закриття, що захоплює " -"додаткові параметри.\n" -"(Українська) лямбда отримує параметри, визначені делегатом сигналу.\n" -"гравець. Хіт += (hitBy, рівень) => OnPlayerHit(hitBy, рівень, \"sword\", " -"100);\n" +"public override void _Ready()\n" +"{\n" +" // Це припускає, що існує клас `Player`, який визначає сигнал `Hit`.\n" +" var player = new Player();\n" +" // Використання лямбда-виразів, які створюють закриття, яке фіксує додаткові " +"параметри.\n" +" // Лямбда отримує лише параметри, визначені делегатом сигналу.\n" +" player.Hit += (hitBy, level) => OnPlayerHit(hitBy, level, \"srowd\", 100);\n" "\n" -"(Українська) При випромінюванні сигналу спочатку пропускаються параметри.\n" -"гравець. EmitSignal(SignalName). Хіт, \"Дарк лорда\", 5);\n" -"Про нас\n" +" // Першими передаються параметри, додані під час випромінювання сигналу.\n" +" player.EmitSignal(SignalName.Hit, \"Dark Lord\", 5);\n" +"}\n" "\n" -"(Українська) При випромінюванні (`hit_by`, `level`),\n" -"// і зв’яжіть ще два аргументи при підключенні (`weapon_type`, `damage`).\n" -"приватний void OnPlayerHit (string удар По, рівень int, струнна зброя Тип, не " -"пошкодити)\n" -"Довідник\n" -"GD.Print($\"Прийміть {hitBy} (рівень {level}) з зброєю {weaponType} для " -"пошкодження {damage}\");\n" -"Про нас\n" +"// Передаємо два аргументи при видачі (`hit_by`, `level`),\n" +"// і зв’яжіть ще два аргументи під час підключення (`weapon_type`, " +"`damage`).\n" +"private void OnPlayerHit(string hitBy, int level, string weaponType, int " +"damage)\n" +"{\n" +" GD.Print($\"Удар від {hitBy} (рівень {level}) зі зброєю {weaponType} для " +"{damage} шкоди.\");\n" +"}\n" "[/csharp]\n" "[/codeblocks]" @@ -81514,26 +104078,27 @@ msgid "" "[code]SignalName[/code] class to avoid allocating a new [StringName] on each " "call." msgstr "" -"Насичує заданий [параметровий сигнал] за назвою. Для цього сигнал повинен " -"бути вбудованим сигналом цього класу або одним з його спадкових класів, або " -"користувачем встановленого сигналу (див. [метод add_user_signal]). Цей метод " -"підтримує змінну кількість аргументів, тому параметри можуть бути передані як " -"окремий список коми.\n" -"Повернення [constant ERR_UNAVAILABLE] якщо [param сигнал] не існує або " -"параметри недійсні.\n" -"[блоки коду]\n" -"[видання]\n" -"e-mail: info@sword.com\n" -"емітента (\"game_over\")\n" -"[/gdscript]\n" -"[csharp]\n" -"EmitSignal(SignalName). Хіт, \"слово\", 100);\n" -"EmitSignal(SignalName.GameOver);\n" -"[/csharp]\n" -"[/codeblocks]\n" -"[b]Note:[/b] У C# [param сигнал] повинні бути в змії_кейс при зверненні до " -"вбудованих сигналів Godot. За допомогою імен, виставлених в [code]SignalName[/" -"code] класу, щоб уникнути виділення нового [StringName] на кожному виклику." +"Видає заданий [сигнал param] за назвою. Сигнал має існувати, тому це має бути " +"вбудований сигнал цього класу або одного з його успадкованих класів, або " +"сигнал, визначений користувачем (див. [метод add_user_signal]). Цей метод " +"підтримує змінну кількість аргументів, тому параметри можна передавати як " +"список, розділений комами. \n" +"Повертає [константу ERR_UNAVAILABLE], якщо [сигнал параметра] не існує або " +"параметри недійсні. \n" +"[codeblocks] \n" +"[gdscript] \n" +"emit_signal(\"damage\", \"srowd\", 100) \n" +"emit_signal(\"end game\") \n" +"[/gdscript] \n" +"[csharp] \n" +"EmitSignal(SignalName.Hit, \"srowd\", 100); \n" +"EmitSignal(SignalName.GameOver); \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка.[/b] У C# [param signal] має бути в snake_case, коли йдеться про " +"вбудовані сигнали Годо. Надавайте перевагу використанню імен, представлених у " +"класі [code]SignalName[/code], щоб уникнути виділення нового [StringName] під " +"час кожного виклику." msgid "" "Deletes the object from memory. Pre-existing references to the object become " @@ -81565,24 +104130,24 @@ msgid "" "[code]PropertyName[/code] class to avoid allocating a new [StringName] on " "each call." msgstr "" -"Повертає значення [Variant] вказаного [param властивість]. Якщо [param " -"властивість] не існує, цей метод повертає [code]null[/code].\n" -"[блоки коду]\n" -"[видання]\n" -"var вузол = Node2D.new()\n" -"вершина.rotation = 1.5\n" -"var a = вузол.get(\"rotation\") # a 1.5\n" -"[/gdscript]\n" -"[csharp]\n" -"var вузол = новий Node2D();\n" -"вузол. обертання = 1.5f;\n" -"var a = вершина. Отримати(Node2D.PropertyName.Rotation); // це 1.5\n" -"[/csharp]\n" -"[/codeblocks]\n" -"[b]Note:[/b] У C#, [пам'ятна властивість] повинна бути в змії_волосся при " -"зверненні до вбудованих властивостей Godot. За допомогою імен, виставлених в " -"[code]PropertyName[/code] класу, щоб уникнути виділення нового [StringName] " -"на кожному дзвінку." +"Повертає значення [Variant] заданої властивості [param]. Якщо [param " +"property] не існує, цей метод повертає [code]null[/code]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var node = Node2D.new() \n" +"node.rotation = 1,5 \n" +"var a = node.get(\"rotation\") # a дорівнює 1,5 \n" +"[/gdscript] \n" +"[csharp] \n" +"var node = new Node2D(); \n" +"node.Rotation = 1,5f; \n" +"var a = node.Get(Node2D.PropertyName.Rotation); // a дорівнює 1,5 \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка.[/b] У C# [param property] має бути у snake_case, коли йдеться " +"про вбудовані властивості Godot. Надавайте перевагу використанню імен, " +"представлених у класі [code]PropertyName[/code], щоб уникнути виділення " +"нового [StringName] під час кожного виклику." msgid "" "Returns the object's built-in class name, as a [String]. See also [method " @@ -81637,32 +104202,32 @@ msgid "" "[SceneTree], only sub-property paths. In the context of nodes, use [method " "Node.get_node_and_resource] instead." msgstr "" -"Одержує майно об'єкта, вказану [пам'ятний майно_пат]. Шлях повинен бути " -"[NodePath] відносно поточного об'єкта і може використовувати характер товстої " -"кишки ([code]:[/code]) для доступу пригнічених властивостей.\n" -"[b]Examples:[/b] [code]\"позиція:x\"[/code] або [code]\"material:next_pass:" -"blend_mode\"[/code].\n" -"[блоки коду]\n" -"[видання]\n" -"var вузол = Node2D.new()\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"var a = node.get_indexed(\"позиція\") # is Vector2(5, -10)\n" -"var b = node.get_indexed(\"позиція:y\") # b є -10\n" -"[/gdscript]\n" -"[csharp]\n" -"var вузол = новий Node2D();\n" -"вершина.Положення = новий Вектор2(5, -10);\n" -"var a = вершина. GetIndexed(\"позиція\"); // Вектор2(5, -10)\n" -"var b = node.GetIndexed(\"позиція:y\"); // b є -10\n" -"[/csharp]\n" -"[/codeblocks]\n" -"[b]Note:[/b] У C# [param Property_path] повинні бути в змії_case при " -"зверненні до вбудованих властивостей Godot. За допомогою імен, виставлених в " -"[code]PropertyName[/code] класу, щоб уникнути виділення нового [StringName] " -"на кожному дзвінку.\n" -"[b]Примітка:[/b] Цей метод не підтримує фактичні шляхи до вузлів в " -"[SceneTree], тільки підступні доріжки. У контексті вузлів використовується " -"[метод Node.get_node_and_resource] замість." +"Отримує властивість об’єкта, індексовану заданим [param property_path]. Шлях " +"має бути [NodePath] відносно поточного об’єкта та може використовувати символ " +"двокрапки ([код]:[/код]) для доступу до вкладених властивостей. \n" +"[b]Приклади:[/b] [code]\"position:x\"[/code] або [code]\"material:next_pass:" +"blend_mode\"[/code]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var node = Node2D.new() \n" +"node.position = Vector2(5, -10) \n" +"var a = node.get_indexed(\"position\") # a is Vector2(5, -10) \n" +"var b = node.get_indexed(\"position:y\") # b дорівнює -10 \n" +"[/gdscript] \n" +"[csharp] \n" +"var node = new Node2D(); \n" +"node.Position = new Vector2(5, -10); \n" +"var a = node.GetIndexed(\"position\"); // a є Vector2(5, -10) \n" +"var b = node.GetIndexed(\"position:y\"); // b дорівнює -10 \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка.[/b] У C# [param property_path] має бути у snake_case, коли " +"йдеться про вбудовані властивості Godot. Надавайте перевагу використанню " +"імен, представлених у класі [code]PropertyName[/code], щоб уникнути виділення " +"нового [StringName] під час кожного виклику. \n" +"[b]Примітка:[/b] цей метод не підтримує фактичні шляхи до вузлів у " +"[SceneTree], лише шляхи підвластивостей. У контексті вузлів замість цього " +"використовуйте [метод Node.get_node_and_resource]." msgid "" "Returns the object's unique instance ID. This ID can be saved in " @@ -81699,6 +104264,10 @@ msgstr "" "вважається редактором. Редактор-тільки метаданих не відображається в " "Інспекторі і не слід редагувати, хоча це ще можна знайти цим методом." +msgid "" +"Returns the object's metadata entry names as an [Array] of [StringName]s." +msgstr "Повертає імена записів метаданих об’єкта як [Array] з [StringName]." + msgid "" "Returns the number of arguments of the given [param method] by name.\n" "[b]Note:[/b] In C#, [param method] must be in snake_case when referring to " @@ -81784,7 +104353,7 @@ msgid "" msgstr "" "Повертаємо назву [Аррайс] з'єднань для вказаного [пармового сигналу]. Кожен " "з'єднання представлений як [Дикатарний], який містить три записи:\n" -"- [код пропустити lint]signal[/code] - посилання на [Signal];\n" +"- [code] пропустити lint]signal[/code] - посилання на [Signal];\n" "- [code]Callable[/code] - посилання на підключений [Callable];\n" "- [code]flags[/code] - це поєднання [enum ConnectFlags]." @@ -81797,6 +104366,28 @@ msgstr "" "[b]Примітка:[/b] У зв'язку з виконанням, кожен [Дикатарний] дуже схожий на " "повернуті значення [метод get_method_list]." +msgid "" +"Returns the name of the translation domain used by [method tr] and [method " +"tr_n]. See also [TranslationServer]." +msgstr "" +"Повертає назву домену перекладу, який використовується [method tr] і [method " +"tr_n]. Дивіться також [TranslationServer]." + +msgid "" +"Returns [code]true[/code] if any connection exists on the given [param " +"signal] name.\n" +"[b]Note:[/b] In C#, [param signal] must be in snake_case when referring to " +"built-in Godot methods. Prefer using the names exposed in the " +"[code]SignalName[/code] class to avoid allocating a new [StringName] on each " +"call." +msgstr "" +"Повертає [code]true[/code], якщо існує будь-яке з’єднання з заданим ім’ям " +"[param signal]. \n" +"[b]Примітка.[/b] У C# [param signal] має бути в snake_case, коли йдеться про " +"вбудовані методи Годо. Надавайте перевагу використанню імен, представлених у " +"класі [code]SignalName[/code], щоб уникнути виділення нового [StringName] під " +"час кожного виклику." + msgid "" "Returns [code]true[/code] if a metadata entry is found with the given [param " "name]. See also [method get_meta], [method set_meta] and [method " @@ -81830,6 +104421,21 @@ msgstr "" "вбудованих методів Godot. За допомогою імен, виставлених в [code]MethodName[/" "code] класу, щоб уникнути виділення нового [StringName] на кожному дзвінку." +msgid "" +"Returns [code]true[/code] if the given [param signal] name exists in the " +"object.\n" +"[b]Note:[/b] In C#, [param signal] must be in snake_case when referring to " +"built-in Godot signals. Prefer using the names exposed in the " +"[code]SignalName[/code] class to avoid allocating a new [StringName] on each " +"call." +msgstr "" +"Повертає [code]true[/code], якщо вказане ім’я [param signal] існує в " +"об’єкті. \n" +"[b]Примітка.[/b] У C# [param signal] має бути в snake_case, коли йдеться про " +"вбудовані сигнали Годо. Надавайте перевагу використанню імен, представлених у " +"класі [code]SignalName[/code], щоб уникнути виділення нового [StringName] під " +"час кожного виклику." + msgid "" "Returns [code]true[/code] if the given user-defined [param signal] name " "exists. Only signals added with [method add_user_signal] are included. See " @@ -81866,24 +104472,39 @@ msgid "" "[b]Note:[/b] This method ignores [code]class_name[/code] declarations in the " "object's script." msgstr "" -"Повертаємо [code]true[/code], якщо об'єкт успадкував від даної [параметр " -"класу]. Дивіться також [метод].\n" -"[блоки коду]\n" -"[видання]\n" -"var sprite2d = Sprite2D.new()\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"[/gdscript]\n" -"[csharp]\n" -"var sprite2D = новий Sprite2D();\n" -"sprite2D.IsClass(\"Sprite2D\"); // Повертає true\n" -"sprite2D.IsClass(\"Node\"); (Українська) Повернення\n" -"sprite2D.IsClass(\"Node3D\"); // Повертає false\n" -"[/csharp]\n" -"[/codeblocks]\n" -"[b]Примітка:[/b] Цей метод ігнорує [code]class_name[/code] декларації в " -"сценарії об'єкта." +"Повертає [code]true[/code], якщо об’єкт успадковує заданий [param class]. " +"Дивіться також [метод get_class]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var sprite2d = Sprite2D.new() \n" +"sprite2d.is_class(\"Sprite2D\") # Повертає true \n" +"sprite2d.is_class(\"Вузол\") # Повертає true \n" +"sprite2d.is_class(\"Node3D\") # Повертає false \n" +"[/gdscript] \n" +"[csharp] \n" +"var sprite2D = new Sprite2D(); \n" +"sprite2D.IsClass(\"Sprite2D\"); // Повертає true \n" +"sprite2D.IsClass(\"Вузол\"); // Повертає true \n" +"sprite2D.IsClass(\"Node3D\"); // Повертає false \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка:[/b] цей метод ігнорує оголошення [code]class_name[/code] у " +"сценарії об’єкта." + +msgid "" +"Returns [code]true[/code] if a connection exists between the given [param " +"signal] name and [param callable].\n" +"[b]Note:[/b] In C#, [param signal] must be in snake_case when referring to " +"built-in Godot signals. Prefer using the names exposed in the " +"[code]SignalName[/code] class to avoid allocating a new [StringName] on each " +"call." +msgstr "" +"Повертає [code]true[/code], якщо існує зв’язок між вказаною назвою [param " +"signal] і [param callable]. \n" +"[b]Примітка.[/b] У C# [param signal] має бути в snake_case, коли йдеться про " +"вбудовані сигнали Годо. Надавайте перевагу використанню імен, представлених у " +"класі [code]SignalName[/code], щоб уникнути виділення нового [StringName] під " +"час кожного виклику." msgid "" "Returns [code]true[/code] if the [method Node.queue_free] method was called " @@ -81920,32 +104541,32 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Відправляється з вказаною [пам'ятою, яка] повідомлення про всі класи " -"успадкнувшись об'єктом, викликаючи виклики на [метод _notification], " -"починаючи з найвищого пред'явлення (the [Object] клас) і знизився на сценарій " -"об'єкта.\n" -"[code]true[/code], замовлення виклику зворотно.\n" -"[блоки коду]\n" -"[видання]\n" -"var гравець = Node2D.new()\n" -"плеєр.set_script(load(\"res://player.gd)))\n" +"Надсилає надане сповіщення [param what] усім класам, успадкованим об’єктом, " +"ініціюючи виклики [method _notification], починаючи від найвищого предка " +"(клас [Object]) і опускаючись до сценарію об’єкта. \n" +"Якщо [param reversed] має значення [code]true[/code], порядок викликів " +"змінюється на зворотний. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var player = Node2D.new() \n" +"player.set_script(load(\"res://player.gd\")) \n" "\n" -"програвач.notification(NOTIFICATION_ENTER_TREE)\n" -"Нема Порядок виклику - Об'єкт -> Node -> Node2D -> плеєр.gd.\n" +"player.notification(NOTIFICATION_ENTER_TREE) \n" +"# Порядок викликів: Object -> Node -> Node2D -> player.gd. \n" "\n" -"плеєр.notification(NOTIFICATION_ENTER_TREE, true)\n" -"Нема Порядок виклику гравця.gd -> Node2D -> Нода -> Об'єкт.\n" -"[/gdscript]\n" -"[csharp]\n" -"var гравця = новий Node2D();\n" -"плеєр.SetScript(GD.Load(\"res://player.gd\"));\n" +"player.notification(NOTIFICATION_ENTER_TREE, true) \n" +"# Порядок виклику player.gd -> Node2D -> Node -> Object. \n" +"[/gdscript] \n" +"[csharp] \n" +"var player = new Node2D(); \n" +"player.SetScript(GD.Load(\"res://player.gd\")); \n" "\n" -"програвач.Notification(NotificationEnterTree);\n" -"(Українська) Замовити дзвінок GodotObject -> Node -> Node2D -> програвач.gd.\n" +"player.Notification(NotificationEnterTree); \n" +"// Порядок викликів GodotObject -> Node -> Node2D -> player.gd. \n" "\n" -"гравця.Повідомлення(Повідомлення) Увійти\n" -"(Українська) Порядок виклику гравця.gd -> Node2D -> Node -> ГодоОб'єкт.\n" -"[/csharp]\n" +"player.Notification(NotificationEnterTree, true); \n" +"// Порядок виклику player.gd -> Node2D -> Node -> GodotObject. \n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -82016,6 +104637,45 @@ msgstr "" "Вилучає заданий сигнал користувача [параметровий сигнал] з об'єкта. Дивись " "також [method add_user_signal] і [метод has_user_signal]." +msgid "" +"Assigns [param value] to the given [param property]. If the property does not " +"exist or the given [param value]'s type doesn't match, nothing happens.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var node = Node2D.new()\n" +"node.set(\"global_scale\", Vector2(8, 2.5))\n" +"print(node.global_scale) # Prints (8.0, 2.5)\n" +"[/gdscript]\n" +"[csharp]\n" +"var node = new Node2D();\n" +"node.Set(Node2D.PropertyName.GlobalScale, new Vector2(8, 2.5f));\n" +"GD.Print(node.GlobalScale); // Prints (8, 2.5)\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] In C#, [param property] must be in snake_case when referring to " +"built-in Godot properties. Prefer using the names exposed in the " +"[code]PropertyName[/code] class to avoid allocating a new [StringName] on " +"each call." +msgstr "" +"Призначає [param value] даній [param property]. Якщо властивість не існує або " +"заданий тип [param value] не збігається, нічого не відбувається. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var node = Node2D.new() \n" +"node.set(\"global_scale\", Vector2(8, 2.5)) \n" +"print(node.global_scale) # Друк (8.0, 2.5) \n" +"[/gdscript] \n" +"[csharp] \n" +"var node = new Node2D(); \n" +"node.Set(Node2D.PropertyName.GlobalScale, new Vector2(8, 2.5f)); \n" +"GD.Print(node.GlobalScale); // Виводить (8, 2.5) \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка.[/b] У C# [param property] має бути у snake_case, коли йдеться " +"про вбудовані властивості Godot. Надавайте перевагу використанню імен, " +"представлених у класі [code]PropertyName[/code], щоб уникнути виділення " +"нового [StringName] під час кожного виклику." + msgid "" "If set to [code]true[/code], the object becomes unable to emit signals. As " "such, [method emit_signal] and signal connections will not work, until it is " @@ -82056,35 +104716,79 @@ msgid "" "[code]PropertyName[/code] class to avoid allocating a new [StringName] on " "each call." msgstr "" -"Призначають [памальне значення] на дану [пам'ятну властивість], в кінці " -"поточного кадру. Це еквівалентно виклику [методичний набір] через [метод " -"виклик_deferred].\n" -"[блоки коду]\n" -"[видання]\n" -"var вузол = Node2D.new()\n" -"add_child(node)\n" +"Призначає [param value] даній [param property] у кінці поточного кадру. Це " +"еквівалентно виклику [method set] через [method call_deferred]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var node = Node2D.new() \n" +"add_child(node) \n" "\n" -"вершина.rotation = 1.5\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"Друк(node.rotation) # Друки 1.5\n" +"node.rotation = 1,5 \n" +"node.set_deferred(\"обертання\", 3.0) \n" +"print(node.rotation) # Друкує 1.5 \n" "\n" -"Ознайомитись з посиланням на сторінку [xml.tar.bz2]\n" -"Друк(node.rotation) # Друки 3.0\n" +"очікувати get_tree().process_frame \n" +"print(node.rotation) # Друкує 3.0 \n" +"[/gdscript] \n" +"[csharp] \n" +"var node = new Node2D(); \n" +"node.Rotation = 1,5f; \n" +"node.SetDeferred(Node2D.PropertyName.Rotation, 3f); \n" +"GD.Print(node.Rotation); // Виводить 1.5 \n" +"\n" +"await ToSignal(GetTree(), SceneTree.SignalName.ProcessFrame); \n" +"GD.Print(node.Rotation); // Друкує 3.0 \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка.[/b] У C# [param property] має бути у snake_case, коли йдеться " +"про вбудовані властивості Godot. Надавайте перевагу використанню імен, " +"представлених у класі [code]PropertyName[/code], щоб уникнути виділення " +"нового [StringName] під час кожного виклику." + +msgid "" +"Assigns a new [param value] to the property identified by the [param " +"property_path]. The path should be a [NodePath] relative to this object, and " +"can use the colon character ([code]:[/code]) to access nested properties.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var node = Node2D.new()\n" +"node.set_indexed(\"position\", Vector2(42, 0))\n" +"node.set_indexed(\"position:y\", -10)\n" +"print(node.position) # Prints (42.0, -10.0)\n" "[/gdscript]\n" "[csharp]\n" -"var вузол = новий Node2D();\n" -"вузол. обертання = 1.5f;\n" -"node.SetDeferred(Node2D.PropertyName.Rotation, 3f);\n" -"GD.Print(node.Rotation); // Друк 1.5\n" -"\n" -"чекає ToSignal(GetTree(), СценаTree.SignalName.ProcessFrame);\n" -"GD.Print(node.Rotation); // Друки 3.0\n" +"var node = new Node2D();\n" +"node.SetIndexed(\"position\", new Vector2(42, 0));\n" +"node.SetIndexed(\"position:y\", -10);\n" +"GD.Print(node.Position); // Prints (42, -10)\n" "[/csharp]\n" "[/codeblocks]\n" -"[b]Примітка:[/b] У C# [пам'яні властивості] повинні бути в змії_волосся при " -"зверненні до вбудованих властивостей Godot. За допомогою імен, виставлених в " -"[code]PropertyName[/code] класу, щоб уникнути виділення нового [StringName] " -"на кожному виклику." +"[b]Note:[/b] In C#, [param property_path] must be in snake_case when " +"referring to built-in Godot properties. Prefer using the names exposed in the " +"[code]PropertyName[/code] class to avoid allocating a new [StringName] on " +"each call." +msgstr "" +"Призначає нове [param value] властивості, визначеній [param property_path]. " +"Шлях має бути [NodePath] відносно цього об’єкта та може використовувати " +"символ двокрапки ([код]:[/код]) для доступу до вкладених властивостей. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var node = Node2D.new() \n" +"node.set_indexed(\"position\", Vector2(42, 0)) \n" +"node.set_indexed(\"position:y\", -10) \n" +"print(node.position) # Друк (42.0, -10.0) \n" +"[/gdscript] \n" +"[csharp] \n" +"var node = new Node2D(); \n" +"node.SetIndexed(\"position\", new Vector2(42, 0)); \n" +"node.SetIndexed(\"position:y\", -10); \n" +"GD.Print(node.Position); // Друк (42, -10) \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка.[/b] У C# [param property_path] має бути у snake_case, коли " +"йдеться про вбудовані властивості Godot. Надавайте перевагу використанню " +"імен, представлених у класі [code]PropertyName[/code], щоб уникнути виділення " +"нового [StringName] під час кожного виклику." msgid "" "If set to [code]true[/code], allows the object to translate messages with " @@ -82133,6 +104837,13 @@ msgstr "" "Якщо скрипт вже існує, його екземпляр засвоюється, і його значення і стан " "втрачені. Побудовані значення нерухомості все ще зберігаються." +msgid "" +"Sets the name of the translation domain used by [method tr] and [method " +"tr_n]. See also [TranslationServer]." +msgstr "" +"Встановлює назву домену перекладу, який використовується [method tr] і " +"[method tr_n]. Дивіться також [TranslationServer]." + msgid "" "Returns a [String] representing the object. Defaults to " "[code]\"<ClassName#RID>\"[/code]. Override [method _to_string] to customize " @@ -82226,6 +104937,13 @@ msgstr "" "Повідомлення, отримане при ініціалізації об'єкта, перед його скриптом " "кріпиться. Використовується внутрішньо." +msgid "" +"Notification received when the object is about to be deleted. Can be used " +"like destructors in object-oriented programming languages." +msgstr "" +"Сповіщення отримано, коли об’єкт збирається видалити. Може використовуватися " +"як деструктори в об'єктно-орієнтованих мовах програмування." + msgid "" "Notification received when the object finishes hot reloading. This " "notification is only sent for extensions classes and derived." @@ -82292,6 +105010,71 @@ msgstr "" "Забезпечує оклюзійну кульку для вузлів 3D, що покращує продуктивність в " "закритих приміщеннях." +msgid "" +"Occlusion culling can improve rendering performance in closed/semi-open areas " +"by hiding geometry that is occluded by other objects.\n" +"The occlusion culling system is mostly static. [OccluderInstance3D]s can be " +"moved or hidden at run-time, but doing so will trigger a background " +"recomputation that can take several frames. It is recommended to only move " +"[OccluderInstance3D]s sporadically (e.g. for procedural generation purposes), " +"rather than doing so every frame.\n" +"The occlusion culling system works by rendering the occluders on the CPU in " +"parallel using [url=https://www.embree.org/]Embree[/url], drawing the result " +"to a low-resolution buffer then using this to cull 3D nodes individually. In " +"the 3D editor, you can preview the occlusion culling buffer by choosing " +"[b]Perspective > Display Advanced... > Occlusion Culling Buffer[/b] in the " +"top-left corner of the 3D viewport. The occlusion culling buffer quality can " +"be adjusted in the Project Settings.\n" +"[b]Baking:[/b] Select an [OccluderInstance3D] node, then use the [b]Bake " +"Occluders[/b] button at the top of the 3D editor. Only opaque materials will " +"be taken into account; transparent materials (alpha-blended or alpha-tested) " +"will be ignored by the occluder generation.\n" +"[b]Note:[/b] Occlusion culling is only effective if [member ProjectSettings." +"rendering/occlusion_culling/use_occlusion_culling] is [code]true[/code]. " +"Enabling occlusion culling has a cost on the CPU. Only enable occlusion " +"culling if you actually plan to use it. Large open scenes with few or no " +"objects blocking the view will generally not benefit much from occlusion " +"culling. Large open scenes generally benefit more from mesh LOD and " +"visibility ranges ([member GeometryInstance3D.visibility_range_begin] and " +"[member GeometryInstance3D.visibility_range_end]) compared to occlusion " +"culling.\n" +"[b]Note:[/b] Due to memory constraints, occlusion culling is not supported by " +"default in Web export templates. It can be enabled by compiling custom Web " +"export templates with [code]module_raycast_enabled=yes[/code]." +msgstr "" +"Вибракування оклюзії може покращити продуктивність візуалізації в закритих/" +"напіввідкритих областях, приховуючи геометрію, яка закрита іншими " +"об’єктами. \n" +"Система оклюзії здебільшого статична. [OccluderInstance3D] можна перемістити " +"або приховати під час виконання, але це запустить фонове повторне обчислення, " +"яке може зайняти кілька кадрів. Рекомендується лише спорадично переміщувати " +"[OccluderInstance3D] (наприклад, для цілей процедурної генерації), а не " +"робити це кожного кадру. \n" +"Система відсічення оклюзії працює шляхом паралельного рендерингу оклюдерів на " +"ЦП за допомогою [url=https://www.embree.org/]Embree[/url], перенесення " +"результату в буфер із низькою роздільною здатністю, а потім використання " +"цього для відсікання 3D-вузлів окремо. У 3D-редакторі ви можете попередньо " +"переглянути буфер відсічення оклюзії, вибравши [b]Перспектива > Відобразити " +"розширені... > Буфер відсікання оклюзії[/b] у верхньому лівому куті вікна 3D. " +"Якість буфера відсічення оклюзії можна налаштувати в налаштуваннях проекту. \n" +"[b]Запікання:[/b] Виберіть вузол [OccluderInstance3D], а потім скористайтеся " +"кнопкою [b]Bake Occluders[/b] у верхній частині 3D-редактора. До уваги " +"братимуться лише непрозорі матеріали; прозорі матеріали (альфа-змішані або " +"альфа-випробувані) ігноруватимуться поколінням оклюдерів. \n" +"[b]Примітка:[/b] Вибракування оклюзії ефективне, лише якщо [member " +"ProjectSettings.rendering/occlusion_culling/use_occlusion_culling] має " +"значення [code]true[/code]. Увімкнення блокування оклюзії коштує ЦП. " +"Увімкніть оклюзію, лише якщо ви дійсно плануєте її використовувати. Великі " +"відкриті сцени з невеликою кількістю або без об’єктів, що блокують огляд, як " +"правило, не отримають великої користі від оклюзії. Великі відкриті сцени " +"зазвичай більше виграють від LOD сітки та діапазонів видимості ([member " +"GeometryInstance3D.visibility_range_begin] і [member GeometryInstance3D." +"visibility_range_end]) порівняно з відбракуванням оклюзії. \n" +"[b]Примітка:[/b] Через обмеження пам’яті відбір оклюзії не підтримується за " +"замовчуванням у шаблонах веб-експорту. Його можна ввімкнути шляхом компіляції " +"спеціальних веб-шаблонів експорту за допомогою " +"[code]module_raycast_enabled=yes[/code]." + msgid "" "The visual layers to account for when baking for occluders. Only " "[MeshInstance3D]s whose [member VisualInstance3D.layers] match with this " @@ -82606,6 +105389,13 @@ msgstr "" "Ця дія забезпечує значення [Vector2] і може бути пов'язана з вбудованими " "трекпадами і джойстиками." +msgid "" +"Binding modifier that applies on individual actions related to an interaction " +"profile." +msgstr "" +"Модифікатор прив’язки, який застосовується до окремих дій, пов’язаних із " +"профілем взаємодії." + msgid "" "Collection of [OpenXRActionSet] and [OpenXRInteractionProfile] resources for " "the OpenXR module." @@ -82720,6 +105510,45 @@ msgstr "Локалізовані назви цього набору дій." msgid "The priority for this action set." msgstr "Пріоритет цієї акції." +msgid "" +"The analog threshold binding modifier can modify a float input to a boolean " +"input with specified thresholds." +msgstr "" +"Модифікатор зв’язування аналогового порогу може змінити вхід з плаваючою " +"речовиною на логічний вхід із заданими пороговими значеннями." + +msgid "" +"The analog threshold binding modifier can modify a float input to a boolean " +"input with specified thresholds.\n" +"See [url=https://registry.khronos.org/OpenXR/specs/1.1/html/xrspec." +"html#XR_VALVE_analog_threshold]XR_VALVE_analog_threshold[/url] for in-depth " +"details." +msgstr "" +"Модифікатор зв’язування аналогового порогу може змінити вхід з плаваючою " +"речовиною на логічний вхід із заданими пороговими значеннями.\n" +"див [url=https://registry.khronos.org/OpenXR/specs/1.1/html/xrspec." +"html#XR_VALVE_analog_threshold]XR_VALVE_analog_threshold[/url] для більш " +"детальної інформації." + +msgid "Haptic pulse to emit when the user releases the input." +msgstr "" +"Тактильний імпульс, який випромінює, коли користувач відпускає введення." + +msgid "When our input value falls below this, our output becomes false." +msgstr "Коли наше вхідне значення падає нижче цього, наш вихід стає false." + +msgid "Haptic pulse to emit when the user presses the input." +msgstr "" +"Тактильний імпульс, який випромінює, коли користувач натискає кнопку введення." + +msgid "" +"When our input value is equal or larger than this value, our output becomes " +"true. It stays true until it falls under the [member off_threshold] value." +msgstr "" +"Коли наше вхідне значення дорівнює або перевищує це значення, наш вихід стає " +"істинним. Він залишається істинним, доки не впаде нижче значення [member " +"off_threshold]." + msgid "Makes the OpenXR API available for GDExtension." msgstr "Зробіть API OpenXR, доступний для GDExtension." @@ -82757,6 +105586,23 @@ msgstr "xrBeginSession документація" msgid "XrPosef documentation" msgstr "Документація XrPosef" +msgid "" +"Returns the corresponding [code]XrAction[/code] OpenXR handle for the given " +"action RID." +msgstr "" +"Повертає відповідний [code]XrAction[/code] дескриптор OpenXR для даної дії " +"RID." + +msgid "" +"Begins a new debug label region, this label will be reported in debug " +"messages for any calls following this until [method end_debug_label_region] " +"is called. Debug labels can be stacked." +msgstr "" +"Початок нової області мітки налагодження, ця мітка повідомлятиметься в " +"повідомленнях налагодження для будь-яких наступних викликів, доки не буде " +"викликано [method end_debug_label_region]. Мітки налагодження можна складати " +"в стопку." + msgid "" "Returns [code]true[/code] if OpenXR is initialized for rendering with an XR " "viewport." @@ -82764,6 +105610,20 @@ msgstr "" "Повертаємо [code]true[/code], якщо OpenXR ініціюється для рендерингу з портом " "XR." +msgid "" +"Marks the end of a debug label region. Removes the latest debug label region " +"added by calling [method begin_debug_label_region]." +msgstr "" +"Позначає кінець області мітки налагодження. Видаляє останню область мітки " +"налагодження, додану за допомогою виклику [method begin_debug_label_region]." + +msgid "" +"Returns the [RID] corresponding to an [code]Action[/code] of a matching name, " +"optionally limited to a specified action set." +msgstr "" +"Повертає [RID], що відповідає [code]Action[/code] із відповідним ім’ям, " +"необов’язково обмеженим вказаним набором дій." + msgid "" "Returns an error string for the given [url=https://registry.khronos.org/" "OpenXR/specs/1.0/man/html/XrResult.html]XrResult[/url]." @@ -82813,6 +105673,29 @@ msgstr "" msgid "Returns the predicted display timing for the current frame." msgstr "Повертає передбачуваний час відображення для поточного каркасу." +msgid "" +"Returns a pointer to the render state's [code]XrCompositionLayerProjection[/" +"code] struct.\n" +"[b]Note:[/b] This method should only be called from the rendering thread." +msgstr "" +"Повертає вказівник на структуру [code]XrCompositionLayerProjection[/code] " +"стану візуалізації.\n" +"[b]Примітка: [/b] Цей метод слід викликати лише з потоку візуалізації." + +msgid "" +"Returns the far boundary value of the camera frustum.\n" +"[b]Note:[/b] This is only accessible in the render thread." +msgstr "" +"Повертає дальнє граничне значення косої точки камери.\n" +"[b]Примітка:[/b] Це доступно лише в потоці візуалізації." + +msgid "" +"Returns the near boundary value of the camera frustum.\n" +"[b]Note:[/b] This is only accessible in the render thread." +msgstr "" +"Повертає ближнє граничне значення косої точки камери.\n" +"[b]Примітка:[/b] Це доступно лише в потоці візуалізації." + msgid "" "Returns the OpenXR session, which is an [url=https://registry.khronos.org/" "OpenXR/specs/1.0/man/html/XrSession.html]XrSession[/url] cast to an integer." @@ -82820,6 +105703,9 @@ msgstr "" "Повертає сеанс OpenXR, який є [url=https://registry.khronos.org/OpenXR/" "specs/1.0/man/html/XrSession.html]XrSession[/url] відкидається до цілого." +msgid "Returns an array of supported swapchain formats." +msgstr "Повертає масив підтримуваних форматів свопчейн." + msgid "Returns the name of the specified swapchain format." msgstr "Повертає ім'я вказаного формату swapchain." @@ -82830,6 +105716,17 @@ msgstr "" "Повертає id системи, яка є [url=https://registry.khronos.org/OpenXR/specs/1.0/" "man/html/XrSystemId.html]XrSystemId[/url], литий до цілого." +msgid "" +"Inserts a debug label, this label is reported in any debug message resulting " +"from the OpenXR calls that follows, until any of [method " +"begin_debug_label_region], [method end_debug_label_region], or [method " +"insert_debug_label] is called." +msgstr "" +"Вставляє мітку налагодження, ця мітка повідомляється в будь-якому " +"повідомленні про налагодження, отриманому в результаті наступних викликів " +"OpenXR, доки не буде викликано [method begin_debug_label_region], [method " +"end_debug_label_region] або [method insert_debug_label]." + msgid "" "Returns [enum OpenXRAPIExtension.OpenXRAlphaBlendModeSupport] denoting if " "[constant XRInterface.XR_ENV_BLEND_MODE_ALPHA_BLEND] is really supported, " @@ -82854,9 +105751,37 @@ msgstr "" msgid "Returns [code]true[/code] if OpenXR is enabled." msgstr "[code]true[/code], якщо OpenXR ввімкнено." +msgid "Acquires the image of the provided swapchain." +msgstr "Отримує образ наданого свопчейну." + +msgid "" +"Returns a pointer to a new swapchain created using the provided parameters." +msgstr "" +"Повертає вказівник на новий свопчейн, створений за допомогою наданих " +"параметрів." + +msgid "Destroys the provided swapchain and frees it from memory." +msgstr "Знищує наданий свопчейн і звільняє його з пам’яті." + +msgid "Returns the RID of the provided swapchain's image." +msgstr "Повертає RID наданого образу ланцюжка обміну." + +msgid "Returns the [code]XrSwapchain[/code] handle of the provided swapchain." +msgstr "Повертає [code]XrSwapchain[/code] дескриптор наданого свопчейну." + +msgid "Releases the image of the provided swapchain." +msgstr "Випускає образ наданого свопчейну." + msgid "Registers the given extension as a composition layer provider." msgstr "Зареєструвати задане розширення як виробник шарів композиції." +msgid "" +"Registers the given extension as a provider of additional data structures to " +"projections views." +msgstr "" +"Реєструє вказане розширення як постачальник додаткових структур даних для " +"представлень проекцій." + msgid "" "If set to [code]true[/code], an OpenXR extension is loaded which is capable " "of emulating the [constant XRInterface.XR_ENV_BLEND_MODE_ALPHA_BLEND] blend " @@ -82865,6 +105790,32 @@ msgstr "" "Якщо встановити до [code]true[/code], розширення OpenXR можна завантажити, що " "здатний емульсії [constant XRInterface.XR_ENV_BLEND_MODE_ALPHA_BLEND]." +msgid "" +"Set the object name of an OpenXR object, used for debug output. [param " +"object_type] must be a valid OpenXR [code]XrObjectType[/code] enum and [param " +"object_handle] must be a valid OpenXR object handle." +msgstr "" +"Установіть назву об’єкта OpenXR, який використовується для виводу " +"налагодження. [param object_type] має бути дійсним переліком " +"[code]XrObjectType[/code] OpenXR, а [param object_handle] має бути дійсним " +"дескриптором об’єкта OpenXR." + +msgid "" +"Sets the render region to [param render_region], overriding the normal render " +"target's rect." +msgstr "" +"Встановлює область візуалізації на [param render_region], замінюючи " +"прямокутник звичайної мети візуалізації." + +msgid "Sets the render target of the velocity depth texture." +msgstr "Встановлює ціль візуалізації текстури глибини швидкості." + +msgid "Sets the target size of the velocity and velocity depth textures." +msgstr "Встановлює цільовий розмір текстури швидкості та глибини швидкості." + +msgid "Sets the render target of the velocity texture." +msgstr "Встановлює ціль візуалізації текстури швидкості." + msgid "" "Creates a [Transform3D] from an [url=https://registry.khronos.org/OpenXR/" "specs/1.0/man/html/XrPosef.html]XrPosef[/url]." @@ -82875,6 +105826,13 @@ msgstr "" msgid "Unregisters the given extension as a composition layer provider." msgstr "Незареєструвати дане розширення як постачальника шарів композиції." +msgid "" +"Unregisters the given extension as a provider of additional data structures " +"to projections views." +msgstr "" +"Скасовує реєстрацію вказаного розширення як постачальника додаткових структур " +"даних для представлень проекцій." + msgid "" "Returns [code]true[/code] if the provided [url=https://registry.khronos.org/" "OpenXR/specs/1.0/man/html/XrResult.html]XrResult[/url] (cast to an integer) " @@ -82905,6 +105863,60 @@ msgid "" "Means that [constant XRInterface.XR_ENV_BLEND_MODE_ALPHA_BLEND] is emulated." msgstr "Засоби, які XRInterface.XR_ENV_BLEND_MODE_ALPHA_BLEND] ізольовано." +msgid "Binding modifier base class." +msgstr "Базовий клас модифікатора прив’язки." + +msgid "" +"Binding modifier base class. Subclasses implement various modifiers that " +"alter how an OpenXR runtime processes inputs." +msgstr "" +"Базовий клас модифікатора прив’язки. Підкласи реалізують різні модифікатори, " +"які змінюють те, як середовище виконання OpenXR обробляє вхідні дані." + +msgid "" +"Return the description of this class that is used for the title bar of the " +"binding modifier editor." +msgstr "" +"Повертає опис цього класу, який використовується для рядка заголовка " +"редактора модифікаторів зв’язування." + +msgid "" +"Returns the data that is sent to OpenXR when submitting the suggested " +"interacting bindings this modifier is a part of.\n" +"[b]Note:[/b] This must be data compatible with a " +"[code]XrBindingModificationBaseHeaderKHR[/code] structure." +msgstr "" +"Повертає дані, які надсилаються в OpenXR під час надсилання запропонованих " +"взаємодіючих прив’язок, частиною яких є цей модифікатор. \n" +"[b]Note:[/b] This must be data compatible with a " +"[code]XrBindingModificationBaseHeaderKHR[/code] structure." + +msgid "Binding modifier editor." +msgstr "Редактор модифікаторів прив'язки." + +msgid "" +"This is the default binding modifier editor used in the OpenXR action map." +msgstr "" +"Це стандартний редактор модифікаторів зв’язування, який використовується в " +"карті дій OpenXR." + +msgid "Returns the [OpenXRBindingModifier] currently being edited." +msgstr "Повертає [OpenXRBindingModifier], який зараз редагується." + +msgid "" +"Setup this editor for the provided [param action_map] and [param " +"binding_modifier]." +msgstr "" +"Налаштуйте цей редактор для наданих [param action_map] і [param " +"binding_modifier]." + +msgid "" +"Signal emitted when the user presses the delete binding modifier button for " +"this modifier." +msgstr "" +"Сигнал, який видається, коли користувач натискає кнопку модифікатора " +"прив’язки видалення для цього модифікатора." + msgid "The parent class of all OpenXR composition layer nodes." msgstr "Паризький клас всіх шарових вузлів OpenXR." @@ -82925,6 +105937,21 @@ msgstr "" "сітчаста сіточка може бути створена за допомогою [Viewporture], для того, щоб " "емульувати шар композиції." +msgid "" +"Returns a [JavaObject] representing an [code]android.view.Surface[/code] if " +"[member use_android_surface] is enabled and OpenXR has created the surface. " +"Otherwise, this will return [code]null[/code].\n" +"[b]Note:[/b] The surface can only be created during an active OpenXR session. " +"So, if [member use_android_surface] is enabled outside of an OpenXR session, " +"it won't be created until a new session fully starts." +msgstr "" +"Повертає [JavaObject], що представляє [code]android.view.Surface[/code], якщо " +"ввімкнено [member use_android_surface] і OpenXR створив поверхню. В іншому " +"випадку це поверне [code]null[/code]. \n" +"[b]Примітка.[/b] Поверхню можна створити лише під час активного сеансу " +"OpenXR. Отже, якщо [member use_android_surface] увімкнено поза сеансом " +"OpenXR, він не буде створений, доки повністю не розпочнеться новий сеанс." + msgid "" "Returns UV coordinates where the given ray intersects with the composition " "layer. [param origin] and [param direction] must be in global space.\n" @@ -82935,6 +105962,16 @@ msgstr "" "просторі.\n" "Повертаємо [code]Vector2(-1.0, -1.0)[/code], якщо промінь не перетинає." +msgid "" +"Returns [code]true[/code] if the OpenXR runtime natively supports this " +"composition layer type.\n" +"[b]Note:[/b] This will only return an accurate result after the OpenXR " +"session has started." +msgstr "" +"Повертає [code]true[/code], якщо середовище виконання OpenXR оригінально " +"підтримує цей тип шару композиції.\n" +"[b]Примітка:[/b] це поверне точний результат лише після початку сеансу OpenXR." + msgid "" "Enables the blending the layer using its alpha channel.\n" "Can be combined with [member Viewport.transparent_bg] to give the layer a " @@ -82944,6 +105981,13 @@ msgstr "" "Може поєднуватися з [пам'ятним переглядом.прозорий_bg], щоб надати шар " "прозорим фоном." +msgid "" +"The size of the Android surface to create if [member use_android_surface] is " +"enabled." +msgstr "" +"Розмір поверхні Android для створення, якщо ввімкнено [member " +"use_android_surface]." + msgid "" "Enables a technique called \"hole punching\", which allows putting the " "composition layer behind the main projection layer (i.e. setting [member " @@ -82973,6 +106017,21 @@ msgstr "" "номерами.\n" "[b]Примітка:[/b] Це не має ефекту, якщо використовується сітчаста сіточка." +msgid "" +"If enabled, an Android surface will be created (with the dimensions from " +"[member android_surface_size]) which will provide the 2D content for the " +"composition layer, rather than using [member layer_viewport].\n" +"See [method get_android_surface] for information about how to get the surface " +"so that your application can draw to it.\n" +"[b]Note:[/b] This will only work in Android builds." +msgstr "" +"Якщо ввімкнено, буде створено поверхню Android (з розмірами від [member " +"android_surface_size]), яка забезпечить 2D-вміст для шару композиції, а не за " +"допомогою [member layer_viewport]. \n" +"Перегляньте [method get_android_surface], щоб отримати інформацію про те, як " +"отримати поверхню, щоб ваша програма могла її малювати. \n" +"[b]Примітка.[/b] Це працюватиме лише у збірках Android." + msgid "" "An OpenXR composition layer that is rendered as an internal slice of a " "cylinder." @@ -83041,6 +106100,72 @@ msgstr "На квадроциклі OpenXR, що дозволяє надати [ msgid "The dimensions of the quad." msgstr "Розміри квадроцикла." +msgid "The DPad binding modifier converts an axis input to a dpad output." +msgstr "" +"Модифікатор прив’язки DPad перетворює вхідні дані осі на вихідні дані dpad." + +msgid "" +"The DPad binding modifier converts an axis input to a dpad output, emulating " +"a DPad. New input paths for each dpad direction will be added to the " +"interaction profile. When bound to actions the DPad emulation will be " +"activated. You should [b]not[/b] combine dpad inputs with normal inputs in " +"the same action set for the same control, this will result in an error being " +"returned when suggested bindings are submitted to OpenXR.\n" +"See [url=https://registry.khronos.org/OpenXR/specs/1.1/html/xrspec." +"html#XR_EXT_dpad_binding]XR_EXT_dpad_binding[/url] for in-depth details.\n" +"[b]Note:[/b] If the DPad binding modifier extension is enabled, all dpad " +"binding paths will be available in the action map. Adding the modifier to an " +"interaction profile allows you to further customize the behavior." +msgstr "" +"Модифікатор прив’язки DPad перетворює вхідні дані осі на вихід dpad, емулюючи " +"DPad. До профілю взаємодії буде додано нові шляхи введення для кожного " +"напрямку dpad. При прив’язці до дій буде активовано емуляцію DPad. Вам [b]не " +"слід[/b] поєднувати введення dpad зі звичайними введеннями в тому самому " +"наборі дій для того самого елемента керування, це призведе до повернення " +"помилки, коли запропоновані прив’язки надсилаються до OpenXR. \n" +"Див. [url=https://registry.khronos.org/OpenXR/specs/1.1/html/xrspec." +"html#XR_EXT_dpad_binding]XR_EXT_dpad_binding[/url], щоб дізнатися більше. \n" +"[b]Примітка.[/b] Якщо розширення модифікатора зв’язування DPad увімкнено, усі " +"шляхи зв’язування dpad будуть доступні на карті дій. Додавання модифікатора " +"до профілю взаємодії дозволяє додатково налаштувати поведінку." + +msgid "Action set for which this dpad binding modifier is active." +msgstr "Набір дій, для якого активний цей модифікатор прив’язки dpad." + +msgid "" +"Center region in which our center position of our dpad return [code]true[/" +"code]." +msgstr "" +"Центральна область, у якій наша центральна позиція dpad повертає [code]true[/" +"code]." + +msgid "Input path for this dpad binding modifier." +msgstr "Вхідний шлях для цього модифікатора прив’язки dpad." + +msgid "" +"If [code]false[/code], when the joystick enters a new dpad zone this becomes " +"true.\n" +"If [code]true[/code], when the joystick remains in active dpad zone, this " +"remains true even if we overlap with another zone." +msgstr "" +"Якщо [code]false[/code], коли джойстик входить у нову зону dpad, це стає " +"true. \n" +"Якщо [code]true[/code], коли джойстик залишається в активній зоні dpad, це " +"залишається істинним, навіть якщо ми накладаємося на іншу зону." + +msgid "" +"When our input value is equal or larger than this value, our dpad in that " +"direction becomes true. It stays true until it falls under the [member " +"threshold_released] value." +msgstr "" +"Коли наше вхідне значення дорівнює або перевищує це значення, наш dpad у " +"цьому напрямку стає істинним. Він залишається істинним, доки не досягне " +"значення [member threshold_released]." + +msgid "" +"The angle of each wedge that identifies the 4 directions of the emulated dpad." +msgstr "Кут кожного клина, який визначає 4 напрямки емульованої dpad." + msgid "Allows clients to implement OpenXR extensions with GDExtension." msgstr "Дозволяє клієнтам здійснювати розширення OpenXR з GDExtension." @@ -83152,6 +106277,18 @@ msgstr "Викликається прямо перед знищеним екзе msgid "Called right after the main swapchains are (re)created." msgstr "Викликається прямо після головного клаптяви (re)created." +msgid "" +"Called right after the given viewport is rendered.\n" +"[b]Note:[/b] The draw commands might only be queued at this point, not " +"executed." +msgstr "" +"Викликається одразу після відтворення даного вікна перегляду.\n" +"[b]Примітка: [/b] Команди малювання можуть бути лише в черзі на цьому етапі, " +"а не виконуватися." + +msgid "Called right before the given viewport is rendered." +msgstr "Викликається безпосередньо перед рендерингом даного вікна перегляду." + msgid "Called right before the XR viewports begin their rendering step." msgstr "Зателефонуйте прямо перед переглядом XR починаємо свій крок рендерингу." @@ -83236,18 +106373,40 @@ msgstr "" "[OpenXRCompositionLayer].\n" "[param шар] є тостером [code]XrCompositionLayerBaseHeader[/code] struct." +msgid "" +"Adds additional data structures to Android surface swapchains created by " +"[OpenXRCompositionLayer].\n" +"[param property_values] contains the values of the properties returned by " +"[method _get_viewport_composition_layer_extension_properties]." +msgstr "" +"Додає додаткові структури даних до поверхневих своп-ланцюжків Android, " +"створених [OpenXRCompositionLayer]. \n" +"[param property_values] містить значення властивостей, які повертає [method " +"_get_viewport_composition_layer_extension_properties]." + msgid "Adds additional data structures when each hand tracker is created." msgstr "Додавання додаткових структур даних при створенні кожного трекера." msgid "Adds additional data structures when the OpenXR instance is created." msgstr "Додавання додаткових структур даних при створенні екземпляра OpenXR." +msgid "" +"Adds additional data structures to the projection view of the given [param " +"view_index]." +msgstr "" +"Додає додаткові структури даних до перегляду проекції заданого [param " +"view_index]." + msgid "Adds additional data structures when the OpenXR session is created." msgstr "Додавання додаткових структур даних при створенні сеансу OpenXR." msgid "Adds additional data structures when creating OpenXR swapchains." msgstr "Додавання додаткових структур даних при створенні OpenXR ковпачок." +msgid "Adds additional data structures when querying OpenXR system abilities." +msgstr "" +"Додає додаткові структури даних під час запиту можливостей системи OpenXR." + msgid "" "Adds additional data structures to composition layers created by " "[OpenXRCompositionLayer].\n" @@ -83374,6 +106533,42 @@ msgstr "" msgid "Maximum supported bone update mode." msgstr "Максимальний режим оновлення кісточки." +msgid "OpenXR Haptic feedback base class." +msgstr "Базовий клас відгуку OpenXR Haptic." + +msgid "This is a base class for haptic feedback resources." +msgstr "Це базовий клас для ресурсів тактильного зворотного зв’язку." + +msgid "Vibration haptic feedback." +msgstr "Вібраційний тактильний зворотний зв'язок." + +msgid "" +"This haptic feedback resource makes it possible to define a vibration based " +"haptic feedback pulse that can be triggered through actions in the OpenXR " +"action map." +msgstr "" +"Цей ресурс тактильного зворотного зв’язку дає змогу визначити імпульс " +"тактильного зворотного зв’язку на основі вібрації, який можна запустити за " +"допомогою дій у карті дій OpenXR." + +msgid "" +"The amplitude of the pulse between [code]0.0[/code] and [code]1.0[/code]." +msgstr "Амплітуда імпульсу між [code]0,0[/code] і [code]1,0[/code]." + +msgid "" +"The duration of the pulse in nanoseconds. Use [code]-1[/code] for a minimum " +"duration pulse for the current XR runtime." +msgstr "" +"Тривалість імпульсу в наносекундах. Використовуйте [код]-1[/код] для імпульсу " +"мінімальної тривалості для поточного часу виконання XR." + +msgid "" +"The frequency of the pulse in Hz. [code]0.0[/code] will let the XR runtime " +"chose an optimal frequency for the device used." +msgstr "" +"Частота імпульсу в Гц. [code]0.0[/code] дозволить середовищу виконання XR " +"вибрати оптимальну частоту для використовуваного пристрою." + msgid "Suggested bindings object for OpenXR." msgstr "Підібрані обов'язки об'єкта OpenXR." @@ -83397,12 +106592,52 @@ msgstr "Отримати обов'язки в цьому індексі." msgid "Get the number of bindings in this interaction profile." msgstr "Отримати кількість посилань в цьому профілі взаємодії." +msgid "Get the [OpenXRBindingModifier] at this index." +msgstr "Отримайте [OpenXRBindingModifier] за цим індексом." + +msgid "Get the number of binding modifiers in this interaction profile." +msgstr "Отримайте кількість модифікаторів прив’язки в цьому профілі взаємодії." + +msgid "Binding modifiers for this interaction profile." +msgstr "Модифікатори прив’язки для цього профілю взаємодії." + msgid "Action bindings for this interaction profile." msgstr "Включення дій для даного профілю взаємодії." msgid "The interaction profile path identifying the XR device." msgstr "Шлях профілю взаємодії виявлення пристрою XR." +msgid "Default OpenXR interaction profile editor." +msgstr "Редактор профілю взаємодії OpenXR за умовчанням." + +msgid "" +"This is the default OpenXR interaction profile editor that provides a generic " +"interface for editing any interaction profile for which no custom editor has " +"been defined." +msgstr "" +"Це редактор профілю взаємодії OpenXR за замовчуванням, який надає загальний " +"інтерфейс для редагування будь-якого профілю взаємодії, для якого не " +"визначено власний редактор." + +msgid "Base class for editing interaction profiles." +msgstr "Базовий клас для редагування профілів взаємодії." + +msgid "" +"This is a base class for interaction profile editors used by the OpenXR " +"action map editor. It can be used to create bespoke editors for specific " +"interaction profiles." +msgstr "" +"Це базовий клас для редакторів профілів взаємодії, які використовуються " +"редактором карти дій OpenXR. Його можна використовувати для створення " +"спеціальних редакторів для певних профілів взаємодії." + +msgid "" +"Setup this editor for the provided [param action_map] and [param " +"interaction_profile]." +msgstr "" +"Налаштуйте цей редактор для наданих [param action_map] і [param " +"interakcijи_профілю]." + msgid "Meta class registering supported devices in OpenXR." msgstr "Регулятори класу Meta в OpenXR." @@ -83939,9 +107174,29 @@ msgstr "" msgid "Defines a binding between an [OpenXRAction] and an XR input or output." msgstr "Визначте зв'язок між [OpenXRAction] і входом XR або виведенням." +msgid "" +"This binding resource binds an [OpenXRAction] to an input or output. As most " +"controllers have left hand and right versions that are handled by the same " +"interaction profile we can specify multiple bindings. For instance an action " +"\"Fire\" could be bound to both \"/user/hand/left/input/trigger\" and \"/user/" +"hand/right/input/trigger\". This would require two binding entries." +msgstr "" +"Цей ресурс прив’язки прив’язує [OpenXRAction] до введення або виведення. " +"Оскільки більшість контролерів мають ліву та праву версії, які обробляються " +"одним профілем взаємодії, ми можемо вказати кілька прив’язок. Наприклад, дію " +"«Вогонь» можна прив’язати як до «/user/hand/left/input/trigger», так і до «/" +"user/hand/right/input/trigger». Для цього знадобляться два обов’язкових " +"записи." + +msgid "Binding is for a single path." +msgstr "Прив’язка призначена для одного шляху." + msgid "Add an input/output path to this binding." msgstr "Додати шлях введення/виведення до цієї прив'язки." +msgid "Get the number of binding modifiers for this binding." +msgstr "Отримайте кількість модифікаторів зв’язування для цього зв’язування." + msgid "Get the number of input/output paths in this binding." msgstr "Отримати кількість вхідних / вихідних шляхів в цій пов'язці." @@ -83954,9 +107209,48 @@ msgstr "" msgid "Removes this input/output path from this binding." msgstr "Видаліть цей вхід / вихідний шлях з цієї прив'язки." +msgid "[OpenXRAction] that is bound to [member binding_path]." +msgstr "[OpenXRAction], який прив’язаний до [member binding_path]." + +msgid "Binding modifiers for this binding." +msgstr "Модифікатори зв’язування для цього зв’язування." + +msgid "" +"Binding path that defines the input or output bound to [member action].\n" +"[b]Note:[/b] Binding paths are suggestions, an XR runtime may choose to bind " +"the action to a different input or output emulating this input or output." +msgstr "" +"Шлях прив’язки, який визначає введення або вихід, прив’язаний до [дія " +"члена]. \n" +"[b]Примітка: [/b] Шляхи прив’язки є пропозиціями, середовище виконання XR " +"може вибрати прив’язку дії до іншого введення або виведення, емулюючи цей " +"вхід або вихід." + +msgid "Use [member binding_path] instead." +msgstr "Натомість використовуйте [member binding_path]." + msgid "Paths that define the inputs or outputs bound on the device." msgstr "Шляхи, які визначають вхідні або вихідні, що знаходяться на пристрої." +msgid "Binding modifier that applies directly on an interaction profile." +msgstr "" +"Модифікатор прив’язки, який застосовується безпосередньо до профілю взаємодії." + +msgid "Draws a stereo correct visibility mask." +msgstr "Малює правильну стереомаску видимості." + +msgid "" +"The visibility mask allows us to black out the part of the render result that " +"is invisible due to lens distortion.\n" +"As this is rendered first, it prevents fragments with expensive lighting " +"calculations to be processed as they are discarded through z-checking." +msgstr "" +"Маска видимості дозволяє затемнити частину результату візуалізації, яка є " +"невидимою через спотворення лінзи. \n" +"Оскільки це відображається спочатку, це запобігає обробці фрагментів із " +"дорогими обчисленнями освітлення, оскільки вони відкидаються через z-" +"перевірку." + msgid "An optimized translation, used by default for CSV Translations." msgstr "" "Оптимізований переклад, який використовується за замовчуванням для перекладів " @@ -83970,6 +107264,16 @@ msgstr "" "CSV. Використовуйте в режимі реального часу компресовані переклади, що " "призводить до дуже невеликих словників." +msgid "" +"Generates and sets an optimized translation from the given [Translation] " +"resource.\n" +"[b]Note:[/b] This method is intended to be used in the editor. It does " +"nothing when called from an exported project." +msgstr "" +"Створює та встановлює оптимізований переклад із заданого ресурсу [Переклад].\n" +"[b]Примітка: [/b] Цей метод призначений для використання в редакторі. Він " +"нічого не робить під час виклику з експортованого проекту." + msgid "A button that brings up a dropdown with selectable options when pressed." msgstr "Кнопка, яка виводить випадання з вибірковими опціями при натисканні." @@ -84241,6 +107545,17 @@ msgstr "" "Відображення модального діалогового вікна за допомогою реалізації хост-" "платформи. Виконання двигуна заблоковано до закриття діалогу." +msgid "" +"Shuts down the system MIDI driver. Godot will no longer receive " +"[InputEventMIDI]. See also [method open_midi_inputs] and [method " +"get_connected_midi_inputs].\n" +"[b]Note:[/b] This method is implemented on Linux, macOS, Windows, and Web." +msgstr "" +"Закриває системний драйвер MIDI. Godot більше не отримуватиме " +"[InputEventMIDI]. Дивіться також [метод open_midi_inputs] і [метод " +"get_connected_midi_inputs]. \n" +"[b]Примітка.[/b] Цей метод реалізовано в Linux, macOS, Windows і Web." + msgid "" "Crashes the engine (or the editor if called within a [code]@tool[/code] " "script). See also [method kill].\n" @@ -84275,6 +107590,61 @@ msgstr "" "Дивись [методи], якщо ви хочете запустити інший процес.\n" "[b]Примітка:[/b] Цей метод реалізується на Android, Linux, macOS та Windows." +msgid "" +"Creates a new process that runs independently of Godot. It will not terminate " +"when Godot terminates. The path specified in [param path] must exist and be " +"an executable file or macOS [code].app[/code] bundle. The path is resolved " +"based on the current platform. The [param arguments] are used in the given " +"order and separated by a space.\n" +"On Windows, if [param open_console] is [code]true[/code] and the process is a " +"console app, a new terminal window will be opened.\n" +"If the process is successfully created, this method returns its process ID, " +"which you can use to monitor the process (and potentially terminate it with " +"[method kill]). Otherwise, this method returns [code]-1[/code].\n" +"[b]Example:[/b] Run another instance of the project:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var pid = OS.create_process(OS.get_executable_path(), [])\n" +"[/gdscript]\n" +"[csharp]\n" +"var pid = OS.CreateProcess(OS.GetExecutablePath(), []);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"See [method execute] if you wish to run an external command and retrieve the " +"results.\n" +"[b]Note:[/b] This method is implemented on Android, Linux, macOS, and " +"Windows.\n" +"[b]Note:[/b] On macOS, sandboxed applications are limited to run only " +"embedded helper executables, specified during export or system .app bundle, " +"system .app bundles will ignore arguments." +msgstr "" +"Створює новий процес, який виконується незалежно від Годо. Він не " +"припиниться, коли закінчиться Годо. Шлях, указаний у [param path], має " +"існувати та бути виконуваним файлом або пакетом [code].app[/code] macOS. Шлях " +"вирішується на основі поточної платформи. [параметри аргументів] " +"використовуються у вказаному порядку та розділені пробілом. \n" +"У Windows, якщо [param open_console] має значення [code]true[/code] і процес " +"є консольною програмою, буде відкрито нове вікно терміналу. \n" +"Якщо процес успішно створено, цей метод повертає його ідентифікатор процесу, " +"який ви можете використовувати для моніторингу процесу (і потенційно " +"завершити його за допомогою [method kill]). В іншому випадку цей метод " +"повертає [код]-1[/код]. \n" +"[b]Приклад:[/b] Запустіть інший екземпляр проекту: \n" +"[codeblocks] \n" +"[gdscript] \n" +"var pid = OS.create_process(OS.get_executable_path(), []) \n" +"[/gdscript] \n" +"[csharp] \n" +"var pid = OS.CreateProcess(OS.GetExecutablePath(), []); \n" +"[/csharp] \n" +"[/codeblocks] \n" +"Перегляньте [method execute], якщо ви бажаєте виконати зовнішню команду та " +"отримати результати. \n" +"[b]Примітка.[/b] Цей метод реалізовано на Android, Linux, macOS і Windows. \n" +"[b]Примітка.[/b] У macOS програми ізольованого програмного середовища можуть " +"запускати лише вбудовані допоміжні виконувані файли, указані під час експорту " +"або системного пакета .app, системні пакети .app ігноруватимуть аргументи." + msgid "" "Delays execution of the current thread by [param msec] milliseconds. [param " "msec] must be greater than or equal to [code]0[/code]. Otherwise, [method " @@ -84341,6 +107711,182 @@ msgstr "" "заморожить проекту, якщо він наразі працює (звідси про проект – самостійний " "процес дитини)." +msgid "" +"Executes the given process in a [i]blocking[/i] way. The file specified in " +"[param path] must exist and be executable. The system path resolution will be " +"used. The [param arguments] are used in the given order, separated by spaces, " +"and wrapped in quotes.\n" +"If an [param output] array is provided, the complete shell output of the " +"process is appended to [param output] as a single [String] element. If [param " +"read_stderr] is [code]true[/code], the output to the standard error stream is " +"also appended to the array.\n" +"On Windows, if [param open_console] is [code]true[/code] and the process is a " +"console app, a new terminal window is opened.\n" +"This method returns the exit code of the command, or [code]-1[/code] if the " +"process fails to execute.\n" +"[b]Note:[/b] The main thread will be blocked until the executed command " +"terminates. Use [Thread] to create a separate thread that will not block the " +"main thread, or use [method create_process] to create a completely " +"independent process.\n" +"For example, to retrieve a list of the working directory's contents:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var output = []\n" +"var exit_code = OS.execute(\"ls\", [\"-l\", \"/tmp\"], output)\n" +"[/gdscript]\n" +"[csharp]\n" +"Godot.Collections.Array output = [];\n" +"int exitCode = OS.Execute(\"ls\", [\"-l\", \"/tmp\"], output);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"If you wish to access a shell built-in or execute a composite command, a " +"platform-specific shell can be invoked. For example:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var output = []\n" +"OS.execute(\"CMD.exe\", [\"/C\", \"cd %TEMP% && dir\"], output)\n" +"[/gdscript]\n" +"[csharp]\n" +"Godot.Collections.Array output = [];\n" +"OS.Execute(\"CMD.exe\", [\"/C\", \"cd %TEMP% && dir\"], output);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] This method is implemented on Android, Linux, macOS, and " +"Windows.\n" +"[b]Note:[/b] To execute a Windows command interpreter built-in command, " +"specify [code]cmd.exe[/code] in [param path], [code]/c[/code] as the first " +"argument, and the desired command as the second argument.\n" +"[b]Note:[/b] To execute a PowerShell built-in command, specify " +"[code]powershell.exe[/code] in [param path], [code]-Command[/code] as the " +"first argument, and the desired command as the second argument.\n" +"[b]Note:[/b] To execute a Unix shell built-in command, specify shell " +"executable name in [param path], [code]-c[/code] as the first argument, and " +"the desired command as the second argument.\n" +"[b]Note:[/b] On macOS, sandboxed applications are limited to run only " +"embedded helper executables, specified during export.\n" +"[b]Note:[/b] On Android, system commands such as [code]dumpsys[/code] can " +"only be run on a rooted device." +msgstr "" +"Виконує заданий процес [i]блокуючим[/i] способом. Файл, указаний у [param " +"path], має існувати та бути виконуваним. Буде використано роздільну здатність " +"системного шляху. [Параметри аргументів] використовуються в заданому порядку, " +"розділені пробілами та взяті в лапки. \n" +"Якщо надається масив [param output], повний вихід оболонки процесу додається " +"до [param output] як один елемент [String]. Якщо [param read_stderr] має " +"значення [code]true[/code], вихід стандартного потоку помилок також додається " +"до масиву. \n" +"У Windows, якщо [param open_console] має значення [code]true[/code] і процес " +"є консольною програмою, відкривається нове вікно терміналу. \n" +"Цей метод повертає код виходу команди або [code]-1[/code], якщо процес не " +"виконується. \n" +"[b]Примітка: [/b] Основний потік буде заблоковано до завершення виконання " +"команди. Використовуйте [Thread], щоб створити окремий потік, який не " +"блокуватиме основний потік, або використовуйте [method create_process], щоб " +"створити повністю незалежний процес. \n" +"Наприклад, щоб отримати список вмісту робочого каталогу: \n" +"[codeblocks] \n" +"[gdscript] \n" +"var exit = [] \n" +"var exit_code = OS.execute(\"l\", [\"-l\", \"/tmp\"], exit) \n" +"[/gdscript] \n" +"[csharp] \n" +"Godot.Collections.Array вихід = []; \n" +"int exitCode = OS.Execute(\"ls\", [\"-l\", \"/tmp\"], exit); \n" +"[/csharp] \n" +"[/codeblocks] \n" +"Якщо ви хочете отримати доступ до вбудованої оболонки або виконати складену " +"команду, можна викликати спеціальну оболонку для платформи. Наприклад: \n" +"[codeblocks] \n" +"[gdscript] \n" +"var exit = [] \n" +"OS.execute(\"CMD.exe\", [\"/C\", \"cd %TEMP% && dir\"], exit) \n" +"[/gdscript] \n" +"[csharp] \n" +"Godot.Collections.Array exit = []; \n" +"OS.Execute(\"CMD.exe\", [\"/C\", \"cd %TEMP% && dir\"], exit); \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка.[/b] Цей метод реалізовано на Android, Linux, macOS і Windows. \n" +"[b]Примітка:[/b] Щоб виконати команду вбудованого інтерпретатора команд " +"Windows, укажіть [code]cmd.exe[/code] у [param path], [code]/c[/code] як " +"перший аргумент, а потрібну команду як другий аргумент. \n" +"[b]Примітка:[/b] Щоб виконати вбудовану команду PowerShell, укажіть " +"[code]powershell.exe[/code] у [param path], [code]-Command[/code] як перший " +"аргумент, а потрібну команду як другий аргумент. \n" +"[b]Примітка:[/b] Щоб виконати вбудовану команду оболонки Unix, укажіть назву " +"виконуваного файлу оболонки в [шлях до параметрів], [код]-c[/код] як перший " +"аргумент, а потрібну команду як другий аргумент. \n" +"[b]Примітка.[/b] У macOS програми ізольованого програмного середовища можуть " +"запускати лише вбудовані допоміжні виконувані файли, указані під час " +"експорту. \n" +"[b]Примітка.[/b] На Android системні команди, такі як [code]dumpsys[/code], " +"можна запускати лише на пристрої з root-доступом." + +msgid "" +"Creates a new process that runs independently of Godot with redirected IO. It " +"will not terminate when Godot terminates. The path specified in [param path] " +"must exist and be an executable file or macOS [code].app[/code] bundle. The " +"path is resolved based on the current platform. The [param arguments] are " +"used in the given order and separated by a space.\n" +"If [param blocking] is [code]false[/code], created pipes work in non-blocking " +"mode, i.e. read and write operations will return immediately. Use [method " +"FileAccess.get_error] to check if the last read/write operation was " +"successful.\n" +"If the process cannot be created, this method returns an empty [Dictionary]. " +"Otherwise, this method returns a [Dictionary] with the following keys:\n" +"- [code]\"stdio\"[/code] - [FileAccess] to access the process stdin and " +"stdout pipes (read/write).\n" +"- [code]\"stderr\"[/code] - [FileAccess] to access the process stderr pipe " +"(read only).\n" +"- [code]\"pid\"[/code] - Process ID as an [int], which you can use to monitor " +"the process (and potentially terminate it with [method kill]).\n" +"[b]Note:[/b] This method is implemented on Android, Linux, macOS, and " +"Windows.\n" +"[b]Note:[/b] To execute a Windows command interpreter built-in command, " +"specify [code]cmd.exe[/code] in [param path], [code]/c[/code] as the first " +"argument, and the desired command as the second argument.\n" +"[b]Note:[/b] To execute a PowerShell built-in command, specify " +"[code]powershell.exe[/code] in [param path], [code]-Command[/code] as the " +"first argument, and the desired command as the second argument.\n" +"[b]Note:[/b] To execute a Unix shell built-in command, specify shell " +"executable name in [param path], [code]-c[/code] as the first argument, and " +"the desired command as the second argument.\n" +"[b]Note:[/b] On macOS, sandboxed applications are limited to run only " +"embedded helper executables, specified during export or system .app bundle, " +"system .app bundles will ignore arguments." +msgstr "" +"Створює новий процес, який виконується незалежно від Годо з перенаправленням " +"вводу-виводу. Він не припиниться, коли закінчиться Годо. Шлях, указаний у " +"[param path], має існувати та бути виконуваним файлом або пакетом [code].app[/" +"code] macOS. Шлях вирішується на основі поточної платформи. [Параметри " +"аргументів] використовуються у вказаному порядку та розділені пробілом. \n" +"Якщо [param blocking] має значення [code]false[/code], створені канали " +"працюють у неблокуючому режимі, тобто операції читання та запису повертаються " +"негайно. Використовуйте [метод FileAccess.get_error], щоб перевірити, чи " +"остання операція читання/запису була успішною. \n" +"Якщо процес не може бути створений, цей метод повертає порожній [Dictionary]. " +"В іншому випадку цей метод повертає [Словник] із такими ключами: \n" +"- [code]\"stdio\"[/code] - [FileAccess] для доступу до каналів stdin і stdout " +"процесу (читання/запис). \n" +"- [код]\"stderr\"[/code] - [FileAccess] для доступу до каналу stderr процесу " +"(тільки читання). \n" +"- [code]\"pid\"[/code] - ID процесу як [int], який ви можете використовувати " +"для моніторингу процесу (і потенційно завершити його за допомогою [method " +"kill]). \n" +"[b]Примітка.[/b] Цей метод реалізовано на Android, Linux, macOS і Windows. \n" +"[b]Примітка:[/b] Щоб виконати команду вбудованого інтерпретатора команд " +"Windows, укажіть [code]cmd.exe[/code] у [param path], [code]/c[/code] як " +"перший аргумент, а потрібну команду як другий аргумент. \n" +"[b]Примітка:[/b] Щоб виконати вбудовану команду PowerShell, укажіть " +"[code]powershell.exe[/code] у [param path], [code]-Command[/code] як перший " +"аргумент, а потрібну команду як другий аргумент. \n" +"[b]Примітка:[/b] Щоб виконати вбудовану команду оболонки Unix, укажіть назву " +"виконуваного файлу оболонки в [шлях до параметрів], [код]-c[/код] як перший " +"аргумент, а потрібну команду як другий аргумент. \n" +"[b]Примітка.[/b] У macOS програми ізольованого програмного середовища можуть " +"запускати лише вбудовані допоміжні виконувані файли, указані під час експорту " +"або системного пакета .app, системні пакети .app ігноруватимуть аргументи." + msgid "" "Finds the keycode for the given string. The returned values are equivalent to " "the [enum Key] constants.\n" @@ -84364,27 +107910,27 @@ msgid "" "[/codeblocks]\n" "See also [method get_keycode_string]." msgstr "" -"Знайдіть код для вказаного рядка. Повернуті значення еквівалентні константам " -"[enum Key].\n" -"[блоки коду]\n" -"[видання]\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"JavaScript licenses API Веб-сайт Go1.13.8 # Друк 4194305 (KEY_ESCAPE)\n" -"Друк(OS.find_keycode_from_string(\"Shift+Tab\")) # Друк 37748738 " -"(KEY_MASK_SHIFT КЛЮЧ_TAB)\n" -"Друк(OS.find_keycode_from_string(\"Unknown\") # Друк 0 (KEY_NONE)\n" -"[/gdscript]\n" -"[csharp]\n" -"GD.Print(OS.FindKeycodeЗ альбомуString(\"C\")); // Друк C (Key.C)\n" -"GD.Print(OS.FindKeycodeЗ альбомуString(\"Escape\")); // Друк втечу (Key." -"Escape)\n" -"GD.Print(OS.FindKeycodeЗ альбомуString(\"Shift+Tab\")); // Друк 37748738 " -"(KeyModifierMask.MaskShift Key.Tab)\n" -"GD.Print(OS.FindKeycodeЗ альбомуString(\"Unknown\")); // Друк None (Key." -"None)\n" -"[/csharp]\n" -"[/codeblocks]\n" -"Дивись також [метод get_keycode_string]." +"Знаходить код ключа для заданого рядка. Повернуті значення еквівалентні " +"константам [enum Key]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"print(OS.find_keycode_from_string(\"C\")) # Виводить 67 (KEY_C) \n" +"print(OS.find_keycode_from_string(\"Escape\")) # Виводить 4194305 " +"(KEY_ESCAPE) \n" +"print(OS.find_keycode_from_string(\"Shift+Tab\")) # Виводить 37748738 " +"(KEY_MASK_SHIFT | KEY_TAB) \n" +"print(OS.find_keycode_from_string(\"Unknown\")) # Виводить 0 (KEY_NONE) \n" +"[/gdscript] \n" +"[csharp] \n" +"GD.Print(OS.FindKeycodeFromString(\"C\")); // Виводить C (Key.C) \n" +"GD.Print(OS.FindKeycodeFromString(\"Escape\")); // Виводить Escape (Key." +"Escape) \n" +"GD.Print(OS.FindKeycodeFromString(\"Shift+Tab\")); // Друкує 37748738 " +"(KeyModifierMask.MaskShift | Key.Tab) \n" +"GD.Print(OS.FindKeycodeFromString(\"Unknown\")); // Не друкує (Key.None) \n" +"[/csharp] \n" +"[/codeblocks] \n" +"Дивіться також [метод get_keycode_string]." msgid "" "Returns the [i]global[/i] cache data directory according to the operating " @@ -84407,6 +107953,101 @@ msgstr "" "Не плутати з [методом get_user_data_dir], який повертає [i]специфічний для " "проекту[/i] шлях до даних користувача." +msgid "" +"Returns the command-line arguments passed to the engine.\n" +"Command-line arguments can be written in any form, including both [code]--key " +"value[/code] and [code]--key=value[/code] forms so they can be properly " +"parsed, as long as custom command-line arguments do not conflict with engine " +"arguments.\n" +"You can also incorporate environment variables using the [method " +"get_environment] method.\n" +"You can set [member ProjectSettings.editor/run/main_run_args] to define " +"command-line arguments to be passed by the editor when running the project.\n" +"[b]Example:[/b] Parse command-line arguments into a [Dictionary] using the " +"[code]--key=value[/code] form for arguments:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var arguments = {}\n" +"for argument in OS.get_cmdline_args():\n" +" if argument.contains(\"=\"):\n" +" var key_value = argument.split(\"=\")\n" +" arguments[key_value[0].trim_prefix(\"--\")] = key_value[1]\n" +" else:\n" +" # Options without an argument will be present in the dictionary,\n" +" # with the value set to an empty string.\n" +" arguments[argument.trim_prefix(\"--\")] = \"\"\n" +"[/gdscript]\n" +"[csharp]\n" +"var arguments = new Dictionary<string, string>();\n" +"foreach (var argument in OS.GetCmdlineArgs())\n" +"{\n" +" if (argument.Contains('='))\n" +" {\n" +" string[] keyValue = argument.Split(\"=\");\n" +" arguments[keyValue[0].TrimPrefix(\"--\")] = keyValue[1];\n" +" }\n" +" else\n" +" {\n" +" // Options without an argument will be present in the dictionary,\n" +" // with the value set to an empty string.\n" +" arguments[argument.TrimPrefix(\"--\")] = \"\";\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] Passing custom user arguments directly is not recommended, as " +"the engine may discard or modify them. Instead, pass the standard UNIX double " +"dash ([code]--[/code]) and then the custom arguments, which the engine will " +"ignore by design. These can be read via [method get_cmdline_user_args]." +msgstr "" +"Повертає аргументи командного рядка, передані механізму. \n" +"Аргументи командного рядка можна записати в будь-якій формі, включаючи форми " +"[code]--key=value[/code] і [code]--key=value[/code], щоб їх можна було " +"правильно проаналізувати, за умови, що спеціальні аргументи командного рядка " +"не конфліктують з аргументами механізму. \n" +"Ви також можете включити змінні середовища за допомогою методу [method " +"get_environment]. \n" +"Ви можете встановити [member ProjectSettings.editor/run/main_run_args], щоб " +"визначити аргументи командного рядка, які передає редактор під час запуску " +"проекту. \n" +"[b]Приклад:[/b] Розберіть аргументи командного рядка в [словник] за допомогою " +"форми [код]--ключ=значення[/код] для аргументів: \n" +"[codeblocks] \n" +"[gdscript] \n" +"var arguments = {} \n" +"for argument in OS.get_cmdline_args(): \n" +" if argument.contains(\"=\"): \n" +" var key_value = argument.split(\"=\") \n" +" arguments[key_value[0].trim_prefix(\"--\")] = key_value[1] \n" +" else: \n" +" # Варіанти без аргументу будуть присутні в словнику, \n" +" # зі значенням, встановленим у порожній рядок. \n" +" аргументи[argument.trim_prefix(\"--\")] = \"\" \n" +"[/gdscript] \n" +"[csharp] \n" +"var arguments = new Dictionary<string, string>(); \n" +"foreach (аргумент var в OS.GetCmdlineArgs()) \n" +"{\n" +" if (argument.Contains('=')) \n" +" { \n" +" string[] keyValue = argument.Split(\"=\"); \n" +" arguments[keyValue[0].TrimPrefix(\"--\")] = keyValue[1]; \n" +" } \n" +" else \n" +" { \n" +" // Параметри без аргументу будуть присутні в словнику, \n" +" // зі значенням, встановленим у порожній рядок. \n" +" arguments[argument.TrimPrefix(\"--\")] = \"\"; \n" +" } \n" +"}\n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка:[/b] Не рекомендується передавати користувальницькі аргументи " +"безпосередньо, оскільки система може їх відхилити або змінити. Замість цього " +"передайте стандартне подвійне тире UNIX ([code]--[/code]), а потім спеціальні " +"аргументи, які механізм ігноруватиме за задумом. Їх можна прочитати через " +"[метод get_cmdline_user_args]." + msgid "" "Returns the command-line user arguments passed to the engine. User arguments " "are ignored by the engine and reserved for the user. They are passed after " @@ -84423,20 +108064,20 @@ msgid "" "[/codeblock]\n" "To get all passed arguments, use [method get_cmdline_args]." msgstr "" -"Повертає аргументи командного рядка, передані до двигуна. Визначені " -"аргументи, які ігноруються двигуном і зарезервовані для користувача. Після " -"подвійного золи [code]--[/code]. [code]++[/code] може використовуватися при " -"[code]---[/code] перехоплюється іншою програмою (наприклад, [code]startx[/" -"code]).\n" -"[блокування коду]\n" -"Нема Богот був виконаний з наступним командуванням:\n" -"# godot - повноекранний -- --рівень=2 --хардкор\n" +"Повертає аргументи користувача командного рядка, передані системі. Аргументи " +"користувача ігноруються механізмом і резервуються для користувача. Вони " +"передаються після аргументу подвійного тире [код]--[/код]. [code]++[/code] " +"можна використовувати, коли [code]--[/code] перехоплюється іншою програмою " +"(наприклад, [code]startx[/code]). \n" +"[codeblock] \n" +"# Godot було виконано за такою командою: \n" +"# godot --fullscreen -- --level=2 --hardcore \n" "\n" -"OS.get_cmdline_args() # Повернення[-fullscreen\", \"-level=2\", \"-" -"хардкор\"]\n" -"OS.get_cmdline_user_args() # Повернення[-level=2\", \"--хардкор\"]\n" -"[/codeblock]\n" -"Щоб отримати всі передані аргументи, скористайтеся [метод get_cmdline_args]." +"OS.get_cmdline_args() # Повертає [\"--fullscreen\", \"--level=2\", \"--" +"hardcore\"] \n" +"OS.get_cmdline_user_args() # Повертає [\"--level=2\", \"--hardcore\"] \n" +"[/codeblock] \n" +"Щоб отримати всі передані аргументи, використовуйте [метод get_cmdline_args]." msgid "" "Returns the [i]global[/i] user configuration directory according to the " @@ -84459,6 +108100,31 @@ msgstr "" "Не плутати з [методом get_user_data_dir], який повертає [i]специфічний для " "проекту[/i] шлях до даних користувача." +msgid "" +"Returns an array of connected MIDI device names, if they exist. Returns an " +"empty array if the system MIDI driver has not previously been initialized " +"with [method open_midi_inputs]. See also [method close_midi_inputs].\n" +"[b]Note:[/b] This method is implemented on Linux, macOS, Windows, and Web.\n" +"[b]Note:[/b] On the Web platform, Web MIDI needs to be supported by the " +"browser. [url=https://caniuse.com/midi]For the time being[/url], it is " +"currently supported by all major browsers, except Safari.\n" +"[b]Note:[/b] On the Web platform, using MIDI input requires a browser " +"permission to be granted first. This permission request is performed when " +"calling [method open_midi_inputs]. The browser will refrain from processing " +"MIDI input until the user accepts the permission request." +msgstr "" +"Повертає масив імен підключених MIDI-пристроїв, якщо вони існують. Повертає " +"порожній масив, якщо системний MIDI-драйвер раніше не було ініціалізовано " +"[методом open_midi_inputs]. Дивіться також [метод close_midi_inputs]. \n" +"[b]Примітка.[/b] Цей метод реалізовано в Linux, macOS, Windows і Web. \n" +"[b]Примітка.[/b] На веб-платформі веб-MIDI має підтримуватися браузером. " +"[url=https://caniuse.com/midi]На даний момент[/url] наразі він підтримується " +"всіма основними браузерами, крім Safari. \n" +"[b]Примітка.[/b] На веб-платформі для використання MIDI-введення спочатку " +"потрібно надати дозвіл браузера. Цей запит на дозвіл виконується під час " +"виклику [методу open_midi_inputs]. Браузер утримуватиметься від обробки MIDI-" +"введення, доки користувач не прийме запит на дозвіл." + msgid "" "Returns the [i]global[/i] user data directory according to the operating " "system's standards.\n" @@ -84570,22 +108236,25 @@ msgid "" "See also [method find_keycode_from_string], [member InputEventKey.keycode], " "and [method InputEventKey.get_keycode_with_modifiers]." msgstr "" -"Повернення заданого коду як [String].\n" -"[блоки коду]\n" -"[видання]\n" -"Друк(OS.get_keycode_string(KEY_C) # Друки \"C\"\n" -"Друк(OS.get_keycode_string(KEY_ESCAPE) # Друки \"Escape\"\n" -"Друк(OS.get_keycode_string(KEY_MASK_SHIFT KEY_TAB) # Друки \"Shift+Tab\"\n" -"[/gdscript]\n" -"[csharp]\n" -"GD.Print(OS.GetKeycodeString(Key.C)); // Друк \"C\"\n" -"GD.Print(OS.GetKeycodeString(Key.Escape)); // Друки \"Escape\"\n" -"GD.Print(OS.GetKeycodeString((Key)KeyModifierMask.MaskShift Key.Tab)); // " -"Друк \"Shift+Tab\"\n" -"[/csharp]\n" -"[/codeblocks]\n" -"Дивись також [метод пошуку_keycode_from_string], [пам'ятний вхідEventKey." -"keycode], і [метод InputEventKey.get_keycode_with_modifiers]." +"Повертає заданий код ключа як [рядок]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"print(OS.get_keycode_string(KEY_C)) # Виводить \"C\" \n" +"print(OS.get_keycode_string(KEY_ESCAPE)) # Виводить \"Escape\" \n" +"print(OS.get_keycode_string(KEY_MASK_SHIFT | KEY_TAB)) # Виводить " +"\"Shift+Tab\" \n" +"[/gdscript] \n" +"[csharp] \n" +"GD.Print(OS.GetKeycodeString(Key.C)); // " +"Виводить \"C\" \n" +"GD.Print(OS.GetKeycodeString(Key.Escape)); // " +"Виводить \"Escape\" \n" +"GD.Print(OS.GetKeycodeString((Key)KeyModifierMask.MaskShift | Key.Tab)); // " +"Виводить \"Shift+Tab\" \n" +"[/csharp] \n" +"[/codeblocks] \n" +"Дивіться також [метод find_keycode_from_string], [член InputEventKey.keycode] " +"і [метод InputEventKey.get_keycode_with_modifiers]." msgid "" "Returns the host OS locale as a [String] of the form " @@ -84681,6 +108350,15 @@ msgstr "" "[b]Note:[/b] Кожне значення запису може бути [code]-1[/code], якщо це " "невідомо." +msgid "" +"Returns the model name of the current device.\n" +"[b]Note:[/b] This method is implemented on Android, iOS, macOS, and Windows. " +"Returns [code]\"GenericDevice\"[/code] on unsupported platforms." +msgstr "" +"Повертає назву моделі поточного пристрою.\n" +"[b]Примітка.[/b] Цей метод реалізовано на Android, iOS, macOS і Windows. " +"Повертає [code]\"GenericDevice\"[/code] на непідтримуваних платформах." + msgid "" "Returns the name of the host platform.\n" "- On Windows, this is [code]\"Windows\"[/code].\n" @@ -84741,62 +108419,62 @@ msgid "" "[b]Note:[/b] On Web platforms, it is still possible to determine the host " "platform's OS with feature tags. See [method has_feature]." msgstr "" -"Повертає назву хост-платформи.\n" -"- У Windows це [code]\"Windows\"[/code].\n" -"- У macOS це [code]\"macOS\"[/code].\n" -"- В операційних системах на основі Linux це [code]\"Linux\"[/code].\n" +"Повертає назву хост-платформи. \n" +"- У Windows це [code]\"Windows\"[/code]. \n" +"- У macOS це [code]\"macOS\"[/code]. \n" +"- В операційних системах на основі Linux це [code]\"Linux\"[/code]. \n" "- В операційних системах на основі BSD це [code]\"FreeBSD\"[/code], " -"[code]\"NetBSD\"[/code], [code]\"OpenBSD\"[/code] або [code]\"BSD\" [/code] " -"як запасний варіант.\n" -"– На Android це [code]\"Android\"[/code].\n" -"- В iOS це [code]\"iOS\"[/code].\n" -"- В Інтернеті це [code]\"Веб\"[/code].\n" -"[b]Примітка:[/b] Спеціальні збірки механізму можуть підтримувати додаткові " -"платформи, такі як консолі, імовірно повертаючи інші назви.\n" -"[кодові блоки]\n" -"[gdscript]\n" -"відповідати OS.get_name():\n" -" \"Вікна\":\n" -" print(\"Ласкаво просимо до Windows!\")\n" -" \"macOS\":\n" -" print(\"Ласкаво просимо до macOS!\")\n" -" «Linux», «FreeBSD», «NetBSD», «OpenBSD», «BSD»:\n" -" print(\"Ласкаво просимо до Linux/BSD!\")\n" -" \"Android\":\n" -" print(\"Ласкаво просимо до Android!\")\n" -" \"iOS\":\n" -" print(\"Ласкаво просимо до iOS!\")\n" -" \"Павутина\":\n" -" print(\"Ласкаво просимо в Інтернет!\")\n" -"[/gdscript]\n" -"[csharp]\n" -"перемикач (OS.GetName())\n" +"[code]\"NetBSD\"[/code], [code]\"OpenBSD\"[/code] або [code]\"BSD\"[/code] як " +"запасний варіант. \n" +"– На Android це [code]\"Android\"[/code]. \n" +"- В iOS це [code]\"iOS\"[/code]. \n" +"- В Інтернеті це [code]\"Веб\"[/code]. \n" +"[b]Примітка:[/b] Спеціальні збірки двигуна можуть підтримувати додаткові " +"платформи, такі як консолі, імовірно повертаючи інші назви. \n" +"[codeblocks] \n" +"[gdscript] \n" +"match OS.get_name(): \n" +" \"Window s\": \n" +" print(\"Ласкаво просимо до Windows!\") \n" +" \"macOS\": \n" +" print(\"Ласкаво просимо до macOS!\") \n" +" «Linux», «FreeBSD», «NetBSD», «OpenBSD», «BSD»: \n" +" print(\"Ласкаво просимо до Linux/BSD!\") \n" +" \"Android\": \n" +" print(\"Ласкаво просимо до Android!\") \n" +" \"iOS\": \n" +" print(\"Ласкаво просимо до iOS!\") \n" +" \"Wevb\": \n" +" print(\"Ласкаво просимо в Інтернет!\") \n" +"[/gdscript] \n" +"[csharp] \n" +"switch (OS.GetName()) \n" "{\n" -" корпус \"Віндовс\":\n" -" GD.Print(\"Ласкаво просимо до Windows\");\n" -" розрив;\n" -" випадок \"macOS\":\n" -" GD.Print(\"Ласкаво просимо до macOS!\");\n" -" розрив;\n" -" випадок \"Linux\":\n" -" випадок \"FreeBSD\":\n" -" випадок \"NetBSD\":\n" -" випадок \"OpenBSD\":\n" -" корпус \"BSD\":\n" -" GD.Print(\"Ласкаво просимо до Linux/BSD!\");\n" -" розрив;\n" -" чохол \"Андроїд\":\n" -" GD.Print(\"Ласкаво просимо в Android!\");\n" -" розрив;\n" -" випадок \"iOS\":\n" -" GD.Print(\"Ласкаво просимо до iOS!\");\n" -" розрив;\n" -" кейс «Павутина»:\n" -" GD.Print(\"Ласкаво просимо в Інтернет!\");\n" -" розрив;\n" +" case \"Windows\": \n" +" GD.Print(\"Ласкаво просимо до Windows\"); \n" +" break; \n" +" case \"macOS\": \n" +" GD.Print(\"Ласкаво просимо до macOS!\"); \n" +" break; \n" +" case \"Linux\": \n" +" case \"FreeBSD\": \n" +" case \"NetBSD\": \n" +" case \"OpenBSD\": \n" +" case \"BSD\": \n" +" GD.Print(\"Ласкаво просимо до Linux/BSD!\"); \n" +" break; \n" +" case \"Android\": \n" +" GD.Print(\"Ласкаво просимо в Android!\"); \n" +" break; \n" +" case \"iOS\": \n" +" GD.Print(\"Ласкаво просимо до iOS!\"); \n" +" break; \n" +" case «Web»: \n" +" GD.Print(\"Ласкаво просимо в Інтернет!\"); \n" +" break; \n" "}\n" -"[/csharp]\n" -"[/codeblocks]\n" +"[/csharp] \n" +"[/codeblocks] \n" "[b]Примітка.[/b] На веб-платформах усе ще можна визначити ОС хост-платформи " "за допомогою тегів функцій. Перегляньте [method has_feature]." @@ -84872,6 +108550,15 @@ msgstr "" "Повертає кількість статичної пам'яті, що використовується програмою в байтах. " "Тільки роботи в будівельних конструкціях." +msgid "Returns type of the standard error device." +msgstr "Повертає тип пристрою стандартної помилки." + +msgid "Returns type of the standard input device." +msgstr "Повертає тип стандартного пристрою введення." + +msgid "Returns type of the standard output device." +msgstr "Повертає тип стандартного пристрою виведення." + msgid "" "Returns the list of certification authorities trusted by the operating system " "as a string of concatenated certificates in PEM format." @@ -84957,6 +108644,13 @@ msgstr "" "[b]Примітка:[/b] Цей метод реалізується на Android, iOS, Linux, macOS та " "Windows." +msgid "" +"Returns the [i]global[/i] temporary data directory according to the operating " +"system's standards." +msgstr "" +"Повертає [i]глобальний[/i] каталог тимчасових даних відповідно до стандартів " +"операційної системи." + msgid "" "Returns the ID of the current thread. This can be used in logs to ease " "debugging of multi-threaded applications.\n" @@ -85068,6 +108762,29 @@ msgstr "" "[b]Примітка:[/b] Цей метод не підтримується на веб-платформі. Він повертає " "порожній рядок." +msgid "" +"Returns the branded version used in marketing, followed by the build number " +"(on Windows) or the version number (on macOS). Examples include [code]11 " +"(build 22000)[/code] and [code]Sequoia (15.0.0)[/code]. This value can then " +"be appended to [method get_name] to get a full, human-readable operating " +"system name and version combination for the operating system. Windows feature " +"updates such as 24H2 are not contained in the resulting string, but Windows " +"Server is recognized as such (e.g. [code]2025 (build 26100)[/code] for " +"Windows Server 2025).\n" +"[b]Note:[/b] This method is only supported on Windows and macOS. On other " +"operating systems, it returns the same value as [method get_version]." +msgstr "" +"Повертає фірмову версію, яка використовується в маркетингу, а потім номер " +"збірки (у Windows) або номер версії (у macOS). Приклади включають [code]11 " +"(збірка 22000)[/code] і [code]Sequoia (15.0.0)[/code]. Потім це значення " +"можна додати до [method get_name], щоб отримати повну, зрозумілу людині назву " +"операційної системи та комбінацію версій операційної системи. Оновлення " +"функцій Windows, наприклад 24H2, не містяться в отриманому рядку, але Windows " +"Server розпізнається як таке (наприклад, [код]2025 (збірка 26100)[/код] для " +"Windows Server 2025). \n" +"[b]Примітка.[/b] Цей метод підтримується лише в Windows і macOS. В інших " +"операційних системах він повертає те саме значення, що й [method get_version]." + msgid "" "Returns the video adapter driver name and version for the user's currently " "active graphics card, as a [PackedStringArray]. See also [method " @@ -85145,6 +108862,41 @@ msgstr "" "проекту - шаблон експорту (debug або реліз), скористайтеся [code]OS." "has_feature(\"template\")[/code] замість." +msgid "" +"Returns [code]true[/code] if the input keycode corresponds to a Unicode " +"character. For a list of codes, see the [enum Key] constants.\n" +"[codeblocks]\n" +"[gdscript]\n" +"print(OS.is_keycode_unicode(KEY_G)) # Prints true\n" +"print(OS.is_keycode_unicode(KEY_KP_4)) # Prints true\n" +"print(OS.is_keycode_unicode(KEY_TAB)) # Prints false\n" +"print(OS.is_keycode_unicode(KEY_ESCAPE)) # Prints false\n" +"[/gdscript]\n" +"[csharp]\n" +"GD.Print(OS.IsKeycodeUnicode((long)Key.G)); // Prints True\n" +"GD.Print(OS.IsKeycodeUnicode((long)Key.Kp4)); // Prints True\n" +"GD.Print(OS.IsKeycodeUnicode((long)Key.Tab)); // Prints False\n" +"GD.Print(OS.IsKeycodeUnicode((long)Key.Escape)); // Prints False\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Повертає [code]true[/code], якщо введений код ключа відповідає символу " +"Unicode. Список кодів див. у константах [enum Key]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"print(OS.is_keycode_unicode(KEY_G)) # Виводить true \n" +"print(OS.is_keycode_unicode(KEY_KP_4)) # Виводить true \n" +"print(OS.is_keycode_unicode(KEY_TAB)) # Виводить false \n" +"print(OS.is_keycode_unicode(KEY_ESCAPE)) # Виводить false \n" +"[/gdscript] \n" +"[csharp] \n" +"GD.Print(OS.IsKeycodeUnicode((long)Key.G)); // Виводить True \n" +"GD.Print(OS.IsKeycodeUnicode((long)Key.Kp4)); // Виводить True \n" +"GD.Print(OS.IsKeycodeUnicode((long)Key.Tab)); // Виводить False \n" +"GD.Print(OS.IsKeycodeUnicode((long)Key.Escape)); // Виводить False \n" +"[/csharp] \n" +"[/codeblocks]" + msgid "" "Returns [code]true[/code] if the child process ID ([param pid]) is still " "running or [code]false[/code] if it has terminated. [param pid] must be a " @@ -85235,26 +108987,171 @@ msgid "" "[b]Note:[/b] If the user has disabled the recycle bin on their system, the " "file will be permanently deleted instead." msgstr "" -"Перемістіть файл або каталог на даній [параметр шляху] в рециркулятор " -"системи. Дивись також [метод DirAccess.remove].\n" -"Метод приймає тільки глобальні шляхи, тому вам потрібно використовувати " -"[методичного проектуНалаштування.globalize_path]. Не використовуйте його для " -"файлів [code]res://[/code], оскільки він не буде працювати в експортованих " -"проектах.\n" -"Якщо файл або каталог не знайдено, або система не підтримує цей метод.\n" -"[блоки коду]\n" -"[видання]\n" -"var файл_to_remove = \"user://slot1.save\"\n" -"OS.move_to_trash(Проекти.globalize_path(file_to_remove)))\n" -"[/gdscript]\n" -"[csharp]\n" -"var файлToRemove = \"user://slot1.save\";\n" -"OS.MoveToTrash(Проекти.GlobalizePath(fileToRemove));\n" -"[/csharp]\n" -"[/codeblocks]\n" -"[b]Примітка:[/b] Цей метод реалізується на Android, Linux, macOS та Windows.\n" -"[b]Примітка:[/b] Якщо користувач відключив в систему рециклопедію, файл буде " -"назавжди видалено." +"Переміщує файл або каталог за заданим [param path] до кошика системи. " +"Дивіться також [метод DirAccess.remove]. \n" +"Метод приймає лише глобальні шляхи, тому вам може знадобитися використовувати " +"[method ProjectSettings.globalize_path]. Не використовуйте його для файлів у " +"[code]res://[/code], оскільки він не працюватиме в експортованих проектах. \n" +"Повертає [константа FAILED], якщо файл чи каталог не знайдено, або система не " +"підтримує цей метод. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var file_to_remove = \"user://slot1.save\" \n" +"OS.move_to_trash(ProjectSettings.globalize_path(file_to_remove)) \n" +"[/gdscript] \n" +"[csharp] \n" +"var fileToRemove = \"user://slot1.save\"; \n" +"OS.MoveToTrash(ProjectSettings.GlobalizePath(fileToRemove)); \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка.[/b] Цей метод реалізовано на Android, Linux, macOS і Windows. \n" +"[b]Примітка:[/b] якщо користувач вимкнув кошик у своїй системі, замість цього " +"файл буде остаточно видалено." + +msgid "" +"Initializes the singleton for the system MIDI driver, allowing Godot to " +"receive [InputEventMIDI]. See also [method get_connected_midi_inputs] and " +"[method close_midi_inputs].\n" +"[b]Note:[/b] This method is implemented on Linux, macOS, Windows, and Web.\n" +"[b]Note:[/b] On the Web platform, Web MIDI needs to be supported by the " +"browser. [url=https://caniuse.com/midi]For the time being[/url], it is " +"currently supported by all major browsers, except Safari.\n" +"[b]Note:[/b] On the Web platform, using MIDI input requires a browser " +"permission to be granted first. This permission request is performed when " +"calling [method open_midi_inputs]. The browser will refrain from processing " +"MIDI input until the user accepts the permission request." +msgstr "" +"Ініціалізує синглтон для системного драйвера MIDI, дозволяючи Godot отримати " +"[InputEventMIDI]. Дивіться також [метод get_connected_midi_inputs] і [метод " +"close_midi_inputs]. \n" +"[b]Примітка.[/b] Цей метод реалізовано в Linux, macOS, Windows і Web. \n" +"[b]Примітка.[/b] На веб-платформі веб-MIDI має підтримуватися браузером. " +"[url=https://caniuse.com/midi]На даний момент[/url] наразі він підтримується " +"всіма основними браузерами, крім Safari. \n" +"[b]Примітка.[/b] На веб-платформі для використання MIDI-введення спочатку " +"потрібно надати дозвіл браузера. Цей запит на дозвіл виконується під час " +"виклику [методу open_midi_inputs]. Браузер утримуватиметься від обробки MIDI-" +"введення, доки користувач не прийме запит на дозвіл." + +msgid "" +"Reads a user input as raw data from the standard input. This operation can be " +"[i]blocking[/i], which causes the window to freeze if [method " +"read_string_from_stdin] is called on the main thread.\n" +"- If standard input is console, this method will block until the program " +"receives a line break in standard input (usually by the user pressing " +"[kbd]Enter[/kbd]).\n" +"- If standard input is pipe, this method will block until a specific amount " +"of data is read or pipe is closed.\n" +"- If standard input is a file, this method will read a specific amount of " +"data (or less if end-of-file is reached) and return immediately.\n" +"[b]Note:[/b] This method is implemented on Linux, macOS, and Windows.\n" +"[b]Note:[/b] On exported Windows builds, run the console wrapper executable " +"to access the terminal. If standard input is console, calling this method " +"without console wrapped will freeze permanently. If standard input is pipe or " +"file, it can be used without console wrapper. If you need a single executable " +"with full console support, use a custom build compiled with the " +"[code]windows_subsystem=console[/code] flag." +msgstr "" +"Зчитує введені користувачем дані як необроблені дані зі стандартного " +"введення. Ця операція може бути [i]блокуючою[/i], що спричиняє зависання " +"вікна, якщо [метод read_string_from_stdin] викликається в основному потоці. \n" +"- Якщо стандартним введенням є консоль, цей метод блокуватиметься, доки " +"програма не отримає розрив рядка у стандартному введенні (зазвичай користувач " +"натискає [kbd]Enter[/kbd]). \n" +"- Якщо стандартним введенням є канал, цей метод блокуватиметься, доки не буде " +"прочитано певний обсяг даних або канал не буде закрито. \n" +"- Якщо стандартним введенням є файл, цей метод прочитає певний обсяг даних " +"(або менше, якщо досягнуто кінця файлу) і негайно повернеться. \n" +"[b]Примітка.[/b] Цей метод реалізовано в Linux, macOS і Windows. \n" +"[b]Примітка.[/b] У експортованих збірках Windows запустіть виконуваний файл " +"консольної оболонки, щоб отримати доступ до терміналу. Якщо стандартним " +"введенням є консоль, виклик цього методу без обгортки консолі призведе до " +"остаточного зависання. Якщо стандартним введенням є канал або файл, його " +"можна використовувати без консольної обгортки. Якщо вам потрібен єдиний " +"виконуваний файл із повною підтримкою консолі, використовуйте спеціальну " +"збірку, скомпільовану з прапорцем [code]windows_subsystem=console[/code]." + +msgid "" +"Reads a user input as a UTF-8 encoded string from the standard input. This " +"operation can be [i]blocking[/i], which causes the window to freeze if " +"[method read_string_from_stdin] is called on the main thread.\n" +"- If standard input is console, this method will block until the program " +"receives a line break in standard input (usually by the user pressing " +"[kbd]Enter[/kbd]).\n" +"- If standard input is pipe, this method will block until a specific amount " +"of data is read or pipe is closed.\n" +"- If standard input is a file, this method will read a specific amount of " +"data (or less if end-of-file is reached) and return immediately.\n" +"[b]Note:[/b] This method automatically replaces [code]\\r\\n[/code] line " +"breaks with [code]\\n[/code] and removes them from the end of the string. Use " +"[method read_buffer_from_stdin] to read the unprocessed data.\n" +"[b]Note:[/b] This method is implemented on Linux, macOS, and Windows.\n" +"[b]Note:[/b] On exported Windows builds, run the console wrapper executable " +"to access the terminal. If standard input is console, calling this method " +"without console wrapped will freeze permanently. If standard input is pipe or " +"file, it can be used without console wrapper. If you need a single executable " +"with full console support, use a custom build compiled with the " +"[code]windows_subsystem=console[/code] flag." +msgstr "" +"Зчитує введені користувачем дані як рядок у кодуванні UTF-8 зі стандартного " +"вводу. Ця операція може бути [i]блокуючою[/i], що спричиняє зависання вікна, " +"якщо [метод read_string_from_stdin] викликається в основному потоці. \n" +"- Якщо стандартним введенням є консоль, цей метод блокуватиметься, доки " +"програма не отримає розрив рядка у стандартному введенні (зазвичай користувач " +"натискає [kbd]Enter[/kbd]). \n" +"- Якщо стандартним введенням є канал, цей метод блокуватиметься, доки не буде " +"прочитано певний обсяг даних або канал не буде закрито. \n" +"- Якщо стандартним введенням є файл, цей метод прочитає певний обсяг даних " +"(або менше, якщо досягнуто кінця файлу) і негайно повернеться. \n" +"[b]Примітка:[/b] Цей метод автоматично замінює розриви рядків [code]\\r\\n[/" +"code] на [code]\\n[/code] і видаляє їх із кінця рядка. Використовуйте [метод " +"read_buffer_from_stdin] для читання необроблених даних. \n" +"[b]Примітка.[/b] Цей метод реалізовано в Linux, macOS і Windows. \n" +"[b]Примітка.[/b] У експортованих збірках Windows запустіть виконуваний файл " +"консольної оболонки, щоб отримати доступ до терміналу. Якщо стандартним " +"введенням є консоль, виклик цього методу без обгортки консолі призведе до " +"остаточного зависання. Якщо стандартним введенням є канал або файл, його " +"можна використовувати без консольної обгортки. Якщо вам потрібен єдиний " +"виконуваний файл із повною підтримкою консолі, використовуйте спеціальну " +"збірку, скомпільовану з прапорцем [code]windows_subsystem=console[/code]." + +msgid "" +"Requests permission from the OS for the given [param name]. Returns " +"[code]true[/code] if the permission has already been granted. See also " +"[signal MainLoop.on_request_permissions_result].\n" +"The [param name] must be the full permission name. For example:\n" +"- [code]OS.request_permission(\"android.permission.READ_EXTERNAL_STORAGE\")[/" +"code]\n" +"- [code]OS.request_permission(\"android.permission.POST_NOTIFICATIONS\")[/" +"code]\n" +"[b]Note:[/b] Permission must be checked during export.\n" +"[b]Note:[/b] This method is only implemented on Android." +msgstr "" +"Запитує дозвіл від ОС для заданого [назва параметра]. Повертає [code]true[/" +"code], якщо дозвіл уже надано. Дивіться також [signal MainLoop." +"on_request_permissions_result]. \n" +"[Назва параметра] має бути повною назвою дозволу. Наприклад: \n" +"- [code]OS.request_permission(\"android.permission.READ_EXTERNAL_STORAGE\")[/" +"code] \n" +"- [code]OS.request_permission(\"android.permission.POST_NOTIFICATIONS\")[/" +"code] \n" +"[b]Примітка.[/b] Під час експорту необхідно перевірити дозвіл. \n" +"[b]Примітка.[/b] Цей метод реалізований лише на Android." + +msgid "" +"Requests [i]dangerous[/i] permissions from the OS. Returns [code]true[/code] " +"if permissions have already been granted. See also [signal MainLoop." +"on_request_permissions_result].\n" +"[b]Note:[/b] Permissions must be checked during export.\n" +"[b]Note:[/b] This method is only implemented on Android. Normal permissions " +"are automatically granted at install time in Android applications." +msgstr "" +"Запитує [i]небезпечні[/i] дозволи в ОС. Повертає [code]true[/code], якщо " +"дозволи вже надано. Дивіться також [signal MainLoop." +"on_request_permissions_result]. \n" +"[b]Примітка.[/b] Дозволи потрібно перевіряти під час експорту. \n" +"[b]Примітка.[/b] Цей метод реалізований лише на Android. Звичайні дозволи " +"автоматично надаються під час встановлення програм Android." msgid "" "On macOS (sandboxed applications only), this function clears list of user " @@ -85340,6 +109237,53 @@ msgstr "" "Це може бути корисним, коли файли можуть бути відкриті іншими додатками, " "такими як антивіруси, текстові редактори або навіть сам редактор Godot." +msgid "" +"Requests the OS to open a resource identified by [param uri] with the most " +"appropriate program. For example:\n" +"- [code]OS.shell_open(\"C:\\\\Users\\\\name\\\\Downloads\")[/code] on Windows " +"opens the file explorer at the user's Downloads folder.\n" +"- [code]OS.shell_open(\"C:/Users/name/Downloads\")[/code] also works on " +"Windows and opens the file explorer at the user's Downloads folder.\n" +"- [code]OS.shell_open(\"https://godotengine.org\")[/code] opens the default " +"web browser on the official Godot website.\n" +"- [code]OS.shell_open(\"mailto:example@example.com\")[/code] opens the " +"default email client with the \"To\" field set to [code]example@example.com[/" +"code]. See [url=https://datatracker.ietf.org/doc/html/rfc2368]RFC 2368 - The " +"[code]mailto[/code] URL scheme[/url] for a list of fields that can be added.\n" +"Use [method ProjectSettings.globalize_path] to convert a [code]res://[/code] " +"or [code]user://[/code] project path into a system path for use with this " +"method.\n" +"[b]Note:[/b] Use [method String.uri_encode] to encode characters within URLs " +"in a URL-safe, portable way. This is especially required for line breaks. " +"Otherwise, [method shell_open] may not work correctly in a project exported " +"to the Web platform.\n" +"[b]Note:[/b] This method is implemented on Android, iOS, Web, Linux, macOS " +"and Windows." +msgstr "" +"Запитує ОС відкрити ресурс, визначений [param uri], за допомогою найбільш " +"підходящої програми. Наприклад: \n" +"- [code]OS.shell_open(\"C:\\\\Users\\\\name\\\\Downloads\")[/code] у Windows " +"відкриває файловий провідник у папці Downloads користувача. \n" +"- [code]OS.shell_open(\"C:/Users/name/Downloads\")[/code] також працює в " +"Windows і відкриває файловий провідник у папці \"Завантаження\" " +"користувача. \n" +"- [code]OS.shell_open(\"https://godotengine.org\")[/code] відкриває веб-" +"переглядач за умовчанням на офіційному веб-сайті Godot. \n" +"- [code]OS.shell_open(\"mailto:example@example.com\")[/code] відкриває " +"поштовий клієнт за умовчанням із полем \"Кому\" встановлено значення " +"[code]example@example.com[/code]. Перегляньте [url=https://datatracker.ietf." +"org/doc/html/rfc2368]RFC 2368 – [code]mailto[/code] URL-схема[/url], щоб " +"переглянути список полів, які можна додати. \n" +"Використовуйте [method ProjectSettings.globalize_path], щоб перетворити шлях " +"до проекту [code]res://[/code] або [code]user://[/code] у системний шлях для " +"використання з цим методом. \n" +"[b]Примітка.[/b] Використовуйте [метод String.uri_encode], щоб кодувати " +"символи в URL-адресах безпечним для URL-адреси переносним способом. Це " +"особливо потрібно для розривів рядків. Інакше [метод shell_open] може не " +"працювати належним чином у проекті, експортованому на веб-платформу. \n" +"[b]Примітка.[/b] Цей метод реалізовано на Android, iOS, Web, Linux, macOS і " +"Windows." + msgid "" "Requests the OS to open the file manager, navigate to the given [param " "file_or_dir_path] and select the target file or folder.\n" @@ -85439,6 +109383,9 @@ msgstr "" msgid "The Direct3D 12 rendering driver." msgstr "Драйвер на Direct3D 12." +msgid "The Metal rendering driver." +msgstr "Драйвер візуалізації металу." + msgid "Refers to the Desktop directory path." msgstr "Refers до шляху каталогу робочого столу." @@ -85463,6 +109410,44 @@ msgstr "Бібліотеки до шляху каталогу зображень msgid "Refers to the Ringtones directory path." msgstr "Бібліотеки до шляху каталогу Ringtones." +msgid "" +"Standard I/O device is invalid. No data can be received from or sent to these " +"standard I/O devices." +msgstr "" +"Стандартний пристрій введення/виведення недійсний. Жодні дані не можуть бути " +"отримані або надіслані на ці стандартні пристрої вводу/виводу." + +msgid "" +"Standard I/O device is a console. This typically occurs when Godot is run " +"from a terminal with no redirection. This is also used for all standard I/O " +"devices when running Godot from the editor, at least on desktop platforms." +msgstr "" +"Стандартним пристроєм введення-виведення є консоль. Зазвичай це відбувається, " +"коли Godot запускається з терміналу без переспрямування. Це також " +"використовується для всіх стандартних пристроїв вводу/виводу під час запуску " +"Godot із редактора, принаймні на настільних платформах." + +msgid "" +"Standard I/O device is a regular file. This typically occurs with redirection " +"from a terminal, e.g. [code]godot > stdout.txt[/code], [code]godot < stdin." +"txt[/code] or [code]godot > stdout_stderr.txt 2>&1[/code]." +msgstr "" +"Стандартний пристрій вводу/виводу — звичайний файл. Зазвичай це відбувається " +"під час перенаправлення з терміналу, напр. [code]godot > stdout.txt[/code], " +"[code]godot < stdin.txt[/code] або [code]godot > stdout_stderr.txt 2>&1[/" +"code]." + +msgid "" +"Standard I/O device is a FIFO/pipe. This typically occurs with pipe usage " +"from a terminal, e.g. [code]echo \"Hello\" | godot[/code]." +msgstr "" +"Стандартним пристроєм вводу/виводу є FIFO/канал. Зазвичай це відбувається під " +"час використання каналу з терміналу, напр. [code] echo \"Привіт\" | godot[/" +"code]." + +msgid "Standard I/O device type is unknown." +msgstr "Тип стандартного пристрою введення-виведення невідомий." + msgid "A packed array of bytes." msgstr "Упакований масив байтів." @@ -85836,6 +109821,13 @@ msgstr "" "Шукає в масиві значення і повертає його індекс або [code]-1[/code], якщо таке " "не знайдено. За бажанням можна передати початковий індекс пошуку." +msgid "" +"Returns the byte at the given [param index] in the array. This is the same as " +"using the [code][][/code] operator ([code]array[index][/code])." +msgstr "" +"Повертає байт за заданим [індексом параметра] в масиві. Це те саме, що " +"використання оператора [code][ ][/code] ([code]масив[index][/code])." + msgid "" "Converts ASCII/Latin-1 encoded array to [String]. Fast alternative to [method " "get_string_from_utf8] if the content is ASCII/Latin-1 only. Unlike the UTF-8 " @@ -85906,6 +109898,31 @@ msgstr "" "вилучена в [param byte_offset]. [code]false[/code] інакше або коли значення " "[Object]-derived і [param allow_objects] [code]false[/code]." +msgid "" +"Returns a hexadecimal representation of this array as a [String].\n" +"[codeblocks]\n" +"[gdscript]\n" +"var array = PackedByteArray([11, 46, 255])\n" +"print(array.hex_encode()) # Prints \"0b2eff\"\n" +"[/gdscript]\n" +"[csharp]\n" +"byte[] array = [11, 46, 255];\n" +"GD.Print(array.HexEncode()); // Prints \"0b2eff\"\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Повертає шістнадцяткове представлення цього масиву як [String]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var array = PackedByteArray([11, 46, 255]) \n" +"print(array.hex_encode()) # Виводить \"0b2eff\" \n" +"[/gdscript] \n" +"[csharp] \n" +"byte[] array = [11, 46, 255]; \n" +"GD.Print(array.HexEncode()); // Виводить \"0b2eff\" \n" +"[/csharp] \n" +"[/codeblocks]" + msgid "" "Inserts a new element at a given position in the array. The position must be " "valid, or at the end of the array ([code]idx == size()[/code])." @@ -86123,17 +110140,24 @@ msgid "" "var array = PackedColorArray([Color(0.1, 0.2, 0.3), Color(0.4, 0.5, 0.6)])\n" "[/codeblock]" msgstr "" -"Будуємо новий [PackedColorArray]. Додатково ви можете пройти в загальній " -"[Аррай], яка буде перетворена.\n" -"[b]Note:[/b] При ініціалізації [PackedColorArray] з елементами, він повинен " -"бути ініціалізований [Array] значень [Color]:\n" -"[блокування коду]\n" -"var array = PackedColorArray([Color(0.1, 0.2, 0.3), Колір(0.4, 0.5, 0.6)])\n" +"Створює новий [PackedColorArray]. За бажанням ви можете передати загальний " +"[Array], який буде перетворено. \n" +"[b]Примітка.[/b] Під час ініціалізації [PackedColorArray] з елементами, він " +"повинен бути ініціалізований [Array] значень [Color]: \n" +"[codeblock] \n" +"var array = PackedColorArray([Color(0,1, 0,2, 0,3), Колір(0,4, 0,5, 0,6)]) \n" "[/codeblock]" msgid "Appends a [PackedColorArray] at the end of this array." msgstr "Додаток [PackedColorArray] в кінці цього масиву." +msgid "" +"Returns the [Color] at the given [param index] in the array. This is the same " +"as using the [code][][/code] operator ([code]array[index][/code])." +msgstr "" +"Повертає [Колір] за заданим [індексом параметра] в масиві. Це те саме, що " +"використання оператора [code][][/code] ([code]масив[index][/code])." + msgid "Appends a value to the array." msgstr "Додаток до масиву." @@ -86192,6 +110216,63 @@ msgstr "" msgid "Efficiently packs and serializes [Array] or [Dictionary]." msgstr "Ефективно пачки та серіали [Аррай] або [Дикаторія]." +msgid "" +"[PackedDataContainer] can be used to efficiently store data from untyped " +"containers. The data is packed into raw bytes and can be saved to file. Only " +"[Array] and [Dictionary] can be stored this way.\n" +"You can retrieve the data by iterating on the container, which will work as " +"if iterating on the packed data itself. If the packed container is a " +"[Dictionary], the data can be retrieved by key names ([String]/[StringName] " +"only).\n" +"[codeblock]\n" +"var data = { \"key\": \"value\", \"another_key\": 123, \"lock\": Vector2() }\n" +"var packed = PackedDataContainer.new()\n" +"packed.pack(data)\n" +"ResourceSaver.save(packed, \"packed_data.res\")\n" +"[/codeblock]\n" +"[codeblock]\n" +"var container = load(\"packed_data.res\")\n" +"for key in container:\n" +" prints(key, container[key])\n" +"[/codeblock]\n" +"Prints:\n" +"[codeblock lang=text]\n" +"key value\n" +"lock (0, 0)\n" +"another_key 123\n" +"[/codeblock]\n" +"Nested containers will be packed recursively. While iterating, they will be " +"returned as [PackedDataContainerRef]." +msgstr "" +"[PackedDataContainer] можна використовувати для ефективного зберігання даних " +"із нетипових контейнерів. Дані упаковуються в необроблені байти та можуть " +"бути збережені у файлі. Таким чином можна зберігати лише [Масив] і " +"[Словник]. \n" +"Ви можете отримати дані шляхом ітерації контейнера, який працюватиме так, " +"ніби ітерації самих упакованих даних. Якщо упакований контейнер є " +"[словником], дані можна отримати за іменами ключів (лише [String]/" +"[StringName]). \n" +"[codeblock] \n" +"var data = { \"key\": \"value\", \"another_key\": 123, \"lock\": " +"Vector2() } \n" +"var packed = PackedDataContainer.new() \n" +"packed.pack(data) \n" +"ResourceSaver.save(packed, \"packed_data.res\") \n" +"[/codeblock] \n" +"[codeblock] \n" +"var container = load(\"packed_data.res\") \n" +"for key in container: \n" +" prints(key, container[key]) \n" +"[/codeblock] \n" +"Print: \n" +"[codeblock lang=text] \n" +"key value \n" +"lock (0, 0) \n" +"another_key 123 \n" +"[/codeblock] \n" +"Вкладені контейнери будуть упаковані рекурсивно. Під час ітерації вони " +"повертатимуться як [PackedDataContainerRef]." + msgid "" "Packs the given container into a binary representation. The [param value] " "must be either [Array] or [Dictionary], any other type will result in invalid " @@ -86218,6 +110299,61 @@ msgstr "" "Внутрішній клас, який використовується [PackedDataContainer], щоб упакувати " "масиви та словники." +msgid "" +"When packing nested containers using [PackedDataContainer], they are " +"recursively packed into [PackedDataContainerRef] (only applies to [Array] and " +"[Dictionary]). Their data can be retrieved the same way as from " +"[PackedDataContainer].\n" +"[codeblock]\n" +"var packed = PackedDataContainer.new()\n" +"packed.pack([1, 2, 3, [\"nested1\", \"nested2\"], 4, 5, 6])\n" +"\n" +"for element in packed:\n" +" if element is PackedDataContainerRef:\n" +" for subelement in element:\n" +" print(\"::\", subelement)\n" +" else:\n" +" print(element)\n" +"[/codeblock]\n" +"Prints:\n" +"[codeblock lang=text]\n" +"1\n" +"2\n" +"3\n" +"::nested1\n" +"::nested2\n" +"4\n" +"5\n" +"6\n" +"[/codeblock]" +msgstr "" +"Під час пакування вкладених контейнерів за допомогою [PackedDataContainer] " +"вони рекурсивно запаковуються в [PackedDataContainerRef] (застосовується лише " +"до [Array] і [Dictionary]). Їхні дані можна отримати так само, як і з " +"[PackedDataContainer]. \n" +"[codeblock] \n" +"var packed = PackedDataContainer.new() \n" +"packed.pack([1, 2, 3, [\"nested1\", \"nested2\"], 4, 5, 6]) \n" +"\n" +"for element in packed: \n" +" if element is PackedDataContainerRef: \n" +" for subelement in element: \n" +" print(\"::\", піделемент) \n" +" else: \n" +" print(element) \n" +"[/codeblock] \n" +"Print: \n" +"[codeblock lang=text] \n" +"1\n" +"2\n" +"3\n" +":: nested1 \n" +":: nested2 \n" +"4\n" +"5\n" +"6\n" +"[/codeblock]" + msgid "A packed array of 32-bit floating-point values." msgstr "Упакований масив 32-бітових плаваючі значення точки." @@ -86305,6 +110441,14 @@ msgstr "" "номери. Таким чином, результати цього методу не можуть бути точними, якщо НН " "включені." +msgid "" +"Returns the 32-bit float at the given [param index] in the array. This is the " +"same as using the [code][][/code] operator ([code]array[index][/code])." +msgstr "" +"Повертає 32-розрядне число з плаваючою точкою в заданому [param index] у " +"масиві. Це те саме, що використання оператора [code][ ][/code] " +"([code]масив[Index][/code])." + msgid "" "Returns [code]true[/code] if the array contains [param value].\n" "[b]Note:[/b] [constant @GDScript.NAN] doesn't behave the same as other " @@ -86364,6 +110508,15 @@ msgstr "" "[b]Note:[/b] [constant @GDScript.NAN] не поводити те саме, що й інші номери. " "Таким чином, результати цього методу не можуть бути точними, якщо НН включені." +msgid "" +"Returns a copy of the data converted to a [PackedByteArray], where each " +"element has been encoded as 4 bytes.\n" +"The size of the new array will be [code]float32_array.size() * 4[/code]." +msgstr "" +"Повертає копію даних, перетворених у [PackedByteArray], де кожен елемент " +"закодовано як 4 байти.\n" +"Розмір нового масиву буде [code]float32_array.size() * 4[/code]." + msgid "" "Returns a new [PackedFloat32Array] with contents of [param right] added at " "the end of this array. For better performance, consider using [method " @@ -86450,6 +110603,14 @@ msgstr "" msgid "Appends a [PackedFloat64Array] at the end of this array." msgstr "Додаток [PackedFloat64Array] в кінці цього масиву." +msgid "" +"Returns the 64-bit float at the given [param index] in the array. This is the " +"same as using the [code][][/code] operator ([code]array[index][/code])." +msgstr "" +"Повертає 64-бітове число з плаваючою точкою в заданому [param index] у " +"масиві. Це те саме, що використання оператора [code][][/code] " +"([code]масив[index][/code])." + msgid "" "Returns the slice of the [PackedFloat64Array], from [param begin] (inclusive) " "to [param end] (exclusive), as a new [PackedFloat64Array].\n" @@ -86471,6 +110632,15 @@ msgstr "" "кінця масиву (тобто [code]arr.slice(0, -2)[/code] є шортендом для [code]arr." "slice(0, arr.size() - 2)[/code])." +msgid "" +"Returns a copy of the data converted to a [PackedByteArray], where each " +"element has been encoded as 8 bytes.\n" +"The size of the new array will be [code]float64_array.size() * 8[/code]." +msgstr "" +"Повертає копію даних, перетворених у [PackedByteArray], де кожен елемент " +"закодовано як 8 байтів.\n" +"Розмір нового масиву буде [code]float64_array.size() * 8[/code]." + msgid "" "Returns a new [PackedFloat64Array] with contents of [param right] added at " "the end of this array. For better performance, consider using [method " @@ -86546,6 +110716,13 @@ msgstr "" msgid "Appends a [PackedInt32Array] at the end of this array." msgstr "Додаток [PackedInt32Array] в кінці цього масиву." +msgid "" +"Returns the 32-bit integer at the given [param index] in the array. This is " +"the same as using the [code][][/code] operator ([code]array[index][/code])." +msgstr "" +"Повертає 32-розрядне ціле число за вказаним [param index] у масиві. Це те " +"саме, що використання оператора [code][][/code] ([code]array[index][/code])." + msgid "" "Inserts a new integer at a given position in the array. The position must be " "valid, or at the end of the array ([code]idx == size()[/code])." @@ -86577,6 +110754,15 @@ msgstr "" "кінця масиву (тобто [code]arr.slice(0, -2)[/code] є шортендом для [code]arr." "slice(0, arr.size() - 2)[/code])." +msgid "" +"Returns a copy of the data converted to a [PackedByteArray], where each " +"element has been encoded as 4 bytes.\n" +"The size of the new array will be [code]int32_array.size() * 4[/code]." +msgstr "" +"Повертає копію даних, перетворених у [PackedByteArray], де кожен елемент " +"закодовано як 4 байти.\n" +"Розмір нового масиву буде [code]int32_array.size() * 4[/code]." + msgid "" "Returns a new [PackedInt32Array] with contents of [param right] added at the " "end of this array. For better performance, consider using [method " @@ -86608,6 +110794,51 @@ msgstr "" msgid "A packed array of 64-bit integers." msgstr "Упакований масив 64-бітних цілих чисел." +msgid "" +"An array specifically designed to hold 64-bit integer values. Packs data " +"tightly, so it saves memory for large array sizes.\n" +"[b]Note:[/b] This type stores signed 64-bit integers, which means it can take " +"values in the interval [code][-2^63, 2^63 - 1][/code], i.e. [code]" +"[-9223372036854775808, 9223372036854775807][/code]. Exceeding those bounds " +"will wrap around. If you only need to pack 32-bit integers tightly, see " +"[PackedInt32Array] for a more memory-friendly alternative.\n" +"[b]Differences between packed arrays, typed arrays, and untyped arrays:[/b] " +"Packed arrays are generally faster to iterate on and modify compared to a " +"typed array of the same type (e.g. [PackedInt64Array] versus [code]Array[int]" +"[/code]). Also, packed arrays consume less memory. As a downside, packed " +"arrays are less flexible as they don't offer as many convenience methods such " +"as [method Array.map]. Typed arrays are in turn faster to iterate on and " +"modify than untyped arrays.\n" +"[b]Note:[/b] Packed arrays are always passed by reference. To get a copy of " +"an array that can be modified independently of the original array, use " +"[method duplicate]. This is [i]not[/i] the case for built-in properties and " +"methods. The returned packed array of these are a copies, and changing it " +"will [i]not[/i] affect the original value. To update a built-in property you " +"need to modify the returned array, and then assign it to the property again." +msgstr "" +"Масив, спеціально розроблений для зберігання 64-розрядних цілих значень. " +"Щільно упаковує дані, тому економить пам’ять для великих масивів. \n" +"[b]Примітка.[/b] Цей тип зберігає 64-розрядні цілі числа зі знаком, що " +"означає, що він може приймати значення в інтервалі [code][-2^63, 2^63 - 1][/" +"code], тобто [code][-9223372036854775808, 9223372036854775807][/code]. " +"Перевищення цих меж призведе до обертання. Якщо вам потрібно лише щільно " +"упакувати 32-розрядні цілі числа, дивіться [PackedInt32Array] для більш " +"зручної для пам’яті альтернативи. \n" +"[b]Відмінності між упакованими масивами, типізованими масивами та " +"нетипізованими масивами:[/b] Упаковані масиви зазвичай швидше обробляються та " +"змінюються порівняно з типізованим масивом того самого типу (наприклад, " +"[PackedInt64Array] проти [code]Array[int][/code]). Крім того, упаковані " +"масиви споживають менше пам’яті. Недоліком є те, що упаковані масиви є менш " +"гнучкими, оскільки вони не пропонують стільки зручних методів, як-от [метод " +"Array.map]. Типізовані масиви, у свою чергу, швидше перебираються та " +"змінюються, ніж нетипізовані масиви. \n" +"[b]Примітка.[/b] Упаковані масиви завжди передаються за посиланням. Щоб " +"отримати копію масиву, яку можна змінювати незалежно від вихідного масиву, " +"використовуйте [метод duplicate]. Це [i]не[/i] для вбудованих властивостей і " +"методів. Повернений упакований масив є копіями, і його зміна [i]не[/i] вплине " +"на вихідне значення. Щоб оновити вбудовану властивість, потрібно змінити " +"повернутий масив, а потім знову призначити його властивості." + msgid "Constructs an empty [PackedInt64Array]." msgstr "Будуємо порожній [PackedInt64Array]." @@ -86625,6 +110856,13 @@ msgstr "" msgid "Appends a [PackedInt64Array] at the end of this array." msgstr "Додаток [PackedInt64Array] в кінці цього масиву." +msgid "" +"Returns the 64-bit integer at the given [param index] in the array. This is " +"the same as using the [code][][/code] operator ([code]array[index][/code])." +msgstr "" +"Повертає 64-розрядне ціле число за вказаним [param index] у масиві. Це те " +"саме, що використання оператора [code][][/code]. ([code]array[index][/code])." + msgid "" "Returns the slice of the [PackedInt64Array], from [param begin] (inclusive) " "to [param end] (exclusive), as a new [PackedInt64Array].\n" @@ -86646,6 +110884,15 @@ msgstr "" "кінця масиву (тобто [code]arr.slice(0, -2)[/code] є шортендом для [code]arr." "slice(0, arr.size() - 2)[/code])." +msgid "" +"Returns a copy of the data converted to a [PackedByteArray], where each " +"element has been encoded as 8 bytes.\n" +"The size of the new array will be [code]int64_array.size() * 8[/code]." +msgstr "" +"Повертає копію даних, перетворених у [PackedByteArray], де кожен елемент " +"закодовано як 8 байтів.\n" +"Розмір нового масиву буде [code]int64_array.size() * 8[/code]." + msgid "" "Returns a new [PackedInt64Array] with contents of [param right] added at the " "end of this array. For better performance, consider using [method " @@ -86667,6 +110914,168 @@ msgstr "" msgid "An abstraction of a serialized scene." msgstr "Анотація послідовної сцени." +msgid "" +"A simplified interface to a scene file. Provides access to operations and " +"checks that can be performed on the scene resource itself.\n" +"Can be used to save a node to a file. When saving, the node as well as all " +"the nodes it owns get saved (see [member Node.owner] property).\n" +"[b]Note:[/b] The node doesn't need to own itself.\n" +"[b]Example:[/b] Load a saved scene:\n" +"[codeblocks]\n" +"[gdscript]\n" +"# Use load() instead of preload() if the path isn't known at compile-time.\n" +"var scene = preload(\"res://scene.tscn\").instantiate()\n" +"# Add the node as a child of the node the script is attached to.\n" +"add_child(scene)\n" +"[/gdscript]\n" +"[csharp]\n" +"// C# has no preload, so you have to always use ResourceLoader." +"Load<PackedScene>().\n" +"var scene = ResourceLoader.Load<PackedScene>(\"res://scene.tscn\")." +"Instantiate();\n" +"// Add the node as a child of the node the script is attached to.\n" +"AddChild(scene);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Example:[/b] Save a node with different owners. The following example " +"creates 3 objects: [Node2D] ([code]node[/code]), [RigidBody2D] ([code]body[/" +"code]) and [CollisionObject2D] ([code]collision[/code]). [code]collision[/" +"code] is a child of [code]body[/code] which is a child of [code]node[/code]. " +"Only [code]body[/code] is owned by [code]node[/code] and [method pack] will " +"therefore only save those two nodes, but not [code]collision[/code].\n" +"[codeblocks]\n" +"[gdscript]\n" +"# Create the objects.\n" +"var node = Node2D.new()\n" +"var body = RigidBody2D.new()\n" +"var collision = CollisionShape2D.new()\n" +"\n" +"# Create the object hierarchy.\n" +"body.add_child(collision)\n" +"node.add_child(body)\n" +"\n" +"# Change owner of `body`, but not of `collision`.\n" +"body.owner = node\n" +"var scene = PackedScene.new()\n" +"\n" +"# Only `node` and `body` are now packed.\n" +"var result = scene.pack(node)\n" +"if result == OK:\n" +" var error = ResourceSaver.save(scene, \"res://path/name.tscn\") # Or " +"\"user://...\"\n" +" if error != OK:\n" +" push_error(\"An error occurred while saving the scene to disk.\")\n" +"[/gdscript]\n" +"[csharp]\n" +"// Create the objects.\n" +"var node = new Node2D();\n" +"var body = new RigidBody2D();\n" +"var collision = new CollisionShape2D();\n" +"\n" +"// Create the object hierarchy.\n" +"body.AddChild(collision);\n" +"node.AddChild(body);\n" +"\n" +"// Change owner of `body`, but not of `collision`.\n" +"body.Owner = node;\n" +"var scene = new PackedScene();\n" +"\n" +"// Only `node` and `body` are now packed.\n" +"Error result = scene.Pack(node);\n" +"if (result == Error.Ok)\n" +"{\n" +" Error error = ResourceSaver.Save(scene, \"res://path/name.tscn\"); // Or " +"\"user://...\"\n" +" if (error != Error.Ok)\n" +" {\n" +" GD.PushError(\"An error occurred while saving the scene to disk.\");\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Спрощений інтерфейс для файлу сцени. Надає доступ до операцій і перевірок, " +"які можна виконати на самому ресурсі сцени. \n" +"Можна використовувати для збереження вузла у файл. Під час збереження " +"зберігається вузол, а також усі вузли, якими він володіє (див. властивість " +"[member Node.owner]). \n" +"[b]Примітка:[/b] Вузол не повинен володіти собою. \n" +"[b]Приклад:[/b] Завантажте збережену сцену: \n" +"[codeblocks] \n" +"[gdscript] \n" +"# Використовуйте load() замість preload(), якщо шлях невідомий під час " +"компіляції. \n" +"var scene = preload(\"res://scene.tscn\").instantiate() \n" +"# Додайте вузол як дочірній вузол, до якого приєднаний сценарій. \n" +"add_child (scene) \n" +"[/gdscript] \n" +"[csharp] \n" +"// C# не має попереднього завантаження, тому вам потрібно завжди " +"використовувати ResourceLoader.Load<PackedScene>(). \n" +"var scene = ResourceLoader.Load<PackedScene>(\"res://scene.tscn\")." +"Instantiate(); \n" +"// Додати вузол як дочірній вузол, до якого приєднаний сценарій. \n" +"AddChild(сцена); \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Приклад:[/b] Збережіть вузол з іншими власниками. У наступному прикладі " +"створено 3 об’єкти: [Node2D] ([code]вузол[/code]), [RigidBody2D] ([code]body[/" +"code]) і [CollisionObject2D] ([code]collision[/code]). [code]колізія[/code] є " +"дочірнім елементом [code]body[/code], який є дочірнім для [code]node[/code]. " +"Тільки [code]body[/code] належить [code]node[/code], тому [method pack] " +"збереже лише ці два вузли, але не [code]колізію[/code]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"# Створення об'єктів. \n" +"var node = Node2D.new() \n" +"var body = RigidBody2D.new() \n" +"var collision = CollisionShape2D.new() \n" +"\n" +"# Створення ієрархії об'єктів. \n" +"body.add_child(collision) \n" +"node.add_child(body) \n" +"\n" +"# Змінити власника `body`, але не `collision`. \n" +"body.owner = node \n" +"var scene = PackedScene.new() \n" +"\n" +"# Тепер упаковано лише `node` і `body`. \n" +"var result = scene.pack(node) \n" +" if result == OK: \n" +" var error = ResourceSaver.save(scene, \"res://path/name.tscn\") # Або " +"\"user://...\" \n" +" if error != OK: \n" +" push_error(\"Під час збереження сцени на диск сталася помилка.\") \n" +"[/gdscript] \n" +"[csharp] \n" +"// Створення об'єктів. \n" +"var node = new Node2D(); \n" +"var body = new RigidBody2D(); \n" +"var collision = new CollisionShape2D(); \n" +"\n" +"// Створення ієрархії об'єктів. \n" +"body.AddChild(collision); \n" +"node.AddChild(body); \n" +"\n" +"// Змінити власника `body`, але не `collision`. \n" +"body.Owner = node; \n" +"var scene = new PackedScene(); \n" +"\n" +"// Тільки `node` і `body` тепер упаковані. \n" +"Результат помилки = scene.Pack(node); \n" +"if (результат == Error.Ok) \n" +"{\n" +" Error error = ResourceSaver.Save(scene, \"res://path/name.tscn\"); // Або " +"\"користувач //...\" \n" +" if (error != Error. Ok) \n" +" { \n" +" GD.PushError(\"Під час збереження сцени на диск сталася помилка." +"\"); \n" +" } \n" +"}\n" +"[/csharp] \n" +"[/codeblocks]" + msgid "Returns [code]true[/code] if the scene file has nodes." msgstr "Повертає [code]true[/code], якщо файл сцени має вершини." @@ -86750,10 +111159,10 @@ msgstr "" "тому він зберігає пам'ять для великих розмірів масиву.\n" "Якщо ви хочете приєднатися до рядків у масиві, скористайтеся [метод String." "join].\n" -"[блокування коду]\n" +"[codeblock]\n" "var string_array = PackedStringArray([\"hello\", \"world\"])\n" "var string = \".join(string_array)\n" -"Друк(string) # \"Hello world\"\n" +"print(string) # \"Hello world\"\n" "[/codeblock]\n" "[b]Налаштування між упакованими масивами, типованими масивами та нетиповими " "масивами: [/b] Пакувані масиви зазвичай швидше, щоб ітерувати і змінювати у " @@ -86786,6 +111195,13 @@ msgstr "" msgid "Appends a [PackedStringArray] at the end of this array." msgstr "Додаток [PackedStringArray] в кінці цього масиву." +msgid "" +"Returns the [String] at the given [param index] in the array. This is the " +"same as using the [code][][/code] operator ([code]array[index][/code])." +msgstr "" +"Повертає [String] за вказаним [param index] у масиві. Це те саме, що " +"використання оператора [code][][/code]. ([code]array[index][/code])." + msgid "Appends a string element at end of the array." msgstr "Додаток елемента рядка в кінці масиву." @@ -86813,8 +111229,12 @@ msgstr "" "кінця масиву (тобто [code]arr.slice(0, -2)[/code] є шортандом для [code]arr." "slice(0, arr.size() - 2)[/code])." -msgid "Returns a [PackedByteArray] with each string encoded as bytes." -msgstr "Повертає [PackedByteArray] з кожним рядком закодовано як байти." +msgid "" +"Returns a [PackedByteArray] with each string encoded as UTF-8. Strings are " +"[code]null[/code] terminated." +msgstr "" +"Повертає [PackedByteArray] з кожним рядком, закодованим як UTF-8. Рядки " +"завершуються [code]null[/code]." msgid "" "Returns a new [PackedStringArray] with contents of [param right] added at the " @@ -86844,6 +111264,40 @@ msgstr "" msgid "A packed array of [Vector2]s." msgstr "Пакетний масив [Vector2]s." +msgid "" +"An array specifically designed to hold [Vector2]. Packs data tightly, so it " +"saves memory for large array sizes.\n" +"[b]Differences between packed arrays, typed arrays, and untyped arrays:[/b] " +"Packed arrays are generally faster to iterate on and modify compared to a " +"typed array of the same type (e.g. [PackedVector2Array] versus " +"[code]Array[Vector2][/code]). Also, packed arrays consume less memory. As a " +"downside, packed arrays are less flexible as they don't offer as many " +"convenience methods such as [method Array.map]. Typed arrays are in turn " +"faster to iterate on and modify than untyped arrays.\n" +"[b]Note:[/b] Packed arrays are always passed by reference. To get a copy of " +"an array that can be modified independently of the original array, use " +"[method duplicate]. This is [i]not[/i] the case for built-in properties and " +"methods. The returned packed array of these are a copies, and changing it " +"will [i]not[/i] affect the original value. To update a built-in property you " +"need to modify the returned array, and then assign it to the property again." +msgstr "" +"Масив, спеціально розроблений для зберігання [Вектор2]. Щільно упаковує дані, " +"тому економить пам’ять для великих масивів. \n" +"[b]Відмінності між упакованими масивами, типізованими масивами та нетиповими " +"масивами:[/b] Упаковані масиви, як правило, швидше обробляються та змінюються " +"порівняно з типізованим масивом того самого типу (наприклад, " +"[PackedVector2Array] проти [code]Array[Vector2][/code]). Крім того, упаковані " +"масиви споживають менше пам’яті. Недоліком є те, що упаковані масиви є менш " +"гнучкими, оскільки вони не пропонують стільки зручних методів, як-от [метод " +"Array.map]. Типізовані масиви, у свою чергу, швидше перебираються та " +"змінюються, ніж нетипізовані масиви. \n" +"[b]Примітка.[/b] Упаковані масиви завжди передаються за посиланням. Щоб " +"отримати копію масиву, яку можна змінювати незалежно від вихідного масиву, " +"використовуйте [метод duplicate]. Це [i]не[/i] для вбудованих властивостей і " +"методів. Повернений упакований масив є копіями, і його зміна [i]не[/i] вплине " +"на вихідне значення. Щоб оновити вбудовану властивість, потрібно змінити " +"повернутий масив, а потім знову призначити його властивості." + msgid "Grid-based Navigation with AStarGrid2D Demo" msgstr "Навігація на основі сітки з AStarGrid2D Демонстрація" @@ -86863,12 +111317,12 @@ msgid "" "var array = PackedVector2Array([Vector2(12, 34), Vector2(56, 78)])\n" "[/codeblock]" msgstr "" -"Constructs a new [PackedVector2Array]. Додатково ви можете пройти в загальній " -"[Аррай], яка буде перетворена.\n" -"[b]Note:[/b] При ініціалізації [PackedVector2Array] з елементами, він повинен " -"бути ініціалізований [Array] значень [Vector2]:\n" -"[блокування коду]\n" -"var array = PackedVector2Array([Vector2(12, 34), Vector2(56, 78)])\n" +"Створює новий [PackedVector2Array]. За бажанням ви можете передати загальний " +"[Array], який буде перетворено. \n" +"[b]Примітка: [/b] Під час ініціалізації [PackedVector2Array] елементами, він " +"має бути ініціалізований [Array] значень [Vector2]: \n" +"[codeblock] \n" +"var array = PackedVector2Array([Vector2(12, 34), Вектор2(56, 78)]) \n" "[/codeblock]" msgid "Appends a [PackedVector2Array] at the end of this array." @@ -86920,6 +111374,13 @@ msgstr "" "тому ж, як інші вектори. Таким чином, результати цього методу не можуть бути " "точними, якщо НН включені." +msgid "" +"Returns the [Vector2] at the given [param index] in the array. This is the " +"same as using the [code][][/code] operator ([code]array[index][/code])." +msgstr "" +"Повертає [Вектор2] за заданим [параметричним індексом] у масиві. Це те саме, " +"що використання оператора [code][][/code]. ([code]array[index][/code])." + msgid "" "Returns [code]true[/code] if the array contains [param value].\n" "[b]Note:[/b] Vectors with [constant @GDScript.NAN] elements don't behave the " @@ -87086,17 +111547,24 @@ msgid "" "var array = PackedVector3Array([Vector3(12, 34, 56), Vector3(78, 90, 12)])\n" "[/codeblock]" msgstr "" -"Constructs a new [PackedVector3Array]. Додатково ви можете пройти в загальній " -"[Аррай], яка буде перетворена.\n" -"[b]Note:[/b] При ініціалізації [PackedVector3Array] з елементами, він повинен " -"бути ініціалізований [Array] значень [Vector3]:\n" -"[блокування коду]\n" -"var array = PackedVector3Array([Vector3(12, 34, 56), Vector3(78, 90, 12)])\n" +"Створює новий [PackedVector3Array]. За бажанням ви можете передати загальний " +"[Array], який буде перетворено. \n" +"[b]Примітка.[/b] Під час ініціалізації [PackedVector3Array] з елементами, він " +"повинен бути ініціалізований [Array] значень [Vector3]: \n" +"[codeblock] \n" +"var array = PackedVector3Array([Vector3(12, 34, 56), Вектор3(78, 90, 12)]) \n" "[/codeblock]" msgid "Appends a [PackedVector3Array] at the end of this array." msgstr "Додаток [PackedVector3Array] в кінці цього масиву." +msgid "" +"Returns the [Vector3] at the given [param index] in the array. This is the " +"same as using the [code][][/code] operator ([code]array[index][/code])." +msgstr "" +"Повертає [Vector3] за вказаним [param index] у масиві. Це те саме, що " +"використання оператора [code][][/code]. ([code]array[index][/code])." + msgid "Inserts a [Vector3] at the end." msgstr "Вставте [Vector3] в кінці." @@ -87173,6 +111641,40 @@ msgstr "" msgid "A packed array of [Vector4]s." msgstr "Пакетний масив [Vector4]s." +msgid "" +"An array specifically designed to hold [Vector4]. Packs data tightly, so it " +"saves memory for large array sizes.\n" +"[b]Differences between packed arrays, typed arrays, and untyped arrays:[/b] " +"Packed arrays are generally faster to iterate on and modify compared to a " +"typed array of the same type (e.g. [PackedVector4Array] versus " +"[code]Array[Vector4][/code]). Also, packed arrays consume less memory. As a " +"downside, packed arrays are less flexible as they don't offer as many " +"convenience methods such as [method Array.map]. Typed arrays are in turn " +"faster to iterate on and modify than untyped arrays.\n" +"[b]Note:[/b] Packed arrays are always passed by reference. To get a copy of " +"an array that can be modified independently of the original array, use " +"[method duplicate]. This is [i]not[/i] the case for built-in properties and " +"methods. The returned packed array of these are a copies, and changing it " +"will [i]not[/i] affect the original value. To update a built-in property you " +"need to modify the returned array, and then assign it to the property again." +msgstr "" +"Масив, спеціально розроблений для зберігання [Вектор4]. Пакує дані щільно, " +"тому економить пам’ять для масивів великих розмірів. \n" +"[b]Відмінності між упакованими масивами, типізованими масивами та нетиповими " +"масивами:[/b] Упаковані масиви, як правило, швидше обробляються та змінюються " +"порівняно з типізованим масивом того самого типу (наприклад, " +"[PackedVector4Array] проти [code]Array[Vector4][/code]). Крім того, упаковані " +"масиви споживають менше пам’яті. Недоліком є те, що упаковані масиви є менш " +"гнучкими, оскільки вони не пропонують стільки зручних методів, як-от [метод " +"Array.map]. Типізовані масиви, у свою чергу, швидше перебираються та " +"змінюються, ніж нетипізовані масиви. \n" +"[b]Примітка.[/b] Упаковані масиви завжди передаються за посиланням. Щоб " +"отримати копію масиву, яку можна змінювати незалежно від вихідного масиву, " +"використовуйте [метод duplicate]. Це [i]не[/i] для вбудованих властивостей і " +"методів. Повернений упакований масив є копіями, і його зміна [i]не[/i] вплине " +"на вихідне значення. Щоб оновити вбудовану властивість, потрібно змінити " +"повернутий масив, а потім знову призначити його властивості." + msgid "Constructs an empty [PackedVector4Array]." msgstr "Будуємо порожній [PackedVector4Array]." @@ -87190,18 +111692,25 @@ msgid "" "56)])\n" "[/codeblock]" msgstr "" -"Constructs a new [PackedVector4Array]. Додатково ви можете пройти в загальній " -"[Аррай], яка буде перетворена.\n" -"[b]Note:[/b] При ініціалізації [PackedVector4Array] з елементами, він повинен " -"бути ініціалізований [Array] значень [Vector4]:\n" -"[блокування коду]\n" +"Створює новий [PackedVector4Array]. За бажанням ви можете передати загальний " +"[Array], який буде перетворено. \n" +"[b]Примітка: [/b] Під час ініціалізації [PackedVector4Array] з елементами, " +"він повинен бути ініціалізований [Array] значень [Vector4]: \n" +"[codeblock] \n" "var array = PackedVector4Array([Vector4(12, 34, 56, 78), Вектор4(90, 12, 34, " -"56)])\n" +"56)]) \n" "[/codeblock]" msgid "Appends a [PackedVector4Array] at the end of this array." msgstr "Додаток [PackedVector4Array] в кінці цього масиву." +msgid "" +"Returns the [Vector4] at the given [param index] in the array. This is the " +"same as using the [code][][/code] operator ([code]array[index][/code])." +msgstr "" +"Повертає [Vector4] за заданим [param index] у масиві. Це те саме, що " +"використання оператора [code][][/code]. ([code]array[index][/code])." + msgid "Inserts a [Vector4] at the end." msgstr "Вставте [Vector4] в кінці." @@ -87453,6 +111962,72 @@ msgstr "Об'єкт [StreamPeer]." msgid "UDP packet peer." msgstr "Пакет UDP одномісний." +msgid "" +"UDP packet peer. Can be used to send and receive raw UDP packets as well as " +"[Variant]s.\n" +"[b]Example:[/b] Send a packet:\n" +"[codeblock]\n" +"var peer = PacketPeerUDP.new()\n" +"\n" +"# Optionally, you can select the local port used to send the packet.\n" +"peer.bind(4444)\n" +"\n" +"peer.set_dest_address(\"1.1.1.1\", 4433)\n" +"peer.put_packet(\"hello\".to_utf8_buffer())\n" +"[/codeblock]\n" +"[b]Example:[/b] Listen for packets:\n" +"[codeblock]\n" +"var peer\n" +"\n" +"func _ready():\n" +" peer = PacketPeerUDP.new()\n" +" peer.bind(4433)\n" +"\n" +"\n" +"func _process(_delta):\n" +" if peer.get_available_packet_count() > 0:\n" +" var array_bytes = peer.get_packet()\n" +" var packet_string = array_bytes.get_string_from_ascii()\n" +" print(\"Received message: \", packet_string)\n" +"[/codeblock]\n" +"[b]Note:[/b] When exporting to Android, make sure to enable the " +"[code]INTERNET[/code] permission in the Android export preset before " +"exporting the project or using one-click deploy. Otherwise, network " +"communication of any kind will be blocked by Android." +msgstr "" +"Одноранговий пакет UDP. Може використовуватися для надсилання й отримання " +"необроблених UDP-пакетів, а також [Variant]s. \n" +"[b]Приклад:[/b] Надіслати пакет: \n" +"[codeblock] \n" +"var peer = PacketPeerUDP.new() \n" +"\n" +"# За бажанням ви можете вибрати локальний порт, який використовується для " +"надсилання пакету. \n" +"peer.bind(4444) \n" +"\n" +"peer.set_dest_address(\"1.1.1.1\", 4433) \n" +"peer.put_packet(\"привіт\".to_utf8_buffer()) \n" +"[/codeblock] \n" +"[b]Приклад:[/b] Прослуховування пакетів: \n" +"[codeblock] \n" +"var peer \n" +"\n" +"func _ready(): \n" +" peer = PacketPeerUDP.new() \n" +" peer.bind(4433) \n" +"\n" +"\n" +"func _process(_delta): \n" +" if peer.get_available_packet_count() > 0: \n" +" var array_bytes = peer.get_packet() \n" +" var packet_string = array_bytes.get_string_from_ascii() \n" +" print(\"Отримано повідомлення: \", пакет_рядок) \n" +"[/codeblock] \n" +"[b]Примітка.[/b] Під час експорту в Android переконайтеся, що ви ввімкнули " +"дозвіл [code]INTERNET[/code] у попередньому налаштуванні експорту Android " +"перед експортом проекту або використанням розгортання одним клацанням миші. " +"Інакше будь-який мережевий зв’язок буде заблокований Android." + msgid "" "Binds this [PacketPeerUDP] to the specified [param port] and [param " "bind_address] with a buffer size [param recv_buf_size], allowing it to " @@ -87621,41 +112196,39 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Очікується пакет, щоб прибути на межі адреси. [метод].\n" -"[b]Примітка:[/b] [метод очікування] не можна переривати, як тільки вона була " -"викликана. Це може працювати, дозволяючи іншим сторонам надсилати конкретну " -"пакетку \"під ключ\":\n" -"[блоки коду]\n" -"[видання]\n" -"Роз'єм = PacketPeerUDP.new()\n" -"Статус на сервери\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -".put_packet(\"Час зупинитися.to_ascii_buffer()))\n" +"Очікує на прибуття пакета на прив'язану адресу. Див. [method bind]. \n" +"[b]Примітка: [/b] [method wait] не може бути перервано після його виклику. Це " +"можна вирішити, дозволивши іншій стороні надіслати певний пакет «пігулки " +"смерті» таким чином: \n" +"[codeblocks] \n" +"[gdscript] \n" +"socket = PacketPeerUDP.new() \n" +"# Сервер \n" +"socket.set_dest_address(\"127.0.0.1\", 789) \n" +"socket.put_packet(\"Time to stop\".to_ascii_buffer()) \n" "\n" -"Клієнт\n" -"при розетці.wait() == Головна\n" -"var data = розетки.get_packet().get_string_from_ascii()\n" -"якщо дані == \"Час зупинитися\":\n" -"Увійти\n" -"[/gdscript]\n" -"[csharp]\n" -"var гніздо = новий PacketPeerUdp();\n" -"// Сервер\n" -"роз'єм. SetDestAddress(\"127.0.0.1\", 789);\n" -"роз'єм.PutPacket(\"Time to stop\".ToAsciiBuffer());\n" +"# Клієнт \n" +"while socket.wait() == OK: \n" +" var data = socket.get_packet().get_string_from_ascii() \n" +" if data == \"Time to stop\": \n" +" return \n" +"[/gdscript] \n" +"[csharp] \n" +"var socket = new PacketPeerUdp(); \n" +"// Сервер \n" +"socket.SetDestAddress(\"127.0.0.1\", 789); \n" +"socket.PutPacket(\"Time to stop\".ToAsciiBuffer()); \n" "\n" -"// Клієнт\n" -"при (socket.Wait() == OK)\n" -"Довідник\n" -"string data = Socket.GetPacket().GetStringЗ альбомуASCII();\n" -"якщо " -"(data============================================================================================================================================================================================================================================================= " -"\"Час зупинитися\"\n" -"Довідник\n" -"повернення;\n" -"Про нас\n" -"Про нас\n" -"[/csharp]\n" +"// Клієнт \n" +"while (socket.Wait() == OK) \n" +"{\n" +" string data = socket.GetPacket().GetStringFromASCII(); \n" +" if (data == \"Time to stop\") \n" +" { \n" +" return; \n" +" } \n" +"}\n" +"[/csharp] \n" "[/codeblocks]" msgid "A GUI control that displays a [StyleBox]." @@ -87729,13 +112302,6 @@ msgstr "" msgid "[Texture2D] to be applied to the [PanoramaSkyMaterial]." msgstr "[Texture2D], щоб застосувати до [PanoramaSkyMaterial]." -msgid "" -"This node is meant to replace [ParallaxBackground] and [ParallaxLayer]. The " -"implementation may change in the future." -msgstr "" -"Цей вузол призначений для заміни [ParallaxBackground] і [ParallaxLayer]. " -"Реалізація може змінюватися в майбутньому." - msgid "A node used to create a parallax scrolling background." msgstr "Вузол використовується для створення паралаксаного розкручування фону." @@ -88061,6 +112627,25 @@ msgstr "" "Якщо [code]true[/code], ви можете вказати прапор частин. Див. [enum " "ParticleFlags] для опцій." +msgid "" +"The alpha value of each particle's color will be multiplied by this " +"[CurveTexture] over its lifetime.\n" +"[b]Note:[/b] [member alpha_curve] multiplies the particle mesh's vertex " +"colors. To have a visible effect on a [BaseMaterial3D], [member " +"BaseMaterial3D.vertex_color_use_as_albedo] [i]must[/i] be [code]true[/code]. " +"For a [ShaderMaterial], [code]ALBEDO *= COLOR.rgb;[/code] must be inserted in " +"the shader's [code]fragment()[/code] function. Otherwise, [member " +"alpha_curve] will have no visible effect." +msgstr "" +"Значення альфа кольору кожної частинки буде помножено на цю [CurveTexture] " +"протягом її життя. \n" +"[b]Примітка:[/b] [member alpha_curve] помножує кольори вершин сітки частинок. " +"Щоб мати видимий ефект на [BaseMaterial3D], [член BaseMaterial3D." +"vertex_color_use_as_albedo] [i]має[/i] бути [code]true[/code]. Для " +"[ShaderMaterial] [code]ALBEDO *= COLOR.rgb;[/code] потрібно вставити у " +"функцію [code]fragment()[/code] шейдера. Інакше [member alpha_curve] не " +"матиме видимого ефекту." + msgid "Each particle's rotation will be animated along this [CurveTexture]." msgstr "Кожне обертання часток буде анімованим по цьому [CurveTexture]." @@ -88283,6 +112868,25 @@ msgstr "" "фрагмент шейра [code] ()[/code]. В іншому випадку, [пам'ятати " "emission_color_texture] не буде видимого ефекту." +msgid "" +"Each particle's color will be multiplied by this [CurveTexture] over its " +"lifetime.\n" +"[b]Note:[/b] [member emission_curve] multiplies the particle mesh's vertex " +"colors. To have a visible effect on a [BaseMaterial3D], [member " +"BaseMaterial3D.vertex_color_use_as_albedo] [i]must[/i] be [code]true[/code]. " +"For a [ShaderMaterial], [code]ALBEDO *= COLOR.rgb;[/code] must be inserted in " +"the shader's [code]fragment()[/code] function. Otherwise, [member " +"emission_curve] will have no visible effect." +msgstr "" +"Колір кожної частинки буде помножено на цю [CurveTexture] протягом її " +"життя. \n" +"[b]Примітка: [/b] [member emission_curve] помножує кольори вершин сітки " +"частинок. Щоб мати видимий ефект на [BaseMaterial3D], [член BaseMaterial3D." +"vertex_color_use_as_albedo] [i]має[/i] бути [code]true[/code]. Для " +"[ShaderMaterial] [code]ALBEDO *= COLOR.rgb;[/code] потрібно вставити у " +"функцію [code]fragment()[/code] шейдера. Інакше [member emission_curve] не " +"матиме видимого ефекту." + msgid "" "Particle velocity and rotation will be set by sampling this texture at the " "same point as the [member emission_point_texture]. Used only in [constant " @@ -88518,6 +113122,23 @@ msgstr "" "будуть спалюватися від субеміттера до тих пір, поки не закінчуються достатні " "частинки." +msgid "" +"The amount of particles to spawn from the subemitter node when the particle " +"spawns.\n" +"[b]Note:[/b] This value shouldn't exceed [member GPUParticles2D.amount] or " +"[member GPUParticles3D.amount] defined on the [i]subemitter node[/i] (not the " +"main node), relative to the subemitter's particle lifetime. If the number of " +"particles is exceeded, no new particles will spawn from the subemitter until " +"enough particles have expired." +msgstr "" +"Кількість частинок, які породжуються з вузла підвипромінювача, коли частинки " +"породжуються. \n" +"[b]Примітка:[/b] Це значення не повинно перевищувати [member GPUParticles2D." +"amount] або [member GPUParticles3D.amount], визначені на [i]вузлі " +"підвипромінювача[/i] (а не на головному вузлі), відносно часу життя частинки " +"підвипромінювача. Якщо кількість частинок перевищено, нові частинки не " +"з’являться із субімітера, доки не закінчиться достатня кількість частинок." + msgid "" "The frequency at which particles should be emitted from the subemitter node. " "One particle will be spawned every [member sub_emitter_frequency] seconds.\n" @@ -88685,6 +113306,22 @@ msgstr "" "Точка pivot використовується для розрахунку радіальної та орбітальної " "швидкості частинок." +msgid "" +"Emitted when this material's emission shape is changed in any way. This " +"includes changes to [member emission_shape], [member emission_shape_scale], " +"or [member emission_sphere_radius], and any other property that affects the " +"emission shape's offset, size, scale, or orientation.\n" +"[b]Note:[/b] This signal is only emitted inside the editor for performance " +"reasons." +msgstr "" +"Випромінюється, коли форма випромінювання цього матеріалу будь-яким чином " +"змінюється. Це включає зміни в [member emission_shape], [member " +"emission_shape_scale] або [member emission_sphere_radius], а також будь-які " +"інші властивості, які впливають на зміщення, розмір, масштаб або орієнтацію " +"форми випромінювання. \n" +"[b]Примітка: [/b] Цей сигнал випромінюється лише всередині редактора з " +"міркувань продуктивності." + msgid "" "Use with [method set_param_min], [method set_param_max], and [method " "set_param_texture] to set initial velocity properties." @@ -88961,6 +113598,24 @@ msgstr "" "Відстань вздовж шляху, в пікселів. Зміна цього значення встановлює позицію " "вершини до точки в межах шляху." +msgid "" +"The distance along the path as a number in the range 0.0 (for the first " +"vertex) to 1.0 (for the last). This is just another way of expressing the " +"progress within the path, as the offset supplied is multiplied internally by " +"the path's length.\n" +"It can be set or get only if the [PathFollow2D] is the child of a [Path2D] " +"which is part of the scene tree, and that this [Path2D] has a [Curve2D] with " +"a non-zero length. Otherwise, trying to set this field will print an error, " +"and getting this field will return [code]0.0[/code]." +msgstr "" +"Відстань уздовж шляху як число в діапазоні від 0,0 (для першої вершини) до " +"1,0 (для останньої). Це лише інший спосіб вираження прогресу в межах шляху, " +"оскільки надане зміщення внутрішньо множиться на довжину шляху. \n" +"Його можна встановити або отримати, лише якщо [PathFollow2D] є дочірнім " +"елементом [Path2D], який є частиною дерева сцени, і що цей [Path2D] має " +"[Curve2D] ненульової довжини. Інакше спроба встановити це поле виведе " +"помилку, а отримання цього поля поверне [code]0.0[/code]." + msgid "" "If [code]true[/code], this node rotates to follow the path, with the +X " "direction facing forward on the path." @@ -89024,6 +113679,24 @@ msgstr "" "Відстань від першої вершини вимірюється в 3D блоках вздовж шляху. Зміна цього " "значення встановлює позицію вершини до точки в межах шляху." +msgid "" +"The distance from the first vertex, considering 0.0 as the first vertex and " +"1.0 as the last. This is just another way of expressing the progress within " +"the path, as the progress supplied is multiplied internally by the path's " +"length.\n" +"It can be set or get only if the [PathFollow3D] is the child of a [Path3D] " +"which is part of the scene tree, and that this [Path3D] has a [Curve3D] with " +"a non-zero length. Otherwise, trying to set this field will print an error, " +"and getting this field will return [code]0.0[/code]." +msgstr "" +"Відстань від першої вершини, враховуючи 0,0 як першу вершину та 1,0 як " +"останню. Це лише інший спосіб вираження прогресу в межах шляху, оскільки " +"наданий прогрес внутрішньо множиться на довжину шляху. \n" +"Його можна встановити або отримати, лише якщо [PathFollow3D] є дочірнім " +"елементом [Path3D], який є частиною дерева сцени, і що цей [Path3D] має " +"[Curve3D] ненульової довжини. Інакше спроба встановити це поле виведе " +"помилку, а отримання цього поля поверне [code]0.0[/code]." + msgid "" "Allows or forbids rotation on one or more axes, depending on the [enum " "RotationMode] constants being used." @@ -89067,6 +113740,70 @@ msgstr "" msgid "Creates packages that can be loaded into a running project." msgstr "Створює пакети, які можуть бути завантажені в запущений проект." +msgid "" +"The [PCKPacker] is used to create packages that can be loaded into a running " +"project using [method ProjectSettings.load_resource_pack].\n" +"[codeblocks]\n" +"[gdscript]\n" +"var packer = PCKPacker.new()\n" +"packer.pck_start(\"test.pck\")\n" +"packer.add_file(\"res://text.txt\", \"text.txt\")\n" +"packer.flush()\n" +"[/gdscript]\n" +"[csharp]\n" +"var packer = new PckPacker();\n" +"packer.PckStart(\"test.pck\");\n" +"packer.AddFile(\"res://text.txt\", \"text.txt\");\n" +"packer.Flush();\n" +"[/csharp]\n" +"[/codeblocks]\n" +"The above [PCKPacker] creates package [code]test.pck[/code], then adds a file " +"named [code]text.txt[/code] at the root of the package.\n" +"[b]Note:[/b] PCK is Godot's own pack file format. To create ZIP archives that " +"can be read by any program, use [ZIPPacker] instead." +msgstr "" +"[PCKPacker] використовується для створення пакетів, які можна завантажити в " +"запущений проект за допомогою [методу ProjectSettings.load_resource_pack]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var packer = PCKPacker.new() \n" +"packer.pck_start(\"test.pck\") \n" +"packer.add_file(\"res://text.txt\", \"text.txt\") \n" +"packer.flush() \n" +"[/gdscript] \n" +"[csharp] \n" +"var packer = new PckPacker(); \n" +"packer.PckStart(\"test.pck\"); \n" +"packer.AddFile(\"res://text.txt\", \"text.txt\"); \n" +"packer.Flush(); \n" +"[/csharp] \n" +"[/codeblocks] \n" +"Наведений вище [PCKPacker] створює пакет [code]test.pck[/code], а потім додає " +"файл із назвою [code]text.txt[/code] у кореневій папці пакета. \n" +"[b]Примітка:[/b] PCK — це власний формат файлу пакету Godot. Щоб створити ZIP-" +"архіви, які можна прочитати будь-якою програмою, замість цього використовуйте " +"[ZIPPacker]." + +msgid "" +"Adds the [param source_path] file to the current PCK package at the [param " +"target_path] internal path. The [code]res://[/code] prefix for [param " +"target_path] is optional and stripped internally." +msgstr "" +"Додає файл [param source_path] до поточного пакета PCK за внутрішнім шляхом " +"[param target_path]. Префікс [code]res://[/code] для [param target_path] є " +"необов’язковим і видаляється внутрішньо." + +msgid "" +"Registers a file removal of the [param target_path] internal path to the PCK. " +"This is mainly used for patches. If the file at this path has been loaded " +"from a previous PCK, it will be removed. The [code]res://[/code] prefix for " +"[param target_path] is optional and stripped internally." +msgstr "" +"Реєструє видалення файлу внутрішнього шляху [param target_path] до PCK. Це в " +"основному використовується для патчів. Якщо файл за цим шляхом було " +"завантажено з попереднього PCK, його буде видалено. Префікс [code]res://[/" +"code] для [param target_path] є необов’язковим і видаляється внутрішньо." + msgid "" "Writes the files specified using all [method add_file] calls since the last " "flush. If [param verbose] is [code]true[/code], a list of files added will be " @@ -89076,6 +113813,15 @@ msgstr "" "останнього флуш. Якщо [param testose] є [code]true[/code], список доданих " "файлів буде надруковано в консолі для полегшення відключення." +msgid "" +"Creates a new PCK file at the file path [param pck_path]. The [code].pck[/" +"code] file extension isn't added automatically, so it should be part of " +"[param pck_path] (even though it's not required)." +msgstr "" +"Створює новий файл PCK на шляху до файлу [param pck_path]. Розширення файлу " +"[code].pck[/code] не додається автоматично, тому воно має бути частиною " +"[param pck_path] (хоча це не обов’язково)." + msgid "Exposes performance-related data." msgstr "Виставки даних, пов'язані з виконанням." @@ -89184,7 +113930,7 @@ msgstr "" "використовується категорія за замовчуванням. Типовою категорією є " "[code]\"Custom\"[/code]. Виводить повідомлення про помилку, якщо даний [param " "id] уже присутній.\n" -"[кодові блоки]\n" +"[codeblocks]\n" "[gdscript]\n" "func _ready():\n" " var monitor_value = Callable(self, \"get_monitor_value\")\n" @@ -89273,19 +114019,19 @@ msgid "" "See [method get_custom_monitor] to query custom performance monitors' values." msgstr "" "Повертає значення одного з доступних вбудованих моніторів. Ви повинні надати " -"один з [enum Monitor] константи як аргумент, як це:\n" -"[блоки коду]\n" -"[видання]\n" -"print(Performance.get_monitor(Performance.TIME_FPS)) # Друкувати FPS до " -"консолі.\n" -"[/gdscript]\n" -"[csharp]\n" -"GD.Print(Performance.GetMonitor(Performance.Monitor.TimeFps)); // Друкувати " -"FPS до консолі.\n" -"[/csharp]\n" -"[/codeblocks]\n" -"Див. [метод get_custom_monitor] для запиту значень користувацького монітора " -"продуктивності." +"одну з констант [enum Monitor] як аргумент, наприклад: \n" +"[codeblocks] \n" +"[gdscript] \n" +"print(Performance.get_monitor(Performance.TIME_FPS)) # Виводить FPS на " +"консоль. \n" +"[/gdscript] \n" +"[csharp] \n" +"GD.Print(Performance.GetMonitor(Performance.Monitor.TimeFps)); // Виводить " +"FPS на консоль. \n" +"[/csharp] \n" +"[/codeblocks] \n" +"Перегляньте [метод get_custom_monitor], щоб запитати значення спеціальних " +"моніторів продуктивності." msgid "" "Returns the last tick in which custom monitor was added/removed (in " @@ -89516,6 +114262,52 @@ msgstr "" "об'єднані в [NavigationServer3D]. Краї все-таки можуть бути підключені до " "краю поруч або з посиланнями." +msgid "Number of active navigation obstacles in the [NavigationServer3D]." +msgstr "Кількість активних навігаційних перешкод у [NavigationServer3D]." + +msgid "" +"Number of pipeline compilations that were triggered by the 2D canvas renderer." +msgstr "" +"Кількість конвеєрних компіляцій, ініційованих засобом візуалізації 2D-полотна." + +msgid "" +"Number of pipeline compilations that were triggered by loading meshes. These " +"compilations will show up as longer loading times the first time a user runs " +"the game and the pipeline is required." +msgstr "" +"Кількість конвеєрних компіляцій, ініційованих завантаженням сіток. Ці " +"компіляції відображатимуться як довший час завантаження під час першого " +"запуску гри користувачем і потрібен конвеєр." + +msgid "" +"Number of pipeline compilations that were triggered by building the surface " +"cache before rendering the scene. These compilations will show up as a " +"stutter when loading an scene the first time a user runs the game and the " +"pipeline is required." +msgstr "" +"Кількість конвеєрних компіляцій, які були ініційовані створенням поверхневого " +"кешу перед відтворенням сцени. Ці компіляції відображатимуться як заїкання " +"під час завантаження сцени, коли користувач запускає гру вперше, і потрібен " +"конвеєр." + +msgid "" +"Number of pipeline compilations that were triggered while drawing the scene. " +"These compilations will show up as stutters during gameplay the first time a " +"user runs the game and the pipeline is required." +msgstr "" +"Кількість конвеєрних компіляцій, які були запущені під час малювання сцени. " +"Ці компіляції відображатимуться як заїкання під час гри, коли користувач " +"запускає гру вперше, і потрібен конвеєр." + +msgid "" +"Number of pipeline compilations that were triggered to optimize the current " +"scene. These compilations are done in the background and should not cause any " +"stutters whatsoever." +msgstr "" +"Кількість конвеєрних компіляцій, запущених для оптимізації поточної сцени. Ці " +"компіляції виконуються у фоновому режимі та не повинні спричиняти жодних " +"зависань." + msgid "Represents the size of the [enum Monitor] enum." msgstr "Представляємо розмір [enum Monitor] enum." @@ -89640,6 +114432,69 @@ msgstr "" "має можливість вимкнути стандартну інтеграцію сил і повністю налаштувати силу " "інтеграції для тіла." +msgid "" +"Applies a directional impulse without affecting rotation.\n" +"An impulse is time-independent! Applying an impulse every frame would result " +"in a framerate-dependent force. For this reason, it should only be used when " +"simulating one-time impacts (use the \"_integrate_forces\" functions " +"otherwise).\n" +"This is equivalent to using [method apply_impulse] at the body's center of " +"mass." +msgstr "" +"Застосовує спрямований імпульс, не впливаючи на обертання. \n" +"Імпульс не залежить від часу! Застосування імпульсу до кожного кадру призведе " +"до появи сили, що залежить від частоти кадрів. З цієї причини його слід " +"використовувати лише під час моделювання одноразових впливів (в інших " +"випадках використовуйте функції \"_integrate_forces\"). \n" +"Це еквівалентно використанню [методу apply_impulse] у центрі мас тіла." + +msgid "" +"Applies a positioned impulse to the PhysicsBone3D.\n" +"An impulse is time-independent! Applying an impulse every frame would result " +"in a framerate-dependent force. For this reason, it should only be used when " +"simulating one-time impacts (use the \"_integrate_forces\" functions " +"otherwise).\n" +"[param position] is the offset from the PhysicsBone3D origin in global " +"coordinates." +msgstr "" +"Застосовує позиціонований імпульс до PhysicsBone3D. \n" +"Імпульс не залежить від часу! Застосування імпульсу до кожного кадру призведе " +"до появи сили, що залежить від частоти кадрів. З цієї причини його слід " +"використовувати лише під час моделювання одноразових впливів (в інших " +"випадках використовуйте функції \"_integrate_forces\"). \n" +"[param position] — це зміщення від початку PhysicsBone3D у глобальних " +"координатах." + +msgid "Returns the unique identifier of the PhysicsBone3D." +msgstr "Повертає унікальний ідентифікатор PhysicsBone3D." + +msgid "" +"Returns [code]true[/code] if the PhysicsBone3D is allowed to simulate physics." +msgstr "" +"Повертає [code]true[/code], якщо PhysicsBone3D дозволено симулювати фізику." + +msgid "" +"Returns [code]true[/code] if the PhysicsBone3D is currently simulating " +"physics." +msgstr "Повертає [code]true[/code], якщо PhysicsBone3D зараз імітує фізику." + +msgid "" +"Damps the body's rotation. By default, the body will use the [member " +"ProjectSettings.physics/3d/default_angular_damp] project setting or any value " +"override set by an [Area3D] the body is in. Depending on [member " +"angular_damp_mode], you can set [member angular_damp] to be added to or to " +"replace the body's damping value.\n" +"See [member ProjectSettings.physics/3d/default_angular_damp] for more details " +"about damping." +msgstr "" +"Гасить обертання тіла. За замовчуванням тіло використовуватиме налаштування " +"проекту [member ProjectSettings.physics/3d/default_angular_damp] або будь-яке " +"перевизначення значення, встановлене [Area3D], у якому знаходиться тіло. " +"Залежно від [member angular_damp_mode], ви можете встановити [member " +"angular_damp], щоб додати або замінити значення демпфування тіла. \n" +"Перегляньте [member ProjectSettings.physics/3d/default_angular_damp], щоб " +"дізнатися більше про демпфування." + msgid "" "Defines how [member angular_damp] is applied. See [enum DampMode] for " "possible values." @@ -89703,6 +114558,18 @@ msgid "" msgstr "" "Фрикція тіла, від [code]0[/code] (без тертя) до [code]1[/code] (макс тертя)." +msgid "" +"This is multiplied by [member ProjectSettings.physics/3d/default_gravity] to " +"produce this body's gravity. For example, a value of [code]1.0[/code] will " +"apply normal gravity, [code]2.0[/code] will apply double the gravity, and " +"[code]0.5[/code] will apply half the gravity to this body." +msgstr "" +"Це множиться на [member ProjectSettings.physics/3d/default_gravity], щоб " +"створити силу тяжіння цього тіла. Наприклад, значення [code]1.0[/code] " +"застосовуватиме до цього тіла звичайну гравітацію, [code]2.0[/code] " +"застосовуватиме подвійну гравітацію, а [code]0.5[/code] застосовуватиме " +"половину сили тяжіння." + msgid "Sets the joint's transform." msgstr "Встановлює трансформацію суглоба." @@ -89712,6 +114579,22 @@ msgstr "Встановлює обертання суглоба в радіана msgid "Sets the joint type. See [enum JointType] for possible values." msgstr "Комплектує тип суглоба. Див. [enum JointType] для можливих значень." +msgid "" +"Damps the body's movement. By default, the body will use [member " +"ProjectSettings.physics/3d/default_linear_damp] or any value override set by " +"an [Area3D] the body is in. Depending on [member linear_damp_mode], [member " +"linear_damp] may be added to or replace the body's damping value.\n" +"See [member ProjectSettings.physics/3d/default_linear_damp] for more details " +"about damping." +msgstr "" +"Гасить рухи тіла. За замовчуванням тіло використовуватиме [member " +"ProjectSettings.physics/3d/default_linear_damp] або будь-яке перевизначення " +"значення, встановлене [Area3D], у якому знаходиться тіло. Залежно від [member " +"linear_damp_mode], [member linear_damp] може бути додано до або замінено " +"значення демпфування тіла. \n" +"Перегляньте [member ProjectSettings.physics/3d/default_linear_damp], щоб " +"дізнатися більше про демпфування." + msgid "" "Defines how [member linear_damp] is applied. See [enum DampMode] for possible " "values." @@ -89748,6 +114631,24 @@ msgstr "" "У цьому режимі значення пошкодження тіла замінює будь-яке значення, " "встановлене в областях або значення за замовчуванням." +msgid "No joint is applied to the PhysicsBone3D." +msgstr "До PhysicsBone3D не застосовується з’єднання." + +msgid "A pin joint is applied to the PhysicsBone3D." +msgstr "На PhysicsBone3D застосовано штифтове з’єднання." + +msgid "A cone joint is applied to the PhysicsBone3D." +msgstr "Конусоподібне з’єднання застосовано до PhysicsBone3D." + +msgid "A hinge joint is applied to the PhysicsBone3D." +msgstr "На PhysicsBone3D застосовано шарнірне з’єднання." + +msgid "A slider joint is applied to the PhysicsBone3D." +msgstr "До PhysicsBone3D застосовано повзун." + +msgid "A 6 degrees of freedom joint is applied to the PhysicsBone3D." +msgstr "У PhysicsBone3D застосовано з’єднання з 6 ступенями свободи." + msgid "" "Node that can be the parent of [PhysicalBone3D] and can apply the simulation " "results to [Skeleton3D]." @@ -90414,44 +115315,47 @@ msgstr "" msgid "" "Overridable version of [method PhysicsDirectBodyState2D." "add_constant_central_force]." -msgstr "Вигідна версія [методичний посібник]." +msgstr "" +"Замінна версія [методу PhysicsDirectBodyState2D.add_constant_central_force]." msgid "" "Overridable version of [method PhysicsDirectBodyState2D.add_constant_force]." -msgstr "Вигідна версія [методичний посібник]." +msgstr "Замінювана версія [методу PhysicsDirectBodyState2D.add_constant_force]." msgid "" "Overridable version of [method PhysicsDirectBodyState2D.add_constant_torque]." -msgstr "Вигідна версія [методичний посібник]." +msgstr "" +"Замінювана версія [методу PhysicsDirectBodyState2D.add_constant_torque]." msgid "" "Overridable version of [method PhysicsDirectBodyState2D.apply_central_force]." -msgstr "Вигідна версія [методикаДизайн2D.apply_central_force]." +msgstr "Замінна версія [методу PhysicsDirectBodyState2D.apply_central_force]." msgid "" "Overridable version of [method PhysicsDirectBodyState2D." "apply_central_impulse]." -msgstr "Визначена версія [методичний посібник]." +msgstr "Замінна версія [методу PhysicsDirectBodyState2D.apply_central_impulse]." msgid "Overridable version of [method PhysicsDirectBodyState2D.apply_force]." -msgstr "Визначена версія [методичний посібник]." +msgstr "Замінна версія [методу PhysicsDirectBodyState2D.apply_force]." msgid "Overridable version of [method PhysicsDirectBodyState2D.apply_impulse]." -msgstr "Визначена версія [методичний посібник]." +msgstr "Замінювана версія [методу PhysicsDirectBodyState2D.apply_impulse]." msgid "Overridable version of [method PhysicsDirectBodyState2D.apply_torque]." -msgstr "Вигідна версія [методичний посібник]." +msgstr "Замінювана версія [методу PhysicsDirectBodyState2D.apply_torque]." msgid "" "Overridable version of [method PhysicsDirectBodyState2D.apply_torque_impulse]." -msgstr "Визначена версія [методичний посібник]." +msgstr "" +"Замінювана версія [методу PhysicsDirectBodyState2D.apply_torque_impulse]." msgid "" "Implement to override the behavior of [member PhysicsDirectBodyState2D." "angular_velocity] and its respective getter." msgstr "" -"Впроваджувати поведінку [пам'ятний фізикаDirectBodyState2D.angular_velocity] " -"та її відповідного оверця." +"Реалізуйте, щоб перевизначити поведінку [члена PhysicsDirectBodyState2D." +"angular_velocity] та відповідного джерела отримання." msgid "" "Implement to override the behavior of [member PhysicsDirectBodyState2D." @@ -90469,93 +115373,110 @@ msgstr "" msgid "" "Overridable version of [method PhysicsDirectBodyState2D.get_constant_force]." -msgstr "Вигідна версія [методичний посібник]." +msgstr "Замінна версія [методу PhysicsDirectBodyState2D.get_constant_force]." msgid "" "Overridable version of [method PhysicsDirectBodyState2D.get_constant_torque]." -msgstr "Вигідна версія [методичний посібник]." +msgstr "" +"Замінювана версія [методу PhysicsDirectBodyState2D.get_constant_torque]." msgid "" "Overridable version of [method PhysicsDirectBodyState2D.get_contact_collider]." -msgstr "Вигідна версія [методичний посібник]." +msgstr "" +"Замінювана версія [методу PhysicsDirectBodyState2D.get_contact_collider]." msgid "" "Overridable version of [method PhysicsDirectBodyState2D." "get_contact_collider_id]." -msgstr "Вигідна версія [методикаДизайн2D.get_contact_collider_id]." +msgstr "" +"Замінювана версія [методу PhysicsDirectBodyState2D.get_contact_collider_id]." msgid "" "Overridable version of [method PhysicsDirectBodyState2D." "get_contact_collider_object]." -msgstr "Вигідна версія [методичний посібник]." +msgstr "" +"Замінювана версія [методу PhysicsDirectBodyState2D." +"get_contact_collider_object]." msgid "" "Overridable version of [method PhysicsDirectBodyState2D." "get_contact_collider_position]." -msgstr "Вигідна версія [методичний посібник]." +msgstr "" +"Замінна версія [методу PhysicsDirectBodyState2D." +"get_contact_collider_position]." msgid "" "Overridable version of [method PhysicsDirectBodyState2D." "get_contact_collider_shape]." -msgstr "Вигідна версія [методичний посібник]." +msgstr "" +"Замінювана версія [методу PhysicsDirectBodyState2D." +"get_contact_collider_shape]." msgid "" "Overridable version of [method PhysicsDirectBodyState2D." "get_contact_collider_velocity_at_position]." -msgstr "Вигідна версія [методичний посібник]." +msgstr "" +"Замінювана версія [методу PhysicsDirectBodyState2D." +"get_contact_collider_velocity_at_position]." msgid "" "Overridable version of [method PhysicsDirectBodyState2D.get_contact_count]." -msgstr "Вигідна версія [методикаДизайн2D.get_contact_count]." +msgstr "Замінювана версія [методу PhysicsDirectBodyState2D.get_contact_count]." msgid "" "Overridable version of [method PhysicsDirectBodyState2D.get_contact_impulse]." -msgstr "Вигідна версія [методичний посібник]." +msgstr "" +"Замінювана версія [методу PhysicsDirectBodyState2D.get_contact_impulse]." msgid "" "Overridable version of [method PhysicsDirectBodyState2D." "get_contact_local_normal]." -msgstr "Вигідна версія [методичний посібник]." +msgstr "" +"Замінювана версія [методу PhysicsDirectBodyState2D.get_contact_local_normal]." msgid "" "Overridable version of [method PhysicsDirectBodyState2D." "get_contact_local_position]." -msgstr "Вигідна версія [методичний посібник]." +msgstr "" +"Замінна версія [методу PhysicsDirectBodyState2D.get_contact_local_position]." msgid "" "Overridable version of [method PhysicsDirectBodyState2D." "get_contact_local_shape]." -msgstr "Вигідна версія [методичний посібник]." +msgstr "" +"Замінювана версія [методу PhysicsDirectBodyState2D.get_contact_local_shape]." msgid "" "Overridable version of [method PhysicsDirectBodyState2D." "get_contact_local_velocity_at_position]." -msgstr "Вигідна версія [методичний посібник]." +msgstr "" +"Замінювана версія [методу PhysicsDirectBodyState2D." +"get_contact_local_velocity_at_position]." msgid "" "Implement to override the behavior of [member PhysicsDirectBodyState2D." "inverse_inertia] and its respective getter." msgstr "" -"Впроваджувати поведінку [пам'ятний фізикаDirectBodyState2D.inverse_inertia] " -"та її відповідного оверця." +"Реалізуйте, щоб змінити поведінку [члена PhysicsDirectBodyState2D." +"inverse_inertia] та відповідного джерела отримання." msgid "" "Implement to override the behavior of [member PhysicsDirectBodyState2D." "inverse_mass] and its respective getter." msgstr "" -"Впровадити перенаречену поведінку [пам'ятий фізикаDirectBodyState2D." -"inverse_mass] та її відповідного отримувача." +"Реалізуйте, щоб перевизначити поведінку [члена PhysicsDirectBodyState2D." +"inverse_mass] і відповідного джерела отримання." msgid "" "Implement to override the behavior of [member PhysicsDirectBodyState2D." "linear_velocity] and its respective getter." msgstr "" -"Впроваджувати поведінку [пам'ятний фізикаDirectBodyState2D.linear_velocity] " -"та її відповідного оверця." +"Реалізуйте, щоб перевизначити поведінку [члена PhysicsDirectBodyState2D." +"linear_velocity] та відповідного джерела отримання." msgid "" "Overridable version of [method PhysicsDirectBodyState2D.get_space_state]." -msgstr "Вигідна версія [методикаДизайн2D.get_space_state]." +msgstr "Замінна версія [методу PhysicsDirectBodyState2D.get_space_state]." msgid "" "Implement to override the behavior of [member PhysicsDirectBodyState2D.step] " @@ -90617,11 +115538,12 @@ msgstr "" msgid "" "Overridable version of [method PhysicsDirectBodyState2D.set_constant_force]." -msgstr "Вигідна версія [методичний посібник]." +msgstr "Замінювана версія [методу PhysicsDirectBodyState2D.set_constant_force]." msgid "" "Overridable version of [method PhysicsDirectBodyState2D.set_constant_torque]." -msgstr "Вигідна версія [методичний посібник]." +msgstr "" +"Замінювана версія [методу PhysicsDirectBodyState2D.set_constant_torque]." msgid "" "Implement to override the behavior of [member PhysicsDirectBodyState2D." @@ -90819,6 +115741,38 @@ msgstr "" "що пропущена в [ФізикаShapeQueryParameters2D] об'єкт, другий - у складеній " "формі з фізичного простору." +msgid "" +"Checks the intersections of a shape, given through a " +"[PhysicsShapeQueryParameters2D] object, against the space. If it collides " +"with more than one shape, the nearest one is selected. If the shape did not " +"intersect anything, then an empty dictionary is returned instead.\n" +"[b]Note:[/b] This method does not take into account the [code]motion[/code] " +"property of the object. The returned object is a dictionary containing the " +"following fields:\n" +"[code]collider_id[/code]: The colliding object's ID.\n" +"[code]linear_velocity[/code]: The colliding object's velocity [Vector2]. If " +"the object is an [Area2D], the result is [code](0, 0)[/code].\n" +"[code]normal[/code]: The collision normal of the query shape at the " +"intersection point, pointing away from the intersecting object.\n" +"[code]point[/code]: The intersection point.\n" +"[code]rid[/code]: The intersecting object's [RID].\n" +"[code]shape[/code]: The shape index of the colliding shape." +msgstr "" +"Checks the intersections of a shape, given through a " +"[PhysicsShapeQueryParameters2D] object, against the space. If it collides " +"with more than one shape, the nearest one is selected. If the shape did not " +"intersect anything, then an empty dictionary is returned instead.\n" +"[b]Примітка:[/b] цей метод не враховує властивість [code]motion[/code] " +"об’єкта. Повернений об’єкт – це словник, що містить такі поля: \n" +"[code]collider_id[/code]: ідентифікатор об’єкта зіткнення. \n" +"[code]лінійна_швидкість[/code]: швидкість об’єкта, що зіткнувся [Вектор2]. " +"Якщо об’єкт є [Area2D], результатом буде [code](0, 0)[/code]. \n" +"[code]нормаль[/code]: нормаль зіткнення фігури запиту в точці перетину, " +"спрямована від об’єкта, що перетинається. \n" +"[code]точка[/code]: точка перетину. \n" +"[code]rid[/code]: [RID] об’єкта, що перетинається. \n" +"[code]форма[/code]: індекс фігури, що зіштовхується." + msgid "" "Checks whether a point is inside any solid shape. Position and other " "parameters are defined through [PhysicsPointQueryParameters2D]. The shapes " @@ -90974,6 +115928,40 @@ msgstr "" "формі з фізичного простору.\n" "[b]Note:[/b] Цей метод не враховує [code]motion[/code] властивість об'єкту." +msgid "" +"Checks the intersections of a shape, given through a " +"[PhysicsShapeQueryParameters3D] object, against the space. If it collides " +"with more than one shape, the nearest one is selected. The returned object is " +"a dictionary containing the following fields:\n" +"[code]collider_id[/code]: The colliding object's ID.\n" +"[code]linear_velocity[/code]: The colliding object's velocity [Vector3]. If " +"the object is an [Area3D], the result is [code](0, 0, 0)[/code].\n" +"[code]normal[/code]: The collision normal of the query shape at the " +"intersection point, pointing away from the intersecting object.\n" +"[code]point[/code]: The intersection point.\n" +"[code]rid[/code]: The intersecting object's [RID].\n" +"[code]shape[/code]: The shape index of the colliding shape.\n" +"If the shape did not intersect anything, then an empty dictionary is returned " +"instead.\n" +"[b]Note:[/b] This method does not take into account the [code]motion[/code] " +"property of the object." +msgstr "" +"Перевіряє перетини фігури, заданої через об’єкт " +"[PhysicsShapeQueryParameters3D], з пробілом. Якщо вона стикається з кількома " +"фігурами, вибирається найближча. Повернений об’єкт – це словник, що містить " +"такі поля:\n" +"[code]collider_id[/code]: ідентифікатор об’єкта зіткнення. \n" +"[code]лінійна_швидкість[/code]: швидкість об’єкта, що зіткнувся [Вектор3]. " +"Якщо об’єкт є [Area3D], результатом є [code](0, 0, 0)[/code]. \n" +"[code]нормаль[/code]: нормаль зіткнення фігури запиту в точці перетину, " +"спрямована від об’єкта, що перетинається. \n" +"[code]точка[/code]: точка перетину. \n" +"[code]rid[/code]: [RID] об’єкта, що перетинається. \n" +"[code]форма[/code]: індекс фігури, що зіштовхується. \n" +"Якщо фігура нічого не перетинає, замість неї повертається порожній словник. \n" +"[b]Примітка.[/b] Цей метод не враховує властивість [code]motion[/code] " +"об’єкта." + msgid "" "Checks whether a point is inside any solid shape. Position and other " "parameters are defined through [PhysicsPointQueryParameters3D]. The shapes " @@ -91302,13 +116290,13 @@ msgid "" "var collision = get_world_3d().direct_space_state.intersect_ray(query)\n" "[/codeblock]" msgstr "" -"Повертає новий, попередньо налаштований [PhysicsRayQueryParameters3D] об'єкт. " -"Використовуйте його для швидкого створення параметрів запиту за допомогою " -"найбільш поширених варіантів.\n" -"[блокування коду]\n" -"var query = ФізикаRayQueryParameters3D.create(положення, позиція + Vector3(0, " -"-10, 0)))\n" -"var зіткнення = get_world_3d().direct_space_state.intersect_ray(query)\n" +"Повертає новий, попередньо налаштований об’єкт [PhysicsRayQueryParameters3D]. " +"Використовуйте його для швидкого створення параметрів запиту, використовуючи " +"найпоширеніші параметри. \n" +"[codeblock] \n" +"var query = PhysicsRayQueryParameters3D.create(position, position + " +"Vector3(0, -10, 0)) \n" +"var collision = get_world_3d().direct_space_state.intersect_ray(query) \n" "[/codeblock]" msgid "" @@ -93930,42 +118918,41 @@ msgid "" "respective area object in the physics server. The raycast node queries the " "direct state of the relevant space in the physics server." msgstr "" -"EnglishDeutschPусский简体中文中國傳統" -"EspañolالعربيةFrançaisελληνικάDanskАнглійскаябългарскиCatalàČeskýEestiSuomiGaeilgeहिन्दीHrvatskiMagyarIndonesiaIcelandicItalianoעברי" -"日本の한국의LietuvosLatvijasмакедонскиSvenskaไทยTürkçe Він може безпосередньо " -"створювати і маніпулювати всі об'єкти фізики:\n" -"- A [i]space[/i] є самодостатнім світом для динамічного моделювання. Містить " -"тіла, ділянки та суглоби. Свою державу можна перемішати для зіткнень і " -"перетину інформації, а також кілька параметрів моделювання можуть бути " -"модифіковані.\n" -"- A [i] форма [/i] є геометричною формою, такими як сфера, коробка, циліндр " -"або полігон. Для виявлення зіткнень можна використовувати, додавши його до " -"тіла/реа, можливо, з додатковим перетворенням відносно походження тіла/реа. " -"До них можна додавати тіл/арифи з різними локальними перетвореннями.\n" -"- A [i]body[/i] являє собою фізичний об'єкт, який може бути в статичному, " -"кінематичного або ж жорсткому режимі. Його стан (наприклад, позиція і " -"швидкість) може бути перевірений і оновлений. Підсумок для інтеграції сил " -"може бути встановлений для налаштування фізики тіла.\n" -"- [i]area[/i] є регіоном в просторі, яка може бути використана для виявлення " -"тіл і областей, що надходять і виходу його. Запобігання з моніторингу тіла " -"може бути встановлена, щоб звітувати про внесення/вилучення форм тіла, а " -"аналогічно може бути встановлений моніторинг зони. Витривалість і пошкодження " -"можуть переноситися в межах області за допомогою налаштування параметрів " -"області.\n" -"- A [i]joint[/i] є обмеженням, або між двома тілами або на одному тілі " -"відносно точки. Параметри, такі як з'єднання і довжина решти весняного " -"суглоба можна регулювати.\n" -"Фізика об'єктів в [PhysicsServer3D] може бути створена і маніпулюється " -"самостійно; вони не повинні бути прив'язані до вузлів в декорі дерева.\n" -"[b]Примітка:[/b] Всі вершини фізики 3D використовують фізичний сервер " -"внутрішньо. Додавання фізичного вузла до дерева сцени призведе до створення " -"відповідного фізичного об'єкта, який буде створено на фізичному сервері. " -"Жорсткий вузол тіла реєструє зворотний зв’язок, який оновлює перетворення " -"вершини з перетворенням відповідного об’єкта тіла на сервері фізики " -"(середнього оновлення фізики). Вузловий вузол реєструє зворотний дзвінок, щоб " -"повідомити вузол області про перекриття з відповідним об'єктом області на " -"сервері фізики. Випадковий вузол вимагає прямого стану відповідного простору " -"на сервері фізики." +"PhysicsServer3D — це сервер, який відповідає за всю 3D-фізику. Він може " +"безпосередньо створювати та керувати всіма фізичними об’єктами: \n" +"- [i]Простір[/i] — це самодостатній світ для симуляції фізики. Він містить " +"тіла, області та суглоби. Його стан можна запитувати для отримання інформації " +"про зіткнення та перехрестя, а також можна змінити кілька параметрів " +"моделювання. \n" +"- [i]Фігура[/i] — це геометрична фігура, наприклад сфера, прямокутник, " +"циліндр або багатокутник. Його можна використовувати для виявлення зіткнень, " +"додавши його до тіла/області, можливо, з додатковим перетворенням відносно " +"походження тіла/області. До тіл/областей можна додати кілька " +"(трансформованих) форм, а одну форму можна додавати до тіл/областей кілька " +"разів за допомогою різних локальних трансформацій. \n" +"- [i]Тіло[/i] — це фізичний об'єкт, який може перебувати в статичному, " +"кінематичному або твердому режимі. Його стан (наприклад, положення та " +"швидкість) можна запитувати та оновлювати. Зворотний виклик інтеграції сили " +"можна встановити для налаштування фізики тіла. \n" +"- [i]Область[/i] — це область у просторі, яка може бути використана для " +"виявлення тіл і областей, які входять і виходять з неї. Можна налаштувати " +"зворотний виклик моніторингу тіла, щоб повідомляти про вхід/вихід з форм " +"тіла, і аналогічно можна встановити зворотний виклик моніторингу області. " +"Силу тяжіння та демпфування можна перекрити в межах області, встановивши " +"параметри області. \n" +"- [i]З’єднання[/i] — це зв’язок між двома тілами або одним тілом відносно " +"точки. Можна регулювати такі параметри, як ухил з’єднання та довжина спокою " +"пружинного з’єднання. \n" +"Фізичні об’єкти в [PhysicsServer3D] можна створювати та маніпулювати ними " +"незалежно; вони не повинні бути прив'язані до вузлів у дереві сцени. \n" +"[b]Примітка:[/b] усі вузли 3D фізики використовують внутрішній сервер фізики. " +"Додавання вузла фізики до дерева сцени призведе до створення відповідного " +"об’єкта фізики на сервері фізики. Вузол твердого тіла реєструє зворотний " +"виклик, який оновлює перетворення вузла за допомогою перетворення " +"відповідного об’єкта тіла на сервері фізики (кожне оновлення фізики). Вузол " +"області реєструє зворотний виклик, щоб повідомити вузол області про " +"перекриття з відповідним об’єктом області на сервері фізики. Вузол raycast " +"запитує прямий стан відповідного простору на сервері фізики." msgid "" "Adds a shape to the area, along with a transform matrix. Shapes are usually " @@ -95413,36 +120400,36 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"[RID], який буде використовуватися для зіткнень/інтерекційних запитів. " -"Використовуйте це над [пам'яткова форма], якщо ви хочете оптимізувати роботу " -"за допомогою API Servers:\n" -"[блоки коду]\n" -"[видання]\n" -"var форма_rid = PhysServer2D.circle_shape_create()\n" -"Вар радіус = 64\n" -"PhysServer2D.shape_set_data(shape_rid, радіус)\n" +"[RID] запитуваної фігури, яка використовуватиметься для запитів зіткнення/" +"перетину. Використовуйте це замість [member shape], якщо ви хочете " +"оптимізувати продуктивність за допомогою Servers API: \n" +"[codeblocks] \n" +"[gdscript] \n" +"var shape_rid = PhysicsServer2D.circle_shape_create() \n" +"де радіус = 64 \n" +"PhysicsServer2D.shape_set_data(shape_rid, radius) \n" "\n" -"var params = PhysShapeQueryParameters2D.new()\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" +"var params = PhysicsShapeQueryParameters2D.new()\n" +"params.shape_rid = shape_rid \n" "\n" -"Нема Виконувати фізики запитів тут...\n" +"# Виконуйте тут фізичні запити... \n" "\n" -"Нема Випускають форму при виконанні фізико-фізичних запитів.\n" -"English, Українська, Français...\n" -"[/gdscript]\n" -"[csharp]\n" -"РАЙД форма Рід = фізикаСервер2D.CircleShapeCreate();\n" -"int радіус = 64;\n" -"ФізикаServer2D.ShapeSetData (презент, радіус);\n" +"# Відпустіть фігуру, коли закінчите з фізичними запитами. \n" +"PhysicsServer2D.free_rid(shape_rid) \n" +"[/gdscript] \n" +"[csharp] \n" +"RID shapeRid = PhysicsServer2D.CircleShapeCreate(); \n" +"int радіус = 64; \n" +"PhysicsServer2D.ShapeSetData(shapeRid, radius); \n" "\n" -"var params = нова фізикаShapeQueryParameters2D();\n" -"парам. ФормаRid = форма їзда;\n" +"var params = new PhysicsShapeQueryParameters2D();\n" +"params.ShapeRid = shapeRid; \n" "\n" -"// Виконувати фізики запитів тут...\n" +"// Виконувати тут фізичні запити... \n" "\n" -"(Українська) Випускають форму при виконанні фізико-фізичних запитів.\n" -"ФізикаСер2D.FreeRid(shapeRid);\n" -"[/csharp]\n" +"// Відпустіть фігуру, коли закінчите фізичні запити. \n" +"PhysicsServer2D.FreeRid(shapeRid); \n" +"[/csharp] \n" "[/codeblocks]" msgid "The queried shape's transform matrix." @@ -95505,36 +120492,37 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"[RID], який буде використовуватися для зіткнень/інтерекційних запитів. " -"Використовуйте це над [пам'яткова форма], якщо ви хочете оптимізувати роботу " -"за допомогою API Servers:\n" -"[блоки коду]\n" -"[видання]\n" -"var форма_rid = PhysServer3D.shape_create(PhysicsServer3D.SHAPE_SPHERE)\n" -"радіус варення = 2.0\n" -"English, Українська, Français...\n" +"[RID] запитуваної фігури, яка використовуватиметься для запитів зіткнення/" +"перетину. Використовуйте це замість [member shape], якщо ви хочете " +"оптимізувати продуктивність за допомогою Servers API: \n" +"[codeblocks] \n" +"[gdscript] \n" +"var shape_rid = PhysicsServer3D.shape_create(PhysicsServer3D.SHAPE_SPHERE) \n" +"де радіус = 2,0 \n" +"PhysicsServer3D.shape_set_data(shape_rid, radius) \n" "\n" -"var params = PhysShapeQueryParameters3D.new()\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" +"var params = PhysicsShapeQueryParameters3D.new()\n" +"params.shape_rid = shape_rid \n" "\n" -"Нема Виконувати фізики запитів тут...\n" +"# Виконуйте тут фізичні запити... \n" "\n" -"Нема Випускають форму при виконанні фізико-фізичних запитів.\n" -"English, Українська, Français...\n" -"[/gdscript]\n" -"[csharp]\n" -"РАЙД форма Рід = ФізикаСер3D.ShapeCreate(ФізикаСервер3D.ShapeType.Sphere);\n" -"радіус плавлення = 2.0f;\n" -"ФізикаСервер3D.ShapeSetData (презент, радіус);\n" +"# Відпустіть фігуру, коли закінчите з фізичними запитами. \n" +"PhysicsServer3D.free_rid(shape_rid) \n" +"[/gdscript] \n" +"[csharp] \n" +"RID shapeRid = PhysicsServer3D.ShapeCreate(PhysicsServer3D.ShapeType." +"Sphere); \n" +"радіус float = 2.0f; \n" +"PhysicsServer3D.ShapeSetData(shapeRid, radius); \n" "\n" -"var params = нова фізикаShapeQueryParameters3D();\n" -"парам. ФормаRid = форма їзда;\n" +"var params = new PhysicsShapeQueryParameters3D();\n" +"params.ShapeRid = shapeRid; \n" "\n" -"// Виконувати фізики запитів тут...\n" +"// Виконувати тут фізичні запити... \n" "\n" -"(Українська) Випускають форму при виконанні фізико-фізичних запитів.\n" -"ФізикаСер3D.FreeRid(shapeRid);\n" -"[/csharp]\n" +"// Відпустіть фігуру, коли закінчите фізичні запити. \n" +"PhysicsServer3D.FreeRid(shapeRid); \n" +"[/csharp] \n" "[/codeblocks]" msgid "Provides parameters for [method PhysicsServer2D.body_test_motion]." @@ -96084,7 +121072,9 @@ msgstr "" msgid "" "Constructs a default-initialized [Plane] with all components set to [code]0[/" "code]." -msgstr "[code]0[/code]." +msgstr "" +"Створює стандартну ініціалізацію [Plane] з усіма компонентами, встановленими " +"на [code]0[/code]." msgid "Constructs a [Plane] as a copy of the given [Plane]." msgstr "Constructs a [Plane] як копія даної [Plane]." @@ -96578,6 +121568,113 @@ msgstr "" "Полігон повинен [i] не[/i] мати міжсекційні лінії. В іншому випадку " "триангуляція не буде (з друкованим повідомленням про помилку)." +msgid "" +"Returns [code]true[/code] if [param point] falls inside the polygon area.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var polygon_path_finder = PolygonPathFinder.new()\n" +"var points = [Vector2(0.0, 0.0), Vector2(1.0, 0.0), Vector2(0.0, 1.0)]\n" +"var connections = [0, 1, 1, 2, 2, 0]\n" +"polygon_path_finder.setup(points, connections)\n" +"print(polygon_path_finder.is_point_inside(Vector2(0.2, 0.2))) # Prints true\n" +"print(polygon_path_finder.is_point_inside(Vector2(1.0, 1.0))) # Prints false\n" +"[/gdscript]\n" +"[csharp]\n" +"var polygonPathFinder = new PolygonPathFinder();\n" +"Vector2[] points =\n" +"[\n" +" new Vector2(0.0f, 0.0f),\n" +" new Vector2(1.0f, 0.0f),\n" +" new Vector2(0.0f, 1.0f)\n" +"];\n" +"int[] connections = [0, 1, 1, 2, 2, 0];\n" +"polygonPathFinder.Setup(points, connections);\n" +"GD.Print(polygonPathFinder.IsPointInside(new Vector2(0.2f, 0.2f))); // Prints " +"True\n" +"GD.Print(polygonPathFinder.IsPointInside(new Vector2(1.0f, 1.0f))); // Prints " +"False\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Повертає [code]true[/code], якщо [param point] потрапляє в область " +"багатокутника. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var polygon_path_finder = PolygonPathFinder.new() \n" +"var point = [Vector2(0.0, 0.0), Vector2(1.0, 0.0), Вектор2(0.0, 1.0)] \n" +"var connections= [0, 1, 1, 2, 2, 0] \n" +"polygon_path_finder.setup(points, connections) \n" +"print(polygon_path_finder.is_point_inside(Vector2(0.2, 0.2))) # Виводить " +"true \n" +"print(polygon_path_finder.is_point_inside(Vector2(1.0, 1.0))) # Виводить " +"false \n" +"[/gdscript] \n" +"[csharp] \n" +"var polygonPathFinder = new PolygonPathFinder(); \n" +"Vector2[] points = \n" +"[\n" +" new Vector2(0.0f, 0.0f), \n" +" new Vector2(1.0f, 0.0f), \n" +" new Vector2(0.0f, 1.0f) \n" +"];\n" +"int[] connections = [0, 1, 1, 2, 2, 0]; \n" +"polygonPathFinder.Setup(points, connections); \n" +"GD.Print(polygonPathFinder.IsPointInside(new Vector2(0.2f, 0.2f))); // " +"Виводить True \n" +"GD.Print(polygonPathFinder.IsPointInside(new Vector2(1.0f, 1.0f))); // " +"Виводить False \n" +"[/csharp] \n" +"[/codeblocks]" + +msgid "" +"Sets up [PolygonPathFinder] with an array of points that define the vertices " +"of the polygon, and an array of indices that determine the edges of the " +"polygon.\n" +"The length of [param connections] must be even, returns an error if odd.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var polygon_path_finder = PolygonPathFinder.new()\n" +"var points = [Vector2(0.0, 0.0), Vector2(1.0, 0.0), Vector2(0.0, 1.0)]\n" +"var connections = [0, 1, 1, 2, 2, 0]\n" +"polygon_path_finder.setup(points, connections)\n" +"[/gdscript]\n" +"[csharp]\n" +"var polygonPathFinder = new PolygonPathFinder();\n" +"Vector2[] points =\n" +"[\n" +" new Vector2(0.0f, 0.0f),\n" +" new Vector2(1.0f, 0.0f),\n" +" new Vector2(0.0f, 1.0f)\n" +"];\n" +"int[] connections = [0, 1, 1, 2, 2, 0];\n" +"polygonPathFinder.Setup(points, connections);\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Встановлює [PolygonPathFinder] із масивом точок, які визначають вершини " +"багатокутника, та масивом індексів, які визначають ребра багатокутника. \n" +"Довжина [param connections] має бути парною, повертає помилку, якщо " +"непарна. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var polygon_path_finder = PolygonPathFinder.new() \n" +"var point = [Vector2(0.0, 0.0), Vector2(1.0, 0.0), Vector2(0.0, 1.0)] \n" +"var connections= [0, 1, 1, 2, 2, 0] \n" +"polygon_path_finder.setup(points, connections) \n" +"[/gdscript] \n" +"[csharp] \n" +"var polygonPathFinder = new PolygonPathFinder(); \n" +"Vector2[] бали = \n" +"[\n" +" new Vector2(0.0f, 0.0f), \n" +" new Vector2(1.0f, 0.0f), \n" +" new Vector2(0.0f, 1.0f) \n" +"];\n" +"int[] connections = [0, 1, 1, 2, 2, 0]; \n" +"polygonPathFinder.Setup(points, connections); \n" +"[/csharp] \n" +"[/codeblocks]" + msgid "Base class for contextual windows and panels with fixed position." msgstr "Базовий клас для контекстних вікон і панелей з фіксованою позицією." @@ -96809,6 +121906,67 @@ msgstr "" "і [signal id_focused] сигнали. Це не пов'язано з [code]index[/code] аргументи " "в e.g. [метод set_item_checked]." +msgid "" +"Adds a new multistate item with text [param label].\n" +"Contrarily to normal binary items, multistate items can have more than two " +"states, as defined by [param max_states]. The default value is defined by " +"[param default_state].\n" +"An [param id] can optionally be provided, as well as an accelerator ([param " +"accel]). If no [param id] is provided, one will be created from the index. If " +"no [param accel] is provided, then the default value of 0 (corresponding to " +"[constant @GlobalScope.KEY_NONE]) will be assigned to the item (which means " +"it won't have any accelerator). See [method get_item_accelerator] for more " +"info on accelerators.\n" +"[codeblock]\n" +"func _ready():\n" +" add_multistate_item(\"Item\", 3, 0)\n" +"\n" +" index_pressed.connect(func(index: int):\n" +" toggle_item_multistate(index)\n" +" match get_item_multistate(index):\n" +" 0:\n" +" print(\"First state\")\n" +" 1:\n" +" print(\"Second state\")\n" +" 2:\n" +" print(\"Third state\")\n" +" )\n" +"[/codeblock]\n" +"[b]Note:[/b] Multistate items don't update their state automatically and must " +"be done manually. See [method toggle_item_multistate], [method " +"set_item_multistate] and [method get_item_multistate] for more info on how to " +"control it." +msgstr "" +"Додає новий елемент із кількома станами з текстом [мітка параметра]. \n" +"На відміну від звичайних бінарних елементів, елементи з кількома станами " +"можуть мати більше двох станів, як визначено [param max_states]. Значення за " +"замовчуванням визначається [param default_state]. \n" +"Опціонально можна надати [param id], а також прискорювач ([param accel]). " +"Якщо [param id] не вказано, його буде створено з індексу. Якщо [param accel] " +"не надано, тоді елементу буде призначено значення за замовчуванням 0 (що " +"відповідає [constant @GlobalScope.KEY_NONE]) (це означає, що він не матиме " +"прискорювача). Дивіться [method get_item_accelerator], щоб дізнатися більше " +"про прискорювачі. \n" +"[codeblock] \n" +"func _ready(): \n" +" add_multistate_item(\"Елемент\", 3, 0) \n" +"\n" +" index_pressed.connect(func(index: int): \n" +" toggle_item_multistate(index) \n" +" match get_item_multistate(index): \n" +" 0: \n" +" print(\"Перший стан\") \n" +" 1: \n" +" print(\"Другий стан\") \n" +" 2: \n" +" print(\"Третій стан\") \n" +" ) \n" +"[/codeblock] \n" +"[b]Примітка.[/b] Елементи з кількома станами не оновлюють свій стан " +"автоматично, це потрібно робити вручну. Перегляньте [method " +"toggle_item_multistate], [method set_item_multistate] і [method " +"get_item_multistate], щоб дізнатися більше про те, як ним керувати." + msgid "" "Adds a new radio check button with text [param label].\n" "An [param id] can optionally be provided, as well as an accelerator ([param " @@ -97444,6 +122602,9 @@ msgstr "" "[StyleBox] для правої сторони маркованого сепаратора. Див. [метод " "add_separator]." +msgid "[StyleBox] for the background panel." +msgstr "[StyleBox] для фонової панелі." + msgid "[StyleBox] used for the separators. See [method add_separator]." msgstr "" "[StyleBox] використовується для сепараторів. Див. [метод add_separator]." @@ -97567,6 +122728,44 @@ msgstr "" "Поверніть [Аррайт], де кожен елемент є іншим Армуванням значень, необхідних " "для сітки (див. [enum Mesh.ArrayType] константи)." +msgid "" +"Returns the mesh arrays used to make up the surface of this primitive mesh.\n" +"[b]Example:[/b] Pass the result to [method ArrayMesh.add_surface_from_arrays] " +"to create a new surface:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var c = CylinderMesh.new()\n" +"var arr_mesh = ArrayMesh.new()\n" +"arr_mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, c." +"get_mesh_arrays())\n" +"[/gdscript]\n" +"[csharp]\n" +"var c = new CylinderMesh();\n" +"var arrMesh = new ArrayMesh();\n" +"arrMesh.AddSurfaceFromArrays(Mesh.PrimitiveType.Triangles, c." +"GetMeshArrays());\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Повертає масиви сіток, які використовуються для створення поверхні цієї " +"примітивної сітки. \n" +"[b]Приклад: [/b] Передайте результат до [методу ArrayMesh." +"add_surface_from_arrays], щоб створити нову поверхню: \n" +"[codeblocks] \n" +"[gdscript] \n" +"var c = CylinderMesh new(). \n" +"var arr_mesh = ArrayMesh.new() \n" +"arr_mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, c." +"get_mesh_arrays()) \n" +"[/gdscript] \n" +"[csharp] \n" +"var c = new CylinderMesh(); \n" +"var arrMesh = новий ArrayMesh(); \n" +"arrMesh.AddSurfaceFromArrays(Mesh.PrimitiveType.Triangles, c." +"GetMeshArrays()); \n" +"[/csharp] \n" +"[/codeblocks]" + msgid "Request an update of this primitive mesh based on its properties." msgstr "Запитайте оновлення цієї примітивної сітки на основі її властивостей." @@ -97842,6 +123041,16 @@ msgstr "" "вимагає меншої пам'яті.\n" "Використовуються внутрішньо, як матриця проекції [Camera3D]." +msgid "" +"Constructs a default-initialized [Projection] identical to [constant " +"IDENTITY].\n" +"[b]Note:[/b] In C#, this constructs a [Projection] identical to [constant " +"ZERO]." +msgstr "" +"Створює ініціалізований за умовчанням [Projection], ідентичний [constant " +"IDENTITY].\n" +"[b]Примітка.[/b] У C# це створює [Проекцію], ідентичну [константі НУЛЬ]." + msgid "Constructs a [Projection] as a copy of the given [Projection]." msgstr "Constructs a [Projection] як копія даної [Projection]." @@ -97986,6 +123195,17 @@ msgstr "Повертає розміри далекої затискної пло msgid "Returns the horizontal field of view of the projection (in degrees)." msgstr "Повертає горизонтальне поле зору проекції (в градусах)." +msgid "" +"Returns the vertical field of view of the projection (in degrees) associated " +"with the given horizontal field of view (in degrees) and aspect ratio.\n" +"[b]Note:[/b] Unlike most methods of [Projection], [param aspect] is expected " +"to be 1 divided by the X:Y aspect ratio." +msgstr "" +"Повертає вертикальне поле огляду проекції (у градусах), пов’язане з даним " +"горизонтальним полем огляду (у градусах) і співвідношенням сторін. \n" +"[b]Примітка:[/b] На відміну від більшості методів [Projection], очікується, " +"що [param aspect] дорівнює 1, поділеному на співвідношення X:Y." + msgid "" "Returns the factor by which the visible level of detail is scaled by this " "[Projection]." @@ -98202,6 +123422,77 @@ msgstr "" "ви хочете, щоб вони перевизнали базові параметри проекту на всіх платформах " "та налаштуваннях." +msgid "Project Settings" +msgstr "Параметри проекту" + +msgid "" +"Adds a custom property info to a property. The dictionary must contain:\n" +"- [code]\"name\"[/code]: [String] (the property's name)\n" +"- [code]\"type\"[/code]: [int] (see [enum Variant.Type])\n" +"- optionally [code]\"hint\"[/code]: [int] (see [enum PropertyHint]) and " +"[code]\"hint_string\"[/code]: [String]\n" +"[codeblocks]\n" +"[gdscript]\n" +"ProjectSettings.set(\"category/property_name\", 0)\n" +"\n" +"var property_info = {\n" +" \"name\": \"category/property_name\",\n" +" \"type\": TYPE_INT,\n" +" \"hint\": PROPERTY_HINT_ENUM,\n" +" \"hint_string\": \"one,two,three\"\n" +"}\n" +"\n" +"ProjectSettings.add_property_info(property_info)\n" +"[/gdscript]\n" +"[csharp]\n" +"ProjectSettings.Singleton.Set(\"category/property_name\", 0);\n" +"\n" +"var propertyInfo = new Godot.Collections.Dictionary\n" +"{\n" +" {\"name\", \"category/propertyName\"},\n" +" {\"type\", (int)Variant.Type.Int},\n" +" {\"hint\", (int)PropertyHint.Enum},\n" +" {\"hint_string\", \"one,two,three\"},\n" +"};\n" +"\n" +"ProjectSettings.AddPropertyInfo(propertyInfo);\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Додає до властивості спеціальну інформацію про властивість. Словник повинен " +"містити: \n" +"- [code]\"ім'я\"[/code]: [рядок] (ім'я властивості) \n" +"- [code]\"тип\"[/code]: [int] (див. [enum Variant.Type]) \n" +"- необов’язково [code]\"hint\"[/code]: [int] (див. [enum PropertyHint]) і " +"[code]\"hint_string\"[/code]: [String] \n" +"[codeblocks] \n" +"[gdscript] \n" +"ProjectSettings.set(\"category/property_name\", 0) \n" +"\n" +"var property_info = { \n" +" \"name\": \"category_name/property\", \n" +" \"type\": TYPE_INT, \n" +" \"hint\": PROPERTY_HINT_ENUM, \n" +" \"hint_string\": \"one,two,three\" \n" +"}\n" +"\n" +"ProjectSettings.add_property_info(property_info) \n" +"[/gdscript] \n" +"[csharp] \n" +"ProjectSettings.Singleton.Set(\"category/property_name\", 0); \n" +"\n" +"var propertyInfo = new Godot.Collections.Dictionary \n" +"{\n" +" {\"name\", \"category/propertyName\"}, \n" +" {\"type\", (int)Variant.Type.Int}, \n" +" {\"hint\", (int)PropertyHint.Enum}, \n" +" {\"hint_string\", \"one,two,three\"}, \n" +"};\n" +"\n" +"ProjectSettings.AddPropertyInfo(propertyInfo); \n" +"[/csharp] \n" +"[/codeblocks]" + msgid "Clears the whole configuration (not recommended, may break things)." msgstr "Очистити всю конфігурацію (не рекомендується, може розбити речі)." @@ -98238,6 +123529,78 @@ msgstr "" "Повертає порядок конфігураційного значення (впливи при збереженні до файлу " "конфігурацій)." +msgid "" +"Returns the value of the setting identified by [param name]. If the setting " +"doesn't exist and [param default_value] is specified, the value of [param " +"default_value] is returned. Otherwise, [code]null[/code] is returned.\n" +"[codeblocks]\n" +"[gdscript]\n" +"print(ProjectSettings.get_setting(\"application/config/name\"))\n" +"print(ProjectSettings.get_setting(\"application/config/custom_description\", " +"\"No description specified.\"))\n" +"[/gdscript]\n" +"[csharp]\n" +"GD.Print(ProjectSettings.GetSetting(\"application/config/name\"));\n" +"GD.Print(ProjectSettings.GetSetting(\"application/config/" +"custom_description\", \"No description specified.\"));\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] This method doesn't take potential feature overrides into " +"account automatically. Use [method get_setting_with_override] to handle " +"seamlessly." +msgstr "" +"Повертає значення параметра, визначеного [назва параметра]. Якщо налаштування " +"не існує та вказано [param default_value], повертається значення [param " +"default_value]. В іншому випадку повертається [code]null[/code]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"print(ProjectSettings.get_setting(\"application/config/name\")) \n" +"print(ProjectSettings.get_setting(\"application/config/custom_description\", " +"\"Опис не вказано.\")) \n" +"[/gdscript] \n" +"[csharp] \n" +"GD.Print(ProjectSettings.GetSetting(\"application/config/name\")); \n" +"GD.Print(ProjectSettings.GetSetting(\"application/config/" +"custom_description\", \"Опис не вказано.\")); \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка.[/b] Цей метод не враховує потенційні перевизначення функцій " +"автоматично. Використовуйте [method get_setting_with_override], щоб працювати " +"без проблем." + +msgid "" +"Similar to [method get_setting], but applies feature tag overrides if any " +"exists and is valid.\n" +"[b]Example:[/b] If the setting override [code]\"application/config/name." +"windows\"[/code] exists, and the following code is executed on a [i]Windows[/" +"i] operating system, the overridden setting is printed instead:\n" +"[codeblocks]\n" +"[gdscript]\n" +"print(ProjectSettings.get_setting_with_override(\"application/config/" +"name\"))\n" +"[/gdscript]\n" +"[csharp]\n" +"GD.Print(ProjectSettings.GetSettingWithOverride(\"application/config/" +"name\"));\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Подібно до [method get_setting], але застосовує заміни тегів функцій, якщо " +"вони існують і є дійсними. \n" +"[b]Приклад:[/b] Якщо існує заміна налаштувань [код]\"application/config/name." +"windows\"[/code] і наступний код виконується в операційній системі " +"[i]Windows[/i], натомість друкується замінена настройка: \n" +"[codeblocks] \n" +"[gdscript] \n" +"print(ProjectSettings.get_setting_with_override(\"application/config/" +"name\")) \n" +"[/gdscript] \n" +"[csharp] \n" +"GD.Print(ProjectSettings.GetSettingWithOverride(\"application/config/" +"name\")); \n" +"[/csharp] \n" +"[/codeblocks]" + msgid "" "Returns the absolute, native OS path corresponding to the localized [param " "path] (starting with [code]res://[/code] or [code]user://[/code]). The " @@ -98265,36 +123628,62 @@ msgid "" " path = OS.get_executable_path().get_base_dir().path_join(\"hello.txt\")\n" "[/codeblock]" msgstr "" -"Повертає абсолютний, рідний шлях ОС, що відповідає локалізації [тематичний " -"шлях] (починання з [code]res://[/code] або [code]user://[/code]). Повернутий " -"шлях в залежності від операційної системи та налаштування користувачів. Див " -"[url=$DOCS_URL/tutorials/io/data_paths.html] Файлові шляхи у проектах Godot[/" -"url], щоб побачити, які ці шляхи перетворюються на. Дивитися також [метод " -"локалізації_path].\n" -"[b]Note:[/b] [метод Globalize_path] з [code]res://[/code] не буде працювати в " -"експортному проекті. А замість того, щоб предприявити базовий каталог " -"виконкому до шляху при запуску з експортованого проекту:\n" -"[блокування коду]\n" -"Вар шлях = \"\"\n" -"якщо OS.has_feature(\"editor\"):\n" -"# Виконувати з редактора бінарними.\n" -"# `path` буде містити абсолютний шлях до `hello.txt`, який знаходиться в " -"корені проекту.\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"ще:\n" -"# Запуск з експортованого проекту.\n" -"<a href=\"http://realtor.if.ua/\" title=\"Агентство нерухомості Ріелтор\" " -"target=\"_blank\"><img src=\"http://realtor.if.ua/images/realtor_31.gif\" " -"width=\"88\" height=\"31\" alt=\"Агентство нерухомості Ріелтор\" /></a>\n" -"# Це *не * ідентично використовувати `Проекти.globalize_path()` з `res://` " -"шлях,\n" -"# але досить близько в духі.\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" +"Повертає абсолютний вихідний шлях ОС, що відповідає локалізованому [param " +"path] (починаючи з [code]res://[/code] або [code]user://[/code]). Повернений " +"шлях буде відрізнятися залежно від операційної системи та налаштувань " +"користувача. Перегляньте [url=$DOCS_URL/tutorials/io/data_paths.html]шляхи до " +"файлів у проектах Godot[/url], щоб дізнатися, у що ці шляхи перетворюються. " +"Дивіться також [метод localize_path]. \n" +"[b]Примітка: [/b] [метод globalize_path] із [code]res://[/code] не " +"працюватиме в експортованому проекті. Натомість додайте базовий каталог " +"виконуваного файлу до шляху під час запуску з експортованого проекту: \n" +"[codeblock] \n" +"змінний шлях = \"\" \n" +"якщо OS.has_feature(\"редактор\"): \n" +" # Запуск із бінарного редактора. \n" +" # `path` міститиме абсолютний шлях до `hello.txt`, розташованого в корені " +"проекту. \n" +" шлях = ProjectSettings.globalize_path(\"res://hello.txt\") \n" +"ще: \n" +" # Запуск із експортованого проекту. \n" +" # `path` міститиме абсолютний шлях до `hello.txt` поруч із виконуваним " +"файлом. \n" +" # Це *не* ідентично використанню `ProjectSettings.globalize_path()` зі " +"шляхом `res://`, \n" +" # але досить близький за духом. \n" +" path = OS.get_executable_path().get_base_dir().path_join(\"hello.txt\") \n" "[/codeblock]" msgid "Returns [code]true[/code] if a configuration value is present." msgstr "Повертає [code]true[/code], якщо присутній значення конфігурації." +msgid "" +"Loads the contents of the .pck or .zip file specified by [param pack] into " +"the resource filesystem ([code]res://[/code]). Returns [code]true[/code] on " +"success.\n" +"[b]Note:[/b] If a file from [param pack] shares the same path as a file " +"already in the resource filesystem, any attempts to load that file will use " +"the file from [param pack] unless [param replace_files] is set to " +"[code]false[/code].\n" +"[b]Note:[/b] The optional [param offset] parameter can be used to specify the " +"offset in bytes to the start of the resource pack. This is only supported " +"for .pck files.\n" +"[b]Note:[/b] [DirAccess] will not show changes made to the contents of " +"[code]res://[/code] after calling this function." +msgstr "" +"Завантажує вміст файлу .pck або .zip, визначеного [param pack], у файлову " +"систему ресурсу ([code]res://[/code]). У разі успіху повертає [code]true[/" +"code]. \n" +"[b]Примітка:[/b] Якщо файл із [param pack] має той самий шлях, що й файл, уже " +"наявний у файловій системі ресурсу, будь-які спроби завантажити цей файл " +"використовуватимуть файл із [param pack], якщо [param replace_files] не має " +"значення [code]false[/code]. \n" +"[b]Примітка.[/b] Додатковий параметр [param offset] можна використовувати для " +"визначення зміщення в байтах до початку пакета ресурсів. Це підтримується " +"лише для файлів .pck. \n" +"[b]Примітка: [/b] [DirAccess] не відображатиме зміни, внесені до вмісту " +"[code]res://[/code] після виклику цієї функції." + msgid "" "Returns the localized path (starting with [code]res://[/code]) corresponding " "to the absolute, native OS [param path]. See also [method globalize_path]." @@ -98379,6 +123768,31 @@ msgstr "" "set_restart_if_changed] [i]not[/i] затримку налаштування, встановленого при " "зміні." +msgid "" +"Sets the value of a setting.\n" +"[codeblocks]\n" +"[gdscript]\n" +"ProjectSettings.set_setting(\"application/config/name\", \"Example\")\n" +"[/gdscript]\n" +"[csharp]\n" +"ProjectSettings.SetSetting(\"application/config/name\", \"Example\");\n" +"[/csharp]\n" +"[/codeblocks]\n" +"This can also be used to erase custom project settings. To do this change the " +"setting value to [code]null[/code]." +msgstr "" +"Встановлює значення параметра. \n" +"[codeblocks] \n" +"[gdscript] \n" +"ProjectSettings.set_setting(\"application/config/name\", \"Example\") \n" +"[/gdscript] \n" +"[csharp] \n" +"ProjectSettings.SetSetting(\"application/config/name\", \"Example\"); \n" +"[/csharp] \n" +"[/codeblocks] \n" +"Це також можна використовувати для стирання настроюваних налаштувань проекту. " +"Для цього змініть значення параметра на [code]null[/code]." + msgid "" "If [code]true[/code], [AnimationMixer] prints the warning of interpolation " "being forced to choose the shortest rotation path due to multiple angle " @@ -98645,6 +124059,40 @@ msgstr "" "спочатку активується. На машинах, де продуктивність адекватна для рендерингу " "кадрів з частотою оновлень." +msgid "" +"If [code]true[/code], disables printing to standard error. If [code]true[/" +"code], this also hides error and warning messages printed by [method " +"@GlobalScope.push_error] and [method @GlobalScope.push_warning]. See also " +"[member application/run/disable_stdout].\n" +"Changes to this setting will only be applied upon restarting the application. " +"To control this at runtime, use [member Engine.print_error_messages]." +msgstr "" +"Якщо [code]true[/code], вимикає друк зі стандартною помилкою. Якщо " +"[code]true[/code], це також приховує повідомлення про помилки та " +"попередження, надруковані [method @GlobalScope.push_error] і [method " +"@GlobalScope.push_warning]. Дивіться також [member application/run/" +"disable_stdout]. \n" +"Зміни цього параметра буде застосовано лише після перезапуску програми. Щоб " +"контролювати це під час виконання, використовуйте [member Engine." +"print_error_messages]." + +msgid "" +"If [code]true[/code], disables printing to standard output. This is " +"equivalent to starting the editor or project with the [code]--quiet[/code] " +"[url=$DOCS_URL/tutorials/editor/command_line_tutorial.html]command line " +"argument[/url]. See also [member application/run/disable_stderr].\n" +"Changes to this setting will only be applied upon restarting the application. " +"To control this at runtime, use [member Engine.print_to_stdout]." +msgstr "" +"Якщо [code]true[/code], вимикає друк у стандартний вихід. Це еквівалентно " +"запуску редактора або проекту за допомогою [code]--quiet[/code] " +"[url=$DOCS_URL/tutorials/editor/command_line_tutorial.html]аргументу " +"командного рядка[/url]. Дивіться також [member application/run/" +"disable_stderr]. \n" +"Зміни цього параметра буде застосовано лише після перезапуску програми. Щоб " +"контролювати це під час виконання, використовуйте [member Engine." +"print_to_stdout]." + msgid "" "If [code]true[/code], allows the [kbd]Alt + Space[/kbd] keys to display the " "window menu. This menu allows the user to perform various window management " @@ -98833,6 +124281,35 @@ msgstr "" "За замовчуванням [AudioBusLayout] ресурсний файл для використання в проекті, " "якщо перейменувати сцену." +msgid "" +"Specifies the audio driver to use. This setting is platform-dependent as each " +"platform supports different audio drivers. If left empty, the default audio " +"driver will be used.\n" +"The [code]Dummy[/code] audio driver disables all audio playback and " +"recording, which is useful for non-game applications as it reduces CPU usage. " +"It also prevents the engine from appearing as an application playing audio in " +"the OS' audio mixer.\n" +"To query the value that is being used at run-time (which may be overridden by " +"command-line arguments or headless mode), use [method AudioServer." +"get_driver_name].\n" +"[b]Note:[/b] The driver in use can be overridden at runtime via the [code]--" +"audio-driver[/code] [url=$DOCS_URL/tutorials/editor/command_line_tutorial." +"html]command line argument[/url]." +msgstr "" +"Визначає звуковий драйвер для використання. Цей параметр залежить від " +"платформи, оскільки кожна платформа підтримує різні звукові драйвери. Якщо " +"залишити пустим, буде використано стандартний аудіодрайвер. \n" +"Аудіодрайвер [code]Dummy[/code] вимикає будь-яке відтворення та запис аудіо, " +"що корисно для неігрових програм, оскільки зменшує використання ЦП. Це також " +"запобігає відображенню двигуна як програми, що відтворює аудіо в аудіомікшері " +"ОС. \n" +"Щоб запитати значення, яке використовується під час виконання (яке може бути " +"перевизначено аргументами командного рядка або безголовим режимом), " +"використовуйте [метод AudioServer.get_driver_name]. \n" +"[b]Примітка.[/b] Використовуваний драйвер можна змінити під час виконання за " +"допомогою [code]--audio-driver[/code] [url=$DOCS_URL/tutorials/editor/" +"command_line_tutorial.html]аргументу командного рядка[/url]." + msgid "" "If [code]true[/code], microphone input will be allowed. This requires " "appropriate permissions to be set when exporting to Android or iOS.\n" @@ -98849,11 +124326,21 @@ msgstr "" "допускаються для доступу до мікрофона в налаштуваннях конфіденційності OS." msgid "" -"The mixing rate used for audio (in Hz). In general, it's better to not touch " -"this and leave it to the host operating system." +"Target mixing rate used for audio (in Hz). In general, it's better to not " +"touch this and leave it to the host operating system.\n" +"[b]Note:[/b] On iOS and macOS, mixing rate is determined by audio driver, " +"this value is ignored.\n" +"[b]Note:[/b] Input and output mixing rates might be different. Use [method " +"AudioServer.get_mix_rate] and [method AudioServer.get_input_mix_rate] to get " +"actual values." msgstr "" -"Швидкість змішування використовується для аудіо (в Гц). В цілому, краще не " -"доторкнутися до цього і залишити його в операційній системі." +"Цільова швидкість змішування, що використовується для аудіо (у Гц). Загалом, " +"краще не чіпати це і залишити це головній операційній системі. \n" +"[b]Примітка.[/b] В iOS і macOS швидкість мікшування визначається " +"аудіодрайвером, це значення ігнорується. \n" +"[b]Примітка:[/b] Швидкості змішування вхідних і вихідних даних можуть " +"відрізнятися. Використовуйте [method AudioServer.get_mix_rate] і [method " +"AudioServer.get_input_mix_rate], щоб отримати фактичні значення." msgid "" "Safer override for [member audio/driver/mix_rate] in the Web platform. Here " @@ -99136,6 +124623,24 @@ msgstr "" "command_line_tutorial.html]command рядок аргумент[/url] використовується, " "обертання журналу завжди вимкнено." +msgid "" +"When set to [code]warn[/code] or [code]error[/code], produces a warning or an " +"error respectively when an [code]assert[/code] call always evaluates to " +"[code]false[/code]." +msgstr "" +"Якщо встановлено значення [code]warn[/code] або [code]error[/code], створює " +"попередження або помилку відповідно, коли виклик [code]assert[/code] завжди " +"оцінюється як [code]false[/code]." + +msgid "" +"When set to [code]warn[/code] or [code]error[/code], produces a warning or an " +"error respectively when an [code]assert[/code] call always evaluates to " +"[code]true[/code]." +msgstr "" +"Якщо встановлено значення [code]warn[/code] або [code]error[/code], створює " +"попередження або помилку відповідно, коли виклик [code]assert[/code] завжди " +"оцінюється як [code]true[/code]." + msgid "" "When set to [code]warn[/code] or [code]error[/code], produces a warning or an " "error respectively when a local variable captured by a lambda is reassigned, " @@ -99320,6 +124825,15 @@ msgstr "" "попередження або помилку відповідно при поділі цілого по іншому цілому " "(посмертна частина буде відхилена)." +msgid "" +"When set to [code]warn[/code] or [code]error[/code], produces a warning or an " +"error respectively when the base class script has the [code]@tool[/code] " +"annotation, but the current class script does not have it." +msgstr "" +"Якщо встановлено значення [code]warn[/code] або [code]error[/code], створює " +"попередження або помилку відповідно, якщо сценарій базового класу має " +"анотацію [code]@tool[/code], але сценарій поточного класу її не має." + msgid "" "When set to [code]warn[/code] or [code]error[/code], produces a warning or an " "error respectively when passing a floating-point value to a function that " @@ -99404,6 +124918,24 @@ msgstr "" "члена, сигналу або енму, який мав таку ж назву як вбудована функція або назва " "світового класу, таким чином, тінь її." +msgid "" +"When set to [code]warn[/code] or [code]error[/code], produces a warning or an " +"error respectively when a local variable or local constant shadows a member " +"declared in the current class." +msgstr "" +"Якщо встановлено значення [code]warn[/code] або [code]error[/code], створює " +"попередження або помилку відповідно, коли локальна змінна або локальна " +"константа затьмарює член, оголошений у поточному класі." + +msgid "" +"When set to [code]warn[/code] or [code]error[/code], produces a warning or an " +"error respectively when a local variable or local constant shadows a member " +"declared in a base class." +msgstr "" +"Якщо встановлено значення [code]warn[/code] або [code]error[/code], створює " +"попередження або помилку відповідно, коли локальна змінна або локальна " +"константа затьмарює член, оголошений у базовому класі." + msgid "" "When set to [code]warn[/code] or [code]error[/code], produces a warning or an " "error respectively when calling an expression that may have no effect on the " @@ -99581,6 +125113,21 @@ msgstr "" msgid "Maximum call stack allowed for debugging GDScript." msgstr "Максимальний клацання виклику дозволений для видалення GDScript." +msgid "" +"If [code]true[/code], enables warnings which can help pinpoint where nodes " +"are being incorrectly updated, which will result in incorrect interpolation " +"and visual glitches.\n" +"When a node is being interpolated, it is essential that the transform is set " +"during [method Node._physics_process] (during a physics tick) rather than " +"[method Node._process] (during a frame)." +msgstr "" +"Якщо [code]true[/code], вмикає попередження, які можуть допомогти точно " +"визначити, де вузли неправильно оновлюються, що призведе до неправильної " +"інтерполяції та візуальних збоїв. \n" +"Коли вузол інтерполюється, важливо, щоб перетворення було встановлено під час " +"[method Node._physics_process] (під час фізики), а не [method Node._process] " +"(під час кадру)." + msgid "Maximum number of functions per frame allowed when profiling." msgstr "" "Максимальна кількість функцій за кадром, що дозволяється при профільтрації." @@ -100001,6 +125548,51 @@ msgstr "" "[b]Примітка:[/b] Ця установка не впливає на Linux як DPI-аwareness падати не " "підтримується." +msgid "" +"Enable Swappy for stable frame pacing on Android. Highly recommended.\n" +"[b]Note:[/b] This option will be forced off when using OpenXR." +msgstr "" +"Увімкніть Swappy для стабільної частоти кадрів на Android. Дуже рекомендую.\n" +"[b]Примітка:[/b] цей параметр буде примусово вимкнено під час використання " +"OpenXR." + +msgid "" +"Swappy mode to use. The options are:\n" +"- pipeline_forced_on: Try to honor [member Engine.max_fps]. Pipelining is " +"always on. This is the same behavior as Desktop PC.\n" +"- auto_fps_pipeline_forced_on: Autocalculate max fps. Actual max_fps will be " +"between 0 and [member Engine.max_fps]. While this sounds convenient, beware " +"that Swappy will often downgrade max fps until it finds something that can be " +"met and sustained. That means if your game runs between 40fps and 60fps on a " +"60hz screen, after some time Swappy will downgrade max fps so that the game " +"renders at perfect 30fps.\n" +"- auto_fps_auto_pipeline: Same as auto_fps_pipeline_forced_on, but if Swappy " +"detects that rendering is very fast (e.g. it takes < 8ms to render on a 60hz " +"screen) Swappy will disable pipelining to minimize input latency. This is the " +"default.\n" +"[b]Note:[/b] If [member Engine.max_fps] is 0, actual max_fps will considered " +"as to be the screen's refresh rate (often 60hz, 90hz or 120hz depending on " +"device model and OS settings)." +msgstr "" +"Режим Swappy для використання. Варіанти: \n" +"- pipeline_forced_on: Спробуйте вшанувати [member Engine.max_fps]. Конвеєрне " +"забезпечення завжди ввімкнено. Це така ж поведінка, як і настільний ПК. \n" +"- auto_fps_pipeline_forced_on: автоматично обчислити максимальну кількість " +"кадрів в секунду. Фактичний max_fps буде від 0 до [member Engine.max_fps]. " +"Хоча це звучить зручно, майте на увазі, що Swappy часто знижує максимальну " +"кількість кадрів в секунду, доки не знайде те, що можна досягти та " +"підтримувати. Це означає, що якщо ваша гра працює зі швидкістю від 40 до 60 " +"кадрів за секунду на екрані 60 Гц, через деякий час Swappy знизить " +"максимальну частоту кадрів за секунду, щоб гра рендерилася з ідеальними 30 " +"кадрами за секунду. \n" +"- auto_fps_auto_pipeline: Те саме, що auto_fps_pipeline_forced_on, але якщо " +"Swappy виявляє, що візуалізація дуже швидка (наприклад, для рендерингу на " +"екрані 60 Гц потрібно менше 8 мс), Swappy вимкне конвеєрне зведення, щоб " +"мінімізувати затримку введення. Це значення за умовчанням. \n" +"[b]Примітка.[/b] Якщо [member Engine.max_fps] дорівнює 0, фактичний max_fps " +"вважатиметься частотою оновлення екрана (часто 60 Гц, 90 Гц або 120 Гц " +"залежно від моделі пристрою та налаштувань ОС)." + msgid "" "The default screen orientation to use on mobile devices. See [enum " "DisplayServer.ScreenOrientation] for possible values.\n" @@ -100135,6 +125727,15 @@ msgstr "" "коли проект працює з командного рядка. У редакторі використано значення " "[пам'ятних редакторів.run/window_placement/screen]." +msgid "" +"Main window mode. See [enum DisplayServer.WindowMode] for possible values and " +"how each mode behaves.\n" +"[b]Note:[/b] Game embedding is available only in the \"Windowed\" mode." +msgstr "" +"Режим головного вікна. Перегляньте [enum DisplayServer.WindowMode], щоб " +"дізнатися про можливі значення та як поводиться кожен режим.\n" +"[b]Примітка:[/b] Вбудовування гри доступне лише у «Віконному» режимі." + msgid "" "Main window can't be focused. No-focus window will ignore all input, except " "mouse clicks." @@ -100165,6 +125766,14 @@ msgstr "" "вікно буде [i]never[/i] буде повторно.\n" "[b]Примітка:[/b] Ця установка ігнорується на iOS." +msgid "" +"If [code]true[/code], the main window uses sharp corners by default.\n" +"[b]Note:[/b] This property is implemented only on Windows (11)." +msgstr "" +"Якщо [code]true[/code], головне вікно за замовчуванням використовує гострі " +"кути.\n" +"[b]Примітка:[/b] Ця властивість реалізована лише у Windows (11)." + msgid "" "If [code]true[/code], enables a window manager hint that the main window " "background [i]can[/i] be transparent. This does not make the background " @@ -101691,6 +127300,35 @@ msgid "" msgstr "" "специфікацію macOS для ярлика, щоб вибрати слово в даний час під опікою." +msgid "" +"If no selection is currently active with the last caret in text fields, " +"searches for the next occurrence of the word currently under the caret and " +"moves the caret to the next occurrence. The action can be performed " +"sequentially for other occurrences of the word under the last caret.\n" +"If a selection is currently active with the last caret in text fields, " +"searches for the next occurrence of the selection, adds a caret, selects the " +"next occurrence then deselects the previous selection and its associated " +"caret. The action can be performed sequentially for other occurrences of the " +"selection of the last caret.\n" +"The viewport is adjusted to the latest newly added caret.\n" +"[b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are " +"necessary for the internal logic of several [Control]s. The events assigned " +"to the action can however be modified." +msgstr "" +"Якщо в текстових полях з останньою вставкою наразі немає активного виділення, " +"виконується пошук наступного входження слова під введенням і переміщується " +"вставка до наступного входження. Дію можна виконувати послідовно для інших " +"входжень слова під останнім символом вставки. \n" +"Якщо виділення наразі активне з останньою вставкою в текстових полях, " +"виконується пошук наступного входження виділення, додається введення, " +"вибирається наступне входження, а потім скасовується вибір попереднього " +"виділення та пов’язаної з ним вставки. Дія може бути виконана послідовно для " +"інших випадків вибору останнього введення. \n" +"Вікно перегляду налаштовується на останню щойно додану вставку. \n" +"[b]Примітка:[/b] Дії [code]ui_*[/code] за замовчуванням не можна видалити, " +"оскільки вони необхідні для внутрішньої логіки кількох елементів керування. " +"Проте події, призначені для дії, можна змінити." + msgid "" "Default [InputEventAction] to submit a text field.\n" "[b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are " @@ -101729,6 +127367,19 @@ msgstr "" "оскільки вони необхідні для внутрішньої логіки декількох [Control]s. Заходи, " "призначені до дії, можуть бути змінені." +msgid "" +"Default [InputEventAction] to start Unicode character hexadecimal code input " +"in a text field.\n" +"[b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are " +"necessary for the internal logic of several [Control]s. The events assigned " +"to the action can however be modified." +msgstr "" +"За замовчуванням [InputEventAction] для початку введення шістнадцяткового " +"коду символів Юнікоду в текстове поле. \n" +"[b]Примітка:[/b] Дії [code]ui_*[/code] за замовчуванням не можна видалити, " +"оскільки вони необхідні для внутрішньої логіки кількох елементів керування. " +"Проте події, призначені для дії, можна змінити." + msgid "" "Default [InputEventAction] to move up in the UI.\n" "[b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are " @@ -101783,16 +127434,36 @@ msgid "" "used.\n" "[b]Note:[/b] The driver in use can be overridden at runtime via the [code]--" "tablet-driver[/code] [url=$DOCS_URL/tutorials/editor/command_line_tutorial." -"html]command line argument[/url]." +"html]command line argument[/url].\n" +"[b]Note:[/b] Use [method DisplayServer.tablet_set_current_driver] to switch " +"tablet driver in runtime." msgstr "" -"Вкажіть драйвер планшета для використання. Якщо лівий порожній драйвер за " -"замовчуванням буде використовуватися.\n" -"[b]Примітка:[/b] Драйвер у використанні може бути перенаправлений в режимі " -"runtime через [code]-tablet-driver[/code] [url=$DOCS_URL/tutorials/editor/" -"command_line_tutorial.html]command line test[/url]." +"Визначає драйвер планшета для використання. Якщо залишити пустим, буде " +"використано драйвер за замовчуванням. \n" +"[b]Примітка.[/b] Драйвер, який використовується, можна змінити під час " +"виконання за допомогою [code]--tablet-driver[/code] [url=$DOCS_URL/tutorials/" +"editor/command_line_tutorial.html]аргументу командного рядка[/url]. \n" +"[b]Примітка.[/b] Використовуйте [метод DisplayServer." +"tablet_set_current_driver], щоб змінити драйвер планшета під час виконання." -msgid "Override for [member input_devices/pen_tablet/driver] on Windows." -msgstr "Надіслати для [пам'ятний вхід_devices/pen_tablet/driver] на Windows." +msgid "" +"Override for [member input_devices/pen_tablet/driver] on Windows. Supported " +"values are:\n" +"- [code]auto[/code] (default), uses [code]wintab[/code] if Windows Ink is " +"disabled in the Wacom Tablet Properties or system settings, [code]winink[/" +"code] otherwise.\n" +"- [code]winink[/code], uses Windows native \"Windows Ink\" driver.\n" +"- [code]wintab[/code], uses Wacom \"WinTab\" driver.\n" +"- [code]dummy[/code], tablet input is disabled." +msgstr "" +"Заміна для [member input_devices/pen_tablet/driver] у Windows. Підтримувані " +"значення: \n" +"- [code]auto[/code] (за замовчуванням), використовує [code]wintab[/code], " +"якщо Windows Ink вимкнено у властивостях планшета Wacom або системних " +"налаштуваннях, [code]winink[/code] інакше. \n" +"- [code]winink[/code], використовує рідний драйвер Windows Ink. \n" +"- [code]wintab[/code], використовує драйвер Wacom \"WinTab\". \n" +"- [code]пустиця[/code], введення з планшета вимкнено." msgid "" "If [code]true[/code], long press events on an Android touchscreen are " @@ -101833,11 +127504,41 @@ msgstr "" "перетягування миші." msgid "" -"The locale to fall back to if a translation isn't available in a given " -"language. If left empty, [code]en[/code] (English) will be used." +"If [code]true[/code], the accelerometer sensor is enabled and [method Input." +"get_accelerometer] returns valid data." msgstr "" -"Якщо переклад не доступний на даній мові. [code]en[/code] (англійська) буде " -"використовуватися." +"Якщо [code]true[/code], датчик акселерометра ввімкнено, а [method Input." +"get_accelerometer] повертає дійсні дані." + +msgid "" +"If [code]true[/code], the gravity sensor is enabled and [method Input." +"get_gravity] returns valid data." +msgstr "" +"Якщо [code]true[/code], датчик гравітації ввімкнено, а [method Input." +"get_gravity] повертає дійсні дані." + +msgid "" +"If [code]true[/code], the gyroscope sensor is enabled and [method Input." +"get_gyroscope] returns valid data." +msgstr "" +"Якщо [code]true[/code], датчик гіроскопа ввімкнено, а [method Input." +"get_gyroscope] повертає дійсні дані." + +msgid "" +"If [code]true[/code], the magnetometer sensor is enabled and [method Input." +"get_magnetometer] returns valid data." +msgstr "" +"Якщо [code]true[/code], датчик магнітометра ввімкнено, а [method Input." +"get_magnetometer] повертає дійсні дані." + +msgid "" +"The locale to fall back to if a translation isn't available in a given " +"language. If left empty, [code]en[/code] (English) will be used.\n" +"[b]Note:[/b] Not to be confused with [TextServerFallback]." +msgstr "" +"Мова, до якої потрібно повернутися, якщо переклад недоступний певною мовою. " +"Якщо залишити пустим, використовуватиметься [code]en[/code] (англійська).\n" +"[b]Примітка:[/b] Не плутати з [TextServerFallback]." msgid "" "If [code]true[/code], text server break iteration rule sets, dictionaries and " @@ -101846,22 +127547,31 @@ msgid "" "dictionaries for Burmese, Chinese, Japanese, Khmer, Lao and Thai as well as " "Unicode Standard Annex #29 and Unicode Standard Annex #14 word and line " "breaking rules. Data is about 4 MB large.\n" -"[b]Note:[/b] \"Fallback\" text server does not use additional data." +"[b]Note:[/b] [TextServerFallback] does not use additional data." msgstr "" -"Якщо [code]true[/code], то це правило перерву текстового сервера, набори, " -"словники та інші додаткові дані включені в експортований проект.\n" -"[b]Note:[/b] \"ICU / HarfBuzz / Graphite\" дані текстового сервера включають " -"словники для Burmese, Китайська, японська, хмер, Лао та Тайська, а також " -"Unicode Standard Annex #29 та Unicode Standard Annex #14 слово та правила " -"розриву рядків. Дані про 4 MB великі.\n" -"[b]Note:[/b] \"Fallback\" текстовий сервер не використовує додаткових даних." +"Якщо [code]true[/code], текстовий сервер порушує набори правил ітерації, " +"словники та інші додаткові дані включено до експортованого проекту. \n" +"[b]Примітка:[/b] Дані текстового сервера \"ICU / HarfBuzz / Graphite\" " +"включають словники для бірманської, китайської, японської, кхмерської, " +"лаоської та тайської мов, а також правила розриву слів і розриву рядків у " +"стандартному додатку Unicode №29 і стандартному додатку Unicode №14. Розмір " +"даних приблизно 4 МБ. \n" +"[b]Примітка: [/b] [TextServerFallback] не використовує додаткові дані." msgid "" -"If non-empty, this locale will be used when running the project from the " -"editor." +"If non-empty, this locale will be used instead of the automatically detected " +"system locale.\n" +"[b]Note:[/b] This setting also applies to the exported project. To only " +"affect testing within the editor, override this setting with an [code]editor[/" +"code] [url=$DOCS_URL/tutorials/export/feature_tags.html]feature tag[/url] for " +"localization testing purposes." msgstr "" -"Якщо не спрага, це місцеве буде використовуватися при запуску проекту з " -"редактора." +"Якщо поле не порожнє, ця мова використовуватиметься замість автоматично " +"визначеної мови системи. \n" +"[b]Примітка.[/b] Цей параметр також застосовується до експортованого проекту. " +"Щоб вплинути лише на тестування в редакторі, замініть це налаштування " +"[code]редактором[/code] [url=$DOCS_URL/tutorials/export/feature_tags." +"html]тегом функції[/url] для цілей тестування локалізації." msgid "" "Double vowels in strings during pseudolocalization to simulate the " @@ -101883,12 +127593,14 @@ msgid "" "If [code]true[/code], emulate bidirectional (right-to-left) text when " "pseudolocalization is enabled. This can be used to spot issues with RTL " "layout and UI mirroring that will crop up if the project is localized to RTL " -"languages such as Arabic or Hebrew." +"languages such as Arabic or Hebrew. See also [member internationalization/" +"rendering/force_right_to_left_layout_direction]." msgstr "" -"Якщо [code]true[/code], емульгувати двосторонній (право-лівий) текст при " -"включенні псевдолокалізації. Це може бути використаний для вирішення проблем " -"з макетом RTL та дзеркалом UI, які будуть рости, якщо проект локалізований " -"для мови RTL, таких як арабська або іврит." +"Якщо [code]true[/code], емулювати двонаправлений текст (справа наліво), коли " +"ввімкнено псевдолокалізацію. Це можна використовувати для виявлення проблем " +"із макетом RTL і віддзеркаленням інтерфейсу користувача, які виникнуть, якщо " +"проект локалізовано на такі мови RTL, як арабська чи іврит. Дивіться також " +"[internationalization/rendering/force_right_to_left_layout_direction]." msgid "" "Replace all characters in the string with [code]*[/code]. Useful for finding " @@ -101935,10 +127647,16 @@ msgstr "" "скористайтеся [член TranslationServer.pseudolocalization_enabled]." msgid "" -"Force layout direction and text writing direction to RTL for all controls." +"Force layout direction and text writing direction to RTL for all controls, " +"even if the current locale is intended to use a left-to-right layout and text " +"writing direction. This should be enabled for testing purposes only. See also " +"[member internationalization/pseudolocalization/fake_bidi]." msgstr "" -"Налаштуйте напрямок та напрямок написання тексту на RTL для всіх контрольних " -"робіт." +"Примусово встановити напрямок макета та напрямок написання тексту праворуч " +"для всіх елементів керування, навіть якщо поточна мова передбачає " +"використання макета та напрямку написання тексту зліва направо. Це слід " +"увімкнути лише з метою тестування. Дивіться також [інтернаціоналізація " +"учасників/псевдолокалізація/fake_bidi]." msgid "" "If [code]true[/code], root node will use [constant Node." @@ -101960,10 +127678,11 @@ msgstr "Напрямок макета кореневих вузлів." msgid "" "Specifies the [TextServer] to use. If left empty, the default will be used.\n" -"\"ICU / HarfBuzz / Graphite\" is the most advanced text driver, supporting " -"right-to-left typesetting and complex scripts (for languages like Arabic, " -"Hebrew, etc.). The \"Fallback\" text driver does not support right-to-left " -"typesetting and complex scripts.\n" +"\"ICU / HarfBuzz / Graphite\" ([TextServerAdvanced]) is the most advanced " +"text driver, supporting right-to-left typesetting and complex scripts (for " +"languages like Arabic, Hebrew, etc.). The \"Fallback\" text driver " +"([TextServerFallback]) does not support right-to-left typesetting and complex " +"scripts.\n" "[b]Note:[/b] The driver in use can be overridden at runtime via the [code]--" "text-driver[/code] [url=$DOCS_URL/tutorials/editor/command_line_tutorial." "html]command line argument[/url].\n" @@ -101973,21 +127692,22 @@ msgid "" "editor or project using the [code]--text-driver Dummy[/code] [url=$DOCS_URL/" "tutorials/editor/command_line_tutorial.html]command line argument[/url]." msgstr "" -"Вкажіть [TextServer] для використання. Якщо лівий порожній, за замовчуванням " -"буде використовуватися.\n" -"\"ICU / HarfBuzz / Graphite\" є найбільш просунутим текстовим драйвером, що " -"підтримує правово-ліві типи та складні сценарії (для мов, таких як Арабський, " -"іврит тощо). Водій тексту «Fallback» не підтримує правого вліво-правового " -"призначення та складних сценаріїв.\n" -"[b]Примітка:[/b] Драйвер у використанні може передаватися в режимі runtime " -"через [code]-text-driver[/code] [url=$DOCS_URL/tutorials/editor/" -"command_line_tutorial.html]command рядок аргумент[/url].\n" -"[b]Примітка:[/b] Додатковий [code]Dummy[/code] доступний текстовий драйвер, " -"який відключає всі можливості текстового рендерингу та шрифту. Цей драйвер не " -"вказаний в налаштуваннях проекту, але він може бути включений при запуску " -"редактора або проекту за допомогою [code]-text-driver Dummy[/code] " -"[url=$DOCS_URL/tutorials/editor/command_line_tutorial.html]command string " -"аргумент[/url]." +"Визначає [TextServer] для використання. Якщо залишити пустим, буде " +"використано значення за умовчанням. \n" +"«ICU / HarfBuzz / Graphite» ([TextServerAdvanced]) — це найдосконаліший " +"текстовий драйвер, який підтримує набір справа наліво та складні сценарії " +"(для таких мов, як арабська, іврит тощо). Текстовий драйвер \"Резервний\" " +"([TextServerFallback]) не підтримує набір справа наліво та складні " +"сценарії. \n" +"[b]Примітка.[/b] Використовуваний драйвер можна змінити під час виконання за " +"допомогою [code]--text-driver[/code] [url=$DOCS_URL/tutorials/editor/" +"command_line_tutorial.html]аргументу командного рядка[/url]. \n" +"[b]Примітка: [/b] Існує додатковий доступний текстовий драйвер [code]Dummy[/" +"code], який вимикає відтворення тексту та функції, пов’язані зі шрифтами. Цей " +"драйвер не вказано в налаштуваннях проекту, але його можна ввімкнути під час " +"запуску редактора або проекту за допомогою [code]--text-driver Dummy[/code] " +"[url=$DOCS_URL/tutorials/editor/command_line_tutorial.html]аргументу " +"командного рядка[/url]." msgid "" "Optional name for the 2D navigation layer 1. If left empty, the layer will " @@ -103508,6 +129228,32 @@ msgstr "" "Якщо ввімкнено, і випікання потенційно призведе до аварійного виходу двигуна, " "випікання буде припинено і буде піднято повідомлення про помилку з поясненням." +msgid "" +"Maximum number of threads that can run pathfinding queries simultaneously on " +"the same pathfinding graph, for example the same navigation map. Additional " +"threads increase memory consumption and synchronization time due to the need " +"for extra data copies prepared for each thread. A value of [code]-1[/code] " +"means unlimited and the maximum available OS processor count is used. " +"Defaults to [code]1[/code] when the OS does not support threads." +msgstr "" +"Максимальна кількість потоків, які можуть виконувати запити пошуку шляху " +"одночасно на одному графі пошуку шляху, наприклад, тій самій карті навігації. " +"Додаткові потоки збільшують споживання пам’яті та час синхронізації через " +"потребу в додаткових копіях даних, підготовлених для кожного потоку. Значення " +"[code]-1[/code] означає необмежену кількість процесорів ОС і використовується " +"максимальна доступна кількість процесорів. За замовчуванням [code]1[/code], " +"якщо ОС не підтримує потоки." + +msgid "" +"If enabled, navigation map synchronization uses an async process that runs on " +"a background thread. This avoids stalling the main thread but adds an " +"additional delay to any navigation map change." +msgstr "" +"Якщо ввімкнено, синхронізація навігаційної карти використовує асинхронний " +"процес, який виконується у фоновому потоці. Це дозволяє уникнути зупинки " +"основного потоку, але додає додаткову затримку до будь-якої зміни " +"навігаційної карти." + msgid "" "Maximum number of characters allowed to send as output from the debugger. " "Over this value, content is dropped. This helps not to stall the debugger " @@ -103636,21 +129382,21 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Сила гравітації за умовчанням у 2D (у пікселях на секунду в квадраті).\n" +"Сила гравітації за умовчанням у 2D (у пікселях на секунду в квадраті). \n" "[b]Примітка:[/b] Ця властивість читається лише під час запуску проекту. Щоб " "змінити гравітацію за замовчуванням під час виконання, скористайтеся таким " -"зразком коду:\n" -"[кодові блоки]\n" -"[gdscript]\n" -"# Встановіть силу тяжіння за замовчуванням на 980.\n" +"зразком коду: \n" +"[codeblocks] \n" +"[gdscript] \n" +"# Встановіть силу тяжіння за замовчуванням на 980. \n" "PhysicsServer2D.area_set_param(get_viewport().find_world_2d().space, " -"PhysicsServer2D.AREA_PARAM_GRAVITY, 980)\n" -"[/gdscript]\n" -"[csharp]\n" -"// Встановити силу тяжіння за замовчуванням на 980.\n" +"PhysicsServer2D.AREA_PARAM_GRAVITY, 980) \n" +"[/gdscript] \n" +"[csharp] \n" +"// Встановити силу тяжіння за замовчуванням на 980. \n" "PhysicsServer2D.AreaSetParam(GetViewport().FindWorld2D().Space, " -"PhysicsServer2D.AreaParameter.Gravity, 980);\n" -"[/csharp]\n" +"PhysicsServer2D.AreaParameter.Gravity, 980); \n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -103670,21 +129416,21 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Напрямок ваги за умовчанням у 2D.\n" -"[b] Примітка: [/b] Ця властивість читається лише тоді, коли починається " -"проект. Щоб змінити вектор тяжіння за замовчуванням, використовуйте таку " -"вибірку:\n" -"[Codeblocks]\n" -"[gdscript]\n" -"# Встановити напрямок сили тяжіння за умовчанням до `Vector2 (0, 1)`.\n" -"Physicsserver2d.area_set_param (get_viewport (). Find_world_2d (). Space, " -"physicsserver2d.AREA_PARAM_GRAVITY_VECTOR, Vector2.DOWN)\n" -"[/gdscript]\n" -"[csharp]\n" -"// Встановити за умовчанням, що тяжкості до `Vector2 (0, 1)`.\n" -"Фізичнийсерверк2d.areasetaram (GetViewport (). Findworld2d (). Простір, " -"фізичнийсерверс2d.areaparameter.gravityVector, vector2.down)\n" -"[/csharp]\n" +"Напрям гравітації за умовчанням у 2D. \n" +"[b]Примітка:[/b] Ця властивість читається лише під час запуску проекту. Щоб " +"змінити вектор гравітації за замовчуванням під час виконання, скористайтеся " +"наведеним нижче зразком коду: \n" +"[codeblocks] \n" +"[gdscript] \n" +"# Встановити напрямок сили тяжіння за замовчуванням на `Vector2(0, 1)`. \n" +"PhysicsServer2D.area_set_param(get_viewport().find_world_2d().space, " +"PhysicsServer2D.AREA_PARAM_GRAVITY_VECTOR, Vector2.DOWN) \n" +"[/gdscript] \n" +"[csharp] \n" +"// Встановити напрямок сили тяжіння за замовчуванням на `Vector2(0, 1)`. \n" +"PhysicsServer2D.AreaSetParam(GetViewport().FindWorld2D().Space, " +"PhysicsServer2D.AreaParameter.GravityVector, Vector2.Down) \n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -103739,6 +129485,27 @@ msgstr "" "потрібно змінити значення пам'яті. Ця необхідна зміна не пропорційна і " "відрізняється від випадку до справи." +msgid "" +"Sets which physics engine to use for 2D physics.\n" +"[b]DEFAULT[/b] is currently equivalent to [b]GodotPhysics2D[/b], but may " +"change in future releases. Select an explicit implementation if you want to " +"ensure that your project stays on the same engine.\n" +"[b]GodotPhysics2D[/b] is Godot's internal 2D physics engine.\n" +"[b]Dummy[/b] is a 2D physics server that does nothing and returns only dummy " +"values, effectively disabling all 2D physics functionality.\n" +"Third-party extensions and modules can add other physics engines to select " +"with this setting." +msgstr "" +"Визначає, який фізичний механізм використовувати для 2D фізики. \n" +"[b]DEFAULT[/b] наразі еквівалентний [b]GodotPhysics2D[/b], але може змінитися " +"в наступних випусках. Виберіть явну реалізацію, якщо ви хочете переконатися, " +"що ваш проект залишиться на тому самому двигуні. \n" +"[b]GodotPhysics2D[/b] — це внутрішній 2D-фізичний механізм Godot. \n" +"[b]Dummy[/b] — це сервер 2D фізики, який нічого не робить і повертає лише " +"фіктивні значення, фактично вимикаючи всі функції 2D фізики. \n" +"Розширення та модулі сторонніх розробників можуть додавати інші фізичні " +"механізми, які можна вибрати за допомогою цього параметра." + msgid "" "If [code]true[/code], the 2D physics server runs on a separate thread, making " "better use of multi-core CPUs. If [code]false[/code], the 2D physics server " @@ -103905,21 +129672,21 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Сила гравітації за умовчанням у 3D (у квадратних метрах на секунду).\n" +"Сила гравітації за умовчанням у 3D (у квадратних метрах на секунду). \n" "[b]Примітка:[/b] Ця властивість читається лише під час запуску проекту. Щоб " "змінити гравітацію за замовчуванням під час виконання, скористайтеся таким " -"зразком коду:\n" -"[кодові блоки]\n" -"[gdscript]\n" -"# Встановіть силу тяжіння за замовчуванням на 9,8.\n" +"зразком коду: \n" +"[codeblocks] \n" +"[gdscript] \n" +"# Встановіть силу тяжіння за замовчуванням на 9,8. \n" "PhysicsServer3D.area_set_param(get_viewport().find_world_3d().space, " -"PhysicsServer3D.AREA_PARAM_GRAVITY, 9.8)\n" -"[/gdscript]\n" -"[csharp]\n" -"// Встановити силу тяжіння за замовчуванням на 9,8.\n" +"PhysicsServer3D.AREA_PARAM_GRAVITY, 9.8) \n" +"[/gdscript] \n" +"[csharp] \n" +"// Встановити силу тяжіння за замовчуванням на 9,8. \n" "PhysicsServer3D.AreaSetParam(GetViewport().FindWorld3D().Space, " -"PhysicsServer3D.AreaParameter.Gravity, 9.8);\n" -"[/csharp]\n" +"PhysicsServer3D.AreaParameter.Gravity, 9.8); \n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -103943,7 +129710,7 @@ msgstr "" "[b]Примітка:[/b] Ця властивість читається лише під час запуску проекту.Щоб " "змінити вектор гравітації за замовчуванням під час виконання, скористайтеся " "наведеним нижче зразком коду:\n" -"[кодові блоки]\n" +"[codeblocks]\n" "[gdscript]\n" "# Встановити напрямок сили тяжіння за замовчуванням на `Vector3(0, -1, 0)`.\n" "PhysicsServer3D.area_set_param(get_viewport().find_world_3d().space, " @@ -104008,17 +129775,55 @@ msgstr "" "вам також потрібно змінити значення пам'яті. Ця необхідна зміна не " "пропорційна і відрізняється від випадку до справи." +msgid "" +"Sets which physics engine to use for 3D physics.\n" +"[b]DEFAULT[/b] is currently equivalent to [b]GodotPhysics3D[/b], but may " +"change in future releases. Select an explicit implementation if you want to " +"ensure that your project stays on the same engine.\n" +"[b]GodotPhysics3D[/b] is Godot's internal 3D physics engine.\n" +"[b]Jolt Physics[/b] is an alternative physics engine that is generally faster " +"and more reliable than [b]GodotPhysics3D[/b]. As it was recently implemented, " +"it is currently considered experimental and its behavior may change in future " +"releases.\n" +"[b]Dummy[/b] is a 3D physics server that does nothing and returns only dummy " +"values, effectively disabling all 3D physics functionality.\n" +"Third-party extensions and modules can add other physics engines to select " +"with this setting." +msgstr "" +"Визначає, який фізичний механізм використовувати для 3D фізики. \n" +"[b]DEFAULT[/b] наразі еквівалентний [b]GodotPhysics3D[/b], але може змінитися " +"в наступних випусках. Виберіть явну реалізацію, якщо ви хочете переконатися, " +"що ваш проект залишиться на тому самому двигуні. \n" +"[b]GodotPhysics3D[/b] — це внутрішній фізичний тривимірний механізм Godot. \n" +"[b]Jolt Physics[/b] — це альтернативний фізичний механізм, який загалом " +"швидший і надійніший, ніж [b]GodotPhysics3D[/b]. Оскільки він був нещодавно " +"реалізований, наразі він вважається експериментальним, і його поведінка може " +"змінитися в наступних випусках. \n" +"[b]Dummy[/b] — це сервер 3D-фізики, який нічого не робить і повертає лише " +"фіктивні значення, фактично вимикаючи всі функції 3D-фізики. \n" +"Розширення та модулі сторонніх розробників можуть додавати інші фізичні " +"механізми, які можна вибрати за допомогою цього параметра." + msgid "" "If [code]true[/code], the 3D physics server runs on a separate thread, making " "better use of multi-core CPUs. If [code]false[/code], the 3D physics server " "runs on the main thread. Running the physics server on a separate thread can " -"increase performance, but restricts API access to only physics process." +"increase performance, but restricts API access to only physics process.\n" +"[b]Note:[/b] When [member physics/3d/physics_engine] is set to [code]Jolt " +"Physics[/code], enabling this setting will prevent the 3D physics server from " +"being able to provide any context when reporting errors and warnings, and " +"will instead always refer to nodes as [code]<unknown>[/code]." msgstr "" -"Якщо [code]true[/code], сервер 3D фізики працює на окремій нитки, що робить " -"краще використання багатоядерних процесорів. Якщо [code]false[/code], сервер " -"фізики 3D працює на головній нитки. Запуск фізичного сервера на окрему нитку " -"може збільшити продуктивність, але обмежує доступ API до тільки процесу " -"фізики." +"Якщо [code]true[/code], сервер 3D-фізики працює в окремому потоці, завдяки " +"чому краще використовуються багатоядерні ЦП. Якщо [code]false[/code], сервер " +"3D-фізики працює в основному потоці. Запуск фізичного сервера в окремому " +"потоці може підвищити продуктивність, але обмежує доступ API лише до " +"фізичного процесу. \n" +"[b]Примітка:[/b] Якщо для параметра [member physics/3d/physics_engine] " +"встановлено значення [code]Jolt Physics[/code], увімкнення цього параметра не " +"дозволить серверу 3D-фізики надавати будь-який контекст, повідомляючи про " +"помилки та попередження, і замість цього завжди посилатиметься на вузли як " +"[code]<unknown>[/code]." msgid "" "Threshold angular velocity under which a 3D physics body will be considered " @@ -104126,6 +129931,63 @@ msgstr "" "починається. Щоб змінити максимальну кількість імітованих фізичних кроків за " "кадром в режимі runtime, встановіть [член Engine.max_physics_steps_per_frame]." +msgid "" +"If [code]true[/code], the renderer will interpolate the transforms of physics " +"objects between the last two transforms, so that smooth motion is seen even " +"when physics ticks do not coincide with rendered frames. See also [member " +"Node.physics_interpolation_mode] and [method Node." +"reset_physics_interpolation].\n" +"[b]Note:[/b] If [code]true[/code], the physics jitter fix should be disabled " +"by setting [member physics/common/physics_jitter_fix] to [code]0.0[/code].\n" +"[b]Note:[/b] This property is only read when the project starts. To toggle " +"physics interpolation at runtime, set [member SceneTree." +"physics_interpolation] instead." +msgstr "" +"Якщо [code]true[/code], засіб візуалізації інтерполюватиме перетворення " +"фізичних об’єктів між двома останніми перетвореннями, щоб спостерігати " +"плавний рух, навіть якщо фізичні позначки не збігаються з відтвореними " +"кадрами. Дивіться також [член Node.physics_interpolation_mode] і [метод Node." +"reset_physics_interpolation]. \n" +"[b]Примітка:[/b] Якщо [code]true[/code], виправлення фізичного джиттера слід " +"вимкнути, встановивши [member physics/common/physics_jitter_fix] на " +"[code]0.0[/code]. \n" +"[b]Примітка:[/b] Ця властивість читається лише під час запуску проекту. Щоб " +"увімкнути інтерполяцію фізики під час виконання, замість цього встановіть " +"[member SceneTree.physics_interpolation]." + +msgid "" +"Controls how much physics ticks are synchronized with real time. For 0 or " +"less, the ticks are synchronized. Such values are recommended for network " +"games, where clock synchronization matters. Higher values cause higher " +"deviation of in-game clock and real clock, but allows smoothing out framerate " +"jitters. The default value of 0.5 should be good enough for most; values " +"above 2 could cause the game to react to dropped frames with a noticeable " +"delay and are not recommended.\n" +"[b]Note:[/b] Jitter fix is automatically disabled at runtime when [member " +"physics/common/physics_interpolation] is enabled.\n" +"[b]Note:[/b] When using a custom physics interpolation solution, the physics " +"jitter fix should be disabled by setting [member physics/common/" +"physics_jitter_fix] to [code]0.0[/code].\n" +"[b]Note:[/b] This property is only read when the project starts. To change " +"the physics jitter fix at runtime, set [member Engine.physics_jitter_fix] " +"instead." +msgstr "" +"Контролює, наскільки фізичні тики синхронізуються з реальним часом. Для 0 або " +"менше тики синхронізуються. Такі значення рекомендовані для мережевих ігор, " +"де важлива синхронізація годинника. Вищі значення спричиняють більше " +"відхилення годинника в грі та реального годинника, але дозволяють згладити " +"тремтіння частоти кадрів. Значення за замовчуванням 0,5 має бути достатнім " +"для більшості; значення вище 2 можуть спричинити реакцію гри на пропущені " +"кадри з помітною затримкою, тому не рекомендуються. \n" +"[b]Примітка.[/b] Виправлення тремтіння автоматично вимикається під час " +"виконання, якщо ввімкнено [member physics/common/physics_interpolation]. \n" +"[b]Примітка:[/b] Під час використання спеціального рішення для фізичної " +"інтерполяції необхідно вимкнути виправлення фізичного тремтіння, встановивши " +"[member physics/common/physics_jitter_fix] на [code]0.0[/code]. \n" +"[b]Примітка:[/b] Ця властивість читається лише під час запуску проекту. Щоб " +"змінити фізичне виправлення тремтіння під час виконання, замість цього " +"встановіть [member Engine.physics_jitter_fix]." + msgid "" "The number of fixed iterations per second. This controls how often physics " "simulation and [method Node._physics_process] methods are run. See also " @@ -104156,6 +130018,507 @@ msgstr "" "фізика / коммон / фізика_ticks_per_секунд] значно вище значення за " "замовчуванням." +msgid "" +"The maximum angle, in radians, between two adjacent triangles in a " +"[ConcavePolygonShape3D] or [HeightMapShape3D] for which the edge between " +"those triangles is considered inactive.\n" +"Collisions against an inactive edge will have its normal overridden to " +"instead be the surface normal of the triangle. This can help alleviate ghost " +"collisions.\n" +"[b]Note:[/b] Setting this too high can result in objects not depenetrating " +"properly.\n" +"[b]Note:[/b] This applies to all shape queries, as well as physics bodies " +"within the simulation.\n" +"[b]Note:[/b] This does not apply when enabling Jolt's enhanced internal edge " +"removal, which supersedes this.\n" +"[b]Note:[/b] This setting will only be read once during the lifetime of the " +"application." +msgstr "" +"Максимальний кут у радіанах між двома суміжними трикутниками у " +"[ConcavePolygonShape3D] або [HeightMapShape3D], для якого ребро між цими " +"трикутниками вважається неактивним. \n" +"У разі зіткнення з неактивним ребром його нормаль замінюється на нормаль до " +"поверхні трикутника. Це може допомогти зменшити привиди зіткнення. \n" +"[b]Примітка:[/b] Встановлення цього значення надто високе може призвести до " +"неправильного проникнення об’єктів. \n" +"[b]Примітка.[/b] Це стосується всіх запитів на форму, а також фізичних тіл у " +"симуляції. \n" +"[b]Примітка:[/b] це не застосовується, коли ввімкнено розширене видалення " +"внутрішніх країв Jolt, яке замінює це. \n" +"[b]Примітка:[/b] Це налаштування буде прочитано лише один раз протягом життя " +"програми." + +msgid "" +"The amount of collision margin to use for certain convex collision shapes, " +"such as [BoxShape3D], [CylinderShape3D] and [ConvexPolygonShape3D], as a " +"fraction of the shape's shortest axis, with [member Shape3D.margin] as the " +"upper bound. This is mainly used to speed up collision detection with convex " +"shapes.\n" +"[b]Note:[/b] Collision margins in Jolt do not add any extra size to the " +"shape. Instead the shape is first shrunk by the margin and then expanded by " +"the same amount, resulting in a shape with rounded corners.\n" +"[b]Note:[/b] Setting this value too close to [code]0.0[/code] may also " +"negatively affect the accuracy of the collision detection with convex " +"shapes.\n" +"[b]Note:[/b] This setting will only be read once during the lifetime of the " +"application." +msgstr "" +"Величина межі зіткнення для певних опуклих форм зіткнення, як-от " +"[BoxShape3D], [CylinderShape3D] і [ConvexPolygonShape3D], у вигляді частки " +"найкоротшої осі фігури з [членом Shape3D.margin] як верхньою межею. Це в " +"основному використовується для прискорення виявлення зіткнень із опуклими " +"формами. \n" +"[b]Примітка:[/b] межі зіткнення в Jolt не додають додаткового розміру фігурі. " +"Натомість фігура спочатку зменшується на поле, а потім розширюється на " +"стільки ж, у результаті чого формується форма із закругленими кутами. \n" +"[b]Примітка: [/b] Встановлення цього значення надто близько до [code]0.0[/" +"code] також може негативно вплинути на точність виявлення зіткнень із " +"опуклими формами. \n" +"[b]Примітка:[/b] Це налаштування буде прочитано лише один раз протягом життя " +"програми." + +msgid "" +"Which of the two nodes bound by a joint should represent the world when one " +"of the two is omitted, as either [member Joint3D.node_a] or [member Joint3D." +"node_b]. This can be thought of as having the omitted node be a " +"[StaticBody3D] at the joint's position. Joint limits are more easily " +"expressed when [member Joint3D.node_a] represents the world.\n" +"[b]Note:[/b] In Godot Physics, only [member Joint3D.node_b] can represent the " +"world." +msgstr "" +"Який із двох вузлів, пов’язаних з’єднанням, має представляти світ, коли один " +"із двох опущено, як [член Joint3D.node_a] або [член Joint3D.node_b]. Це можна " +"вважати таким, що пропущений вузол є [StaticBody3D] у місці з’єднання. " +"Спільні обмеження легше виражати, коли [член Joint3D.node_a] представляє " +"світ. \n" +"[b]Примітка:[/b] у Godot Physics лише [член Joint3D.node_b] може представляти " +"світ." + +msgid "" +"The maximum angular velocity that a [RigidBody3D] can reach, in radians per " +"second.\n" +"This is mainly used as a fail-safe, to prevent the simulation from exploding, " +"as fast-moving objects colliding with complex physics structures can " +"otherwise cause them to go out of control. Fast-moving objects can also cause " +"a lot of stress on the collision detection system, which can slow down the " +"simulation considerably." +msgstr "" +"Максимальна кутова швидкість, яку може досягти [RigidBody3D], у радіанах на " +"секунду. \n" +"Це в основному використовується як захист від збоїв, щоб запобігти вибуху " +"симуляції, оскільки об’єкти, що швидко рухаються, стикаються зі складними " +"фізичними структурами, інакше можуть вийти з-під контролю. Об’єкти, що швидко " +"рухаються, також можуть спричинити велике навантаження на систему виявлення " +"зіткнень, що може значно сповільнити симуляцію." + +msgid "" +"The maximum number of [PhysicsBody3D] to support at the same time, awake or " +"sleeping. When this limit is exceeded, an error is reported and anything past " +"that point is undefined behavior.\n" +"[b]Note:[/b] This limit also applies within the editor." +msgstr "" +"Максимальна кількість [PhysicsBody3D], яку можна підтримувати одночасно, у " +"стані чи сні. Коли цей ліміт перевищено, повідомляється про помилку, і все, " +"що перевищує цей показник, є невизначеною поведінкою. \n" +"[b]Примітка.[/b] Це обмеження також стосується редактора." + +msgid "" +"The maximum number of body pairs to allow processing of. When this limit is " +"exceeded, a warning is reported and collisions will randomly be ignored while " +"bodies pass through each other." +msgstr "" +"Максимальна кількість пар тіл, яку можна обробити. Коли цей ліміт перевищено, " +"видається попередження, а зіткнення випадковим чином ігноруватимуться, поки " +"тіла проходять одне крізь одне." + +msgid "" +"The maximum number of contact constraints to allow processing of. When this " +"limit is exceeded, a warning is reported and collisions will randomly be " +"ignored while bodies pass through each other." +msgstr "" +"Максимальна кількість контактних обмежень, які можна обробити. Коли цей ліміт " +"перевищено, видається попередження, а зіткнення випадковим чином " +"ігноруватимуться, поки тіла проходять одне крізь одне." + +msgid "" +"The maximum linear velocity that a [RigidBody3D] can reach, in meters per " +"second.\n" +"This is mainly used as a fail-safe, to prevent the simulation from exploding, " +"as fast-moving objects colliding with complex physics structures can " +"otherwise cause them to go out of control. Fast-moving objects can also cause " +"a lot of stress on the collision detection system, which can slow down the " +"simulation considerably." +msgstr "" +"Максимальна лінійна швидкість, яку може досягти [RigidBody3D], у метрах на " +"секунду. \n" +"Це в основному використовується як захист від збоїв, щоб запобігти вибуху " +"симуляції, оскільки об’єкти, що швидко рухаються, стикаються зі складними " +"фізичними структурами, інакше можуть вийти з-під контролю. Об’єкти, що швидко " +"рухаються, також можуть спричинити велике навантаження на систему виявлення " +"зіткнень, що може значно сповільнити симуляцію." + +msgid "" +"The amount of memory to pre-allocate for the stack allocator used within " +"Jolt, in MiB. This allocator is used within the physics step to store things " +"that are only needed during it, like which bodies are in contact, how they " +"form islands and the data needed to solve the contacts." +msgstr "" +"Обсяг пам’яті, який потрібно попередньо виділити для розподільника стеку, " +"який використовується в Jolt, у МіБ. Цей розподільник використовується на " +"етапі фізики для зберігання речей, які потрібні лише під час нього, " +"наприклад, які тіла контактують, як вони утворюють острови та дані, необхідні " +"для вирішення контактів." + +msgid "" +"The size of [WorldBoundaryShape3D] boundaries, for all three dimensions. The " +"plane is effectively centered within a box of this size, and anything outside " +"of the box will not collide with it. This is necessary as " +"[WorldBoundaryShape3D] is not unbounded when using Jolt, in order to prevent " +"precision issues.\n" +"[b]Note:[/b] Setting this value too high can make collision detection less " +"accurate.\n" +"[b]Note:[/b] Collisions against the effective edges of a " +"[WorldBoundaryShape3D] will be inconsistent." +msgstr "" +"Розмір меж [WorldBoundaryShape3D] для всіх трьох вимірів. Літак фактично " +"зосереджений у коробці такого розміру, і будь-що поза коробкою не зіткнеться " +"з нею. Це необхідно, оскільки [WorldBoundaryShape3D] не має обмежень під час " +"використання Jolt, щоб запобігти проблемам із точністю. \n" +"[b]Примітка.[/b] Встановлення цього значення зависоке може зробити виявлення " +"зіткнень менш точним. \n" +"[b]Примітка: [/b] Зіткнення з ефективними краями [WorldBoundaryShape3D] " +"будуть непослідовними." + +msgid "" +"Fraction of the total penetration to depenetrate per iteration during motion " +"queries.\n" +"[b]Note:[/b] This affects methods [method CharacterBody3D.move_and_slide], " +"[method PhysicsBody3D.move_and_collide], [method PhysicsBody3D.test_move] and " +"[method PhysicsServer3D.body_test_motion].\n" +"[b]Note:[/b] This setting will only be read once during the lifetime of the " +"application." +msgstr "" +"Частка загального проникнення для депроникнення за ітерацію під час запитів " +"руху. \n" +"[b]Примітка.[/b] Це впливає на методи [метод CharacterBody3D.move_and_slide], " +"[метод PhysicsBody3D.move_and_collide], [метод PhysicsBody3D.test_move] і " +"[метод PhysicsServer3D.body_test_motion]. \n" +"[b]Примітка:[/b] Це налаштування буде прочитано лише один раз протягом життя " +"програми." + +msgid "" +"The number of iterations to run when depenetrating during motion queries.\n" +"[b]Note:[/b] This affects methods [method CharacterBody3D.move_and_slide], " +"[method PhysicsBody3D.move_and_collide], [method PhysicsBody3D.test_move] and " +"[method PhysicsServer3D.body_test_motion].\n" +"[b]Note:[/b] This setting will only be read once during the lifetime of the " +"application." +msgstr "" +"Кількість ітерацій, які потрібно виконати під час депроникнення під час " +"запитів руху. \n" +"[b]Примітка.[/b] Це впливає на методи [метод CharacterBody3D.move_and_slide], " +"[метод PhysicsBody3D.move_and_collide], [метод PhysicsBody3D.test_move] і " +"[метод PhysicsServer3D.body_test_motion]. \n" +"[b]Примітка:[/b] Це налаштування буде прочитано лише один раз протягом життя " +"програми." + +msgid "" +"If [code]true[/code], enables Jolt's enhanced internal edge removal during " +"motion queries. This can help alleviate ghost collisions, but only with edges " +"within a single body, meaning edges between separate bodies can still cause " +"ghost collisions.\n" +"[b]Note:[/b] This affects methods [method CharacterBody3D.move_and_slide], " +"[method PhysicsBody3D.move_and_collide], [method PhysicsBody3D.test_move] and " +"[method PhysicsServer3D.body_test_motion].\n" +"[b]Note:[/b] This setting will only be read once during the lifetime of the " +"application." +msgstr "" +"Якщо [code]true[/code], увімкне покращене видалення внутрішніх країв Jolt під " +"час запитів руху. Це може допомогти зменшити фантомні зіткнення, але лише з " +"ребрами в межах одного тіла, тобто краї між окремими тілами можуть спричинити " +"фантомні зіткнення. \n" +"[b]Примітка.[/b] Це впливає на методи [метод CharacterBody3D.move_and_slide], " +"[метод PhysicsBody3D.move_and_collide], [метод PhysicsBody3D.test_move] і " +"[метод PhysicsServer3D.body_test_motion]. \n" +"[b]Примітка:[/b] Це налаштування буде прочитано лише один раз протягом життя " +"програми." + +msgid "" +"If [code]true[/code], populates the [code]face_index[/code] field in the " +"results of [method PhysicsDirectSpaceState3D.intersect_ray], also accessed " +"through [method RayCast3D.get_collision_face_index]. If [code]false[/code], " +"the [code]face_index[/code] field will be left at its default value of " +"[code]-1[/code].\n" +"[b]Note:[/b] Enabling this setting will increase Jolt's memory usage for " +"[ConcavePolygonShape3D] by around 25%.\n" +"[b]Note:[/b] This setting will only be read once during the lifetime of the " +"application." +msgstr "" +"Якщо [code]true[/code], заповнюється поле [code]face_index[/code] у " +"результатах [методу PhysicsDirectSpaceState3D.intersect_ray], доступ до якого " +"також здійснюється через [метод RayCast3D.get_collision_face_index]. Якщо " +"[code]false[/code], поле [code]face_index[/code] буде залишено зі значенням " +"за замовчуванням [code]-1[/code]. \n" +"[b]Примітка:[/b] увімкнення цього параметра збільшить використання пам’яті " +"Jolt для [ConcavePolygonShape3D] приблизно на 25%. \n" +"[b]Примітка:[/b] Це налаштування буде прочитано лише один раз протягом життя " +"програми." + +msgid "" +"If [code]true[/code], enables Jolt's enhanced internal edge removal during " +"shape queries. This can help alleviate ghost collisions when using shape " +"queries for things like character movement, but only with edges within a " +"single body, meaning edges between separate bodies can still cause ghost " +"collisions.\n" +"[b]Note:[/b] This affects methods [method PhysicsDirectSpaceState3D." +"cast_motion], [method PhysicsDirectSpaceState3D.collide_shape], [method " +"PhysicsDirectSpaceState3D.get_rest_info] and [method " +"PhysicsDirectSpaceState3D.intersect_shape].\n" +"[b]Note:[/b] Enabling this setting can cause certain shapes to be culled from " +"the results entirely, but you will get at least one intersection per body.\n" +"[b]Note:[/b] This setting will only be read once during the lifetime of the " +"application." +msgstr "" +"Якщо [code]true[/code], увімкне покращене видалення внутрішніх країв Jolt під " +"час запитів форми. Це може допомогти зменшити фантомні зіткнення під час " +"використання запитів форми для таких речей, як рух персонажа, але лише з " +"ребрами в межах одного тіла, тобто краї між окремими тілами все ще можуть " +"спричиняти фантомні зіткнення. \n" +"[b]Примітка.[/b] Це впливає на методи [метод PhysicsDirectSpaceState3D." +"cast_motion], [метод PhysicsDirectSpaceState3D.collide_shape], [метод " +"PhysicsDirectSpaceState3D.get_rest_info] і [метод PhysicsDirectSpaceState3D." +"intersect_shape]. \n" +"[b]Примітка:[/b] увімкнення цього параметра може призвести до того, що певні " +"фігури будуть повністю вилучені з результатів, але ви отримаєте принаймні " +"одне перехрестя для кожного тіла. \n" +"[b]Примітка:[/b] Це налаштування буде прочитано лише один раз протягом життя " +"програми." + +msgid "" +"If [code]true[/code], [RigidBody3D] nodes are allowed to go to sleep if their " +"velocity is below the threshold defined in [member physics/jolt_physics_3d/" +"simulation/sleep_velocity_threshold] for the duration set in [member physics/" +"jolt_physics_3d/simulation/sleep_time_threshold]. This can improve physics " +"simulation performance when there are non-moving [RigidBody3D] nodes, at the " +"cost of some nodes possibly failing to wake up in certain scenarios. Consider " +"disabling this temporarily to troubleshoot [RigidBody3D] nodes not moving " +"when they should." +msgstr "" +"Якщо [code]true[/code], вузли [RigidBody3D] можуть переходити в сплячий " +"режим, якщо їхня швидкість нижча за порогове значення, визначене в [member " +"physics/jolt_physics_3d/simulation/sleep_velocity_threshold] протягом " +"тривалості, встановленої в [member physics/jolt_physics_3d/simulation/" +"sleep_time_threshold]. Це може покращити продуктивність симуляції фізики, " +"коли є нерухомі вузли [RigidBody3D], за рахунок того, що деякі вузли, " +"можливо, не можуть прокинутися за певних сценаріїв. Розгляньте можливість " +"тимчасово вимкнути це, щоб усунути неполадки вузлів [RigidBody3D], які не " +"рухаються, коли повинні." + +msgid "" +"If [code]true[/code], [Area3D] nodes are able to detect overlaps with " +"[StaticBody3D] nodes.\n" +"[b]Note:[/b] Enabling this setting can come at a heavy CPU and memory cost if " +"you allow many/large [Area3D] to overlap with complex static geometry, such " +"as [ConcavePolygonShape3D] or [HeightMapShape3D]. It is strongly recommended " +"that you set up your collision layers and masks in such a way that only a few " +"small [Area3D] nodes can detect [StaticBody3D] nodes.\n" +"[b]Note:[/b] This also applies to overlaps with a [RigidBody3D] frozen with " +"[constant RigidBody3D.FREEZE_MODE_STATIC].\n" +"[b]Note:[/b] This is not needed to detect overlaps with [AnimatableBody3D], " +"as it is a kinematic body, despite inheriting from [StaticBody3D]." +msgstr "" +"Якщо [code]true[/code], вузли [Area3D] можуть виявляти перекриття з вузлами " +"[StaticBody3D]. \n" +"[b]Примітка.[/b] Увімкнення цього параметра може призвести до великих витрат " +"на процесор і пам’ять, якщо ви дозволите багатьом/великим [Area3D] " +"накладатися на складну статичну геометрію, таку як [ConcavePolygonShape3D] " +"або [HeightMapShape3D]. Настійно рекомендується налаштувати шари зіткнень і " +"маски таким чином, щоб лише кілька невеликих вузлів [Area3D] могли виявити " +"вузли [StaticBody3D]. \n" +"[b]Примітка:[/b] це також стосується перекривань із [RigidBody3D], " +"замороженим за допомогою [константи RigidBody3D.FREEZE_MODE_STATIC]. \n" +"[b]Примітка:[/b] Це не потрібно для виявлення накладання з " +"[AnimatableBody3D], оскільки це кінематичне тіло, незважаючи на те, що воно " +"успадковано від [StaticBody3D]." + +msgid "" +"How much of the position error of a [RigidBody3D] to fix during a physics " +"step, where [code]0.0[/code] is none and [code]1.0[/code] is the full amount. " +"This affects things like how quickly bodies depenetrate.\n" +"[b]Note:[/b] Setting this value too high can make [RigidBody3D] nodes " +"unstable." +msgstr "" +"Яку частину помилки позиції [RigidBody3D] потрібно виправити під час " +"фізичного кроку, де [code]0.0[/code] — це нуль, а [code]1.0[/code] — повна " +"сума. Це впливає на те, як швидко тіла депенетрують. \n" +"[b]Примітка:[/b] Якщо встановити це значення занадто високо, вузли " +"[RigidBody3D] можуть стати нестабільними." + +msgid "" +"The maximum relative angle by which a body pair can move and still reuse the " +"collision results from the previous physics step, in radians." +msgstr "" +"Максимальний відносний кут, на який пара тіл може переміщатися і при цьому " +"повторно використовувати зіткнення, є результатом попереднього фізичного " +"кроку в радіанах." + +msgid "" +"The maximum relative distance by which a body pair can move and still reuse " +"the collision results from the previous physics step, in meters." +msgstr "" +"Максимальна відносна відстань, на яку пара тіл може переміститися, але при " +"цьому повторно використати зіткнення, є результатом попереднього фізичного " +"кроку в метрах." + +msgid "" +"If [code]true[/code], enables the body pair contact cache, which removes the " +"need for potentially expensive collision detection when the relative " +"orientation between two bodies hasn't changed much." +msgstr "" +"Якщо [code]true[/code], вмикається кеш контактів пар тіл, що усуває потребу у " +"потенційно дорогому виявленні зіткнень, коли відносна орієнтація між двома " +"тілами не сильно змінилася." + +msgid "" +"The minimum velocity needed before a collision can be bouncy, in meters per " +"second.\n" +"[b]Note:[/b] This setting will only be read once during the lifetime of the " +"application." +msgstr "" +"Мінімальна швидкість, необхідна перед зіткненням, може бути підстрибуючою, у " +"метрах на секунду.\n" +"[b]Примітка:[/b] Це налаштування буде прочитано лише один раз протягом життя " +"програми." + +msgid "" +"Fraction of a body's inner radius that may penetrate another body while using " +"continuous collision detection." +msgstr "" +"Частка внутрішнього радіуса тіла, яка може проникнути в інше тіло під час " +"безперервного виявлення зіткнення." + +msgid "" +"Fraction of a body's inner radius that the body must move per step to make " +"use of continuous collision detection." +msgstr "" +"Частка внутрішнього радіуса тіла, яку тіло має перемістити за один крок, щоб " +"використовувати постійне виявлення зіткнень." + +msgid "" +"If [code]true[/code], a [RigidBody3D] frozen with [constant RigidBody3D." +"FREEZE_MODE_KINEMATIC] is able to collide with other kinematic and static " +"bodies, and therefore generate contacts for them.\n" +"[b]Note:[/b] This setting can come at a heavy CPU and memory cost if you " +"allow many/large frozen kinematic bodies with a non-zero [member RigidBody3D." +"max_contacts_reported] to overlap with complex static geometry, such as " +"[ConcavePolygonShape3D] or [HeightMapShape3D]." +msgstr "" +"Якщо [code]true[/code], [RigidBody3D], заморожений із [constant RigidBody3D." +"FREEZE_MODE_KINEMATIC], здатний стикатися з іншими кінематичними та " +"статичними тілами, а отже, генерувати для них контакти. \n" +"[b]Примітка: [/b] Це налаштування може призвести до великих витрат ЦП і " +"пам’яті, якщо ви дозволите багатьом/великим замороженим кінематичним тілам з " +"ненульовим [членом RigidBody3D.max_contacts_reported] перекриватися зі " +"складною статичною геометрією, такою як [ConcavePolygonShape3D] або " +"[HeightMapShape3D]." + +msgid "How much bodies are allowed to penetrate each other, in meters." +msgstr "Скільки тіл дозволено проникати одне в одне, у метрах." + +msgid "" +"Number of solver position iterations. The greater the number of iterations, " +"the more accurate the simulation will be, at the cost of CPU performance." +msgstr "" +"Кількість ітерацій позиції розв’язувача. Чим більша кількість ітерацій, тим " +"точнішою буде симуляція за рахунок зниження продуктивності ЦП." + +msgid "" +"Time in seconds a [RigidBody3D] will spend below the sleep velocity threshold " +"before going to sleep." +msgstr "" +"Час у секундах, який [RigidBody3D] проведе нижче порогової швидкості сну, " +"перш ніж заснути." + +msgid "" +"The linear velocity of specific points on the bounding box of a " +"[RigidBody3D], below which it can be put to sleep, in meters per second. " +"These points help capture both the linear and angular motion of a " +"[RigidBody3D]." +msgstr "" +"Лінійна швидкість певних точок на обмежувальній рамці [RigidBody3D], нижче " +"якої його можна перевести в режим сну, у метрах на секунду. Ці точки " +"допомагають зафіксувати як лінійний, так і кутовий рух [RigidBody3D]." + +msgid "" +"How big the points of a [SoftBody3D] are, in meters. A higher value can " +"prevent behavior such as cloth laying perfectly flush against other surfaces " +"and causing Z-fighting." +msgstr "" +"Наскільки великі точки [SoftBody3D] у метрах. Більше значення може запобігти " +"такій поведінці, як укладання тканини ідеально врівень з іншими поверхнями та " +"спричинення Z-подібних боїв." + +msgid "" +"Radius around physics bodies, inside which speculative contact points will be " +"detected, in meters. This is mainly used to prevent tunneling/penetration for " +"[RigidBody3D] nodes during simulation.\n" +"[b]Note:[/b] Setting this too high may result in ghost collisions, as " +"speculative contacts are based on the closest points during the collision " +"detection step which may not be the actual closest points by the time the two " +"bodies hit." +msgstr "" +"Радіус навколо фізичних тіл, усередині яких будуть виявлені спекулятивні " +"точки контакту, у метрах. Це в основному використовується для запобігання " +"тунелювання/проникнення для вузлів [RigidBody3D] під час моделювання. \n" +"[b]Примітка.[/b] Якщо встановити занадто високе значення, це може призвести " +"до привидів зіткнень, оскільки спекулятивні контакти базуються на найближчих " +"точках під час кроку виявлення зіткнення, які можуть не бути фактично " +"найближчими точками до моменту зіткнення двох тіл." + +msgid "" +"If [code]true[/code], enables Jolt's enhanced internal edge removal for " +"[RigidBody3D]. This can help alleviate ghost collisions when, for example, a " +"[RigidBody3D] collides with the edges of two perfectly joined [BoxShape3D]. " +"The removal only applies to edges internal to a single body, meaning edges " +"between separate bodies can still cause ghost collisions." +msgstr "" +"Якщо [code]true[/code], вмикається вдосконалене видалення внутрішніх країв " +"Jolt для [RigidBody3D]. Це може допомогти зменшити фантомні зіткнення, коли, " +"наприклад, [RigidBody3D] стикається з краями двох ідеально з’єднаних " +"[BoxShape3D]. Видалення стосується лише внутрішніх країв одного тіла, тобто " +"краї між окремими тілами все ще можуть спричиняти примарні зіткнення." + +msgid "" +"Number of solver velocity iterations. The greater the number of iterations, " +"the more accurate the simulation will be, at the cost of CPU performance.\n" +"[b]Note:[/b] This needs to be at least [code]2[/code] in order for friction " +"to work, as friction is applied using the non-penetration impulse from the " +"previous iteration." +msgstr "" +"Кількість ітерацій швидкості розв’язувача. Чим більша кількість ітерацій, тим " +"точнішою буде симуляція за рахунок зниження продуктивності ЦП. \n" +"[b]Примітка:[/b] Це має бути принаймні [code]2[/code], щоб тертя працювало, " +"оскільки тертя застосовується за допомогою імпульсу непроникнення з " +"попередньої ітерації." + +msgid "" +"Maximum number of canvas item commands that can be batched into a single draw " +"call." +msgstr "" +"Максимальна кількість команд елемента полотна, які можна об’єднати в один " +"виклик малювання." + +msgid "" +"Maximum number of uniform sets that will be cached by the 2D renderer when " +"batching draw calls.\n" +"[b]Note:[/b] A project that uses a large number of unique sprite textures per " +"frame may benefit from increasing this value." +msgstr "" +"Максимальна кількість уніфікованих наборів, які кешуватимуться двовимірним " +"рендерером під час групування викликів малювання. \n" +"[b]Примітка.[/b] Проект, який використовує велику кількість унікальних " +"текстур спрайтів на кадр, може виграти від збільшення цього значення." + msgid "" "Controls how much of the original viewport size should be covered by the 2D " "signed distance field. This SDF can be sampled in [CanvasItem] shaders and is " @@ -104283,6 +130646,149 @@ msgstr "" "з'явитися навіть менш гладким. Запобігти лише таким чином, щоб встановити " "замість." +msgid "" +"Sets the number of multisample antialiasing (MSAA) samples to use for 2D/" +"Canvas rendering (as a power of two). MSAA is used to reduce aliasing around " +"the edges of polygons. A higher MSAA value results in smoother edges but can " +"be significantly slower on some hardware, especially integrated graphics due " +"to their limited memory bandwidth. This has no effect on shader-induced " +"aliasing or texture aliasing.\n" +"[b]Note:[/b] MSAA is only supported in the Forward+ and Mobile rendering " +"methods, not Compatibility.\n" +"[b]Note:[/b] This property is only read when the project starts. To set the " +"number of 2D MSAA samples at runtime, set [member Viewport.msaa_2d] or use " +"[method RenderingServer.viewport_set_msaa_2d]." +msgstr "" +"Встановлює кількість зразків багаторазового згладжування (MSAA), які будуть " +"використовуватися для рендерингу 2D/Canvas (як ступінь двох). MSAA " +"використовується для зменшення накладень навколо країв багатокутників. Більше " +"значення MSAA призводить до згладжування країв, але може бути значно " +"повільніше на певному апаратному забезпеченні, особливо інтегрованій графіці " +"через обмежену пропускну здатність пам’яті. Це не впливає на накладення " +"шейдерів або на накладення текстур. \n" +"[b]Примітка. [/b] MSAA підтримується лише методами візуалізації Forward+ і " +"Mobile, а не Compatibility. \n" +"[b]Примітка:[/b] Ця властивість читається лише під час запуску проекту. Щоб " +"установити кількість зразків 2D MSAA під час виконання, установіть [член " +"Viewport.msaa_2d] або скористайтеся [методом RenderingServer." +"viewport_set_msaa_2d]." + +msgid "" +"Sets the number of multisample antialiasing (MSAA) samples to use for 3D " +"rendering (as a power of two). MSAA is used to reduce aliasing around the " +"edges of polygons. A higher MSAA value results in smoother edges but can be " +"significantly slower on some hardware, especially integrated graphics due to " +"their limited memory bandwidth. See also [member rendering/scaling_3d/mode] " +"for supersampling, which provides higher quality but is much more expensive. " +"This has no effect on shader-induced aliasing or texture aliasing.\n" +"[b]Note:[/b] This property is only read when the project starts. To set the " +"number of 3D MSAA samples at runtime, set [member Viewport.msaa_3d] or use " +"[method RenderingServer.viewport_set_msaa_3d]." +msgstr "" +"Встановлює кількість зразків багаторазового згладжування (MSAA), які будуть " +"використовуватися для 3D-рендерінгу (як ступінь двох). MSAA використовується " +"для зменшення накладень навколо країв багатокутників. Більше значення MSAA " +"призводить до згладжування країв, але може бути значно повільніше на певному " +"апаратному забезпеченні, особливо інтегрованій графіці через обмежену " +"пропускну здатність пам’яті. Дивіться також [member rendering/scaling_3d/" +"mode] для супервибірки, яка забезпечує вищу якість, але набагато дорожча. Це " +"не впливає на накладення шейдерів або на накладення текстур. \n" +"[b]Примітка:[/b] Ця властивість читається лише під час запуску проекту. Щоб " +"установити кількість зразків 3D MSAA під час виконання, установіть [member " +"Viewport.msaa_3d] або скористайтеся [method RenderingServer." +"viewport_set_msaa_3d]." + +msgid "" +"Sets the screen-space antialiasing mode for the default screen [Viewport]. " +"Screen-space antialiasing works by selectively blurring edges in a post-" +"process shader. It differs from MSAA which takes multiple coverage samples " +"while rendering objects. Screen-space AA methods are typically faster than " +"MSAA and will smooth out specular aliasing, but tend to make scenes appear " +"blurry. The blurriness is partially counteracted by automatically using a " +"negative mipmap LOD bias (see [member rendering/textures/default_filters/" +"texture_mipmap_bias]).\n" +"Another way to combat specular aliasing is to enable [member rendering/" +"anti_aliasing/screen_space_roughness_limiter/enabled].\n" +"[b]Note:[/b] Screen-space antialiasing is only supported in the Forward+ and " +"Mobile rendering methods, not Compatibility.\n" +"[b]Note:[/b] This property is only read when the project starts. To set the " +"screen-space antialiasing mode at runtime, set [member Viewport." +"screen_space_aa] on the root [Viewport] instead, or use [method " +"RenderingServer.viewport_set_screen_space_aa]." +msgstr "" +"Встановлює режим згладжування екранного простору для екрана за замовчуванням " +"[Viewport]. Згладжування екранного простору працює шляхом вибіркового " +"розмивання країв у шейдері після обробки. Він відрізняється від MSAA, який " +"бере кілька зразків покриття під час візуалізації об’єктів. Методи екранного " +"простору AA зазвичай швидші, ніж MSAA, і згладжують віддзеркалення, але, як " +"правило, роблять сцени розмитими. Розмитість частково нейтралізується " +"автоматичним використанням негативного зсуву LOD у mipmap (див. [member " +"rendering/textures/default_filters/texture_mipmap_bias]). \n" +"Ще один спосіб боротьби з віддзеркаленням — увімкнути [member rendering/" +"anti_aliasing/screen_space_roughness_limiter/enabled]. \n" +"[b]Примітка.[/b] Згладжування екранного простору підтримується лише методами " +"візуалізації Forward+ і Mobile, а не Compatibility. \n" +"[b]Примітка:[/b] Ця властивість читається лише під час запуску проекту. Щоб " +"установити режим згладжування екранного простору під час виконання, замість " +"цього встановіть [member Viewport.screen_space_aa] у кореневому [Viewport] " +"або скористайтеся [method RenderingServer.viewport_set_screen_space_aa]." + +msgid "" +"If [code]true[/code], uses a fast post-processing filter to make banding " +"significantly less visible in 3D. 2D rendering is [i]not[/i] affected by " +"debanding unless the [member Environment.background_mode] is [constant " +"Environment.BG_CANVAS].\n" +"In some cases, debanding may introduce a slightly noticeable dithering " +"pattern. It's recommended to enable debanding only when actually needed since " +"the dithering pattern will make lossless-compressed screenshots larger.\n" +"[b]Note:[/b] This property is only read when the project starts. To set " +"debanding at runtime, set [member Viewport.use_debanding] on the root " +"[Viewport] instead, or use [method RenderingServer." +"viewport_set_use_debanding]." +msgstr "" +"Якщо [code]true[/code], використовується фільтр швидкої постобробки, щоб " +"зробити смуги значно менш помітними в 3D. На 2D-візуалізацію [i]не[/i] " +"впливає розблокування, якщо [member Environment.background_mode] не є " +"[constant Environment.BG_CANVAS]. \n" +"У деяких випадках усунення смуг може призвести до злегка помітного згасання. " +"Рекомендується вмикати дебандування лише тоді, коли це дійсно необхідно, " +"оскільки шаблон дизерінгу збільшить стиснуті без втрат знімки екрана. \n" +"[b]Примітка:[/b] Ця властивість читається лише під час запуску проекту. Щоб " +"налаштувати дебандування під час виконання, замість цього встановіть [member " +"Viewport.use_debanding] у кореневому [Viewport] або скористайтеся [method " +"RenderingServer.viewport_set_use_debanding]." + +msgid "" +"Enables temporal antialiasing for the default screen [Viewport]. TAA works by " +"jittering the camera and accumulating the images of the last rendered frames, " +"motion vector rendering is used to account for camera and object motion. " +"Enabling TAA can make the image blurrier, which is partially counteracted by " +"automatically using a negative mipmap LOD bias (see [member rendering/" +"textures/default_filters/texture_mipmap_bias]).\n" +"[b]Note:[/b] The implementation is not complete yet. Some visual instances " +"such as particles and skinned meshes may show ghosting artifacts in motion.\n" +"[b]Note:[/b] TAA is only supported in the Forward+ rendering method, not " +"Mobile or Compatibility.\n" +"[b]Note:[/b] This property is only read when the project starts. To set TAA " +"at runtime, set [member Viewport.use_taa] on the root [Viewport] instead, or " +"use [method RenderingServer.viewport_set_use_taa]." +msgstr "" +"Вмикає тимчасове згладжування для екрана за замовчуванням [Viewport]. TAA " +"працює шляхом тремтіння камери та накопичення зображень останніх " +"візуалізованих кадрів, візуалізація вектора руху використовується для " +"врахування руху камери та об’єкта. Увімкнення TAA може зробити зображення " +"більш розмитим, що частково нейтралізується автоматичним використанням " +"негативного зсуву LOD у mipmap (див. [member rendering/textures/" +"default_filters/texture_mipmap_bias]). \n" +"[b]Примітка:[/b] впровадження ще не завершено. Деякі візуальні екземпляри, як-" +"от частинки та сітки зі шкірою, можуть відображати артефакти в русі. \n" +"[b]Примітка: [/b] TAA підтримується лише методом візуалізації Forward+, а не " +"Mobile чи Compatibility. \n" +"[b]Примітка:[/b] Ця властивість читається лише під час запуску проекту. Щоб " +"установити TAA під час виконання, замість цього встановіть [member Viewport." +"use_taa] у корені [Viewport] або скористайтеся [method RenderingServer." +"viewport_set_use_taa]." + msgid "" "[b]Note:[/b] This property is only read when the project starts. To control " "the screen-space roughness limiter at runtime, call [method RenderingServer." @@ -104464,6 +130970,20 @@ msgstr "" "гладкого вигляду, але буде повільніше, щоб компстатувати і буде мати менш " "високу частотну деталь." +msgid "" +"Distance at which the screen-space ambient occlusion effect starts to fade " +"out. Use this hide ambient occlusion from far away." +msgstr "" +"Відстань, на якій ефект оклюзії екранного простору починає зникати. " +"Використовуйте це приховання навколишньої оклюзії здалеку." + +msgid "" +"Distance at which the screen-space ambient occlusion is fully faded out. Use " +"this hide ambient occlusion from far away." +msgstr "" +"Відстань, на якій екранний простір повністю згасає. Використовуйте це " +"приховання навколишньої оклюзії здалеку." + msgid "" "If [code]true[/code], screen-space ambient occlusion will be rendered at half " "size and then upscaled before being added to the scene. This is significantly " @@ -104510,6 +131030,22 @@ msgstr "" "непрямого освітлення. Більша кількість призведе до гладкого вигляду, але буде " "повільніше, щоб компстатувати і буде мати менш високу частотну деталь." +msgid "" +"Distance at which the screen-space indirect lighting effect starts to fade " +"out. Use this to hide screen-space indirect lighting from far away." +msgstr "" +"Відстань, на якій ефект непрямого освітлення екранного простору починає " +"згасати. Використовуйте це, щоб здалеку приховати непряме освітлення " +"екранного простору." + +msgid "" +"Distance at which the screen-space indirect lighting is fully faded out. Use " +"this to hide screen-space indirect lighting from far away." +msgstr "" +"Відстань, на якій непряме освітлення екранного простору повністю гасне. " +"Використовуйте це, щоб здалеку приховати непряме освітлення екранного " +"простору." + msgid "" "If [code]true[/code], screen-space indirect lighting will be rendered at half " "size and then upscaled before being added to the scene. This is significantly " @@ -104622,31 +131158,141 @@ msgstr "" msgid "" "Sets the driver to be used by the renderer when using the Compatibility " -"renderer. This property can not be edited directly, instead, set the driver " -"using the platform-specific overrides." +"renderer. Editing this property has no effect in the default configuration, " +"as first-party platforms each have platform-specific overrides. Use those " +"overrides to configure the driver for each platform.\n" +"This can be overridden using the [code]--rendering-driver <driver>[/code] " +"command line argument.\n" +"Supported values are:\n" +"- [code]opengl3[/code], OpenGL 3.3 on desktop platforms, OpenGL ES 3.0 on " +"mobile platforms, WebGL 2.0 on web.\n" +"- [code]opengl3_angle[/code], OpenGL ES 3.0 using the ANGLE compatibility " +"layer, supported on macOS (over native OpenGL) and Windows (over Direct3D " +"11).\n" +"- [code]opengl3_es[/code], OpenGL ES 3.0 on Linux/BSD.\n" +"[b]Note:[/b] The availability of these options depends on whether the engine " +"was compiled with support for them (determined by SCons options " +"[code]opengl3[/code] and [code]angle_libs[/code]).\n" +"[b]Note:[/b] The actual rendering driver may be automatically changed by the " +"engine as a result of a fallback, or a user-specified command line argument. " +"To get the actual rendering driver that is used at runtime, use [method " +"RenderingServer.get_current_rendering_driver_name] instead of reading this " +"project setting's value." msgstr "" -"Встановлює драйвера, який використовується рендерером при використанні " -"рендерера сумісності. Ця властивість не може редагуватися безпосередньо, " -"замість того, щоб встановити драйвер за допомогою платформи-специфічної " -"накладки." +"Встановлює драйвер, який буде використовуватися рендерером під час " +"використання рендерера сумісності. Редагування цієї властивості не впливає на " +"конфігурацію за замовчуванням, оскільки кожна з платформ першої сторони має " +"перевизначення для конкретної платформи. Використовуйте ці перевизначення, " +"щоб налаштувати драйвер для кожної платформи. \n" +"Це можна змінити за допомогою аргументу командного рядка [code]--rendering-" +"driver <driver>[/code]. \n" +"Підтримувані значення: \n" +"- [code]opengl3[/code], OpenGL 3.3 на настільних платформах, OpenGL ES 3.0 на " +"мобільних платформах, WebGL 2.0 на веб-платформах. \n" +"- [code]opengl3_angle[/code], OpenGL ES 3.0 з використанням рівня сумісності " +"ANGLE, підтримується в macOS (понад рідний OpenGL) і Windows (понад Direct3D " +"11). \n" +"- [code]opengl3_es[/code], OpenGL ES 3.0 на Linux/BSD. \n" +"[b]Примітка:[/b] Доступність цих параметрів залежить від того, чи обробник " +"був зібраний із їх підтримкою (визначається параметрами SCons [code]opengl3[/" +"code] і [code]angle_libs[/code]). \n" +"[b]Примітка: [/b] Фактичний драйвер візуалізації може бути автоматично " +"змінений рушієм у результаті резервного або заданого користувачем аргументу " +"командного рядка. Щоб отримати фактичний драйвер візуалізації, який " +"використовується під час виконання, використовуйте [method RenderingServer." +"get_current_rendering_driver_name] замість читання значення цього параметра " +"проекту." -msgid "Android override for [member rendering/gl_compatibility/driver]." -msgstr "Оновлення Android для [членування рендерингу/gl_compatibility/driver]." +msgid "" +"Android override for [member rendering/gl_compatibility/driver].\n" +"Only one option is supported:\n" +"- [code]opengl3[/code], OpenGL ES 3.0 from native drivers." +msgstr "" +"Перевизначення Android для [member rendering/gl_compatibility/driver].\n" +"Підтримується лише один варіант:\n" +"- [code]opengl3[/code], OpenGL ES 3.0 з рідних драйверів." -msgid "iOS override for [member rendering/gl_compatibility/driver]." -msgstr "iOS override для [пам'яті рендерингу/gl_compatibility/driver]." +msgid "" +"iOS override for [member rendering/gl_compatibility/driver].\n" +"Only one option is supported:\n" +"- [code]opengl3[/code], OpenGL ES 3.0 from native drivers." +msgstr "" +"Заміна iOS для [member rendering/gl_compatibility/driver].\n" +"Підтримується лише один варіант:\n" +"- [code]opengl3[/code], OpenGL ES 3.0 з рідних драйверів." -msgid "LinuxBSD override for [member rendering/gl_compatibility/driver]." -msgstr "LinuxBSD для [пам'яті рендерингу / gl_compatibility/driver]." +msgid "" +"LinuxBSD override for [member rendering/gl_compatibility/driver].\n" +"Two options are supported:\n" +"- [code]opengl3[/code] (default), OpenGL 3.3 from native drivers.\n" +"- [code]opengl3_es[/code], OpenGL ES 3.0 from native drivers. If [member " +"rendering/gl_compatibility/fallback_to_gles] is enabled, this is used as a " +"fallback if OpenGL 3.3 is not supported." +msgstr "" +"Заміна LinuxBSD для [member rendering/gl_compatibility/driver]. \n" +"Підтримуються два варіанти: \n" +"- [code]opengl3[/code] (за замовчуванням), OpenGL 3.3 із рідних драйверів. \n" +"- [code]opengl3_es[/code], OpenGL ES 3.0 із рідних драйверів. Якщо [member " +"rendering/gl_compatibility/fallback_to_gles] увімкнено, це використовується " +"як запасний варіант, якщо OpenGL 3.3 не підтримується." -msgid "macOS override for [member rendering/gl_compatibility/driver]." -msgstr "macOS override для [пам'яті рендерингу/gl_compatibility/driver]." +msgid "" +"macOS override for [member rendering/gl_compatibility/driver].\n" +"Two options are supported:\n" +"- [code]opengl3[/code] (default), OpenGL 3.3 from native drivers. If [member " +"rendering/gl_compatibility/fallback_to_native] is enabled, this is used as a " +"fallback if ANGLE is configured as the preferred driver but not supported.\n" +"- [code]opengl3_angle[/code], OpenGL ES 3.0 using the ANGLE compatibility " +"layer over native OpenGL drivers. If [member rendering/gl_compatibility/" +"fallback_to_angle] is enabled, this is used as a fallback if OpenGL 3.3 is " +"not supported." +msgstr "" +"Перевизначення macOS для [member rendering/gl_compatibility/driver]. \n" +"Підтримуються два варіанти: \n" +"- [code]opengl3[/code] (за замовчуванням), OpenGL 3.3 із рідних драйверів. " +"Якщо [member rendering/gl_compatibility/fallback_to_native] увімкнено, це " +"використовується як запасний варіант, якщо ANGLE налаштовано як пріоритетний " +"драйвер, але не підтримується. \n" +"- [code]opengl3_angle[/code], OpenGL ES 3.0 з використанням рівня сумісності " +"ANGLE над рідними драйверами OpenGL. Якщо [member rendering/gl_compatibility/" +"fallback_to_angle] увімкнено, це використовується як запасний варіант, якщо " +"OpenGL 3.3 не підтримується." -msgid "Web override for [member rendering/gl_compatibility/driver]." -msgstr "Веб-сайт для [пам'ятний рендеринг / gl_compatibility/driver]." +msgid "" +"Web override for [member rendering/gl_compatibility/driver].\n" +"Only one option is supported:\n" +"- [code]opengl3[/code], WebGL 2.0. The underlying native API depends on the " +"target OS, browser, and browser configuration." +msgstr "" +"Веб-перевизначення для [member rendering/gl_compatibility/driver]. \n" +"Підтримується лише один варіант: \n" +"- [code]opengl3[/code], WebGL 2.0. Основний нативний API залежить від " +"цільової ОС, браузера та конфігурації браузера." -msgid "Windows override for [member rendering/gl_compatibility/driver]." -msgstr "Windows override для [членування рендерингу/gl_compatibility/driver]." +msgid "" +"Windows override for [member rendering/gl_compatibility/driver].\n" +"Two options are supported:\n" +"- [code]opengl3[/code] (default), OpenGL 3.3 from native drivers. If [member " +"rendering/gl_compatibility/fallback_to_native] is enabled, this is used as a " +"fallback if ANGLE is configured as the preferred driver but not supported.\n" +"- [code]opengl3_angle[/code], OpenGL ES 3.0 using the ANGLE compatibility " +"layer over native Direct3D 11 drivers. If [member rendering/gl_compatibility/" +"fallback_to_angle] is enabled, this is used as a fallback if OpenGL 3.3 is " +"not supported. By default, ANGLE is used as the default driver for some " +"devices listed in [member rendering/gl_compatibility/force_angle_on_devices]." +msgstr "" +"Перевизначення Windows для [member rendering/gl_compatibility/driver]. \n" +"Підтримуються два варіанти: \n" +"- [code]opengl3[/code] (за замовчуванням), OpenGL 3.3 із рідних драйверів. " +"Якщо [member rendering/gl_compatibility/fallback_to_native] увімкнено, це " +"використовується як запасний варіант, якщо ANGLE налаштовано як пріоритетний " +"драйвер, але не підтримується. \n" +"- [code]opengl3_angle[/code], OpenGL ES 3.0 з використанням рівня сумісності " +"ANGLE над рідними драйверами Direct3D 11. Якщо [member rendering/" +"gl_compatibility/fallback_to_angle] увімкнено, це використовується як " +"запасний варіант, якщо OpenGL 3.3 не підтримується. За замовчуванням ANGLE " +"використовується як драйвер за замовчуванням для деяких пристроїв, " +"перелічених у [member rendering/gl_compatibility/force_angle_on_devices]." msgid "" "If [code]true[/code], the compatibility renderer will fall back to ANGLE if " @@ -104668,6 +131314,15 @@ msgstr "" "настільний OpenGL не підтримується.\n" "[b]Примітка:[/b] Ця установка реалізується тільки на Linux/X11." +msgid "" +"If [code]true[/code], the compatibility renderer will fall back to native " +"OpenGL if ANGLE is not supported, or ANGLE dynamic libraries aren't found.\n" +"[b]Note:[/b] This setting is implemented on macOS and Windows." +msgstr "" +"Якщо [code]true[/code], рендерер сумісності повернеться до рідного OpenGL, " +"якщо ANGLE не підтримується або динамічні бібліотеки ANGLE не знайдено. \n" +"[b]Примітка.[/b] Цей параметр реалізовано в macOS і Windows." + msgid "" "An [Array] of devices which should always use the ANGLE renderer.\n" "Each entry is a [Dictionary] with the following keys: [code]vendor[/code] and " @@ -104819,6 +131474,70 @@ msgstr "" "починається. Для контролю якості VoxelGI на runtime, виклик [метод " "RenderingServer.voxel_gi_set_quality]." +msgid "" +"The maximum number of rays that can be thrown per pass when baking lightmaps " +"with [LightmapGI]. Depending on the scene, adjusting this value may result in " +"higher GPU utilization when baking lightmaps, leading to faster bake times.\n" +"[b]Note:[/b] Using a value that is too high for your system can cause crashes " +"due to the GPU being unresponsive for long periods of time, and the graphics " +"driver being reset by the OS." +msgstr "" +"Максимальна кількість променів, які можна викинути за один прохід під час " +"запікання карт світла за допомогою [LightmapGI]. Залежно від сцени " +"коригування цього значення може призвести до більшого використання GPU під " +"час запікання карт освітлення, що призведе до швидшого часу запікання. \n" +"[b]Примітка:[/b] Використання значення, яке є занадто високим для вашої " +"системи, може спричинити збої через те, що графічний процесор не відповідає " +"протягом тривалого періоду часу, а графічний драйвер скидається ОС." + +msgid "" +"The maximum number of rays that can be thrown per pass when baking dynamic " +"object lighting in [LightmapProbe]s with [LightmapGI]. Depending on the " +"scene, adjusting this value may result in higher GPU utilization when baking " +"lightmaps, leading to faster bake times.\n" +"[b]Note:[/b] Using a value that is too high for your system can cause crashes " +"due to the GPU being unresponsive for long periods of time, and the graphics " +"driver being reset by the OS." +msgstr "" +"Максимальна кількість променів, які можна викинути за один прохід під час " +"запікання динамічного освітлення об’єктів у [LightmapProbe] з [LightmapGI]. " +"Залежно від сцени коригування цього значення може призвести до більшого " +"використання GPU під час запікання карт освітлення, що призведе до швидшого " +"часу запікання. \n" +"[b]Примітка:[/b] Використання значення, яке є занадто високим для вашої " +"системи, може спричинити збої через те, що графічний процесор не відповідає " +"протягом тривалого періоду часу, а графічний драйвер скидається ОС." + +msgid "" +"The maximum number of retry rays that can be thrown per pass when hitting a " +"transparent surface when baking lightmaps with [LightmapGI]. Depending on the " +"scene, reducing this value may lead to faster bake times.\n" +"[b]Note:[/b] Using a value that is too high for your system can cause crashes " +"due to the GPU being unresponsive for long periods of time, and the graphics " +"driver being reset by the OS." +msgstr "" +"Максимальна кількість повторних променів, які можна викинути за один прохід " +"при попаданні на прозору поверхню під час запікання карт світла за допомогою " +"[LightmapGI]. Залежно від сцени зменшення цього значення може призвести до " +"швидшого часу випікання. \n" +"[b]Примітка:[/b] Використання значення, яке є занадто високим для вашої " +"системи, може спричинити збої через те, що графічний процесор не відповідає " +"протягом тривалого періоду часу, а графічний драйвер скидається ОС." + +msgid "" +"The region size to use when baking lightmaps with [LightmapGI]. The specified " +"value is rounded up to the nearest power of 2.\n" +"[b]Note:[/b] Using a value that is too high for your system can cause crashes " +"due to the GPU being unresponsive for long periods of time, and the graphics " +"driver being reset by the OS." +msgstr "" +"Розмір області для використання під час запікання карт освітлення за " +"допомогою [LightmapGI]. Зазначене значення округлюється до найближчого " +"ступеня 2. \n" +"[b]Примітка:[/b] Використання значення, яке є занадто високим для вашої " +"системи, може спричинити збої через те, що графічний процесор не відповідає " +"протягом тривалого періоду часу, а графічний драйвер скидається ОС." + msgid "" "The number of rays to use for baking dynamic object lighting in " "[LightmapProbe]s when [member LightmapGI.quality] is [constant LightmapGI." @@ -104919,6 +131638,18 @@ msgstr "" "денозування на основі процесора. Цей денозинг на основі процесора значно " "сповільнюється, ніж дезодоратор JNLM у більшості випадків." +msgid "" +"If [code]true[/code], applies a bicubic filter during lightmap sampling. This " +"makes lightmaps look much smoother, at a moderate performance cost.\n" +"[b]Note:[/b] The bicubic filter exaggerates the 'bleeding' effect that occurs " +"when a lightmap's resolution is low enough." +msgstr "" +"Якщо [code]true[/code], застосовує бікубічний фільтр під час вибірки карти " +"освітлення. Це робить карти освітлення набагато плавнішими за помірної " +"вартості продуктивності. \n" +"[b]Примітка.[/b] Бікубічний фільтр посилює ефект «витоку», який виникає, коли " +"роздільна здатність карти освітлення досить низька." + msgid "" "The texel_size that is used to calculate the [member Mesh.lightmap_size_hint] " "on [PrimitiveMesh] resources if [member PrimitiveMesh.add_uv2] is enabled." @@ -105130,6 +131861,22 @@ msgstr "" "[b]Примітка:[/b] Ця установка є тільки ефективною при використанні методу " "Forward+, не мобільних і сумісності." +msgid "" +"The maximum number of uniforms that can be used by the global shader uniform " +"buffer. Each item takes up one slot. In other words, a single uniform float " +"and a uniform vec4 will take the same amount of space in the buffer.\n" +"[b]Note:[/b] When using the Compatibility renderer, most mobile devices (and " +"all web exports) will be limited to a maximum size of 1024 due to hardware " +"constraints." +msgstr "" +"Максимальна кількість уніформ, які може використовувати універсальний буфер " +"глобального шейдера. Кожен предмет займає один слот. Іншими словами, один " +"уніфікований float і уніфікований vec4 займатимуть однакову кількість місця в " +"буфері. \n" +"[b]Примітка.[/b] Під час використання інструменту відтворення сумісності " +"більшість мобільних пристроїв (і весь веб-експорт) буде обмежено максимальним " +"розміром 1024 через апаратні обмеження." + msgid "" "Max number of omnilights and spotlights renderable per object. At the default " "value of 8, this means that each surface can be affected by up to 8 " @@ -105194,6 +131941,33 @@ msgstr "" "увімкнути обчислення на декількох нитках. Якщо сцена має менше екземплярів, " "ніж цей номер, кулька виконується на одній нитки." +msgid "" +"Maximum time (in seconds) before the [code]TIME[/code] shader built-in " +"variable rolls over. The [code]TIME[/code] variable increments by " +"[code]delta[/code] each frame, and when it exceeds this value, it rolls over " +"to [code]0.0[/code]. Since large floating-point values are less precise than " +"small floating-point values, this should be set as low as possible to " +"maximize the precision of the [code]TIME[/code] built-in variable in shaders. " +"This is especially important on mobile platforms where precision in shaders " +"is significantly reduced. However, if this is set too low, shader animations " +"may appear to restart from the beginning while the project is running.\n" +"On desktop platforms, values below [code]4096[/code] are recommended, ideally " +"below [code]2048[/code]. On mobile platforms, values below [code]64[/code] " +"are recommended, ideally below [code]32[/code]." +msgstr "" +"Максимальний час (у секундах) перед зміною вбудованої змінної шейдера " +"[code]TIME[/code]. Змінна [code]TIME[/code] збільшується на [code]delta[/" +"code] кожного кадру, і коли вона перевищує це значення, вона повертається до " +"[code]0,0[/code]. Оскільки великі значення з плаваючою комою є менш точними, " +"ніж маленькі значення з плаваючою комою, це має бути встановлено якомога " +"нижче, щоб максимізувати точність вбудованої змінної [code]TIME[/code] у " +"шейдерах. Це особливо важливо на мобільних платформах, де точність шейдерів " +"значно знижена. Однак, якщо це значення встановлено надто низьким, під час " +"виконання проекту анімація шейдерів може перезапускатися спочатку. \n" +"На настільних платформах рекомендовані значення нижче [code]4096[/code], в " +"ідеалі нижче [code]2048[/code]. На мобільних платформах рекомендовані " +"значення нижче [code]64[/code], в ідеалі нижче [code]32[/code]." + msgid "" "The automatic LOD bias to use for meshes rendered within the " "[ReflectionProbe]. Higher values will use less detailed versions of meshes " @@ -105386,6 +132160,45 @@ msgstr "" "текстуре_аррай_відновлення] на мобільних пристроях, що пов'язані з виконанням " "проблем або підтримкою водія." +msgid "" +"Sets the renderer that will be used by the project. Options are:\n" +"[b]forward_plus[/b] (Forward+): High-end renderer designed for desktop " +"devices. Has a higher base overhead, but scales well with complex scenes. Not " +"suitable for older devices or mobile.\n" +"[b]mobile[/b] (Mobile): Modern renderer designed for mobile devices. Has a " +"lower base overhead than Forward+, but does not scale as well to large scenes " +"with many elements.\n" +"[b]gl_compatibility[/b] (Compatibility): Low-end renderer designed for older " +"devices. Based on the limitations of the OpenGL 3.3 / OpenGL ES 3.0 / WebGL 2 " +"APIs.\n" +"This can be overridden using the [code]--rendering-method <method>[/code] " +"command line argument.\n" +"[b]Note:[/b] The actual rendering method may be automatically changed by the " +"engine as a result of a fallback, or a user-specified command line argument. " +"To get the actual rendering method that is used at runtime, use [method " +"RenderingServer.get_current_rendering_method] instead of reading this project " +"setting's value." +msgstr "" +"Встановлює рендерер, який використовуватиметься в проекті. Варіанти: \n" +"[b]forward_plus[/b] (Forward+): висококласний рендерер, призначений для " +"настільних пристроїв. Має вищі базові витрати, але добре масштабується зі " +"складними сценами. Не підходить для старих пристроїв або мобільних " +"пристроїв. \n" +"[b]мобільний[/b] (Mobile): сучасний рендерер, призначений для мобільних " +"пристроїв. Має менші базові накладні витрати, ніж Forward+, але не так добре " +"масштабується для великих сцен із багатьма елементами. \n" +"[b]gl_compatibility[/b] (сумісність): рендерер нижчого рівня, призначений для " +"старіших пристроїв. Базується на обмеженнях API OpenGL 3.3 / OpenGL ES 3.0 / " +"WebGL 2. \n" +"Це можна змінити за допомогою аргументу командного рядка [code]--rendering-" +"method <method>[/code]. \n" +"[b]Примітка: [/b] Фактичний метод візуалізації може бути автоматично змінений " +"рушієм у результаті резервного або заданого користувачем аргументу командного " +"рядка. Щоб отримати фактичний метод візуалізації, який використовується під " +"час виконання, використовуйте [method RenderingServer." +"get_current_rendering_method] замість читання значення цього параметра " +"проекту." + msgid "" "Override for [member rendering/renderer/rendering_method] on mobile devices." msgstr "" @@ -105446,38 +132259,170 @@ msgstr "" "Залежно від складності сцен, це значення може бути знижене або може " "знадобитися підняти." -msgid "Android override for [member rendering/rendering_device/driver]." -msgstr "Android-напруга для [пам'ятний рендеринг/робота]." +msgid "" +"Sets the driver to be used by the renderer when using a RenderingDevice-based " +"renderer like the Forward+ or Mobile renderers. Editing this property has no " +"effect in the default configuration, as first-party platforms each have " +"platform-specific overrides. Use those overrides to configure the driver for " +"each platform.\n" +"This can be overridden using the [code]--rendering-driver <driver>[/code] " +"command line argument.\n" +"Supported values are:\n" +"- [code]metal[/code], Metal (supported on Apple Silicon Macs and iOS).\n" +"- [code]vulkan[/code], Vulkan (supported on all desktop and mobile " +"platforms).\n" +"- [code]d3d12[/code], Direct3D 12 (supported on Windows).\n" +"[b]Note:[/b] The availability of these options depends on whether the engine " +"was compiled with support for them (determined by SCons options [code]vulkan[/" +"code], [code]metal[/code], and [code]d3d12[/code]).\n" +"[b]Note:[/b] If a given platform has no registered drivers, it can fall back " +"to the Compatibility renderer (OpenGL 3) if [member rendering/" +"rendering_device/fallback_to_opengl3] is enabled. This fallback happens " +"automatically for the Web platform regardless of that property.\n" +"[b]Note:[/b] The actual rendering driver may be automatically changed by the " +"engine as a result of a fallback, or a user-specified command line argument. " +"To get the actual rendering driver that is used at runtime, use [method " +"RenderingServer.get_current_rendering_driver_name] instead of reading this " +"project setting's value." +msgstr "" +"Встановлює драйвер для використання рендерером під час використання рендерера " +"на основі RenderingDevice, як-от Forward+ або Mobile рендерер. Редагування " +"цієї властивості не впливає на конфігурацію за замовчуванням, оскільки кожна " +"з платформ першої сторони має перевизначення для конкретної платформи. " +"Використовуйте ці перевизначення, щоб налаштувати драйвер для кожної " +"платформи. \n" +"Це можна змінити за допомогою аргументу командного рядка [code]--rendering-" +"driver <driver>[/code]. \n" +"Підтримувані значення: \n" +"- [code]metal[/code], Metal (підтримується на Apple Silicon Mac та iOS). \n" +"- [code]vulkan[/code], Vulkan (підтримується на всіх настільних і мобільних " +"платформах). \n" +"- [код]d3d12[/код], Direct3D 12 (підтримується в Windows). \n" +"[b]Примітка:[/b] Доступність цих параметрів залежить від того, чи було " +"скомпільовано систему з їх підтримкою (визначається параметрами SCons " +"[code]vulkan[/code], [code]metal[/code] і [code]d3d12[/code]). \n" +"[b]Примітка.[/b] Якщо на даній платформі немає зареєстрованих драйверів, вона " +"може повернутися до рендерера сумісності (OpenGL 3), якщо ввімкнено [member " +"rendering/rendering_device/fallback_to_opengl3]. Цей резервний варіант " +"відбувається автоматично для веб-платформи незалежно від цієї властивості. \n" +"[b]Примітка: [/b] Фактичний драйвер візуалізації може бути автоматично " +"змінений рушієм у результаті резервного або заданого користувачем аргументу " +"командного рядка. Щоб отримати фактичний драйвер візуалізації, який " +"використовується під час виконання, використовуйте [method RenderingServer." +"get_current_rendering_driver_name] замість читання значення цього параметра " +"проекту." -msgid "iOS override for [member rendering/rendering_device/driver]." -msgstr "iOS override для [пам'яті рендерингу/rendering_device/driver]." +msgid "" +"Android override for [member rendering/rendering_device/driver].\n" +"Only one option is supported:\n" +"- [code]vulkan[/code], Vulkan from native drivers.\n" +"[b]Note:[/b] If Vulkan was disabled at compile time, there is no alternative " +"RenderingDevice driver." +msgstr "" +"Заміна Android для [member rendering/rendering_device/driver]. \n" +"Підтримується лише один варіант: \n" +"- [code]vulkan[/code], Vulkan з рідних драйверів. \n" +"[b]Примітка:[/b] Якщо Vulkan було вимкнено під час компіляції, " +"альтернативного драйвера RenderingDevice немає." -msgid "LinuxBSD override for [member rendering/rendering_device/driver]." -msgstr "LinuxBSD для [пам'ятний рендеринг / драйвер]." +msgid "" +"iOS override for [member rendering/rendering_device/driver].\n" +"Two options are supported:\n" +"- [code]metal[/code] (default), Metal from native drivers.\n" +"- [code]vulkan[/code], Vulkan over Metal via MoltenVK." +msgstr "" +"Перевизначення iOS для [rendering/rendering_device/driver].\n" +"Підтримуються два варіанти:\n" +"- [code]metal[/code] (за замовчуванням), Metal з рідних драйверів.\n" +"- [code]vulkan[/code], Vulkan over Metal через MoltenVK." -msgid "macOS override for [member rendering/rendering_device/driver]." -msgstr "macOS override для [пам'яті рендерингу/rendering_device/driver]." +msgid "" +"LinuxBSD override for [member rendering/rendering_device/driver].\n" +"Only one option is supported:\n" +"- [code]vulkan[/code], Vulkan from native drivers.\n" +"[b]Note:[/b] If Vulkan was disabled at compile time, there is no alternative " +"RenderingDevice driver." +msgstr "" +"Перевизначення LinuxBSD для [виведення члена/пристрій_відтворення/драйвер]. \n" +"Підтримується лише один варіант: \n" +"- [code]vulkan[/code], Vulkan з рідних драйверів. \n" +"[b]Примітка:[/b] Якщо Vulkan було вимкнено під час компіляції, " +"альтернативного драйвера RenderingDevice немає." -msgid "Windows override for [member rendering/rendering_device/driver]." -msgstr "Windows override для [членування рендерингу/rendering_device/driver]." +msgid "" +"macOS override for [member rendering/rendering_device/driver].\n" +"Two options are supported:\n" +"- [code]metal[/code] (default), Metal from native drivers, only supported on " +"Apple Silicon Macs. On Intel Macs, it will automatically fall back to " +"[code]vulkan[/code] as Metal support is not implemented.\n" +"- [code]vulkan[/code], Vulkan over Metal via MoltenVK, supported on both " +"Apple Silicon and Intel Macs." +msgstr "" +"Перевизначення macOS для [rendering/rendering_device/driver]. \n" +"Підтримуються два варіанти: \n" +"- [code]metal[/code] (за замовчуванням), Metal із рідних драйверів, " +"підтримується лише на Apple Silicon Mac. На комп’ютерах Intel Mac він " +"автоматично повернеться до [code]vulkan[/code], оскільки підтримка Metal не " +"реалізована. \n" +"- [code]vulkan[/code], Vulkan over Metal через MoltenVK, підтримується як " +"Apple Silicon, так і Intel Mac." + +msgid "" +"Windows override for [member rendering/rendering_device/driver].\n" +"Two options are supported:\n" +"- [code]vulkan[/code] (default), Vulkan from native drivers. If [member " +"rendering/rendering_device/fallback_to_vulkan] is enabled, this is used as a " +"fallback if Direct3D 12 is not supported.\n" +"- [code]d3d12[/code], Direct3D 12 from native drivers. If [member rendering/" +"rendering_device/fallback_to_d3d12] is enabled, this is used as a fallback if " +"Vulkan is not supported." +msgstr "" +"Перевизначення Windows для [учасника відтворення/пристрою_відтворення/" +"драйвера]. \n" +"Підтримуються два варіанти: \n" +"- [code]vulkan[/code] (за замовчуванням), Vulkan з рідних драйверів. Якщо " +"[member rendering/rendering_device/fallback_to_vulkan] увімкнено, це " +"використовується як запасний варіант, якщо Direct3D 12 не підтримується. \n" +"- [code]d3d12[/code], Direct3D 12 з рідних драйверів. Якщо [member rendering/" +"rendering_device/fallback_to_d3d12] увімкнено, це використовується як " +"запасний варіант, якщо Vulkan не підтримується." msgid "" "If [code]true[/code], the forward renderer will fall back to Direct3D 12 if " -"Vulkan is not supported.\n" +"Vulkan is not supported. The fallback is always attempted regardless of this " +"setting if Vulkan driver support was disabled at compile time.\n" "[b]Note:[/b] This setting is implemented only on Windows." msgstr "" -"Якщо [code]true[/code], то експедитор попаде до Direct3D 12, якщо Vulkan не " -"підтримується.\n" -"[b]Примітка:[/b] Ця установка реалізується тільки на Windows." +"Якщо [code]true[/code], прямий рендерер повернеться до Direct3D 12, якщо " +"Vulkan не підтримується. Якщо під час компіляції підтримку драйвера Vulkan " +"було вимкнено, завжди виконується резервна спроба, незалежно від цього " +"параметра. \n" +"[b]Примітка.[/b] Цей параметр реалізований лише у Windows." + +msgid "" +"If [code]true[/code], the forward renderer will fall back to OpenGL 3 if " +"Direct3D 12, Metal, and Vulkan are not supported.\n" +"[b]Note:[/b] This setting is implemented only on Windows, Android, macOS, " +"iOS, and Linux/X11." +msgstr "" +"Якщо [code]true[/code], прямий рендерер повернеться до OpenGL 3, якщо " +"Direct3D 12, Metal і Vulkan не підтримуються. \n" +"[b]Примітка.[/b] Це налаштування реалізовано лише в Windows, Android, macOS, " +"iOS і Linux/X11." msgid "" "If [code]true[/code], the forward renderer will fall back to Vulkan if " -"Direct3D 12 is not supported.\n" -"[b]Note:[/b] This setting is implemented only on Windows." +"Direct3D 12 (on Windows) or Metal (on macOS x86_64) are not supported. The " +"fallback is always attempted regardless of this setting if Direct3D 12 " +"(Windows) or Metal (macOS) driver support was disabled at compile time.\n" +"[b]Note:[/b] This setting is implemented only on Windows and macOS." msgstr "" -"Якщо [code]true[/code], то передній рендер повернеться до Vulkan, якщо " -"Direct3D 12 не підтримується.\n" -"[b]Примітка:[/b] Ця установка реалізується тільки на Windows." +"Якщо [code]true[/code], прямий рендерер повертатиметься до Vulkan, якщо " +"Direct3D 12 (у Windows) або Metal (у macOS x86_64) не підтримується. Якщо під " +"час компіляції було вимкнено підтримку драйвера Direct3D 12 (Windows) або " +"Metal (macOS), завжди виконується резервна спроба, незалежно від цього " +"параметра. \n" +"[b]Примітка.[/b] Цей параметр реалізовано лише в Windows і macOS." msgid "" "Enable the pipeline cache that is saved to disk if the graphics API supports " @@ -105501,6 +132446,74 @@ msgstr "" "Визначають, в яких зберігається міжряддя на диск. Найнижча вартість, " "найчастіше вона зберігається." +msgid "" +"The size of a block allocated in the staging buffers. Staging buffers are the " +"intermediate resources the engine uses to upload or download data to the GPU. " +"This setting determines the max amount of data that can be transferred in a " +"copy operation. Increasing this will result in faster data transfers at the " +"cost of extra memory.\n" +"[b]Note:[/b] This property is only read when the project starts. There is " +"currently no way to change this value at run-time." +msgstr "" +"Розмір блоку, виділеного в проміжних буферах. Проміжні буфери — це проміжні " +"ресурси, які система використовує для завантаження або завантаження даних у " +"GPU. Цей параметр визначає максимальний обсяг даних, який можна передати під " +"час операції копіювання. Збільшення цього призведе до швидшої передачі даних " +"за рахунок додаткової пам’яті. \n" +"[b]Примітка:[/b] Ця властивість читається лише під час запуску проекту. " +"Наразі немає способу змінити це значення під час виконання." + +msgid "" +"The maximum amount of memory allowed to be used by staging buffers. If the " +"amount of data being uploaded or downloaded exceeds this amount, the GPU will " +"stall and wait for previous frames to finish.\n" +"[b]Note:[/b] This property is only read when the project starts. There is " +"currently no way to change this value at run-time." +msgstr "" +"Максимальний обсяг пам’яті, який можна використовувати проміжними буферами. " +"Якщо обсяг завантажуваних або завантажуваних даних перевищує цей обсяг, " +"графічний процесор зупиниться та чекатиме завершення попередніх кадрів. \n" +"[b]Примітка:[/b] Ця властивість читається лише під час запуску проекту. " +"Наразі немає способу змінити це значення під час виконання." + +msgid "" +"The region size in pixels used to download texture data from the GPU when " +"using methods like [method RenderingDevice.texture_get_data_async].\n" +"[b]Note:[/b] This property's upper limit is controlled by [member rendering/" +"rendering_device/staging_buffer/block_size_kb] and whether it's possible to " +"allocate a single block of texture data with this region size in the format " +"that is requested.\n" +"[b]Note:[/b] This property is only read when the project starts. There is " +"currently no way to change this value at run-time." +msgstr "" +"Розмір області в пікселях, який використовується для завантаження даних " +"текстури з графічного процесора під час використання таких методів, як " +"[method RenderingDevice.texture_get_data_async]. \n" +"[b]Примітка.[/b] Верхня межа цієї властивості контролюється [member rendering/" +"rendering_device/staging_buffer/block_size_kb] і тим, чи можна виділити один " +"блок даних текстури з таким розміром області в потрібному форматі. \n" +"[b]Примітка:[/b] Ця властивість читається лише під час запуску проекту. " +"Наразі немає способу змінити це значення під час виконання." + +msgid "" +"The region size in pixels used to upload texture data from the GPU when using " +"methods like [method RenderingDevice.texture_update].\n" +"[b]Note:[/b] This property's upper limit is controlled by [member rendering/" +"rendering_device/staging_buffer/block_size_kb] and whether it's possible to " +"allocate a single block of texture data with this region size in the format " +"that is requested.\n" +"[b]Note:[/b] This property is only read when the project starts. There is " +"currently no way to change this value at run-time." +msgstr "" +"Розмір області в пікселях, який використовується для завантаження даних " +"текстури з графічного процесора під час використання таких методів, як " +"[method RenderingDevice.texture_update]. \n" +"[b]Примітка.[/b] Верхня межа цієї властивості контролюється [member rendering/" +"rendering_device/staging_buffer/block_size_kb] і тим, чи можна виділити один " +"блок даних текстури з таким розміром області в потрібному форматі. \n" +"[b]Примітка:[/b] Ця властивість читається лише під час запуску проекту. " +"Наразі немає способу змінити це значення під час виконання." + msgid "" "The number of frames to track on the CPU side before stalling to wait for the " "GPU.\n" @@ -105559,6 +132572,28 @@ msgstr "" "починається. В даний час немає способу змінити значення в режимі run-time.\n" "[b]Note:[/b] Деякі платформи можуть обмежити фактичне значення." +msgid "" +"The number of descriptors per pool. Godot's Vulkan backend uses linear pools " +"for descriptors that will be created and destroyed within a single frame. " +"Instead of destroying every single descriptor every frame, they all can be " +"destroyed at once by resetting the pool they belong to.\n" +"A larger number is more efficient up to a limit, after that it will only " +"waste RAM (maximum efficiency is achieved when there is no more than 1 pool " +"per frame). A small number could end up with one pool per descriptor, which " +"negatively impacts performance.\n" +"[b]Note:[/b] Changing this property requires a restart to take effect." +msgstr "" +"Кількість дескрипторів на пул. Сервер Godot Vulkan використовує лінійні пули " +"для дескрипторів, які створюватимуться та знищуватимуться в одному кадрі. " +"Замість того, щоб знищувати кожен окремий дескриптор у кожному кадрі, їх усі " +"можна знищити одразу шляхом скидання пулу, до якого вони належать. \n" +"Більше число є більш ефективним до певної межі, після цього воно лише " +"витрачатиме оперативну пам’ять (максимальна ефективність досягається, коли на " +"кадр не більше 1 пулу). Невелика кількість може призвести до одного пулу на " +"дескриптор, що негативно вплине на продуктивність. \n" +"[b]Примітка:[/b] Зміна цієї властивості потребує перезапуску, щоб вона " +"вступила в силу." + msgid "" "Determines how sharp the upscaled image will be when using the FSR upscaling " "mode. Sharpness halves with every whole number. Values go from 0.0 (sharpest) " @@ -105593,6 +132628,25 @@ msgstr "" "Forward+, не мобільних або сумісних. Якщо використовувати несумісний метод " "рендерингу, FSR повернеться до дволінійного масштабування." +msgid "" +"iOS override for [member rendering/scaling_3d/mode]. This allows selecting " +"the MetalFX spatial and MetalFX temporal scaling modes, which are exclusive " +"to platforms where the Metal rendering driver is used." +msgstr "" +"Заміна iOS для [member rendering/scaling_3d/mode]. Це дозволяє вибрати режими " +"просторового масштабування MetalFX і тимчасового масштабування MetalFX, які є " +"ексклюзивними для платформ, де використовується драйвер візуалізації Metal." + +msgid "" +"macOS override for [member rendering/scaling_3d/mode]. This allows selecting " +"the MetalFX spatial and MetalFX temporal scaling modes, which are exclusive " +"to platforms where the Metal rendering driver is used." +msgstr "" +"Перевизначення macOS для [member rendering/scaling_3d/mode]. Це дозволяє " +"вибрати режими просторового масштабування MetalFX і тимчасового масштабування " +"MetalFX, які є ексклюзивними для платформ, де використовується драйвер " +"візуалізації Metal." + msgid "" "Scales the 3D render buffer based on the viewport size uses an image filter " "specified in [member rendering/scaling_3d/mode] to scale the output image to " @@ -105637,6 +132691,37 @@ msgstr "" "force_lambert_over_burley] на мобільних пристроях, що пов'язані з виконанням " "проблем або підтримкою драйвера." +msgid "" +"If [code]true[/code], forces vertex shading for all rendering. This can " +"increase performance a lot, but also reduces quality immensely. Can be used " +"to optimize performance on low-end mobile devices." +msgstr "" +"Якщо [code]true[/code], примусове затінення вершин для всього відтворення. Це " +"може значно підвищити продуктивність, але також значно знизити якість. Можна " +"використовувати для оптимізації продуктивності на мобільних пристроях " +"низького класу." + +msgid "" +"The default texture filtering mode to use for [CanvasItem]s built-in texture. " +"In shaders, this texture is accessed as [code]TEXTURE[/code].\n" +"[b]Note:[/b] For pixel art aesthetics, see also [member rendering/2d/snap/" +"snap_2d_vertices_to_pixel] and [member rendering/2d/snap/" +"snap_2d_transforms_to_pixel]." +msgstr "" +"Режим фільтрації текстури за замовчуванням для використання вбудованої " +"текстури [CanvasItem]. У шейдерах ця текстура доступна як [код]ТЕКСТУРА[/" +"код]. \n" +"[b]Примітка.[/b] Щодо естетики піксельного мистецтва див. також [member " +"rendering/2d/snap/snap_2d_vertices_to_pixel] і [member rendering/2d/snap/" +"snap_2d_transforms_to_pixel]." + +msgid "" +"The default texture repeating mode to use for [CanvasItem]s built-in texture. " +"In shaders, this texture is accessed as [code]TEXTURE[/code]." +msgstr "" +"Режим повторення текстури за замовчуванням для вбудованої текстури " +"[CanvasItem]. У шейдерах ця текстура доступна як [code]TEXTURE[/code]." + msgid "" "The filtering quality to use for [Decal] nodes. When using one of the " "anisotropic filtering modes, the anisotropic filtering level is controlled by " @@ -105647,6 +132732,55 @@ msgstr "" "здійснюється за допомогою [пам'ятних рендерингових/тексичних/default_filters/" "anisotropic_filtering_level]." +msgid "" +"Sets the maximum number of samples to take when using anisotropic filtering " +"on textures (as a power of two). A higher sample count will result in sharper " +"textures at oblique angles, but is more expensive to compute. A value of " +"[code]0[/code] forcibly disables anisotropic filtering, even on materials " +"where it is enabled.\n" +"The anisotropic filtering level also affects decals and light projectors if " +"they are configured to use anisotropic filtering. See [member rendering/" +"textures/decals/filter] and [member rendering/textures/light_projectors/" +"filter].\n" +"[b]Note:[/b] In 3D, for this setting to have an effect, set [member " +"BaseMaterial3D.texture_filter] to [constant BaseMaterial3D." +"TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC] or [constant BaseMaterial3D." +"TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC] on materials.\n" +"[b]Note:[/b] In 2D, for this setting to have an effect, set [member " +"CanvasItem.texture_filter] to [constant CanvasItem." +"TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC] or [constant CanvasItem." +"TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC] on the [CanvasItem] node " +"displaying the texture (or in [CanvasTexture]). However, anisotropic " +"filtering is rarely useful in 2D, so only enable it for textures in 2D if it " +"makes a meaningful visual difference.\n" +"[b]Note:[/b] This property is only read when the project starts. To change " +"the anisotropic filtering level at runtime, set [member Viewport." +"anisotropic_filtering_level] on the root [Viewport] instead." +msgstr "" +"Встановлює максимальну кількість зразків для взяття під час використання " +"анізотропної фільтрації на текстурах (як ступінь двох). Більша кількість " +"вибірок призведе до чіткіших текстур під косими кутами, але це дорожче для " +"обчислення. Значення [code]0[/code] примусово вимикає анізотропну фільтрацію, " +"навіть для матеріалів, де вона ввімкнена. \n" +"Рівень анізотропної фільтрації також впливає на наклейки та світлові " +"проектори, якщо вони налаштовані на використання анізотропної фільтрації. " +"Див. [member rendering/textures/decals/filter] і [member rendering/textures/" +"light_projectors/filter]. \n" +"[b]Примітка.[/b] У 3D, щоб це налаштування мало ефект, установіть [член " +"BaseMaterial3D.texture_filter] на [постійний BaseMaterial3D." +"TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC] або [постійний BaseMaterial3D." +"TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC] на матеріалах. \n" +"[b]Примітка.[/b] У 2D, щоб це налаштування мало ефект, установіть для [member " +"CanvasItem.texture_filter] значення [constant CanvasItem." +"TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC] або [constant CanvasItem." +"TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC] на Вузол [CanvasItem], що " +"відображає текстуру (або в [CanvasTexture]). Однак анізотропна фільтрація " +"рідко буває корисною в 2D, тому вмикайте її для текстур у 2D, лише якщо вона " +"має суттєву візуальну різницю. \n" +"[b]Примітка:[/b] Ця властивість читається лише під час запуску проекту. Щоб " +"змінити рівень анізотропної фільтрації під час виконання, замість цього " +"встановіть [member Viewport.anisotropic_filtering_level] у корені [Viewport]." + msgid "" "Affects the final texture sharpness by reading from a lower or higher mipmap " "(also called \"texture LOD bias\"). Negative values make mipmapped textures " @@ -105716,6 +132850,32 @@ msgstr "" "з використанням формату PNG. В іншому випадку він за замовчуванням буде " "використовувати WebP." +msgid "" +"If [code]true[/code], the GPU texture compressor will cache the local " +"RenderingDevice and its resources (shaders and pipelines), allowing for " +"faster subsequent imports at a memory cost." +msgstr "" +"Якщо [code]true[/code], компресор текстур графічного процесора кешуватиме " +"локальний RenderingDevice та його ресурси (шейдери та конвеєри), забезпечуючи " +"швидший подальший імпорт за рахунок пам’яті." + +msgid "" +"If [code]true[/code], the texture importer will utilize the GPU for " +"compressing textures, improving the import time of large images.\n" +"[b]Note:[/b] This only functions on a device which supports either Vulkan, " +"Direct3D 12, or Metal as a rendering driver.\n" +"[b]Note:[/b] Currently this only affects certain compressed formats (BC1, " +"BC3, BC4, BC5, and BC6), all of which are exclusive to desktop platforms and " +"consoles." +msgstr "" +"Якщо [code]true[/code], імпортер текстур використовуватиме GPU для стиснення " +"текстур, покращуючи час імпорту великих зображень. \n" +"[b]Примітка:[/b] це працює лише на пристрої, який підтримує Vulkan, Direct3D " +"12 або Metal як драйвер візуалізації. \n" +"[b]Примітка: [/b] Наразі це стосується лише певних стиснених форматів (BC1, " +"BC3, BC4, BC5 та BC6), усі з яких є ексклюзивними для настільних платформ і " +"консолей." + msgid "" "If [code]true[/code], the texture importer will import VRAM-compressed " "textures using the Ericsson Texture Compression 2 algorithm for lower quality " @@ -105793,6 +132953,46 @@ msgstr "" "декомпресії в основному не відрізняється від фактора стиснення. Підтримувані " "значення 0 до 100." +msgid "" +"If [code]true[/code], enables [member Viewport.use_hdr_2d] on the root " +"viewport. 2D rendering will use an high dynamic range (HDR) format " +"framebuffer matching the bit depth of the 3D framebuffer. When using the " +"Forward+ renderer this will be an [code]RGBA16[/code] framebuffer, while when " +"using the Mobile renderer it will be an [code]RGB10_A2[/code] framebuffer. " +"Additionally, 2D rendering will take place in linear color space and will be " +"converted to sRGB space immediately before blitting to the screen. " +"Practically speaking, this means that the end result of the Viewport will not " +"be clamped into the [code]0-1[/code] range and can be used in 3D rendering " +"without color space adjustments. This allows 2D rendering to take advantage " +"of effects requiring high dynamic range (e.g. 2D glow) as well as " +"substantially improves the appearance of effects requiring highly detailed " +"gradients.\n" +"[b]Note:[/b] This setting will have no effect when using the Compatibility " +"renderer, which always renders in low dynamic range for performance reasons.\n" +"[b]Note:[/b] This property is only read when the project starts. To toggle " +"HDR 2D at runtime, set [member Viewport.use_hdr_2d] on the root [Viewport]." +msgstr "" +"Якщо [code]true[/code], вмикає [член Viewport.use_hdr_2d] у кореневому вікні " +"перегляду. У 2D-рендерінгу використовуватиметься буфер кадрів у форматі " +"високого динамічного діапазону (HDR), який відповідає бітовій глибині буфера " +"кадрів 3D. У разі використання засобу візуалізації Forward+ це буде буфер " +"кадрів [code]RGBA16[/code], тоді як під час використання засобу візуалізації " +"Mobile це буде буфер кадрів [code]RGB10_A2[/code]. Крім того, 2D-рендерінг " +"відбуватиметься в лінійному колірному просторі та перетворюватиметься на " +"простір sRGB безпосередньо перед висвітленням на екрані. Практично кажучи, це " +"означає, що кінцевий результат вікна перегляду не буде обмежений діапазоном " +"[code]0-1[/code] і може використовуватися в 3D-рендерінгу без коригування " +"простору кольорів. Це дозволяє під час 2D-рендерінгу використовувати переваги " +"ефектів, що вимагають високого динамічного діапазону (наприклад, 2D-" +"світіння), а також значно покращує зовнішній вигляд ефектів, які вимагають " +"високодеталізованих градієнтів. \n" +"[b]Примітка.[/b] Цей параметр не матиме жодного ефекту під час використання " +"засобу відтворення сумісності, який із міркувань продуктивності завжди " +"відтворює в низькому динамічному діапазоні. \n" +"[b]Примітка:[/b] Ця властивість читається лише під час запуску проекту. Щоб " +"увімкнути HDR 2D під час виконання, установіть [member Viewport.use_hdr_2d] у " +"кореневому [Viewport]." + msgid "" "If [code]true[/code], enables [member Viewport.transparent_bg] on the root " "viewport. This allows per-pixel transparency to be effective after also " @@ -105877,6 +133077,20 @@ msgstr "" "Максимальна кількість ниток, які використовуються [WorkerThreadPool]. " "Значення [code]-1[/code] не обмежується." +msgid "" +"If [code]true[/code], enables the analog threshold binding modifier if " +"supported by the XR runtime." +msgstr "" +"Якщо [code]true[/code], вмикає модифікатор зв’язування аналогового порогу, " +"якщо він підтримується середовищем виконання XR." + +msgid "" +"If [code]true[/code], enables the D-pad binding modifier if supported by the " +"XR runtime." +msgstr "" +"Якщо [code]true[/code], вмикає модифікатор прив’язки D-pad, якщо він " +"підтримується середовищем виконання XR." + msgid "Action map configuration to load by default." msgstr "Налаштування карти дій для завантаження за замовчуванням." @@ -105892,6 +133106,25 @@ msgstr "" "певних пристроїв AR та передових пристроїв, де зображення камери поєднуються " "в композиторі XR." +msgid "" +"Specifies the message types for which we request debug messages. Requires " +"[member xr/openxr/extensions/debug_utils] to be set and the extension to be " +"supported by the XR runtime." +msgstr "" +"Визначає типи повідомлень, для яких ми запитуємо повідомлення налагодження. " +"Потрібно встановити [member xr/openxr/extensions/debug_utils] і розширення " +"підтримувати середовище виконання XR." + +msgid "" +"Enables debug utilities on XR runtimes that supports the debug utils " +"extension. Sets the maximum severity being reported (0 = disabled, 1 = error, " +"2 = warning, 3 = info, 4 = verbose)." +msgstr "" +"Вмикає утиліти налагодження в середовищах виконання XR, які підтримують " +"розширення debug utils. Встановлює максимальний рівень серйозності, про який " +"повідомляється (0 = вимкнено, 1 = помилка, 2 = попередження, 3 = інформація, " +"4 = докладно)." + msgid "" "Specify whether to enable eye tracking for this project. Depending on the " "platform, additional export configuration may be needed." @@ -105899,10 +133132,90 @@ msgstr "" "Вкажіть, чи ввімкніть відстеження очей для цього проекту. Залежно від " "платформи може знадобитися додаткова конфігурація експорту." +msgid "" +"If [code]true[/code] the hand interaction profile extension will be activated " +"if supported by the platform." +msgstr "" +"Якщо [code]true[/code], розширення профілю ручної взаємодії буде активовано, " +"якщо це підтримується платформою." + +msgid "" +"If [code]true[/code], the hand tracking extension is enabled if available.\n" +"[b]Note:[/b] By default hand tracking will only work for data sources chosen " +"by the XR runtime. For SteamVR this is the controller inferred data source, " +"for most other runtimes this is the unobstructed data source. There is no way " +"to query this. If a runtime supports the OpenXR data source extension you can " +"use the [member xr/openxr/extensions/hand_tracking_controller_data_source] " +"and/or [member xr/openxr/extensions/hand_tracking_unobstructed_data_source] " +"to indicate you wish to enable these data sources. If neither is selected the " +"data source extension is not enabled and the XR runtimes default behavior " +"persists." +msgstr "" +"Якщо [code]true[/code], розширення відстеження рук увімкнено, якщо воно " +"доступне. \n" +"[b]Примітка:[/b] За замовчуванням відстеження рук працюватиме лише для джерел " +"даних, вибраних середою виконання XR. Для SteamVR це джерело даних, визначене " +"контролером, для більшості інших середовищ виконання це безперешкодне джерело " +"даних. Немає способу запитати це. Якщо середовище виконання підтримує " +"розширення джерела даних OpenXR, ви можете використовувати [member xr/openxr/" +"extensions/hand_tracking_controller_data_source] та/або [member xr/openxr/" +"extensions/hand_tracking_unobstructed_data_source], щоб вказати, що ви " +"бажаєте ввімкнути ці джерела даних. Якщо жоден із них не вибрано, розширення " +"джерела даних не ввімкнено, а поведінка середовища виконання XR за умовчанням " +"зберігається." + +msgid "" +"If [code]true[/code], support for the controller inferred data source is " +"requested. If supported, you will receive hand tracking data even if the user " +"has a controller in hand, with finger positions automatically inferred from " +"controller input and/or sensors.\n" +"[b]Node:[/b] This requires the OpenXR data source extension and controller " +"inferred handtracking to be supported by the XR runtime. If not supported " +"this setting will be ignored. [member xr/openxr/extensions/hand_tracking] " +"must be enabled for this setting to be used." +msgstr "" +"Якщо [code]true[/code], запитується підтримка джерела даних, визначеного " +"контролером. Якщо це підтримується, ви отримуватимете дані відстеження рук, " +"навіть якщо користувач тримає в руках контролер, з положеннями пальців, які " +"автоматично визначаються за введенням даних контролера та/або датчиків. \n" +"[b]Вузол:[/b] для цього потрібно, щоб середовище виконання XR підтримувало " +"розширення джерела даних OpenXR і ручне відстеження, визначене контролером. " +"Якщо не підтримується, цей параметр ігноруватиметься. Для використання цього " +"параметра має бути ввімкнено [member xr/openxr/extensions/hand_tracking]." + +msgid "" +"If [code]true[/code], support for the unobstructed data source is requested. " +"If supported, you will receive hand tracking data based on the actual finger " +"positions of the user often determined by optical tracking.\n" +"[b]Node:[/b] This requires the OpenXR data source extension and unobstructed " +"handtracking to be supported by the XR runtime. If not supported this setting " +"will be ignored. [member xr/openxr/extensions/hand_tracking] must be enabled " +"for this setting to be used." +msgstr "" +"Якщо [code]true[/code], запитується підтримка безперешкодного джерела даних. " +"Якщо підтримується, ви отримуватимете дані відстеження руки на основі " +"фактичного положення пальців користувача, яке часто визначається за допомогою " +"оптичного відстеження. \n" +"[b]Вузол:[/b] для цього потрібно, щоб середовище виконання XR підтримувало " +"розширення джерела даних OpenXR і безперешкодне ручне відстеження. Якщо не " +"підтримується, цей параметр ігноруватиметься. Для використання цього " +"параметра має бути ввімкнено [member xr/openxr/extensions/hand_tracking]." + msgid "" "Specify whether OpenXR should be configured for an HMD or a hand held device." msgstr "Вкажіть, чи слід налаштувати OpenXR для пристрою HMD або руки." +msgid "" +"If [code]true[/code] and foveation is supported, will automatically adjust " +"foveation level based on framerate up to the level set on [member xr/openxr/" +"foveation_level].\n" +"[b]Note:[/b] Only works on the Compatibility rendering method." +msgstr "" +"Якщо [code]true[/code] і фовеація підтримується, буде автоматично налаштовано " +"рівень фовеації на основі частоти кадрів до рівня, встановленого на [member " +"xr/openxr/foveation_level]. \n" +"[b]Примітка.[/b] Працює лише з методом візуалізації сумісності." + msgid "" "Applied foveation level if supported: 0 = off, 1 = low, 2 = medium, 3 = " "high.\n" @@ -105954,6 +133267,206 @@ msgstr "" msgid "Interpolates an [Object]'s property over time." msgstr "Включає в себе майно [об'єкт]." +msgid "" +"[PropertyTweener] is used to interpolate a property in an object. See [method " +"Tween.tween_property] for more usage information.\n" +"The tweener will finish automatically if the target object is freed.\n" +"[b]Note:[/b] [method Tween.tween_property] is the only correct way to create " +"[PropertyTweener]. Any [PropertyTweener] created manually will not function " +"correctly." +msgstr "" +"[PropertyTweener] використовується для інтерполяції властивості в об’єкт. " +"Перегляньте [method Tween.tween_property] для отримання додаткової інформації " +"про використання. \n" +"Твінер завершиться автоматично, якщо цільовий об’єкт буде звільнено. \n" +"[b]Примітка:[/b] [метод Tween.tween_property] є єдиним правильним способом " +"створення [PropertyTweener]. Будь-який [PropertyTweener], створений вручну, " +"не працюватиме належним чином." + +msgid "" +"When called, the final value will be used as a relative value instead.\n" +"[b]Example:[/b] Move the node by [code]100[/code] pixels to the right.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var tween = get_tree().create_tween()\n" +"tween.tween_property(self, \"position\", Vector2.RIGHT * 100, 1)." +"as_relative()\n" +"[/gdscript]\n" +"[csharp]\n" +"Tween tween = GetTree().CreateTween();\n" +"tween.TweenProperty(this, \"position\", Vector2.Right * 100.0f, 1.0f)." +"AsRelative();\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Під час виклику кінцеве значення використовуватиметься як відносне. \n" +"[b]Приклад:[/b] Перемістіть вузол на [code]100[/code] пікселів праворуч. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var tween = get_tree().create_tween() \n" +"tween.tween_property(self, \"position\", Vector2.RIGHT * 100, 1)." +"as_relative() \n" +"[/gdscript] \n" +"[csharp] \n" +"Tween tween = GetTree().CreateTween(); \n" +"tween.TweenProperty(this, \"position\", Vector2.Right * 100.0f, 1.0f)." +"AsRelative(); \n" +"[/csharp] \n" +"[/codeblocks]" + +msgid "" +"Sets a custom initial value to the [PropertyTweener].\n" +"[b]Example:[/b] Move the node from position [code](100, 100)[/code] to [code]" +"(200, 100)[/code].\n" +"[codeblocks]\n" +"[gdscript]\n" +"var tween = get_tree().create_tween()\n" +"tween.tween_property(self, \"position\", Vector2(200, 100), 1)." +"from(Vector2(100, 100))\n" +"[/gdscript]\n" +"[csharp]\n" +"Tween tween = GetTree().CreateTween();\n" +"tween.TweenProperty(this, \"position\", new Vector2(200.0f, 100.0f), 1.0f)." +"From(new Vector2(100.0f, 100.0f));\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Встановлює спеціальне початкове значення для [PropertyTweener]. \n" +"[b]Приклад:[/b] Перемістіть вузол із позиції [code](100, 100)[/code] до [code]" +"(200, 100)[/code]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var tween = get_tree().create_tween() \n" +"tween.tween_property(self, \"position\", Vector2(200, 100), 1)." +"from(Vector2(100, 100)) \n" +"[/gdscript] \n" +"[csharp] \n" +"Tween tween = GetTree().CreateTween(); \n" +"tween.TweenProperty(self, \"position\", new Vector2(200.0f, 100.0f), 1.0f)." +"From(new Vector2(100.0f, 100.0f)); \n" +"[/csharp] \n" +"[/codeblocks]" + +msgid "" +"Makes the [PropertyTweener] use the current property value (i.e. at the time " +"of creating this [PropertyTweener]) as a starting point. This is equivalent " +"of using [method from] with the current value. These two calls will do the " +"same:\n" +"[codeblocks]\n" +"[gdscript]\n" +"tween.tween_property(self, \"position\", Vector2(200, 100), 1)." +"from(position)\n" +"tween.tween_property(self, \"position\", Vector2(200, 100), 1)." +"from_current()\n" +"[/gdscript]\n" +"[csharp]\n" +"tween.TweenProperty(this, \"position\", new Vector2(200.0f, 100.0f), 1.0f)." +"From(Position);\n" +"tween.TweenProperty(this, \"position\", new Vector2(200.0f, 100.0f), 1.0f)." +"FromCurrent();\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Змушує [PropertyTweener] використовувати поточне значення властивості (тобто " +"на момент створення цього [PropertyTweener]) як початкову точку. Це " +"еквівалентно використанню [method from] із поточним значенням. Ці два виклики " +"зроблять те саме: \n" +"[codeblocks] \n" +"[gdscript] \n" +"tween.tween_property(self, \"position\", Vector2(200, 100), 1)." +"from(position) \n" +"tween.tween_property(self, \"position\", Vector2(200, 100), 1)." +"from_current() \n" +"[/gdscript] \n" +"[csharp] \n" +"tween.TweenProperty(this, \"position\", new Vector2(200.0f, 100.0f), 1.0f)." +"From(Position); \n" +"tween.TweenProperty(this, \"position\", new Vector2(200.0f, 100.0f), 1.0f)." +"FromCurrent(); \n" +"[/csharp] \n" +"[/codeblocks]" + +msgid "" +"Allows interpolating the value with a custom easing function. The provided " +"[param interpolator_method] will be called with a value ranging from " +"[code]0.0[/code] to [code]1.0[/code] and is expected to return a value within " +"the same range (values outside the range can be used for overshoot). The " +"return value of the method is then used for interpolation between initial and " +"final value. Note that the parameter passed to the method is still subject to " +"the tweener's own easing.\n" +"[codeblocks]\n" +"[gdscript]\n" +"@export var curve: Curve\n" +"\n" +"func _ready():\n" +" var tween = create_tween()\n" +" # Interpolate the value using a custom curve.\n" +" tween.tween_property(self, \"position:x\", 300, 1).as_relative()." +"set_custom_interpolator(tween_curve)\n" +"\n" +"func tween_curve(v):\n" +" return curve.sample_baked(v)\n" +"[/gdscript]\n" +"[csharp]\n" +"[Export]\n" +"public Curve Curve { get; set; }\n" +"\n" +"public override void _Ready()\n" +"{\n" +" Tween tween = CreateTween();\n" +" // Interpolate the value using a custom curve.\n" +" Callable tweenCurveCallable = Callable.From<float, float>(TweenCurve);\n" +" tween.TweenProperty(this, \"position:x\", 300.0f, 1.0f).AsRelative()." +"SetCustomInterpolator(tweenCurveCallable);\n" +"}\n" +"\n" +"private float TweenCurve(float value)\n" +"{\n" +" return Curve.SampleBaked(value);\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Дозволяє інтерполювати значення за допомогою спеціальної функції спрощення. " +"Наданий [param interpolator_method] буде викликано зі значенням у діапазоні " +"від [code]0.0[/code] до [code]1.0[/code] і, як очікується, поверне значення в " +"тому самому діапазоні (значення за межами діапазону можна використовувати для " +"перевищення). Повернене значення методу потім використовується для " +"інтерполяції між початковим і кінцевим значенням. Зауважте, що параметр, " +"переданий у метод, все ще підлягає власному ослабленню твінера. \n" +"[codeblocks] \n" +"[gdscript] \n" +"@export var curve: Curve \n" +"\n" +"func _ready(): \n" +" var tween = create_tween() \n" +" # Інтерполювати значення за допомогою спеціальної кривої. \n" +" tween.tween_property(self, \"position:x\", 300, 1).as_relative()." +"set_custom_interpolator(tween_curve) \n" +"\n" +"func tween_curve(v): \n" +" повернути curve.sample_baked(v) \n" +"[/gdscript] \n" +"[csharp] \n" +"[Export] \n" +"public Curve Curve { get; set; } \n" +"\n" +"public override void _Ready() \n" +"{\n" +" Анімація анімації = CreateTween(); \n" +" // Інтерполяція значення за допомогою спеціальної кривої. \n" +" Callable tweenCurveCallable = Callable.From<float, float>(TweenCurve); \n" +" tween.TweenProperty(this, \"position:x\", 300.0f, 1.0f).AsRelative()." +"SetCustomInterpolator(tweenCurveCallable); \n" +"}\n" +"\n" +"private float TweenCurve(float value) \n" +"{\n" +" return Curve.SampleBaked(value); \n" +"}\n" +"[/csharp] \n" +"[/codeblocks]" + msgid "" "Sets the time in seconds after which the [PropertyTweener] will start " "interpolating. By default there's no delay." @@ -106059,6 +133572,15 @@ msgstr "Онлайн Кватерн Візуалізація" msgid "Advanced Quaternion Visualization" msgstr "Розширена візуалізація запитів" +msgid "" +"Constructs a [Quaternion] identical to [constant IDENTITY].\n" +"[b]Note:[/b] In C#, this constructs a [Quaternion] with all of its components " +"set to [code]0.0[/code]." +msgstr "" +"Створює [Кватерніон], ідентичний [константі IDENTITY].\n" +"[b]Примітка:[/b] у C# це створює [Quaternion] з усіма його компонентами, " +"встановленими на [code]0.0[/code]." + msgid "Constructs a [Quaternion] as a copy of the given [Quaternion]." msgstr "Constructs a [Quaternion] як копія даної [Quaternion]." @@ -106177,6 +133699,13 @@ msgstr "" "Повертає несвоєчасну версію цієї кватернції, що інвертує ознаку кожного " "компонента, крім [члена]." +msgid "" +"Returns [code]true[/code] if this quaternion and [param to] are approximately " +"equal, by calling [method @GlobalScope.is_equal_approx] on each component." +msgstr "" +"Повертає [code]true[/code], якщо цей кватерніон і [param to] приблизно рівні, " +"шляхом виклику [method @GlobalScope.is_equal_approx] для кожного компонента." + msgid "" "Returns [code]true[/code] if this quaternion is finite, by calling [method " "@GlobalScope.is_finite] on each component." @@ -106297,6 +133826,22 @@ msgstr "" "[b]Note:[/b] Компоненти Quaternion зазвичай не повинні маніпулювати " "безпосередньо." +msgid "" +"The identity quaternion, representing no rotation. This has the same rotation " +"as [constant Basis.IDENTITY].\n" +"If a [Vector3] is rotated (multiplied) by this quaternion, it does not " +"change.\n" +"[b]Note:[/b] In GDScript, this constant is equivalent to creating a " +"[constructor Quaternion] without any arguments. It can be used to make your " +"code clearer, and for consistency with C#." +msgstr "" +"Тотожний кватерніон, що не представляє обертання. Це таке саме обертання, як " +"[константа Basis.IDENTITY]. \n" +"Якщо [Вектор3] повернути (помножити) на цей кватерніон, він не зміниться. \n" +"[b]Примітка:[/b] у GDScript ця константа еквівалентна створенню [кватерніону " +"конструктора] без будь-яких аргументів. Його можна використовувати, щоб " +"зробити ваш код зрозумілішим і узгоджено з C#." + msgid "" "Returns [code]true[/code] if the components of both quaternions are not " "exactly equal.\n" @@ -106423,15 +133968,15 @@ msgid "" "[/codeblock]" msgstr "" "RandomNumberGenerator — це клас для генерації псевдовипадкових чисел. Зараз " -"використовується [url=https://www.pcg-random.org/]PCG32[/url].\n" +"використовується [url=https://www.pcg-random.org/]PCG32[/url]. \n" "[b]Примітка.[/b] Основний алгоритм є деталлю реалізації, і на нього не слід " -"покладатися.\n" +"покладатися. \n" "Щоб згенерувати випадкове число з плаваючою точкою (у заданому діапазоні) на " -"основі початкового числа, що залежить від часу:\n" -"[кодовий блок]\n" -"var rng = RandomNumberGenerator.new()\n" -"func _ready():\n" -" var my_random_number = rng.randf_range(-10.0, 10.0)\n" +"основі початкового числа, що залежить від часу: \n" +"[codeblock] \n" +"var rng = RandomNumberGenerator.new() \n" +"func _ready(): \n" +" var my_random_number = rng.randf_range(-10.0, 10.0) \n" "[/codeblock]" msgid "" @@ -106450,19 +133995,19 @@ msgid "" "[/gdscript]\n" "[/codeblocks]" msgstr "" -"Повертає випадковий індекс з неоднорідними вагами. Друкує помилку і повертає " -"[code]-1[/code], якщо масив порожній.\n" -"[блоки коду]\n" -"[видання]\n" -"var rng = ВипадковийКількістьGenerator.new()\n" +"Повертає випадковий індекс із нерівномірними вагами. Виводить помилку та " +"повертає [код]-1[/код], якщо масив порожній. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var rng = RandomNumberGenerator.new() \n" "\n" -"var my_array = \"один\", \"два\", \"три\", \"добрий\"]\n" -"Вар ваги = УпакованийФлоат32Array([0.5, 1, 1, 2])\n" +"var my_array = [\"one\", \"two\", \"three\", \"four\"] \n" +"var weights = PackedFloat32Array([0,5, 1, 1, 2]) \n" "\n" -"Нема Друкувати один з чотирьох елементів у `my_array`.\n" -"Нема Важко друкувати «чотири», і рідше друкувати «один».\n" -"Друк(my_array[rng.rand_weighted(вага)])\n" -"[/gdscript]\n" +"# Виводить один із чотирьох елементів у `my_array`. \n" +"# Ймовірніше надрукувати «чотири», а рідше надрукувати «один». \n" +"print(my_array[rng.rand_weighted(weights)]) \n" +"[/gdscript] \n" "[/codeblocks]" msgid "" @@ -106532,25 +134077,66 @@ msgid "" "rng.state = 100 # Restore to some previously saved state.\n" "[/codeblock]" msgstr "" -"Встановлює стан генератора випадкових чисел на основі вказаного значення " -"насіння. Задане насіння дасть відтворювану послідовність псевдо-рандомних " -"чисел.\n" -"[b]Note:[/b] RNG не має ефекту авальнище, і може виводити аналогічні " -"випадкові потоки, надані аналогічним насінням. Враховуйте, використовуючи " -"функцію хешу для поліпшення якості насіння, якщо вони виявляються зовнішньо.\n" -"[b]Примітка:[/b] Встановити цю властивість виробляє побічний ефект зміни " -"внутрішнього [члена], щоб переконатися, що ініціалізація насіння [i]before[/" -"i], змінюючи [членний стан]:\n" -"[b]Примітка:[/b] Значення за замовчуванням даної нерухомості є псевдо-рандом, " -"і зміни при викликі [метод випадковості]. [code]0[/code] значення, " -"задокументовано тут, є власником місця, а не фактичним за замовчуванням " -"насіння.\n" -"[блокування коду]\n" -"var rng = ВипадковийКількістьGenerator.new()\n" -"rng.seed = h(\"Godot\")\n" -"рнг.стат = 100 # Відновити до деяких раніше збережених станів.\n" +"Ініціалізує стан генератора випадкових чисел на основі заданого початкового " +"значення. Дане початкове число дасть відтворювану послідовність " +"псевдовипадкових чисел. \n" +"[b]Примітка: [/b] RNG не має ефекту лавини та може виводити подібні випадкові " +"потоки за подібних початкових значень. Подумайте про використання хеш-" +"функції, щоб покращити якість початкового матеріалу, якщо вони отримані " +"ззовні. \n" +"[b]Примітка: [/b] Налаштування цієї властивості створює побічний ефект зміни " +"внутрішнього [стану-члена], тому переконайтеся, що ініціалізували початкове " +"значення [i]перед[/i] зміною [стану-члена]: \n" +"[b]Примітка:[/b] Значення за замовчуванням цієї властивості є " +"псевдовипадковим і змінюється під час виклику [method randomize]. Значення " +"[code]0[/code], задокументоване тут, є заповнювачем, а не фактичним " +"початковим значенням за замовчуванням. \n" +"[codeblock] \n" +"var rng = RandomNumberGenerator.new() \n" +"rng.seed = hash(\"Godot\") \n" +"rng.state = 100 # Відновлення попереднього збереженого стану. \n" "[/codeblock]" +msgid "" +"The current state of the random number generator. Save and restore this " +"property to restore the generator to a previous state:\n" +"[codeblock]\n" +"var rng = RandomNumberGenerator.new()\n" +"print(rng.randf())\n" +"var saved_state = rng.state # Store current state.\n" +"print(rng.randf()) # Advance internal state.\n" +"rng.state = saved_state # Restore the state.\n" +"print(rng.randf()) # Prints the same value as previously.\n" +"[/codeblock]\n" +"[b]Note:[/b] Do not set state to arbitrary values, since the random number " +"generator requires the state to have certain qualities to behave properly. It " +"should only be set to values that came from the state property itself. To " +"initialize the random number generator with arbitrary input, use [member " +"seed] instead.\n" +"[b]Note:[/b] The default value of this property is pseudo-random, and changes " +"when calling [method randomize]. The [code]0[/code] value documented here is " +"a placeholder, and not the actual default seed." +msgstr "" +"Поточний стан генератора випадкових чисел. Збережіть і відновіть цю " +"властивість, щоб повернути генератор до попереднього стану: \n" +"[codeblock] \n" +"var rng = RandomNumberGenerator.new() \n" +"print(rng.randf()) \n" +"var saved_state = rng.state # Зберегти поточний стан. \n" +"print(rng.randf()) # Попередній внутрішній стан. \n" +"rng.state = saved_state # Відновити стан. \n" +"print(rng.randf()) # Виводить те саме значення, що й раніше. \n" +"[/codeblock] \n" +"[b]Примітка:[/b] Не встановлюйте довільні значення для стану, оскільки " +"генератор випадкових чисел вимагає, щоб стан мав певні якості для належної " +"поведінки. Слід встановлювати лише значення, які вийшли з самої державної " +"власності. Щоб ініціалізувати генератор випадкових чисел із довільним " +"введенням, замість цього використовуйте [member seed]. \n" +"[b]Примітка:[/b] Значення за замовчуванням цієї властивості є " +"псевдовипадковим і змінюється під час виклику [method randomize]. Значення " +"[code]0[/code], задокументоване тут, є заповнювачем, а не фактичним " +"початковим значенням за замовчуванням." + msgid "Abstract base class for controls that represent a number within a range." msgstr "Абстрактний базовий клас контролю, який представляє номер в діапазоні." @@ -106622,6 +134208,15 @@ msgstr "" "Мінімальне значення. Діапазон затискається, якщо [пам'ятне значення] менше " "[пам'ятний мінімум_значення]." +msgid "" +"Page size. Used mainly for [ScrollBar]. A [ScrollBar]'s grabber length is the " +"[ScrollBar]'s size multiplied by [member page] over the difference between " +"[member min_value] and [member max_value]." +msgstr "" +"Розмір сторінки. Використовується переважно для [ScrollBar]. Довжина " +"захоплення [ScrollBar] — це розмір [ScrollBar], помножений на [member page] " +"на різницю між [member min_value] і [member max_value]." + msgid "The value mapped between 0 and 1." msgstr "Значення, відображене між 0 та 1." @@ -106780,26 +134375,25 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Повертає ідентифікатор форми першого об'єкта, який об'єднує промені, або " -"[code]0[/code], якщо об'єкт не перетинає промінь (тобто [метод_збирання] " -"повертає [code]false[/code].\n" -"Щоб отримати міжсекційну вершину форми, для цілей [CollisionObject2D], " -"скористайтеся:\n" -"[блоки коду]\n" -"[видання]\n" -"var Мета = get_collider() # КолісіяObject2D.\n" -"var форма_id = get_collider_shape() # Індекс форми в комірці.\n" -"var owner_id = цільовий.shape_find_owner(shape_id) # Ідентифікатор власника в " -"комірці.\n" -"var форма = цільова.shape_owner_get_owner(owner_id)\n" -"[/gdscript]\n" -"[csharp]\n" -"var ціль = (CollisionObject2D)GetCollider(); // КолегсіяObject2D.\n" -"форма вар Id = GetColliderShape(); (Українська) Індекс форми в комірці.\n" -"власник вар Id = цільовий.ShapeFindOwner(shapeId); (Українська) Ідентифікатор " -"власника в комірці.\n" -"var форма = цільова.ShapeOwnerGetOwner(власник) Id;\n" -"[/csharp]\n" +"Повертає ідентифікатор форми першого об’єкта, який перетинає промінь, або " +"[code]0[/code], якщо жоден об’єкт не перетинає промінь (тобто [method " +"is_colliding] повертає [code]false[/code]). \n" +"Щоб отримати пересічний вузол фігури для цілі [CollisionObject2D], " +"використовуйте: \n" +"[codeblocks] \n" +"[gdscript] \n" +"var target = get_collider() # CollisionObject2D. \n" +"var shape_id = get_collider_shape() # Індекс форми в коллайдері. \n" +"var owner_id = target.shape_find_owner(shape_id) # Ідентифікатор власника в " +"коллайдері. \n" +"var shape = target.shape_owner_get_owner(owner_id) \n" +"[/gdscript] \n" +"[csharp] \n" +"var target = (CollisionObject2D)GetCollider(); // CollisionObject2D. \n" +"var shapeId = GetColliderShape(); // Індекс форми в коллайдері. \n" +"var ownerId = target.ShapeFindOwner(shapeId); // ID власника в колайдері. \n" +"var shape = target.ShapeOwnerGetOwner(ownerId); \n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -106894,6 +134488,39 @@ msgid "" "The ray's destination point, relative to the RayCast's [code]position[/code]." msgstr "Точка призначення променя, відносно пункту меню [code]position [/code]." +msgid "A ray in 3D space, used to find the first object it intersects." +msgstr "" +"Промінь у тривимірному просторі, який використовується для пошуку першого " +"об’єкта, який він перетинає." + +msgid "" +"A raycast represents a ray from its origin to its [member target_position] " +"that finds the closest object along its path, if it intersects any.\n" +"[RayCast3D] can ignore some objects by adding them to an exception list, by " +"making its detection reporting ignore [Area3D]s ([member collide_with_areas]) " +"or [PhysicsBody3D]s ([member collide_with_bodies]), or by configuring physics " +"layers.\n" +"[RayCast3D] calculates intersection every physics frame, and it holds the " +"result until the next physics frame. For an immediate raycast, or if you want " +"to configure a [RayCast3D] multiple times within the same physics frame, use " +"[method force_raycast_update].\n" +"To sweep over a region of 3D space, you can approximate the region with " +"multiple [RayCast3D]s or use [ShapeCast3D]." +msgstr "" +"Raycast представляє промінь від його початку до його [member " +"target_position], який знаходить найближчий об’єкт на своєму шляху, якщо він " +"перетинає будь-який. \n" +"[RayCast3D] може ігнорувати деякі об’єкти, додаючи їх до списку винятків, " +"ігноруючи звіти про виявлення [Area3D] ([member collide_with_areas]) або " +"[PhysicsBody3D] ([member collide_with_bodies]), або налаштовуючи фізичні " +"шари. \n" +"[RayCast3D] обчислює перетин кожного фізичного кадру та зберігає результат до " +"наступного фізичного кадру. Для негайного raycast або якщо ви хочете " +"налаштувати [RayCast3D] кілька разів у межах одного фізичного кадру, " +"використовуйте [method force_raycast_update]. \n" +"Щоб охопити область 3D-простору, ви можете наблизити область за допомогою " +"кількох [RayCast3D] або використати [ShapeCast3D]." + msgid "" "Adds a collision exception so the ray does not report collisions with the " "specified [CollisionObject3D] node." @@ -106901,6 +134528,21 @@ msgstr "" "Додає виключення зіткнення, тому промен не повідомляє зіткнення з вказаною " "[CollisionObject3D] вершиною." +msgid "" +"Returns the first object that the ray intersects, or [code]null[/code] if no " +"object is intersecting the ray (i.e. [method is_colliding] returns " +"[code]false[/code]).\n" +"[b]Note:[/b] This object is not guaranteed to be a [CollisionObject3D]. For " +"example, if the ray intersects a [CSGShape3D] or a [GridMap], the method will " +"return a [CSGShape3D] or [GridMap] instance." +msgstr "" +"Повертає перший об’єкт, який перетинає промінь, або [code]null[/code], якщо " +"жоден об’єкт не перетинає промінь (тобто [method is_colliding] повертає " +"[code]false[/code]). \n" +"[b]Примітка: [/b] Цей об’єкт не гарантовано буде [CollisionObject3D]. " +"Наприклад, якщо промінь перетинає [CSGShape3D] або [GridMap], метод поверне " +"екземпляр [CSGShape3D] або [GridMap]." + msgid "" "Returns the shape ID of the first object that the ray intersects, or [code]0[/" "code] if no object is intersecting the ray (i.e. [method is_colliding] " @@ -106923,25 +134565,25 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Повертає ідентифікатор форми першого об'єкта, який об'єднує промені, або " -"[code]0[/code], якщо об'єкт не перетинає промінь (тобто [метод_збирання] " -"повертає [code]false[/code].\n" -"Щоб отримати міжсекційну форму вершину, для цілі [CollisionObject3D]:\n" -"[блоки коду]\n" -"[видання]\n" -"var Мета = get_collider() # КолісіяObject3D.\n" -"var форма_id = get_collider_shape() # Індекс форми в комірці.\n" -"var owner_id = цільовий.shape_find_owner(shape_id) # Ідентифікатор власника в " -"комірці.\n" -"var форма = цільова.shape_owner_get_owner(owner_id)\n" -"[/gdscript]\n" -"[csharp]\n" -"var ціль = (CollisionObject3D)GetCollider(); // КолегсіяObject3D.\n" -"форма вар Id = GetColliderShape(); (Українська) Індекс форми в комірці.\n" -"власник вар Id = цільовий.ShapeFindOwner(shapeId); (Українська) Ідентифікатор " -"власника в комірці.\n" -"var форма = цільова.ShapeOwnerGetOwner(власник) Id;\n" -"[/csharp]\n" +"Повертає ідентифікатор форми першого об’єкта, який перетинає промінь, або " +"[code]0[/code], якщо жоден об’єкт не перетинає промінь (тобто [method " +"is_colliding] повертає [code]false[/code]). \n" +"Щоб отримати пересічний вузол фігури для цілі [CollisionObject3D], " +"використовуйте: \n" +"[codeblocks] \n" +"[gdscript] \n" +"var target = get_collider() # CollisionObject3D. \n" +"var shape_id = get_collider_shape() # Індекс форми в коллайдері. \n" +"var owner_id = target.shape_find_owner(shape_id) # Ідентифікатор власника в " +"коллайдері. \n" +"var shape = target.shape_owner_get_owner(owner_id) \n" +"[/gdscript] \n" +"[csharp] \n" +"var target = (CollisionObject3D)GetCollider(); // CollisionObject3D. \n" +"var shapeId = GetColliderShape(); // Індекс форми в коллайдері. \n" +"var ownerId = target.ShapeFindOwner(shapeId); // ID власника в колайдері. \n" +"var shape = target.ShapeOwnerGetOwner(ownerId); \n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -107191,67 +134833,67 @@ msgid "" "[/codeblock]" msgstr "" "Контролює, як виконується змішування вихідних і цільових фрагментів під час " -"використання [RenderingDevice].\n" +"використання [RenderingDevice]. \n" "Для довідки, ось як звичайні режими змішування, призначені для користувача, " -"реалізовані в 2D рендерері Godot:\n" -"[b]Мікс:[/b]\n" -"[кодовий блок]\n" +"реалізовані в 2D рендерері Godot: \n" +"[b]Мікс:[/b] \n" +"[codeblock] \n" "var attachment = RDPipelineColorBlendStateAttachment.new()\n" -"attachment.enable_blend = істина\n" -"attachment.color_blend_op = RenderingDevice.BLEND_OP_ADD\n" -"attachment.src_color_blend_factor = RenderingDevice.BLEND_FACTOR_SRC_ALPHA\n" +"attachment.enable_blend = ture \n" +"attachment.color_blend_op = RenderingDevice.BLEND_OP_ADD \n" +"attachment.src_color_blend_factor = RenderingDevice.BLEND_FACTOR_SRC_ALPHA \n" "attachment.dst_color_blend_factor = RenderingDevice." -"BLEND_FACTOR_ONE_MINUS_SRC_ALPHA\n" -"attachment.alpha_blend_op = RenderingDevice.BLEND_OP_ADD\n" -"attachment.src_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ONE\n" +"BLEND_FACTOR_ONE_MINUS_SRC_ALPHA \n" +"attachment.alpha_blend_op = RenderingDevice.BLEND_OP_ADD \n" +"attachment.src_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ONE \n" "attachment.dst_alpha_blend_factor = RenderingDevice." -"BLEND_FACTOR_ONE_MINUS_SRC_ALPHA\n" -"[/codeblock]\n" -"[b]Додати:[/b]\n" -"[кодовий блок]\n" +"BLEND_FACTOR_ONE_MINUS_SRC_ALPHA \n" +"[/codeblock] \n" +"[b]Додати:[/b] \n" +"[codeblock] \n" "var attachment = RDPipelineColorBlendStateAttachment.new()\n" -"attachment.enable_blend = істина\n" -"attachment.alpha_blend_op = RenderingDevice.BLEND_OP_ADD\n" -"attachment.color_blend_op = RenderingDevice.BLEND_OP_ADD\n" -"attachment.src_color_blend_factor = RenderingDevice.BLEND_FACTOR_SRC_ALPHA\n" -"attachment.dst_color_blend_factor = RenderingDevice.BLEND_FACTOR_ONE\n" -"attachment.src_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_SRC_ALPHA\n" -"attachment.dst_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ONE\n" -"[/codeblock]\n" -"[b]Відняти:[/b]\n" -"[кодовий блок]\n" +"attachment.enable_blend = ture \n" +"attachment.alpha_blend_op = RenderingDevice.BLEND_OP_ADD \n" +"attachment.color_blend_op = RenderingDevice.BLEND_OP_ADD \n" +"attachment.src_color_blend_factor = RenderingDevice.BLEND_FACTOR_SRC_ALPHA \n" +"attachment.dst_color_blend_factor = RenderingDevice.BLEND_FACTOR_ONE \n" +"attachment.src_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_SRC_ALPHA \n" +"attachment.dst_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ONE \n" +"[/codeblock] \n" +"[b]Відняти:[/b] \n" +"[codeblock] \n" "var attachment = RDPipelineColorBlendStateAttachment.new()\n" -"attachment.enable_blend = істина\n" -"attachment.alpha_blend_op = RenderingDevice.BLEND_OP_REVERSE_SUBTRACT\n" -"attachment.color_blend_op = RenderingDevice.BLEND_OP_REVERSE_SUBTRACT\n" -"attachment.src_color_blend_factor = RenderingDevice.BLEND_FACTOR_SRC_ALPHA\n" -"attachment.dst_color_blend_factor = RenderingDevice.BLEND_FACTOR_ONE\n" -"attachment.src_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_SRC_ALPHA\n" -"attachment.dst_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ONE\n" -"[/codeblock]\n" -"[b]Помножити:[/b]\n" -"[кодовий блок]\n" +"attachment.enable_blend = ture \n" +"attachment.alpha_blend_op = RenderingDevice.BLEND_OP_REVERSE_SUBTRACT \n" +"attachment.color_blend_op = RenderingDevice.BLEND_OP_REVERSE_SUBTRACT \n" +"attachment.src_color_blend_factor = RenderingDevice.BLEND_FACTOR_SRC_ALPHA \n" +"attachment.dst_color_blend_factor = RenderingDevice.BLEND_FACTOR_ONE \n" +"attachment.src_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_SRC_ALPHA \n" +"attachment.dst_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ONE \n" +"[/codeblock] \n" +"[b]Помножити:[/b] \n" +"[codeblock] \n" "var attachment = RDPipelineColorBlendStateAttachment.new()\n" -"attachment.enable_blend = істина\n" -"attachment.alpha_blend_op = RenderingDevice.BLEND_OP_ADD\n" -"attachment.color_blend_op = RenderingDevice.BLEND_OP_ADD\n" -"attachment.src_color_blend_factor = RenderingDevice.BLEND_FACTOR_DST_COLOR\n" -"attachment.dst_color_blend_factor = RenderingDevice.BLEND_FACTOR_ZERO\n" -"attachment.src_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_DST_ALPHA\n" -"attachment.dst_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ZERO\n" -"[/codeblock]\n" -"[b]Попередньо помножена альфа:[/b]\n" -"[кодовий блок]\n" +"attachment.enable_blend = ture \n" +"attachment.alpha_blend_op = RenderingDevice.BLEND_OP_ADD \n" +"attachment.color_blend_op = RenderingDevice.BLEND_OP_ADD \n" +"attachment.src_color_blend_factor = RenderingDevice.BLEND_FACTOR_DST_COLOR \n" +"attachment.dst_color_blend_factor = RenderingDevice.BLEND_FACTOR_ZERO \n" +"attachment.src_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_DST_ALPHA \n" +"attachment.dst_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ZERO \n" +"[/codeblock] \n" +"[b]Попередньо помножена альфа:[/b] \n" +"[codeblock] \n" "var attachment = RDPipelineColorBlendStateAttachment.new()\n" -"attachment.enable_blend = істина\n" -"attachment.alpha_blend_op = RenderingDevice.BLEND_OP_ADD\n" -"attachment.color_blend_op = RenderingDevice.BLEND_OP_ADD\n" -"attachment.src_color_blend_factor = RenderingDevice.BLEND_FACTOR_ONE\n" +"attachment.enable_blend = ture \n" +"attachment.alpha_blend_op = RenderingDevice.BLEND_OP_ADD \n" +"attachment.color_blend_op = RenderingDevice.BLEND_OP_ADD \n" +"attachment.src_color_blend_factor = RenderingDevice.BLEND_FACTOR_ONE \n" "attachment.dst_color_blend_factor = RenderingDevice." -"BLEND_FACTOR_ONE_MINUS_SRC_ALPHA\n" -"attachment.src_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ONE\n" +"BLEND_FACTOR_ONE_MINUS_SRC_ALPHA \n" +"attachment.src_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ONE \n" "attachment.dst_alpha_blend_factor = RenderingDevice." -"BLEND_FACTOR_ONE_MINUS_SRC_ALPHA\n" +"BLEND_FACTOR_ONE_MINUS_SRC_ALPHA \n" "[/codeblock]" msgid "" @@ -107372,6 +135014,13 @@ msgstr "" "Операція для виконання на буфері трафарету для спини пікселів, які проходять " "тест трафарету, але не перевіряють глибину." +msgid "" +"The operation to perform on the stencil buffer for back pixels that fail the " +"stencil test." +msgstr "" +"Операція, яка виконується з трафаретним буфером для задніх пікселів, які не " +"пройшли перевірку трафарету." + msgid "" "The operation to perform on the stencil buffer for back pixels that pass the " "stencil test." @@ -107390,6 +135039,20 @@ msgstr "" "Метод, який використовується для порівняння попередніх і поточних значень " "глибини." +msgid "" +"The maximum depth that returns [code]true[/code] for [member " +"enable_depth_range]." +msgstr "" +"Максимальна глибина, яка повертає [code]true[/code] для [member " +"enable_depth_range]." + +msgid "" +"The minimum depth that returns [code]true[/code] for [member " +"enable_depth_range]." +msgstr "" +"Мінімальна глибина, яка повертає [code]true[/code] для [member " +"enable_depth_range]." + msgid "" "If [code]true[/code], each depth value will be tested to see if it is between " "[member depth_range_min] and [member depth_range_max]. If it is outside of " @@ -107412,6 +135075,15 @@ msgstr "" "об'єкти з'являться в порядку, що вони були намальовані (наприклад, в Godot's " "2D рендерера)." +msgid "" +"If [code]true[/code], writes to the depth buffer whenever the depth test " +"returns [code]true[/code]. Only works when enable_depth_test is also " +"[code]true[/code]." +msgstr "" +"Якщо [code]true[/code], запис у буфер глибини щоразу, коли перевірка глибини " +"повертає [code]true[/code]. Працює лише тоді, коли enable_depth_test також " +"[code]true[/code]." + msgid "" "If [code]true[/code], enables stencil testing. There are separate stencil " "buffers for front-facing triangles and back-facing triangles. See properties " @@ -107860,6 +135532,22 @@ msgstr "" "джерело_тесселація_контроль], [пам'ятний джерело_визначення] або [пам'ятний " "джерело_vertex]." +msgid "" +"Sets [param source] code for the specified shader [param stage]. Equivalent " +"to setting one of [member source_compute], [member source_fragment], [member " +"source_tesselation_control], [member source_tesselation_evaluation] or " +"[member source_vertex].\n" +"[b]Note:[/b] If you set the compute shader source code using this method " +"directly, remember to remove the Godot-specific hint [code]#[compute][/code]." +msgstr "" +"Встановлює [param source] код для вказаного шейдера [param stage]. " +"Еквівалентно встановленню [member source_compute], [member source_fragment], " +"[member source_tesselation_control], [member source_tesselation_evaluation] " +"або [member source_vertex]. \n" +"[b]Примітка:[/b] Якщо ви встановлюєте вихідний код обчислювального шейдера " +"безпосередньо за допомогою цього методу, не забудьте видалити підказку " +"[code]#[compute][/code], специфічну для Годо." + msgid "The language the shader is written in." msgstr "Мова шейдера письмова." @@ -108008,6 +135696,25 @@ msgstr "" msgid "Texture format (used by [RenderingDevice])." msgstr "Формат Текстури (використано [RenderingDevice])." +msgid "" +"Adds [param format] as a valid format for the corresponding [RDTextureView]'s " +"[member RDTextureView.format_override] property. If any format is added as " +"shareable, then the main [member format] must also be added." +msgstr "" +"Додає [param format] як дійсний формат для відповідної властивості " +"[RDTextureView] [member RDTextureView.format_override]. Якщо будь-який формат " +"додається як доступний для спільного використання, тоді також потрібно додати " +"головний [формат-учасника]." + +msgid "" +"Removes [param format] from the list of valid formats that the corresponding " +"[RDTextureView]'s [member RDTextureView.format_override] property can be set " +"to." +msgstr "" +"Видаляє [param format] зі списку дійсних форматів, які можна встановити для " +"відповідної властивості [member RDTextureView.format_override] " +"[RDTextureView]." + msgid "" "The number of layers in the texture. Only relevant for 2D texture arrays." msgstr "Кількість шарів в фактурі. Тільки відповідні для 2D текстурних масивів." @@ -108023,6 +135730,24 @@ msgstr "Формат даних фактури." msgid "The texture's height (in pixels)." msgstr "Висота текстури (у пікселях)." +msgid "" +"If a texture is discardable, its contents do not need to be preserved between " +"frames. This flag is only relevant when the texture is used as target in a " +"draw list.\n" +"This information is used by [RenderingDevice] to figure out if a texture's " +"contents can be discarded, eliminating unnecessary writes to memory and " +"boosting performance." +msgstr "" +"Якщо текстуру можна відкинути, її вміст не потрібно зберігати між кадрами. " +"Цей прапор має значення лише тоді, коли текстура використовується як ціль у " +"списку малювання. \n" +"Ця інформація використовується [RenderingDevice], щоб визначити, чи можна " +"скинути вміст текстури, усуваючи непотрібні записи в пам’ять і підвищуючи " +"продуктивність." + +msgid "The texture will be used as the destination of a resolve operation." +msgstr "Текстура використовуватиметься як місце призначення операції вирішення." + msgid "The number of mipmaps available in the texture." msgstr "Кількість mipmaps доступна в фактурі." @@ -108044,6 +135769,17 @@ msgstr "Ширина текстури (в пікселях)." msgid "Texture view (used by [RenderingDevice])." msgstr "Текстура (використана [RenderingDevice])." +msgid "" +"Optional override for the data format to return sampled values in. The " +"corresponding [RDTextureFormat] must have had this added as a shareable " +"format. The default value of [constant RenderingDevice.DATA_FORMAT_MAX] does " +"not override the format." +msgstr "" +"Необов’язкове перевизначення формату даних, у якому повертаються вибіркові " +"значення. У відповідному [RDTextureFormat] це має бути додано як формат, " +"доступний для спільного використання. Значення за замовчуванням [constant " +"RenderingDevice.DATA_FORMAT_MAX] не перевизначає формат." + msgid "The channel to sample when sampling the alpha channel." msgstr "Канал для вибірки при відбору альфа-каналу." @@ -108081,6 +135817,28 @@ msgstr "Тип даних форма." msgid "Vertex attribute (used by [RenderingDevice])." msgstr "Атрибут Vertex (використаний [RenderingDevice])." +msgid "The way that this attribute's data is interpreted when sent to a shader." +msgstr "" +"Спосіб інтерпретації даних цього атрибута під час надсилання до шейдера." + +msgid "The rate at which this attribute is pulled from its vertex buffer." +msgstr "Швидкість, з якою цей атрибут витягується з буфера вершин." + +msgid "The location in the shader that this attribute is bound to." +msgstr "Розташування в шейдері, до якого прив’язаний цей атрибут." + +msgid "" +"The number of bytes between the start of the vertex buffer and the first " +"instance of this attribute." +msgstr "" +"Кількість байтів між початком буфера вершин і першим екземпляром цього " +"атрибута." + +msgid "" +"The number of bytes between the starts of consecutive instances of this " +"attribute." +msgstr "Кількість байтів між початками послідовних екземплярів цього атрибута." + msgid "A 2D axis-aligned bounding box using floating-point coordinates." msgstr "" "A 2D вісь вирівнюється з'єднувальна коробка з використанням плавучих " @@ -108157,22 +135915,23 @@ msgid "" "negative, as most other methods in Godot assume that the [member position] is " "the top-left corner, and the [member end] is the bottom-right corner." msgstr "" -"Повертає [Rect2], еквівалентний цьому прямокутника, з його шириною і висотою " -"модифіковані, щоб бути негативними значеннями, а з його [пам'ятним " -"положенням] є верхній лівий кут прямокутника.\n" -"[блоки коду]\n" -"[видання]\n" -"var рект = Рект2(25, 25, -100, -50)\n" -"var абсолютний = ct.abs() # абсолютний Rect2(-75, -25, 100, 50)\n" -"[/gdscript]\n" -"[csharp]\n" -"var rect = новий Rect2(25, 25, -100, -50);\n" -"var абсолютний = ct.Abs(); // абсолютний Rect2(-75, -25, 100, 50)\n" -"[/csharp]\n" -"[/codeblocks]\n" -"[b]Note:[/b] Рекомендується використовувати цей метод, коли [пам'ятний " -"розмір] є негативним, оскільки більшість інших методів в Godot припускають, " -"що [пам'ятна позиція] є верхній кут, а [пам'ятний кінець] - нижній кут." +"Повертає [Rect2], еквівалентний цьому прямокутнику, з його шириною та " +"висотою, зміненими на невід’ємні значення, а [member position] — верхнім " +"лівим кутом прямокутника. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var rect = Rect2(25, 25, -100, -50) \n" +"var absolute = rect.abs() # absolute це Rect2(-75, -25, 100, 50) \n" +"[/gdscript] \n" +"[csharp] \n" +"var rect = new Rect2(25, 25, -100, -50); \n" +"var absolute = rect.Abs(); // абсолютним є Rect2(-75, -25, 100, 50) \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка:[/b] Рекомендується використовувати цей метод, коли [member size] " +"має від’ємне значення, оскільки більшість інших методів у Godot припускають, " +"що [member position] — це верхній лівий кут, а [member end] — нижній правий " +"кут." msgid "" "Returns [code]true[/code] if this rectangle [i]completely[/i] encloses the " @@ -108199,21 +135958,21 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Повертає копію цього прямокутника, розширеного для вирівнювання країв з " -"наведеною [парою до] точки, при необхідності.\n" -"[блоки коду]\n" -"[видання]\n" -"var рект = Рект2(0, 0, 5, 2)\n" +"Повертає копію цього прямокутника, розгорнуту для вирівнювання країв із " +"заданою точкою [param to], якщо необхідно. \n" +"[кодові блоки] \n" +"[gdscript] \n" +"var rect = Rect2(0, 0, 5, 2) \n" "\n" -"Рект2(0, 0, 10, 2)\n" -"Рект2(-5, 0, 15, 5)\n" -"[/gdscript]\n" -"[csharp]\n" -"var rect = новий Rect2(0, 0, 5, 2);\n" +"rect = rect.expand(Vector2(10, 0)) # rect це Rect2(0, 0, 10, 2) \n" +"rect = rect.expand(Vector2(-5, 5)) # rect is Rect2(-5, 0, 15, 5) \n" +"[/gdscript] \n" +"[csharp] \n" +"var rect = new Rect2(0, 0, 5, 2); \n" "\n" -"ct = ct.Expand(new Vector2(10, 0)); // ct is Rect2(0, 0, 10, 2)\n" -"ректор = рект2(-5, 0, 15, 5)\n" -"[/csharp]\n" +"rect = rect.Expand(new Vector2(10, 0)); // rect є Rect2(0, 0, 10, 2) \n" +"rect = rect.Expand(new Vector2(-5, 5)); // rect є Rect2(-5, 0, 15, 5) \n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -108230,6 +135989,15 @@ msgstr "" "Повертає центральну точку прямокутника. Це так само, як [code]позиція + " "(розмір / 2.0)[/code]." +msgid "" +"Returns the vertex's position of this rect that's the farthest in the given " +"direction. This point is commonly known as the support point in collision " +"detection algorithms." +msgstr "" +"Повертає позицію вершини цієї обмежувальної рамки, яка знаходиться найдальше " +"в заданому напрямку. Ця точка широко відома як опорна точка в алгоритмах " +"виявлення зіткнень." + msgid "" "Returns a copy of this rectangle extended on all sides by the given [param " "amount]. A negative [param amount] shrinks the rectangle instead. See also " @@ -108245,18 +136013,19 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Повертає копію цього прямокутника, розширеного з усіх сторін, наведених " -"[параметра]. Негатив [параметра] усаджує прямокутник замість. Дивись також " -"[метод вирощування_individual] і [метод вирощування_side].\n" -"[блоки коду]\n" -"[видання]\n" -"var a = Rect2(4, 8, 8).grow(4) # це Rect2(0, 0, 16, 16)\n" -"var b = Rect2(0, 0, 8, 4).grow(2) # б є Rect2(-2, -2, 12, 8)\n" -"[/gdscript]\n" -"[csharp]\n" -"var a = новий Rect2(4, 8, 8).Grow(4); // is Rect2(0, 0, 16, 16)\n" -"var b = новий Rect2(0, 0, 8, 4).Grow(2); // b є Rect2(-2, -2, 12, 8)\n" -"[/csharp]\n" +"Повертає копію цього прямокутника, подовженого з усіх боків на заданий " +"параметр [кількість параметрів]. Натомість від’ємне значення [кількість " +"параметрів] зменшує прямокутник. Дивіться також [method grow_individual] і " +"[method grow_side]. \n" +"[codeblocks]\n" +"[gdscript]\n" +"var a = Rect2(4, 4, 8, 8).grow(4) # a is Rect2(0, 0, 16, 16) \n" +"var b = Rect2(0, 0, 8, 4).grow(2) # b це Rect2(-2, -2, 12, 8) \n" +"[/gdscript] \n" +"[csharp] \n" +"var a = new Rect2(4, 4, 8, 8).Grow(4); // a є Rect2(0, 0, 16, 16) \n" +"var b = new Rect2(0, 0, 8, 4).Grow(2); // b є Rect2(-2, -2, 12, 8) \n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -108319,24 +136088,24 @@ msgid "" "[b]Note:[/b] If you only need to know whether two rectangles are overlapping, " "use [method intersects], instead." msgstr "" -"Повертає перехрестя цього прямокутника і [парам б]. Якщо прямокутники не " -"перетинаються, повертає порожній [Rect2].\n" -"[блоки коду]\n" -"[видання]\n" -"var rct1 = Rect2(0, 0, 5, 10)\n" -"var rct2 = Rect2(2, 0, 8, 4)\n" +"Повертає перетин між цим прямокутником і [param b]. Якщо прямокутники не " +"перетинаються, повертає порожній [Rect2]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"змінна rect1 = Rect2(0, 0, 5, 10) \n" +"змінна rect2 = Rect2(2, 0, 8, 4) \n" "\n" -"var a = rect1.intersection(rect2) # це Rect2(2, 0, 3, 4)\n" -"[/gdscript]\n" -"[csharp]\n" -"var rct1 = новий Rect2(0, 0, 5, 10);\n" -"var rct2 = новий Rect2(2, 0, 8, 4);\n" +"var a = rect1.intersection(rect2) # a is Rect2(2, 0, 3, 4) \n" +"[/gdscript] \n" +"[csharp] \n" +"var rect1 = new Rect2(0, 0, 5, 10); \n" +"var rect2 = new Rect2(2, 0, 8, 4); \n" "\n" -"var a = ct1.Інтерсекція(rect2); // is Rect2(2, 0, 3, 4)\n" -"[/csharp]\n" -"[/codeblocks]\n" -"[b]Примітка:[/b] Якщо вам потрібно знати, чи перекриваються два прямокутника, " -"скористайтеся [методичними засобами], замість цього." +"var a = rect1.Intersection(rect2); // a є Rect2(2, 0, 3, 4) \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка:[/b] Якщо вам потрібно лише знати, чи накладаються два " +"прямокутники, натомість використовуйте [method intersects]." msgid "" "Returns [code]true[/code] if this rectangle overlaps with the [param b] " @@ -108515,22 +136284,23 @@ msgid "" "negative, as most other methods in Godot assume that the [member position] is " "the top-left corner, and the [member end] is the bottom-right corner." msgstr "" -"Повертає [Rect2i], еквівалентний цьому прямокутника, з його шириною і висотою " -"модифіковані, щоб бути негативними значеннями, а з його [пам'ятним " -"положенням] є верхній лівий кут прямокутника.\n" -"[блоки коду]\n" -"[видання]\n" -"var рект = Rect2i(25, 25, -100, -50)\n" -"var абсолютний = ct.abs() # абсолютний Rect2i(-75, -25, 100, 50)\n" -"[/gdscript]\n" -"[csharp]\n" -"var rect = новий Rect2I(25, 25, -100, -50);\n" -"var абсолютний = ct.Abs(); // абсолютний Rect2I(-75, -25, 100, 50)\n" -"[/csharp]\n" -"[/codeblocks]\n" -"[b]Примітка:[/b] Рекомендовано використовувати цей метод, коли [пам'ятий " -"розмір] є негативним, оскільки більшість інших методів в Godot припускають, " -"що [пам'ятна позиція] є верхній лівий кут, а [пам'ятний кінець] - нижній кут." +"Повертає [Rect2i], еквівалентний цьому прямокутнику, з його шириною та " +"висотою, зміненими на невід’ємні значення, а його [member position] — верхнім " +"лівим кутом прямокутника. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var rect = Rect2i(25, 25, -100, -50) \n" +"var absolute = rect.abs() # absolute це Rect2i(-75, -25, 100, 50) \n" +"[/gdscript] \n" +"[csharp] \n" +"var rect = new Rect2I(25, 25, -100, -50); \n" +"var absolute = rect.Abs(); // абсолютним є Rect2I(-75, -25, 100, 50) \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка:[/b] Рекомендується використовувати цей метод, коли [member size] " +"має від’ємне значення, оскільки більшість інших методів у Godot припускають, " +"що [member position] — це верхній лівий кут, а [member end] — нижній правий " +"кут." msgid "" "Returns [code]true[/code] if this [Rect2i] completely encloses another one." @@ -108554,21 +136324,21 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Повертає копію цього прямокутника, розширеного для вирівнювання країв з " -"наведеною [парою до] точки, при необхідності.\n" -"[блоки коду]\n" -"[видання]\n" -"var ректор = Rect2i(0, 0, 5, 2)\n" +"Повертає копію цього прямокутника, розгорнуту для вирівнювання країв із " +"заданою точкою [param to], якщо необхідно. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var rect = Rect2i(0, 0, 5, 2) \n" "\n" -"рект2і(0, 0, 10, 2)\n" -"рект2і(-5, 0, 15, 5)\n" -"[/gdscript]\n" -"[csharp]\n" -"var rect = новий Rect2I(0, 0, 5, 2);\n" +"rect = rect.expand(Vector2i(10, 0)) # rect це Rect2i(0, 0, 10, 2) \n" +"rect = rect.expand(Vector2i(-5, 5)) # rect це Rect2i(-5, 0, 15, 5) \n" +"[/gdscript] \n" +"[csharp] \n" +"var rect = new Rect2I(0, 0, 5, 2); \n" "\n" -"рект = рект2І, 0, 10, 2)\n" -"рект = рект2І(-5, 0, 15, 5)\n" -"[/csharp]\n" +"rect = rect.Expand(new Vector2I(10, 0)); // rect це Rect2I(0, 0, 10, 2) \n" +"rect = rect.Expand(new Vector2I(-5, 5)); // rect це Rect2I(-5, 0, 15, 5) \n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -108597,18 +136367,19 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Повертає копію цього прямокутника, розширеного з усіх сторін, наведених " -"[параметра]. Негатив [параметра] усаджує прямокутник замість. Дивись також " -"[метод вирощування_individual] і [метод вирощування_side].\n" -"[блоки коду]\n" -"[видання]\n" -"var a = Rect2i(4, 8, 8).grow(4) # це Rect2i(0, 0, 16, 16)\n" -"var б = Rect2i(0, 0, 8, 4).grow(2) # б є Rect2i(-2, -2, 12, 8)\n" -"[/gdscript]\n" -"[csharp]\n" -"var a = новий Rect2I(4, 8, 8).Grow(4); // is Rect2I(0, 0, 16, 16)\n" -"var b = новий Rect2I(0, 0, 8, 4).Grow(2); // b є Rect2I(-2, -2, 12, 8)\n" -"[/csharp]\n" +"Повертає копію цього прямокутника, подовженого з усіх боків на заданий " +"параметр [кількість параметрів]. Натомість від’ємне значення [кількість " +"параметрів] зменшує прямокутник. Дивіться також [method grow_individual] і " +"[method grow_side]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var a = Rect2i(4, 4, 8, 8).grow(4) # a is Rect2i(0, 0, 16, 16) \n" +"var b = Rect2i(0, 0, 8, 4).grow(2) # b це Rect2i(-2, -2, 12, 8) \n" +"[/gdscript] \n" +"[csharp] \n" +"var a = new Rect2I(4, 4, 8, 8).Grow(4); // a є Rect2I(0, 0, 16, 16) \n" +"var b = new Rect2I(0, 0, 8, 4).Grow(2); // b є Rect2I(-2, -2, 12, 8) \n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -108643,24 +136414,24 @@ msgid "" "[b]Note:[/b] If you only need to know whether two rectangles are overlapping, " "use [method intersects], instead." msgstr "" -"Повертає перехрестя цього прямокутника і [парам б]. Якщо прямокутники не " -"перетинаються, повертає порожній [Rect2i].\n" -"[блоки коду]\n" -"[видання]\n" -"var a = Rect2i(0, 0, 5, 10)\n" -"var б = Rect2i(2, 0, 8, 4)\n" +"Повертає перетин між цим прямокутником і [param b]. Якщо прямокутники не " +"перетинаються, повертає порожній [Rect2i]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var a = Rect2i(0, 0, 5, 10) \n" +"var b = Rect2i(2, 0, 8, 4) \n" "\n" -"var c = a.intersection(b) # c is Rect2i(2, 0, 3, 4)\n" -"[/gdscript]\n" -"[csharp]\n" -"var a = новий Rect2I(0, 0, 5, 10);\n" -"var b = новий Rect2I(2, 0, 8, 4);\n" +"var c = a.intersection(b) # c is Rect2i(2, 0, 3, 4) \n" +"[/gdscript] \n" +"[csharp] \n" +"var a = new Rect2I(0, 0, 5, 10); \n" +"var b = new Rect2I(2, 0, 8, 4); \n" "\n" -"var c = ct1.Інтерсекція(rect2); // c is Rect2I(2, 0, 3, 4)\n" -"[/csharp]\n" -"[/codeblocks]\n" -"[b]Note:[/b] Якщо вам потрібно знати, чи перекриваються два прямокутники, " -"використовуйте [методичний інтерсекції], а не." +"var c = rect1.Intersection(rect2); // c є Rect2I(2, 0, 3, 4) \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка:[/b] Якщо вам потрібно лише знати, чи накладаються два " +"прямокутники, натомість використовуйте [method intersects]." msgid "" "Returns [code]true[/code] if this rectangle overlaps with the [param b] " @@ -108911,6 +136682,9 @@ msgstr "" "[РефлекціяПробе] і решта сцени (посередині [РефлекціїПробе], визначеної її " "[розміром])." +msgid "Defines the distance in meters over which a probe blends into the scene." +msgstr "Визначає відстань у метрах, на якій зонд зливається зі сценою." + msgid "" "If [code]true[/code], enables box projection. This makes reflections look " "more correct in rectangle-shaped rooms by offsetting the reflection center " @@ -109098,6 +136872,143 @@ msgstr "" msgid "Class for searching text for patterns using regular expressions." msgstr "Клас пошуку тексту для шаблонів з використанням формальних виразів." +msgid "" +"A regular expression (or regex) is a compact language that can be used to " +"recognize strings that follow a specific pattern, such as URLs, email " +"addresses, complete sentences, etc. For example, a regex of [code]ab[0-9][/" +"code] would find any string that is [code]ab[/code] followed by any number " +"from [code]0[/code] to [code]9[/code]. For a more in-depth look, you can " +"easily find various tutorials and detailed explanations on the Internet.\n" +"To begin, the RegEx object needs to be compiled with the search pattern using " +"[method compile] before it can be used.\n" +"[codeblock]\n" +"var regex = RegEx.new()\n" +"regex.compile(\"\\\\w-(\\\\d+)\")\n" +"[/codeblock]\n" +"The search pattern must be escaped first for GDScript before it is escaped " +"for the expression. For example, [code]compile(\"\\\\d+\")[/code] would be " +"read by RegEx as [code]\\d+[/code]. Similarly, [code]compile(\"\\\"(?:\\\\\\" +"\\.|[^\\\"])*\\\"\")[/code] would be read as [code]\"(?:\\\\.|[^\"])*\"[/" +"code]. In GDScript, you can also use raw string literals (r-strings). For " +"example, [code]compile(r'\"(?:\\\\.|[^\"])*\"')[/code] would be read the " +"same.\n" +"Using [method search], you can find the pattern within the given text. If a " +"pattern is found, [RegExMatch] is returned and you can retrieve details of " +"the results using methods such as [method RegExMatch.get_string] and [method " +"RegExMatch.get_start].\n" +"[codeblock]\n" +"var regex = RegEx.new()\n" +"regex.compile(\"\\\\w-(\\\\d+)\")\n" +"var result = regex.search(\"abc n-0123\")\n" +"if result:\n" +" print(result.get_string()) # Would print n-0123\n" +"[/codeblock]\n" +"The results of capturing groups [code]()[/code] can be retrieved by passing " +"the group number to the various methods in [RegExMatch]. Group 0 is the " +"default and will always refer to the entire pattern. In the above example, " +"calling [code]result.get_string(1)[/code] would give you [code]0123[/code].\n" +"This version of RegEx also supports named capturing groups, and the names can " +"be used to retrieve the results. If two or more groups have the same name, " +"the name would only refer to the first one with a match.\n" +"[codeblock]\n" +"var regex = RegEx.new()\n" +"regex.compile(\"d(?<digit>[0-9]+)|x(?<digit>[0-9a-f]+)\")\n" +"var result = regex.search(\"the number is x2f\")\n" +"if result:\n" +" print(result.get_string(\"digit\")) # Would print 2f\n" +"[/codeblock]\n" +"If you need to process multiple results, [method search_all] generates a list " +"of all non-overlapping results. This can be combined with a [code]for[/code] " +"loop for convenience.\n" +"[codeblock]\n" +"for result in regex.search_all(\"d01, d03, d0c, x3f and x42\"):\n" +" print(result.get_string(\"digit\"))\n" +"# Would print 01 03 0 3f 42\n" +"[/codeblock]\n" +"[b]Example:[/b] Split a string using a RegEx:\n" +"[codeblock]\n" +"var regex = RegEx.new()\n" +"regex.compile(\"\\\\S+\") # Negated whitespace character class.\n" +"var results = []\n" +"for result in regex.search_all(\"One Two \\n\\tThree\"):\n" +" results.push_back(result.get_string())\n" +"# The `results` array now contains \"One\", \"Two\", and \"Three\".\n" +"[/codeblock]\n" +"[b]Note:[/b] Godot's regex implementation is based on the [url=https://www." +"pcre.org/]PCRE2[/url] library. You can view the full pattern reference " +"[url=https://www.pcre.org/current/doc/html/pcre2pattern.html]here[/url].\n" +"[b]Tip:[/b] You can use [url=https://regexr.com/]Regexr[/url] to test regular " +"expressions online." +msgstr "" +"Регулярний вираз (або регулярний вираз) — це компактна мова, яка може " +"використовуватися для розпізнавання рядків, що відповідають певному шаблону, " +"наприклад URL-адрес, адрес електронної пошти, повних речень тощо. Наприклад, " +"регулярний вираз [code]ab[0-9][/code] знайде будь-який рядок, який є " +"[code]ab[/code], за яким слід будь-яке число від [code]0[/code] до [code]9[/" +"code]. Для більш глибокого ознайомлення ви можете легко знайти різні " +"підручники та докладні пояснення в Інтернеті. \n" +"Для початку об’єкт RegEx потрібно скомпілювати з шаблоном пошуку за допомогою " +"[method compile], перш ніж його можна буде використовувати. \n" +"[codeblock] \n" +"var regex = RegEx.new() \n" +"regex.compile(\"\\\\w-(\\\\d+)\") \n" +"[/codeblock] \n" +"Шаблон пошуку має бути екранований спочатку для GDScript, перш ніж він буде " +"екранований для виразу. Наприклад, [code]compile(\"\\\\d+\")[/code] " +"читатиметься RegEx як [code]\\d+[/code]. Так само [code]compile(\"\\\"(?:\\\\" +"\\\\.|[^\\\"])*\\\"\")[/code] читатиметься як [code]\"(?:\\\\.|[^\"])*\"[/" +"code]. У GDScript ви також можете використовувати необроблені рядкові " +"літерали (r-рядки). Наприклад, [code]compile(r'\"(?:\\\\.|[^\"])*\"')[/code] " +"читатиметься так само. \n" +"Використовуючи [метод пошуку], ви можете знайти шаблон у заданому тексті. " +"Якщо шаблон знайдено, повертається [RegExMatch], і ви можете отримати деталі " +"результатів за допомогою таких методів, як [method RegExMatch.get_string] і " +"[method RegExMatch.get_start]. \n" +"[codeblock] \n" +"var regex = RegEx.new() \n" +"regex.compile(\"\\\\w-(\\\\d+)\") \n" +"var result = regex.search(\"abc n-0123\") \n" +"if result: \n" +" print(result.get_string()) # Виведе n-0123 \n" +"[/codeblock] \n" +"Результати захоплення груп [code]()[/code] можна отримати, передавши номер " +"групи до різних методів у [RegExMatch]. Група 0 використовується за " +"замовчуванням і завжди стосується всього шаблону. У наведеному вище прикладі " +"виклик [code]result.get_string(1)[/code] дасть вам [code]0123[/code]. \n" +"Ця версія RegEx також підтримує іменовані групи захоплення, і імена можна " +"використовувати для отримання результатів. Якщо дві або більше груп мають " +"однакові назви, це ім’я стосуватиметься лише першої групи з відповідністю. \n" +"[codeblock] \n" +"var regex = RegEx.new() \n" +"regex.compile(\"d(?<number>[0-9]+)|x(?<number>[0-9a-f]+)\") \n" +"var result = regex.search(\"number is x2f\") \n" +"if result: \n" +" print(result.get_string(\"digit\")) # Виведе 2f \n" +"[/codeblock] \n" +"Якщо вам потрібно обробити кілька результатів, [метод search_all] генерує " +"список усіх результатів, що не збігаються. Це можна поєднати з циклом " +"[code]for[/code] для зручності. \n" +"[codeblock] \n" +"для результату в regex.search_all(\"d01, d03, d0c, x3f і x42\"): \n" +" print(result.get_string(\"number\")) \n" +"# Надрукував би 01 03 0 3f 42 \n" +"[/codeblock] \n" +"[b]Приклад: [/b] Розділити рядок за допомогою регулярного виразу: \n" +"[codeblock] \n" +"var regex = RegEx.new() \n" +"regex.compile(\"\\\\S+\") # Негований клас пробільних символів. \n" +"змінні результати = [] \n" +"для результату в regex.search_all(\"Один Два \\n\\tТри\"): \n" +" results.push_back(result.get_string()) \n" +"# Масив `results` тепер містить \"Один\", \"Два\" і \"Три\". \n" +"[/codeblock] \n" +"[b]Примітка.[/b] Реалізація регулярного виразу Godot базується на бібліотеці " +"[url=https://www.pcre.org/]PCRE2[/url]. Ви можете переглянути повне посилання " +"на шаблон [url=https://www.pcre.org/current/doc/html/pcre2pattern.html]тут[/" +"url]. \n" +"[b]Порада.[/b] Ви можете використовувати [url=https://regexr.com/]Regexr[/" +"url] для перевірки регулярних виразів онлайн." + msgid "" "This method resets the state of the object, as if it was freshly created. " "Namely, it unassigns the regular expression of this object." @@ -109105,6 +137016,21 @@ msgstr "" "Цей метод скидає стан об'єкта, якщо він був свіжо створений. Назволяє " "формальне вираз цього об’єкта." +msgid "" +"Compiles and assign the search pattern to use. Returns [constant OK] if the " +"compilation is successful. If compilation fails, returns [constant FAILED] " +"and when [param show_error] is [code]true[/code], details are printed to " +"standard output." +msgstr "" +"Компілює та призначає шаблон пошуку для використання. Повертає [константа " +"OK], якщо компіляція пройшла успішно. Якщо компіляція не вдається, повертає " +"[константу FAILED], а коли [param show_error] має значення [code]true[/code], " +"деталі друкуються у стандартний вихід." + +msgid "Creates and compiles a new [RegEx] object. See also [method compile]." +msgstr "" +"Створює та компілює новий об’єкт [RegEx]. Дивіться також [компіляція методу]." + msgid "Returns the number of capturing groups in compiled pattern." msgstr "Повертає кількість захоплюючих груп в складеному шаблоні." @@ -109369,6 +137295,13 @@ msgstr "" "Повернення [RID] об'єкта атрибутів камери в [RenderingServer], який " "використовується для відображення цього порту перегляду." +msgid "" +"Returns the [RID] of the environment object in the [RenderingServer] being " +"used to render this viewport." +msgstr "" +"Повертає [RID] об’єкта середовища в [RenderingServer], який використовується " +"для відтворення цього вікна перегляду." + msgid "" "Returns the [RenderSceneBuffers] object managing the scene buffers for " "rendering this viewport." @@ -109528,6 +137461,78 @@ msgstr "" "- в даний час діє розіграш (відтворено [метод_list_begin])\n" "- Список обчислень в даний час активно (відтворено [метод компute_list_begin])" +msgid "" +"Returns a copy of the data of the specified [param buffer], optionally [param " +"offset_bytes] and [param size_bytes] can be set to copy only a portion of the " +"buffer.\n" +"[b]Note:[/b] This method will block the GPU from working until the data is " +"retrieved. Refer to [method buffer_get_data_async] for an alternative that " +"returns the data in more performant way." +msgstr "" +"Повертає копію даних указаного [param buffer], за бажанням [param " +"offset_bytes] і [param size_bytes] можна встановити для копіювання лише " +"частини буфера. \n" +"[b]Примітка.[/b] Цей метод блокує роботу GPU, доки дані не будуть отримані. " +"Зверніться до [method buffer_get_data_async] для отримання альтернативи, яка " +"повертає дані більш продуктивним способом." + +msgid "" +"Asynchronous version of [method buffer_get_data]. RenderingDevice will call " +"[param callback] in a certain amount of frames with the data the buffer had " +"at the time of the request.\n" +"[b]Note:[/b] At the moment, the delay corresponds to the amount of frames " +"specified by [member ProjectSettings.rendering/rendering_device/vsync/" +"frame_queue_size].\n" +"[b]Note:[/b] Downloading large buffers can have a prohibitive cost for real-" +"time even when using the asynchronous method due to hardware bandwidth " +"limitations. When dealing with large resources, you can adjust settings such " +"as [member ProjectSettings.rendering/rendering_device/staging_buffer/" +"block_size_kb] to improve the transfer speed at the cost of extra memory.\n" +"[codeblock]\n" +"func _buffer_get_data_callback(array):\n" +" value = array.decode_u32(0)\n" +"\n" +"...\n" +"\n" +"rd.buffer_get_data_async(buffer, _buffer_get_data_callback)\n" +"[/codeblock]" +msgstr "" +"Асинхронна версія [method buffer_get_data]. RenderingDevice викличе [param " +"callback] у певній кількості кадрів із даними, які були в буфері на момент " +"запиту. \n" +"[b]Примітка:[/b] На даний момент затримка відповідає кількості кадрів, " +"визначеній [member ProjectSettings.rendering/rendering_device/vsync/" +"frame_queue_size]. \n" +"[b]Примітка:[/b] Завантаження великих буферів може мати непомірну вартість " +"для реального часу навіть у разі використання асинхронного методу через " +"апаратні обмеження пропускної здатності. Якщо ви маєте справу з великими " +"ресурсами, ви можете налаштувати такі параметри, як [member ProjectSettings." +"rendering/rendering_device/staging_buffer/block_size_kb], щоб покращити " +"швидкість передачі за рахунок додаткової пам’яті. \n" +"[codeblock \n" +"func _buffer_get_data_callback(масив): \n" +" значення = array.decode_u32(0) \n" +"\n" +"...\n" +"\n" +"rd.buffer_get_data_async(buffer, _buffer_get_data_callback) \n" +"[/codeblock]" + +msgid "" +"Returns the address of the given [param buffer] which can be passed to " +"shaders in any way to access underlying data. Buffer must have been created " +"with this feature enabled.\n" +"[b]Note:[/b] You must check that the GPU supports this functionality by " +"calling [method has_feature] with [constant SUPPORTS_BUFFER_DEVICE_ADDRESS] " +"as a parameter." +msgstr "" +"Повертає адресу заданого [param buffer], яку можна передати шейдерам у будь-" +"який спосіб для доступу до основних даних. Буфер має бути створено з " +"увімкненою цією функцією. \n" +"[b]Примітка.[/b] Ви повинні перевірити, чи GPU підтримує цю функцію, " +"викликавши [method has_feature] із [constant SUPPORTS_BUFFER_DEVICE_ADDRESS] " +"як параметром." + msgid "" "Updates a region of [param size_bytes] bytes, starting at [param offset], in " "the buffer, with the specified [param data].\n" @@ -109584,30 +137589,31 @@ msgid "" "rd.compute_list_end()\n" "[/codeblock]" msgstr "" -"Почати список команд, створених за допомогою методів [code]compute_*[/code]. " -"Повернуте значення повинно бути передано іншим параметрам " -"[code]compute_list_*[/code].\n" -"Багаторазові переліки не можуть бути створені одночасно, ви повинні закінчити " -"попередній список компрацій спочатку за допомогою [метод_list_end].\n" -"Проста операція компute може виглядати так (код не повний приклад):\n" -"[блокування коду]\n" -"var rd = RenderingDevice.new()\n" -"var compute_list = rd.compute_list_begin()\n" +"Запускає список обчислювальних команд, створених за допомогою методів " +"[code]compute_*[/code]. Повернене значення має бути передано до інших функцій " +"[code]compute_list_*[/code]. \n" +"Кілька списків обчислень не можна створити одночасно; ви повинні спочатку " +"завершити попередній список обчислень за допомогою [метод " +"compute_list_end]. \n" +"Проста обчислювальна операція може виглядати так (код не є повним " +"прикладом): \n" +"[codeblock] \n" +"var rd = RenderingDevice.new() \n" +"var compute_list = rd.compute_list_begin() \n" "\n" "rd.compute_list_bind_compute_pipeline(compute_list, " -"compute_shader_dilate_pipeline)\n" -"rd.compute_list_bind_uniform_set(compute_list, compute_base_uniform_set, 0 " -"р.\n" -"rd.compute_list_bind_uniform_set(compute_list, dilate_uniform_set, 1 час\n" +"compute_shader_dilate_pipeline) \n" +"rd.compute_list_bind_uniform_set(compute_list, compute_base_uniform_set, 0) \n" +"rd.compute_list_bind_uniform_set(compute_list, dilate_uniform_set, 1) \n" "\n" -"для i в atlas_slices:\n" -"rd.compute_list_set_push_constant(compute_list, push_constant, push_constant." -"size())\n" -"rd.compute_list_dispatch(compute_list, група_size.x, група_size.y, група_size." -"z)\n" -"# Не бар'єр, нехай вони працюють разом.\n" +"for i в atlas_slices: \n" +" rd.compute_list_set_push_constant(compute_list, push_constant, " +"push_constant.size()) \n" +" rd.compute_list_dispatch(compute_list, group_size.x, group_size.y, " +"group_size.z) \n" +" # Без бар'єру, нехай біжать усі разом. \n" "\n" -"rd.compute_list_end()\n" +"rd.compute_list_end() \n" "[/codeblock]" msgid "" @@ -109721,6 +137727,113 @@ msgstr "Закінчується команда буфера дебюг мітк msgid "Inserting labels no longer applies due to command reordering." msgstr "Вставляючи етикетки більше не діє через порядок замовлення." +msgid "" +"Starts a list of raster drawing commands created with the [code]draw_*[/code] " +"methods. The returned value should be passed to other [code]draw_list_*[/" +"code] functions.\n" +"Multiple draw lists cannot be created at the same time; you must finish the " +"previous draw list first using [method draw_list_end].\n" +"A simple drawing operation might look like this (code is not a complete " +"example):\n" +"[codeblock]\n" +"var rd = RenderingDevice.new()\n" +"var clear_colors = PackedColorArray([Color(0, 0, 0, 0), Color(0, 0, 0, 0), " +"Color(0, 0, 0, 0)])\n" +"var draw_list = rd.draw_list_begin(framebuffers[i], RenderingDevice." +"CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice." +"OPAQUE_PASS)\n" +"\n" +"# Draw opaque.\n" +"rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline)\n" +"rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0)\n" +"rd.draw_list_set_push_constant(draw_list, raster_push_constant, " +"raster_push_constant.size())\n" +"rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3)\n" +"# Draw wire.\n" +"rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline_wire)\n" +"rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0)\n" +"rd.draw_list_set_push_constant(draw_list, raster_push_constant, " +"raster_push_constant.size())\n" +"rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3)\n" +"\n" +"rd.draw_list_end()\n" +"[/codeblock]\n" +"The [param draw_flags] indicates if the texture attachments of the " +"framebuffer should be cleared or ignored. Only one of the two flags can be " +"used for each individual attachment. Ignoring an attachment means that any " +"contents that existed before the draw list will be completely discarded, " +"reducing the memory bandwidth used by the render pass but producing garbage " +"results if the pixels aren't replaced. The default behavior allows the engine " +"to figure out the right operation to use if the texture is discardable, which " +"can result in increased performance. See [RDTextureFormat] or [method " +"texture_set_discardable].\n" +"The [param breadcrumb] parameter can be an arbitrary 32-bit integer that is " +"useful to diagnose GPU crashes. If Godot is built in dev or debug mode; when " +"the GPU crashes Godot will dump all shaders that were being executed at the " +"time of the crash and the breadcrumb is useful to diagnose what passes did " +"those shaders belong to.\n" +"It does not affect rendering behavior and can be set to 0. It is recommended " +"to use [enum BreadcrumbMarker] enumerations for consistency but it's not " +"required. It is also possible to use bitwise operations to add extra data. e." +"g.\n" +"[codeblock]\n" +"rd.draw_list_begin(fb[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, " +"true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS | 5)\n" +"[/codeblock]" +msgstr "" +"Запускає список команд растрового малювання, створених за допомогою методів " +"[code]draw_*[/code]. Повернене значення має бути передано іншим функціям " +"[code]draw_list_*[/code]. \n" +"Неможливо створити кілька списків розіграшів одночасно; спочатку потрібно " +"завершити попередній список розіграшів за допомогою [методу draw_list_end]. \n" +"Проста операція малювання може виглядати так (код не є повним прикладом): \n" +"[codeblock] \n" +"var rd = RenderingDevice.new() \n" +"var clear_colors = PackedColorArray([Color(0, 0, 0, 0), Color(0, 0, 0, 0), " +"Color(0, 0, 0, 0)]) \n" +"var draw_list = rd.draw_list_begin(framebuffers[i], RenderingDevice." +"CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice." +"OPAQUE_PASS) \n" +"\n" +"# Малювати непрозоро. \n" +"rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline) \n" +"rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0) \n" +"rd.draw_list_set_push_constant(draw_list, raster_push_constant, " +"raster_push_constant.size()) \n" +"rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3) \n" +"# Намалюйте дріт. \n" +"rd.draw_list_bind_render_pipeline(draw_list, растр_pipeline_wire) \n" +"rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0) \n" +"rd.draw_list_set_push_constant(draw_list, raster_push_constant, " +"raster_push_constant.size()) \n" +"rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3) \n" +"\n" +"rd.draw_list_end() \n" +"[/codeblock] \n" +"Параметр [param draw_flags] вказує, чи потрібно видалити або проігнорувати " +"вкладення текстури буфера кадрів. Для кожного окремого вкладення можна " +"використовувати лише один із двох прапорців. Ігнорування вкладення означає, " +"що будь-який вміст, який існував до списку малювання, буде повністю " +"відкинуто, зменшуючи пропускну здатність пам’яті, яка використовується " +"проходом візуалізації, але створюючи сміттєві результати, якщо пікселі не " +"замінено. Поведінка за замовчуванням дозволяє механізму визначити правильну " +"операцію для використання, якщо текстуру можна відкинути, що може призвести " +"до підвищення продуктивності. Перегляньте [RDTextureFormat] або [метод " +"texture_set_discardable]. \n" +"Параметр [param breadcrumb] може бути довільним 32-розрядним цілим числом, " +"корисним для діагностики збоїв GPU. Якщо Годо створено в режимі розробки або " +"налагодження; коли графічний процесор виходить з ладу, Godot видалить усі " +"шейдери, які виконувалися під час збою, і навігаційна ланка корисна для " +"діагностики, яким проходам належали ці шейдери. \n" +"Це не впливає на поведінку візуалізації та може бути встановлено на 0. " +"Рекомендовано використовувати перерахування [enum BreadcrumbMarker] для " +"узгодженості, але це не обов’язково. Також можна використовувати побітові " +"операції для додавання додаткових даних. напр. \n" +"[codeblock] \n" +"rd.draw_list_begin(fb[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, " +"true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS | 5) \n" +"[/codeblock]" + msgid "" "High-level variant of [method draw_list_begin], with the parameters " "automatically being adjusted for drawing onto the window specified by the " @@ -109775,6 +137888,21 @@ msgstr "" "Відправки [param Draw_list] для рендерингу на GPU. Це растровий еквівалент " "[метод компute_list_dispatch]." +msgid "" +"Submits [param draw_list] for rendering on the GPU with the given parameters " +"stored in the [param buffer] at [param offset]. Parameters being integers: " +"vertex count, instance count, first vertex, first instance. And when using " +"indices: index count, instance count, first index, vertex offset, first " +"instance. Buffer must have been created with [constant " +"STORAGE_BUFFER_USAGE_DISPATCH_INDIRECT] flag." +msgstr "" +"Надсилає [param draw_list] для візуалізації на GPU із заданими параметрами, " +"які зберігаються в [param buffer] у [param offset]. Параметри є цілими " +"числами: кількість вершин, кількість екземплярів, перша вершина, перший " +"екземпляр. А при використанні індексів: кількість індексів, кількість " +"екземплярів, перший індекс, зсув вершини, перший екземпляр. Буфер має бути " +"створено з прапорцем [постійний STORAGE_BUFFER_USAGE_DISPATCH_INDIRECT]." + msgid "" "Creates a scissor rectangle and enables it for the specified [param " "draw_list]. Scissor rectangles are used for clipping by discarding fragments " @@ -109960,6 +138088,51 @@ msgstr "" "Повертає індекс останнього кадру, що дає можливість своєчасно виконувати " "замовлення." +msgid "" +"Returns how many allocations the GPU has performed for internal driver " +"structures.\n" +"This is only used by Vulkan in debug builds and can return 0 when this " +"information is not tracked or unknown." +msgstr "" +"Повертає кількість виділень графічного процесора для внутрішніх структур " +"драйвера.\n" +"Це використовується лише Vulkan у збірках для налагодження та може повертати " +"0, якщо ця інформація не відстежується або невідома." + +msgid "" +"Same as [method get_device_allocation_count] but filtered for a given object " +"type.\n" +"The type argument must be in range [code][0; get_tracked_object_type_count - " +"1][/code]. If [method get_tracked_object_type_count] is 0, then type argument " +"is ignored and always returns 0.\n" +"This is only used by Vulkan in debug builds and can return 0 when this " +"information is not tracked or unknown." +msgstr "" +"Те саме, що [method get_device_allocation_count], але фільтрується для " +"певного типу об’єкта. \n" +"Аргумент типу має бути в діапазоні [code][0; get_tracked_object_type_count - " +"1][/code]. Якщо [метод get_tracked_object_type_count] дорівнює 0, тоді " +"аргумент типу ігнорується та завжди повертає 0. \n" +"Це використовується лише Vulkan у збірках для налагодження та може повертати " +"0, якщо ця інформація не відстежується або невідома." + +msgid "" +"Same as [method get_device_total_memory] but filtered for a given object " +"type.\n" +"The type argument must be in range [code][0; get_tracked_object_type_count - " +"1][/code]. If [method get_tracked_object_type_count] is 0, then type argument " +"is ignored and always returns 0.\n" +"This is only used by Vulkan in debug builds and can return 0 when this " +"information is not tracked or unknown." +msgstr "" +"Те саме, що [метод get_device_total_memory], але відфільтровано для певного " +"типу об’єкта. \n" +"Аргумент типу має бути в діапазоні [код][0; get_tracked_object_type_count - 1]" +"[/code]. Якщо [метод get_tracked_object_type_count] дорівнює 0, тоді аргумент " +"типу ігнорується та завжди повертає 0. \n" +"Це використовується лише Vulkan у збірках для налагодження та може повертати " +"0, якщо ця інформація не відстежується або невідома." + msgid "" "Returns the name of the video adapter (e.g. \"GeForce GTX 1080/PCIe/SSE2\"). " "Equivalent to [method RenderingServer.get_video_adapter_name]. See also " @@ -109982,6 +138155,15 @@ msgstr "" "моделі карти графіки, але і версії драйвера. Таким чином, оновлення графічних " "драйверів буде недійсним кешера." +msgid "" +"Returns how much bytes the GPU is using.\n" +"This is only used by Vulkan in debug builds and can return 0 when this " +"information is not tracked or unknown." +msgstr "" +"Повертає кількість байтів, які використовує графічний процесор.\n" +"Це використовується лише Vulkan у збірках для налагодження та може повертати " +"0, якщо ця інформація не відстежується або невідома." + msgid "" "Returns the vendor of the video adapter (e.g. \"NVIDIA Corporation\"). " "Equivalent to [method RenderingServer.get_video_adapter_vendor]. See also " @@ -109991,6 +138173,82 @@ msgstr "" "Equivalent to [метод RenderingServer.get_video_adapter_vendor]. Дивись також " "[method get_device_name]." +msgid "" +"Returns how many allocations the GPU driver has performed for internal driver " +"structures.\n" +"This is only used by Vulkan in debug builds and can return 0 when this " +"information is not tracked or unknown." +msgstr "" +"Повертає кількість виділень драйвером GPU для внутрішніх структур драйвера.\n" +"Це використовується лише Vulkan у збірках для налагодження та може повертати " +"0, якщо ця інформація не відстежується або невідома." + +msgid "" +"Same as [method get_driver_allocation_count] but filtered for a given object " +"type.\n" +"The type argument must be in range [code][0; get_tracked_object_type_count - " +"1][/code]. If [method get_tracked_object_type_count] is 0, then type argument " +"is ignored and always returns 0.\n" +"This is only used by Vulkan in debug builds and can return 0 when this " +"information is not tracked or unknown." +msgstr "" +"Те саме, що [метод get_driver_allocation_count], але фільтрується для певного " +"типу об’єкта. \n" +"Аргумент типу має бути в діапазоні [код][0; get_tracked_object_type_count - 1]" +"[/code]. Якщо [метод get_tracked_object_type_count] дорівнює 0, тоді аргумент " +"типу ігнорується та завжди повертає 0. \n" +"Це використовується лише Vulkan у збірках для налагодження та може повертати " +"0, якщо ця інформація не відстежується або невідома." + +msgid "" +"Returns string report in CSV format using the following methods:\n" +"- [method get_tracked_object_name]\n" +"- [method get_tracked_object_type_count]\n" +"- [method get_driver_total_memory]\n" +"- [method get_driver_allocation_count]\n" +"- [method get_driver_memory_by_object_type]\n" +"- [method get_driver_allocs_by_object_type]\n" +"- [method get_device_total_memory]\n" +"- [method get_device_allocation_count]\n" +"- [method get_device_memory_by_object_type]\n" +"- [method get_device_allocs_by_object_type]\n" +"This is only used by Vulkan in debug builds. Godot must also be started with " +"the [code]--extra-gpu-memory-tracking[/code] [url=$DOCS_URL/tutorials/editor/" +"command_line_tutorial.html]command line argument[/url]." +msgstr "" +"Повертає рядковий звіт у форматі CSV за допомогою таких методів: \n" +"- [метод get_tracked_object_name] \n" +"- [метод get_tracked_object_type_count] \n" +"- [метод get_driver_total_memory] \n" +"- [метод get_driver_allocation_count] \n" +"- [метод get_driver_memory_by_object_type] \n" +"- [метод get_driver_allocs_by_object_type] \n" +"- [метод get_device_total_memory] \n" +"- [метод get_device_allocation_count] \n" +"- [метод get_device_memory_by_object_type] \n" +"- [метод get_device_allocs_by_object_type] \n" +"Це використовується лише Vulkan у збірках для налагодження. Godot також " +"потрібно запускати за допомогою [code]--extra-gpu-memory-tracking[/code] " +"[url=$DOCS_URL/tutorials/editor/command_line_tutorial.html]аргументу " +"командного рядка[/url]." + +msgid "" +"Same as [method get_driver_total_memory] but filtered for a given object " +"type.\n" +"The type argument must be in range [code][0; get_tracked_object_type_count - " +"1][/code]. If [method get_tracked_object_type_count] is 0, then type argument " +"is ignored and always returns 0.\n" +"This is only used by Vulkan in debug builds and can return 0 when this " +"information is not tracked or unknown." +msgstr "" +"Те саме, що [метод get_driver_total_memory], але відфільтровано для певного " +"типу об’єкта. \n" +"Аргумент типу має бути в діапазоні [код][0; get_tracked_object_type_count - 1]" +"[/code]. Якщо [метод get_tracked_object_type_count] дорівнює 0, тоді аргумент " +"типу ігнорується та завжди повертає 0. \n" +"Це використовується лише Vulkan у збірках для налагодження та може повертати " +"0, якщо ця інформація не відстежується або невідома." + msgid "" "Returns the unique identifier of the driver [param resource] for the " "specified [param rid]. Some driver resource types ignore the specified [param " @@ -110002,6 +138260,17 @@ msgstr "" "(див. [enum DriverResource] описи). [param index] завжди ігнорується, але " "необхідно вказати будь-який шлях." +msgid "" +"Returns how much bytes the GPU driver is using for internal driver " +"structures.\n" +"This is only used by Vulkan in debug builds and can return 0 when this " +"information is not tracked or unknown." +msgstr "" +"Повертає кількість байтів, які драйвер GPU використовує для внутрішніх " +"структур драйвера.\n" +"Це використовується лише Vulkan у збірках для налагодження та може повертати " +"0, якщо ця інформація не відстежується або невідома." + msgid "" "Returns the frame count kept by the graphics API. Higher values result in " "higher input lag, but with more consistent throughput. For the main " @@ -110023,6 +138292,71 @@ msgstr "" "використанні Vulkan ці статистика обчислюються [url=https://github.com/" "GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator]Vulkan Алокатор пам'яті [/url]." +msgid "" +"Returns a string with a performance report from the past frame. Updates every " +"frame." +msgstr "" +"Повертає рядок із звітом про продуктивність з минулого кадру. Оновлює кожен " +"кадр." + +msgid "" +"Returns the name of the type of object for the given [param type_index]. This " +"value must be in range [code][0; get_tracked_object_type_count - 1][/code]. " +"If [method get_tracked_object_type_count] is 0, then type argument is ignored " +"and always returns the same string.\n" +"The return value is important because it gives meaning to the types passed to " +"[method get_driver_memory_by_object_type], [method " +"get_driver_allocs_by_object_type], [method get_device_memory_by_object_type], " +"and [method get_device_allocs_by_object_type]. Examples of strings it can " +"return (not exhaustive):\n" +"- DEVICE_MEMORY\n" +"- PIPELINE_CACHE\n" +"- SWAPCHAIN_KHR\n" +"- COMMAND_POOL\n" +"Thus if e.g. [code]get_tracked_object_name(5)[/code] returns " +"\"COMMAND_POOL\", then [code]get_device_memory_by_object_type(5)[/code] " +"returns the bytes used by the GPU for command pools.\n" +"This is only used by Vulkan in debug builds. Godot must also be started with " +"the [code]--extra-gpu-memory-tracking[/code] [url=$DOCS_URL/tutorials/editor/" +"command_line_tutorial.html]command line argument[/url]." +msgstr "" +"Повертає назву типу об’єкта для заданого [param type_index]. Це значення має " +"бути в діапазоні [код][0; get_tracked_object_type_count - 1][/code]. Якщо " +"[method get_tracked_object_type_count] дорівнює 0, аргумент типу ігнорується " +"та завжди повертає той самий рядок. \n" +"Повернене значення є важливим, оскільки воно надає значення типам, переданим " +"у [method get_driver_memory_by_object_type], [method " +"get_driver_allocs_by_object_type], [method get_device_memory_by_object_type] " +"і [method get_device_allocs_by_object_type]. Приклади рядків, які він може " +"повернути (не вичерпний): \n" +"- DEVICE_MEMORY \n" +"- PIPELINE_CACHE \n" +"- SWAPCHAIN_KHR \n" +"- COMMAND_POOL \n" +"Таким чином, якщо напр. [code]get_tracked_object_name(5)[/code] повертає " +"\"COMMAND_POOL\", потім [code]get_device_memory_by_object_type(5)[/code] " +"повертає байти, які використовує GPU для пулів команд. \n" +"Це використовується лише Vulkan у збірках для налагодження. Godot також " +"потрібно запускати за допомогою [code]--extra-gpu-memory-tracking[/code] " +"[url=$DOCS_URL/tutorials/editor/command_line_tutorial.html]аргументу " +"командного рядка[/url]." + +msgid "" +"Returns how many types of trackable objects are.\n" +"This is only used by Vulkan in debug builds. Godot must also be started with " +"the [code]--extra-gpu-memory-tracking[/code] [url=$DOCS_URL/tutorials/editor/" +"command_line_tutorial.html]command line argument[/url]." +msgstr "" +"Повертає кількість типів відстежуваних об’єктів. \n" +"Це використовується лише Vulkan у збірках для налагодження. Godot також " +"потрібно запускати за допомогою [code]--extra-gpu-memory-tracking[/code] " +"[url=$DOCS_URL/tutorials/editor/command_line_tutorial.html]аргументу " +"командного рядка[/url]." + +msgid "" +"Returns [code]true[/code] if the [param feature] is supported by the GPU." +msgstr "Повертає [code]true[/code], якщо [param feature] підтримується GPU." + msgid "" "Creates a new index array. It can be accessed with the RID that is returned.\n" "Once finished with your RID, you will want to free the RID using the " @@ -110033,6 +138367,17 @@ msgstr "" "Після закінчення з вашим RID ви хочете звільнити RID за допомогою методу " "RenderingDevice [метод Free_rid]." +msgid "" +"Creates a new index buffer. It can be accessed with the RID that is " +"returned.\n" +"Once finished with your RID, you will want to free the RID using the " +"RenderingDevice's [method free_rid] method." +msgstr "" +"Створює новий буфер індексу. До нього можна отримати доступ за допомогою RID, " +"який повертається.\n" +"Після завершення роботи з вашим RID ви захочете звільнити RID за допомогою " +"методу RenderingDevice [method free_rid]." + msgid "" "Returns the value of the specified [param limit]. This limit varies depending " "on the current graphics hardware (and sometimes the driver version). If the " @@ -110392,6 +138737,107 @@ msgstr "" "Створює спільну фактуру за допомогою зазначеної [param view] та фактурної " "інформації з [param with_texture]." +msgid "" +"Creates a shared texture using the specified [param view] and the texture " +"information from [param with_texture]'s [param layer] and [param mipmap]. The " +"number of included mipmaps from the original texture can be controlled using " +"the [param mipmaps] parameter. Only relevant for textures with multiple " +"layers, such as 3D textures, texture arrays and cubemaps. For single-layer " +"textures, use [method texture_create_shared].\n" +"For 2D textures (which only have one layer), [param layer] must be [code]0[/" +"code].\n" +"[b]Note:[/b] Layer slicing is only supported for 2D texture arrays, not 3D " +"textures or cubemaps." +msgstr "" +"Створює спільну текстуру, використовуючи вказаний [param view] і інформацію " +"про текстуру з [param with_texture] [param layer] і [param mipmap]. Кількість " +"включених mipmap з оригінальної текстури можна контролювати за допомогою " +"параметра [param mipmaps]. Релевантно лише для текстур із кількома шарами, " +"наприклад 3D-текстур, масивів текстур і кубичних карт. Для одношарових " +"текстур використовуйте [метод texture_create_shared]. \n" +"Для двовимірних текстур (які мають лише один шар) [param layer] має бути " +"[code]0[/code]. \n" +"[b]Примітка: [/b] Нарізка шарів підтримується лише для масивів 2D текстур, а " +"не для 3D текстур або кубичних карт." + +msgid "" +"Returns the [param texture] data for the specified [param layer] as raw " +"binary data. For 2D textures (which only have one layer), [param layer] must " +"be [code]0[/code].\n" +"[b]Note:[/b] [param texture] can't be retrieved while a draw list that uses " +"it as part of a framebuffer is being created. Ensure the draw list is " +"finalized (and that the color/depth texture using it is not set to [constant " +"FINAL_ACTION_CONTINUE]) to retrieve this texture. Otherwise, an error is " +"printed and a empty [PackedByteArray] is returned.\n" +"[b]Note:[/b] [param texture] requires the [constant " +"TEXTURE_USAGE_CAN_COPY_FROM_BIT] to be retrieved. Otherwise, an error is " +"printed and a empty [PackedByteArray] is returned.\n" +"[b]Note:[/b] This method will block the GPU from working until the data is " +"retrieved. Refer to [method texture_get_data_async] for an alternative that " +"returns the data in more performant way." +msgstr "" +"Повертає дані [param texture] для вказаного [param layer] як необроблені " +"двійкові дані. Для двовимірних текстур (які мають лише один шар) [param " +"layer] має бути [code]0[/code]. \n" +"[b]Примітка:[/b] [param texture] не можна отримати, поки створюється список " +"малювання, який використовує його як частину кадрового буфера. Переконайтеся, " +"що список малюнків завершено (і що текстура кольору/глибини, яка його " +"використовує, не має значення [константа FINAL_ACTION_CONTINUE]), щоб " +"отримати цю текстуру. В іншому випадку друкується помилка та повертається " +"порожній [PackedByteArray]. \n" +"[b]Примітка:[/b] [param texture] вимагає отримання [константи " +"TEXTURE_USAGE_CAN_COPY_FROM_BIT]. В іншому випадку друкується помилка та " +"повертається порожній [PackedByteArray]. \n" +"[b]Примітка.[/b] Цей метод блокує роботу GPU, доки дані не будуть отримані. " +"Зверніться до [метод texture_get_data_async] для отримання альтернативи, яка " +"повертає дані більш продуктивним способом." + +msgid "" +"Asynchronous version of [method texture_get_data]. RenderingDevice will call " +"[param callback] in a certain amount of frames with the data the texture had " +"at the time of the request.\n" +"[b]Note:[/b] At the moment, the delay corresponds to the amount of frames " +"specified by [member ProjectSettings.rendering/rendering_device/vsync/" +"frame_queue_size].\n" +"[b]Note:[/b] Downloading large textures can have a prohibitive cost for real-" +"time even when using the asynchronous method due to hardware bandwidth " +"limitations. When dealing with large resources, you can adjust settings such " +"as [member ProjectSettings.rendering/rendering_device/staging_buffer/" +"texture_download_region_size_px] and [member ProjectSettings.rendering/" +"rendering_device/staging_buffer/block_size_kb] to improve the transfer speed " +"at the cost of extra memory.\n" +"[codeblock]\n" +"func _texture_get_data_callback(array):\n" +" value = array.decode_u32(0)\n" +"\n" +"...\n" +"\n" +"rd.texture_get_data_async(texture, 0, _texture_get_data_callback)\n" +"[/codeblock]" +msgstr "" +"Асинхронна версія [метод texture_get_data]. RenderingDevice викличе [param " +"callback] у певній кількості кадрів із даними, які текстура мала на момент " +"запиту. \n" +"[b]Примітка:[/b] На даний момент затримка відповідає кількості кадрів, " +"визначеній [member ProjectSettings.rendering/rendering_device/vsync/" +"frame_queue_size]. \n" +"[b]Примітка:[/b] Завантаження великих текстур може мати непомірну вартість у " +"режимі реального часу, навіть якщо використовується асинхронний метод, через " +"апаратні обмеження пропускної здатності. Якщо ви маєте справу з великими " +"ресурсами, ви можете налаштувати такі параметри, як [member ProjectSettings." +"rendering/rendering_device/staging_buffer/texture_download_region_size_px] і " +"[member ProjectSettings.rendering/rendering_device/staging_buffer/" +"block_size_kb], щоб покращити швидкість передачі за рахунок додаткової " +"пам’яті. \n" +"[codeblock] \n" +"func _texture_get_data_callback(array): \n" +" valve = array.decode_u32(0) \n" +"\n" +"...\n" +"\n" +"rd.texture_get_data_async(texture, 0, _texture_get_data_callback) \n" +"[/codeblock]" + msgid "Returns the data format used to create this texture." msgstr "" "Повертає формат даних, який використовується для створення цієї текстури." @@ -110414,6 +138860,14 @@ msgstr "" "[b]Примітка:[/b] Ця функція повертає [code]uint64_t[/code], які внутрішні " "карти на [code]GLuint[/code] (OpenGL) або [code]VkImage[/code] (Vulkan)." +msgid "" +"Returns [code]true[/code] if the [param texture] is discardable, [code]false[/" +"code] otherwise. See [RDTextureFormat] or [method texture_set_discardable]." +msgstr "" +"Повертає [code]true[/code], якщо [param texture] можна відкинути, " +"[code]false[/code] інакше. Перегляньте [RDTextureFormat] або [метод " +"texture_set_discardable]." + msgid "" "Returns [code]true[/code] if the specified [param format] is supported for " "the given [param usage_flags], [code]false[/code] otherwise." @@ -110482,6 +138936,23 @@ msgstr "" "[b]Note:[/b] [param to_texture] фактура повинна [b]not[/b] бути багатогранним " "і повинен бути 2D (або скибочку текстури 3D/cubemap)." +msgid "" +"Updates the discardable property of [param texture].\n" +"If a texture is discardable, its contents do not need to be preserved between " +"frames. This flag is only relevant when the texture is used as target in a " +"draw list.\n" +"This information is used by [RenderingDevice] to figure out if a texture's " +"contents can be discarded, eliminating unnecessary writes to memory and " +"boosting performance." +msgstr "" +"Оновлює властивість [param texture], яку можна відкинути. \n" +"Якщо текстуру можна відкинути, її вміст не потрібно зберігати між кадрами. " +"Цей прапор має значення лише тоді, коли текстура використовується як ціль у " +"списку малювання. \n" +"Ця інформація використовується [RenderingDevice], щоб визначити, чи можна " +"скинути вміст текстури, усуваючи непотрібні записи в пам’ять і підвищуючи " +"продуктивність." + msgid "" "Updates texture data with new data, replacing the previous data in place. The " "updated texture data must have the same dimensions and format. For 2D " @@ -110512,6 +138983,17 @@ msgstr "" "[b]Примітка:[/b] В даний час [param текстура] вимагає [constant " "TEXTURE_USAGE_CAN_UPDATE_BIT] бути застарілим." +msgid "" +"Creates a new uniform buffer. It can be accessed with the RID that is " +"returned.\n" +"Once finished with your RID, you will want to free the RID using the " +"RenderingDevice's [method free_rid] method." +msgstr "" +"Створює новий однорідний буфер. До нього можна отримати доступ за допомогою " +"RID, який повертається.\n" +"Після завершення роботи з вашим RID ви захочете звільнити RID за допомогою " +"методу RenderingDevice [method free_rid]." + msgid "" "Creates a new uniform set. It can be accessed with the RID that is returned.\n" "Once finished with your RID, you will want to free the RID using the " @@ -110532,6 +139014,15 @@ msgstr "" "Створює хребтовий масив на основі зазначених буферів. Для кожного буфера може " "бути визначений варіант [param offsets] (в байтах)." +msgid "" +"It can be accessed with the RID that is returned.\n" +"Once finished with your RID, you will want to free the RID using the " +"RenderingDevice's [method free_rid] method." +msgstr "" +"До нього можна отримати доступ за допомогою RID, який повертається.\n" +"Після завершення роботи з вашим RID ви захочете звільнити RID за допомогою " +"методу RenderingDevice [method free_rid]." + msgid "" "Creates a new vertex format with the specified [param vertex_descriptions]. " "Returns a unique vertex format ID corresponding to the newly created vertex " @@ -113120,6 +141611,48 @@ msgstr "" "Індекс буфера в 32-bit не позначений формат цілого. Цей ліміт максимального " "індексу, який можна вказати на [code]4294967295[/code]." +msgid "" +"Optionally, set this flag if you wish to use [method " +"buffer_get_device_address] functionality. You must first check the GPU " +"supports it:\n" +"[codeblocks]\n" +"[gdscript]\n" +"rd = RenderingServer.get_rendering_device()\n" +"\n" +"if rd.has_feature(RenderingDevice.SUPPORTS_BUFFER_DEVICE_ADDRESS):\n" +" storage_buffer = rd.storage_buffer_create(bytes.size(), bytes, " +"RenderingDevice.STORAGE_BUFFER_USAGE_SHADER_DEVICE_ADDRESS):\n" +" storage_buffer_address = rd.buffer_get_device_address(storage_buffer)\n" +"[/gdscript]\n" +"[/codeblocks]" +msgstr "" +"Додатково встановіть цей прапорець, якщо ви бажаєте використовувати функцію " +"[method buffer_get_device_address]. Ви повинні спочатку перевірити, чи GPU це " +"підтримує: \n" +"[codeblocks] \n" +"[gdscript] \n" +"rd = RenderingServer.get_rendering_device() \n" +"\n" +"if rd.has_feature(RenderingDevice.SUPPORTS_BUFFER_DEVICE_ADDRESS): \n" +" storage_buffer = rd.storage_buffer_create(bytes.size(), bytes, " +"RenderingDevice.STORAGE_BUFFER_USAGE_SHADER_DEVICE_ADDRESS): \n" +" store_buffer_address = rd.buffer_get_device_address(storage_buffer) \n" +"[/gdscript] \n" +"[/codeblocks]" + +msgid "" +"Set this flag so that it is created as storage. This is useful if Compute " +"Shaders need access (for reading or writing) to the buffer, e.g. skeletal " +"animations are processed in Compute Shaders which need access to vertex " +"buffers, to be later consumed by vertex shaders as part of the regular " +"rasterization pipeline." +msgstr "" +"Установіть цей прапорець, щоб він створювався як сховище. Це корисно, якщо " +"Compute Shaders потребує доступу (для читання чи запису) до буфера, " +"наприклад. скелетні анімації обробляються в Compute Shaders, яким потрібен " +"доступ до вершинних буферів, щоб пізніше використовуватися вершинними " +"шейдерами як частина звичайного конвеєра растеризації." + msgid "Sampler uniform." msgstr "Зразок форма." @@ -113594,6 +142127,9 @@ msgstr "Дозволяє динамічно змінювати ширину ре msgid "Allows dynamically changing the depth bias." msgstr "Дозволяє динамічно змінювати глибину зносу." +msgid "Initial actions are solved automatically by RenderingDevice." +msgstr "Початкові дії автоматично вирішуються RenderingDevice." + msgid "Load the previous contents of the framebuffer." msgstr "Завантаження попереднього вмісту каркасу." @@ -113610,6 +142146,9 @@ msgstr "" msgid "Represents the size of the [enum InitialAction] enum." msgstr "Представляємо розмір занурення [enum InitialAction]." +msgid "Final actions are solved automatically by RenderingDevice." +msgstr "Кінцеві дії автоматично вирішуються RenderingDevice." + msgid "" "Store the result of the draw list in the framebuffer. This is generally what " "you want to do." @@ -113710,6 +142249,9 @@ msgstr "Постійна спеціалізація." msgid "Floating-point specialization constant." msgstr "Постійна спеціалізація Floating-point." +msgid "Features support for buffer device address extension." +msgstr "Підтримка розширення адреси буферного пристрою." + msgid "Maximum number of uniform sets that can be bound at a given time." msgstr "" "Максимальне число рівномірних наборів, які можуть бути пов'язані за вказаний " @@ -113853,6 +142395,32 @@ msgstr "Максимальна ширина порту (в пікселях)." msgid "Maximum viewport height (in pixels)." msgstr "Максимальна висота порту (у пікселях)." +msgid "" +"Returns the smallest value for [member ProjectSettings.rendering/scaling_3d/" +"scale] when using the MetalFX temporal upscaler.\n" +"[b]Note:[/b] The returned value is multiplied by a factor of [code]1000000[/" +"code] to preserve 6 digits of precision. It must be divided by " +"[code]1000000.0[/code] to convert the value to a floating point number." +msgstr "" +"Повертає найменше значення для [member ProjectSettings.rendering/scaling_3d/" +"scale] під час використання засобу тимчасового збільшення MetalFX. \n" +"[b]Примітка.[/b] Повернене значення множиться на коефіцієнт [code]1000000[/" +"code], щоб зберегти 6 цифр точності. Його потрібно розділити на " +"[code]1000000.0[/code], щоб перетворити значення на число з плаваючою комою." + +msgid "" +"Returns the largest value for [member ProjectSettings.rendering/scaling_3d/" +"scale] when using the MetalFX temporal upscaler.\n" +"[b]Note:[/b] The returned value is multiplied by a factor of [code]1000000[/" +"code] to preserve 6 digits of precision. It must be divided by " +"[code]1000000.0[/code] to convert the value to a floating point number." +msgstr "" +"Повертає найбільше значення для [member ProjectSettings.rendering/scaling_3d/" +"scale] під час використання тимчасового масштабувальника MetalFX. \n" +"[b]Примітка.[/b] Повернене значення множиться на коефіцієнт [code]1000000[/" +"code], щоб зберегти 6 цифр точності. Його потрібно розділити на " +"[code]1000000.0[/code], щоб перетворити значення на число з плаваючою комою." + msgid "Memory taken by textures." msgstr "Пам'ять, взяті текстурами." @@ -113878,6 +142446,87 @@ msgstr "" "Повернення функцій, які повертаються ідентифікатор формату, якщо значення " "недійсне." +msgid "Do not clear or ignore any attachments." +msgstr "Не видаляйте та не ігноруйте вкладення." + +msgid "Clear the first color attachment." +msgstr "Очистіть перше вкладення кольору." + +msgid "Clear the second color attachment." +msgstr "Очистіть вкладення другого кольору." + +msgid "Clear the third color attachment." +msgstr "Очистіть вкладення третього кольору." + +msgid "Clear the fourth color attachment." +msgstr "Очистіть вкладення четвертого кольору." + +msgid "Clear the fifth color attachment." +msgstr "Очистіть вкладення п’ятого кольору." + +msgid "Clear the sixth color attachment." +msgstr "Очистіть вкладення шостого кольору." + +msgid "Clear the seventh color attachment." +msgstr "Очистіть вкладення сьомого кольору." + +msgid "Clear the eighth color attachment." +msgstr "Очистіть восьме кольорове вкладення." + +msgid "Mask for clearing all color attachments." +msgstr "Маска для очищення всіх кольорових вкладень." + +msgid "Clear all color attachments." +msgstr "Очистити всі кольорові вкладення." + +msgid "Ignore the previous contents of the first color attachment." +msgstr "Ігноруйте попередній вміст першого кольорового вкладення." + +msgid "Ignore the previous contents of the second color attachment." +msgstr "Ігноруйте попередній вміст вкладення другого кольору." + +msgid "Ignore the previous contents of the third color attachment." +msgstr "Ігноруйте попередній вміст третього кольорового вкладення." + +msgid "Ignore the previous contents of the fourth color attachment." +msgstr "Ігноруйте попередній вміст четвертого кольорового вкладення." + +msgid "Ignore the previous contents of the fifth color attachment." +msgstr "Ігноруйте попередній вміст п’ятого кольорового вкладення." + +msgid "Ignore the previous contents of the sixth color attachment." +msgstr "Ігноруйте попередній вміст шостого кольорового вкладення." + +msgid "Ignore the previous contents of the seventh color attachment." +msgstr "Ігноруйте попередній вміст сьомого кольорового вкладення." + +msgid "Ignore the previous contents of the eighth color attachment." +msgstr "Ігноруйте попередній вміст восьмого кольорового вкладення." + +msgid "Mask for ignoring all the previous contents of the color attachments." +msgstr "Маска для ігнорування всього попереднього вмісту кольорових вкладень." + +msgid "Ignore the previous contents of all color attachments." +msgstr "Ігноруйте попередній вміст усіх кольорових вкладень." + +msgid "Clear the depth attachment." +msgstr "Очистіть насадку глибини." + +msgid "Ignore the previous contents of the depth attachment." +msgstr "Ігноруйте попередній вміст вкладення глибини." + +msgid "Clear the stencil attachment." +msgstr "Очистіть вкладення трафарету." + +msgid "Ignore the previous contents of the stencil attachment." +msgstr "Ігноруйте попередній вміст трафаретного вкладення." + +msgid "Clear all attachments." +msgstr "Очистити всі вкладення." + +msgid "Ignore the previous contents of all attachments." +msgstr "Ігнорувати попередній вміст усіх вкладень." + msgid "Server for anything visible." msgstr "Сервер для будь-якого видимого." @@ -114054,21 +142703,23 @@ msgid "" "sensitivity)) / log(2)\n" "[/codeblock]" msgstr "" -"Встановлює значення впливу, які будуть використані рендерами. Сума " -"нормалізації використовується для запікання заданого значення Exposure (EV) " -"на надання розрахунків для зменшення динамічного діапазону сцени.\n" -"Фактор нормалізації може бути розрахований з значення впливу (EV100) " -"наступним чином:\n" -"[блокування коду]\n" -"Func get_exposure_normalization(ev100: float):\n" -"Зворотній зв'язок 1.0 / (pow(2.0, ev100) * 1.2)\n" -"[/codeblock]\n" -"Вартість експозиції може бути розрахована з апертури (в f-stops), швидкості " -"затвору (в секундах), а також чутливості (в ISO):\n" -"[блокування коду]\n" -"Func get_exposure(aperture: float, lockter_speed: float, чутливість: float):\n" -"Журнал зворотнього зв'язку(апертура * апертура) / вимикач_speed * (100.0 / " -"чутливість)) / журнал(2)\n" +"Встановлює значення експозиції, які використовуватимуться рендерерами. " +"Величина нормалізації використовується для включення заданого значення " +"експозиції (EV) у обчислення візуалізації для зменшення динамічного діапазону " +"сцени. \n" +"Коефіцієнт нормалізації можна розрахувати за значенням експозиції (EV100) " +"наступним чином: \n" +"[codeblock] \n" +"func get_exposure_normalization(ev100: float): \n" +" return 1,0 / (pow(2,0, ev100) * 1,2) \n" +"[/codeblock] \n" +"Значення експозиції можна розрахувати на основі діафрагми (у діафрагмах), " +"витримки (у секундах) і чутливості (у ISO) таким чином: \n" +"[codeblock] \n" +"func get_exposure(aperture: float, shutter_speed: float, sensitivity: " +"float): \n" +" return log((aperture * aperture) / shutter_speed * (100,0 / " +"sensitivity)) / log(2) \n" "[/codeblock]" msgid "" @@ -114176,6 +142827,15 @@ msgstr "" "Накладає коло на [ПолотноItem] вказується на [пам'ятний елемент] [RID]. " "Дивись також [метод CanvasItem.draw_circle]." +msgid "" +"If [param ignore] is [code]true[/code], ignore clipping on items drawn with " +"this canvas item until this is called again with [param ignore] set to " +"[code]false[/code]." +msgstr "" +"Якщо [param ignore] має значення [code]true[/code], ігноруйте відсікання " +"елементів, намальованих цим елементом полотна, доки це не буде викликано " +"знову з [param ignore], встановленим на [code]false[/code]." + msgid "See also [method CanvasItem.draw_lcd_texture_rect_region]." msgstr "Дивись також [метод CanvasItem.draw_lcd_texture_rect_region]." @@ -114224,6 +142884,27 @@ msgid "" "Draws particles on the [CanvasItem] pointed to by the [param item] [RID]." msgstr "Накладні частинки на [CanvasItem] вказують на [param пункт] [RID]." +msgid "" +"Draws a 2D polygon on the [CanvasItem] pointed to by the [param item] [RID]. " +"If you need more flexibility (such as being able to use bones), use [method " +"canvas_item_add_triangle_array] instead. See also [method CanvasItem." +"draw_polygon].\n" +"[b]Note:[/b] If you frequently redraw the same polygon with a large number of " +"vertices, consider pre-calculating the triangulation with [method Geometry2D." +"triangulate_polygon] and using [method CanvasItem.draw_mesh], [method " +"CanvasItem.draw_multimesh], or [method canvas_item_add_triangle_array]." +msgstr "" +"Малює двовимірний багатокутник на [CanvasItem], на який вказує [param item] " +"[RID]. Якщо вам потрібна більша гнучкість (наприклад, можливість " +"використовувати кістки), замість цього використовуйте [метод " +"canvas_item_add_triangle_array]. Дивіться також [метод CanvasItem." +"draw_polygon]. \n" +"[b]Примітка.[/b] Якщо ви часто перемальовуєте один і той самий багатокутник " +"із великою кількістю вершин, розгляньте можливість попереднього розрахунку " +"тріангуляції за допомогою [методу Geometry2D.triangulate_polygon] і " +"використання [методу CanvasItem.draw_mesh], [методу CanvasItem." +"draw_multimesh] або [методу canvas_item_add_triangle_array]." + msgid "" "Draws a 2D polyline on the [CanvasItem] pointed to by the [param item] [RID]. " "See also [method CanvasItem.draw_polyline] and [method CanvasItem." @@ -114285,6 +142966,9 @@ msgstr "" "для використання, ніж [метод полотно_item_add_polygon].\n" "[b]Note:[/b] [param count] невикористаний і може бути лівою невизначеною." +msgid "Attaches a skeleton to the [CanvasItem]. Removes the previous skeleton." +msgstr "Прикріплює скелет до [CanvasItem]. Видаляє попередній скелет." + msgid "Clears the [CanvasItem] and removes all commands in it." msgstr "Очистити [CanvasItem] і видаліть всі команди в ньому." @@ -114303,6 +142987,37 @@ msgstr "" "RenderingServer.\n" "[b]Note:[/b] еквівалентний вузол [CanvasItem]." +msgid "" +"Returns the value of the per-instance shader uniform from the specified " +"canvas item instance. Equivalent to [method CanvasItem." +"get_instance_shader_parameter]." +msgstr "" +"Повертає значення уніформи шейдера для кожного екземпляра з указаного " +"екземпляра елемента полотна. Еквівалент [методу CanvasItem." +"get_instance_shader_parameter]." + +msgid "" +"Returns the default value of the per-instance shader uniform from the " +"specified canvas item instance. Equivalent to [method CanvasItem." +"get_instance_shader_parameter]." +msgstr "" +"Повертає значення за замовчуванням уніформи шейдера для кожного екземпляра з " +"указаного екземпляра елемента полотна. Еквівалент [методу CanvasItem." +"get_instance_shader_parameter]." + +msgid "" +"Returns a dictionary of per-instance shader uniform names of the per-instance " +"shader uniform from the specified canvas item instance.\n" +"The returned dictionary is in PropertyInfo format, with the keys [code]name[/" +"code], [code]class_name[/code], [code]type[/code], [code]hint[/code], " +"[code]hint_string[/code], and [code]usage[/code]." +msgstr "" +"Повертає словник однорідних імен шейдерів для кожного екземпляра уніформи " +"шейдера для кожного екземпляра з указаного екземпляра елемента полотна. \n" +"Повернений словник має формат PropertyInfo з ключами [code]назва[/code], " +"[code]назва_класу[/code], [code]тип[/code], [код]підказка[/code], " +"[code]рядок_підказки[/code] і [code]використання[/code]." + msgid "" "Prevents physics interpolation for the current physics tick.\n" "This is useful when moving a canvas item to a new location, to give an " @@ -114397,6 +143112,14 @@ msgstr "" msgid "Sets the index for the [CanvasItem]." msgstr "Встановлює індекс для [CanvasItem]." +msgid "" +"Sets the per-instance shader uniform on the specified canvas item instance. " +"Equivalent to [method CanvasItem.set_instance_shader_parameter]." +msgstr "" +"Встановлює уніфікований шейдер для кожного екземпляра на вказаному екземплярі " +"елемента полотна. Еквівалент [методу CanvasItem." +"set_instance_shader_parameter]." + msgid "" "If [param interpolated] is [code]true[/code], turns on physics interpolation " "for the canvas item." @@ -114688,6 +143411,18 @@ msgstr "" "Налаштовує діапазон Z об'єктів, які будуть уражені цим світлом. Equivalent to " "[Пам'ятий Light2D.range_z_min] і [Пам'ятий Light2D.range_z_max]." +msgid "" +"Transforms both the current and previous stored transform for a canvas " +"light.\n" +"This allows transforming a light without creating a \"glitch\" in the " +"interpolation, which is particularly useful for large worlds utilizing a " +"shifting origin." +msgstr "" +"Трансформує як поточне, так і попереднє збережене перетворення для світла " +"полотна. \n" +"Це дозволяє трансформувати світло без створення «глюка» в інтерполяції, що " +"особливо корисно для великих світів, які використовують змінне походження." + msgid "" "Creates a new light occluder polygon and adds it to the RenderingServer. It " "can be accessed with the RID that is returned. This RID will be used in all " @@ -114849,6 +143584,19 @@ msgstr "" "має бути масив, що містить RID, створених за допомогою [методичного " "композитора_effect_create]." +msgid "" +"Creates a RenderingDevice that can be used to do draw and compute operations " +"on a separate thread. Cannot draw to the screen nor share data with the " +"global RenderingDevice.\n" +"[b]Note:[/b] When using the OpenGL rendering driver or when running in " +"headless mode, this function always returns [code]null[/code]." +msgstr "" +"Створює RenderingDevice, який можна використовувати для виконання операцій " +"малювання та обчислення в окремому потоці. Неможливо малювати на екрані або " +"ділитися даними з глобальним RenderingDevice. \n" +"[b]Примітка:[/b] Під час використання драйвера візуалізації OpenGL або під " +"час роботи в безголовому режимі ця функція завжди повертає [code]null[/code]." + msgid "" "Returns the bounding rectangle for a canvas item in local space, as " "calculated by the renderer. This bound is used internally for culling.\n" @@ -115080,6 +143828,11 @@ msgstr "" msgid "Sets the intensity of the background color." msgstr "Встановлює інтенсивність фонового кольору." +msgid "Sets the camera ID to be used as environment background." +msgstr "" +"Встановлює ідентифікатор камери, який буде використовуватися як фон " +"середовища." + msgid "Sets the maximum layer to use if using Canvas background mode." msgstr "" "Налаштовує максимальний шар для використання при використанні фонового режиму " @@ -115291,6 +144044,42 @@ msgstr "" "пам'яті, це слід назвати після використання об'єкта, як управління пам'яттю " "не відбувається автоматично при використанні RenderingServer безпосередньо." +msgid "" +"Returns the name of the current rendering driver. This can be [code]vulkan[/" +"code], [code]d3d12[/code], [code]metal[/code], [code]opengl3[/code], " +"[code]opengl3_es[/code], or [code]opengl3_angle[/code]. See also [method " +"get_current_rendering_method].\n" +"The rendering driver is determined by [member ProjectSettings.rendering/" +"rendering_device/driver], the [code]--rendering-driver[/code] command line " +"argument that overrides this project setting, or an automatic fallback that " +"is applied depending on the hardware." +msgstr "" +"Повертає назву поточного драйвера візуалізації. Це може бути [code]vulkan[/" +"code], [code]d3d12[/code], [code]metal[/code], [code]opengl3[/code], " +"[code]opengl3_es[/code] або [code]opengl3_angle[/code]. Дивіться також [метод " +"get_current_rendering_method]. \n" +"Драйвер візуалізації визначається [member ProjectSettings.rendering/" +"rendering_device/driver], аргументом командного рядка [code]--rendering-" +"driver[/code], який замінює це налаштування проекту, або автоматичним " +"резервним варіантом, який застосовується залежно від апаратного забезпечення." + +msgid "" +"Returns the name of the current rendering method. This can be " +"[code]forward_plus[/code], [code]mobile[/code], or [code]gl_compatibility[/" +"code]. See also [method get_current_rendering_driver_name].\n" +"The rendering method is determined by [member ProjectSettings.rendering/" +"renderer/rendering_method], the [code]--rendering-method[/code] command line " +"argument that overrides this project setting, or an automatic fallback that " +"is applied depending on the hardware." +msgstr "" +"Повертає назву поточного методу візуалізації. Це може бути " +"[code]forward_plus[/code], [code]mobile[/code] або [code]gl_compatibility[/" +"code]. Дивіться також [method get_current_rendering_driver_name]. \n" +"Метод візуалізації визначається [member ProjectSettings.rendering/renderer/" +"rendering_method], аргументом командного рядка [code]--rendering-method[/" +"code], який замінює це налаштування проекту, або автоматичним резервним " +"варіантом, який застосовується залежно від апаратного забезпечення." + msgid "" "Returns the default clear color which is used when a specific clear color has " "not been selected. See also [method set_default_clear_color]." @@ -115310,6 +144099,15 @@ msgstr "" "увімкнути на переглядпорту, щоб бути переглянуті. Дивись також [методичний " "посібник_get_measured_render_time_cpu]." +msgid "" +"Returns the global RenderingDevice.\n" +"[b]Note:[/b] When using the OpenGL rendering driver or when running in " +"headless mode, this function always returns [code]null[/code]." +msgstr "" +"Повертає глобальний RenderingDevice.\n" +"[b]Примітка:[/b] Під час використання драйвера візуалізації OpenGL або під " +"час роботи в безголовому режимі ця функція завжди повертає [code]null[/code]." + msgid "" "Returns a statistic about the rendering engine which can be used for " "performance profiling. See [enum RenderingServer.RenderingInfo] for a list of " @@ -115330,23 +144128,25 @@ msgid "" "get_rendering_info(RENDERING_INFO_TOTAL_DRAW_CALLS_IN_FRAME))\n" "[/codeblock]" msgstr "" -"Повертає статистику про рендеринговий двигун, який може використовуватися для " -"профілювання продуктивності. Див. [enum RenderingServer.RenderingInfo] для " -"списку значень, які можна переробити. Дивись також [Метод " -"переглядупорт_get_render_info], який повертає інформацію, специфічну для " -"перегляду порту.\n" -"[b]Note:[/b] Тільки 3D рендеринг в даний час враховує деякі ці значення, такі " -"як число викликів.\n" -"[b]Note:[/b] Рендерингова інформація не доступна до мінімуму 2 кадри, які " -"були передані двигуном. [code]0[/code]. Щоб друкувати інформацію про " -"рендерингу в [code]_ready()[/code], скористайтеся наступним чином:\n" -"[блокування коду]\n" -"Func _ready():\n" -"для _i в 2:\n" -"Ознайомитись з посиланням на сторінку [xml.tar.bz2]\n" +"Повертає статистику про механізм візуалізації, який можна використовувати для " +"профілювання продуктивності. Перегляньте [enum RenderingServer.RenderingInfo] " +"для списку значень, які можна запитувати. Дивіться також [метод " +"viewport_get_render_info], який повертає інформацію, специфічну для вікна " +"перегляду. \n" +"[b]Примітка: [/b] Лише 3D-візуалізація наразі враховується деякими з цих " +"значень, наприклад, кількістю викликів малювання. \n" +"[b]Примітка.[/b] Інформація про візуалізацію недоступна, доки механізм не " +"відтворить принаймні 2 кадри. Якщо інформація про візуалізацію недоступна, " +"[метод get_rendering_info] повертає [code]0[/code]. Щоб успішно надрукувати " +"інформацію про візуалізацію в [code]_ready()[/code], використовуйте " +"наступне: \n" +"[codeblock] \n" +"func _ready(): \n" +" for _i в 2: \n" +" await get_tree().process_frame \n" "\n" -"Друк (RenderingServer." -"get_rendering_info(RENDERING_INFO_TOTAL_DRAW_CALLS_IN_FRAME))\n" +" print(RenderingServer." +"get_rendering_info(RENDERING_INFO_TOTAL_DRAW_CALLS_IN_FRAME)) \n" "[/codeblock]" msgid "Returns the parameters of a shader." @@ -115361,6 +144161,32 @@ msgstr "" "перший дзвінок до [метод get_test_cube], після чого вона буде закуплена для " "наступних дзвінків. Дивитися також [method make_sphere_mesh]." +msgid "" +"Returns the RID of a 256×256 texture with a testing pattern on it (in " +"[constant Image.FORMAT_RGB8] format). This texture will be created and " +"returned on the first call to [method get_test_texture], then it will be " +"cached for subsequent calls. See also [method get_white_texture].\n" +"[b]Example:[/b] Get the test texture and apply it to a [Sprite2D] node:\n" +"[codeblock]\n" +"var texture_rid = RenderingServer.get_test_texture()\n" +"var texture = ImageTexture.create_from_image(RenderingServer." +"texture_2d_get(texture_rid))\n" +"$Sprite2D.texture = texture\n" +"[/codeblock]" +msgstr "" +"Повертає RID текстури 256 × 256 із тестовим шаблоном на ній (у форматі " +"[постійне зображення.FORMAT_RGB8]). Ця текстура буде створена та повернена " +"під час першого виклику [методу get_test_texture], потім вона буде кешована " +"для наступних викликів. Дивіться також [метод get_white_texture]. \n" +"[b]Приклад:[/b] Отримайте тестову текстуру та застосуйте її до вузла " +"[Sprite2D]: \n" +"[codeblock] \n" +"var texture_rid = RenderingServer.get_test_texture() \n" +"var texture = ImageTexture.create_from_image(RenderingServer." +"texture_2d_get(texture_rid)) \n" +"$Sprite2D.texture = texture \n" +"[/codeblock]" + msgid "" "Returns the version of the graphics video adapter [i]currently in use[/i] (e." "g. \"1.2.189\" for Vulkan, \"3.3.0 NVIDIA 510.60.02\" for OpenGL). This " @@ -115394,6 +144220,27 @@ msgstr "" "від фактичної моделі GPU користувача). Це робиться, щоб зробити відбитки " "пальців більш складним." +msgid "" +"Returns the type of the video adapter. Since dedicated graphics cards from a " +"given generation will [i]usually[/i] be significantly faster than integrated " +"graphics made in the same generation, the device type can be used as a basis " +"for automatic graphics settings adjustment. However, this is not always true, " +"so make sure to provide users with a way to manually override graphics " +"settings.\n" +"[b]Note:[/b] When using the OpenGL rendering driver or when running in " +"headless mode, this function always returns [constant RenderingDevice." +"DEVICE_TYPE_OTHER]." +msgstr "" +"Повертає тип відеоадаптера. Оскільки виділені графічні карти певного " +"покоління [i]зазвичай[/i] будуть значно швидшими за інтегровану відеокарту " +"того самого покоління, тип пристрою можна використовувати як основу для " +"автоматичного налаштування графічних налаштувань. Однак це не завжди так, " +"тому переконайтеся, що надали користувачам спосіб вручну змінити налаштування " +"графіки. \n" +"[b]Примітка.[/b] Під час використання драйвера візуалізації OpenGL або під " +"час роботи в безголовому режимі ця функція завжди повертає [constant " +"RenderingDevice.DEVICE_TYPE_OTHER]." + msgid "" "Returns the vendor of the video adapter (e.g. \"NVIDIA Corporation\").\n" "[b]Note:[/b] When running a headless or server binary, this function returns " @@ -115403,6 +144250,32 @@ msgstr "" "[b]Примітка:[/b] При запуску безголовного або сервера бінарних, ця функція " "повертає порожній рядок." +msgid "" +"Returns the ID of a 4×4 white texture (in [constant Image.FORMAT_RGB8] " +"format). This texture will be created and returned on the first call to " +"[method get_white_texture], then it will be cached for subsequent calls. See " +"also [method get_test_texture].\n" +"[b]Example:[/b] Get the white texture and apply it to a [Sprite2D] node:\n" +"[codeblock]\n" +"var texture_rid = RenderingServer.get_white_texture()\n" +"var texture = ImageTexture.create_from_image(RenderingServer." +"texture_2d_get(texture_rid))\n" +"$Sprite2D.texture = texture\n" +"[/codeblock]" +msgstr "" +"Повертає ідентифікатор білої текстури 4×4 (у форматі [постійне зображення." +"FORMAT_RGB8]). Ця текстура буде створена та повернена під час першого виклику " +"[методу get_white_texture], потім вона буде кешована для наступних викликів. " +"Дивіться також [метод get_test_texture]. \n" +"[b]Приклад:[/b] Отримайте білу текстуру та застосуйте її до вузла " +"[Sprite2D]: \n" +"[codeblock] \n" +"var texture_rid = RenderingServer.get_white_texture() \n" +"var texture = ImageTexture.create_from_image(RenderingServer." +"texture_2d_get(texture_rid)) \n" +"$Sprite2D.texture = texture \n" +"[/codeblock]" + msgid "" "If [param half_resolution] is [code]true[/code], renders [VoxelGI] and SDFGI " "([member Environment.sdfgi_enabled]) buffers at halved resolution on each " @@ -115701,6 +144574,15 @@ msgstr "" "Налаштовує значення діапазону видимості для вказаної геометрії. Equivalent to " "[член GeometryInstance3D.visibility_range_begin] та суміжні властивості." +msgid "" +"Prevents physics interpolation for the current physics tick.\n" +"This is useful when moving an instance to a new location, to give an " +"instantaneous change rather than interpolation from the previous location." +msgstr "" +"Запобігає фізичній інтерполяції для поточної фізики. \n" +"Це корисно під час переміщення екземпляра в нове місце, щоб забезпечити " +"миттєву зміну, а не інтерполяцію з попереднього розташування." + msgid "" "Sets the base of the instance. A base can be any of the 3D objects that are " "created in the RenderingServer that can be displayed. For example, any of the " @@ -115745,6 +144627,9 @@ msgstr "" "ignore_occlusion_culling], який ігнорує оклюзійну кульку і листя фрусу " "культового неакту." +msgid "Turns on and off physics interpolation for the instance." +msgstr "Вмикає та вимикає фізичну інтерполяцію для екземпляра." + msgid "" "Sets the render layers that this instance will be drawn to. Equivalent to " "[member VisualInstance3D.layers]." @@ -115982,6 +144867,15 @@ msgstr "" "Якщо [code]true[/code], світло відкине тіні. Equivalent [Пам'яний Light3D." "shadow_enabled]." +msgid "" +"Sets the shadow caster mask for this 3D light. Shadows will only be cast " +"using objects in the selected layers. Equivalent to [member Light3D." +"shadow_caster_mask]." +msgstr "" +"Встановлює маску заклинача тіні для цього 3D-світла. Тіні створюватимуться " +"лише за допомогою об’єктів у вибраних шарах. Еквівалент [члена Light3D." +"shadow_caster_mask]." + msgid "" "Creates a new lightmap global illumination instance and adds it to the " "RenderingServer. It can be accessed with the RID that is returned. This RID " @@ -116022,6 +144916,13 @@ msgstr "" "масиву, зазначеного до [param light] RID. [code]true[/code], потім [param " "use_sh] повинен бути [code]true[/code]." +msgid "" +"Toggles whether a bicubic filter should be used when lightmaps are sampled. " +"This smoothens their appearance at a performance cost." +msgstr "" +"Перемикає, чи слід використовувати бікубічний фільтр під час вибірки карт " +"освітлення. Це згладжує їх зовнішній вигляд за меншої продуктивності." + msgid "" "Returns a mesh of a sphere with the given number of horizontal subdivisions, " "vertical subdivisions and radius. See also [method get_test_cube]." @@ -116189,6 +145090,61 @@ msgstr "" "багатомеш_get_buffer] є потенційно повільною роботою і слід уникати, коли це " "можливо." +msgid "" +"Returns the [RenderingDevice] [RID] handle of the [MultiMesh], which can be " +"used as any other buffer on the Rendering Device." +msgstr "" +"Повертає дескриптор [RenderingDevice] [RID] [MultiMesh], який можна " +"використовувати як будь-який інший буфер на пристрої рендерингу." + +msgid "" +"Returns the [RenderingDevice] [RID] handle of the [MultiMesh] command buffer. " +"This [RID] is only valid if [code]use_indirect[/code] is set to [code]true[/" +"code] when allocating data through [method multimesh_allocate_data]. It can " +"be used to directly modify the instance count via buffer.\n" +"The data structure is dependent on both how many surfaces the mesh contains " +"and whether it is indexed or not, the buffer has 5 integers in it, with the " +"last unused if the mesh is not indexed.\n" +"Each of the values in the buffer correspond to these options:\n" +"[codeblock lang=text]\n" +"Indexed:\n" +" 0 - indexCount;\n" +" 1 - instanceCount;\n" +" 2 - firstIndex;\n" +" 3 - vertexOffset;\n" +" 4 - firstInstance;\n" +"Non Indexed:\n" +" 0 - vertexCount;\n" +" 1 - instanceCount;\n" +" 2 - firstVertex;\n" +" 3 - firstInstance;\n" +" 4 - unused;\n" +"[/codeblock]" +msgstr "" +"Повертає дескриптор [RenderingDevice] [RID] буфера команд [MultiMesh]. Цей " +"[RID] є дійсним, лише якщо [code]use_indirect[/code] має значення [code]true[/" +"code] під час розподілу даних через [method multimesh_allocate_data]. Його " +"можна використовувати для безпосередньої зміни кількості екземплярів через " +"буфер. \n" +"Структура даних залежить як від того, скільки поверхонь містить сітка, так і " +"від того, проіндексована вона чи ні, буфер містить 5 цілих чисел, останнє з " +"яких не використовується, якщо сітка не проіндексована. \n" +"Кожне зі значень у буфері відповідає цим параметрам: \n" +"[codeblock lang=text]\n" +"Indexed:\n" +" 0 - indexCount;\n" +" 1 - instanceCount;\n" +" 2 - firstIndex;\n" +" 3 - vertexOffset;\n" +" 4 - firstInstance;\n" +"Non Indexed:\n" +" 0 - vertexCount;\n" +" 1 - instanceCount;\n" +" 2 - firstVertex;\n" +" 3 - firstInstance;\n" +" 4 - unused;\n" +"[/codeblock]" + msgid "Returns the custom AABB defined for this MultiMesh resource." msgstr "" "Повертає користувацький AABB, визначений для цього багатомецького ресурсу." @@ -116219,6 +145175,17 @@ msgstr "" "Повернення [Transform2D] вказаного екземпляра. Для використання при " "багатомешці встановлюється використання 2D трансформаторів." +msgid "" +"Prevents physics interpolation for the specified instance during the current " +"physics tick.\n" +"This is useful when moving an instance to a new location, to give an " +"instantaneous change rather than interpolation from the previous location." +msgstr "" +"Запобігає фізичній інтерполяції для вказаного екземпляра протягом поточного " +"фізичного тику. \n" +"Це корисно під час переміщення екземпляра в нове місце, щоб забезпечити " +"миттєву зміну, а не інтерполяцію з попереднього розташування." + msgid "" "Sets the color by which this instance will be modulated. Equivalent to " "[method MultiMesh.set_instance_color]." @@ -116250,6 +145217,84 @@ msgstr "" "багатомешці використовується в 2D. Equivalent to [метод MultiMesh." "set_instance_transform_2d]." +msgid "" +"Set the entire data to use for drawing the [param multimesh] at once to " +"[param buffer] (such as instance transforms and colors). [param buffer]'s " +"size must match the number of instances multiplied by the per-instance data " +"size (which depends on the enabled MultiMesh fields). Otherwise, an error " +"message is printed and nothing is rendered. See also [method " +"multimesh_get_buffer].\n" +"The per-instance data size and expected data order is:\n" +"[codeblock lang=text]\n" +"2D:\n" +" - Position: 8 floats (8 floats for Transform2D)\n" +" - Position + Vertex color: 12 floats (8 floats for Transform2D, 4 floats " +"for Color)\n" +" - Position + Custom data: 12 floats (8 floats for Transform2D, 4 floats of " +"custom data)\n" +" - Position + Vertex color + Custom data: 16 floats (8 floats for " +"Transform2D, 4 floats for Color, 4 floats of custom data)\n" +"3D:\n" +" - Position: 12 floats (12 floats for Transform3D)\n" +" - Position + Vertex color: 16 floats (12 floats for Transform3D, 4 floats " +"for Color)\n" +" - Position + Custom data: 16 floats (12 floats for Transform3D, 4 floats of " +"custom data)\n" +" - Position + Vertex color + Custom data: 20 floats (12 floats for " +"Transform3D, 4 floats for Color, 4 floats of custom data)\n" +"[/codeblock]\n" +"Instance transforms are in row-major order. Specifically:\n" +"- For [Transform2D] the float-order is: [code](x.x, y.x, padding_float, " +"origin.x, x.y, y.y, padding_float, origin.y)[/code].\n" +"- For [Transform3D] the float-order is: [code](basis.x.x, basis.y.x, basis.z." +"x, origin.x, basis.x.y, basis.y.y, basis.z.y, origin.y, basis.x.z, basis.y.z, " +"basis.z.z, origin.z)[/code]." +msgstr "" +"Встановіть усі дані для використання для малювання [param multimesh] " +"одночасно в [param buffer] (наприклад, трансформації екземплярів і кольори). " +"Розмір [param buffer] має відповідати кількості екземплярів, помноженій на " +"розмір даних кожного екземпляра (який залежить від увімкнених полів " +"MultiMesh). В іншому випадку друкується повідомлення про помилку, і нічого не " +"відображається. Дивіться також [метод multimesh_get_buffer]. \n" +"Розмір даних для екземпляра та очікуваний порядок даних: \n" +"[codeblock lang=text] \n" +"2D: \n" +" - Позиція: 8 floats (8 floats для Transform2D) \n" +" - Позиція + колір вершини: 12 поплавків (8 поплавків для Transform2D, 4 " +"поплавки для кольору) \n" +" - Позиція + користувацькі дані: 12 плаваючих елементів (8 плаваючих місць " +"для Transform2D, 4 плаваючих користувацьких даних) \n" +" - Позиція + Колір вершини + Користувальницькі дані: 16 плаваючих елементів " +"(8 плаваючих елементів для Transform2D, 4 плаваючих рядка для кольору, 4 " +"плаваючих рядка користувацьких даних) \n" +"3D: \n" +" - Позиція: 12 поплавків (12 поплавків для Transform3D) \n" +" - Позиція + колір вершини: 16 поплавків (12 поплавків для Transform3D, 4 " +"поплавки для кольору) \n" +" - Позиція + користувальницькі дані: 16 плаваючих елементів (12 плаваючих " +"місць для Transform3D, 4 плаваючих числа користувацьких даних) \n" +" - Позиція + Колір вершини + Користувальницькі дані: 20 поплавків (12 " +"поплавків для Transform3D, 4 поплавки для кольору, 4 поплавки користувацьких " +"даних) \n" +"[/codeblock] \n" +"Перетворення екземплярів виконуються в порядку старшого рядка. зокрема: \n" +"- Для [Transform2D] плаваючий порядок такий: [код](x.x, y.x, padding_float, " +"origin.x, x.y, y.y, padding_float, origin.y)[/code]. \n" +"- Для [Transform3D] плаваючий порядок такий: [code](basis.x.x, basis.y.x, " +"basis.z.x, origin.x, basis.x.y, basis.y.y, basis.z.y, origin.y, basis.x.z, " +"basis.y.z, basis.z.z, origin.z)[/code]." + +msgid "" +"Alternative version of [method multimesh_set_buffer] for use with physics " +"interpolation.\n" +"Takes both an array of current data and an array of data for the previous " +"physics tick." +msgstr "" +"Альтернативна версія [методу multimesh_set_buffer] для використання з " +"фізичною інтерполяцією.\n" +"Бере як масив поточних даних, так і масив даних для попереднього фізичного " +"тику." + msgid "Sets the custom AABB for this MultiMesh resource." msgstr "Налаштування користувальницького AABB для цього багатомецького ресурсу." @@ -116260,6 +145305,20 @@ msgstr "" "Встановлюємо сіточку, щоб намальовувати м'ясом. Equivalent [Пам'ятий " "багатомеш]." +msgid "Turns on and off physics interpolation for this MultiMesh resource." +msgstr "Вмикає та вимикає фізичну інтерполяцію для цього ресурсу MultiMesh." + +msgid "" +"Sets the physics interpolation quality for the [MultiMesh].\n" +"A value of [constant MULTIMESH_INTERP_QUALITY_FAST] gives fast but low " +"quality interpolation, a value of [constant MULTIMESH_INTERP_QUALITY_HIGH] " +"gives slower but higher quality interpolation." +msgstr "" +"Встановлює якість інтерполяції фізики для [MultiMesh]. \n" +"Значення [константа MULTIMESH_INTERP_QUALITY_FAST] дає швидку, але " +"низькоякісну інтерполяцію, значення [константа MULTIMESH_INTERP_QUALITY_HIGH] " +"дає повільнішу, але якіснішу інтерполяцію." + msgid "" "Sets the number of instances visible at a given time. If -1, all instances " "that have been allocated are drawn. Equivalent to [member MultiMesh." @@ -116411,6 +145470,15 @@ msgstr "" "GPUPaarticleAttractorVectorField3D.texture] залежно від типу [param " "частинок_collision]." +msgid "" +"Sets the heightfield [param mask] for the 3D GPU particles heightfield " +"collision specified by the [param particles_collision] RID. Equivalent to " +"[member GPUParticlesCollisionHeightField3D.heightfield_mask]." +msgstr "" +"Встановлює поле висоти [параметр маска] для зіткнення частинок поля висоти 3D " +"GPU, визначене RID [param particles_collision]. Еквівалент [member " +"GPUParticlesCollisionHeightField3D.heightfield_mask]." + msgid "" "Sets the heightmap [param resolution] for the 3D GPU particles heightfield " "collision specified by the [param particles_collision] RID. Equivalent to " @@ -116494,6 +145562,12 @@ msgstr "" "екземпляри_cull_aabb], [методи_cull_convex], або [методичні " "екземпляри_cull_ray]." +msgid "" +"Requests particles to process for extra process time during a single frame." +msgstr "" +"Запитує частки на обробку протягом додаткового часу обробки протягом одного " +"кадру." + msgid "" "Reset the particles on the next update. Equivalent to [method GPUParticles3D." "restart]." @@ -116562,6 +145636,15 @@ msgstr "" "Налаштовує швидкість вузла частинок, який буде використовуватися [пам'ятний " "частинокProcessMaterial. спадок_velocity_ratio]." +msgid "" +"If [code]true[/code], particles will emit over time. Setting to [code]false[/" +"code] does not reset the particles, but only stops their emission. Equivalent " +"to [member GPUParticles3D.emitting]." +msgstr "" +"Якщо [code]true[/code], частинки випромінюватимуться з часом. Встановлення " +"значення [code]false[/code] не скидає частинки, а лише припиняє їх " +"випромінювання. Еквівалент [член GPUParticles3D.emitting]." + msgid "" "Sets the explosiveness ratio. Equivalent to [member GPUParticles3D." "explosiveness]." @@ -116721,6 +145804,9 @@ msgstr "" "Якщо [code]true[/code], відбиття ігнорувати неба. Equivalent to [пам'ятний " "відбиттяПробе.interior]." +msgid "Sets the distance in meters over which a probe blends into the scene." +msgstr "Встановлює відстань у метрах, на якій зонд зливається зі сценою." + msgid "" "Sets the render cull mask for this reflection probe. Only instances with a " "matching layer will be reflected by this probe. Equivalent to [member " @@ -116890,6 +145976,23 @@ msgstr "" "лінійним інтерполяціям. Якщо [param use_filter] є [code]false[/code], " "зображення буде масштабовано з міжполиттям найближчого сусіда." +msgid "" +"If [param generate] is [code]true[/code], generates debug wireframes for all " +"meshes that are loaded when using the Compatibility renderer. By default, the " +"engine does not generate debug wireframes at runtime, since they slow down " +"loading of assets and take up VRAM.\n" +"[b]Note:[/b] You must call this method before loading any meshes when using " +"the Compatibility renderer, otherwise wireframes will not be used." +msgstr "" +"Якщо параметр [param generate] має значення [code]true[/code], генерує " +"каркаси налагодження для всіх сіток, які завантажуються під час використання " +"засобу відтворення сумісності. За замовчуванням механізм не створює каркаси " +"налагодження під час виконання, оскільки вони сповільнюють завантаження " +"ресурсів і займають VRAM. \n" +"[b]Примітка:[/b] Ви повинні викликати цей метод перед завантаженням будь-яких " +"сіток під час використання рендерера сумісності, інакше каркаси не " +"використовуватимуться." + msgid "" "Sets the default clear color which is used when a specific clear color has " "not been selected. See also [method get_default_clear_color]." @@ -117109,6 +146212,27 @@ msgstr "" "texture_create], який створює власний фактурний тип графічної API, на відміну " "від Godot-specific [Texture2D]." +msgid "" +"Returns an [Image] instance from the given [param texture] [RID].\n" +"[b]Example:[/b] Get the test texture from [method get_test_texture] and apply " +"it to a [Sprite2D] node:\n" +"[codeblock]\n" +"var texture_rid = RenderingServer.get_test_texture()\n" +"var texture = ImageTexture.create_from_image(RenderingServer." +"texture_2d_get(texture_rid))\n" +"$Sprite2D.texture = texture\n" +"[/codeblock]" +msgstr "" +"Повертає екземпляр [Image] із заданого [param texture] [RID]. \n" +"[b]Приклад:[/b] Отримайте тестову текстуру з [method get_test_texture] і " +"застосуйте її до вузла [Sprite2D]: \n" +"[codeblock] \n" +"var texture_rid = RenderingServer.get_test_texture() \n" +"var texture = ImageTexture.create_from_image(RenderingServer." +"texture_2d_get(texture_rid)) \n" +"$Sprite2D.texture = texture \n" +"[/codeblock]" + msgid "" "Returns an [Image] instance from the given [param texture] [RID] and [param " "layer]." @@ -117145,6 +146269,26 @@ msgstr "" "[методичний посібник_2d_placeholder_create].\n" "[b]Примітка:[/b] При еквіваленті ресурсу [РозробникTextureLayered]." +msgid "" +"Creates a placeholder for a 2-dimensional layered texture and adds it to the " +"RenderingServer. It can be accessed with the RID that is returned. This RID " +"will be used in all [code]texture_2d_layered_*[/code] RenderingServer " +"functions, although it does nothing when used. See also [method " +"texture_2d_layered_placeholder_create].\n" +"Once finished with your RID, you will want to free the RID using the " +"RenderingServer's [method free_rid] method.\n" +"[b]Note:[/b] The equivalent resource is [PlaceholderTexture2D]." +msgstr "" +"Створює заповнювач для двовимірної багатошарової текстури та додає його до " +"RenderingServer. До нього можна отримати доступ за допомогою RID, який " +"повертається. Цей RID використовуватиметься в усіх " +"[code]texture_2d_layered_*[/code] функціях RenderingServer, хоча під час " +"використання він нічого не робить. Дивіться також [метод " +"texture_2d_layered_placeholder_create]. \n" +"Після завершення роботи з вашим RID ви захочете звільнити RID за допомогою " +"методу RenderingServer [method free_rid]. \n" +"[b]Примітка:[/b] еквівалентним ресурсом є [PlaceholderTexture2D]." + msgid "" "Updates the texture specified by the [param texture] [RID] with the data in " "[param image]. A [param layer] must also be specified, which should be " @@ -117203,6 +146347,22 @@ msgstr "" "і оригінальна текстура. Якщо необхідно використовувати різну ширину, висоту, " "глибину або формат, скористайтеся [методичними_замінними]." +msgid "" +"Creates a texture based on a native handle that was created outside of " +"Godot's renderer.\n" +"[b]Note:[/b] If using only the rendering device renderer, it's recommend to " +"use [method RenderingDevice.texture_create_from_extension] together with " +"[method RenderingServer.texture_rd_create], rather than this method. It will " +"give you much more control over the texture's format and usage." +msgstr "" +"Створює текстуру на основі власного маркера, створеного поза рендерером " +"Годо. \n" +"[b]Примітка.[/b] Якщо використовується лише рендерер пристрою відтворення, " +"рекомендуємо використовувати [метод RenderingDevice." +"texture_create_from_extension] разом із [методом RenderingServer." +"texture_rd_create], а не цей метод. Це дасть вам набагато більше контролю над " +"форматом і використанням текстури." + msgid "Returns the format for the texture." msgstr "Повертає формат текстури." @@ -117239,6 +146399,53 @@ msgstr "Налаштовує камеру перегляду." msgid "Sets a viewport's canvas." msgstr "Налаштовує полотну видпорту." +msgid "" +"Copies the viewport to a region of the screen specified by [param rect]. If " +"[method viewport_set_render_direct_to_screen] is [code]true[/code], then the " +"viewport does not use a framebuffer and the contents of the viewport are " +"rendered directly to screen. However, note that the root viewport is drawn " +"last, therefore it will draw over the screen. Accordingly, you must set the " +"root viewport to an area that does not cover the area that you have attached " +"this viewport to.\n" +"For example, you can set the root viewport to not render at all with the " +"following code:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _ready():\n" +" RenderingServer.viewport_attach_to_screen(get_viewport()." +"get_viewport_rid(), Rect2())\n" +" RenderingServer.viewport_attach_to_screen($Viewport.get_viewport_rid(), " +"Rect2(0, 0, 600, 600))\n" +"[/gdscript]\n" +"[/codeblocks]\n" +"Using this can result in significant optimization, especially on lower-end " +"devices. However, it comes at the cost of having to manage your viewports " +"manually. For further optimization, see [method " +"viewport_set_render_direct_to_screen]." +msgstr "" +"Копіює вікно перегляду в область екрана, визначену параметром [param rect]. " +"Якщо [метод viewport_set_render_direct_to_screen] має значення [code]true[/" +"code], то вікно перегляду не використовує буфер кадрів і вміст вікна " +"перегляду відображається безпосередньо на екрані. Однак зауважте, що " +"кореневий вікно перегляду малюється останнім, тому воно буде намальовано " +"поверх екрана. Відповідно, ви повинні встановити кореневу область перегляду " +"на область, яка не охоплює область, до якої ви прикріпили це вікно " +"перегляду. \n" +"Наприклад, ви можете налаштувати кореневу область перегляду так, щоб вона " +"взагалі не відтворювалася за допомогою такого коду: \n" +"[codeblocks] \n" +"[gdscript] \n" +"func _ready(): \n" +" RenderingServer.viewport_attach_to_screen(get_viewport()." +"get_viewport_rid(), Rect2()) \n" +" RenderingServer.viewport_attach_to_screen($Viewport.get_viewport_rid(), " +"Rect2(0, 0, 600, 600)) \n" +"[/gdscript] \n" +"[/codeblocks] \n" +"Використання цього може призвести до значної оптимізації, особливо на " +"пристроях нижчого рівня. Однак це коштує керування вікнами перегляду вручну. " +"Для подальшої оптимізації див. [метод viewport_set_render_direct_to_screen]." + msgid "" "Creates an empty viewport and adds it to the RenderingServer. It can be " "accessed with the RID that is returned. This RID will be used in all " @@ -117282,6 +146489,43 @@ msgstr "" "переглядпорт] за допомогою [метод_set_measure_render_time]. В іншому випадку " "цей метод повертає [code]0.0[/code]." +msgid "" +"Returns the GPU time taken to render the last frame in milliseconds. To get a " +"complete readout of GPU time spent to render the scene, sum the render times " +"of all viewports that are drawn every frame. Unlike [method Engine." +"get_frames_per_second], this method accurately reflects GPU utilization even " +"if framerate is capped via V-Sync or [member Engine.max_fps]. See also " +"[method viewport_get_measured_render_time_cpu].\n" +"[b]Note:[/b] Requires measurements to be enabled on the specified [param " +"viewport] using [method viewport_set_measure_render_time]. Otherwise, this " +"method returns [code]0.0[/code].\n" +"[b]Note:[/b] When GPU utilization is low enough during a certain period of " +"time, GPUs will decrease their power state (which in turn decreases core and " +"memory clock speeds). This can cause the reported GPU time to increase if GPU " +"utilization is kept low enough by a framerate cap (compared to what it would " +"be at the GPU's highest power state). Keep this in mind when benchmarking " +"using [method viewport_get_measured_render_time_gpu]. This behavior can be " +"overridden in the graphics driver settings at the cost of higher power usage." +msgstr "" +"Повертає час графічного процесора для відтворення останнього кадру в " +"мілісекундах. Щоб отримати повне зчитування часу графічного процесора, " +"витраченого на візуалізацію сцени, підсумуйте час візуалізації всіх вікон " +"перегляду, які малюються в кожному кадрі. На відміну від [method Engine." +"get_frames_per_second], цей метод точно відображає використання GPU, навіть " +"якщо частоту кадрів обмежено за допомогою V-Sync або [member Engine.max_fps]. " +"Дивіться також [метод viewport_get_measured_render_time_cpu]. \n" +"[b]Примітка:[/b] Вимагає ввімкнення вимірювань у вказаному [param viewport] " +"за допомогою [method viewport_set_measure_render_time]. В іншому випадку цей " +"метод повертає [code]0.0[/code]. \n" +"[b]Примітка.[/b] Якщо використання GPU досить низьке протягом певного періоду " +"часу, GPU зменшить свій стан живлення (що, у свою чергу, зменшує тактову " +"частоту ядра та пам’яті). Це може призвести до збільшення зареєстрованого " +"часу GPU, якщо використання GPU підтримується достатньо низьким за допомогою " +"обмеження частоти кадрів (порівняно з тим, що було б за найвищого рівня " +"потужності GPU). Майте це на увазі під час порівняльного аналізу за допомогою " +"[метод viewport_get_measured_render_time_gpu]. Цю поведінку можна змінити в " +"налаштуваннях графічного драйвера ціною більшого споживання енергії." + msgid "" "Returns a statistic about the rendering engine which can be used for " "performance profiling. This is separated into render pass [param type]s, each " @@ -117309,27 +146553,31 @@ msgid "" " )\n" "[/codeblock]" msgstr "" -"Повертає статистику про рендеринговий двигун, який може використовуватися для " -"профілювання продуктивності. Цей відокремлений на рендерний прохід [param " -"type]s, кожен з них має однакову [param info], ви можете переробити (різні " -"паси повернеться різними значеннями). Див. [enum RenderingServer." -"ViewportRenderInfoType] для списку типів рендерів та [enum RenderingServer." -"ViewportRender Інформація\n" -"Дивись також [method get_rendering_info], яка повертає глобальну інформацію " -"по всьому світу.\n" -"[b]Примітка:[/b] Перегляд інформації, що надає інформацію, не доступний до " -"мінімуму 2 кадри. [code]0[/code]. Щоб друкувати інформацію про рендерингу в " -"[code]_ready()[/code], скористайтеся наступним чином:\n" -"[блокування коду]\n" -"Func _ready():\n" -"для _i в 2:\n" -"Ознайомитись з посиланням на сторінку [xml.tar.bz2]\n" +"Повертає статистику про механізм візуалізації, який можна використовувати для " +"профілювання продуктивності. Це розділено на проходи візуалізації [тип " +"параметрів], кожен з яких має однакові [інформація про параметри], які ви " +"можете запитувати (різні проходи повертатимуть різні значення). Перегляньте " +"[enum RenderingServer.ViewportRenderInfoType], щоб отримати список типів " +"пропуску візуалізації, і [enum RenderingServer.ViewportRenderInfo], щоб " +"отримати список інформації, яку можна запитати. \n" +"Дивіться також [метод get_rendering_info], який повертає глобальну інформацію " +"для всіх вікон перегляду. \n" +"[b]Примітка.[/b] Інформація про візуалізацію вікна перегляду недоступна, доки " +"механізм не відтворить принаймні 2 кадри. Якщо інформація про візуалізацію " +"недоступна, [метод viewport_get_render_info] повертає [code]0[/code]. Щоб " +"успішно надрукувати інформацію про візуалізацію в [code]_ready()[/code], " +"використовуйте наступне: \n" +"[codeblock] \n" +"func _ready(): \n" +" for _i в 2: \n" +" await get_tree().process_frame \n" "\n" -"друк()\n" -"RenderingServer.viewport_get_render_info(get_viewport().get_viewport_rid(),\n" -"RenderingServer.VIEWPORT_RENDER_INFO_TYPE_VISIBLE,\n" -"RenderingServer.VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME)\n" -"й\n" +" print ( \n" +" RenderingServer.viewport_get_render_info(get_viewport()." +"get_viewport_rid(), \n" +" RenderingServer.VIEWPORT_RENDER_INFO_TYPE_VISIBLE, \n" +" RenderingServer.VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME) \n" +" ) \n" "[/codeblock]" msgid "Returns the render target for the viewport." @@ -117357,6 +146605,49 @@ msgstr "" "Якщо [code]true[/code], налаштовує активацію порту, ще налаштовує його " "неактивно." +msgid "" +"Sets the maximum number of samples to take when using anisotropic filtering " +"on textures (as a power of two). A higher sample count will result in sharper " +"textures at oblique angles, but is more expensive to compute. A value of " +"[code]0[/code] forcibly disables anisotropic filtering, even on materials " +"where it is enabled.\n" +"The anisotropic filtering level also affects decals and light projectors if " +"they are configured to use anisotropic filtering. See [member ProjectSettings." +"rendering/textures/decals/filter] and [member ProjectSettings.rendering/" +"textures/light_projectors/filter].\n" +"[b]Note:[/b] In 3D, for this setting to have an effect, set [member " +"BaseMaterial3D.texture_filter] to [constant BaseMaterial3D." +"TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC] or [constant BaseMaterial3D." +"TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC] on materials.\n" +"[b]Note:[/b] In 2D, for this setting to have an effect, set [member " +"CanvasItem.texture_filter] to [constant CanvasItem." +"TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC] or [constant CanvasItem." +"TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC] on the [CanvasItem] node " +"displaying the texture (or in [CanvasTexture]). However, anisotropic " +"filtering is rarely useful in 2D, so only enable it for textures in 2D if it " +"makes a meaningful visual difference." +msgstr "" +"Встановлює максимальну кількість зразків для взяття під час використання " +"анізотропної фільтрації на текстурах (як ступінь двох). Більша кількість " +"вибірок призведе до чіткіших текстур під косими кутами, але це дорожче для " +"обчислення. Значення [code]0[/code] примусово вимикає анізотропну фільтрацію, " +"навіть для матеріалів, де вона ввімкнена. \n" +"Рівень анізотропної фільтрації також впливає на наклейки та світлові " +"проектори, якщо вони налаштовані на використання анізотропної фільтрації. " +"Перегляньте [учасник ProjectSettings.rendering/textures/decals/filter] і " +"[учасник ProjectSettings.rendering/textures/light_projectors/filter]. \n" +"[b]Примітка.[/b] У 3D, щоб це налаштування мало ефект, установіть [член " +"BaseMaterial3D.texture_filter] на [постійний BaseMaterial3D." +"TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC] або [постійний BaseMaterial3D." +"TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC] на матеріалах. \n" +"[b]Примітка.[/b] У 2D, щоб це налаштування мало ефект, установіть для [member " +"CanvasItem.texture_filter] значення [constant CanvasItem." +"TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC] або [constant CanvasItem." +"TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC] на Вузол [CanvasItem], що " +"відображає текстуру (або в [CanvasTexture]). Однак анізотропна фільтрація " +"рідко буває корисною в 2D, тому вмикайте її для текстур у 2D, лише якщо вона " +"має суттєву візуальну різницю." + msgid "" "Sets the rendering mask associated with this [Viewport]. Only [CanvasItem] " "nodes with a matching rendering visibility layer will be rendered by this " @@ -117449,6 +146740,28 @@ msgstr "" "переглядупорт_get_measured_render_time_gpu] поверне значення більше, ніж " "[code]0.0[/code] при перерахунку з цим [param viewport]." +msgid "" +"Sets the multisample antialiasing mode for 2D/Canvas on the specified [param " +"viewport] RID. See [enum ViewportMSAA] for options. Equivalent to [member " +"ProjectSettings.rendering/anti_aliasing/quality/msaa_2d] or [member Viewport." +"msaa_2d]." +msgstr "" +"Встановлює режим згладжування кількох вибірок для 2D/Canvas у вказаному " +"[param viewport] RID. Див. параметри [enum ViewportMSAA]. Еквівалент [члена " +"ProjectSettings.rendering/anti_aliasing/quality/msaa_2d] або [учасника " +"Viewport.msaa_2d]." + +msgid "" +"Sets the multisample antialiasing mode for 3D on the specified [param " +"viewport] RID. See [enum ViewportMSAA] for options. Equivalent to [member " +"ProjectSettings.rendering/anti_aliasing/quality/msaa_3d] or [member Viewport." +"msaa_3d]." +msgstr "" +"Встановлює режим згладжування кількох вибірок для 3D на вказаному [param " +"viewport] RID. Див. параметри [enum ViewportMSAA]. Еквівалент [члена " +"ProjectSettings.rendering/anti_aliasing/quality/msaa_3d] або [учасника " +"Viewport.msaa_3d]." + msgid "" "Sets the [member ProjectSettings.rendering/occlusion_culling/" "bvh_build_quality] to use for occlusion culling. This parameter is global and " @@ -117582,6 +146895,15 @@ msgstr "" "Налаштовує сценарій перегляду. Сценарій містить інформацію про інформацію про " "навколишнє середовище, відбиття атласу тощо." +msgid "" +"Sets the viewport's screen-space antialiasing mode. Equivalent to [member " +"ProjectSettings.rendering/anti_aliasing/quality/screen_space_aa] or [member " +"Viewport.screen_space_aa]." +msgstr "" +"Встановлює режим згладжування екранного простору вікна перегляду. Еквівалент " +"[члена ProjectSettings.rendering/anti_aliasing/quality/screen_space_aa] або " +"[члена Viewport.screen_space_aa]." + msgid "" "Sets the viewport's 2D signed distance field [member ProjectSettings." "rendering/2d/sdf/oversize] and [member ProjectSettings.rendering/2d/sdf/" @@ -117663,6 +146985,51 @@ msgstr "" "Встановлює, коли перегляд буде оновлено. Перегляд [enum ViewportUpdateMode] " "константи для опцій." +msgid "" +"If [code]true[/code], enables debanding on the specified viewport. Equivalent " +"to [member ProjectSettings.rendering/anti_aliasing/quality/use_debanding] or " +"[member Viewport.use_debanding]." +msgstr "" +"Якщо [code]true[/code], увімкне дебандування на вказаному вікні перегляду. " +"Еквівалент [члена ProjectSettings.rendering/anti_aliasing/quality/" +"use_debanding] або [члена Viewport.use_debanding]." + +msgid "" +"If [code]true[/code], 2D rendering will use a high dynamic range (HDR) format " +"framebuffer matching the bit depth of the 3D framebuffer. When using the " +"Forward+ renderer this will be an [code]RGBA16[/code] framebuffer, while when " +"using the Mobile renderer it will be an [code]RGB10_A2[/code] framebuffer. " +"Additionally, 2D rendering will take place in linear color space and will be " +"converted to sRGB space immediately before blitting to the screen (if the " +"Viewport is attached to the screen). Practically speaking, this means that " +"the end result of the Viewport will not be clamped into the [code]0-1[/code] " +"range and can be used in 3D rendering without color space adjustments. This " +"allows 2D rendering to take advantage of effects requiring high dynamic range " +"(e.g. 2D glow) as well as substantially improves the appearance of effects " +"requiring highly detailed gradients. This setting has the same effect as " +"[member Viewport.use_hdr_2d].\n" +"[b]Note:[/b] This setting will have no effect when using the Compatibility " +"renderer, which always renders in low dynamic range for performance reasons." +msgstr "" +"Якщо [code]true[/code], 2D-візуалізація використовуватиме буфер кадрів у " +"форматі широкого динамічного діапазону (HDR), який відповідає бітовій глибині " +"буфера кадрів 3D. У разі використання засобу візуалізації Forward+ це буде " +"буфер кадрів [code]RGBA16[/code], тоді як під час використання засобу " +"візуалізації Mobile це буде буфер кадрів [code]RGB10_A2[/code]. Крім того, 2D-" +"візуалізація відбуватиметься в лінійному колірному просторі та " +"перетворюватиметься на простір sRGB безпосередньо перед відображенням на " +"екрані (якщо вікно перегляду прикріплено до екрана). Практично кажучи, це " +"означає, що кінцевий результат вікна перегляду не буде обмежений діапазоном " +"[code]0-1[/code] і може використовуватися в 3D-рендерінгу без коригування " +"простору кольорів. Це дозволяє 2D-рендерингу використовувати переваги " +"ефектів, що вимагають високого динамічного діапазону (наприклад, 2D-" +"світіння), а також суттєво покращує зовнішній вигляд ефектів, які вимагають " +"дуже деталізованих градієнтів. Цей параметр має той самий ефект, що й [член " +"Viewport.use_hdr_2d]. \n" +"[b]Примітка.[/b] Цей параметр не матиме жодного ефекту під час використання " +"засобу відтворення сумісності, який із міркувань продуктивності завжди " +"відтворює в низькому динамічному діапазоні." + msgid "" "If [code]true[/code], enables occlusion culling on the specified viewport. " "Equivalent to [member ProjectSettings.rendering/occlusion_culling/" @@ -117672,6 +147039,15 @@ msgstr "" "Equivalent to [Пам'ятий проектНалаштування.rendering/occlusion_culling/" "use_occlusion_culling]." +msgid "" +"If [code]true[/code], use temporal antialiasing. Equivalent to [member " +"ProjectSettings.rendering/anti_aliasing/quality/use_taa] or [member Viewport." +"use_taa]." +msgstr "" +"Якщо [code]true[/code], використовувати тимчасове згладжування. Еквівалент " +"[члена ProjectSettings.rendering/anti_aliasing/quality/use_taa] або [учасника " +"Viewport.use_taa]." + msgid "" "If [code]true[/code], the viewport uses augmented or virtual reality " "technologies. See [XRInterface]." @@ -117715,6 +147091,27 @@ msgstr "" "текстура введення копіюється один раз, а режим змінюється на [constant " "RenderingServer. ПЕРЕГЛЯДИ_VRS_UPDATE_DISABLED]." +msgid "" +"Creates a new 3D visibility notifier object and adds it to the " +"RenderingServer. It can be accessed with the RID that is returned. This RID " +"will be used in all [code]visibility_notifier_*[/code] RenderingServer " +"functions.\n" +"Once finished with your RID, you will want to free the RID using the " +"RenderingServer's [method free_rid] method.\n" +"To place in a scene, attach this notifier to an instance using [method " +"instance_set_base] using the returned RID.\n" +"[b]Note:[/b] The equivalent node is [VisibleOnScreenNotifier3D]." +msgstr "" +"Створює новий об’єкт сповіщення про 3D-видимість і додає його до " +"RenderingServer. До нього можна отримати доступ за допомогою RID, який " +"повертається. Цей RID використовуватиметься в усіх " +"[code]visibility_notifier_*[/code] функціях RenderingServer. \n" +"Після завершення роботи з вашим RID ви захочете звільнити RID за допомогою " +"методу RenderingServer [method free_rid]. \n" +"Щоб розмістити в сцені, прикріпіть цей сповіщувач до екземпляра за допомогою " +"[method instance_set_base], використовуючи повернутий RID. \n" +"[b]Примітка:[/b] еквівалентним вузлом є [VisibleOnScreenNotifier3D]." + msgid "" "Creates a new voxel-based global illumination object and adds it to the " "RenderingServer. It can be accessed with the RID that is returned. This RID " @@ -117852,6 +147249,15 @@ msgstr "" msgid "The maximum number of surfaces a mesh can have." msgstr "Максимальна кількість поверхонь сітки може мати." +msgid "2D texture." +msgstr "2D текстури." + +msgid "Layered texture." +msgstr "Багатошарова текстура." + +msgid "3D texture." +msgstr "3D текстури." + msgid "Array of 2-dimensional textures (see [Texture2DArray])." msgstr "Арра 2-вимірних фактур (див. [Texture2DArray])." @@ -118152,6 +147558,12 @@ msgstr "Використовуйте [Transform2D] для зберігання msgid "Use [Transform3D] to store MultiMesh transform." msgstr "Використовуйте [Transform3D] для зберігання мультимеш трансформатора." +msgid "MultiMesh physics interpolation favors speed over quality." +msgstr "Інтерполяція фізики MultiMesh надає перевагу швидкості, а не якості." + +msgid "MultiMesh physics interpolation favors quality over speed." +msgstr "Інтерполяція фізики MultiMesh надає перевагу якості, а не швидкості." + msgid "" "Nearest-neighbor filter for light projectors (use for pixel art light " "projectors). No mipmaps are used for rendering, which means light projectors " @@ -118733,6 +148145,46 @@ msgstr "" "нелінійне зношування. Вартість [code]1.0[/code] використовувати FSR2 на " "рідній роздільній здатності як рішення TAA." +msgid "" +"Use MetalFX spatial upscaling for the viewport's 3D buffer. The amount of " +"scaling can be set using [member Viewport.scaling_3d_scale]. Values less than " +"[code]1.0[/code] will be result in the viewport being upscaled using MetalFX. " +"Values greater than [code]1.0[/code] are not supported and bilinear " +"downsampling will be used instead. A value of [code]1.0[/code] disables " +"scaling.\n" +"[b]Note:[/b] Only supported when the Metal rendering driver is in use, which " +"limits this scaling mode to macOS and iOS." +msgstr "" +"Використовуйте просторове масштабування MetalFX для 3D-буфера вікна " +"перегляду. Рівень масштабування можна встановити за допомогою [member " +"Viewport.scaling_3d_scale]. Значення, менші за [code]1.0[/code], призведуть " +"до масштабування вікна перегляду за допомогою MetalFX. Значення, що " +"перевищують [code]1.0[/code], не підтримуються, замість них " +"використовуватиметься білінійне зменшення дискретизації. Значення [code]1.0[/" +"code] вимикає масштабування. \n" +"[b]Примітка.[/b] Підтримується лише тоді, коли використовується драйвер " +"рендеринга Metal, який обмежує цей режим масштабування macOS та iOS." + +msgid "" +"Use MetalFX temporal upscaling for the viewport's 3D buffer. The amount of " +"scaling can be set using [member Viewport.scaling_3d_scale]. Values less than " +"[code]1.0[/code] will be result in the viewport being upscaled using MetalFX. " +"Values greater than [code]1.0[/code] are not supported and bilinear " +"downsampling will be used instead. A value of [code]1.0[/code] will use " +"MetalFX at native resolution as a TAA solution.\n" +"[b]Note:[/b] Only supported when the Metal rendering driver is in use, which " +"limits this scaling mode to macOS and iOS." +msgstr "" +"Використовуйте часове збільшення MetalFX для 3D-буфера вікна перегляду. " +"Рівень масштабування можна встановити за допомогою [member Viewport." +"scaling_3d_scale]. Значення, менші за [code]1.0[/code], призведуть до " +"масштабування вікна перегляду за допомогою MetalFX. Значення, що перевищують " +"[code]1.0[/code], не підтримуються, натомість використовуватиметься білінійне " +"зменшення дискретизації. Значення [code]1.0[/code] використовуватиме MetalFX " +"із рідною роздільною здатністю як рішення TAA. \n" +"[b]Примітка.[/b] Підтримується лише тоді, коли використовується драйвер " +"рендеринга Metal, який обмежує цей режим масштабування macOS та iOS." + msgid "Represents the size of the [enum ViewportScaling3DMode] enum." msgstr "Представляє розмір [enum ViewportScaling3DMode] enum." @@ -118880,6 +148332,24 @@ msgstr "" msgid "Represents the size of the [enum ViewportMSAA] enum." msgstr "Представляємо розмір [enum ViewportMSAA] enum." +msgid "Anisotropic filtering is disabled." +msgstr "Анізотропна фільтрація вимкнена." + +msgid "Use 2× anisotropic filtering." +msgstr "Використовуйте 2× анізотропну фільтрацію." + +msgid "Use 4× anisotropic filtering. This is the default value." +msgstr "Використовуйте 4× анізотропну фільтрацію. Це значення за умовчанням." + +msgid "Use 8× anisotropic filtering." +msgstr "Використовуйте анізотропну фільтрацію 8×." + +msgid "Use 16× anisotropic filtering." +msgstr "Використовуйте анізотропну фільтрацію 16×." + +msgid "Represents the size of the [enum ViewportAnisotropicFiltering] enum." +msgstr "Представляє розмір переліку [enum ViewportAnisotropicFiltering]." + msgid "Do not perform any antialiasing in the full screen post-process." msgstr "Не виконує будь-які антиалії в повному екрані після обробки." @@ -118967,6 +148437,17 @@ msgstr "" "[b]Примітка:[/b] При використанні цього режиму для розмиття, користувацькі " "тіні будуть ігноруватися. Це означає зміщення вершини не буде видно більше." +msgid "" +"Debug draw draws objects in wireframe.\n" +"[b]Note:[/b] [method set_debug_generate_wireframes] must be called before " +"loading any meshes for wireframes to be visible when using the Compatibility " +"renderer." +msgstr "" +"Налагодження малювання малює об’єкти в каркасі.\n" +"[b]Примітка: [/b] [метод set_debug_generate_wireframes] має бути викликаний " +"перед завантаженням будь-яких сіток, щоб каркаси були видимими під час " +"використання інструменту відтворення сумісності." + msgid "" "Normal buffer is drawn instead of regular scene so you can see the per-pixel " "normals that will be used by post-processing effects." @@ -119297,36 +148778,57 @@ msgid "Disable reflections." msgstr "Вимкнути відбиття." msgid "" -"Output color as they came in. This can cause bright lighting to look blown " -"out, with noticeable clipping in the output colors." +"A simple tonemapping curve that rolls off bright values to prevent clipping. " +"This results in an image that can appear dull and low contrast. Slower than " +"[constant ENV_TONE_MAPPER_LINEAR].\n" +"[b]Note:[/b] When [member Environment.tonemap_white] is left at the default " +"value of [code]1.0[/code], [constant ENV_TONE_MAPPER_REINHARD] produces an " +"identical image to [constant ENV_TONE_MAPPER_LINEAR]." msgstr "" -"Колір виводу, як вони прийшли. Це може викликати яскраве освітлення, щоб " -"виглядати, з помітним затисканням у вихідні кольори." +"Проста крива відображення тону, яка зменшує яскраві значення, щоб запобігти " +"відсіканню. Це призводить до того, що зображення може виглядати тьмяним і " +"низькоконтрастним. Повільніше, ніж [константа ENV_TONE_MAPPER_LINEAR]. \n" +"[b]Примітка.[/b] Якщо [member Environment.tonemap_white] залишити значенням " +"за замовчуванням [code]1.0[/code], [константа ENV_TONE_MAPPER_REINHARD] " +"створює зображення, ідентичне [константі ENV_TONE_MAPPER_LINEAR]." msgid "" -"Use the filmic tonemapper. This avoids clipping bright highlights, with a " -"resulting image that usually looks more vivid than [constant " -"ENV_TONE_MAPPER_REINHARD]." +"Uses a film-like tonemapping curve to prevent clipping of bright values and " +"provide better contrast than [constant ENV_TONE_MAPPER_REINHARD]. Slightly " +"slower than [constant ENV_TONE_MAPPER_REINHARD]." msgstr "" -"Використовуйте плівковий тонмапер. Це дозволяє затискати яскраві моменти, з " -"отриманим зображенням, яке зазвичай виглядає більш яскравим, ніж [constant " +"Використовує плівкову криву відображення тонів, щоб запобігти відсіканню " +"яскравих значень і забезпечити кращий контраст, ніж [постійний " +"ENV_TONE_MAPPER_REINHARD]. Трохи повільніше, ніж [константа " "ENV_TONE_MAPPER_REINHARD]." msgid "" -"Use the Academy Color Encoding System tonemapper. ACES is slightly more " -"expensive than other options, but it handles bright lighting in a more " -"realistic fashion by desaturating it as it becomes brighter. ACES typically " -"has a more contrasted output compared to [constant ENV_TONE_MAPPER_REINHARD] " -"and [constant ENV_TONE_MAPPER_FILMIC].\n" +"Uses a high-contrast film-like tonemapping curve and desaturates bright " +"values for a more realistic appearance. Slightly slower than [constant " +"ENV_TONE_MAPPER_FILMIC].\n" "[b]Note:[/b] This tonemapping operator is called \"ACES Fitted\" in Godot 3.x." msgstr "" -"Використовуйте академію кольоровий конвертер системи. ACES трохи дорожче, ніж " -"інші варіанти, але він ручить яскраве освітлення в більш реалістичній моді, " -"відпадаючи його, як він стає більш яскравим. ACES, як правило, має більш " -"контрастний вихід у порівнянні з [constant ENV_TONE_MAPPER_REINHARD] і " -"[constant ENV_TONE_MAPPER_FILMIC].\n" -"[b]Примітка:[/b] Цей оператор тономпінгу називається \"ACES Fitted\" в Godot " -"3.x." +"Використовує висококонтрастну криву відтворення тонів, подібну до плівки, і " +"зменшує насиченість яскравих значень для більш реалістичного вигляду. Трохи " +"повільніше, ніж [константа ENV_TONE_MAPPER_FILMIC]. \n" +"[b]Примітка: [/b] Цей оператор тонального відображення називається «ACES " +"Fitted» у Godot 3.x." + +msgid "" +"Uses a film-like tonemapping curve and desaturates bright values for a more " +"realistic appearance. Better than other tonemappers at maintaining the hue of " +"colors as they become brighter. The slowest tonemapping option.\n" +"[b]Note:[/b] [member Environment.tonemap_white] is fixed at a value of " +"[code]16.29[/code], which makes [constant ENV_TONE_MAPPER_AGX] unsuitable for " +"use with the Mobile rendering method." +msgstr "" +"Використовує плівкову криву відображення тонів і зменшує насиченість яскравих " +"значень для більш реалістичного вигляду. Краще, ніж інші картографи тонів, " +"підтримує відтінок кольорів, коли вони стають яскравішими. Найповільніший " +"варіант тонального відображення. \n" +"[b]Примітка.[/b] [member Environment.tonemap_white] має значення [code]16.29[/" +"code], що робить [константу ENV_TONE_MAPPER_AGX] непридатною для використання " +"з методом візуалізації Mobile." msgid "" "Lowest quality of roughness filter for screen-space reflections. Rough " @@ -120012,6 +149514,15 @@ msgstr "" "Параметр глобального шейдера семплера Cubemap ([code]global uniform " "samplerCube ...[/code]). Відображається як [Cubemap] в інтерфейсі редактора." +msgid "" +"External sampler global shader parameter ([code]global uniform " +"samplerExternalOES ...[/code]). Exposed as a [ExternalTexture] in the editor " +"UI." +msgstr "" +"Параметр глобального шейдера зовнішнього семплера ([code]global uniform " +"samplerExternalOES ...[/code]). Відображається як [ExternalTexture] в " +"інтерфейсі редактора." + msgid "Represents the size of the [enum GlobalShaderParameterType] enum." msgstr "Представляємо розмір [enum GlobalShaderParameterType] enum." @@ -120047,6 +149558,46 @@ msgstr "" "однорідні наповнювачі, і багато інших типів буферів, які використовуються " "внутрішньо." +msgid "" +"Video memory used (in bytes). When using the Forward+ or Mobile renderers, " +"this is always greater than the sum of [constant " +"RENDERING_INFO_TEXTURE_MEM_USED] and [constant " +"RENDERING_INFO_BUFFER_MEM_USED], since there is miscellaneous data not " +"accounted for by those two metrics. When using the Compatibility renderer, " +"this is equal to the sum of [constant RENDERING_INFO_TEXTURE_MEM_USED] and " +"[constant RENDERING_INFO_BUFFER_MEM_USED]." +msgstr "" +"Використана відеопам'ять (у байтах). Під час використання засобів " +"візуалізації Forward+ або Mobile це завжди більше, ніж сума [константи " +"RENDERING_INFO_TEXTURE_MEM_USED] і [константи " +"RENDERING_INFO_BUFFER_MEM_USED], оскільки є різні дані, які не враховуються " +"цими двома показниками. Якщо використовується рендерер сумісності, це " +"дорівнює сумі [константи RENDERING_INFO_TEXTURE_MEM_USED] і [константи " +"RENDERING_INFO_BUFFER_MEM_USED]." + +msgid "Pipeline compilation that was triggered by the 2D canvas renderer." +msgstr "" +"Конвеєрна компіляція, ініційована засобом візуалізації двовимірного полотна." + +msgid "Pipeline compilation that was triggered by loading a mesh." +msgstr "Конвеєрна компіляція, яка була ініційована завантаженням сітки." + +msgid "" +"Pipeline compilation that was triggered by building the surface cache before " +"rendering the scene." +msgstr "" +"Конвеєрна компіляція, яка була ініційована створенням поверхневого кешу перед " +"відтворенням сцени." + +msgid "Pipeline compilation that was triggered while drawing the scene." +msgstr "Конвеєрна компіляція, яка була запущена під час малювання сцени." + +msgid "Pipeline compilation that was triggered to optimize the current scene." +msgstr "Конвеєрна компіляція, яка була запущена для оптимізації поточної сцени." + +msgid "Represents the size of the [enum PipelineSource] enum." +msgstr "Представляє розмір переліку [enum PipelineSource]." + msgid "This constant has not been used since Godot 3.0." msgstr "Ця не була використана з Godot 3.0." @@ -120091,6 +149642,9 @@ msgstr "" "Цей об'єкт конфігурації створюється та заселений рендером на зміну та " "використання в об'єкті «RenderSceneBuffers»." +msgid "Level of the anisotropic filter." +msgstr "Рівень анізотропного фільтра." + msgid "FSR Sharpness applicable if FSR upscaling is used." msgstr "ФСР Точність, що застосовується, якщо використовується FSR." @@ -120131,6 +149685,10 @@ msgstr "" msgid "Implement this in GDExtension to handle the (re)sizing of a viewport." msgstr "Впровадити це в GDExtension для обробки (re)." +msgid "Implement this in GDExtension to change the anisotropic filtering level." +msgstr "" +"Застосуйте це в GDExtension, щоб змінити рівень анізотропної фільтрації." + msgid "Implement this in GDExtension to record a new FSR sharpness value." msgstr "Впроваджувати це в GDExtension для запису значення гостроти FSR." @@ -120186,6 +149744,57 @@ msgstr "" "Створіть нову текстуру за допомогою даного формату і вставте її під задану " "назву. Повернемо існуючу фактуру, якщо вона вже існує." +msgid "" +"Create a new texture view for an existing texture and cache this under the " +"given [param view_name]. Will return the existing texture view if it already " +"exists. Will error if the source texture doesn't exist." +msgstr "" +"Створіть нове представлення текстури для існуючої текстури та кешуйте його " +"під заданим [param view_name]. Поверне існуючий вигляд текстури, якщо він уже " +"існує. Буде помилка, якщо вихідна текстура не працює." + +msgid "" +"Returns the specified layer from the color texture we are rendering 3D " +"content to.\n" +"If [param msaa] is [code]true[/code] and MSAA is enabled, this returns the " +"MSAA variant of the buffer." +msgstr "" +"Повертає вказаний шар із кольорової текстури, у яку ми відтворюємо 3D-вміст.\n" +"Якщо [param msaa] має значення [code]true[/code] і MSAA увімкнено, це " +"повертає варіант MSAA буфера." + +msgid "" +"Returns the color texture we are rendering 3D content to. If multiview is " +"used this will be a texture array with all views.\n" +"If [param msaa] is [code]true[/code] and MSAA is enabled, this returns the " +"MSAA variant of the buffer." +msgstr "" +"Повертає колірну текстуру, у яку ми відтворюємо 3D-вміст. Якщо " +"використовується мультиракурс, це буде масив текстур з усіма видами. \n" +"Якщо [param msaa] має значення [code]true[/code] і MSAA увімкнено, це " +"повертає варіант MSAA буфера." + +msgid "" +"Returns the specified layer from the depth texture we are rendering 3D " +"content to.\n" +"If [param msaa] is [code]true[/code] and MSAA is enabled, this returns the " +"MSAA variant of the buffer." +msgstr "" +"Повертає вказаний шар із текстури глибини, у яку ми візуалізуємо 3D-вміст.\n" +"Якщо [param msaa] має значення [code]true[/code] і MSAA увімкнено, це " +"повертає варіант MSAA буфера." + +msgid "" +"Returns the depth texture we are rendering 3D content to. If multiview is " +"used this will be a texture array with all views.\n" +"If [param msaa] is [code]true[/code] and MSAA is enabled, this returns the " +"MSAA variant of the buffer." +msgstr "" +"Повертає текстуру глибини, до якої ми відтворюємо 3D-вміст. Якщо " +"використовується мультиракурс, це буде масив текстур з усіма видами. \n" +"Якщо [param msaa] має значення [code]true[/code] і MSAA увімкнено, це " +"повертає варіант MSAA буфера." + msgid "" "Returns the FSR sharpness value used while rendering the 3D content (if " "[method get_scaling_3d_mode] is an FSR mode)." @@ -120422,6 +150031,48 @@ msgstr "" "Надіслав цей метод для повернення користувацького [RID], коли [метод get_rid] " "називається." +msgid "" +"For resources that use a variable number of properties, either via [method " +"Object._validate_property] or [method Object._get_property_list], this method " +"should be implemented to correctly clear the resource's state." +msgstr "" +"Для ресурсів, які використовують змінну кількість властивостей через [метод " +"Object._validate_property] або [метод Object._get_property_list], цей метод " +"слід реалізувати для правильного очищення стану ресурсу." + +msgid "" +"Sets the resource's path to [param path] without involving the resource cache." +msgstr "Встановлює шлях до ресурсу [param path] без залучення кешу ресурсу." + +msgid "" +"Override this method to customize the newly duplicated resource created from " +"[method PackedScene.instantiate], if the original's [member " +"resource_local_to_scene] is set to [code]true[/code].\n" +"[b]Example:[/b] Set a random [code]damage[/code] value to every local " +"resource from an instantiated scene:\n" +"[codeblock]\n" +"extends Resource\n" +"\n" +"var damage = 0\n" +"\n" +"func _setup_local_to_scene():\n" +" damage = randi_range(10, 40)\n" +"[/codeblock]" +msgstr "" +"Перевизначте цей метод, щоб налаштувати щойно дубльований ресурс, створений " +"за допомогою [method PackedScene.instantiate], якщо для [member " +"resource_local_to_scene] оригіналу встановлено значення [code]true[/code]. \n" +"[b]Приклад:[/b] Встановіть випадкове значення [code]шкоди[/code] для кожного " +"локального ресурсу зі створеної сцени: \n" +"[codeblock] \n" +"розширює ресурс \n" +"\n" +"var damage = 0 \n" +"\n" +"func _setup_local_to_scene(): \n" +" damage = randi_range(10, 40) \n" +"[/codeblock]" + msgid "" "Duplicates this resource, returning a new resource with its [code]export[/" "code]ed or [constant PROPERTY_USAGE_STORAGE] properties copied from the " @@ -120502,6 +150153,19 @@ msgstr "" "чисел ([code]0[/code] до [code]8[/code]). Дивитися також [пам'ятний " "ресурс_scene_unique_id]." +msgid "" +"Returns the unique identifier for the resource with the given [param path] " +"from the resource cache. If the resource is not loaded and cached, an empty " +"string is returned.\n" +"[b]Note:[/b] This method is only implemented when running in an editor " +"context. At runtime, it returns an empty string." +msgstr "" +"Повертає унікальний ідентифікатор для ресурсу з заданим [param path] із кешу " +"ресурсу. Якщо ресурс не завантажується та не кешується, повертається порожній " +"рядок. \n" +"[b]Примітка.[/b] Цей метод реалізовано лише під час роботи в контексті " +"редактора. Під час виконання він повертає порожній рядок." + msgid "" "If [member resource_local_to_scene] is set to [code]true[/code] and the " "resource has been loaded from a [PackedScene] instantiation, returns the root " @@ -120524,6 +150188,35 @@ msgstr "" "ресурсів, що зберігаються в спеціалізованому сервері ([DisplayServer], " "[RenderingServer] і т.д.), тому ця функція повернеться оригінальним [RID]." +msgid "" +"Returns [code]true[/code] if the resource is built-in (from the engine) or " +"[code]false[/code] if it is user-defined." +msgstr "" +"Повертає [code]true[/code], якщо ресурс є вбудованим (з двигуна), або " +"[code]false[/code], якщо він визначений користувачем." + +msgid "" +"For resources that use a variable number of properties, either via [method " +"Object._validate_property] or [method Object._get_property_list], override " +"[method _reset_state] to correctly clear the resource's state." +msgstr "" +"Для ресурсів, які використовують змінну кількість властивостей за допомогою " +"[method Object._validate_property] або [method Object._get_property_list], " +"замініть [method _reset_state], щоб правильно очистити стан ресурсу." + +msgid "" +"Sets the unique identifier to [param id] for the resource with the given " +"[param path] in the resource cache. If the unique identifier is empty, the " +"cache entry using [param path] is removed if it exists.\n" +"[b]Note:[/b] This method is only implemented when running in an editor " +"context." +msgstr "" +"Встановлює унікальний ідентифікатор [param id] для ресурсу з указаним [param " +"path] у кеші ресурсу. Якщо унікальний ідентифікатор порожній, запис кешу за " +"допомогою [param path] видаляється, якщо він існує. \n" +"[b]Примітка.[/b] Цей метод реалізовано лише під час роботи в контексті " +"редактора." + msgid "This method should only be called internally." msgstr "Цей метод слід назвати внутрішньо." @@ -120724,6 +150417,15 @@ msgstr "" "відомі [ClassDB], тому ви можете просто повернути [code]\"Resource\"[/code] " "для них." +msgid "" +"Should return the unique ID for the resource associated with the given path. " +"If this method is not overridden, a [code].uid[/code] file is generated along " +"with the resource file, containing the unique ID." +msgstr "" +"Має повертати унікальний ідентифікатор для ресурсу, пов’язаного з заданим " +"шляхом. Якщо цей метод не перевизначено, файл [code].uid[/code] генерується " +"разом із файлом ресурсу, що містить унікальний ідентифікатор." + msgid "" "Tells which resource class this loader can load.\n" "[b]Note:[/b] Custom resource types defined by scripts aren't known by the " @@ -121005,17 +150707,17 @@ msgid "" "にちは」男は言いました\n" "[/codeblock]" msgstr "" -"Товарні значення є простим форматом зберігання тексту. Простота формата " -"дозволяє легко редагувати будь-який текстовий редактор або роздрукувати " -"програмне забезпечення. Це робить його загальним вибором для локалізації " -"ігор.\n" -"[b]Example CSV файл:[/b]\n" -"[codeblock lang=text]\n" -"ключі,en,es,ja\n" -"GREET, \"Привіт, друг!\", \"Hola, amigo!\",\n" -"ASK,Як ви? ,Cómo está?, 元気ですか\n" -"BYE,Goodbye,Адіоз,\n" -"QUOTE,\"\"Hello\" - сказав чоловік.\", \"Hola\" dijo el hombre.\",\n" +"Значення, розділені комами, є форматом зберігання звичайної текстової " +"таблиці. Простота формату дозволяє легко редагувати його в будь-якому " +"текстовому редакторі чи програмному забезпеченні для роботи з електронними " +"таблицями. Це робить його поширеним вибором для локалізації гри. \n" +"[b]Приклад файлу CSV:[/b] \n" +"[codeblock lang=text] \n" +"ключі,en,es,ja \n" +"ПРИВІТАННЯ, «Привіт, друже!», «Hola, amigo!», Привіт \n" +"ЗАПИТАЙТЕ,Як справи?,Як справи? \n" +"BYE, Goodbye, Goodbye \n" +"ЦИТАТА,\"Привіт\", - сказав чоловік.\",\"Hola\" dijo el hombre.\" \n" "[/codeblock]" msgid "Importing translations" @@ -121212,6 +150914,26 @@ msgstr "" "більше пам'яті. Тільки збільшити це значення, якщо ви помітили видимий " "недолік точності в рендерингу glyph. [code]true[/code]." +msgid "" +"If set to [code]true[/code], the font will use multichannel signed distance " +"field (MSDF) for crisp rendering at any size. Since this approach does not " +"rely on rasterizing the font every time its size changes, this allows for " +"resizing the font in real-time without any performance penalty. Text will " +"also not look grainy for [Control]s that are scaled down (or for [Label3D]s " +"viewed from a long distance).\n" +"MSDF font rendering can be combined with [member generate_mipmaps] to further " +"improve font rendering quality when scaled down." +msgstr "" +"Якщо встановлено значення [code]true[/code], шрифт використовуватиме " +"багатоканальне поле відстані зі знаком (MSDF) для чіткого відтворення будь-" +"якого розміру. Оскільки цей підхід не покладається на растеризацію шрифту " +"щоразу, коли змінюється його розмір, це дозволяє змінювати розмір шрифту в " +"режимі реального часу без будь-яких втрат продуктивності. Текст також не " +"виглядатиме зернистим для [Control]s, які зменшено (або для [Label3D]s, які " +"переглядаються з великої відстані). \n" +"Візуалізацію шрифтів MSDF можна поєднати з [member generate_mipmaps], щоб ще " +"більше покращити якість відтворення шрифтів у зменшеному масштабі." + msgid "" "The OpenType features to enable, disable or set a value for this font. This " "can be used to enable optional features provided by the font, such as " @@ -121256,6 +150978,44 @@ msgstr "" "порожній, це подається метаданих шрифтів. Як правило, немає необхідності " "змінити це. Дивись також [пам'ятна мова]." +msgid "" +"Subpixel positioning improves font rendering appearance, especially at " +"smaller font sizes. The downside is that it takes more time to initially " +"render the font, which can cause stuttering during gameplay, especially if " +"used with large font sizes. This should be set to [b]Disabled[/b] for fonts " +"with a pixel art appearance.\n" +"[b]Disabled:[/b] No subpixel positioning. Lowest quality, fastest rendering.\n" +"[b]Auto:[/b] Use subpixel positioning at small font sizes (the chosen quality " +"varies depending on font size). Large fonts will not use subpixel " +"positioning. This is a good tradeoff between performance and quality.\n" +"[b]One Half of a Pixel:[/b] Always perform intermediate subpixel positioning " +"regardless of font size. High quality, slow rendering.\n" +"[b]One Quarter of a Pixel:[/b] Always perform precise subpixel positioning " +"regardless of font size. Highest quality, slowest rendering.\n" +"[b]Auto (Except Pixel Fonts):[/b] [b]Disabled[/b] for the pixel style fonts " +"(each glyph contours contain only straight horizontal and vertical lines), " +"[b]Auto[/b] for the other fonts." +msgstr "" +"Субпіксельне розташування покращує вигляд шрифту, особливо при менших " +"розмірах шрифту. Недоліком є те, що початкове відтворення шрифту займає " +"більше часу, що може спричинити заїкання під час гри, особливо якщо " +"використовується шрифт великого розміру. Це має бути [b]вимкнено[/b] для " +"шрифтів із піксельним зображенням. \n" +"[b]Вимкнено:[/b] субпіксельне позиціонування відсутнє. Найнижча якість, " +"найшвидше рендеринг. \n" +"[b]Авто: [/b] Використовувати субпіксельне позиціонування з маленьким " +"розміром шрифту (вибрана якість залежить від розміру шрифту). Для великих " +"шрифтів субпіксельне позиціонування не використовуватиметься. Це хороший " +"компроміс між продуктивністю та якістю. \n" +"[b]Половина пікселя:[/b] завжди виконуйте позиціонування проміжного " +"субпікселя незалежно від розміру шрифту. Висока якість, повільне рендеринг. \n" +"[b]Одна чверть пікселя:[/b] завжди виконуйте точне субпіксельне " +"позиціонування незалежно від розміру шрифту. Найвища якість, найповільніше " +"рендеринг. \n" +"[b]Авто (крім піксельних шрифтів):[/b] [b]Вимкнено[/b] для піксельних шрифтів " +"(кожен контур гліфа містить лише прямі горизонтальні та вертикальні лінії), " +"[b]Авто[/b] для інших шрифтів." + msgid "Imports a image for use in scripting, with no rendering capabilities." msgstr "" "Імпортувати зображення для використання в сценаріїв, без можливості " @@ -121399,6 +151159,38 @@ msgstr "" "[GPUParticlesAttractorVectorField3D]. Дивитися також " "[ResourceImporterTexture] і [ResourceImporterTextureAtlas]." +msgid "" +"Controls how color channels should be used in the imported texture.\n" +"[b]sRGB Friendly:[/b], prevents the RG color format from being used, as it " +"does not support sRGB color.\n" +"[b]Optimized:[/b], allows the RG color format to be used if the texture does " +"not use the blue channel. This reduces memory usage if the texture's blue " +"channel can be discarded (all pixels must have a blue value of [code]0[/" +"code]).\n" +"[b]Normal Map (RG Channels):[/b] This forces all layers from the texture to " +"be imported with the RG color format, with only the red and green channels " +"preserved. RGTC (Red-Green Texture Compression) compression is able to " +"preserve its detail much better, while using the same amount of memory as a " +"standard RGBA VRAM-compressed texture. This only has an effect on textures " +"with the VRAM Compressed or Basis Universal compression modes. This mode is " +"only available in layered textures ([Cubemap], [CubemapArray], " +"[Texture2DArray] and [Texture3D])." +msgstr "" +"Керує використанням каналів кольору в імпортованій текстурі. \n" +"[b]SRGB Friendly:[/b], запобігає використанню формату кольору RG, оскільки " +"він не підтримує колір sRGB. \n" +"[b]Оптимізовано: [/b] дозволяє використовувати колірний формат RG, якщо " +"текстура не використовує синій канал. Це зменшує використання пам’яті, якщо " +"синій канал текстури можна відкинути (усі пікселі повинні мати синє значення " +"[code]0[/code]). \n" +"[b]Звичайна карта (канали RG):[/b] це примусово імпортує всі шари текстури у " +"форматі кольору RG, зберігаючи лише червоний і зелений канали. Стиснення RGTC " +"(стиснення червоно-зеленої текстури) здатне зберегти деталі набагато краще, " +"використовуючи той самий обсяг пам’яті, що й стандартна текстура, стиснута за " +"допомогою RGBA VRAM. Це впливає лише на текстури з режимами стиснення VRAM " +"Compressed або Basis Universal. Цей режим доступний лише для багатошарових " +"текстур ([Cubemap], [CubemapArray], [Texture2DArray] і [Texture3D])." + msgid "" "Controls how VRAM compression should be performed for HDR images.\n" "[b]Disabled:[/b] Never use VRAM compression for HDR textures, regardless of " @@ -121565,6 +151357,49 @@ msgstr "" msgid "Importing audio samples" msgstr "Імпорт аудіо зразків" +msgid "" +"The number of bars within a single beat in the audio track. This is only " +"relevant for music that wishes to make use of interactive music " +"functionality, not sound effects.\n" +"A more convenient editor for [member bar_beats] is provided in the " +"[b]Advanced Import Settings[/b] dialog, as it lets you preview your changes " +"without having to reimport the audio." +msgstr "" +"Кількість тактів в одному ударі звукової доріжки. Це актуально лише для " +"музики, яка бажає використовувати інтерактивні музичні функції, а не звукові " +"ефекти. \n" +"Зручніший редактор для [member bar_beats] доступний у діалоговому вікні " +"[b]Розширені параметри імпорту[/b], оскільки він дозволяє попередньо " +"переглядати внесені зміни без повторного імпорту аудіо." + +msgid "" +"The beat count of the audio track. This is only relevant for music that " +"wishes to make use of interactive music functionality, not sound effects.\n" +"A more convenient editor for [member beat_count] is provided in the " +"[b]Advanced Import Settings[/b] dialog, as it lets you preview your changes " +"without having to reimport the audio." +msgstr "" +"Лічильник ударів звукової доріжки. Це актуально лише для музики, яка бажає " +"використовувати інтерактивні музичні функції, а не звукові ефекти. \n" +"Зручніший редактор для [member beat_count] доступний у діалоговому вікні " +"[b]Розширені параметри імпорту[/b], оскільки він дозволяє попередньо " +"переглядати внесені зміни без повторного імпорту аудіо." + +msgid "" +"The beats per minute of the audio track. This should match the BPM measure " +"that was used to compose the track. This is only relevant for music that " +"wishes to make use of interactive music functionality, not sound effects.\n" +"A more convenient editor for [member bpm] is provided in the [b]Advanced " +"Import Settings[/b] dialog, as it lets you preview your changes without " +"having to reimport the audio." +msgstr "" +"Ударів звукової доріжки в хвилину. Це має відповідати розміру BPM, який " +"використовувався для композиції. Це актуально лише для музики, яка бажає " +"використовувати інтерактивні музичні функції, а не звукові ефекти. \n" +"У діалоговому вікні [b]Розширені параметри імпорту[/b] доступний більш " +"зручний редактор для [ударів на хвилину члена], оскільки він дає змогу " +"попередньо переглядати внесені зміни без повторного імпорту аудіо." + msgid "" "If enabled, the audio will begin playing at the beginning after playback ends " "by reaching the end of the audio.\n" @@ -121634,6 +151469,24 @@ msgstr "" "або якщо у вас є сітки, які більше, ніж кілька тисяч метрів в кожному " "напрямку." +msgid "If [code]true[/code], generates UV2 on import for [LightmapGI] baking." +msgstr "" +"Якщо [code]true[/code], генерує UV2 під час імпорту для запікання " +"[LightmapGI]." + +msgid "" +"Controls the size of each texel on the baked lightmap. A smaller value " +"results in more precise lightmaps, at the cost of larger lightmap sizes and " +"longer bake times.\n" +"[b]Note:[/b] Only effective if [member generate_lightmap_uv2] is [code]true[/" +"code]." +msgstr "" +"Контролює розмір кожного текселя на запеченій карті освітлення. Менше " +"значення призводить до більш точних карт освітлення за рахунок більших " +"розмірів карт освітлення та довшого часу запікання. \n" +"[b]Примітка:[/b] Ефективно, лише якщо [member generate_lightmap_uv2] має " +"значення [code]true[/code]." + msgid "" "If [code]true[/code], generates lower detail variants of the mesh which will " "be displayed in the distance to improve rendering performance. Not all meshes " @@ -121724,6 +151577,12 @@ msgstr "" "використовувати WAV для тих звуків замість цього, особливо якщо ціль " "невисоких пристроїв." +msgid "Use [method AudioStreamOggVorbis.load_from_buffer] instead." +msgstr "Натомість використовуйте [метод AudioStreamOggVorbis.load_from_buffer]." + +msgid "Use [method AudioStreamOggVorbis.load_from_file] instead." +msgstr "Натомість використовуйте [метод AudioStreamOggVorbis.load_from_file]." + msgid "Imports a glTF, FBX, Collada or Blender 3D scene." msgstr "Імпорт glTF, FBX, Collada або Blender 3D сцена." @@ -121915,6 +151774,22 @@ msgstr "" "випадку ви втратите можливість позиціонувати вузол безпосередньо в редакторі " "3D." +msgid "" +"If [code]true[/code], use suffixes in the node names to determine the node " +"type, such as [code]-col[/code] for collision shapes. Disabling this makes " +"editor-imported files more similar to the original files, and more similar to " +"importing files at runtime. See [url=$DOCS_URL/tutorials/assets_pipeline/" +"importing_3d_scenes/node_type_customization.html]Node type customization " +"using name suffixes[/url] for more information." +msgstr "" +"Якщо [code]true[/code], використовуйте суфікси в іменах вузлів, щоб визначити " +"тип вузла, наприклад [code]-col[/code] для фігур зіткнення. Якщо вимкнути цей " +"параметр, файли, імпортовані редактором, стануть схожішими на оригінальні " +"файли та схожішими на файли, імпортовані під час виконання. Для отримання " +"додаткової інформації див. [url=$DOCS_URL/tutorials/assets_pipeline/" +"importing_3d_scenes/node_type_customization.html]Налаштування типу вузла за " +"допомогою суфіксів імен[/url]." + msgid "" "If checked, use named [Skin]s for animation. The [MeshInstance3D] node " "contains 3 properties of relevance here: a skeleton [NodePath] pointing to " @@ -122204,6 +152079,49 @@ msgstr "" "використовують цю текстуру. На замовлення [code]spatial[/code] шейдери, " "[code]render_mode mix_premul_alpha;[/code] слід використовувати." +msgid "" +"If set to a value greater than [code]0[/code], the size of the texture is " +"limited on import to a value smaller than or equal to the value specified " +"here. For non-square textures, the size limit affects the longer dimension, " +"with the shorter dimension scaled to preserve aspect ratio. Resizing is " +"performed using cubic interpolation.\n" +"This can be used to reduce memory usage without affecting the source images, " +"or avoid issues with textures not displaying on mobile/web platforms (as " +"these usually can't display textures larger than 4096×4096).\n" +"[b]Note:[/b] Even if this is set to [code]0[/code], import size is limited to " +"the following dimensions for technical reasons. Depending on [member compress/" +"mode], textures will be downsampled on import if necessary:\n" +"- [b]Lossy:[/b] 16383 pixels width or height, whichever is larger;\n" +"- [b]Basis Universal:[/b] 16384 pixels width or height, whichever is larger;\n" +"- [b]All other modes:[/b] 32768 pixels width or height, whichever is larger." +msgstr "" +"Якщо встановлено значення більше за [code]0[/code], розмір текстури під час " +"імпорту обмежується значенням, меншим або рівним вказаному тут значенню. Для " +"неквадратних текстур обмеження розміру впливає на довший розмір, а менший " +"розмір масштабується для збереження співвідношення сторін. Зміна розміру " +"виконується за допомогою кубічної інтерполяції. \n" +"Це можна використати, щоб зменшити використання пам’яті, не впливаючи на " +"вихідні зображення, або уникнути проблем із відображенням текстур на " +"мобільних/веб-платформах (оскільки вони зазвичай не можуть відображати " +"текстури розміром більше 4096×4096). \n" +"[b]Примітка:[/b] Навіть якщо для цього значення встановлено значення [code]0[/" +"code], розмір імпорту обмежений наступними розмірами з технічних причин. " +"Залежно від [member compress/mode], текстури буде зменшено під час імпорту, " +"якщо необхідно: \n" +"- [b]Втрати:[/b] ширина або висота 16383 пікселів, залежно від того, що " +"більше; \n" +"- [b]Базовий універсальний:[/b] ширина або висота 16384 пікселів, залежно від " +"того, що більше; \n" +"- [b]Усі інші режими:[/b] ширина або висота 32768 пікселів, залежно від того, " +"що більше." + +msgid "" +"The color channel to consider as a roughness map in this texture. Only " +"effective if [member roughness/src_normal] is not empty." +msgstr "" +"Колірний канал, який слід розглядати як карту шорсткості в цій текстурі. " +"Ефективно, лише якщо [member roughness/src_normal] не порожній." + msgid "" "The path to the texture to consider as a normal map for roughness filtering " "on import. Specifying this can help decrease specular aliasing slightly in " @@ -122307,6 +152225,47 @@ msgstr "" msgid "Imports a WAV audio file for playback." msgstr "Імпорт аудіофайлу WAV для відтворення." +msgid "" +"WAV is an uncompressed format, which can provide higher quality compared to " +"Ogg Vorbis and MP3. It also has the lowest CPU cost to decode. This means " +"high numbers of WAV sounds can be played at the same time, even on low-end " +"devices.\n" +"By default, Godot imports WAV files using the lossy Quite OK Audio " +"compression. You may change this by setting the [member compress/mode] " +"property." +msgstr "" +"WAV — це нестиснутий формат, який може забезпечити вищу якість порівняно з " +"Ogg Vorbis і MP3. Він також має найнижчу вартість процесора для декодування. " +"Це означає, що велика кількість звуків WAV може відтворюватися одночасно, " +"навіть на пристроях низького класу. \n" +"За замовчуванням Godot імпортує файли WAV за допомогою стиснення цілком " +"нормального аудіо з втратами. Ви можете змінити це, встановивши властивість " +"[member compress/mode]." + +msgid "" +"The compression mode to use on import.\n" +"- [b]PCM (Uncompressed):[/b] Imports audio data without any form of " +"compression, preserving the highest possible quality. It has the lowest CPU " +"cost, but the highest memory usage.\n" +"- [b]IMA ADPCM:[/b] Applies fast, lossy compression during import, noticeably " +"decreasing the quality, but with low CPU cost and memory usage. Does not " +"support seeking and only Forward loop mode is supported.\n" +"- [b][url=https://qoaformat.org/]Quite OK Audio[/url]:[/b] Also applies lossy " +"compression on import, having a slightly higher CPU cost compared to IMA " +"ADPCM, but much higher quality and the lowest memory usage." +msgstr "" +"Режим стиснення для імпорту. \n" +"- [b]PCM (без стиснення):[/b] імпортує аудіодані без будь-якої форми " +"стиснення, зберігаючи найвищу можливу якість. Він має найнижчу вартість ЦП, " +"але найбільше використання пам’яті. \n" +"- [b]IMA ADPCM:[/b] застосовує швидке стиснення з втратами під час імпорту, " +"помітно знижуючи якість, але з низькими витратами процесора та використанням " +"пам’яті. Не підтримує пошук і підтримується лише режим прямого циклу. \n" +"- [b][url=https://qoaformat.org/]Цілком добре аудіо[/url]:[/b] також " +"застосовує стиснення з втратами під час імпорту, дещо вищу вартість процесора " +"порівняно з IMA ADPCM, але набагато вищу якість і найменше використання " +"пам’яті." + msgid "" "The begin loop point to use when [member edit/loop_mode] is [b]Forward[/b], " "[b]Ping-Pong[/b], or [b]Backward[/b]. This is set in samples after the " @@ -122327,6 +152286,37 @@ msgstr "" "файлу встановіть зразки. Значення [code]-1[/code] використовує кінець " "аудіофайлу в якості кінцевої точки петлі." +msgid "" +"Controls how audio should loop.\n" +"- [b]Detect From WAV:[/b] Uses loop information from the WAV metadata.\n" +"- [b]Disabled:[/b] Don't loop audio, even if the metadata indicates the file " +"playback should loop.\n" +"- [b]Forward:[/b] Standard audio looping. Plays the audio forward from the " +"beginning to [member edit/loop_end], then returns to [member edit/loop_begin] " +"and repeats.\n" +"- [b]Ping-Pong:[/b] Plays the audio forward until [member edit/loop_end], " +"then backwards to [member edit/loop_begin], repeating this cycle.\n" +"- [b]Backward:[/b] Plays the audio backwards from [member edit/loop_end] to " +"[member edit/loop_begin], then repeats.\n" +"[b]Note:[/b] In [AudioStreamPlayer], the [signal AudioStreamPlayer.finished] " +"signal won't be emitted for looping audio when it reaches the end of the " +"audio file, as the audio will keep playing indefinitely." +msgstr "" +"Контролює, як звук має повторюватися. \n" +"- [b]Виявлення з WAV:[/b] Використовує інформацію циклу з метаданих WAV. \n" +"- [b]Вимкнено:[/b] Не повторювати аудіо, навіть якщо метадані вказують на те, " +"що відтворення файлу має повторюватися. \n" +"- [b]Вперед:[/b] Стандартне повторення звуку. Відтворює аудіо з початку до " +"[member edit/loop_end], потім повертається до [member edit/loop_begin] і " +"повторює. \n" +"- [b]Пінг-понг:[/b] відтворює аудіо вперед до [member edit/loop_end], потім " +"назад до [member edit/loop_begin], повторюючи цей цикл. \n" +"- [b]Назад:[/b] Відтворює аудіо назад від [member edit/loop_end] до [member " +"edit/loop_begin], а потім повторює. \n" +"[b]Примітка.[/b] У [AudioStreamPlayer] сигнал [signal AudioStreamPlayer." +"finished] не видаватиметься для циклічного аудіо, коли він досягне кінця " +"аудіофайлу, оскільки аудіо відтворюватиметься безкінечно." + msgid "" "If [code]true[/code], normalize the audio volume so that its peak volume is " "equal to 0 dB. When enabled, normalization will make audio sound louder " @@ -122399,6 +152389,36 @@ msgstr "" msgid "A singleton for loading resource files." msgstr "Однотон для завантаження ресурсних файлів." +msgid "" +"A singleton used to load resource files from the filesystem.\n" +"It uses the many [ResourceFormatLoader] classes registered in the engine " +"(either built-in or from a plugin) to load files into memory and convert them " +"to a format that can be used by the engine.\n" +"[b]Note:[/b] You have to import the files into the engine first to load them " +"using [method load]. If you want to load [Image]s at run-time, you may use " +"[method Image.load]. If you want to import audio files, you can use the " +"snippet described in [member AudioStreamMP3.data].\n" +"[b]Note:[/b] Non-resource files such as plain text files cannot be read using " +"[ResourceLoader]. Use [FileAccess] for those files instead, and be aware that " +"non-resource files are not exported by default (see notes in the [FileAccess] " +"class description for instructions on exporting them)." +msgstr "" +"Синглтон, який використовується для завантаження файлів ресурсів із файлової " +"системи. \n" +"Він використовує багато класів [ResourceFormatLoader], зареєстрованих у " +"механізмі (вбудованих або з плагіна), щоб завантажувати файли в пам’ять і " +"перетворювати їх у формат, який може використовувати механізм. \n" +"[b]Примітка:[/b] Ви повинні спочатку імпортувати файли в механізм, щоб " +"завантажити їх за допомогою [method load]. Якщо ви хочете завантажити [Image] " +"під час виконання, ви можете використовувати [method Image.load]. Якщо ви " +"хочете імпортувати аудіофайли, ви можете використати фрагмент, описаний у " +"[member AudioStreamMP3.data]. \n" +"[b]Примітка: [/b] Нересурсні файли, наприклад файли звичайного тексту, не " +"можна читати за допомогою [ResourceLoader]. Замість цього використовуйте " +"[FileAccess] для цих файлів і майте на увазі, що нересурсні файли не " +"експортуються за замовчуванням (див. примітки в описі класу [FileAccess], щоб " +"отримати інструкції щодо їх експорту)." + msgid "" "Registers a new [ResourceFormatLoader]. The ResourceLoader will use the " "ResourceFormatLoader as described in [method load].\n" @@ -122428,6 +152448,34 @@ msgstr "" "метод повернеться [code]true[/code], якщо ресурс не збережений (тобто існує " "тільки в ресурсному кеші)." +msgid "" +"Returns the cached resource reference for the given [param path].\n" +"[b]Note:[/b] If the resource is not cached, the returned [Resource] will be " +"invalid." +msgstr "" +"Повертає кешоване посилання на ресурс для заданого [param path].\n" +"[b]Примітка:[/b] Якщо ресурс не кешується, повернутий [Ресурс] буде недійсним." + +msgid "" +"Returns the dependencies for the resource at the given [param path].\n" +"[b]Note:[/b] The dependencies are returned with slices separated by [code]::[/" +"code]. You can use [method String.get_slice] to get their components.\n" +"[codeblock]\n" +"for dependency in ResourceLoader.get_dependencies(path):\n" +" print(dependency.get_slice(\"::\", 0)) # Prints the UID.\n" +" print(dependency.get_slice(\"::\", 2)) # Prints the path.\n" +"[/codeblock]" +msgstr "" +"Повертає залежності для ресурсу за заданим [param path]. \n" +"[b]Примітка:[/b] Залежності повертаються з фрагментами, розділеними [code]::[/" +"code]. Ви можете використовувати [метод String.get_slice], щоб отримати їхні " +"компоненти. \n" +"[codeblock] \n" +"для залежності в ResourceLoader.get_dependencies(шлях): \n" +" print(dependency.get_slice(\"::\", 0)) # Виводить UID. \n" +" print(dependency.get_slice(\"::\", 2)) # Друкує шлях. \n" +"[/codeblock]" + msgid "Returns the list of recognized extensions for a resource type." msgstr "Повертає перелік визнаних розширень для ресурсного типу." @@ -122451,6 +152499,15 @@ msgstr "" "використовувати кеш-версію. За допомогою [метод Resource.take_over_path] на " "новий ресурс для цього ж шляху." +msgid "" +"Lists a directory (as example: \"res://assets/enemies\"), returning all " +"resources contained within. The resource files are the original file names as " +"visible in the editor before exporting." +msgstr "" +"Перелічує каталог (наприклад: \"res://assets/enemies\"), повертаючи всі " +"ресурси, що містяться в ньому. Файли ресурсів — це вихідні імена файлів, які " +"відображаються в редакторі перед експортом." + msgid "" "Loads a resource at the given [param path], caching the result for further " "access.\n" @@ -122517,6 +152574,26 @@ msgstr "" "рекомендується використовувати [метод завантаження_threaded_get_status], щоб " "дізнатися, коли навантаження фактично завершено." +msgid "" +"Returns the status of a threaded loading operation started with [method " +"load_threaded_request] for the resource at [param path]. See [enum " +"ThreadLoadStatus] for possible return values.\n" +"An array variable can optionally be passed via [param progress], and will " +"return a one-element array containing the ratio of completion of the threaded " +"loading (between [code]0.0[/code] and [code]1.0[/code]).\n" +"[b]Note:[/b] The recommended way of using this method is to call it during " +"different frames (e.g., in [method Node._process], instead of a loop)." +msgstr "" +"Повертає статус потокової операції завантаження, розпочатої за допомогою " +"[методу load_threaded_request] для ресурсу в [param path]. Перегляньте [enum " +"ThreadLoadStatus] для можливих значень, що повертаються. \n" +"Змінну масиву можна додатково передати через [param progress] і поверне " +"одноелементний масив, що містить коефіцієнт завершення потокового " +"завантаження (між [code]0.0[/code] і [code]1.0[/code]). \n" +"[b]Примітка: [/b] Рекомендований спосіб використання цього методу — викликати " +"його під час різних кадрів (наприклад, у [method Node._process] замість " +"циклу)." + msgid "" "Loads the resource using threads. If [param use_sub_threads] is [code]true[/" "code], multiple threads will be used to load the resource, which makes " @@ -122646,6 +152723,18 @@ msgid "" msgstr "" "Повертає перелік розширень, доступних для збереження ресурсу даного типу." +msgid "" +"Returns the resource ID for the given path. If [param generate] is " +"[code]true[/code], a new resource ID will be generated if one for the path is " +"not found. If [param generate] is [code]false[/code] and the path is not " +"found, [constant ResourceUID.INVALID_ID] is returned." +msgstr "" +"Повертає ідентифікатор ресурсу для вказаного шляху. Якщо [param generate] має " +"значення [code]true[/code], буде згенеровано новий ідентифікатор ресурсу, " +"якщо ідентифікатор шляху не знайдено. Якщо [param generate] має значення " +"[code]false[/code] і шлях не знайдено, повертається [constant ResourceUID." +"INVALID_ID]." + msgid "Unregisters the given [ResourceFormatSaver]." msgstr "Незареєстровані дані [ResourceFormatSaver]." @@ -122715,6 +152804,20 @@ msgstr "" "Однотон, який керує унікальними ідентифікаторами всіх ресурсів в рамках " "проекту." +msgid "" +"Resource UIDs (Unique IDentifiers) allow the engine to keep references " +"between resources intact, even if files are renamed or moved. They can be " +"accessed with [code]uid://[/code].\n" +"[ResourceUID] keeps track of all registered resource UIDs in a project, " +"generates new UIDs, and converts between their string and integer " +"representations." +msgstr "" +"UID ресурсів (унікальні ідентифікатори) дозволяють механізму зберігати " +"посилання між ресурсами без змін, навіть якщо файли перейменовано або " +"переміщено. До них можна отримати доступ за допомогою [code]uid://[/code]. \n" +"[ResourceUID] відстежує всі зареєстровані UID ресурсів у проекті, генерує " +"нові UID і перетворює їх рядкове та ціле числове представлення." + msgid "" "Adds a new UID value which is mapped to the given resource path.\n" "Fails with an error if the UID already exists, so be sure to check [method " @@ -122780,6 +152883,125 @@ msgstr "" "завантажений.\n" "Його текстове представлення [code]uid://<invalid>[/code]." +msgid "" +"A modifier to transfer parent skeleton poses (or global poses) to child " +"skeletons in model space with different rests." +msgstr "" +"Модифікатор для передачі поз батьківського скелета (або глобальних поз) " +"дочірнім скелетам у просторі моделі з різними відпочинками." + +msgid "" +"Retrieves the pose (or global pose) relative to the parent Skeleton's rest in " +"model space and transfers it to the child Skeleton.\n" +"This modifier rewrites the pose of the child skeleton directly in the parent " +"skeleton's update process. This means that it overwrites the mapped bone pose " +"set in the normal process on the target skeleton. If you want to set the " +"target skeleton bone pose after retargeting, you will need to add a " +"[SkeletonModifier3D] child to the target skeleton and thereby modify the " +"pose.\n" +"[b]Note:[/b] When the [member use_global_pose] is enabled, even if it is an " +"unmapped bone, it can cause visual problems because the global pose is " +"applied ignoring the parent bone's pose [b]if it has mapped bone children[/" +"b]. See also [member use_global_pose]." +msgstr "" +"Отримує позу (або глобальну позу) відносно спокою батьківського скелета в " +"просторі моделі та передає її дочірньому скелету. \n" +"Цей модифікатор переписує позу дочірнього скелета безпосередньо в процесі " +"оновлення батьківського скелета. Це означає, що він перезаписує відображену " +"позу кістки, встановлену в звичайному процесі на цільовому скелеті. Якщо ви " +"хочете встановити позу цільової кістки скелета після перенацілювання, вам " +"потрібно буде додати дочірнього елемента [SkeletonModifier3D] до цільового " +"скелета та таким чином змінити позу. \n" +"[b]Примітка:[/b] коли [member use_global_pose] увімкнено, навіть якщо це " +"невідставлена кістка, це може спричинити проблеми із візуальним виглядом, " +"оскільки глобальна поза застосовується, ігноруючи позу батьківської кістки, " +"[b]якщо вона має відображені дочірні кістки[/b]. Дивіться також [учасник " +"use_global_pose]." + +msgid "" +"Returns [code]true[/code] if [member enable] has [constant " +"TRANSFORM_FLAG_POSITION]." +msgstr "" +"Повертає [code]true[/code], якщо [member enable] має [константу " +"TRANSFORM_FLAG_POSITION]." + +msgid "" +"Returns [code]true[/code] if [member enable] has [constant " +"TRANSFORM_FLAG_ROTATION]." +msgstr "" +"Повертає [code]true[/code], якщо [member enable] має [константу " +"TRANSFORM_FLAG_ROTATION]." + +msgid "" +"Returns [code]true[/code] if [member enable] has [constant " +"TRANSFORM_FLAG_SCALE]." +msgstr "" +"Повертає [code]true[/code], якщо [member enable] має [константу " +"TRANSFORM_FLAG_SCALE]." + +msgid "Sets [constant TRANSFORM_FLAG_POSITION] into [member enable]." +msgstr "Встановлює [константу TRANSFORM_FLAG_POSITION] у [увімкнути членство]." + +msgid "Sets [constant TRANSFORM_FLAG_ROTATION] into [member enable]." +msgstr "Встановлює [константу TRANSFORM_FLAG_ROTATION] у [увімкнути членство]." + +msgid "Sets [constant TRANSFORM_FLAG_SCALE] into [member enable]." +msgstr "Встановлює [константу TRANSFORM_FLAG_SCALE] у [увімкнути членство]." + +msgid "" +"Flags to control the process of the transform elements individually when " +"[member use_global_pose] is disabled." +msgstr "" +"Прапори для керування процесом окремих елементів трансформації, коли [member " +"use_global_pose] вимкнено." + +msgid "" +"[SkeletonProfile] for retargeting bones with names matching the bone list." +msgstr "" +"[SkeletonProfile] для перенацілювання кісток із назвами, що відповідають " +"списку кісток." + +msgid "" +"If [code]false[/code], in case the target skeleton has fewer bones than the " +"source skeleton, the source bone parent's transform will be ignored.\n" +"Instead, it is possible to retarget between models with different body " +"shapes, and position, rotation, and scale can be retargeted separately.\n" +"If [code]true[/code], retargeting is performed taking into account global " +"pose.\n" +"In case the target skeleton has fewer bones than the source skeleton, the " +"source bone parent's transform is taken into account. However, bone length " +"between skeletons must match exactly, if not, the bones will be forced to " +"expand or shrink.\n" +"This is useful for using dummy bone with length [code]0[/code] to match " +"postures when retargeting between models with different number of bones." +msgstr "" +"Якщо [code]false[/code], у випадку, якщо цільовий скелет має менше кісток, " +"ніж вихідний скелет, перетворення батьківської кістки вихідної кістки буде " +"проігноровано. \n" +"Натомість можна перенацілюватися між моделями з різними формами тіла, а " +"положення, обертання та масштаб можна перенацілювати окремо. \n" +"Якщо [code]true[/code], ретаргетинг виконується з урахуванням глобальної " +"позиції. \n" +"Якщо цільовий скелет має менше кісток, ніж вихідний скелет, до уваги береться " +"перетворення вихідної кістки. Однак довжина кісток між скелетами повинна " +"точно збігатися, інакше кістки будуть змушені розширюватися або " +"зменшуватися. \n" +"Це корисно для використання фіктивної кістки довжиною [code]0[/code], щоб " +"узгодити пози під час перенацілювання між моделями з різною кількістю кісток." + +msgid "If set, allows to retarget the position." +msgstr "Якщо встановлено, дозволяє перенацілювати позицію." + +msgid "If set, allows to retarget the rotation." +msgstr "Якщо встановлено, дозволяє перенацілити обертання." + +msgid "If set, allows to retarget the scale." +msgstr "Якщо встановлено, дозволяє змінити націлювання масштабу." + +msgid "If set, allows to retarget the position/rotation/scale." +msgstr "" +"Якщо встановлено, дозволяє змінити націлювання позиції/обертання/масштабу." + msgid "Represents a straight ribbon-shaped [PrimitiveMesh] with variable width." msgstr "Представляє пряму стрічкову форму [PrimitiveMesh] зі змінною шириною." @@ -122802,6 +153024,17 @@ msgstr "" msgid "3D Particle trails" msgstr "3Д Стежки частинок" +msgid "" +"Determines the size of the ribbon along its length. The size of a particular " +"section segment is obtained by multiplying the baseline [member size] by the " +"value of this curve at the given distance. For values smaller than [code]0[/" +"code], the faces will be inverted. Should be a unit [Curve]." +msgstr "" +"Визначає розмір стрічки по довжині. Розмір конкретного сегмента перетину " +"отримується шляхом множення базової лінії [розміру елемента] на значення цієї " +"кривої на заданій відстані. Для значень, менших за [code]0[/code], грані " +"будуть інвертовані. Має бути одиницею [Крива]." + msgid "The length of a section of the ribbon." msgstr "Довжина секції стрічки." @@ -122859,25 +153092,25 @@ msgid "" "[RichTextEffect], it will continuously process the effect unless the project " "is paused. This may impact battery life negatively." msgstr "" -"Призначений для користувача ефект [RichTextLabel], який можна завантажити в " -"інспекторі [RichTextLabel] або за допомогою [метод RichTextLabel." -"install_effect].\n" -"[b]Note:[/b] Для [RichTextEffect], щоб бути зрозумілим, тег BBCode повинен " -"бути визначений як змінний учасник, який називається [code]bbcode[/code] в " -"скрипті.\n" -"[блоки коду]\n" -"[Електронний запис]\n" -"Нема `[example]Some text[/example]`\n" -"код товару:\n" -"[/gdscript]\n" -"[csharp Skip-lint]\n" -"(Українська) `[example]Some text[/example]`\n" -"string bbcode = \"example\";\n" -"[/csharp]\n" -"[/codeblocks]\n" -"[b]Примітка:[/b] Як тільки [RichTextLabel] містить принаймні один " -"[RichTextEffect], він буде безперервно обробляти ефект, якщо проект збуджена. " -"Це може негативно вплинути на життя акумулятора." +"Спеціальний ефект для [RichTextLabel], який можна завантажити в інспекторі " +"[RichTextLabel] або за допомогою [методу RichTextLabel.install_effect]. \n" +"[b]Примітка:[/b] Щоб використовувати [RichTextEffect], тег BBCode має бути " +"визначений як змінна-член під назвою [code]bbcode[/code] у сценарії. \n" +"[codeblocks] \n" +"[gdscript skip-lint] \n" +"# RichTextEffect можна буде використовувати так: `[example]Деякий текст[/" +"example]` \n" +"var bbcode = \"example\" \n" +"[/gdscript] \n" +"[csharp skip-lint] \n" +"// RichTextEffect можна буде використовувати так: `[example]Деякий текст[/" +"example]` \n" +"рядок bbcode = \"example\"; \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка: [/b] Щойно [RichTextLabel] містить принаймні один " +"[RichTextEffect], він безперервно оброблятиме ефект, якщо проект не " +"призупинено. Це може негативно вплинути на термін служби акумулятора." msgid "RichTextEffect test project (third-party)" msgstr "Тестовий проект RichTextEffect (сторонній)" @@ -122900,6 +153133,60 @@ msgstr "" "Контроль для відображення тексту, який може містити різні стилі шрифтів, " "зображення та базове форматування." +msgid "" +"A control for displaying text that can contain custom fonts, images, and " +"basic formatting. [RichTextLabel] manages these as an internal tag stack. It " +"also adapts itself to given width/heights.\n" +"[b]Note:[/b] [method newline], [method push_paragraph], [code]\"\\n\"[/code], " +"[code]\"\\r\\n\"[/code], [code]p[/code] tag, and alignment tags start a new " +"paragraph. Each paragraph is processed independently, in its own BiDi " +"context. If you want to force line wrapping within paragraph, any other line " +"breaking character can be used, for example, Form Feed (U+000C), Next Line " +"(U+0085), Line Separator (U+2028).\n" +"[b]Note:[/b] Assignments to [member text] clear the tag stack and reconstruct " +"it from the property's contents. Any edits made to [member text] will erase " +"previous edits made from other manual sources such as [method append_text] " +"and the [code]push_*[/code] / [method pop] methods.\n" +"[b]Note:[/b] RichTextLabel doesn't support entangled BBCode tags. For " +"example, instead of using [code skip-lint][b]bold[i]bold italic[/b]italic[/i]" +"[/code], use [code skip-lint][b]bold[i]bold italic[/i][/b][i]italic[/i][/" +"code].\n" +"[b]Note:[/b] [code]push_*/pop_*[/code] functions won't affect BBCode.\n" +"[b]Note:[/b] Unlike [Label], [RichTextLabel] doesn't have a [i]property[/i] " +"to horizontally align text to the center. Instead, enable [member " +"bbcode_enabled] and surround the text in a [code skip-lint][center][/code] " +"tag as follows: [code skip-lint][center]Example[/center][/code]. There is " +"currently no built-in way to vertically align text either, but this can be " +"emulated by relying on anchors/containers and the [member fit_content] " +"property." +msgstr "" +"Елемент керування для відображення тексту, який може містити власні шрифти, " +"зображення та базове форматування. [RichTextLabel] керує ними як внутрішнім " +"стеком тегів. Він також адаптується до заданої ширини/висоти. \n" +"[b]Примітка: [/b] [method newline], [method push_paragraph], [code]\"\\n\"[/" +"code], [code]\"\\r\\n\"[/code], тег [code]p[/code] і теги вирівнювання " +"починають новий абзац. Кожен абзац обробляється незалежно, у власному " +"контексті BiDi. Якщо ви хочете примусово перенести рядок у абзац, можна " +"використати будь-який інший символ розриву рядка, наприклад, «Передача форми» " +"(U+000C), «Наступний рядок» (U+0085), роздільник рядка (U+2028). \n" +"[b]Примітка: [/b] Присвоєння [member text] очищає стек тегів і реконструює " +"його за вмістом властивості. Будь-які зміни, внесені до [member text], " +"видаляють попередні редагування, внесені з інших ручних джерел, таких як " +"[method append_text] і методи [code]push_*[/code] / [method pop]. \n" +"[b]Примітка:[/b] RichTextLabel не підтримує заплутані теги BBCode. Наприклад, " +"замість використання [code skip-lint][b]жирний[i]жирний курсив[/b]курсив[/i][/" +"code] використовуйте [code skip-lint][b]жирний[i]жирний курсив[/i][/b]" +"[i]курсив[/i][/code]. \n" +"[b]Примітка: [/b] функції [code]push_*/pop_*[/code] не впливатимуть на " +"BBCode. \n" +"[b]Примітка.[/b] На відміну від [Label], [RichTextLabel] не має " +"[i]властивості[/i] для горизонтального вирівнювання тексту по центру. " +"Натомість увімкніть [member bbcode_enabled] і обведіть текст у тезі [code " +"skip-lint][center][/code] таким чином: [code skip-lint][center]Приклад[/" +"center][/code]. Наразі також немає вбудованого способу вертикального " +"вирівнювання тексту, але це можна імітувати, покладаючись на прив’язки/" +"контейнери та властивість [member fit_content]." + msgid "Rich Text Label with BBCode Demo" msgstr "Багатий текст етикетки з демо-демо" @@ -122967,6 +153254,108 @@ msgstr "" "показувати знову, якщо етикетка переокремлюється. Тим не менш, налаштування " "[пам'ятний текст] на порожній [String] також очищає стек." +msgid "" +"Returns the line number of the character position provided. Line and " +"character numbers are both zero-indexed.\n" +"[b]Note:[/b] If [member threaded] is enabled, this method returns a value for " +"the loaded part of the document. Use [method is_finished] or [signal " +"finished] to determine whether document is fully loaded." +msgstr "" +"Повертає номер рядка наданої позиції символу. Номери рядків і символів мають " +"нульовий індекс. \n" +"[b]Примітка.[/b] Якщо [member threaded] увімкнено, цей метод повертає " +"значення для завантаженої частини документа. Використовуйте [method " +"is_finished] або [signal finished], щоб визначити, чи повністю завантажено " +"документ." + +msgid "" +"Returns the paragraph number of the character position provided. Paragraph " +"and character numbers are both zero-indexed.\n" +"[b]Note:[/b] If [member threaded] is enabled, this method returns a value for " +"the loaded part of the document. Use [method is_finished] or [signal " +"finished] to determine whether document is fully loaded." +msgstr "" +"Повертає номер абзацу наданої позиції символу. Номери абзаців і символів " +"мають нульовий індекс. \n" +"[b]Примітка.[/b] Якщо [member threaded] увімкнено, цей метод повертає " +"значення для завантаженої частини документа. Використовуйте [method " +"is_finished] або [signal finished], щоб визначити, чи повністю завантажено " +"документ." + +msgid "" +"Returns the height of the content.\n" +"[b]Note:[/b] If [member threaded] is enabled, this method returns a value for " +"the loaded part of the document. Use [method is_finished] or [signal " +"finished] to determine whether document is fully loaded." +msgstr "" +"Повертає висоту вмісту. \n" +"[b]Примітка.[/b] Якщо [member threaded] увімкнено, цей метод повертає " +"значення для завантаженої частини документа. Використовуйте [method " +"is_finished] або [signal finished], щоб визначити, чи повністю завантажено " +"документ." + +msgid "" +"Returns the width of the content.\n" +"[b]Note:[/b] If [member threaded] is enabled, this method returns a value for " +"the loaded part of the document. Use [method is_finished] or [signal " +"finished] to determine whether document is fully loaded." +msgstr "" +"Повертає ширину вмісту. \n" +"[b]Примітка.[/b] Якщо [member threaded] увімкнено, цей метод повертає " +"значення для завантаженої частини документа. Використовуйте [method " +"is_finished] або [signal finished], щоб визначити, чи повністю завантажено " +"документ." + +msgid "" +"Returns the total number of lines in the text. Wrapped text is counted as " +"multiple lines.\n" +"[b]Note:[/b] If [member visible_characters_behavior] is set to [constant " +"TextServer.VC_CHARS_BEFORE_SHAPING] only visible wrapped lines are counted.\n" +"[b]Note:[/b] If [member threaded] is enabled, this method returns a value for " +"the loaded part of the document. Use [method is_finished] or [signal " +"finished] to determine whether document is fully loaded." +msgstr "" +"Повертає загальну кількість рядків у тексті. Перенесений текст зараховується " +"як кілька рядків. \n" +"[b]Примітка.[/b] Якщо [member visible_characters_behavior] встановлено на " +"[constant TextServer.VC_CHARS_BEFORE_SHAPING], зараховуються лише видимі " +"обернуті рядки. \n" +"[b]Примітка.[/b] Якщо [member threaded] увімкнено, цей метод повертає " +"значення для завантаженої частини документа. Використовуйте [method " +"is_finished] або [signal finished], щоб визначити, чи повністю завантажено " +"документ." + +msgid "" +"Returns the vertical offset of the line found at the provided index.\n" +"[b]Note:[/b] If [member threaded] is enabled, this method returns a value for " +"the loaded part of the document. Use [method is_finished] or [signal " +"finished] to determine whether document is fully loaded." +msgstr "" +"Повертає вертикальне зміщення лінії, знайденої за наданим індексом. \n" +"[b]Примітка.[/b] Якщо [member threaded] увімкнено, цей метод повертає " +"значення для завантаженої частини документа. Використовуйте [method " +"is_finished] або [signal finished], щоб визначити, чи повністю завантажено " +"документ." + +msgid "" +"Returns the indexes of the first and last visible characters for the given " +"[param line], as a [Vector2i].\n" +"[b]Note:[/b] If [member visible_characters_behavior] is set to [constant " +"TextServer.VC_CHARS_BEFORE_SHAPING] only visible wrapped lines are counted.\n" +"[b]Note:[/b] If [member threaded] is enabled, this method returns a value for " +"the loaded part of the document. Use [method is_finished] or [signal " +"finished] to determine whether document is fully loaded." +msgstr "" +"Повертає індекси першого й останнього видимих символів для заданого [рядка " +"параметрів] у вигляді [Vector2i]. \n" +"[b]Примітка.[/b] Якщо [member visible_characters_behavior] встановлено на " +"[constant TextServer.VC_CHARS_BEFORE_SHAPING], зараховуються лише видимі " +"обернуті рядки. \n" +"[b]Примітка.[/b] Якщо [member threaded] увімкнено, цей метод повертає " +"значення для завантаженої частини документа. Використовуйте [method " +"is_finished] або [signal finished], щоб визначити, чи повністю завантажено " +"документ." + msgid "" "Returns the [PopupMenu] of this [RichTextLabel]. By default, this menu is " "displayed when right-clicking on the [RichTextLabel].\n" @@ -123019,7 +153408,7 @@ msgstr "" "Ви можете додати власні пункти меню або видалити стандартні. Переконайтеся, " "що ваші ідентифікатори не конфліктують зі стандартними (див. [enum " "MenuItems]). Наприклад:\n" -"[кодові блоки]\n" +"[codeblocks]\n" "[gdscript]\n" "func _ready():\n" " var menu = get_menu()\n" @@ -123027,12 +153416,12 @@ msgstr "" " menu.remove_item(MENU_SELECT_ALL)\n" " # Додайте спеціальні елементи.\n" " menu.add_separator()\n" -" menu.add_item(\"Дублікат тексту\", MENU_MAX + 1)\n" +" menu.add_item(\"Duplicate Text\", MENU_MAX + 1)\n" " # Підключити зворотній дзвінок.\n" " menu.id_pressed.connect(_on_item_pressed)\n" "\n" "func _on_item_pressed(id):\n" -" якщо id == MENU_MAX + 1:\n" +" if id == MENU_MAX + 1:\n" " add_text(\"\\n\" + get_parsed_text())\n" "[/gdscript]\n" "[csharp]\n" @@ -123043,7 +153432,7 @@ msgstr "" " menu.RemoveItem(RichTextLabel.MenuItems.SelectAll);\n" " // Додати власні елементи.\n" " menu.AddSeparator();\n" -" menu.AddItem(\"Дублікат тексту\", RichTextLabel.MenuItems.Max + 1);\n" +" menu.AddItem(\"Duplicate Text\", RichTextLabel.MenuItems.Max + 1);\n" " // Додати обробник події.\n" " menu.IdPressed += OnItemPressed;\n" "}\n" @@ -123069,6 +153458,18 @@ msgstr "" "Повертає загальну кількість абзаців (новини або [code]p[/code] міток у " "текстових тегах мітки міток). Розглянуто текст як один пункт." +msgid "" +"Returns the vertical offset of the paragraph found at the provided index.\n" +"[b]Note:[/b] If [member threaded] is enabled, this method returns a value for " +"the loaded part of the document. Use [method is_finished] or [signal " +"finished] to determine whether document is fully loaded." +msgstr "" +"Повертає вертикальне зміщення абзацу за вказаним індексом. \n" +"[b]Примітка.[/b] Якщо [member threaded] увімкнено, цей метод повертає " +"значення для завантаженої частини документа. Використовуйте [method " +"is_finished] або [signal finished], щоб визначити, чи повністю завантажено " +"документ." + msgid "Returns the text without BBCode mark-up." msgstr "Повертаємо текст без розмітки BBCode." @@ -123082,6 +153483,13 @@ msgstr "" "Повертає поточний вибір індексу першого символу, якщо підбір діє, [code]-1[/" "code]. Чи не включають Бі-Біоде." +msgid "" +"Returns the current selection vertical line offset if a selection is active, " +"[code]-1.0[/code] otherwise." +msgstr "" +"Повертає поточне вертикальне зміщення виділеної лінії, якщо виділення " +"активне, [code]-1.0[/code] інакше." + msgid "" "Returns the current selection last character index if a selection is active, " "[code]-1[/code] otherwise. Does not include BBCodes." @@ -123096,6 +153504,85 @@ msgstr "" "Повертає загальну кількість символів з текстових тегів. Чи не включають Бі-" "Біоде." +msgid "" +"Returns the number of visible lines.\n" +"[b]Note:[/b] If [member threaded] is enabled, this method returns a value for " +"the loaded part of the document. Use [method is_finished] or [signal " +"finished] to determine whether document is fully loaded." +msgstr "" +"Повертає кількість видимих рядків. \n" +"[b]Примітка.[/b] Якщо [member threaded] увімкнено, цей метод повертає " +"значення для завантаженої частини документа. Використовуйте [method " +"is_finished] або [signal finished], щоб визначити, чи повністю завантажено " +"документ." + +msgid "" +"Returns the number of visible paragraphs. A paragraph is considered visible " +"if at least one of its lines is visible.\n" +"[b]Note:[/b] If [member threaded] is enabled, this method returns a value for " +"the loaded part of the document. Use [method is_finished] or [signal " +"finished] to determine whether document is fully loaded." +msgstr "" +"Повертає кількість видимих абзаців. Абзац вважається видимим, якщо видно хоча " +"б один його рядок. \n" +"[b]Примітка.[/b] Якщо [member threaded] увімкнено, цей метод повертає " +"значення для завантаженої частини документа. Використовуйте [method " +"is_finished] або [signal finished], щоб визначити, чи повністю завантажено " +"документ." + +msgid "" +"Installs a custom effect. This can also be done in the Inspector through the " +"[member custom_effects] property. [param effect] should be a valid " +"[RichTextEffect].\n" +"[b]Example:[/b] With the following script extending from [RichTextEffect]:\n" +"[codeblock]\n" +"# effect.gd\n" +"class_name MyCustomEffect\n" +"extends RichTextEffect\n" +"\n" +"var bbcode = \"my_custom_effect\"\n" +"\n" +"# ...\n" +"[/codeblock]\n" +"The above effect can be installed in [RichTextLabel] from a script:\n" +"[codeblock]\n" +"# rich_text_label.gd\n" +"extends RichTextLabel\n" +"\n" +"func _ready():\n" +" install_effect(MyCustomEffect.new())\n" +"\n" +" # Alternatively, if not using `class_name` in the script that extends " +"RichTextEffect:\n" +" install_effect(preload(\"res://effect.gd\").new())\n" +"[/codeblock]" +msgstr "" +"Встановлює спеціальний ефект. Це також можна зробити в інспекторі за " +"допомогою властивості [member custom_effects]. [param effect] має бути " +"дійсним [RichTextEffect]. \n" +"[b]Приклад:[/b] З таким сценарієм, що походить від [RichTextEffect]: \n" +"[codeblock] \n" +"# ефект.gd \n" +"class_name MyCustomEffect \n" +"extends RichTextEffect \n" +"\n" +"var bbcode = \"my_custom_effect\" \n" +"\n" +"# ... \n" +"[/codeblock] \n" +"Наведений вище ефект можна встановити в [RichTextLabel] зі сценарію: \n" +"[codeblock] \n" +"# rich_text_label.gd \n" +"extends RichTextLabel \n" +"\n" +"func _ready(): \n" +" install_effect(MyCustomEffect.new()) \n" +"\n" +" # Альтернативно, якщо не використовується `class_name` у сценарії, який " +"розширює RichTextEffect: \n" +" install_effect(preload(\"res://effect.gd\").new()) \n" +"[/codeblock]" + msgid "Invalidates [param paragraph] and all subsequent paragraphs cache." msgstr "Оцінювання [param абзац] і всі наступні абзаци кешу." @@ -123107,6 +153594,9 @@ msgstr "" "Якщо [пам'ятна нитка] включена, повертає [code]true[/code], якщо фонова нитка " "завершила обробку тексту, інакше завжди повертає [code]true[/code]." +msgid "Use [method is_finished] instead." +msgstr "Натомість використовуйте [method is_finished]." + msgid "Adds a newline tag to the tag stack." msgstr "Додати новий тег в мітку." @@ -123507,6 +153997,17 @@ msgstr "" msgid "If [code]true[/code], text processing is done in a background thread." msgstr "Якщо [code]true[/code], обробка тексту здійснюється на фоновій нитки." +msgid "" +"Triggered when the document is fully loaded.\n" +"[b]Note:[/b] This can happen before the text is processed for drawing. " +"Scrolling values may not be valid until the document is drawn for the first " +"time after this signal." +msgstr "" +"Запускається, коли документ повністю завантажено. \n" +"[b]Примітка.[/b] Це може статися до того, як текст буде оброблено для " +"малювання. Значення прокручування можуть бути недійсними, доки документ не " +"буде намальовано вперше після цього сигналу." + msgid "" "Triggered when the user clicks on content between meta (URL) tags. If the " "meta is defined in BBCode, e.g. [code skip-lint][url={\"key\": " @@ -123528,25 +154029,25 @@ msgid "" "[/gdscript]\n" "[/codeblocks]" msgstr "" -"Випробувано, коли користувач натискає на вміст між тегами мета (URL). Якщо " -"мета визначається в Бі-Біоді, наприклад, [код пропустити-lint][url={\"key\": " -"\"value\"}]Text[/url][/code], то параметр для цього сигналу завжди буде " -"[String] типу. Якщо потрібен конкретний тип або об'єкт, [метод] повинен бути " -"використаний для вручну вставки даних в мітку. Крім того, ви можете " -"конвертувати вхід [String] до потрібного типу на основі його вмісту " -"(наприклад, виклик [метод JSON.parse] на ньому).\n" -"Наприклад, наступний метод може бути підключений до [signal meta_clicked], " -"щоб відкрити натискані URL-адреси за допомогою веб-браузера за замовчуванням " -"користувача:\n" -"[блоки коду]\n" -"[видання]\n" -"Нема Цей припускає сигнал RichTextLabel's `meta_clicked` підключений до\n" -"# функція нижче за допомогою діалогу з'єднання сигналів.\n" -"Func _richtextlabel_on_meta_clicked(meta):\n" -"# `meta` є Variant type, тому перетворюйте його до String, щоб уникнути " -"помилок у скрипті в режимі 24/7.\n" -"OS.shell_open(str(мета))\n" -"[/gdscript]\n" +"Активується, коли користувач натискає вміст між мета-тегами (URL). Якщо мета " +"визначено в BBCode, напр. [code skip-lint][url={\"key\": \"value\"}]Текст[/" +"url][/code], тоді параметр для цього сигналу завжди матиме тип [String]. Якщо " +"потрібен певний тип або об’єкт, потрібно використовувати метод [method " +"push_meta], щоб вручну вставити дані в стек тегів. Крім того, ви можете " +"перетворити вхідні дані [String] у потрібний тип на основі його вмісту " +"(наприклад, виклик [method JSON.parse] для нього). \n" +"Наприклад, такий метод можна підключити до [signal meta_clicked], щоб " +"відкривати URL-адреси, за якими клацнув користувач, за допомогою веб-" +"переглядача за замовчуванням: \n" +"[codeblocks] \n" +"[gdscript] \n" +"# Це припускає, що сигнал `meta_clicked` RichTextLabel був підключений до \n" +"# функція нижче за допомогою діалогового вікна підключення сигналу. \n" +"func _richtextlabel_on_meta_clicked(meta): \n" +" # `meta` має тип Variant, тому перетворіть його на String, щоб уникнути " +"помилок сценарію під час виконання. \n" +" OS.shell_open(str(meta)) \n" +"[/gdscript] \n" "[/codeblocks]" msgid "Triggers when the mouse exits a meta tag." @@ -123925,6 +154426,23 @@ msgstr "" "буде встановлена в якості заданої довжини вектора. Це корисно для стрибків " "поведінки." +msgid "" +"Damps the body's rotation. By default, the body will use the [member " +"ProjectSettings.physics/2d/default_angular_damp] setting or any value " +"override set by an [Area2D] the body is in. Depending on [member " +"angular_damp_mode], you can set [member angular_damp] to be added to or to " +"replace the body's damping value.\n" +"See [member ProjectSettings.physics/2d/default_angular_damp] for more details " +"about damping." +msgstr "" +"Гасить обертання тіла. За замовчуванням тіло використовуватиме параметр " +"[member ProjectSettings.physics/2d/default_angular_damp] або будь-яке " +"перевизначення значення, встановлене [Area2D], у якому знаходиться тіло. " +"Залежно від [member angular_damp_mode], ви можете встановити [member " +"angular_damp], щоб додати або замінити значення демпфування тіла. \n" +"Перегляньте [member ProjectSettings.physics/2d/default_angular_damp], щоб " +"дізнатися більше про демпфування." + msgid "" "If [code]true[/code], the body can enter sleep mode when there is no " "movement. See [member sleeping]." @@ -124042,6 +154560,16 @@ msgstr "" "Для тіла, який завжди заморожений, використовуйте [StaticBody2D] або " "[AnimatableBody2D]." +msgid "" +"Multiplies the gravity applied to the body. The body's gravity is calculated " +"from the [member ProjectSettings.physics/2d/default_gravity] project setting " +"and/or any additional gravity vector applied by [Area2D]s." +msgstr "" +"Збільшує силу тяжіння, прикладену до тіла. Сила тяжіння тіла обчислюється на " +"основі налаштувань проекту [member ProjectSettings.physics/2d/" +"default_gravity] та/або будь-якого додаткового вектора гравітації, " +"застосованого [Area2D]." + msgid "" "The body's moment of inertia. This is like mass, but for rotation: it " "determines how much torque it takes to rotate the body. The moment of inertia " @@ -124074,38 +154602,56 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Момент інерції тіла. Це як маса, але для обертання: він визначає, скільки " -"крутного моменту потрібно обертати тіло. На даний момент інерції, як правило, " -"комп'ютеризований автоматично від маси і форми, але це властивість дозволяє " -"встановити індивідуальне значення.\n" -"Якщо встановити до [code]0[/code], інерція автоматично комп’ютерна (за " -"замовчуванням значення).\n" -"[b]Примітка:[/b] Це значення не змінюється, коли інерція автоматично " -"обчислюється. Використовуйте [PhysicsServer2D] для отримання комп’ютерної " -"інерції.\n" -"[блоки коду]\n" -"[видання]\n" -"@onready вар кулі = $Ball\n" +"Момент інерції тіла. Це як маса, але для обертання: вона визначає, який " +"крутний момент потрібен для обертання тіла. Момент інерції зазвичай " +"обчислюється автоматично на основі маси та форм, але ця властивість дозволяє " +"встановити власне значення. \n" +"Якщо встановлено значення [code]0[/code], інерція обчислюється автоматично " +"(значення за замовчуванням). \n" +"[b]Примітка.[/b] Це значення не змінюється, коли інерція обчислюється " +"автоматично. Використовуйте [PhysicsServer2D], щоб отримати обчислену " +"інерцію. \n" +"[codeblocks] \n" +"[gdscript] \n" +"@onready var ball = $Ball \n" "\n" -"Func get_ball_inertia():\n" -"Увійти 1.0 / PhysServer2D.body_get_direct_state(ball.get_rid())." -"inverse_inertia\n" -"[/gdscript]\n" -"[csharp]\n" -"Приватне RigidBody2D Футбол;\n" +"функція get_ball_inertia(): \n" +" return 1.0 / PhysicsServer2D.body_get_direct_state(ball.get_rid())." +"inverse_inertia \n" +"[/gdscript] \n" +"[csharp] \n" +"private RigidBody2D _ball;\n" "\n" -"public override _Читати()\n" -"Довідник\n" -"_ball = GetNode <RigidBody2D>(\"Ball\");\n" -"Про нас\n" +"public override void _Ready() \n" +"{\n" +" _ball = GetNode<RigidBody2D>(\"Ball\"); \n" +"}\n" "\n" -"приватний float GetBallInertia()\n" -"Довідник\n" -"Увійти 1.0f / PhysServer2D.BodyGetDirectState(_ball.GetRid()). Інверситет;\n" -"Про нас\n" -"[/csharp]\n" +"private float GetBallInertia() \n" +"{\n" +" return 1.0f / PhysicsServer2D.BodyGetDirectState(_ball.GetRid())." +"InverseInertia; \n" +"}\n" +"[/csharp] \n" "[/codeblocks]" +msgid "" +"Damps the body's movement. By default, the body will use the [member " +"ProjectSettings.physics/2d/default_linear_damp] setting or any value override " +"set by an [Area2D] the body is in. Depending on [member linear_damp_mode], " +"you can set [member linear_damp] to be added to or to replace the body's " +"damping value.\n" +"See [member ProjectSettings.physics/2d/default_linear_damp] for more details " +"about damping." +msgstr "" +"Гасить рухи тіла. За замовчуванням тіло використовуватиме параметр [member " +"ProjectSettings.physics/2d/default_linear_damp] або будь-яке перевизначення " +"значення, встановлене [Area2D], у якому знаходиться тіло. Залежно від [member " +"linear_damp_mode], ви можете встановити [member linear_damp], щоб додати або " +"замінити значення демпфування тіла. \n" +"Перегляньте [member ProjectSettings.physics/2d/default_linear_damp], щоб " +"дізнатися більше про демпфування." + msgid "" "The body's linear velocity in pixels per second. Can be used sporadically, " "but [b]don't set this every frame[/b], because physics may run in another " @@ -124499,37 +155045,56 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Момент інерції тіла. Це як маса, але для обертання: він визначає, скільки " -"крутного моменту потрібно обертати тіло на кожній осі. На даний момент " -"інерції, як правило, комп'ютеризований автоматично від маси і форми, але це " -"властивість дозволяє встановити індивідуальне значення.\n" -"Якщо встановити до [constant Vector3.ZERO], інерція автоматично комп’ютерна " -"(значення за замовчуванням).\n" -"[b]Примітка:[/b] Це значення не змінюється, коли інерція автоматично " -"обчислюється. Використовуйте [PhysicsServer3D] для отримання комп’ютерної " -"інерції.\n" -"[блоки коду]\n" -"[видання]\n" -"@onready вар кулі = $Ball\n" +"Момент інерції тіла. Це схоже на масу, але для обертання: воно визначає, який " +"крутний момент потрібен для обертання тіла навколо кожної осі. Момент інерції " +"зазвичай обчислюється автоматично на основі маси та форм, але ця властивість " +"дозволяє встановити власне значення. \n" +"Якщо встановлено значення [constant Vector3.ZERO], інерція обчислюється " +"автоматично (значення за замовчуванням). \n" +"[b]Примітка.[/b] Це значення не змінюється, коли інерція обчислюється " +"автоматично. Використовуйте [PhysicsServer3D], щоб отримати обчислену " +"інерцію. \n" +"[codeblocks] \n" +"[gdscript] \n" +"@onready var ball = $Ball \n" "\n" -"Func get_ball_inertia():\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"[/gdscript]\n" -"[csharp]\n" -"Приват24 Футбол;\n" +"функція get_ball_inertia(): \n" +" return PhysicsServer3D.body_get_direct_state(ball.get_rid())." +"inverse_inertia.inverse() \n" +"[/gdscript] \n" +"[csharp] \n" +"private RigidBody3D _ball;\n" "\n" -"public override _Читати()\n" -"Довідник\n" -"_ball = GetNode <RigidBody3D>(\"Ball\");\n" -"Про нас\n" +"public override void _Ready() \n" +"{\n" +" _ball = GetNode<RigidBody3D>(\"Ball\"); \n" +"}\n" "\n" -"приватний Вектор3 GetBallInertia()\n" -"Довідник\n" -"JavaScript licenses API Веб-сайт InverseInertia.Inverse();\n" -"Про нас\n" -"[/csharp]\n" +"private Vector3 GetBallInertia() \n" +"{\n" +" return PhysicsServer3D.BodyGetDirectState(_ball.GetRid()).InverseInertia." +"Inverse(); \n" +"}\n" +"[/csharp] \n" "[/codeblocks]" +msgid "" +"Damps the body's movement. By default, the body will use the [member " +"ProjectSettings.physics/3d/default_linear_damp] project setting or any value " +"override set by an [Area3D] the body is in. Depending on [member " +"linear_damp_mode], you can set [member linear_damp] to be added to or to " +"replace the body's damping value.\n" +"See [member ProjectSettings.physics/3d/default_linear_damp] for more details " +"about damping." +msgstr "" +"Гасить рухи тіла. За замовчуванням тіло використовуватиме налаштування " +"проекту [member ProjectSettings.physics/3d/default_linear_damp] або будь-яке " +"перевизначення значення, встановлене [Area3D], у якому знаходиться тіло. " +"Залежно від [member linear_damp_mode], ви можете встановити [member " +"linear_damp], щоб додати або замінити значення демпфування тіла. \n" +"Перегляньте [member ProjectSettings.physics/3d/default_linear_damp], щоб " +"дізнатися більше про демпфування." + msgid "" "Emitted when a collision with another [PhysicsBody3D] or [GridMap] occurs. " "Requires [member contact_monitor] to be set to [code]true[/code] and [member " @@ -124796,6 +155361,27 @@ msgstr "" "від ненадійних джерел, щоб уникнути загрози безпеки, таких як віддалене " "виконання коду." +msgid "" +"The callback to execute when receiving authentication data sent via [method " +"send_auth]. If the [Callable] is empty (default), peers will be automatically " +"accepted as soon as they connect." +msgstr "" +"Зворотний виклик для виконання під час отримання даних автентифікації, " +"надісланих через [метод send_auth]. Якщо поле [Callable] порожнє (за " +"замовчуванням), однорангові вузли будуть автоматично прийняті, щойно вони " +"з’єднаються." + +msgid "" +"If set to a value greater than [code]0.0[/code], the maximum duration in " +"seconds peers can stay in the authenticating state, after which the " +"authentication will automatically fail. See the [signal peer_authenticating] " +"and [signal peer_authentication_failed] signals." +msgstr "" +"Якщо встановлено значення більше за [code]0.0[/code], максимальна тривалість " +"у секундах однорангові вузли можуть залишатися в стані автентифікації, після " +"чого автентифікація автоматично завершується помилкою. Перегляньте сигнали " +"[signal peer_authenticating] і [signal peer_authentication_failed]." + msgid "" "Maximum size of each delta packet. Higher values increase the chance of " "receiving full updates in a single frame, but also the chance of causing " @@ -125240,7 +155826,7 @@ msgstr "" "двигуном, і, таким чином, заряджається ігровою петлею." msgid "SceneTree" -msgstr "Секс машини" +msgstr "SceneTree" msgid "" "Calls [param method] on each node inside this tree added to the given [param " @@ -125286,22 +155872,23 @@ msgid "" "[code]MethodName[/code] class to avoid allocating a new [StringName] on each " "call." msgstr "" -"Виклики вказаного [param метод] на кожному вершині всередині цього дерева " -"додано до даної [param group]. Використовуйте [param прапорці] для " -"налаштування поведінки цього способу (див. [enum GroupCallFlags]). Додаткові " -"аргументи для [param метод] можуть бути передані в кінці цього методу. " -"Відсутні випадки, які не можуть викликати [параметровий метод] (наприклад, " -"метод не існує або аргументи не відповідають) ігноруються.\n" -"[блокування коду]\n" -"Нема Дзвінки \"приховати\" до всіх вузлів групи \"повідомості\", в кінці " -"рамки і в зворотному порядку дерева.\n" -".call_group_flags()\n" -"СценаТрій.GROUP_CALL_DEFERRED HOME PAGE CATALOG WIDGETS СТАТИСТИКА\n" -"\"Анемії\", \"Приховати\")\n" -"[/codeblock]\n" -"[b]Note:[/b] У C# [param метод] повинні бути в змії_case при зверненні до " -"вбудованих методів Godot. За допомогою імен, виставлених в [code]MethodName[/" -"code] класу, щоб уникнути виділення нового [StringName] на кожному дзвінку." +"Викликає вказаний [метод param] для кожного вузла всередині цього дерева, " +"доданого до заданої [param group]. Використовуйте [param flags], щоб " +"налаштувати поведінку цього методу (див. [enum GroupCallFlags]). Додаткові " +"аргументи для [param method] можна передати в кінці цього методу. Вузли, які " +"не можуть викликати [param method] (через те, що метод не існує або аргументи " +"не збігаються), ігноруються. \n" +"[codeblock] \n" +"# Виклики «сховати» до всіх вузлів групи «вороги» в кінці кадру та у " +"зворотному порядку дерева. \n" +"get_tree().call_group_flags( \n" +" SceneTree.GROUP_CALL_FERRED | SceneTree.GROUP_CALL_REVERSE, \n" +" \"enemies\", \"hide\") \n" +"[/codeblock] \n" +"[b]Примітка.[/b] У C# [param method] має бути в snake_case, коли йдеться про " +"вбудовані методи Godot. Надавайте перевагу використанню назв, представлених у " +"класі [code]MethodName[/code], щоб уникнути виділення нового [StringName] під " +"час кожного виклику." msgid "" "Changes the running scene to the one at the given [param path], after loading " @@ -125391,38 +155978,40 @@ msgid "" "updates (or [method Node._physics_process] if [param process_in_physics] is " "set to [code]true[/code])." msgstr "" -"Повернення нового [SceneTreeTimer]. Після того, як [param time_sec] в " -"секундах пропущено, таймер випромінить [значний декорTreeTimer.timeout] і " -"буде автоматично звільнено.\n" -"Якщо [param process_always] є [code]false[/code], таймер буде псуватися при " -"встановленні [пам'ятний декорTree.paused] to [code]true[/code].\n" -"Якщо [param process_in_physics] є [code]true[/code], таймер буде оновлено в " -"кінці фізики кадру, замість технологічного каркасу.\n" -"Якщо [param ігнорувати_time_scale] є [code]true[/code], таймер ігноруватиме " -"[пам'ятний двигун.time_масштабний] і оновлення з реальним, клацнув час.\n" +"Повертає новий [SceneTreeTimer]. Після того, як мине [param time_sec] у " +"секундах, таймер видасть [сигнал SceneTreeTimer.timeout] і автоматично " +"звільниться. \n" +"Якщо [param process_always] має значення [code]false[/code], таймер буде " +"призупинено, коли для [member SceneTree.paused] встановлено значення " +"[code]true[/code]. \n" +"Якщо [param process_in_physics] має значення [code]true[/code], таймер " +"оновлюватиметься в кінці кадру фізики, а не кадру процесу. \n" +"Якщо [param ignore_time_scale] має значення [code]true[/code], таймер " +"ігноруватиме [member Engine.time_scale] і оновлюватиме реальний час, що " +"минув. \n" "Цей метод зазвичай використовується для створення одноразового таймера " -"затримки, як в наступному прикладі:\n" -"[блоки коду]\n" -"[видання]\n" -"Func some_function():\n" -"Друк(\"start\")\n" -"expect get_tree().create_timer(1.0).timeout\n" -"Друк(\"end\")\n" -"[/gdscript]\n" -"[csharp]\n" -"публічна асинхронна задача SomeFunction()\n" -"Довідник\n" -"GD.Print(\"start\");\n" -"expect ToSignal(GetTree().CreateTimer(1.0f), СценаTreeTimer.SignalName." -"Timeout);\n" -"GD.Print(\"end\");\n" -"Про нас\n" -"[/csharp]\n" -"[/codeblocks]\n" -"[b]Note:[/b] Таймер завжди оновлюється [i]після[/i] всі вершини в дереві. " -"Метод вузла [метод Node._process] буде викликаний до оновлення таймера (або " -"[метод Node._physics_process], якщо [param process_in_physics] встановлюється " -"до [code]true[/code])." +"затримки, як у наступному прикладі: \n" +"[codeblocks] \n" +"[gdscript] \n" +"func some_function(): \n" +" print(\"старт\") \n" +" await get_tree().create_timer(1.0).timeout \n" +" print(\"кінець\") \n" +"[/gdscript] \n" +"[csharp] \n" +"public async Task SomeFunction() \n" +"{\n" +" GD.Print(\"початок\"); \n" +" await ToSignal(GetTree().CreateTimer(1.0f), SceneTreeTimer.SignalName." +"Timeout); \n" +" GD.Print(\"кінець\"); \n" +"}\n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка:[/b] Таймер завжди оновлюється [i]після[/i] всіх вузлів у дереві. " +"Метод [method Node._process] вузла буде викликано перед оновленням таймера " +"(або [method Node._physics_process], якщо [param process_in_physics] має " +"значення [code]true[/code])." msgid "" "Creates and returns a new [Tween] processed in this tree. The Tween will " @@ -125881,34 +156470,34 @@ msgid "" "timer (or [method Node._physics_process] if [code]process_in_physics[/code] " "in [method SceneTree.create_timer] has been set to [code]true[/code])." msgstr "" -"Один разовий таймер, керований ялинкою, який випромінює [значний час] на " -"завершення. Дивись також [Method СценаTree.create_timer].\n" -"На відміну від [Timer], він не вимагає миттєвого повідомлення вузла. Зазвичай " -"використовується для створення одноразового таймера затримки в наступному " -"прикладі:\n" -"[блоки коду]\n" -"[видання]\n" -"Func some_function():\n" -"Друк(\"Почати роботу.\")\n" -"expect get_tree().create_timer(1.0).timeout\n" -"Друк(\"Timer закінчився.\")\n" -"[/gdscript]\n" -"[csharp]\n" -"публічна асинхронна задача SomeFunction()\n" -"Довідник\n" -"GD.Print(\"Почати роботу.\");\n" -"expect ToSignal(GetTree().CreateTimer(1.0f), СценаTreeTimer.SignalName." -"Timeout);\n" -"GD.Print(\"Timer закінчився.\");\n" -"Про нас\n" -"[/csharp]\n" -"[/codeblocks]\n" -"Після того, як його час настає. Щоб зберегти таймер, ви можете зберегти " -"посилання на нього. Див. [Рефтинг].\n" -"[b]Note:[/b] Таймер обробляється після всіх вузлів в поточному кадрі, тобто " -"вершини [метод Node._process] буде викликано до таймера (або [метод Node." -"_physics_process], якщо [code]process_in_physics[/code] в [метод STee." -"create_timer] була встановлена до [code]true[/code]." +"Одноразовий таймер, керований деревом сцени, який видає [час очікування " +"сигналу] після завершення. Дивіться також [метод SceneTree.create_timer]. \n" +"На відміну від [Timer], він не вимагає створення екземпляра вузла. Зазвичай " +"використовується для створення одноразового таймера затримки, як у наступному " +"прикладі: \n" +"[codeblocks] \n" +"[gdscript] \n" +"func some_function(): \n" +" print(\"Таймер запущено.\") \n" +" awaitget_tree().create_timer(1.0).timeout \n" +" print(\"Таймер закінчився.\") \n" +"[/gdscript] \n" +"[csharp] \n" +"public async Task SomeFunction() \n" +"{\n" +" GD.Print(\"Таймер запущено.\"); \n" +" await ToSignal(GetTree().CreateTimer(1.0f), SceneTreeTimer.SignalName." +"Timeout); \n" +" GD.Print(\"Таймер закінчився.\"); \n" +"}\n" +"[/csharp] \n" +"[/codeblocks] \n" +"Таймер буде розіменовано після закінчення часу. Щоб зберегти таймер, ви " +"можете зберегти посилання на нього. Див. [RefCounted]. \n" +"[b]Примітка:[/b] Таймер обробляється після всіх вузлів у поточному кадрі, " +"тобто метод [method Node._process] вузла буде викликано перед таймером (або " +"[method Node._physics_process], якщо для [code]process_in_physics[/code] у " +"[method SceneTree.create_timer] встановлено значення [code]true[/code])." msgid "The time remaining (in seconds)." msgstr "Час, що залишився (в секундах)." @@ -125965,23 +156554,24 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Повертає назву класу, пов'язана з скриптом, якщо є один. Повертає порожній " -"рядок іншим чином.\n" -"Щоб надати скрипт глобальне ім'я, ви можете використовувати [code]class_name[/" -"code] ключове слово в GDScript і атрибут [code][GlobalClass][/code] в C#.\n" -"[блоки коду]\n" -"[видання]\n" -"Клас_name MyNode\n" -"Подовжувачі Нід\n" -"[/gdscript]\n" -"[csharp]\n" -"за допомогою Godot;\n" +"Повертає назву класу, пов’язану зі сценарієм, якщо вона є. В іншому випадку " +"повертає порожній рядок. \n" +"Щоб дати сценарію глобальне ім’я, ви можете використати ключове слово " +"[code]class_name[/code] у GDScript і атрибут [code][GlobalClass][/code] у " +"C#. \n" +"[codeblocks] \n" +"[gdscript] \n" +"ім'я_класу MyNode \n" +"extends Node \n" +"[/gdscript] \n" +"[csharp] \n" +"using Godot; \n" "\n" -"[GlobalClass]\n" -"публічний частковий клас MyNode : Node\n" -"Довідник\n" -"Про нас\n" -"[/csharp]\n" +"[GlobalClass] \n" +"public partial class MyNode : Node \n" +"{\n" +"}\n" +"[/csharp] \n" "[/codeblocks]" msgid "Returns the script's base type." @@ -125990,6 +156580,13 @@ msgstr "Повернення базового типу скрипта." msgid "Returns the default value of the specified property." msgstr "Повертає значення за замовчуванням вказаного майна." +msgid "" +"Returns a [Dictionary] mapping method names to their RPC configuration " +"defined by this script." +msgstr "" +"Повертає назви методів зіставлення [Dictionary] із їхньою конфігурацією RPC, " +"визначеною цим сценарієм." + msgid "Returns a dictionary containing constant names and their values." msgstr "Повертає словник, що містить постійні імена та їх значення." @@ -126083,26 +156680,26 @@ msgid "" msgstr "" "[ScriptCreateDialog] створює файли сценаріїв відповідно до заданого шаблону " "для певної мови сценаріїв. Стандартним використанням є налаштування його " -"полів перед викликом одного з методів [method Window.popup].\n" -"[кодові блоки]\n" -"[gdscript]\n" -"func _ready():\n" -" var dialog = ScriptCreateDialog.new();\n" -" dialog.config(\"Node\", \"res://new_node.gd\") # Для вбудованих типів.\n" +"полів перед викликом одного з методів [method Window.popup]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"func _ready(): \n" +" var dialog = ScriptCreateDialog.new(); \n" +" dialog.config(\"Node\", \"res://new_node.gd\") # Для вбудованих типів. \n" " dialog.config(\"\\\"res://base_node.gd\\\"\", \"res://derived_node.gd\") " -"# Для типів скриптів.\n" -" dialog.popup_centered()\n" -"[/gdscript]\n" -"[csharp]\n" -"public override void _Ready()\n" +"# Для типів скриптів. \n" +" dialog.popup_centered() \n" +"[/gdscript] \n" +"[csharp] \n" +"public override void _Ready() \n" "{\n" -" var dialog = new ScriptCreateDialog();\n" -" dialog.Config(\"Вузол\", \"res://NewNode.cs\"); // Для типів двигунів.\n" +" var dialog = new ScriptCreateDialog(); \n" +" dialog.Config(\"Вузол\", \"res://NewNode.cs\"); // Для типів двигунів. \n" " dialog.Config(\"\\\"res://BaseNode.cs\\\"\", \"res://DerivedNode." -"cs\"); // Для типів скриптів.\n" -" dialog.PopupCentered();\n" +"cs\"); // Для типів скриптів. \n" +" dialog.PopupCentered(); \n" "}\n" -"[/csharp]\n" +"[/csharp] \n" "[/codeblocks]" msgid "Prefills required fields to configure the ScriptCreateDialog for use." @@ -126125,6 +156722,9 @@ msgstr "" "[b]Примітка:[/b] Цей клас не повинен бути миттєвим. Замість, доступ до " "Єдиного редактора [method EditorInterface.get_script_editor]." +msgid "Returns array of breakpoints." +msgstr "Повертає масив точок зупину." + msgid "" "Returns the [ScriptEditorBase] object that the user is currently editing." msgstr "" @@ -126146,6 +156746,75 @@ msgstr "" "Повертає масив з усіма об'єктами [Script], які в даний час відкриті в " "редакторі." +msgid "" +"Opens help for the given topic. The [param topic] is an encoded string that " +"controls which class, method, constant, signal, annotation, property, or " +"theme item should be focused.\n" +"The supported [param topic] formats include [code]class_name:class[/code], " +"[code]class_method:class:method[/code], [code]class_constant:class:constant[/" +"code], [code]class_signal:class:signal[/code], [code]class_annotation:class:" +"@annotation[/code], [code]class_property:class:property[/code], and " +"[code]class_theme_item:class:item[/code], where [code]class[/code] is the " +"class name, [code]method[/code] is the method name, [code]constant[/code] is " +"the constant name, [code]signal[/code] is the signal name, [code]annotation[/" +"code] is the annotation name, [code]property[/code] is the property name, and " +"[code]item[/code] is the theme item.\n" +"[codeblock]\n" +"# Shows help for the Node class.\n" +"class_name:Node\n" +"# Shows help for the global min function.\n" +"# Global objects are accessible in the `@GlobalScope` namespace, shown here.\n" +"class_method:@GlobalScope:min\n" +"# Shows help for get_viewport in the Node class.\n" +"class_method:Node:get_viewport\n" +"# Shows help for the Input constant MOUSE_BUTTON_MIDDLE.\n" +"class_constant:Input:MOUSE_BUTTON_MIDDLE\n" +"# Shows help for the BaseButton signal pressed.\n" +"class_signal:BaseButton:pressed\n" +"# Shows help for the CanvasItem property visible.\n" +"class_property:CanvasItem:visible\n" +"# Shows help for the GDScript annotation export.\n" +"# Annotations should be prefixed with the `@` symbol in the descriptor, as " +"shown here.\n" +"class_annotation:@GDScript:@export\n" +"# Shows help for the GraphNode theme item named panel_selected.\n" +"class_theme_item:GraphNode:panel_selected\n" +"[/codeblock]" +msgstr "" +"Відкриває довідку для заданої теми. [param topic] — це закодований рядок, " +"який керує елементом класу, методу, константи, сигналу, анотації, властивості " +"або теми. \n" +"Підтримувані формати [param topic] включають [code]class_name:class[/code], " +"[code]class_method:class:method[/code], [code]class_constant:class:constant[/" +"code], [code]class_signal:class:signal[/code], [code]class_annotation:class:" +"@annotation[/code], [code]class_property:class:property[/code] і " +"[code]class_theme_item:class:item[/code], де [code]class[/code] — назва " +"класу, [code]method[/code] — назва методу, [code]constant[/code] — назва " +"константи, [code]signal[/code] — назва сигналу, [code]annotation[/code] — " +"анотація name, [code]property[/code] – це ім’я властивості, а [code]item[/" +"code] – це елемент теми. \n" +"[кодовий блок] \n" +"# Показує довідку для класу Node. \n" +"class_name:вузол \n" +"# Показує довідку для глобальної функції min. \n" +"# Глобальні об’єкти доступні в просторі імен `@GlobalScope`, показаному " +"тут. \n" +"class_method:@GlobalScope:мін \n" +"# Показує довідку для get_viewport у класі Node. \n" +"class_method:Node:get_viewport \n" +"# Показує довідку для константи введення MOUSE_BUTTON_MIDDLE. \n" +"class_constant:Input:MOUSE_BUTTON_MIDDLE \n" +"# Показує довідку для натиснутого сигналу BaseButton. \n" +"class_signal:BaseButton:натиснуто \n" +"# Показує видиму довідку для властивості CanvasItem. \n" +"class_property:CanvasItem:видимий \n" +"# Показує довідку для експорту анотації GDScript. \n" +"# Анотації мають мати префікс символу `@` в дескрипторі, як показано тут. \n" +"class_annotation:@GDScript:@export \n" +"# Показує довідку для елемента теми GraphNode під назвою panel_selected. \n" +"class_theme_item:GraphNode:panel_selected \n" +"[/codeblock]" + msgid "Goes to the specified line in the current script." msgstr "Перейти до вказаної лінії в поточному скрипті." @@ -126176,6 +156845,17 @@ msgstr "" "[b]Note:[/b] The [EditorSyntaxHighlighter] ще буде застосовано до сценаріїв, " "які вже відкриті." +msgid "" +"Updates the documentation for the given [param script] if the script's " +"documentation is currently open.\n" +"[b]Note:[/b] This should be called whenever the script is changed to keep the " +"open documentation state up to date." +msgstr "" +"Оновлює документацію для заданого [param script], якщо документація сценарію " +"наразі відкрита. \n" +"[b]Примітка: [/b] Це слід викликати щоразу, коли сценарій змінюється, щоб " +"підтримувати відкриту документацію в актуальному стані." + msgid "" "Emitted when user changed active script. Argument is a freshly activated " "[Script]." @@ -126413,6 +157093,13 @@ msgstr "" "може призвести до аварії. Якщо ви хочете відключити або приховати прокрутку, " "ви можете скористатися [пам'ятний вертикальний_scroll_mode]." +msgid "" +"If [code]true[/code], [theme_item focus] is drawn when the ScrollContainer or " +"one of its descendant nodes is focused." +msgstr "" +"Якщо [code]true[/code], [theme_item focus] малюється, коли сфокусовано " +"ScrollContainer або один із його вузлів-нащадків." + msgid "" "If [code]true[/code], the ScrollContainer will automatically scroll to " "focused children (including indirect children) to make sure they are fully " @@ -126446,13 +157133,13 @@ msgid "" " set_deferred(\"scroll_horizontal\", 600)\n" "[/codeblock]" msgstr "" -"Поточне горизонтальне значення прокрутки.\n" -"[b]Примітка:[/b] Якщо ви встановите це значення в функції [method Node." -"_ready] або раніше, його потрібно обгорнути [метод.set_deferred], так як " -"прокрутка bar [пам'ятний діапазон.max_value] ще не ініціюється.\n" -"[блокування коду]\n" -"Func _ready():\n" -"set_deferred(\"scroll_horizontal\", 600)\n" +"Поточне значення горизонтальної прокрутки. \n" +"[b]Примітка.[/b] Якщо ви встановлюєте це значення у функції [method Node." +"_ready] або раніше, його потрібно обернути [method Object.set_deferred], " +"оскільки [член Range.max_value] смуги прокрутки ще не ініціалізовано. \n" +"[codeblock] \n" +"func _ready(): \n" +" set_deferred(\"scroll_horizontal\", 600) \n" "[/codeblock]" msgid "" @@ -126473,12 +157160,12 @@ msgid "" " set_deferred(\"scroll_vertical\", 600)\n" "[/codeblock]" msgstr "" -"Поточна вертикальна вартість прокрутки.\n" -"[b]Примітка:[/b] Налаштуйте його ранні потреби, щоб бути відкладені, так " -"само, як і в [пам'яті scroll_horizontal].\n" -"[блокування коду]\n" -"Func _ready():\n" -"set_deferred(\"scroll_vertical\", 600)\n" +"Поточне значення вертикальної прокрутки. \n" +"[b]Примітка: [/b] Раннє налаштування потрібно відкласти, як і в [member " +"scroll_horizontal]. \n" +"[codeblock] \n" +"func _ready(): \n" +" set_deferred(\"scroll_vertical\", 600) \n" "[/codeblock]" msgid "" @@ -126547,6 +157234,25 @@ msgstr "Увімкнено прокрутку, прокрутка завжди msgid "Scrolling enabled, scrollbar will be hidden." msgstr "Увімкніть, прокрутка буде прихована." +msgid "" +"Combines [constant SCROLL_MODE_AUTO] and [constant SCROLL_MODE_SHOW_ALWAYS]. " +"The scrollbar is only visible if necessary, but the content size is adjusted " +"as if it was always visible. It's useful for ensuring that content size stays " +"the same regardless if the scrollbar is visible." +msgstr "" +"Поєднує [постійний SCROLL_MODE_AUTO] і [постійний SCROLL_MODE_SHOW_ALWAYS]. " +"Смуга прокрутки відображається лише за необхідності, але розмір вмісту " +"регулюється так, ніби він завжди був видимим. Це корисно для забезпечення " +"того, щоб розмір вмісту залишався незмінним незалежно від того, чи видно " +"смугу прокрутки." + +msgid "" +"The focus border [StyleBox] of the [ScrollContainer]. Only used if [member " +"draw_focus_border] is [code]true[/code]." +msgstr "" +"Межа фокусу [StyleBox] [ScrollContainer]. Використовується, лише якщо [member " +"draw_focus_border] має значення [code]true[/code]." + msgid "The background [StyleBox] of the [ScrollContainer]." msgstr "Підручник [StyleBox] [ScrollContainer]." @@ -126598,6 +157304,13 @@ msgstr "" "- Коли кількість посилань [Thread] досягає нуля, і тому вона знищена, не " "варто чекати на будь-який сеймофор." +msgid "" +"Lowers the [Semaphore], allowing one thread in, or more if [param count] is " +"specified." +msgstr "" +"Знижує [Semaphore], дозволяючи один потік або більше, якщо вказано [param " +"count]." + msgid "" "Like [method wait], but won't block, so if the value is zero, fails " "immediately and returns [code]false[/code]. If non-zero, it returns " @@ -126728,6 +157441,32 @@ msgstr "" msgid "Returns the shader mode for the shader." msgstr "Повертає режим шейкера." +msgid "" +"Returns the list of shader uniforms that can be assigned to a " +"[ShaderMaterial], for use with [method ShaderMaterial.set_shader_parameter] " +"and [method ShaderMaterial.get_shader_parameter]. The parameters returned are " +"contained in dictionaries in a similar format to the ones returned by [method " +"Object.get_property_list].\n" +"If argument [param get_groups] is [code]true[/code], parameter grouping hints " +"are also included in the list." +msgstr "" +"Повертає список форм шейдерів, які можна призначити [ShaderMaterial], для " +"використання з [method ShaderMaterial.set_shader_parameter] і [method " +"ShaderMaterial.get_shader_parameter]. Повернуті параметри містяться в " +"словниках у форматі, подібному до тих, які повертає [метод Object." +"get_property_list]. \n" +"Якщо аргумент [param get_groups] має значення [code]true[/code], підказки " +"щодо групування параметрів також включено до списку." + +msgid "" +"Only available when running in the editor. Opens a popup that visualizes the " +"generated shader code, including all variants and internal shader code. See " +"also [method Material.inspect_native_shader_code]." +msgstr "" +"Доступно лише під час роботи в редакторі. Відкриває спливаюче вікно, яке " +"візуалізує згенерований код шейдера, включаючи всі варіанти та внутрішній код " +"шейдера. Дивіться також [method Material.inspect_native_shader_code]." + msgid "" "Sets the default texture to be used with a texture uniform. The default is " "used if a texture is not set in the [ShaderMaterial].\n" @@ -126848,6 +157587,35 @@ msgstr "" "Повертає код шейдера включає файл. Повернутий текст – це те, що користувач " "письмовий, не повністю сформований код, який використовується внутрішньо." +msgid "Internal database of built in shader include files." +msgstr "Внутрішня база даних вбудованого шейдера включає файли." + +msgid "" +"This object contains shader fragments from Godot's internal shaders. These " +"can be used when access to internal uniform buffers and/or internal functions " +"is required for instance when composing compositor effects or compute " +"shaders. Only fragments for the current rendering device are loaded." +msgstr "" +"Цей об’єкт містить фрагменти шейдерів із внутрішніх шейдерів Годо. Їх можна " +"використовувати, коли потрібен доступ до внутрішніх уніфікованих буферів і/" +"або внутрішніх функцій, наприклад, під час компонування ефектів композитора " +"або обчислювальних шейдерів. Завантажуються лише фрагменти для поточного " +"пристрою відтворення." + +msgid "" +"Returns the code for the built-in shader fragment. You can also access this " +"in your shader code through [code]#include \"filename\"[/code]." +msgstr "" +"Повертає код для вбудованого фрагмента шейдера. Ви також можете отримати " +"доступ до цього в коді шейдера за допомогою [code]#include \"filename\"[/" +"code]." + +msgid "Returns [code]true[/code] if an include file with this name exists." +msgstr "Повертає [code]true[/code], якщо файл включення з такою назвою існує." + +msgid "Returns a list of built-in include files that are currently registered." +msgstr "Повертає список вбудованих файлів включення, які наразі зареєстровані." + msgid "" "A material defined by a custom [Shader] program and the values of its shader " "parameters." @@ -127112,6 +157880,13 @@ msgstr "" "виявлення, оскільки інформація про зіткнення не доступна для неї.\n" "[b]Примітка:[/b] Швидке лиття є більш обчисленим, ніж лиття променів." +msgid "" +"Adds a collision exception so the shape does not report collisions with the " +"specified node." +msgstr "" +"Додає виняток зіткнення, щоб фігура не повідомляла про зіткнення з указаним " +"вузлом." + msgid "" "Adds a collision exception so the shape does not report collisions with the " "specified [RID]." @@ -127121,6 +157896,45 @@ msgstr "" msgid "Removes all collision exceptions for this shape." msgstr "Видаліть всі винятки зіткнення для цієї форми." +msgid "" +"Updates the collision information for the shape immediately, without waiting " +"for the next [code]_physics_process[/code] call. Use this method, for " +"example, when the shape or its parent has changed state.\n" +"[b]Note:[/b] Setting [member enabled] to [code]true[/code] is not required " +"for this to work." +msgstr "" +"Оновлює інформацію про зіткнення для форми негайно, не чекаючи наступного " +"виклику [code]_physics_process[/code]. Використовуйте цей метод, наприклад, " +"коли форма або її батьківський елемент змінили стан. \n" +"[b]Примітка:[/b] Для цього не потрібно встановлювати [member enabled] на " +"[code]true[/code]." + +msgid "" +"Returns the fraction from this cast's origin to its [member target_position] " +"of how far the shape can move without triggering a collision, as a value " +"between [code]0.0[/code] and [code]1.0[/code]." +msgstr "" +"Повертає частку від початку цього приведення до його [member target_position] " +"того, наскільки далеко фігура може переміститися, не викликаючи зіткнення, як " +"значення між [code]0.0[/code] і [code]1.0[/code]." + +msgid "" +"Returns the fraction from this cast's origin to its [member target_position] " +"of how far the shape must move to trigger a collision, as a value between " +"[code]0.0[/code] and [code]1.0[/code].\n" +"In ideal conditions this would be the same as [method " +"get_closest_collision_safe_fraction], however shape casting is calculated in " +"discrete steps, so the precise point of collision can occur between two " +"calculated positions." +msgstr "" +"Повертає частку від початку цього приведення до його [member target_position] " +"того, наскільки далеко має переміститися форма, щоб ініціювати зіткнення, як " +"значення між [code]0.0[/code] і [code]1.0[/code]. \n" +"В ідеальних умовах це було б так само, як [метод " +"get_closest_collision_safe_fraction], однак відливання форми обчислюється " +"окремими кроками, тому точна точка зіткнення може бути між двома обчисленими " +"позиціями." + msgid "" "Returns the collided [Object] of one of the multiple collisions at [param " "index], or [code]null[/code] if no object is intersecting the shape (i.e. " @@ -127162,6 +157976,15 @@ msgstr "" "Повертає норму одного з декількох зіткнень на [параметр] об'єкта, що " "перетинає." +msgid "" +"Returns the collision point of one of the multiple collisions at [param " +"index] where the shape intersects the colliding object.\n" +"[b]Note:[/b] This point is in the [b]global[/b] coordinate system." +msgstr "" +"Повертає точку зіткнення одного з кількох зіткнень у [param index], де фігура " +"перетинає об’єкт зіткнення.\n" +"[b]Примітка:[/b] Ця точка знаходиться в [b]глобальній[/b] системі координат." + msgid "" "Returns whether any object is intersecting with the shape's vector " "(considering the vector length)." @@ -127169,6 +157992,13 @@ msgstr "" "Повертає будь-який об'єкт, що перетинається з вектором форми (визнання " "довжини вектора)." +msgid "" +"Removes a collision exception so the shape does report collisions with the " +"specified node." +msgstr "" +"Видаляє виняток зіткнення, щоб фігура повідомляла про зіткнення з указаним " +"вузлом." + msgid "" "Removes a collision exception so the shape does report collisions with the " "specified [RID]." @@ -127208,6 +158038,14 @@ msgstr "" "Кількість перетинів може бути обмежена цим параметром, щоб зменшити час " "обробки." +msgid "The shape to be used for collision queries." +msgstr "Форма, яка буде використовуватися для запитів зіткнень." + +msgid "" +"The shape's destination point, relative to this node's [member Node2D." +"position]." +msgstr "Точка призначення фігури відносно [члена Node2D.position] цього вузла." + msgid "A 3D shape that sweeps a region of space to detect [CollisionObject3D]s." msgstr "" "A 3D форма, яка спрощує область простору для виявлення [CollisionObject3D]s." @@ -127264,15 +158102,38 @@ msgstr "" "замовчуванням), використовується колір, установлений у [member " "ProjectSettings.debug/shapes/collision/shape_color]." +msgid "" +"The shape's destination point, relative to this node's [member Node3D." +"position]." +msgstr "Точка призначення фігури відносно [члена Node3D.position] цього вузла." + msgid "A shortcut for binding input." msgstr "Ярлик для в'язального введення." +msgid "" +"Shortcuts are commonly used for interacting with a [Control] element from an " +"[InputEvent] (also known as hotkeys).\n" +"One shortcut can contain multiple [InputEvent]s, allowing the possibility of " +"triggering one action with multiple different inputs." +msgstr "" +"Комбінації клавіш зазвичай використовуються для взаємодії з елементом " +"[Control] із [InputEvent] (також відомі як гарячі клавіші). \n" +"Один ярлик може містити кілька [InputEvent], що дає можливість ініціювати " +"одну дію з кількома різними входами." + msgid "Returns the shortcut's first valid [InputEvent] as a [String]." msgstr "Повертаємо перше значення ярлика [InputEvent] як [String]." msgid "Returns whether [member events] contains an [InputEvent] which is valid." msgstr "Повертаємо вашу увагу на те, що [пам'яні події] містить [InputEvent]." +msgid "" +"Returns whether any [InputEvent] in [member events] equals [param event]. " +"This uses [method InputEvent.is_match] to compare events." +msgstr "" +"Повертає, чи будь-яка [InputEvent] у [member events] дорівнює [param event]. " +"Це використовує [метод InputEvent.is_match] для порівняння подій." + msgid "" "The shortcut's [InputEvent] array.\n" "Generally the [InputEvent] used is an [InputEventKey], though it can be any " @@ -127285,6 +158146,64 @@ msgstr "" msgid "A built-in type representing a signal of an [Object]." msgstr "Вбудований тип, що представляє сигнал [Object]." +msgid "" +"[Signal] is a built-in [Variant] type that represents a signal of an [Object] " +"instance. Like all [Variant] types, it can be stored in variables and passed " +"to functions. Signals allow all connected [Callable]s (and by extension their " +"respective objects) to listen and react to events, without directly " +"referencing one another. This keeps the code flexible and easier to manage. " +"You can check whether an [Object] has a given signal name using [method " +"Object.has_signal].\n" +"In GDScript, signals can be declared with the [code]signal[/code] keyword. In " +"C#, you may use the [code][Signal][/code] attribute on a delegate.\n" +"[codeblocks]\n" +"[gdscript]\n" +"signal attacked\n" +"\n" +"# Additional arguments may be declared.\n" +"# These arguments must be passed when the signal is emitted.\n" +"signal item_dropped(item_name, amount)\n" +"[/gdscript]\n" +"[csharp]\n" +"[Signal]\n" +"delegate void AttackedEventHandler();\n" +"\n" +"// Additional arguments may be declared.\n" +"// These arguments must be passed when the signal is emitted.\n" +"[Signal]\n" +"delegate void ItemDroppedEventHandler(string itemName, int amount);\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"[Signal] — це вбудований тип [Variant], який представляє сигнал примірника " +"[Object]. Як і всі типи [Variant], його можна зберігати в змінних і " +"передавати функціям. Сигнали дозволяють усім підключеним [Callable] (і, " +"відповідно, їхнім відповідним об’єктам) слухати та реагувати на події, не " +"посилаючись один на одного безпосередньо. Це робить код гнучким і зручнішим у " +"управлінні. Ви можете перевірити, чи [Object] має певне ім’я сигналу, " +"використовуючи [method Object.has_signal]. \n" +"У GDScript сигнали можна оголошувати за допомогою ключового слова " +"[code]signal[/code]. У C# ви можете використовувати атрибут [code][Signal][/" +"code] для делегату. \n" +"[codeblocks] \n" +"[gdscript] \n" +"signal attacked \n" +"\n" +"# Можуть бути оголошені додаткові аргументи. \n" +"# Ці аргументи повинні бути передані під час випромінювання сигналу. \n" +"сигнал item_dropped(item_name, amount) \n" +"[/gdscript] \n" +"[csharp] \n" +"[Signal] \n" +"delegate void AttackedEventHandler(); \n" +"\n" +"// Можуть бути оголошені додаткові аргументи. \n" +"// Ці аргументи мають бути передані, коли надходить сигнал. \n" +"[Signal] \n" +"delegate void ItemDroppedEventHandler(рядок itemName, int amount); \n" +"[/csharp] \n" +"[/codeblocks]" + msgid "Using Signals" msgstr "Використання сигналів" @@ -127297,6 +158216,13 @@ msgstr "Побудувати порожній [Підпис] без об’єк msgid "Constructs a [Signal] as a copy of the given [Signal]." msgstr "Constructs a [Signal] як копія даної [Signal]." +msgid "" +"Creates a [Signal] object referencing a signal named [param signal] in the " +"specified [param object]." +msgstr "" +"Створює об’єкт [Signal], який посилається на сигнал із назвою [param signal] " +"у вказаному [param object]." + msgid "" "Connects this signal to the specified [param callable]. Optional [param " "flags] can be also added to configure the connection's behavior (see [enum " @@ -127315,21 +158241,21 @@ msgid "" " print(button.name, \" was pressed\")\n" "[/codeblock]" msgstr "" -"Підключає цей сигнал до вказаного [пармовий виклик]. Додаткові [param " -"прапори] також можна додавати для налаштування поведінки з'єднання (див. " -"[enum Object.ConnectFlags]. Ви можете надати додаткові аргументи до " -"підключеного [пара, що викликається] за допомогою [метод Callable.bind].\n" -"сигнал може бути підключений тільки один раз до того ж [знімний]. Якщо сигнал " -"вже підключений, повертає [constant ERR_INVALID_PARAMETER] і відштовхує " -"повідомлення про помилку, якщо сигнал підключено до [constant Object. " -"КОННЕКТИ_РЕФЕРЕНЦІЯ_КОУНТОВАНО]. Для запобігання цього використовується " -"[метод_connected] для перевірки існуючих підключень.\n" -"[блокування коду]\n" -"для кнопки в $Buttons.get_ Kids():\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" +"Підключає цей сигнал до вказаного [param callable]. Також можна додати " +"необов’язкові [param flags], щоб налаштувати поведінку з’єднання (див. " +"константи [enum Object.ConnectFlags]). Ви можете надати додаткові аргументи " +"підключеному [param callable] за допомогою [method Callable.bind]. \n" +"Сигнал можна підключити лише один раз до одного [Callable]. Якщо сигнал уже " +"підключено, повертає [константа ERR_INVALID_PARAMETER] і надсилає " +"повідомлення про помилку, якщо сигнал не підключено до [константи Object." +"CONNECT_REFERENCE_COUNTED]. Щоб запобігти цьому, спочатку використовуйте " +"[method is_connected], щоб перевірити наявність підключень. \n" +"[codeblock] \n" +"from botton в $Buttons.get_children(): \n" +" button.pressed.connect(_on_pressed.bind(button)) \n" "\n" -"Func _on_pressed(button):\n" -"Друк(button.name, \"пресовано\")\n" +"func _on_pressed(botton): \n" +" print(button.name, \" було натиснуто\") \n" "[/codeblock]" msgid "" @@ -127376,6 +158302,11 @@ msgstr "" "Повертає ідентифікатор об'єкта, який випромінює цей сигнал (див. [метод." "get_instance_id])." +msgid "Returns [code]true[/code] if any [Callable] is connected to this signal." +msgstr "" +"Повертає [code]true[/code], якщо будь-який [Callable] підключено до цього " +"сигналу." + msgid "" "Returns [code]true[/code] if the specified [Callable] is connected to this " "signal." @@ -127383,6 +158314,13 @@ msgstr "" "Повертає [code]true[/code], якщо зазначений [Callable] підключений до цього " "сигналу." +msgid "" +"Returns [code]true[/code] if this [Signal] has no object and the signal name " +"is empty. Equivalent to [code]signal == Signal()[/code]." +msgstr "" +"Повертає [code]true[/code], якщо цей [Signal] не має об’єкта, а назва сигналу " +"порожня. Еквівалент [code]singal == Singal()[/code]." + msgid "" "Returns [code]true[/code] if the signals do not share the same object and " "name." @@ -127588,6 +158526,12 @@ msgstr "" msgid "Returns the global rest transform for [param bone_idx]." msgstr "Повертає глобальну трансформацію відпочинку для [param bone_idx]." +msgid "Returns bone metadata for [param bone_idx] with [param key]." +msgstr "Повертає метадані кістки для [param bone_idx] із [param key]." + +msgid "Returns a list of all metadata keys for [param bone_idx]." +msgstr "Повертає список усіх ключів метаданих для [param bone_idx]." + msgid "Returns the name of the bone at index [param bone_idx]." msgstr "Повертає назву кісточки в індексі [param bone_idx]." @@ -127668,6 +158612,13 @@ msgstr "" "Використовуйте для недійсних кешів у розчинників IK та інших вузлів, які " "обробляють кістки." +msgid "" +"Returns whether there exists any bone metadata for [param bone_idx] with key " +"[param key]." +msgstr "" +"Повертає, чи існують будь-які метадані кістки для [param bone_idx] із ключем " +"[param key]." + msgid "" "Returns whether the bone pose for the bone at [param bone_idx] is enabled." msgstr "Повертає, чи ввімкнено кісткову позу для кістки [param bone_idx]." @@ -127725,6 +158676,13 @@ msgstr "" "Transform3D.affine_inverse] вузла [пам'ят Node3D.global_transform] за " "бажанням світового перетворення." +msgid "" +"Sets bone metadata for [param bone_idx], will set the [param key] meta to " +"[param value]." +msgstr "" +"Встановлює метадані кістки для [param bone_idx], установить мета [param key] " +"на [param value]." + msgid "Sets the bone name, [param name], for the bone at [param bone_idx]." msgstr "" "Налаштовує назву кістки, [прізвище], для кісточки на [пологовий кіст_idx]." @@ -127830,6 +158788,9 @@ msgstr "" "[b]Примітка:[/b] Під час процесу оновлення цей сигнал не пожежний, тому " "модифікація [SkeletonModifier3D] не виявлена." +msgid "Emitted when the rest is updated." +msgstr "Видається, коли решта оновлюється." + msgid "Emitted when the value of [member show_rest_only] changes." msgstr "Випробувано при зміні значення [пам'яті шоу_rest_only]." @@ -127905,38 +158866,47 @@ msgid "" "skeleton_ik_node.set_influence(0.0)\n" "[/codeblock]" msgstr "" -"SkeletonIK3D використовується для обертання всіх кісток [Skeleton3D] " -"кісткового ланцюжка, що розміщує кінцеву кістку за бажаним положенням 3D. " -"Типовий сценарій для IK в іграх полягає в тому, щоб розмістити ноги персонажа " -"на землі або руки персонажа на даний момент проведений об'єкт. SkeletonIK " -"використовує FabrikInverseKinematic внутрішньо для вирішення кісткового " -"ланцюжка і застосовує результати до [Skeleton3D] " -"[code]bones_global_pose_override[/code] властивість для всіх уражених кісток " -"в ланцюжку. Якщо повністю застосовано, це перезапускає будь-яку кісткову " -"трансформацію з [Анімація] або кісткову на замовлення пози, встановлену " -"користувачами. Нанесена сума може бути контрольована за допомогою [члена " -"SkeletonModifier3D.influence].\n" -"[блокування коду]\n" -"Нема Застосувати ефект IK автоматично на кожен новий кадр (не поточний)\n" -"English, Українська, Français...\n" +"SkeletonIK3D використовується для обертання всіх кісток ланцюга кісток " +"[Skeleton3D] таким чином, що кінцева кістка розміщується в бажаному 3D-" +"положенні. Типовий сценарій для IK в іграх полягає в тому, щоб покласти ноги " +"персонажа на землю або руки персонажа на предмет, який зараз тримається. " +"SkeletonIK використовує FabrikInverseKinematic внутрішньо для вирішення " +"ланцюжка кісток і застосовує результати до властивості [Skeleton3D] " +"[code]bones_global_pose_override[/code] для всіх уражених кісток у ланцюжку. " +"Якщо застосовано повністю, це перезаписує будь-яку трансформацію кістки з " +"[Анімація] або спеціальні пози кістки, встановлені користувачами. " +"Застосовувану кількість можна контролювати за допомогою властивості [member " +"SkeletonModifier3D.influence]. \n" +"[codeblock] \n" +"# Автоматично застосовувати ефект IK до кожного нового кадру (не поточного) \n" +"skeleton_ik_node.start() \n" "\n" -"Нема Наносити ефект IK тільки на поточний каркас\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" +"# Застосувати ефект IK лише до поточного кадру \n" +"skeleton_ik_node.start(true) \n" "\n" -"# Stop IK ефект і скидання кісток_global_pose_override на Skeleton\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" +"# Зупинити ефект IK і скинути bones_global_pose_override на Skeleton \n" +"skeleton_ik_node.stop() \n" "\n" -"Нема Застосування повного ефекту IK\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" +"# Застосуйте повний ефект IK \n" +"skeleton_ik_node.set_influence(1.0) \n" "\n" -"Нема Застосувати ефект пів IK\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" +"# Застосуйте ефект половини IK \n" +"skeleton_ik_node.set_influence(0,5) \n" "\n" -"Нема Застосувати нульовий ефект IK (вартість або нижче 0.01 також видаляє " -"кістки_global_pose_override на Skeleton)\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" +"# Застосувати нульовий ефект IK (значення 0,01 або менше також усуває " +"bones_global_pose_override на Skeleton) \n" +"skeleton_ik_node.set_influence(0.0) \n" "[/codeblock]" +msgid "" +"Returns the parent [Skeleton3D] node that was present when SkeletonIK entered " +"the scene tree. Returns [code]null[/code] if the parent node was not a " +"[Skeleton3D] node when SkeletonIK3D entered the scene tree." +msgstr "" +"Повертає батьківський вузол [Skeleton3D], який був присутній, коли SkeletonIK " +"увійшов до дерева сцени. Повертає [code]null[/code], якщо батьківський вузол " +"не був вузлом [Skeleton3D], коли SkeletonIK3D увійшов до дерева сцен." + msgid "" "Returns [code]true[/code] if SkeletonIK is applying IK effects on continues " "frames to the [Skeleton3D] bones. Returns [code]false[/code] if SkeletonIK is " @@ -128893,6 +159863,15 @@ msgstr "" "Встановлює індекс вузла [Bone2D], який використовується як друга кістка в " "модифікації TwoBoneIK." +msgid "" +"If [code]true[/code], the bones in the modification will bend outward as " +"opposed to inwards when contracting. If [code]false[/code], the bones will " +"bend inwards when contracting." +msgstr "" +"Якщо [code]true[/code], кістки в модифікації будуть згинатися назовні, а не " +"всередину під час скорочення. Якщо [code]false[/code], кістки будуть " +"згинатися всередину під час скорочення." + msgid "" "The maximum distance the target can be at. If the target is farther than this " "distance, the modification will solve as if it's at this maximum distance. " @@ -129030,6 +160009,9 @@ msgstr "" "наполовину, а сила [code]1[/code] дозволяють повністю застосувати модифікації " "та замінюють пози [Skeleton2D] [Bone2D]." +msgid "A node that may modify Skeleton3D's bone." +msgstr "Вузол, який може модифікувати кістку Skeleton3D." + msgid "" "[SkeletonModifier3D] retrieves a target [Skeleton3D] by having a [Skeleton3D] " "parent.\n" @@ -129091,6 +160073,24 @@ msgstr "" "модифікатора, ви повинні використовувати [метод Skeleton3D.get_bone_pose] або " "[метод Skeleton3D.get_bone_global_pose] у момент запуску цього сигналу." +msgid "Enumerated value for the +X axis." +msgstr "Перераховане значення для осі +X." + +msgid "Enumerated value for the -X axis." +msgstr "Перераховане значення для осі -X." + +msgid "Enumerated value for the +Y axis." +msgstr "Перераховане значення для осі +Y." + +msgid "Enumerated value for the -Y axis." +msgstr "Перераховане значення для осі -Y." + +msgid "Enumerated value for the +Z axis." +msgstr "Перераховане значення для осі +Z." + +msgid "Enumerated value for the -Z axis." +msgstr "Перераховане значення для осі -Z." + msgid "" "Base class for a profile of a virtual skeleton used as a target for " "retargeting." @@ -129314,6 +160314,136 @@ msgstr "Напрямок не розраховується." msgid "A humanoid [SkeletonProfile] preset." msgstr "Попереднє налаштування гуманоїда [SkeletonProfile]." +msgid "" +"A [SkeletonProfile] as a preset that is optimized for the human form. This " +"exists for standardization, so all parameters are read-only.\n" +"A humanoid skeleton profile contains 54 bones divided in 4 groups: " +"[code]\"Body\"[/code], [code]\"Face\"[/code], [code]\"LeftHand\"[/code], and " +"[code]\"RightHand\"[/code]. It is structured as follows:\n" +"[codeblock lang=text]\n" +"Root\n" +"└─ Hips\n" +" ├─ LeftUpperLeg\n" +" │ └─ LeftLowerLeg\n" +" │ └─ LeftFoot\n" +" │ └─ LeftToes\n" +" ├─ RightUpperLeg\n" +" │ └─ RightLowerLeg\n" +" │ └─ RightFoot\n" +" │ └─ RightToes\n" +" └─ Spine\n" +" └─ Chest\n" +" └─ UpperChest\n" +" ├─ Neck\n" +" │ └─ Head\n" +" │ ├─ Jaw\n" +" │ ├─ LeftEye\n" +" │ └─ RightEye\n" +" ├─ LeftShoulder\n" +" │ └─ LeftUpperArm\n" +" │ └─ LeftLowerArm\n" +" │ └─ LeftHand\n" +" │ ├─ LeftThumbMetacarpal\n" +" │ │ └─ LeftThumbProximal\n" +" │ │ └─ LeftThumbDistal\n" +" │ ├─ LeftIndexProximal\n" +" │ │ └─ LeftIndexIntermediate\n" +" │ │ └─ LeftIndexDistal\n" +" │ ├─ LeftMiddleProximal\n" +" │ │ └─ LeftMiddleIntermediate\n" +" │ │ └─ LeftMiddleDistal\n" +" │ ├─ LeftRingProximal\n" +" │ │ └─ LeftRingIntermediate\n" +" │ │ └─ LeftRingDistal\n" +" │ └─ LeftLittleProximal\n" +" │ └─ LeftLittleIntermediate\n" +" │ └─ LeftLittleDistal\n" +" └─ RightShoulder\n" +" └─ RightUpperArm\n" +" └─ RightLowerArm\n" +" └─ RightHand\n" +" ├─ RightThumbMetacarpal\n" +" │ └─ RightThumbProximal\n" +" │ └─ RightThumbDistal\n" +" ├─ RightIndexProximal\n" +" │ └─ RightIndexIntermediate\n" +" │ └─ RightIndexDistal\n" +" ├─ RightMiddleProximal\n" +" │ └─ RightMiddleIntermediate\n" +" │ └─ RightMiddleDistal\n" +" ├─ RightRingProximal\n" +" │ └─ RightRingIntermediate\n" +" │ └─ RightRingDistal\n" +" └─ RightLittleProximal\n" +" └─ RightLittleIntermediate\n" +" └─ RightLittleDistal\n" +"[/codeblock]" +msgstr "" +"[SkeletonProfile] як стиль, оптимізований для людської форми. Це існує для " +"стандартизації, тому всі параметри доступні лише для читання. \n" +"Профіль скелета гуманоїда містить 54 кістки, розділені на 4 групи: " +"[код]\"Тіло\"[/code], [код]\"Обличчя\"[/code], [код]\"Ліва рука\"[/code] і " +"[код]\"Права рука\"[/code]. Він структурований таким чином: \n" +"[codeblock lang=text] \n" +"Root\n" +"└─ Hips\n" +" ├─ LeftUpperLeg\n" +" │ └─ LeftLowerLeg\n" +" │ └─ LeftFoot\n" +" │ └─ LeftToes\n" +" ├─ RightUpperLeg\n" +" │ └─ RightLowerLeg\n" +" │ └─ RightFoot\n" +" │ └─ RightToes\n" +" └─ Spine\n" +" └─ Chest\n" +" └─ UpperChest\n" +" ├─ Neck\n" +" │ └─ Head\n" +" │ ├─ Jaw\n" +" │ ├─ LeftEye\n" +" │ └─ RightEye\n" +" ├─ LeftShoulder\n" +" │ └─ LeftUpperArm\n" +" │ └─ LeftLowerArm\n" +" │ └─ LeftHand\n" +" │ ├─ LeftThumbMetacarpal\n" +" │ │ └─ LeftThumbProximal\n" +" │ │ └─ LeftThumbDistal\n" +" │ ├─ LeftIndexProximal\n" +" │ │ └─ LeftIndexIntermediate\n" +" │ │ └─ LeftIndexDistal\n" +" │ ├─ LeftMiddleProximal\n" +" │ │ └─ LeftMiddleIntermediate\n" +" │ │ └─ LeftMiddleDistal\n" +" │ ├─ LeftRingProximal\n" +" │ │ └─ LeftRingIntermediate\n" +" │ │ └─ LeftRingDistal\n" +" │ └─ LeftLittleProximal\n" +" │ └─ LeftLittleIntermediate\n" +" │ └─ LeftLittleDistal\n" +" └─ RightShoulder\n" +" └─ RightUpperArm\n" +" └─ RightLowerArm\n" +" └─ RightHand\n" +" ├─ RightThumbMetacarpal\n" +" │ └─ RightThumbProximal\n" +" │ └─ RightThumbDistal\n" +" ├─ RightIndexProximal\n" +" │ └─ RightIndexIntermediate\n" +" │ └─ RightIndexDistal\n" +" ├─ RightMiddleProximal\n" +" │ └─ RightMiddleIntermediate\n" +" │ └─ RightMiddleDistal\n" +" ├─ RightRingProximal\n" +" │ └─ RightRingIntermediate\n" +" │ └─ RightRingDistal\n" +" └─ RightLittleProximal\n" +" └─ RightLittleIntermediate\n" +" └─ RightLittleDistal\n" +"\n" +"[/codeblock]" + msgid "" "A reference-counted holder object for a skeleton RID used in the " "[RenderingServer]." @@ -129541,6 +160671,22 @@ msgstr "" "Якщо [code]true[/code], слайдер буде відображати кліщі для мінімальних і " "максимальних значень." +msgid "" +"Emitted when the grabber stops being dragged. If [param value_changed] is " +"[code]true[/code], [member Range.value] is different from the value when the " +"dragging was started." +msgstr "" +"Випускається, коли граббер перестає перетягуватися. Якщо [param " +"value_changed] має значення [code]true[/code], [member Range.value] " +"відрізняється від значення на момент початку перетягування." + +msgid "" +"Emitted when the grabber starts being dragged. This is emitted before the " +"corresponding [signal Range.value_changed] signal." +msgstr "" +"Випускається, коли граббер починає перетягуватися. Це випромінюється перед " +"відповідним сигналом [signal Range.value_changed]." + msgid "" "Boolean constant. If [code]1[/code], the grabber texture size will be ignored " "and it will fit within slider's bounds based only on its center position." @@ -130013,6 +161159,73 @@ msgstr "Радіус сфери. Діаметр форми подвійний р msgid "An input field for numbers." msgstr "Поле введення для чисел." +msgid "" +"[SpinBox] is a numerical input text field. It allows entering integers and " +"floating-point numbers.\n" +"[b]Example:[/b] Create a [SpinBox], disable its context menu and set its text " +"alignment to right.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var spin_box = SpinBox.new()\n" +"add_child(spin_box)\n" +"var line_edit = spin_box.get_line_edit()\n" +"line_edit.context_menu_enabled = false\n" +"spin_box.horizontal_alignment = LineEdit.HORIZONTAL_ALIGNMENT_RIGHT\n" +"[/gdscript]\n" +"[csharp]\n" +"var spinBox = new SpinBox();\n" +"AddChild(spinBox);\n" +"var lineEdit = spinBox.GetLineEdit();\n" +"lineEdit.ContextMenuEnabled = false;\n" +"spinBox.AlignHorizontal = LineEdit.HorizontalAlignEnum.Right;\n" +"[/csharp]\n" +"[/codeblocks]\n" +"See [Range] class for more options over the [SpinBox].\n" +"[b]Note:[/b] With the [SpinBox]'s context menu disabled, you can right-click " +"the bottom half of the spinbox to set the value to its minimum, while right-" +"clicking the top half sets the value to its maximum.\n" +"[b]Note:[/b] [SpinBox] relies on an underlying [LineEdit] node. To theme a " +"[SpinBox]'s background, add theme items for [LineEdit] and customize them. " +"The [LineEdit] has the [code]SpinBoxInnerLineEdit[/code] theme variation, so " +"that you can give it a distinct appearance from regular [LineEdit]s.\n" +"[b]Note:[/b] If you want to implement drag and drop for the underlying " +"[LineEdit], you can use [method Control.set_drag_forwarding] on the node " +"returned by [method get_line_edit]." +msgstr "" +"[SpinBox] — текстове поле для числового введення. Дозволяє вводити цілі числа " +"та числа з плаваючою комою. \n" +"[b]Приклад: [/b] Створіть [SpinBox], вимкніть його контекстне меню та " +"встановіть його вирівнювання тексту праворуч. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var spin_box = SpinBox.new() \n" +"add_child(spin_box) \n" +"var line_edit = spin_box.get_line_edit() \n" +"line_edit.context_menu_enabled = false \n" +"spin_box.horizontal_alignment = LineEdit.HORIZONTAL_ALIGNMENT_RIGHT \n" +"[/gdscript] \n" +"[csharp] \n" +"var spinBox = new SpinBox(); \n" +"AddChild(spinBox); \n" +"var lineEdit = spinBox.GetLineEdit(); \n" +"lineEdit.ContextMenuEnabled = false; \n" +"spinBox.AlignHorizontal = LineEdit.HorizontalAlignEnum.Right; \n" +"[/csharp] \n" +"[/codeblocks] \n" +"Перегляньте клас [Range] для отримання додаткових параметрів над [SpinBox]. \n" +"[b]Примітка:[/b] Якщо контекстне меню [SpinBox] вимкнено, ви можете клацнути " +"правою кнопкою миші нижню половину поля обертання, щоб встановити мінімальне " +"значення, тоді як клацання правою кнопкою миші верхню половину встановить " +"максимальне значення. \n" +"[b]Примітка:[/b] [SpinBox] покладається на базовий вузол [LineEdit]. Щоб " +"створити тему фону [SpinBox], додайте елементи теми для [LineEdit] і " +"налаштуйте їх. [LineEdit] має варіацію теми [code]SpinBoxInnerLineEdit[/" +"code], щоб ви могли надати йому вигляд, відмінний від звичайного " +"[LineEdit]. \n" +"[b]Примітка:[/b] Якщо ви хочете застосувати перетягування для основного " +"[LineEdit], ви можете використовувати [method Control.set_drag_forwarding] у " +"вузлі, який повертає [method get_line_edit]." + msgid "Applies the current value of this [SpinBox]." msgstr "Додаток до поточного значення цього [SpinBox]." @@ -130073,6 +161286,146 @@ msgstr "" "[i]changed[/i] замість [i]submitted[/i]. Див. [signal LineEdit.text_changed] " "та [signal LineEdit.text_submitted]." +msgid "Down button icon modulation color, when the button is disabled." +msgstr "Колір модуляції піктограми кнопки вниз, коли кнопка вимкнена." + +msgid "Down button icon modulation color, when the button is hovered." +msgstr "Колір модуляції значка кнопки вниз, коли на кнопку наведено курсор." + +msgid "Down button icon modulation color." +msgstr "Колір модуляції значка кнопки вниз." + +msgid "Down button icon modulation color, when the button is being pressed." +msgstr "Колір модуляції піктограми кнопки вниз, коли кнопка натиснута." + +msgid "Up button icon modulation color, when the button is disabled." +msgstr "Колір модуляції значка кнопки вгору, коли кнопку вимкнено." + +msgid "Up button icon modulation color, when the button is hovered." +msgstr "Колір модуляції значка кнопки вгору, коли на кнопку наведено курсор." + +msgid "Up button icon modulation color." +msgstr "Колір модуляції значка кнопки вгору." + +msgid "Up button icon modulation color, when the button is being pressed." +msgstr "Колір модуляції піктограми кнопки вгору, коли кнопка натискається." + +msgid "Vertical separation between the up and down buttons." +msgstr "Вертикальна роздільність між кнопками вгору та вниз." + +msgid "" +"Width of the up and down buttons. If smaller than any icon set on the " +"buttons, the respective icon may overlap neighboring elements. If smaller " +"than [code]0[/code], the width is automatically adjusted from the icon size." +msgstr "" +"Ширина кнопок вгору та вниз. Якщо менший за будь-який набір піктограм на " +"кнопках, відповідний значок може перекривати сусідні елементи. Якщо менше " +"[code]0[/code], ширина автоматично регулюється відповідно до розміру значка." + +msgid "" +"Width of the horizontal separation between the text input field ([LineEdit]) " +"and the buttons." +msgstr "" +"Ширина горизонтального розділення між полем введення тексту ([LineEdit]) і " +"кнопками." + +msgid "" +"This property exists only for compatibility with older themes. Setting " +"[theme_item buttons_width] to a negative value has the same effect." +msgstr "" +"Ця властивість існує лише для сумісності зі старими темами. Встановлення " +"від’ємного значення [theme_item buttons_width] має той самий ефект." + +msgid "" +"If not [code]0[/code], the minimum button width corresponds to the widest of " +"all icons set on those buttons, even if [theme_item buttons_width] is smaller." +msgstr "" +"Якщо не [code]0[/code], мінімальна ширина кнопки відповідає найширшій із усіх " +"піктограм, установлених на цих кнопках, навіть якщо [theme_item " +"buttons_width] менше." + +msgid "" +"Down button icon, displayed in the middle of the down (value-decreasing) " +"button." +msgstr "" +"Піктограма кнопки вниз, відображається посередині кнопки вниз (зменшується " +"значення)." + +msgid "Down button icon when the button is disabled." +msgstr "Значок кнопки вниз, коли кнопку вимкнено." + +msgid "Down button icon when the button is hovered." +msgstr "Значок кнопки вниз, коли на кнопку наведено курсор." + +msgid "Down button icon when the button is being pressed." +msgstr "Значок кнопки вниз, коли кнопка натиснута." + +msgid "" +"Up button icon, displayed in the middle of the up (value-increasing) button." +msgstr "" +"Піктограма кнопки вгору, відображається посередині кнопки вгору (збільшення " +"значення)." + +msgid "Up button icon when the button is disabled." +msgstr "Значок кнопки вгору, коли кнопку вимкнено." + +msgid "Up button icon when the button is hovered." +msgstr "Значок кнопки вгору, коли на кнопку наведено курсор." + +msgid "Up button icon when the button is being pressed." +msgstr "Значок кнопки вгору під час натискання кнопки." + +msgid "" +"Single texture representing both the up and down buttons icons. It is " +"displayed in the middle of the buttons and does not change upon interaction. " +"It is recommended to use individual [theme_item up] and [theme_item down] " +"graphics for better usability. This can also be used as additional decoration " +"between the two buttons." +msgstr "" +"Одна текстура, що представляє піктограми кнопок вгору та вниз. Він " +"відображається посередині кнопок і не змінюється під час взаємодії. " +"Рекомендовано використовувати окремі графіки [theme_item up] і [theme_item " +"down] для кращого використання. Це також можна використовувати як додаткову " +"прикрасу між двома ґудзиками." + +msgid "Background style of the down button." +msgstr "Стиль тла кнопки вниз." + +msgid "Background style of the down button when disabled." +msgstr "Стиль тла кнопки вниз, коли вимкнено." + +msgid "Background style of the down button when hovered." +msgstr "Стиль тла кнопки вниз під час наведення." + +msgid "Background style of the down button when being pressed." +msgstr "Стиль тла кнопки вниз під час натискання." + +msgid "" +"[StyleBox] drawn in the space occupied by the separation between the input " +"field and the buttons." +msgstr "" +"[StyleBox] намальовано в місці, яке займає розділення між полем введення та " +"кнопками." + +msgid "Background style of the up button." +msgstr "Стиль тла кнопки вгору." + +msgid "Background style of the up button when disabled." +msgstr "Стиль тла кнопки вгору, коли вимкнено." + +msgid "Background style of the up button when hovered." +msgstr "Стиль тла кнопки вгору під час наведення." + +msgid "Background style of the up button when being pressed." +msgstr "Стиль тла кнопки вгору під час натискання." + +msgid "" +"[StyleBox] drawn in the space occupied by the separation between the up and " +"down buttons." +msgstr "" +"[StyleBox] намальовано в місці, яке займає роздільник між кнопками вгору та " +"вниз." + msgid "" "A container that splits two child controls horizontally or vertically and " "provides a grabber for adjusting the split ratio." @@ -130097,6 +161450,92 @@ msgstr "" "Затискає значення [пам'яті split_offset], щоб не вийти за межі наявного " "мінімального і максимального значення." +msgid "" +"Returns the drag area [Control]. For example, you can move a pre-configured " +"button into the drag area [Control] so that it rides along with the split " +"bar. Try setting the [Button] anchors to [code]center[/code] prior to the " +"[code]reparent()[/code] call.\n" +"[codeblock]\n" +"$BarnacleButton.reparent($SplitContainer.get_drag_area_control())\n" +"[/codeblock]\n" +"[b]Note:[/b] The drag area [Control] is drawn over the [SplitContainer]'s " +"children, so [CanvasItem] draw objects called from the [Control] and children " +"added to the [Control] will also appear over the [SplitContainer]'s children. " +"Try setting [member Control.mouse_filter] of custom children to [constant " +"Control.MOUSE_FILTER_IGNORE] to prevent blocking the mouse from dragging if " +"desired.\n" +"[b]Warning:[/b] This is a required internal node, removing and freeing it may " +"cause a crash." +msgstr "" +"Повертає область перетягування [контроль]. Наприклад, ви можете перемістити " +"попередньо налаштовану кнопку в область перетягування [Керування], щоб вона " +"рухалася разом із роздільною смугою. Спробуйте встановити прив’язки [Button] " +"на [code]center[/code] перед викликом [code]reparent()[/code]. \n" +"[codeblock] \n" +"$BarnacleButton.reparent($SplitContainer.get_drag_area_control()) \n" +"[/codeblock] \n" +"[b]Примітка:[/b] Область перетягування [Control] малюється поверх дочірніх " +"елементів [SplitContainer], тому об’єкти малювання [CanvasItem], викликані з " +"[Control], і дочірні об’єкти, додані до [Control], також відображатимуться " +"над дочірніми елементами [SplitContainer]. Спробуйте встановити [member " +"Control.mouse_filter] користувацьких дочірніх елементів на [constant Control." +"MOUSE_FILTER_IGNORE], щоб запобігти блокуванню перетягування мишею, якщо це " +"потрібно. \n" +"[b]Попередження:[/b] Це обов’язковий внутрішній вузол, його видалення та " +"звільнення може призвести до збою." + +msgid "" +"If [code]true[/code], the dragger will be disabled and the children will be " +"sized as if the [member split_offset] was [code]0[/code]." +msgstr "" +"Якщо [code]true[/code], перетягувач буде вимкнено, а розмір дочірніх " +"елементів буде таким, якби [member split_offset] було [code]0[/code]." + +msgid "" +"Highlights the drag area [Rect2] so you can see where it is during " +"development. The drag area is gold if [member dragging_enabled] is " +"[code]true[/code], and red if [code]false[/code]." +msgstr "" +"Виділяє область перетягування [Rect2], щоб ви могли бачити, де вона " +"знаходиться під час розробки. Зона перетягування є золотою, якщо [member " +"dragging_enabled] має значення [code]true[/code], і червоною, якщо " +"[code]false[/code]." + +msgid "" +"Reduces the size of the drag area and split bar [theme_item " +"split_bar_background] at the beginning of the container." +msgstr "" +"Зменшує розмір області перетягування та панелі розділення [theme_item " +"split_bar_background] на початку контейнера." + +msgid "" +"Reduces the size of the drag area and split bar [theme_item " +"split_bar_background] at the end of the container." +msgstr "" +"Зменшує розмір області перетягування та панелі розділення [theme_item " +"split_bar_background] у кінці контейнера." + +msgid "" +"Shifts the drag area in the axis of the container to prevent the drag area " +"from overlapping the [ScrollBar] or other selectable [Control] of a child " +"node." +msgstr "" +"Зміщує область перетягування на осі контейнера, щоб запобігти перекриттю " +"області перетягування [ScrollBar] або іншого вибраного [Control] дочірнього " +"вузла." + +msgid "" +"Determines the dragger's visibility. See [enum DraggerVisibility] for " +"details. This property does not determine whether dragging is enabled or not. " +"Use [member dragging_enabled] for that." +msgstr "" +"Визначає видимість перетягувача. Дивіться [enum DraggerVisibility] для " +"деталей. Ця властивість не визначає, увімкнено перетягування чи ні. Для цього " +"використовуйте [member dragging_enabled]." + +msgid "Enables or disables split dragging." +msgstr "Вмикає або вимикає розділене перетягування." + msgid "" "The initial offset of the splitting between the two [Control]s, with [code]0[/" "code] being at the end of the first [Control]." @@ -130113,9 +161552,89 @@ msgstr "" "а не горизонтально.\n" "Не можна змінити при використанні [HSplitContainer] і [VSplitContainer]." +msgid "Emitted when the user ends dragging." +msgstr "Видається, коли користувач завершує перетягування." + +msgid "Emitted when the user starts dragging." +msgstr "Видається, коли користувач починає перетягувати." + msgid "Emitted when the dragger is dragged by user." msgstr "Випробувано, коли перетягування користувачем." +msgid "" +"The split dragger icon is always visible when [theme_item autohide] is " +"[code]false[/code], otherwise visible only when the cursor hovers it.\n" +"The size of the grabber icon determines the minimum [theme_item separation].\n" +"The dragger icon is automatically hidden if the length of the grabber icon is " +"longer than the split bar." +msgstr "" +"Піктограма розділеного перетягувача завжди видима, якщо [theme_item autohide] " +"має значення [code]false[/code], інакше вона відображається лише тоді, коли " +"на неї наводиться курсор. \n" +"Розмір піктограми захоплення визначає мінімальний [theme_item separation]. \n" +"Піктограма перетягування автоматично приховується, якщо довжина піктограми " +"захоплювача більша за смугу розділення." + +msgid "" +"The split dragger icon is never visible regardless of the value of " +"[theme_item autohide].\n" +"The size of the grabber icon determines the minimum [theme_item separation]." +msgstr "" +"Значок розділеного перетягувача ніколи не відображається незалежно від " +"значення [theme_item autohide].\n" +"Розмір піктограми захоплення визначає мінімальний [theme_item separation]." + +msgid "" +"The split dragger icon is not visible, and the split bar is collapsed to zero " +"thickness." +msgstr "" +"Значок розділеного перетягувача не видно, а панель розділення згорнуто до " +"нульової товщини." + +msgid "" +"Boolean value. If [code]1[/code] ([code]true[/code]), the grabber will hide " +"automatically when it isn't under the cursor. If [code]0[/code] ([code]false[/" +"code]), it's always visible. The [member dragger_visibility] must be " +"[constant DRAGGER_VISIBLE]." +msgstr "" +"Логічне значення. Якщо [code]1[/code] ([code]true[/code]), захоплювач " +"автоматично сховається, якщо він не знаходиться під курсором. Якщо [code]0[/" +"code] ([code]false[/code]), це завжди видно. [member dragger_visibility] має " +"бути [константа DRAGGER_VISIBLE]." + +msgid "" +"The minimum thickness of the area users can click on to grab the split bar. " +"This ensures that the split bar can still be dragged if [theme_item " +"separation] or [theme_item h_grabber] / [theme_item v_grabber]'s size is too " +"narrow to easily select." +msgstr "" +"Мінімальна товщина області, яку користувачі можуть натиснути, щоб захопити " +"розділену смугу. Це гарантує, що смугу розділення можна буде перетягнути, " +"якщо розмір [theme_item separation] або [theme_item h_grabber] / [theme_item " +"v_grabber] занадто малий, щоб легко вибрати." + +msgid "" +"The split bar thickness, i.e., the gap between the two children of the " +"container. This is overridden by the size of the grabber icon if [member " +"dragger_visibility] is set to [constant DRAGGER_VISIBLE], or [constant " +"DRAGGER_HIDDEN], and [theme_item separation] is smaller than the size of the " +"grabber icon in the same axis.\n" +"[b]Note:[/b] To obtain [theme_item separation] values less than the size of " +"the grabber icon, for example a [code]1 px[/code] hairline, set [theme_item " +"h_grabber] or [theme_item v_grabber] to a new [ImageTexture], which " +"effectively sets the grabber icon size to [code]0 px[/code]." +msgstr "" +"Товщина розділеної смуги, тобто зазор між двома дочірніми елементами " +"контейнера. Це замінюється розміром піктограми захоплювача, якщо [member " +"dragger_visibility] встановлено на [constant DRAGGER_VISIBLE] або [constant " +"DRAGGER_HIDDEN], а [theme_item separation] менший за розмір піктограми " +"захоплювача на тій самій осі. \n" +"[b]Примітка: [/b] Щоб отримати значення [theme_item separation], менші за " +"розмір піктограми захоплення, наприклад [code]1 пікс[/code], встановіть для " +"[theme_item h_grabber] або [theme_item v_grabber] нове значення " +"[ImageTexture], яке фактично встановлює розмір піктограми захоплення [code]0 " +"пікселів[/code]." + msgid "The icon used for the grabber drawn in the middle area." msgstr "" "Ікона, що використовується для захоплення, намальованої в середній зоні." @@ -130134,6 +161653,11 @@ msgstr "" "Ікона, що використовується для захоплення, намальованої в середній зоні, коли " "[пам'ятний вертикальний] [code]true[/code]." +msgid "" +"Determines the background of the split bar if its thickness is greater than " +"zero." +msgstr "Визначає фон розділеної смуги, якщо її товщина більша за нуль." + msgid "A spotlight, such as a reflector spotlight or a lantern." msgstr "Помітка, такі як світловідбивача або ліхтар." @@ -130248,6 +161772,9 @@ msgstr "" "осіб-камер, які переходять ближче до гравця, коли всередині щільного простору " "(необхідно виключити колорит гравця з контрольного зіткнення [SpringArm3D])." +msgid "Third-person camera with spring arm" +msgstr "Камера від третьої особи з пружинним кронштейном" + msgid "" "Adds the [PhysicsBody3D] object with the given [RID] to the list of " "[PhysicsBody3D] objects excluded from the collision check." @@ -130319,6 +161846,611 @@ msgstr "" "Щоб дізнатися більше про те, як виконати форму литкою або променем, будь " "ласка, проконсультуйтеся з документацією [PhysicsDirectState3D]." +msgid "" +"A base class of the collision that interacts with [SpringBoneSimulator3D]." +msgstr "Базовий клас зіткнення, який взаємодіє з [SpringBoneSimulator3D]." + +msgid "" +"A collision can be a child of [SpringBoneSimulator3D]. If it is not a child " +"of [SpringBoneSimulator3D], it has no effect.\n" +"The colliding and sliding are done in the [SpringBoneSimulator3D]'s " +"modification process in order of its collision list which is set by [method " +"SpringBoneSimulator3D.set_collision_path]. If [method SpringBoneSimulator3D." +"are_all_child_collisions_enabled] is [code]true[/code], the order matches " +"[SceneTree].\n" +"If [member bone] is set, it synchronizes with the bone pose of the ancestor " +"[Skeleton3D], which is done in before the [SpringBoneSimulator3D]'s " +"modification process as the pre-process.\n" +"[b]Warning:[/b] A scaled [SpringBoneCollision3D] will likely not behave as " +"expected. Make sure that the parent [Skeleton3D] and its bones are not scaled." +msgstr "" +"Зіткнення може бути дочірнім елементом [SpringBoneSimulator3D]. Якщо він не є " +"дочірнім елементом [SpringBoneSimulator3D], він не має ефекту. \n" +"Зіткнення та ковзання виконуються в процесі модифікації " +"[SpringBoneSimulator3D] у порядку списку зіткнень, який встановлюється " +"[методом SpringBoneSimulator3D.set_collision_path]. Якщо [method " +"SpringBoneSimulator3D.are_all_child_collisions_enabled] має значення " +"[code]true[/code], порядок відповідає [SceneTree]. \n" +"Якщо встановлено [member bone], воно синхронізується з позою кістки предка " +"[Skeleton3D], що виконується перед процесом модифікації " +"[SpringBoneSimulator3D] як попередній процес. \n" +"[b]Попередження: [/b] Масштабований [SpringBoneCollision3D], швидше за все, " +"не працюватиме належним чином. Переконайтеся, що батьківський [Skeleton3D] і " +"його кістки не масштабуються." + +msgid "" +"Get parent [Skeleton3D] node of the parent [SpringBoneSimulator3D] if found." +msgstr "" +"Отримати батьківський вузол [Skeleton3D] батьківського вузла " +"[SpringBoneSimulator3D], якщо знайдено." + +msgid "" +"The offset of the position from [Skeleton3D]'s [member bone] pose position." +msgstr "Зсув позиції порівняно з позицією [member bone] у [Skeleton3D]." + +msgid "" +"The offset of the rotation from [Skeleton3D]'s [member bone] pose rotation." +msgstr "Зсув обертання відносно обертання [member bone] [Skeleton3D]." + +msgid "A capsule shape collision that interacts with [SpringBoneSimulator3D]." +msgstr "Зіткнення форми капсули, що взаємодіє з [SpringBoneSimulator3D]." + +msgid "" +"If [code]true[/code], the collision acts to trap the joint within the " +"collision." +msgstr "" +"Якщо [code]true[/code], зіткнення захоплює з’єднання всередині зіткнення." + +msgid "A infinite plane collision that interacts with [SpringBoneSimulator3D]." +msgstr "Нескінченне зіткнення літаків, яке взаємодіє з [SpringBoneSimulator3D]." + +msgid "" +"A infinite plane collision that interacts with [SpringBoneSimulator3D]. It is " +"an infinite size XZ plane, and the +Y direction is treated as normal." +msgstr "" +"Нескінченне зіткнення літаків, яке взаємодіє з [SpringBoneSimulator3D]. Це " +"нескінченна площина XZ, і напрямок +Y розглядається як нормальний." + +msgid "A sphere shape collision that interacts with [SpringBoneSimulator3D]." +msgstr "Зіткнення форми сфери, яке взаємодіє з [SpringBoneSimulator3D]." + +msgid "The sphere's radius." +msgstr "Радіус кулі." + +msgid "A [SkeletonModifier3D] to apply inertial wavering to bone chains." +msgstr "" +"[SkeletonModifier3D] для застосування інерційного коливання до кісткових " +"ланцюгів." + +msgid "" +"This [SkeletonModifier3D] can be used to wiggle hair, cloth, and tails. This " +"modifier behaves differently from [PhysicalBoneSimulator3D] as it attempts to " +"return the original pose after modification.\n" +"If you setup [method set_root_bone] and [method set_end_bone], it is treated " +"as one bone chain. Note that it does not support a branched chain like Y-" +"shaped chains.\n" +"When a bone chain is created, an array is generated from the bones that exist " +"in between and listed in the joint list.\n" +"Several properties can be applied to each joint, such as [method " +"set_joint_stiffness], [method set_joint_drag], and [method " +"set_joint_gravity].\n" +"For simplicity, you can set values to all joints at the same time by using a " +"[Curve]. If you want to specify detailed values individually, set [method " +"set_individual_config] to [code]true[/code].\n" +"For physical simulation, [SpringBoneSimulator3D] can have children as self-" +"standing collisions that are not related to [PhysicsServer3D], see also " +"[SpringBoneCollision3D].\n" +"[b]Warning:[/b] A scaled [SpringBoneSimulator3D] will likely not behave as " +"expected. Make sure that the parent [Skeleton3D] and its bones are not scaled." +msgstr "" +"Цей [SkeletonModifier3D] можна використовувати для ворушіння волоссям, " +"тканиною та хвостами. Цей модифікатор поводиться інакше, ніж " +"[PhysicalBoneSimulator3D], оскільки намагається повернути вихідну позу після " +"модифікації. \n" +"Якщо ви налаштуєте [метод set_root_bone] і [метод set_end_bone], вони " +"розглядатимуться як один ланцюжок кісток. Зверніть увагу, що він не підтримує " +"розгалужений ланцюг, як Y-подібні ланцюги. \n" +"Коли створюється ланцюжок кісток, масив генерується з кісток, які існують між " +"ними та перераховані в спільному списку. \n" +"До кожного з’єднання можна застосувати кілька властивостей, наприклад [method " +"set_joint_stiffness], [method set_joint_drag] і [method set_joint_gravity]. \n" +"Для простоти ви можете встановити значення для всіх суглобів одночасно за " +"допомогою [Кривої]. Якщо ви хочете вказати докладні значення окремо, " +"установіть [method set_individual_config] на [code]true[/code]. \n" +"Для фізичного моделювання [SpringBoneSimulator3D] може мати дочірні елементи " +"як самостійні зіткнення, які не пов’язані з [PhysicsServer3D], див. також " +"[SpringBoneCollision3D]. \n" +"[b]Попередження: [/b] Масштабований [SpringBoneSimulator3D], швидше за все, " +"не працюватиме належним чином. Переконайтеся, що батьківський [Skeleton3D] і " +"його кістки не масштабуються." + +msgid "" +"Returns [code]true[/code] if the all child [SpringBoneCollision3D]s are " +"contained in the collision list at [param index] in the settings." +msgstr "" +"Повертає [code]true[/code], якщо всі дочірні елементи [SpringBoneCollision3D] " +"містяться в списку зіткнень у [param index] у налаштуваннях." + +msgid "" +"Clears all collisions from the collision list at [param index] in the " +"settings when [method are_all_child_collisions_enabled] is [code]false[/code]." +msgstr "" +"Очищає всі колізії зі списку колізій у [param index] у налаштуваннях, якщо " +"[method are_all_child_collisions_enabled] має значення [code]false[/code]." + +msgid "" +"Clears all exclude collisions from the collision list at [param index] in the " +"settings when [method are_all_child_collisions_enabled] is [code]true[/code]." +msgstr "" +"Очищає всі виключені зіткнення зі списку зіткнень у [param index] у " +"налаштуваннях, якщо [method are_all_child_collisions_enabled] має значення " +"[code]true[/code]." + +msgid "Clears all settings." +msgstr "Очищає всі налаштування." + +msgid "Returns the center bone index of the bone chain." +msgstr "Повертає індекс центральної кістки ланцюга кісток." + +msgid "Returns the center bone name of the bone chain." +msgstr "Повертає назву центральної кістки ланцюга кісток." + +msgid "Returns what the center originates from in the bone chain." +msgstr "Повертає те, з чого походить центр у кістковому ланцюзі." + +msgid "Returns the center node path of the bone chain." +msgstr "Повертає шлях центрального вузла кісткового ланцюга." + +msgid "" +"Returns the collision count of the bone chain's collision list when [method " +"are_all_child_collisions_enabled] is [code]false[/code]." +msgstr "" +"Повертає кількість зіткнень у списку зіткнень ланцюга кісток, якщо [метод " +"are_all_child_collisions_enabled] має значення [code]false[/code]." + +msgid "" +"Returns the node path of the [SpringBoneCollision3D] at [param collision] in " +"the bone chain's collision list when [method " +"are_all_child_collisions_enabled] is [code]false[/code]." +msgstr "" +"Повертає шлях до вузла [SpringBoneCollision3D] у [param collision] у списку " +"зіткнень ланцюжка кісток, коли [method are_all_child_collisions_enabled] має " +"значення [code]false[/code]." + +msgid "Returns the drag force damping curve of the bone chain." +msgstr "Повертає криву демпфування сили опору кісткового ланцюга." + +msgid "Returns the end bone index of the bone chain." +msgstr "Повертає індекс кінцевої кістки ланцюга кісток." + +msgid "" +"Returns the end bone's tail direction of the bone chain when [method " +"is_end_bone_extended] is [code]true[/code]." +msgstr "" +"Повертає напрямок хвоста кінцевої кістки ланцюжка кісток, якщо [method " +"is_end_bone_extended] має значення [code]true[/code]." + +msgid "" +"Returns the end bone's tail length of the bone chain when [method " +"is_end_bone_extended] is [code]true[/code]." +msgstr "" +"Повертає довжину хвоста кінцевої кістки ланцюжка кісток, якщо [метод " +"is_end_bone_extended] має значення [code]true[/code]." + +msgid "Returns the end bone name of the bone chain." +msgstr "Повертає назву кінцевої кістки ланцюжка кісток." + +msgid "" +"Returns the exclude collision count of the bone chain's exclude collision " +"list when [method are_all_child_collisions_enabled] is [code]true[/code]." +msgstr "" +"Повертає кількість виключених зіткнень зі списку виключених зіткнень ланцюга " +"кісток, якщо [method are_all_child_collisions_enabled] має значення " +"[code]true[/code]." + +msgid "" +"Returns the node path of the [SpringBoneCollision3D] at [param collision] in " +"the bone chain's exclude collision list when [method " +"are_all_child_collisions_enabled] is [code]true[/code]." +msgstr "" +"Повертає шлях до вузла [SpringBoneCollision3D] у [параметр зіткнення] у " +"списку виключених зіткнень ланцюжка кісток, коли [method " +"are_all_child_collisions_enabled] має значення [code]true[/code]." + +msgid "Returns the gravity amount of the bone chain." +msgstr "Повертає силу тяжіння ланцюга кісток." + +msgid "Returns the gravity amount damping curve of the bone chain." +msgstr "Повертає криву демпфування сили тяжіння кісткового ланцюга." + +msgid "Returns the gravity direction of the bone chain." +msgstr "Повертає напрямок сили тяжіння кісткового ланцюга." + +msgid "Returns the bone index at [param joint] in the bone chain's joint list." +msgstr "" +"Повертає індекс кістки в [param joint] у списку суглобів кісткового ланцюга." + +msgid "Returns the bone name at [param joint] in the bone chain's joint list." +msgstr "Повертає назву кістки в [param joint] у списку суглобів ланцюга кісток." + +msgid "Returns the joint count of the bone chain's joint list." +msgstr "Повертає кількість з’єднань у списку з’єднань кісткового ланцюга." + +msgid "Returns the drag force at [param joint] in the bone chain's joint list." +msgstr "" +"Повертає силу опору в [param joint] у списку суглобів кісткового ланцюга." + +msgid "" +"Returns the gravity amount at [param joint] in the bone chain's joint list." +msgstr "" +"Повертає силу тяжіння в [param joint] у списку суглобів кісткового ланцюга." + +msgid "" +"Returns the gravity direction at [param joint] in the bone chain's joint list." +msgstr "" +"Повертає напрямок сили тяжіння в [param joint] у списку суглобів кісткового " +"ланцюга." + +msgid "Returns the radius at [param joint] in the bone chain's joint list." +msgstr "Повертає радіус у [param joint] у списку суглобів кісткового ланцюга." + +msgid "" +"Returns the rotation axis at [param joint] in the bone chain's joint list." +msgstr "" +"Повертає вісь обертання в [param joint] у списку суглобів кісткового ланцюга." + +msgid "" +"Returns the stiffness force at [param joint] in the bone chain's joint list." +msgstr "" +"Повертає силу жорсткості в [param joint] у списку суглобів кісткового ланцюга." + +msgid "Returns the joint radius of the bone chain." +msgstr "Повертає радіус суглоба кісткового ланцюга." + +msgid "Returns the joint radius damping curve of the bone chain." +msgstr "Повертає криву демпфування радіуса суглоба кісткового ланцюга." + +msgid "Returns the root bone index of the bone chain." +msgstr "Повертає індекс кореневої кістки ланцюга кісток." + +msgid "Returns the root bone name of the bone chain." +msgstr "Повертає назву кореневої кістки ланцюга кісток." + +msgid "Returns the rotation axis of the bone chain." +msgstr "Повертає вісь обертання кісткового ланцюга." + +msgid "Returns the stiffness force of the bone chain." +msgstr "Повертає силу жорсткості кісткового ланцюга." + +msgid "Returns the stiffness force damping curve of the bone chain." +msgstr "Повертає криву амортизації сили жорсткості кісткового ланцюга." + +msgid "" +"Returns [code]true[/code] if the config can be edited individually for each " +"joint." +msgstr "" +"Повертає [code]true[/code], якщо конфігурацію можна редагувати окремо для " +"кожного з’єднання." + +msgid "Returns [code]true[/code] if the end bone is extended to have the tail." +msgstr "Повертає [code]true[/code], якщо кінцева кістка подовжена до хвоста." + +msgid "" +"Resets a simulating state with respect to the current bone pose.\n" +"It is useful to prevent the simulation result getting violent. For example, " +"calling this immediately after a call to [method AnimationPlayer.play] " +"without a fading, or within the previous [signal SkeletonModifier3D." +"modification_processed] signal if it's condition changes significantly." +msgstr "" +"Скидає стан імітації щодо поточної пози кістки. \n" +"Це корисно, щоб запобігти насильницькому результату моделювання. Наприклад, " +"виклик цього одразу після виклику [method AnimationPlayer.play] без затухання " +"або в межах попереднього сигналу [signal SkeletonModifier3D." +"modification_processed], якщо його умови суттєво змінюються." + +msgid "Sets the center bone index of the bone chain." +msgstr "Встановлює індекс центральної кістки кісткового ланцюга." + +msgid "Sets the center bone name of the bone chain." +msgstr "Встановлює назву центральної кістки ланцюга кісток." + +msgid "" +"Sets what the center originates from in the bone chain.\n" +"Bone movement is calculated based on the difference in relative distance " +"between center and bone in the previous and next frames.\n" +"For example, if the parent [Skeleton3D] is used as the center, the bones are " +"considered to have not moved if the [Skeleton3D] moves in the world.\n" +"In this case, only a change in the bone pose is considered to be a bone " +"movement." +msgstr "" +"Встановлює, з чого походить центр у кістковому ланцюзі. \n" +"Рух кістки обчислюється на основі різниці у відносній відстані між центром і " +"кісткою в попередньому та наступному кадрах. \n" +"Наприклад, якщо батьківський [Skeleton3D] використовується як центр, кістки " +"вважаються такими, що не рухалися, якщо [Skeleton3D] рухається у світі. \n" +"У цьому випадку рухом кістки вважається лише зміна пози кістки." + +msgid "Sets the center node path of the bone chain." +msgstr "Встановлює шлях центрального вузла кісткового ланцюга." + +msgid "" +"Sets the number of collisions in the collision list at [param index] in the " +"settings when [method are_all_child_collisions_enabled] is [code]false[/code]." +msgstr "" +"Встановлює кількість зіткнень у списку зіткнень у [param index] у " +"налаштуваннях, коли [method are_all_child_collisions_enabled] має значення " +"[code]false[/code]." + +msgid "" +"Sets the node path of the [SpringBoneCollision3D] at [param collision] in the " +"bone chain's collision list when [method are_all_child_collisions_enabled] is " +"[code]false[/code]." +msgstr "" +"Встановлює шлях до вузла [SpringBoneCollision3D] у [param collision] у списку " +"зіткнень ланцюга кісток, коли [method are_all_child_collisions_enabled] має " +"значення [code]false[/code]." + +msgid "" +"Sets the drag force of the bone chain. The greater the value, the more " +"suppressed the wiggling.\n" +"The value is scaled by [method set_drag_damping_curve] and cached in each " +"joint setting in the joint list." +msgstr "" +"Встановлює силу опору кісткового ланцюга. Чим більше значення, тим більше " +"пригнічується ворушіння. \n" +"Значення масштабується за допомогою [методу set_drag_damping_curve] і " +"кешується в кожному параметрі з’єднання в списку з’єднань." + +msgid "Sets the drag force damping curve of the bone chain." +msgstr "Встановлює криву амортизації сили опору кісткового ланцюга." + +msgid "" +"If sets [param enabled] to [code]true[/code], the all child " +"[SpringBoneCollision3D]s are collided and [method set_exclude_collision_path] " +"is enabled as an exclusion list at [param index] in the settings.\n" +"If sets [param enabled] to [code]false[/code], you need to manually register " +"all valid collisions with [method set_collision_path]." +msgstr "" +"Якщо для [param enabled] встановлено значення [code]true[/code], усі дочірні " +"елементи [SpringBoneCollision3D] зіткнуться, а [method " +"set_exclude_collision_path] увімкнеться як список виключень у [param index] у " +"налаштуваннях. \n" +"Якщо для [param enabled] встановлено значення [code]false[/code], вам " +"потрібно вручну зареєструвати всі дійсні зіткнення за допомогою [method " +"set_collision_path]." + +msgid "Sets the end bone index of the bone chain." +msgstr "Встановлює кінцевий кістковий індекс кісткового ланцюга." + +msgid "" +"Sets the end bone tail direction of the bone chain when [method " +"is_end_bone_extended] is [code]true[/code]." +msgstr "" +"Встановлює напрямок кінцевої кістки ланцюжка кісток, якщо [method " +"is_end_bone_extended] має значення [code]true[/code]." + +msgid "" +"Sets the end bone tail length of the bone chain when [method " +"is_end_bone_extended] is [code]true[/code]." +msgstr "" +"Встановлює довжину хвоста кінцевої кістки ланцюжка кісток, якщо [method " +"is_end_bone_extended] має значення [code]true[/code]." + +msgid "" +"Sets the end bone name of the bone chain.\n" +"[b]Note:[/b] End bone must be the root bone or a child of the root bone. If " +"they are the same, the tail must be extended by [method set_extend_end_bone] " +"to jiggle the bone." +msgstr "" +"Встановлює назву кінцевої кістки ланцюга кісток. \n" +"[b]Примітка.[/b] Кінцева кістка має бути кореневою кісткою або дочірньою " +"кісткою кореня. Якщо вони однакові, хвіст потрібно подовжити за допомогою " +"[методу set_extend_end_bone], щоб похитнути кісткою." + +msgid "" +"Sets the number of exclude collisions in the exclude collision list at [param " +"index] in the settings when [method are_all_child_collisions_enabled] is " +"[code]true[/code]." +msgstr "" +"Встановлює кількість колізій виключення в списку колізій виключення в [param " +"index] у налаштуваннях, коли [method are_all_child_collisions_enabled] має " +"значення [code]true[/code]." + +msgid "" +"Sets the node path of the [SpringBoneCollision3D] at [param collision] in the " +"bone chain's exclude collision list when [method " +"are_all_child_collisions_enabled] is [code]true[/code]." +msgstr "" +"Встановлює шлях до вузла [SpringBoneCollision3D] у [параметр зіткнення] у " +"списку виключених зіткнень ланцюжка кісток, коли [method " +"are_all_child_collisions_enabled] має значення [code]true[/code]." + +msgid "" +"If [param enabled] is [code]true[/code], the end bone is extended to have the " +"tail.\n" +"The extended tail config is allocated to the last element in the joint list.\n" +"In other words, if you set [param enabled] is [code]false[/code], the config " +"of last element in the joint list has no effect in the simulated result." +msgstr "" +"Якщо [param enabled] має значення [code]true[/code], кінцева кістка " +"подовжується, щоб мати хвіст. \n" +"Конфігурація розширеного хвоста призначається останньому елементу в спільному " +"списку. \n" +"Іншими словами, якщо ви встановите [param enabled] як [code]false[/code], " +"конфігурація останнього елемента в спільному списку не матиме впливу на " +"змодельований результат." + +msgid "" +"Sets the gravity amount of the bone chain. This value is not an acceleration, " +"but a constant velocity of movement in [method set_gravity_direction].\n" +"If [param gravity] is not [code]0[/code], the modified pose will not return " +"to the original pose since it is always affected by gravity.\n" +"The value is scaled by [method set_gravity_damping_curve] and cached in each " +"joint setting in the joint list." +msgstr "" +"Встановлює ступінь сили тяжіння кісткового ланцюга. Це значення не є " +"прискоренням, а постійною швидкістю руху в [метод set_gravity_direction]. \n" +"Якщо [param gravity] не [code]0[/code], змінена поза не повернеться до " +"початкової пози, оскільки на неї завжди впливає гравітація. \n" +"Значення масштабується [методом set_gravity_damping_curve] і кешується в " +"налаштуваннях кожного з’єднання в списку з’єднань." + +msgid "Sets the gravity amount damping curve of the bone chain." +msgstr "Встановлює криву демпфування сили тяжіння кісткового ланцюга." + +msgid "" +"Sets the gravity direction of the bone chain. This value is internally " +"normalized and then multiplied by [method set_gravity].\n" +"The value is cached in each joint setting in the joint list." +msgstr "" +"Встановлює напрямок сили тяжіння кісткового ланцюга. Це значення внутрішньо " +"нормалізується, а потім множиться на [метод set_gravity].\n" +"Значення зберігається в кеш-пам’яті в кожному параметрі об’єднання в списку " +"об’єднань." + +msgid "" +"If [param enabled] is [code]true[/code], the config can be edited " +"individually for each joint." +msgstr "" +"Якщо [param enabled] має значення [code]true[/code], конфігурацію можна " +"редагувати окремо для кожного з’єднання." + +msgid "" +"Sets the drag force at [param joint] in the bone chain's joint list when " +"[method is_config_individual] is [code]true[/code]." +msgstr "" +"Встановлює силу опору для [param joint] у списку суглобів кісткового ланцюга, " +"якщо [method is_config_individual] має значення [code]true[/code]." + +msgid "" +"Sets the gravity amount at [param joint] in the bone chain's joint list when " +"[method is_config_individual] is [code]true[/code]." +msgstr "" +"Встановлює силу тяжіння в [param joint] у списку суглобів кісткового ланцюга, " +"якщо [method is_config_individual] має значення [code]true[/code]." + +msgid "" +"Sets the gravity direction at [param joint] in the bone chain's joint list " +"when [method is_config_individual] is [code]true[/code]." +msgstr "" +"Встановлює напрямок сили тяжіння для [param joint] у списку суглобів " +"кісткового ланцюга, якщо [method is_config_individual] має значення " +"[code]true[/code]." + +msgid "" +"Sets the joint radius at [param joint] in the bone chain's joint list when " +"[method is_config_individual] is [code]true[/code]." +msgstr "" +"Встановлює радіус суглоба на [param joint] у списку суглобів кісткового " +"ланцюга, якщо [method is_config_individual] має значення [code]true[/code]." + +msgid "" +"Sets the rotation axis at [param joint] in the bone chain's joint list when " +"[method is_config_individual] is [code]true[/code]." +msgstr "" +"Встановлює вісь обертання в [param joint] у списку суглобів кісткового " +"ланцюга, якщо [method is_config_individual] має значення [code]true[/code]." + +msgid "" +"Sets the stiffness force at [param joint] in the bone chain's joint list when " +"[method is_config_individual] is [code]true[/code]." +msgstr "" +"Встановлює силу жорсткості для [param joint] у списку суглобів кісткового " +"ланцюга, якщо [method is_config_individual] має значення [code]true[/code]." + +msgid "" +"Sets the joint radius of the bone chain. It is used to move and slide with " +"the [SpringBoneCollision3D] in the collision list.\n" +"The value is scaled by [method set_radius_damping_curve] and cached in each " +"joint setting in the joint list." +msgstr "" +"Встановлює радіус суглоба кісткового ланцюга. Він використовується для " +"переміщення та ковзання за допомогою [SpringBoneCollision3D] у списку " +"зіткнень. \n" +"Значення масштабується [методом set_radius_damping_curve] і кешується в " +"кожному параметрі з’єднання в списку з’єднань." + +msgid "Sets the joint radius damping curve of the bone chain." +msgstr "Встановлює криву демпфування радіуса суглоба кісткового ланцюга." + +msgid "Sets the root bone index of the bone chain." +msgstr "Встановлює індекс кореневої кістки кісткового ланцюга." + +msgid "Sets the root bone name of the bone chain." +msgstr "Встановлює назву кореневої кістки ланцюга кісток." + +msgid "" +"Sets the rotation axis of the bone chain. If sets a specific axis, it acts " +"like a hinge joint.\n" +"The value is cached in each joint setting in the joint list.\n" +"[b]Note:[/b] The rotation axis and the forward vector shouldn't be colinear " +"to avoid unintended rotation since [SpringBoneSimulator3D] does not factor in " +"twisting forces." +msgstr "" +"Встановлює вісь обертання кісткового ланцюга. Якщо встановлюється певна вісь, " +"вона діє як шарнірне з’єднання. \n" +"Значення зберігається в кеш-пам’яті в кожному параметрі об’єднання в списку " +"об’єднань. \n" +"[b]Примітка: [/b] Вісь обертання та вектор вперед не повинні бути " +"колінеарними, щоб уникнути ненавмисного обертання, оскільки " +"[SpringBoneSimulator3D] не враховує сили скручування." + +msgid "" +"Sets the stiffness force of the bone chain. The greater the value, the faster " +"it recovers to its initial pose.\n" +"If [param stiffness] is [code]0[/code], the modified pose will not return to " +"the original pose.\n" +"The value is scaled by [method set_stiffness_damping_curve] and cached in " +"each joint setting in the joint list." +msgstr "" +"Встановлює силу жорсткості кісткового ланцюга. Чим більше значення, тим " +"швидше він повертається до початкового положення. \n" +"Якщо [param stiffness] дорівнює [code]0[/code], змінена поза не повернеться " +"до початкової пози. \n" +"Значення масштабується [методом set_stiffness_damping_curve] і кешується в " +"налаштуваннях кожного з’єднання в списку з’єднань." + +msgid "Sets the stiffness force damping curve of the bone chain." +msgstr "Встановлює криву амортизації сили жорсткості кісткового ланцюга." + +msgid "The number of settings." +msgstr "Кількість налаштувань." + +msgid "Enumerated value for the axis from a parent bone to the child bone." +msgstr "" +"Перераховане значення для осі від батьківської кістки до дочірньої кістки." + +msgid "The world origin is defined as center." +msgstr "Початок світу визначається як центр." + +msgid "" +"The [Node3D] specified by [method set_center_node] is defined as center.\n" +"If [Node3D] is not found, the parent [Skeleton3D] is treated as center." +msgstr "" +"[Node3D], визначений [методом set_center_node], визначається як центр.\n" +"Якщо [Node3D] не знайдено, батьківський [Skeleton3D] розглядається як центр." + +msgid "" +"The bone pose origin of the parent [Skeleton3D] specified by [method " +"set_center_bone] is defined as center.\n" +"If [Node3D] is not found, the parent [Skeleton3D] is treated as center." +msgstr "" +"Позиція кістки батьківського елемента [Skeleton3D], визначена [методом " +"set_center_bone], визначається як центр.\n" +"Якщо [Node3D] не знайдено, батьківський [Skeleton3D] розглядається як центр." + +msgid "Enumerated value for the rotation of the X axis." +msgstr "Перераховане значення повороту осі Х." + +msgid "Enumerated value for the rotation of the Y axis." +msgstr "Перераховане значення повороту осі Y." + +msgid "Enumerated value for the rotation of the Z axis." +msgstr "Перераховане значення повороту осі Z." + +msgid "Enumerated value for the unconstrained rotation." +msgstr "Перераховане значення для необмеженого обертання." + msgid "General-purpose sprite node." msgstr "Універсальний спрайтний вузол." @@ -130329,6 +162461,63 @@ msgstr "" "Вузлом, який відображає текстуру 2D. Текстура відображається може бути " "регіоном з більшої текстури атласів, або кадром з анімації аркуша спрайта." +msgid "" +"Returns a [Rect2] representing the Sprite2D's boundary in local coordinates.\n" +"[b]Example:[/b] Detect if the Sprite2D was clicked:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _input(event):\n" +" if event is InputEventMouseButton and event.pressed and event." +"button_index == MOUSE_BUTTON_LEFT:\n" +" if get_rect().has_point(to_local(event.position)):\n" +" print(\"A click!\")\n" +"[/gdscript]\n" +"[csharp]\n" +"public override void _Input(InputEvent @event)\n" +"{\n" +" if (@event is InputEventMouseButton inputEventMouse)\n" +" {\n" +" if (inputEventMouse.Pressed && inputEventMouse.ButtonIndex == " +"MouseButton.Left)\n" +" {\n" +" if (GetRect().HasPoint(ToLocal(inputEventMouse.Position)))\n" +" {\n" +" GD.Print(\"A click!\");\n" +" }\n" +" }\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Повертає [Rect2], що представляє межу Sprite2D у локальних координатах. \n" +"[b]Приклад:[/b] Визначити, чи було натиснуто Sprite2D: \n" +"[codeblocks] \n" +"[gdscript] \n" +"func _input(event): \n" +" if event is InputEventMouseButton and event.pressed and event." +"button_index == MOUSE_BUTTON_LEFT: \n" +" if get_rect().has_point(to_local(event.position)): \n" +" print(\"Клац!\") \n" +"[/gdscript] \n" +"[csharp] \n" +"public override void _Input(InputEvent @event) \n" +"{\n" +" if (@event is InputEventMouseButton inputEventMouse) \n" +" { \n" +" if (inputEventMouse.Pressed && inputEventMouse.ButtonIndex == " +"MouseButton.Left) \n" +" { \n" +" if (GetRect().HasPoint(ToLocal(inputEventMouse.Position))) \n" +" { \n" +" GD.Print(\"Один клік!\"); \n" +" } \n" +" } \n" +" } \n" +"}\n" +"[/csharp] \n" +"[/codeblocks]" + msgid "" "Returns [code]true[/code], if the pixel at the given position is opaque and " "[code]false[/code] in other case. The position is in local coordinates.\n" @@ -130395,6 +162584,15 @@ msgstr "" "Якщо [code]true[/code], текстура вирізається від більшої текстури атласу. " "Див. [Пам'ятий регіон_рекція]." +msgid "" +"If [code]true[/code], the area outside of the [member region_rect] is clipped " +"to avoid bleeding of the surrounding texture pixels. [member region_enabled] " +"must be [code]true[/code]." +msgstr "" +"Якщо [code]true[/code], область за межами [member region_rect] обрізається, " +"щоб уникнути витоку навколишніх пікселів текстури. [member region_enabled] " +"має мати значення [code]true[/code]." + msgid "" "The region of the atlas texture to display. [member region_enabled] must be " "[code]true[/code]." @@ -130663,6 +162861,14 @@ msgid "" "created." msgstr "Видалити всі анімації. Створено порожній [code]default[/code] анімації." +msgid "" +"Duplicates the animation [param anim_from] to a new animation named [param " +"anim_to]. Fails if [param anim_to] already exists, or if [param anim_from] " +"does not exist." +msgstr "" +"Дублює анімацію [param anim_from] у нову анімацію з назвою [param anim_to]. " +"Помилка, якщо [param anim_to] вже існує або якщо [param anim_from] не існує." + msgid "" "Returns [code]true[/code] if the given animation is configured to loop when " "it finishes playing. Otherwise, returns [code]false[/code]." @@ -130697,15 +162903,15 @@ msgid "" "get_playing_speed]." msgstr "" "Повертає відносну тривалість кадру [param idx] в анімації [param anim] (за " -"замовчуванням to [code]1.0[/code]). Наприклад, рама з тривалістю [code]2.0[/" -"code] виводиться двічі до тих пір, як кадр з тривалістю [code]1.0[/code]. Ви " -"можете розрахувати абсолютну тривалість (в секундах) кадру за допомогою " -"наступної формули:\n" -"[блокування коду]\n" -"абсолютний_duration = відносна_duration / (анімація_fps * abs(play_speed)))\n" -"[/codeblock]\n" -"У цьому прикладі [code]playing_speed[/code] відноситься до або [метод " -"анімованихSprite2D.get_playing_speed] або [метод анімованихSprite3D." +"замовчуванням [code]1.0[/code]). Наприклад, кадр тривалістю [code]2.0[/code] " +"відображається вдвічі довший за кадр тривалістю [code]1.0[/code]. Ви можете " +"обчислити абсолютну тривалість (у секундах) кадру за такою формулою: \n" +"[codeblock] \n" +"absolute_duration = relative_duration / (animation_fps * " +"abs(playing_speed)) \n" +"[/codeblock] \n" +"У цьому прикладі [code]playing_speed[/code] стосується або [методу " +"AnimatedSprite2D.get_playing_speed], або [методу AnimatedSprite3D." "get_playing_speed]." msgid "" @@ -130928,6 +163134,9 @@ msgstr "Gets a double-precision float from the потік." msgid "Gets a single-precision float from the stream." msgstr "Gets a single-precision плавати від потоку." +msgid "Gets a half-precision float from the stream." +msgstr "Отримує плаваюче значення напівточності з потоку." + msgid "" "Returns a chunk data with the received bytes. The number of bytes to be " "received can be requested in the \"bytes\" argument. If not enough bytes are " @@ -131015,6 +163224,9 @@ msgstr "Поставить подвійну точність плавати в msgid "Puts a single-precision float into the stream." msgstr "Поставить одноточну порцію в потік." +msgid "Puts a half-precision float into the stream." +msgstr "Розміщує поплавок напівточності в потік." + msgid "" "Sends a chunk of data through the connection. If all the data could not be " "sent at once, only part of it will. This function returns two values, an " @@ -131039,17 +163251,17 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Постав нульовий перевизнаний ASCII рядок в потік, попередньо підготовлений 32-" -"розрядним цілим, що представляє його розмір.\n" -"[b]Примітка:[/b] Щоб покласти рядок ASCII без попереднього закінчення його " -"розміру, ви можете використовувати [метод кладки_data]:\n" -"[блоки коду]\n" -"[видання]\n" -"Теги: \"Hello world\"\n" -"[/gdscript]\n" -"[csharp]\n" -"PutData(\"Hello World\".ToAsciiBuffer());\n" -"[/csharp]\n" +"Розміщує рядок ASCII із нульовим завершенням у потік, перед яким ставиться 32-" +"розрядне ціле число без знаку, що представляє його розмір. \n" +"[b]Примітка.[/b] Щоб розмістити рядок ASCII без додавання його розміру, ви " +"можете використати [метод put_data]: \n" +"[codeblocks] \n" +"[gdscript] \n" +"put_data(\"Hello, world\".to_ascii_buffer()) \n" +"[/gdscript] \n" +"[csharp] \n" +"PutData(\"Hello World\".ToAsciiBuffer()); \n" +"[/csharp] \n" "[/codeblocks]" msgid "Puts an unsigned byte into the stream." @@ -131078,17 +163290,17 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Постав нульовий termind UTF-8 рядок в потік, попередньо підготовлений 32 " -"бітами, не позначений ціле, що представляє його розмір.\n" -"[b]Примітка:[/b] Щоб покласти рядок UTF-8 без попередньої обробки його " -"розміру, ви можете використовувати [метод клацання_data]:\n" -"[блоки коду]\n" -"[видання]\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"[/gdscript]\n" -"[csharp]\n" -"PutData(\"Hello World\".ToUtf8Buffer());\n" -"[/csharp]\n" +"Розміщує рядок UTF-8 із нульовим завершенням у потік із 32-бітовим цілим " +"числом без знаку, що представляє його розмір. \n" +"[b]Примітка.[/b] Щоб розмістити рядок UTF-8 без додавання його розміру, ви " +"можете використати [метод put_data]: \n" +"[codeblocks] \n" +"[gdscript] \n" +"put_data(\"Hello world\".to_utf8_buffer()) \n" +"[/gdscript] \n" +"[csharp] \n" +"PutData(\"Hello World\".ToUtf8Buffer()); \n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -131374,6 +163586,42 @@ msgstr "" msgid "A built-in type for strings." msgstr "Вбудований тип для рядків." +msgid "" +"This is the built-in string Variant type (and the one used by GDScript). " +"Strings may contain any number of Unicode characters, and expose methods " +"useful for manipulating and generating strings. Strings are reference-counted " +"and use a copy-on-write approach (every modification to a string returns a " +"new [String]), so passing them around is cheap in resources.\n" +"Some string methods have corresponding variations. Variations suffixed with " +"[code]n[/code] ([method countn], [method findn], [method replacen], etc.) are " +"[b]case-insensitive[/b] (they make no distinction between uppercase and " +"lowercase letters). Method variations prefixed with [code]r[/code] ([method " +"rfind], [method rsplit], etc.) are reversed, and start from the end of the " +"string, instead of the beginning.\n" +"To convert any [Variant] to or from a string, see [method @GlobalScope.str], " +"[method @GlobalScope.str_to_var], and [method @GlobalScope.var_to_str].\n" +"[b]Note:[/b] In a boolean context, a string will evaluate to [code]false[/" +"code] if it is empty ([code]\"\"[/code]). Otherwise, a string will always " +"evaluate to [code]true[/code]." +msgstr "" +"Це вбудований тип рядка Variant (і той, що використовується GDScript). Рядки " +"можуть містити будь-яку кількість символів Unicode та надавати методи, " +"корисні для маніпулювання та генерування рядків. Рядки підраховуються за " +"посиланнями та використовують підхід копіювання під час запису (кожна зміна " +"рядка повертає новий [String]), тому їх передача коштує дешево. \n" +"Деякі рядкові методи мають відповідні варіації. Варіанти з суфіксом [code]n[/" +"code] ([method countn], [method findn], [method replacen] тощо) [b]нечутливі " +"до регістру[/b] (вони не роблять різниці між великими та малими літерами). " +"Варіанти методів із префіксом [code]r[/code] ([метод rfind], [метод rsplit] " +"тощо) змінюються на протилежні та починаються з кінця рядка, а не з " +"початку. \n" +"Щоб перетворити будь-який [Variant] у рядок або з нього, перегляньте [метод " +"@GlobalScope.str], [метод @GlobalScope.str_to_var] і [метод @GlobalScope." +"var_to_str]. \n" +"[b]Примітка:[/b] У логічному контексті рядок матиме значення [code]false[/" +"code], якщо він порожній ([code]\"\"[/code]). В іншому випадку рядок завжди " +"матиме значення [code]true[/code]." + msgid "GDScript format strings" msgstr "GDScript формат рядки" @@ -131404,10 +163652,10 @@ msgid "" "\"up\", \"p!\"]\n" "[/codeblock]" msgstr "" -"Повертає масив, що містить масиви (пари послідовних символів) цього рядка.\n" -"[блокування коду]\n" -"Друк(\"Get up!\".bigrams() # Друки [\"Ge\", \"et\", \"t \", u\", \"up\", \"p!" -"\"]\n" +"Повертає масив, що містить біграми (пари послідовних символів) цього рядка.\n" +"[codeblock]\n" +"print(\"Вставай!\".bigrams()) # Виводить [\"Ge\", \"et\", \"t \", \" u\", " +"\"up\", \"p!\"]\n" "[/codeblock]" msgid "" @@ -131427,20 +163675,20 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Перетворює рядок, що представляє бінарний номер в [int]. string може бути " -"попередньофіксовано [code]\"0b\"[/code], а також додаткове [code]-[/code] " -"префікс для негативних чисел.\n" -"[блоки коду]\n" -"[видання]\n" -"Друк(\"101.bin_to_int()) # Друки 5\n" -"Друк(\"0b101.bin_to_int()) # Друки 5\n" -"Друк(\"-0b10.bin_to_int() # Друки -2\n" -"[/gdscript]\n" -"[csharp]\n" -"GD.Print(\"101.BinToInt()); // Друк 5\n" -"GD.Print(\"0b101\".BinToInt()); // Друк 5\n" -"GD.Print(\"-0b10.BinToInt()); // Друки -2\n" -"[/csharp]\n" +"Перетворює рядок, що представляє двійкове число, на [int]. Рядок може " +"додатково мати префікс [code]\"0b\"[/code] і додатковий префікс [code]-[/" +"code] для від’ємних чисел. \n" +"[codeblocks] \n" +"[gdscript] \n" +"print(\"101\".bin_to_int()) # Виводить 5 \n" +"print(\"0b101\".bin_to_int()) # Виводить 5 \n" +"print(\"-0b10\".bin_to_int()) # Виводить -2 \n" +"[/gdscript] \n" +"[csharp] \n" +"GD.Print(\"101\".BinToInt()); // Виводить 5 \n" +"GD.Print(\"0b101\".BinToInt()); // Виводить 5 \n" +"GD.Print(\"-0b10\".BinToInt()); // Виводить -2 \n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -131483,21 +163731,21 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Змінює зовнішній вигляд рядка: замінює низи ([code]_[/code]) з пробілами, " -"додає пробіли перед літерами верхнього регістру в середині слова, перетворює " -"всі літери в нижній регістр, потім перетворює перший і кожен наступний " -"простір у верхній частині.\n" -"[блоки коду]\n" -"[видання]\n" -"\"move_local_x\".capitalize() # Повернутися до \"Move Local X\"\n" -"\"sceneFile_path\".capitalize() # Повертає \"Scene File Path\"\n" -"\"2D, FPS, PNG\".capitalize() # Повертає \"2d, Fps, Png\"\n" -"[/gdscript]\n" -"[csharp]\n" -"\"move_local_x\".Capitalize(); // Повертає \"Мове місцеве X\"\n" -"\"sceneFile_path.Capitalize(); // Повертає \"Швидкий шлях файлу\"\n" -"\"2D, FPS, PNG\".Капіталізація(); // Повертає \"2d, Fps, Png\"\n" -"[/csharp]\n" +"Змінює зовнішній вигляд рядка: замінює підкреслення ([code]_[/code]) " +"пробілами, додає пробіли перед великими літерами в середині слова, перетворює " +"всі літери на малі, потім перетворює першу та кожну наступну за пробілом у " +"верхній регістр. \n" +"[codeblocks] \n" +"[gdscript] \n" +"\"move_local_x\".capitalize() # Повертає \"Move Local X\" \n" +"\"sceneFile_path\".capitalize() # Повертає \"Шлях до файлу сцени\" \n" +"\"2D, FPS, PNG\".capitalize() # Повертає \"2D, FPS, PNG\" \n" +"[/gdscript] \n" +"[csharp] \n" +"\"move_local_x\".Capitalize(); // Повертає \"Move Local X\" \n" +"\"sceneFile_path\".Capitalize(); // Повертає \"Шлях до файлу сцени\" \n" +"\"2D, FPS, PNG\". Capitalize(); // Повертає \"2d, Fps, Png\" \n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -131534,15 +163782,47 @@ msgid "" "print(String.chr(129302)) # Prints \"🤖\" (robot face emoji)\n" "[/codeblock]" msgstr "" -"Повертає єдиний символ Unicode від десяткового [параметра]. Ви можете " +"Повертає один символ Unicode з десяткового дробу [param char]. Ви можете " "використовувати [url=https://unicodelookup.com/]unicodelookup.com[/url] або " -"[url=https://www.unicode.org/charts/]unicode.org[/url] у вигляді точок " -"посилання.\n" -"[блокування коду]\n" -"Друк(String.chr(65)) # Друки \"A\"\n" -"Друк(String.chr(129302)) # Друки \"🤖\" (робота обличчя смайлики)\n" +"[url=https://www.unicode.org/charts/]unicode.org[/url] як точки відліку. \n" +"[codeblock] \n" +"print(String.chr(65)) # Виводить \"A\" \n" +"print(String.chr(129302)) # Друкує \"🤖\" (емодзі обличчя робота) \n" "[/codeblock]" +msgid "" +"Returns [code]true[/code] if the string contains [param what]. In GDScript, " +"this corresponds to the [code]in[/code] operator.\n" +"[codeblocks]\n" +"[gdscript]\n" +"print(\"Node\".contains(\"de\")) # Prints true\n" +"print(\"team\".contains(\"I\")) # Prints false\n" +"print(\"I\" in \"team\") # Prints false\n" +"[/gdscript]\n" +"[csharp]\n" +"GD.Print(\"Node\".Contains(\"de\")); // Prints True\n" +"GD.Print(\"team\".Contains(\"I\")); // Prints False\n" +"[/csharp]\n" +"[/codeblocks]\n" +"If you need to know where [param what] is within the string, use [method " +"find]. See also [method containsn]." +msgstr "" +"Повертає [code]true[/code], якщо рядок містить [param what]. У GDScript це " +"відповідає оператору [code]in[/code]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"print(\"Node\".contains(\"de\")) # Виводить true \n" +"print(\"team\".contains(\"I\")) # Виводить false \n" +"print(\"I\" in \"team\") # Виводить false \n" +"[/gdscript] \n" +"[csharp] \n" +"GD.Print(\"Вузол\".Містить(\"de\")); // Виводить True \n" +"GD.Print(\"команда\".Містить(\"Я\")); // Виводить False \n" +"[/csharp] \n" +"[/codeblocks] \n" +"Якщо вам потрібно дізнатися, де знаходиться [param what] у рядку, " +"використовуйте [method find]. Дивіться також [метод міститьn]." + msgid "" "Returns [code]true[/code] if the string contains [param what], [b]ignoring " "case[/b].\n" @@ -131652,28 +163932,28 @@ msgid "" "what], use [method contains]. In GDScript, you may also use the [code]in[/" "code] operator." msgstr "" -"Повертає індекс [b]перший[/b] поява [пам'яті чого] в цьому рядку, або " -"[code]-1[/code], якщо немає. Початок пошуку можна вказати за допомогою " -"[param], що триває до кінця рядка.\n" -"[блоки коду]\n" -"[видання]\n" -"Друк(\"Team.find(\"I\") # Друки -1\n" +"Повертає індекс [b]першої[/b] появи [param what] у цьому рядку або [code]-1[/" +"code], якщо їх немає. Початок пошуку можна вказати за допомогою [param from], " +"продовжуючи до кінця рядка. \n" +"[codeblocks] \n" +"[gdscript] \n" +"print(\"Команда\".find(\"Я\")) # Виводить -1 \n" "\n" -"Друк( \"Potato\".find(\"t\") # Друк 2\n" -"Друк(\"Potato\".find(\"t\", 3) # Друк 4\n" -"Друк( \"Potato\".find(\"t, 5) # Друки -1\n" -"[/gdscript]\n" -"[csharp]\n" -"GD.Print(\"Team\".Find(\"I\")); // Друки -1\n" +"print(\"Картопля\".find(\"t\")) # Виводить 2 \n" +"print(\"Картопля\".find(\"t\", 3)) # Виводить 4 \n" +"print(\"Картопля\".find(\"t\", 5)) # Виводить -1 \n" +"[/gdscript] \n" +"[csharp] \n" +"GD.Print(\"Команда\".Знайти(\"Я\")); // Виводить -1 \n" "\n" -"GD.Print(\"Potato\".Find(\"t\")); // Друк 2\n" -"GD.Print(\"Potato\".Find(\"t\", 3)); // Друк 4\n" -"GD.Print(\"Potato\".Find(\"t\", 5)); // Друк -1\n" -"[/csharp]\n" -"[/codeblocks]\n" -"[b]Примітка:[/b] Якщо ви просто хочете дізнатися, чи містить рядок [пара, " -"що], скористайтеся [метод містить]. У GDScript ви також можете скористатися " -"оператором [code] в [/code]." +"GD.Print(\"Картопля\".Знайти(\"t\")); // Друкує 2 \n" +"GD.Print(\"Картопля\".Знайти(\"t\", 3)); // Друкує 4 \n" +"GD.Print(\"Картопля\".Знайти(\"t\", 5)); // Виводить -1 \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка:[/b] Якщо ви просто хочете знати, чи містить рядок [param what], " +"використовуйте [method contains]. У GDScript ви також можете використовувати " +"оператор [code]in[/code]." msgid "" "Returns the index of the [b]first[/b] [b]case-insensitive[/b] occurrence of " @@ -131685,6 +163965,111 @@ msgstr "" "в цьому рядку, або [code]-1[/code], якщо немає. Початковий індекс пошуку " "можна вказати за допомогою [param], що триває до кінця рядка." +msgid "" +"Formats the string by replacing all occurrences of [param placeholder] with " +"the elements of [param values].\n" +"[param values] can be a [Dictionary], an [Array], or an [Object]. Any " +"underscores in [param placeholder] will be replaced with the corresponding " +"keys in advance. Array elements use their index as keys.\n" +"[codeblock]\n" +"# Prints \"Waiting for Godot is a play by Samuel Beckett, and Godot Engine is " +"named after it.\"\n" +"var use_array_values = \"Waiting for {0} is a play by {1}, and {0} Engine is " +"named after it.\"\n" +"print(use_array_values.format([\"Godot\", \"Samuel Beckett\"]))\n" +"\n" +"# Prints \"User 42 is Godot.\"\n" +"print(\"User {id} is {name}.\".format({\"id\": 42, \"name\": \"Godot\"}))\n" +"[/codeblock]\n" +"Some additional handling is performed when [param values] is an [Array]. If " +"[param placeholder] does not contain an underscore, the elements of the " +"[param values] array will be used to replace one occurrence of the " +"placeholder in order; If an element of [param values] is another 2-element " +"array, it'll be interpreted as a key-value pair.\n" +"[codeblock]\n" +"# Prints \"User 42 is Godot.\"\n" +"print(\"User {} is {}.\".format([42, \"Godot\"], \"{}\"))\n" +"print(\"User {id} is {name}.\".format([[\"id\", 42], [\"name\", " +"\"Godot\"]]))\n" +"[/codeblock]\n" +"When passing an [Object], the property names from [method Object." +"get_property_list] are used as keys.\n" +"[codeblock]\n" +"# Prints \"Visible true, position (0, 0)\"\n" +"var node = Node2D.new()\n" +"print(\"Visible {visible}, position {position}\".format(node))\n" +"[/codeblock]\n" +"See also the [url=$DOCS_URL/tutorials/scripting/gdscript/" +"gdscript_format_string.html]GDScript format string[/url] tutorial.\n" +"[b]Note:[/b] Each replacement is done sequentially for each element of [param " +"values], [b]not[/b] all at once. This means that if any element is inserted " +"and it contains another placeholder, it may be changed by the next " +"replacement. While this can be very useful, it often causes unexpected " +"results. If not necessary, make sure [param values]'s elements do not contain " +"placeholders.\n" +"[codeblock]\n" +"print(\"{0} {1}\".format([\"{1}\", \"x\"])) # Prints \"x x\"\n" +"print(\"{0} {1}\".format([\"x\", \"{0}\"])) # Prints \"x {0}\"\n" +"print(\"{a} {b}\".format({\"a\": \"{b}\", \"b\": \"c\"})) # Prints \"c c\"\n" +"print(\"{a} {b}\".format({\"b\": \"c\", \"a\": \"{b}\"})) # Prints \"{b} c\"\n" +"[/codeblock]\n" +"[b]Note:[/b] In C#, it's recommended to [url=https://learn.microsoft.com/en-" +"us/dotnet/csharp/language-reference/tokens/interpolated]interpolate strings " +"with \"$\"[/url], instead." +msgstr "" +"Форматує рядок, замінюючи всі входження [param placeholder] на елементи " +"[param values]. \n" +"[param values] може бути [Dictionary], [Array] або [Object]. Будь-які " +"підкреслення в [param placeholder] будуть заздалегідь замінені відповідними " +"ключами. Елементи масиву використовують свій індекс як ключі. \n" +"[codeblock] \n" +"# Друкує «Чекаючи на Годо» — це п’єса Семюеля Беккета, на честь якої названо " +"двигун Годо». \n" +"var use_array_values = \"Waiting for {0} is a play by {1}, and {0} Engine is " +"named after it.\"\n" +"print(use_array_values.format([\"Godot\", \"Samuel Beckett\"]))\n" +"\n" +"# Виводить «Користувач 42 — Годо». \n" +"print(\"User {id} — {name}.\".format({\"id\": 42, \"name\": \"Godot\"})) \n" +"[/codeblock] \n" +"Деяка додаткова обробка виконується, коли [param values] є [Array]. Якщо " +"[param placeholder] не містить підкреслення, елементи масиву [param values] " +"будуть використані для заміни одного входження заповнювача в порядку; Якщо " +"елемент [param values] є іншим 2-елементним масивом, він інтерпретуватиметься " +"як пара ключ-значення. \n" +"[codeblock] \n" +"# Виводить «Користувач 42 — Годо». \n" +"print(\"User {} - {}.\".format([42, \"Godot\"], \"{}\")) \n" +"print(\"User {id} — {name}.\".format([[\"id\", 42], [\"name\", " +"\"Godot\"]])) \n" +"[/codeblock] \n" +"Під час передачі [Object] імена властивостей із [method Object." +"get_property_list] використовуються як ключі. \n" +"[codeblock] \n" +"# Виводить \"Visible true, position (0, 0)\" \n" +"var node = Node2D.new() \n" +"print(\"Visible {visible}, position {position}\".format(node)) \n" +"[/codeblock] \n" +"Перегляньте також підручник [url=$DOCS_URL/tutorials/scripting/gdscript/" +"gdscript_format_string.html]Рядок формату GDScript[/url]. \n" +"[b]Примітка:[/b] Кожна заміна виконується послідовно для кожного елемента " +"[значень параметрів], [b]не[/b] відразу. Це означає, що якщо будь-який " +"елемент вставлено і він містить інший заповнювач, він може бути змінений " +"наступною заміною. Хоча це може бути дуже корисним, воно часто призводить до " +"неочікуваних результатів. Якщо це не потрібно, переконайтеся, що елементи " +"[param values] не містять заповнювачів. \n" +"[codeblock] \n" +"print(\"{0} {1}\".format([\"{1}\", \"x\"])) # Виводить \"x x\" \n" +"print(\"{0} {1}\".format([\"x\", \"{0}\"])) # Виводить \"x {0}\" \n" +"print(\"{a} {b}\".format({\"a\": \"{b}\", \"b\": \"c\"})) # Виводить \"c " +"c\" \n" +"print(\"{a} {b}\".format({\"b\": \"c\", \"a\": \"{b}\"})) # Виводить \"{b} " +"c\" \n" +"[/codeblock] \n" +"[b]Примітка.[/b] У C# натомість рекомендується [url=https://learn.microsoft." +"com/en-us/dotnet/csharp/language-reference/tokens/interpolated]інтерполювати " +"рядки за допомогою \"$\"[/url]." + msgid "" "If the string is a valid file path, returns the base directory name.\n" "[codeblock]\n" @@ -131692,9 +164077,10 @@ msgid "" "to\"\n" "[/codeblock]" msgstr "" -"Якщо рядок є правильним файлом, повертає назву бази каталогу.\n" -"[блокування коду]\n" -"var dir_path = \"/path/to/file.txt\".get_base_dir() # dir_path \"/path/to\"\n" +"Якщо рядок є дійсним шляхом до файлу, повертає назву основного каталогу.\n" +"[codeblock]\n" +"var dir_path = \"/path/to/file.txt\".get_base_dir() # dir_path is \"/path/" +"to\"\n" "[/codeblock]" msgid "" @@ -131704,9 +164090,10 @@ msgid "" "var base = \"/path/to/file.txt\".get_basename() # base is \"/path/to/file\"\n" "[/codeblock]" msgstr "" -"Якщо рядок дійсний шлях файлу, повертає повну шлях файлу, без розширення.\n" -"[блокування коду]\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" +"Якщо рядок є дійсним шляхом до файлу, повертає повний шлях до файлу без " +"розширення.\n" +"[codeblock]\n" +"var base = \"/path/to/file.txt\".get_basename() # base is \"/path/to/file\"\n" "[/codeblock]" msgid "" @@ -131725,19 +164112,18 @@ msgid "" "var h = \"\".get_extension() # h is \"\"\n" "[/codeblock]" msgstr "" -"Якщо рядок є вірним іменем файлів або шляхом, повертає розширення файлів без " -"провідного періоду ([code].[/code]). В іншому випадку повертає порожній " -"рядок.\n" -"[блокування коду]\n" -"var a = \"/path/to/file.txt\".get_extension() # a is \"txt\"\n" -"var b = \"cool.txt\".get_extension() # b є \"txt\"\n" -"var c = \"cool.font.tres\".get_extension() # c is \"tres\"\n" -"var d = \".pack1\".get_extension() # d is \"pack1\"\n" +"Якщо рядок є дійсним ім’ям файлу або шляхом, повертає розширення файлу без " +"початкової крапки ([код].[/код]). В іншому випадку повертає порожній рядок. \n" +"[codeblock] \n" +"var a = \"/path/to/file.txt\".get_extension() # a це \"txt\" \n" +"var b = \"cool.txt\".get_extension() # b це \"txt\" \n" +"var c = \"cool.font.tres\".get_extension() # c це \"tres\" \n" +"var d = \".pack1\".get_extension() # d це \"pack1\" \n" "\n" -"var e = \"file.txt.get_extension() # e is \"\"\n" -"var f = \"file.txt..get_extension() # f є \"\"\n" -"var g = \"txt\".get_extension() # г \"\"\n" -"var h = \".get_extension() # h \"\"\"\n" +"var e = \"file.txt.\".get_extension() # e це \"\" \n" +"var f = \"file.txt..\".get_extension() # f це \"\" \n" +"var g = \"txt\".get_extension() # g це \"\" \n" +"var h = \"\".get_extension() # h це \"\" \n" "[/codeblock]" msgid "" @@ -131747,9 +164133,29 @@ msgid "" "var file = \"/path/to/icon.png\".get_file() # file is \"icon.png\"\n" "[/codeblock]" msgstr "" -"Якщо рядок є правильним файлом, повертає назву файлу, включаючи розширення.\n" -"[блокування коду]\n" -"var файл = \"/path/to/icon.png\".get_file() # файл \"icon.png\"\n" +"Якщо рядок є дійсним шляхом до файлу, повертає ім’я файлу, включаючи " +"розширення.\n" +"[codeblock]\n" +"var file = \"/path/to/icon.png\".get_file() # файл \"icon.png\"\n" +"[/codeblock]" + +msgid "" +"Splits the string using a [param delimiter] and returns the substring at " +"index [param slice]. Returns the original string if [param delimiter] does " +"not occur in the string. Returns an empty string if the [param slice] does " +"not exist.\n" +"This is faster than [method split], if you only need one substring.\n" +"[codeblock]\n" +"print(\"i/am/example/hi\".get_slice(\"/\", 2)) # Prints \"example\"\n" +"[/codeblock]" +msgstr "" +"Розділяє рядок за допомогою [param delimiter] і повертає підрядок за індексом " +"[param slice]. Повертає вихідний рядок, якщо [param delimiter] не " +"зустрічається в рядку. Повертає порожній рядок, якщо [param slice] не " +"існує. \n" +"Це швидше, ніж [method split], якщо вам потрібен лише один підрядок. \n" +"[codeblock] \n" +"print(\"i/am/example/hi\".get_slice(\"/\", 2)) # Виводить \"example\" \n" "[/codeblock]" msgid "" @@ -131798,20 +164204,20 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Видаляє шістнадцятковий рядок як [PackedByteArray].\n" -"[блоки коду]\n" -"[видання]\n" -"var text = \"світлий світ\"\n" -"var encoded = текст.to_utf8_buffer().hex_encode() # виходи " -"\"68656c6c6f20776f726c64\"\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"[/gdscript]\n" -"[csharp]\n" -"var text = \"світлий світ\";\n" -"var encoded = текст.ToUtf8Buffer().HexEncode(); // виходи " -"\"68656c6c6f20776f726c64\"\n" -"GD.Print(buf.HexDecode(). GetStringЗ альбомуUtf8());\n" -"[/csharp]\n" +"Декодує шістнадцятковий рядок як [PackedByteArray]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var text = \"привіт, світ\" \n" +"var encoded = text.to_utf8_buffer().hex_encode() # виводить " +"\"68656c6c6f20776f726c64\" \n" +"print(buf.hex_decode().get_string_from_utf8()) \n" +"[/gdscript] \n" +"[csharp] \n" +"var text = \"привіт, світ\"; \n" +"var encoded = text.ToUtf8Buffer().HexEncode(); // виводить " +"\"68656c6c6f20776f726c64\" \n" +"GD.Print(buf.HexDecode().GetStringFromUtf8()); \n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -131829,18 +164235,18 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Перетворює рядок, що представляє шістнадцятковий номер в [int]. string може " -"бути додатково префіксований [code]\"0x\"[/code], а також додатковий [code]-[/" -"code] префікс для негативних чисел.\n" -"[блоки коду]\n" -"[видання]\n" -"Друк(\"0xff.hex_to_int()) # Друки 255\n" -"Друк(\"ab.hex_to_int()) # Друки 171\n" -"[/gdscript]\n" -"[csharp]\n" -"GD.Print(\"0xff.HexToInt()); // Друк 255\n" -"GD.Print(\"ab.HexToInt()); // Друкує 171\n" -"[/csharp]\n" +"Перетворює рядок, що представляє шістнадцяткове число, на [int]. Рядок може " +"мати префікс [code]\"0x\"[/code] і додатковий префікс [code]-[/code] для " +"від’ємних чисел. \n" +"[codeblocks] \n" +"[gdscript] \n" +"print(\"0xff\".hex_to_int()) # Виводить 255 \n" +"print(\"ab\".hex_to_int()) # Виводить 171 \n" +"[/gdscript] \n" +"[csharp] \n" +"GD.Print(\"0xff\".HexToInt()); // Виводить 255 \n" +"GD.Print(\"ab\".HexToInt()); // Друкує 171 \n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -131918,15 +164324,15 @@ msgid "" "print(\"\".is_subsequence_of(text)) # Prints true\n" "[/codeblock]" msgstr "" -"Повертаємо [code]true[/code], якщо всі символи цього рядка можна знайти в " -"[param text] в початковому порядку.\n" -"[блокування коду]\n" -"var text = \"Повний, неймовірний!\"\n" +"Повертає [code]true[/code], якщо всі символи цього рядка можна знайти в " +"[param text] у їх початковому порядку. \n" +"[codeblock] \n" +"var text = \"Вау, неймовірно!\" \n" "\n" -"JavaScript licenses API Веб-сайт # Друки правда\n" -"JavaScript licenses API Веб-сайт Go1.13.8 # Друки правда\n" -"JavaScript licenses API Веб-сайт Go1.13.8 # Друк false\n" -"JavaScript licenses API Веб-сайт Go1.13.8 # Друки правда\n" +"print(\"inedible\".is_subsequence_of(text)) # Виводить true \n" +"print(\"Word!\".is_subsequence_of(text)) # Виводить true \n" +"print(\"Window\".is_subsequence_of(text)) # Виводить false \n" +"print(\"\".is_subsequence_of(text)) # Виводить true \n" "[/codeblock]" msgid "" @@ -131936,6 +164342,29 @@ msgstr "" "Повертає [code]true[/code], якщо всі символи цього рядка можна знайти в " "[param text] у їх оригінальному порядку, [b]ігноруючи регістр[/b]." +msgid "" +"Returns [code]true[/code] if this string is a valid ASCII identifier. A valid " +"ASCII identifier may contain only letters, digits, and underscores ([code]_[/" +"code]), and the first character may not be a digit.\n" +"[codeblock]\n" +"print(\"node_2d\".is_valid_ascii_identifier()) # Prints true\n" +"print(\"TYPE_FLOAT\".is_valid_ascii_identifier()) # Prints true\n" +"print(\"1st_method\".is_valid_ascii_identifier()) # Prints false\n" +"print(\"MyMethod#2\".is_valid_ascii_identifier()) # Prints false\n" +"[/codeblock]\n" +"See also [method is_valid_unicode_identifier]." +msgstr "" +"Повертає [code]true[/code], якщо цей рядок є дійсним ідентифікатором ASCII. " +"Дійсний ідентифікатор ASCII може містити лише літери, цифри та підкреслення " +"([код]_[/код]), а перший символ не може бути цифрою. \n" +"[codeblock] \n" +"print(\"node_2d\".is_valid_ascii_identifier()) # Виводить true \n" +"print(\"TYPE_FLOAT\".is_valid_ascii_identifier()) # Виводить true \n" +"print(\"1st_method\".is_valid_ascii_identifier()) # Виводить false \n" +"print(\"MyMethod#2\".is_valid_ascii_identifier()) # Виводить false \n" +"[/codeblock] \n" +"Дивіться також [method is_valid_unicode_identifier]." + msgid "" "Returns [code]true[/code] if this string does not contain characters that are " "not allowed in file names ([code]:[/code] [code]/[/code] [code]\\[/code] " @@ -131961,17 +164390,17 @@ msgid "" "print(\"Hello\".is_valid_float()) # Prints false\n" "[/codeblock]" msgstr "" -"Повертає [code]true[/code], якщо цей рядок являє собою дійсний номер точки " -"плавлення. Важкий float може містити лише цифри, один десятковий пункт " -"([code].[/code]), а також експонентний лист ([code]e[/code]. Також можна " -"префіксувати позитив ([code]+[/code]) або негативний ([code]-[/code]). Будь-" -"яке ціле ціле, також дійсне плавлення (див. [метод_valid_int]). Дивись також " -"[метод_float].\n" -"[блокування коду]\n" -"Друк(\"1.7.is_valid_float()) # Друки правда\n" -"Друк(\"24.is_valid_float()) # Друки правда\n" -"Друк(\"7e3.is_valid_float()) # Друки правда\n" -"Друк(\"Hello.is_valid_float()) # Друк false\n" +"Повертає [code]true[/code], якщо цей рядок представляє дійсне число з " +"плаваючою комою. Правильний float може містити лише цифри, одну десяткову " +"крапку ([code].[/code]) і літеру експоненти ([code]e[/code]). Перед ним також " +"може бути позитивний ([код]+[/код]) або негативний ([код]-[/код]) знак. Будь-" +"яке дійсне ціле число також є дійсним float (див. [method is_valid_int]). " +"Дивіться також [метод to_float]. \n" +"[codeblock] \n" +"print(\"1.7\".is_valid_float()) # Виводить true \n" +"print(\"24\".is_valid_float()) # Виводить true \n" +"print(\"7e3\".is_valid_float()) # Виводить true \n" +"print(\"Привіт\".is_valid_float()) # Виводить false \n" "[/codeblock]" msgid "" @@ -131989,18 +164418,18 @@ msgid "" "print(\"0xDEADC0DE\".is_valid_hex_number(true)) # Prints true\n" "[/codeblock]" msgstr "" -"Повертає [code]true[/code], якщо цей рядок є дійсним числом шістнадцяткового. " -"Важкий шестигранний номер тільки містить цифри або літери [code]A[/code] до " -"[code]F[/code] (в верхній регістр або нижній регістр), і може бути " -"зафіксований позитивним ([code] +[/code]) або негативним ([code]-[/code]).\n" -"Якщо [param with_prefix] є [code]true[/code], токсадекальна кількість " -"потрібно префіксувати [code]\"0x\"\"[/code], щоб вважати дійсним.\n" -"[блокування коду]\n" -"Друк(\"A08E.is_valid_hex_number()) # Друки правда\n" -"Друк(\"-AbCdEf.is_valid_hex_number()) # Друки правда\n" -"Друк(\"2.5.is_valid_hex_number()) # Друк false\n" +"Повертає [code]true[/code], якщо цей рядок є дійсним шістнадцятковим числом. " +"Дійсне шістнадцяткове число містить лише цифри або літери [code]A[/code] до " +"[code]F[/code] (великі або малі) і може мати перед собою позитивний ([code]+[/" +"code]) або негативний ([code]-[/code]) знак. \n" +"Якщо [param with_prefix] має значення [code]true[/code], шістнадцяткове число " +"має мати префікс [code]\"0x\"[/code], щоб вважатися дійсним. \n" +"[codeblock] \n" +"print(\"A08E\".is_valid_hex_number()) # Виводить true \n" +"print(\"-AbCdEf\".is_valid_hex_number()) # Виводить true \n" +"print(\"2.5\".is_valid_hex_number()) # Виводить false \n" "\n" -"Друк(\"0xDEADC0DE.is_valid_hex_number(true)) # Друки правда\n" +"print(\"0xDEADC0DE\".is_valid_hex_number(true)) # Виводить true \n" "[/codeblock]" msgid "" @@ -132017,6 +164446,9 @@ msgstr "" "кольорів, таких як імена або [code]hsl()[/code], не вважаються дійсними. " "Дивитися також [method Color.html]." +msgid "Use [method is_valid_ascii_identifier] instead." +msgstr "Натомість використовуйте [метод is_valid_ascii_identifier]." + msgid "" "Returns [code]true[/code] if this string is a valid identifier. A valid " "identifier may contain only letters, digits and underscores ([code]_[/code]), " @@ -132028,14 +164460,14 @@ msgid "" "print(\"MyMethod#2\".is_valid_identifier()) # Prints false\n" "[/codeblock]" msgstr "" -"Повертає [code]true[/code], якщо цей рядок дійсний ідентифікатор. Важкий " -"ідентифікатор може містити лише літери, цифри та низи ([code]_[/code]), а " -"перший символ не може бути цифрою.\n" -"[блокування коду]\n" -"Друк(\"node_2d.is_valid_identifier()) # Друки правда\n" -"Друк(\"TYPE_FLOAT.is_valid_identifier()) # Друки правда\n" -"Друк( \"1st_method\".is_valid_identifier()) # Друк false\n" -"Друк(\"MyMethod#2\".is_valid_identifier()) # Друк false\n" +"Повертає [code]true[/code], якщо цей рядок є дійсним ідентифікатором. " +"Правильний ідентифікатор може містити лише літери, цифри та підкреслення " +"([code]_[/code]), а перший символ не може бути цифрою. \n" +"[codeblock] \n" +"print(\"node_2d\".is_valid_identifier()) # Виводить true \n" +"print(\"TYPE_FLOAT\".is_valid_identifier()) # Виводить true \n" +"print(\"1st_method\".is_valid_identifier()) # Виводить false \n" +"print(\"MyMethod#2\".is_valid_identifier()) # Виводить false \n" "[/codeblock]" msgid "" @@ -132050,15 +164482,16 @@ msgid "" "print(\"-12\".is_valid_int()) # Prints true\n" "[/codeblock]" msgstr "" -"Повертає [code]true[/code], якщо цей рядок являє собою дійсне ціле. Важкий " -"ціле тільки містить цифри, і може бути префіксований позитивом ([code] +[/" -"code]) або негативним ([code]-[/code]) знаком. Дивись ще [метод].\n" -"[блокування коду]\n" -"Друк(\"7.is_valid_int()) # Друки правда\n" -"Друк(\"1.65.is_valid_int()) # Друк false\n" -"Друк(\"Hi.is_valid_int()) # Друк false\n" -"Друк(\"+3.is_valid_int()) # Друки правда\n" -"Друк(\"-12.is_valid_int()) # Друки правда\n" +"Повертає [code]true[/code], якщо цей рядок представляє дійсне ціле число. " +"Дійсне ціле число містить лише цифри та може мати перед собою позитивний " +"([code]+[/code]) або негативний ([code]-[/code]) знак. Дивіться також [method " +"to_int]. \n" +"[codeblock] \n" +"print(\"7\".is_valid_int()) # Виводить true \n" +"print(\"1.65\".is_valid_int()) # Виводить false \n" +"print(\"Hi\".is_valid_int()) # Виводить false \n" +"print(\"+3\".is_valid_int()) # Виводить true \n" +"print(\"-12\".is_valid_int()) # Виводить true \n" "[/codeblock]" msgid "" @@ -132073,6 +164506,83 @@ msgstr "" "[code]\"0.0.0.0\"[/code] і [code]\"ffff:ffff: ffff:ffff:ffff:ffff:ffff:" "ffff\"[/code] як дійсний." +msgid "" +"Returns [code]true[/code] if this string is a valid Unicode identifier.\n" +"A valid Unicode identifier must begin with a Unicode character of class " +"[code]XID_Start[/code] or [code]\"_\"[/code], and may contain Unicode " +"characters of class [code]XID_Continue[/code] in the other positions.\n" +"[codeblock]\n" +"print(\"node_2d\".is_valid_unicode_identifier()) # Prints true\n" +"print(\"1st_method\".is_valid_unicode_identifier()) # Prints false\n" +"print(\"MyMethod#2\".is_valid_unicode_identifier()) # Prints false\n" +"print(\"állóképesség\".is_valid_unicode_identifier()) # Prints true\n" +"print(\"выносливость\".is_valid_unicode_identifier()) # Prints true\n" +"print(\"体力\".is_valid_unicode_identifier()) # Prints true\n" +"[/codeblock]\n" +"See also [method is_valid_ascii_identifier].\n" +"[b]Note:[/b] This method checks identifiers the same way as GDScript. See " +"[method TextServer.is_valid_identifier] for more advanced checks." +msgstr "" +"Повертає [code]true[/code], якщо цей рядок є дійсним ідентифікатором " +"Unicode. \n" +"Дійсний ідентифікатор Unicode має починатися з символу Unicode класу " +"[code]XID_Start[/code] або [code]\"_\"[/code] і може містити символи Unicode " +"класу [code]XID_Continue[/code] в інших позиціях. \n" +"[codeblock] \n" +"print(\"node_2d\".is_valid_unicode_identifier()) # Виводить true \n" +"print(\"1st_method\".is_valid_unicode_identifier()) # Виводить false \n" +"print(\"MyMethod#2\".is_valid_unicode_identifier()) # Виводить false \n" +"print(\"endurance\".is_valid_unicode_identifier()) # Виводить true \n" +"print(\"витривалість\".is_valid_unicode_identifier()) # Prints true \n" +"print(\"体力\".is_valid_unicode_identifier()) # Виводить true \n" +"[/codeblock] \n" +"Дивіться також [method is_valid_ascii_identifier]. \n" +"[b]Примітка.[/b] Цей метод перевіряє ідентифікатори так само, як і GDScript. " +"Перегляньте [method TextServer.is_valid_identifier] для більш розширених " +"перевірок." + +msgid "" +"Returns the concatenation of [param parts]' elements, with each element " +"separated by the string calling this method. This method is the opposite of " +"[method split].\n" +"[codeblocks]\n" +"[gdscript]\n" +"var fruits = [\"Apple\", \"Orange\", \"Pear\", \"Kiwi\"]\n" +"\n" +"print(\", \".join(fruits)) # Prints \"Apple, Orange, Pear, Kiwi\"\n" +"print(\"---\".join(fruits)) # Prints \"Apple---Orange---Pear---Kiwi\"\n" +"[/gdscript]\n" +"[csharp]\n" +"string[] fruits = [\"Apple\", \"Orange\", \"Pear\", \"Kiwi\"];\n" +"\n" +"// In C#, this method is static.\n" +"GD.Print(string.Join(\", \", fruits)); // Prints \"Apple, Orange, Pear, " +"Kiwi\"\n" +"GD.Print(string.Join(\"---\", fruits)); // Prints \"Apple---Orange---Pear---" +"Kiwi\"\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Повертає конкатенацію елементів [param parts], кожен елемент розділений " +"рядком, що викликає цей метод. Цей метод протилежний методу [method split]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var fruits = [\"Яблуко\", \"Апельсин\", \"Груша\", \"Ківі\"] \n" +"\n" +"print(\", \".join(fruits)) # Виводить \"Яблуко, Апельсин, Груша, Ківі\" \n" +"print(\"---\".join(fruits)) # Виводить \"Яблуко---Апельсин---Груша---Ківі\" \n" +"[/gdscript] \n" +"[csharp] \n" +"string[] fruits = [\"Яблуко\", \"Апельсин\", \"Груша\", \"Ківі\"]; \n" +"\n" +"// У C# цей метод є статичним. \n" +"GD.Print(string.Join(\", \", фрукти)); // Друкує \"Яблуко, Апельсин, Груша, " +"Ківі\" \n" +"GD.Print(string.Join(\"---\", фрукти)); // Друкує \"Яблуко---Апельсин---" +"Груша---Ківі\" \n" +"[/csharp] \n" +"[/codeblocks]" + msgid "" "Returns a copy of the string with special characters escaped using the JSON " "standard. Because it closely matches the C standard, it is possible to use " @@ -132091,11 +164601,11 @@ msgid "" "print(\"Hello World!\".left(-4)) # Prints \"Hello Wo\"\n" "[/codeblock]" msgstr "" -"Повертаємо перші символи [параметра] з початку рядка. Якщо довжина [param] є " -"негативним, смужки останні [param length] символи з кінця рядка.\n" -"[блокування коду]\n" -"Друк(\"Hello World!\".left(3) # Друки \"Hel\"\n" -"Друк(\"Hello World!\".left(-4) # Друки \"Hello Wo\"\n" +"Повертає перші [param length] символи з початку рядка. Якщо [param length] " +"від'ємне, видаляє останні символи [param length] із кінця рядка. \n" +"[codeblock] \n" +"print(\"Hello World!\".left(3)) # Виводить \"Hel\" \n" +"print(\"Hello World!\".left(-4)) # Виводить \"Hello Wo\" \n" "[/codeblock]" msgid "" @@ -132263,6 +164773,51 @@ msgstr "" "оператор замість. Дивись також [методичний посібник_to], [метод файлно-" "casecmp_to], а [метод природнийnocasecmp_to]." +msgid "" +"Converts a [float] to a string representation of a decimal number, with the " +"number of decimal places specified in [param decimals].\n" +"If [param decimals] is [code]-1[/code] as by default, the string " +"representation may only have up to 14 significant digits, with digits before " +"the decimal point having priority over digits after.\n" +"Trailing zeros are not included in the string. The last digit is rounded, not " +"truncated.\n" +"[codeblock]\n" +"String.num(3.141593) # Returns \"3.141593\"\n" +"String.num(3.141593, 3) # Returns \"3.142\"\n" +"String.num(3.14159300) # Returns \"3.141593\"\n" +"\n" +"# Here, the last digit will be rounded up,\n" +"# which reduces the total digit count, since trailing zeros are removed:\n" +"String.num(42.129999, 5) # Returns \"42.13\"\n" +"\n" +"# If `decimals` is not specified, the maximum number of significant digits is " +"14:\n" +"String.num(-0.0000012345432123454321) # Returns \"-0.00000123454321\"\n" +"String.num(-10000.0000012345432123454321) # Returns \"-10000.0000012345\"\n" +"[/codeblock]" +msgstr "" +"Перетворює [float] на рядкове представлення десяткового числа з кількістю " +"десяткових знаків, указаною в [param decimals]. \n" +"Якщо [param decimals] дорівнює [code]-1[/code] за замовчуванням, " +"представлення рядка може містити лише до 14 значущих цифр, причому цифри " +"перед десятковою комою мають пріоритет над цифрами після коми. \n" +"Кінцеві нулі не включаються в рядок. Остання цифра заокруглена, а не " +"скорочена. \n" +"[codeblock] \n" +"String.num(3.141593) # Повертає \"3.141593\" \n" +"String.num(3.141593, 3) # Повертає \"3.142\" \n" +"String.num(3.14159300) # Повертає \"3.141593\" \n" +"\n" +"# Тут остання цифра буде округлена в більшу сторону, \n" +"# що зменшує загальну кількість цифр, оскільки кінцеві нулі видаляються: \n" +"String.num(42.129999, 5) # Повертає \"42.13\" \n" +"\n" +"# Якщо `decimals` не вказано, максимальна кількість значущих цифр становить " +"14: \n" +"String.num(-0.0000012345432123454321) # Повертає \"-0.00000123454321\" \n" +"String.num(-10000.0000012345432123454321) # Повертає \"-10000.0000012345\" \n" +"[/codeblock]" + msgid "" "Converts the given [param number] to a string representation, with the given " "[param base].\n" @@ -132302,26 +164857,27 @@ msgid "" "results, see C#'s [url=https://learn.microsoft.com/en-us/dotnet/standard/base-" "types/standard-numeric-format-strings]Standard numeric format strings[/url]" msgstr "" -"Конвертує задану [парамну кількість] в рядкове представлення, в науковій " -"нотації.\n" -"[блоки коду]\n" -"[видання]\n" -"var n = -5.2e8\n" -"Друк(n) # Друк -520000000\n" -"Друк(String.num_науковий(n)) # Друки -5.2e+08\n" -"[/gdscript]\n" -"[csharp]\n" -"(Українська) Цей метод не реалізований в C#.\n" -"// Використання `string. Для досягнення аналогічних результатів\n" -"var n = -5.2e8f;\n" -"GD.Print(n); // Друк -520000000\n" -"GD.Print(n.ToString(\"e1\")); // Друки -5.2e+008\n" -"[/csharp]\n" -"[/codeblocks]\n" -"[b]Note:[/b] У C# цей метод не реалізований. Для досягнення аналогічних " -"результатів див. C# [url=https://learn.microsoft.com/en-us/dotnet/standard/" -"base-types/standard-numeric-format-strings]Standard numeric format strings[/" -"url]" +"Перетворює заданий [число параметра] на рядкове подання в науковому " +"нотатії. \n" +"[codeblocks] \n" +"[gdscript] \n" +"де n = -5,2e8 \n" +"print(n) # Друкує -520000000 \n" +"print(String.num_scientific(n)) # Виводить -5.2e+08 \n" +"[/gdscript] \n" +"[csharp] \n" +"// Цей метод не реалізовано в C#. \n" +"// Використовуйте `string.ToString()` з \"e\", щоб досягти аналогічних " +"результатів. \n" +"де n = -5,2e8f; \n" +"GD.Print(n); // Друкує -520000000 \n" +"GD.Print(n.ToString(\"e1\")); // Виводить -5.2e+008 \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка.[/b] У C# цей метод не реалізовано. Щоб досягти подібних " +"результатів, перегляньте [url=https://learn.microsoft.com/en-us/dotnet/" +"standard/base-types/standard-numeric-format-strings]рядки стандартного " +"числового формату[/url] C#" msgid "" "Converts the given unsigned [int] to a string representation, with the given " @@ -132439,6 +164995,53 @@ msgstr "" "Формати рядка, щоб бути принаймні [param min_length] довгий, додавши [param " "характер] праворуч від рядка, при необхідності. Дивись також [метод lpad]." +msgid "" +"Splits the string using a [param delimiter] and returns an array of the " +"substrings, starting from the end of the string. The splits in the returned " +"array appear in the same order as the original string. If [param delimiter] " +"is an empty string, each substring will be a single character.\n" +"If [param allow_empty] is [code]false[/code], empty strings between adjacent " +"delimiters are excluded from the array.\n" +"If [param maxsplit] is greater than [code]0[/code], the number of splits may " +"not exceed [param maxsplit]. By default, the entire string is split, which is " +"mostly identical to [method split].\n" +"[codeblocks]\n" +"[gdscript]\n" +"var some_string = \"One,Two,Three,Four\"\n" +"var some_array = some_string.rsplit(\",\", true, 1)\n" +"\n" +"print(some_array.size()) # Prints 2\n" +"print(some_array[0]) # Prints \"One,Two,Three\"\n" +"print(some_array[1]) # Prints \"Four\"\n" +"[/gdscript]\n" +"[csharp]\n" +"// In C#, there is no String.RSplit() method.\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Розділяє рядок за допомогою [param delimiter] і повертає масив підрядків, " +"починаючи з кінця рядка. Розбиття у повернутому масиві з’являється в тому " +"самому порядку, що й вихідний рядок. Якщо [param delimiter] є порожнім " +"рядком, кожен підрядок буде одним символом. \n" +"Якщо [param allow_empty] має значення [code]false[/code], порожні рядки між " +"суміжними роздільниками виключаються з масиву. \n" +"Якщо [param maxsplit] більший за [code]0[/code], кількість розділень не може " +"перевищувати [param maxsplit]. За замовчуванням весь рядок розділено, що " +"здебільшого ідентично [method split]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var some_string = \"Один, два, три, чотири\" \n" +"var some_array = some_string.rsplit(\",\", true, 1) \n" +"\n" +"print(some_array.size()) # Виводить 2 \n" +"print(some_array[0]) # Виводить \"Один, два, три\" \n" +"print(some_array[1]) # Виводить \"Чотири\" \n" +"[/gdscript] \n" +"[csharp] \n" +"// У C# немає методу String.RSplit(). \n" +"[/csharp] \n" +"[/codeblocks]" + msgid "" "Removes a set of characters defined in [param chars] from the string's end. " "See also [method lstrip].\n" @@ -132478,6 +165081,29 @@ msgstr "" "Повертаємо [url=https://en.wikipedia.org/wiki/SHA-2]SHA-256[/url] хеш рядка в " "іншому [String]." +msgid "" +"Returns the similarity index ([url=https://en.wikipedia.org/wiki/" +"S%C3%B8rensen%E2%80%93Dice_coefficient]Sørensen-Dice coefficient[/url]) of " +"this string compared to another. A result of [code]1.0[/code] means totally " +"similar, while [code]0.0[/code] means totally dissimilar.\n" +"[codeblock]\n" +"print(\"ABC123\".similarity(\"ABC123\")) # Prints 1.0\n" +"print(\"ABC123\".similarity(\"XYZ456\")) # Prints 0.0\n" +"print(\"ABC123\".similarity(\"123ABC\")) # Prints 0.8\n" +"print(\"ABC123\".similarity(\"abc123\")) # Prints 0.4\n" +"[/codeblock]" +msgstr "" +"Повертає індекс подібності ([url=https://en.wikipedia.org/wiki/" +"S%C3%B8rensen%E2%80%93Dice_coefficient]коефіцієнт Соренсена-Діса[/url]) цього " +"рядка порівняно з іншим. Результат [code]1.0[/code] означає абсолютно " +"подібний, тоді як [code]0.0[/code] означає абсолютно несхожий. \n" +"[codeblock] \n" +"print(\"ABC123\".similarity(\"ABC123\")) # Друкує 1.0 \n" +"print(\"ABC123\".similarity(\"XYZ456\")) # Виводить 0.0 \n" +"print(\"ABC123\".similarity(\"123ABC\")) # Виводить 0,8 \n" +"print(\"ABC123\".similarity(\"abc123\")) # Виводить 0,4 \n" +"[/codeblock]" + msgid "" "If the string is a valid file path, converts the string into a canonical " "path. This is the shortest possible path, without [code]\"./\"[/code], and " @@ -132487,14 +165113,73 @@ msgid "" "print(simple_path) # Prints \"path/file\"\n" "[/codeblock]" msgstr "" -"Якщо рядок є дією шлях файлу, перетворює рядок в канонічний шлях. Це " -"найкоротший можливий шлях, без [code]./\"[/code], і всі непотрібні [code].\"[/" -"code] і [code]\"/\"[/code].\n" -"[блокування коду]\n" -"var simple_path = \"./path/to////./file\".simplify_path()\n" -"Друк(simple_path) # Друки \"path/file\"\n" +"Якщо рядок є дійсним шляхом до файлу, перетворює рядок на канонічний шлях. Це " +"найкоротший можливий шлях, без [code]\"./\"[/code] і всього непотрібного " +"[code]\"..\"[/code] і [code]\"/\"[/code]. \n" +"[codeblock] \n" +"var simple_path = \"./path/to///../file\".simplify_path() \n" +"print(simple_path) # Виводить \"шлях/файл\" \n" "[/codeblock]" +msgid "" +"Splits the string using a [param delimiter] and returns an array of the " +"substrings. If [param delimiter] is an empty string, each substring will be a " +"single character. This method is the opposite of [method join].\n" +"If [param allow_empty] is [code]false[/code], empty strings between adjacent " +"delimiters are excluded from the array.\n" +"If [param maxsplit] is greater than [code]0[/code], the number of splits may " +"not exceed [param maxsplit]. By default, the entire string is split.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var some_array = \"One,Two,Three,Four\".split(\",\", true, 2)\n" +"\n" +"print(some_array.size()) # Prints 3\n" +"print(some_array[0]) # Prints \"One\"\n" +"print(some_array[1]) # Prints \"Two\"\n" +"print(some_array[2]) # Prints \"Three,Four\"\n" +"[/gdscript]\n" +"[csharp]\n" +"// C#'s `Split()` does not support the `maxsplit` parameter.\n" +"var someArray = \"One,Two,Three\".Split(\",\");\n" +"\n" +"GD.Print(someArray[0]); // Prints \"One\"\n" +"GD.Print(someArray[1]); // Prints \"Two\"\n" +"GD.Print(someArray[2]); // Prints \"Three\"\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] If you only need one substring from the array, consider using " +"[method get_slice] which is faster. If you need to split strings with more " +"complex rules, use the [RegEx] class instead." +msgstr "" +"Розділяє рядок за допомогою [param delimiter] і повертає масив підрядків. " +"Якщо [param delimiter] є порожнім рядком, кожен підрядок буде одним символом. " +"Цей метод протилежний методу [method join]. \n" +"Якщо [param allow_empty] має значення [code]false[/code], порожні рядки між " +"суміжними роздільниками виключаються з масиву. \n" +"Якщо [param maxsplit] більший за [code]0[/code], кількість розділень не може " +"перевищувати [param maxsplit]. За замовчуванням весь рядок розділено. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var some_array = \"One,Two,Three,Four\".split(\",\", true, 2) \n" +"\n" +"print(some_array.size()) # Виводить 3 \n" +"print(some_array[0]) # Виводить \"One\" \n" +"print(some_array[1]) # Виводить \"Два\" \n" +"print(some_array[2]) # Виводить \"Три, Чотири\" \n" +"[/gdscript] \n" +"[csharp] \n" +"// `Split()` C# не підтримує параметр `maxsplit`. \n" +"var someArray = \"One,Two,Three\".Split(\",\"); \n" +"\n" +"GD.Print(someArray[0]); // Виводить \"One\" \n" +"GD.Print(someArray[1]); // Друкує \"Два\" \n" +"GD.Print(someArray[2]); // Виводить \"Три\" \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка.[/b] Якщо вам потрібен лише один підрядок із масиву, спробуйте " +"використати [метод get_slice], який є швидшим. Якщо вам потрібно розділити " +"рядки за більш складними правилами, замість цього використовуйте клас [RegEx]." + msgid "" "Splits the string into floats by using a [param delimiter] and returns a " "[PackedFloat64Array].\n" @@ -132507,13 +165192,13 @@ msgid "" "[/codeblock]" msgstr "" "Розділяє рядок на плаваючі числа за допомогою [param delimiter] і повертає " -"[PackedFloat64Array].\n" +"[PackedFloat64Array]. \n" "Якщо [param allow_empty] має значення [code]false[/code], порожні або " -"недійсні перетворення [float] між суміжними роздільниками виключаються.\n" -"[кодовий блок]\n" -"var a = \"1,2,4.5\".split_floats(\",\") # a is [1.0, 2.0, 4.5]\n" -"var c = \"1| ||4.5\".split_floats(\"|\") # c дорівнює [1.0, 0.0, 0.0, 4.5]\n" -"var b = \"1| ||4.5\".split_floats(\"|\", false) # b дорівнює [1.0, 4.5]\n" +"недійсні перетворення [float] між суміжними роздільниками виключаються. \n" +"[codeblock] \n" +"var a = \"1,2,4.5\".split_floats(\",\") # a is [1.0, 2.0, 4.5] \n" +"var c = \"1| ||4.5\".split_floats(\"|\") # c дорівнює [1.0, 0.0, 0.0, 4.5] \n" +"var b = \"1| ||4.5\".split_floats(\"|\", false) # b дорівнює [1.0, 4.5] \n" "[/codeblock]" msgid "" @@ -132576,16 +165261,16 @@ msgid "" "var e = \"Hello!\".to_float() # e is 0.0\n" "[/codeblock]" msgstr "" -"Перетворює рядок, що представляє десятковий номер в [float]. Цей метод " -"зупиняється на першому неоднорідному характері, крім першої десяткової точки " -"([code].[/code]) і експонентного листа ([code]e[/code]). Дивись також " -"[метод_valid_float].\n" -"[блокування коду]\n" -"var a = \"12.35\".to_float() # is 12.35\n" -"var б = \"1.2.3\".to_float() # б 1,2\n" -"var c = \"12xy3\".to_float() # c - 12.0\n" -"var d = \"1e3\".to_float() # d is 1000.0\n" -"var e = \"Hello!\".to_float() # е 0,0\n" +"Перетворює рядок, що представляє десяткове число, у [float]. Цей метод " +"зупиняється на першому нечисловому символі, за винятком першої десяткової " +"коми ([code].[/code]) і літери експоненти ([code]e[/code]). Дивіться також " +"[метод is_valid_float]. \n" +"[codeblock] \n" +"var a = \"12.35\".to_float() # a дорівнює 12.35 \n" +"var b = \"1.2.3\".to_float() # b це 1.2 \n" +"var c = \"12xy3\".to_float() # c дорівнює 12,0 \n" +"var d = \"1e3\".to_float() # d дорівнює 1000,0 \n" +"var e = \"Привіт!\".to_float() # e дорівнює 0,0 \n" "[/codeblock]" msgid "" @@ -132599,14 +165284,14 @@ msgid "" "var d = \"Hello!\".to_int() # d is 0\n" "[/codeblock]" msgstr "" -"Перетворює рядок, що представляє ціле число в [int]. Цей метод видаляє будь-" -"який неоднорідний характер і зупиняється на першій десятковій точці ([code].[/" -"code]). Дивись також [метод_valid_int].\n" -"[блокування коду]\n" -"var a = \"123\".to_int() # a 123\n" -"var б = \"x1y2z3\".to_int() # б - 123\n" -"var c = \"-1.2.3\".to_int() # c -1\n" -"var d = \"Hello!\".to_int() # д 0\n" +"Перетворює рядок, що представляє ціле число, на [int]. Цей метод видаляє будь-" +"який нечисловий символ і зупиняється на першій десятковій комі ([code].[/" +"code]). Дивіться також [method is_valid_int]. \n" +"[codeblock] \n" +"var a = \"123\".to_int() # a дорівнює 123 \n" +"var b = \"x1y2z3\".to_int() # b дорівнює 123 \n" +"var c = \"-1.2.3\".to_int() # c дорівнює -1 \n" +"var d = \"Привіт!\".to_int() # d дорівнює 0 \n" "[/codeblock]" msgid "Returns the string converted to [code]lowercase[/code]." @@ -132634,22 +165319,22 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Повертає рядок, що перетворюється на [code]snake_case[/code].\n" -"[b]Note:[/b] Номери, які слідують [i]single[/i], літери не відокремлені в " -"переході, щоб зберегти деякі слова (наприклад, \"2D\") разом.\n" -"[блоки коду]\n" -"[видання]\n" -"\"Node2D\".to_snake_case() # Повернення \"node_2d\"\n" -"\"2 місце\".to_snake_case() # Повернення \"2_nd_place\"\n" -"\"Texture3DAssetFolder\".to_snake_case() # Повернення " -"\"texture_3d_asset_folder\"\n" -"[/gdscript]\n" -"[csharp]\n" -"\"Node2D\".ToSnakeCase(); // Повертає \"node_2d\"\n" -"\"2 місце\".ToSnakeCase(); // Повертає \"2_nd_place\"\n" +"Повертає рядок, перетворений на [code]snake_case[/code]. \n" +"[b]Примітка: [/b] Числа, за якими йде [i]одна [/i] літера, не розділяються " +"під час перетворення, щоб зберегти деякі слова (наприклад, \"2D\") разом. \n" +"[codeblocks] \n" +"[gdscript] \n" +"\"Node2D\".to_snake_case() # Повертає \"node_2d\" \n" +"\"2nd place\".to_snake_case() # Повертає \"2_nd_place\" \n" +"\"Texture3DAssetFolder\".to_snake_case() # Повертає " +"\"texture_3d_asset_folder\" \n" +"[/gdscript] \n" +"[csharp] \n" +"\"Node2D\".ToSnakeCase(); // Повертає \"node_2d\" \n" +"\"2 місце\".ToSnakeCase(); // Повертає \"2_nd_place\" \n" "\"Texture3DAssetFolder\".ToSnakeCase(); // Повертає " -"\"texture_3d_asset_folder\"\n" -"[/csharp]\n" +"\"texture_3d_asset_folder\" \n" +"[/csharp] \n" "[/codeblocks]" msgid "Returns the string converted to [code]UPPERCASE[/code]." @@ -132730,19 +165415,20 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Видаляє рядок з формату URL-кодування. Цей метод призначений для коректного " -"видалення параметрів у URL при отриманні HTTP-запиту. Дивись також [метод " -"uri_encode].\n" -"[блоки коду]\n" -"[видання]\n" -"var url = \"$DOCS_URL/?highlight=Godot%20Engine%3%docs\"\n" -"Друк(url.uri_decode()) # Друки \"$DOCS_URL/?highlight=Godot Engine:docs\"\n" -"[/gdscript]\n" -"[csharp]\n" -"var url = \"$DOCS_URL/?highlight=Godot%20Engine%3%docs\"\n" -"GD.Print(url.URIDecode()) // Друки \"$DOCS_URL/?highlight=Godot Engine:" -"docs\"\n" -"[/csharp]\n" +"Декодує рядок із його URL-кодованого формату. Цей метод призначений для " +"правильного декодування параметрів в URL-адресі під час отримання запиту " +"HTTP. Дивіться також [метод uri_encode]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var url = \"$DOCS_URL/?highlight=Godot%20Engine%3%docs\" \n" +"print(url.uri_decode()) # Виводить \"$DOCS_URL/?highlight=Godot Engine:" +"docs\" \n" +"[/gdscript] \n" +"[csharp] \n" +"var url = \"$DOCS_URL/?highlight=Godot%20Engine%3%docs\" \n" +"GD.Print(url.URIDecode()) // Друкує \"$DOCS_URL/?highlight=Godot Engine:" +"docs\" \n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -132764,22 +165450,22 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Увімкніть рядок для безпечного формату URL. Цей метод покликаний правильно " -"зашифрувати параметри в URL при надсиланні HTTP-запиту. Дивись також [метод " -"uri_decode].\n" -"[блоки коду]\n" -"[видання]\n" -"var префікс = \"$DOCS_URL/?highlight=\"\n" -"var url = префікс + \"Godot Engine:docs\".uri_encode()\n" +"Кодує рядок до URL-дружнього формату. Цей метод призначений для правильного " +"кодування параметрів в URL-адресі під час надсилання запиту HTTP. Дивіться " +"також [метод uri_decode]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var prefix = \"$DOCS_URL/?highlight=\" \n" +"var url = prefix + \"Godot Engine:docs\".uri_encode() \n" "\n" -"Друк(url) # Друки \"$DOCS_URL/?highlight=Godot%20Engine%3%docs\"\n" -"[/gdscript]\n" -"[csharp]\n" -"var префікс = \"$DOCS_URL/?highlight=\";\n" -"var url = префікс + \"Godot Engine:docs\". URIEncode();\n" +"print(url) # Виводить \"$DOCS_URL/?highlight=Godot%20Engine%3%docs\" \n" +"[/gdscript] \n" +"[csharp] \n" +"var prefix = \"$DOCS_URL/?highlight=\"; \n" +"var url = prefix + \"Godot Engine:docs\".URIEncode(); \n" "\n" -"GD.Print(url); // Друки \"$DOCS_URL/?highlight=Godot%20Engine%3%docs\"\n" -"[/csharp]\n" +"GD.Print(url); // Друкує \"$DOCS_URL/?highlight=Godot%20Engine%3%docs\" \n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -132848,23 +165534,22 @@ msgid "" "learn.microsoft.com/en-us/dotnet/csharp/language-reference/tokens/" "interpolated]how to interpolate strings with \"$\"[/url]." msgstr "" -"Формати [String], заміщення учасників місця одним або декількома параметрами. " -"Для проходження декількох параметрів [параметра праворуч] потрібно бути " -"[Аррайм].\n" -"[блокування коду]\n" -"Друк(\"Я спійманий %d fishes!\" % 2) # Друки \"Я спійманий 2 риби!\"\n" +"Форматує [String], замінюючи заповнювачі одним або декількома параметрами. " +"Щоб передати кілька параметрів, [param right] має бути [Array]. \n" +"[codeblock] \n" +"print(\"I caught %d fishes!\" % 2) # Виводить \"I caught 2 fishes!\" \n" "\n" -"var my_message = \"Правила на %s, на %2.2f км/год.\"\n" -"var місце = \"Деп Долина\"\n" -"Вар швидкість = 40.3485\n" -"Друк(my_message % [локація, швидкість]) # Друки \"Похід до глибокої долини, " -"на 40.35 км/год.\"\n" -"[/codeblock]\n" -"Для отримання додаткової інформації див. [url=$DOCS_URL/tutorials/scripting/" -"gdscript_format_string.html]GDScript strings[/url] підручник.\n" -"[b]Note:[/b] У C# цей оператор не доступний. замість цього див. [url=https://" -"learn.microsoft.com/en-us/dotnet/csharp/language-reference/tokens/" -"interpolated]how to interpolate strings with \"$/url]." +"var my_message = \"Подорож до %s зі швидкістю %2,2f км/год.\" \n" +"var location = \"Deep Valley\" \n" +"var speed = 40,3485 \n" +"print(my_message % [location, speed]) # Виводить \"Подорож до Deep Valley зі " +"швидкістю 40,35 км/год.\" \n" +"[/codeblock] \n" +"Додаткову інформацію див. у посібнику [url=$DOCS_URL/tutorials/scripting/" +"gdscript/gdscript_format_string.html]Рядки формату GDScript[/url]. \n" +"[b]Примітка:[/b] у C# цей оператор недоступний. Натомість подивіться " +"[url=https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/" +"tokens/interpolated], як інтерполювати рядки за допомогою «$»[/url]." msgid "" "Appends [param right] at the end of this [String], also known as a string " @@ -132947,6 +165632,56 @@ msgstr "" msgid "A built-in type for unique strings." msgstr "Вбудований тип для унікальних рядків." +msgid "" +"[StringName]s are immutable strings designed for general-purpose " +"representation of unique names (also called \"string interning\"). Two " +"[StringName]s with the same value are the same object. Comparing them is " +"extremely fast compared to regular [String]s.\n" +"You will usually pass a [String] to methods expecting a [StringName] and it " +"will be automatically converted (often at compile time), but in rare cases " +"you can construct a [StringName] ahead of time with the [StringName] " +"constructor or, in GDScript, the literal syntax [code]&\"example\"[/code]. " +"Manually constructing a [StringName] allows you to control when the " +"conversion from [String] occurs or to use the literal and prevent conversions " +"entirely.\n" +"See also [NodePath], which is a similar concept specifically designed to " +"store pre-parsed scene tree paths.\n" +"All of [String]'s methods are available in this class too. They convert the " +"[StringName] into a string, and they also return a string. This is highly " +"inefficient and should only be used if the string is desired.\n" +"[b]Note:[/b] In C#, an explicit conversion to [code]System.String[/code] is " +"required to use the methods listed on this page. Use the [code]ToString()[/" +"code] method to cast a [StringName] to a string, and then use the equivalent " +"methods in [code]System.String[/code] or [code]StringExtensions[/code].\n" +"[b]Note:[/b] In a boolean context, a [StringName] will evaluate to " +"[code]false[/code] if it is empty ([code]StringName(\"\")[/code]). Otherwise, " +"a [StringName] will always evaluate to [code]true[/code]." +msgstr "" +"[StringName] — це незмінні рядки, призначені для представлення унікальних " +"імен загального призначення (також називається \"інтернування рядків\"). Два " +"[StringName] з однаковим значенням є одним і тим же об’єктом. Їх порівняння " +"відбувається надзвичайно швидко порівняно зі звичайними [String]. \n" +"Зазвичай ви передаєте [String] методам, які очікують [StringName], і він буде " +"автоматично перетворений (часто під час компіляції), але в рідкісних випадках " +"ви можете створити [StringName] завчасно за допомогою конструктора " +"[StringName] або, у GDScript, літерального синтаксису [code]&\"example\"[/" +"code]. Ручне створення [StringName] дозволяє контролювати, коли відбувається " +"перетворення з [String], або використовувати літерал і повністю запобігати " +"перетворенням. \n" +"Дивіться також [NodePath], який є подібною концепцією, спеціально розробленою " +"для зберігання попередньо проаналізованих шляхів дерева сцен. \n" +"Усі методи [String] також доступні в цьому класі. Вони перетворюють " +"[StringName] на рядок і також повертають рядок. Це дуже неефективно, і його " +"слід використовувати, лише якщо рядок потрібен. \n" +"[b]Примітка.[/b] У C# для використання методів, перелічених на цій сторінці, " +"потрібне явне перетворення в [code]System.String[/code]. Використовуйте метод " +"[code]ToString()[/code], щоб привести [StringName] до рядка, а потім " +"використовуйте еквівалентні методи в [code]System.String[/code] або " +"[code]StringExtensions[/code]. \n" +"[b]Примітка.[/b] У логічному контексті [StringName] матиме значення " +"[code]false[/code], якщо він порожній ([code]StringName(\"\")[/code]). В " +"іншому випадку [StringName] завжди матиме значення [code]true[/code]." + msgid "Constructs an empty [StringName]." msgstr "Будуємо порожній [StringName]." @@ -133223,6 +165958,43 @@ msgstr "" msgid "A customizable [StyleBox] that doesn't use a texture." msgstr "Налаштований [StyleBox], який не використовує текстуру." +msgid "" +"By configuring various properties of this style box, you can achieve many " +"common looks without the need of a texture. This includes optionally rounded " +"borders, antialiasing, shadows, and skew.\n" +"Setting corner radius to high values is allowed. As soon as corners overlap, " +"the stylebox will switch to a relative system:\n" +"[codeblock lang=text]\n" +"height = 30\n" +"corner_radius_top_left = 50\n" +"corner_radius_bottom_left = 100\n" +"[/codeblock]\n" +"The relative system now would take the 1:2 ratio of the two left corners to " +"calculate the actual corner width. Both corners added will [b]never[/b] be " +"more than the height. Result:\n" +"[codeblock lang=text]\n" +"corner_radius_top_left: 10\n" +"corner_radius_bottom_left: 20\n" +"[/codeblock]" +msgstr "" +"Налаштувавши різні властивості цього вікна стилю, ви можете досягти багатьох " +"загальних виглядів без потреби в текстурі. Це включає необов’язкові " +"заокруглені рамки, згладжування, тіні та нахил. \n" +"Дозволяється встановити високі значення радіуса кута. Як тільки кути " +"перекриваються, стильове поле перемикається на відносну систему: \n" +"[codeblock lang=text] \n" +"height = 30 \n" +"corner_radius_top_left = 50 \n" +"corner_radius_bottom_left = 100 \n" +"[/codeblock] \n" +"Відносна система тепер бере співвідношення 1:2 двох лівих кутів для " +"обчислення фактичної ширини кута. Обидва додані кути [b]ніколи[/b] не " +"перевищуватимуть висоту. Результат: \n" +"[codeblock lang=text] \n" +"corner_radius_top_left: 10 \n" +"corner_radius_bottom_left: 20 \n" +"[/codeblock]" + msgid "Returns the specified [enum Side]'s border width." msgstr "Повертає вказану [enum Side] ширину кордону." @@ -133583,6 +166355,18 @@ msgstr "" msgid "Modulates the color of the texture when this style box is drawn." msgstr "Модулює колір текстури при намальовці цього стилю." +msgid "" +"The region to use from the [member texture].\n" +"This is equivalent to first wrapping the [member texture] in an " +"[AtlasTexture] with the same region.\n" +"If empty ([code]Rect2(0, 0, 0, 0)[/code]), the whole [member texture] is used." +msgstr "" +"Регіон для використання з [текстури-учасника]. \n" +"Це еквівалентно першому обгортанню [текстури члена] в [AtlasTexture] з тією " +"самою областю. \n" +"Якщо порожній ([code]Rect2(0, 0, 0, 0)[/code]), використовується вся " +"[текстура члена]." + msgid "The texture to use when drawing this style box." msgstr "Текстура для використання при оформленні цього стилю коробка." @@ -133662,6 +166446,31 @@ msgstr "" "текстура може бути трохи розтягнута, щоб зробити дев'ятикутну текстуру плитки " "безшовно." +msgid "Runs a [Tween] nested within another [Tween]." +msgstr "Запускає [Tween], вкладений в інший [Tween]." + +msgid "" +"[SubtweenTweener] is used to execute a [Tween] as one step in a sequence " +"defined by another [Tween]. See [method Tween.tween_subtween] for more usage " +"information.\n" +"[b]Note:[/b] [method Tween.tween_subtween] is the only correct way to create " +"[SubtweenTweener]. Any [SubtweenTweener] created manually will not function " +"correctly." +msgstr "" +"[SubtweenTweener] використовується для виконання [Tween] як одного кроку в " +"послідовності, визначеній іншим [Tween]. Перегляньте [method Tween." +"tween_subtween] для отримання додаткової інформації про використання. \n" +"[b]Примітка: [/b] [метод Tween.tween_subtween] є єдиним правильним способом " +"створення [SubtweenTweener]. Будь-який [SubtweenTweener], створений вручну, " +"не працюватиме належним чином." + +msgid "" +"Sets the time in seconds after which the [SubtweenTweener] will start running " +"the subtween. By default there's no delay." +msgstr "" +"Встановлює час у секундах, після якого [SubtweenTweener] почне виконувати " +"підпроміжок. За замовчуванням затримки немає." + msgid "" "An interface to a game world that doesn't create a window or draw to the " "screen directly." @@ -133669,6 +166478,28 @@ msgstr "" "Інтерфейс до ігрового світу, який не створює вікна або малюйте екран " "безпосередньо." +msgid "" +"[SubViewport] Isolates a rectangular region of a scene to be displayed " +"independently. This can be used, for example, to display UI in 3D space.\n" +"[b]Note:[/b] [SubViewport] is a [Viewport] that isn't a [Window], i.e. it " +"doesn't draw anything by itself. To display anything, [SubViewport] must have " +"a non-zero size and be either put inside a [SubViewportContainer] or assigned " +"to a [ViewportTexture].\n" +"[b]Note:[/b] [InputEvent]s are not passed to a standalone [SubViewport] by " +"default. To ensure [InputEvent] propagation, a [SubViewport] can be placed " +"inside of a [SubViewportContainer]." +msgstr "" +"[SubViewport] Виокремлює прямокутну область сцени для незалежного " +"відображення. Це можна використовувати, наприклад, для відображення " +"інтерфейсу користувача в 3D-просторі. \n" +"[b]Примітка: [/b] [SubViewport] — це [Viewport], який не є [Window], тобто " +"сам по собі нічого не малює. Щоб відобразити будь-що, [SubViewport] має мати " +"відмінний від нуля розмір і бути поміщеним у [SubViewportContainer] або " +"призначеним [ViewportTexture]. \n" +"[b]Примітка:[/b] [InputEvent] не передаються до окремого [SubViewport] за " +"замовчуванням. Щоб забезпечити поширення [InputEvent], [SubViewport] можна " +"розмістити всередині [SubViewportContainer]." + msgid "Using Viewports" msgstr "Використання портів" @@ -133789,6 +166620,24 @@ msgstr "" "Пропагація не відбувається, якщо вона повертає [code]false[/code]. Якщо " "функція не реалізована, всі події пропагуються на SubViewports." +msgid "" +"Configure, if either the [SubViewportContainer] or alternatively the " +"[Control] nodes of its [SubViewport] children should be available as targets " +"of mouse-related functionalities, like identifying the drop target in drag-" +"and-drop operations or cursor shape of hovered [Control] node.\n" +"If [code]false[/code], the [Control] nodes inside its [SubViewport] children " +"are considered as targets.\n" +"If [code]true[/code], the [SubViewportContainer] itself will be considered as " +"a target." +msgstr "" +"Налаштуйте, якщо вузли [SubViewportContainer] або альтернативно вузли " +"[Control] його дочірніх елементів [SubViewport] мають бути доступними як цілі " +"функцій, пов’язаних із мишею, як-от визначення цілі скидання в операціях " +"перетягування або форми курсора вузла [Control], на який наведено курсор. \n" +"Якщо [code]false[/code], вузли [Control] всередині дочірніх елементів " +"[SubViewport] вважаються цільовими. \n" +"Якщо [code]true[/code], сам [SubViewportContainer] вважатиметься цільовим." + msgid "" "If [code]true[/code], the sub-viewport will be automatically resized to the " "control's size.\n" @@ -133857,40 +166706,41 @@ msgid "" "OpenGL/Face-culling]winding order[/url] for front faces of triangle primitive " "modes." msgstr "" -"[SurfaceTool] використовується для побудови [Меш], вказавши атрибути вершини " -"в індивідуальному режимі. Ви можете використовувати для побудови [Меш] з " -"скрипта. Всі властивості, крім індексів, необхідно додавати до виклику [метод " -"add_vertex]. Наприклад, для додавання кольорів вершини і УФС:\n" -"[блоки коду]\n" -"[видання]\n" -"var st = SurfaceTool.new()\n" -"st.begin(Mesh.PRIMITIVE_TRIANGLES)\n" -"st.set_color(Color(1, 0)\n" -"Ст.set_uv(Vector2(0, 0)\n" -"Ст.add_vertex(Vector3(0, 0, 0)\n" -"[/gdscript]\n" -"[csharp]\n" -"var st = новий SurfaceTool();\n" -"ст. Починати(Меш.ПримітивнийТип.Трикутники);\n" -"st.SetColor(новий колір(1, 0));\n" -"вул.СетУВ(новий Вектор2(0, 0));\n" -"вул.Додаткові (новий Вектор3(0, 0, 0));\n" -"[/csharp]\n" -"[/codeblocks]\n" -"[SurfaceTool] тепер містить одну вершину трикутника, який має УФ-координату і " -"вказану [Color]. Якщо ще один вершина додано без виклику [метод set_uv] або " -"[метод set_color], то будуть використані останні значення.\n" -"атрибути Vertex повинні бути передані [b]before[/b] виклик [метод " -"add_vertex]. Недостатньо робити це призведе до помилки при здійсненні " -"інформації вершини до сітки.\n" -"Додатково додано атрибути, що використовуються до першого вершини, визначають " -"формат сітки. Наприклад, якщо ви тільки додаєте УФ до першої вершини, ви не " -"можете додати колір до будь-якого з наступних вершин.\n" -"Дивись також [ArrayMesh], [ImmediateMesh] та [MeshDataTool] для створення " -"процедурної геометрії.\n" -"[b]Note:[/b] Godot використовує годинниковою стрілкою [url=https://" -"learnopengl.com/Advanced-OpenGL/Face-culling]winding Order[/url] для передніх " -"граней трикутника примітивних режимів." +"[SurfaceTool] використовується для побудови [Mesh] шляхом визначення " +"атрибутів вершин окремо. Його можна використовувати для створення [Mesh] зі " +"сценарію. Перед викликом [метод add_vertex] потрібно додати всі властивості, " +"крім індексів. Наприклад, щоб додати кольори вершин і UV: \n" +"[codeblocks] \n" +"[gdscript] \n" +"var st = SurfaceTool.new() \n" +"st.begin(Mesh.PRIMITIVE_TRIANGLES) \n" +"st.set_color(Color(1, 0, 0)) \n" +"st.set_uv(Vector2(0, 0)) \n" +"st.add_vertex(Vector3(0, 0, 0)) \n" +"[/gdscript] \n" +"[csharp] \n" +"var st = new SurfaceTool(); \n" +"st.Begin(Mesh.PrimitiveType.Triangles); \n" +"st.SetColor(new Color(1, 0, 0)); \n" +"st.SetUV(new Vector2(0, 0)); \n" +"st.AddVertex(new Vector3(0, 0, 0)); \n" +"[/csharp] \n" +"[/codeblocks] \n" +"Наведений вище [SurfaceTool] тепер містить одну вершину трикутника, яка має " +"UV-координату та вказаний [Color]. Якщо іншу вершину було додано без виклику " +"[method set_uv] або [method set_color], тоді будуть використані останні " +"значення. \n" +"Атрибути вершин необхідно передати [b]перед[/b] викликом [методу add_vertex]. " +"Невиконання цього призведе до помилки під час внесення інформації про вершини " +"до сітки. \n" +"Крім того, атрибути, які використовуються перед додаванням першої вершини, " +"визначають формат сітки. Наприклад, якщо ви додаєте UV лише до першої " +"вершини, ви не можете додати колір до жодної з наступних вершин. \n" +"Дивіться також [ArrayMesh], [ImmediateMesh] і [MeshDataTool] для створення " +"процедурної геометрії. \n" +"[b]Примітка:[/b] Годо використовує [url=https://learnopengl.com/Advanced-" +"OpenGL/Face-culling]порядок намотування[/url] за годинниковою стрілкою для " +"передніх граней примітивних режимів трикутника." msgid "Using the SurfaceTool" msgstr "Використання SurfaceTool" @@ -133934,6 +166784,23 @@ msgstr "" msgid "Clear all information passed into the surface tool so far." msgstr "Зніміть всю інформацію, отриману в поверхневий інструмент так далеко." +msgid "" +"Returns a constructed [ArrayMesh] from current information passed in. If an " +"existing [ArrayMesh] is passed in as an argument, will add an extra surface " +"to the existing [ArrayMesh].\n" +"The [param flags] argument can be the bitwise OR of [constant Mesh." +"ARRAY_FLAG_USE_DYNAMIC_UPDATE], [constant Mesh." +"ARRAY_FLAG_USE_8_BONE_WEIGHTS], or [constant Mesh." +"ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY]." +msgstr "" +"Повертає сконструйований [ArrayMesh] із поточної переданої інформації. Якщо " +"наявний [ArrayMesh] передано як аргумент, буде додано додаткову поверхню до " +"існуючого [ArrayMesh]. \n" +"Аргумент [param flags] може бути порозрядним АБО [константи Mesh." +"ARRAY_FLAG_USE_DYNAMIC_UPDATE], [константи Mesh." +"ARRAY_FLAG_USE_8_BONE_WEIGHTS] або [константи Mesh." +"ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY]." + msgid "" "Commits the data to the same format used by [method ArrayMesh." "add_surface_from_arrays], [method ImporterMesh.add_surface], and [method " @@ -133989,6 +166856,45 @@ msgstr "" "(королевий корінь квадроциклічної метрики), використовуючи в більшості [памна " "ціль_index_count] індекси." +msgid "" +"Generates normals from vertices so you do not have to do it manually. If " +"[param flip] is [code]true[/code], the resulting normals will be inverted. " +"[method generate_normals] should be called [i]after[/i] generating geometry " +"and [i]before[/i] committing the mesh using [method commit] or [method " +"commit_to_arrays]. For correct display of normal-mapped surfaces, you will " +"also have to generate tangents using [method generate_tangents].\n" +"[b]Note:[/b] [method generate_normals] only works if the primitive type is " +"set to [constant Mesh.PRIMITIVE_TRIANGLES].\n" +"[b]Note:[/b] [method generate_normals] takes smooth groups into account. To " +"generate smooth normals, set the smooth group to a value greater than or " +"equal to [code]0[/code] using [method set_smooth_group] or leave the smooth " +"group at the default of [code]0[/code]. To generate flat normals, set the " +"smooth group to [code]-1[/code] using [method set_smooth_group] prior to " +"adding vertices." +msgstr "" +"Генерує нормалі з вершин, тому вам не потрібно робити це вручну. Якщо [param " +"flip] має значення [code]true[/code], отримані нормалі будуть інвертовані. " +"[method generate_normals] слід викликати [i]після[/i] генерації геометрії та " +"[i]перед[/i] фіксацією сітки за допомогою [method commit] або [method " +"commit_to_arrays]. Для правильного відображення поверхонь, нанесених на карту " +"нормалей, вам також доведеться генерувати дотичні за допомогою [метод " +"generate_tangents]. \n" +"[b]Примітка:[/b] [метод generate_normals] працює, лише якщо для примітивного " +"типу встановлено значення [constant Mesh.PRIMITIVE_TRIANGLES]. \n" +"[b]Примітка:[/b] [метод generate_normals] враховує гладкі групи. Щоб " +"згенерувати згладжені нормалі, встановіть для згладженої групи значення " +"більше або рівне [code]0[/code] за допомогою [методу set_smooth_group] або " +"залиште згладжену групу за замовчуванням [code]0[/code]. Щоб створити плоскі " +"нормалі, перед додаванням вершин встановіть згладжену групу на [code]-1[/" +"code] за допомогою [методу set_smooth_group]." + +msgid "" +"Generates a tangent vector for each vertex. Requires that each vertex already " +"has UVs and normals set (see [method generate_normals])." +msgstr "" +"Генерує дотичний вектор для кожної вершини. Вимагає, щоб кожна вершина вже " +"мала встановлені UV і нормалі (див. [метод generate_normals])." + msgid "Returns the axis-aligned bounding box of the vertex positions." msgstr "Повертає вісь-вирівнюючу коробку позицій вершини." @@ -134083,6 +166989,18 @@ msgstr "" "повинна мати цей набір інформації, і ви не можете подати його на перший " "вершину, ця інформація не може бути використана у всіх випадках." +msgid "" +"Set to [constant SKIN_8_WEIGHTS] to indicate that up to 8 bone influences per " +"vertex may be used.\n" +"By default, only 4 bone influences are used ([constant SKIN_4_WEIGHTS]).\n" +"[b]Note:[/b] This function takes an enum, not the exact number of weights." +msgstr "" +"Установіть значення [постійна SKIN_8_WEIGHTS], щоб вказати, що можна " +"використовувати до 8 впливів на кістку на вершину. \n" +"За замовчуванням використовуються лише 4 впливи на кістку ([константа " +"SKIN_4_WEIGHTS]). \n" +"[b]Примітка.[/b] Ця функція приймає перелік, а не точну кількість ваг." + msgid "" "Specifies the smooth group to use for the [i]next[/i] vertex. If this is " "never called, all vertices will have the default smooth group of [code]0[/" @@ -134258,6 +167176,50 @@ msgstr "" "Очищає всі дані, що висвітлюють синтаксису.\n" "Потім виклики перевантажувального методу [метод] _clear_highlighting_cache]." +msgid "" +"Returns the syntax highlighting data for the line at index [param line]. If " +"the line is not cached, calls [method _get_line_syntax_highlighting] first to " +"calculate the data.\n" +"Each entry is a column number containing a nested [Dictionary]. The column " +"number denotes the start of a region, the region will end if another region " +"is found, or at the end of the line. The nested [Dictionary] contains the " +"data for that region. Currently only the key [code]\"color\"[/code] is " +"supported.\n" +"[b]Example:[/b] Possible return value. This means columns [code]0[/code] to " +"[code]4[/code] should be red, and columns [code]5[/code] to the end of the " +"line should be green:\n" +"[codeblock]\n" +"{\n" +" 0: {\n" +" \"color\": Color(1, 0, 0)\n" +" },\n" +" 5: {\n" +" \"color\": Color(0, 1, 0)\n" +" }\n" +"}\n" +"[/codeblock]" +msgstr "" +"Повертає дані підсвічування синтаксису для рядка за індексом [param line]. " +"Якщо рядок не кешується, спочатку викликається [метод " +"_get_line_syntax_highlighting] для обчислення даних. \n" +"Кожен запис є номером стовпця, що містить вкладений [Словник]. Номер стовпця " +"позначає початок регіону, регіон закінчується, якщо знайдено інший регіон, " +"або в кінці рядка. Вкладений [Словник] містить дані для цього регіону. Наразі " +"підтримується лише ключ [код]\"колір\"[/код]. \n" +"[b]Приклад:[/b] Можливе повернуте значення. Це означає, що стовпці [code]0[/" +"code] до [code]4[/code] мають бути червоними, а стовпці [code]5[/code] до " +"кінця рядка мають бути зеленими: \n" +"[codeblock] \n" +"{\n" +" 0: { \n" +" \"color\": Color(1, 0, 0) \n" +" }, \n" +" 5: { \n" +" \"color\": Color(0, 1, 0) \n" +" } \n" +"}\n" +"[/codeblock]" + msgid "Returns the associated [TextEdit] node." msgstr "Повертає асоційований вузол [TextEdit]." @@ -134661,17 +167623,17 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Увімкніть, коли натискається кнопка вкладки.\n" -"[b]Примітка:[/b] Таблиці не знімаються автоматично, коли натискається кнопка, " -"ця поведінка повинна бути запрограмована вручну. Наприклад:\n" -"[блоки коду]\n" -"[видання]\n" -"$TabBar.tab_close_pressed.connect($TabBar.remove_tab)\n" -"[/gdscript]\n" -"[csharp]\n" -"GetNode <TabBar>(\"TabBar\"). TabClosePressed += GetNode<TabBar>(\"TabBar\"). " -"ВидалитиТаб;\n" -"[/csharp]\n" +"Видається під час натискання кнопки закриття вкладки. \n" +"[b]Примітка.[/b] Вкладки не видаляються автоматично після натискання кнопки " +"закриття, цю поведінку потрібно запрограмувати вручну. Наприклад: \n" +"[codeblocks] \n" +"[gdscript] \n" +"$TabBar.tab_close_pressed.connect($TabBar.remove_tab) \n" +"[/gdscript] \n" +"[csharp] \n" +"GetNode<TabBar>(\"TabBar\").TabClosePressed += GetNode<TabBar>(\"TabBar\")." +"RemoveTab; \n" +"[/csharp] \n" "[/codeblocks]" msgid "Emitted when a tab is hovered by the mouse." @@ -135312,6 +168274,42 @@ msgstr "" "Стартує багатоканальне редагування. Всі редагування будуть розглядатися як " "одна дія, доки [метод_комплекс_операция]." +msgid "" +"Starts an edit for multiple carets. The edit must be ended with [method " +"end_multicaret_edit]. Multicaret edits can be used to edit text at multiple " +"carets and delay merging the carets until the end, so the caret indexes " +"aren't affected immediately. [method begin_multicaret_edit] and [method " +"end_multicaret_edit] can be nested, and the merge will happen at the last " +"[method end_multicaret_edit].\n" +"[codeblock]\n" +"begin_complex_operation()\n" +"begin_multicaret_edit()\n" +"for i in range(get_caret_count()):\n" +" if multicaret_edit_ignore_caret(i):\n" +" continue\n" +" # Logic here.\n" +"end_multicaret_edit()\n" +"end_complex_operation()\n" +"[/codeblock]" +msgstr "" +"Початок редагування для кількох вставок. Редагування має бути завершено за " +"допомогою [метод end_multicaret_edit]. Редагування з кількома вставками можна " +"використовувати для редагування тексту в кількох вставках і відкладати " +"об’єднання вставок до кінця, тому індекси вставки не впливатимуть негайно. " +"[method begin_multicaret_edit] і [method end_multicaret_edit] можуть бути " +"вкладеними, і об’єднання відбудеться в останньому [method " +"end_multicaret_edit]. \n" +"[codeblock] \n" +"begin_complex_operation() \n" +"begin_multicaret_edit() \n" +"for i in range (get_caret_count()): \n" +" if multicaret_edit_ignore_caret(i): \n" +" continue \n" +" # Тут логіка. \n" +"end_multicaret_edit() \n" +"end_complex_operation() \n" +"[/codeblock]" + msgid "" "Centers the viewport on the line the editing caret is at. This also resets " "the [member scroll_horizontal] value to [code]0[/code]." @@ -135412,6 +168410,13 @@ msgid "Returns the wrap index the editing caret is on." msgstr "" "Повертаємо індекс обгортання, на якому знаходиться догляд за редагування." +msgid "" +"Returns the first column containing a non-whitespace character on the given " +"line. If there is only whitespace, returns the number of characters." +msgstr "" +"Повертає перший стовпець, що містить непробільний символ у заданому рядку. " +"Якщо є лише пробіли, повертає кількість символів." + msgid "Returns the first visible line." msgstr "Повертаємо перший видимий рядок." @@ -135434,6 +168439,15 @@ msgstr "Повертає ширину жолобу на заданому інд msgid "Returns the [HScrollBar] used by [TextEdit]." msgstr "Повернення [HScrollBar], що використовується [TextEdit]." +msgid "" +"Returns the indent level of the given line. This is the number of spaces and " +"tabs at the beginning of the line, with the tabs taking the tab size into " +"account (see [method get_tab_size])." +msgstr "" +"Повертає рівень відступу заданого рядка. Це кількість пробілів і знаків " +"табуляції на початку рядка з урахуванням розміру табуляції (див. [метод " +"get_tab_size])." + msgid "" "Returns the last visible line. Use [method " "get_last_full_visible_line_wrap_index] for the wrap index." @@ -135451,6 +168465,30 @@ msgstr "Повертає останній неприхований рядок у msgid "Returns the text of a specific line." msgstr "Повертає текст конкретної лінії." +msgid "" +"Returns the custom background color of the given line. If no color is set, " +"returns [code]Color(0, 0, 0, 0)[/code]." +msgstr "" +"Повертає настроюваний колір фону заданого рядка. Якщо колір не встановлено, " +"повертає [code]Колір(0, 0, 0, 0)[/code]." + +msgid "" +"Returns the line and column at the given position. In the returned vector, " +"[code]x[/code] is the column and [code]y[/code] is the line.\n" +"If [param clamp_line] is [code]false[/code] and [param position] is below the " +"last line, [code]Vector2i(-1, -1)[/code] is returned.\n" +"If [param clamp_column] is [code]false[/code] and [param position] is outside " +"the column range of the line, [code]Vector2i(-1, -1)[/code] is returned." +msgstr "" +"Повертає рядок і стовпець у вказаній позиції. У повернутому векторі [код]x[/" +"code] — стовпець, а [код]y[/code] — рядок. \n" +"Якщо [param clamp_line] має значення [code]false[/code] і [param position] " +"знаходиться під останнім рядком, повертається [code]Vector2i(-1, -1)[/" +"code]. \n" +"Якщо [param clamp_column] має значення [code]false[/code] і [param position] " +"знаходиться за межами діапазону стовпців рядка, повертається " +"[code]Vector2i(-1, -1)[/code]." + msgid "Returns the number of lines in the text." msgstr "Повертаємо кількість рядків у тексті." @@ -135509,9 +168547,23 @@ msgstr "" msgid "Returns the width in pixels of the [param wrap_index] on [param line]." msgstr "Повертає ширину пікселів [param wrap_index] на [param line]." +msgid "" +"Returns line text as it is currently displayed, including IME composition " +"string." +msgstr "" +"Повертає текстовий рядок у тому вигляді, у якому він відображається на даний " +"момент, включаючи рядок композиції IME." + msgid "Returns the number of times the given line is wrapped." msgstr "Повертаємо кількість разів задана лінія загортається." +msgid "" +"Returns the wrap index of the given column on the given line. This ranges " +"from [code]0[/code] to [method get_line_wrap_count]." +msgstr "" +"Повертає індекс обтікання заданого стовпця в заданому рядку. Це коливається " +"від [code]0[/code] до [method get_line_wrap_count]." + msgid "Returns an array of [String]s representing each wrapped index." msgstr "Повертає масив [String], що представляє кожний індекс." @@ -135566,51 +168618,53 @@ msgid "" "cause a crash. If you wish to hide it or any of its children, use their " "[member Window.visible] property." msgstr "" -"Повернення [PopupMenu] цього [LineEdit]. За замовчуванням, це меню " -"відображається при правому зверненні на [LineEdit].\n" -"Ви можете додати спеціальні елементи меню або видалити стандартні. Ми " -"впевнені, що Ваші ідентифікатори не суперечать стандартам. Наприклад:\n" -"[блоки коду]\n" -"[видання]\n" -"Func _ready():\n" -"var меню = get_menu()\n" -"# Видалити всі елементи після \"Редо\".\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"# Додати спеціальні товари.\n" -"меню.add_separator()\n" -"Меню.add_item(\"Дата вставки\", MENU_MAX + 1)\n" -"# Зворотній дзвінок.\n" -"JavaScript licenses API Веб-сайт\n" +"Повертає [PopupMenu] цього [TextEdit]. За замовчуванням це меню " +"відображається, якщо клацнути правою кнопкою миші на [TextEdit]. \n" +"Ви можете додати власні пункти меню або видалити стандартні. Переконайтеся, " +"що ваші ідентифікатори не конфліктують зі стандартними (див. [enum " +"MenuItems]). Наприклад: \n" +"[codeblocks] \n" +"[gdscript] \n" +"func _ready(): \n" +" var menu = get_menu() \n" +" # Видалити всі елементи після \"Повторити\". \n" +" menu.item_count = menu.get_item_index(MENU_REDO) + 1 \n" +" # Додайте спеціальні елементи. \n" +" menu.add_separator() \n" +" menu.add_item(\"Вставити дату\", MENU_MAX + 1) \n" +" # Підключити зворотній дзвінок. \n" +" menu.id_pressed.connect(_on_item_pressed) \n" "\n" -"Func _on_item_pressed(id):\n" -"якщо id == MENU_MAX + 1:\n" -"вставка_text_at_caret(Time.get_date_string__system()))\n" -"[/gdscript]\n" -"[csharp]\n" -"public override _Читати()\n" -"Довідник\n" -"var меню = GetMenu();\n" -"(Українська) Видалити всі елементи після \"Редо\".\n" -"меню.ItemCount = меню.GetItemIndex(LineEdit.MenuItems.Redo) + 1;\n" -"(Українська) Додати спеціальні товари.\n" -"меню.AddSeparator();\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"(Українська) Додати обробник подій.\n" -"Меню IdPressed += OnItemПресований;\n" -"Про нас\n" +"func _on_item_pressed(id): \n" +" if id == MENU_MAX + 1: \n" +" insert_text_at_caret(Time.get_date_string_from_system()) \n" +"[/gdscript] \n" +"[csharp] \n" +"public override void _Ready() \n" +"{\n" +" var menu = GetMenu(); \n" +" // Видалити всі елементи після \"Redo\". \n" +" menu.ItemCount = menu.GetItemIndex(TextEdit.MenuItems.Redo) + 1; \n" +" // Додати власні елементи. \n" +" menu.AddSeparator(); \n" +" menu.AddItem(\"Вставити дату\", TextEdit.MenuItems.Max + 1); \n" +" // Додати обробник події. \n" +" menu.IdPressed += OnItemPressed; \n" +"}\n" "\n" -"public void OnItemПресована(int id)\n" -"Довідник\n" -"Якщо (id= LineEdit.MenuItems.Max + 1 час\n" -"Довідник\n" -"InsertTextAtCaret(Time.GetDateStringFromSystem());\n" -"Про нас\n" -"Про нас\n" -"[/csharp]\n" -"[/codeblocks]\n" -"[b]Навігація:[/b] Це необхідний внутрішній вузол, видаляючи і звільняючи його " -"може призвести до аварії. Якщо ви хочете приховати його або будь-який з своїх " -"дітей, скористайтеся їх [пам'ятне вікно.видиме]." +"public void OnItemPressed(int id) \n" +"{\n" +" if (id == TextEdit.MenuItems.Max + 1) \n" +" { \n" +" InsertTextAtCaret(Time.GetDateStringFromSystem()); \n" +" } \n" +"}\n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Попередження:[/b] Це обов’язковий внутрішній вузол, його видалення та " +"звільнення може призвести до збою. Якщо ви бажаєте приховати його чи будь-" +"який із його дочірніх елементів, скористайтеся властивістю [member Window." +"visible]." msgid "Returns the equivalent minimap line at [param position]." msgstr "Повернення еквівалентної мінікарти на [пам'яча позиція]." @@ -135755,6 +168809,20 @@ msgstr "Повертає розмір вкладки [TextEdit]." msgid "Returns the total width of all gutters and internal padding." msgstr "Повертаємо загальну ширину всіх жолобів і внутрішніх наповнювачів." +msgid "" +"Returns the total number of lines in the text. This includes wrapped lines " +"and excludes folded lines. If [member wrap_mode] is set to [constant " +"LINE_WRAPPING_NONE] and no lines are folded (see [method CodeEdit." +"is_line_folded]) then this is equivalent to [method get_line_count]. See " +"[method get_visible_line_count_in_range] for a limited range of lines." +msgstr "" +"Повертає загальну кількість рядків у тексті. Сюди входять переплетені лінії " +"та виключаються складені лінії. Якщо [member wrap_mode] встановлено на " +"[constant LINE_WRAPPING_NONE] і жоден рядок не згортається (див. [метод " +"CodeEdit.is_line_folded]), то це еквівалентно [методу get_line_count]. " +"Перегляньте [метод get_visible_line_count_in_range] для обмеженого діапазону " +"рядків." + msgid "Returns the [VScrollBar] of the [TextEdit]." msgstr "Повернення [VScrollBar] [TextEdit]." @@ -135765,6 +168833,24 @@ msgstr "" "Повертає поточну версію [TextEdit]. Редакція - це кількість записаних " "операцій з андо/червоною історією." +msgid "" +"Returns the number of lines that can visually fit, rounded down, based on " +"this control's height." +msgstr "" +"Повертає кількість рядків, які можна візуально помістити, округлену вниз, на " +"основі висоти цього елемента керування." + +msgid "" +"Returns the total number of lines between [param from_line] and [param " +"to_line] (inclusive) in the text. This includes wrapped lines and excludes " +"folded lines. If the range covers all lines it is equivalent to [method " +"get_total_visible_line_count]." +msgstr "" +"Повертає загальну кількість рядків між [param from_line] і [param to_line] " +"(включно) у тексті. Сюди входять переплетені лінії та виключаються складені " +"лінії. Якщо діапазон охоплює всі рядки, це еквівалентно [метод " +"get_total_visible_line_count]." + msgid "Returns the word at [param position]." msgstr "Повертає слово на [пам]." @@ -135804,6 +168890,28 @@ msgstr "" "Повертає [code]true[/code], якщо догляд за вибором після виходу. Це можна " "використовувати для визначення напрямку вибору." +msgid "" +"Returns [code]true[/code] if the caret is visible, [code]false[/code] " +"otherwise. A caret will be considered hidden if it is outside the scrollable " +"area when scrolling is enabled.\n" +"[b]Note:[/b] [method is_caret_visible] does not account for a caret being off-" +"screen if it is still within the scrollable area. It will return [code]true[/" +"code] even if the caret is off-screen as long as it meets [TextEdit]'s own " +"conditions for being visible. This includes uses of [member " +"scroll_fit_content_width] and [member scroll_fit_content_height] that cause " +"the [TextEdit] to expand beyond the viewport's bounds." +msgstr "" +"Повертає [code]true[/code], якщо каретка видима, [code]false[/code] інакше. " +"Каретка вважатиметься прихованою, якщо вона знаходиться поза межами " +"прокручуваної області, коли прокручування ввімкнено. \n" +"[b]Примітка: [/b] [метод is_caret_visible] не враховує те, що введення вказує " +"поза екраном, якщо воно все ще знаходиться в області прокручування. Він " +"поверне [code]true[/code], навіть якщо каретка знаходиться поза екраном, якщо " +"вона відповідає власним умовам [TextEdit] щодо видимості. Це включає в себе " +"використання [member scroll_fit_content_width] і [member " +"scroll_fit_content_height], які змушують [TextEdit] розширюватися за межі " +"вікна перегляду." + msgid "" "Returns [code]true[/code] if the user is dragging their mouse for scrolling, " "selecting, or text dragging." @@ -135811,6 +168919,27 @@ msgstr "" "Повертаємо [code]true[/code], якщо користувач перетягує мишу для " "прокручування, вибору або перетягування тексту." +msgid "" +"Returns [code]true[/code] if the gutter at the given index is clickable. See " +"[method set_gutter_clickable]." +msgstr "" +"Повертає [code]true[/code], якщо ринву за заданим індексом можна натиснути. " +"Перегляньте [метод set_gutter_clickable]." + +msgid "" +"Returns [code]true[/code] if the gutter at the given index is currently " +"drawn. See [method set_gutter_draw]." +msgstr "" +"Повертає [code]true[/code], якщо жолоб за вказаним індексом наразі " +"намальовано. Перегляньте [метод set_gutter_draw]." + +msgid "" +"Returns [code]true[/code] if the gutter at the given index is overwritable. " +"See [method set_gutter_overwritable]." +msgstr "" +"Повертає [code]true[/code], якщо порожнеча за вказаним індексом " +"перезаписується. Перегляньте [метод set_gutter_overwritable]." + msgid "" "Returns [code]true[/code] if a [method begin_multicaret_edit] has been called " "and [method end_multicaret_edit] has not yet been called." @@ -135818,9 +168947,46 @@ msgstr "" "[code]true[/code] if a [method start_multicaret_edit] був викликаний і [метод " "end_multicaret_edit] ще не був викликаний." +msgid "" +"Returns [code]true[/code] if the gutter at the given index on the given line " +"is clickable. See [method set_line_gutter_clickable]." +msgstr "" +"Повертає [code]true[/code], якщо ліву лінію за вказаним індексом у заданому " +"рядку можна натиснути. Перегляньте [метод set_line_gutter_clickable]." + msgid "Returns if the given line is wrapped." msgstr "Повертаємо, якщо задана лінія загортається." +msgid "" +"Returns [code]true[/code] if the menu is visible. Use this instead of " +"[code]get_menu().visible[/code] to improve performance (so the creation of " +"the menu is avoided). See [method get_menu]." +msgstr "" +"Повертає [code]true[/code], якщо меню видно. Використовуйте це замість " +"[code]get_menu().visible[/code], щоб покращити продуктивність (щоб уникнути " +"створення меню). Перегляньте [метод get_menu]." + +msgid "" +"Returns [code]true[/code] if the mouse is over a selection. If [param edges] " +"is [code]true[/code], the edges are considered part of the selection." +msgstr "" +"Повертає [code]true[/code], якщо вказівник миші наведено на виділення. Якщо " +"[param edges] має значення [code]true[/code], краї вважаються частиною вибору." + +msgid "" +"Returns [code]true[/code] if overtype mode is enabled. See [method " +"set_overtype_mode_enabled]." +msgstr "" +"Повертає [code]true[/code], якщо ввімкнено режим перетипу. Перегляньте [метод " +"set_overtype_mode_enabled]." + +msgid "" +"Merge the gutters from [param from_line] into [param to_line]. Only " +"overwritable gutters will be copied. See [method set_gutter_overwritable]." +msgstr "" +"Об’єднайте жолоби від [param from_line] до [param to_line]. Буде скопійовано " +"лише перезаписувані жолоби. Перегляньте [метод set_gutter_overwritable]." + msgid "" "Merges any overlapping carets. Will favor the newest caret, or the caret with " "a selection.\n" @@ -135873,6 +169039,9 @@ msgstr "" "[b]Примітка:[/b] Це може призвести до коригування всіх інших показників " "догляду." +msgid "Removes the gutter at the given index." +msgstr "Знімає жолоб за заданим індексом." + msgid "" "Removes the line of text at [param line]. Carets on this line will attempt to " "match their previous visual x position.\n" @@ -135915,27 +169084,28 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Виконайте пошук у тексті. Пошук прапорів можна вказати в [enum SearchFlags] " -"enum.\n" -"У зворотному векторі [code]x[/code] є стовпчиком, [code]y[/code] є рядком. " -"Якщо не знайдено результатів, обидва рівні [code]-1[/code].\n" -"[блоки коду]\n" -"[видання]\n" -"var результат = пошук (\"print\", SEARCH_WHOLE_WORDS, 0, 0)\n" -"якщо результат.x != -1:\n" -"# Результат пошуку\n" -"var line_number = результат.y\n" -"var стовпчик_number = результат.x\n" -"[/gdscript]\n" -"[csharp]\n" -"JavaScript licenses API Веб-сайт Go1.13.8 Кількі, 0, 0;\n" -"якщо (result.X != -1\n" -"Довідник\n" -"(Українська) Результат пошуку\n" -"int lineКількість = результат. Я;\n" -"int stringКількість = результат. X;\n" -"Про нас\n" -"[/csharp]\n" +"Виконайте пошук всередині тексту. Прапори пошуку можна вказати в переліку " +"[enum SearchFlags]. \n" +"У повернутому векторі [code]x[/code] — стовпець, [code]y[/code] — рядок. Якщо " +"результатів не знайдено, обидва дорівнюють [code]-1[/code]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var result = search(\"друк\", SEARCH_WHOLE_WORDS, 0, 0) \n" +"if result.x != -1: \n" +" # Результат знайдено. \n" +" var line_number = result.y \n" +" var column_number = result.x \n" +"[/gdscript] \n" +"[csharp] \n" +"Vector2I result = Search(\"print\", (uint)TextEdit.SearchFlags.WholeWords, 0, " +"0); \n" +"if (результат.X != -1) \n" +"{\n" +" // Результат знайдено. \n" +" int lineNumber = result.Y; \n" +" int columnNumber = result.X; \n" +"}\n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -136010,6 +169180,60 @@ msgstr "" "[b]Note:[/b] Якщо підтримувати кілька карт, це не перевірить будь-який " "перекриття. Див. [метод злиття_overlapping_carets]." +msgid "" +"If [code]true[/code], the mouse cursor will change to a pointing hand " +"([constant Control.CURSOR_POINTING_HAND]) when hovering over the gutter at " +"the given index. See [method is_gutter_clickable] and [method " +"set_line_gutter_clickable]." +msgstr "" +"Якщо [code]true[/code], курсор миші зміниться на вказівну руку ([constant " +"Control.CURSOR_POINTING_HAND]) під час наведення вказівника на жолоб у " +"заданому індексі. Перегляньте [метод is_gutter_clickable] і [метод " +"set_line_gutter_clickable]." + +msgid "" +"Set a custom draw callback for the gutter at the given index. [param " +"draw_callback] must take the following arguments: A line index [int], a " +"gutter index [int], and an area [Rect2]. This callback only works when the " +"gutter type is [constant GUTTER_TYPE_CUSTOM] (see [method set_gutter_type])." +msgstr "" +"Встановіть настроюваний зворотний виклик для жолоба за заданим індексом. " +"[param draw_callback] має приймати такі аргументи: індекс лінії [int], індекс " +"жолоба [int] і область [Rect2]. Цей зворотній виклик працює лише тоді, коли " +"тип жолоба [константа GUTTER_TYPE_CUSTOM] (див. [метод set_gutter_type])." + +msgid "" +"If [code]true[/code], the gutter at the given index is drawn. The gutter type " +"([method set_gutter_type]) determines how it is drawn. See [method " +"is_gutter_drawn]." +msgstr "" +"Якщо [code]true[/code], малюється жолоб за вказаним індексом. Тип жолоба " +"([метод set_gutter_type]) визначає спосіб його малювання. Дивіться [метод " +"is_gutter_drawn]." + +msgid "Sets the name of the gutter at the given index." +msgstr "Встановлює назву жолоба за вказаним індексом." + +msgid "" +"If [code]true[/code], the line data of the gutter at the given index can be " +"overridden when using [method merge_gutters]. See [method " +"is_gutter_overwritable]." +msgstr "" +"Якщо [code]true[/code], дані рядка жолоба за вказаним індексом можна " +"перевизначити під час використання [методу merge_gutters]. Перегляньте [метод " +"is_gutter_overwritable]." + +msgid "" +"Sets the type of gutter at the given index. Gutters can contain icons, text, " +"or custom visuals. See [enum TextEdit.GutterType] for options." +msgstr "" +"Встановлює тип жолоба за заданим індексом. Водостічні канали можуть містити " +"піктограми, текст або спеціальні візуальні елементи. Дивіться параметри [enum " +"TextEdit.GutterType]." + +msgid "Set the width of the gutter at the given index." +msgstr "Встановіть ширину жолоба за заданим індексом." + msgid "" "Sets the text for a specific [param line].\n" "Carets on the line will attempt to keep their visual x position." @@ -136031,6 +169255,31 @@ msgid "" "viewport." msgstr "Позиції [param wrap_index] [param line] в нижній частині порту." +msgid "" +"Sets the custom background color of the given line. If transparent, this " +"color is applied on top of the default background color (See [theme_item " +"background_color]). If set to [code]Color(0, 0, 0, 0)[/code], no additional " +"color is applied." +msgstr "" +"Встановлює настроюваний колір тла даного рядка. Якщо прозорий, цей колір " +"застосовується поверх стандартного кольору фону (див. [theme_item " +"background_color]). Якщо встановлено значення [code]Color(0, 0, 0, 0)[/code], " +"додатковий колір не застосовується." + +msgid "" +"If [param clickable] is [code]true[/code], makes the [param gutter] on the " +"given [param line] clickable. This is like [method set_gutter_clickable], but " +"for a single line. If [method is_gutter_clickable] is [code]true[/code], this " +"will not have any effect. See [method is_line_gutter_clickable] and [signal " +"gutter_clicked]." +msgstr "" +"Якщо [param clickable] має значення [code]true[/code], робить [param gutter] " +"у заданому [param line] доступним для натискання. Це як [метод " +"set_gutter_clickable], але для одного рядка. Якщо [method " +"is_gutter_clickable] має значення [code]true[/code], це не матиме жодного " +"ефекту. Перегляньте [method is_line_gutter_clickable] і [signal " +"gutter_clicked]." + msgid "" "Sets the icon for [param gutter] on [param line] to [param icon]. This only " "works when the gutter type is [constant GUTTER_TYPE_ICON] (see [method " @@ -136055,6 +169304,17 @@ msgstr "" "Встановіть текст для [param gutter] на [param line] на [param text]. Це " "тільки працює, коли тип жолобу [constant GUTTER_TYPE_STRING] (див. [метод]." +msgid "" +"If [code]true[/code], enables overtype mode. In this mode, typing overrides " +"existing text instead of inserting text. The [member ProjectSettings.input/" +"ui_text_toggle_insert_mode] action toggles overtype mode. See [method " +"is_overtype_mode_enabled]." +msgstr "" +"Якщо [code]true[/code], вмикає режим перетипу. У цьому режимі введення " +"замінює наявний текст замість вставки. Дія [member ProjectSettings.input/" +"ui_text_toggle_insert_mode] перемикає режим накладення. Перегляньте [метод " +"is_overtype_mode_enabled]." + msgid "" "Sets the search [param flags]. This is used with [method set_search_text] to " "highlight occurrences of the searched text. Search flags can be specified " @@ -136166,6 +169426,15 @@ msgstr "" "мишки перед відображенням контекстного меню.\n" "Якщо [code]false[/code], контекстне меню ігнорує розташування мишки." +msgid "" +"If [code]true[/code], multiple carets are allowed. Left-clicking with " +"[kbd]Alt[/kbd] adds a new caret. See [method add_caret] and [method " +"get_caret_count]." +msgstr "" +"Якщо [code]true[/code], дозволено кілька вставок. Клацання лівою кнопкою миші " +"з [kbd]Alt[/kbd] додає нову вставку. Перегляньте [метод add_caret] і [метод " +"get_caret_count]." + msgid "Set the type of caret to draw." msgstr "Встановити тип догляду за ящиком." @@ -136220,6 +169489,28 @@ msgstr "" "Текст показує, коли [TextEdit] порожній. [b]not[/b] значення [TextEdit] (див. " "[пам'ятний текст])." +msgid "" +"If [code]true[/code], [TextEdit] will disable vertical scroll and fit minimum " +"height to the number of visible lines. When both this property and [member " +"scroll_fit_content_width] are [code]true[/code], no scrollbars will be " +"displayed." +msgstr "" +"Якщо [code]true[/code], [TextEdit] вимкне вертикальне прокручування та " +"підбере мінімальну висоту до кількості видимих рядків. Якщо і ця властивість, " +"і [member scroll_fit_content_width] мають значення [code]true[/code], смуги " +"прокручування не відображатимуться." + +msgid "" +"If [code]true[/code], [TextEdit] will disable horizontal scroll and fit " +"minimum width to the widest line in the text. When both this property and " +"[member scroll_fit_content_height] are [code]true[/code], no scrollbars will " +"be displayed." +msgstr "" +"Якщо [code]true[/code], [TextEdit] вимкне горизонтальне прокручування та " +"підбере мінімальну ширину до найширшого рядка в тексті. Якщо і ця " +"властивість, і [member scroll_fit_content_height] мають значення [code]true[/" +"code], смуги прокручування не відображатимуться." + msgid "" "If there is a horizontal scrollbar, this determines the current horizontal " "scroll value in pixels." @@ -136256,6 +169547,15 @@ msgstr "" "Якщо [code]false[/code], текст не можна вибрати користувачем або за допомогою " "[методи вибору] або [методи вибору_all]." +msgid "" +"The syntax highlighter to use.\n" +"[b]Note:[/b] A [SyntaxHighlighter] instance should not be used across " +"multiple [TextEdit] nodes." +msgstr "" +"Підсвічування синтаксису для використання.\n" +"[b]Примітка: [/b] Екземпляр [SyntaxHighlighter] не слід використовувати в " +"кількох вузлах [TextEdit]." + msgid "String value of the [TextEdit]." msgstr "String значення [TextEdit]." @@ -136865,18 +170165,19 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"[TextServer] – API-замінник для управління шрифтами та надання тексту.\n" -"[b]Примітка:[/b] Це низький рівень API, розглянемо за допомогою [TextLine], " -"[TextParagraph], а замість класів [Font].\n" -"Це абстрактний клас, щоб отримати в даний час активний [TextServer] " -"екземпляр, використовуйте наступний код:\n" -"[блоки коду]\n" -"[видання]\n" -"var ts = TextServerManager.get_primary_interface()\n" -"[/gdscript]\n" -"[csharp]\n" -"var ts = TextServerManager.GetPrimaryInterface();\n" -"[/csharp]\n" +"[TextServer] — це серверний API для керування шрифтами та відтворення " +"тексту. \n" +"[b]Примітка.[/b] Це API низького рівня, замість нього можна використовувати " +"класи [TextLine], [TextParagraph] і [Font]. \n" +"Це абстрактний клас, тому, щоб отримати поточний активний екземпляр " +"[TextServer], використовуйте такий код: \n" +"[codeblocks] \n" +"[gdscript] \n" +"var ts = TextServerManager.get_primary_interface() \n" +"[/gdscript] \n" +"[csharp] \n" +"var ts = TextServerManager.GetPrimaryInterface(); \n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -137000,6 +170301,52 @@ msgstr "" "Повертає коефіцієнт перенаправлення шрифту, поділений усіма шрифтами в " "TextServer." +msgid "" +"Returns outline contours of the glyph as a [Dictionary] with the following " +"contents:\n" +"[code]points[/code] - [PackedVector3Array], containing outline " +"points. [code]x[/code] and [code]y[/code] are point coordinates. [code]z[/" +"code] is the type of the point, using the [enum ContourPointTag] values.\n" +"[code]contours[/code] - [PackedInt32Array], containing indices the end " +"points of each contour.\n" +"[code]orientation[/code] - [bool], contour orientation. If [code]true[/" +"code], clockwise contours must be filled.\n" +"- Two successive [constant CONTOUR_CURVE_TAG_ON] points indicate a line " +"segment.\n" +"- One [constant CONTOUR_CURVE_TAG_OFF_CONIC] point between two [constant " +"CONTOUR_CURVE_TAG_ON] points indicates a single conic (quadratic) Bézier " +"arc.\n" +"- Two [constant CONTOUR_CURVE_TAG_OFF_CUBIC] points between two [constant " +"CONTOUR_CURVE_TAG_ON] points indicate a single cubic Bézier arc.\n" +"- Two successive [constant CONTOUR_CURVE_TAG_OFF_CONIC] points indicate two " +"successive conic (quadratic) Bézier arcs with a virtual [constant " +"CONTOUR_CURVE_TAG_ON] point at their middle.\n" +"- Each contour is closed. The last point of a contour uses the first point of " +"a contour as its next point, and vice versa. The first point can be [constant " +"CONTOUR_CURVE_TAG_OFF_CONIC] point." +msgstr "" +"Повертає контурні контури гліфа як [Словник] із таким вмістом: \n" +"[code]точки[/code] - [PackedVector3Array], що містить контурні точки. " +"[code]x[/code] і [code]y[/code] – координати точки. [code]z[/code] – це тип " +"точки з використанням значень [enum ContourPointTag]. \n" +"[код]контури[/код] - [PackedInt32Array], що містить індекси кінцевих точок " +"кожного контуру. \n" +"[code]orientation[/code] - [bool], контурна орієнтація. Якщо [code]true[/" +"code], необхідно заповнити контури за годинниковою стрілкою. \n" +"- Дві послідовні [постійні CONTOUR_CURVE_TAG_ON] точки позначають сегмент " +"лінії. \n" +"- Одна [постійна CONTOUR_CURVE_TAG_OFF_CONIC] точка між двома [постійними " +"CONTOUR_CURVE_TAG_ON] точками вказує на одну конічну (квадратичну) дугу " +"Безьє. \n" +"- Дві [постійні CONTOUR_CURVE_TAG_OFF_CUBIC] точки між двома [постійними " +"CONTOUR_CURVE_TAG_ON] точками вказують на одну кубічну дугу Безьє. \n" +"- Дві послідовні [постійні CONTOUR_CURVE_TAG_OFF_CONIC] точки позначають дві " +"послідовні конічні (квадратичні) дуги Безьє з віртуальною [постійною " +"CONTOUR_CURVE_TAG_ON] точкою в їх середині. \n" +"- Кожен контур замкнутий. Остання точка контуру використовує першу точку " +"контуру як наступну точку, і навпаки. Першою точкою може бути [постійна " +"CONTOUR_CURVE_TAG_OFF_CONIC] точка." + msgid "" "Returns the glyph index of a [param char], optionally modified by the [param " "variation_selector]. See [method font_get_char_from_glyph_index]." @@ -137032,6 +170379,17 @@ msgid "Returns the font hinting mode. Used by dynamic fonts only." msgstr "" "Повертає режим підказки шрифту. Використовується тільки динамічними шрифтами." +msgid "" +"Returns glyph position rounding behavior. If set to [code]true[/code], when " +"aligning glyphs to the pixel boundaries rounding remainders are accumulated " +"to ensure more uniform glyph distribution. This setting has no effect if " +"subpixel positioning is enabled." +msgstr "" +"Повертає поведінку округлення позиції гліфа. Якщо встановлено значення " +"[code]true[/code], під час вирівнювання гліфів до меж пікселів залишки " +"округлення накопичуються для забезпечення більш рівномірного розподілу " +"гліфів. Цей параметр не діє, якщо ввімкнено субпіксельне позиціонування." + msgid "" "Returns the width of the range around the shape between the minimum and " "maximum representable signed distance." @@ -137070,6 +170428,9 @@ msgstr "Повертає режим позиціонування шрифту Gl msgid "Returns a string containing all the characters available in the font." msgstr "Повертає рядок, що містить всі символи, доступні в шрифті." +msgid "Returns an array containing all glyph indices in the font." +msgstr "Повертає масив, що містить усі індекси гліфів у шрифті." + msgid "Returns font cache texture image data." msgstr "Повертає дані текстури шрифту кешу." @@ -137189,6 +170550,17 @@ msgstr "" "Встановлює режим підказки шрифту. Використовується тільки динамічними " "шрифтами." +msgid "" +"Sets glyph position rounding behavior. If set to [code]true[/code], when " +"aligning glyphs to the pixel boundaries rounding remainders are accumulated " +"to ensure more uniform glyph distribution. This setting has no effect if " +"subpixel positioning is enabled." +msgstr "" +"Встановлює поведінку округлення позиції гліфа. Якщо встановлено значення " +"[code]true[/code], під час вирівнювання гліфів до меж пікселів залишки " +"округлення накопичуються для забезпечення більш рівномірного розподілу " +"гліфів. Цей параметр не діє, якщо ввімкнено субпіксельне позиціонування." + msgid "Adds override for [method font_is_language_supported]." msgstr "Додаток для [метод font_is_language_supported]." @@ -137349,6 +170721,13 @@ msgstr "" msgid "Returns the name of the server interface." msgstr "Повертає назву інтерфейсу сервера." +msgid "" +"Returns default TextServer database (e.g. ICU break iterators and " +"dictionaries)." +msgstr "" +"Повертає базу даних TextServer за замовчуванням (наприклад, ітератори розриву " +"ICU та словники)." + msgid "" "Returns default TextServer database (e.g. ICU break iterators and " "dictionaries) filename." @@ -137476,6 +170855,9 @@ msgstr "" "Повертає кількість текстів, доданих за допомогою [метод_text_add_string] або " "[метод_text_add_object]." +msgid "Returns text embedded object key." +msgstr "Повертає текстовий ключ вбудованого об’єкта." + msgid "Returns text span metadata." msgstr "Повертає метадані тексту." @@ -137772,6 +171154,57 @@ msgstr "" "[b]Примітка:[/b] Завжди повертає [code]false[/code], якщо сервер не підтримує " "функцію [constant FEATURE_UNICODE_SECURITY]." +msgid "" +"Returns array of the composite character boundaries.\n" +"[codeblock]\n" +"var ts = TextServerManager.get_primary_interface()\n" +"print(ts.string_get_character_breaks(\"Test ❤️🔥 Test\")) # Prints [1, 2, 3, " +"4, 5, 9, 10, 11, 12, 13, 14]\n" +"[/codeblock]" +msgstr "" +"Повертає масив меж складених символів. \n" +"[codeblock] \n" +"var ts = TextServerManager.get_primary_interface() \n" +"print(ts.string_get_character_breaks(\"Тест ❤️🔥 Тест\")) # Виводить [1, 2, 3, " +"4, 5, 9, 10, 11, 12, 13, 14] \n" +"[/codeblock]" + +msgid "" +"Returns an array of the word break boundaries. Elements in the returned array " +"are the offsets of the start and end of words. Therefore the length of the " +"array is always even.\n" +"When [param chars_per_line] is greater than zero, line break boundaries are " +"returned instead.\n" +"[codeblock]\n" +"var ts = TextServerManager.get_primary_interface()\n" +"# Corresponds to the substrings \"The\", \"Godot\", \"Engine\", and \"4\".\n" +"print(ts.string_get_word_breaks(\"The Godot Engine, 4\")) # Prints [0, 3, 4, " +"9, 10, 16, 18, 19]\n" +"# Corresponds to the substrings \"The\", \"Godot\", \"Engin\", and \"e, 4\".\n" +"print(ts.string_get_word_breaks(\"The Godot Engine, 4\", \"en\", 5)) # Prints " +"[0, 3, 4, 9, 10, 15, 15, 19]\n" +"# Corresponds to the substrings \"The Godot\" and \"Engine, 4\".\n" +"print(ts.string_get_word_breaks(\"The Godot Engine, 4\", \"en\", 10)) # " +"Prints [0, 9, 10, 19]\n" +"[/codeblock]" +msgstr "" +"Повертає масив меж розриву слів. Елементи у поверненому масиві є зсувами " +"початку та кінця слів. Тому довжина масиву завжди парна. \n" +"Якщо [param chars_per_line] більше нуля, натомість повертаються межі розриву " +"рядка. \n" +"[codeblock] \n" +"var ts = TextServerManager.get_primary_interface() \n" +"# Відповідає підрядкам \"The\", \"Godot\", \"Engine\" і \"4\". \n" +"print(ts.string_get_word_breaks(\"The Godot Engine, 4\")) # Вивести [0, 3, 4, " +"9, 10, 16, 18, 19] \n" +"# Відповідає підрядкам \"The\", \"Godot\", \"Engin\" і \"e, 4\". \n" +"print(ts.string_get_word_breaks(\"The Godot Engine, 4\", \"en\", 5)) # " +"Виводить [0, 3, 4, 9, 10, 15, 15, 19] \n" +"# Відповідає підрядкам «The Godot» і «Engine, 4». \n" +"print(ts.string_get_word_breaks(\"The Godot Engine, 4\", \"en\", 10)) # " +"Виводить [0, 9, 10, 19] \n" +"[/codeblock]" + msgid "" "Returns the string converted to lowercase.\n" "[b]Note:[/b] Casing is locale dependent and context sensitive if server " @@ -137987,6 +171420,19 @@ msgid "" "Subtract first line indentation width from all lines after the first one." msgstr "Відшкодування першого рядка ширина від усіх ліній після першого." +msgid "" +"Trims text before the shaping. e.g, increasing [member Label." +"visible_characters] or [member RichTextLabel.visible_characters] value is " +"visually identical to typing the text.\n" +"[b]Note:[/b] In this mode, trimmed text is not processed at all. It is not " +"accounted for in line breaking and size calculations." +msgstr "" +"Обрізає текст перед формуванням. наприклад, збільшення значення [member Label." +"visible_characters] або [member RichTextLabel.visible_characters] візуально " +"ідентично введенню тексту. \n" +"[b]Примітка:[/b] у цьому режимі обрізаний текст взагалі не обробляється. Це " +"не враховується під час розриву рядків і розрахунків розміру." + msgid "" "Displays glyphs that are mapped to the first [member Label." "visible_characters] or [member RichTextLabel.visible_characters] characters " @@ -138655,6 +172101,19 @@ msgstr "" "[b]Optional[/b]\n" "Повертає режим підказки шрифту. Використовується тільки динамічними шрифтами." +msgid "" +"[b]Optional.[/b]\n" +"Returns glyph position rounding behavior. If set to [code]true[/code], when " +"aligning glyphs to the pixel boundaries rounding remainders are accumulated " +"to ensure more uniform glyph distribution. This setting has no effect if " +"subpixel positioning is enabled." +msgstr "" +"[b]Необов'язково.[/b] \n" +"Повертає поведінку округлення позиції гліфа. Якщо встановлено значення " +"[code]true[/code], під час вирівнювання гліфів до меж пікселів залишки " +"округлення накопичуються для забезпечення більш рівномірного розподілу " +"гліфів. Цей параметр не діє, якщо ввімкнено субпіксельне позиціонування." + msgid "" "[b]Optional.[/b]\n" "Returns kerning for the pair of glyphs." @@ -138812,6 +172271,13 @@ msgstr "" "[b]Вимагати [/b]\n" "Повертає рядок, що містить всі символи, доступні в шрифті." +msgid "" +"[b]Required.[/b]\n" +"Returns an array containing all glyph indices in the font." +msgstr "" +"[b]Обов'язково.[/b]\n" +"Повертає масив, що містить усі індекси гліфів у шрифті." + msgid "" "[b]Required.[/b]\n" "Returns number of textures used by font cache entry." @@ -139134,6 +172600,19 @@ msgstr "" "Встановлює режим підказки шрифту. Використовується тільки динамічними " "шрифтами." +msgid "" +"[b]Optional.[/b]\n" +"Sets glyph position rounding behavior. If set to [code]true[/code], when " +"aligning glyphs to the pixel boundaries rounding remainders are accumulated " +"to ensure more uniform glyph distribution. This setting has no effect if " +"subpixel positioning is enabled." +msgstr "" +"[b]Необов'язково.[/b] \n" +"Встановлює поведінку округлення позиції гліфа. Якщо встановлено значення " +"[code]true[/code], під час вирівнювання гліфів до меж пікселів залишки " +"округлення накопичуються для забезпечення більш рівномірного розподілу " +"гліфів. Цей параметр не діє, якщо ввімкнено субпіксельне позиціонування." + msgid "" "[b]Optional.[/b]\n" "Sets kerning for the pair of glyphs." @@ -139369,6 +172848,15 @@ msgstr "" "[b]Вимагати [/b]\n" "Повертає назву інтерфейсу сервера." +msgid "" +"[b]Optional.[/b]\n" +"Returns default TextServer database (e.g. ICU break iterators and " +"dictionaries)." +msgstr "" +"[b]Необов'язково.[/b]\n" +"Повертає базу даних TextServer за замовчуванням (наприклад, ітератори розриву " +"ICU та словники)." + msgid "" "[b]Optional.[/b]\n" "Returns default TextServer database (e.g. ICU break iterators and " @@ -139486,6 +172974,13 @@ msgstr "" "Повертає кількість текстів, доданих за допомогою [метод_text_add_string] або " "[метод__text_add_object]." +msgid "" +"[b]Required.[/b]\n" +"Returns text embedded object key." +msgstr "" +"[b]Обов'язково.[/b]\n" +"Повертає текстовий ключ вбудованого об’єкта." + msgid "" "[b]Required.[/b]\n" "Returns text span metadata." @@ -140064,14 +173559,19 @@ msgid "" "support BiDi and complex text layout.\n" "[b]Note:[/b] This text server is not part of official Godot binaries. If you " "want to use it, compile the engine with the option " -"[code]module_text_server_fb_enabled=yes[/code]." +"[code]module_text_server_fb_enabled=yes[/code]. When building with " +"[TextServerFallback], consider also disabling [TextServerAdvanced] with " +"[code]module_text_server_adv_enabled=no[/code] to reduce binary size." msgstr "" -"Впровадження текстового сервера Godot. Цей недолік швидше, ніж " -"[TextServerAdvanced] для обробки багато тексту, але він не підтримує BiDi і " -"складне текстове планування.\n" -"[b]Примітка:[/b] Цей текстовий сервер не входить до складу посадових осіб " -"Godot. Якщо ви хочете використовувати його, компіляйте двигун з параметром " -"[code]module_text_server_fb_enabled=yes[/code]." +"Запасна реалізація текстового сервера Годо. Цей запасний варіант є швидшим, " +"ніж [TextServerAdvanced], для обробки великої кількості тексту, але він не " +"підтримує двомовний текст і складне макетування тексту. \n" +"[b]Примітка:[/b] Цей текстовий сервер не є частиною офіційних двійкових " +"файлів Godot. Якщо ви хочете його використовувати, скомпілюйте механізм із " +"опцією [code]module_text_server_fb_enabled=yes[/code]. Під час створення за " +"допомогою [TextServerFallback] також розгляньте можливість вимкнення " +"[TextServerAdvanced] за допомогою [code]module_text_server_adv_enabled=no[/" +"code], щоб зменшити двійковий розмір." msgid "A singleton for managing [TextServer] implementations." msgstr "Універсал для управління [TextServer]." @@ -140244,6 +173744,25 @@ msgstr "" msgid "Returns the texture height in pixels." msgstr "Повертає висоту текстури в пікселів." +msgid "" +"Returns an [Image] that is a copy of data from this [Texture2D] (a new " +"[Image] is created each time). [Image]s can be accessed and manipulated " +"directly.\n" +"[b]Note:[/b] This will return [code]null[/code] if this [Texture2D] is " +"invalid.\n" +"[b]Note:[/b] This will fetch the texture data from the GPU, which might cause " +"performance problems when overused. Avoid calling [method get_image] every " +"frame, especially on large textures." +msgstr "" +"Повертає [Зображення], яке є копією даних із цього [Texture2D] (кожного разу " +"створюється нове [Зображення]). Доступ до [Image] можна отримати " +"безпосередньо та керувати ними. \n" +"[b]Примітка:[/b] це поверне [code]null[/code], якщо ця [Texture2D] " +"недійсна. \n" +"[b]Примітка:[/b] це одержить дані текстури з графічного процесора, що може " +"спричинити проблеми з продуктивністю в разі надмірного використання. Уникайте " +"виклику [метод get_image] кожного кадру, особливо на великих текстурах." + msgid "Returns the texture size in pixels." msgstr "Повертає розмір текстури в пікселів." @@ -140273,21 +173792,25 @@ msgid "" "separately for each layer. In an atlas, the slicing has to be done manually " "in the fragment shader.\n" "To create such a texture file yourself, reimport your image files using the " -"Godot Editor import presets." +"Godot Editor import presets. To create a Texture2DArray from code, use " +"[method ImageTextureLayered.create_from_images] on an instance of the " +"Texture2DArray class." msgstr "" -"A Texture2DArray відрізняється від Texture3D: Texture2DArray не підтримує " -"трилінійне міжполування між [Image]s, тобто не блендерингом. Дивись також " -"[Cubemap] і [CubemapArray], які представляють собою фактурні масиви з " -"особливими функціями кубічної карти.\n" -"A Texture2DArray також відрізняється від [AtlasTexture]: У розділі " -"Texture2DArray всі зображення обробляються окремо. У атласі регіони (тобто " -"одиночні зображення) можуть бути різні розміри. Крім того, вам зазвичай " -"потрібно додати наповнювачі по регіонах, щоб запобігти випадковому УФ " -"картуванню більш ніж однієї області. Те ж саме йде на мітку: Ланцюги Mipmap " -"обробляються окремо для кожного шару. У атласі нарізка повинна проводитися " -"вручну в фрагменті шейра.\n" -"Щоб створити такий фактурний файл самостійно, переімпортуйте файли зображень " -"за допомогою пресетів Godot Editor." +"Texture2DArray відрізняється від Texture3D: Texture2DArray не підтримує " +"трилінійну інтерполяцію між [Image]s, тобто немає змішування. Дивіться також " +"[Cubemap] і [CubemapArray], які є масивами текстур зі спеціалізованими " +"функціями кубічної карти. \n" +"Texture2DArray також відрізняється від [AtlasTexture]: у Texture2DArray усі " +"зображення обробляються окремо. В атласі області (тобто окремі зображення) " +"можуть бути різного розміру. Крім того, вам зазвичай потрібно додати відступи " +"навколо регіонів, щоб запобігти випадковому відображенню УФ-променів до " +"кількох регіонів. Те саме стосується mipmapping: ланцюжки Mipmap обробляються " +"окремо для кожного шару. В атласі нарізку потрібно виконувати вручну в " +"шейдері фрагментів. \n" +"Щоб самостійно створити такий файл текстури, повторно імпортуйте файли " +"зображень за допомогою попередніх налаштувань імпорту редактора Godot. Щоб " +"створити Texture2DArray із коду, використовуйте [метод ImageTextureLayered." +"create_from_images] для екземпляра класу Texture2DArray." msgid "" "Creates a placeholder version of this resource ([PlaceholderTexture2DArray])." @@ -140419,6 +173942,31 @@ msgstr "" "Кнопка на основі тексту. Підтримує пресовані, концентровані та фокусовані " "стани." +msgid "" +"[TextureButton] has the same functionality as [Button], except it uses " +"sprites instead of Godot's [Theme] resource. It is faster to create, but it " +"doesn't support localization like more complex [Control]s.\n" +"See also [BaseButton] which contains common properties and methods associated " +"with this node.\n" +"[b]Note:[/b] Setting a texture for the \"normal\" state ([member " +"texture_normal]) is recommended. If [member texture_normal] is not set, the " +"[TextureButton] will still receive input events and be clickable, but the " +"user will not be able to see it unless they activate another one of its " +"states with a texture assigned (e.g., hover over it to show [member " +"texture_hover])." +msgstr "" +"[TextureButton] має ті самі функції, що й [Button], за винятком того, що він " +"використовує спрайти замість ресурсу Godot [Theme]. Його швидше створити, але " +"він не підтримує локалізацію, як більш складні [Control]. \n" +"Дивіться також [BaseButton], який містить загальні властивості та методи, " +"пов’язані з цим вузлом. \n" +"[b]Примітка: [/b] Рекомендується встановити текстуру для «нормального» стану " +"([member texture_normal]). Якщо [member texture_normal] не встановлено, " +"[TextureButton] все одно отримуватиме події введення та буде доступним для " +"натискання, але користувач не зможе побачити його, доки не активує інший із " +"його станів із призначеною текстурою (наприклад, наведіть на нього курсор, " +"щоб показати [member texture_hover])." + msgid "" "If [code]true[/code], the size of the texture won't be considered for minimum " "size calculation, so the [TextureButton] can be shrunk down past the texture " @@ -140444,6 +173992,43 @@ msgstr "" "натискань. На масці білі пікселі представляють натискну площу кнопки. " "Використовуйте його для створення кнопок з вигнутими формами." +msgid "" +"Texture to display when the node is disabled. See [member BaseButton." +"disabled]. If not assigned, the [TextureButton] displays [member " +"texture_normal] instead." +msgstr "" +"Текстура для відображення, коли вузол вимкнено. Див. [член BaseButton." +"disabled]. Якщо не призначено, [TextureButton] замість цього відображає " +"[member texture_normal]." + +msgid "" +"Texture to [i]overlay on the base texture[/i] when the node has mouse or " +"keyboard focus. Because [member texture_focused] is displayed on top of the " +"base texture, a partially transparent texture should be used to ensure the " +"base texture remains visible. A texture that represents an outline or an " +"underline works well for this purpose. To disable the focus visual effect, " +"assign a fully transparent texture of any size. Note that disabling the focus " +"visual effect will harm keyboard/controller navigation usability, so this is " +"not recommended for accessibility reasons." +msgstr "" +"Текстура [i]накладається на базову текстуру[/i], коли вузол має фокус миші чи " +"клавіатури. Оскільки [member texture_focused] відображається поверх базової " +"текстури, слід використовувати частково прозору текстуру, щоб забезпечити " +"видимість базової текстури. Для цієї мети добре підходить текстура, яка " +"представляє контур або підкреслення. Щоб вимкнути візуальний ефект " +"фокусування, призначте повністю прозору текстуру будь-якого розміру. " +"Зауважте, що вимкнення візуального ефекту фокусування зашкодить зручності " +"навігації клавіатурою/контролером, тому це не рекомендується з міркувань " +"доступності." + +msgid "" +"Texture to display when the mouse hovers over the node. If not assigned, the " +"[TextureButton] displays [member texture_normal] instead when hovered over." +msgstr "" +"Текстура для відображення, коли миша наводиться на вузол. Якщо не призначено, " +"[TextureButton] замість цього відображає [member texture_normal] при " +"наведенні курсора." + msgid "" "Texture to display by default, when the node is [b]not[/b] in the disabled, " "hover or pressed state. This texture is still displayed in the focused state, " @@ -140453,6 +174038,17 @@ msgstr "" "вимкненому, конюшині або натисненому стані. Ця текстура все ще відображається " "в фокусі стану, з [пам'ятна текстура_фокусована], намальована зверху." +msgid "" +"Texture to display on mouse down over the node, if the node has keyboard " +"focus and the player presses the Enter key or if the player presses the " +"[member BaseButton.shortcut] key. If not assigned, the [TextureButton] " +"displays [member texture_hover] instead when pressed." +msgstr "" +"Текстура для відображення при наведенні миші на вузол, якщо вузол має фокус " +"клавіатури, а гравець натискає клавішу Enter або якщо гравець натискає " +"клавішу [member BaseButton.shortcut]. Якщо не призначено, [TextureButton] " +"замість нього відображається [member texture_hover]." + msgid "Scale to fit the node's bounding rectangle." msgstr "Ваги, щоб відповідати прямокутника вузла." @@ -140651,6 +174247,38 @@ msgstr "" "Встановлює розтяжний запас з вказаним індексом. Див. [пам'ятний розтяг_знизу] " "і пов'язані властивості." +msgid "" +"If [code]true[/code], Godot treats the bar's textures like in " +"[NinePatchRect]. Use the [code]stretch_margin_*[/code] properties like " +"[member stretch_margin_bottom] to set up the nine patch's 3×3 grid. When " +"using a radial [member fill_mode], this setting will only enable stretching " +"for [member texture_progress], while [member texture_under] and [member " +"texture_over] will be treated like in [NinePatchRect]." +msgstr "" +"Якщо [code]true[/code], Godot обробляє текстури панелі так само, як у " +"[NinePatchRect]. Використовуйте властивості [code]stretch_margin_*[/code], " +"такі як [member stretch_margin_bottom], щоб налаштувати сітку 3×3 для дев’яти " +"патчів. Якщо використовується радіальний [member fill_mode], цей параметр " +"увімкне розтягування лише для [member texture_progress], тоді як [member " +"texture_under] і [member texture_over] оброблятимуться як у [NinePatchRect]." + +msgid "" +"Offsets [member texture_progress] if [member fill_mode] is [constant " +"FILL_CLOCKWISE], [constant FILL_COUNTER_CLOCKWISE], or [constant " +"FILL_CLOCKWISE_AND_COUNTER_CLOCKWISE].\n" +"[b]Note:[/b] The effective radial center always stays within the [member " +"texture_progress] bounds. If you need to move it outside the texture's " +"bounds, modify the [member texture_progress] to contain additional empty " +"space where needed." +msgstr "" +"Зміщує [member texture_progress], якщо [member fill_mode] [постійна " +"FILL_CLOCKWISE], [постійна FILL_COUNTER_CLOCKWISE] або [постійна " +"FILL_CLOCKWISE_AND_COUNTER_CLOCKWISE]. \n" +"[b]Примітка: [/b] Ефективний радіальний центр завжди залишається в межах " +"[member texture_progress]. Якщо вам потрібно перемістити його за межі " +"текстури, змініть [member texture_progress], щоб там містився додатковий " +"порожній простір." + msgid "" "Upper limit for the fill of [member texture_progress] if [member fill_mode] " "is [constant FILL_CLOCKWISE], [constant FILL_COUNTER_CLOCKWISE], or [constant " @@ -140665,6 +174293,25 @@ msgstr "" "заповнюється до цього кута.\n" "[Пам'яний діапазон], [Пам'ятий діапазон.max_value]." +msgid "" +"Starting angle for the fill of [member texture_progress] if [member " +"fill_mode] is [constant FILL_CLOCKWISE], [constant FILL_COUNTER_CLOCKWISE], " +"or [constant FILL_CLOCKWISE_AND_COUNTER_CLOCKWISE]. When the node's " +"[code]value[/code] is equal to its [code]min_value[/code], the texture " +"doesn't show up at all. When the [code]value[/code] increases, the texture " +"fills and tends towards [member radial_fill_degrees].\n" +"[b]Note:[/b] [member radial_initial_angle] is wrapped between [code]0[/code] " +"and [code]360[/code] degrees (inclusive)." +msgstr "" +"Початковий кут для заливки [member texture_progress], якщо [member fill_mode] " +"[постійна FILL_CLOCKWISE], [постійна FILL_COUNTER_CLOCKWISE] або [постійна " +"FILL_CLOCKWISE_AND_COUNTER_CLOCKWISE]. Коли [code]значення[/code] вузла " +"дорівнює його [code]min_value[/code], текстура взагалі не відображається. " +"Коли [code]значення[/code] збільшується, текстура заповнюється та прагне до " +"[member radial_fill_degrees]. \n" +"[b]Примітка: [/b] [member radial_initial_angle] розташовується між [code]0[/" +"code] і [code]360[/code] градусів (включно)." + msgid "" "The height of the 9-patch's bottom row. A margin of 16 means the 9-slice's " "bottom corners and side will have a height of 16 pixels. You can set all 4 " @@ -141893,6 +175540,13 @@ msgstr "" msgid "Adds a collision polygon to the tile on the given TileSet physics layer." msgstr "Додає зіткненьому полігону до плитки на даній фізиці TileSet." +msgid "" +"Adds an occlusion polygon to the tile on the TileSet occlusion layer with " +"index [param layer_id]." +msgstr "" +"Додає багатокутник оклюзії до плитки на шарі оклюзії TileSet з індексом " +"[param layer_id]." + msgid "" "Returns the one-way margin (for one-way platforms) of the polygon at index " "[param polygon_index] for TileSet physics layer with index [param layer_id]." @@ -141929,6 +175583,14 @@ msgstr "" "Повернення постійної лінійної швидкості наноситься на об'єкти, що збігаються " "з цією плиткою." +msgid "" +"Returns the custom data value for custom data layer named [param layer_name]. " +"To check if a custom data layer exists, use [method has_custom_data]." +msgstr "" +"Повертає значення настроюваних даних для настроюваного рівня даних під назвою " +"[param layer_name]. Щоб перевірити, чи існує спеціальний рівень даних, " +"використовуйте [method has_custom_data]." + msgid "" "Returns the custom data value for custom data layer with index [param " "layer_id]." @@ -141947,6 +175609,9 @@ msgstr "" "[param flip_h], [param flip_v], і [param transpose] дозволяють перетворювати " "повернутий полігон." +msgid "Use [method get_occluder_polygon] instead." +msgstr "Натомість використовуйте [метод get_occluder_polygon]." + msgid "" "Returns the occluder polygon of the tile for the TileSet occlusion layer with " "index [param layer_id].\n" @@ -141958,6 +175623,24 @@ msgstr "" "[param flip_h], [param flip_v], і [param transpose] дозволяють перетворювати " "повернутий полігон." +msgid "" +"Returns the occluder polygon at index [param polygon_index] from the TileSet " +"occlusion layer with index [param layer_id].\n" +"The [param flip_h], [param flip_v], and [param transpose] parameters can be " +"[code]true[/code] to transform the returned polygon." +msgstr "" +"Повертає полігон оклюдера з індексом [param polygon_index] із шару оклюзії " +"TileSet з індексом [param layer_id]. \n" +"Параметри [param flip_h], [param flip_v] і [param transpose] можуть мати " +"значення [code]true[/code] для перетворення повернутого багатокутника." + +msgid "" +"Returns the number of occluder polygons of the tile in the TileSet occlusion " +"layer with index [param layer_id]." +msgstr "" +"Повертає кількість полігонів оклюдера плитки в шарі оклюзії TileSet з " +"індексом [param layer_id]." + msgid "" "Returns the tile's terrain bit for the given [param peering_bit] direction. " "To check that a direction is valid, use [method is_valid_terrain_peering_bit]." @@ -141966,6 +175649,12 @@ msgstr "" "[пармування]. Щоб перевірити, що напрямок діє, скористайтеся " "[метод_valid_terrain_peering_bit]." +msgid "" +"Returns whether there exists a custom data layer named [param layer_name]." +msgstr "" +"Повертає інформацію про існування спеціального рівня даних із назвою [param " +"layer_name]." + msgid "" "Returns whether one-way collisions are enabled for the polygon at index " "[param polygon_index] for TileSet physics layer with index [param layer_id]." @@ -141987,6 +175676,13 @@ msgstr "" "Видаліть полігон в індексі [param polygon_index] для фізичного шару TileSet з " "індексом [param Layer_id]." +msgid "" +"Removes the polygon at index [param polygon_index] for TileSet occlusion " +"layer with index [param layer_id]." +msgstr "" +"Видаляє багатокутник з індексом [param polygon_index] для шару оклюзії " +"TileSet з індексом [param layer_id]." + msgid "" "Enables/disables one-way collisions on the polygon at index [param " "polygon_index] for TileSet physics layer with index [param layer_id]." @@ -141994,6 +175690,14 @@ msgstr "" "Увімкнути/вимкнути односторонні зіткнення на полігоні індексу [param " "polygon_index] для фізичного шару TileSet з індексом [param Layer_id]." +msgid "" +"Sets the one-way margin (for one-way platforms) of the polygon at index " +"[param polygon_index] for TileSet physics layer with index [param layer_id]." +msgstr "" +"Встановлює односторонній запас (для односторонніх платформ) багатокутника за " +"індексом [param polygon_index] для фізичного шару TileSet з індексом [param " +"layer_id]." + msgid "" "Sets the points of the polygon at index [param polygon_index] for TileSet " "physics layer with index [param layer_id]." @@ -142044,11 +175748,28 @@ msgstr "" "Навігаційний полігон для навігаційного шару TileSet з індексом [шаровий " "шар_id]." +msgid "Use [method set_occluder_polygon] instead." +msgstr "Натомість використовуйте [метод set_occluder_polygon]." + msgid "" "Sets the occluder for the TileSet occlusion layer with index [param layer_id]." msgstr "" "Комплектує оклюцер для шару оклюзії TileSet з індексом [шаровий шар_id]." +msgid "" +"Sets the occluder for polygon with index [param polygon_index] in the TileSet " +"occlusion layer with index [param layer_id]." +msgstr "" +"Встановлює окклюдер для багатокутника з індексом [param polygon_index] у шарі " +"оклюзії TileSet з індексом [param layer_id]." + +msgid "" +"Sets the occluder polygon count in the TileSet occlusion layer with index " +"[param layer_id]." +msgstr "" +"Встановлює кількість полігонів оклюдера в шарі оклюзії TileSet з індексом " +"[param layer_id]." + msgid "" "Sets the tile's terrain bit for the given [param peering_bit] direction. To " "check that a direction is valid, use [method is_valid_terrain_peering_bit]." @@ -142133,16 +175854,26 @@ msgid "" "frame. Notably, this means that scene tiles from a " "[TileSetScenesCollectionSource] may be initialized after their parent. This " "is only queued when inside the scene tree.\n" -"To force an update earlier on, call [method update_internals]." +"To force an update earlier on, call [method update_internals].\n" +"[b]Note:[/b] For performance and compatibility reasons, the coordinates " +"serialized by [TileMap] are limited to 16-bit signed integers, i.e. the range " +"for X and Y coordinates is from [code]-32768[/code] to [code]32767[/code]. " +"When saving tile data, tiles outside this range are wrapped." msgstr "" -"Node для 2D кахельних карт. Tilemaps використовує [TileSet] який містить " -"список плиток, які використовуються для створення мережевих карт. TileMap " -"може мати кілька шарів, розмітки плитки на вершині одного.\n" -"З причин виконання, всі оновлення TileMap зараховуються в кінці рами. " -"Можливо, це означає, що сцена плитки з [TileSetScenesCollectionSource] може " -"бути ініціалізована після їхнього батька. Це лише черга, коли всередині " -"дерева сцени.\n" -"Щоб змусити оновлення раніше, зателефонуйте [метод оновлення_внутрішній час]." +"Вузол для 2D карт на основі плиток. Карти плиток використовують [TileSet], " +"який містить список плиток, які використовуються для створення карт на основі " +"сітки. TileMap може мати кілька шарів, які розміщують плитки одна над " +"одною. \n" +"З міркувань продуктивності всі оновлення TileMap групуються в кінці кадру. " +"Примітно, що це означає, що фрагменти сцени з [TileSetScenesCollectionSource] " +"можуть бути ініціалізовані після батьківського елемента. Це додається до " +"черги лише всередині дерева сцени.\n" +"Щоб примусово виконати оновлення раніше, викличте [метод update_internals]. \n" +"[b]Примітка:[/b] З міркувань продуктивності та сумісності координати, " +"серіалізовані за допомогою [TileMap], обмежені 16-бітними цілими числами зі " +"знаком, тобто діапазон координат X і Y становить від [code]-32768[/code] до " +"[code]32767[/code]. Під час збереження даних плитки за межами цього діапазону " +"обгортаються." msgid "Using Tilemaps" msgstr "Використання TileMaps (Карти Плиток)" @@ -142153,6 +175884,9 @@ msgstr "2D Hexagonal Демо" msgid "2D Grid-based Navigation with AStarGrid2D Demo" msgstr "2D Grid-навігація з AStarGrid2D Демонстрація" +msgid "2D Dynamic TileMap Layers Demo" +msgstr "Демонстрація двовимірних динамічних шарів TileMap" + msgid "" "Called with a TileData object about to be used internally by the TileMap, " "allowing its modification at runtime.\n" @@ -142301,21 +176035,21 @@ msgid "" "If [param use_proxies] is [code]false[/code], ignores the [TileSet]'s tile " "proxies. See [method TileSet.map_tile_proxy]." msgstr "" -"Повертає об'єкт [TileData], пов'язаний з даної коміркою, або [code]null[/" -"code], якщо клітина не існує або не є [TileSetAtlasSource].\n" -"Якщо [пам'яний шар] є негативним, шари виходять з останнього.\n" -"[блокування коду]\n" -"Func Get_clicked_tile_power():\n" -"var clicked_cell = плитка_map.local_to_map(tile_map." -"get_local_mouse_положення()))\n" -"var data = кахель_map.get_cell_tile_data(0, clicked_cell)\n" -"якщо дані:\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"ще:\n" -"Повернення 0\n" -"[/codeblock]\n" -"Якщо [param use_proxies] є [code]false[/code], ігнорує [TileSet] плитка " -"проксі. Подивитися [метод TileSet.map_tile_proxy]." +"Повертає об’єкт [TileData], пов’язаний із вказаною клітинкою, або [code]null[/" +"code], якщо клітинка не існує або не є [TileSetAtlasSource]. \n" +"Якщо [param layer] є від’ємним, доступ до шарів здійснюється з останнього. \n" +"[codeblock] \n" +"func get_clicked_tile_power(): \n" +" var clicked_cell = tile_map.local_to_map(tile_map." +"get_local_mouse_position()) \n" +" var data = tile_map.get_cell_tile_data(0, clicked_cell) \n" +" if data: \n" +" return data.get_custom_data(\"power\") \n" +" else: \n" +" return 0 \n" +"[/codeblock] \n" +"Якщо [param use_proxies] має значення [code]false[/code], ігноруються проксі-" +"сервери плитки [TileSet]. Див. [метод TileSet.map_tile_proxy]." msgid "" "Returns the coordinates of the tile for given physics body RID. Such RID can " @@ -142462,6 +176196,32 @@ msgstr "" "Повертає прямокутник, що закриває використовувану (не спрагу) плитку карти, " "включаючи всі шари." +msgid "" +"Returns [code]true[/code] if the cell on layer [param layer] at coordinates " +"[param coords] is flipped horizontally. The result is valid only for atlas " +"sources." +msgstr "" +"Повертає [code]true[/code], якщо комірку на шарі [param layer] із " +"координатами [param coords] перевернуто горизонтально. Результат справедливий " +"лише для джерел атласу." + +msgid "" +"Returns [code]true[/code] if the cell on layer [param layer] at coordinates " +"[param coords] is flipped vertically. The result is valid only for atlas " +"sources." +msgstr "" +"Повертає [code]true[/code], якщо комірку на шарі [param layer] із " +"координатами [param coords] перевернуто вертикально. Результат справедливий " +"лише для джерел атласу." + +msgid "" +"Returns [code]true[/code] if the cell on layer [param layer] at coordinates " +"[param coords] is transposed. The result is valid only for atlas sources." +msgstr "" +"Повертає [code]true[/code], якщо клітинку на шарі [param layer] із " +"координатами [param coords] транспоновано. Результат справедливий лише для " +"джерел атласу." + msgid "" "Returns if a layer is enabled.\n" "If [param layer] is negative, the layers are accessed from the last one." @@ -142595,6 +176355,60 @@ msgstr "" "[code]-1[/code].\n" "Якщо [пам'яний шар] є негативним, шари виходять з останнього." +msgid "" +"Update all the cells in the [param cells] coordinates array so that they use " +"the given [param terrain] for the given [param terrain_set]. If an updated " +"cell has the same terrain as one of its neighboring cells, this function " +"tries to join the two. This function might update neighboring tiles if needed " +"to create correct terrain transitions.\n" +"If [param ignore_empty_terrains] is [code]true[/code], empty terrains will be " +"ignored when trying to find the best fitting tile for the given terrain " +"constraints.\n" +"If [param layer] is negative, the layers are accessed from the last one.\n" +"[b]Note:[/b] To work correctly, this method requires the TileMap's TileSet to " +"have terrains set up with all required terrain combinations. Otherwise, it " +"may produce unexpected results." +msgstr "" +"Оновіть усі клітинки в масиві координат [param cell], щоб вони " +"використовували заданий [param terrain] для заданого [param terrain_set]. " +"Якщо оновлена клітинка має такий самий рельєф, що й одна з її сусідніх " +"клітинок, ця функція намагається об’єднати дві. Ця функція може оновлювати " +"сусідні плитки, якщо потрібно створити правильні переходи місцевості. \n" +"Якщо [параметр ignore_empty_terrains] має значення [code]true[/code], порожні " +"ландшафти ігноруватимуться під час спроби знайти плитку, яка найкраще " +"підходить для заданих обмежень ландшафту. \n" +"Якщо [param layer] є від’ємним, доступ до шарів здійснюється з останнього. \n" +"[b]Примітка.[/b] Щоб цей метод працював належним чином, для TileSet TileMap " +"необхідно налаштувати місцевості з усіма необхідними комбінаціями місцевості. " +"Інакше це може призвести до неочікуваних результатів." + +msgid "" +"Update all the cells in the [param path] coordinates array so that they use " +"the given [param terrain] for the given [param terrain_set]. The function " +"will also connect two successive cell in the path with the same terrain. This " +"function might update neighboring tiles if needed to create correct terrain " +"transitions.\n" +"If [param ignore_empty_terrains] is [code]true[/code], empty terrains will be " +"ignored when trying to find the best fitting tile for the given terrain " +"constraints.\n" +"If [param layer] is negative, the layers are accessed from the last one.\n" +"[b]Note:[/b] To work correctly, this method requires the TileMap's TileSet to " +"have terrains set up with all required terrain combinations. Otherwise, it " +"may produce unexpected results." +msgstr "" +"Оновіть усі клітинки в масиві координат [param path], щоб вони " +"використовували заданий [param terrain] для заданого [param terrain_set]. " +"Функція також з’єднає дві послідовні комірки на шляху з однаковою місцевістю. " +"Ця функція може оновлювати сусідні плитки, якщо потрібно створити правильні " +"переходи місцевості. \n" +"Якщо [параметр ignore_empty_terrains] має значення [code]true[/code], порожні " +"ландшафти ігноруватимуться під час спроби знайти плитку, яка найкраще " +"підходить для заданих обмежень ландшафту. \n" +"Якщо [param layer] є від’ємним, доступ до шарів здійснюється з останнього. \n" +"[b]Примітка.[/b] Щоб цей метод працював належним чином, для TileSet TileMap " +"необхідно налаштувати місцевості з усіма необхідними комбінаціями місцевості. " +"Інакше це може призвести до неочікуваних результатів." + msgid "" "Enables or disables the layer [param layer]. A disabled layer is not " "processed at all (no rendering, no physics, etc.).\n" @@ -142808,18 +176622,27 @@ msgid "" "frame. Notably, this means that scene tiles from a " "[TileSetScenesCollectionSource] may be initialized after their parent. This " "is only queued when inside the scene tree.\n" -"To force an update earlier on, call [method update_internals]." +"To force an update earlier on, call [method update_internals].\n" +"[b]Note:[/b] For performance and compatibility reasons, the coordinates " +"serialized by [TileMapLayer] are limited to 16-bit signed integers, i.e. the " +"range for X and Y coordinates is from [code]-32768[/code] to [code]32767[/" +"code]. When saving tile data, tiles outside this range are wrapped." msgstr "" -"Node для 2D кахельних карт. [TileMapLayer] використовує [TileSet], який " -"містить список плиток, які використовуються для створення мережевих карт. На " -"відміну від вузла [TileMap], який депресований, [TileMapLayer] має лише один " -"шар плитки. Ви можете використовувати кілька [TileMapLayer] для досягнення " -"того ж результату, як вузол [TileMap].\n" -"З причин виконання, всі оновлення TileMap зараховуються в кінці рами. " -"Можливо, це означає, що сцена плитки з [TileSetScenesCollectionSource] може " -"бути ініціалізована після їхнього батька. Це лише черга, коли всередині " -"дерева сцени.\n" -"Щоб змусити оновлення раніше, зателефонуйте [метод оновлення_внутрішній час]." +"Вузол для 2D карт на основі плиток. [TileMapLayer] використовує [TileSet], " +"який містить список плиток, які використовуються для створення карт на основі " +"сітки. На відміну від вузла [TileMap], який не підтримується, [TileMapLayer] " +"має лише один шар плиток. Ви можете використовувати кілька [TileMapLayer], " +"щоб досягти того самого результату, що й вузол [TileMap]. \n" +"З міркувань продуктивності всі оновлення TileMap групуються в кінці кадру. " +"Примітно, що це означає, що фрагменти сцени з [TileSetScenesCollectionSource] " +"можуть бути ініціалізовані після батьківського елемента. Це додається до " +"черги лише всередині дерева сцени.\n" +"Щоб примусово виконати оновлення раніше, викличте [метод update_internals]. \n" +"[b]Примітка:[/b] З міркувань продуктивності та сумісності координати, " +"серіалізовані [TileMapLayer], обмежені 16-бітними цілими числами зі знаком, " +"тобто діапазон для координат X і Y становить від [code]-32768[/code] до " +"[code]32767[/code]. Під час збереження даних плитки за межами цього діапазону " +"обгортаються." msgid "" "Called with a [TileData] object about to be used internally by the " @@ -142845,6 +176668,45 @@ msgstr "" "змінити час, скористайтеся [метод сповіщення_runtime_tile_data_update], щоб " "повідомити [TileMapLayer], він потребує оновлення." +msgid "" +"Called when this [TileMapLayer]'s cells need an internal update. This update " +"may be caused from individual cells being modified or by a change in the " +"[member tile_set] (causing all cells to be queued for an update). The first " +"call to this function is always for initializing all the [TileMapLayer]'s " +"cells. [param coords] contains the coordinates of all modified cells, roughly " +"in the order they were modified. [param forced_cleanup] is [code]true[/code] " +"when the [TileMapLayer]'s internals should be fully cleaned up. This is the " +"case when:\n" +"- The layer is disabled;\n" +"- The layer is not visible;\n" +"- [member tile_set] is set to [code]null[/code];\n" +"- The node is removed from the tree;\n" +"- The node is freed.\n" +"Note that any internal update happening while one of these conditions is " +"verified is considered to be a \"cleanup\". See also [method " +"update_internals].\n" +"[b]Warning:[/b] Implementing this method may degrade the [TileMapLayer]'s " +"performance." +msgstr "" +"Викликається, коли клітинки [TileMapLayer] потребують внутрішнього оновлення. " +"Це оновлення може бути викликано зміною окремих клітинок або зміною в [member " +"tile_set] (у результаті чого всі клітинки ставляться в чергу для оновлення). " +"Перший виклик цієї функції завжди призначений для ініціалізації всіх клітинок " +"[TileMapLayer]. [param coords] містить координати всіх змінених клітинок, " +"приблизно в тому порядку, в якому вони були змінені. [параметр " +"forced_cleanup] має значення [code]true[/code], коли внутрішні елементи " +"[TileMapLayer] мають бути повністю очищені. Це той випадок, коли: \n" +"- Шар відключено; \n" +"- Шар не видно; \n" +"- [member tile_set] має значення [code]null[/code]; \n" +"- Вузол видаляється з дерева; \n" +"- Вузол звільнено. \n" +"Зауважте, що будь-яке внутрішнє оновлення, яке відбувається під час перевірки " +"однієї з цих умов, вважається «очищенням». Дивіться також [метод " +"update_internals]. \n" +"[b]Попередження:[/b] Реалізація цього методу може погіршити продуктивність " +"[TileMapLayer]." + msgid "" "Should return [code]true[/code] if the tile at coordinates [param coords] " "requires a runtime update.\n" @@ -142945,6 +176807,15 @@ msgstr "" "Створює і повертає новий [TileMapPattern] з даного масиву клітин. Дивись ще " "[метод]." +msgid "" +"Returns the list of all neighboring cells to the one at [param coords]. Any " +"neighboring cell is one that is touching edges, so for a square cell 4 cells " +"would be returned, for a hexagon 6 cells are returned." +msgstr "" +"Повертає список усіх сусідніх комірок до клітинки в [param coords]. Будь-яка " +"сусідня клітинка є такою, що торкається країв, тому для квадратної клітинки " +"буде повернуто 4 клітинки, для шестикутної – 6 клітинок." + msgid "" "Returns a [Vector2i] array with the positions of all cells containing a tile. " "A cell is considered empty if its source identifier equals [code]-1[/code], " @@ -142991,6 +176862,27 @@ msgstr "" "Повертає, чи надана [параме тіло] [RID] належить до одного з цих " "[TileMapLayer] клітин." +msgid "" +"Returns [code]true[/code] if the cell at coordinates [param coords] is " +"flipped horizontally. The result is valid only for atlas sources." +msgstr "" +"Повертає [code]true[/code], якщо клітинку з координатами [param coords] " +"перевернуто горизонтально. Результат справедливий лише для джерел атласу." + +msgid "" +"Returns [code]true[/code] if the cell at coordinates [param coords] is " +"flipped vertically. The result is valid only for atlas sources." +msgstr "" +"Повертає [code]true[/code], якщо клітинку з координатами [param coords] " +"перевернуто вертикально. Результат справедливий лише для джерел атласу." + +msgid "" +"Returns [code]true[/code] if the cell at coordinates [param coords] is " +"transposed. The result is valid only for atlas sources." +msgstr "" +"Повертає [code]true[/code], якщо клітинку з координатами [param coords] " +"транспоновано. Результат справедливий лише для джерел атласу." + msgid "" "Returns for the given coordinates [param coords_in_pattern] in a " "[TileMapPattern] the corresponding cell coordinates if the pattern was pasted " @@ -143075,6 +176967,56 @@ msgstr "" "недійсних значень, а саме [code]-1[/code], [code]Vector2i(-1, -1)[/code] і " "[code]-1[/code]." +msgid "" +"Update all the cells in the [param cells] coordinates array so that they use " +"the given [param terrain] for the given [param terrain_set]. If an updated " +"cell has the same terrain as one of its neighboring cells, this function " +"tries to join the two. This function might update neighboring tiles if needed " +"to create correct terrain transitions.\n" +"If [param ignore_empty_terrains] is [code]true[/code], empty terrains will be " +"ignored when trying to find the best fitting tile for the given terrain " +"constraints.\n" +"[b]Note:[/b] To work correctly, this method requires the [TileMapLayer]'s " +"TileSet to have terrains set up with all required terrain combinations. " +"Otherwise, it may produce unexpected results." +msgstr "" +"Оновіть усі клітинки в масиві координат [param cell], щоб вони " +"використовували заданий [param terrain] для заданого [param terrain_set]. " +"Якщо оновлена клітинка має такий самий рельєф, що й одна з її сусідніх " +"клітинок, ця функція намагається об’єднати дві. Ця функція може оновлювати " +"сусідні плитки, якщо потрібно створити правильні переходи місцевості. \n" +"Якщо [параметр ignore_empty_terrains] має значення [code]true[/code], порожні " +"ландшафти ігноруватимуться під час спроби знайти плитку, яка найкраще " +"підходить для заданих обмежень ландшафту. \n" +"[b]Примітка.[/b] Для правильної роботи цей метод вимагає, щоб TileSet " +"[TileMapLayer] мав місцевості, налаштовані з усіма необхідними комбінаціями " +"місцевості. Інакше це може призвести до неочікуваних результатів." + +msgid "" +"Update all the cells in the [param path] coordinates array so that they use " +"the given [param terrain] for the given [param terrain_set]. The function " +"will also connect two successive cell in the path with the same terrain. This " +"function might update neighboring tiles if needed to create correct terrain " +"transitions.\n" +"If [param ignore_empty_terrains] is [code]true[/code], empty terrains will be " +"ignored when trying to find the best fitting tile for the given terrain " +"constraints.\n" +"[b]Note:[/b] To work correctly, this method requires the [TileMapLayer]'s " +"TileSet to have terrains set up with all required terrain combinations. " +"Otherwise, it may produce unexpected results." +msgstr "" +"Оновіть усі клітинки в масиві координат [param path], щоб вони " +"використовували заданий [param terrain] для заданого [param terrain_set]. " +"Функція також з’єднає дві послідовні комірки на шляху з однаковою місцевістю. " +"Ця функція може оновлювати сусідні плитки, якщо потрібно створити правильні " +"переходи місцевості. \n" +"Якщо [параметр ignore_empty_terrains] має значення [code]true[/code], порожні " +"ландшафти ігноруватимуться під час спроби знайти плитку, яка найкраще " +"підходить для заданих обмежень ландшафту. \n" +"[b]Примітка.[/b] Для правильної роботи цей метод вимагає, щоб TileSet " +"[TileMapLayer] мав місцевості, налаштовані з усіма необхідними комбінаціями " +"місцевості. Інакше це може призвести до неочікуваних результатів." + msgid "" "Sets a custom [param map] as a [NavigationServer2D] navigation map. If not " "set, uses the default [World2D] navigation map instead." @@ -143140,6 +177082,9 @@ msgstr "" "[constant DEBUG_VISIBILITY_MODE_DEFAULT], це залежить від параметрів " "навігаційної дебюги." +msgid "Enable or disable light occlusion." +msgstr "Увімкнути або вимкнути блокування світла." + msgid "" "The [TileMapLayer]'s quadrant size. A quadrant is a group of tiles to be " "drawn together on a single canvas item, for optimization purposes. [member " @@ -143283,6 +177228,40 @@ msgstr "" "Русский EnglishРусскийУкраїнськаPolskiItalianoEspañol汉语Bahasa " "Indonesiaहिन्दीPortuguês日本語DeutschFrançaisภาษาไทยελληνικά اللغة العربية." +msgid "" +"A TileSet is a library of tiles for a [TileMapLayer]. A TileSet handles a " +"list of [TileSetSource], each of them storing a set of tiles.\n" +"Tiles can either be from a [TileSetAtlasSource], which renders tiles out of a " +"texture with support for physics, navigation, etc., or from a " +"[TileSetScenesCollectionSource], which exposes scene-based tiles.\n" +"Tiles are referenced by using three IDs: their source ID, their atlas " +"coordinates ID, and their alternative tile ID.\n" +"A TileSet can be configured so that its tiles expose more or fewer " +"properties. To do so, the TileSet resources use property layers, which you " +"can add or remove depending on your needs.\n" +"For example, adding a physics layer allows giving collision shapes to your " +"tiles. Each layer has dedicated properties (physics layer and mask), so you " +"may add several TileSet physics layers for each type of collision you need.\n" +"See the functions to add new layers for more information." +msgstr "" +"TileSet — це бібліотека плиток для [TileMapLayer]. TileSet обробляє список " +"[TileSetSource], кожен з яких зберігає набір плиток. \n" +"Tiles can either be from a [TileSetAtlasSource], which renders tiles out of a " +"texture with support for physics, navigation, etc., or from a " +"[TileSetScenesCollectionSource], which exposes scene-based tiles.\n" +"Плитки посилаються за допомогою трьох ідентифікаторів: ідентифікатора " +"джерела, ідентифікатора координат атласу та альтернативного ідентифікатора " +"плитки. \n" +"TileSet можна налаштувати так, щоб його плитки відображали більше або менше " +"властивостей. Для цього ресурси TileSet використовують шари властивостей, які " +"ви можете додавати або видаляти залежно від ваших потреб. \n" +"Наприклад, додавання фізичного шару дозволяє надавати плиткам форми " +"зіткнення. Кожен шар має спеціальні властивості (фізичний шар і маску), тому " +"ви можете додати кілька фізичних шарів TileSet для кожного типу зіткнень, які " +"вам потрібні. \n" +"Для отримання додаткової інформації перегляньте функції для додавання нових " +"шарів." + msgid "" "Adds a custom data layer to the TileSet at the given position [param " "to_position] in the array. If [param to_position] is -1, adds it at the end " @@ -143460,6 +177439,10 @@ msgid "" "Returns the collision mask of bodies on the given TileSet's physics layer." msgstr "Повертає маску зіткнень органів на даній фізиці TileSet." +msgid "" +"Returns the collision priority of bodies on the given TileSet's physics layer." +msgstr "Повертає пріоритет зіткнень тіл на заданому фізичному рівні TileSet." + msgid "" "Returns the physics material of bodies on the given TileSet's physics layer." msgstr "Повертає фізичний матеріал органів на даній фізикій шарі TileSet." @@ -143505,6 +177488,10 @@ msgstr "Повертає, якщо є альтернативно-рівневі msgid "Returns if there is a coodinates-level proxy for the given identifiers." msgstr "Повертає, якщо є проксі-рівневі коодінати для заданих ідентифікаторів." +msgid "Returns if there is a custom data layer named [param layer_name]." +msgstr "" +"Повертає, якщо існує спеціальний рівень даних із назвою [param layer_name]." + msgid "Returns if this TileSet has a source for the given source ID." msgstr "" "Повертає, якщо це TileSet має джерело для вказаного ідентифікатора джерела." @@ -143710,6 +177697,21 @@ msgstr "" "Увімкнути або вимкнути SDF зіткнення для восьмиключників у даній шарі " "відключення TileSet." +msgid "" +"Sets the collision layer (as in the physics server) for bodies in the given " +"TileSet physics layer." +msgstr "" +"Встановлює рівень зіткнення (як у фізичному сервері) для тіл у даному " +"фізичному шарі TileSet." + +msgid "Sets the collision mask for bodies in the given TileSet physics layer." +msgstr "Встановлює маску зіткнень для тіл у заданому фізичному шарі TileSet." + +msgid "" +"Sets the collision priority for bodies in the given TileSet physics layer." +msgstr "" +"Встановлює пріоритет зіткнень для тіл у заданому фізичному шарі TileSet." + msgid "Sets the physics material for bodies in the given TileSet physics layer." msgstr "Налаштовує фізичний матеріал для тіл у даній фізики TileSet." @@ -144210,6 +178212,13 @@ msgstr "Сепарація, в пікселях, між кожною факту msgid "The atlas texture." msgstr "Текстура атласа." +msgid "" +"The base tile size in the texture (in pixel). This size must be bigger than " +"or equal to the TileSet's [code]tile_size[/code] value." +msgstr "" +"Базовий розмір тайла в текстурі (у пікселях). Цей розмір має бути більшим або " +"дорівнювати значенню [code]tile_size[/code] TileSet." + msgid "" "If [code]true[/code], generates an internal texture with an additional one " "pixel padding around each tile. Texture padding avoids a common artifact " @@ -144258,28 +178267,28 @@ msgid "" "}\n" "[/codeblock]" msgstr "" -"Представляє горизонтальний фліповий прапор клітинки. Слід використовувати " -"безпосередньо з [TileMap] для застібки, розміщеної плиткою, змінивши їх " -"альтернативні ідентифікатори.\n" -"[блокування коду]\n" -"var чергувати_id = $TileMap.get_cell_alternative_tile(0, Vector2i(2, 2))\n" -"якщо не чергувати_id & TileSetAtlasSource.TRANSFORM_FLIP_H:\n" -"# Якщо плитка вже не мухована, закрили її.\n" -"$TileMap.set_cell(0, Vector2i(2, 2), джерело_id, atlas_coords, чергування_id " -"TileSetAtlasSource.TRANSFORM_FLIP_H)\n" -"[/codeblock]\n" -"[b]Примітка:[/b] Ці перетворення можуть бути комбіновані, щоб зробити " -"еквівалент 0, 90, 180 і 270 градусів обертання, як показано нижче:\n" -"[блокування коду]\n" -"код товару: TileTransform Довідник\n" -"РОТАТ_0 = 0,\n" -"ROTATE_90 = TileSetAtlasSource.TRANSFORM_TRANSPOSE TileSetAtlasSource." -"TRANSFORM_FLIP_H,\n" -"ROTATE_180 = TileSetAtlasSource.TRANSFORM_FLIP_H TileSetAtlasSource." -"TRANSFORM_FLIP_V,\n" -"ROTATE_270 = TileSetAtlasSource.TRANSFORM_TRANSPOSE TileSetAtlasSource." -"TRANSFORM_FLIP_V,\n" -"Про нас\n" +"Представляє прапорець горизонтального повороту комірки. Слід використовувати " +"безпосередньо з [TileMap], щоб перевертати розміщені плитки, змінюючи їхні " +"альтернативні ідентифікатори. \n" +"[codeblock] \n" +"var alternate_id = $TileMap.get_cell_alternative_tile(0, Vector2i(2, 2)) \n" +"if no alternate_id & TileSetAtlasSource.TRANSFORM_FLIP_H: \n" +" # Якщо плитку ще не перевернуто, переверніть її. \n" +" $TileMap.set_cell(0, Vector2i(2, 2), source_id, atlas_coords, " +"alternate_id | TileSetAtlasSource.TRANSFORM_FLIP_H) \n" +"[/codeblock] \n" +"[b]Примітка.[/b] Ці перетворення можна об’єднати, щоб отримати еквівалент " +"повороту на 0, 90, 180 і 270 градусів, як показано нижче: \n" +"[codeblock] \n" +"enum TileTransform { \n" +" ROTATE_0 = 0, \n" +" ROTATE_90 = TileSetAtlasSource.TRANSFORM_TRANSPOSE | TileSetAtlasSource." +"TRANSFORM_FLIP_H, \n" +" ROTATE_180 = TileSetAtlasSource.TRANSFORM_FLIP_H | TileSetAtlasSource." +"TRANSFORM_FLIP_V, \n" +" ROTATE_270 = TileSetAtlasSource.TRANSFORM_TRANSPOSE | TileSetAtlasSource." +"TRANSFORM_FLIP_V, \n" +"}\n" "[/codeblock]" msgid "" @@ -144338,41 +178347,43 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"При розміщенні на [TileMap] плитка з [TileSetScenesCollectionSource] " -"автоматично миттєво опиниться пов'язана сцена в положення комірки в TileMap.\n" -"Сцени миттєво оцінюються як діти [TileMap], коли він входить до дерева. Якщо " -"ви додаєте / перемістіть сцену плитку в [TileMap], яка вже всередині дерева, " -"то [TileMap] автоматично миттєво опиниться/безкоштовно сцену відповідно.\n" -"[b]Примітка:[/b] Сценка плитка всі займають один кахельний слот і замість " -"використання альтернативної плитки ID для визначення індексу сцени. [Method " -"TileSource.get_tiles_count] завжди повернеться [code]1[/code]. Використовуйте " -"[метод get_scene_tiles_count], щоб отримати ряд сцен в " -"[TileSetScenesCollectionSource].\n" -"Використовуйте цей код, якщо ви хочете знайти шлях сцени на даній плитці " -"[TileMapLayer]:\n" -"[блоки коду]\n" -"[видання]\n" -"var джерело_id = плитка_map_layer.get_cell_source_id(Vector2i(x, y)\n" -"якщо джерело_id > -1:\n" -"var сцена_source_map_layer.tile_set.get_source_id)\n" -"якщо сцена_source is TileSetScenesCollectionSource:\n" -"var alt_id=кахель_map_layer.get_cell_alternative_tile(Vector2i(x, y)))\n" -"# Призначений PackedScene.\n" -"var сцена = сцена_source.get_scene_tile_scene(alt_id)\n" -"[/gdscript]\n" -"[csharp]\n" -"джерело int Id = плиткаMapLayer.GetCellSourceId(новий Vector2I(x, y));\n" -"якщо (sourceId> -1)\n" -"Довідник\n" -"TileSetSource джерело = плиткаMapLayer.TileSet.GetSource(sourceId);\n" -"if (source is TileSetScenesCollectionSource сценаSource)\n" -"Довідник\n" -"альтанки Id = плиткаMapLayer.GetCellAlternativeTile(новий Vector2I(x, y));\n" -"(Українська) Призначений PackedScene.\n" -"Пакети Сцена = сценаСурце.GetSceneTileScene(altId);\n" -"Про нас\n" -"Про нас\n" -"[/csharp]\n" +"When placed on a [TileMap], tiles from [TileSetScenesCollectionSource] will " +"automatically instantiate an associated scene at the cell's position in the " +"TileMap.\n" +"Сцени створюються як дочірні елементи [TileMap], коли він потрапляє в дерево. " +"Якщо ви додаєте/видаляєте фрагмент сцени в [TileMap], який уже є всередині " +"дерева, [TileMap] автоматично створить/звільнить сцену відповідно. \n" +"[b]Note:[/b] Scene tiles all occupy one tile slot and instead use alternate " +"tile ID to identify scene index. [method TileSetSource.get_tiles_count] will " +"always return [code]1[/code]. Use [method get_scene_tiles_count] to get a " +"number of scenes in a [TileSetScenesCollectionSource].\n" +"Використовуйте цей код, якщо ви хочете знайти шлях сцени на певній плитці в " +"[TileMapLayer]: \n" +"[codeblocks] \n" +"[gdscript] \n" +"var source_id = tile_map_layer.get_cell_source_id(Vector2i(x, y)) \n" +"if source_id > -1: \n" +" var scene_source = tile_map_layer.tile_set.get_source(source_id) \n" +" if scene_source is TileSetScenesCollectionSource:\n" +" var alt_id = tile_map_layer.get_cell_alternative_tile(Vector2i(x, " +"y)) \n" +" # Призначена PackedScene. \n" +" var scene = scene_source.get_scene_tile_scene(alt_id) \n" +"[/gdscript] \n" +"[csharp] \n" +"int sourceId = tileMapLayer.GetCellSourceId(new Vector2I(x, y)); \n" +"if (sourceId > -1) \n" +"{\n" +" source TileSetSource = tileMapLayer.TileSet.GetSource(sourceId); \n" +" if (source is TileSetScenesCollectionSource sceneSource)\n" +" { \n" +" int altId = tileMapLayer.GetCellAlternativeTile(new Vector2I(x, " +"y)); \n" +" // Призначена PackedScene. \n" +" PackedScene scene = sceneSource.GetSceneTileScene(altId); \n" +" } \n" +"}\n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -144914,9 +178925,9 @@ msgstr "" "Не вимагає багато коду, часовий вузол можна додати і налаштувати в редакторі. " "[значний час] сигнал, який випромінює, також може бути підключений через " "додаток Node в редакторі:\n" -"[блокування коду]\n" -"Func _on_timer_timeout():\n" -"друк(\"Час атакувати!\")\n" +"[codeblock]\n" +"func _on_timer_timeout():\n" +" print(\"Час атакувати!\")\n" "[/codeblock]\n" "[b]Примітка:[/b] Щоб створити один знімок таймера без миттєвого використання " "вузла, скористайтеся [методичного розділуTree.create_timer].\n" @@ -144927,9 +178938,43 @@ msgstr "" msgid "Returns [code]true[/code] if the timer is stopped or has not started." msgstr "Повернення [code]true[/code], якщо таймер припиняється або не почався." +msgid "" +"Starts the timer, or resets the timer if it was started already. Fails if the " +"timer is not inside the tree. If [param time_sec] is greater than [code]0[/" +"code], this value is used for the [member wait_time].\n" +"[b]Note:[/b] This method does not resume a paused timer. See [member paused]." +msgstr "" +"Запускає таймер або скидає таймер, якщо він уже був запущений. Помилка, якщо " +"таймер не всередині дерева. Якщо [param time_sec] більше ніж [code]0[/code], " +"це значення використовується для [member wait_time]. \n" +"[b]Примітка.[/b] Цей метод не відновлює призупинений таймер. Дивіться " +"[учасник призупинено]." + msgid "Stops the timer." msgstr "Стопає таймера." +msgid "" +"If [code]true[/code], the timer will start immediately when it enters the " +"scene tree.\n" +"[b]Note:[/b] After the timer enters the tree, this property is automatically " +"set to [code]false[/code].\n" +"[b]Note:[/b] This property does nothing when the timer is running in the " +"editor." +msgstr "" +"Якщо [code]true[/code], таймер запуститься одразу після входу в дерево " +"сцен. \n" +"[b]Примітка: [/b] Після того, як таймер увійде в дерево, для цієї властивості " +"автоматично встановлюється значення [code]false[/code]. \n" +"[b]Примітка:[/b] Ця властивість нічого не робить, коли таймер запущено в " +"редакторі." + +msgid "" +"If [code]true[/code], the timer will ignore [member Engine.time_scale] and " +"update with the real, elapsed time." +msgstr "" +"Якщо [code]true[/code], таймер ігноруватиме [member Engine.time_scale] і " +"оновлюватиме реальний час, що минув." + msgid "" "If [code]true[/code], the timer will stop after reaching the end. Otherwise, " "as by default, the timer will automatically restart." @@ -145023,23 +179068,23 @@ msgid "" "[/gdscript]\n" "[/codeblocks]" msgstr "" -"TLSOptions визначає параметри конфігурації [StreamPeerTLS] та " -"[PacketPeerDTLS].\n" -"Об'єкти цього класу не можуть бути миттєвими, і один з статичних методів " -"[метод клієнта], [метод клієнт_unsafe], або [метод сервер] слід " -"використовувати замість.\n" -"[блоки коду]\n" -"[видання]\n" -"# Створити налаштування клієнтів TLS, який використовує наш " -"користувальницький ланцюг CA.\n" -"var клієнт_trusted_cas = навантаження(\"res://my_trusted_cas.crt\")\n" -"var клієнт_tls_options = TLSOptions.client(client_trusted_cas)\n" +"TLSOptions абстрагує параметри конфігурації для класів [StreamPeerTLS] і " +"[PacketPeerDTLS]. \n" +"Об’єкти цього класу не можуть бути створені безпосередньо, замість них слід " +"використовувати один із статичних методів [method client], [method " +"client_unsafe] або [method server]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"# Створіть конфігурацію TLS-клієнта, яка використовує наш настроюваний " +"довірений ланцюжок ЦС. \n" +"var client_trusted_cas = load(\"res://my_trusted_cas.crt\") \n" +"var client_tls_options = TLSOptions.client(client_trusted_cas) \n" "\n" -"# Створення конфігурації сервера TLS.\n" -"var server_certs = навантаження(\"res://my_server_cas.crt\")\n" -"var server_key = навантаження(\"res://my_server_key.key\")\n" -"Статус на сервери\n" -"[/gdscript]\n" +"# Створення конфігурації сервера TLS. \n" +"var server_certs = load(\"res://my_server_cas.crt\") \n" +"var server_key = load(\"res://my_server_key.key\") \n" +"var server_tls_options = TLSOptions.server(server_key, server_certs) \n" +"[/gdscript] \n" "[/codeblocks]" msgid "" @@ -145138,6 +179183,34 @@ msgstr "Клас, що представляє собою торус [Примі msgid "Button for touch screen devices for gameplay use." msgstr "Кнопка сенсорних екранних пристроїв для ігрового використання." +msgid "" +"TouchScreenButton allows you to create on-screen buttons for touch devices. " +"It's intended for gameplay use, such as a unit you have to touch to move. " +"Unlike [Button], TouchScreenButton supports multitouch out of the box. " +"Several TouchScreenButtons can be pressed at the same time with touch input.\n" +"This node inherits from [Node2D]. Unlike with [Control] nodes, you cannot set " +"anchors on it. If you want to create menus or user interfaces, you may want " +"to use [Button] nodes instead. To make button nodes react to touch events, " +"you can enable [member ProjectSettings.input_devices/pointing/" +"emulate_mouse_from_touch] in the Project Settings.\n" +"You can configure TouchScreenButton to be visible only on touch devices, " +"helping you develop your game both for desktop and mobile devices." +msgstr "" +"TouchScreenButton дозволяє створювати екранні кнопки для сенсорних пристроїв. " +"Він призначений для використання в іграх, як-от одиниця, яку потрібно " +"торкнутися, щоб переміститися. На відміну від [Button], TouchScreenButton " +"підтримує мультидотик із коробки. За допомогою сенсорного введення можна " +"одночасно натискати кілька кнопок TouchScreenButton. \n" +"Цей вузол успадковується від [Node2D]. На відміну від вузлів [Control], на " +"ньому не можна встановити прив’язки. Якщо ви хочете створити меню або " +"інтерфейси користувача, ви можете замість цього використовувати вузли " +"[Button]. Щоб вузли кнопок реагували на події дотику, можна ввімкнути [member " +"ProjectSettings.input_devices/pointing/emulate_mouse_from_touch] у " +"налаштуваннях проекту. \n" +"Ви можете налаштувати TouchScreenButton так, щоб він був видимий лише на " +"сенсорних пристроях, що допоможе вам розробити гру як для настільних, так і " +"для мобільних пристроїв." + msgid "Returns [code]true[/code] if this button is currently pressed." msgstr "Повертаємо [code]true[/code], якщо ця кнопка в даний час натискається." @@ -145232,6 +179305,15 @@ msgstr "" "згадки про \"басіс\" відносяться до [члена x] і [член y] компоненти " "[Transform2D]." +msgid "" +"Constructs a [Transform2D] identical to [constant IDENTITY].\n" +"[b]Note:[/b] In C#, this constructs a [Transform2D] with all of its " +"components set to [constant Vector2.ZERO]." +msgstr "" +"Створює [Transform2D], ідентичний [constant IDENTITY].\n" +"[b]Примітка.[/b] У C# це створює [Transform2D] з усіма його компонентами, " +"встановленими на [constant Vector2.ZERO]." + msgid "Constructs a [Transform2D] as a copy of the given [Transform2D]." msgstr "[Трансформ2D] як копія даної [Трансформ2D]." @@ -145252,6 +179334,21 @@ msgstr "" "Constructs a [Transform2D] від 3 [Vector2] значення, що представляють [член " "x], [член y], і [пам'ятний походження] (три матриці стовпців)." +msgid "" +"Returns the inverted version of this transform. Unlike [method inverse], this " +"method works with almost any basis, including non-uniform ones, but is " +"slower.\n" +"[b]Note:[/b] For this method to return correctly, the transform's basis needs " +"to have a determinant that is not exactly [code]0.0[/code] (see [method " +"determinant])." +msgstr "" +"Повертає інвертовану версію цього перетворення. На відміну від [method " +"inverse], цей метод працює практично з будь-яким базисом, в тому числі і " +"неоднорідним, але повільніше. \n" +"[b]Примітка.[/b] Щоб цей метод повернув правильний результат, основа " +"перетворення повинна мати визначник, який не є точно [code]0.0[/code] (див. " +"[визначник методу])." + msgid "" "Returns a copy of the [param v] vector, transformed (multiplied) by the " "transform basis's matrix. Unlike the multiplication operator ([code]*[/" @@ -145278,6 +179375,26 @@ msgstr "" "[code]transform.affine_inverse().basis_xform(vector)[/code] слід " "використовувати замість (див. [метод affine_inverse])." +msgid "" +"Returns the [url=https://en.wikipedia.org/wiki/Determinant]determinant[/url] " +"of this transform basis's matrix. For advanced math, this number can be used " +"to determine a few attributes:\n" +"- If the determinant is exactly [code]0.0[/code], the basis is not invertible " +"(see [method inverse]).\n" +"- If the determinant is a negative number, the basis represents a negative " +"scale.\n" +"[b]Note:[/b] If the basis's scale is the same for every axis, its determinant " +"is always that scale by the power of 2." +msgstr "" +"Повертає [url=https://en.wikipedia.org/wiki/Determinant]визначник[/url] цієї " +"матриці основи перетворення. Для поглибленої математики це число можна " +"використовувати для визначення кількох атрибутів: \n" +"- Якщо визначник дорівнює точно [code]0.0[/code], базис не є оборотним (див. " +"[method inverse]). \n" +"- Якщо визначник є від'ємним числом, основа представляє від'ємну шкалу. \n" +"[b]Примітка:[/b] Якщо масштаб базису однаковий для кожної осі, його " +"визначником завжди буде цей масштаб у ступені 2." + msgid "Returns this transform's translation. Equivalent to [member origin]." msgstr "Повертає цей переклад трансформацій. [Пам'ятий походження]." @@ -145288,6 +179405,67 @@ msgstr "" "Повертаємо цю трансформацію (в радіях). Це еквівалентно куту [член х] (див. " "[метод Vector2.angle])." +msgid "" +"Returns the length of both [member x] and [member y], as a [Vector2]. If this " +"transform's basis is not skewed, this value is the scaling factor. It is not " +"affected by rotation.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var my_transform = Transform2D(\n" +" Vector2(2, 0),\n" +" Vector2(0, 4),\n" +" Vector2(0, 0)\n" +")\n" +"# Rotating the Transform2D in any way preserves its scale.\n" +"my_transform = my_transform.rotated(TAU / 2)\n" +"\n" +"print(my_transform.get_scale()) # Prints (2.0, 4.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"var myTransform = new Transform2D(\n" +" Vector3(2.0f, 0.0f),\n" +" Vector3(0.0f, 4.0f),\n" +" Vector3(0.0f, 0.0f)\n" +");\n" +"// Rotating the Transform2D in any way preserves its scale.\n" +"myTransform = myTransform.Rotated(Mathf.Tau / 2.0f);\n" +"\n" +"GD.Print(myTransform.GetScale()); // Prints (2, 4)\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] If the value returned by [method determinant] is negative, the " +"scale is also negative." +msgstr "" +"Повертає довжину [члена x] і [члена y] як [Вектор2]. Якщо основа цього " +"перетворення не спотворена, це значення є коефіцієнтом масштабування. На " +"нього не впливає обертання. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var my_transform = Transform2D( \n" +" Vector2(2, 0), \n" +" Vector2(0, 4), \n" +" Vector2(0, 0) \n" +")\n" +"# Обертання Transform2D у будь-який спосіб зберігає його масштаб. \n" +"my_transform = my_transform.rotated(TAU / 2) \n" +"\n" +"print(my_transform.get_scale()) # Друк (2.0, 4.0) \n" +"[/gdscript] \n" +"[csharp] \n" +"var myTransform = new Transform2D( \n" +" Vector3(2.0f, 0.0f), \n" +" Vector3(0.0f, 4.0f), \n" +" Vector3(0.0f, 0.0f) \n" +");\n" +"// Обертання Transform2D у будь-який спосіб зберігає його масштаб. \n" +"myTransform = myTransform.Rotated(Mathf.Tau / 2.0f); \n" +"\n" +"GD.Print(myTransform.GetScale()); // Друкує (2, 4) \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка.[/b] Якщо значення, яке повертає [визначник методу], є від’ємним, " +"шкала також є від’ємною." + msgid "Returns this transform's skew (in radians)." msgstr "Повертаємо цю трансформовану шавбу (в редисках)." @@ -145304,6 +179482,21 @@ msgstr "" "Значення за межами цього діапазону дозволені, і натомість їх можна " "використовувати для [i]екстраполяції[/i]." +msgid "" +"Returns the [url=https://en.wikipedia.org/wiki/Invertible_matrix]inverted " +"version of this transform[/url].\n" +"[b]Note:[/b] For this method to return correctly, the transform's basis needs " +"to be [i]orthonormal[/i] (see [method orthonormalized]). That means the basis " +"should only represent a rotation. If it does not, use [method affine_inverse] " +"instead." +msgstr "" +"Повертає [url=https://en.wikipedia.org/wiki/Invertible_matrix]інвертовану " +"версію цього перетворення[/url]. \n" +"[b]Примітка:[/b] Щоб цей метод повертав належним чином, базис перетворення " +"має бути [i]ортонормованим[/i] (див. [method orthonormalized]). Це означає, " +"що основа повинна представляти лише обертання. Якщо це не так, замість цього " +"використовуйте [method affine_inverse]." + msgid "" "Returns [code]true[/code] if this transform's basis is conformal. A conformal " "basis is both [i]orthogonal[/i] (the axes are perpendicular to each other) " @@ -145337,6 +179530,35 @@ msgstr "" "Повертає копію трансформатора, що обертається таким чином, що обертається X-" "ось точок до позиції [параметра], у глобальному просторі." +msgid "" +"Returns a copy of this transform with its basis orthonormalized. An " +"orthonormal basis is both [i]orthogonal[/i] (the axes are perpendicular to " +"each other) and [i]normalized[/i] (the axes have a length of [code]1.0[/" +"code]), which also means it can only represent a rotation." +msgstr "" +"Повертає копію цього перетворення з ортонормованим базисом. Ортонормований " +"базис є як [i]ортогональним[/i] (осі перпендикулярні одна до одної), так і " +"[i]нормалізованим[/i] (осі мають довжину [code]1.0[/code]), що також означає, " +"що він може представляти лише обертання." + +msgid "" +"Returns a copy of this transform rotated by the given [param angle] (in " +"radians).\n" +"If [param angle] is positive, the transform is rotated clockwise.\n" +"This method is an optimized version of multiplying the given transform " +"[code]X[/code] with a corresponding rotation transform [code]R[/code] from " +"the left, i.e., [code]R * X[/code].\n" +"This can be seen as transforming with respect to the global/parent frame." +msgstr "" +"Повертає копію цього перетворення, повернуту на вказаний [param кут] (у " +"радіанах). \n" +"Якщо параметр [param angle] додатний, трансформація обертається за " +"годинниковою стрілкою. \n" +"Цей метод є оптимізованою версією множення заданого перетворення [code]X[/" +"code] на відповідне перетворення обертання [code]R[/code] зліва, тобто " +"[code]R * X[/code]. \n" +"Це можна розглядати як трансформацію щодо глобального/батьківського кадру." + msgid "" "Returns a copy of the transform rotated by the given [param angle] (in " "radians).\n" @@ -145423,6 +179645,84 @@ msgstr "" "На ідентичності перетворюються, це векторні точки прямо ([constant Vector2." "RIGHT])." +msgid "" +"The transform basis's Y axis, and the column [code]1[/code] of the matrix. " +"Combined with [member x], this represents the transform's rotation, scale, " +"and skew.\n" +"On the identity transform, this vector points down ([constant Vector2.DOWN])." +msgstr "" +"Вісь Y основи трансформації та стовпець [code]1[/code] матриці. У поєднанні з " +"[членом x] це означає поворот, масштаб і нахил перетворення. \n" +"У тотожному перетворенні цей вектор вказує вниз ([константа Vector2.DOWN])." + +msgid "" +"The identity [Transform2D]. This is a transform with no translation, no " +"rotation, and a scale of [constant Vector2.ONE]. This also means that:\n" +"- The [member x] points right ([constant Vector2.RIGHT]);\n" +"- The [member y] points down ([constant Vector2.DOWN]).\n" +"[codeblock]\n" +"var transform = Transform2D.IDENTITY\n" +"print(\"| X | Y | Origin\")\n" +"print(\"| %.f | %.f | %.f\" % [transform.x.x, transform.y.x, transform.origin." +"x])\n" +"print(\"| %.f | %.f | %.f\" % [transform.x.y, transform.y.y, transform.origin." +"y])\n" +"# Prints:\n" +"# | X | Y | Origin\n" +"# | 1 | 0 | 0\n" +"# | 0 | 1 | 0\n" +"[/codeblock]\n" +"If a [Vector2], a [Rect2], a [PackedVector2Array], or another [Transform2D] " +"is transformed (multiplied) by this constant, no transformation occurs.\n" +"[b]Note:[/b] In GDScript, this constant is equivalent to creating a " +"[constructor Transform2D] without any arguments. It can be used to make your " +"code clearer, and for consistency with C#." +msgstr "" +"Ідентичність [Transform2D]. Це перетворення без трансляції, без повороту та " +"масштабом [константа Vector2.ONE]. Це також означає, що: \n" +"- [член x] вказує праворуч ([константа Vector2.RIGHT]); \n" +"- [член y] вказує вниз ([константа Vector2.DOWN]). \n" +"[codeblock] \n" +"var transform = Transform2D.IDENTITY \n" +"print(\"| X | Y | Початок\") \n" +"print(\"| %.f | %.f | %.f\" % [transform.x.x, transform.y.x, transform.origin." +"x]) \n" +"print(\"| %.f | %.f | %.f\" % [transform.x.y, transform.y.y, transform.origin." +"y]) \n" +"# Відбитки: \n" +"# | X | Y | Походження \n" +"# | 1 | 0 | 0 \n" +"# | 0 | 1 | 0 \n" +"[/codeblock] \n" +"Якщо [Vector2], [Rect2], [PackedVector2Array] або інший [Transform2D] " +"трансформується (помножується) на цю константу, перетворення не " +"відбувається. \n" +"[b]Примітка:[/b] у GDScript ця константа еквівалентна створенню [конструктора " +"Transform2D] без будь-яких аргументів. Його можна використовувати, щоб " +"зробити ваш код зрозумілішим і узгоджено з C#." + +msgid "" +"When any transform is multiplied by [constant FLIP_X], it negates all " +"components of the [member x] axis (the X column).\n" +"When [constant FLIP_X] is multiplied by any transform, it negates the [member " +"Vector2.x] component of all axes (the X row)." +msgstr "" +"Коли будь-яке перетворення множиться на [константу FLIP_X], воно заперечує " +"всі компоненти осі [член x] (стовпець X). \n" +"Коли [константа FLIP_X] помножується на будь-яке перетворення, це заперечує " +"компонент [член Vector2.x] усіх осей (рядок X)." + +msgid "" +"When any transform is multiplied by [constant FLIP_Y], it negates all " +"components of the [member y] axis (the Y column).\n" +"When [constant FLIP_Y] is multiplied by any transform, it negates the [member " +"Vector2.y] component of all axes (the Y row)." +msgstr "" +"Коли будь-яке перетворення множиться на [константу FLIP_Y], воно заперечує " +"всі компоненти осі [член y] (стовпець Y). \n" +"Коли [константа FLIP_Y] помножується на будь-яке перетворення, це заперечує " +"компонент [член Vector2.y] усіх осей (рядка Y)." + msgid "" "Returns [code]true[/code] if the components of both transforms are not " "equal.\n" @@ -145550,6 +179850,15 @@ msgstr "" "model_export_considerations.html#d-asset-direction-convention]3D Конвенції " "напрямку активу [/url] підручник." +msgid "" +"Constructs a [Transform3D] identical to [constant IDENTITY].\n" +"[b]Note:[/b] In C#, this constructs a [Transform3D] with its [member origin] " +"and the components of its [member basis] set to [constant Vector3.ZERO]." +msgstr "" +"Створює [Transform3D], ідентичний [константі IDENTITY]. \n" +"[b]Примітка.[/b] У C# це створює [Transform3D] із [початковим елементом] і " +"компонентами його [базису], встановленим у [постійний Vector3.ZERO]." + msgid "Constructs a [Transform3D] as a copy of the given [Transform3D]." msgstr "[Трансформ3D] як копія даної [Трансформ3D]." @@ -145579,6 +179888,36 @@ msgstr "" "Перші три аргументи — ось [пам'яткові бази] ([член Basis.x], [член Basis.y], " "і [член Basis.z])." +msgid "" +"Returns the inverted version of this transform. Unlike [method inverse], this " +"method works with almost any [member basis], including non-uniform ones, but " +"is slower. See also [method Basis.inverse].\n" +"[b]Note:[/b] For this method to return correctly, the transform's [member " +"basis] needs to have a determinant that is not exactly [code]0.0[/code] (see " +"[method Basis.determinant])." +msgstr "" +"Повертає інвертовану версію цього перетворення. На відміну від [method " +"inverse], цей метод працює майже з будь-яким [базисом-членом], включно з " +"неоднорідними, але повільніше. Дивіться також [метод Basis.inverse]. \n" +"[b]Примітка:[/b] Щоб цей метод повертав належні результати, [база-член] " +"перетворення повинна мати визначник, який не є точно [code]0.0[/code] (див. " +"[method Basis.determinant])." + +msgid "" +"Returns the [url=https://en.wikipedia.org/wiki/Invertible_matrix]inverted " +"version of this transform[/url]. See also [method Basis.inverse].\n" +"[b]Note:[/b] For this method to return correctly, the transform's [member " +"basis] needs to be [i]orthonormal[/i] (see [method orthonormalized]). That " +"means the basis should only represent a rotation. If it does not, use [method " +"affine_inverse] instead." +msgstr "" +"Повертає [url=https://en.wikipedia.org/wiki/Invertible_matrix]інвертовану " +"версію цього перетворення[/url]. Дивіться також [метод Basis.inverse]. \n" +"[b]Примітка:[/b] Щоб цей метод повертав належним чином, [базис-член] " +"перетворення має бути [i]ортонормованим[/i] (див. [метод ортонормований]). Це " +"означає, що основа повинна представляти лише обертання. Якщо це не так, " +"замість цього використовуйте [method affine_inverse]." + msgid "" "Returns a copy of this transform rotated so that the forward axis (-Z) points " "towards the [param target] position.\n" @@ -145605,6 +179944,61 @@ msgstr "" "[пам'яча мета]. За замовчуванням, вісь -Z (переадреса камери) обробляється як " "переадресація (податки +X право)." +msgid "" +"Returns a copy of this transform with its [member basis] orthonormalized. An " +"orthonormal basis is both [i]orthogonal[/i] (the axes are perpendicular to " +"each other) and [i]normalized[/i] (the axes have a length of [code]1.0[/" +"code]), which also means it can only represent a rotation. See also [method " +"Basis.orthonormalized]." +msgstr "" +"Повертає копію цього перетворення з ортонормованим [базисом-членом]. " +"Ортонормований базис є як [i]ортогональним[/i] (осі перпендикулярні одна до " +"одної), так і [i]нормованим[/i] (осі мають довжину [code]1.0[/code]), що " +"також означає, що він може представляти лише обертання. Дивіться також [метод " +"Basis.orthonormalized]." + +msgid "" +"Returns a copy of this transform rotated around the given [param axis] by the " +"given [param angle] (in radians).\n" +"The [param axis] must be a normalized vector (see [method Vector3." +"normalized]). If [param angle] is positive, the basis is rotated counter-" +"clockwise around the axis.\n" +"This method is an optimized version of multiplying the given transform " +"[code]X[/code] with a corresponding rotation transform [code]R[/code] from " +"the left, i.e., [code]R * X[/code].\n" +"This can be seen as transforming with respect to the global/parent frame." +msgstr "" +"Повертає копію цього перетворення, повернуту навколо заданої [param axis] на " +"заданий [param angle] (у радіанах). \n" +"[param axis] має бути нормалізованим вектором (див. [method Vector3." +"normalized]). Якщо [param angle] додатний, базис обертається проти " +"годинникової стрілки навколо осі. \n" +"Цей метод є оптимізованою версією множення заданого перетворення [code]X[/" +"code] на відповідне перетворення обертання [code]R[/code] зліва, тобто " +"[code]R * X[/code]. \n" +"Це можна розглядати як трансформацію щодо глобального/батьківського кадру." + +msgid "" +"Returns a copy of this transform rotated around the given [param axis] by the " +"given [param angle] (in radians).\n" +"The [param axis] must be a normalized vector in the transform's local " +"coordinate system. For example, to rotate around the local X-axis, use " +"[constant Vector3.RIGHT].\n" +"This method is an optimized version of multiplying the given transform " +"[code]X[/code] with a corresponding rotation transform [code]R[/code] from " +"the right, i.e., [code]X * R[/code].\n" +"This can be seen as transforming with respect to the local frame." +msgstr "" +"Повертає копію цього перетворення, повернуту навколо заданої [param axis] на " +"заданий [param angle] (у радіанах). \n" +"[param axis] має бути нормалізованим вектором у локальній системі координат " +"перетворення. Наприклад, щоб обертати навколо локальної осі X, використовуйте " +"[constant Vector3.RIGHT]. \n" +"Цей метод є оптимізованою версією множення заданого перетворення [code]X[/" +"code] на відповідне перетворення обертання [code]R[/code] справа, тобто " +"[code]X * R[/code]. \n" +"Це можна розглядати як трансформацію відносно локальної рамки." + msgid "" "Returns a copy of this transform scaled by the given [param scale] factor.\n" "This method is an optimized version of multiplying the given transform " @@ -145674,6 +180068,65 @@ msgid "" msgstr "" "Переклад цього перетворення. У 3D-просторі це можна побачити як позицію." +msgid "" +"The identity [Transform3D]. This is a transform with no translation, no " +"rotation, and a scale of [constant Vector3.ONE]. Its [member basis] is equal " +"to [constant Basis.IDENTITY]. This also means that:\n" +"- Its [member Basis.x] points right ([constant Vector3.RIGHT]);\n" +"- Its [member Basis.y] points up ([constant Vector3.UP]);\n" +"- Its [member Basis.z] points back ([constant Vector3.BACK]).\n" +"[codeblock]\n" +"var transform = Transform3D.IDENTITY\n" +"var basis = transform.basis\n" +"print(\"| X | Y | Z | Origin\")\n" +"print(\"| %.f | %.f | %.f | %.f\" % [basis.x.x, basis.y.x, basis.z.x, " +"transform.origin.x])\n" +"print(\"| %.f | %.f | %.f | %.f\" % [basis.x.y, basis.y.y, basis.z.y, " +"transform.origin.y])\n" +"print(\"| %.f | %.f | %.f | %.f\" % [basis.x.z, basis.y.z, basis.z.z, " +"transform.origin.z])\n" +"# Prints:\n" +"# | X | Y | Z | Origin\n" +"# | 1 | 0 | 0 | 0\n" +"# | 0 | 1 | 0 | 0\n" +"# | 0 | 0 | 1 | 0\n" +"[/codeblock]\n" +"If a [Vector3], an [AABB], a [Plane], a [PackedVector3Array], or another " +"[Transform3D] is transformed (multiplied) by this constant, no transformation " +"occurs.\n" +"[b]Note:[/b] In GDScript, this constant is equivalent to creating a " +"[constructor Transform3D] without any arguments. It can be used to make your " +"code clearer, and for consistency with C#." +msgstr "" +"Ідентичність [Transform3D]. Це перетворення без трансляції, обертання та " +"масштабу [константа Vector3.ONE]. Його [основа-член] дорівнює [константі " +"Basis.IDENTITY]. Це також означає, що: \n" +"- Його [член Basis.x] вказує праворуч ([константа Vector3.RIGHT]); \n" +"- Його [член Basis.y] вказує вгору ([константа Vector3.UP]); \n" +"- Його [член Basis.z] вказує назад ([константа Vector3.BACK]). \n" +"[codeblock] \n" +"var transform = Transform3D.IDENTITY \n" +"var basis = transform.basis \n" +"print(\"| X | Y | Z | Походження\") \n" +"print(\"| %.f | %.f | %.f | %.f\" % [basis.x.x, basis.y.x, basis.z.x, " +"transform.origin.x]) \n" +"print(\"| %.f | %.f | %.f | %.f\" % [basis.x.y, basis.y.y, basis.z.y, " +"transform.origin.y]) \n" +"print(\"| %.f | %.f | %.f | %.f\" % [basis.x.z, basis.y.z, basis.z.z, " +"transform.origin.z]) \n" +"# Відбитки: \n" +"# | X | Y | Z | Походження \n" +"# | 1 | 0 | 0 | 0 \n" +"# | 0 | 1 | 0 | 0 \n" +"# | 0 | 0 | 1 | 0 \n" +"[/codeblock] \n" +"Якщо [Vector3], [AABB], [Plane], [PackedVector3Array] або інший [Transform3D] " +"трансформується (помножується) на цю константу, перетворення не " +"відбувається. \n" +"[b]Примітка:[/b] у GDScript ця константа еквівалентна створенню [конструктора " +"Transform3D] без будь-яких аргументів. Його можна використовувати, щоб " +"зробити ваш код зрозумілішим і узгоджено з C#." + msgid "" "[Transform3D] with mirroring applied perpendicular to the YZ plane. Its " "[member basis] is equal to [constant Basis.FLIP_X]." @@ -145841,13 +180294,231 @@ msgstr "Повертаємо всі повідомлення (перекладе msgid "The locale of the translation." msgstr "Місце перекладу." +msgid "A self-contained collection of [Translation] resources." +msgstr "Окрема колекція ресурсів [Переклад].." + +msgid "" +"[TranslationDomain] is a self-contained collection of [Translation] " +"resources. Translations can be added to or removed from it.\n" +"If you're working with the main translation domain, it is more convenient to " +"use the wrap methods on [TranslationServer]." +msgstr "" +"[TranslationDomain] — це самостійна колекція ресурсів [Translation]. " +"Переклади можна додати або видалити з нього. \n" +"Якщо ви працюєте з основним доменом перекладу, зручніше використовувати " +"методи обтікання на [TranslationServer]." + +msgid "Adds a translation." +msgstr "Додає переклад." + +msgid "Removes all translations." +msgstr "Видаляє всі переклади." + +msgid "" +"Returns the [Translation] instance that best matches [param locale]. Returns " +"[code]null[/code] if there are no matches." +msgstr "" +"Повертає екземпляр [Translation], який найкраще відповідає [param locale]. " +"Повертає [code]null[/code], якщо немає збігів." + msgid "" "Returns the pseudolocalized string based on the [param message] passed in." msgstr "Повертає псевдокальизований рядок на основі [пам'ятного повідомлення]." +msgid "Removes the given translation." +msgstr "Видаляє поданий переклад." + +msgid "" +"Returns the current locale's translation for the given message and context." +msgstr "Повертає переклад поточної мови для даного повідомлення та контексту." + +msgid "" +"Returns the current locale's translation for the given message, plural " +"message and context.\n" +"The number [param n] is the number or quantity of the plural object. It will " +"be used to guide the translation system to fetch the correct plural form for " +"the selected language." +msgstr "" +"Повертає переклад поточної мови для даного повідомлення, повідомлення у " +"множині та контексту. \n" +"Число [param n] — це число або кількість об’єкта множини. Він " +"використовуватиметься, щоб керувати системою перекладу для отримання " +"правильної форми множини для вибраної мови." + +msgid "" +"Replace all characters with their accented variants during " +"pseudolocalization.\n" +"[b]Note:[/b] Updating this property does not automatically update texts in " +"the scene tree. Please propagate the [constant MainLoop." +"NOTIFICATION_TRANSLATION_CHANGED] notification manually after you have " +"finished modifying pseudolocalization related options." +msgstr "" +"Під час псевдолокалізації замінити всі символи їх акцентованими варіантами. \n" +"[b]Примітка:[/b] Оновлення цієї властивості не оновлює автоматично тексти в " +"дереві сцени. Будь ласка, поширте сповіщення [constant MainLoop." +"NOTIFICATION_TRANSLATION_CHANGED] вручну після того, як ви закінчите " +"змінювати параметри, пов’язані з псевдолокалізацією." + +msgid "" +"Double vowels in strings during pseudolocalization to simulate the " +"lengthening of text due to localization.\n" +"[b]Note:[/b] Updating this property does not automatically update texts in " +"the scene tree. Please propagate the [constant MainLoop." +"NOTIFICATION_TRANSLATION_CHANGED] notification manually after you have " +"finished modifying pseudolocalization related options." +msgstr "" +"Подвійні голосні в рядках під час псевдолокалізації для імітації подовження " +"тексту через локалізацію. \n" +"[b]Примітка:[/b] Оновлення цієї властивості не оновлює автоматично тексти в " +"дереві сцени. Будь ласка, поширте сповіщення [constant MainLoop." +"NOTIFICATION_TRANSLATION_CHANGED] вручну після того, як ви закінчите " +"змінювати параметри, пов’язані з псевдолокалізацією." + +msgid "" +"If [code]true[/code], enables pseudolocalization for the project. This can be " +"used to spot untranslatable strings or layout issues that may occur once the " +"project is localized to languages that have longer strings than the source " +"language.\n" +"[b]Note:[/b] Updating this property does not automatically update texts in " +"the scene tree. Please propagate the [constant MainLoop." +"NOTIFICATION_TRANSLATION_CHANGED] notification manually after you have " +"finished modifying pseudolocalization related options." +msgstr "" +"Якщо [code]true[/code], вмикає псевдолокалізацію для проекту. Це можна " +"використовувати для виявлення неперекладних рядків або проблем з макетом, які " +"можуть виникнути після локалізації проекту на мови, які мають довші рядки, " +"ніж вихідна мова. \n" +"[b]Примітка:[/b] Оновлення цієї властивості не оновлює автоматично тексти в " +"дереві сцени. Будь ласка, поширте сповіщення [constant MainLoop." +"NOTIFICATION_TRANSLATION_CHANGED] вручну після того, як ви закінчите " +"змінювати параметри, пов’язані з псевдолокалізацією." + +msgid "" +"The expansion ratio to use during pseudolocalization. A value of [code]0.3[/" +"code] is sufficient for most practical purposes, and will increase the length " +"of each string by 30%.\n" +"[b]Note:[/b] Updating this property does not automatically update texts in " +"the scene tree. Please propagate the [constant MainLoop." +"NOTIFICATION_TRANSLATION_CHANGED] notification manually after you have " +"finished modifying pseudolocalization related options." +msgstr "" +"Коефіцієнт розширення для використання під час псевдолокалізації. Значення " +"[code]0,3[/code] є достатнім для більшості практичних цілей і збільшить " +"довжину кожного рядка на 30%. \n" +"[b]Примітка:[/b] Оновлення цієї властивості не оновлює автоматично тексти в " +"дереві сцени. Будь ласка, поширте сповіщення [constant MainLoop." +"NOTIFICATION_TRANSLATION_CHANGED] вручну після того, як ви закінчите " +"змінювати параметри, пов’язані з псевдолокалізацією." + +msgid "" +"If [code]true[/code], emulate bidirectional (right-to-left) text when " +"pseudolocalization is enabled. This can be used to spot issues with RTL " +"layout and UI mirroring that will crop up if the project is localized to RTL " +"languages such as Arabic or Hebrew.\n" +"[b]Note:[/b] Updating this property does not automatically update texts in " +"the scene tree. Please propagate the [constant MainLoop." +"NOTIFICATION_TRANSLATION_CHANGED] notification manually after you have " +"finished modifying pseudolocalization related options." +msgstr "" +"Якщо [code]true[/code], емулювати двонаправлений текст (справа наліво), коли " +"ввімкнено псевдолокалізацію. Це можна використовувати для виявлення проблем " +"із макетом RTL і віддзеркаленням інтерфейсу користувача, які виникнуть, якщо " +"проект локалізовано на такі мови RTL, як арабська чи іврит. \n" +"[b]Примітка:[/b] Оновлення цієї властивості не оновлює автоматично тексти в " +"дереві сцени. Будь ласка, поширте сповіщення [constant MainLoop." +"NOTIFICATION_TRANSLATION_CHANGED] вручну після того, як ви закінчите " +"змінювати параметри, пов’язані з псевдолокалізацією." + +msgid "" +"Replace all characters in the string with [code]*[/code]. Useful for finding " +"non-localizable strings.\n" +"[b]Note:[/b] Updating this property does not automatically update texts in " +"the scene tree. Please propagate the [constant MainLoop." +"NOTIFICATION_TRANSLATION_CHANGED] notification manually after you have " +"finished modifying pseudolocalization related options." +msgstr "" +"Замініть усі символи в рядку на [code]*[/code]. Корисно для пошуку " +"нелокалізованих рядків. \n" +"[b]Примітка:[/b] Оновлення цієї властивості не оновлює автоматично тексти в " +"дереві сцени. Будь ласка, поширте сповіщення [constant MainLoop." +"NOTIFICATION_TRANSLATION_CHANGED] вручну після того, як ви закінчите " +"змінювати параметри, пов’язані з псевдолокалізацією." + +msgid "" +"Prefix that will be prepended to the pseudolocalized string.\n" +"[b]Note:[/b] Updating this property does not automatically update texts in " +"the scene tree. Please propagate the [constant MainLoop." +"NOTIFICATION_TRANSLATION_CHANGED] notification manually after you have " +"finished modifying pseudolocalization related options." +msgstr "" +"Префікс, який буде додано до псевдолокалізованого рядка. \n" +"[b]Примітка:[/b] Оновлення цієї властивості не оновлює автоматично тексти в " +"дереві сцени. Будь ласка, поширте сповіщення [constant MainLoop." +"NOTIFICATION_TRANSLATION_CHANGED] вручну після того, як ви закінчите " +"змінювати параметри, пов’язані з псевдолокалізацією." + +msgid "" +"Skip placeholders for string formatting like [code]%s[/code] or [code]%f[/" +"code] during pseudolocalization. Useful to identify strings which need " +"additional control characters to display correctly.\n" +"[b]Note:[/b] Updating this property does not automatically update texts in " +"the scene tree. Please propagate the [constant MainLoop." +"NOTIFICATION_TRANSLATION_CHANGED] notification manually after you have " +"finished modifying pseudolocalization related options." +msgstr "" +"Пропустіть заповнювачі для форматування рядків, наприклад [code]%s[/code] або " +"[code]%f[/code] під час псевдолокалізації. Корисно для визначення рядків, які " +"потребують додаткових контрольних символів для правильного відображення. \n" +"[b]Примітка:[/b] Оновлення цієї властивості не оновлює автоматично тексти в " +"дереві сцени. Будь ласка, поширте сповіщення [constant MainLoop." +"NOTIFICATION_TRANSLATION_CHANGED] вручну після того, як ви закінчите " +"змінювати параметри, пов’язані з псевдолокалізацією." + +msgid "" +"Suffix that will be appended to the pseudolocalized string.\n" +"[b]Note:[/b] Updating this property does not automatically update texts in " +"the scene tree. Please propagate the [constant MainLoop." +"NOTIFICATION_TRANSLATION_CHANGED] notification manually after you have " +"finished modifying pseudolocalization related options." +msgstr "" +"Суфікс, який буде додано до псевдолокалізованого рядка. \n" +"[b]Примітка:[/b] Оновлення цієї властивості не оновлює автоматично тексти в " +"дереві сцени. Будь ласка, поширте сповіщення [constant MainLoop." +"NOTIFICATION_TRANSLATION_CHANGED] вручну після того, як ви закінчите " +"змінювати параметри, пов’язані з псевдолокалізацією." + msgid "The server responsible for language translations." msgstr "Статус на сервери." +msgid "" +"The translation server is the API backend that manages all language " +"translations.\n" +"Translations are stored in [TranslationDomain]s, which can be accessed by " +"name. The most commonly used translation domain is the main translation " +"domain. It always exists and can be accessed using an empty [StringName]. The " +"translation server provides wrapper methods for accessing the main " +"translation domain directly, without having to fetch the translation domain " +"first. Custom translation domains are mainly for advanced usages like editor " +"plugins. Names starting with [code]godot.[/code] are reserved for engine " +"internals." +msgstr "" +"Сервер перекладу — це серверний API, який керує перекладами всіх мов. \n" +"Переклади зберігаються в [TranslationDomain], доступ до якого можна отримати " +"за іменем. Найбільш часто використовуваним доменом перекладу є основний домен " +"перекладу. Він завжди існує, і до нього можна отримати доступ за допомогою " +"порожнього [StringName]. Сервер перекладу надає методи оболонки для прямого " +"доступу до основного домену перекладу без необхідності попереднього отримання " +"домену перекладу. Користувальницькі домени перекладу в основному призначені " +"для розширеного використання, наприклад плагінів редактора. Назви, що " +"починаються з [code]godot.[/code], зарезервовані для внутрішніх пристроїв " +"двигуна." + +msgid "Adds a translation to the main translation domain." +msgstr "Додає переклад до основного домену перекладу." + +msgid "Removes all translations from the main translation domain." +msgstr "Видаляє всі переклади з основного домену перекладу." + msgid "" "Compares two locales and returns a similarity score between [code]0[/code] " "(no match) and [code]10[/code] (full match)." @@ -145889,6 +180560,13 @@ msgstr "" "Повертає мову мови та її варіант (наприклад, [code]\"en_US\"[/code] поверне " "[code]\"English (United States)\"[/code])." +msgid "" +"Returns the translation domain with the specified name. An empty translation " +"domain will be created and added if it does not exist." +msgstr "" +"Повертає домен перекладу з вказаною назвою. Буде створено та додано порожній " +"домен перекладу, якщо він не існує." + msgid "Returns a readable script name for the [param script] code." msgstr "Повертаємо читабельне ім'я скрипта [param скрипт] код." @@ -145901,6 +180579,43 @@ msgstr "" "[b]Примітка:[/b] Після того, як було прийнято експортований проект, повертає " "той самий значення, як [метод get_locale]." +msgid "" +"Returns the [Translation] instance that best matches [param locale] in the " +"main translation domain. Returns [code]null[/code] if there are no matches." +msgstr "" +"Повертає екземпляр [Translation], який найкраще відповідає [param locale] в " +"основному домені перекладу. Повертає [code]null[/code], якщо немає збігів." + +msgid "" +"Returns [code]true[/code] if a translation domain with the specified name " +"exists." +msgstr "" +"Повертає [code]true[/code], якщо існує домен перекладу з вказаною назвою." + +msgid "" +"Returns the pseudolocalized string based on the [param message] passed in.\n" +"[b]Note:[/b] This method always uses the main translation domain." +msgstr "" +"Повертає псевдолокалізований рядок на основі переданого [param message].\n" +"[b]Примітка.[/b] Цей метод завжди використовує основний домен перекладу." + +msgid "" +"Reparses the pseudolocalization options and reloads the translation for the " +"main translation domain." +msgstr "" +"Повторно аналізує параметри псевдолокалізації та перезавантажує переклад для " +"основного домену перекладу." + +msgid "" +"Removes the translation domain with the specified name.\n" +"[b]Note:[/b] Trying to remove the main translation domain is an error." +msgstr "" +"Видаляє домен перекладу з указаним іменем.\n" +"[b]Примітка.[/b] Спроба видалити основний домен перекладу є помилкою." + +msgid "Removes the given translation from the main translation domain." +msgstr "Видаляє вказаний переклад з основного домену перекладу." + msgid "" "Sets the locale of the project. The [param locale] string will be " "standardized to match known locales (e.g. [code]en-US[/code] would be matched " @@ -145914,6 +180629,48 @@ msgstr "" "Якщо переклади були завантажені раніше для нової локалізації, вони будуть " "застосовуватися." +msgid "" +"Returns a [param locale] string standardized to match known locales (e.g. " +"[code]en-US[/code] would be matched to [code]en_US[/code]). If [param " +"add_defaults] is [code]true[/code], the locale may have a default script or " +"country added." +msgstr "" +"Повертає рядок [param locale], стандартизований відповідно до відомих локалей " +"(наприклад, [code]en-US[/code] відповідатиме [code]en_US[/code]). Якщо [param " +"add_defaults] має значення [code]true[/code], можливо, до локалі додано " +"сценарій за умовчанням або країну." + +msgid "" +"Returns the current locale's translation for the given message and context.\n" +"[b]Note:[/b] This method always uses the main translation domain." +msgstr "" +"Повертає переклад поточної мови для даного повідомлення та контексту.\n" +"[b]Примітка.[/b] Цей метод завжди використовує основний домен перекладу." + +msgid "" +"Returns the current locale's translation for the given message, plural " +"message and context.\n" +"The number [param n] is the number or quantity of the plural object. It will " +"be used to guide the translation system to fetch the correct plural form for " +"the selected language.\n" +"[b]Note:[/b] This method always uses the main translation domain." +msgstr "" +"Повертає переклад поточної мови для даного повідомлення, повідомлення у " +"множині та контексту. \n" +"Число [param n] — це число або кількість об’єкта множини. Він " +"використовуватиметься, щоб керувати системою перекладу для отримання " +"правильної форми множини для вибраної мови. \n" +"[b]Примітка.[/b] Цей метод завжди використовує основний домен перекладу." + +msgid "" +"If [code]true[/code], enables the use of pseudolocalization on the main " +"translation domain. See [member ProjectSettings.internationalization/" +"pseudolocalization/use_pseudolocalization] for details." +msgstr "" +"Якщо [code]true[/code], увімкнено використання псевдолокалізації в основному " +"домені перекладу. Докладніше див. у [member ProjectSettings." +"internationalization/pseudolocalization/use_pseudolocalization]." + msgid "" "A control used to show a set of internal [TreeItem]s in a hierarchical " "structure." @@ -145971,40 +180728,40 @@ msgid "" msgstr "" "Елемент керування, який використовується для відображення набору внутрішніх " "[TreeItem] в ієрархічній структурі. Елементи дерева можна вибирати, " -"розгортати та згортати. Дерево може мати кілька стовпців із спеціальними " +"розгортати та згортати. Дерево може мати кілька стовпців із настроюваними " "елементами керування, такими як [LineEdit], кнопки та спливаючі вікна. Це " -"може бути корисним для структурованих показів і взаємодії.\n" +"може бути корисним для структурованих показів і взаємодії. \n" "Дерева будуються за допомогою коду з використанням об’єктів [TreeItem] для " "створення структури. Вони мають один корінь, але кілька коренів можна " -"симулювати за допомогою [member hide_root]:\n" -"[кодові блоки]\n" -"[gdscript]\n" -"func _ready():\n" -" var tree = Tree.new()\n" -" var root = tree.create_item()\n" -" tree.hide_root = правда\n" -" var child1 = tree.create_item(корінь)\n" -" var child2 = tree.create_item(корінь)\n" -" var subchild1 = tree.create_item(child1)\n" -" subchild1.set_text(0, \"Subchild1\")\n" -"[/gdscript]\n" -"[csharp]\n" -"public override void _Ready()\n" +"симулювати за допомогою [member hide_root]: \n" +"[codeblocks] \n" +"[gdscript] \n" +"func _ready(): \n" +" var tree = Tree.new() \n" +" var root = tree.create_item() \n" +" tree.hide_root = ture \n" +" var child1 = tree.create_item(root) \n" +" var child2 = tree.create_item(root) \n" +" var subchild1 = tree.create_item(child1) \n" +" subchild1.set_text(0, \"Subchild1\") \n" +"[/gdscript] \n" +"[csharp] \n" +"public override void _Ready() \n" "{\n" -" var tree = new Tree();\n" -" Корінь TreeItem = tree.CreateItem();\n" -" tree.HideRoot = true;\n" -" TreeItem child1 = tree.CreateItem(корінь);\n" -" TreeItem child2 = tree.CreateItem(корінь);\n" -" TreeItem subchild1 = tree.CreateItem(child1);\n" -" subchild1.SetText(0, \"Subchild1\");\n" +" var tree = new Tree(); \n" +" Корінь TreeItem = tree.CreateItem(); \n" +" tree.HideRoot = true; \n" +" TreeItem child1 = tree.CreateItem(root); \n" +" TreeItem child2 = tree.CreateItem(root); \n" +" TreeItem subchild1 = tree.CreateItem(child1); \n" +" subchild1.SetText(0, \"Subchild1\"); \n" "}\n" -"[/csharp]\n" -"[/codeblocks]\n" +"[/csharp] \n" +"[/codeblocks] \n" "Щоб виконати ітерацію по всіх об’єктах [TreeItem] в об’єкті [Tree], " -"використовуйте [метод TreeItem.get_next] і [метод TreeItem.get_first_child] " -"після отримання кореня через [метод get_root]. Ви можете використовувати " -"[method Object.free] для [TreeItem], щоб видалити його з [Tree].\n" +"використовуйте [method TreeItem.get_next] і [method TreeItem.get_first_child] " +"після отримання кореня через [method get_root]. Ви можете використовувати " +"[method Object.free] для [TreeItem], щоб видалити його з [Tree]. \n" "[b]Поступовий пошук:[/b] Подібно до [ItemList] і [PopupMenu], [Tree] " "підтримує пошук у списку, коли елемент керування знаходиться в фокусі. " "Натисніть клавішу, яка відповідає першій літері назви об’єкта, щоб вибрати " @@ -146144,29 +180901,29 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Повернути поточний редагований елемент. Може використовуватися з [визначним " -"елементом_edited], щоб отримати товар, який був модифікований.\n" -"[блоки коду]\n" -"[видання]\n" -"Func _ready():\n" -"$Tree.item_edited.connect(on_Tree_item_edited)\n" +"Повертає поточний відредагований елемент. Можна використовувати з [signal " +"item_edited], щоб отримати елемент, який було змінено. \n" +"[codeblocks] \n" +"[gdscript] \n" +"func _ready(): \n" +" $Tree.item_edited.connect(on_Tree_item_edited) \n" "\n" -"Func on_Tree_item_edited():\n" -"Друк($Tree.get_edited()) Нема Цей пункт тільки отримав редагування " -"(наприклад, перевірте).\n" -"[/gdscript]\n" -"[csharp]\n" -"public override _Читати()\n" -"Довідник\n" -"GetNode <Tree>(\"Tree\"). Об'єктРедаговано += OnTreeItemEdited;\n" -"Про нас\n" +"func on_Tree_item_edited(): \n" +" print($Tree.get_edited()) # Цей елемент щойно було відредаговано " +"(наприклад, позначено). \n" +"[/gdscript] \n" +"[csharp] \n" +"public override void _Ready() \n" +"{\n" +" GetNode<Tree>(\"Tree\").ItemEdited += OnTreeItemEdited; \n" +"}\n" "\n" -"public void onTreeItemEdited()\n" -"Довідник\n" -"GD.Print(GetNode<Tree>(\"Tree\").GetEdited()); (Українська) Цей пункт тільки " -"отримав редагування (наприклад, перевірте).\n" -"Про нас\n" -"[/csharp]\n" +"public void OnTreeItemEdited() \n" +"{\n" +" GD.Print(GetNode<Tree>(\"Дерево\").GetEdited()); // Цей елемент щойно " +"було відредаговано (наприклад, перевірено). \n" +"}\n" +"[/csharp] \n" "[/codeblocks]" msgid "Returns the column for the currently edited item." @@ -146331,6 +181088,15 @@ msgstr "" "Якщо [code]true[/code], дозволяє навігувати [Tree] з літерними ключами через " "незрівнянний пошук." +msgid "" +"If [code]true[/code], tree items with no tooltip assigned display their text " +"as their tooltip. See also [method TreeItem.get_tooltip_text] and [method " +"TreeItem.get_button_tooltip_text]." +msgstr "" +"Якщо [code]true[/code], елементи дерева без призначеної підказки " +"відображатимуть текст як підказку. Дивіться також [метод TreeItem." +"get_tooltip_text] і [метод TreeItem.get_button_tooltip_text]." + msgid "If [code]true[/code], column titles are visible." msgstr "Якщо [code]true[/code], видимі назви стовпців." @@ -146565,6 +181331,17 @@ msgstr "" "Текст [Color] для [constant TreeItem.CELL_MODE_CHECK] модна клітинка, коли " "вона не видається (див. [метод дереваItem.set_editable])." +msgid "Text [Color] used when the item is hovered." +msgstr "" +"Текст [колір], який використовується під час наведення курсора на елемент." + +msgid "" +"Text [Color] used when the item is hovered, while a button of the same item " +"is hovered as the same time." +msgstr "" +"[Колір] тексту, який використовується під час наведення курсора на елемент, у " +"той час як кнопка того самого елемента наводиться одночасно." + msgid "Text [Color] used when the item is selected." msgstr "Текст [Color] використовується при вибраному пункті." @@ -146787,6 +181564,9 @@ msgstr "" "Підсумок стріли для відображення [constant TreeItem.CELL_MODE_RANGE] в режимі " "комірки." +msgid "[StyleBox] used when a button in the tree is hovered." +msgstr "[StyleBox] використовується при наведенні курсора на кнопку в дереві." + msgid "[StyleBox] used when a button in the tree is pressed." msgstr "[StyleBox] використовується при натисканні кнопки в дерево." @@ -146820,6 +181600,16 @@ msgstr "" msgid "The focused style for the [Tree], drawn on top of everything." msgstr "Сфокусований стиль [Tree], намальований на вершині всього." +msgid "[StyleBox] for the item being hovered." +msgstr "[StyleBox] для елемента, на який наводиться курсор." + +msgid "" +"[StyleBox] for the item being hovered, while a button of the same item is " +"hovered as the same time." +msgstr "" +"[StyleBox] для елемента, на який наводиться курсор, тоді як кнопка того " +"самого елемента наводиться одночасно." + msgid "The background style for the [Tree]." msgstr "Стиль фону для [Tree]." @@ -146866,6 +181656,23 @@ msgstr "" "на відміну від [int], який завжди 64-біт. [code]-2147483648[/code] до " "[code]2147483647[/code]." +msgid "" +"Adds a button with [Texture2D] [param button] to the end of the cell at " +"column [param column]. The [param id] is used to identify the button in the " +"according [signal Tree.button_clicked] signal and can be different from the " +"buttons index. If not specified, the next available index is used, which may " +"be retrieved by calling [method get_button_count] immediately before this " +"method. Optionally, the button can be [param disabled] and have a [param " +"tooltip_text]." +msgstr "" +"Додає кнопку з [Texture2D] [param button] у кінець комірки в стовпці [param " +"column]. [param id] використовується для ідентифікації кнопки у відповідному " +"сигналі [signal Tree.button_clicked] і може відрізнятися від індексу кнопки. " +"Якщо не вказано, використовується наступний доступний індекс, який можна " +"отримати, викликавши [method get_button_count] безпосередньо перед цим " +"методом. За бажанням кнопка може бути [param disabled] і мати [param " +"tooltip_text]." + msgid "" "Adds a previously unparented [TreeItem] as a direct child of this one. The " "[param child] item must not be a part of any [Tree] or parented to any " @@ -146882,6 +181689,9 @@ msgstr "" "Викликає метод [парам] на власне TreeItem і його діти рекурсивно. Передача " "параметрів як окремий список коми." +msgid "Removes all buttons from all columns of this item." +msgstr "Видаляє всі кнопки з усіх стовпців цього елемента." + msgid "Resets the background color for the given column to default." msgstr "Стійкість фонового кольору для заданого стовпця до за замовчуванням." @@ -146907,6 +181717,9 @@ msgid "" msgstr "" "Видалити кнопку в індексі [param button_index] в стовпчику [param стовпчик]." +msgid "Returns the column's auto translate mode." +msgstr "Повертає режим автоматичного перекладу стовпця." + msgid "" "Returns the text autowrap mode in the given [param column]. By default it is " "[constant TextServer.AUTOWRAP_OFF]." @@ -147012,6 +181825,9 @@ msgstr "" msgid "Returns the [Color] modulating the column's icon." msgstr "Повертаємо іконку стовпчика." +msgid "Returns the given column's icon overlay [Texture2D]." +msgstr "Повертає накладення значка заданого стовпця [Texture2D]." + msgid "Returns the icon [Texture2D] region as [Rect2]." msgstr "Повернення іконки [Texture2D] область як [Rect2]." @@ -147029,6 +181845,13 @@ msgstr "" "Повертає значення метаданих, яка була встановлена для даного стовпця, " "використовуючи [метод set_metadata]." +msgid "" +"Returns the next sibling TreeItem in the tree or a [code]null[/code] object " +"if there is none." +msgstr "" +"Повертає наступний однорідний TreeItem у дереві або об’єкт [code]null[/code], " +"якщо його немає." + msgid "" "Returns the next TreeItem in the tree (in the context of a depth-first " "search) or a [code]null[/code] object if there is none.\n" @@ -147055,6 +181878,18 @@ msgstr "" "першого видимого елемента в дереві, коли називається на останньому видимому " "елементі, інакше він повертає [code]null[/code]." +msgid "" +"Returns the parent TreeItem or a [code]null[/code] object if there is none." +msgstr "" +"Повертає батьківський TreeItem або об’єкт [code]null[/code], якщо його немає." + +msgid "" +"Returns the previous sibling TreeItem in the tree or a [code]null[/code] " +"object if there is none." +msgstr "" +"Повертає попередній брат TreeItem у дереві або об’єкт [code]null[/code], якщо " +"його немає." + msgid "" "Returns the previous TreeItem in the tree (in the context of a depth-first " "search) or a [code]null[/code] object if there is none.\n" @@ -147224,6 +182059,16 @@ msgstr "" msgid "Selects the given [param column]." msgstr "Виберіть задану [параметр]." +msgid "" +"Sets the given column's auto translate mode to [param mode].\n" +"All columns use [constant Node.AUTO_TRANSLATE_MODE_INHERIT] by default, which " +"uses the same auto translate mode as the [Tree] itself." +msgstr "" +"Встановлює режим автоматичного перекладу даного стовпця на [param mode].\n" +"Усі стовпці за замовчуванням використовують [constant Node." +"AUTO_TRANSLATE_MODE_INHERIT], який використовує той самий режим автоматичного " +"перекладу, що й саме [Дерево]." + msgid "" "Sets the autowrap mode in the given [param column]. If set to something other " "than [constant TextServer.AUTOWRAP_OFF], the text gets wrapped inside the " @@ -147361,6 +182206,17 @@ msgstr "" "Якщо [param ввімкнути] [code]true[/code], надана [param стовпчик] " "розширюється праворуч." +msgid "" +"Sets the given cell's icon [Texture2D]. If the cell is in [constant " +"CELL_MODE_ICON] mode, the icon is displayed in the center of the cell. " +"Otherwise, the icon is displayed before the cell's text. [constant " +"CELL_MODE_RANGE] does not display an icon." +msgstr "" +"Встановлює піктограму заданої клітинки [Texture2D]. Якщо клітинка знаходиться " +"в режимі [постійний CELL_MODE_ICON], піктограма відображається в центрі " +"клітинки. В іншому випадку піктограма відображається перед текстом клітинки. " +"[константа CELL_MODE_RANGE] не відображає значок." + msgid "" "Sets the maximum allowed width of the icon in the given [param column]. This " "limit is applied on top of the default size of the icon and on top of " @@ -147375,6 +182231,15 @@ msgstr "" msgid "Modulates the given column's icon with [param modulate]." msgstr "Модулює задану іконку стовпчика з [param modulate]." +msgid "" +"Sets the given cell's icon overlay [Texture2D]. The cell has to be in " +"[constant CELL_MODE_ICON] mode, and icon has to be set. Overlay is drawn on " +"top of icon, in the bottom left corner." +msgstr "" +"Встановлює накладання піктограм даної комірки [Texture2D]. Комірка має бути в " +"режимі [постійний CELL_MODE_ICON], а значок має бути встановлено. Оверлей " +"малюється поверх значка, у нижньому лівому куті." + msgid "Sets the given column's icon's texture region." msgstr "Встановлює фактурну область даної колони." @@ -147484,6 +182349,26 @@ msgstr "" "Якщо [code]true[/code], то [TreeItem] видно (за замовчуванням).\n" "Зауважте, що якщо [TreeItem] не буде видно, жоден з його дітей буде видно." +msgid "" +"Cell shows a string label, optionally with an icon. When editable, the text " +"can be edited using a [LineEdit], or a [TextEdit] popup if [method " +"set_edit_multiline] is used." +msgstr "" +"У клітинці відображається мітка рядка, необов’язково з піктограмою. Коли " +"текст доступний для редагування, його можна редагувати за допомогою " +"[LineEdit] або спливаючого вікна [TextEdit], якщо використовується [метод " +"set_edit_multiline]." + +msgid "" +"Cell shows a checkbox, optionally with text and an icon. The checkbox can be " +"pressed, released, or indeterminate (via [method set_indeterminate]). The " +"checkbox can't be clicked unless the cell is editable." +msgstr "" +"У комірці відображається прапорець, необов’язково з текстом і піктограмою. " +"Прапорець можна натиснути, відпустити або встановити невизначений (через " +"[метод set_indeterminate]). Не можна клацнути прапорцем, якщо клітинку не " +"можна редагувати." + msgid "" "Cell shows a numeric range. When editable, it can be edited using a range " "slider. Use [method set_range] to set the value and [method set_range_config] " @@ -147499,6 +182384,13 @@ msgstr "" "призначаєте текст [метод]. Окремі параметри з комою, наприклад " "[code]\"Option1,Option2,Option3\"[/code]." +msgid "" +"Cell shows an icon. It can't be edited nor display text. The icon is always " +"centered within the cell." +msgstr "" +"У клітинці відображається значок. Його не можна ні редагувати, ні відображати " +"текст. Піктограма завжди знаходиться в центрі клітинки." + msgid "" "Cell shows as a clickable button. It will display an arrow similar to " "[OptionButton], but doesn't feature a dropdown (for that you can use " @@ -147559,6 +182451,17 @@ msgstr "" "бути встановлено до [code]false[/code] для прискорення генерації і " "рендерингу, коли ковпачок ніколи не бачиться камерою." +msgid "" +"Determines the radius of the tube along its length. The radius of a " +"particular section ring is obtained by multiplying the baseline [member " +"radius] by the value of this curve at the given distance. For values smaller " +"than [code]0[/code], the faces will be inverted. Should be a unit [Curve]." +msgstr "" +"Визначає радіус труби по її довжині. Радіус певного перетинного кільця " +"отримується шляхом множення базової лінії [радіуса елемента] на значення цієї " +"кривої на даній відстані. Для значень, менших за [code]0[/code], грані будуть " +"інвертовані. Має бути одиницею [Крива]." + msgid "" "The number of sides on the tube. For example, a value of [code]5[/code] means " "the tube will be pentagonal. Higher values result in a more detailed tube at " @@ -147596,6 +182499,285 @@ msgstr "" "Легкий об'єкт, який використовується для універсальної анімації через скрипт, " "використовуючи [Tweener]s." +msgid "" +"Tweens are mostly useful for animations requiring a numerical property to be " +"interpolated over a range of values. The name [i]tween[/i] comes from [i]in-" +"betweening[/i], an animation technique where you specify [i]keyframes[/i] and " +"the computer interpolates the frames that appear between them. Animating " +"something with a [Tween] is called tweening.\n" +"[Tween] is more suited than [AnimationPlayer] for animations where you don't " +"know the final values in advance. For example, interpolating a dynamically-" +"chosen camera zoom value is best done with a [Tween]; it would be difficult " +"to do the same thing with an [AnimationPlayer] node. Tweens are also more " +"light-weight than [AnimationPlayer], so they are very much suited for simple " +"animations or general tasks that don't require visual tweaking provided by " +"the editor. They can be used in a \"fire-and-forget\" manner for some logic " +"that normally would be done by code. You can e.g. make something shoot " +"periodically by using a looped [CallbackTweener] with a delay.\n" +"A [Tween] can be created by using either [method SceneTree.create_tween] or " +"[method Node.create_tween]. [Tween]s created manually (i.e. by using " +"[code]Tween.new()[/code]) are invalid and can't be used for tweening values.\n" +"A tween animation is created by adding [Tweener]s to the [Tween] object, " +"using [method tween_property], [method tween_interval], [method " +"tween_callback] or [method tween_method]:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var tween = get_tree().create_tween()\n" +"tween.tween_property($Sprite, \"modulate\", Color.RED, 1)\n" +"tween.tween_property($Sprite, \"scale\", Vector2(), 1)\n" +"tween.tween_callback($Sprite.queue_free)\n" +"[/gdscript]\n" +"[csharp]\n" +"Tween tween = GetTree().CreateTween();\n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"modulate\", Colors.Red, 1.0f);\n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"scale\", Vector2.Zero, 1.0f);\n" +"tween.TweenCallback(Callable.From(GetNode(\"Sprite\").QueueFree));\n" +"[/csharp]\n" +"[/codeblocks]\n" +"This sequence will make the [code]$Sprite[/code] node turn red, then shrink, " +"before finally calling [method Node.queue_free] to free the sprite. " +"[Tweener]s are executed one after another by default. This behavior can be " +"changed using [method parallel] and [method set_parallel].\n" +"When a [Tweener] is created with one of the [code]tween_*[/code] methods, a " +"chained method call can be used to tweak the properties of this [Tweener]. " +"For example, if you want to set a different transition type in the above " +"example, you can use [method set_trans]:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var tween = get_tree().create_tween()\n" +"tween.tween_property($Sprite, \"modulate\", Color.RED, 1).set_trans(Tween." +"TRANS_SINE)\n" +"tween.tween_property($Sprite, \"scale\", Vector2(), 1).set_trans(Tween." +"TRANS_BOUNCE)\n" +"tween.tween_callback($Sprite.queue_free)\n" +"[/gdscript]\n" +"[csharp]\n" +"Tween tween = GetTree().CreateTween();\n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"modulate\", Colors.Red, 1.0f)." +"SetTrans(Tween.TransitionType.Sine);\n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"scale\", Vector2.Zero, 1.0f)." +"SetTrans(Tween.TransitionType.Bounce);\n" +"tween.TweenCallback(Callable.From(GetNode(\"Sprite\").QueueFree));\n" +"[/csharp]\n" +"[/codeblocks]\n" +"Most of the [Tween] methods can be chained this way too. In the following " +"example the [Tween] is bound to the running script's node and a default " +"transition is set for its [Tweener]s:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var tween = get_tree().create_tween().bind_node(self).set_trans(Tween." +"TRANS_ELASTIC)\n" +"tween.tween_property($Sprite, \"modulate\", Color.RED, 1)\n" +"tween.tween_property($Sprite, \"scale\", Vector2(), 1)\n" +"tween.tween_callback($Sprite.queue_free)\n" +"[/gdscript]\n" +"[csharp]\n" +"var tween = GetTree().CreateTween().BindNode(this).SetTrans(Tween." +"TransitionType.Elastic);\n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"modulate\", Colors.Red, 1.0f);\n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"scale\", Vector2.Zero, 1.0f);\n" +"tween.TweenCallback(Callable.From(GetNode(\"Sprite\").QueueFree));\n" +"[/csharp]\n" +"[/codeblocks]\n" +"Another interesting use for [Tween]s is animating arbitrary sets of objects:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var tween = create_tween()\n" +"for sprite in get_children():\n" +" tween.tween_property(sprite, \"position\", Vector2(0, 0), 1)\n" +"[/gdscript]\n" +"[csharp]\n" +"Tween tween = CreateTween();\n" +"foreach (Node sprite in GetChildren())\n" +" tween.TweenProperty(sprite, \"position\", Vector2.Zero, 1.0f);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"In the example above, all children of a node are moved one after another to " +"position (0, 0).\n" +"You should avoid using more than one [Tween] per object's property. If two or " +"more tweens animate one property at the same time, the last one created will " +"take priority and assign the final value. If you want to interrupt and " +"restart an animation, consider assigning the [Tween] to a variable:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var tween\n" +"func animate():\n" +" if tween:\n" +" tween.kill() # Abort the previous animation.\n" +" tween = create_tween()\n" +"[/gdscript]\n" +"[csharp]\n" +"private Tween _tween;\n" +"\n" +"public void Animate()\n" +"{\n" +" if (_tween != null)\n" +" _tween.Kill(); // Abort the previous animation\n" +" _tween = CreateTween();\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"Some [Tweener]s use transitions and eases. The first accepts a [enum " +"TransitionType] constant, and refers to the way the timing of the animation " +"is handled (see [url=https://easings.net/]easings.net[/url] for some " +"examples). The second accepts an [enum EaseType] constant, and controls where " +"the [code]trans_type[/code] is applied to the interpolation (in the " +"beginning, the end, or both). If you don't know which transition and easing " +"to pick, you can try different [enum TransitionType] constants with [constant " +"EASE_IN_OUT], and use the one that looks best.\n" +"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" +"tween_cheatsheet.webp]Tween easing and transition types cheatsheet[/url]\n" +"[b]Note:[/b] Tweens are not designed to be reused and trying to do so results " +"in an undefined behavior. Create a new Tween for each animation and every " +"time you replay an animation from start. Keep in mind that Tweens start " +"immediately, so only create a Tween when you want to start animating.\n" +"[b]Note:[/b] The tween is processed after all of the nodes in the current " +"frame, i.e. node's [method Node._process] method would be called before the " +"tween (or [method Node._physics_process] depending on the value passed to " +"[method set_process_mode])." +msgstr "" +"Анімації здебільшого корисні для анімацій, які вимагають інтерполяції " +"числової властивості в діапазоні значень. Назва [i]tween[/i] походить від " +"[i]in-betweening[/i], техніки анімації, де ви вказуєте [i]ключові кадри[/i], " +"а комп’ютер інтерполює кадри, що з’являються між ними. Анімація чогось за " +"допомогою [Tween] називається анімацією.\n" +"[Tween] більше підходить, ніж [AnimationPlayer], для анімацій, де ви не " +"знаєте остаточні значення заздалегідь. Наприклад, інтерполяцію динамічно " +"вибраного значення масштабу камери найкраще виконувати за допомогою [Tween]; " +"було б важко зробити те саме з вузлом [AnimationPlayer]. Анімації також " +"легші, ніж [AnimationPlayer], тому вони дуже добре підходять для простих " +"анімацій або загальних завдань, які не потребують візуальних налаштувань, " +"наданих редактором. Їх можна використовувати у спосіб «запустив і забув» для " +"певної логіки, яка зазвичай виконується кодом. Ви можете напр. змусити щось " +"періодично знімати, використовуючи зациклений [CallbackTweener] із " +"затримкою.\n" +"[Tween] можна створити за допомогою [методу SceneTree.create_tween] або " +"[методу Node.create_tween]. [Tween], створені вручну (тобто за допомогою " +"[code]Tween.new()[/code]), недійсні та не можуть використовуватися для " +"значень анімації.\n" +"Анімація анімації створюється шляхом додавання [Tweener] до об’єкта [Tween] " +"за допомогою [method tween_property], [method tween_interval], [method " +"tween_callback] або [method tween_method]:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var tween = get_tree().create_tween()\n" +"tween.tween_property($Sprite, \"modulate\", Color.RED, 1)\n" +"tween.tween_property($Sprite, \"scale\", Vector2(), 1)\n" +"tween.tween_callback($Sprite.queue_free)\n" +"[/gdscript]\n" +"[csharp]\n" +"Tween tween = GetTree().CreateTween();\n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"modulate\", Colors.Red, 1.0f);\n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"scale\", Vector2.Zero, 1.0f);\n" +"tween.TweenCallback(Callable.From(GetNode(\"Sprite\").QueueFree));\n" +"[/csharp]\n" +"[/codeblocks]\n" +"Ця послідовність змусить вузол [code]$Sprite[/code] стати червоним, а потім " +"зменшитися, перш ніж нарешті викликати [method Node.queue_free], щоб " +"звільнити спрайт. [Tweener]s виконуються один за одним за замовчуванням. Цю " +"поведінку можна змінити за допомогою [method parallel] і [method " +"set_parallel].\n" +"Коли [Tweener] створюється за допомогою одного з методів [code]tween_*[/" +"code], для налаштування властивостей цього [Tweener] можна використовувати " +"ланцюговий виклик методу. Наприклад, якщо ви хочете встановити інший тип " +"переходу у наведеному вище прикладі, ви можете використати [метод " +"set_trans]:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var tween = get_tree().create_tween()\n" +"tween.tween_property($Sprite, \"modulate\", Color.RED, 1).set_trans(Tween." +"TRANS_SINE)\n" +"tween.tween_property($Sprite, \"scale\", Vector2(), 1).set_trans(Tween." +"TRANS_BOUNCE)\n" +"tween.tween_callback($Sprite.queue_free)\n" +"[/gdscript]\n" +"[csharp]\n" +"Tween tween = GetTree().CreateTween();\n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"modulate\", Colors.Red, 1.0f)." +"SetTrans(Tween.TransitionType.Sine);\n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"scale\", Vector2.Zero, 1.0f)." +"SetTrans(Tween.TransitionType.Bounce);\n" +"tween.TweenCallback(Callable.From(GetNode(\"Sprite\").QueueFree));\n" +"[/csharp]\n" +"[/codeblocks]\n" +"Більшість методів [Tween] також можна з’єднати таким чином. У наступному " +"прикладі [Tween] прив’язано до вузла запущеного сценарію, а для його " +"[Tweener]s встановлено перехід за замовчуванням:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var tween = get_tree().create_tween().bind_node(self).set_trans(Tween." +"TRANS_ELASTIC)\n" +"tween.tween_property($Sprite, \"modulate\", Color.RED, 1)\n" +"tween.tween_property($Sprite, \"scale\", Vector2(), 1)\n" +"tween.tween_callback($Sprite.queue_free)\n" +"[/gdscript]\n" +"[csharp]\n" +"var tween = GetTree().CreateTween().BindNode(this).SetTrans(Tween." +"TransitionType.Elastic);\n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"modulate\", Colors.Red, 1.0f);\n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"scale\", Vector2.Zero, 1.0f);\n" +"tween.TweenCallback(Callable.From(GetNode(\"Sprite\").QueueFree));\n" +"[/csharp]\n" +"[/codeblocks]\n" +"Іншим цікавим використанням [Tween] є анімація довільних наборів об’єктів:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var tween = create_tween()\n" +"для спрайту в get_children():\n" +" tween.tween_property(s, \"position\", Vector2(0, 0), 1)\n" +"[/gdscript]\n" +"[csharp]\n" +"Анімація анімації = CreateTween();\n" +"foreach (sprite node в GetChildren())\n" +" tween.TweenProperty(sprite, \"position\", Vector2.Zero, 1.0f);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"У наведеному вище прикладі всі дочірні елементи вузла переміщуються один за " +"одним у позицію (0, 0).\n" +"Слід уникати використання більше одного [Tween] для властивості об’єкта. Якщо " +"два або більше анімацій анімують одну властивість одночасно, остання створена " +"матиме пріоритет і призначатиме остаточне значення. Якщо ви хочете перервати " +"та перезапустити анімацію, розгляньте можливість призначення [Tween] " +"змінній:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var animate\n" +"func animate():\n" +" if tween:\n" +" tween.kill() # Перервати попередню анімацію.\n" +" tween = create_tween()\n" +"[/gdscript]\n" +"[csharp]\n" +"private Tween _tween;\n" +"\n" +"public void Animate()\n" +"{\n" +" if (_tween != null)\n" +" _tween.Kill(); // Перервати попередню анімацію\n" +" _tween = CreateTween();\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"Деякі [Tweener] використовують переходи та полегшення. Перший приймає " +"константу [enum TransitionType] і вказує на спосіб обробки часу анімації " +"(перегляньте [url=https://easings.net/]easings.net[/url] для деяких " +"прикладів). Другий приймає константу [enum EaseType] і контролює, де " +"[code]trans_type[/code] застосовуватиметься до інтерполяції (на початку, у " +"кінці або в обох). Якщо ви не знаєте, який перехід і спрощення обрати, ви " +"можете спробувати різні константи [enum TransitionType] із [константою " +"EASE_IN_OUT] і використати ту, яка виглядає найкраще.\n" +"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" +"tween_cheatsheet.webp]Шпаргалка пом’якшення Tween і типів переходів[/url]\n" +"[b]Примітка:[/b] Tweens не призначені для повторного використання, і спроба " +"зробити це призводить до невизначеної поведінки. Створюйте новий Tween для " +"кожної анімації та кожного разу, коли ви відтворюєте анімацію спочатку. Майте " +"на увазі, що анімація запускається негайно, тому створюйте анімацію лише " +"тоді, коли ви хочете розпочати анімацію.\n" +"[b]Примітка.[/b] Анімація обробляється після всіх вузлів у поточному кадрі, " +"тобто метод [method Node._process] вузла буде викликаний перед анімацією (або " +"[method Node._physics_process] залежно від значення, переданого в [method " +"set_process_mode])." + msgid "" "Binds this [Tween] with the given [param node]. [Tween]s are processed " "directly by the [SceneTree], so they run independently of the animated nodes. " @@ -147633,21 +182815,23 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"[code]true[/code].\n" -"[блоки коду]\n" -"[видання]\n" -"var tween = Створення_tween().set_parallel(true)\n" -"tween.tween_property(...)\n" -"tween.tween_property(...) # Триває паралельно з вище.\n" -"tween.chain().tween_property(...) # Запустіть після закінчення двох.\n" -"[/gdscript]\n" -"[csharp]\n" -"Tween tween = СтворитиTween().SetParallel(true);\n" -"твіт. TweenProperty(...);\n" -"твіт. TweenProperty(...); (Українська) Пройдемо паралельно з вище.\n" -"tween.Chain(). TweenProperty(...); (Українська) Пройдемо після закінчення " -"двох.\n" -"[/csharp]\n" +"Використовується для об’єднання двох [Tweener] після того, як [метод " +"set_parallel] викликається з [code]true[/code]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var tween = create_tween().set_parallel(true) \n" +"tween.tween_property(...) \n" +"tween.tween_property(...) # Буде працювати паралельно з вищевказаним. \n" +"tween.chain().tween_property(...) # Запуститься після завершення двох " +"вищевказаних. \n" +"[/gdscript] \n" +"[csharp] \n" +"Tween tween = CreateTween().SetParallel(true); \n" +"tween.TweenProperty(...); \n" +"tween.TweenProperty(...); // Виконуватиметься паралельно з вищезазначеним. \n" +"tween.Chain().TweenProperty(...); // Запуститься після завершення двох " +"вищезазначених. \n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -147744,6 +182928,44 @@ msgstr "" msgid "Aborts all tweening operations and invalidates the [Tween]." msgstr "Визначте всі операції та недійсні дії [Подивитися]." +msgid "" +"Makes the next [Tweener] run parallelly to the previous one.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var tween = create_tween()\n" +"tween.tween_property(...)\n" +"tween.parallel().tween_property(...)\n" +"tween.parallel().tween_property(...)\n" +"[/gdscript]\n" +"[csharp]\n" +"Tween tween = CreateTween();\n" +"tween.TweenProperty(...);\n" +"tween.Parallel().TweenProperty(...);\n" +"tween.Parallel().TweenProperty(...);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"All [Tweener]s in the example will run at the same time.\n" +"You can make the [Tween] parallel by default by using [method set_parallel]." +msgstr "" +"Змушує наступний [Tweener] працювати паралельно з попереднім. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var tween = create_tween() \n" +"tween.tween_property(...) \n" +"tween.parallel().tween_property(...) \n" +"tween.parallel().tween_property(...) \n" +"[/gdscript] \n" +"[csharp] \n" +"Tween tween = CreateTween(); \n" +"tween.TweenProperty(...); \n" +"tween.Parallel().TweenProperty(...); \n" +"tween.Parallel().TweenProperty(...); \n" +"[/csharp] \n" +"[/codeblocks] \n" +"Усі [Tweener] у прикладі запускатимуться одночасно. \n" +"Ви можете зробити [Tween] паралельним за замовчуванням за допомогою [method " +"set_parallel]." + msgid "" "Pauses the tweening. The animation can be resumed by using [method play].\n" "[b]Note:[/b] If a Tween is paused and not bound to any node, it will exist " @@ -147760,6 +182982,41 @@ msgstr "" msgid "Resumes a paused or stopped [Tween]." msgstr "Резюме паузу або зупинена [Tween]." +msgid "" +"Sets the default ease type for [PropertyTweener]s and [MethodTweener]s " +"appended after this method.\n" +"Before this method is called, the default ease type is [constant " +"EASE_IN_OUT].\n" +"[codeblock]\n" +"var tween = create_tween()\n" +"tween.tween_property(self, \"position\", Vector2(300, 0), 0.5) # Uses " +"EASE_IN_OUT.\n" +"tween.set_ease(Tween.EASE_IN)\n" +"tween.tween_property(self, \"rotation_degrees\", 45.0, 0.5) # Uses EASE_IN.\n" +"[/codeblock]" +msgstr "" +"Встановлює тип полегшення за замовчуванням для [PropertyTweener] і " +"[MethodTweener], доданих після цього методу. \n" +"Перед викликом цього методу типовим типом спрощення є [константа " +"EASE_IN_OUT]. \n" +"[codeblock] \n" +"var tween = create_tween() \n" +"tween.tween_property(self, \"position\", Vector2(300, 0), 0.5) # Використовує " +"EASE_IN_OUT. \n" +"tween.set_ease(Tween.EASE_IN) \n" +"tween.tween_property(self, \"rotation_degrees\", 45.0, 0.5) # Використовує " +"EASE_IN. \n" +"[/codeblock]" + +msgid "" +"If [param ignore] is [code]true[/code], the tween will ignore [member Engine." +"time_scale] and update with the real, elapsed time. This affects all " +"[Tweener]s and their delays. Default value is [code]false[/code]." +msgstr "" +"Якщо [param ignore] має значення [code]true[/code], анімація ігноруватиме " +"[member Engine.time_scale] і оновлюватиме реальний час, що минув. Це впливає " +"на всі [Tweener] і їх затримки. Значення за замовчуванням [code]false[/code]." + msgid "" "Sets the number of times the tweening sequence will be repeated, i.e. " "[code]set_loops(2)[/code] will run the animation twice.\n" @@ -147797,15 +183054,15 @@ msgid "" "with the position tweener.\n" "[/codeblock]" msgstr "" -"Якщо [param паралельно] є [code]true[/code], то [Tweener] застосував після " -"цього методу одночасно за замовчуванням, а не послідовно.\n" -"[b]Note:[/b] Так само, як і з [методом паралелем], твітер доданий прямо до " -"цього способу також буде частиною паралельного кроку.\n" -"[блокування коду]\n" -"tween.tween_property(сама, \"положення\", Vector2(300, 0), 0.5)\n" -"tween.set_parallel()\n" -"tween.tween_property(self, \"мозол\", колір. ЗЕЛЕНИЙ, 0.5) # Виконується " -"разом з позицією твінера.\n" +"Якщо [param parallel] має значення [code]true[/code], [Tweener], додані після " +"цього методу, за умовчанням запускатимуться одночасно, а не послідовно. \n" +"[b]Примітка: [/b] Так само, як і [method parallel], твін, доданий " +"безпосередньо перед цим методом, також буде частиною паралельного кроку. \n" +"[codeblock] \n" +"tween.tween_property(self, \"position\", Vector2(300, 0), 0,5) \n" +"tween.set_parallel() \n" +"tween.tween_property(self, \"modulate\", Color.GREEN, 0.5) # Виконується " +"разом із аніматором позиції. \n" "[/codeblock]" msgid "" @@ -147830,6 +183087,82 @@ msgid "" "Scales the speed of tweening. This affects all [Tweener]s and their delays." msgstr "Ваги швидкості твітіння. Це впливає на всі [Tweener] і їх затримки." +msgid "" +"Sets the default transition type for [PropertyTweener]s and [MethodTweener]s " +"appended after this method.\n" +"Before this method is called, the default transition type is [constant " +"TRANS_LINEAR].\n" +"[codeblock]\n" +"var tween = create_tween()\n" +"tween.tween_property(self, \"position\", Vector2(300, 0), 0.5) # Uses " +"TRANS_LINEAR.\n" +"tween.set_trans(Tween.TRANS_SINE)\n" +"tween.tween_property(self, \"rotation_degrees\", 45.0, 0.5) # Uses " +"TRANS_SINE.\n" +"[/codeblock]" +msgstr "" +"Встановлює типовий тип переходу для [PropertyTweener] і [MethodTweener], " +"доданих після цього методу. \n" +"Перед викликом цього методу типовим типом переходу є [константа " +"TRANS_LINEAR]. \n" +"[codeblock] \n" +"var tween = create_tween() \n" +"tween.tween_property(self, \"position\", Vector2(300, 0), 0.5) # Використовує " +"TRANS_LINEAR. \n" +"tween.set_trans(Tween.TRANS_SINE) \n" +"tween.tween_property(self, \"rotation_degrees\", 45.0, 0.5) # Використовує " +"TRANS_SINE. \n" +"[/codeblock]" + +msgid "" +"Stops the tweening and resets the [Tween] to its initial state. This will not " +"remove any appended [Tweener]s.\n" +"[b]Note:[/b] This does [i]not[/i] reset targets of [PropertyTweener]s to " +"their values when the [Tween] first started.\n" +"[codeblock]\n" +"var tween = create_tween()\n" +"\n" +"# Will move from 0 to 500 over 1 second.\n" +"position.x = 0.0\n" +"tween.tween_property(self, \"position:x\", 500, 1.0)\n" +"\n" +"# Will be at (about) 250 when the timer finishes.\n" +"await get_tree().create_timer(0.5).timeout\n" +"\n" +"# Will now move from (about) 250 to 500 over 1 second,\n" +"# thus at half the speed as before.\n" +"tween.stop()\n" +"tween.play()\n" +"[/codeblock]\n" +"[b]Note:[/b] If a Tween is stopped and not bound to any node, it will exist " +"indefinitely until manually started or invalidated. If you lose a reference " +"to such Tween, you can retrieve it using [method SceneTree." +"get_processed_tweens]." +msgstr "" +"Зупиняє анімацію та скидає [Анімація] до початкового стану. Це не призведе до " +"видалення будь-яких доданих [Tweener]. \n" +"[b]Примітка.[/b] Це [i]не[/i] скидає цілі [PropertyTweener] до їхніх значень " +"під час першого запуску [Tween]. \n" +"[codeblock] \n" +"var tween = create_tween() \n" +"\n" +"# Зміниться від 0 до 500 протягом 1 секунди. \n" +"position.x = 0,0 \n" +"tween.tween_property(self, \"position:x\", 500, 1.0) \n" +"\n" +"# Коли таймер закінчиться, буде (приблизно) 250. \n" +"очікувати get_tree().create_timer(0.5).timeout \n" +"\n" +"# Тепер зміниться від (приблизно) 250 до 500 протягом 1 секунди, \n" +"# таким чином на половині швидкості, ніж раніше. \n" +"tween.stop() \n" +"tween.play() \n" +"[/codeblock] \n" +"[b]Примітка.[/b] Якщо Tween зупинено та не прив’язано до жодного вузла, він " +"існуватиме необмежений час, доки не буде запущено вручну або не стане " +"недійсним. Якщо ви втратите посилання на такий Tween, ви можете отримати його " +"за допомогою [методу SceneTree.get_processed_tweens]." + msgid "" "Creates and appends a [CallbackTweener]. This method can be used to call an " "arbitrary method in any object. Use [method Callable.bind] to bind additional " @@ -147862,36 +183195,36 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Створює та доповнює [CallbackTweener]. Цей метод можна використовувати для " -"виклику довільного способу в будь-якому об'єкті. Використовуйте [method " -"Callable.bind], щоб зв'язати додаткові аргументи для виклику.\n" -"[b]Example:[/b] Об'єкт, який зберігає зйомки кожні 1 секунду:\n" -"[блоки коду]\n" -"[видання]\n" -"var tween = get_tree().create_tween().set_loops())\n" -"tween.tween_callback(shoot).set_delay(1)\n" -"[/gdscript]\n" -"[csharp]\n" -"Tween tween = GetTree().CreateTween().SetLoops();\n" -"tween.TweenCallback(Callable.З альбому(Shoot)).SetDelay(1.0f);\n" -"[/csharp]\n" -"[/codeblocks]\n" -"[b]Example:[/b] Увімкніть спрайт червоний і потім синій, з 2 другою " -"затримкою:\n" -"[блоки коду]\n" -"[видання]\n" -"var tween = get_tree().create_tween()\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"[/gdscript]\n" -"[csharp]\n" -"Tween tween = GetTree().CreateTween();\n" -"Sprite2D спрайт = GetNode <Sprite2D>(\"Sprite\");\n" -"tween.TweenCallback(Callable.З(() => sprite.Modulate = Кольори.Red))." -"SetDelay(2.0f);\n" -"tween.TweenCallback(Callable.З(() => sprite.Modulate = Кольори.синій))." -"SetDelay(2.0f);\n" -"[/csharp]\n" +"Створює та додає [CallbackTweener]. Цей метод можна використовувати для " +"виклику довільного методу в будь-якому об’єкті. Використовуйте [метод " +"Callable.bind], щоб зв’язати додаткові аргументи для виклику. \n" +"[b]Приклад:[/b] Об’єкт, який стріляє кожну секунду: \n" +"[codeblocks] \n" +"[gdscript] \n" +"var tween = get_tree().create_tween().set_loops() \n" +"tween.tween_callback(shoot).set_delay(1) \n" +"[/gdscript] \n" +"[csharp] \n" +"Tween tween = GetTree().CreateTween().SetLoops(); \n" +"tween.TweenCallback(Callable.From(Shoot)).SetDelay(1.0f); \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Приклад: [/b] Перетворення спрайту на червоний, а потім на синій із " +"затримкою 2 секунди: \n" +"[codeblocks] \n" +"[gdscript] \n" +"var tween = get_tree().create_tween() \n" +"tween.tween_callback($Sprite.set_modulate.bind(Color.RED)).set_delay(2) \n" +"tween.tween_callback($Sprite.set_modulate.bind(Color.BLUE)).set_delay(2) \n" +"[/gdscript] \n" +"[csharp] \n" +"Tween tween = GetTree().CreateTween(); \n" +"Sprite2D sprite = GetNode<Sprite2D>(\"Спрайт\"); \n" +"tween.TweenCallback(Callable.From(() => sprite.Modulate = Colors.Red))." +"SetDelay(2.0f); \n" +"tween.TweenCallback(Callable.From(() => sprite.Modulate = Colors.Blue))." +"SetDelay(2.0f); \n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -147938,46 +183271,47 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Створює та доповнює [IntervalTweener]. Цей метод може бути використаний для " -"створення затримок в анімації твіена, як альтернатива використання затримки в " -"інших [Tweener]s, або коли немає анімації (в якому випадку [Tween] діє як " -"таймер). [param час] - довжина інтервалу, в секундах.\n" -"[b]Example:[/b] Створення інтервалу у виконанні коду:\n" -"[блоки коду]\n" -"[видання]\n" -"# ... деякі коди\n" -"Очікується створення_tween().tween_interval(2).ova\n" -"# ... докладніше\n" -"[/gdscript]\n" -"[csharp]\n" -"// ... деякі коди\n" -"чекає ToSignal(CreateTween(). TweenInterval(2.0f), Tween.SignalName.Fined);\n" -"// докладніше\n" -"[/csharp]\n" -"[/codeblocks]\n" -"[b]Example:[/b] Створення об'єкта, що рухається назад і вперед і стрибає " -"кожні кілька секунд:\n" -"[блоки коду]\n" -"[видання]\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"tween.tween_property($Sprite, \"положення:x\", 200.0, 1).as_relative()\n" -"tween.tween_callback(jump)\n" -"tween.tween_interval(2)\n" -"tween.tween_property($Sprite, \"положення:x\", -200.0, 1).as_relative()\n" -"tween.tween_callback(jump)\n" -"tween.tween_interval(2)\n" -"[/gdscript]\n" -"[csharp]\n" -"Tween tween = СтворенняTween().SetLoops();\n" -"твіт. TweenProperty(GetNode(\"Sprite\"), \"положення:x\", 200.0f, 1.0f." -"AsRelative();\n" -"tween.TweenCallback(Callable.З альбому(Jump));\n" -"твіт. TweenInterval(2.0f);\n" -"твіт. TweenProperty(GetNode(\"Sprite\"), \"положення:x\", -200.0f, 1.0f." -"AsRelative();\n" -"tween.TweenCallback(Callable.З альбому(Jump));\n" -"твіт. TweenInterval(2.0f);\n" -"[/csharp]\n" +"Створює та додає [IntervalTweener]. Цей метод можна використовувати для " +"створення затримок в анімації анімації, як альтернативу використанню затримки " +"в інших [Tweener], або коли немає анімації (у цьому випадку [Tween] діє як " +"таймер). [param time] — це довжина інтервалу в секундах. \n" +"[b]Приклад:[/b] Створення інтервалу у виконанні коду: \n" +"[codeblocks] \n" +"[gdscript] \n" +"# ... деякий код \n" +"await create_tween().tween_interval(2).finished \n" +"# ... більше коду \n" +"[/gdscript] \n" +"[csharp] \n" +"// ... деякий код \n" +"await ToSignal(CreateTween().TweenInterval(2.0f), Tween.SignalName." +"Finished); \n" +"// ... більше коду \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Приклад: [/b] Створення об’єкта, який рухається вперед-назад і стрибає " +"кожні кілька секунд: \n" +"[codeblocks] \n" +"[gdscript] \n" +"var tween = create_tween().set_loops() \n" +"tween.tween_property($Sprite, \"position:x\", 200.0, 1).as_relative() \n" +"tween.tween_callback(стрибок) \n" +"tween.tween_interval(2) \n" +"tween.tween_property($Sprite, \"position:x\", -200.0, 1).as_relative() \n" +"tween.tween_callback(стрибок) \n" +"tween.tween_interval(2) \n" +"[/gdscript] \n" +"[csharp] \n" +"Tween tween = CreateTween().SetLoops(); \n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"position:x\", 200.0f, 1.0f)." +"AsRelative(); \n" +"tween.TweenCallback(Callable.From(Jump)); \n" +"tween.TweenInterval(2.0f); \n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"position:x\", -200.0f, 1.0f)." +"AsRelative(); \n" +"tween.TweenCallback(Callable.From(Jump)); \n" +"tween.TweenInterval(2.0f); \n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -148031,56 +183365,203 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Створює і додає [МетодТвеєр]. Цей метод схожий на поєднання [метод " -"tween_callback] і [метод tween_property]. Він викликає метод з часом, що " -"містить значення, що надається як аргумент. Вартість відправляється між " -"[парою з] і [паром до] протягом часу, зазначеного [парою тривалістю], за " -"секундами. Використовуйте [method Callable.bind], щоб зв'язати додаткові " -"аргументи для виклику. Ви можете використовувати [методметодметод Тевенер." -"set_ease] і [методметод Тевеньер.set_trans], щоб зменшити і перехід значення " -"або [методметод Тевенер.set_delay] для затримки твітіння.\n" -"[b]Example:[/b] Створення об'єкту 3D з одного точки до іншої точки:\n" -"[блоки коду]\n" -"[видання]\n" -"var tween = Створення_tween()\n" +"Створює та додає [MethodTweener]. Цей метод подібний до комбінації [method " +"tween_callback] і [method tween_property]. Він викликає метод з часом із " +"значенням анімації, наданим як аргумент. Значення змінюється між [param from] " +"і [param to] протягом часу, визначеного параметром [param duration], у " +"секундах. Використовуйте [метод Callable.bind], щоб зв’язати додаткові " +"аргументи для виклику. Ви можете використовувати [метод MethodTweener." +"set_ease] і [метод MethodTweener.set_trans], щоб налаштувати плавність і " +"перехід значення, або [метод MethodTweener.set_delay], щоб затримати " +"анімацію. \n" +"[b]Приклад: [/b] Змусити тривимірний об’єкт виглядати з однієї точки на " +"іншу: \n" +"[codeblocks] \n" +"[gdscript] \n" +"var tween = create_tween() \n" "tween.tween_method(look_at.bind(Vector3.UP), Vector3(-1, 0, -1), Vector3(1, " -"0, -1), # 1) Спосіб пошуку_at() приймає вектор як другий аргумент.\n" +"0, -1), 1) # Метод look_at() приймає вектор як другий аргумент. \n" +"[/gdscript] \n" +"[csharp] \n" +"Tween tween = CreateTween(); \n" +"tween.TweenMethod(Callable.From((Vector3 target) => LookAt(target, Vector3." +"Up)), new Vector3(-1.0f, 0.0f, -1.0f), new Vector3(1.0f, 0.0f, -1.0f), " +"1.0f); // Використовуйте лямбда-вирази для зв’язування додаткових аргументів " +"для виклику. \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Приклад:[/b] Встановлення тексту [Label] за допомогою проміжного методу та " +"після затримки: \n" +"[codeblocks] \n" +"[gdscript] \n" +"func _ready(): \n" +" var tween = create_tween() \n" +" tween.tween_method(set_label_text, 0, 10, 1).set_delay(1) \n" +"\n" +"func set_label_text(valve: int): \n" +" $Label.text = \"Підрахування\" + str(valve) \n" +"[/gdscript] \n" +"[csharp] \n" +"public override void _Ready() \n" +"{\n" +" base._Ready(); \n" +"\n" +" Tween tween = CreateTween(); \n" +" tween.TweenMethod(Callable.From<int>(SetLabelText), 0.0f, 10.0f, 1.0f)." +"SetDelay(1.0f); \n" +"}\n" +"\n" +"private void SetLabelText(int valve) \n" +"{\n" +" GetNode<Label>(\"Label\").Text = $\"Counting {value}\"; \n" +"}\n" +"[/csharp] \n" +"[/codeblocks]" + +msgid "" +"Creates and appends a [PropertyTweener]. This method tweens a [param " +"property] of an [param object] between an initial value and [param final_val] " +"in a span of time equal to [param duration], in seconds. The initial value by " +"default is the property's value at the time the tweening of the " +"[PropertyTweener] starts.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var tween = create_tween()\n" +"tween.tween_property($Sprite, \"position\", Vector2(100, 200), 1)\n" +"tween.tween_property($Sprite, \"position\", Vector2(200, 300), 1)\n" "[/gdscript]\n" "[csharp]\n" -"Tween tween = СтворенняTween();\n" -"твіт. TweenMethod(Callable.З((Vector3 ціль) => LookAt(target, Vector3.Up)), " -"новий Vector3(-1.0f, 0.0f, -1.0f), новий Vector3(1.0f, 0.0f, -1.0f), " -"1.0f); // Використовуйте лямбда, щоб зв'язати додаткові аргументи для " -"виклику.\n" +"Tween tween = CreateTween();\n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"position\", new Vector2(100.0f, " +"200.0f), 1.0f);\n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"position\", new Vector2(200.0f, " +"300.0f), 1.0f);\n" "[/csharp]\n" "[/codeblocks]\n" -"[b]Example:[/b] Налаштування тексту [Label], використовуючи проміжний метод і " -"після затримки:\n" -"[блоки коду]\n" -"[видання]\n" -"Func _ready():\n" -"var tween = Створення_tween()\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"\n" -"Функційний набір_label_text(значення: int):\n" -"$Label.text = \"Полювання\" + str(значення)\n" +"will move the sprite to position (100, 200) and then to (200, 300). If you " +"use [method PropertyTweener.from] or [method PropertyTweener.from_current], " +"the starting position will be overwritten by the given value instead. See " +"other methods in [PropertyTweener] to see how the tweening can be tweaked " +"further.\n" +"[b]Note:[/b] You can find the correct property name by hovering over the " +"property in the Inspector. You can also provide the components of a property " +"directly by using [code]\"property:component\"[/code] (eg. [code]position:x[/" +"code]), where it would only apply to that particular component.\n" +"[b]Example:[/b] Moving an object twice from the same position, with different " +"transition types:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var tween = create_tween()\n" +"tween.tween_property($Sprite, \"position\", Vector2.RIGHT * 300, 1)." +"as_relative().set_trans(Tween.TRANS_SINE)\n" +"tween.tween_property($Sprite, \"position\", Vector2.RIGHT * 300, 1)." +"as_relative().from_current().set_trans(Tween.TRANS_EXPO)\n" "[/gdscript]\n" "[csharp]\n" -"public override _Читати()\n" -"Довідник\n" -"base._Ready();\n" -"\n" -"Tween tween = СтворенняTween();\n" -"твіт. TweenMethod(Callable.З альбому<int>(SetLabelText), 0.0f, 10.0f, 1.0f)." -"SetDelay(1.0f);\n" -"Про нас\n" -"\n" -"приватний void SetLabelText (ціна значення)\n" -"Довідник\n" -"GetNode <Label>(\"Label\"). Текст = $\"Полювання {value}\";\n" -"Про нас\n" +"Tween tween = CreateTween();\n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"position\", Vector2.Right * " +"300.0f, 1.0f).AsRelative().SetTrans(Tween.TransitionType.Sine);\n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"position\", Vector2.Right * " +"300.0f, 1.0f).AsRelative().FromCurrent().SetTrans(Tween.TransitionType." +"Expo);\n" "[/csharp]\n" "[/codeblocks]" +msgstr "" +"Створює та додає [PropertyTweener]. Цей метод виконує анімацію [param " +"property] об’єкта [param] між початковим значенням і [param final_val] за " +"проміжок часу, рівний [param duration], у секундах. Початкове значення за " +"замовчуванням є значенням властивості на момент початку анімації " +"[PropertyTweener]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"var tween = create_tween() \n" +"tween.tween_property($Sprite, \"position\", Vector2(100, 200), 1) \n" +"tween.tween_property($Sprite, \"position\", Vector2(200, 300), 1) \n" +"[/gdscript] \n" +"[csharp] \n" +"Tween tween = CreateTween(); \n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"position\", new Vector2(100.0f, " +"200.0f), 1.0f); \n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"position\", new Vector2(200.0f, " +"300.0f), 1.0f); \n" +"[/csharp] \n" +"[/codeblocks] \n" +"перемістить спрайт у позицію (100, 200), а потім у (200, 300). Якщо ви " +"використовуєте [метод PropertyTweener.from] або [метод PropertyTweener." +"from_current], натомість початкову позицію буде перезаписано заданим " +"значенням. Перегляньте інші методи в [PropertyTweener], щоб дізнатися, як " +"можна налаштувати анімацію. \n" +"[b]Примітка.[/b] Ви можете знайти правильну назву властивості, навівши курсор " +"на властивість в інспекторі. Ви також можете надати компоненти властивості " +"безпосередньо за допомогою [code]\"property:component\"[/code] (наприклад, " +"[code]position:x[/code]), де це буде застосовано лише до цього конкретного " +"компонента. \n" +"[b]Приклад: [/b] Переміщення об’єкта двічі з однієї позиції з різними типами " +"переходів: \n" +"[codeblocks] \n" +"[gdscript] \n" +"var tween = create_tween() \n" +"tween.tween_property($Sprite, \"position\", Vector2.RIGHT * 300, 1)." +"as_relative().set_trans(Tween.TRANS_SINE) \n" +"tween.tween_property($Sprite, \"position\", Vector2.RIGHT * 300, 1)." +"as_relative().from_current().set_trans(Tween.TRANS_EXPO) \n" +"[/gdscript] \n" +"[csharp] \n" +"Tween tween = CreateTween(); \n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"position\", Vector2.Right * " +"300.0f, 1.0f).AsRelative().SetTrans(Tween.TransitionType.Sine); \n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"position\", Vector2.Right * " +"300.0f, 1.0f).AsRelative().FromCurrent().SetTrans(Tween.TransitionType." +"Expo); \n" +"[/csharp] \n" +"[/codeblocks]" + +msgid "" +"Creates and appends a [SubtweenTweener]. This method can be used to nest " +"[param subtween] within this [Tween], allowing for the creation of more " +"complex and composable sequences.\n" +"[codeblock]\n" +"# Subtween will rotate the object.\n" +"var subtween = create_tween()\n" +"subtween.tween_property(self, \"rotation_degrees\", 45.0, 1.0)\n" +"subtween.tween_property(self, \"rotation_degrees\", 0.0, 1.0)\n" +"\n" +"# Parent tween will execute the subtween as one of its steps.\n" +"var tween = create_tween()\n" +"tween.tween_property(self, \"position:x\", 500, 3.0)\n" +"tween.tween_subtween(subtween)\n" +"tween.tween_property(self, \"position:x\", 300, 2.0)\n" +"[/codeblock]\n" +"[b]Note:[/b] The methods [method pause], [method stop], and [method " +"set_loops] can cause the parent [Tween] to get stuck on the subtween step; " +"see the documentation for those methods for more information.\n" +"[b]Note:[/b] The pause and process modes set by [method set_pause_mode] and " +"[method set_process_mode] on [param subtween] will be overridden by the " +"parent [Tween]'s settings." +msgstr "" +"Створює та додає [SubtweenTweener]. Цей метод можна використовувати для " +"вкладення [param subtween] у цей [Tween], дозволяючи створювати більш складні " +"послідовності, які можна складати. \n" +"[codeblock] \n" +"# Subtween обертатиме об’єкт. \n" +"var subtween = create_tween() \n" +"subtween.tween_property(self, \"rotation_degrees\", 45.0, 1.0) \n" +"subtween.tween_property(self, \"rotation_degrees\", 0.0, 1.0) \n" +"\n" +"# Батьківський анімаційний проміжок виконає підпроміжок як один із своїх " +"кроків. \n" +"var tween = create_tween() \n" +"tween.tween_property(self, \"position:x\", 500, 3.0) \n" +"tween.tween_subtween(subtween) \n" +"tween.tween_property(self, \"position:x\", 300, 2.0) \n" +"[/codeblock] \n" +"[b]Примітка: [/b] Методи [method pause], [method stop] і [method set_loops] " +"можуть призвести до того, що батьківський [Tween] застрягне на кроці " +"subtween; дивіться документацію для цих методів для отримання додаткової " +"інформації. \n" +"[b]Примітка.[/b] Режими паузи та обробки, встановлені [method set_pause_mode] " +"і [method set_process_mode] на [param subtween], будуть перевизначені " +"налаштуваннями батьківського [Tween]." msgid "" "Emitted when the [Tween] has finished all tweening. Never emitted when the " @@ -148207,9 +183688,270 @@ msgstr "" "інтерполювати майно або викликати метод в обумовлений час. [Tweener] не може " "бути створений вручну, потрібно використовувати спеціальний метод з [Tween]." +msgid "" +"Emitted when the [Tweener] has just finished its job or became invalid (e.g. " +"due to a freed object)." +msgstr "" +"Випускається, коли [Tweener] щойно завершив свою роботу або став недійсним " +"(наприклад, через звільнений об’єкт)." + msgid "Helper class to implement a UDP server." msgstr "Допоможець класу для реалізації сервера UDP." +msgid "" +"A simple server that opens a UDP socket and returns connected [PacketPeerUDP] " +"upon receiving new packets. See also [method PacketPeerUDP.connect_to_host].\n" +"After starting the server ([method listen]), you will need to [method poll] " +"it at regular intervals (e.g. inside [method Node._process]) for it to " +"process new packets, delivering them to the appropriate [PacketPeerUDP], and " +"taking new connections.\n" +"Below a small example of how it can be used:\n" +"[codeblocks]\n" +"[gdscript]\n" +"# server_node.gd\n" +"class_name ServerNode\n" +"extends Node\n" +"\n" +"var server = UDPServer.new()\n" +"var peers = []\n" +"\n" +"func _ready():\n" +" server.listen(4242)\n" +"\n" +"func _process(delta):\n" +" server.poll() # Important!\n" +" if server.is_connection_available():\n" +" var peer = server.take_connection()\n" +" var packet = peer.get_packet()\n" +" print(\"Accepted peer: %s:%s\" % [peer.get_packet_ip(), peer." +"get_packet_port()])\n" +" print(\"Received data: %s\" % [packet.get_string_from_utf8()])\n" +" # Reply so it knows we received the message.\n" +" peer.put_packet(packet)\n" +" # Keep a reference so we can keep contacting the remote peer.\n" +" peers.append(peer)\n" +"\n" +" for i in range(0, peers.size()):\n" +" pass # Do something with the connected peers.\n" +"[/gdscript]\n" +"[csharp]\n" +"// ServerNode.cs\n" +"using Godot;\n" +"using System.Collections.Generic;\n" +"\n" +"public partial class ServerNode : Node\n" +"{\n" +" private UdpServer _server = new UdpServer();\n" +" private List<PacketPeerUdp> _peers = new List<PacketPeerUdp>();\n" +"\n" +" public override void _Ready()\n" +" {\n" +" _server.Listen(4242);\n" +" }\n" +"\n" +" public override void _Process(double delta)\n" +" {\n" +" _server.Poll(); // Important!\n" +" if (_server.IsConnectionAvailable())\n" +" {\n" +" PacketPeerUdp peer = _server.TakeConnection();\n" +" byte[] packet = peer.GetPacket();\n" +" GD.Print($\"Accepted Peer: {peer.GetPacketIP()}:{peer." +"GetPacketPort()}\");\n" +" GD.Print($\"Received Data: {packet.GetStringFromUtf8()}\");\n" +" // Reply so it knows we received the message.\n" +" peer.PutPacket(packet);\n" +" // Keep a reference so we can keep contacting the remote peer.\n" +" _peers.Add(peer);\n" +" }\n" +" foreach (var peer in _peers)\n" +" {\n" +" // Do something with the peers.\n" +" }\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[codeblocks]\n" +"[gdscript]\n" +"# client_node.gd\n" +"class_name ClientNode\n" +"extends Node\n" +"\n" +"var udp = PacketPeerUDP.new()\n" +"var connected = false\n" +"\n" +"func _ready():\n" +" udp.connect_to_host(\"127.0.0.1\", 4242)\n" +"\n" +"func _process(delta):\n" +" if !connected:\n" +" # Try to contact server\n" +" udp.put_packet(\"The answer is... 42!\".to_utf8_buffer())\n" +" if udp.get_available_packet_count() > 0:\n" +" print(\"Connected: %s\" % udp.get_packet().get_string_from_utf8())\n" +" connected = true\n" +"[/gdscript]\n" +"[csharp]\n" +"// ClientNode.cs\n" +"using Godot;\n" +"\n" +"public partial class ClientNode : Node\n" +"{\n" +" private PacketPeerUdp _udp = new PacketPeerUdp();\n" +" private bool _connected = false;\n" +"\n" +" public override void _Ready()\n" +" {\n" +" _udp.ConnectToHost(\"127.0.0.1\", 4242);\n" +" }\n" +"\n" +" public override void _Process(double delta)\n" +" {\n" +" if (!_connected)\n" +" {\n" +" // Try to contact server\n" +" _udp.PutPacket(\"The Answer Is..42!\".ToUtf8Buffer());\n" +" }\n" +" if (_udp.GetAvailablePacketCount() > 0)\n" +" {\n" +" GD.Print($\"Connected: {_udp.GetPacket()." +"GetStringFromUtf8()}\");\n" +" _connected = true;\n" +" }\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Простий сервер, який відкриває UDP-сокет і повертає підключений " +"[PacketPeerUDP] після отримання нових пакетів. Дивіться також [метод " +"PacketPeerUDP.connect_to_host]. \n" +"Після запуску сервера ([method listen]) вам потрібно буде [method poll] " +"проводити його через регулярні проміжки часу (наприклад, усередині [method " +"Node._process]), щоб він обробляв нові пакети, доставляючи їх до відповідного " +"[PacketPeerUDP] і встановлюючи нові з’єднання. \n" +"Нижче наведено невеликий приклад того, як це можна використовувати: \n" +"[codeblocks] \n" +"[gdscript] \n" +"# server_node.gd \n" +"class_name ServerNode \n" +"extenda Node \n" +"\n" +"var server = UDPServer.new() \n" +"var peers = [] \n" +"\n" +"func _ready(): \n" +" server.listen(4242) \n" +"\n" +"func _process(delta): \n" +" server.poll() # Важливо! \n" +" if server.is_connection_available(): \n" +" var peer = server.take_connection() \n" +" var packet = peer.get_packet() \n" +" print(\"Прийнятий вузол: %s:%s\" % [peer.get_packet_ip(), peer." +"get_packet_port()]) \n" +" print(\"Отримано дані: %s\" % [packet.get_string_from_utf8()]) \n" +" # Відповісти, щоб знати, що ми отримали повідомлення. \n" +" peer.put_packet(пакет) \n" +" # Зберігайте посилання, щоб ми могли продовжувати зв’язуватися з " +"віддаленим партнером. \n" +" peers.append(peer) \n" +"\n" +" for i in range(0, peers.size()): \n" +" pass # Зробіть щось із підключеними одноранговими вузлами. \n" +"[/gdscript] \n" +"[csharp] \n" +"// ServerNode.cs \n" +"using Godot\n" +"using System.Collections.Generic; \n" +"\n" +"public partial class ServerNode : Node \n" +"{\n" +" private UdpServer _server = new UdpServer(); \n" +" private List<PacketPeerUdp> _peers = new список<PacketPeerUdp>(); \n" +"\n" +" public override void _Ready() \n" +" { \n" +" _server.Listen(4242); \n" +" } \n" +"\n" +" public override void _Process (double delta) \n" +" { \n" +" _server.Poll(); // Важливо! \n" +" if (_server.IsConnectionAvailable()) \n" +" { \n" +" PacketPeerUdp peer = _server.TakeConnection(); \n" +" byte[] packet = peer.GetPacket(); \n" +" GD.Print($\"Прийнятий вузол: {peer.GetPacketIP()}:{peer." +"GetPacketPort()}\"); \n" +" GD.Print($\"Отримані дані: {packet.GetStringFromUtf8()}\"); \n" +" // Відповісти, щоб знати, що ми отримали повідомлення. \n" +" peer.PutPacket(пакет); \n" +" // Зберігайте посилання, щоб ми могли продовжувати зв’язуватися з " +"віддаленим партнером. \n" +" _peers.Add(peer); \n" +" } \n" +" foreach (var peer in _peers)) \n" +" { \n" +" // Робити щось з однолітками. \n" +" } \n" +" } \n" +"}\n" +"[/csharp] \n" +"[/codeblocks] \n" +"[codeblocks] \n" +"[gdscript] \n" +"# client_node.gd \n" +"class_name ClientNode \n" +"extends Node\n" +"\n" +"var udp = PacketPeerUDP.new() \n" +"varconnected = false \n" +"\n" +"func _ready(): \n" +" udp.connect_to_host(\"127.0.0.1\", 4242) \n" +"\n" +"func _process(delta): \n" +" if !connected: \n" +" # Спробуйте зв'язатися з сервером \n" +" udp.put_packet(\"Відповідь... 42!\".to_utf8_buffer()) \n" +" if udp.get_available_packet_count() > 0: \n" +" print(\"Підключено: %s\" % udp.get_packet().get_string_from_utf8()) \n" +" connected = ture \n" +"[/gdscript] \n" +"[csharp] \n" +"// ClientNode.cs \n" +"using Godot; \n" +"\n" +"public partial class ClientNode : Node \n" +"{\n" +" private PacketPeerUdp _udp = new PacketPeerUdp(); \n" +" private bool _connected = false; \n" +"\n" +" public override void _Ready() \n" +" { \n" +" _udp.ConnectToHost(\"127.0.0.1\", 4242); \n" +" } \n" +"\n" +" public override void _Process (подвійна дельта) \n" +" { \n" +" if (!connected) \n" +" { \n" +" // Спроба зв'язатися з сервером \n" +" _udp.PutPacket(\"Відповідь...42!\".ToUtf8Buffer()); \n" +" } \n" +" if (_udp.GetAvailablePacketCount() > 0) \n" +" { \n" +" GD.Print($\"Підключено: {_udp.GetPacket()." +"GetStringFromUtf8()}\"); \n" +" _connected = ture; \n" +" } \n" +" } \n" +"}\n" +"[/csharp] \n" +"[/codeblocks]" + msgid "" "Returns [code]true[/code] if a packet with a new address/port combination was " "received on the socket." @@ -148383,104 +184125,105 @@ msgid "" msgstr "" "UndoRedo працює, реєструючи методи та зміни властивостей усередині «дій». Ви " "можете створити дію, потім надати способи виконання та скасування цієї дії за " -"допомогою викликів функцій і змін властивостей, а потім зафіксувати дію.\n" +"допомогою викликів функцій і змін властивостей, а потім зафіксувати дію. \n" "Після виконання дії запускаються всі методи [code]do_*[/code]. Якщо " "використовується метод [method undo], запускатимуться методи [code]undo_*[/" "code]. Якщо використовується метод [method redo], знову запустяться всі " -"методи [code]do_*[/code].\n" -"Ось приклад того, як додати дію:\n" -"[кодові блоки]\n" -"[gdscript]\n" -"var undo_redo = UndoRedo.new()\n" +"методи [code]do_*[/code]. \n" +"Ось приклад того, як додати дію: \n" +"[codeblocks] \n" +"[gdscript] \n" +"var undo_redo = UndoRedo.new() \n" "\n" -"func do_something():\n" -" pass # Вставте свій код тут.\n" +"func do_something(): \n" +" pass # Вставте свій код тут. \n" "\n" -"func undo_something():\n" +"func undo_something(): \n" " pass # Розмістіть тут код, який повертає те, що було зроблено " -"\"do_something()\".\n" +"\"do_something()\". \n" "\n" -"func _on_my_button_pressed():\n" -" var node = get_node(\"MyNode2D\")\n" -" undo_redo.create_action(\"Перемістити вузол\")\n" -" undo_redo.add_do_method(do_something)\n" -" undo_redo.add_undo_method(undo_something)\n" -" undo_redo.add_do_property(вузол, \"позиція\", Vector2(100,100))\n" -" undo_redo.add_undo_property(вузол, \"позиція\", вузол.позиція)\n" -" undo_redo.commit_action()\n" -"[/gdscript]\n" -"[csharp]\n" -"приватне UndoRedo _undoRedo;\n" +"func _on_my_button_pressed(): \n" +" var node = get_node(\"MyNode2D\") \n" +" undo_redo.create_action(\"Move Node\") \n" +" undo_redo.add_do_method(do_something) \n" +" undo_redo.add_undo_method(undo_something) \n" +" undo_redo.add_do_property(node, \"position\", Vector2(100,100)) \n" +" undo_redo.add_undo_property(node, \"position\", node.position) \n" +" undo_redo.commit_action() \n" +"[/gdscript] \n" +"[csharp] \n" +"private UndoRedo _undoRedo; \n" "\n" -"public override void _Ready()\n" +"public override void _Ready() \n" "{\n" -" _undoRedo = новий UndoRedo();\n" +" _undoRedo = new UndoRedo(); \n" "}\n" "\n" -"public void DoSomething()\n" +"public void DoSomething() \n" "{\n" -" // Розмістіть тут свій код.\n" +" // Розмістіть тут свій код. \n" "}\n" "\n" -"public void UndoSomething()\n" +"public void UndoSomething() \n" "{\n" " // Помістіть тут код, який повертає те, що було зроблено " -"\"DoSomething()\".\n" +"\"DoSomething()\". \n" "}\n" "\n" -"private void OnMyButtonPressed()\n" +"private void OnMyButtonPressed() \n" "{\n" -" var node = GetNode<Node2D> (\"MyNode2D\");\n" -" _undoRedo.CreateAction(\"Перемістити вузол\");\n" -" _undoRedo.AddDoMethod(new Callable(this, MethodName.DoSomething));\n" -" _undoRedo.AddUndoMethod(new Callable(this, MethodName.UndoSomething));\n" -" _undoRedo.AddDoProperty(вузол, \"позиція\", новий Vector2(100, 100));\n" -" _undoRedo.AddUndoProperty(вузол, \"позиція\", вузол.Позиція);\n" -" _undoRedo.CommitAction();\n" +" var node = GetNode<Node2D>(\"MyNode2D\"); \n" +" _undoRedo.CreateAction(\"Move Node\"); \n" +" _undoRedo.AddDoMethod(new Callable(this, MethodName.DoSomething)); \n" +" _undoRedo.AddUndoMethod(new Callable(this, MethodName.UndoSomething)); \n" +" _undoRedo.AddDoProperty(node, \"position\", new Vector2(100, 100)); \n" +" _undoRedo.AddUndoProperty(node, \"position\", node.position); \n" +" _undoRedo.CommitAction(); \n" "}\n" -"[/csharp]\n" -"[/codeblocks]\n" +"[/csharp] \n" +"[/codeblocks] \n" "Перш ніж викликати будь-який із методів [code]add_(un)do_*[/code], потрібно " "спочатку викликати [method create_action]. Після цього потрібно викликати " -"[method commit_action].\n" +"[method commit_action]. \n" "Якщо вам не потрібно реєструвати метод, ви можете не використовувати [method " "add_do_method] і [method add_undo_method]; те саме стосується властивостей. " -"Ви також можете зареєструвати більше одного методу/власності.\n" +"Ви також можете зареєструвати більше одного методу/власності. \n" "Якщо ви створюєте [EditorPlugin] і хочете інтегрувати його в історію " -"скасувань редактора, використовуйте [EditorUndoRedoManager].\n" +"скасувань редактора, використовуйте [EditorUndoRedoManager]. \n" "Якщо ви реєструєте кілька властивостей/методів, які залежать одне від одного, " "майте на увазі, що за замовчуванням операція скасування викликається в тому " "самому порядку, в якому вони були додані. Тому замість того, щоб групувати " "операції do з їх операціями скасування, краще згрупувати do з одного боку та " -"undo з іншого, як показано нижче.\n" -"[кодові блоки]\n" -"[gdscript]\n" -"undo_redo.create_action(\"Додати об'єкт\")\n" +"undo з іншого, як показано нижче. \n" +"[codeblocks] \n" +"[gdscript] \n" +"undo_redo.create_action(\"Add object\") \n" "\n" -"# ЗРОБИТИ\n" -"undo_redo.add_do_method(_create_object)\n" -"undo_redo.add_do_method(_add_object_to_singleton)\n" +"# ЗРОБИТИ \n" +"undo_redo.add_do_method(_create_object) \n" +"undo_redo.add_do_method(_add_object_to_singleton) \n" "\n" -"# СКАСУВАТИ\n" -"undo_redo.add_undo_method(_remove_object_from_singleton)\n" -"undo_redo.add_undo_method(_destroy_that_object)\n" +"# Скасувати \n" +"undo_redo.add_undo_method(_remove_object_from_singleton) \n" +"undo_redo.add_undo_method(_destroy_that_object) \n" "\n" -"undo_redo.commit_action()\n" -"[/gdscript]\n" -"[csharp]\n" -"_undo_redo.CreateAction(\"Додати об'єкт\");\n" +"undo_redo.commit_action() \n" +"[/gdscript] \n" +"[csharp] \n" +"_undo_redo.CreateAction(\"Add object\"); \n" "\n" -"// ЗРОБИТИ\n" -"_undo_redo.AddDoMethod(new Callable(this, MethodName.CreateObject));\n" -"_undo_redo.AddDoMethod(new Callable(this, MethodName.AddObjectToSingleton));\n" +"// ЗРОБИТИ \n" +"_undo_redo.AddDoMethod(new Callable(this, MethodName.CreateObject)); \n" +"_undo_redo.AddDoMethod(new Callable(this, MethodName." +"AddObjectToSingleton)); \n" "\n" -"// СКАСУВАТИ\n" +"// СКАСУВАТИ \n" "_undo_redo.AddUndoMethod(new Callable(this, MethodName." -"RemoveObjectFromSingleton));\n" -"_undo_redo.AddUndoMethod(new Callable(this, MethodName.DestroyThatObject));\n" +"RemoveObjectFromSingleton)); \n" +"_undo_redo.AddUndoMethod(new Callable(this, MethodName.DestroyThatObject)); \n" "\n" -"_undo_redo.CommitAction();\n" -"[/csharp]\n" +"_undo_redo.CommitAction(); \n" +"[/csharp] \n" "[/codeblocks]" msgid "Register a [Callable] that will be called when the action is committed." @@ -148509,18 +184252,19 @@ msgid "" "undo_redo.commit_action()\n" "[/codeblock]" msgstr "" -"Зареєструвати посилання на об'єкт, який буде вилучено, якщо \"до\" історія " -"вилучена. Це корисно для об'єктів, що додаються дією «до» і видалено дією " -"«ундо».\n" -"Коли історія \"до\" видалена, якщо об'єкт є [RefCounted], він буде невагомим. " -"В іншому випадку він буде безкоштовним. Не використовуйте для ресурсів.\n" -"[блокування коду]\n" -"var вузол = Node2D.new()\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" +"Зареєструвати посилання на об'єкт, який буде стерто, якщо журнал \"do\" буде " +"видалено. Це корисно для об’єктів, доданих дією «зробити» та видалених дією " +"«скасувати». \n" +"Коли журнал «do» буде видалено, якщо об’єкт є [RefCounted], на нього не буде " +"посилань. В іншому випадку воно буде звільнено. Не використовуйте для " +"ресурсів. \n" +"[codeblock] \n" +"var node = Node2D.new() \n" +"undo_redo.create_action(\"Add node\") \n" +"undo_redo.add_do_method(add_child.bind(node)) \n" +"undo_redo.add_do_reference(node) \n" +"undo_redo.add_undo_method(remove_child.bind(node)) \n" +"undo_redo.commit_action() \n" "[/codeblock]" msgid "Register a [Callable] that will be called when the action is undone." @@ -148548,19 +184292,19 @@ msgid "" "undo_redo.commit_action()\n" "[/codeblock]" msgstr "" -"Зареєструвати посилання на об'єкт, який буде вилучено, якщо вилучена історія " -"\"небо\". Це корисно для об'єктів, що додаються дією \"ундо\" і знімається " -"діями \"до\".\n" -"При видаленні історії \"undo\", якщо об'єкт є [RefCounted], він буде " -"невизначений. В іншому випадку він буде безкоштовним. Не використовуйте для " -"ресурсів.\n" -"[блокування коду]\n" -"var вузол = $Node2D\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" +"Зареєструйте посилання на об’єкт, який буде стерто, якщо видалити історію " +"«скасування». Це корисно для об’єктів, доданих за допомогою дії «скасувати» " +"та видалених за допомогою дії «до». \n" +"Коли журнал \"скасування\" видаляється, якщо об’єкт є [RefCounted], на нього " +"не буде посилатися. В іншому випадку воно буде звільнено. Не використовуйте " +"для ресурсів. \n" +"[codeblock] \n" +"змінний вузол = $Node2D \n" +"undo_redo.create_action(\"Remove node\") \n" +"undo_redo.add_do_method(remove_child.bind(node)) \n" +"undo_redo.add_undo_method(add_child.bind(node)) \n" +"undo_redo.add_undo_reference(node) \n" +"undo_redo.commit_action() \n" "[/codeblock]" msgid "" @@ -148719,6 +184463,185 @@ msgstr "" "Універсальні функції плагіна та Play (UPnP) для відкриття мережевого " "пристрою, запиту та переадресації портів." +msgid "" +"This class can be used to discover compatible [UPNPDevice]s on the local " +"network and execute commands on them, like managing port mappings (for port " +"forwarding/NAT traversal) and querying the local and remote network IP " +"address. Note that methods on this class are synchronous and block the " +"calling thread.\n" +"To forward a specific port (here [code]7777[/code], note both [method " +"discover] and [method add_port_mapping] can return errors that should be " +"checked):\n" +"[codeblock]\n" +"var upnp = UPNP.new()\n" +"upnp.discover()\n" +"upnp.add_port_mapping(7777)\n" +"[/codeblock]\n" +"To close a specific port (e.g. after you have finished using it):\n" +"[codeblock]\n" +"upnp.delete_port_mapping(port)\n" +"[/codeblock]\n" +"[b]Note:[/b] UPnP discovery blocks the current thread. To perform discovery " +"without blocking the main thread, use [Thread]s like this:\n" +"[codeblock]\n" +"# Emitted when UPnP port mapping setup is completed (regardless of success or " +"failure).\n" +"signal upnp_completed(error)\n" +"\n" +"# Replace this with your own server port number between 1024 and 65535.\n" +"const SERVER_PORT = 3928\n" +"var thread = null\n" +"\n" +"func _upnp_setup(server_port):\n" +" # UPNP queries take some time.\n" +" var upnp = UPNP.new()\n" +" var err = upnp.discover()\n" +"\n" +" if err != OK:\n" +" push_error(str(err))\n" +" upnp_completed.emit(err)\n" +" return\n" +"\n" +" if upnp.get_gateway() and upnp.get_gateway().is_valid_gateway():\n" +" upnp.add_port_mapping(server_port, server_port, ProjectSettings." +"get_setting(\"application/config/name\"), \"UDP\")\n" +" upnp.add_port_mapping(server_port, server_port, ProjectSettings." +"get_setting(\"application/config/name\"), \"TCP\")\n" +" upnp_completed.emit(OK)\n" +"\n" +"func _ready():\n" +" thread = Thread.new()\n" +" thread.start(_upnp_setup.bind(SERVER_PORT))\n" +"\n" +"func _exit_tree():\n" +" # Wait for thread finish here to handle game exit while the thread is " +"running.\n" +" thread.wait_to_finish()\n" +"[/codeblock]\n" +"[b]Terminology:[/b] In the context of UPnP networking, \"gateway\" (or " +"\"internet gateway device\", short IGD) refers to network devices that allow " +"computers in the local network to access the internet (\"wide area network\", " +"WAN). These gateways are often also called \"routers\".\n" +"[b]Pitfalls:[/b]\n" +"- As explained above, these calls are blocking and shouldn't be run on the " +"main thread, especially as they can block for multiple seconds at a time. Use " +"threading!\n" +"- Networking is physical and messy. Packets get lost in transit or get " +"filtered, addresses, free ports and assigned mappings change, and devices may " +"leave or join the network at any time. Be mindful of this, be diligent when " +"checking and handling errors, and handle these gracefully if you can: add " +"clear error UI, timeouts and re-try handling.\n" +"- Port mappings may change (and be removed) at any time, and the remote/" +"external IP address of the gateway can change likewise. You should consider " +"re-querying the external IP and try to update/refresh the port mapping " +"periodically (for example, every 5 minutes and on networking failures).\n" +"- Not all devices support UPnP, and some users disable UPnP support. You need " +"to handle this (e.g. documenting and requiring the user to manually forward " +"ports, or adding alternative methods of NAT traversal, like a relay/mirror " +"server, or NAT hole punching, STUN/TURN, etc.).\n" +"- Consider what happens on mapping conflicts. Maybe multiple users on the " +"same network would like to play your game at the same time, or maybe another " +"application uses the same port. Make the port configurable, and optimally " +"choose a port automatically (re-trying with a different port on failure).\n" +"[b]Further reading:[/b] If you want to know more about UPnP (and the Internet " +"Gateway Device (IGD) and Port Control Protocol (PCP) specifically), " +"[url=https://en.wikipedia.org/wiki/Universal_Plug_and_Play]Wikipedia[/url] is " +"a good first stop, the specification can be found at the [url=https://" +"openconnectivity.org/developer/specifications/upnp-resources/upnp/]Open " +"Connectivity Foundation[/url] and Godot's implementation is based on the " +"[url=https://github.com/miniupnp/miniupnp]MiniUPnP client[/url]." +msgstr "" +"Цей клас можна використовувати для виявлення сумісних [UPNPDevice] у " +"локальній мережі та виконання команд на них, як-от керування відображеннями " +"портів (для переадресації портів/обходу NAT) і запит IP-адрес локальної та " +"віддаленої мережі. Зауважте, що методи цього класу є синхронними та блокують " +"потік, що викликає. \n" +"Щоб переслати певний порт (тут [code]7777[/code], зауважте, що [method " +"discover] і [method add_port_mapping] можуть повертати помилки, які слід " +"перевірити): \n" +"[codeblock] \n" +"var upnp = UPNP.new() \n" +"upnp.discover() \n" +"upnp.add_port_mapping(7777) \n" +"[/codeblock] \n" +"Щоб закрити певний порт (наприклад, після завершення його використання): \n" +"[codeblock] \n" +"upnp.delete_port_mapping(port) \n" +"[/codeblock] \n" +"[b]Примітка.[/b] Виявлення UPnP блокує поточний потік. Щоб виконати відкриття " +"без блокування основного потоку, використовуйте [Thread] таким чином: \n" +"[codeblock] \n" +"# Видається після завершення налаштування відображення порту UPnP (незалежно " +"від успіху чи невдачі). \n" +"сигнал upnp_completed(error) \n" +"\n" +"# Замініть це своїм номером порту сервера між 1024 і 65535. \n" +"const SERVER_PORT = 3928 \n" +"var thread = null \n" +"\n" +"func _upnp_setup (server_port): \n" +" # Запити UPNP займають деякий час. \n" +" var upnp = UPNP.new() \n" +" var err = upnp.discover() \n" +"\n" +" if error!= ОК: \n" +" push_error(str(err)) \n" +" upnp_completed.emit(err) \n" +" return \n" +"\n" +" if upnp.get_gateway() і upnp.get_gateway().is_valid_gateway(): \n" +" upnp.add_port_mapping(server_port, server_port, ProjectSettings." +"get_setting(\"application/config/name\"), \"UDP\") \n" +" upnp.add_port_mapping(server_port, server_port, ProjectSettings." +"get_setting(\"application/config/name\"), \"TCP\") \n" +" upnp_completed.emit(ОК) \n" +"\n" +"func _ready(): \n" +" thread = Thread.new() \n" +" thread.start(_upnp_setup.bind(SERVER_PORT)) \n" +"\n" +"func _exit_tree(): \n" +" # Зачекайте завершення потоку тут, щоб завершити гру, поки поток " +"працює. \n" +" thread.wait_to_finish() \n" +"[/codeblock] \n" +"[b]Термінологія: [/b] У контексті мереж UPnP «шлюз» (або «пристрій інтернет-" +"шлюзу», скорочено IGD) відноситься до мережевих пристроїв, які дозволяють " +"комп’ютерам у локальній мережі отримувати доступ до Інтернету («глобальна " +"мережа», WAN). Ці шлюзи часто також називають «маршрутизаторами». \n" +"[b]Пастки:[/b] \n" +"- Як пояснювалося вище, ці виклики блокують і не повинні запускатися в " +"основному потоці, особливо тому, що вони можуть блокуватися на кілька секунд " +"за раз. Використовуйте різьблення! \n" +"- Мережа є фізичною та безладною. Пакети втрачаються під час передачі або " +"фільтруються, адреси, вільні порти та призначені відображення змінюються, і " +"пристрої можуть покинути мережу або приєднатися до неї в будь-який час. " +"Пам’ятайте про це, будьте старанними під час перевірки та обробки помилок і, " +"якщо можете, витончено їх обробляйте: додайте чіткий інтерфейс користувача з " +"помилками, тайм-аути та повторіть спробу обробки. \n" +"- Відображення портів можуть змінитися (і бути видалені) у будь-який час, а " +"віддалена/зовнішня IP-адреса шлюзу може змінитися так само. Вам слід " +"розглянути можливість повторного запиту зовнішньої IP-адреси та спробувати " +"періодично оновлювати зіставлення портів (наприклад, кожні 5 хвилин і в разі " +"збою мережі). \n" +"- Не всі пристрої підтримують UPnP, а деякі користувачі відключають підтримку " +"UPnP. Вам потрібно впоратися з цим (наприклад, задокументувати та вимагати " +"від користувача перенаправляти порти вручну або додати альтернативні методи " +"обходу NAT, як-от релейний/дзеркальний сервер, або пробивання отворів NAT, " +"STUN/TURN тощо). \n" +"- Поміркуйте, що відбувається під час відображення конфліктів. Можливо, " +"декілька користувачів в одній мережі хочуть грати у вашу гру одночасно, або, " +"можливо, інша програма використовує той самий порт. Зробіть порт " +"конфігурованим і оптимально виберіть порт автоматично (повторна спроба з " +"іншим портом у разі помилки). \n" +"[b]Додаткова інформація:[/b] Якщо ви хочете дізнатися більше про UPnP " +"(зокрема про шлюзовий пристрій Інтернету (IGD) і протокол керування портами " +"(PCP), [url=https://en.wikipedia.org/wiki/Universal_Plug_and_Play]Вікіпедія[/" +"url] є хорошою першою зупинкою, специфікацію можна знайти на Реалізація " +"[url=https://openconnectivity.org/developer/specifications/upnp-resources/" +"upnp/]Open Connectivity Foundation[/url] і Godot базується на [url=https://" +"github.com/miniupnp/miniupnp]клієнті MiniUPnP[/url]." + msgid "Adds the given [UPNPDevice] to the list of discovered devices." msgstr "Додає задану [UPNPDevice] до списку відкритих пристроїв." @@ -149208,7 +185131,7 @@ msgstr "" "Lua, JavaScript і GDScript, люблять використовувати їх для зберігання даних " "змінних на сервері. За допомогою цих варіантів властивості можуть вільно " "змінювати типи значень.\n" -"[кодові блоки]\n" +"[codeblocks]\n" "[gdscript]\n" "var foo = 2 # foo є динамічним цілим числом\n" "foo = \"Тепер foo є рядком!\"\n" @@ -149250,41 +185173,41 @@ msgstr "" "перетворення потрібне явне приведення.\n" "Глобальна функція [method @GlobalScope.typeof] повертає перераховане значення " "типу Variant, що зберігається в поточній змінній (див. [enum Variant.Type]).\n" -"[кодові блоки]\n" +"[codeblocks]\n" "[gdscript]\n" "var foo = 2\n" -"відповідність typeof(foo):\n" -" TYPE_NIL:\n" -" print(\"foo є null\")\n" -" TYPE_INT:\n" -" print(\"foo є цілим числом\")\n" -" TYPE_OBJECT:\n" -" # Зверніть увагу, що об'єкти є окремою спеціальною категорією.\n" -" # Щоб отримати назву базового типу об’єкта, вам потрібен метод " +"match typeof(foo):\n" +" TYPE_NIL:\n" +" print(\"foo є null\")\n" +" TYPE_INT:\n" +" print(\"foo є цілим числом\")\n" +" TYPE_OBJECT:\n" +" # Зверніть увагу, що об'єкти є окремою спеціальною категорією.\n" +" # Щоб отримати назву основного типу об’єкта, вам потрібен метод " "`get_class()`.\n" -" print(\"foo is a(n) %s\" % foo.get_class()) # ввести назву класу у " +" print(\"foo is a(n) %s\" % foo.get_class()) # ввести назву класу у " "відформатований рядок.\n" -" # Зверніть увагу, що це не отримує глобальний ідентифікатор " -"`class_name` сценарію.\n" -" # Якщо потрібне `class_name`, використовуйте замість нього `foo." -"get_script().get_global_name()`.\n" +" # Зауважте, що це не отримує глобальний ідентифікатор `class_name` " +"сценарію.\n" +" # Якщо потрібне `class_name`, використовуйте замість нього `foo.get_script()." +"get_global_name()`.\n" "[/gdscript]\n" "[csharp]\n" -"Варіант foo = 2;\n" -"\n" -"перемикач (foo.VariantType)\n" -"{ case Variant.Type.Nil:\n" -" GD.Print(\"foo має значення null\");\n" -" розрив;\n" -" case Variant.Type.Int:\n" -" GD.Print(\"foo є цілим числом\");\n" -" розрив;\n" -" case Variant.Type.Object:\n" -" // Зауважте, що об'єкти є окремою спеціальною категорією.\n" -" // Ви можете перетворити Variant на GodotObject і використовувати " +"Variant foo = 2;\n" +"swich (foo.VariantType)\n" +"{\n" +" case Variant.Type.Nil:\n" +" GD.Print(\"foo має значення null\");\n" +" розрив;\n" +" case Variant.Type.Int:\n" +" GD.Print(\"foo є цілим числом\");\n" +" розрив;\n" +" case Variant.Type.Object:\n" +" // Зауважте, що об'єкти є окремою спеціальною категорією.\n" +" // Ви можете перетворити Variant на GodotObject і використовувати " "відображення, щоб отримати його назву.\n" -" GD.Print($\"foo is a(n) {foo.AsGodotObject().GetType().Name}\");\n" -" розрив;\n" +" GD.Print($\"foo is a(n) {foo.AsGodotObject().GetType().Name}\");\n" +" break;\n" "}\n" "[/csharp]\n" "[/codeblocks]\n" @@ -149298,16 +185221,16 @@ msgstr "" "Варіант:\n" "- Може зберігати майже будь-який тип даних.\n" "- Може виконувати операції між багатьма варіантами. GDScript використовує " -"Variant як свій атомарний/власний тип даних.\n" +"Variant як атомарний/власний тип даних.\n" "- Можна хешувати, тому його можна швидко порівняти з іншими варіантами.\n" -"- Може використовуватися для безпечного перетворення між типами даних.\n" +"- Можна використовувати для безпечного перетворення між типами даних.\n" "- Може використовуватися для абстрактного виклику методів та їхніх " "аргументів. Godot експортує всі свої функції через варіанти.\n" "- Може використовуватися для відкладення викликів або переміщення даних між " "потоками.\n" -"- Можна серіалізувати як двійковий файл і зберегти на диску або передати " +"- Може бути серіалізовано як двійковий і збережений на диску або переданий " "через мережу.\n" -"- Можна серіалізувати в текст і використовувати для друку значень і " +"- Можна серіалізувати в текст і використовувати його для друку значень і " "параметрів, які можна редагувати.\n" "- Може працювати як експортована властивість, тому редактор може редагувати " "її універсально.\n" @@ -149317,7 +185240,8 @@ msgstr "" "використовується як ключ, до будь-якого іншого типу даних. [Масив] містить " "лише масив варіантів. Звичайно, Variant також може містити всередині " "[Dictionary] і [Array], що робить його ще більш гнучким.\n" -"Зміни в контейнері змінять усі посилання на нього. [Mutex] повинен." +"Внесення змін до контейнера призведе до зміни всіх посилань на нього. Слід " +"створити [Mutex], щоб заблокувати його, якщо потрібен багатопоточний доступ." msgid "Variant class introduction" msgstr "Впровадження класного класу" @@ -149407,13 +185331,13 @@ msgstr "" "вектором [член y] і [член x] в якості параметрів: [code]atan2(y, x)[/code]." msgid "" -"Returns the angle to the given vector, in radians.\n" +"Returns the signed angle to the given vector, in radians.\n" "[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" "vector2_angle_to.png]Illustration of the returned angle.[/url]" msgstr "" -"Повертає кут до заданого вектора, в радіях.\n" +"Повертає кут зі знаком до заданого вектора в радіанах.\n" "[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" -"vector2_angle_to.png]Ілюстрація заданого кута[/url]" +"vector2_angle_to.png]Ілюстрація повернутого кута.[/url]" msgid "" "Returns the angle between the line connecting the two points and the X axis, " @@ -149585,6 +185509,25 @@ msgstr "" "Повертає новий вектор з усіма компонентами, що закруглені вниз (до негативної " "нескінченності)." +msgid "" +"Creates a unit [Vector2] rotated to the given [param angle] in radians. This " +"is equivalent to doing [code]Vector2(cos(angle), sin(angle))[/code] or " +"[code]Vector2.RIGHT.rotated(angle)[/code].\n" +"[codeblock]\n" +"print(Vector2.from_angle(0)) # Prints (1.0, 0.0)\n" +"print(Vector2(1, 0).angle()) # Prints 0.0, which is the angle used above.\n" +"print(Vector2.from_angle(PI / 2)) # Prints (0.0, 1.0)\n" +"[/codeblock]" +msgstr "" +"Створює одиницю [Вектор2], повернуту на заданий [param angle] у радіанах. Це " +"еквівалентно виконанню [code]Vector2(cos(angle), sin(angle))[/code] або " +"[code]Vector2.RIGHT.rotated(angle)[/code]. \n" +"[codeblock] \n" +"print(Vector2.from_angle(0)) # Друк (1.0, 0.0) \n" +"print(Vector2(1, 0).angle()) # Друкує 0,0, який є кутом, використаним вище. \n" +"print(Vector2.from_angle(PI / 2)) # Друк (0,0, 1,0) \n" +"[/codeblock]" + msgid "" "Returns [code]true[/code] if this vector and [param to] are approximately " "equal, by running [method @GlobalScope.is_equal_approx] on each component." @@ -149639,6 +185582,13 @@ msgstr "" "[памна вага]. [param вага] знаходиться на діапазоні [code]0.0[/code] до " "[code]1.0[/code], що представляє кількість міжполяризації." +msgid "" +"Returns the vector with a maximum length by limiting its length to [param " +"length]. If the vector is non-finite, the result is undefined." +msgstr "" +"Повертає вектор із максимальною довжиною, обмежуючи його довжину до [param " +"length]. Якщо вектор нескінченний, результат не визначений." + msgid "" "Returns the component-wise maximum of this and [param with], equivalent to " "[code]Vector2(maxf(x, with.x), maxf(y, with.y))[/code]." @@ -149748,11 +185698,11 @@ msgstr "" "Повертає результат відображення вектора з лінії, визначеної заданим напрямком " "вектора [памна лінія].\n" "[b]Note:[/b] [метод відображення] відрізняється від того, що інші двигуни і " -"рамки виклику [код пропустити-лінт]reflect()[/код]. В інших двигунах [код " -"пропустити-лінт]reflect()[/код] приймає нормальний напрямок, який є напрямок " +"рамки виклику [code skip-lint]reflect()[/code]. В інших двигунах [code skip-" +"lint]reflect()[/code] приймає нормальний напрямок, який є напрямок " "перпендикулярної лінії. У Godot ви вказите напрямок лінії безпосередньо. " -"Дивись також [метод bounce], що робить те, що більшість двигунів виклику [код " -"пропустити-лінт]reflect()[/code]." +"Дивись також [метод bounce], що робить те, що більшість двигунів виклику " +"[code skip-lint]reflect()[/code]." msgid "" "Returns the result of rotating this vector by [param angle] (in radians). See " @@ -149916,12 +185866,60 @@ msgstr "" "масштабуванням) [code]transform.affine_inverse() * вектор[/code] можна " "використовувати замість. [метод Transform2D.affine_inverse]." +msgid "" +"Multiplies each component of the [Vector2] by the components of the given " +"[Vector2].\n" +"[codeblock]\n" +"print(Vector2(10, 20) * Vector2(3, 4)) # Prints (30.0, 80.0)\n" +"[/codeblock]" +msgstr "" +"Множить кожен компонент [Вектора2] на компоненти заданого [Вектора2].\n" +"[codeblock]\n" +"print(Vector2(10, 20) * Vector2(3, 4)) # Prints (30.0, 80.0)\n" +"[/codeblock]" + msgid "Multiplies each component of the [Vector2] by the given [float]." msgstr "Множення кожного компонента [Vector2] заданими [float]." msgid "Multiplies each component of the [Vector2] by the given [int]." msgstr "Множення кожного компонента [Vector2] заданої [int]." +msgid "" +"Adds each component of the [Vector2] by the components of the given " +"[Vector2].\n" +"[codeblock]\n" +"print(Vector2(10, 20) + Vector2(3, 4)) # Prints (13.0, 24.0)\n" +"[/codeblock]" +msgstr "" +"Додає кожен компонент [Вектора2] за допомогою компонентів даного [Вектора2].\n" +"[codeblock]\n" +"print(Vector2(10, 20) + Vector2(3, 4)) # Prints (13.0, 24.0)\n" +"[/codeblock]" + +msgid "" +"Subtracts each component of the [Vector2] by the components of the given " +"[Vector2].\n" +"[codeblock]\n" +"print(Vector2(10, 20) - Vector2(3, 4)) # Prints (7.0, 16.0)\n" +"[/codeblock]" +msgstr "" +"Віднімає кожен компонент [Вектора2] на компоненти даного [Вектора2].\n" +"[codeblock]\n" +"print(Vector2(10, 20) - Vector2(3, 4)) # Prints (7.0, 16.0)\n" +"[/codeblock]" + +msgid "" +"Divides each component of the [Vector2] by the components of the given " +"[Vector2].\n" +"[codeblock]\n" +"print(Vector2(10, 20) / Vector2(2, 5)) # Prints (5.0, 4.0)\n" +"[/codeblock]" +msgstr "" +"Розділяє кожен компонент [Вектора2] на компоненти заданого [Вектора2].\n" +"[codeblock]\n" +"print(Vector2(10, 20) / Vector2(2, 5)) # Prints (5.0, 4.0)\n" +"[/codeblock]" + msgid "Divides each component of the [Vector2] by the given [float]." msgstr "Дивиди кожний компонент [Vector2] відданий [float]." @@ -150147,9 +186145,118 @@ msgstr "" msgid "Returns [code]true[/code] if the vectors are not equal." msgstr "Повертає [code]true[/code], якщо вектори не рівні." +msgid "" +"Gets the remainder of each component of the [Vector2i] with the components of " +"the given [Vector2i]. This operation uses truncated division, which is often " +"not desired as it does not work well with negative numbers. Consider using " +"[method @GlobalScope.posmod] instead if you want to handle negative numbers.\n" +"[codeblock]\n" +"print(Vector2i(10, -20) % Vector2i(7, 8)) # Prints (3, -4)\n" +"[/codeblock]" +msgstr "" +"Отримує залишок кожного компонента [Vector2i] з компонентами даного " +"[Vector2i]. У цій операції використовується скорочене ділення, яке часто " +"небажано, оскільки воно погано працює з від’ємними числами. Розгляньте " +"можливість використання [method @GlobalScope.posmod] натомість, якщо ви " +"хочете обробляти від’ємні числа. \n" +"[codeblock] \n" +"print(Vector2i(10, -20) % Vector2i(7, 8)) # Вивести (3, -4) \n" +"[/codeblock]" + +msgid "" +"Gets the remainder of each component of the [Vector2i] with the given [int]. " +"This operation uses truncated division, which is often not desired as it does " +"not work well with negative numbers. Consider using [method @GlobalScope." +"posmod] instead if you want to handle negative numbers.\n" +"[codeblock]\n" +"print(Vector2i(10, -20) % 7) # Prints (3, -6)\n" +"[/codeblock]" +msgstr "" +"Отримує залишок кожного компонента [Vector2i] із заданим [int]. У цій " +"операції використовується скорочене ділення, яке часто небажано, оскільки " +"воно погано працює з від’ємними числами. Розгляньте можливість використання " +"[method @GlobalScope.posmod] натомість, якщо ви хочете обробляти від’ємні " +"числа. \n" +"[codeblock] \n" +"print(Vector2i(10, -20) % 7) # Друк (3, -6) \n" +"[/codeblock]" + +msgid "" +"Multiplies each component of the [Vector2i] by the components of the given " +"[Vector2i].\n" +"[codeblock]\n" +"print(Vector2i(10, 20) * Vector2i(3, 4)) # Prints (30, 80)\n" +"[/codeblock]" +msgstr "" +"Множить кожен компонент [Vector2i] на компоненти заданого [Vector2i].\n" +"[codeblock]\n" +"print(Vector2i(10, 20) * Vector2i(3, 4)) # Prints (30, 80)\n" +"[/codeblock]" + +msgid "" +"Multiplies each component of the [Vector2i] by the given [float]. Returns a " +"[Vector2].\n" +"[codeblock]\n" +"print(Vector2i(10, 15) * 0.9) # Prints (9.0, 13.5)\n" +"[/codeblock]" +msgstr "" +"Множить кожен компонент [Vector2i] на заданий [float]. Повертає [Вектор2].\n" +"[codeblock]\n" +"print(Vector2i(10, 15) * 0.9) # Prints (9.0, 13.5)\n" +"[/codeblock]" + msgid "Multiplies each component of the [Vector2i] by the given [int]." msgstr "Множення кожного компонента [Vector2i] за умови [int]." +msgid "" +"Adds each component of the [Vector2i] by the components of the given " +"[Vector2i].\n" +"[codeblock]\n" +"print(Vector2i(10, 20) + Vector2i(3, 4)) # Prints (13, 24)\n" +"[/codeblock]" +msgstr "" +"Додає кожен компонент [Vector2i] за допомогою компонентів заданого " +"[Vector2i].\n" +"[codeblock]\n" +"print(Vector2i(10, 20) + Vector2i(3, 4)) # Prints (13, 24)\n" +"[/codeblock]" + +msgid "" +"Subtracts each component of the [Vector2i] by the components of the given " +"[Vector2i].\n" +"[codeblock]\n" +"print(Vector2i(10, 20) - Vector2i(3, 4)) # Prints (7, 16)\n" +"[/codeblock]" +msgstr "" +"Віднімає кожен компонент [Vector2i] на компоненти заданого [Vector2i].\n" +"[codeblock]\n" +"print(Vector2i(10, 20) - Vector2i(3, 4)) # Prints (7, 16)\n" +"[/codeblock]" + +msgid "" +"Divides each component of the [Vector2i] by the components of the given " +"[Vector2i].\n" +"[codeblock]\n" +"print(Vector2i(10, 20) / Vector2i(2, 5)) # Prints (5, 4)\n" +"[/codeblock]" +msgstr "" +"Розділяє кожен компонент [Vector2i] на компоненти заданого [Vector2i].\n" +"[codeblock]\n" +"print(Vector2i(10, 20) / Vector2i(2, 5)) # Prints (5, 4)\n" +"[/codeblock]" + +msgid "" +"Divides each component of the [Vector2i] by the given [float]. Returns a " +"[Vector2].\n" +"[codeblock]\n" +"print(Vector2i(10, 20) / 2.9) # Prints (5.0, 10.0)\n" +"[/codeblock]" +msgstr "" +"Розділяє кожен компонент [Vector2i] на заданий [float]. Повертає [Вектор2].\n" +"[codeblock]\n" +"print(Vector2i(10, 20) / 2.9) # Prints (5.0, 10.0)\n" +"[/codeblock]" + msgid "Divides each component of the [Vector2i] by the given [int]." msgstr "Дивиди кожного компонента [Vector2i] за умови [int]." @@ -150547,9 +186654,57 @@ msgstr "" "масштабуванням) [code]transform.affine_inverse() * вектор[/code] можна " "використовувати замість. [метод Transform3D.affine_inverse]." +msgid "" +"Multiplies each component of the [Vector3] by the components of the given " +"[Vector3].\n" +"[codeblock]\n" +"print(Vector3(10, 20, 30) * Vector3(3, 4, 5)) # Prints (30.0, 80.0, 150.0)\n" +"[/codeblock]" +msgstr "" +"Множить кожен компонент [Вектора3] на компоненти заданого [Вектора3].\n" +"[codeblock]\n" +"print(Vector3(10, 20, 30) * Vector3(3, 4, 5)) # Prints (30.0, 80.0, 150.0)\n" +"[/codeblock]" + msgid "Multiplies each component of the [Vector3] by the given [int]." msgstr "Множення кожного компонента [Vector3] заданим [int]." +msgid "" +"Adds each component of the [Vector3] by the components of the given " +"[Vector3].\n" +"[codeblock]\n" +"print(Vector3(10, 20, 30) + Vector3(3, 4, 5)) # Prints (13.0, 24.0, 35.0)\n" +"[/codeblock]" +msgstr "" +"Додає кожен компонент [Вектора3] за допомогою компонентів даного [Вектора3].\n" +"[codeblock]\n" +"print(Vector3(10, 20, 30) + Vector3(3, 4, 5)) # Prints (13.0, 24.0, 35.0)\n" +"[/codeblock]" + +msgid "" +"Subtracts each component of the [Vector3] by the components of the given " +"[Vector3].\n" +"[codeblock]\n" +"print(Vector3(10, 20, 30) - Vector3(3, 4, 5)) # Prints (7.0, 16.0, 25.0)\n" +"[/codeblock]" +msgstr "" +"Віднімає кожен компонент [Вектора3] на компоненти даного [Вектора3].\n" +"[codeblock]\n" +"print(Vector3(10, 20, 30) - Vector3(3, 4, 5)) # Prints (7.0, 16.0, 25.0)\n" +"[/codeblock]" + +msgid "" +"Divides each component of the [Vector3] by the components of the given " +"[Vector3].\n" +"[codeblock]\n" +"print(Vector3(10, 20, 30) / Vector3(2, 5, 3)) # Prints (5.0, 4.0, 10.0)\n" +"[/codeblock]" +msgstr "" +"Розділяє кожен компонент [Вектора3] на компоненти заданого [Вектора3].\n" +"[codeblock]\n" +"print(Vector3(10, 20, 30) / Vector3(2, 5, 3)) # Prints (5.0, 4.0, 10.0)\n" +"[/codeblock]" + msgid "Divides each component of the [Vector3] by the given [float]." msgstr "Дивиди кожний компонент [Vector3] відданий [float]." @@ -150746,9 +186901,118 @@ msgstr "" "Вектор переадресного блоку. Представляє локальний напрямок експедиції та " "глобальний напрямок на північ." +msgid "" +"Gets the remainder of each component of the [Vector3i] with the components of " +"the given [Vector3i]. This operation uses truncated division, which is often " +"not desired as it does not work well with negative numbers. Consider using " +"[method @GlobalScope.posmod] instead if you want to handle negative numbers.\n" +"[codeblock]\n" +"print(Vector3i(10, -20, 30) % Vector3i(7, 8, 9)) # Prints (3, -4, 3)\n" +"[/codeblock]" +msgstr "" +"Отримує залишок кожного компонента [Vector3i] з компонентами даного " +"[Vector3i]. У цій операції використовується скорочене ділення, яке часто " +"небажано, оскільки воно погано працює з від’ємними числами. Розгляньте " +"можливість використання [method @GlobalScope.posmod] натомість, якщо ви " +"хочете обробляти від’ємні числа. \n" +"[codeblock] \n" +"print(Vector3i(10, -20, 30) % Vector3i(7, 8, 9)) # Друк (3, -4, 3) \n" +"[/codeblock]" + +msgid "" +"Gets the remainder of each component of the [Vector3i] with the given [int]. " +"This operation uses truncated division, which is often not desired as it does " +"not work well with negative numbers. Consider using [method @GlobalScope." +"posmod] instead if you want to handle negative numbers.\n" +"[codeblock]\n" +"print(Vector3i(10, -20, 30) % 7) # Prints (3, -6, 2)\n" +"[/codeblock]" +msgstr "" +"Отримує залишок кожного компонента [Vector3i] із заданим [int]. У цій " +"операції використовується скорочене ділення, яке часто небажано, оскільки " +"воно погано працює з від’ємними числами. Розгляньте можливість використання " +"[method @GlobalScope.posmod] натомість, якщо ви хочете обробляти від’ємні " +"числа. \n" +"[codeblock] \n" +"print(Vector3i(10, -20, 30) % 7) # Друк (3, -6, 2) \n" +"[/codeblock]" + +msgid "" +"Multiplies each component of the [Vector3i] by the components of the given " +"[Vector3i].\n" +"[codeblock]\n" +"print(Vector3i(10, 20, 30) * Vector3i(3, 4, 5)) # Prints (30, 80, 150)\n" +"[/codeblock]" +msgstr "" +"Множить кожен компонент [Vector3i] на компоненти заданого [Vector3i].\n" +"[codeblock]\n" +"print(Vector3i(10, 20, 30) * Vector3i(3, 4, 5)) # Prints (30, 80, 150)\n" +"[/codeblock]" + +msgid "" +"Multiplies each component of the [Vector3i] by the given [float]. Returns a " +"[Vector3].\n" +"[codeblock]\n" +"print(Vector3i(10, 15, 20) * 0.9) # Prints (9.0, 13.5, 18.0)\n" +"[/codeblock]" +msgstr "" +"Множить кожен компонент [Vector3i] на заданий [float]. Повертає [Вектор3].\n" +"[codeblock]\n" +"print(Vector3i(10, 15, 20) * 0.9) # Prints (9.0, 13.5, 18.0)\n" +"[/codeblock]" + msgid "Multiplies each component of the [Vector3i] by the given [int]." msgstr "Множення кожного компонента [Vector3i] за умови [int]." +msgid "" +"Adds each component of the [Vector3i] by the components of the given " +"[Vector3i].\n" +"[codeblock]\n" +"print(Vector3i(10, 20, 30) + Vector3i(3, 4, 5)) # Prints (13, 24, 35)\n" +"[/codeblock]" +msgstr "" +"Додає кожен компонент [Vector3i] за допомогою компонентів заданого " +"[Vector3i].\n" +"[codeblock]\n" +"print(Vector3i(10, 20, 30) + Vector3i(3, 4, 5)) # Prints (13, 24, 35)\n" +"[/codeblock]" + +msgid "" +"Subtracts each component of the [Vector3i] by the components of the given " +"[Vector3i].\n" +"[codeblock]\n" +"print(Vector3i(10, 20, 30) - Vector3i(3, 4, 5)) # Prints (7, 16, 25)\n" +"[/codeblock]" +msgstr "" +"Віднімає кожен компонент [Vector3i] на компоненти заданого [Vector3i].\n" +"[codeblock]\n" +"print(Vector3i(10, 20, 30) - Vector3i(3, 4, 5)) # Prints (7, 16, 25)\n" +"[/codeblock]" + +msgid "" +"Divides each component of the [Vector3i] by the components of the given " +"[Vector3i].\n" +"[codeblock]\n" +"print(Vector3i(10, 20, 30) / Vector3i(2, 5, 3)) # Prints (5, 4, 10)\n" +"[/codeblock]" +msgstr "" +"Розділяє кожен компонент [Vector3i] на компоненти заданого [Vector3i].\n" +"[codeblock]\n" +"print(Vector3i(10, 20, 30) / Vector3i(2, 5, 3)) # Prints (5, 4, 10)\n" +"[/codeblock]" + +msgid "" +"Divides each component of the [Vector3i] by the given [float]. Returns a " +"[Vector3].\n" +"[codeblock]\n" +"print(Vector3i(10, 20, 30) / 2.9) # Prints (5.0, 10.0, 15.0)\n" +"[/codeblock]" +msgstr "" +"Розділяє кожен компонент [Vector3i] на заданий [float]. Повертає [Вектор3].\n" +"[codeblock]\n" +"print(Vector3i(10, 20, 30) / 2.9) # Prints (5.0, 10.0, 15.0)\n" +"[/codeblock]" + msgid "Divides each component of the [Vector3i] by the given [int]." msgstr "Дивиди кожного компонента [Vector3i] за умови [int]." @@ -150938,9 +187202,87 @@ msgstr "" "Для перетворення за допомогою інверсу проекції [code]projection.inverse() * " "вектор[/code] можна використовувати замість. Див. [Method Projection.inverse]." +msgid "" +"Multiplies each component of the [Vector4] by the components of the given " +"[Vector4].\n" +"[codeblock]\n" +"print(Vector4(10, 20, 30, 40) * Vector4(3, 4, 5, 6)) # Prints (30.0, 80.0, " +"150.0, 240.0)\n" +"[/codeblock]" +msgstr "" +"Помножує кожен компонент [Вектора4] на компоненти заданого [Вектора4].\n" +"[codeblock]\n" +"print(Vector4(10, 20, 30, 40) * Vector4(3, 4, 5, 6)) # Prints (30.0, 80.0, " +"150.0, 240.0)\n" +"[/codeblock]" + +msgid "" +"Multiplies each component of the [Vector4] by the given [float].\n" +"[codeblock]\n" +"print(Vector4(10, 20, 30, 40) * 2) # Prints (20.0, 40.0, 60.0, 80.0)\n" +"[/codeblock]" +msgstr "" +"Множить кожен компонент [Vector4] на заданий [float].\n" +"[codeblock]\n" +"print(Vector4(10, 20, 30, 40) * 2) # Prints (20.0, 40.0, 60.0, 80.0)\n" +"[/codeblock]" + msgid "Multiplies each component of the [Vector4] by the given [int]." msgstr "Множиці кожного компонента [Vector4] за умови [int]." +msgid "" +"Adds each component of the [Vector4] by the components of the given " +"[Vector4].\n" +"[codeblock]\n" +"print(Vector4(10, 20, 30, 40) + Vector4(3, 4, 5, 6)) # Prints (13.0, 24.0, " +"35.0, 46.0)\n" +"[/codeblock]" +msgstr "" +"Додає кожен компонент [Вектора4] за допомогою компонентів даного [Вектора4].\n" +"[codeblock]\n" +"print(Vector4(10, 20, 30, 40) + Vector4(3, 4, 5, 6)) # Prints (13.0, 24.0, " +"35.0, 46.0)\n" +"[/codeblock]" + +msgid "" +"Subtracts each component of the [Vector4] by the components of the given " +"[Vector4].\n" +"[codeblock]\n" +"print(Vector4(10, 20, 30, 40) - Vector4(3, 4, 5, 6)) # Prints (7.0, 16.0, " +"25.0, 34.0)\n" +"[/codeblock]" +msgstr "" +"Віднімає кожен компонент [Вектора4] на компоненти даного [Вектора4].\n" +"[codeblock]\n" +"print(Vector4(10, 20, 30, 40) - Vector4(3, 4, 5, 6)) # Prints (7.0, 16.0, " +"25.0, 34.0)\n" +"[/codeblock]" + +msgid "" +"Divides each component of the [Vector4] by the components of the given " +"[Vector4].\n" +"[codeblock]\n" +"print(Vector4(10, 20, 30, 40) / Vector4(2, 5, 3, 4)) # Prints (5.0, 4.0, " +"10.0, 10.0)\n" +"[/codeblock]" +msgstr "" +"Розділяє кожен компонент [Вектора4] на компоненти заданого [Вектора4].\n" +"[codeblock]\n" +"print(Vector4(10, 20, 30, 40) / Vector4(2, 5, 3, 4)) # Prints (5.0, 4.0, " +"10.0, 10.0)\n" +"[/codeblock]" + +msgid "" +"Divides each component of the [Vector4] by the given [float].\n" +"[codeblock]\n" +"print(Vector4(10, 20, 30, 40) / 2) # Prints (5.0, 10.0, 15.0, 20.0)\n" +"[/codeblock]" +msgstr "" +"Розділяє кожен компонент [Vector4] на заданий [float].\n" +"[codeblock]\n" +"print(Vector4(10, 20, 30, 40) / 2) # Prints (5.0, 10.0, 15.0, 20.0)\n" +"[/codeblock]" + msgid "Divides each component of the [Vector4] by the given [int]." msgstr "Дивиди кожного компонента [Vector4] за умови [int]." @@ -151136,9 +187478,130 @@ msgstr "" "code]. Може використовуватися в якості цілого еквівалента [constant Vector4." "INF]." +msgid "" +"Gets the remainder of each component of the [Vector4i] with the components of " +"the given [Vector4i]. This operation uses truncated division, which is often " +"not desired as it does not work well with negative numbers. Consider using " +"[method @GlobalScope.posmod] instead if you want to handle negative numbers.\n" +"[codeblock]\n" +"print(Vector4i(10, -20, 30, -40) % Vector4i(7, 8, 9, 10)) # Prints (3, -4, 3, " +"0)\n" +"[/codeblock]" +msgstr "" +"Отримує залишок кожного компонента [Vector4i] з компонентами даного " +"[Vector4i]. У цій операції використовується скорочене ділення, яке часто " +"небажано, оскільки воно погано працює з від’ємними числами. Розгляньте " +"можливість використання [method @GlobalScope.posmod] натомість, якщо ви " +"хочете обробляти від’ємні числа. \n" +"[codeblock] \n" +"print(Vector4i(10, -20, 30, -40) % Vector4i(7, 8, 9, 10)) # Друк (3, -4, 3, " +"0) \n" +"[/codeblock]" + +msgid "" +"Gets the remainder of each component of the [Vector4i] with the given [int]. " +"This operation uses truncated division, which is often not desired as it does " +"not work well with negative numbers. Consider using [method @GlobalScope." +"posmod] instead if you want to handle negative numbers.\n" +"[codeblock]\n" +"print(Vector4i(10, -20, 30, -40) % 7) # Prints (3, -6, 2, -5)\n" +"[/codeblock]" +msgstr "" +"Отримує залишок кожного компонента [Vector4i] із заданим [int]. У цій " +"операції використовується скорочене ділення, яке часто небажано, оскільки " +"воно погано працює з від’ємними числами. Розгляньте можливість використання " +"[method @GlobalScope.posmod] натомість, якщо ви хочете обробляти від’ємні " +"числа. \n" +"[codeblock] \n" +"print(Vector4i(10, -20, 30, -40) % 7) # Друк (3, -6, 2, -5) \n" +"[/codeblock]" + +msgid "" +"Multiplies each component of the [Vector4i] by the components of the given " +"[Vector4i].\n" +"[codeblock]\n" +"print(Vector4i(10, 20, 30, 40) * Vector4i(3, 4, 5, 6)) # Prints (30, 80, 150, " +"240)\n" +"[/codeblock]" +msgstr "" +"Помножує кожен компонент [Vector4i] на компоненти заданого [Vector4i].\n" +"[codeblock]\n" +"print(Vector4i(10, 20, 30, 40) * Vector4i(3, 4, 5, 6)) # Prints (30, 80, 150, " +"240)\n" +"[/codeblock]" + +msgid "" +"Multiplies each component of the [Vector4i] by the given [float].\n" +"Returns a Vector4 value due to floating-point operations.\n" +"[codeblock]\n" +"print(Vector4i(10, 20, 30, 40) * 2) # Prints (20.0, 40.0, 60.0, 80.0)\n" +"[/codeblock]" +msgstr "" +"Множить кожен компонент [Vector4i] на заданий [float].\n" +"Повертає значення Vector4 через операції з плаваючою комою.\n" +"[codeblock]\n" +"print(Vector4i(10, 20, 30, 40) * 2) # Prints (20.0, 40.0, 60.0, 80.0)\n" +"[/codeblock]" + msgid "Multiplies each component of the [Vector4i] by the given [int]." msgstr "Множення кожного компонента [Vector4i] за умови [int]." +msgid "" +"Adds each component of the [Vector4i] by the components of the given " +"[Vector4i].\n" +"[codeblock]\n" +"print(Vector4i(10, 20, 30, 40) + Vector4i(3, 4, 5, 6)) # Prints (13, 24, 35, " +"46)\n" +"[/codeblock]" +msgstr "" +"Додає кожен компонент [Vector4i] за допомогою компонентів заданого " +"[Vector4i].\n" +"[codeblock]\n" +"print(Vector4i(10, 20, 30, 40) + Vector4i(3, 4, 5, 6)) # Prints (13, 24, 35, " +"46)\n" +"[/codeblock]" + +msgid "" +"Subtracts each component of the [Vector4i] by the components of the given " +"[Vector4i].\n" +"[codeblock]\n" +"print(Vector4i(10, 20, 30, 40) - Vector4i(3, 4, 5, 6)) # Prints (7, 16, 25, " +"34)\n" +"[/codeblock]" +msgstr "" +"Віднімає кожен компонент [Vector4i] на компоненти заданого [Vector4i].\n" +"[codeblock]\n" +"print(Vector4i(10, 20, 30, 40) - Vector4i(3, 4, 5, 6)) # Prints (7, 16, 25, " +"34)\n" +"[/codeblock]" + +msgid "" +"Divides each component of the [Vector4i] by the components of the given " +"[Vector4i].\n" +"[codeblock]\n" +"print(Vector4i(10, 20, 30, 40) / Vector4i(2, 5, 3, 4)) # Prints (5, 4, 10, " +"10)\n" +"[/codeblock]" +msgstr "" +"Розділяє кожен компонент [Vector4i] на компоненти заданого [Vector4i].\n" +"[codeblock]\n" +"print(Vector4i(10, 20, 30, 40) / Vector4i(2, 5, 3, 4)) # Prints (5, 4, 10, " +"10)\n" +"[/codeblock]" + +msgid "" +"Divides each component of the [Vector4i] by the given [float].\n" +"Returns a Vector4 value due to floating-point operations.\n" +"[codeblock]\n" +"print(Vector4i(10, 20, 30, 40) / 2) # Prints (5.0, 10.0, 15.0, 20.0)\n" +"[/codeblock]" +msgstr "" +"Розділяє кожен компонент [Vector4i] на заданий [float].\n" +"Повертає значення Vector4 через операції з плаваючою комою.\n" +"[codeblock]\n" +"print(Vector4i(10, 20, 30, 40) / 2) # Prints (5.0, 10.0, 15.0, 20.0)\n" +"[/codeblock]" + msgid "Divides each component of the [Vector4i] by the given [int]." msgstr "Дивиди кожного компонента [Vector4i] за умови [int]." @@ -151327,6 +187790,26 @@ msgstr "" "Повертаємо [code]null[/code], якщо колесо не контактує з поверхнею, або " "контактний корпус не є [PhysicsBody3D]." +msgid "" +"Returns the normal of the suspension's collision in world space if the wheel " +"is in contact. If the wheel isn't in contact with anything, returns a vector " +"pointing directly along the suspension axis toward the vehicle in world space." +msgstr "" +"Повертає нормаль зіткнення підвіски у світовому просторі, якщо колесо " +"контактує. Якщо колесо ні з чим не контактує, повертає вектор, що вказує " +"прямо вздовж осі підвіски на автомобіль у світовому просторі." + +msgid "" +"Returns the point of the suspension's collision in world space if the wheel " +"is in contact. If the wheel isn't in contact with anything, returns the " +"maximum point of the wheel's ray cast in world space, which is defined by " +"[code]wheel_rest_length + wheel_radius[/code]." +msgstr "" +"Повертає точку зіткнення підвіски у світовому просторі, якщо колесо " +"контактує. Якщо колесо ні з чим не контактує, повертає максимальну точку " +"променя колеса у світовому просторі, яка визначається [code]wheel_rest_length " +"+ wheel_radius[/code]." + msgid "Returns the rotational speed of the wheel in revolutions per minute." msgstr "Повернення обертальної швидкості колеса в оборотах за хвилину." @@ -151355,6 +187838,38 @@ msgstr "" "транспортного засобу. Для автомобіля з масовим набором до 1000, спробуйте " "значення в діапазоні 25 - 30 для жорстких гальмівних гальмів." +msgid "" +"The damping applied to the suspension spring when being compressed, meaning " +"when the wheel is moving up relative to the vehicle. It is measured in Newton-" +"seconds per millimeter (N⋅s/mm), or megagrams per second (Mg/s). This value " +"should be between 0.0 (no damping) and 1.0, but may be more. A value of 0.0 " +"means the car will keep bouncing as the spring keeps its energy. A good value " +"for this is around 0.3 for a normal car, 0.5 for a race car." +msgstr "" +"Амортизація пружини підвіски під час стиснення, тобто коли колесо рухається " +"вгору відносно автомобіля. Вимірюється в ньютон-секундах на міліметр (Н⋅с/мм) " +"або мегаграмах на секунду (Мг/с). Це значення має бути від 0,0 (без " +"демпфування) до 1,0, але може бути більше. Значення 0,0 означає, що " +"автомобіль продовжуватиме підстрибувати, оскільки пружина зберігає свою " +"енергію. Хорошим значенням для цього є приблизно 0,3 для звичайного " +"автомобіля, 0,5 для гоночного автомобіля." + +msgid "" +"The damping applied to the suspension spring when rebounding or extending, " +"meaning when the wheel is moving down relative to the vehicle. It is measured " +"in Newton-seconds per millimeter (N⋅s/mm), or megagrams per second (Mg/s). " +"This value should be between 0.0 (no damping) and 1.0, but may be more. This " +"value should always be slightly higher than the [member damping_compression] " +"property. For a [member damping_compression] value of 0.3, try a relaxation " +"value of 0.5." +msgstr "" +"Амортизація пружини підвіски під час відскоку або висування, тобто коли " +"колесо рухається вниз відносно автомобіля. Вимірюється в ньютон-секундах на " +"міліметр (Н⋅с/мм) або мегаграмах на секунду (Мг/с). Це значення має бути від " +"0,0 (без демпфування) до 1,0, але може бути більше. Це значення завжди має " +"бути трохи вищим за властивість [member damping_compression]. Для значення " +"[member damping_compression] 0,3 спробуйте значення релаксації 0,5." + msgid "" "Accelerates the wheel by applying an engine force. The wheel is only sped up " "if it is in contact with a surface. The [member RigidBody3D.mass] of the " @@ -151390,6 +187905,17 @@ msgstr "" "транспортного засобу. Хороші результати часто отримують за значенням, що " "становить близько 3 × до 4 × цього числа." +msgid "" +"The stiffness of the suspension, measured in Newtons per millimeter (N/mm), " +"or megagrams per second squared (Mg/s²). Use a value lower than 50 for an off-" +"road car, a value between 50 and 100 for a race car and try something around " +"200 for something like a Formula 1 car." +msgstr "" +"Жорсткість підвіски, виміряна в Ньютонах на міліметр (Н/мм) або мегаграмах на " +"секунду в квадраті (Мг/с²). Використовуйте значення нижче 50 для автомобіля " +"позашляховика, значення від 50 до 100 для гоночного автомобіля та спробуйте " +"приблизно 200 для автомобіля Формули-1." + msgid "" "This is the distance the suspension can travel. As Godot units are equivalent " "to meters, keep this setting relatively low. Try a value between 0.1 and 0.3 " @@ -151554,6 +188080,17 @@ msgstr "" "Повертає стан відтворення, як визначається дзвінками до [метод_play] та " "[метод_stop]." +msgid "" +"Called in response to [member VideoStreamPlayer.autoplay] or [method " +"VideoStreamPlayer.play]. Note that manual playback may also invoke [method " +"_stop] multiple times before this method is called. [method _is_playing] " +"should return [code]true[/code] once playing." +msgstr "" +"Викликається у відповідь на [учасник VideoStreamPlayer.autoplay] або [метод " +"VideoStreamPlayer.play]. Зауважте, що ручне відтворення також може викликати " +"[метод _stop] кілька разів перед викликом цього методу. [метод _is_playing] " +"має повертати [code]true[/code] під час відтворення." + msgid "" "Seeks to [param time] seconds. Called in response to the [member " "VideoStreamPlayer.stream_position] setter." @@ -151577,6 +188114,23 @@ msgstr "" "обов'язкове повернення [param paused]. Викликані у відповідь на [пам'яті " "VideoStreamPlayer.paused]." +msgid "" +"Stops playback. May be called multiple times before [method _play], or in " +"response to [method VideoStreamPlayer.stop]. [method _is_playing] should " +"return [code]false[/code] once stopped." +msgstr "" +"Зупинка відтворення. Може викликатися кілька разів перед [method _play] або у " +"відповідь на [method VideoStreamPlayer.stop]. Після зупинки [метод " +"_is_playing] має повертати [code]false[/code]." + +msgid "" +"Ticks video playback for [param delta] seconds. Called every frame as long as " +"both [method _is_paused] and [method _is_playing] return [code]true[/code]." +msgstr "" +"Позначає відтворення відео протягом [param delta] секунд. Викликається кожен " +"кадр, якщо [method _is_paused] і [method _is_playing] повертають [code]true[/" +"code]." + msgid "" "Render [param num_frames] audio frames (of [method _get_channels] floats " "each) from [param buffer], starting from index [param offset] in the array. " @@ -151761,6 +188315,31 @@ msgstr "" "Повернутися до першого дійсного [World3D] на цей видпорт, пошук [пам'ятний " "світ_3d] майно себе і будь-якого пред'явлення." +msgid "" +"Returns the currently active 2D audio listener. Returns [code]null[/code] if " +"there are no active 2D audio listeners, in which case the active 2D camera " +"will be treated as listener." +msgstr "" +"Повертає поточний активний прослуховувач 2D-аудіо. Повертає [code]null[/" +"code], якщо немає активних прослуховувачів 2D-аудіо, у цьому випадку активна " +"2D-камера розглядатиметься як прослуховувач." + +msgid "" +"Returns the currently active 3D audio listener. Returns [code]null[/code] if " +"there are no active 3D audio listeners, in which case the active 3D camera " +"will be treated as listener." +msgstr "" +"Повертає поточний активний слухач 3D-аудіо. Повертає [code]null[/code], якщо " +"немає активних слухачів 3D-аудіо, у цьому випадку активна 3D-камера " +"розглядатиметься як слухач." + +msgid "" +"Returns the currently active 2D camera. Returns [code]null[/code] if there " +"are no active cameras." +msgstr "" +"Повертає поточну активну 2D-камеру. Повертає [code]null[/code], якщо немає " +"активних камер." + msgid "Returns the currently active 3D camera." msgstr "Повернення в даний час активного 3D камери." @@ -151809,12 +188388,80 @@ msgstr "" "Повертаємо трансформацію з координат до екранних координат вікна, що містить " "вікно віконного менеджера." +msgid "" +"Returns the automatically computed 2D stretch transform, taking the " +"[Viewport]'s stretch settings into account. The final value is multiplied by " +"[member Window.content_scale_factor], but only for the root viewport. If this " +"method is called on a [SubViewport] (e.g., in a scene tree with " +"[SubViewportContainer] and [SubViewport]), the scale factor of the root " +"window will not be applied. Using [method Transform2D.get_scale] on the " +"returned value, this can be used to compensate for scaling when zooming a " +"[Camera2D] node, or to scale down a [TextureRect] to be pixel-perfect " +"regardless of the automatically computed scale factor.\n" +"[b]Note:[/b] Due to how pixel scaling works, the returned transform's X and Y " +"scale may differ slightly, even when [member Window.content_scale_aspect] is " +"set to a mode that preserves the pixels' aspect ratio. If [member Window." +"content_scale_aspect] is [constant Window.CONTENT_SCALE_ASPECT_IGNORE], the X " +"and Y scale may differ [i]significantly[/i]." +msgstr "" +"Повертає автоматично обчислене двовимірне перетворення розтягування з " +"урахуванням параметрів розтягування [Viewport]. Кінцеве значення множиться на " +"[член Window.content_scale_factor], але лише для кореневого вікна перегляду. " +"Якщо цей метод викликається на [SubViewport] (наприклад, у дереві сцени з " +"[SubViewportContainer] і [SubViewport]), коефіцієнт масштабування кореневого " +"вікна не застосовуватиметься. Використовуючи [метод Transform2D.get_scale] " +"для поверненого значення, це можна використовувати для компенсації " +"масштабування під час масштабування вузла [Camera2D] або для зменшення " +"масштабу [TextureRect], щоб він був ідеальним для пікселів, незалежно від " +"автоматично обчисленого коефіцієнта масштабування. \n" +"[b]Примітка:[/b] Через те, як працює масштабування пікселів, масштаб X і Y " +"отриманого перетворення може дещо відрізнятися, навіть якщо для [члена Window." +"content_scale_aspect] встановлено режим, який зберігає співвідношення сторін " +"пікселів. Якщо [member Window.content_scale_aspect] дорівнює [constant Window." +"CONTENT_SCALE_ASPECT_IGNORE], масштаби X і Y можуть [i]суттєво[/i] " +"відрізнятися." + +msgid "" +"Returns the viewport's texture.\n" +"[b]Note:[/b] When trying to store the current texture (e.g. in a file), it " +"might be completely black or outdated if used too early, especially when used " +"in e.g. [method Node._ready]. To make sure the texture you get is correct, " +"you can await [signal RenderingServer.frame_post_draw] signal.\n" +"[codeblock]\n" +"func _ready():\n" +" await RenderingServer.frame_post_draw\n" +" $Viewport.get_texture().get_image().save_png(\"user://Screenshot.png\")\n" +"[/codeblock]\n" +"[b]Note:[/b] When [member use_hdr_2d] is [code]true[/code] the returned " +"texture will be an HDR image encoded in linear space." +msgstr "" +"Повертає текстуру вікна перегляду. \n" +"[b]Примітка.[/b] Під час спроби зберегти поточну текстуру (наприклад, у " +"файлі) вона може бути повністю чорною або застарілою, якщо її використати " +"занадто рано, особливо якщо її використати, наприклад, у. [метод Node." +"_ready]. Щоб переконатися, що отримана вами текстура правильна, ви можете " +"дочекатися сигналу [signal RenderingServer.frame_post_draw]. \n" +"[codeblock] \n" +"func _ready(): \n" +" await RenderingServer.frame_post_draw \n" +" $Viewport.get_texture().get_image().save_png(\"user://Screenshot.png\") \n" +"[/codeblock] \n" +"[b]Примітка.[/b] Якщо [member use_hdr_2d] має значення [code]true[/code], " +"повернута текстура буде зображенням HDR, закодованим у лінійному просторі." + msgid "Returns the viewport's RID from the [RenderingServer]." msgstr "Повертаємо RID портів з [RenderingServer]." msgid "Returns the visible rectangle in global screen coordinates." msgstr "Повертає видимий прямокутник у глобальних координатах екрана." +msgid "" +"Cancels the drag operation that was previously started through [method " +"Control._get_drag_data] or forced with [method Control.force_drag]." +msgstr "" +"Скасовує операцію перетягування, яка раніше була розпочата через [метод " +"Control._get_drag_data] або примусово за допомогою [метод Control.force_drag]." + msgid "" "Returns the drag data from the GUI, that was previously returned by [method " "Control._get_drag_data]." @@ -151822,9 +188469,40 @@ msgstr "" "Повертає дані перетягування з графічних інтерфейсів, які раніше повернулися " "за допомогою [метод._get_drag_data]." +msgid "" +"Returns the currently focused [Control] within this viewport. If no [Control] " +"is focused, returns [code]null[/code]." +msgstr "" +"Повертає поточний фокус [Керування] у цьому вікні перегляду. Якщо [Control] " +"не виділено, повертає [code]null[/code]." + +msgid "" +"Returns the [Control] that the mouse is currently hovering over in this " +"viewport. If no [Control] has the cursor, returns [code]null[/code].\n" +"Typically the leaf [Control] node or deepest level of the subtree which " +"claims hover. This is very useful when used together with [method Node." +"is_ancestor_of] to find if the mouse is within a control tree." +msgstr "" +"Повертає [Елемент керування], на який зараз наведено курсор миші в цьому " +"вікні перегляду. Якщо [Control] не має курсору, повертає [code]null[/code]. \n" +"Зазвичай листовий [Керуючий] вузол або найглибший рівень піддерева, який " +"вимагає наведення. Це дуже корисно, коли використовується разом із [методом " +"Node.is_ancestor_of], щоб визначити, чи знаходиться миша в дереві керування." + msgid "Returns [code]true[/code] if the drag operation is successful." msgstr "Повертаємо [code]true[/code], якщо операція перетягування є успішним." +msgid "" +"Returns [code]true[/code] if a drag operation is currently ongoing and where " +"the drop action could happen in this viewport.\n" +"Alternative to [constant Node.NOTIFICATION_DRAG_BEGIN] and [constant Node." +"NOTIFICATION_DRAG_END] when you prefer polling the value." +msgstr "" +"Повертає [code]true[/code], якщо наразі триває операція перетягування та де " +"ця дія може відбутися у цьому вікні перегляду. \n" +"Альтернатива [constant Node.NOTIFICATION_DRAG_BEGIN] і [constant Node." +"NOTIFICATION_DRAG_END], коли ви віддаєте перевагу опитуванню значення." + msgid "" "Removes the focus from the currently focused [Control] within this viewport. " "If no [Control] has the focus, does nothing." @@ -151853,6 +188531,47 @@ msgstr "" "метод спробує знайти перший материнський порт, який встановлюється для " "обробки вхідних локально, і повернути його значення для [метод_input_handled]." +msgid "" +"Inform the Viewport that the mouse has entered its area. Use this function " +"before sending an [InputEventMouseButton] or [InputEventMouseMotion] to the " +"[Viewport] with [method Viewport.push_input]. See also [method " +"notify_mouse_exited].\n" +"[b]Note:[/b] In most cases, it is not necessary to call this function because " +"[SubViewport] nodes that are children of [SubViewportContainer] are notified " +"automatically. This is only necessary when interacting with viewports in non-" +"default ways, for example as textures in [TextureRect] or with an [Area3D] " +"that forwards input events." +msgstr "" +"Повідомте Viewport, що миша увійшла в його зону. Використовуйте цю функцію " +"перед надсиланням [InputEventMouseButton] або [InputEventMouseMotion] у " +"[Viewport] за допомогою [method Viewport.push_input]. Дивіться також [метод " +"notify_mouse_exited]. \n" +"[b]Примітка:[/b] У більшості випадків немає необхідності викликати цю " +"функцію, оскільки вузли [SubViewport], які є дочірніми для " +"[SubViewportContainer], сповіщаються автоматично. Це необхідно лише під час " +"взаємодії з вікнами перегляду нестандартними способами, наприклад як текстури " +"в [TextureRect] або з [Area3D], який пересилає події введення." + +msgid "" +"Inform the Viewport that the mouse has left its area. Use this function when " +"the node that displays the viewport notices the mouse has left the area of " +"the displayed viewport. See also [method notify_mouse_entered].\n" +"[b]Note:[/b] In most cases, it is not necessary to call this function because " +"[SubViewport] nodes that are children of [SubViewportContainer] are notified " +"automatically. This is only necessary when interacting with viewports in non-" +"default ways, for example as textures in [TextureRect] or with an [Area3D] " +"that forwards input events." +msgstr "" +"Повідомте вікно перегляду, що миша залишила його область. Використовуйте цю " +"функцію, коли вузол, який відображає вікно перегляду, помічає, що миша " +"покинула область відображеного вікна перегляду. Дивіться також [метод " +"notify_mouse_entered]. \n" +"[b]Примітка:[/b] У більшості випадків немає необхідності викликати цю " +"функцію, оскільки вузли [SubViewport], які є дочірніми для " +"[SubViewportContainer], сповіщаються автоматично. Це необхідно лише під час " +"взаємодії з вікнами перегляду нестандартними способами, наприклад як текстури " +"в [TextureRect] або з [Area3D], який пересилає події введення." + msgid "" "Triggers the given [param event] in this [Viewport]. This can be used to pass " "an [InputEvent] between viewports, or to locally apply inputs that were sent " @@ -152123,6 +188842,44 @@ msgstr "" "[b]Note:[/b] [пам'ятна сітка_lod_threshold] не впливає [GeometryInstance3D] " "видимість діапазонів (також відомий як \"ручний\" LOD або ієрархічний LOD)." +msgid "" +"The multisample antialiasing mode for 2D/Canvas rendering. A higher number " +"results in smoother edges at the cost of significantly worse performance. A " +"value of [constant Viewport.MSAA_2X] or [constant Viewport.MSAA_4X] is best " +"unless targeting very high-end systems. This has no effect on shader-induced " +"aliasing or texture aliasing.\n" +"See also [member ProjectSettings.rendering/anti_aliasing/quality/msaa_2d] and " +"[method RenderingServer.viewport_set_msaa_2d]." +msgstr "" +"Режим згладжування з кількома зразками для візуалізації 2D/Canvas. Більше " +"число призводить до більш гладких країв ціною значно гіршої продуктивності. " +"Значення [constant Viewport.MSAA_2X] або [constant Viewport.MSAA_4X] є " +"найкращим, якщо не націлено на високоякісні системи. Це не впливає на " +"накладення шейдерів або на накладення текстур. \n" +"Дивіться також [член ProjectSettings.rendering/anti_aliasing/quality/msaa_2d] " +"і [метод RenderingServer.viewport_set_msaa_2d]." + +msgid "" +"The multisample antialiasing mode for 3D rendering. A higher number results " +"in smoother edges at the cost of significantly worse performance. A value of " +"[constant Viewport.MSAA_2X] or [constant Viewport.MSAA_4X] is best unless " +"targeting very high-end systems. See also bilinear scaling 3D [member " +"scaling_3d_mode] for supersampling, which provides higher quality but is much " +"more expensive. This has no effect on shader-induced aliasing or texture " +"aliasing.\n" +"See also [member ProjectSettings.rendering/anti_aliasing/quality/msaa_3d] and " +"[method RenderingServer.viewport_set_msaa_3d]." +msgstr "" +"Режим мультисемплового згладжування для 3D-рендерінгу. Більше число " +"призводить до більш гладких країв ціною значно гіршої продуктивності. " +"Значення [constant Viewport.MSAA_2X] або [constant Viewport.MSAA_4X] є " +"найкращим, якщо не націлено на високоякісні системи. Дивіться також білінійне " +"масштабування 3D [member scaling_3d_mode] для супервибірки, яка забезпечує " +"вищу якість, але набагато дорожча. Це не впливає на накладення шейдерів або " +"на накладення текстур. \n" +"Дивіться також [член ProjectSettings.rendering/anti_aliasing/quality/msaa_3d] " +"і [метод RenderingServer.viewport_set_msaa_3d]." + msgid "" "If [code]true[/code], the viewport will use a unique copy of the [World3D] " "defined in [member world_3d]." @@ -152205,6 +188962,26 @@ msgstr "" "систем, зменшуючи навантаження процесора та GPU (як менше, кількість дзвінків " "потрібно для малювання сцени без тіней)." +msgid "" +"Sets scaling 3D mode. Bilinear scaling renders at different resolution to " +"either undersample or supersample the viewport. FidelityFX Super Resolution " +"1.0, abbreviated to FSR, is an upscaling technology that produces high " +"quality images at fast framerates by using a spatially aware upscaling " +"algorithm. FSR is slightly more expensive than bilinear, but it produces " +"significantly higher image quality. FSR should be used where possible.\n" +"To control this property on the root viewport, set the [member " +"ProjectSettings.rendering/scaling_3d/mode] project setting." +msgstr "" +"Встановлює режим масштабування 3D. Білінійне масштабування візуалізується з " +"різною роздільною здатністю, щоб зменшити або збільшити вибірку вікна " +"перегляду. FidelityFX Super Resolution 1.0, скорочено FSR, — це технологія " +"масштабування, яка створює високоякісні зображення з високою частотою кадрів " +"за допомогою алгоритму масштабування з урахуванням простору. FSR трохи " +"дорожчий, ніж білінійний, але забезпечує значно вищу якість зображення. Якщо " +"можливо, слід використовувати FSR. \n" +"Щоб керувати цією властивістю в кореневому вікні перегляду, установіть " +"параметр проекту [member ProjectSettings.rendering/scaling_3d/mode]." + msgid "" "Scales the 3D render buffer based on the viewport size uses an image filter " "specified in [member ProjectSettings.rendering/scaling_3d/mode] to scale the " @@ -152239,6 +189016,24 @@ msgstr "" "Щоб контролювати цю властивість у кореневому вікні перегляду, установіть " "параметр проекту [member ProjectSettings.rendering/scaling_3d/scale]." +msgid "" +"Sets the screen-space antialiasing method used. Screen-space antialiasing " +"works by selectively blurring edges in a post-process shader. It differs from " +"MSAA which takes multiple coverage samples while rendering objects. Screen-" +"space AA methods are typically faster than MSAA and will smooth out specular " +"aliasing, but tend to make scenes appear blurry.\n" +"See also [member ProjectSettings.rendering/anti_aliasing/quality/" +"screen_space_aa] and [method RenderingServer.viewport_set_screen_space_aa]." +msgstr "" +"Встановлює використовуваний метод згладжування екранного простору. " +"Згладжування екранного простору працює шляхом вибіркового розмивання країв у " +"шейдері після обробки. Він відрізняється від MSAA, який бере кілька зразків " +"покриття під час візуалізації об’єктів. Методи екранного простору AA зазвичай " +"швидші, ніж MSAA, і згладжують віддзеркалення, але, як правило, роблять сцени " +"розмитими. \n" +"Дивіться також [член ProjectSettings.rendering/anti_aliasing/quality/" +"screen_space_aa] і [метод RenderingServer.viewport_set_screen_space_aa]." + msgid "" "Controls how much of the original viewport's size should be covered by the 2D " "signed distance field. This SDF can be sampled in [CanvasItem] shaders and is " @@ -152335,6 +189130,61 @@ msgid "" msgstr "" "Якщо [code]true[/code], перегляд портів повинен надати свій фон як прозорий." +msgid "" +"If [code]true[/code], uses a fast post-processing filter to make banding " +"significantly less visible in 3D. 2D rendering is [i]not[/i] affected by " +"debanding unless the [member Environment.background_mode] is [constant " +"Environment.BG_CANVAS].\n" +"In some cases, debanding may introduce a slightly noticeable dithering " +"pattern. It's recommended to enable debanding only when actually needed since " +"the dithering pattern will make lossless-compressed screenshots larger.\n" +"See also [member ProjectSettings.rendering/anti_aliasing/quality/" +"use_debanding] and [method RenderingServer.viewport_set_use_debanding]." +msgstr "" +"Якщо [code]true[/code], використовується фільтр швидкої постобробки, щоб " +"зробити смуги значно менш помітними в 3D. На 2D-візуалізацію [i]не[/i] " +"впливає розблокування, якщо [member Environment.background_mode] не є " +"[constant Environment.BG_CANVAS]. \n" +"У деяких випадках усунення смуг може призвести до злегка помітного згасання. " +"Рекомендується вмикати дебандування лише тоді, коли це дійсно необхідно, " +"оскільки шаблон дизерінгу збільшить стиснуті без втрат знімки екрана. \n" +"Дивіться також [член ProjectSettings.rendering/anti_aliasing/quality/" +"use_debanding] і [метод RenderingServer.viewport_set_use_debanding]." + +msgid "" +"If [code]true[/code], 2D rendering will use an high dynamic range (HDR) " +"format framebuffer matching the bit depth of the 3D framebuffer. When using " +"the Forward+ renderer this will be an [code]RGBA16[/code] framebuffer, while " +"when using the Mobile renderer it will be an [code]RGB10_A2[/code] " +"framebuffer. Additionally, 2D rendering will take place in linear color space " +"and will be converted to sRGB space immediately before blitting to the screen " +"(if the Viewport is attached to the screen). Practically speaking, this means " +"that the end result of the Viewport will not be clamped into the [code]0-1[/" +"code] range and can be used in 3D rendering without color space adjustments. " +"This allows 2D rendering to take advantage of effects requiring high dynamic " +"range (e.g. 2D glow) as well as substantially improves the appearance of " +"effects requiring highly detailed gradients.\n" +"[b]Note:[/b] This setting will have no effect when using the Compatibility " +"renderer, which always renders in low dynamic range for performance reasons." +msgstr "" +"Якщо [code]true[/code], 2D-візуалізація використовуватиме буфер кадрів у " +"форматі високого динамічного діапазону (HDR), який відповідає бітовій глибині " +"буфера кадрів 3D. У разі використання засобу візуалізації Forward+ це буде " +"буфер кадрів [code]RGBA16[/code], тоді як під час використання засобу " +"візуалізації Mobile це буде буфер кадрів [code]RGB10_A2[/code]. Крім того, 2D-" +"візуалізація відбуватиметься в лінійному колірному просторі та " +"перетворюватиметься на простір sRGB безпосередньо перед відображенням на " +"екрані (якщо вікно перегляду прикріплено до екрана). Практично кажучи, це " +"означає, що кінцевий результат вікна перегляду не буде обмежений діапазоном " +"[code]0-1[/code] і може використовуватися в 3D-рендерінгу без коригування " +"простору кольорів. Це дозволяє під час 2D-рендерінгу використовувати переваги " +"ефектів, що вимагають високого динамічного діапазону (наприклад, 2D-" +"світіння), а також суттєво покращує зовнішній вигляд ефектів, які вимагають " +"високодеталізованих градієнтів. \n" +"[b]Примітка.[/b] Цей параметр не матиме жодного ефекту під час використання " +"засобу відтворення сумісності, який із міркувань продуктивності завжди " +"відтворює в низькому динамічному діапазоні." + msgid "" "If [code]true[/code], [OccluderInstance3D] nodes will be usable for occlusion " "culling in 3D for this viewport. For the root viewport, [member " @@ -152367,6 +189217,24 @@ msgstr "" "замовчуванням в шаблонах Web експорт. Увімкнути користувацькі шаблони веб-" "порта з [code]module_raycast_enabled=yes[/code]." +msgid "" +"Enables temporal antialiasing for this viewport. TAA works by jittering the " +"camera and accumulating the images of the last rendered frames, motion vector " +"rendering is used to account for camera and object motion.\n" +"[b]Note:[/b] The implementation is not complete yet, some visual instances " +"such as particles and skinned meshes may show artifacts.\n" +"See also [member ProjectSettings.rendering/anti_aliasing/quality/use_taa] and " +"[method RenderingServer.viewport_set_use_taa]." +msgstr "" +"Вмикає тимчасове згладжування для цього вікна перегляду. TAA працює шляхом " +"тремтіння камери та накопичення зображень останніх візуалізованих кадрів, " +"візуалізація вектора руху використовується для врахування руху камери та " +"об’єкта. \n" +"[b]Примітка. [/b] Реалізація ще не завершена, деякі візуальні екземпляри, як-" +"от частинки та сітки зі шкірою, можуть відображати артефакти. \n" +"Дивіться також [член ProjectSettings.rendering/anti_aliasing/quality/use_taa] " +"і [метод RenderingServer.viewport_set_use_taa]." + msgid "" "If [code]true[/code], the viewport will use the primary XR interface to " "render XR output. When applicable this can result in a stereoscopic image and " @@ -152403,26 +189271,23 @@ msgid "" "- 8×8 = rgb(255, 255, 0) - #ffff00 - Not supported on most hardware\n" "[/codeblock]" msgstr "" -"Текстура для використання [член vrs_mode] встановлюється на [constant " -"Viewport. VRS_TEXTURE].\n" -"Текстура [i]must[/i] використовує формат стиснення без втрат, щоб кольори " -"можуть відповідати точно. Наступні щільності VRS наклеюються на різні " -"кольори, з більш яскравими кольорами, що представляють собою нижній рівень " -"точності затінення:\n" -"[codeblock lang=text]\n" -"- 1×1 = ргб(0, 0, 0) - #000000000\n" -"- 1×2 = ргб(0, 85, 0) - #005500\n" -"- 2×1 = ргб(85, 0, 0) - #550000\n" -"- 2×2 = ргб (85, 85, 0) - #555500\n" -"- 2×4 = ргб (85, 170, 0) - #55aa00\n" -"- 4×2 = ргб (170, 85, 0) - #aa5500\n" -"- 4×4 = ргб (170, 170, 0) - #aaaa00\n" -"- 4×8 = ргб(170, 255, 0) - #aaff00 - Не підтримується на більшості " -"обладнання\n" -"- 8 × 4 = rgb(255, 170, 0) - #ffaa00 - Не підтримується на більшості " -"апаратних засобів\n" -"- 8×8 = ргб(255, 255, 0) - #ffff00 - Не підтримується на більшості " -"обладнання\n" +"Текстура для використання, коли [member vrs_mode] встановлено на [constant " +"Viewport.VRS_TEXTURE]. \n" +"Текстура [i]має[/i] використовувати формат стиснення без втрат, щоб кольори " +"можна було точно підібрати. Наступні щільності VRS зіставляються з різними " +"кольорами, причому яскравіші кольори представляють нижчий рівень точності " +"затінення: \n" +"[codeblock lang=text] \n" +"- 1×1 = rgb(0, 0, 0) - #000000 \n" +"- 1×2 = rgb(0, 85, 0) - #005500 \n" +"- 2×1 = rgb(85, 0, 0) - #550000 \n" +"- 2×2 = rgb(85, 85, 0) - #555500 \n" +"- 2×4 = rgb(85, 170, 0) - #55aa00 \n" +"- 4×2 = rgb(170, 85, 0) - #aa5500 \n" +"- 4×4 = rgb(170, 170, 0) - #aaaa00 \n" +"- 4×8 = rgb(170, 255, 0) - #aaff00 - Не підтримується більшістю обладнання \n" +"- 8×4 = rgb(255, 170, 0) - #ffaa00 - Більшість обладнання не підтримується \n" +"- 8×8 = rgb(255, 255, 0) - #ffff00 - Не підтримується більшістю обладнання \n" "[/codeblock]" msgid "" @@ -152533,6 +189398,68 @@ msgstr "" "використовуватися замість того, щоб білінійні знімки. Значення [code]1.0[/" "code] відключає масштабування." +msgid "" +"Use the [url=https://developer.apple.com/documentation/metalfx/" +"mtlfxspatialscaler#overview]MetalFX spatial upscaler[/url] for the viewport's " +"3D buffer.\n" +"The amount of scaling can be set using [member scaling_3d_scale].\n" +"Values less than [code]1.0[/code] will be result in the viewport being " +"upscaled using MetalFX. Values greater than [code]1.0[/code] are not " +"supported and bilinear downsampling will be used instead. A value of " +"[code]1.0[/code] disables scaling.\n" +"More information: [url=https://developer.apple.com/documentation/" +"metalfx]MetalFX[/url].\n" +"[b]Note:[/b] Only supported when the Metal rendering driver is in use, which " +"limits this scaling mode to macOS and iOS." +msgstr "" +"Використовуйте [url=https://developer.apple.com/documentation/metalfx/" +"mtlfxspatialscaler#overview]MetalFX spatial upscaler[/url] для 3D-буфера " +"вікна перегляду. \n" +"Рівень масштабування можна встановити за допомогою [member " +"scaling_3d_scale]. \n" +"Значення, менші за [code]1.0[/code], призведуть до масштабування вікна " +"перегляду за допомогою MetalFX. Значення, що перевищують [code]1.0[/code], не " +"підтримуються, замість них використовуватиметься білінійне зменшення " +"дискретизації. Значення [code]1.0[/code] вимикає масштабування. \n" +"Більше інформації: [url=https://developer.apple.com/documentation/" +"metalfx]MetalFX[/url]. \n" +"[b]Примітка.[/b] Підтримується лише тоді, коли використовується драйвер " +"рендеринга Metal, який обмежує цей режим масштабування macOS та iOS." + +msgid "" +"Use the [url=https://developer.apple.com/documentation/metalfx/" +"mtlfxtemporalscaler#overview]MetalFX temporal upscaler[/url] for the " +"viewport's 3D buffer.\n" +"The amount of scaling can be set using [member scaling_3d_scale]. To " +"determine the minimum input scale, use the [method RenderingDevice.limit_get] " +"method with [constant RenderingDevice." +"LIMIT_METALFX_TEMPORAL_SCALER_MIN_SCALE].\n" +"Values less than [code]1.0[/code] will be result in the viewport being " +"upscaled using MetalFX. Values greater than [code]1.0[/code] are not " +"supported and bilinear downsampling will be used instead. A value of " +"[code]1.0[/code] will use MetalFX at native resolution as a TAA solution.\n" +"More information: [url=https://developer.apple.com/documentation/" +"metalfx]MetalFX[/url].\n" +"[b]Note:[/b] Only supported when the Metal rendering driver is in use, which " +"limits this scaling mode to macOS and iOS." +msgstr "" +"Використовуйте [url=https://developer.apple.com/documentation/metalfx/" +"mtlfxtemporalscaler#overview]MetalFX temporal upscaler[/url] для 3D-буфера " +"вікна перегляду. \n" +"Рівень масштабування можна встановити за допомогою [member scaling_3d_scale]. " +"Щоб визначити мінімальний масштаб введення, використовуйте метод [method " +"RenderingDevice.limit_get] із [constant RenderingDevice." +"LIMIT_METALFX_TEMPORAL_SCALER_MIN_SCALE]. \n" +"Значення, менші за [code]1.0[/code], призведуть до масштабування вікна " +"перегляду за допомогою MetalFX. Значення, що перевищують [code]1.0[/code], не " +"підтримуються, замість них використовуватиметься білінійне зменшення " +"дискретизації. Значення [code]1.0[/code] використовуватиме MetalFX із рідною " +"роздільною здатністю як рішення TAA. \n" +"Більше інформації: [url=https://developer.apple.com/documentation/" +"metalfx]MetalFX[/url]. \n" +"[b]Примітка.[/b] Підтримується лише тоді, коли використовується драйвер " +"рендеринга Metal, який обмежує цей режим масштабування macOS та iOS." + msgid "Represents the size of the [enum Scaling3DMode] enum." msgstr "Представляє розмір [enum Scaling3DMode] enum." @@ -152571,6 +189498,9 @@ msgstr "" msgid "Represents the size of the [enum MSAA] enum." msgstr "Представляємо розмір [enum MSAA] enum." +msgid "Represents the size of the [enum AnisotropicFiltering] enum." +msgstr "Представляє розмір переліку [enum AnisotropicFiltering]." + msgid "Represents the size of the [enum ScreenSpaceAA] enum." msgstr "Представляємо розмір [enum ScreenSpaceAA] enum." @@ -152606,6 +189536,17 @@ msgstr "" "де вони малюють поверх одного іншого. Найвища надбавка означає, що ви робите " "продуктивність на пікселях малювання, які приховані за іншими." +msgid "" +"Objects are displayed as wireframe models.\n" +"[b]Note:[/b] [method RenderingServer.set_debug_generate_wireframes] must be " +"called before loading any meshes for wireframes to be visible when using the " +"Compatibility renderer." +msgstr "" +"Об’єкти відображаються як каркасні моделі. \n" +"[b]Примітка: [/b] [метод RenderingServer.set_debug_generate_wireframes] має " +"бути викликаний перед завантаженням будь-яких сіток, щоб каркаси були " +"видимими під час використання засобу візуалізації сумісності." + msgid "" "Objects are displayed without lighting information and their textures " "replaced by normal mapping." @@ -152808,6 +189749,60 @@ msgstr "Представляємо розмір [enum VRSUpdateMode] enum." msgid "Provides the content of a [Viewport] as a dynamic texture." msgstr "Забезпечує вміст [Перегляд] як динамічної текстури." +msgid "" +"A [ViewportTexture] provides the content of a [Viewport] as a dynamic " +"[Texture2D]. This can be used to combine the rendering of [Control], [Node2D] " +"and [Node3D] nodes. For example, you can use this texture to display a 3D " +"scene inside a [TextureRect], or a 2D overlay in a [Sprite3D].\n" +"To get a [ViewportTexture] in code, use the [method Viewport.get_texture] " +"method on the target viewport.\n" +"[b]Note:[/b] A [ViewportTexture] is always local to its scene (see [member " +"Resource.resource_local_to_scene]). If the scene root is not ready, it may " +"return incorrect data (see [signal Node.ready]).\n" +"[b]Note:[/b] Instantiating scenes containing a high-resolution " +"[ViewportTexture] may cause noticeable stutter.\n" +"[b]Note:[/b] When using a [Viewport] with [member Viewport.use_hdr_2d] set to " +"[code]true[/code], the returned texture will be an HDR image encoded in " +"linear space. This may look darker than normal when displayed directly on " +"screen. To convert to gamma space, you can do the following:\n" +"[codeblock]\n" +"img.convert(Image.FORMAT_RGBA8)\n" +"imb.linear_to_srgb()\n" +"[/codeblock]\n" +"[b]Note:[/b] Some nodes such as [Decal], [Light3D], and [PointLight2D] do not " +"support using [ViewportTexture] directly. To use texture data from a " +"[ViewportTexture] in these nodes, you need to create an [ImageTexture] by " +"calling [method Texture2D.get_image] on the [ViewportTexture] and passing the " +"result to [method ImageTexture.create_from_image]. This conversion is a slow " +"operation, so it should not be performed every frame." +msgstr "" +"[ViewportTexture] надає вміст [Viewport] як динамічну [Texture2D]. Це можна " +"використовувати для комбінування візуалізації вузлів [Control], [Node2D] і " +"[Node3D]. Наприклад, ви можете використовувати цю текстуру для відображення " +"3D-сцени всередині [TextureRect] або 2D-накладання в [Sprite3D]. \n" +"Щоб отримати [ViewportTexture] у коді, використовуйте метод [method Viewport." +"get_texture] у цільовому вікні перегляду. \n" +"[b]Примітка:[/b] [ViewportTexture] завжди є локальним для своєї сцени (див. " +"[member Resource.resource_local_to_scene]). Якщо корінь сцени не готовий, він " +"може повернути неправильні дані (див. [signal Node.ready]). \n" +"[b]Примітка.[/b] Створення екземплярів сцен, що містять [ViewportTexture] " +"високої роздільної здатності, може спричинити помітне заїкання. \n" +"[b]Примітка.[/b] Якщо використовується [Viewport] із [member Viewport." +"use_hdr_2d], установленим на [code]true[/code], повернута текстура буде " +"зображенням HDR, закодованим у лінійному просторі. Це може виглядати темніше, " +"ніж зазвичай, коли відображається безпосередньо на екрані. Щоб перетворити на " +"гамма-простір, ви можете зробити наступне: \n" +"[codeblock] \n" +"img.convert(Image.FORMAT_RGBA8) \n" +"imb.linear_to_srgb() \n" +"[/codeblock] \n" +"[b]Примітка.[/b] Деякі вузли, як-от [Decal], [Light3D] і [PointLight2D], не " +"підтримують пряме використання [ViewportTexture]. Щоб використовувати дані " +"текстури з [ViewportTexture] у цих вузлах, вам потрібно створити " +"[ImageTexture], викликавши [method Texture2D.get_image] у [ViewportTexture] і " +"передавши результат [method ImageTexture.create_from_image]. Це перетворення " +"є повільною операцією, тому його не слід виконувати кожного кадру." + msgid "" "The path to the [Viewport] node to display. This is relative to the local " "scene root (see [method Resource.get_local_scene]), [b]not[/b] to the nodes " @@ -153616,13 +190611,13 @@ msgid "" "return vec3(max3, max3, max3);\n" "[/codeblock]" msgstr "" -"Перетворення кольору в сірий розмір за допомогою наступної формули:\n" -"[блокування коду]\n" -"vec3 c = вхід;\n" -"float max1 = макс (c.r, c.g);\n" -"float max2 = макс (max1, c.b);\n" -"float max3 = макс (max1, макс2);\n" -"повернення vec3(max3, макс3, макс3);\n" +"Перетворює колір у градації сірого за такою формулою: \n" +"[codeblock] \n" +"vec3 c = input; \n" +"float max1 = max(c.r, c.g); \n" +"float max2 = max(max1, c.b); \n" +"float max3 = max(max1, max2); \n" +"return vec3(max3, max3, max3); \n" "[/codeblock]" msgid "Converts HSV vector to RGB equivalent." @@ -153641,13 +190636,71 @@ msgid "" "return vec3(r, g, b);\n" "[/codeblock]" msgstr "" -"Застосовує ефект тонусу сепії за допомогою наступної формули:\n" -"[блокування коду]\n" -"vec3 c = вхід;\n" -"float r = (c.r * 0.393) + (c.g * 0.769) + (c.b * 0.189);\n" -"float g = (c.r * 0.349) + (c.g * 0,686) + (c.b * 0.168);\n" -"float b = (c.r * 0.272) + (c.g * 0.534) + (c.b * 0.131);\n" -"повернення vec3 (r, g, b);\n" +"Застосовує ефект сепії за такою формулою: \n" +"[codeblock] \n" +"vec3 c = input; \n" +"float r = (c.r * 0,393) + (c.g * 0,769) + (c.b * 0,189); \n" +"float g = (c.r * 0,349) + (c.g * 0,686) + (c.b * 0,168); \n" +"float b = (c.r * 0,272) + (c.g * 0,534) + (c.b * 0,131); \n" +"return vec3(r, g, b); \n" +"[/codeblock]" + +msgid "" +"Converts color from linear color space to sRGB color space using the " +"following formula:\n" +"[codeblock]\n" +"vec3 c = clamp(c, vec3(0.0), vec3(1.0));\n" +"const vec3 a = vec3(0.055f);\n" +"return mix((vec3(1.0f) + a) * pow(c.rgb, vec3(1.0f / 2.4f)) - a, 12.92f * c." +"rgb, lessThan(c.rgb, vec3(0.0031308f)));\n" +"[/codeblock]\n" +"The Compatibility renderer uses a simpler formula:\n" +"[codeblock]\n" +"vec3 c = input;\n" +"return max(vec3(1.055) * pow(c, vec3(0.416666667)) - vec3(0.055), " +"vec3(0.0));\n" +"[/codeblock]" +msgstr "" +"Перетворює колір із лінійного простору кольорів у простір кольорів sRGB за " +"такою формулою: \n" +"[codeblock] \n" +"vec3 c = clamp(c, vec3(0.0), vec3(1.0)); \n" +"const vec3 a = vec3(0,055f); \n" +"return mix((vec3(1.0f) + a) * pow(c.rgb, vec3(1.0f / 2.4f)) - a, 12.92f * c." +"rgb, lessThan(c.rgb, vec3(0.0031308f))); \n" +"[/codeblock] \n" +"Рендерер сумісності використовує простішу формулу: \n" +"[codeblock] \n" +"vec3 c = input; \n" +"return max(vec3(1,055) * pow(c, vec3(0,416666667)) - vec3(0,055), " +"vec3(0,0)); \n" +"[/codeblock]" + +msgid "" +"Converts color from sRGB color space to linear color space using the " +"following formula:\n" +"[codeblock]\n" +"vec3 c = input;\n" +"return mix(pow((c.rgb + vec3(0.055)) * (1.0 / (1.0 + 0.055)), vec3(2.4)), c." +"rgb * (1.0 / 12.92), lessThan(c.rgb, vec3(0.04045)));\n" +"[/codeblock]\n" +"The Compatibility renderer uses a simpler formula:\n" +"[codeblock]\n" +"vec3 c = input;\n" +"return c * (c * (c * 0.305306011 + 0.682171111) + 0.012522878);\n" +"[/codeblock]" +msgstr "" +"Перетворює колір із колірного простору sRGB на лінійний колірний простір за " +"такою формулою: \n" +"[codeblock] \n" +"vec3 c = input; \n" +"return mix(pow((c.rgb + vec3(0,055)) * (1,0 / (1,0 + 0,055)), vec3(2,4)), c." +"rgb * (1,0 / 12,92), lessThan(c.rgb, vec3(0,04045))); \n" +"[/codeblock] \n" +"Рендерер сумісності використовує простішу формулу: \n" +"[codeblock] \n" +"vec3 c = input; \n" +"return c * (c * (c * 0,305306011 + 0,682171111) + 0,012522878); \n" "[/codeblock]" msgid "Represents the size of the [enum Function] enum." @@ -153669,9 +190722,9 @@ msgid "" "result = vec3(1.0) - (vec3(1.0) - a) * (vec3(1.0) - b);\n" "[/codeblock]" msgstr "" -"Виготовити ефект екрану з наступним формулою:\n" -"[блокування коду]\n" -"JavaScript licenses API Веб-сайт Go1.13.8\n" +"Створіть екранний ефект за такою формулою:\n" +"[codeblock]\n" +"result = vec3(1.0) - (vec3(1.0) - a) * (vec3(1.0) - b);\n" "[/codeblock]" msgid "" @@ -153680,9 +190733,9 @@ msgid "" "result = abs(a - b);\n" "[/codeblock]" msgstr "" -"Виготовити ефект різниці з наступним формулою:\n" -"[блокування коду]\n" -"результат = abs(a - b);\n" +"Створіть ефект відмінності за такою формулою:\n" +"[codeblock]\n" +"result = abs(a - b);\n" "[/codeblock]" msgid "" @@ -153691,9 +190744,9 @@ msgid "" "result = min(a, b);\n" "[/codeblock]" msgstr "" -"Виготовити темний ефект з наступним формулою:\n" -"[блокування коду]\n" -"результат = хв(а, б);\n" +"Створіть ефект затемнення за такою формулою:\n" +"[codeblock]\n" +"result = min(a, b);\n" "[/codeblock]" msgid "" @@ -153702,9 +190755,9 @@ msgid "" "result = max(a, b);\n" "[/codeblock]" msgstr "" -"Виготовити ефект блискавки з наступним формулою:\n" -"[блокування коду]\n" -"результат = макс (а, б);\n" +"Створіть ефект освітлення за допомогою такої формули:\n" +"[codeblock]\n" +"result = max(a, b);\n" "[/codeblock]" msgid "" @@ -153721,17 +190774,17 @@ msgid "" "}\n" "[/codeblock]" msgstr "" -"Виготовити ефект накладення з наступним формулою:\n" -"[блокування коду]\n" -"для (int i = 0; i < 3; i++) {\n" -"float base = [i];\n" -"плаваюча суміш = b[i];\n" -"якщо (бази < 0.5) {\n" -"результат[i] = 2.0 * основа * суміш;\n" -"Про нас\n" -"результат[i] = 1.0 - 2.0 * (1.0 - суміш) * (1.0 - основа);\n" -"Про нас\n" -"Про нас\n" +"Створіть ефект накладання за такою формулою: \n" +"[codeblock] \n" +"for (int i = 0; i < 3; i++) { \n" +" float base = a[i]; \n" +" float blend = b[i]; \n" +" if (base < 0,5) { \n" +" result[i] = 2,0 * base * blend; \n" +" } else { \n" +" result[i] = 1,0 - 2,0 * (1,0 - blend) * (1,0 - base); \n" +" } \n" +"}\n" "[/codeblock]" msgid "" @@ -153740,9 +190793,9 @@ msgid "" "result = a / (vec3(1.0) - b);\n" "[/codeblock]" msgstr "" -"Виготовити ефект доджгу з наступним формулою:\n" -"[блокування коду]\n" -"результат = / (vec3(1.0) - b);\n" +"Створіть ефект освітлення за такою формулою:\n" +"[codeblock]\n" +"result = a / (vec3(1.0) - b);\n" "[/codeblock]" msgid "" @@ -153751,9 +190804,9 @@ msgid "" "result = vec3(1.0) - (vec3(1.0) - a) / b;\n" "[/codeblock]" msgstr "" -"Виготовити ефект горіння з наступним формулою:\n" -"[блокування коду]\n" -"результат = vec3(1.0) - (vec3(1.0) - a) / b;\n" +"Створіть ефект опіку за допомогою такої формули:\n" +"[codeblock]\n" +"result = vec3(1.0) - (vec3(1.0) - a) / b;\n" "[/codeblock]" msgid "" @@ -153770,17 +190823,17 @@ msgid "" "}\n" "[/codeblock]" msgstr "" -"Виготовити м'який ефект світла з наступним формулою:\n" -"[блокування коду]\n" -"для (int i = 0; i < 3; i++) {\n" -"float base = [i];\n" -"плаваюча суміш = b[i];\n" -"якщо (бази < 0.5) {\n" -"результат[i] = base * (blend + 0.5);\n" -"Про нас\n" -"результат[i] = 1.0 - (1.0 - основа) * (1.0 - (blend - 0.5));\n" -"Про нас\n" -"Про нас\n" +"Створіть ефект м’якого світла за такою формулою:\n" +"[codeblock]\n" +"for (int i = 0; i < 3; i++) {\n" +" float base = a[i];\n" +" float blend = b[i];\n" +" if (base < 0.5) {\n" +" result[i] = base * (blend + 0.5);\n" +" } else {\n" +" result[i] = 1.0 - (1.0 - base) * (1.0 - (blend - 0.5));\n" +" }\n" +"}\n" "[/codeblock]" msgid "" @@ -153797,17 +190850,17 @@ msgid "" "}\n" "[/codeblock]" msgstr "" -"Виготовити жорсткий ефект світла з наступним формулою:\n" -"[блокування коду]\n" -"для (int i = 0; i < 3; i++) {\n" -"float base = [i];\n" -"плаваюча суміш = b[i];\n" -"якщо (бази < 0.5) {\n" -"результат[i] = base * (2.0 * суміш);\n" -"Про нас\n" -"результат[i] = 1.0 - (1.0 - основа) * (1.0 - 2.0 * (blend - 0.5));\n" -"Про нас\n" -"Про нас\n" +"Створіть ефект жорсткого світла за такою формулою:\n" +"[codeblock]\n" +"for (int i = 0; i < 3; i++) {\n" +" float base = a[i];\n" +" float blend = b[i];\n" +" if (base < 0.5) {\n" +" result[i] = base * (2.0 * blend);\n" +" } else {\n" +" result[i] = 1.0 - (1.0 - base) * (1.0 - 2.0 * (blend - 0.5));\n" +" }\n" +"}\n" "[/codeblock]" msgid "Represents the size of the [enum Operator] enum." @@ -153918,6 +190971,20 @@ msgstr "" "використовувати, якщо [пам'ятний тип] встановити на [constant CTYPE_BOOLEAN] " "або [constant CTYPE_TRANSFORM]." +msgid "" +"The result will be [code]true[/code] if all components in the vector satisfy " +"the comparison condition." +msgstr "" +"Результат буде [code]true[/code], якщо всі компоненти вектора задовольняють " +"умову порівняння." + +msgid "" +"The result will be [code]true[/code] if any component in the vector satisfies " +"the comparison condition." +msgstr "" +"Результат буде [code]true[/code], якщо будь-який компонент у векторі " +"задовольняє умову порівняння." + msgid "Represents the size of the [enum Condition] enum." msgstr "Представляє розмір кондиціонера [enum Condition]." @@ -154045,17 +191112,17 @@ msgid "" "class_name VisualShaderNodeNoise\n" "[/codeblock]" msgstr "" -"У спадку цього класу ви можете створити користувацький [VisualShader] скрипт " -"доповнення, який буде автоматично додано до редактора Visual Shader. " -"Поведінка [VisualShaderNode] визначається шляхом перетягування наданих " -"віртуальних методів.\n" -"Для того, щоб вершина була зареєстрована як доповнення редактора, необхідно " -"використовувати [code]@tool[/code] анотацію і надати [code]class_name[/code] " -"для вашого користувацького сценарію. Наприклад:\n" -"[блокування коду]\n" -"@інструмент\n" -"Подовжувачі VisualShaderNodeCustom\n" -"Головна Відео\n" +"Успадкувавши цей клас, ви можете створити спеціальний аддон сценарію " +"[VisualShader], який буде автоматично додано до Visual Shader Editor. " +"Поведінка [VisualShaderNode] визначається перевизначенням наданих віртуальних " +"методів. \n" +"Щоб вузол було зареєстровано як аддон редактора, ви повинні використати " +"анотацію [code]@tool[/code] і надати [code]class_name[/code] для вашого " +"спеціального сценарію. Наприклад: \n" +"[codeblock] \n" +"@інструмент \n" +"extends VisualShaderNodeCustom \n" +"class_name VisualShaderNodeNoise \n" "[/codeblock]" msgid "Visual Shader plugins" @@ -154364,6 +191431,14 @@ msgstr "Тип похідної функції. Див. [enum Функціона msgid "A type of operands and returned value. See [enum OpType] for options." msgstr "Тип опери та повернутого значення. Подивитися [enum OpType] для опцій." +msgid "" +"Sets the level of precision to use for the derivative function. See [enum " +"Precision] for options. When using the Compatibility renderer, this setting " +"has no effect." +msgstr "" +"Встановлює рівень точності для функції похідної. Дивіться параметри [enum " +"Precision]. Якщо використовується рендерер сумісності, цей параметр не діє." + msgid "Sum of absolute derivative in [code]x[/code] and [code]y[/code]." msgstr "Сума абсолютної похідної [code]x[/code] і [code]y[/code]." @@ -155226,6 +192301,13 @@ msgstr "" "Якщо [code]true[/code], вершина буде мати на замовлення значення за " "замовчуванням." +msgid "" +"The names used for the enum select in the editor. [member hint] must be " +"[constant HINT_ENUM] for this to take effect." +msgstr "" +"Імена, які використовуються для переліку, виберіть у редакторі. [підказка для " +"учасників] має бути [константа HINT_ENUM], щоб це почало діяти." + msgid "Range hint of this node. Use it to customize valid parameter range." msgstr "" "Діапазон підказки цього вузла. Використовуйте його для налаштування діапазону " @@ -155271,6 +192353,12 @@ msgstr "" "Вартість параметра повинна бути в межах зазначеного діапазону, з наведеним " "[покроком] між значеннями." +msgid "" +"The parameter uses an enum to associate preset values to names in the editor." +msgstr "" +"Параметр використовує enum, щоб зв’язати попередньо встановлені значення з " +"іменами в редакторі." + msgid "A boolean comparison operator to be used within the visual shader graph." msgstr "" "Оператор порівняння болеан для використання в графі візуального відтінку." @@ -155678,6 +192766,33 @@ msgstr "" "змінити значення [code]0.1[/code] до [code]-2..2[/code] і т.д. Детальніше " "[method @GlobalScope.remap]." +msgid "" +"The [code]value[/code] port uses a 2D vector type, while the [code]input min[/" +"code], [code]input max[/code], [code]output min[/code], and [code]output max[/" +"code] ports use a floating-point scalar type." +msgstr "" +"Порт [code]value[/code] використовує двовимірний векторний тип, тоді як порти " +"[code]input min[/code], [code]input max[/code], [code]output min[/code] і " +"[code]output max[/code] використовують скалярний тип із плаваючою комою." + +msgid "" +"The [code]value[/code] port uses a 3D vector type, while the [code]input min[/" +"code], [code]input max[/code], [code]output min[/code], and [code]output max[/" +"code] ports use a floating-point scalar type." +msgstr "" +"Порт [code]value[/code] використовує векторний тип 3D, тоді як порти " +"[code]input min[/code], [code]input max[/code], [code]output min[/code] і " +"[code]output max[/code] використовують скалярний тип із плаваючою комою." + +msgid "" +"The [code]value[/code] port uses a 4D vector type, while the [code]input min[/" +"code], [code]input max[/code], [code]output min[/code], and [code]output max[/" +"code] ports use a floating-point scalar type." +msgstr "" +"Порт [code]value[/code] використовує векторний тип 4D, тоді як порти " +"[code]input min[/code], [code]input max[/code], [code]output min[/code] і " +"[code]output max[/code] використовують скалярний тип із плаваючою комою." + msgid "" "A node that allows rerouting a connection within the visual shader graph." msgstr "" @@ -157495,39 +194610,41 @@ msgid "" "[b]Note:[/b] You must keep a reference to channels created this way, or it " "will be closed." msgstr "" -"Повертає нову [WebRTCDataChannel] (або [code]null[/code] з даної [пам'ячої " -"етикетки] і додатково налаштовується через [парм параметри] словник. Цей " -"метод можна назвати лише тоді, коли з'єднання знаходиться в державі [constant " -"STATE_NEW].\n" -"Існує два способи створення робочого каналу даних: або виклик [метод " -"створення_data_канал] на тільки одному з однолітків і слухайте [датні " -"дані_канал_відновлення] на інший, або виклик [метод створення_data_канал] на " -"обох однолітках, з однаковими значеннями, і [code]\"negotiated\"[/code] " -"опція, встановлена до [code]true[/code].\n" -"Дійсні [параметри]:\n" -"[блокування коду]\n" -"Довідник\n" -"\"negotiated\": правда, # При встановленні до true (відхилити), значить канал " -"веде переговори з гуртом. \"і\" необхідно встановити занадто. " -"\"data_канал_received\" не буде називатися.\n" -"\"id\": 1, # Коли \"необхідний\" є істинним, це значення також повинно бути " -"встановлене до того ж значення на обох однолітках.\n" +"Повертає новий [WebRTCDataChannel] (або [code]null[/code] у разі помилки) із " +"заданою [міткою параметрів] і, за бажанням, налаштованим за допомогою " +"словника [параметрів]. Цей метод можна викликати лише тоді, коли з’єднання " +"перебуває в стані [константа STATE_NEW]. \n" +"Існує два способи створити робочий канал даних: або викликати [method " +"create_data_channel] лише на одному з однорангових вузлів і прослуховувати " +"[signal data_channel_received] на іншому, або викликати [method " +"create_data_channel] на обох однорангових вузлах з однаковими значеннями та " +"параметром [code]\"negotiated\"[/code] зі значенням [code]true[/code]. \n" +"Дійсні [параметри]: \n" +"[codeblock] \n" +"{\n" +" \"negotiated\": true, # Якщо встановлено значення true (за замовчуванням " +"вимкнено), це означає, що канал погоджується поза діапазоном. \"id\" також " +"має бути встановлено. \"data_channel_received\" не буде викликано. \n" +" \"id\": 1, # Якщо \"negotiated\" має значення true, це значення також має " +"бути встановлено на однакове значення на обох вузлах. \n" "\n" -"# Тільки один з maxRetransmits і MaxPacketLifeTime можна вказати, не обидва. " -"Вони роблять канал ненадійним (але також краще в режимі реального часу).\n" -"\"maxRetransmits\": 1, # Визначте максимальну кількість спроб, що посприяє " -"поверненню, якщо вони не визнані.\n" -"\"maxPacketLifeTime\": 100, # Вкажіть максимальну кількість часу перед тим, " -"як відмовитися від перерахування ненавчених пакетів (в мілісекундах).\n" -"\"ordered\": true, # Коли в ненадійному режимі (наприклад, \"maxRetransmits\" " -"або \"maxPacketLifetime\" встановлюється\", \"замовлений\" (за замовчуванням) " -"вкажіть, якщо замовлення пакета буде виконуватися.\n" +" # Можна вказати лише один із maxRetransmits і maxPacketLifeTime, а не " +"обидва. Вони роблять канал ненадійним (але також кращим у реальному часі). \n" +" \"maxRetransmits\": 1, # Вкажіть максимальну кількість спроб, яку " +"одноранговий вузол зробить для повторної передачі пакетів, якщо вони не " +"підтверджені. \n" +" \"maxPacketLifeTime\": 100, # Вкажіть максимальний проміжок часу до " +"відмови від повторної передачі непідтверджених пакетів (у мілісекундах). \n" +" \"ordered\": true, # У ненадійному режимі (тобто встановлено " +"\"maxRetransmits\" або \"maxPacketLifetime\"), \"ordered\" (за замовчуванням " +"true) вказує, чи має бути застосовано впорядкування пакетів. \n" "\n" -"\"protocol\": \"my-custom-protocol\", # Призначений для цього каналу.\n" -"Про нас\n" -"[/codeblock]\n" -"[b]Note:[/b] Ви повинні тримати посилання на канали, створені таким чином, " -"або буде закрито." +" \"protocol\": \"my-custom-protocol\", # Спеціальний рядок підпротоколу " +"для цього каналу. \n" +"}\n" +"[/codeblock] \n" +"[b]Примітка:[/b] Ви повинні зберегти посилання на канали, створені таким " +"чином, інакше вони будуть закриті." msgid "" "Creates a new SDP offer to start a WebRTC connection with a remote peer. At " @@ -157583,25 +194700,28 @@ msgid "" "}\n" "[/codeblock]" msgstr "" -"Відновити зв'язок цього однолітнього зв'язку, закривши будь-який раніше " -"активний зв'язок, і назад до стану [constant STATE_NEW]. Словник параметра " -"[param конфігурації] може бути переданий для налаштування з'єднання.\n" -"Дійсні параметри [параметра]:\n" -"[блокування коду]\n" -"Довідник\n" -"\"iceServers\": [\n" -"Довідник\n" -"\"urls\": [ \"stun:stun.example.com:3478\" ], # Один або більше серверів " -"STUN.\n" -"Головна\n" -"Довідник\n" -"\"urls\": [ \"Повернення:turn.example.com:3478\" ], # Один або більше " -"серверів TURN.\n" -"\"username\": \"ім'я користувача\", # Optional username для сервера TURN.\n" -"\"credential\": \"a_password\", # Додатковий пароль для сервера TURN.\n" -"Про нас\n" -"до\n" -"Про нас\n" +"Повторно ініціалізуйте це однорангове з’єднання, закриваючи будь-яке раніше " +"активне з’єднання та повертаючись до стану [константа STATE_NEW]. Для " +"налаштування однорангового з’єднання можна передати словник параметрів [param " +"configuration]. \n" +"Дійсні параметри [param configuration]: \n" +"[codeblock] \n" +"{\n" +" \"iceServers\": [ \n" +" { \n" +" \"urls\": [ \"stun:stun.example.com:3478\" ], # Один або кілька " +"серверів STUN. \n" +" }, \n" +" { \n" +" \"urls\": [ \"turn:turn.example.com:3478\" ], # Один або більше " +"серверів TURN. \n" +" \"username\": \"a_username\", # Додаткове ім'я користувача для " +"сервера TURN. \n" +" \"credential\": \"a_password\", # Додатковий пароль для сервера " +"TURN. \n" +" } \n" +" ] \n" +"}\n" "[/codeblock]" msgid "" @@ -157914,47 +195034,48 @@ msgid "" "To use the peer as part of a WebSocket server refer to [method accept_stream] " "and the online tutorial." msgstr "" -"Цей клас являє собою підключення WebSocket і може бути використаний як клієнт " -"WebSocket (RFC 6455-compliant) або як віддалений одноліток сервера " -"WebSocket.\n" -"Ви можете відправити WebSocket бінарні кадри за допомогою [метод PacketPeer." -"put_packet], а також текстові кадри WebSocket за допомогою [методи відправки] " -"(попередня текстові кадри при взаємодії з API на основі тексту). Ви можете " -"перевірити тип кадру останнього пакета через [метод_string_packet].\n" -"Щоб розпочати клієнт WebSocket, перший виклик [метод підключення_to_url], " -"після чого регулярно зателефонуйте [методичний запис] (наприклад, під час " -"процесу [Нод]). Ви можете перемістити стан розетки за допомогою [method " -"get_ready_state], отримати кількість пакетів, використовуючи [метод " -"PacketPeer.get_Загружено гостем, і отримати їх через [метод PacketPeer." -"get_packet].\n" -"[блоки коду]\n" -"[видання]\n" -"Подовжувачі Нід\n" +"Цей клас представляє з’єднання WebSocket і може використовуватися як клієнт " +"WebSocket (сумісний із RFC 6455) або як віддалений одноранговий вузол сервера " +"WebSocket. \n" +"Ви можете надсилати двійкові кадри WebSocket за допомогою [методу PacketPeer." +"put_packet], а текстові фрейми WebSocket — за допомогою [методу відправлення] " +"(надавайте перевагу текстовим кадрам під час взаємодії з текстовим API). Ви " +"можете перевірити тип кадру останнього пакета за допомогою [метод " +"was_string_packet]. \n" +"Щоб запустити клієнт WebSocket, спочатку викликайте [method connect_to_url], " +"а потім регулярно викликайте [method poll] (наприклад, під час процесу " +"[Node]). Ви можете запитати стан сокета за допомогою [метод get_ready_state], " +"отримати кількість пакетів, що очікують на розгляд, за допомогою [метод " +"PacketPeer.get_available_packet_count] і отримати їх за допомогою [метод " +"PacketPeer.get_packet]. \n" +"[codeblocks] \n" +"[gdscript] \n" +"розширює вузол \n" "\n" -"var гніздо = WebSocketPeer.new()\n" +"var socket = WebSocketPeer.new() \n" "\n" -"Func _ready():\n" -".connect_to_url(\"ws://example.com\")\n" +"func _ready(): \n" +" socket.connect_to_url(\"wss://example.com\") \n" "\n" -"Func _ Процес(delta):\n" -"розетки.poll()\n" -"var держава = розетка.get_ready_state()\n" -"якщо держава == WebSocketPeer.STATE_OPEN:\n" -"при розетці.get_0.4_packet_count():\n" -"Друк(\"Packet: \", роз'єм.get_packet())\n" -"elif стан == WebSocketPeer.STATE_CLOSING:\n" -"# Зберігати опитування для досягнення належної близькості.\n" -"Увійти\n" -"elif стан == WebSocketPeer. ДЕРЖАВИ:\n" -"код товару:\n" -"var причина = розетка.get_close_reason()\n" -"Друк(\"WebSocket закрито з кодом: %d, причина %s. Чистий: %s\" % [код, " -"причина, код != -1]\n" -"set_process(false) # Обробка стоп.\n" -"[/gdscript]\n" -"[/codeblocks]\n" -"Щоб використовувати однолітків як частину сервера WebSocket, зверніться до " -"[метод прийому_stream] та онлайн-уроку." +"func _process(delta): \n" +" socket.poll() \n" +" var state = socket.get_ready_state() \n" +" if state == WebSocketPeer.STATE_OPEN: \n" +" while socket.get_available_packet_count(): \n" +" print(\"Пакет: \", socket.get_packet()) \n" +" стан elif == WebSocketPeer.STATE_CLOSING: \n" +" # Продовжуйте опитування, щоб досягти належного закриття. \n" +" pass \n" +" стан elif == WebSocketPeer.STATE_CLOSED: \n" +" змінний код = socket.get_close_code() \n" +" var reason = socket.get_close_reason() \n" +" print(\"WebSocket закрито з кодом: %d, причина %s. Очищення: %s\" % " +"[код, причина, код != -1]) \n" +" set_process(false) # Зупинити обробку. \n" +"[/gdscript] \n" +"[/codeblocks] \n" +"Щоб використовувати вузол як частину сервера WebSocket, зверніться до [method " +"accept_stream] і онлайн-підручника." msgid "" "Accepts a peer connection performing the HTTP handshake as a WebSocket " @@ -157991,6 +195112,44 @@ msgstr "" "[b]Note:[/b] Веб-експорт не може підтримувати всі коди стану. Будь ласка, " "зв'яжіться з нами для отримання додаткової інформації." +msgid "" +"Connects to the given URL. TLS certificates will be verified against the " +"hostname when connecting using the [code]wss://[/code] protocol. You can pass " +"the optional [param tls_client_options] parameter to customize the trusted " +"certification authorities, or disable the common name verification. See " +"[method TLSOptions.client] and [method TLSOptions.client_unsafe].\n" +"[b]Note:[/b] This method is non-blocking, and will return [constant OK] " +"before the connection is established as long as the provided parameters are " +"valid and the peer is not in an invalid state (e.g. already connected). " +"Regularly call [method poll] (e.g. during [Node] process) and check the " +"result of [method get_ready_state] to know whether the connection succeeds or " +"fails.\n" +"[b]Note:[/b] To avoid mixed content warnings or errors in Web, you may have " +"to use a [param url] that starts with [code]wss://[/code] (secure) instead of " +"[code]ws://[/code]. When doing so, make sure to use the fully qualified " +"domain name that matches the one defined in the server's TLS certificate. Do " +"not connect directly via the IP address for [code]wss://[/code] connections, " +"as it won't match with the TLS certificate." +msgstr "" +"Підключається до вказаної URL-адреси. Сертифікати TLS перевірятимуться на " +"ім’я хоста під час підключення за допомогою протоколу [code]wss://[/code]. Ви " +"можете передати додатковий параметр [param tls_client_options], щоб " +"налаштувати довірені центри сертифікації, або вимкнути перевірку загального " +"імені. Перегляньте [метод TLSOptions.client] і [метод TLSOptions." +"client_unsafe]. \n" +"[b]Примітка: [/b] Цей метод не блокує і поверне [константа OK] перед " +"встановленням з’єднання, доки надані параметри дійсні, а вузол не перебуває в " +"недійсному стані (наприклад, уже підключений). Регулярно викликайте [method " +"poll] (наприклад, під час процесу [Node]) і перевіряйте результат [method " +"get_ready_state], щоб знати, успішне чи невдале підключення. \n" +"[b]Примітка:[/b] Щоб уникнути попереджень про змішаний вміст або помилок у " +"Інтернеті, можливо, вам доведеться використовувати [param url], який " +"починається з [code]wss://[/code] (безпечно) замість [code]ws://[/code]. При " +"цьому переконайтеся, що використовуєте повне доменне ім’я, яке відповідає " +"визначеному в сертифікаті TLS сервера. Не підключайтеся безпосередньо через " +"IP-адресу для з’єднань [code]wss://[/code], оскільки вона не збігатиметься з " +"сертифікатом TLS." + msgid "" "Returns the received WebSocket close frame status code, or [code]-1[/code] " "when the connection was not cleanly closed. Only call this method when " @@ -158096,6 +195255,17 @@ msgstr "" "Додаткові заголовки HTTP, які будуть відправлені під час роботи WebSocket.\n" "[b]Note:[/b] Не підтримується в Інтернет-експорту через обмеження браузера." +msgid "" +"The interval (in seconds) at which the peer will automatically send WebSocket " +"\"ping\" control frames. When set to [code]0[/code], no \"ping\" control " +"frames will be sent.\n" +"[b]Note:[/b] Has no effect in Web exports due to browser restrictions." +msgstr "" +"Інтервал (у секундах), через який одноранговий вузол автоматично надсилатиме " +"контрольні кадри WebSocket \"ping\". Якщо встановлено значення [code]0[/" +"code], контрольні кадри \"ping\" не надсилатимуться. \n" +"[b]Примітка:[/b] не впливає на веб-експорт через обмеження браузера." + msgid "" "The size of the input buffer in bytes (roughly the maximum amount of memory " "that will be allocated for the inbound packets)." @@ -158281,100 +195451,93 @@ msgstr "" "повертають результат. Це робить ініціалізацію [WebXRInterface] трохи " "складнішою, ніж інші інтерфейси XR.\n" "Ось мінімальний код, необхідний для початку захоплюючого сеансу VR:\n" -"[кодовий блок]\n" +"[codeblock]\n" "розширює Node3D\n" "\n" "var webxr_interface\n" "var vr_supported = false\n" "\n" "func _ready():\n" -" # Ми припускаємо, що цей вузол має дочірню кнопку.\n" -" # Ця кнопка призначена для того, щоб користувач дав згоду на вхід у режим " +" # Ми припускаємо, що цей вузол має дочірню кнопку.\n" +" # Ця кнопка призначена для того, щоб користувач дав згоду на вхід у режим " "реальної реальності.\n" -" $Button.pressed.connect(self._on_button_pressed)\n" +" $Button.pressed.connect(self._on_button_pressed)\n" "\n" -" webxr_interface = XRServer.find_interface(\"WebXR\")\n" -" якщо webxr_interface:\n" -" # WebXR використовує багато асинхронних зворотних викликів, тому ми " -"підключаємося до різних\n" -" # сигнали для їх отримання.\n" -" webxr_interface.session_supported.connect(self." -"_webxr_session_supported)\n" -" webxr_interface.session_started.connect(self._webxr_session_started)\n" -" webxr_interface.session_ended.connect(self._webxr_session_ended)\n" -" webxr_interface.session_failed.connect(self._webxr_session_failed)\n" +" webxr_interface = XRServer.find_interface(\"WebXR\")\n" +" якщо webxr_interface:\n" +" # WebXR використовує багато асинхронних зворотних викликів, тому ми " +"підключаємось до різних\n" +" # сигнали для їх отримання.\n" +" webxr_interface.session_supported.connect(self._webxr_session_supported)\n" +" webxr_interface.session_started.connect(self._webxr_session_started)\n" +" webxr_interface.session_ended.connect(self._webxr_session_ended)\n" +" webxr_interface.session_failed.connect(self._webxr_session_failed)\n" "\n" -" # Це негайно повертає - наш метод _webxr_session_supported().\n" -" # (який ми підключили до сигналу \"session_supported\" вище) буде\n" -" # нам зателефонують пізніше, щоб повідомити нам, чи підтримується це " -"чи ні.\n" -" webxr_interface.is_session_supported(\"immersive-vr\")\n" +" # Це негайно повертає - наш метод _webxr_session_supported().\n" +" # (який ми підключили до сигналу \"session_supported\" вище) буде\n" +" # нам зателефонують пізніше, щоб повідомити нам, чи підтримується це чи ні.\n" +" webxr_interface.is_session_supported(\"immersive-vr\")\n" "\n" -"func _webxr_session_supported(session_mode, підтримується):\n" -" if session_mode == 'immersive-vr':\n" -" vr_supported = підтримується\n" +"func _webxr_session_supported(session_mode, supported):\n" +" if session_mode == 'immersive-vr':\n" +" vr_supported = supported \n" "\n" "func _on_button_pressed():\n" -" якщо vr_supported не:\n" -" OS.alert(\"Ваш браузер не підтримує VR\")\n" -" повернення\n" +" if vr_supported not:\n" +" OS.alert(\"Ваш браузер не підтримує VR\")\n" +" return \n" "\n" -" # Ми хочемо захоплюючого сеансу VR, на відміну від AR (\"immersive-ar\") " +" # Ми хочемо захоплюючого сеансу VR, на відміну від AR (\"immersive-ar\") " "або\n" -" # простий переглядач 3DoF ('переглядач').\n" -" webxr_interface.session_mode = 'immersive-vr'\n" -" # 'bounded-floor' — масштаб кімнати, 'local-floor' — стоячи або сидячи\n" -" # досвід (це ставить вас на 1,6 м над землею, якщо у вас гарнітура " -"3DoF),\n" -" # тоді як «локальний» ставить вас на XROrigin.\n" -" # Цей список означає, що він спочатку спробує запитати 'bounded-floor', а " +" # простий переглядач 3DoF ('переглядач').\n" +" webxr_interface.session_mode = 'immersive-vr'\n" +" # 'bounded-floor' — масштаб кімнати, 'local-floor' — стоячи або сидячи\n" +" # досвід (це дає вам 1,6 м над землею, якщо у вас гарнітура 3DoF),\n" +" # тоді як «локальний» ставить вас на XROrigin.\n" +" # Цей список означає, що він спочатку спробує запитати 'bounded-floor', а " "потім\n" -" # резервний варіант на 'local-floor' і зрештою на 'local', якщо нічого " +" # резервний варіант на 'local-floor' і зрештою на 'local', якщо нічого " "іншого немає\n" -" # підтримується.\n" -" webxr_interface.requested_reference_space_types = 'обмежений поверх, " +" # підтримується.\n" +" webxr_interface.requested_reference_space_types = 'обмежений поверх, " "локальний поверх, локальний'\n" -" # Щоб використовувати 'local-floor' або 'bounded-floor', ми також " -"повинні\n" -" # позначити функції як обов’язкові чи необов’язкові. Включивши " -"«відстеження рук»\n" -" # як додаткова функція, вона буде ввімкнена, якщо підтримується.\n" -" webxr_interface.required_features = 'local-floor'\n" -" webxr_interface.optional_features = 'обмежена підлога, ручне " -"відстеження'\n" +" # Щоб використовувати 'local-floor' або 'bounded-floor', ми також повинні\n" +" # позначити функції як обов’язкові чи необов’язкові. Включивши «відстеження " +"рук»\n" +" # як додаткова функція, вона буде ввімкнена, якщо підтримується.\n" +" webxr_interface.required_features = 'local-floor'\n" +" webxr_interface.optional_features = 'bounded-floor, hand-tracking'\n" "\n" -" # Це поверне false, якщо ми не зможемо навіть запитати сеанс,\n" -" # однак пізніше в цьому процесі може виникнути асинхронна помилка, тому " -"ми\n" -" # знати, чи дійсно це вдалося чи не вдалося, лише коли наш\n" -" Викликаються # методи _webxr_session_started() або " -"_webxr_session_failed().\n" -" якщо не webxr_interface.initialize():\n" -" OS.alert(\"Не вдалося ініціалізувати\")\n" -" повернення\n" +" # Це поверне false, якщо ми не зможемо навіть запитати сеанс,\n" +" # однак пізніше в цьому процесі може виникнути асинхронна помилка, тому ми\n" +" # знати, чи дійсно це вдалося чи не вдалося, лише коли наш\n" +" Викликаються # методи _webxr_session_started() або _webxr_session_failed().\n" +" if not webxr_interface.initialize():\n" +" OS.alert(\"Не вдалося ініціалізувати\")\n" +" return \n" "\n" "func _webxr_session_started():\n" -" $Button.visible = false\n" -" # Це повідомляє Godot почати рендеринг на гарнітурі.\n" -" get_viewport().use_xr = true\n" -" # Це буде типовий еталонний простір, який ви остаточно отримали\n" -" # типу, які ви запитували вище. Це корисно, якщо ви хочете, щоб гра\n" -" # працювати трохи інакше в 'bounded-floor' проти 'local-floor'.\n" -" print(\"Тип посилального простору: \", webxr_interface." +" $Button.visible = false\n" +" # Це повідомляє Godot почати рендеринг на гарнітурі.\n" +" get_viewport().use_xr = true\n" +" # Це буде типовий еталонний простір, який ви остаточно отримали\n" +" # типу, які ви запитували вище. Це корисно, якщо ви хочете, щоб гра\n" +" # працювати трохи інакше в 'bounded-floor' проти 'local-floor'.\n" +" print(\"Тип посилального простору: \", webxr_interface." "reference_space_type)\n" -" # Це буде список функцій, які були успішно ввімкнені\n" -" # (за винятком браузерів, які не підтримують цю властивість).\n" -" print(\"Увімкнені функції: \", webxr_interface.enabled_features)\n" +" # Це буде список функцій, які були успішно ввімкнені\n" +" # (за винятком браузерів, які не підтримують цю властивість).\n" +" print(\"Увімкнені функції: \", webxr_interface.enabled_features)\n" "\n" "func _webxr_session_ended():\n" -" $Button.visible = true\n" -" # Якщо користувач виходить із режиму занурення, ми повідомляємо Godot " +" $Button.visible = ture\n" +" # Якщо користувач виходить із режиму занурення, ми повідомляємо Godot " "відобразити в Інтернеті\n" -" # сторінка знову.\n" -" get_viewport().use_xr = false\n" +" # сторінка знову.\n" +" get_viewport().use_xr = false\n" "\n" -"func _webxr_session_failed(повідомлення):\n" -" OS.alert(\"Не вдалося ініціалізувати: \" + повідомлення)\n" +"func _webxr_session_failed(message):\n" +" OS.alert(\"Не вдалося ініціалізувати: \" + повідомлення)\n" "[/codeblock]\n" "Є кілька способів обробки введення \"контролера\":\n" "- Використання вузлів [XRController3D] і їхніх сигналів [signal " @@ -158387,8 +195550,8 @@ msgstr "" "так і для нетрадиційних джерел введення, як-от дотик до екрана, голосова " "команда чи натискання кнопки на самому пристрої.\n" "Ви можете використовувати обидва методи, щоб дозволити вашій грі чи додатку " -"підтримувати ширший або вужчий набір пристроїв і методів введення, або " -"дозволити розширенішу взаємодію з розширенішими." +"підтримувати ширший або вужчий набір пристроїв і методів введення або " +"дозволити розширенішу взаємодію з більш досконалими пристроями." msgid "How to make a VR game for WebXR with Godot 4" msgstr "Як зробити VR-гра для WebXR з Godot 4" @@ -158745,6 +195908,9 @@ msgstr "" msgid "Emitted when [member visibility_state] has changed." msgstr "Увімкнено, коли [пам'ятна видимість_держава]." +msgid "We don't know the target ray mode." +msgstr "Ми не знаємо режим цільового променя." + msgid "" "Target ray originates at the viewer's eyes and points in the direction they " "are looking." @@ -159019,6 +196185,9 @@ msgid "" "window." msgstr "Повертає [code]true[/code], якщо вікно наразі вбудовано в інше вікно." +msgid "Returns [code]true[/code] if layout is right-to-left." +msgstr "Повертаємо [code]true[/code], якщо макет прямо вліво." + msgid "" "Returns [code]true[/code] if the window can be maximized (the maximize button " "is enabled)." @@ -159255,6 +196424,28 @@ msgstr "" "З'являються [Дерево]. Це дозволяє взаємодіяти з [Window] і не змінює будь-яку " "властивість, крім видимості (наприклад, [method popup])." +msgid "" +"Starts an interactive drag operation on the window, using the current mouse " +"position. Call this method when handling a mouse button being pressed to " +"simulate a pressed event on the window's title bar. Using this method allows " +"the window to participate in space switching, tiling, and other system " +"features." +msgstr "" +"Починає інтерактивну операцію перетягування у вікні, використовуючи поточну " +"позицію миші. Викликайте цей метод під час обробки натиснутої кнопки миші, " +"щоб імітувати подію натискання в рядку заголовка вікна. Використання цього " +"методу дозволяє вікну брати участь у перемиканні простору, мозаїці та інших " +"функціях системи." + +msgid "" +"Starts an interactive resize operation on the window, using the current mouse " +"position. Call this method when handling a mouse button being pressed to " +"simulate a pressed event on the window's edge." +msgstr "" +"Починає інтерактивну операцію зміни розміру вікна, використовуючи поточну " +"позицію миші. Викликайте цей метод під час обробки натиснутої кнопки миші, " +"щоб імітувати подію натискання на краю вікна." + msgid "" "If [code]true[/code], the window will be on top of all other windows. Does " "not work if [member transient] is enabled." @@ -159272,6 +196463,15 @@ msgstr "" "Визначає, як поводиться контент при перерахунках [Дерево]. Базовий аспект " "визначається [пам'ятним змістом_розміром]." +msgid "" +"Specifies the base scale of [Window]'s content when its [member size] is " +"equal to [member content_scale_size]. See also [method Viewport." +"get_stretch_transform]." +msgstr "" +"Визначає базовий масштаб вмісту [Window], коли його [member size] дорівнює " +"[member content_scale_size]. Дивіться також [метод Viewport." +"get_stretch_transform]." + msgid "Specifies how the content is scaled when the [Window] is resized." msgstr "Вкажіть, як вміст масштабується при перерахуванні [Window]." @@ -159296,6 +196496,15 @@ msgstr "" msgid "The screen the window is currently on." msgstr "В даний час екран вікна." +msgid "" +"Windows is excluded from screenshots taken by [method DisplayServer." +"screen_get_image], [method DisplayServer.screen_get_image_rect], and [method " +"DisplayServer.screen_get_pixel]." +msgstr "" +"Windows виключається зі знімків екрана, зроблених [методом DisplayServer." +"screen_get_image], [методом DisplayServer.screen_get_image_rect] і [методом " +"DisplayServer.screen_get_pixel]." + msgid "" "If [code]true[/code], the [Window] will be in exclusive mode. Exclusive " "windows are always on top of their parent and will block all input going to " @@ -159386,6 +196595,75 @@ msgstr "" "Windows.\n" "[b]Примітка:[/b] Зручності та умови для роботи з вікнами." +msgid "" +"Sets a polygonal region of the window which accepts mouse events. Mouse " +"events outside the region will be passed through.\n" +"Passing an empty array will disable passthrough support (all mouse events " +"will be intercepted by the window, which is the default behavior).\n" +"[codeblocks]\n" +"[gdscript]\n" +"# Set region, using Path2D node.\n" +"$Window.mouse_passthrough_polygon = $Path2D.curve.get_baked_points()\n" +"\n" +"# Set region, using Polygon2D node.\n" +"$Window.mouse_passthrough_polygon = $Polygon2D.polygon\n" +"\n" +"# Reset region to default.\n" +"$Window.mouse_passthrough_polygon = []\n" +"[/gdscript]\n" +"[csharp]\n" +"// Set region, using Path2D node.\n" +"GetNode<Window>(\"Window\").MousePassthroughPolygon = " +"GetNode<Path2D>(\"Path2D\").Curve.GetBakedPoints();\n" +"\n" +"// Set region, using Polygon2D node.\n" +"GetNode<Window>(\"Window\").MousePassthroughPolygon = " +"GetNode<Polygon2D>(\"Polygon2D\").Polygon;\n" +"\n" +"// Reset region to default.\n" +"GetNode<Window>(\"Window\").MousePassthroughPolygon = [];\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] This property is ignored if [member mouse_passthrough] is set to " +"[code]true[/code].\n" +"[b]Note:[/b] On Windows, the portion of a window that lies outside the region " +"is not drawn, while on Linux (X11) and macOS it is.\n" +"[b]Note:[/b] This property is implemented on Linux (X11), macOS and Windows." +msgstr "" +"Встановлює багатокутну область вікна, яка приймає події миші. Події миші за " +"межами регіону будуть проходити. \n" +"Передача порожнього масиву вимкне підтримку проходження (усі події миші " +"перехоплюватимуться вікном, що є типовою поведінкою). \n" +"[codeblocks] \n" +"[gdscript] \n" +"# Встановити регіон, використовуючи вузол Path2D. \n" +"$Window.mouse_passthrough_polygon = $Path2D.curve.get_baked_points() \n" +"\n" +"# Встановити область, використовуючи вузол Polygon2D. \n" +"$Window.mouse_passthrough_polygon = $Polygon2D.polygon \n" +"\n" +"# Скинути регіон до стандартних. \n" +"$Window.mouse_passthrough_polygon = [] \n" +"[/gdscript] \n" +"[csharp] \n" +"// Встановити регіон, використовуючи вузол Path2D. \n" +"GetNode<Window>(\"Вікно\").MousePassthroughPolygon = " +"GetNode<Path2D>(\"Path2D\").Curve.GetBakedPoints(); \n" +"\n" +"// Встановити область, використовуючи вузол Polygon2D. \n" +"GetNode<Window>(\"Вікно\").MousePassthroughPolygon = " +"GetNode<Polygon2D>(\"Polygon2D\").Polygon; \n" +"\n" +"// Скидання регіону до типового. \n" +"GetNode<Window>(\"Window\").MousePassthroughPolygon = []; \n" +"[/csharp] \n" +"[/codeblocks] \n" +"[b]Примітка:[/b] Ця властивість ігнорується, якщо [member mouse_passthrough] " +"має значення [code]true[/code]. \n" +"[b]Примітка.[/b] У Windows частина вікна, яка лежить за межами області, не " +"малюється, тоді як у Linux (X11) і macOS це так. \n" +"[b]Примітка.[/b] Ця властивість реалізована в Linux (X11), macOS і Windows." + msgid "" "If [code]true[/code], the [Window] will be considered a popup. Popups are sub-" "windows that don't show as separate windows in system's window manager's " @@ -159416,6 +196694,17 @@ msgstr "" "початковий_положення] встановлюється на [constant " "WINDOW_INITIAL_SETTING_ABSOLUTE]." +msgid "" +"If [code]true[/code], the [Window] will override the OS window style to " +"display sharp corners.\n" +"[b]Note:[/b] This property is implemented only on Windows (11).\n" +"[b]Note:[/b] This property only works with native windows." +msgstr "" +"Якщо [code]true[/code], [Window] замінить стиль вікна ОС, щоб відображати " +"гострі кути. \n" +"[b]Примітка:[/b] Ця властивість реалізована лише у Windows (11). \n" +"[b]Примітка:[/b] Ця властивість працює лише з рідними вікнами." + msgid "The window's size in pixels." msgstr "Розмір вікна в пікселів." @@ -159536,6 +196825,33 @@ msgstr "" "переміщення вікна з дисплеєм Retina до нижньої роздільної здатності).\n" "[b]Примітка:[/b] Тільки реалізовані на macOS." +msgid "" +"Emitted when files are dragged from the OS file manager and dropped in the " +"game window. The argument is a list of file paths.\n" +"[codeblock]\n" +"func _ready():\n" +" get_window().files_dropped.connect(on_files_dropped)\n" +"\n" +"func on_files_dropped(files):\n" +" print(files)\n" +"[/codeblock]\n" +"[b]Note:[/b] This signal only works with native windows, i.e. the main window " +"and [Window]-derived nodes when [member Viewport.gui_embed_subwindows] is " +"disabled in the main viewport." +msgstr "" +"Видається, коли файли перетягуються з диспетчера файлів ОС і скидаються у " +"вікно гри. Аргументом є список шляхів до файлів. \n" +"[codeblock] \n" +"func _ready(): \n" +" get_window().files_dropped.connect(on_files_dropped) \n" +"\n" +"func on_files_dropped(file): \n" +" друк (file) \n" +"[/codeblock] \n" +"[b]Примітка: [/b] Цей сигнал працює лише з рідними вікнами, тобто головним " +"вікном і вузлами, похідними від [Window], коли [member Viewport." +"gui_embed_subwindows] вимкнено в головному вікні перегляду." + msgid "Emitted when the [Window] gains focus." msgstr "Увімкніть, коли [Window] отримує фокус." @@ -159571,6 +196887,9 @@ msgstr "" "_guiable_input] [code]false[/code] і незалежно від того, чи зараз він " "зосередився або ні." +msgid "Emitted when window title bar text is changed." +msgstr "Видається під час зміни тексту рядка заголовка вікна." + msgid "" "Emitted when window title bar decorations are changed, e.g. macOS window " "enter/exit full screen mode, or extend-to-title flag is changed." @@ -159618,6 +196937,43 @@ msgstr "" "оновлення теми можна застосувати відразу, коли вершина надходить на дерево " "сцени." +msgid "" +"A single window full screen mode. This mode has less overhead, but only one " +"window can be open on a given screen at a time (opening a child window or " +"application switching will trigger a full screen transition).\n" +"Full screen window covers the entire display area of a screen and has no " +"border or decorations. The display's video mode is not changed.\n" +"[b]On Android:[/b] This enables immersive mode.\n" +"[b]On Windows:[/b] Depending on video driver, full screen transition might " +"cause screens to go black for a moment.\n" +"[b]On macOS:[/b] A new desktop is used to display the running project. " +"Exclusive full screen mode prevents Dock and Menu from showing up when the " +"mouse pointer is hovering the edge of the screen.\n" +"[b]On Linux (X11):[/b] Exclusive full screen mode bypasses compositor.\n" +"[b]Note:[/b] Regardless of the platform, enabling full screen will change the " +"window size to match the monitor's size. Therefore, make sure your project " +"supports [url=$DOCS_URL/tutorials/rendering/multiple_resolutions." +"html]multiple resolutions[/url] when enabling full screen mode." +msgstr "" +"Повноекранний режим одного вікна. У цьому режимі менше накладних витрат, але " +"на певному екрані одночасно може бути відкрито лише одне вікно (відкриття " +"дочірнього вікна або перемикання програми призведе до переходу на весь " +"екран). \n" +"Повноекранне вікно охоплює всю область відображення екрана й не має рамок чи " +"прикрас. Відеорежим дисплея не змінено. \n" +"[b]На Android:[/b] це вмикає режим занурення. \n" +"[b]У Windows:[/b] Залежно від відеодрайвера повноекранний перехід може " +"призвести до того, що екрани на мить стануть чорними. \n" +"[b]У macOS:[/b] новий робочий стіл використовується для відображення " +"запущеного проекту. Ексклюзивний повноекранний режим запобігає відображенню " +"док-станції та меню, коли вказівник миші наводиться на край екрана. \n" +"[b]У Linux (X11):[/b] ексклюзивний повноекранний режим обходить композитор. \n" +"[b]Примітка.[/b] Незалежно від платформи, увімкнення повноекранного режиму " +"змінить розмір вікна відповідно до розміру монітора. Тому переконайтеся, що " +"ваш проект підтримує [url=$DOCS_URL/tutorials/rendering/multiple_resolutions." +"html]кілька роздільних здатностей[/url] під час увімкнення повноекранного " +"режиму." + msgid "" "The window can't be resized by dragging its resize grip. It's still possible " "to resize the window using [member size]. This flag is ignored for full " @@ -159700,6 +197056,31 @@ msgstr "" "Всі події мишки пропускаються до основного вікна того ж програми.\n" "[b]Примітка:[/b] Цей прапор не впливає на вбудовані вікна." +msgid "" +"Window style is overridden, forcing sharp corners.\n" +"[b]Note:[/b] This flag has no effect in embedded windows.\n" +"[b]Note:[/b] This flag is implemented only on Windows (11)." +msgstr "" +"Стиль вікна перевизначено, створюючи гострі кути.\n" +"[b]Примітка:[/b] цей прапорець не діє на вбудовані вікна.\n" +"[b]Примітка:[/b] цей прапор реалізований лише у Windows (11)." + +msgid "" +"Windows is excluded from screenshots taken by [method DisplayServer." +"screen_get_image], [method DisplayServer.screen_get_image_rect], and [method " +"DisplayServer.screen_get_pixel].\n" +"[b]Note:[/b] This flag is implemented on macOS and Windows.\n" +"[b]Note:[/b] Setting this flag will [b]NOT[/b] prevent other apps from " +"capturing an image, it should not be used as a security measure." +msgstr "" +"Windows виключається зі знімків екрана, зроблених [методом DisplayServer." +"screen_get_image], [методом DisplayServer.screen_get_image_rect] і [методом " +"DisplayServer.screen_get_pixel]. \n" +"[b]Примітка.[/b] Цей прапорець реалізовано в macOS і Windows. \n" +"[b]Примітка: [/b] Встановлення цього прапорця [b]НЕ[/b] завадить іншим " +"програмам захоплювати зображення, його не слід використовувати як засіб " +"безпеки." + msgid "Max value of the [enum Flags]." msgstr "Макс. значення [enum Flags]." @@ -159786,6 +197167,13 @@ msgstr "" "Автоматичний напрямок макета, визначений з батьківського напрямку макетування " "вікна." +msgid "Automatic layout direction, determined from the current locale." +msgstr "" +"Автоматичний напрямок макета, визначений з поточного локального напрямку." + +msgid "Automatic layout direction, determined from the system locale." +msgstr "Автоматичний напрямок макета, визначений на основі локалі системи." + msgid "Initial window position is determined by [member position]." msgstr "Початкова позиція вікна визначається положенням [члена]." @@ -159922,59 +197310,57 @@ msgid "" "[b]Note:[/b] Using this singleton could affect performance negatively if the " "task being distributed between threads is not computationally expensive." msgstr "" -"[WorkerThreadPool] Singleton виділяється набором [Thread]s (звані нитки " -"робочого призначення) на старті проекту і забезпечує методи перевантаження " -"завдань до них. Це може бути використана для простого багаточитання без " -"необхідності створення [Thread]s.\n" -"Завдання тримають [знімний], щоб працювати нитками. [WorkerThreadPool] може " -"використовуватися для створення регулярних завдань, які будуть прийматися " -"однією робочою ниткою, або груповими завданнями, які можна розподіляти між " -"декількома робочими нитками. Групові завдання виконують [Святий] кілька " -"разів, що робить їх корисними для ітерації над багатьма елементами, такими як " -"вороги в арені.\n" -"Ось зразок про те, як відвантажити дорогу функцію до робочих ниток:\n" -"[блоки коду]\n" -"[видання]\n" -"var ворогів = [] # масив, який буде наповнений ворогами.\n" +"Синглтон [WorkerThreadPool] виділяє набір [Thread] (так звані робочі потоки) " +"під час запуску проекту та надає методи для розвантаження завдань на них. Це " +"можна використовувати для простої багатопоточності без необхідності створення " +"[Thread]. \n" +"Завдання утримують [Callable] для виконання потоками. [WorkerThreadPool] " +"можна використовувати для створення звичайних завдань, які виконуватимуться " +"одним робочим потоком, або групових завдань, які можна розподіляти між " +"кількома робочими потоками. Групові завдання виконують [Callable] кілька " +"разів, що робить їх корисними для повторення багатьох елементів, наприклад " +"ворогів на арені. \n" +"Ось приклад того, як розвантажити дорогу функцію на робочі потоки: \n" +"[Наведений] \n" +"[gdscript] \n" +"var enemies = [] # Масив, який потрібно заповнити ворогами. \n" "\n" -"href=\"http://realtor.if.ua/\" title=\"Агентство нерухомості Ріелтор\" " -"target=\"_blank\"><img src=\"http://realtor.if.ua/images/realtor_88_31.gif\" " -"width=\"88\" height=\"31\" alt=\"Агентство нерухомості Ріелтор\" /></a>\n" -"var оброблений_enemy = вороги[enemy_index]\n" -"# Витратна логіка ...\n" +"func process_enemy_ai (enemy_index): \n" +" var processed_enemy = вороги [enemy_index] \n" +" # Дорога логіка... \n" "\n" -"Func _ Процес(delta):\n" -"var завдання_id = WorkerThreadPool.add_group_task(process_enemy_ai, вороги." -"size()))\n" -"# Інше код...\n" -"WorkerThreadPool.wait_for_group_task_completion(task_id)\n" -"# Інший код, який залежить від ворожого AI, вже оброблюється.\n" -"[/gdscript]\n" -"[csharp]\n" -"приватний список <Node> _enemies = новий список <Node>(); // Список для " -"заповнення ворогами.\n" +"func _process(delta): \n" +" var task_id = WorkerThreadPool.add_group_task(process_enemy_ai, enemies." +"size()) \n" +" # Інший код... \n" +" WorkerThreadPool.wait_for_group_task_completion(task_id) \n" +" # Інший код, який залежить від ШІ противника, який уже обробляється. \n" +"[/gdscript] \n" +"[csharp] \n" +"private List<Node> _enemies = new List<Node>(); // Список, який потрібно " +"заповнити ворогами. \n" "\n" -"приватний неїдний процесEnemyAI(int ворожийІндекс)\n" -"Довідник\n" -"Node обробленаEnemy = _enemies[enemyIndex];\n" -"(Українська) Витратна логіка тут.\n" -"Про нас\n" +"private void ProcessEnemyAI(int enemyIndex) \n" +"{\n" +" Node processedEnemy = _enemies[enemyIndex]; \n" +" // Тут дорога логіка. \n" +"}\n" "\n" -"public override неймовірно _Process(double delta)\n" -"Довідник\n" -"довгі завдання Id = WorkerThreadPool.AddGroupTask(Callable.З " -"альбому<int>(ProcessEnemyAI), _enemies.Count);\n" -"(Українська) Інші коди\n" -"ПрацівникThreadPool.WaitForGroupTaskCompletion(taskId);\n" -"(Українська) Інший код, який залежить від ворожого AI, вже обробляється.\n" -"Про нас\n" -"[/csharp]\n" -"[/codeblocks]\n" -"Наведений код спирається на кількість елементів в [code]enemies[/code] масив, " -"що залишився постійним під час багатопрочитаної частини.\n" -"[b]Note:[/b] Використання цього синглтона може негативно вплинути на " -"продуктивність, якщо завдання розподіляється між нитками не обчислюється " -"дорого." +"public override void _Process (double delta) \n" +"{\n" +" long taskId = WorkerThreadPool.AddGroupTask(Callable." +"From<int>(ProcessEnemyAI), _enemies.Count); \n" +" // Інший код... \n" +" WorkerThreadPool.WaitForGroupTaskCompletion(taskId); \n" +" // Інший код, який залежить від ШІ противника, який уже обробляється. \n" +"}\n" +"[/csharp] \n" +"[/codeblocks] \n" +"Наведений вище код покладається на те, що кількість елементів у масиві " +"[code]emies[/code] залишається постійною протягом багатопоточної частини. \n" +"[b]Примітка:[/b] Використання цього синглтона може негативно вплинути на " +"продуктивність, якщо завдання, яке розподіляється між потоками, не є дорогим " +"з точки зору обчислень." msgid "" "Adds [param action] as a group task to be executed by the worker threads. The " @@ -160229,6 +197615,31 @@ msgstr "" msgid "A 3D world boundary (half-space) shape used for physics collision." msgstr "Форма 3D у світі (half-space) використовується для зіткнення фізики." +msgid "" +"A 3D world boundary shape, intended for use in physics. " +"[WorldBoundaryShape3D] works like an infinite plane that forces all physics " +"bodies to stay above it. The [member plane]'s normal determines which " +"direction is considered as \"above\" and in the editor, the line over the " +"plane represents this direction. It can for example be used for endless flat " +"floors.\n" +"[b]Note:[/b] When the physics engine is set to [b]Jolt Physics[/b] in the " +"project settings ([member ProjectSettings.physics/3d/physics_engine]), " +"[WorldBoundaryShape3D] has a finite size (centered at the shape's origin). It " +"can be adjusted by changing [member ProjectSettings.physics/jolt_physics_3d/" +"limits/world_boundary_shape_size]." +msgstr "" +"Тривимірна форма межі світу, призначена для використання у фізиці. " +"[WorldBoundaryShape3D] працює як нескінченна площина, яка змушує всі фізичні " +"тіла залишатися над нею. Нормаль [членної площини] визначає, який напрямок " +"вважається «зверху», і в редакторі лінія над площиною представляє цей " +"напрямок. Його можна, наприклад, використовувати для нескінченних плоских " +"підлог. \n" +"[b]Примітка.[/b] Коли фізичний механізм встановлено на [b]Jolt Physics[/b] у " +"налаштуваннях проекту ([member ProjectSettings.physics/3d/physics_engine]), " +"[WorldBoundaryShape3D] має кінцевий розмір (з центром у початку форми). Його " +"можна налаштувати, змінивши [member ProjectSettings.physics/jolt_physics_3d/" +"limits/world_boundary_shape_size]." + msgid "The [Plane] used by the [WorldBoundaryShape3D] for collision." msgstr "The [Plane] використовується [WorldBoundaryShape3D] для зіткнення." @@ -160359,47 +197770,48 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"Забезпечує інтерфейс низького рівня для створення парсерів для [url=https://" -"en.wikipedia.org/wiki/XML]XML[/url] файли. Цей клас може служити основою, щоб " -"зробити користувацькі XML-парси.\n" -"Для оформлення XML необхідно відкрити файл за допомогою методу [методи] або " -"буфера з методом [метод відкритим_buffer]. Потім [метод] повинен бути " -"викликаний парсером наступних вузлів. Більшість методів, які враховують в " -"даний момент занурений вузол.\n" -"Ось приклад використання [XMLParser] для позначення файлу SVG (який " -"заснований на XML), друк кожного елемента та його атрибутів як словник:\n" -"[блоки коду]\n" -"[видання]\n" -"var парсер = XMLParser.new()\n" -"parser.open(\"path/to/file.pdf)\n" -"при парсері.read() != ERR_FILE_EOF:\n" -"якщо parser.get_node_type() JavaScript licenses API Веб-сайт Go1.13.8\n" -"var node_name = parser.get_node_name()\n" -"var атрибути_dict = {}\n" -"для idx в діапазоні(parser.get_attribute_count()):\n" -"атрибути_dict[parser.get_attribute_name(idx)] = parser." -"get_attribute_value(idx)\n" -"Друк( \", node_name, \" елемент має наступні атрибути: \", атрибути_dict)\n" -"[/gdscript]\n" -"[csharp]\n" -"var парсер = новий XmlParser();\n" -"parser.Open(\"path/to/file.pdf\");\n" -"в той час як (parser.Read() != Помилка.FileEof\n" -"Довідник\n" -"якщо (сердя). " -"GetNodeType()========================================================================================================================================================================================================================================================== " -"XmlParser.NodeType.Element)\n" -"Довідник\n" -"var nodeName = parser.GetNodeName();\n" -"атрибути вар Дікт = новий Godot.Колекції. Словник();\n" -"Для (int idx = 0; idx < parser.GetAttributeCount(); idx++)\n" -"Довідник\n" -"атрибути Dict[parser.GetAttributeName(idx)] = parser.GetAttributeValue(idx);\n" -"Про нас\n" -"GD.Print($\" {nodeName} елемент має наступні атрибути: {attributesDict}\");\n" -"Про нас\n" -"Про нас\n" -"[/csharp]\n" +"Надає низькорівневий інтерфейс для створення парсерів для файлів [url=https://" +"en.wikipedia.org/wiki/XML]XML[/url]. Цей клас може слугувати основою для " +"створення власних парсерів XML. \n" +"Щоб розібрати XML, необхідно відкрити файл за допомогою методу [method open] " +"або буфер за допомогою методу [method open_buffer]. Потім для аналізу " +"наступних вузлів потрібно викликати метод [method read]. Більшість методів " +"враховують поточний синтаксичний вузол. \n" +"Ось приклад використання [XMLParser] для аналізу файлу SVG (який базується на " +"XML), друкуючи кожен елемент і його атрибути як словник: \n" +"[codeblocks] \n" +"[gdscript] \n" +"var parser = XMLParser.new() \n" +"parser.open(\"шлях/до/файлу.svg\") \n" +"while parser.read() != ERR_FILE_EOF: \n" +" if parser.get_node_type() == XMLParser.NODE_ELEMENT: \n" +" var node_name = parser.get_node_name() \n" +" var attributes_dict = {} \n" +" for idx in range(parser.get_attribute_count()): \n" +" attributes_dict[parser.get_attribute_name(idx)] = parser." +"get_attribute_value(idx) \n" +" print(\"Елемент \", node_name, \" має такі атрибути: \", " +"attributes_dict) \n" +"[/gdscript] \n" +"[csharp] \n" +"var parser = new XmlParser(); \n" +"parser.Open(\"шлях/до/файлу.svg\"); \n" +"while (parser.Read() != Error.FileEof) \n" +"{\n" +" if (parser.GetNodeType() == XmlParser.NodeType.Element) \n" +" { \n" +" var nodeName = parser.GetNodeName(); \n" +" var attributesDict = new Godot.Collections.Dictionary(); \n" +" for (int idx = 0; idx < parser.GetAttributeCount(); idx++) \n" +" { \n" +" attributesDict[parser.GetAttributeName(idx)] = parser." +"GetAttributeValue(idx); \n" +" } \n" +" GD.Print($\"Елемент {nodeName} має такі атрибути: " +"{attributesDict}\"); \n" +" } \n" +"}\n" +"[/csharp] \n" "[/codeblocks]" msgid "" @@ -160964,6 +198376,63 @@ msgstr "" "Увімкнення камери з декількома перерізами для AR/VR, такі як відстеження " "розташування." +msgid "" +"This is a helper 3D node for our camera. Note that, if stereoscopic rendering " +"is applicable (VR-HMD), most of the camera properties are ignored, as the HMD " +"information overrides them. The only properties that can be trusted are the " +"near and far planes.\n" +"The position and orientation of this node is automatically updated by the XR " +"Server to represent the location of the HMD if such tracking is available and " +"can thus be used by game logic. Note that, in contrast to the XR Controller, " +"the render thread has access to the most up-to-date tracking data of the HMD " +"and the location of the XRCamera3D can lag a few milliseconds behind what is " +"used for rendering as a result." +msgstr "" +"Це допоміжний 3D вузол для нашої камери. Зауважте, що якщо застосовно " +"стереоскопічне відтворення (VR-HMD), більшість властивостей камери " +"ігноруються, оскільки інформація HMD перекриває їх. Єдиними властивостями, " +"яким можна довіряти, є ближній і дальній плани. \n" +"Положення та орієнтація цього вузла автоматично оновлюються XR-сервером для " +"відображення розташування HMD, якщо таке відстеження доступне та може " +"використовуватися логікою гри. Зауважте, що, на відміну від контролера XR, " +"потік візуалізації має доступ до найновіших даних відстеження HMD, і в " +"результаті місцезнаходження XRCamera3D може відставати від того, що " +"використовується для рендерингу, на кілька мілісекунд." + +msgid "A 3D node representing a spatially-tracked controller." +msgstr "" +"Тривимірний вузол, що представляє контролер із просторовим відстеженням." + +msgid "" +"This is a helper 3D node that is linked to the tracking of controllers. It " +"also offers several handy passthroughs to the state of buttons and such on " +"the controllers.\n" +"Controllers are linked by their ID. You can create controller nodes before " +"the controllers are available. If your game always uses two controllers (one " +"for each hand), you can predefine the controllers with ID 1 and 2; they will " +"become active as soon as the controllers are identified. If you expect " +"additional controllers to be used, you should react to the signals and add " +"XRController3D nodes to your scene.\n" +"The position of the controller node is automatically updated by the " +"[XRServer]. This makes this node ideal to add child nodes to visualize the " +"controller.\n" +"As many XR runtimes now use a configurable action map all inputs are named." +msgstr "" +"Це допоміжний 3D-вузол, який пов’язаний із відстеженням контролерів. Він " +"також пропонує декілька зручних переходів до стану кнопок тощо на " +"контролерах. \n" +"Контролери пов’язані за ідентифікаторами. Ви можете створити вузли контролера " +"до того, як контролери стануть доступними. Якщо у вашій грі завжди " +"використовуються два контролери (по одному для кожної руки), ви можете " +"попередньо визначити контролери з ідентифікаторами 1 і 2; вони стануть " +"активними, як тільки контролери будуть ідентифіковані. Якщо ви очікуєте " +"використання додаткових контролерів, вам слід реагувати на сигнали та додати " +"вузли XRController3D до вашої сцени. \n" +"Положення вузла контролера автоматично оновлюється [XRServer]. Це робить цей " +"вузол ідеальним для додавання дочірніх вузлів для візуалізації контролера. \n" +"Оскільки зараз багато середовищ виконання XR використовують настроювану карту " +"дій, усі входи мають імена." + msgid "" "Returns a numeric value for the input with the given [param name]. This is " "used for triggers and grip sensors." @@ -161635,6 +199104,15 @@ msgstr "" "Джерело даних відстеження рук є контролером, що означає, що спільні позиції " "посилені з вхідних контролерів." +msgid "" +"No hand tracking data is tracked, this either means the hand is obscured, the " +"controller is turned off, or tracking is not supported for the current input " +"type." +msgstr "" +"Дані відстеження руки не відстежуються, це означає, що рука закрита, " +"контролер вимкнено, або відстеження не підтримується для поточного типу " +"введення." + msgid "Represents the size of the [enum HandTrackingSource] enum." msgstr "Представляємо розмір [enum HandTrackingSource] enum." @@ -161909,6 +199387,47 @@ msgstr "" msgid "Returns [code]true[/code] if this interface supports passthrough." msgstr "Повертає [code]true[/code], якщо цей інтерфейс підтримує передачу." +msgid "" +"Sets the active environment blend mode.\n" +"[param mode] is the environment blend mode starting with the next frame.\n" +"[b]Note:[/b] Not all runtimes support all environment blend modes, so it is " +"important to check this at startup. For example:\n" +"[codeblock]\n" +"func _ready():\n" +" var xr_interface = XRServer.find_interface(\"OpenXR\")\n" +" if xr_interface and xr_interface.is_initialized():\n" +" var vp = get_viewport()\n" +" vp.use_xr = true\n" +" var acceptable_modes = [XRInterface.XR_ENV_BLEND_MODE_OPAQUE, " +"XRInterface.XR_ENV_BLEND_MODE_ADDITIVE]\n" +" var modes = xr_interface.get_supported_environment_blend_modes()\n" +" for mode in acceptable_modes:\n" +" if mode in modes:\n" +" xr_interface.set_environment_blend_mode(mode)\n" +" break\n" +"[/codeblock]" +msgstr "" +"Встановлює режим змішування активного середовища. \n" +"[param mode] — це режим змішування середовища, починаючи з наступного " +"кадру. \n" +"[b]Примітка:[/b] Не всі середовища виконання підтримують усі режими " +"змішування середовища, тому важливо перевірити це під час запуску. " +"Наприклад: \n" +"[codeblock] \n" +"func _ready(): \n" +" var xr_interface = XRServer.find_interface(\"OpenXR\") \n" +" if xr_interface і xr_interface.is_initialized(): \n" +" var vp = get_viewport() \n" +" vp.use_xr = ture \n" +" var acceptable_modes = [XRInterface.XR_ENV_BLEND_MODE_OPAQUE, " +"XRInterface.XR_ENV_BLEND_MODE_ADDITIVE] \n" +" var modes = xr_interface.get_supported_environment_blend_modes() \n" +" for mode в acceptable_modes: \n" +" if mode is modes: \n" +" xr_interface.set_environment_blend_mode(mode) \n" +" break \n" +"[/codeblock]" + msgid "" "Sets the active play area mode, will return [code]false[/code] if the mode " "can't be used with this interface.\n" @@ -162294,6 +199813,9 @@ msgstr "" "Повертає дійсну [RID] для текстури, до якої ми повинні надати поточний кадр, " "якщо підтримується інтерфейсом." +msgid "A 3D node that has its position automatically updated by the [XRServer]." +msgstr "Тривимірний вузол, позиція якого автоматично оновлюється [XRServer]." + msgid "" "This node can be bound to a specific pose of a [XRPositionalTracker] and will " "automatically have its [member Node3D.transform] updated by the [XRServer]. " @@ -162467,6 +199989,30 @@ msgstr "" msgid "The linear velocity of this pose." msgstr "Лінійна швидкість цієї пози." +msgid "" +"The name of this pose. Usually, this name is derived from an action map set " +"up by the user. Godot also suggests some pose names that [XRInterface] " +"objects are expected to implement:\n" +"- [code]root[/code] is the root location, often used for tracked objects that " +"do not have further nodes.\n" +"- [code]aim[/code] is the tip of a controller with its orientation pointing " +"outwards, often used for raycasts.\n" +"- [code]grip[/code] is the location where the user grips the controller.\n" +"- [code]skeleton[/code] is the root location for a hand mesh, when using hand " +"tracking and an animated skeleton is supplied by the XR runtime." +msgstr "" +"Назва цієї пози. Зазвичай це ім’я походить від карти дій, налаштованої " +"користувачем. Годо також пропонує деякі назви поз, які мають реалізувати " +"об’єкти [XRInterface]: \n" +"- [code]root[/code] – це коренева локація, яка часто використовується для " +"відстежуваних об’єктів, які не мають додаткових вузлів. \n" +"- [code]aim[/code] — це кінчик контролера з орієнтацією, що вказує назовні, " +"часто використовується для raycasts. \n" +"- [code]ручка[/code] – місце, де користувач тримає контролер. \n" +"- [code]скелет[/code] є кореневим місцем для ручної сітки, коли " +"використовується відстеження рук, а анімований скелет надається середовищем " +"виконання XR." + msgid "" "The tracking confidence for this pose, provides insight on how accurate the " "spatial positioning of this record is." @@ -162740,6 +200286,19 @@ msgstr "Видаліть цей [памовий інтерфейс]." msgid "Removes this [param tracker]." msgstr "Видалити це [параметр]." +msgid "" +"If set to [code]true[/code], the scene will be rendered as if the camera is " +"locked to the [XROrigin3D].\n" +"[b]Note:[/b] This doesn't provide a very comfortable experience for users. " +"This setting exists for doing benchmarking or automated testing, where you " +"want to control what is rendered via code." +msgstr "" +"Якщо встановлено значення [code]true[/code], сцена відображатиметься так, " +"ніби камеру заблоковано на [XROrigin3D]. \n" +"[b]Примітка.[/b] Це не дуже зручно для користувачів. Цей параметр існує для " +"порівняльного аналізу або автоматичного тестування, коли ви хочете " +"контролювати те, що відображається за допомогою коду." + msgid "The primary [XRInterface] currently bound to the [XRServer]." msgstr "[XRInterface] в даний час межує з [XRServer]." @@ -162926,6 +200485,11 @@ msgstr "" "Мінімальний радіус навколо вогнища, де повна якість гарантована, якщо VRS " "використовується як відсоток розміру екрану." +msgid "The render region that the VRS texture will be scaled to when generated." +msgstr "" +"Область візуалізації, до якої буде масштабовано текстуру VRS під час " +"створення." + msgid "" "The strength used to calculate the VRS density map. The greater this value, " "the more noticeable VRS is." @@ -162933,6 +200497,44 @@ msgstr "" "Потужність використовується для розрахунку карти щільності VRS. Чим більше це " "значення, тим більш помітні VRS." +msgid "Allows the creation of ZIP files." +msgstr "Дозволяє створювати ZIP-файли." + +msgid "" +"This class implements a writer that allows storing the multiple blobs in a " +"ZIP archive. See also [ZIPReader] and [PCKPacker].\n" +"[codeblock]\n" +"# Create a ZIP archive with a single file at its root.\n" +"func write_zip_file():\n" +" var writer = ZIPPacker.new()\n" +" var err = writer.open(\"user://archive.zip\")\n" +" if err != OK:\n" +" return err\n" +" writer.start_file(\"hello.txt\")\n" +" writer.write_file(\"Hello World\".to_utf8_buffer())\n" +" writer.close_file()\n" +"\n" +" writer.close()\n" +" return OK\n" +"[/codeblock]" +msgstr "" +"Цей клас реалізує записувач, який дозволяє зберігати кілька blob-файлів у ZIP-" +"архіві. Дивіться також [ZIPReader] і [PCKPacker]. \n" +"[codeblock] \n" +"# Створіть архів ZIP з одним файлом у корені. \n" +"func write_zip_file(): \n" +" var writer = ZIPPacker.new() \n" +" var err = writer.open(\"user://archive.zip\") \n" +" if error != ОК: \n" +" return error \n" +" writer.start_file(\"hello.txt\") \n" +" writer.write_file(\"Hello World\".to_utf8_buffer()) \n" +" writer.close_file() \n" +"\n" +" writer.close() \n" +" return ОК \n" +"[/codeblock]" + msgid "Closes the underlying resources used by this instance." msgstr "Закриває базові ресурси, що використовуються цим екземпляром." @@ -162979,6 +200581,102 @@ msgstr "Закінчіть новий архів zip до кінця вже іс msgid "Add new files to the existing zip archive at the given path." msgstr "Додайте нові файли до існуючого архіву zip на заданому шляху." +msgid "Allows reading the content of a ZIP file." +msgstr "Дозволяє читати вміст ZIP-файлу." + +msgid "" +"This class implements a reader that can extract the content of individual " +"files inside a ZIP archive. See also [ZIPPacker].\n" +"[codeblock]\n" +"# Read a single file from a ZIP archive.\n" +"func read_zip_file():\n" +" var reader = ZIPReader.new()\n" +" var err = reader.open(\"user://archive.zip\")\n" +" if err != OK:\n" +" return PackedByteArray()\n" +" var res = reader.read_file(\"hello.txt\")\n" +" reader.close()\n" +" return res\n" +"\n" +"# Extract all files from a ZIP archive, preserving the directories within.\n" +"# This acts like the \"Extract all\" functionality from most archive " +"managers.\n" +"func extract_all_from_zip():\n" +" var reader = ZIPReader.new()\n" +" reader.open(\"res://archive.zip\")\n" +"\n" +" # Destination directory for the extracted files (this folder must exist " +"before extraction).\n" +" # Not all ZIP archives put everything in a single root folder,\n" +" # which means several files/folders may be created in `root_dir` after " +"extraction.\n" +" var root_dir = DirAccess.open(\"user://\")\n" +"\n" +" var files = reader.get_files()\n" +" for file_path in files:\n" +" # If the current entry is a directory.\n" +" if file_path.ends_with(\"/\"):\n" +" root_dir.make_dir_recursive(file_path)\n" +" continue\n" +"\n" +" # Write file contents, creating folders automatically when needed.\n" +" # Not all ZIP archives are strictly ordered, so we need to do this in " +"case\n" +" # the file entry comes before the folder entry.\n" +" root_dir.make_dir_recursive(root_dir.get_current_dir()." +"path_join(file_path).get_base_dir())\n" +" var file = FileAccess.open(root_dir.get_current_dir()." +"path_join(file_path), FileAccess.WRITE)\n" +" var buffer = reader.read_file(file_path)\n" +" file.store_buffer(buffer)\n" +"[/codeblock]" +msgstr "" +"Цей клас реалізує читач, який може видобувати вміст окремих файлів у ZIP-" +"архіві. Дивіться також [ZIPPacker]. \n" +"[кодовий блок] \n" +"# Читання окремого файлу з архіву ZIP. \n" +"func read_zip_file(): \n" +" var reader = ZIPReader.new() \n" +" var err = reader.open(\"user://archive.zip\") \n" +" if error != ОК: \n" +" return PackedByteArray() \n" +" var res = reader.read_file(\"hello.txt\") \n" +" reader.close() \n" +" return pes \n" +"\n" +"# Розпакуйте всі файли з ZIP-архіву, зберігаючи каталоги в ньому. \n" +"# Це діє як функція «Видобути все» у більшості менеджерів архівів. \n" +"func extract_all_from_zip(): \n" +" var reader = ZIPReader.new() \n" +" reader.open(\"res://archive.zip\") \n" +"\n" +" # Цільовий каталог для видобутих файлів (ця папка має існувати до " +"вилучення). \n" +" # Не всі ZIP-архіви містять все в одній кореневій папці, \n" +" # це означає, що кілька файлів/папок можуть бути створені в `root_dir` " +"після вилучення. \n" +" var root_dir = DirAccess.open(\"user://\") \n" +"\n" +" var files = reader.get_files() \n" +" для file_path in files: \n" +" # Якщо поточний запис є каталогом. \n" +" if file_path.ends_with(\"/\"): \n" +" root_dir.make_dir_recursive(file_path) \n" +" continue \n" +"\n" +" # Записуйте вміст файлу, автоматично створюючи папки, коли це " +"необхідно. \n" +" # Не всі архіви ZIP суворо впорядковані, тому нам потрібно зробити це " +"на випадок \n" +" # запис файлу стоїть перед записом папки. \n" +" root_dir.make_dir_recursive(root_dir.get_current_dir()." +"path_join(file_path).get_base_dir()) \n" +" var file = FileAccess.open(root_dir.get_current_dir()." +"path_join(file_path), FileAccess.WRITE) \n" +" var buffer = reader.read_file(file_path) \n" +" file.store_buffer(buffer) \n" +"[/codeblock]" + msgid "" "Returns [code]true[/code] if the file exists in the loaded zip archive.\n" "Must be called after [method open]." diff --git a/engine/doc/translations/zh_CN.po b/engine/doc/translations/zh_CN.po index 58317eac..4c0ed525 100644 --- a/engine/doc/translations/zh_CN.po +++ b/engine/doc/translations/zh_CN.po @@ -3,7 +3,7 @@ # Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. # This file is distributed under the same license as the Godot source code. # -# Haoyu Qiu <timothyqiu32@gmail.com>, 2020, 2021, 2022, 2023, 2024. +# Haoyu Qiu <timothyqiu32@gmail.com>, 2020, 2021, 2022, 2023, 2024, 2025. # fangxvan <2661712415@qq.com>, 2020. # yzt <834950797@qq.com>, 2020. # 懵逼Kitty <m1330586660@163.com>, 2020, 2021. @@ -88,16 +88,18 @@ # lixiufeng <qiu1321@foxmail.com>, 2024. # 张昊 <blightue@gmail.com>, 2024. # Rmtdi <rmtdiyl@outlook.com>, 2024. -# Mill Xu <2733679597@qq.com>, 2024. +# Mill Xu <2733679597@qq.com>, 2024, 2025. # HoshuChiu <wo_shily@163.com>, 2024. # QAQ-HYSJ <441717627@qq.com>, 2024. # Helical <731266210@qq.com>, 2024. # 鞲臢螽 <tbin643@gmail.com>, 2024. +# J_aphasiac <japhasiac@163.com>, 2025. +# SouthWolf <wp.southwolf@gmail.com>, 2025. msgid "" msgstr "" "Project-Id-Version: Godot Engine class reference\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" -"PO-Revision-Date: 2024-12-25 07:16+0000\n" +"PO-Revision-Date: 2025-03-02 14:20+0000\n" "Last-Translator: Haoyu Qiu <timothyqiu32@gmail.com>\n" "Language-Team: Chinese (Simplified Han script) <https://hosted.weblate.org/" "projects/godot-engine/godot-class-reference/zh_Hans/>\n" @@ -106,7 +108,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 5.10-dev\n" +"X-Generator: Weblate 5.10.3-dev\n" msgid "All classes" msgstr "所有类" @@ -336,9 +338,21 @@ msgstr "未来版本中可能会修改或移除该主题属性。" msgid "Built-in GDScript constants, functions, and annotations." msgstr "内置 GDScript 常量、函数、注解。" +msgid "" +"A list of utility functions and annotations accessible from any script " +"written in GDScript.\n" +"For the list of global functions and constants that can be accessed in any " +"scripting language, see [@GlobalScope]." +msgstr "" +"所有使用 GDScript 编写的脚本中都能够访问的实用函数和注解的列表。\n" +"所有脚本语言都能够访问的全局函数和常量的列表见 [@GlobalScope]。" + msgid "GDScript exports" msgstr "GDScript 的导出" +msgid "Use [method Color.from_rgba8] instead." +msgstr "请改用 [method Color.from_rgba8]。" + msgid "" "Returns a [Color] constructed from red ([param r8]), green ([param g8]), blue " "([param b8]), and optionally alpha ([param a8]) integer channels, each " @@ -415,6 +429,23 @@ msgstr "" "[b]注意:[/b][method assert] 是关键字而非函数,无法作为 [Callable] 访问,也无" "法在表达式中使用。" +msgid "" +"Returns a single character (as a [String]) of the given Unicode code point " +"(which is compatible with ASCII code).\n" +"[codeblock]\n" +"var upper = char(65) # upper is \"A\"\n" +"var lower = char(65 + 32) # lower is \"a\"\n" +"var euro = char(8364) # euro is \"€\"\n" +"[/codeblock]" +msgstr "" +"返回给定的 Unicode 码位(与 ASCII 码兼容)对应的单个字符(形式为 " +"[String])。\n" +"[codeblock]\n" +"var upper = char(65) # upper 是 \"A\"\n" +"var lower = char(65 + 32) # lower 是 \"a\"\n" +"var euro = char(8364) # euro 是 \"€\"\n" +"[/codeblock]" + msgid "Use [method @GlobalScope.type_convert] instead." msgstr "请改用 [method @GlobalScope.type_convert]。" @@ -441,6 +472,11 @@ msgstr "" "print(b is Array) # 输出 false\n" "[/codeblock]" +msgid "" +"Consider using [method JSON.to_native] or [method Object.get_property_list] " +"instead." +msgstr "考虑使用JSON.to_native方法或者Object.get_property_list方法作为替代。" + msgid "" "Converts a [param dictionary] (created with [method inst_to_dict]) back to an " "Object instance. Can be useful for deserializing." @@ -494,6 +530,123 @@ msgstr "" "的情况下,以调试模式导出的项目。\n" "[b]注意:[/b]不支持从 [Thread] 调用此函数,这样做将返回一个空数组。" +msgid "" +"Consider using [method JSON.from_native] or [method Object.get_property_list] " +"instead." +msgstr "考虑使用JSON.from_native方法或者Object.get_property_list方法作为替代。" + +msgid "" +"Returns the passed [param instance] converted to a Dictionary. Can be useful " +"for serializing.\n" +"[codeblock]\n" +"var foo = \"bar\"\n" +"func _ready():\n" +" var d = inst_to_dict(self)\n" +" print(d.keys())\n" +" print(d.values())\n" +"[/codeblock]\n" +"Prints out:\n" +"[codeblock lang=text]\n" +"[@subpath, @path, foo]\n" +"[, res://test.gd, bar]\n" +"[/codeblock]\n" +"[b]Note:[/b] This function can only be used to serialize objects with an " +"attached [GDScript] stored in a separate file. Objects without an attached " +"script, with a script written in another language, or with a built-in script " +"are not supported.\n" +"[b]Note:[/b] This function is not recursive, which means that nested objects " +"will not be represented as dictionaries. Also, properties passed by reference " +"([Object], [Dictionary], [Array], and packed arrays) are copied by reference, " +"not duplicated." +msgstr "" +"返回传入的[param instance]并转换为一个字典。对序列化很有用。\n" +"[codeblock]\n" +"var foo = \"bar\"\n" +"func _ready():\n" +" var d = inst_to_dict(self)\n" +" print(d.keys())\n" +" print(d.values())\n" +"[/codeblock]\n" +"输出打印:\n" +"[codeblock lang=text]\n" +"[@subpath, @path, foo]\n" +"[, res://test.gd, bar]\n" +"[/codeblock]\n" +"[b]提醒:[/b]这个函数只能用于序列化附加了另存为文件的[GDScript]对象。对象没有" +"附加脚本、附加脚本用其他语言编写、附加了内建脚本的情况下是不支持的。\n" +"[b]提醒:[/b]这个函数不是递归的,这意味着嵌套的对象将不会被表示为字典。并且," +"以引用方式([Object]、[Dictionary]、[Array], 以及打包数组(packed arrays))传" +"入的属性也是以引用方式复制,而不是建立副本。" + +msgid "" +"Returns [code]true[/code] if [param value] is an instance of [param type]. " +"The [param type] value must be one of the following:\n" +"- A constant from the [enum Variant.Type] enumeration, for example [constant " +"TYPE_INT].\n" +"- An [Object]-derived class which exists in [ClassDB], for example [Node].\n" +"- A [Script] (you can use any class, including inner one).\n" +"Unlike the right operand of the [code]is[/code] operator, [param type] can be " +"a non-constant value. The [code]is[/code] operator supports more features " +"(such as typed arrays). Use the operator instead of this method if you do not " +"need dynamic type checking.\n" +"[b]Examples:[/b]\n" +"[codeblock]\n" +"print(is_instance_of(a, TYPE_INT))\n" +"print(is_instance_of(a, Node))\n" +"print(is_instance_of(a, MyClass))\n" +"print(is_instance_of(a, MyClass.InnerClass))\n" +"[/codeblock]\n" +"[b]Note:[/b] If [param value] and/or [param type] are freed objects (see " +"[method @GlobalScope.is_instance_valid]), or [param type] is not one of the " +"above options, this method will raise a runtime error.\n" +"See also [method @GlobalScope.typeof], [method type_exists], [method Array." +"is_same_typed] (and other [Array] methods)." +msgstr "" +"如果 [param value] 为 [param type] 类型的实例,则返回 [code]true[/code]。" +"[param type] 的值必须为下列值之一:\n" +"- [enum Variant.Type] 枚举常量,如 [constant TYPE_INT]。\n" +"- [ClassDB] 中存在的派生自 [Object] 的类,如 [Node]。\n" +"- [Script](可以用任何类,包括内部类)。\n" +"[param type] 可以不是常量,这一点与 [code]is[/code] 的右操作数不同,[code]is[/" +"code] 运算符支持的功能更多(例如类型化数组)。如果你不需要动态类型检查,请使用" +"该运算符,不要使用此方法。\n" +"[b]示例:[/b]\n" +"[codeblock]\n" +"print(is_instance_of(a, TYPE_INT))\n" +"print(is_instance_of(a, Node))\n" +"print(is_instance_of(a, MyClass))\n" +"print(is_instance_of(a, MyClass.InnerClass))\n" +"[/codeblock]\n" +"[b]注意:[/b]如果 [param value] 和/或 [param type] 为已释放的对象(见 [method " +"@GlobalScope.is_instance_valid]),或者 [param type] 的数值不为以上选项中的任" +"何一项,则此方法会报运行时错误。\n" +"另见 [method @GlobalScope.typeof]、[method type_exists]、[method Array." +"is_same_typed](以及其他 [Array] 方法)。" + +msgid "" +"Returns the length of the given Variant [param var]. The length can be the " +"character count of a [String] or [StringName], the element count of any array " +"type, or the size of a [Dictionary]. For every other Variant type, a run-time " +"error is generated and execution is stopped.\n" +"[codeblock]\n" +"var a = [1, 2, 3, 4]\n" +"len(a) # Returns 4\n" +"\n" +"var b = \"Hello!\"\n" +"len(b) # Returns 6\n" +"[/codeblock]" +msgstr "" +"返回给定 Variant [param var] 的长度,该长度可以是 [String] 或 [StringName] 的" +"字符数,也可以是任意数组类型的元素数或 [Dictionary] 的大小等。对于所有其他 " +"Variant 类型,都会生成运行时错误并停止执行。\n" +"[codeblock]\n" +"var a = [1, 2, 3, 4]\n" +"len(a) # 返回 4\n" +"\n" +"var b = \"Hello!\"\n" +"len(b) # 返回 6\n" +"[/codeblock]" + msgid "" "Returns a [Resource] from the filesystem located at the absolute [param " "path]. Unless it's already referenced elsewhere (such as in another script or " @@ -624,6 +777,101 @@ msgstr "" "器的情况下,以调试模式导出的项目。\n" "[b]注意:[/b]不支持从 [Thread] 调用此函数,这样做将改为打印线程 ID。" +msgid "" +"Returns an array with the given range. [method range] can be called in three " +"ways:\n" +"[code]range(n: int)[/code]: Starts from 0, increases by steps of 1, and stops " +"[i]before[/i] [code]n[/code]. The argument [code]n[/code] is [b]exclusive[/" +"b].\n" +"[code]range(b: int, n: int)[/code]: Starts from [code]b[/code], increases by " +"steps of 1, and stops [i]before[/i] [code]n[/code]. The arguments [code]b[/" +"code] and [code]n[/code] are [b]inclusive[/b] and [b]exclusive[/b], " +"respectively.\n" +"[code]range(b: int, n: int, s: int)[/code]: Starts from [code]b[/code], " +"increases/decreases by steps of [code]s[/code], and stops [i]before[/i] " +"[code]n[/code]. The arguments [code]b[/code] and [code]n[/code] are " +"[b]inclusive[/b] and [b]exclusive[/b], respectively. The argument [code]s[/" +"code] [b]can[/b] be negative, but not [code]0[/code]. If [code]s[/code] is " +"[code]0[/code], an error message is printed.\n" +"[method range] converts all arguments to [int] before processing.\n" +"[b]Note:[/b] Returns an empty array if no value meets the value constraint (e." +"g. [code]range(2, 5, -1)[/code] or [code]range(5, 5, 1)[/code]).\n" +"[b]Examples:[/b]\n" +"[codeblock]\n" +"print(range(4)) # Prints [0, 1, 2, 3]\n" +"print(range(2, 5)) # Prints [2, 3, 4]\n" +"print(range(0, 6, 2)) # Prints [0, 2, 4]\n" +"print(range(4, 1, -1)) # Prints [4, 3, 2]\n" +"[/codeblock]\n" +"To iterate over an [Array] backwards, use:\n" +"[codeblock]\n" +"var array = [3, 6, 9]\n" +"for i in range(array.size() - 1, -1, -1):\n" +" print(array[i])\n" +"[/codeblock]\n" +"Output:\n" +"[codeblock lang=text]\n" +"9\n" +"6\n" +"3\n" +"[/codeblock]\n" +"To iterate over [float], convert them in the loop.\n" +"[codeblock]\n" +"for i in range (3, 0, -1):\n" +" print(i / 10.0)\n" +"[/codeblock]\n" +"Output:\n" +"[codeblock lang=text]\n" +"0.3\n" +"0.2\n" +"0.1\n" +"[/codeblock]" +msgstr "" +"返回具有给定范围的数组。[method range] 可以通过三种方式调用:\n" +"[code]range(n: int)[/code]:从 0 开始,每次加 1,在到达 [code]n[/code] [i]之前" +"[/i]停止。[b]不包含[/b]参数 [code]n[/code]。\n" +"[code]range(b: int, n: int)[/code]:从 [code]b[/code] 开始,每次加 1,在到达 " +"[code]n[/code] [i]之前[/i]停止。[b]包含[/b]参数 [code]b[/code],[b]不包含[/b]" +"参数 [code]n[/code]。\n" +"[code]range(b: int, n: int, s: int)[/code]:从 [code]b[/code] 开始,以 " +"[code]s[/code] 为步长递增/递减,在到达 [code]n[/code] [i]之前[/i]停止。[b]包含" +"[/b]参数 [code]b[/code],[b]不包含[/b]参数 [code]n[/code]。参数 [code]s[/" +"code] [b]可以[/b]为负数,但不能为 [code]0[/code]。如果 [code]s[/code] 为 " +"[code]0[/code],则会输出一条错误消息。\n" +"[method range] 会先将所有参数转换为 [int] 再进行处理。\n" +"[b]注意:[/b]如果没有满足条件的值,则返回空数组(例如 [code]range(2, 5, -1)[/" +"code] 和 [code]range(5, 5, 1)[/code])。\n" +"[b]示例:[/b]\n" +"[codeblock]\n" +"print(range(4)) # 输出 [0, 1, 2, 3]\n" +"print(range(2, 5)) # 输出 [2, 3, 4]\n" +"print(range(0, 6, 2)) # 输出 [0, 2, 4]\n" +"print(range(4, 1, -1)) # 输出 [4, 3, 2]\n" +"[/codeblock]\n" +"要反向遍历 [Array],请使用:\n" +"[codeblock]\n" +"var array = [3, 6, 9]\n" +"for i in range(array.size() - 1, -1, -1):\n" +" print(array[i])\n" +"[/codeblock]\n" +"输出:\n" +"[codeblock lang=text]\n" +"9\n" +"6\n" +"3\n" +"[/codeblock]\n" +"要遍历 [float],请在循环中进行转换。\n" +"[codeblock]\n" +"for i in range (3, 0, -1):\n" +" print(i / 10.0)\n" +"[/codeblock]\n" +"输出:\n" +"[codeblock lang=text]\n" +"0.3\n" +"0.2\n" +"0.1\n" +"[/codeblock]" + msgid "" "Returns [code]true[/code] if the given [Object]-derived class exists in " "[ClassDB]. Note that [Variant] data types are not registered in [ClassDB].\n" @@ -1393,6 +1641,190 @@ msgstr "" "@export var c: int # 保存进文件,在编辑器中显示。\n" "[/codeblock]" +msgid "" +"Define a new subgroup for the following exported properties. This helps to " +"organize properties in the Inspector dock. Subgroups work exactly like " +"groups, except they need a parent group to exist. See [annotation " +"@export_group].\n" +"See also [constant PROPERTY_USAGE_SUBGROUP].\n" +"[codeblock]\n" +"@export_group(\"Racer Properties\")\n" +"@export var nickname = \"Nick\"\n" +"@export var age = 26\n" +"\n" +"@export_subgroup(\"Car Properties\", \"car_\")\n" +"@export var car_label = \"Speedy\"\n" +"@export var car_number = 3\n" +"[/codeblock]\n" +"[b]Note:[/b] Subgroups cannot be nested, but you can use the slash separator " +"([code]/[/code]) to achieve the desired effect:\n" +"[codeblock]\n" +"@export_group(\"Car Properties\")\n" +"@export_subgroup(\"Wheels\", \"wheel_\")\n" +"@export_subgroup(\"Wheels/Front\", \"front_wheel_\")\n" +"@export var front_wheel_strength = 10\n" +"@export var front_wheel_mobility = 5\n" +"@export_subgroup(\"Wheels/Rear\", \"rear_wheel_\")\n" +"@export var rear_wheel_strength = 8\n" +"@export var rear_wheel_mobility = 3\n" +"@export_subgroup(\"Wheels\", \"wheel_\")\n" +"@export var wheel_material: PhysicsMaterial\n" +"[/codeblock]" +msgstr "" +"为接下来的导出属性定义一个新的子分组,有助于在检查器面板中组织属性。子分组的运" +"作方式与分组类似,不过需要依赖于一个父级分组。见 [annotation " +"@export_group]。\n" +"另见 [constant PROPERTY_USAGE_SUBGROUP]。\n" +"[codeblock]\n" +"@export_group(\"Racer Properties\")\n" +"@export var nickname = \"Nick\"\n" +"@export var age = 26\n" +"\n" +"@export_subgroup(\"Car Properties\", \"car_\")\n" +"@export var car_label = \"Speedy\"\n" +"@export var car_number = 3\n" +"[/codeblock]\n" +"[b]注意:[/b]子分组不能嵌套,但是你可以使用斜杠分隔符([code]/[/code])达到所" +"需效果:\n" +"[codeblock]\n" +"@export_group(\"Car Properties\")\n" +"@export_subgroup(\"Wheels\", \"wheel_\")\n" +"@export_subgroup(\"Wheels/Front\", \"front_wheel_\")\n" +"@export var front_wheel_strength = 10\n" +"@export var front_wheel_mobility = 5\n" +"@export_subgroup(\"Wheels/Rear\", \"rear_wheel_\")\n" +"@export var rear_wheel_strength = 8\n" +"@export var rear_wheel_mobility = 3\n" +"@export_subgroup(\"Wheels\", \"wheel_\")\n" +"@export var wheel_material: PhysicsMaterial\n" +"[/codeblock]" + +msgid "" +"Export a [Callable] property as a clickable button with the label [param " +"text]. When the button is pressed, the callable is called.\n" +"If [param icon] is specified, it is used to fetch an icon for the button via " +"[method Control.get_theme_icon], from the [code]\"EditorIcons\"[/code] theme " +"type. If [param icon] is omitted, the default [code]\"Callable\"[/code] icon " +"is used instead.\n" +"Consider using the [EditorUndoRedoManager] to allow the action to be reverted " +"safely.\n" +"See also [constant PROPERTY_HINT_TOOL_BUTTON].\n" +"[codeblock]\n" +"@tool\n" +"extends Sprite2D\n" +"\n" +"@export_tool_button(\"Hello\") var hello_action = hello\n" +"@export_tool_button(\"Randomize the color!\", \"ColorRect\")\n" +"var randomize_color_action = randomize_color\n" +"\n" +"func hello():\n" +" print(\"Hello world!\")\n" +"\n" +"func randomize_color():\n" +" var undo_redo = EditorInterface.get_editor_undo_redo()\n" +" undo_redo.create_action(\"Randomized Sprite2D Color\")\n" +" undo_redo.add_do_property(self, &\"self_modulate\", Color(randf(), " +"randf(), randf()))\n" +" undo_redo.add_undo_property(self, &\"self_modulate\", self_modulate)\n" +" undo_redo.commit_action()\n" +"[/codeblock]\n" +"[b]Note:[/b] The property is exported without the [constant " +"PROPERTY_USAGE_STORAGE] flag because a [Callable] cannot be properly " +"serialized and stored in a file.\n" +"[b]Note:[/b] In an exported project neither [EditorInterface] nor " +"[EditorUndoRedoManager] exist, which may cause some scripts to break. To " +"prevent this, you can use [method Engine.get_singleton] and omit the static " +"type from the variable declaration:\n" +"[codeblock]\n" +"var undo_redo = Engine.get_singleton(&\"EditorInterface\")." +"get_editor_undo_redo()\n" +"[/codeblock]\n" +"[b]Note:[/b] Avoid storing lambda callables in member variables of " +"[RefCounted]-based classes (e.g. resources), as this can lead to memory " +"leaks. Use only method callables and optionally [method Callable.bind] or " +"[method Callable.unbind]." +msgstr "" +"导出 [Callable] 属性,显示为标签为 [param text] 的可点击按钮。按下按钮会调用该" +"可调用体。\n" +"如果指定了 [param icon],则按钮的图标会通过 [method Control.get_theme_icon] " +"从 [code]\"EditorIcons\"[/code] 主题类型中获取。如果省略 [param icon],则会使" +"用默认的 [code]\"Callable\"[/code] 图标。\n" +"请考虑使用 [EditorUndoRedoManager],从而安全地撤销动作。\n" +"另见 [constant PROPERTY_HINT_TOOL_BUTTON]。\n" +"[codeblock]\n" +"@tool\n" +"extends Sprite2D\n" +"\n" +"@export_tool_button(\"你好\") var hello_action = hello\n" +"@export_tool_button(\"随机颜色!\", \"ColorRect\")\n" +"var randomize_color_action = randomize_color\n" +"\n" +"func hello():\n" +" print(\"你好世界!\")\n" +"\n" +"func randomize_color():\n" +" var undo_redo = EditorInterface.get_editor_undo_redo()\n" +" undo_redo.create_action(\"随机设置 Sprite2D 的颜色\")\n" +" undo_redo.add_do_property(self, &\"self_modulate\", Color(randf(), " +"randf(), randf()))\n" +" undo_redo.add_undo_property(self, &\"self_modulate\", self_modulate)\n" +" undo_redo.commit_action()\n" +"[/codeblock]\n" +"[b]注意:[/b]该属性导出时不带 [constant PROPERTY_USAGE_STORAGE] 标识,因为 " +"[Callable] 无法正确序列化存储在文件中。\n" +"[b]注意:[/b]导出后的项目中,[EditorInterface] 和 [EditorUndoRedoManager] 均不" +"存在,可能导致部分脚本损坏。为了防止这种情况,你可以使用 [method Engine." +"get_singleton] 并省略变量声明中的静态类型:\n" +"[codeblock]\n" +"var undo_redo = Engine.get_singleton(&\"EditorInterface\")." +"get_editor_undo_redo()\n" +"[/codeblock]\n" +"[b]注意:[/b]请避免在 [RefCounted] 的派生类(例如资源类)的成员变量中存储 " +"Lambda 可调用体,否则可能导致内存泄漏。只能使用方法可调用体,也可搭配 [method " +"Callable.bind] 和 [method Callable.unbind]。" + +msgid "" +"Add a custom icon to the current script. The icon specified at [param " +"icon_path] is displayed in the Scene dock for every node of that class, as " +"well as in various editor dialogs.\n" +"[codeblock]\n" +"@icon(\"res://path/to/class/icon.svg\")\n" +"[/codeblock]\n" +"[b]Note:[/b] Only the script can have a custom icon. Inner classes are not " +"supported.\n" +"[b]Note:[/b] As annotations describe their subject, the [annotation @icon] " +"annotation must be placed before the class definition and inheritance.\n" +"[b]Note:[/b] Unlike most other annotations, the argument of the [annotation " +"@icon] annotation must be a string literal (constant expressions are not " +"supported)." +msgstr "" +"为当前脚本添加自定义图标。[param icon_path] 所指向的图标会在“场景”面板中该类的" +"所有节点上显示,也会显示在各种编辑器对话框当中。\n" +"[codeblock]\n" +"@icon(\"res://path/to/class/icon.svg\")\n" +"[/codeblock]\n" +"[b]注意:[/b]只有脚本可以带有自定义图标,不支持内部类。\n" +"[b]注意:[/b]由于注解描述的是它们的对象,因此 [annotation @icon] 注解必须放在" +"类定义语句和继承语句之前。\n" +"[b]注意:[/b]与其他大多数注解不同,[annotation @icon] 注解的参数必须是字符串字" +"面量(不支持常量表达式)。" + +msgid "" +"Mark the following property as assigned when the [Node] is ready. Values for " +"these properties are not assigned immediately when the node is initialized " +"([method Object._init]), and instead are computed and stored right before " +"[method Node._ready].\n" +"[codeblock]\n" +"@onready var character_name = $Label\n" +"[/codeblock]" +msgstr "" +"标记后续属性会在 [Node] 就绪时赋值。节点初始化([method Object._init])时不会" +"立即对这些属性赋值,而是会在即将调用 [method Node._ready] 之前进行计算与储" +"存。\n" +"[codeblock]\n" +"@onready var character_name = $Label\n" +"[/codeblock]" + msgid "" "Mark the following method for remote procedure calls. See [url=$DOCS_URL/" "tutorials/networking/high_level_multiplayer.html]High-level multiplayer[/" @@ -1506,9 +1938,97 @@ msgstr "" "[b]注意:[/b]因为注解描述对象的关系,必须把 [annotation @tool] 注解放在类定义" "和继承之前。" +msgid "" +"Mark the following statement to ignore the specified [param warning]. See " +"[url=$DOCS_URL/tutorials/scripting/gdscript/warning_system.html]GDScript " +"warning system[/url].\n" +"[codeblock]\n" +"func test():\n" +" print(\"hello\")\n" +" return\n" +" @warning_ignore(\"unreachable_code\")\n" +" print(\"unreachable\")\n" +"[/codeblock]\n" +"See also [annotation @warning_ignore_start] and [annotation " +"@warning_ignore_restore]." +msgstr "" +"将后续语句标记为忽略指定的 [param warning] 警告。见[url=$DOCS_URL/tutorials/" +"scripting/gdscript/warning_system.html]《GDScript 警告系统》[/url]。\n" +"[codeblock]\n" +"func test():\n" +" print(\"你好\")\n" +" return\n" +" @warning_ignore(\"unreachable_code\")\n" +" print(\"无法到达\")\n" +"[/codeblock]\n" +"另见 [annotation @warning_ignore_start] 和 [annotation " +"@warning_ignore_restore]。" + +msgid "" +"Stops ignoring the listed warning types after [annotation " +"@warning_ignore_start]. Ignoring the specified warning types will be reset to " +"Project Settings. This annotation can be omitted to ignore the warning types " +"until the end of the file.\n" +"[b]Note:[/b] Unlike most other annotations, arguments of the [annotation " +"@warning_ignore_restore] annotation must be string literals (constant " +"expressions are not supported)." +msgstr "" +"应停止对列在[annotation @warning_ignore_start]后面的告警的忽略。对特定告警类型" +"的忽略会被重置到工程设置。直到文件末尾之前,该注解可以被省略一边忽略这些告警类" +"型。\n" +"[b]注意:[/b]与大多数其他注解不同,注解[annotation @warning_ignore_restore]的" +"参数必须是字符串字面量(常量表达式不被支持)。" + +msgid "" +"Starts ignoring the listed warning types until the end of the file or the " +"[annotation @warning_ignore_restore] annotation with the given warning type.\n" +"[codeblock]\n" +"func test():\n" +" var a = 1 # Warning (if enabled in the Project Settings).\n" +" @warning_ignore_start(\"unused_variable\")\n" +" var b = 2 # No warning.\n" +" var c = 3 # No warning.\n" +" @warning_ignore_restore(\"unused_variable\")\n" +" var d = 4 # Warning (if enabled in the Project Settings).\n" +"[/codeblock]\n" +"[b]Note:[/b] To suppress a single warning, use [annotation @warning_ignore] " +"instead.\n" +"[b]Note:[/b] Unlike most other annotations, arguments of the [annotation " +"@warning_ignore_start] annotation must be string literals (constant " +"expressions are not supported)." +msgstr "" +"开始忽略列出的告警类型,直至文件末尾或带有给定告警类型的注解[annotation " +"@warning_ignore_restore]。\n" +"[codeblock]\n" +"func test():\n" +" var a = 1 # Warning (if enabled in the Project Settings).\n" +" @warning_ignore_start(\"unused_variable\")\n" +" var b = 2 # No warning.\n" +" var c = 3 # No warning.\n" +" @warning_ignore_restore(\"unused_variable\")\n" +" var d = 4 # Warning (if enabled in the Project Settings).\n" +"[/codeblock]\n" +"[b]提醒:[/b]要抑制单个告警,需改用[annotation @warning_ignore]。\n" +"[b]提醒:[/b]与大多数其他注解不同,注解[annotation @warning_ignore_start]的参" +"数必须是字符串字面量(常量表达式不被支持)。" + msgid "Global scope constants and functions." msgstr "全局范围的常量和函数。" +msgid "" +"A list of global scope enumerated constants and built-in functions. This is " +"all that resides in the globals, constants regarding error codes, keycodes, " +"property hints, etc.\n" +"Singletons are also documented here, since they can be accessed from " +"anywhere.\n" +"For the entries that can only be accessed from scripts written in GDScript, " +"see [@GDScript]." +msgstr "" +"全局范围的枚举常量和内置函数的列表。此处的内容都是全局的,包括用于错误码、键" +"码、属性提示等的常量。\n" +"这里还记录了单例,因为任何地方都可以访问单例。\n" +"只能在 GDScript 编写的脚本中访问的条目见 [@GDScript]。" + msgid "Random number generation" msgstr "随机数生成" @@ -1633,6 +2153,16 @@ msgstr "" "var b = acosh(-1) # 返回 0\n" "[/codeblock]" +msgid "" +"Returns the difference between the two angles (in radians), in the range of " +"[code][-PI, +PI][/code]. When [param from] and [param to] are opposite, " +"returns [code]-PI[/code] if [param from] is smaller than [param to], or " +"[code]PI[/code] otherwise." +msgstr "" +"返回两个角度之间的差(单位为弧度),范围为 [code][-PI, +PI][/code] 。当 " +"[param from] 和 [param to] 相反时,如果 [param from] 小于 [param to],则返回 " +"[code]-PI[/code] ,否则返回 [code]PI[/code] 。" + msgid "" "Returns the arc sine of [param x] in radians. Use to get the angle of sine " "[param x]. [param x] will be clamped between [code]-1.0[/code] and [code]1.0[/" @@ -1965,6 +2495,58 @@ msgstr "" "var r = deg_to_rad(180) # r 是 3.141593\n" "[/codeblock]" +msgid "" +"Returns an \"eased\" value of [param x] based on an easing function defined " +"with [param curve]. This easing function is based on an exponent. The [param " +"curve] can be any floating-point number, with specific values leading to the " +"following behaviors:\n" +"[codeblock lang=text]\n" +"- Lower than -1.0 (exclusive): Ease in-out\n" +"- -1.0: Linear\n" +"- Between -1.0 and 0.0 (exclusive): Ease out-in\n" +"- 0.0: Constant\n" +"- Between 0.0 to 1.0 (exclusive): Ease out\n" +"- 1.0: Linear\n" +"- Greater than 1.0 (exclusive): Ease in\n" +"[/codeblock]\n" +"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" +"ease_cheatsheet.png]ease() curve values cheatsheet[/url]\n" +"See also [method smoothstep]. If you need to perform more advanced " +"transitions, use [method Tween.interpolate_value]." +msgstr "" +"基于用 [param curve] 定义的缓动函数返回 [param x] “缓动后”的值,该缓动函数是基" +"于指数的缓动。[param curve] 可以是任意浮点数,具体数值会导致以下行为:\n" +"[codeblock lang=text]\n" +"- 低于 -1.0(开区间):缓入缓出\n" +"- -1.0:线性\n" +"- 在 -1.0 和 0.0 之间(开区间):缓出缓入\n" +"- 0.0:恒定\n" +"- 在 0.0 到 1.0 之间(开区间):缓出\n" +"- 1.0:线性\n" +"- 大于 1.0(开区间):缓入\n" +"[/codeblock]\n" +"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" +"ease_cheatsheet.png]ease() 曲线值速查表[/url]\n" +"另见 [method smoothstep]。如果你需要执行更高级的过渡,请使用 [method Tween." +"interpolate_value]。" + +msgid "" +"Returns a human-readable name for the given [enum Error] code.\n" +"[codeblock]\n" +"print(OK) # Prints 0\n" +"print(error_string(OK)) # Prints \"OK\"\n" +"print(error_string(ERR_BUSY)) # Prints \"Busy\"\n" +"print(error_string(ERR_OUT_OF_MEMORY)) # Prints \"Out of memory\"\n" +"[/codeblock]" +msgstr "" +"为给定的 [enum Error] 代码返回一个人类可读的名称。\n" +"[codeblock]\n" +"print(OK) # 输出 0\n" +"print(error_string(OK)) # 输出“OK”\n" +"print(error_string(ERR_BUSY)) # 输出“Busy”\n" +"print(error_string(ERR_OUT_OF_MEMORY)) # 输出“Out of memory”\n" +"[/codeblock]" + msgid "" "The natural exponential function. It raises the mathematical constant [i]e[/" "i] to the power of [param x] and returns it.\n" @@ -2102,6 +2684,59 @@ msgstr "" "[/csharp]\n" "[/codeblocks]" +msgid "" +"Returns the [Object] that corresponds to [param instance_id]. All Objects " +"have a unique instance ID. See also [method Object.get_instance_id].\n" +"[codeblocks]\n" +"[gdscript]\n" +"var drink = \"water\"\n" +"\n" +"func _ready():\n" +" var id = get_instance_id()\n" +" var instance = instance_from_id(id)\n" +" print(instance.foo) # Prints \"water\"\n" +"[/gdscript]\n" +"[csharp]\n" +"public partial class MyNode : Node\n" +"{\n" +" public string Drink { get; set; } = \"water\";\n" +"\n" +" public override void _Ready()\n" +" {\n" +" ulong id = GetInstanceId();\n" +" var instance = (MyNode)InstanceFromId(Id);\n" +" GD.Print(instance.Drink); // Prints \"water\"\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"返回实例 ID [param instance_id] 所对应的 [Object]。所有对象都有唯一实例 ID。另" +"见 [method Object.get_instance_id]。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var drink = \"water\"\n" +"\n" +"func _ready():\n" +" var id = get_instance_id()\n" +" var instance = instance_from_id(id)\n" +" print(instance.foo) # 输出“water”\n" +"[/gdscript]\n" +"[csharp]\n" +"public partial class MyNode : Node\n" +"{\n" +" public string Drink { get; set; } = \"water\";\n" +"\n" +" public override void _Ready()\n" +" {\n" +" ulong id = GetInstanceId();\n" +" var instance = (MyNode)InstanceFromId(Id);\n" +" GD.Print(instance.Drink); // 输出“water”\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Returns an interpolation or extrapolation factor considering the range " "specified in [param from] and [param to], and the interpolated value " @@ -2255,6 +2890,45 @@ msgstr "" "epsilon 的公差计算的。\n" "该函数比使用一个值为零的 [method is_equal_approx] 更快。" +msgid "" +"Linearly interpolates between two values by the factor defined in [param " +"weight]. To perform interpolation, [param weight] should be between " +"[code]0.0[/code] and [code]1.0[/code] (inclusive). However, values outside " +"this range are allowed and can be used to perform [i]extrapolation[/i]. If " +"this is not desired, use [method clampf] to limit [param weight].\n" +"Both [param from] and [param to] must be the same type. Supported types: " +"[int], [float], [Vector2], [Vector3], [Vector4], [Color], [Quaternion], " +"[Basis], [Transform2D], [Transform3D].\n" +"[codeblock]\n" +"lerp(0, 4, 0.75) # Returns 3.0\n" +"[/codeblock]\n" +"See also [method inverse_lerp] which performs the reverse of this operation. " +"To perform eased interpolation with [method lerp], combine it with [method " +"ease] or [method smoothstep]. See also [method remap] to map a continuous " +"series of values to another.\n" +"[b]Note:[/b] For better type safety, use [method lerpf], [method Vector2." +"lerp], [method Vector3.lerp], [method Vector4.lerp], [method Color.lerp], " +"[method Quaternion.slerp], [method Basis.slerp], [method Transform2D." +"interpolate_with], or [method Transform3D.interpolate_with]." +msgstr "" +"通过 [param weight] 中定义的因子在两个值之间进行线性插值。要执行插值,[param " +"weight] 应介于 [code]0.0[/code] 和 [code]1.0[/code] 之间(包含)。但是,超出此" +"范围的值也是允许的,并可用于执行[i]外推[/i]。如果不需要,请在使用 [method " +"clampf] 限制 [param weight]。\n" +"[param from] 和 [param to] 必须是同一类型。支持的类型:[int]、[float]、" +"[Vector2]、[Vector3]、[Vector4]、[Color]、[Quaternion]、[Basis]、" +"[Transform2D]、[Transform3D]。\n" +"[codeblock]\n" +"lerp(0, 4, 0.75) # 返回 3.0\n" +"[/codeblock]\n" +"另请参阅执行本操作的逆操作的 [method inverse_lerp]。要使用 [method lerp] 执行" +"缓动插值,请将其与 [method ease] 或 [method smoothstep] 结合使用。另见 " +"[method remap],可将一系列连续的值映射到另一个值。\n" +"[b]注意:[/b]为了更好的类型安全,请使用 [method lerpf]、[method Vector2." +"lerp]、[method Vector3.lerp]、[method Vector4.lerp]、[method Color.lerp]、" +"[method Quaternion.slerp]、[method Basis.slerp]、[method Transform2D." +"interpolate_with] 或 [method Transform3D.interpolate_with]。" + msgid "" "Linearly interpolates between two angles (in radians) by a [param weight] " "value between 0.0 and 1.0.\n" @@ -2320,6 +2994,26 @@ msgstr "" "另请参阅执行本操作的逆运算的 [method inverse_lerp]。要使用 [method lerp] 执行" "缓动插值,请将其与 [method ease] 或 [method smoothstep] 结合使用。" +msgid "" +"Converts from linear energy to decibels (audio). Since volume is not normally " +"linear, this can be used to implement volume sliders that behave as " +"expected.\n" +"[b]Example:[/b] Change the Master bus's volume through a [Slider] node, which " +"ranges from [code]0.0[/code] to [code]1.0[/code]:\n" +"[codeblock]\n" +"AudioServer.set_bus_volume_db(AudioServer.get_bus_index(\"Master\"), " +"linear_to_db($Slider.value))\n" +"[/codeblock]" +msgstr "" +"从线性能量转换为分贝(音频)。由于音量通常不是线性的,可以用于实现符合预期的音" +"量滑块。\n" +"[b]示例:[/b]通过 [Slider] 节点在 [code]0.0[/code] 到 [code]1.0[/code] 的范围" +"内修改 Master 总线的音量:\n" +"[codeblock]\n" +"AudioServer.set_bus_volume_db(AudioServer.get_bus_index(\"Master\"), " +"linear_to_db($Slider.value))\n" +"[/codeblock]" + msgid "" "Returns the [url=https://en.wikipedia.org/wiki/Natural_logarithm]natural " "logarithm[/url] of [param x] (base [url=https://en.wikipedia.org/wiki/" @@ -2579,6 +3273,111 @@ msgstr "" "pow(4, 1.5) # 返回 8.0\n" "[/codeblock]" +msgid "" +"Converts one or more arguments of any type to string in the best way possible " +"and prints them to the console.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var a = [1, 2, 3]\n" +"print(\"a\", \"b\", a) # Prints \"ab[1, 2, 3]\"\n" +"[/gdscript]\n" +"[csharp]\n" +"Godot.Collections.Array a = [1, 2, 3];\n" +"GD.Print(\"a\", \"b\", a); // Prints \"ab[1, 2, 3]\"\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] Consider using [method push_error] and [method push_warning] to " +"print error and warning messages instead of [method print] or [method " +"print_rich]. This distinguishes them from print messages used for debugging " +"purposes, while also displaying a stack trace when an error or warning is " +"printed. See also [member Engine.print_to_stdout] and [member ProjectSettings." +"application/run/disable_stdout]." +msgstr "" +"以尽可能最佳的方式将一个或多个任意类型的参数转换为字符串,并将其打印到控制" +"台。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var a = [1, 2, 3]\n" +"print(\"a\", \"b\", a) # 输出“ab[1, 2, 3]”\n" +"[/gdscript]\n" +"[csharp]\n" +"Godot.Collections.Array a = [1, 2, 3];\n" +"GD.Print(\"a\", \"b\", a); // 输出“ab[1, 2, 3]”\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b]请考虑使用 [method push_error] 和 [method push_warning] 来打印错" +"误和警告消息,而不是 [method print] 或 [method print_rich]。这将它们与用于调试" +"目的的打印消息区分开来,同时还会在打印错误或警告时显示堆栈跟踪。另见 [member " +"Engine.print_to_stdout] 和 [member ProjectSettings.application/run/" +"disable_stdout]。" + +msgid "" +"Converts one or more arguments of any type to string in the best way possible " +"and prints them to the console.\n" +"The following BBCode tags are supported: [code]b[/code], [code]i[/code], " +"[code]u[/code], [code]s[/code], [code]indent[/code], [code]code[/code], " +"[code]url[/code], [code]center[/code], [code]right[/code], [code]color[/" +"code], [code]bgcolor[/code], [code]fgcolor[/code].\n" +"URL tags only support URLs wrapped by a URL tag, not URLs with a different " +"title.\n" +"When printing to standard output, the supported subset of BBCode is converted " +"to ANSI escape codes for the terminal emulator to display. Support for ANSI " +"escape codes varies across terminal emulators, especially for italic and " +"strikethrough. In standard output, [code]code[/code] is represented with " +"faint text but without any font change. Unsupported tags are left as-is in " +"standard output.\n" +"[codeblocks]\n" +"[gdscript skip-lint]\n" +"print_rich(\"[color=green][b]Hello world![/b][/color]\") # Prints \"Hello " +"world!\", in green with a bold font.\n" +"[/gdscript]\n" +"[csharp skip-lint]\n" +"GD.PrintRich(\"[color=green][b]Hello world![/b][/color]\"); // Prints \"Hello " +"world!\", in green with a bold font.\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] Consider using [method push_error] and [method push_warning] to " +"print error and warning messages instead of [method print] or [method " +"print_rich]. This distinguishes them from print messages used for debugging " +"purposes, while also displaying a stack trace when an error or warning is " +"printed.\n" +"[b]Note:[/b] On Windows, only Windows 10 and later correctly displays ANSI " +"escape codes in standard output.\n" +"[b]Note:[/b] Output displayed in the editor supports clickable [code skip-" +"lint][url=address]text[/url][/code] tags. The [code skip-lint][url][/code] " +"tag's [code]address[/code] value is handled by [method OS.shell_open] when " +"clicked." +msgstr "" +"以尽可能最佳的方式将一个或多个任意类型的参数转换为字符串,并将其打印到控制" +"台。\n" +"支持以下 BBCode 标签: [code]b[/code]、[code]i[/code]、[code]u[/code]、" +"[code]s[/code]、[code]indent[/code]、[code]code[/code]、[code]url[/code]、" +"[code]center[/code]、[code]right[/code]、[code]color[/code]、[code]bgcolor[/" +"code]、[code]fgcolor[/code]。\n" +"URL 标签仅支持在 URL 标签中包含 URL,不支持使用不同标题的 URL。\n" +"当打印到标准输出时,支持的 BBCode 子集被转换为 ANSI 转义码以供终端仿真器显示。" +"对 ANSI 转义码的支持可能因终端仿真器而异,尤其是斜体和删除线。在标准输出中," +"[code]code[/code] 会使用较弱的文本表示,但字体不变。不支持的标签在标准输出中会" +"原样保留。\n" +"[codeblocks]\n" +"[gdscript skip-lint]\n" +"print_rich(\"[color=green][b]Hello world![/b][/color]\") # 输出“Hello " +"world!”,使用绿色的粗体。\n" +"[/gdscript]\n" +"[csharp skip-lint]\n" +"GD.PrintRich(\"[color=green][b]Hello world![/b][/color]\"); // 输出“Hello " +"world!”,使用绿色的粗体。\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b]请考虑使用 [method push_error] 和 [method push_warning] 来打印错" +"误和警告消息,而不是 [method print] 或 [method print_rich]。这将它们与用于调试" +"目的的打印消息区分开来,同时还会在打印错误或警告时显示堆栈跟踪。\n" +"[b]注意:[/b]在 Windows 中,只有 Windows 10 及后续版本能够在标准输出中正确显" +"示 ANSI 转义码。\n" +"[b]注意:[/b]在编辑器中显示的输出支持可点击的 [code skip-lint][url=address]文" +"本[/url][/code] 标签。点击时, [code skip-lint][url][/code] 标签的 " +"[code]address[/code] 值由 [method OS.shell_open] 处理。" + msgid "" "If verbose mode is enabled ([method OS.is_stdout_verbose] returning " "[code]true[/code]), converts one or more arguments of any type to string in " @@ -2609,6 +3408,147 @@ msgstr "" "[/csharp]\n" "[/codeblocks]" +msgid "" +"Prints one or more arguments to strings in the best way possible to the OS " +"terminal. Unlike [method print], no newline is automatically added at the " +"end.\n" +"[b]Note:[/b] The OS terminal is [i]not[/i] the same as the editor's Output " +"dock. The output sent to the OS terminal can be seen when running Godot from " +"a terminal. On Windows, this requires using the [code]console.exe[/code] " +"executable.\n" +"[codeblocks]\n" +"[gdscript]\n" +"# Prints \"ABC\" to terminal.\n" +"printraw(\"A\")\n" +"printraw(\"B\")\n" +"printraw(\"C\")\n" +"[/gdscript]\n" +"[csharp]\n" +"// Prints \"ABC\" to terminal.\n" +"GD.PrintRaw(\"A\");\n" +"GD.PrintRaw(\"B\");\n" +"GD.PrintRaw(\"C\");\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"以尽可能最佳的方式将一个或多个参数作为字符串输出到操作系统终端。与 [method " +"print] 不同的是,最后不会自动添加换行符。\n" +"[b]注意:[/b]操作系统终端与编辑器的“输出”面板[i]不同[/i]。从终端运行 Godot 时" +"可以看到发送至操作系统终端的输出。在 Windows 上,需要用到 [code]console.exe[/" +"code] 可执行文件。\n" +"[codeblocks]\n" +"[gdscript]\n" +"# 输出“ABC”到终端\n" +"printraw(\"A\")\n" +"printraw(\"B\")\n" +"printraw(\"C\")\n" +"[/gdscript]\n" +"[csharp]\n" +"// 输出“ABC”到终端\n" +"GD.PrintRaw(\"A\");\n" +"GD.PrintRaw(\"B\");\n" +"GD.PrintRaw(\"C\");\n" +"[/csharp]\n" +"[/codeblocks]" + +msgid "" +"Prints one or more arguments to the console with a space between each " +"argument.\n" +"[codeblocks]\n" +"[gdscript]\n" +"prints(\"A\", \"B\", \"C\") # Prints \"A B C\"\n" +"[/gdscript]\n" +"[csharp]\n" +"GD.PrintS(\"A\", \"B\", \"C\"); // Prints \"A B C\"\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"将一个或多个参数打印到控制台,每个参数之间有一个空格。\n" +"[codeblocks]\n" +"[gdscript]\n" +"prints(\"A\", \"B\", \"C\") # 输出“A B C”\n" +"[/gdscript]\n" +"[csharp]\n" +"GD.PrintS(\"A\", \"B\", \"C\"); // 输出“A B C”\n" +"[/csharp]\n" +"[/codeblocks]" + +msgid "" +"Prints one or more arguments to the console with a tab between each " +"argument.\n" +"[codeblocks]\n" +"[gdscript]\n" +"printt(\"A\", \"B\", \"C\") # Prints \"A B C\"\n" +"[/gdscript]\n" +"[csharp]\n" +"GD.PrintT(\"A\", \"B\", \"C\"); // Prints \"A B C\"\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"将一个或多个参数打印到控制台,每个参数之间有一个制表符。\n" +"[codeblocks]\n" +"[gdscript]\n" +"printt(\"A\", \"B\", \"C\") # 输出“A B C”\n" +"[/gdscript]\n" +"[csharp]\n" +"GD.PrintT(\"A\", \"B\", \"C\"); // 输出“A B C”\n" +"[/csharp]\n" +"[/codeblocks]" + +msgid "" +"Pushes an error message to Godot's built-in debugger and to the OS terminal.\n" +"[codeblocks]\n" +"[gdscript]\n" +"push_error(\"test error\") # Prints \"test error\" to debugger and terminal " +"as an error.\n" +"[/gdscript]\n" +"[csharp]\n" +"GD.PushError(\"test error\"); // Prints \"test error\" to debugger and " +"terminal as an error.\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] This function does not pause project execution. To print an " +"error message and pause project execution in debug builds, use " +"[code]assert(false, \"test error\")[/code] instead." +msgstr "" +"将错误消息推送到 Godot 的内置调试器和操作系统终端。\n" +"[codeblocks]\n" +"[gdscript]\n" +"push_error(\"test error\") # 向调试器和终端打印“test error”作为错误。\n" +"[/gdscript]\n" +"[csharp]\n" +"GD.PushError(\"test error\"); // 向调试器和终端打印“test error”作为错误。\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b]该函数不会暂停项目执行。要在调试版本中打印错误消息并暂停项目执" +"行,请改用 [code]assert(false, \"test error\")[/code]。" + +msgid "" +"Pushes a warning message to Godot's built-in debugger and to the OS " +"terminal.\n" +"[codeblocks]\n" +"[gdscript]\n" +"push_warning(\"test warning\") # Prints \"test warning\" to debugger and " +"terminal as a warning.\n" +"[/gdscript]\n" +"[csharp]\n" +"GD.PushWarning(\"test warning\"); // Prints \"test warning\" to debugger and " +"terminal as a warning.\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"将警告消息推送到 Godot 的内置调试器和操作系统终端。\n" +"[codeblocks]\n" +"[gdscript]\n" +"push_warning(\"test warning\") # 以警告的形式向调试器和终端输出“test " +"warning”。\n" +"[/gdscript]\n" +"[csharp]\n" +"GD.PushWarning(\"test warning\"); // 以警告的形式向调试器和终端输出“test " +"warning”。\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Converts an angle expressed in radians to degrees.\n" "[codeblock]\n" @@ -2624,6 +3564,32 @@ msgstr "" "rad_to_deg(PI * 2) # 返回 360\n" "[/codeblock]" +msgid "" +"Given a [param seed], returns a [PackedInt64Array] of size [code]2[/code], " +"where its first element is the randomized [int] value, and the second element " +"is the same as [param seed]. Passing the same [param seed] consistently " +"returns the same array.\n" +"[b]Note:[/b] \"Seed\" here refers to the internal state of the pseudo random " +"number generator, currently implemented as a 64 bit integer.\n" +"[codeblock]\n" +"var a = rand_from_seed(4)\n" +"\n" +"print(a[0]) # Prints 2879024997\n" +"print(a[1]) # Prints 4\n" +"[/codeblock]" +msgstr "" +"给定一个 [param seed],返回一个大小为 [code]2[/code] 的 [PackedInt64Array],其" +"中第一个元素是随机化的 [int] 值,第二个元素与 [param seed] 相同。传入相同的 " +"[param seed] 会一致地返回相同的数组。\n" +"[b]注意:[/b]这里的“种子”是指伪随机数发生器的内部状态,目前实现为一个 64 位整" +"数。\n" +"[codeblock]\n" +"var a = rand_from_seed(4)\n" +"\n" +"print(a[0]) # 输出 2879024997\n" +"print(a[1]) # 输出 4\n" +"[/codeblock]" + msgid "" "Returns a random floating-point value between [code]0.0[/code] and [code]1.0[/" "code] (inclusive).\n" @@ -2953,6 +3919,23 @@ msgstr "" "signf(NAN) # 返回 0.0\n" "[/codeblock]" +msgid "" +"Returns [code]-1[/code] if [param x] is negative, [code]1[/code] if [param x] " +"is positive, and [code]0[/code] if [param x] is zero.\n" +"[codeblock]\n" +"signi(-6) # Returns -1\n" +"signi(0) # Returns 0\n" +"signi(6) # Returns 1\n" +"[/codeblock]" +msgstr "" +"如果 [param x] 为负,则返回 [code]-1[/code];如果 [param x] 为正,则返回 " +"[code]1[/code];如果 [param x] 为零,则返回 [code]0[/code]。\n" +"[codeblock]\n" +"signi(-6) # 返回 -1\n" +"signi(0) # 返回 0\n" +"signi(6) # 返回 1\n" +"[/codeblock]" + msgid "" "Returns the sine of angle [param angle_rad] in radians.\n" "[codeblock]\n" @@ -2979,6 +3962,61 @@ msgstr "" "sinh(a) # 返回 0.75\n" "[/codeblock]" +msgid "" +"Returns a smooth cubic Hermite interpolation between [code]0[/code] and " +"[code]1[/code].\n" +"For positive ranges (when [code]from <= to[/code]) the return value is " +"[code]0[/code] when [code]x <= from[/code], and [code]1[/code] when [code]x " +">= to[/code]. If [param x] lies between [param from] and [param to], the " +"return value follows an S-shaped curve that smoothly transitions from " +"[code]0[/code] to [code]1[/code].\n" +"For negative ranges (when [code]from > to[/code]) the function is mirrored " +"and returns [code]1[/code] when [code]x <= to[/code] and [code]0[/code] when " +"[code]x >= from[/code].\n" +"This S-shaped curve is the cubic Hermite interpolator, given by [code]f(y) = " +"3*y^2 - 2*y^3[/code] where [code]y = (x-from) / (to-from)[/code].\n" +"[codeblock]\n" +"smoothstep(0, 2, -5.0) # Returns 0.0\n" +"smoothstep(0, 2, 0.5) # Returns 0.15625\n" +"smoothstep(0, 2, 1.0) # Returns 0.5\n" +"smoothstep(0, 2, 2.0) # Returns 1.0\n" +"[/codeblock]\n" +"Compared to [method ease] with a curve value of [code]-1.6521[/code], [method " +"smoothstep] returns the smoothest possible curve with no sudden changes in " +"the derivative. If you need to perform more advanced transitions, use [Tween] " +"or [AnimationPlayer].\n" +"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" +"smoothstep_ease_comparison.png]Comparison between smoothstep() and ease(x, " +"-1.6521) return values[/url]\n" +"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" +"smoothstep_range.webp]Smoothstep() return values with positive, zero, and " +"negative ranges[/url]" +msgstr "" +"返回在 [code]0[/code] 和 [code]1[/code] 之间的平滑三次 Hermite 插值结果。\n" +"对于正范围(当 [code]from <= to[/code] 时),当 [code]x <= from[/code] 时返回" +"值为 [code]0[/code],当 [code]x >= to[/code] 时返回值为 [code]1[/code]。如果 " +"[param x] 位于 [param from] 和 [param to] 之间,返回值遵循一条 S 形曲线,平滑" +"地从 [code]0[/code] 过渡到 [code]1[/code]。\n" +"对于负范围(当 [code]from > to[/code] 时),函数镜像翻转,当 [code]x <= to[/" +"code] 时返回值为 [code]1[/code],当 [code]x >= from[/code] 时返回值为 " +"[code]0[/code]。\n" +"这条 S 形曲线是三次 Hermite 插值器,由 [code]f(y) = 3y^2 - 2y^3[/code] 给出," +"其中 [code]y = (x-from) / (to-from)[/code]。\n" +"[codeblock]\n" +"smoothstep(0, 2, -5.0) # 返回 0.0\n" +"smoothstep(0, 2, 0.5) # 返回 0.15625\n" +"smoothstep(0, 2, 1.0) # 返回 0.5\n" +"smoothstep(0, 2, 2.0) # 返回 1.0\n" +"[/codeblock]\n" +"与曲线值为 [code]-1.6521[/code] 的 [method ease] 方法相比,[method " +"smoothstep] 返回的曲线是最平滑的,导数没有突变。如果你需要执行更高级的过渡效" +"果,请使用 [Tween] 或 [AnimationPlayer]。\n" +"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" +"smoothstep_ease_comparison.png]smoothstep() 和 ease(x, -1.6521) 返回值的比较[/" +"url]\n" +"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" +"smoothstep_range.webp]Smoothstep() 在正范围、零范围和负范围的返回值[/url]" + msgid "" "Returns the multiple of [param step] that is the closest to [param x]. This " "can also be used to round a floating-point number to an arbitrary number of " @@ -3194,6 +4232,50 @@ msgstr "" "type_convert(\"Hi!\", TYPE_NIL) # 返回 null\n" "[/codeblock]" +msgid "" +"Returns a human-readable name of the given [param type], using the [enum " +"Variant.Type] values.\n" +"[codeblock]\n" +"print(TYPE_INT) # Prints 2\n" +"print(type_string(TYPE_INT)) # Prints \"int\"\n" +"print(type_string(TYPE_STRING)) # Prints \"String\"\n" +"[/codeblock]\n" +"See also [method typeof]." +msgstr "" +"返回类型 [param type] 的人类可读名称,参数使用 [enum Variant.Type] 的值。\n" +"[codeblock]\n" +"print(TYPE_INT) # 输出 2\n" +"print(type_string(TYPE_INT)) # 输出“int”\n" +"print(type_string(TYPE_STRING)) # 输出“String”\n" +"[/codeblock]\n" +"另见 [method typeof]。" + +msgid "" +"Returns the internal type of the given [param variable], using the [enum " +"Variant.Type] values.\n" +"[codeblock]\n" +"var json = JSON.new()\n" +"json.parse('[\"a\", \"b\", \"c\"]')\n" +"var result = json.get_data()\n" +"if result is Array:\n" +" print(result[0]) # Prints \"a\"\n" +"else:\n" +" print(\"Unexpected result!\")\n" +"[/codeblock]\n" +"See also [method type_string]." +msgstr "" +"返回变量 [param variable] 的内部类型,使用的是 [enum Variant.Type] 中的值。\n" +"[codeblock]\n" +"var json = JSON.new()\n" +"json.parse('[\"a\", \"b\", \"c\"]')\n" +"var result = json.get_data()\n" +"if typeof(result) == TYPE_ARRAY:\n" +" print(result[0]) # 输出“a”\n" +"else:\n" +" print(\"预料之外的结果!\")\n" +"[/codeblock]\n" +"另见 [method type_string]。" + msgid "" "Encodes a [Variant] value to a byte array, without encoding objects. " "Deserialization can be done with [method bytes_to_var].\n" @@ -3946,9 +5028,18 @@ msgstr "超级键。(仅在 Linux/X11 上)。" msgid "Help key." msgstr "Help 键。" +msgid "Back key." +msgstr "向后键。" + +msgid "Forward key." +msgstr "向前键。" + msgid "Media stop key." msgstr "媒体停止播放键。" +msgid "Refresh key." +msgstr "刷新键。" + msgid "Volume down key." msgstr "音量降低键。" @@ -4057,6 +5148,51 @@ msgstr "未知键。" msgid "Space key." msgstr "空格键。" +msgid "Exclamation mark ([code]![/code]) key." +msgstr "感叹号([code]![/code])键。" + +msgid "Double quotation mark ([code]\"[/code]) key." +msgstr "双引号([code]\"[/code])键。" + +msgid "Number sign or [i]hash[/i] ([code]#[/code]) key." +msgstr "数字符号即[i]井号[/i]([code]#[/code])键。" + +msgid "Dollar sign ([code]$[/code]) key." +msgstr "美元符号([code]$[/code])键。" + +msgid "Percent sign ([code]%[/code]) key." +msgstr "百分号([code]%[/code])键。" + +msgid "Ampersand ([code]&[/code]) key." +msgstr "与号([code]&[/code])键。" + +msgid "Apostrophe ([code]'[/code]) key." +msgstr "撇号([code]'[/code])键。" + +msgid "Left parenthesis ([code]([/code]) key." +msgstr "左括号([code]([/code])键。" + +msgid "Right parenthesis ([code])[/code]) key." +msgstr "右括号([code])[/code])键。" + +msgid "Asterisk ([code]*[/code]) key." +msgstr "星号([code]*[/code])键。" + +msgid "Plus ([code]+[/code]) key." +msgstr "加号([code]+[/code])键。" + +msgid "Comma ([code],[/code]) key." +msgstr "逗号([code],[/code])键。" + +msgid "Minus ([code]-[/code]) key." +msgstr "减号([code]-[/code])键。" + +msgid "Period ([code].[/code]) key." +msgstr "句号([code].[/code])键。" + +msgid "Slash ([code]/[/code]) key." +msgstr "正斜杠([code]/[/code])键。" + msgid "Number 0 key." msgstr "数字 0 键。" @@ -4087,6 +5223,27 @@ msgstr "数字 8 键。" msgid "Number 9 key." msgstr "数字 9 键。" +msgid "Colon ([code]:[/code]) key." +msgstr "冒号([code]:[/code])键。" + +msgid "Semicolon ([code];[/code]) key." +msgstr "分号([code];[/code])键。" + +msgid "Less-than sign ([code]<[/code]) key." +msgstr "小于号([code]<[/code])键。" + +msgid "Equal sign ([code]=[/code]) key." +msgstr "等于号([code]=[/code])键。" + +msgid "Greater-than sign ([code]>[/code]) key." +msgstr "大于号([code]>[/code])键。" + +msgid "Question mark ([code]?[/code]) key." +msgstr "问号([code]?[/code])键。" + +msgid "At sign ([code]@[/code]) key." +msgstr "艾特号([code]@[/code])键。" + msgid "A key." msgstr "A 键。" @@ -4165,6 +5322,42 @@ msgstr "Y 键。" msgid "Z key." msgstr "Z 键。" +msgid "Left bracket ([code][lb][/code]) key." +msgstr "左中括号([code][lb][/code])键。" + +msgid "Backslash ([code]\\[/code]) key." +msgstr "反斜杠([code]\\[/code])键。" + +msgid "Right bracket ([code][rb][/code]) key." +msgstr "右中括号([code][rb][/code])键。" + +msgid "Caret ([code]^[/code]) key." +msgstr "脱字符([code]^[/code])键。" + +msgid "Underscore ([code]_[/code]) key." +msgstr "下划线([code]_[/code])键。" + +msgid "Backtick ([code]`[/code]) key." +msgstr "重音符([code]`[/code])键。" + +msgid "Left brace ([code]{[/code]) key." +msgstr "左大括号([code]{[/code])键。" + +msgid "Vertical bar or [i]pipe[/i] ([code]|[/code]) key." +msgstr "垂直的条或[i]竖线[/i]([code]|[/code]键)。" + +msgid "Right brace ([code]}[/code]) key." +msgstr "右大括号([code]}[/code])键。" + +msgid "Tilde ([code]~[/code]) key." +msgstr "波浪线([code]~[/code])键。" + +msgid "Yen symbol ([code]¥[/code]) key." +msgstr "日元符号([code]¥[/code])键。" + +msgid "Section sign ([code]§[/code]) key." +msgstr "章节号([code]§[/code])键。" + msgid "Key Code mask." msgstr "键码掩码。" @@ -4543,6 +5736,37 @@ msgstr "" "用于将 MIDI 设备恢复至开机时的默认状态而发送的 MIDI 消息。MIDI 设备正在启动时" "不应该发送。" +msgid "" +"Methods that return [enum Error] return [constant OK] when no error " +"occurred.\n" +"Since [constant OK] has value [code]0[/code], and all other error constants " +"are positive integers, it can also be used in boolean checks.\n" +"[codeblock]\n" +"var error = method_that_returns_error()\n" +"if error != OK:\n" +" printerr(\"Failure!\")\n" +"\n" +"# Or, alternatively:\n" +"if error:\n" +" printerr(\"Still failing!\")\n" +"[/codeblock]\n" +"[b]Note:[/b] Many functions do not return an error code, but will print error " +"messages to standard output." +msgstr "" +"返回 [enum Error] 的方法会在没有错误发生时返回 [constant OK]。\n" +"由于 [constant OK] 的值为 [code]0[/code],并且所有其他错误常数都是正整数,因此" +"返回值也可以用于布尔检查。\n" +"[codeblock]\n" +"var error = method_that_returns_error()\n" +"if error != OK:\n" +" printerr(\"失败!\")\n" +"\n" +"# 或者也可以:\n" +"if error:\n" +" printerr(\"还是失败!\")\n" +"[/codeblock]\n" +"[b]注意:[/b]许多函数不返回错误代码,但会将错误信息打印到标准输出。" + msgid "Generic error." msgstr "一般性错误。" @@ -4898,6 +6122,175 @@ msgstr "" "提示该属性的值是一个被编码为对象 ID 的对象,其类型在提示字符串中指定。被用于调" "试器。" +msgid "" +"If a property is [String], hints that the property represents a particular " +"type (class). This allows to select a type from the create dialog. The " +"property will store the selected type as a string.\n" +"If a property is [Array], hints the editor how to show elements. The " +"[code]hint_string[/code] must encode nested types using [code]\":\"[/code] " +"and [code]\"/\"[/code].\n" +"[codeblocks]\n" +"[gdscript]\n" +"# Array of elem_type.\n" +"hint_string = \"%d:\" % [elem_type]\n" +"hint_string = \"%d/%d:%s\" % [elem_type, elem_hint, elem_hint_string]\n" +"# Two-dimensional array of elem_type (array of arrays of elem_type).\n" +"hint_string = \"%d:%d:\" % [TYPE_ARRAY, elem_type]\n" +"hint_string = \"%d:%d/%d:%s\" % [TYPE_ARRAY, elem_type, elem_hint, " +"elem_hint_string]\n" +"# Three-dimensional array of elem_type (array of arrays of arrays of " +"elem_type).\n" +"hint_string = \"%d:%d:%d:\" % [TYPE_ARRAY, TYPE_ARRAY, elem_type]\n" +"hint_string = \"%d:%d:%d/%d:%s\" % [TYPE_ARRAY, TYPE_ARRAY, elem_type, " +"elem_hint, elem_hint_string]\n" +"[/gdscript]\n" +"[csharp]\n" +"// Array of elemType.\n" +"hintString = $\"{elemType:D}:\";\n" +"hintString = $\"{elemType:}/{elemHint:D}:{elemHintString}\";\n" +"// Two-dimensional array of elemType (array of arrays of elemType).\n" +"hintString = $\"{Variant.Type.Array:D}:{elemType:D}:\";\n" +"hintString = $\"{Variant.Type.Array:D}:{elemType:D}/{elemHint:D}:" +"{elemHintString}\";\n" +"// Three-dimensional array of elemType (array of arrays of arrays of " +"elemType).\n" +"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Array:D}:{elemType:D}:" +"\";\n" +"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Array:D}:{elemType:D}/" +"{elemHint:D}:{elemHintString}\";\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Examples:[/b]\n" +"[codeblocks]\n" +"[gdscript]\n" +"hint_string = \"%d:\" % [TYPE_INT] # Array of integers.\n" +"hint_string = \"%d/%d:1,10,1\" % [TYPE_INT, PROPERTY_HINT_RANGE] # Array of " +"integers (in range from 1 to 10).\n" +"hint_string = \"%d/%d:Zero,One,Two\" % [TYPE_INT, PROPERTY_HINT_ENUM] # Array " +"of integers (an enum).\n" +"hint_string = \"%d/%d:Zero,One,Three:3,Six:6\" % [TYPE_INT, " +"PROPERTY_HINT_ENUM] # Array of integers (an enum).\n" +"hint_string = \"%d/%d:*.png\" % [TYPE_STRING, PROPERTY_HINT_FILE] # Array of " +"strings (file paths).\n" +"hint_string = \"%d/%d:Texture2D\" % [TYPE_OBJECT, " +"PROPERTY_HINT_RESOURCE_TYPE] # Array of textures.\n" +"\n" +"hint_string = \"%d:%d:\" % [TYPE_ARRAY, TYPE_FLOAT] # Two-dimensional array " +"of floats.\n" +"hint_string = \"%d:%d/%d:\" % [TYPE_ARRAY, TYPE_STRING, " +"PROPERTY_HINT_MULTILINE_TEXT] # Two-dimensional array of multiline strings.\n" +"hint_string = \"%d:%d/%d:-1,1,0.1\" % [TYPE_ARRAY, TYPE_FLOAT, " +"PROPERTY_HINT_RANGE] # Two-dimensional array of floats (in range from -1 to " +"1).\n" +"hint_string = \"%d:%d/%d:Texture2D\" % [TYPE_ARRAY, TYPE_OBJECT, " +"PROPERTY_HINT_RESOURCE_TYPE] # Two-dimensional array of textures.\n" +"[/gdscript]\n" +"[csharp]\n" +"hintString = $\"{Variant.Type.Int:D}/{PropertyHint.Range:D}:1,10,1\"; // " +"Array of integers (in range from 1 to 10).\n" +"hintString = $\"{Variant.Type.Int:D}/{PropertyHint.Enum:D}:Zero,One,Two\"; // " +"Array of integers (an enum).\n" +"hintString = $\"{Variant.Type.Int:D}/{PropertyHint.Enum:D}:Zero,One,Three:3," +"Six:6\"; // Array of integers (an enum).\n" +"hintString = $\"{Variant.Type.String:D}/{PropertyHint.File:D}:*.png\"; // " +"Array of strings (file paths).\n" +"hintString = $\"{Variant.Type.Object:D}/{PropertyHint.ResourceType:D}:" +"Texture2D\"; // Array of textures.\n" +"\n" +"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Float:D}:\"; // Two-" +"dimensional array of floats.\n" +"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.String:D}/{PropertyHint." +"MultilineText:D}:\"; // Two-dimensional array of multiline strings.\n" +"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Float:D}/{PropertyHint." +"Range:D}:-1,1,0.1\"; // Two-dimensional array of floats (in range from -1 to " +"1).\n" +"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Object:D}/{PropertyHint." +"ResourceType:D}:Texture2D\"; // Two-dimensional array of textures.\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] The trailing colon is required for properly detecting built-in " +"types." +msgstr "" +"如果属性为 [String],则提示该属性代表特定的类型(类)。这样就能使用创建对话框" +"选择类型。该属性中存放的是所选类型,是一个字符串。\n" +"如果属性为 [Array],则提示编辑器如何显示其中的元素。[code]hint_string[/code] " +"必须使用 [code]\":\"[/code] 和 [code]\"/\"[/code] 对内嵌的类型进行编码。\n" +"[codeblocks]\n" +"[gdscript]\n" +"# elem_type 数组。\n" +"hint_string = \"%d:\" % [elem_type]\n" +"hint_string = \"%d/%d:%s\" % [elem_type, elem_hint, elem_hint_string]\n" +"# elem_type 二维数组(elem_type 数组的数组)。\n" +"hint_string = \"%d:%d:\" % [TYPE_ARRAY, elem_type]\n" +"hint_string = \"%d:%d/%d:%s\" % [TYPE_ARRAY, elem_type, elem_hint, " +"elem_hint_string]\n" +"# elem_type 三维数组(elem_type 数组的数组的数组)。\n" +"hint_string = \"%d:%d:%d:\" % [TYPE_ARRAY, TYPE_ARRAY, elem_type]\n" +"hint_string = \"%d:%d:%d/%d:%s\" % [TYPE_ARRAY, TYPE_ARRAY, elem_type, " +"elem_hint, elem_hint_string]\n" +"[/gdscript]\n" +"[csharp]\n" +"// elem_type 数组。\n" +"hintString = $\"{elemType:D}:\";\n" +"hintString = $\"{elemType:}/{elemHint:D}:{elemHintString}\";\n" +"// elem_type 二维数组(elem_type 数组的数组)。\n" +"hintString = $\"{Variant.Type.Array:D}:{elemType:D}:\";\n" +"hintString = $\"{Variant.Type.Array:D}:{elemType:D}/{elemHint:D}:" +"{elemHintString}\";\n" +"// elem_type 三维数组(elem_type 数组的数组的数组)。\n" +"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Array:D}:{elemType:D}:" +"\";\n" +"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Array:D}:{elemType:D}/" +"{elemHint:D}:{elemHintString}\";\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]示例:[/b]\n" +"[codeblocks]\n" +"[gdscript]\n" +"hint_string = \"%d:\" % [TYPE_INT] # 整数数组。\n" +"hint_string = \"%d/%d:1,10,1\" % [TYPE_INT, PROPERTY_HINT_RANGE] # 整数数组" +"(范围为 1 到 10)。\n" +"hint_string = \"%d/%d:Zero,One,Two\" % [TYPE_INT, PROPERTY_HINT_ENUM] # 整数数" +"组(枚举)。\n" +"hint_string = \"%d/%d:Zero,One,Three:3,Six:6\" % [TYPE_INT, " +"PROPERTY_HINT_ENUM] # 整数数组(枚举)。\n" +"hint_string = \"%d/%d:*.png\" % [TYPE_STRING, PROPERTY_HINT_FILE] # 字符串数组" +"(文件路径)。\n" +"hint_string = \"%d/%d:Texture2D\" % [TYPE_OBJECT, " +"PROPERTY_HINT_RESOURCE_TYPE] # 纹理数组。\n" +"\n" +"hint_string = \"%d:%d:\" % [TYPE_ARRAY, TYPE_FLOAT] # 浮点数二维数组。\n" +"hint_string = \"%d:%d/%d:\" % [TYPE_ARRAY, TYPE_STRING, " +"PROPERTY_HINT_MULTILINE_TEXT] # 多行字符串二维数组。\n" +"hint_string = \"%d:%d/%d:-1,1,0.1\" % [TYPE_ARRAY, TYPE_FLOAT, " +"PROPERTY_HINT_RANGE] # 浮点数二维数组(范围为 -1 到 1)。\n" +"hint_string = \"%d:%d/%d:Texture2D\" % [TYPE_ARRAY, TYPE_OBJECT, " +"PROPERTY_HINT_RESOURCE_TYPE] # 纹理二维数组。\n" +"[/gdscript]\n" +"[csharp]\n" +"hintString = $\"{Variant.Type.Int:D}/{PropertyHint.Range:D}:1,10,1\"; // 整数" +"数组(范围为 1 到 10)。\n" +"hintString = $\"{Variant.Type.Int:D}/{PropertyHint.Enum:D}:Zero,One,Two\"; // " +"整数数组(枚举)。\n" +"hintString = $\"{Variant.Type.Int:D}/{PropertyHint.Enum:D}:Zero,One,Three:3," +"Six:6\"; // 整数数组(枚举)。\n" +"hintString = $\"{Variant.Type.String:D}/{PropertyHint.File:D}:*.png\"; // 字符" +"串数组(文件路径)。\n" +"hintString = $\"{Variant.Type.Object:D}/{PropertyHint.ResourceType:D}:" +"Texture2D\"; // 纹理数组。\n" +"\n" +"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Float:D}:\"; // 浮点数二" +"维数组。\n" +"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.String:D}/{PropertyHint." +"MultilineText:D}:\"; // 多行字符串二维数组。\n" +"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Float:D}/{PropertyHint." +"Range:D}:-1,1,0.1\"; // 浮点数二维数组(范围为 -1 到 1)。\n" +"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Object:D}/{PropertyHint." +"ResourceType:D}:Texture2D\"; // 纹理二维数组。\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b]后缀冒号是必须的,否则无法正确识别内置类型。" + msgid "This hint is not used by the engine." msgstr "该提示不会被引擎使用。" @@ -4939,6 +6332,11 @@ msgid "" "hint string." msgstr "提示属性是一个 [Array],其存储类型在提示字符串中指定。" +msgid "" +"Hints that a property is a [Dictionary] with the stored types specified in " +"the hint string." +msgstr "提示属性是一个 [Dictionary],其存储类型在提示字符串中指定。" + msgid "" "Hints that a string property is a locale code. Editing it will show a locale " "dialog for picking language and country." @@ -4969,6 +6367,39 @@ msgid "" "with the secret character." msgstr "提示字符串属性为密码,每一个字符都会被替换为秘密字符。" +msgid "" +"Hints that a [Callable] property should be displayed as a clickable button. " +"When the button is pressed, the callable is called. The hint string specifies " +"the button text and optionally an icon from the [code]\"EditorIcons\"[/code] " +"theme type.\n" +"[codeblock lang=text]\n" +"\"Click me!\" - A button with the text \"Click me!\" and the default " +"\"Callable\" icon.\n" +"\"Click me!,ColorRect\" - A button with the text \"Click me!\" and the " +"\"ColorRect\" icon.\n" +"[/codeblock]\n" +"[b]Note:[/b] A [Callable] cannot be properly serialized and stored in a file, " +"so it is recommended to use [constant PROPERTY_USAGE_EDITOR] instead of " +"[constant PROPERTY_USAGE_DEFAULT]." +msgstr "" +"一个[Callable]属性应当被显示为一个可点击的按钮。当按钮被按下,该属性被调用。提" +"示字符串指定了按钮的文本并可以通过[code]\"EditorIcons\"[/code]主题类型指定一个" +"图标。\n" +"[codeblock lang=text]\n" +"\"Click me!\" - 一个按钮,文本为“Click me!”,图标是默认的“Callable”图标。\n" +"\"Click me!,ColorRect\" - 一个按钮,文本为“Click me!”,图标是“ColorRect”图" +"标。\n" +"[/codeblock]\n" +"[b]注意:[/b]一个可调用对象[Callable]无法被妥善序列化和保存到文件,所以建议使" +"用[constant PROPERTY_USAGE_EDITOR]而不是[constant PROPERTY_USAGE_DEFAULT]。" + +msgid "" +"Hints that a property will be changed on its own after setting, such as " +"[member AudioStreamPlayer.playing] or [member GPUParticles3D.emitting]." +msgstr "" +"提示一个属性在设置后仍会自动被改变,例如[member AudioStreamPlayer.playing]或" +"[member GPUParticles3D.emitting]。" + msgid "Represents the size of the [enum PropertyHint] enum." msgstr "代表 [enum PropertyHint] 枚举的大小。" @@ -5019,6 +6450,18 @@ msgstr "该属性不在 [PackedScene] 中保存其状态。" msgid "Editing the property prompts the user for restarting the editor." msgstr "编辑属性会提示用户重新启动编辑器。" +msgid "" +"The property is a script variable. [constant PROPERTY_USAGE_SCRIPT_VARIABLE] " +"can be used to distinguish between exported script variables from built-in " +"variables (which don't have this usage flag). By default, [constant " +"PROPERTY_USAGE_SCRIPT_VARIABLE] is [b]not[/b] applied to variables that are " +"created by overriding [method Object._get_property_list] in a script." +msgstr "" +"本属性是一个脚本变量。[constant PROPERTY_USAGE_SCRIPT_VARIABLE]可以用来把导出" +"的脚本变量与内建变量(没有这一项使用标识)区分开来。默认情况下,[constant " +"PROPERTY_USAGE_SCRIPT_VARIABLE]对脚本中通过重载[method Object." +"_get_property_list]创建的变量[b]不生效[/b]。" + msgid "" "The property value of type [Object] will be stored even if its value is " "[code]null[/code]." @@ -5030,6 +6473,12 @@ msgstr "如果该属性被修改,则所有检查器字段都将被刷新。" msgid "This flag is not used by the engine." msgstr "该标志不会被引擎使用。" +msgid "" +"The property is a variable of enum type, i.e. it only takes named integer " +"constants from its associated enumeration." +msgstr "" +"该属性是一个枚举类型的变量,即它仅从其关联的枚举中获取被命名的整数常量。" + msgid "" "If property has [code]nil[/code] as default value, its type will be [Variant]." msgstr "如果属性将 [code]nil[/code] 作为默认值,则其类型将为 [Variant]。" @@ -5385,6 +6834,45 @@ msgstr "构造给定 [AABB] 的副本。" msgid "Constructs an [AABB] by [param position] and [param size]." msgstr "使用指定的 [param position] 和 [param size] 构造 [AABB]。" +msgid "" +"Returns an [AABB] equivalent to this bounding box, with its width, height, " +"and depth modified to be non-negative values.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var box = AABB(Vector3(5, 0, 5), Vector3(-20, -10, -5))\n" +"var absolute = box.abs()\n" +"print(absolute.position) # Prints (-15.0, -10.0, 0.0)\n" +"print(absolute.size) # Prints (20.0, 10.0, 5.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"var box = new Aabb(new Vector3(5, 0, 5), new Vector3(-20, -10, -5));\n" +"var absolute = box.Abs();\n" +"GD.Print(absolute.Position); // Prints (-15, -10, 0)\n" +"GD.Print(absolute.Size); // Prints (20, 10, 5)\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] It's recommended to use this method when [member size] is " +"negative, as most other methods in Godot assume that the [member size]'s " +"components are greater than [code]0[/code]." +msgstr "" +"返回一个与该边界框等效的 [AABB],其宽度、高度和深度被修改为非负值。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var box = AABB(Vector3(5, 0, 5), Vector3(-20, -10, -5))\n" +"var absolute = box.abs()\n" +"print(absolute.position) # 输出 (-15.0, -10.0, 0.0)\n" +"print(absolute.size) # 输出 (20.0, 10.0, 5.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"var box = new Aabb(new Vector3(5, 0, 5), new Vector3(-20, -10, -5));\n" +"var absolute = box.Abs();\n" +"GD.Print(absolute.Position); // 输出 (-15, -10, 0)\n" +"GD.Print(absolute.Size); // 输出 (20, 10, 5)\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b]当 [member size] 为负时,建议使用该方法,因为 Godot 中的大多数其" +"他方法都假设 [member size] 的分量大于 [code]0[/code]。" + msgid "" "Returns [code]true[/code] if this bounding box [i]completely[/i] encloses the " "[param with] box. The edges of both boxes are included.\n" @@ -5432,6 +6920,61 @@ msgstr "" "[/csharp]\n" "[/codeblocks]" +msgid "" +"Returns a copy of this bounding box expanded to align the edges with the " +"given [param to_point], if necessary.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var box = AABB(Vector3(0, 0, 0), Vector3(5, 2, 5))\n" +"\n" +"box = box.expand(Vector3(10, 0, 0))\n" +"print(box.position) # Prints (0.0, 0.0, 0.0)\n" +"print(box.size) # Prints (10.0, 2.0, 5.0)\n" +"\n" +"box = box.expand(Vector3(-5, 0, 5))\n" +"print(box.position) # Prints (-5.0, 0.0, 0.0)\n" +"print(box.size) # Prints (15.0, 2.0, 5.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"var box = new Aabb(new Vector3(0, 0, 0), new Vector3(5, 2, 5));\n" +"\n" +"box = box.Expand(new Vector3(10, 0, 0));\n" +"GD.Print(box.Position); // Prints (0, 0, 0)\n" +"GD.Print(box.Size); // Prints (10, 2, 5)\n" +"\n" +"box = box.Expand(new Vector3(-5, 0, 5));\n" +"GD.Print(box.Position); // Prints (-5, 0, 0)\n" +"GD.Print(box.Size); // Prints (15, 2, 5)\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"返回该边界框的副本,如有必要,该边界框被扩展为将边与给定的 [param to_point] 对" +"齐。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var box = AABB(Vector3(0, 0, 0), Vector3(5, 2, 5))\n" +"\n" +"box = box.expand(Vector3(10, 0, 0))\n" +"print(box.position) # 输出 (0.0, 0.0, 0.0)\n" +"print(box.size) # 输出 (10.0, 2.0, 5.0)\n" +"\n" +"box = box.expand(Vector3(-5, 0, 5))\n" +"print(box.position) # 输出 (-5.0, 0.0, 0.0)\n" +"print(box.size) # 输出 (15.0, 2.0, 5.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"var box = new Aabb(new Vector3(0, 0, 0), new Vector3(5, 2, 5));\n" +"\n" +"box = box.Expand(new Vector3(10, 0, 0));\n" +"GD.Print(box.Position); // 输出 (0, 0, 0)\n" +"GD.Print(box.Size); // 输出 (10, 2, 5)\n" +"\n" +"box = box.Expand(new Vector3(-5, 0, 5));\n" +"GD.Print(box.Position); // 输出 (-5, 0, 0)\n" +"GD.Print(box.Size); // 输出 (15, 2, 5)\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Returns the center point of the bounding box. This is the same as " "[code]position + (size / 2.0)[/code]." @@ -5446,6 +6989,48 @@ msgstr "" "与 [member position] 相同;[param idx] 为 [code]7[/code] 时,与 [member end] " "相同。" +msgid "" +"Returns the longest normalized axis of this bounding box's [member size], as " +"a [Vector3] ([constant Vector3.RIGHT], [constant Vector3.UP], or [constant " +"Vector3.BACK]).\n" +"[codeblocks]\n" +"[gdscript]\n" +"var box = AABB(Vector3(0, 0, 0), Vector3(2, 4, 8))\n" +"\n" +"print(box.get_longest_axis()) # Prints (0.0, 0.0, 1.0)\n" +"print(box.get_longest_axis_index()) # Prints 2\n" +"print(box.get_longest_axis_size()) # Prints 8.0\n" +"[/gdscript]\n" +"[csharp]\n" +"var box = new Aabb(new Vector3(0, 0, 0), new Vector3(2, 4, 8));\n" +"\n" +"GD.Print(box.GetLongestAxis()); // Prints (0, 0, 1)\n" +"GD.Print(box.GetLongestAxisIndex()); // Prints Z\n" +"GD.Print(box.GetLongestAxisSize()); // Prints 8\n" +"[/csharp]\n" +"[/codeblocks]\n" +"See also [method get_longest_axis_index] and [method get_longest_axis_size]." +msgstr "" +"返回该边界框的 [member size] 的最长归一化轴,作为 [Vector3]([constant " +"Vector3.RIGHT]、[constant Vector3.UP] 或 [constant Vector3.BACK])。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var box = AABB(Vector3(0, 0, 0), Vector3(2, 4, 8))\n" +"\n" +"print(box.get_longest_axis()) # 输出 (0.0, 0.0, 1.0)\n" +"print(box.get_longest_axis_index()) # 输出 2\n" +"print(box.get_longest_axis_size()) # 输出 8.0\n" +"[/gdscript]\n" +"[csharp]\n" +"var box = new Aabb(new Vector3(0, 0, 0), new Vector3(2, 4, 8));\n" +"\n" +"GD.Print(box.GetLongestAxis()); // 输出 (0, 0, 1)\n" +"GD.Print(box.GetLongestAxisIndex()); // 输出 Z\n" +"GD.Print(box.GetLongestAxisSize()); // 输出 8\n" +"[/csharp]\n" +"[/codeblocks]\n" +"另见 [method get_longest_axis_index] 和 [method get_longest_axis_size]。" + msgid "" "Returns the index to the longest axis of this bounding box's [member size] " "(see [constant Vector3.AXIS_X], [constant Vector3.AXIS_Y], and [constant " @@ -5463,6 +7048,48 @@ msgstr "" "返回该边界框的 [member size] 的最长尺度。\n" "有关示例,请参阅 [method get_longest_axis]。" +msgid "" +"Returns the shortest normalized axis of this bounding box's [member size], as " +"a [Vector3] ([constant Vector3.RIGHT], [constant Vector3.UP], or [constant " +"Vector3.BACK]).\n" +"[codeblocks]\n" +"[gdscript]\n" +"var box = AABB(Vector3(0, 0, 0), Vector3(2, 4, 8))\n" +"\n" +"print(box.get_shortest_axis()) # Prints (1.0, 0.0, 0.0)\n" +"print(box.get_shortest_axis_index()) # Prints 0\n" +"print(box.get_shortest_axis_size()) # Prints 2.0\n" +"[/gdscript]\n" +"[csharp]\n" +"var box = new Aabb(new Vector3(0, 0, 0), new Vector3(2, 4, 8));\n" +"\n" +"GD.Print(box.GetShortestAxis()); // Prints (1, 0, 0)\n" +"GD.Print(box.GetShortestAxisIndex()); // Prints X\n" +"GD.Print(box.GetShortestAxisSize()); // Prints 2\n" +"[/csharp]\n" +"[/codeblocks]\n" +"See also [method get_shortest_axis_index] and [method get_shortest_axis_size]." +msgstr "" +"返回该边界框的 [member size] 的最短归一化轴,作为 [Vector3]([constant " +"Vector3.RIGHT]、[constant Vector3.UP] 或 [constant Vector3.BACK])。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var box = AABB(Vector3(0, 0, 0), Vector3(2, 4, 8))\n" +"\n" +"print(box.get_shortest_axis()) # 输出 (1.0, 0.0, 0.0)\n" +"print(box.get_shortest_axis_index()) # 输出 0\n" +"print(box.get_shortest_axis_size()) # 输出 2.0\n" +"[/gdscript]\n" +"[csharp]\n" +"var box = new Aabb(new Vector3(0, 0, 0), new Vector3(2, 4, 8));\n" +"\n" +"GD.Print(box.GetShortestAxis()); // 输出 (1, 0, 0)\n" +"GD.Print(box.GetShortestAxisIndex()); // 输出 X\n" +"GD.Print(box.GetShortestAxisSize()); // 输出 2\n" +"[/csharp]\n" +"[/codeblocks]\n" +"另见 [method get_shortest_axis_index] 和 [method get_shortest_axis_size]。" + msgid "" "Returns the index to the shortest axis of this bounding box's [member size] " "(see [constant Vector3.AXIS_X], [constant Vector3.AXIS_Y], and [constant " @@ -5494,6 +7121,53 @@ msgstr "" "返回该边界框的体积。这相当于 [code]size.x * size.y * size.z[/code]。另请参阅 " "[method has_volume]。" +msgid "" +"Returns a copy of this bounding box extended on all sides by the given amount " +"[param by]. A negative amount shrinks the box instead.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var a = AABB(Vector3(4, 4, 4), Vector3(8, 8, 8)).grow(4)\n" +"print(a.position) # Prints (0.0, 0.0, 0.0)\n" +"print(a.size) # Prints (16.0, 16.0, 16.0)\n" +"\n" +"var b = AABB(Vector3(0, 0, 0), Vector3(8, 4, 2)).grow(2)\n" +"print(b.position) # Prints (-2.0, -2.0, -2.0)\n" +"print(b.size) # Prints (12.0, 8.0, 6.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"var a = new Aabb(new Vector3(4, 4, 4), new Vector3(8, 8, 8)).Grow(4);\n" +"GD.Print(a.Position); // Prints (0, 0, 0)\n" +"GD.Print(a.Size); // Prints (16, 16, 16)\n" +"\n" +"var b = new Aabb(new Vector3(0, 0, 0), new Vector3(8, 4, 2)).Grow(2);\n" +"GD.Print(b.Position); // Prints (-2, -2, -2)\n" +"GD.Print(b.Size); // Prints (12, 8, 6)\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"返回该边界框的副本,该边界框在所有边上扩展给定量 [param by]。负数会缩小该" +"框。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var a = AABB(Vector3(4, 4, 4), Vector3(8, 8, 8)).grow(4)\n" +"print(a.position) # 输出 (0.0, 0.0, 0.0)\n" +"print(a.size) # 输出 (16.0, 16.0, 16.0)\n" +"\n" +"var b = AABB(Vector3(0, 0, 0), Vector3(8, 4, 2)).grow(2)\n" +"print(b.position) # 输出 (-2.0, -2.0, -2.0)\n" +"print(b.size) # 输出 (12.0, 8.0, 6.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"var a = new Aabb(new Vector3(4, 4, 4), new Vector3(8, 8, 8)).Grow(4);\n" +"GD.Print(a.Position); // 输出 (0, 0, 0)\n" +"GD.Print(a.Size); // 输出 (16, 16, 16)\n" +"\n" +"var b = new Aabb(new Vector3(0, 0, 0), new Vector3(8, 4, 2)).Grow(2);\n" +"GD.Print(b.Position); // 输出 (-2, -2, -2)\n" +"GD.Print(b.Size); // 输出 (12, 8, 6)\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Returns [code]true[/code] if the bounding box contains the given [param " "point]. By convention, points exactly on the right, top, and front sides are " @@ -5521,6 +7195,55 @@ msgstr "" "如果该边界框的宽度、高度和深度均为正值,则返回 [code]true[/code]。另见 " "[method get_volume]。" +msgid "" +"Returns the intersection between this bounding box and [param with]. If the " +"boxes do not intersect, returns an empty [AABB]. If the boxes intersect at " +"the edge, returns a flat [AABB] with no volume (see [method has_surface] and " +"[method has_volume]).\n" +"[codeblocks]\n" +"[gdscript]\n" +"var box1 = AABB(Vector3(0, 0, 0), Vector3(5, 2, 8))\n" +"var box2 = AABB(Vector3(2, 0, 2), Vector3(8, 4, 4))\n" +"\n" +"var intersection = box1.intersection(box2)\n" +"print(intersection.position) # Prints (2.0, 0.0, 2.0)\n" +"print(intersection.size) # Prints (3.0, 2.0, 4.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"var box1 = new Aabb(new Vector3(0, 0, 0), new Vector3(5, 2, 8));\n" +"var box2 = new Aabb(new Vector3(2, 0, 2), new Vector3(8, 4, 4));\n" +"\n" +"var intersection = box1.Intersection(box2);\n" +"GD.Print(intersection.Position); // Prints (2, 0, 2)\n" +"GD.Print(intersection.Size); // Prints (3, 2, 4)\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] If you only need to know whether two bounding boxes are " +"intersecting, use [method intersects], instead." +msgstr "" +"返回该边界框与 [param with] 之间的交集。如果框不相交,则返回空的 [AABB]。如果" +"框在边相交,则返回没有体积的平 [AABB](请参阅 [method has_surface] 和 [method " +"has_volume])。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var box1 = AABB(Vector3(0, 0, 0), Vector3(5, 2, 8))\n" +"var box2 = AABB(Vector3(2, 0, 2), Vector3(8, 4, 4))\n" +"\n" +"var intersection = box1.intersection(box2)\n" +"print(intersection.position) # 输出 (2.0, 0.0, 2.0)\n" +"print(intersection.size) # 输出 (3.0, 2.0, 4.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"var box1 = new Aabb(new Vector3(0, 0, 0), new Vector3(5, 2, 8));\n" +"var box2 = new Aabb(new Vector3(2, 0, 2), new Vector3(8, 4, 4));\n" +"\n" +"var intersection = box1.Intersection(box2);\n" +"GD.Print(intersection.Position); // 输出 (2, 0, 2)\n" +"GD.Print(intersection.Size); // 输出 (3, 2, 4)\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b]如果你只需要知道两个边界框是否相交,请改用 [method intersects]。" + msgid "" "Returns [code]true[/code] if this bounding box overlaps with the box [param " "with]. The edges of both boxes are [i]always[/i] excluded." @@ -5552,11 +7275,56 @@ msgstr "" "回 [code]null[/code]。\n" "该线段从 [param from] 开始,到 [param to] 结束。" +msgid "" +"Returns [code]true[/code] if this bounding box and [param aabb] are " +"approximately equal, by calling [method Vector3.is_equal_approx] on the " +"[member position] and the [member size]." +msgstr "" +"如果该边界框和 [param aabb] 近似相等,则返回 [code]true[/code],判断方法是通过" +"在 [member position] 和 [member size] 上调用 [method Vector3." +"is_equal_approx]。" + +msgid "" +"Returns [code]true[/code] if this bounding box's values are finite, by " +"calling [method Vector3.is_finite] on the [member position] and the [member " +"size]." +msgstr "" +"如果该边界框的值是有限的,则返回 [code]true[/code],判断方法是通过在 [member " +"position] 和 [member size] 上调用 [method Vector3.is_finite]。" + msgid "" "Returns an [AABB] that encloses both this bounding box and [param with] " "around the edges. See also [method encloses]." msgstr "返回边界包围该边界框和 [param with] 的 [AABB]。另见 [method encloses]。" +msgid "" +"The ending point. This is usually the corner on the top-right and back of the " +"bounding box, and is equivalent to [code]position + size[/code]. Setting this " +"point affects the [member size]." +msgstr "" +"终点。通常是边界框的背面右上角,等价于 [code]position + size[/code]。设置该点" +"会影响 [member size]。" + +msgid "" +"The origin point. This is usually the corner on the bottom-left and forward " +"of the bounding box." +msgstr "原点。通常是边界框的正面左下角。" + +msgid "" +"The bounding box's width, height, and depth starting from [member position]. " +"Setting this value also affects the [member end] point.\n" +"[b]Note:[/b] It's recommended setting the width, height, and depth to non-" +"negative values. This is because most methods in Godot assume that the " +"[member position] is the bottom-left-forward corner, and the [member end] is " +"the top-right-back corner. To get an equivalent bounding box with non-" +"negative size, use [method abs]." +msgstr "" +"边界框的宽度、高度、深度,相对于 [member position]。设置该值会影响终点 " +"[member end]。\n" +"[b]注意:[/b]建议将宽度、高度、深度设置为非负数,因为 Godot 中的大多数方法假" +"设 [member position] 为正面的左下角、[member end] 为背面的右上角。要获取等价且" +"大小非负的边界框,请使用 [method abs]。" + msgid "" "Returns [code]true[/code] if the [member position] or [member size] of both " "bounding boxes are not equal.\n" @@ -6105,6 +7873,36 @@ msgstr "" "这个方法是简写,等价于调用 [method play] 时使用 [code]custom_speed = -1.0[/" "code] 和 [code]from_end = true[/code],所以更多信息请参阅其描述。" +msgid "" +"Sets [member frame] the [member frame_progress] to the given values. Unlike " +"setting [member frame], this method does not reset the [member " +"frame_progress] to [code]0.0[/code] implicitly.\n" +"[b]Example:[/b] Change the animation while keeping the same [member frame] " +"and [member frame_progress]:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var current_frame = animated_sprite.get_frame()\n" +"var current_progress = animated_sprite.get_frame_progress()\n" +"animated_sprite.play(\"walk_another_skin\")\n" +"animated_sprite.set_frame_and_progress(current_frame, current_progress)\n" +"[/gdscript]\n" +"[/codeblocks]" +msgstr "" +"将 [member frame] 和 [member frame_progress] 设置为给定的值。与直接设置 " +"[member frame] 不同,此方法不会隐式地将 [member frame_progress] 重置为 " +"[code]0.0[/code]。\n" +"[b]示例:[/b] 在保持相同的 [member frame] 和 [member frame_progress] 的情况下" +"更改动画:\n" +"[codeblocks]\n" +"[gdscript]\n" +"# 更改动画的同时保留帧索引和进度。\n" +"var current_frame = animated_sprite.get_frame()\n" +"var current_progress = animated_sprite.get_frame_progress()\n" +"animated_sprite.play(\"walk_another_skin\")\n" +"animated_sprite.set_frame_and_progress(current_frame, current_progress)\n" +"[/gdscript]\n" +"[/codeblocks]" + msgid "" "Stops the currently playing animation. The animation position is reset to " "[code]0[/code] and the [code]custom_speed[/code] is reset to [code]1.0[/" @@ -6411,6 +8209,9 @@ msgstr "" msgid "Animation documentation index" msgstr "动画教程索引" +msgid "Adds a marker to this Animation." +msgstr "在动画中添加一个标记。" + msgid "Adds a track to the Animation." msgstr "向动画添加轨道。" @@ -6610,9 +8411,36 @@ msgid "" "-1." msgstr "返回指定轨迹的索引。如果没有找到,返回 -1。" +msgid "Returns the name of the marker located at the given time." +msgstr "返回位于给定时间点的标记的名称。" + +msgid "Returns the given marker's color." +msgstr "返回给定标记的颜色。" + +msgid "Returns every marker in this Animation, sorted ascending by time." +msgstr "返回动画中的所有标记,按时间升序排列。" + +msgid "Returns the given marker's time." +msgstr "返回给定标记的时间点。" + +msgid "" +"Returns the closest marker that comes after the given time. If no such marker " +"exists, an empty string is returned." +msgstr "返回晚于并最接近给定时间的标签,若该标签不存在,则返回空字符串。" + +msgid "" +"Returns the closest marker that comes before the given time. If no such " +"marker exists, an empty string is returned." +msgstr "返回早于并最接近给定时刻的标签,若此标签不存在,返回空字符串。" + msgid "Returns the amount of tracks in the animation." msgstr "返回动画中的轨道数。" +msgid "" +"Returns [code]true[/code] if this Animation contains a marker with the given " +"name." +msgstr "如果动画中包含给定名称的标记,则返回 [code]true[/code]。" + msgid "Returns the method name of a method track." msgstr "返回一个方法轨道的方法名。" @@ -6621,6 +8449,14 @@ msgid "" "in a given track." msgstr "返回给定方法轨道中给定键的方法要调用的参数值。" +msgid "" +"Optimize the animation and all its tracks in-place. This will preserve only " +"as many keys as are necessary to keep the animation within the specified " +"bounds." +msgstr "" +"对该动画及其轨迹进行原地优化,这将仅保留使动画保持在特定边界内所需数量的关键" +"帧。" + msgid "Inserts a key in a given 3D position track. Returns the key index." msgstr "在给定的 3D 位置轨道中插入关键帧。返回该关键帧的索引。" @@ -6631,6 +8467,9 @@ msgstr "" "返回位于给定时间(以秒为单位)的插值后的位置值。[param track_idx] 必须是 3D 位" "置轨道的索引。" +msgid "Removes the marker with the given name from this Animation." +msgstr "从动画中移除给定名称的标记。" + msgid "Removes a track by specifying the track index." msgstr "通过指定轨道索引来移除一个轨道。" @@ -6654,6 +8493,9 @@ msgstr "" "返回位于给定时间(以秒为单位)的插值后的缩放值。[param track_idx] 必须是 3D 缩" "放轨道的索引。" +msgid "Sets the given marker's color." +msgstr "设置给定标记的颜色。" + msgid "" "Finds the key index by time in a given track. Optionally, only find it if the " "approx/exact time is given.\n" @@ -6993,7 +8835,10 @@ msgstr "" "code] 并记录错误。" msgid "Returns the keys for the [Animation]s stored in the library." -msgstr "返回库中存储的 [Animation] 的键。" +msgstr "返回库中存储的所有 [Animation] 键。" + +msgid "Returns the key count for the [Animation]s stored in the library." +msgstr "返回库中存储的 [Animation] 键的数量。" msgid "" "Returns [code]true[/code] if the library stores an [Animation] with [param " @@ -7131,6 +8976,167 @@ msgstr "返回存储库的键名列表。" msgid "Returns the list of stored animation keys." msgstr "返回存储的动画键列表。" +msgid "" +"Retrieve the motion delta of position with the [member root_motion_track] as " +"a [Vector3] that can be used elsewhere.\n" +"If [member root_motion_track] is not a path to a track of type [constant " +"Animation.TYPE_POSITION_3D], returns [code]Vector3(0, 0, 0)[/code].\n" +"See also [member root_motion_track] and [RootMotionView].\n" +"The most basic example is applying position to [CharacterBody3D]:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var current_rotation\n" +"\n" +"func _process(delta):\n" +" if Input.is_action_just_pressed(\"animate\"):\n" +" current_rotation = get_quaternion()\n" +" state_machine.travel(\"Animate\")\n" +" var velocity = current_rotation * animation_tree." +"get_root_motion_position() / delta\n" +" set_velocity(velocity)\n" +" move_and_slide()\n" +"[/gdscript]\n" +"[/codeblocks]\n" +"By using this in combination with [method " +"get_root_motion_rotation_accumulator], you can apply the root motion position " +"more correctly to account for the rotation of the node.\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _process(delta):\n" +" if Input.is_action_just_pressed(\"animate\"):\n" +" state_machine.travel(\"Animate\")\n" +" set_quaternion(get_quaternion() * animation_tree." +"get_root_motion_rotation())\n" +" var velocity = (animation_tree.get_root_motion_rotation_accumulator()." +"inverse() * get_quaternion()) * animation_tree.get_root_motion_position() / " +"delta\n" +" set_velocity(velocity)\n" +" move_and_slide()\n" +"[/gdscript]\n" +"[/codeblocks]\n" +"If [member root_motion_local] is [code]true[/code], return the pre-multiplied " +"translation value with the inverted rotation.\n" +"In this case, the code can be written as follows:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _process(delta):\n" +" if Input.is_action_just_pressed(\"animate\"):\n" +" state_machine.travel(\"Animate\")\n" +" set_quaternion(get_quaternion() * animation_tree." +"get_root_motion_rotation())\n" +" var velocity = get_quaternion() * animation_tree." +"get_root_motion_position() / delta\n" +" set_velocity(velocity)\n" +" move_and_slide()\n" +"[/gdscript]\n" +"[/codeblocks]" +msgstr "" +"获取 [member root_motion_track] 的位置运动增量,这是一个可以在其他地方使用的 " +"[Vector3]。\n" +"如果 [member root_motion_track] 所指向的轨道不是 [constant Animation." +"TYPE_POSITION_3D] 类型,则返回 [code]Vector3(0, 0, 0)[/code]。\n" +"另见 [member root_motion_track] 和 [RootMotionView]。\n" +"最基础的示例就是将位置应用到 [CharacterBody3D] 上:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var current_rotation\n" +"\n" +"func _process(delta):\n" +" if Input.is_action_just_pressed(\"animate\"):\n" +" current_rotation = get_quaternion()\n" +" state_machine.travel(\"Animate\")\n" +" var velocity = current_rotation * animation_tree." +"get_root_motion_position() / delta\n" +" set_velocity(velocity)\n" +" move_and_slide()\n" +"[/gdscript]\n" +"[/codeblocks]\n" +"与 [method get_root_motion_rotation_accumulator] 配合使用就可以将节点的旋转考" +"虑进来,让应用的根运动位置更为准确。\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _process(delta):\n" +" if Input.is_action_just_pressed(\"animate\"):\n" +" state_machine.travel(\"Animate\")\n" +" set_quaternion(get_quaternion() * animation_tree." +"get_root_motion_rotation())\n" +" var velocity = (animation_tree.get_root_motion_rotation_accumulator()." +"inverse() * get_quaternion()) * animation_tree.get_root_motion_position() / " +"delta\n" +" set_velocity(velocity)\n" +" move_and_slide()\n" +"[/gdscript]\n" +"[/codeblocks]\n" +"如果 [member root_motion_local] 为 [code]true[/code],则会返回预先与逆向旋转相" +"乘后的平移值。\n" +"此时可以这样编写代码:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _process(delta):\n" +" if Input.is_action_just_pressed(\"animate\"):\n" +" state_machine.travel(\"Animate\")\n" +" set_quaternion(get_quaternion() * animation_tree." +"get_root_motion_rotation())\n" +" var velocity = get_quaternion() * animation_tree." +"get_root_motion_position() / delta\n" +" set_velocity(velocity)\n" +" move_and_slide()\n" +"[/gdscript]\n" +"[/codeblocks]" + +msgid "" +"Retrieve the blended value of the position tracks with the [member " +"root_motion_track] as a [Vector3] that can be used elsewhere.\n" +"This is useful in cases where you want to respect the initial key values of " +"the animation.\n" +"For example, if an animation with only one key [code]Vector3(0, 0, 0)[/code] " +"is played in the previous frame and then an animation with only one key " +"[code]Vector3(1, 0, 1)[/code] is played in the next frame, the difference can " +"be calculated as follows:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var prev_root_motion_position_accumulator\n" +"\n" +"func _process(delta):\n" +" if Input.is_action_just_pressed(\"animate\"):\n" +" state_machine.travel(\"Animate\")\n" +" var current_root_motion_position_accumulator = animation_tree." +"get_root_motion_position_accumulator()\n" +" var difference = current_root_motion_position_accumulator - " +"prev_root_motion_position_accumulator\n" +" prev_root_motion_position_accumulator = " +"current_root_motion_position_accumulator\n" +" transform.origin += difference\n" +"[/gdscript]\n" +"[/codeblocks]\n" +"However, if the animation loops, an unintended discrete change may occur, so " +"this is only useful for some simple use cases." +msgstr "" +"检索具有 [member root_motion_track] 的位置轨道的混合值,返回的是可以在其他地方" +"使用的 [Vector3]。\n" +"在想要遵循动画的初始动画帧值的情况下很有用。\n" +"例如,如果前一帧播放的是一个只有单个动画帧 [code]Vector3(0, 0, 0)[/code] 的动" +"画,然后下一帧播放的是一个只有单个动画帧[code]Vector3(1, 0, 1)[/code] 的动画," +"它们之间的差异可以这样计算:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var prev_root_motion_position_accumulator\n" +"\n" +"func _process(delta):\n" +" if Input.is_action_just_pressed(\"animate\"):\n" +" state_machine.travel(\"Animate\")\n" +" var current_root_motion_position_accumulator = animation_tree." +"get_root_motion_position_accumulator()\n" +" var difference = current_root_motion_position_accumulator - " +"prev_root_motion_position_accumulator\n" +" prev_root_motion_position_accumulator = " +"current_root_motion_position_accumulator\n" +" transform.origin += difference\n" +"[/gdscript]\n" +"[/codeblocks]\n" +"不过,如果动画是循环播放的,就可能会发生预料之外的不连续变化,所以这只对一些简" +"单的情况有用。" + msgid "" "Retrieve the motion delta of rotation with the [member root_motion_track] as " "a [Quaternion] that can be used elsewhere.\n" @@ -7164,6 +9170,156 @@ msgstr "" "[/gdscript]\n" "[/codeblocks]" +msgid "" +"Retrieve the blended value of the rotation tracks with the [member " +"root_motion_track] as a [Quaternion] that can be used elsewhere.\n" +"This is necessary to apply the root motion position correctly, taking " +"rotation into account. See also [method get_root_motion_position].\n" +"Also, this is useful in cases where you want to respect the initial key " +"values of the animation.\n" +"For example, if an animation with only one key [code]Quaternion(0, 0, 0, 1)[/" +"code] is played in the previous frame and then an animation with only one key " +"[code]Quaternion(0, 0.707, 0, 0.707)[/code] is played in the next frame, the " +"difference can be calculated as follows:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var prev_root_motion_rotation_accumulator\n" +"\n" +"func _process(delta):\n" +" if Input.is_action_just_pressed(\"animate\"):\n" +" state_machine.travel(\"Animate\")\n" +" var current_root_motion_rotation_accumulator = animation_tree." +"get_root_motion_rotation_accumulator()\n" +" var difference = prev_root_motion_rotation_accumulator.inverse() * " +"current_root_motion_rotation_accumulator\n" +" prev_root_motion_rotation_accumulator = " +"current_root_motion_rotation_accumulator\n" +" transform.basis *= Basis(difference)\n" +"[/gdscript]\n" +"[/codeblocks]\n" +"However, if the animation loops, an unintended discrete change may occur, so " +"this is only useful for some simple use cases." +msgstr "" +"检索带有 [member root_motion_track] 的旋转轨道的混合值,作为一个 " +"[Quaternion],可以在其他地方使用。\n" +"这里必须正确地结合根运动位置,并且要考虑到旋转。参考 [method " +"get_root_motion_position]。\n" +"并且,当你想重视动画的初始动画帧的值时,这会很有用。\n" +"比如说,如果一个动画在上一帧只播放一个 [code]Quaternion(0, 0, 0, 1)[/code] 动" +"画帧,并且一个动画在下一帧只播放了一个动画帧的 [code]Quaternion(0, 0.707, 0, " +"0.707)[/code] 时,它们相差的值可以这样求出:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var prev_root_motion_rotation_accumulator\n" +"\n" +"func _process(delta):\n" +" if Input.is_action_just_pressed(\"animate\"):\n" +" state_machine.travel(\"Animate\")\n" +" var current_root_motion_rotation_accumulator = animation_tree." +"get_root_motion_rotation_accumulator()\n" +" var difference = prev_root_motion_rotation_accumulator.inverse() * " +"current_root_motion_rotation_accumulator\n" +" prev_root_motion_rotation_accumulator = " +"current_root_motion_rotation_accumulator\n" +" transform.basis *= Basis(difference)\n" +"[/gdscript]\n" +"[/codeblocks]\n" +"然而,当一个动画循环时,可能会得到一个意料之外的变化,所以这个只在一些简单情况" +"下才有用。" + +msgid "" +"Retrieve the motion delta of scale with the [member root_motion_track] as a " +"[Vector3] that can be used elsewhere.\n" +"If [member root_motion_track] is not a path to a track of type [constant " +"Animation.TYPE_SCALE_3D], returns [code]Vector3(0, 0, 0)[/code].\n" +"See also [member root_motion_track] and [RootMotionView].\n" +"The most basic example is applying scale to [CharacterBody3D]:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var current_scale = Vector3(1, 1, 1)\n" +"var scale_accum = Vector3(1, 1, 1)\n" +"\n" +"func _process(delta):\n" +" if Input.is_action_just_pressed(\"animate\"):\n" +" current_scale = get_scale()\n" +" scale_accum = Vector3(1, 1, 1)\n" +" state_machine.travel(\"Animate\")\n" +" scale_accum += animation_tree.get_root_motion_scale()\n" +" set_scale(current_scale * scale_accum)\n" +"[/gdscript]\n" +"[/codeblocks]" +msgstr "" +"获取 [member root_motion_track] 的缩放运动增量,类型为 [Vector3],可以在其他地" +"方使用。\n" +"如果 [member root_motion_track] 不是类型为 [constant Animation.TYPE_SCALE_3D] " +"的轨道的路径,则返回 [code]Vector3(0, 0, 0)[/code] 。\n" +"另见 [member root_motion_track] 和 [RootMotionView]。\n" +"最基本的例子是对 [CharacterBody3D] 应用缩放。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var current_scale = Vector3(1, 1, 1)\n" +"var scale_accum = Vector3(1, 1, 1)\n" +"\n" +"func _process(delta):\n" +" if Input.is_action_just_pressed(\"animate\"):\n" +" current_scale = get_scale()\n" +" scale_accum = Vector3(1, 1, 1)\n" +" state_machine.travel(\"Animate\")\n" +" scale_accum += animation_tree.get_root_motion_scale()\n" +" set_scale(current_scale * scale_accum)\n" +"[/gdscript]\n" +"[/codeblocks]" + +msgid "" +"Retrieve the blended value of the scale tracks with the [member " +"root_motion_track] as a [Vector3] that can be used elsewhere.\n" +"For example, if an animation with only one key [code]Vector3(1, 1, 1)[/code] " +"is played in the previous frame and then an animation with only one key " +"[code]Vector3(2, 2, 2)[/code] is played in the next frame, the difference can " +"be calculated as follows:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var prev_root_motion_scale_accumulator\n" +"\n" +"func _process(delta):\n" +" if Input.is_action_just_pressed(\"animate\"):\n" +" state_machine.travel(\"Animate\")\n" +" var current_root_motion_scale_accumulator = animation_tree." +"get_root_motion_scale_accumulator()\n" +" var difference = current_root_motion_scale_accumulator - " +"prev_root_motion_scale_accumulator\n" +" prev_root_motion_scale_accumulator = " +"current_root_motion_scale_accumulator\n" +" transform.basis = transform.basis.scaled(difference)\n" +"[/gdscript]\n" +"[/codeblocks]\n" +"However, if the animation loops, an unintended discrete change may occur, so " +"this is only useful for some simple use cases." +msgstr "" +"检索带有 [member root_motion_track] 的缩放轨道的混合值,作为一个 [Vector3],可" +"以在其他地方使用。\n" +"例如,如果一个动画在前一帧只播放了一个动画帧 [code]Vector3(1, 1, 1)[/code],并" +"且一个动画在后一帧只播放了一个动画帧 [code]Vector3(2, 2, 2)[/code],他们之间相" +"差的值可以这样求出:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var prev_root_motion_scale_accumulator\n" +"\n" +"func _process(delta):\n" +" if Input.is_action_just_pressed(\"animate\"):\n" +" state_machine.travel(\"Animate\")\n" +" var current_root_motion_scale_accumulator = animation_tree." +"get_root_motion_scale_accumulator()\n" +" var difference = current_root_motion_scale_accumulator - " +"prev_root_motion_scale_accumulator\n" +" prev_root_motion_scale_accumulator = " +"current_root_motion_scale_accumulator\n" +" transform.basis = transform.basis.scaled(difference)\n" +"[/gdscript]\n" +"[/codeblocks]\n" +"然而,当一个动画循环时,可能会得到一个意料之外的变化,所以这个只在一些简单情况" +"下才有用。" + msgid "" "Returns [code]true[/code] if the [AnimationMixer] stores an [Animation] with " "key [param name]." @@ -7278,6 +9434,14 @@ msgstr "" "这使得在编辑器中预览和编辑动画更加方便,因为对场景的更改,只要在重置动画中被设" "置,就不会被保存。" +msgid "" +"If [code]true[/code], [method get_root_motion_position] value is extracted as " +"a local translation value before blending. In other words, it is treated like " +"the translation is done after the rotation." +msgstr "" +"如果为 [code]true[/code],则混合前会将 [method get_root_motion_position] 的值" +"当作局部平移值提取。换句话说,会被当作在旋转后再进行平移。" + msgid "" "The path to the Animation track used for root motion. Paths must be valid " "scene-tree paths to a node, and must be specified starting from the parent " @@ -7386,6 +9550,60 @@ msgstr "" "[constant Animation.UPDATE_CONTINUOUS] 或 [constant Animation.UPDATE_CAPTURE] " "轨道值优先。这是 [AnimationPlayer] 的默认行为。" +msgid "" +"Always treat the [constant Animation.UPDATE_DISCRETE] track value as " +"[constant Animation.UPDATE_CONTINUOUS] with [constant Animation." +"INTERPOLATION_NEAREST]. This is the default behavior for [AnimationTree].\n" +"If a value track has un-interpolatable type key values, it is internally " +"converted to use [constant ANIMATION_CALLBACK_MODE_DISCRETE_RECESSIVE] with " +"[constant Animation.UPDATE_DISCRETE].\n" +"Un-interpolatable type list:\n" +"- [constant @GlobalScope.TYPE_NIL]\n" +"- [constant @GlobalScope.TYPE_NODE_PATH]\n" +"- [constant @GlobalScope.TYPE_RID]\n" +"- [constant @GlobalScope.TYPE_OBJECT]\n" +"- [constant @GlobalScope.TYPE_CALLABLE]\n" +"- [constant @GlobalScope.TYPE_SIGNAL]\n" +"- [constant @GlobalScope.TYPE_DICTIONARY]\n" +"- [constant @GlobalScope.TYPE_PACKED_BYTE_ARRAY]\n" +"[constant @GlobalScope.TYPE_BOOL] and [constant @GlobalScope.TYPE_INT] are " +"treated as [constant @GlobalScope.TYPE_FLOAT] during blending and rounded " +"when the result is retrieved.\n" +"It is same for arrays and vectors with them such as [constant @GlobalScope." +"TYPE_PACKED_INT32_ARRAY] or [constant @GlobalScope.TYPE_VECTOR2I], they are " +"treated as [constant @GlobalScope.TYPE_PACKED_FLOAT32_ARRAY] or [constant " +"@GlobalScope.TYPE_VECTOR2]. Also note that for arrays, the size is also " +"interpolated.\n" +"[constant @GlobalScope.TYPE_STRING] and [constant @GlobalScope." +"TYPE_STRING_NAME] are interpolated between character codes and lengths, but " +"note that there is a difference in algorithm between interpolation between " +"keys and interpolation by blending." +msgstr "" +"始终将 [constant Animation.UPDATE_DISCRETE] 轨道的值视为 [constant Animation." +"UPDATE_CONTINUOUS] 和 [constant Animation.INTERPOLATION_NEAREST]。这是 " +"[AnimationTree] 的默认行为。\n" +"如果值轨道上关键帧的值为无法插值的类型,则会在内部转换为 [constant " +"ANIMATION_CALLBACK_MODE_DISCRETE_RECESSIVE] 和 [constant Animation." +"UPDATE_DISCRETE]。\n" +"无法插值的类型列表:\n" +"- [constant @GlobalScope.TYPE_NIL]\n" +"- [constant @GlobalScope.TYPE_NODE_PATH]\n" +"- [constant @GlobalScope.TYPE_RID]\n" +"- [constant @GlobalScope.TYPE_OBJECT]\n" +"- [constant @GlobalScope.TYPE_CALLABLE]\n" +"- [constant @GlobalScope.TYPE_SIGNAL]\n" +"- [constant @GlobalScope.TYPE_DICTIONARY]\n" +"- [constant @GlobalScope.TYPE_PACKED_BYTE_ARRAY]\n" +"[constant @GlobalScope.TYPE_BOOL] 和 [constant @GlobalScope.TYPE_INT] 在混合时" +"会被视为 [constant @GlobalScope.TYPE_FLOAT],获取值时会四舍五入。\n" +"数组和向量同理,以 [constant @GlobalScope.TYPE_PACKED_INT32_ARRAY] 和 " +"[constant @GlobalScope.TYPE_VECTOR2I] 为例,它们会被视为 [constant " +"@GlobalScope.TYPE_PACKED_FLOAT32_ARRAY] 和 [constant @GlobalScope." +"TYPE_VECTOR2]。另外请注意,数组的大小也会发生插值。\n" +"[constant @GlobalScope.TYPE_STRING] 和 [constant @GlobalScope." +"TYPE_STRING_NAME] 的字符代码和长度会发生插值,但是关键帧的插值和混合时的插值在" +"算法上有区别。" + msgid "Base class for [AnimationTree] nodes. Not related to scene nodes." msgstr "[AnimationTree] 节点的基类。与场景节点无关。" @@ -7573,6 +9791,24 @@ msgstr "" "获取一个参数的值。参数是你的动画节点使用的自定义本地内存,给定的资源可以在多个" "树中重复使用。" +msgid "" +"Returns the object id of the [AnimationTree] that owns this node.\n" +"[b]Note:[/b] This method should only be called from within the [method " +"AnimationNodeExtension._process_animation_node] method, and will return an " +"invalid id otherwise." +msgstr "" +"返回拥有此节点的[AnimationTree]对象ID。\n" +"[b]注意:[/b]此方法应仅在[method AnimationNodeExtension." +"_process_animation_node]方法内部调用,否则将返回一个无效ID。" + +msgid "Returns [code]true[/code] if the given path is filtered." +msgstr "如果给定的路径被过滤,则返回 [code]true[/code]。" + +msgid "" +"Returns [code]true[/code] if this animation node is being processed in test-" +"only mode." +msgstr "如果该动画节点正在仅测试模式下处理,则返回 [code]true[/code]。" + msgid "Removes an input, call this only when inactive." msgstr "移除输入,仅在处于非活动状态时调用此输入。" @@ -7696,6 +9932,16 @@ msgstr "" msgid "3D Platformer Demo" msgstr "3D 平台跳跃演示" +msgid "" +"If [code]true[/code], on receiving a request to play an animation from the " +"start, the first frame is not drawn, but only processed, and playback starts " +"from the next frame.\n" +"See also the notes of [method AnimationPlayer.play]." +msgstr "" +"若为[code]true[/code],在收到一个从头播放某个动画的请求时,第一帧会被绘制,但" +"仅仅是被处理,而回放会从第二帧开始。\n" +"另见[method AnimationPlayer.play]的注意事项。" + msgid "" "Animation to use as an output. It is one of the animations provided by " "[member AnimationTree.anim_player]." @@ -8085,6 +10331,62 @@ msgstr "输入和输出节点相同。" msgid "The specified connection already exists." msgstr "指定的连接已经存在。" +msgid "Base class for extending [AnimationRootNode]s from GDScript, C#, or C++." +msgstr "用于从GDScript、C#或C++中继承[AnimationRootNode]的基类。" + +msgid "" +"[AnimationNodeExtension] exposes the APIs of [AnimationRootNode] to allow " +"users to extend it from GDScript, C#, or C++. This class is not meant to be " +"used directly, but to be extended by other classes. It is used to create " +"custom nodes for the [AnimationTree] system." +msgstr "" +"[AnimationNodeExtension]暴露了[AnimationRootNode]的API,使得用户能够在" +"GDScript、C#或C++中扩展它。这个类并不应被直接使用,而是通过其他类进行扩展。它" +"被用于为[AnimationTree]系统创建自定义节点。" + +msgid "" +"A version of the [method AnimationNode._process] method that is meant to be " +"overridden by custom nodes. It returns a [PackedFloat32Array] with the " +"processed animation data.\n" +"The [PackedFloat64Array] parameter contains the playback information, " +"containing the following values encoded as floating point numbers (in order): " +"playback time and delta, start and end times, whether a seek was requested " +"(encoded as a float greater than [code]0[/code]), whether the seek request " +"was externally requested (encoded as a float greater than [code]0[/code]), " +"the current [enum Animation.LoopedFlag] (encoded as a float), and the current " +"blend weight.\n" +"The function must return a [PackedFloat32Array] of the node's time info, " +"containing the following values (in order): animation length, time position, " +"delta, [enum Animation.LoopMode] (encoded as a float), whether the animation " +"is about to end (encoded as a float greater than [code]0[/code]) and whether " +"the animation is infinite (encoded as a float greater than [code]0[/code]). " +"All values must be included in the returned array." +msgstr "" +"方法 [method AnimationNode._process] 的某个版本是供自定义节点覆盖所用。它会返" +"回一个带有已处理过的动画数据的[PackedFloat32Array]。\n" +"[PackedFloat64Array]参数包含了回访信息,包括编码成浮点数的如下值(按顺序):回" +"访时间与偏移、开始和结束时间、是否请求快进快退(编码为一个大于[code]0[/code]的" +"浮点数)、快进快退请求是否是外部请求(编码为一个大于[code]0[/code]的浮点数)、" +"当前位置[enum Animation.LoopedFlag](编码为一个浮点数)以及当前混合权重。\n" +"此函数必须返回该节点时间信息的一个[PackedFloat32Array],包含如下值(按顺序):" +"动画长度、时间位置、偏移、[enum Animation.LoopMode](编码为一个浮点数)、动画" +"是否接近结束(编码为一个大于[code]0[/code]的浮点数)以及动画是否永不结束(编码" +"为一个大于[code]0[/code]的浮点数)。所有值都须包含在返回的数组中。" + +msgid "" +"Returns the animation's remaining time for the given node info. For looping " +"animations, it will only return the remaining time if [param break_loop] is " +"[code]true[/code], a large integer value will be returned otherwise." +msgstr "" +"返回给定节点信息的动画剩余时间。对于循环动画,若 [param break_loop]为" +"[code]true[/code],将仅返回剩余时间,否则将返回一个巨大的整型数值。" + +msgid "" +"Returns [code]true[/code] if the animation for the given [param node_info] is " +"looping." +msgstr "" +"如果给定的 [param node_info] 对应的动画正在循环,则返回 [code]true[/code]。" + msgid "Plays an animation once in an [AnimationNodeBlendTree]." msgstr "在 [AnimationNodeBlendTree] 中播放一次动画。" @@ -8240,6 +10542,13 @@ msgstr "" "如果[code]true[/code],则在循环循环结束时中断循环以进行转换,即使动画正在循" "环。" +msgid "" +"Determines how cross-fading between animations is eased. If empty, the " +"transition will be linear. Should be a unit [Curve]." +msgstr "" +"确定如何对动画之间的淡入淡出进行缓动。如果为空,则进行线性过渡。应为单位 " +"[Curve]。" + msgid "" "The fade-in duration. For example, setting this to [code]1.0[/code] for a 5 " "second length animation will produce a cross-fade that starts at 0 second and " @@ -8309,6 +10618,39 @@ msgid "" "A state machine with multiple [AnimationRootNode]s, used by [AnimationTree]." msgstr "带有多个 [AnimationRootNode] 的状态机,用于 [AnimationTree]。" +msgid "" +"Contains multiple [AnimationRootNode]s representing animation states, " +"connected in a graph. State transitions can be configured to happen " +"automatically or via code, using a shortest-path algorithm. Retrieve the " +"[AnimationNodeStateMachinePlayback] object from the [AnimationTree] node to " +"control it programmatically.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var state_machine = $AnimationTree.get(\"parameters/playback\")\n" +"state_machine.travel(\"some_state\")\n" +"[/gdscript]\n" +"[csharp]\n" +"var stateMachine = GetNode<AnimationTree>(\"AnimationTree\").Get(\"parameters/" +"playback\") as AnimationNodeStateMachinePlayback;\n" +"stateMachine.Travel(\"some_state\");\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"包含表示动画状态的多个 [AnimationRootNode],以图的形式连接。可以使用最短路径算" +"法,将节点过渡配置为自动发生或通过代码发生。要以编程的方式控制过渡,请从 " +"[AnimationTree] 节点获取 [AnimationNodeStateMachinePlayback] 对象。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var state_machine = $AnimationTree.get(\"parameters/playback\")\n" +"state_machine.travel(\"some_state\")\n" +"[/gdscript]\n" +"[csharp]\n" +"var stateMachine = GetNode<AnimationTree>(\"AnimationTree\").Get(\"parameters/" +"playback\") as AnimationNodeStateMachinePlayback;\n" +"stateMachine.Travel(\"some_state\");\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Adds a new animation node to the graph. The [param position] is used for " "display in the editor." @@ -8432,6 +10774,36 @@ msgstr "" msgid "Provides playback control for an [AnimationNodeStateMachine]." msgstr "为 [AnimationNodeStateMachine] 提供播放控制。" +msgid "" +"Allows control of [AnimationTree] state machines created with " +"[AnimationNodeStateMachine]. Retrieve with [code]$AnimationTree." +"get(\"parameters/playback\")[/code].\n" +"[codeblocks]\n" +"[gdscript]\n" +"var state_machine = $AnimationTree.get(\"parameters/playback\")\n" +"state_machine.travel(\"some_state\")\n" +"[/gdscript]\n" +"[csharp]\n" +"var stateMachine = GetNode<AnimationTree>(\"AnimationTree\").Get(\"parameters/" +"playback\").As<AnimationNodeStateMachinePlayback>();\n" +"stateMachine.Travel(\"some_state\");\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"允许控制使用 [AnimationNodeStateMachine] 创建的 [AnimationTree] 状态机。使用 " +"[code]$AnimationTree.get(\"parameters/playback\")[/code] 检索。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var state_machine = $AnimationTree.get(\"parameters/playback\")\n" +"state_machine.travel(\"some_state\")\n" +"[/gdscript]\n" +"[csharp]\n" +"var stateMachine = GetNode<AnimationTree>(\"AnimationTree\").Get(\"parameters/" +"playback\").As<AnimationNodeStateMachinePlayback>();\n" +"stateMachine.Travel(\"some_state\");\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Returns the current state length.\n" "[b]Note:[/b] It is possible that any [AnimationRootNode] can be nodes as well " @@ -8553,6 +10925,16 @@ msgstr "" "将表达式用作状态机过渡的条件。可以为状态之间的切换创建复杂的动画推进条件,并通" "过直接与脚本代码交互为创建复杂的状态机提供更大的灵活性。" +msgid "" +"Determines whether the transition should be disabled, enabled when using " +"[method AnimationNodeStateMachinePlayback.travel], or traversed automatically " +"if the [member advance_condition] and [member advance_expression] checks are " +"[code]true[/code] (if assigned)." +msgstr "" +"决定过渡应当被禁用,使用 [method AnimationNodeStateMachinePlayback.travel] 时" +"启用,还是在 [member advance_condition] 和 [member advance_expression] 均为 " +"[code]true[/code] 时自动前进(已赋值时)。" + msgid "" "Lower priority transitions are preferred when travelling through the tree via " "[method AnimationNodeStateMachinePlayback.travel] or [member advance_mode] is " @@ -8570,6 +10952,12 @@ msgstr "如果为 [code]true[/code],切换时目标动画从头开始播放。 msgid "The transition type." msgstr "过渡类型。" +msgid "" +"Ease curve for better control over cross-fade between this state and the " +"next. Should be a unit [Curve]." +msgstr "" +"缓动曲线可以更好地控制此状态和下一个状态之间的交叉淡入淡出。应为单位 [Curve]。" + msgid "" "The time to cross-fade between this state and the next.\n" "[b]Note:[/b] [AnimationNodeStateMachine] transitions the current state " @@ -8611,6 +10999,13 @@ msgid "" "travel]." msgstr "仅在 [method AnimationNodeStateMachinePlayback.travel] 时使用该过渡。" +msgid "" +"Automatically use this transition if the [member advance_condition] and " +"[member advance_expression] checks are [code]true[/code] (if assigned)." +msgstr "" +"如果 [member advance_condition] 和 [member advance_expression] 检查为 " +"[code]true[/code],则自动使用该过渡(如果已分配)。" + msgid "" "Blends two animations subtractively inside of an [AnimationNodeBlendTree]." msgstr "在 [AnimationNodeBlendTree] 中对两个动画进行减法混合。" @@ -8720,6 +11115,13 @@ msgstr "" "[/csharp]\n" "[/codeblocks]" +msgid "" +"If [code]true[/code], some processes are executed to handle keys between " +"seeks, such as calculating root motion and finding the nearest discrete key." +msgstr "" +"如果为 [code]true[/code],某些旨在控制快进快退之间的帧的进程(例如计算根动态或" +"寻找最接近的离散帧)将被执行。" + msgid "A transition within an [AnimationTree] connecting two [AnimationNode]s." msgstr "[AnimationTree] 中连接两个 [AnimationNode] 的过渡。" @@ -8923,6 +11325,16 @@ msgstr "使用 [member AnimationMixer.root_node] 代替。" msgid "Returns the node which node path references will travel from." msgstr "返回节点路径引用将从其出发的节点。" +msgid "Returns the end time of the section currently being played." +msgstr "返回当前正在播放区域的结束时间点。" + +msgid "Returns the start time of the section currently being played." +msgstr "返回当前正在播放区域的开始时间点。" + +msgid "" +"Returns [code]true[/code] if an animation is currently playing with section." +msgstr "如果正在播放动画中的某个区域,则返回 [code]true[/code]。" + msgid "" "Pauses the currently playing animation. The [member " "current_animation_position] will be kept and calling [method play] or [method " @@ -8965,6 +11377,57 @@ msgstr "" "更新了其他变量,则它们可能更新得太早。要立即执行更新,请调用 [code]advance(0)" "[/code]。" +msgid "" +"Plays the animation with key [param name] and the section starting from " +"[param start_time] and ending on [param end_time]. See also [method play].\n" +"Setting [param start_time] to a value outside the range of the animation " +"means the start of the animation will be used instead, and setting [param " +"end_time] to a value outside the range of the animation means the end of the " +"animation will be used instead. [param start_time] cannot be equal to [param " +"end_time]." +msgstr "" +"播放键名为 [param name] 的动画中的指定区域,该区域的开始时间为 [param " +"start_time]、结束时间为 [param end_time]。另见 [method play]。\n" +"将 [param start_time] 设置为动画范围外的值表示使用动画的开头,将 [param " +"end_time] 设置为动画范围外的值表示使用动画的结尾。[param start_time] 不能等于 " +"[param end_time]。" + +msgid "" +"Plays the animation with key [param name] and the section starting from " +"[param start_time] and ending on [param end_time] in reverse.\n" +"This method is a shorthand for [method play_section] with [code]custom_speed " +"= -1.0[/code] and [code]from_end = true[/code], see its description for more " +"information." +msgstr "" +"倒放键名为 [param name] 的动画中的指定区域,该区域的开始时间为 [param " +"start_time]、结束时间为 [param end_time]。\n" +"该方法是 [method play_section] 的简写,等价于 [code]custom_speed = -1.0[/" +"code]、[code]from_end = true[/code],详见其描述。" + +msgid "" +"Plays the animation with key [param name] and the section starting from " +"[param start_marker] and ending on [param end_marker].\n" +"If the start marker is empty, the section starts from the beginning of the " +"animation. If the end marker is empty, the section ends on the end of the " +"animation. See also [method play]." +msgstr "" +"播放键名为 [param name] 的动画中的指定区域,该区域从 [param start_marker] 标记" +"开始、到 [param end_marker] 标记结束。\n" +"如果开始标记为空,则区域从动画的开头开始。如果结束标记为空,则区域在动画的结尾" +"结束。另见 [method play]。" + +msgid "" +"Plays the animation with key [param name] and the section starting from " +"[param start_marker] and ending on [param end_marker] in reverse.\n" +"This method is a shorthand for [method play_section_with_markers] with " +"[code]custom_speed = -1.0[/code] and [code]from_end = true[/code], see its " +"description for more information." +msgstr "" +"倒放键名为 [param name] 的动画中的指定区域,该区域从 [param start_marker] 标记" +"开始、到 [param end_marker] 标记结束。\n" +"该方法是 [method play_section_with_markers] 的简写,等价于 [code]custom_speed " +"= -1.0[/code]、[code]from_end = true[/code],详见其描述。" + msgid "" "See also [method AnimationMixer.capture].\n" "You can use this method to use more detailed options for capture than those " @@ -9010,6 +11473,9 @@ msgstr "" "[b]注意:[/b]如果当前正在播放循环动画,除非以某种方式停止循环动画,否则排队的" "动画将永远不会播放。" +msgid "Resets the current section if section is set." +msgstr "如果设置了区域则重置当前区域。" + msgid "" "Seeks the animation to the [param seconds] point in time (in seconds). If " "[param update] is [code]true[/code], the animation updates too, otherwise it " @@ -9044,6 +11510,26 @@ msgstr "设置要更新动画的过程通知。" msgid "Sets the node which node path references will travel from." msgstr "设置节点路径引用将从哪个节点出发。" +msgid "" +"Changes the start and end times of the section being played. The current " +"playback position will be clamped within the new section. See also [method " +"play_section]." +msgstr "" +"更改正在被播放的段落的起止时间。当前的回放位置将被限定在新段落范围内。参见" +"[method play_section]。" + +msgid "" +"Changes the start and end markers of the section being played. The current " +"playback position will be clamped within the new section. See also [method " +"play_section_with_markers].\n" +"If the argument is empty, the section uses the beginning or end of the " +"animation. If both are empty, it means that the section is not set." +msgstr "" +"改变正在播放的段落的开始和结束标记。当前的回放位置将被固定到新段落中。参见" +"[method play_section_with_markers]。\n" +"如果参数为空,段落将使用动画本身的起始或结束。如果两者都是空,那就意味着段落还" +"没有设置。" + msgid "" "Stops the currently playing animation. The animation position is reset to " "[code]0[/code] and the [code]custom_speed[/code] is reset to [code]1.0[/" @@ -9466,6 +11952,40 @@ msgstr "" "当接收的 [param area] 退出此区域时发出。需要 [member monitoring] 被设置为 " "[code]true[/code]。" +msgid "" +"Emitted when a [Shape2D] of the received [param area] enters a shape of this " +"area. Requires [member monitoring] to be set to [code]true[/code].\n" +"[param local_shape_index] and [param area_shape_index] contain indices of the " +"interacting shapes from this area and the other area, respectively. [param " +"area_rid] contains the [RID] of the other area. These values can be used with " +"the [PhysicsServer2D].\n" +"[b]Example:[/b] Get the [CollisionShape2D] node from the shape index:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var other_shape_owner = area.shape_find_owner(area_shape_index)\n" +"var other_shape_node = area.shape_owner_get_owner(other_shape_owner)\n" +"\n" +"var local_shape_owner = shape_find_owner(local_shape_index)\n" +"var local_shape_node = shape_owner_get_owner(local_shape_owner)\n" +"[/gdscript]\n" +"[/codeblocks]" +msgstr "" +"当收到的 [param area] 的 [Shape2D] 进入这个区域的形状时发出。要求 [member " +"monitoring] 被设置为 [code]true[/code] 。\n" +"[param local_shape_index] 和 [param area_shape_index] 分别包含来自这个区域和另" +"一个区域的交互形状的索引。[param area_rid] 包含另一个区域的 [RID]。这些值可以" +"与 [PhysicsServer2D] 一起使用。\n" +"[b]示例:[/b]根据形状索引获取 [CollisionShape2D] 节点:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var other_shape_owner = area.shape_find_owner( area_shape_index)\n" +"var other_shape_node = area.shape_owner_get_owner(other_shape_owner)\n" +"\n" +"var local_shape_owner = shape_find_owner(local_shape_index)\n" +"var local_shape_node = shape_owner_get_owner(local_shape_owner)\n" +"[/gdscript]\n" +"[/codeblocks]" + msgid "" "Emitted when a [Shape2D] of the received [param area] exits a shape of this " "area. Requires [member monitoring] to be set to [code]true[/code].\n" @@ -9495,6 +12015,43 @@ msgstr "" "[PhysicsBody2D] 或一个 [TileMap]。如果 [TileMap] 的 [TileSet] 配置了碰撞形状," "就会被检测到。要求 [member monitoring] 被设置为 [code]true[/code] 。" +msgid "" +"Emitted when a [Shape2D] of the received [param body] enters a shape of this " +"area. [param body] can be a [PhysicsBody2D] or a [TileMap]. [TileMap]s are " +"detected if their [TileSet] has collision shapes configured. Requires [member " +"monitoring] to be set to [code]true[/code].\n" +"[param local_shape_index] and [param body_shape_index] contain indices of the " +"interacting shapes from this area and the interacting body, respectively. " +"[param body_rid] contains the [RID] of the body. These values can be used " +"with the [PhysicsServer2D].\n" +"[b]Example:[/b] Get the [CollisionShape2D] node from the shape index:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var body_shape_owner = body.shape_find_owner(body_shape_index)\n" +"var body_shape_node = body.shape_owner_get_owner(body_shape_owner)\n" +"\n" +"var local_shape_owner = shape_find_owner(local_shape_index)\n" +"var local_shape_node = shape_owner_get_owner(local_shape_owner)\n" +"[/gdscript]\n" +"[/codeblocks]" +msgstr "" +"当收到的 [param body] 的 [Shape2D] 进入这个区域的形状时发出。[param body] 可以" +"是一个 [PhysicsBody2D] 或一个 [TileMap]。如果 [TileMap] 的 [TileSet] 配置了碰" +"撞形状,则会被检测到。要求 [member monitoring] 被设置为 [code]true[/code] 。\n" +"[param local_shape_index] 和 [param body_shape_index] 分别包含来自这个区域和交" +"互体的交互形状的指数。[param body_rid] 包含体的 [RID]。这些值可以与 " +"[PhysicsServer2D] 一起使用。\n" +"[b]示例:[/b]根据形状索引获取 [CollisionShape2D] 节点:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var body_shape_owner = body.shape_find_owner(body_shape_index)\n" +"var body_shape_node = body.shape_owner_get_owner(body_shape_owner)\n" +"\n" +"var local_shape_owner = shape_find_owner(local_shape_index)\n" +"var local_shape_node = shape_owner_get_owner(local_shape_owner)\n" +"[/gdscript]\n" +"[/codeblocks]" + msgid "" "Emitted when a [Shape2D] of the received [param body] exits a shape of this " "area. [param body] can be a [PhysicsBody2D] or a [TileMap]. [TileMap]s are " @@ -9767,6 +12324,40 @@ msgstr "" "为 [Node3D] 本地变换的原点。\n" "[b]注意:[/b]这种风力只适用于 [SoftBody3D] 节点。其他物理体目前不受风力影响。" +msgid "" +"Emitted when a [Shape3D] of the received [param area] enters a shape of this " +"area. Requires [member monitoring] to be set to [code]true[/code].\n" +"[param local_shape_index] and [param area_shape_index] contain indices of the " +"interacting shapes from this area and the other area, respectively. [param " +"area_rid] contains the [RID] of the other area. These values can be used with " +"the [PhysicsServer3D].\n" +"[b]Example:[/b] Get the [CollisionShape3D] node from the shape index:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var other_shape_owner = area.shape_find_owner(area_shape_index)\n" +"var other_shape_node = area.shape_owner_get_owner(other_shape_owner)\n" +"\n" +"var local_shape_owner = shape_find_owner(local_shape_index)\n" +"var local_shape_node = shape_owner_get_owner(local_shape_owner)\n" +"[/gdscript]\n" +"[/codeblocks]" +msgstr "" +"当收到的 [param area] 的 [Shape3D] 进入这个区域的形状时发出。要求 [member " +"monitoring] 被设置为 [code]true[/code] 。\n" +"[param local_shape_index] 和 [param area_shape_index] 分别包含来自这个区域和另" +"一个区域的交互形状的索引。[param area_rid] 包含另一个区域的 [RID]。这些值可以" +"与 [PhysicsServer3D] 一起使用。\n" +"[b]示例:[/b]根据形状索引获取 [CollisionShape3D] 节点:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var other_shape_owner = area.shape_find_owner( area_shape_index)\n" +"var other_shape_node = area.shape_owner_get_owner(other_shape_owner)\n" +"\n" +"var local_shape_owner = shape_find_owner(local_shape_index)\n" +"var local_shape_node = shape_owner_get_owner(local_shape_owner)\n" +"[/gdscript]\n" +"[/codeblocks]" + msgid "" "Emitted when a [Shape3D] of the received [param area] exits a shape of this " "area. Requires [member monitoring] to be set to [code]true[/code].\n" @@ -9796,6 +12387,44 @@ msgstr "" "[PhysicsBody3D] 或一个 [GridMap]。如果 [GridMap] 的 [MeshLibrary] 配置了碰撞形" "状,就会被检测到。要求 [member monitoring] 被设置为 [code]true[/code] 。" +msgid "" +"Emitted when a [Shape3D] of the received [param body] enters a shape of this " +"area. [param body] can be a [PhysicsBody3D] or a [GridMap]. [GridMap]s are " +"detected if their [MeshLibrary] has collision shapes configured. Requires " +"[member monitoring] to be set to [code]true[/code].\n" +"[param local_shape_index] and [param body_shape_index] contain indices of the " +"interacting shapes from this area and the interacting body, respectively. " +"[param body_rid] contains the [RID] of the body. These values can be used " +"with the [PhysicsServer3D].\n" +"[b]Example:[/b] Get the [CollisionShape3D] node from the shape index:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var body_shape_owner = body.shape_find_owner(body_shape_index)\n" +"var body_shape_node = body.shape_owner_get_owner(body_shape_owner)\n" +"\n" +"var local_shape_owner = shape_find_owner(local_shape_index)\n" +"var local_shape_node = shape_owner_get_owner(local_shape_owner)\n" +"[/gdscript]\n" +"[/codeblocks]" +msgstr "" +"当接收到的物体 [param body] 中的某个 [Shape3D] 进入此区域中的某个形状时发出。" +"[param body] 可以是 [PhysicsBody3D] 或 [GridMap]。[GridMap] 的 [MeshLibrary] " +"配置有碰撞形状时才能够被检测到。要求将 [member monitoring] 设置为 [code]true[/" +"code]。\n" +"[param local_shape_index] 和 [param body_shape_index] 分别对应此区域中以及交互" +"物体中正在进行交互的形状的索引。[param body_rid] 包含该物体的 [RID]。这些值可" +"以在 [PhysicsServer3D] 中使用。\n" +"[b]示例:[/b]根据形状索引获取 [CollisionShape3D] 节点:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var body_shape_owner = body.shape_find_owner(body_shape_index)\n" +"var body_shape_node = body.shape_owner_get_owner(body_shape_owner)\n" +"\n" +"var local_shape_owner = shape_find_owner(local_shape_index)\n" +"var local_shape_node = shape_owner_get_owner(local_shape_owner)\n" +"[/gdscript]\n" +"[/codeblocks]" + msgid "" "Emitted when a [Shape3D] of the received [param body] exits a shape of this " "area. [param body] can be a [PhysicsBody3D] or a [GridMap]. [GridMap]s are " @@ -9812,6 +12441,80 @@ msgstr "" msgid "A built-in data structure that holds a sequence of elements." msgstr "一种内置数据结构,包含一系列元素。" +msgid "" +"An array data structure that can contain a sequence of elements of any " +"[Variant] type. Elements are accessed by a numerical index starting at " +"[code]0[/code]. Negative indices are used to count from the back ([code]-1[/" +"code] is the last element, [code]-2[/code] is the second to last, etc.).\n" +"[codeblocks]\n" +"[gdscript]\n" +"var array = [\"First\", 2, 3, \"Last\"]\n" +"print(array[0]) # Prints \"First\"\n" +"print(array[2]) # Prints 3\n" +"print(array[-1]) # Prints \"Last\"\n" +"\n" +"array[1] = \"Second\"\n" +"print(array[1]) # Prints \"Second\"\n" +"print(array[-3]) # Prints \"Second\"\n" +"[/gdscript]\n" +"[csharp]\n" +"Godot.Collections.Array array = [\"First\", 2, 3, \"Last\"];\n" +"GD.Print(array[0]); // Prints \"First\"\n" +"GD.Print(array[2]); // Prints 3\n" +"GD.Print(array[^1]); // Prints \"Last\"\n" +"\n" +"array[1] = \"Second\";\n" +"GD.Print(array[1]); // Prints \"Second\"\n" +"GD.Print(array[^3]); // Prints \"Second\"\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] Arrays are always passed by [b]reference[/b]. To get a copy of " +"an array that can be modified independently of the original array, use " +"[method duplicate].\n" +"[b]Note:[/b] Erasing elements while iterating over arrays is [b]not[/b] " +"supported and will result in unpredictable behavior.\n" +"[b]Differences between packed arrays, typed arrays, and untyped arrays:[/b] " +"Packed arrays are generally faster to iterate on and modify compared to a " +"typed array of the same type (e.g. [PackedInt64Array] versus [code]Array[int]" +"[/code]). Also, packed arrays consume less memory. As a downside, packed " +"arrays are less flexible as they don't offer as many convenience methods such " +"as [method Array.map]. Typed arrays are in turn faster to iterate on and " +"modify than untyped arrays." +msgstr "" +"数组数据类型,包含任意 [Variant] 类型元素的序列。可以使用从 [code]0[/code] 开" +"始的索引号来访问元素。可以使用负的索引号从结尾开始计数([code]-1[/code] 表示倒" +"数第一个元素、[code]-2[/code] 表示倒数第二个元素,以此类推)。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var array = [\"第一\", 2, 3, \"最后\"]\n" +"print(array[0]) # 输出“第一”\n" +"print(array[2]) # 输出 3\n" +"print(array[-1]) # 输出“最后”\n" +"\n" +"array[1] = \"第二\"\n" +"print(array[1]) # 输出“第二”\n" +"print(array[-3]) # 输出“第二”\n" +"[/gdscript]\n" +"[csharp]\n" +"Godot.Collections.Array array = [\"第一\", 2, 3, \"最后\"];\n" +"GD.Print(array[0]); // 输出“开头”\n" +"GD.Print(array[2]); // 输出 3\n" +"GD.Print(array[^1]); // 输出“最后”\n" +"\n" +"array[2] = \"第二\";\n" +"GD.Print(array[1]); // 输出“第二”\n" +"GD.Print(array[^3]); // 输出“第二”\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b]数组始终按[b]引用[/b]传递。如果要获取数组的副本,让改动独立于原始" +"数组,请使用 [method duplicate]。\n" +"[b]注意:[/b][b]不支持[/b]在遍历数组元素时擦除元素,这样做可能造成预料之外的行" +"为。\n" +"[b]紧缩数组、类型数组、无类型数组:[/b]紧缩数组在遍历和修改时通常比同类型的类" +"型数组要快(例如将 [PackedInt64Array] 和 [code]Array[int][/code] 相比)。紧缩" +"数组占据的内存也相对较少。但紧缩数组的缺点是不够灵活,因为没有提供 [method " +"Array.map] 之类的便捷方法。相应地,类型数组在遍历和修改时要比无类型数组要快。" + msgid "Constructs an empty [Array]." msgstr "构造空的 [Array]。" @@ -9922,6 +12625,119 @@ msgstr "从 [PackedVector3Array] 构造一个数组。" msgid "Constructs an array from a [PackedVector4Array]." msgstr "从 [PackedVector4Array] 构造一个数组。" +msgid "" +"Calls the given [Callable] on each element in the array and returns " +"[code]true[/code] if the [Callable] returns [code]true[/code] for [i]all[/i] " +"elements in the array. If the [Callable] returns [code]false[/code] for one " +"array element or more, this method returns [code]false[/code].\n" +"The [param method] should take one [Variant] parameter (the current array " +"element) and return a [bool].\n" +"[codeblocks]\n" +"[gdscript]\n" +"func greater_than_5(number):\n" +" return number > 5\n" +"\n" +"func _ready():\n" +" print([6, 10, 6].all(greater_than_5)) # Prints true (3/3 elements " +"evaluate to true).\n" +" print([4, 10, 4].all(greater_than_5)) # Prints false (1/3 elements " +"evaluate to true).\n" +" print([4, 4, 4].all(greater_than_5)) # Prints false (0/3 elements " +"evaluate to true).\n" +" print([].all(greater_than_5)) # Prints true (0/0 elements " +"evaluate to true).\n" +"\n" +" # Same as the first line above, but using a lambda function.\n" +" print([6, 10, 6].all(func(element): return element > 5)) # Prints true\n" +"[/gdscript]\n" +"[csharp]\n" +"private static bool GreaterThan5(int number)\n" +"{\n" +" return number > 5;\n" +"}\n" +"\n" +"public override void _Ready()\n" +"{\n" +" // Prints True (3/3 elements evaluate to true).\n" +" GD.Print(new Godot.Collections.Array>int< { 6, 10, 6 }." +"All(GreaterThan5));\n" +" // Prints False (1/3 elements evaluate to true).\n" +" GD.Print(new Godot.Collections.Array>int< { 4, 10, 4 }." +"All(GreaterThan5));\n" +" // Prints False (0/3 elements evaluate to true).\n" +" GD.Print(new Godot.Collections.Array>int< { 4, 4, 4 }." +"All(GreaterThan5));\n" +" // Prints True (0/0 elements evaluate to true).\n" +" GD.Print(new Godot.Collections.Array>int< { }.All(GreaterThan5));\n" +"\n" +" // Same as the first line above, but using a lambda function.\n" +" GD.Print(new Godot.Collections.Array>int< { 6, 10, 6 }.All(element => " +"element > 5)); // Prints True\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"See also [method any], [method filter], [method map] and [method reduce].\n" +"[b]Note:[/b] Unlike relying on the size of an array returned by [method " +"filter], this method will return as early as possible to improve performance " +"(especially with large arrays).\n" +"[b]Note:[/b] For an empty array, this method [url=https://en.wikipedia.org/" +"wiki/Vacuous_truth]always[/url] returns [code]true[/code]." +msgstr "" +"对数组中的每个元素调用给定的 [Callable],如果 [Callable] 为数组中的 [i]所有[/" +"i] 元素返回 [code]true[/code],则返回 [code]true[/code]。如果 [Callable] 为一" +"个或多个数组元素返回 [code]false[/code],则此方法返回 [code]false[/code]。\n" +"该 [param method] 应采用一个 [Variant] 参数(当前数组元素)并返回一个 " +"[bool]。\n" +"[codeblocks]\n" +"[gdscript]\n" +"func greater_than_5(number):\n" +" return number > 5\n" +"\n" +"func _ready():\n" +" print([6, 10, 6].all(greater_than_5)) # 输出 true (3/3 元素被评估为" +"真)。\n" +" print([4, 10, 4].all(greater_than_5)) # 输出 false (1/3 元素被评估为" +"真)。\n" +" print([4, 4, 4].all(greater_than_5)) # 输出 false (0/3 元素被评估为" +"真)。\n" +" print([].all(greater_than_5)) # 输出 true (0/0 元素被评估为" +"真)。\n" +"\n" +" # 与上面的第一行相同,但使用 lambda 函数。\n" +" print([6, 10, 6].all(func(element): return element > 5)) # 输出 true\n" +"[/gdscript]\n" +"[csharp]\n" +"private static bool GreaterThan5(int number)\n" +"{\n" +" return number > 5;\n" +"}\n" +"\n" +"public override void _Ready()\n" +"{\n" +" // 输出 True (3/3 元素被评估为真)。\n" +" GD.Print(new Godot.Collections.Array>int< { 6, 10, 6 }." +"All(GreaterThan5));\n" +" // 输出 False (1/3 元素被评估为真)。\n" +" GD.Print(new Godot.Collections.Array>int< { 4, 10, 4 }." +"All(GreaterThan5));\n" +" // 输出 False (0/3 元素被评估为真)。\n" +" GD.Print(new Godot.Collections.Array>int< { 4, 4, 4 }." +"All(GreaterThan5));\n" +" // 输出 True (0/0 元素被评估为真)。\n" +" GD.Print(new Godot.Collections.Array>int< { }.All(GreaterThan5));\n" +"\n" +" // 与上面的第一行相同,但使用 lambda 函数。\n" +" GD.Print(new Godot.Collections.Array>int< { 6, 10, 6 }.All(element => " +"element > 5)); // 输出 True\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"另请参见 [method any]、[method filter]、[method map] 和 [method reduce]。\n" +"[b]注意:[/b]与依赖 [method filter] 返回的数组大小不同,此方法会尽可能早地返回" +"以提高性能(尤其是对于大型数组)。\n" +"[b]注意:[/b]对于空数组,此方法 [url=https://en.wikipedia.org/wiki/" +"Vacuous_truth]总是[/url] 返回 [code]true[/code]。" + msgid "" "Calls the given [Callable] on each element in the array and returns " "[code]true[/code] if the [Callable] returns [code]true[/code] for [i]one or " @@ -10143,6 +12959,14 @@ msgstr "" "从该数组中移除所有元素。相当于调用 [method resize] 时指定大小为 [code]0[/" "code]。" +msgid "" +"Returns the number of times an element is in the array.\n" +"To count how many elements in an array satisfy a condition, see [method " +"reduce]." +msgstr "" +"返回数组中某个元素出现的次数。\n" +"要计算某个数组中有多少元素满足某个条件,参见[method reduce]。" + msgid "" "Returns a new copy of the array.\n" "By default, a [b]shallow[/b] copy is returned: all nested [Array] and " @@ -10172,6 +12996,49 @@ msgstr "" "生明显的性能成本,尤其是在较大的数组上。\n" "[b]注意:[/b]在迭代数组时移除元素[b]不[/b]受支持,并且将导致不可预测的行为。" +msgid "" +"Assigns the given [param value] to all elements in the array.\n" +"This method can often be combined with [method resize] to create an array " +"with a given size and initialized elements:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var array = []\n" +"array.resize(5)\n" +"array.fill(2)\n" +"print(array) # Prints [2, 2, 2, 2, 2]\n" +"[/gdscript]\n" +"[csharp]\n" +"Godot.Collections.Array array = [];\n" +"array.Resize(5);\n" +"array.Fill(2);\n" +"GD.Print(array); // Prints [2, 2, 2, 2, 2]\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] If [param value] is a [Variant] passed by reference ([Object]-" +"derived, [Array], [Dictionary], etc.), the array will be filled with " +"references to the same [param value], which are not duplicates." +msgstr "" +"将该数组中的所有元素都设置为给定的 [param value]。\n" +"该方法通常与 [method resize] 一起使用,用于创建给定大小的数组并对其元素进行初" +"始化:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var array = []\n" +"array.resize(5)\n" +"array.fill(2)\n" +"print(array) # 输出 [2, 2, 2, 2, 2]\n" +"[/gdscript]\n" +"[csharp]\n" +"Godot.Collections.Array array = [];\n" +"array.Resize(5);\n" +"array.Fill(2);\n" +"GD.Print(array); // 输出 [2, 2, 2, 2, 2]\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b]如果 [param value] 是通过引用传递的 [Variant]([Object] 派生类、" +"[Array]、[Dictionary] 等),则会用同一个 [param value] 的引用填充该数组,即不" +"会创建副本。" + msgid "" "Calls the given [Callable] on each element in the array and returns a new, " "filtered [Array].\n" @@ -10226,6 +13093,41 @@ msgstr "" "Type]。例如该方法不会认为 [code]7[/code]([int])和 [code]7.0[/code]" "([float])相等。" +msgid "" +"Returns the index of the [b]first[/b] element in the array that causes [param " +"method] to return [code]true[/code], or [code]-1[/code] if there are none. " +"The search's start can be specified with [param from], continuing to the end " +"of the array.\n" +"[param method] is a callable that takes an element of the array, and returns " +"a [bool].\n" +"[b]Note:[/b] If you just want to know whether the array contains [i]anything[/" +"i] that satisfies [param method], use [method any].\n" +"[codeblocks]\n" +"[gdscript]\n" +"func is_even(number):\n" +" return number % 2 == 0\n" +"\n" +"func _ready():\n" +" print([1, 3, 4, 7].find_custom(is_even.bind())) # Prints 2\n" +"[/gdscript]\n" +"[/codeblocks]" +msgstr "" +"返回数组中使得 [param method] 返回 [code]true[/code] 的第一个元素的索引,若元" +"素不存在则返回 [code]-1[/code]。搜索的起始位置可以由 [param from] 指定,搜索将" +"继续直至数组结束。\n" +"[param method] 是可调用对象,接受数组元素,返回的是 [bool]。\n" +"[b]注意:[/b]如果你只想知道数组中是否包含[i]任何[/i]能够满足 [param method] 的" +"东西,请使用 [method any]。\n" +"[codeblocks]\n" +"[gdscript]\n" +"func is_even(number):\n" +" return number % 2 == 0\n" +"\n" +"func _ready():\n" +" print([1, 3, 4, 7].find_custom(is_even.bind())) # 输出 2\n" +"[/gdscript]\n" +"[/codeblocks]" + msgid "" "Returns the first element of the array. If the array is empty, fails and " "returns [code]null[/code]. See also [method back].\n" @@ -10237,6 +13139,13 @@ msgstr "" "[b]注意:[/b]与 [code][][/code] 运算符([code]array[0][/code])不同,错误产生" "时不会停止项目执行。" +msgid "" +"Returns the element at the given [param index] in the array. This is the same " +"as using the [code][][/code] operator ([code]array[index][/code])." +msgstr "" +"返回数组中给定索引 [param index] 位置的元素。这与使用 [code][][/code] 运算符" +"([code]array[index][/code])是一样的。" + msgid "" "Returns the built-in [Variant] type of the typed array as a [enum Variant." "Type] constant. If the array is not typed, returns [constant TYPE_NIL]. See " @@ -10261,6 +13170,59 @@ msgstr "" "返回与该类型数组关联的 [Script] 实例,如果不存在则返回 [code]null[/code]。另请" "参阅 [method is_typed]。" +msgid "" +"Returns [code]true[/code] if the array contains the given [param value].\n" +"[codeblocks]\n" +"[gdscript]\n" +"print([\"inside\", 7].has(\"inside\")) # Prints true\n" +"print([\"inside\", 7].has(\"outside\")) # Prints false\n" +"print([\"inside\", 7].has(7)) # Prints true\n" +"print([\"inside\", 7].has(\"7\")) # Prints false\n" +"[/gdscript]\n" +"[csharp]\n" +"Godot.Collections.Array arr = [\"inside\", 7];\n" +"// By C# convention, this method is renamed to `Contains`.\n" +"GD.Print(arr.Contains(\"inside\")); // Prints True\n" +"GD.Print(arr.Contains(\"outside\")); // Prints False\n" +"GD.Print(arr.Contains(7)); // Prints True\n" +"GD.Print(arr.Contains(\"7\")); // Prints False\n" +"[/csharp]\n" +"[/codeblocks]\n" +"In GDScript, this is equivalent to the [code]in[/code] operator:\n" +"[codeblock]\n" +"if 4 in [2, 4, 6, 8]:\n" +" print(\"4 is here!\") # Will be printed.\n" +"[/codeblock]\n" +"[b]Note:[/b] For performance reasons, the search is affected by the [param " +"value]'s [enum Variant.Type]. For example, [code]7[/code] ([int]) and " +"[code]7.0[/code] ([float]) are not considered equal for this method." +msgstr "" +"如果该数组包含给定的 [param value],则返回 [code]true[/code]。\n" +"[codeblocks]\n" +"[gdscript]\n" +"print([\"inside\", 7].has(\"inside\")) # 输出 true\n" +"print([\"inside\", 7].has(\"outside\")) # 输出 false\n" +"print([\"inside\", 7].has(7)) # 输出 true\n" +"print([\"inside\", 7].has(\"7\")) # 输出 false\n" +"[/gdscript]\n" +"[csharp]\n" +"Godot.Collections.Array arr = [\"inside\", 7];\n" +"// 按照 C# 惯例,该方法重命名为 `Contains`。\n" +"GD.Print(arr.Contains(\"inside\")); // 输出 True\n" +"GD.Print(arr.Contains(\"outside\")); // 输出 False\n" +"GD.Print(arr.Contains(7)); // 输出 True\n" +"GD.Print(arr.Contains(\"7\")); // 输出 False\n" +"[/csharp]\n" +"[/codeblocks]\n" +"在 GDScript 中,这相当于 [code]in[/code] 运算符:\n" +"[codeblock]\n" +"if 4 in [2, 4, 6, 8]:\n" +" print(\"里面有 4!\") # 将被输出。\n" +"[/codeblock]\n" +"[b]注意:[/b]出于性能原因,搜索会受到 [param value] 的 [enum Variant.Type] 的" +"影响。例如,对于该方法,[code]7[/code]([int])和 [code]7.0[/code]([float])" +"不被视为相等。" + msgid "" "Returns a hashed 32-bit integer value representing the array and its " "contents.\n" @@ -10394,6 +13356,40 @@ msgstr "" "如果所有元素都可以比较,则返回数组中包含元素的最小值。否则,返回 [code]null[/" "code]。另请参阅 [method max]。" +msgid "" +"Returns a random element from the array. Generates an error and returns " +"[code]null[/code] if the array is empty.\n" +"[codeblocks]\n" +"[gdscript]\n" +"# May print 1, 2, 3.25, or \"Hi\".\n" +"print([1, 2, 3.25, \"Hi\"].pick_random())\n" +"[/gdscript]\n" +"[csharp]\n" +"Godot.Collections.Array array = [1, 2, 3.25f, \"Hi\"];\n" +"GD.Print(array.PickRandom()); // May print 1, 2, 3.25, or \"Hi\".\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] Like many similar functions in the engine (such as [method " +"@GlobalScope.randi] or [method shuffle]), this method uses a common, global " +"random seed. To get a predictable outcome from this method, see [method " +"@GlobalScope.seed]." +msgstr "" +"从该数组中返回一个随机元素。如果数组为空,则生成一个错误并返回 [code]null[/" +"code]。\n" +"[codeblocks]\n" +"[gdscript]\n" +"# 可能输出 1、2、3.25、或 \"Hi\"。\n" +"print([1, 2, 3.25, \"Hi\"].pick_random())\n" +"[/gdscript]\n" +"[csharp]\n" +"Godot.Collections.Array array = [1, 2, 3.25f, \"Hi\"];\n" +"GD.Print(array.PickRandom()); // 可能输出 1、2、3.25、或 \"Hi\"。\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b]与引擎中的许多类似函数(例如 [method @GlobalScope.randi] 或 " +"[method shuffle])一样,该方法使用通用的全局随机种子。要从该方法获得可预测的结" +"果,请参阅 [method @GlobalScope.seed]。" + msgid "" "Removes and returns the element of the array at index [param position]. If " "negative, [param position] is considered relative to the end of the array. " @@ -10442,6 +13438,95 @@ msgstr "" "[b]注意:[/b]该方法将每个其他元素的索引向前移动,这可能会产生明显的性能成本," "尤其是在较大的数组上。" +msgid "" +"Calls the given [Callable] for each element in array, accumulates the result " +"in [param accum], then returns it.\n" +"The [param method] takes two arguments: the current value of [param accum] " +"and the current array element. If [param accum] is [code]null[/code] (as by " +"default), the iteration will start from the second element, with the first " +"one used as initial value of [param accum].\n" +"[codeblock]\n" +"func sum(accum, number):\n" +" return accum + number\n" +"\n" +"func _ready():\n" +" print([1, 2, 3].reduce(sum, 0)) # Prints 6\n" +" print([1, 2, 3].reduce(sum, 10)) # Prints 16\n" +"\n" +" # Same as above, but using a lambda function.\n" +" print([1, 2, 3].reduce(func(accum, number): return accum + number, 10))\n" +"[/codeblock]\n" +"If [method max] is not desirable, this method may also be used to implement a " +"custom comparator:\n" +"[codeblock]\n" +"func _ready():\n" +" var arr = [Vector2i(5, 0), Vector2i(3, 4), Vector2i(1, 2)]\n" +"\n" +" var longest_vec = arr.reduce(func(max, vec): return vec if " +"is_length_greater(vec, max) else max)\n" +" print(longest_vec) # Prints (3, 4)\n" +"\n" +"func is_length_greater(a, b):\n" +" return a.length() > b.length()\n" +"[/codeblock]\n" +"This method can also be used to count how many elements in an array satisfy a " +"certain condition, similar to [method count]:\n" +"[codeblock]\n" +"func is_even(number):\n" +" return number % 2 == 0\n" +"\n" +"func _ready():\n" +" var arr = [1, 2, 3, 4, 5]\n" +" # If the current element is even, increment count, otherwise leave count " +"the same.\n" +" var even_count = arr.reduce(func(count, next): return count + 1 if " +"is_even(next) else count, 0)\n" +" print(even_count) # Prints 2\n" +"[/codeblock]\n" +"See also [method map], [method filter], [method any], and [method all]." +msgstr "" +"为数组中的每个元素调用给定的 [Callable],将结果累积在 [param accum] 中,然后将" +"其返回。\n" +"[param method] 接受两个参数:[param accum] 的当前值,以及当前的数组元素。如果 " +"[param accum] 为 [code]null[/code](默认值),则会从第二个元素开始迭代,将第一" +"个元素作为 [param accum] 的初始值。\n" +"[codeblock]\n" +"func sum(accum, number):\n" +" return accum + number\n" +"\n" +"func _ready():\n" +" print([1, 2, 3].reduce(sum, 0)) # 输出 6\n" +" print([1, 2, 3].reduce(sum, 10)) # 输出 16\n" +"\n" +" # 与上面相同,但是使用 lambda 函数。\n" +" print([1, 2, 3].reduce(func(accum, number): return accum + number, 10))\n" +"[/codeblock]\n" +"如果 [method max] 无法满足需求,也可以使用该方法来实现自定义比较器:\n" +"[codeblock]\n" +"func _ready():\n" +" var arr = [Vector2i(5, 0), Vector2i(3, 4), Vector2i(1, 2)]\n" +"\n" +" var longest_vec = arr.reduce(func(max, vec): return vec if " +"is_length_greater(vec, max) else max)\n" +" print(longest_vec) # 输出 (3, 4)\n" +"\n" +"func is_length_greater(a, b):\n" +" return a.length() > b.length()\n" +"[/codeblock]\n" +"该方法还可以用来计算数组中满足特定条件元素的数量,与 [method count] 类似:\n" +"[codeblock]\n" +"func is_even(number):\n" +" return number % 2 == 0\n" +"\n" +"func _ready():\n" +" var arr = [1, 2, 3, 4, 5]\n" +" # 当前元素为偶数则增加计数器,否则保持计数不变。\n" +" var even_count = arr.reduce(func(count, next): return count + 1 if " +"is_even(next) else count, 0)\n" +" print(even_count) # 输出 2\n" +"[/codeblock]\n" +"另见 [method map]、[method filter]、[method any]、[method all]。" + msgid "" "Removes the element from the array at the given index ([param position]). If " "the index is out of bounds, this method fails.\n" @@ -10496,6 +13581,26 @@ msgstr "" "code]。搜索的起点可以用 [param from] 指定,终点为该数组的开头。该方法与 " "[method find] 相对。" +msgid "" +"Returns the index of the [b]last[/b] element of the array that causes [param " +"method] to return [code]true[/code], or [code]-1[/code] if there are none. " +"The search's start can be specified with [param from], continuing to the " +"beginning of the array. This method is the reverse of [method find_custom]." +msgstr "" +"返回数组中能够让 [param method] 返回 [code]true[/code] 的[b]最后一个[/b]元素的" +"索引,不存在时返回 [code]-1[/code]。搜索的起点可以用 [param from] 指定,搜索的" +"终点为数组的开头。该方法与 [method find_custom] 相对。" + +msgid "" +"Sets the value of the element at the given [param index] to the given [param " +"value]. This will not change the size of the array, it only changes the value " +"at an index already in the array. This is the same as using the [code][][/" +"code] operator ([code]array[index] = value[/code])." +msgstr "" +"将索引为 [param index] 的元素的值设置为 [param value]。数组的大小不会发生改" +"变,改变的只有数组中现有索引所对应的值。与使用 [code][][/code] 运算符相同" +"([code]array[index] = value[/code])。" + msgid "" "Shuffles all elements of the array in a random order.\n" "[b]Note:[/b] Like many similar functions in the engine (such as [method " @@ -10555,6 +13660,43 @@ msgstr "" "print(letters.slice(4, 1, -1)) # 输出 [\"E\", \"D\", \"C\"]\n" "[/codeblock]" +msgid "" +"Sorts the array in ascending order. The final order is dependent on the " +"\"less than\" ([code]<[/code]) comparison between elements.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var numbers = [10, 5, 2.5, 8]\n" +"numbers.sort()\n" +"print(numbers) # Prints [2.5, 5, 8, 10]\n" +"[/gdscript]\n" +"[csharp]\n" +"Godot.Collections.Array numbers = [10, 5, 2.5, 8];\n" +"numbers.Sort();\n" +"GD.Print(numbers); // Prints [2.5, 5, 8, 10]\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] The sorting algorithm used is not [url=https://en.wikipedia.org/" +"wiki/Sorting_algorithm#Stability]stable[/url]. This means that equivalent " +"elements (such as [code]2[/code] and [code]2.0[/code]) may have their order " +"changed when calling [method sort]." +msgstr "" +"按升序对数组进行排序。最终顺序取决于元素之间的“小于”([code]>[/code])比较。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var numbers = [10, 5, 2.5, 8]\n" +"numbers.sort()\n" +"print(numbers) # 输出 [2.5, 5, 8, 10]\n" +"[/gdscript]\n" +"[csharp]\n" +"Godot.Collections.Array numbers = [10, 5, 2.5, 8];\n" +"numbers.Sort();\n" +"GD.Print(numbers); // 输出 [2.5, 5, 8, 10]\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b]使用的排序算法并不[url=https://en.wikipedia.org/wiki/" +"Sorting_algorithm#Stability]稳定[/url]。这意味着等效元素(例如 [code]2[/code] " +"和 [code]2.0[/code])在调用 [method sort] 时可能会改变其顺序。" + msgid "" "Sorts the array using a custom [Callable].\n" "[param func] is called as many times as necessary, receiving two array " @@ -10634,6 +13776,43 @@ msgid "" msgstr "" "如果该数组的大小或其元素与 [param right] 不同,则返回 [code]true[/code]。" +msgid "" +"Appends the [param right] array to the left operand, creating a new [Array]. " +"This is also known as an array concatenation.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var array1 = [\"One\", 2]\n" +"var array2 = [3, \"Four\"]\n" +"print(array1 + array2) # Prints [\"One\", 2, 3, \"Four\"]\n" +"[/gdscript]\n" +"[csharp]\n" +"// Note that concatenation is not possible with C#'s native Array type.\n" +"Godot.Collections.Array array1 = [\"One\", 2];\n" +"Godot.Collections.Array array2 = [3, \"Four\"];\n" +"GD.Print(array1 + array2); // Prints [\"One\", 2, 3, \"Four\"]\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] For existing arrays, [method append_array] is much more " +"efficient than concatenation and assignment with the [code]+=[/code] operator." +msgstr "" +"将 [param right] 数组追加到左操作数,会创建一个新的 [Array]。这也称为数组拼" +"接。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var array1 = [\"One\", 2]\n" +"var array2 = [3, \"Four\"]\n" +"print(array1 + array2) # 输出 [\"One\", 2, 3, \"Four\"]\n" +"[/gdscript]\n" +"[csharp]\n" +"// 请注意,C# 的原生数组类型无法进行拼接。\n" +"Godot.Collections.Array array1 = [\"One\", 2];\n" +"Godot.Collections.Array array2 = [3, \"Four\"];\n" +"GD.Print(array1 + array2); // 输出 [\"One\", 2, 3, \"Four\"]\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b]对于已有数组,[method append_array] 比使用 [code]+=[/code] 运算符" +"的拼接和赋值效率高得多。" + msgid "" "Compares the elements of both arrays in order, starting from index [code]0[/" "code] and ending on the last index in common between both arrays. For each " @@ -10725,6 +13904,100 @@ msgid "" "[Mesh] type that provides utility for constructing a surface from arrays." msgstr "[Mesh] 网格类型,提供了用于从数组构造表面的工具。" +msgid "" +"The [ArrayMesh] is used to construct a [Mesh] by specifying the attributes as " +"arrays.\n" +"The most basic example is the creation of a single triangle:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var vertices = PackedVector3Array()\n" +"vertices.push_back(Vector3(0, 1, 0))\n" +"vertices.push_back(Vector3(1, 0, 0))\n" +"vertices.push_back(Vector3(0, 0, 1))\n" +"\n" +"# Initialize the ArrayMesh.\n" +"var arr_mesh = ArrayMesh.new()\n" +"var arrays = []\n" +"arrays.resize(Mesh.ARRAY_MAX)\n" +"arrays[Mesh.ARRAY_VERTEX] = vertices\n" +"\n" +"# Create the Mesh.\n" +"arr_mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, arrays)\n" +"var m = MeshInstance3D.new()\n" +"m.mesh = arr_mesh\n" +"[/gdscript]\n" +"[csharp]\n" +"Vector3[] vertices =\n" +"[\n" +" new Vector3(0, 1, 0),\n" +" new Vector3(1, 0, 0),\n" +" new Vector3(0, 0, 1),\n" +"];\n" +"\n" +"// Initialize the ArrayMesh.\n" +"var arrMesh = new ArrayMesh();\n" +"Godot.Collections.Array arrays = [];\n" +"arrays.Resize((int)Mesh.ArrayType.Max);\n" +"arrays[(int)Mesh.ArrayType.Vertex] = vertices;\n" +"\n" +"// Create the Mesh.\n" +"arrMesh.AddSurfaceFromArrays(Mesh.PrimitiveType.Triangles, arrays);\n" +"var m = new MeshInstance3D();\n" +"m.Mesh = arrMesh;\n" +"[/csharp]\n" +"[/codeblocks]\n" +"The [MeshInstance3D] is ready to be added to the [SceneTree] to be shown.\n" +"See also [ImmediateMesh], [MeshDataTool] and [SurfaceTool] for procedural " +"geometry generation.\n" +"[b]Note:[/b] Godot uses clockwise [url=https://learnopengl.com/Advanced-" +"OpenGL/Face-culling]winding order[/url] for front faces of triangle primitive " +"modes." +msgstr "" +"[ArrayMesh] 是用来构造 [Mesh] 的,其属性指定为数组。\n" +"最基本的例子是创建单个三角形:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var vertices = PackedVector3Array()\n" +"vertices.push_back(Vector3(0, 1, 0))\n" +"vertices.push_back(Vector3(1, 0, 0))\n" +"vertices.push_back(Vector3(0, 0, 1))\n" +"\n" +"# 初始化 ArrayMesh。\n" +"var arr_mesh = ArrayMesh.new()\n" +"var arrays = []\n" +"arrays.resize(Mesh.ARRAY_MAX)\n" +"arrays[Mesh.ARRAY_VERTEX] = vertices\n" +"\n" +"# 创建 Mesh。\n" +"arr_mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, arrays)\n" +"var m = MeshInstance3D.new()\n" +"m.mesh = arr_mesh\n" +"[/gdscript]\n" +"[csharp]\n" +"Vector3[] vertices =\n" +"[\n" +" new Vector3(0, 1, 0),\n" +" new Vector3(1, 0, 0),\n" +" new Vector3(0, 0, 1),\n" +"];\n" +"\n" +"// 初始化 ArrayMesh。\n" +"var arrMesh = new ArrayMesh();\n" +"Godot.Collections.Array arrays = [];\n" +"arrays.Resize((int)Mesh.ArrayType.Max);\n" +"arrays[(int)Mesh.ArrayType.Vertex] = vertices;\n" +"\n" +"// 创建 Mesh。\n" +"arrMesh.AddSurfaceFromArrays(Mesh.PrimitiveType.Triangles, arrays);\n" +"var m = new MeshInstance3D();\n" +"m.Mesh = arrMesh;\n" +"[/csharp]\n" +"[/codeblocks]\n" +"这个 [MeshInstance3D] 就可以添加到要显示的 [SceneTree] 中了。\n" +"程序几何体生成请参阅 [ImmediateMesh]、[MeshDataTool]、[SurfaceTool]。\n" +"[b]注意:[/b]Godot 对三角形图元模式的正面使用顺时针[url=https://learnopengl-" +"cn.github.io/04%20Advanced%20OpenGL/04%20Face%20culling/]环绕顺序[/url]。" + msgid "Procedural geometry using the ArrayMesh" msgstr "使用 ArrayMesh 的程序化几何体" @@ -10735,6 +14008,71 @@ msgstr "" "为混合形状添加名称,该形状将用 [method add_surface_from_arrays] 添加。必须在添" "加面之前调用。" +msgid "" +"Creates a new surface. [method Mesh.get_surface_count] will become the " +"[code]surf_idx[/code] for this new surface.\n" +"Surfaces are created to be rendered using a [param primitive], which may be " +"any of the values defined in [enum Mesh.PrimitiveType].\n" +"The [param arrays] argument is an array of arrays. Each of the [constant Mesh." +"ARRAY_MAX] elements contains an array with some of the mesh data for this " +"surface as described by the corresponding member of [enum Mesh.ArrayType] or " +"[code]null[/code] if it is not used by the surface. For example, " +"[code]arrays[0][/code] is the array of vertices. That first vertex sub-array " +"is always required; the others are optional. Adding an index array puts this " +"surface into \"index mode\" where the vertex and other arrays become the " +"sources of data and the index array defines the vertex order. All sub-arrays " +"must have the same length as the vertex array (or be an exact multiple of the " +"vertex array's length, when multiple elements of a sub-array correspond to a " +"single vertex) or be empty, except for [constant Mesh.ARRAY_INDEX] if it is " +"used.\n" +"The [param blend_shapes] argument is an array of vertex data for each blend " +"shape. Each element is an array of the same structure as [param arrays], but " +"[constant Mesh.ARRAY_VERTEX], [constant Mesh.ARRAY_NORMAL], and [constant " +"Mesh.ARRAY_TANGENT] are set if and only if they are set in [param arrays] and " +"all other entries are [code]null[/code].\n" +"The [param lods] argument is a dictionary with [float] keys and " +"[PackedInt32Array] values. Each entry in the dictionary represents an LOD " +"level of the surface, where the value is the [constant Mesh.ARRAY_INDEX] " +"array to use for the LOD level and the key is roughly proportional to the " +"distance at which the LOD stats being used. I.e., increasing the key of an " +"LOD also increases the distance that the objects has to be from the camera " +"before the LOD is used.\n" +"The [param flags] argument is the bitwise OR of, as required: One value of " +"[enum Mesh.ArrayCustomFormat] left shifted by " +"[code]ARRAY_FORMAT_CUSTOMn_SHIFT[/code] for each custom channel in use, " +"[constant Mesh.ARRAY_FLAG_USE_DYNAMIC_UPDATE], [constant Mesh." +"ARRAY_FLAG_USE_8_BONE_WEIGHTS], or [constant Mesh." +"ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY].\n" +"[b]Note:[/b] When using indices, it is recommended to only use points, lines, " +"or triangles." +msgstr "" +"创建一个新的表面。[method Mesh.get_surface_count] 将成为这个新表面的 " +"[code]surf_idx[/code]。\n" +"创建表面以使用 [param primitive] 进行渲染,它可以是 [enum Mesh.PrimitiveType] " +"中定义的任何值。\n" +"[param arrays] 参数是数组的数组。每个 [constant Mesh.ARRAY_MAX] 元素都包含一个" +"数组,其中包含此表面的一些网格数据,如 [enum Mesh.ArrayType] 的相应成员所描述" +"的一样;如果它未被使用,则为 [code]null[/code]。例如,[code]arrays[0][/code] " +"是顶点数组。始终需要第一个顶点子数组;其他的是可选的。添加索引数组会将此表面置" +"于“索引模式”,其中顶点和其他数组成为数据源,索引数组定义顶点顺序。所有子数组的" +"长度必须与顶点数组的长度相同(或者是顶点数组长度的精确倍数,当子数组的多个元素" +"对应于单个顶点时);或者为空,如果使用了 [constant Mesh.ARRAY_INDEX ] 则除" +"外。\n" +"[param blend_shapes] 参数是每个混合形状的顶点数据数组。 每个元素都是与 [param " +"arrays] 具有相同结构的数组,但是 [constant Mesh.ARRAY_VERTEX]、[constant Mesh." +"ARRAY_NORMAL] 和 [constant Mesh.ARRAY_TANGENT] 这些条目,当且仅当在 [param " +"arrays] 被设置且所有其他条目都是 [code]null[/code] 时,会被设置。\n" +"[param lods] 参数是一个带有 [float] 键和 [PackedInt32Array] 值的字典。字典中的" +"每个条目代表了表面的一个 LOD 级别,其中值是用于 LOD 级别的 [constant Mesh." +"ARRAY_INDEX] 数组,键大致与使用 LOD 统计信息的距离成正比。即,增加 LOD 的关键" +"点也会增加在使用 LOD 之前对象必须与相机的距离。\n" +"[param flags] 参数是根据需要按位或的:[enum Mesh.ArrayCustomFormat] 的一个值左" +"移 [code]ARRAY_FORMAT_CUSTOMn_SHIFT[/code],用于每个正在使用的自定义通道," +"[constant Mesh.ARRAY_FLAG_USE_DYNAMIC_UPDATE]、[constant Mesh." +"ARRAY_FLAG_USE_8_BONE_WEIGHTS] 或 [constant Mesh." +"ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY]。\n" +"[b]注意:[/b]使用索引时,建议只使用点、线或三角形。" + msgid "Removes all blend shapes from this [ArrayMesh]." msgstr "移除此 [ArrayMesh] 的所有混合形状。" @@ -10788,6 +14126,11 @@ msgid "" "add_surface_from_arrays])." msgstr "返回所请求曲面的图元类型(见 [method add_surface_from_arrays])。" +msgid "" +"Removes the surface at the given index from the Mesh, shifting surfaces with " +"higher index down by one." +msgstr "移除 Mesh 中给定索引处的表面,将索引更大的表面向前移动一位。" + msgid "Sets a name for a given surface." msgstr "设置给定曲面的名称。" @@ -11113,6 +14456,86 @@ msgstr "" "结果位于从 [code]y = 0[/code] 到 [code]y = 5[/code] 的线段中。它是线段中距给定" "点最近的位置。" +msgid "" +"Returns an array with the IDs of the points that form the path found by " +"AStar2D between the given points. The array is ordered from the starting " +"point to the ending point of the path.\n" +"If there is no valid path to the target, and [param allow_partial_path] is " +"[code]true[/code], returns a path to the point closest to the target that can " +"be reached.\n" +"[b]Note:[/b] When [param allow_partial_path] is [code]true[/code] and [param " +"to_id] is disabled the search may take an unusually long time to finish.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var astar = AStar2D.new()\n" +"astar.add_point(1, Vector2(0, 0))\n" +"astar.add_point(2, Vector2(0, 1), 1) # Default weight is 1\n" +"astar.add_point(3, Vector2(1, 1))\n" +"astar.add_point(4, Vector2(2, 0))\n" +"\n" +"astar.connect_points(1, 2, false)\n" +"astar.connect_points(2, 3, false)\n" +"astar.connect_points(4, 3, false)\n" +"astar.connect_points(1, 4, false)\n" +"\n" +"var res = astar.get_id_path(1, 3) # Returns [1, 2, 3]\n" +"[/gdscript]\n" +"[csharp]\n" +"var astar = new AStar2D();\n" +"astar.AddPoint(1, new Vector2(0, 0));\n" +"astar.AddPoint(2, new Vector2(0, 1), 1); // Default weight is 1\n" +"astar.AddPoint(3, new Vector2(1, 1));\n" +"astar.AddPoint(4, new Vector2(2, 0));\n" +"\n" +"astar.ConnectPoints(1, 2, false);\n" +"astar.ConnectPoints(2, 3, false);\n" +"astar.ConnectPoints(4, 3, false);\n" +"astar.ConnectPoints(1, 4, false);\n" +"long[] res = astar.GetIdPath(1, 3); // Returns [1, 2, 3]\n" +"[/csharp]\n" +"[/codeblocks]\n" +"If you change the 2nd point's weight to 3, then the result will be [code][1, " +"4, 3][/code] instead, because now even though the distance is longer, it's " +"\"easier\" to get through point 4 than through point 2." +msgstr "" +"返回一个数组,其中包含构成由 AStar2D 在给定点之间找到的路径的点的 ID。数组从路" +"径的起点到终点进行排序。\n" +"如果没有能够到达目标的有效路径,并且 [param allow_partial_path] 为[code]true[/" +"code],则返回能够到达的最接近目标点的路径。\n" +"[b]注意:[/b]如果 [param allow_partial_path] 为 [code]true[/code] 并且 [param " +"to_id] 处于禁用状态,搜索耗时可能异常地大。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var astar = AStar2D.new()\n" +"astar.add_point(1, Vector2(0, 0))\n" +"astar.add_point(2, Vector2(0, 1), 1) # 默认权重为 1\n" +"astar.add_point(3, Vector2(1, 1))\n" +"astar.add_point(4, Vector2(2, 0))\n" +"\n" +"astar.connect_points(1, 2, false)\n" +"astar.connect_points(2, 3, false)\n" +"astar.connect_points(4, 3, false)\n" +"astar.connect_points(1, 4, false)\n" +"\n" +"var res = astar.get_id_path(1, 3) # 返回 [1, 2, 3]\n" +"[/gdscript]\n" +"[csharp]\n" +"var astar = new AStar2D();\n" +"astar.AddPoint(1, new Vector2(0, 0));\n" +"astar.AddPoint(2, new Vector2(0, 1), 1); // 默认权重为 1\n" +"astar.AddPoint(3, new Vector2(1, 1));\n" +"astar.AddPoint(4, new Vector2(2, 0));\n" +"\n" +"astar.ConnectPoints(1, 2, false);\n" +"astar.ConnectPoints(2, 3, false);\n" +"astar.ConnectPoints(4, 3, false);\n" +"astar.ConnectPoints(1, 4, false);\n" +"long[] res = astar.GetIdPath(1, 3); // 返回 [1, 2, 3]\n" +"[/csharp]\n" +"[/codeblocks]\n" +"如果将第 2 个点的权重更改为 3,则结果将改为 [code][1, 4, 3][/code],因为现在即" +"使距离更长,通过第 4 点也比通过第 2 点“更容易”。" + msgid "" "Returns the capacity of the structure backing the points, useful in " "conjunction with [method reserve_space]." @@ -11183,6 +14606,27 @@ msgstr "返回点池中当前的点数。" msgid "Returns an array of all point IDs." msgstr "返回所有点 ID 的数组。" +msgid "" +"Returns an array with the points that are in the path found by AStar2D " +"between the given points. The array is ordered from the starting point to the " +"ending point of the path.\n" +"If there is no valid path to the target, and [param allow_partial_path] is " +"[code]true[/code], returns a path to the point closest to the target that can " +"be reached.\n" +"[b]Note:[/b] This method is not thread-safe. If called from a [Thread], it " +"will return an empty array and will print an error message.\n" +"Additionally, when [param allow_partial_path] is [code]true[/code] and [param " +"to_id] is disabled the search may take an unusually long time to finish." +msgstr "" +"返回一个数组,其中包含 AStar2D 在给定点之间找到的路径中的点。数组从路径的起点" +"到终点进行排序。\n" +"如果没有通往目标的有效路径并且 [param allow_partial_path] 为 [code]true[/" +"code],则会返回通往距离目标最近的可达点的路径。\n" +"[b]注意:[/b]该方法不是线程安全的。如果从 [Thread] 调用,它将返回一个空的 " +"[PackedVector2Array] 并打印一条错误消息。\n" +"另外,如果 [param allow_partial_path] 为 [code]true[/code] 并且 [param to_id] " +"处于禁用状态,搜索耗时可能异常地大。" + msgid "Returns the position of the point associated with the given [param id]." msgstr "返回与给定 [param id] 相关联的点的位置。" @@ -11202,6 +14646,14 @@ msgid "" "Removes the point associated with the given [param id] from the points pool." msgstr "从点池中移除与给定 [param id] 关联的点。" +msgid "" +"Reserves space internally for [param num_nodes] points. Useful if you're " +"adding a known large number of points at once, such as points on a grid. The " +"new capacity must be greater or equal to the old capacity." +msgstr "" +"在内部为 [param num_nodes] 个点预留空间。如果需要大批添加已知数量的点,例如网" +"格上的点,则此函数很有用。新的容量必须大于或等于旧的容量。" + msgid "" "Disables or enables the specified point for pathfinding. Useful for making a " "temporary obstacle." @@ -11224,6 +14676,143 @@ msgid "" "a connected graph in 3D space." msgstr "A* 的一种实现,用于寻找 3D 空间中连接图中的两个顶点之间的最短路径。" +msgid "" +"A* (A star) is a computer algorithm used in pathfinding and graph traversal, " +"the process of plotting short paths among vertices (points), passing through " +"a given set of edges (segments). It enjoys widespread use due to its " +"performance and accuracy. Godot's A* implementation uses points in 3D space " +"and Euclidean distances by default.\n" +"You must add points manually with [method add_point] and create segments " +"manually with [method connect_points]. Once done, you can test if there is a " +"path between two points with the [method are_points_connected] function, get " +"a path containing indices by [method get_id_path], or one containing actual " +"coordinates with [method get_point_path].\n" +"It is also possible to use non-Euclidean distances. To do so, create a script " +"that extends [AStar3D] and override the methods [method _compute_cost] and " +"[method _estimate_cost]. Both should take two point IDs and return the " +"distance between the corresponding points.\n" +"[b]Example:[/b] Use Manhattan distance instead of Euclidean distance:\n" +"[codeblocks]\n" +"[gdscript]\n" +"class_name MyAStar3D\n" +"extends AStar3D\n" +"\n" +"func _compute_cost(u, v):\n" +" var u_pos = get_point_position(u)\n" +" var v_pos = get_point_position(v)\n" +" return abs(u_pos.x - v_pos.x) + abs(u_pos.y - v_pos.y) + abs(u_pos.z - " +"v_pos.z)\n" +"\n" +"func _estimate_cost(u, v):\n" +" var u_pos = get_point_position(u)\n" +" var v_pos = get_point_position(v)\n" +" return abs(u_pos.x - v_pos.x) + abs(u_pos.y - v_pos.y) + abs(u_pos.z - " +"v_pos.z)\n" +"[/gdscript]\n" +"[csharp]\n" +"using Godot;\n" +"\n" +"[GlobalClass]\n" +"public partial class MyAStar3D : AStar3D\n" +"{\n" +" public override float _ComputeCost(long fromId, long toId)\n" +" {\n" +" Vector3 fromPoint = GetPointPosition(fromId);\n" +" Vector3 toPoint = GetPointPosition(toId);\n" +"\n" +" return Mathf.Abs(fromPoint.X - toPoint.X) + Mathf.Abs(fromPoint.Y - " +"toPoint.Y) + Mathf.Abs(fromPoint.Z - toPoint.Z);\n" +" }\n" +"\n" +" public override float _EstimateCost(long fromId, long toId)\n" +" {\n" +" Vector3 fromPoint = GetPointPosition(fromId);\n" +" Vector3 toPoint = GetPointPosition(toId);\n" +" return Mathf.Abs(fromPoint.X - toPoint.X) + Mathf.Abs(fromPoint.Y - " +"toPoint.Y) + Mathf.Abs(fromPoint.Z - toPoint.Z);\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[method _estimate_cost] should return a lower bound of the distance, i.e. " +"[code]_estimate_cost(u, v) <= _compute_cost(u, v)[/code]. This serves as a " +"hint to the algorithm because the custom [method _compute_cost] might be " +"computation-heavy. If this is not the case, make [method _estimate_cost] " +"return the same value as [method _compute_cost] to provide the algorithm with " +"the most accurate information.\n" +"If the default [method _estimate_cost] and [method _compute_cost] methods are " +"used, or if the supplied [method _estimate_cost] method returns a lower bound " +"of the cost, then the paths returned by A* will be the lowest-cost paths. " +"Here, the cost of a path equals the sum of the [method _compute_cost] results " +"of all segments in the path multiplied by the [code]weight_scale[/code]s of " +"the endpoints of the respective segments. If the default methods are used and " +"the [code]weight_scale[/code]s of all points are set to [code]1.0[/code], " +"then this equals the sum of Euclidean distances of all segments in the path." +msgstr "" +"A*(A 星)是一种用于寻路和图遍历的计算机算法,会根据一组给定的边(线段)测定顶" +"点(点)之间的短路径。由于高性能和高准确度,A* 算法被广泛使用。Godot 的 A* 实" +"现默认使用 3D 空间中的点和欧几里德距离。\n" +"你必须使用 [method add_point] 手动添加点,并使用 [method connect_points] 手动" +"创建线段。完成后,就可以使用 [method are_points_connected] 函数测试两点之间是" +"否存在路径,通过 [method get_id_path] 获取由索引组成的路径,或使用 [method " +"get_point_path] 获取由实际坐标组成的路径。\n" +"也可以使用非欧几里德距离。做法是创建一个扩展自 [AStar3D] 的类,然后覆盖 " +"[method _compute_cost] 和 [method _estimate_cost] 方法。两者都接受两个点 ID 并" +"返回对应点之间的距离。\n" +"[b]示例:[/b]用曼哈顿距离代替欧几里德距离:\n" +"[codeblocks]\n" +"[gdscript]\n" +"class_name MyAStar3D\n" +"extends AStar3D\n" +"\n" +"func _compute_cost(u, v):\n" +" var u_pos = get_point_position(u)\n" +" var v_pos = get_point_position(v)\n" +" return abs(u_pos.x - v_pos.x) + abs(u_pos.y - v_pos.y) + abs(u_pos.z - " +"v_pos.z)\n" +"\n" +"func _estimate_cost(u, v):\n" +" var u_pos = get_point_position(u)\n" +" var v_pos = get_point_position(v)\n" +" return abs(u_pos.x - v_pos.x) + abs(u_pos.y - v_pos.y) + abs(u_pos.z - " +"v_pos.z)\n" +"[/gdscript]\n" +"[csharp]\n" +"using Godot;\n" +"\n" +"[GlobalClass]\n" +"public partial class MyAStar3D : AStar3D\n" +"{\n" +" public override float _ComputeCost(long fromId, long toId)\n" +" {\n" +" Vector3 fromPoint = GetPointPosition(fromId);\n" +" Vector3 toPoint = GetPointPosition(toId);\n" +"\n" +" return Mathf.Abs(fromPoint.X - toPoint.X) + Mathf.Abs(fromPoint.Y - " +"toPoint.Y) + Mathf.Abs(fromPoint.Z - toPoint.Z);\n" +" }\n" +"\n" +" public override float _EstimateCost(long fromId, long toId)\n" +" {\n" +" Vector3 fromPoint = GetPointPosition(fromId);\n" +" Vector3 toPoint = GetPointPosition(toId);\n" +" return Mathf.Abs(fromPoint.X - toPoint.X) + Mathf.Abs(fromPoint.Y - " +"toPoint.Y) + Mathf.Abs(fromPoint.Z - toPoint.Z);\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[method _estimate_cost] 应该返回距离的下限,即 [code]_estimate_cost(u, v) <= " +"_compute_cost(u, v)[/code]。这一距离会用作算法的提示,因为自定义的 [method " +"_compute_cost] 可能计算量很大。如果不是这种情况,请让 [method _estimate_cost] " +"返回与 [method _compute_cost] 相同的值,为算法提供最准确的信息。\n" +"如果使用了默认的 [method _estimate_cost] 和 [method _compute_cost] 方法,或者" +"提供的 [method _estimate_cost] 方法返回的是成本下限,那么 A* 返回的路径就是成" +"本最低的路径。此处路径的成本等于路径中所有线段 [method _compute_cost] 的结果乘" +"以该线段对应端点的 [code]weight_scale[/code] 之和。如果使用默认方法,并且所有" +"点的 [code]weight_scale[/code] 都为 [code]1.0[/code],则成本等于路径中所有线段" +"的欧几里德距离之和。" + msgid "" "Called when computing the cost between two connected points.\n" "Note that this function is hidden in the default [AStar3D] class." @@ -11372,6 +14961,84 @@ msgstr "" "结果是在从 [code]y = 0[/code] 到 [code]y = 5[/code] 的线段中。它是线段中距离给" "定点最近的位置。" +msgid "" +"Returns an array with the IDs of the points that form the path found by " +"AStar3D between the given points. The array is ordered from the starting " +"point to the ending point of the path.\n" +"If there is no valid path to the target, and [param allow_partial_path] is " +"[code]true[/code], returns a path to the point closest to the target that can " +"be reached.\n" +"[b]Note:[/b] When [param allow_partial_path] is [code]true[/code] and [param " +"to_id] is disabled the search may take an unusually long time to finish.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var astar = AStar3D.new()\n" +"astar.add_point(1, Vector3(0, 0, 0))\n" +"astar.add_point(2, Vector3(0, 1, 0), 1) # Default weight is 1\n" +"astar.add_point(3, Vector3(1, 1, 0))\n" +"astar.add_point(4, Vector3(2, 0, 0))\n" +"\n" +"astar.connect_points(1, 2, false)\n" +"astar.connect_points(2, 3, false)\n" +"astar.connect_points(4, 3, false)\n" +"astar.connect_points(1, 4, false)\n" +"\n" +"var res = astar.get_id_path(1, 3) # Returns [1, 2, 3]\n" +"[/gdscript]\n" +"[csharp]\n" +"var astar = new AStar3D();\n" +"astar.AddPoint(1, new Vector3(0, 0, 0));\n" +"astar.AddPoint(2, new Vector3(0, 1, 0), 1); // Default weight is 1\n" +"astar.AddPoint(3, new Vector3(1, 1, 0));\n" +"astar.AddPoint(4, new Vector3(2, 0, 0));\n" +"astar.ConnectPoints(1, 2, false);\n" +"astar.ConnectPoints(2, 3, false);\n" +"astar.ConnectPoints(4, 3, false);\n" +"astar.ConnectPoints(1, 4, false);\n" +"long[] res = astar.GetIdPath(1, 3); // Returns [1, 2, 3]\n" +"[/csharp]\n" +"[/codeblocks]\n" +"If you change the 2nd point's weight to 3, then the result will be [code][1, " +"4, 3][/code] instead, because now even though the distance is longer, it's " +"\"easier\" to get through point 4 than through point 2." +msgstr "" +"返回一个数组,其中包含构成 AStar3D 在给定点之间找到的路径中的点的 ID。数组从路" +"径的起点到终点排序。\n" +"如果没有能够到达目标的有效路径,并且 [param allow_partial_path] 为[code]true[/" +"code],则返回能够到达的最接近目标点的路径。\n" +"[b]注意:[/b]如果 [param allow_partial_path] 为 [code]true[/code] 并且 [param " +"to_id] 处于禁用状态,搜索耗时可能异常地大。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var astar = AStar3D.new()\n" +"astar.add_point(1, Vector3(0, 0, 0))\n" +"astar.add_point(2, Vector3(0, 1, 0), 1) # 默认权重为 1\n" +"astar.add_point(3, Vector3(1, 1, 0))\n" +"astar.add_point(4, Vector3(2, 0, 0))\n" +"\n" +"astar.connect_points(1, 2, false)\n" +"astar.connect_points(2, 3, false)\n" +"astar.connect_points(4, 3, false)\n" +"astar.connect_points(1, 4, false)\n" +"\n" +"var res = astar.get_id_path(1, 3) # 返回 [1, 2, 3]\n" +"[/gdscript]\n" +"[csharp]\n" +"var astar = new AStar3D();\n" +"astar.AddPoint(1, new Vector3(0, 0, 0));\n" +"astar.AddPoint(2, new Vector3(0, 1, 0), 1); // 默认权重为 1\n" +"astar.AddPoint(3, new Vector3(1, 1, 0));\n" +"astar.AddPoint(4, new Vector3(2, 0, 0));\n" +"astar.ConnectPoints(1, 2, false);\n" +"astar.ConnectPoints(2, 3, false);\n" +"astar.ConnectPoints(4, 3, false);\n" +"astar.ConnectPoints(1, 4, false);\n" +"long[] res = astar.GetIdPath(1, 3); // 返回 [1, 2, 3]\n" +"[/csharp]\n" +"[/codeblocks]\n" +"如果将第 2 个点的权重更改为 3,则结果将改为 [code][1, 4, 3][/code],因为现在即" +"使距离更长,但通过第 4 点也比通过第 2 点“更容易”。" + msgid "" "Returns an array with the IDs of the points that form the connection with the " "given point.\n" @@ -11428,6 +15095,27 @@ msgstr "" "[/csharp]\n" "[/codeblocks]" +msgid "" +"Returns an array with the points that are in the path found by AStar3D " +"between the given points. The array is ordered from the starting point to the " +"ending point of the path.\n" +"If there is no valid path to the target, and [param allow_partial_path] is " +"[code]true[/code], returns a path to the point closest to the target that can " +"be reached.\n" +"[b]Note:[/b] This method is not thread-safe. If called from a [Thread], it " +"will return an empty array and will print an error message.\n" +"Additionally, when [param allow_partial_path] is [code]true[/code] and [param " +"to_id] is disabled the search may take an unusually long time to finish." +msgstr "" +"返回一个数组,其中包含 AStar3D 在给定点之间找到的路径中的点。数组从路径的起点" +"到终点进行排序。\n" +"如果没有通往目标的有效路径并且 [param allow_partial_path] 为 [code]true[/" +"code],则会返回通往距离目标最近的可达点的路径。\n" +"[b]注意:[/b]这种方法不是线程安全的。如果从 [Thread] 调用,它将返回一个空的 " +"[PackedVector3Array],并打印一条错误消息。\n" +"另外,如果 [param allow_partial_path] 为 [code]true[/code] 并且 [param to_id] " +"处于禁用状态,搜索耗时可能异常地大。" + msgid "" "Reserves space internally for [param num_nodes] points. Useful if you're " "adding a known large number of points at once, such as points on a grid. New " @@ -11441,6 +15129,69 @@ msgid "" "partial 2D grid." msgstr "A* 的一种实现,用于寻找疏松 2D 网格中两点之间的最短路径。" +msgid "" +"[AStarGrid2D] is a variant of [AStar2D] that is specialized for partial 2D " +"grids. It is simpler to use because it doesn't require you to manually create " +"points and connect them together. This class also supports multiple types of " +"heuristics, modes for diagonal movement, and a jumping mode to speed up " +"calculations.\n" +"To use [AStarGrid2D], you only need to set the [member region] of the grid, " +"optionally set the [member cell_size], and then call the [method update] " +"method:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var astar_grid = AStarGrid2D.new()\n" +"astar_grid.region = Rect2i(0, 0, 32, 32)\n" +"astar_grid.cell_size = Vector2(16, 16)\n" +"astar_grid.update()\n" +"print(astar_grid.get_id_path(Vector2i(0, 0), Vector2i(3, 4))) # Prints [(0, " +"0), (1, 1), (2, 2), (3, 3), (3, 4)]\n" +"print(astar_grid.get_point_path(Vector2i(0, 0), Vector2i(3, 4))) # Prints " +"[(0, 0), (16, 16), (32, 32), (48, 48), (48, 64)]\n" +"[/gdscript]\n" +"[csharp]\n" +"AStarGrid2D astarGrid = new AStarGrid2D();\n" +"astarGrid.Region = new Rect2I(0, 0, 32, 32);\n" +"astarGrid.CellSize = new Vector2I(16, 16);\n" +"astarGrid.Update();\n" +"GD.Print(astarGrid.GetIdPath(Vector2I.Zero, new Vector2I(3, 4))); // Prints " +"[(0, 0), (1, 1), (2, 2), (3, 3), (3, 4)]\n" +"GD.Print(astarGrid.GetPointPath(Vector2I.Zero, new Vector2I(3, 4))); // " +"Prints [(0, 0), (16, 16), (32, 32), (48, 48), (48, 64)]\n" +"[/csharp]\n" +"[/codeblocks]\n" +"To remove a point from the pathfinding grid, it must be set as \"solid\" with " +"[method set_point_solid]." +msgstr "" +"[AStarGrid2D] 是 [AStar2D] 的变种,针对疏松 2D 网格进行了优化。因为不需要手动" +"创建点并进行连接,所以用起来更加简单。这个类还支持使用不同的启发方法、斜向移动" +"模式、跳跃模式,从而加速运算。\n" +"要使用 [AStarGrid2D],你只需要设置网格的 [member region],[member cell_size] " +"可以不设置,最后调用 [method update] 方法即可:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var astar_grid = AStarGrid2D.new()\n" +"astar_grid.region = Rect2i(0, 0, 32, 32)\n" +"astar_grid.cell_size = Vector2(16, 16)\n" +"astar_grid.update()\n" +"print(astar_grid.get_id_path(Vector2i(0, 0), Vector2i(3, 4))) # 输出 [(0, 0), " +"(1, 1), (2, 2), (3, 3), (3, 4)]\n" +"print(astar_grid.get_point_path(Vector2i(0, 0), Vector2i(3, 4))) # 输出 [(0, " +"0), (16, 16), (32, 32), (48, 48), (48, 64)]\n" +"[/gdscript]\n" +"[csharp]\n" +"AStarGrid2D astarGrid = new AStarGrid2D();\n" +"astarGrid.Region = new Rect2I(0, 0, 32, 32);\n" +"astarGrid.CellSize = new Vector2I(16, 16);\n" +"astarGrid.Update();\n" +"GD.Print(astarGrid.GetIdPath(Vector2I.Zero, new Vector2I(3, 4))); // 输出 " +"[(0, 0), (1, 1), (2, 2), (3, 3), (3, 4)]\n" +"GD.Print(astarGrid.GetPointPath(Vector2I.Zero, new Vector2I(3, 4))); // 输出 " +"[(0, 0), (16, 16), (32, 32), (48, 48), (48, 64)]\n" +"[/csharp]\n" +"[/codeblocks]\n" +"要从寻路网格中移除某个点,必须使用 [method set_point_solid] 将其设置为“实心”。" + msgid "" "Called when computing the cost between two connected points.\n" "Note that this function is hidden in the default [AStarGrid2D] class." @@ -11478,6 +15229,53 @@ msgstr "" "使用指定的值填充网格上 [param region] 区域的权重缩放。\n" "[b]注意:[/b]调用该函数后不需要调用 [method update]。" +msgid "" +"Returns an array with the IDs of the points that form the path found by " +"AStar2D between the given points. The array is ordered from the starting " +"point to the ending point of the path.\n" +"If there is no valid path to the target, and [param allow_partial_path] is " +"[code]true[/code], returns a path to the point closest to the target that can " +"be reached.\n" +"[b]Note:[/b] When [param allow_partial_path] is [code]true[/code] and [param " +"to_id] is solid the search may take an unusually long time to finish." +msgstr "" +"返回一个数组,其中包含 AStar2D 在给定点之间找到的路径中的点。数组从路径的起点" +"到终点进行排序。\n" +"如果没有通往目标的有效路径并且 [param allow_partial_path] 为 [code]true[/" +"code],则会返回通往距离目标最近的可达点的路径。\n" +"[b]注意:[/b]如果 [param allow_partial_path] 为 [code]true[/code] 并且 [param " +"to_id] 处于禁用状态,搜索耗时可能异常地大。" + +msgid "" +"Returns an array of dictionaries with point data ([code]id[/code]: " +"[Vector2i], [code]position[/code]: [Vector2], [code]solid[/code]: [bool], " +"[code]weight_scale[/code]: [float]) within a [param region]." +msgstr "" +"返回 [param region] 范围内点数据([code]id[/code]: [Vector2i], " +"[code]position[/code]: [Vector2], [code]solid[/code]: [bool], " +"[code]weight_scale[/code]: [float])的字典数组。" + +msgid "" +"Returns an array with the points that are in the path found by [AStarGrid2D] " +"between the given points. The array is ordered from the starting point to the " +"ending point of the path.\n" +"If there is no valid path to the target, and [param allow_partial_path] is " +"[code]true[/code], returns a path to the point closest to the target that can " +"be reached.\n" +"[b]Note:[/b] This method is not thread-safe. If called from a [Thread], it " +"will return an empty array and will print an error message.\n" +"Additionally, when [param allow_partial_path] is [code]true[/code] and [param " +"to_id] is solid the search may take an unusually long time to finish." +msgstr "" +"返回一个数组,其中包含 [AStarGrid2D] 在给定点之间找到的路径上的点。数组从路径" +"的起点到终点排序。\n" +"如果没有通往目标的有效路径并且 [param allow_partial_path] 为 [code]true[/" +"code],则会返回通往距离目标最近的可达点的路径。\n" +"[b]注意:[/b]该方法不是线程安全的。如果从 [Thread] 中调用它,它将返回一个空的 " +"[PackedVector3Array] 并打印一条错误消息。\n" +"另外,如果 [param allow_partial_path] 为 [code]true[/code] 并且 [param to_id] " +"处于禁用状态,搜索耗时可能异常地大。" + msgid "" "Indicates that the grid parameters were changed and [method update] needs to " "be called." @@ -11744,6 +15542,25 @@ msgstr "代表 [enum CellShape] 枚举的大小。" msgid "A texture that crops out part of another Texture2D." msgstr "裁剪其他 Texture2D 的纹理。" +msgid "" +"[Texture2D] resource that draws only part of its [member atlas] texture, as " +"defined by the [member region]. An additional [member margin] can also be " +"set, which is useful for small adjustments.\n" +"Multiple [AtlasTexture] resources can be cropped from the same [member " +"atlas]. Packing many smaller textures into a singular large texture helps to " +"optimize video memory costs and render calls.\n" +"[b]Note:[/b] [AtlasTexture] cannot be used in an [AnimatedTexture], and will " +"not tile properly in nodes such as [TextureRect] or [Sprite2D]. To tile an " +"[AtlasTexture], modify its [member region] instead." +msgstr "" +"[Texture2D] 资源,只绘制 [member atlas] 纹理中由 [member region] 所定义的那部" +"分区域。还可以设置额外的边距 [member margin],适用于进行较小的调整。\n" +"可以从同一个 [member atlas] 中裁剪出多个 [AtlasTexture] 资源。将许多较小的纹理" +"打包成一个单一的大纹理有助于优化视频内存成本和渲染调用。\n" +"[b]注意:[/b][AtlasTexture] 不能在 [AnimatedTexture] 中使用,也无法在 " +"[TextureRect]、[Sprite2D] 等节点中正确平铺。要平铺 [AtlasTexture] 请修改 " +"[member region]。" + msgid "" "The texture that contains the atlas. Can be any type inheriting from " "[Texture2D], including another [AtlasTexture]." @@ -11859,6 +15676,20 @@ msgstr "" "以分贝为单位的放大量。正值使声音更响亮,负值使声音更安静。数值范围从 -80 到 " "24。" +msgid "" +"Amount of amplification as a linear value.\n" +"[b]Note:[/b] This member modifies [member volume_db] for convenience. The " +"returned value is equivalent to the result of [method @GlobalScope." +"db_to_linear] on [member volume_db]. Setting this member is equivalent to " +"setting [member volume_db] to the result of [method @GlobalScope." +"linear_to_db] on a value." +msgstr "" +"作为线性值的扩增量。\n" +"[b]注意:[/b]该成员会帮助修改 [member volume_db]。返回的值等价于使用 [member " +"volume_db] 调用 [method @GlobalScope.db_to_linear] 的结果。设置该成员等价于将 " +"[member volume_db] 设置为使用新值调用 [method @GlobalScope.linear_to_db] 的结" +"果。" + msgid "Adds a band limit filter to the audio bus." msgstr "为音频总线添加一个带限滤波器。" @@ -12350,12 +16181,31 @@ msgstr "允许通过 [member cutoff_hz] 以外的频率。" msgid "Threshold frequency for the filter, in Hz." msgstr "滤波器的阈值频率,单位为 Hz。" +msgid "" +"Steepness of the cutoff curve in dB per octave, also known as the order of " +"the filter. Higher orders have a more aggressive cutoff." +msgstr "" +"截止曲线的陡峭程度,以每倍频程 dB 为单位,也称为滤波器的阶数。阶数越高,截止程" +"度越激进。" + msgid "Gain amount of the frequencies after the filter." msgstr "滤波后频率的增益量。" msgid "Amount of boost in the frequency range near the cutoff frequency." msgstr "在截断频率附近的频率范围内的提升量。" +msgid "Cutting off at 6dB per octave." +msgstr "以每倍频程6dB的斜率进行衰减。" + +msgid "Cutting off at 12dB per octave." +msgstr "以每倍频程12dB的斜率进行衰减。" + +msgid "Cutting off at 18dB per octave." +msgstr "以每倍频程18dB的斜率进行衰减。" + +msgid "Cutting off at 24dB per octave." +msgstr "以每倍频程24dB的斜率进行衰减。" + msgid "Adds a hard limiter audio effect to an Audio bus." msgstr "为音频总线添加一个硬限制器音频效果。" @@ -12724,6 +16574,19 @@ msgstr "修改后声音的输出百分比。为 0 时,只输出原始声音。 msgid "Audio effect that can be used for real-time audio visualizations." msgstr "可用于实时音频可视化的音频效果。" +msgid "" +"This audio effect does not affect sound output, but can be used for real-time " +"audio visualizations.\n" +"This resource configures an [AudioEffectSpectrumAnalyzerInstance], which " +"performs the actual analysis at runtime. An instance can be obtained with " +"[method AudioServer.get_bus_effect_instance].\n" +"See also [AudioStreamGenerator] for procedurally generating sounds." +msgstr "" +"这种音频效果不影响声音输出,但可以用于实时音频可视化。\n" +"该资源配置了一个 [AudioEffectSpectrumAnalyzerInstance],会在运行时执行实际的分" +"析工作。可以使用 [method AudioServer.get_bus_effect_instance] 获取实例。\n" +"另见用于程序式声音生成的 [AudioStreamGenerator]。" + msgid "Audio Spectrum Visualizer Demo" msgstr "音频频谱可视化演示" @@ -12748,6 +16611,16 @@ msgstr "" msgid "Queryable instance of an [AudioEffectSpectrumAnalyzer]." msgstr "[AudioEffectSpectrumAnalyzer] 的可查询实例。" +msgid "" +"The runtime part of an [AudioEffectSpectrumAnalyzer], which can be used to " +"query the magnitude of a frequency range on its host bus.\n" +"An instance of this class can be obtained with [method AudioServer." +"get_bus_effect_instance]." +msgstr "" +"[AudioEffectSpectrumAnalyzer] 的运行时部分,可以用来查询宿主总线上某个频率范围" +"内的幅度。\n" +"可以使用 [method AudioServer.get_bus_effect_instance] 获取该类的实例。" + msgid "" "Returns the magnitude of the frequencies from [param from_hz] to [param " "to_hz] in linear energy as a Vector2. The [code]x[/code] component of the " @@ -12771,6 +16644,29 @@ msgid "" "An audio effect that can be used to adjust the intensity of stereo panning." msgstr "一种可用于调整立体声声像强度的音频效果。" +msgid "" +"Amplifies the difference between stereo channels, increasing or decreasing " +"existing panning. A value of 0.0 will downmix stereo to mono. Does not affect " +"a mono signal." +msgstr "" +"放大立体声道之间的差异,提升或降低存在的声像定位。取值为0.0将把立体声混缩为单" +"声道。对单声道信号没有影响。" + +msgid "" +"Widens sound stage through phase shifting in conjunction with [member " +"time_pullout_ms]. Just pans sound to the left channel if [member " +"time_pullout_ms] is 0." +msgstr "" +"通过在偏移相位时结合[member time_pullout_ms]来拓宽声场。若[member " +"time_pullout_ms]为0,则仅将声像定位到左声道。" + +msgid "" +"Widens sound stage through phase shifting in conjunction with [member " +"surround]. Just delays the right channel if [member surround] is 0." +msgstr "" +"通过在偏移相位时结合[member surround]来拓宽声场。若[member surround]为0,则仅" +"延迟右声道。" + msgid "Overrides the location sounds are heard from." msgstr "覆盖听到声音的位置。" @@ -12917,6 +16813,28 @@ msgstr "返回索引为 [param bus_idx] 的总线的发送目标总线的名称 msgid "Returns the volume of the bus at index [param bus_idx] in dB." msgstr "返回索引为 [param bus_idx] 的总线的音量,单位为 dB。" +msgid "" +"Returns the volume of the bus at index [param bus_idx] as a linear value.\n" +"[b]Note:[/b] The returned value is equivalent to the result of [method " +"@GlobalScope.db_to_linear] on the result of [method get_bus_volume_db]." +msgstr "" +"返回索引为 [param bus_idx] 处的总线音量对应的线性值。\n" +"[b]注意:[/b]返回的值等价于使用 [method get_bus_volume_db] 的结果调用 [method " +"@GlobalScope.db_to_linear] 的结果。" + +msgid "" +"Returns the name of the current audio driver. The default usually depends on " +"the operating system, but may be overridden via the [code]--audio-driver[/" +"code] [url=$DOCS_URL/tutorials/editor/command_line_tutorial.html]command line " +"argument[/url]. [code]--headless[/code] also automatically sets the audio " +"driver to [code]Dummy[/code]. See also [member ProjectSettings.audio/driver/" +"driver]." +msgstr "" +"返回当前音频驱动的名称。默认值通常与操作系统相关,但可以被 [code]--audio-" +"driver[/code] [url=$DOCS_URL/tutorials/editor/command_line_tutorial.html]命令" +"行参数[/url]覆盖。[code]--headless[/code] 也会自动将音频驱动设置为 " +"[code]Dummy[/code]。另见 [member ProjectSettings.audio/driver/driver]。" + msgid "" "Returns the names of all audio input devices detected on the system.\n" "[b]Note:[/b] [member ProjectSettings.audio/driver/enable_input] must be " @@ -12929,6 +16847,9 @@ msgstr "" "[code]true[/code] 音频输入才能正常工作。另请参阅该设置的说明,了解与权限和操作" "系统隐私设置相关的注意事项。" +msgid "Returns the sample rate at the input of the [AudioServer]." +msgstr "返回 [AudioServer] 输入的采样率。" + msgid "Returns the sample rate at the output of the [AudioServer]." msgstr "返回 [AudioServer] 输出的采样率。" @@ -13024,6 +16945,23 @@ msgid "" "send]." msgstr "将索引为 [param bus_idx] 处的总线输出连接到名为 [param send] 的总线。" +msgid "" +"Sets the volume in decibels of the bus at index [param bus_idx] to [param " +"volume_db]." +msgstr "" +"将索引为 [param bus_idx] 的总线的音量设为 [param volume_db],单位为分贝。" + +msgid "" +"Sets the volume as a linear value of the bus at index [param bus_idx] to " +"[param volume_linear].\n" +"[b]Note:[/b] Using this method is equivalent to calling [method " +"set_bus_volume_db] with the result of [method @GlobalScope.linear_to_db] on a " +"value." +msgstr "" +"将索引[param bus_idx]处的总线容量线性值设置为[param volume_linear]。\n" +"[b]注意:[/b]使用该方法,与对某个值执行[method @GlobalScope.linear_to_db]并基" +"于所得结果调用[method set_bus_volume_db],是等价的。" + msgid "" "If set to [code]true[/code], all instances of [AudioStreamPlayback] will call " "[method AudioStreamPlayback._tag_used_streams] every mix step.\n" @@ -13153,6 +17091,9 @@ msgstr "音频流" msgid "Audio Generator Demo" msgstr "音频生成器演示" +msgid "Override this method to return the bar beats of this stream." +msgstr "覆盖该方法,返回音频流的节拍数。" + msgid "" "Overridable method. Should return the total number of beats of this audio " "stream. Used by the engine to determine the position of every beat.\n" @@ -13195,6 +17136,18 @@ msgid "" "Unused by the engine." msgstr "覆盖该方法,以自定义分配给该音频流的名称。未被引擎使用。" +msgid "" +"Override this method to return [code]true[/code] if this stream has a loop." +msgstr "覆盖该方法,如果音频流中存在循环,则返回 [code]true[/code]。" + +msgid "" +"Override this method to customize the returned value of [method " +"instantiate_playback]. Should return a new [AudioStreamPlayback] created when " +"the stream is played (such as by an [AudioStreamPlayer])." +msgstr "" +"覆盖该方法可以自定义 [method instantiate_playback] 的返回值。应该返回一个在播" +"放流(例如通过 [AudioStreamPlayer])时创建的新的 [AudioStreamPlayback]。" + msgid "" "Override this method to customize the returned value of [method " "is_monophonic]. Should return [code]true[/code] if this audio stream only " @@ -13247,6 +17200,143 @@ msgstr "当参数列表改变时被发出以通知的信号。" msgid "An audio stream with utilities for procedural sound generation." msgstr "提供程序式声音生成工具的音频流。" +msgid "" +"[AudioStreamGenerator] is a type of audio stream that does not play back " +"sounds on its own; instead, it expects a script to generate audio data for " +"it. See also [AudioStreamGeneratorPlayback].\n" +"Here's a sample on how to use it to generate a sine wave:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var playback # Will hold the AudioStreamGeneratorPlayback.\n" +"@onready var sample_hz = $AudioStreamPlayer.stream.mix_rate\n" +"var pulse_hz = 440.0 # The frequency of the sound wave.\n" +"var phase = 0.0\n" +"\n" +"func _ready():\n" +" $AudioStreamPlayer.play()\n" +" playback = $AudioStreamPlayer.get_stream_playback()\n" +" fill_buffer()\n" +"\n" +"func fill_buffer():\n" +" var increment = pulse_hz / sample_hz\n" +" var frames_available = playback.get_frames_available()\n" +"\n" +" for i in range(frames_available):\n" +" playback.push_frame(Vector2.ONE * sin(phase * TAU))\n" +" phase = fmod(phase + increment, 1.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"[Export] public AudioStreamPlayer Player { get; set; }\n" +"\n" +"private AudioStreamGeneratorPlayback _playback; // Will hold the " +"AudioStreamGeneratorPlayback.\n" +"private float _sampleHz;\n" +"private float _pulseHz = 440.0f; // The frequency of the sound wave.\n" +"private double phase = 0.0;\n" +"\n" +"public override void _Ready()\n" +"{\n" +" if (Player.Stream is AudioStreamGenerator generator) // Type as a " +"generator to access MixRate.\n" +" {\n" +" _sampleHz = generator.MixRate;\n" +" Player.Play();\n" +" _playback = (AudioStreamGeneratorPlayback)Player." +"GetStreamPlayback();\n" +" FillBuffer();\n" +" }\n" +"}\n" +"\n" +"public void FillBuffer()\n" +"{\n" +" float increment = _pulseHz / _sampleHz;\n" +" int framesAvailable = _playback.GetFramesAvailable();\n" +"\n" +" for (int i = 0; i < framesAvailable; i++)\n" +" {\n" +" _playback.PushFrame(Vector2.One * (float)Mathf.Sin(phase * Mathf." +"Tau));\n" +" phase = Mathf.PosMod(phase + increment, 1.0);\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"In the example above, the \"AudioStreamPlayer\" node must use an " +"[AudioStreamGenerator] as its stream. The [code]fill_buffer[/code] function " +"provides audio data for approximating a sine wave.\n" +"See also [AudioEffectSpectrumAnalyzer] for performing real-time audio " +"spectrum analysis.\n" +"[b]Note:[/b] Due to performance constraints, this class is best used from C# " +"or from a compiled language via GDExtension. If you still want to use this " +"class from GDScript, consider using a lower [member mix_rate] such as 11,025 " +"Hz or 22,050 Hz." +msgstr "" +"[AudioStreamGenerator] 是一种音频流,它自己并不播放声音,而是要用脚本来为它生" +"成音频数据。另见 [AudioStreamGeneratorPlayback]。\n" +"以下是用它来生成正弦波的例子:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var playback # 存放 AudioStreamGeneratorPlayback。\n" +"@onready var sample_hz = $AudioStreamPlayer.stream.mix_rate\n" +"var pulse_hz = 440.0 # 声音波形的频率。\n" +"var phase = 0.0\n" +"\n" +"func _ready():\n" +" $AudioStreamPlayer.play()\n" +" playback = $AudioStreamPlayer.get_stream_playback()\n" +" fill_buffer()\n" +"\n" +"func fill_buffer():\n" +" var increment = pulse_hz / sample_hz\n" +" var frames_available = playback.get_frames_available()\n" +"\n" +" for i in range(frames_available):\n" +" playback.push_frame(Vector2.ONE * sin(phase * TAU))\n" +" phase = fmod(phase + increment, 1.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"[Export] public AudioStreamPlayer Player { get; set; }\n" +"\n" +"private AudioStreamGeneratorPlayback _playback; // 存放 " +"AudioStreamGeneratorPlayback。\n" +"private float _sampleHz;\n" +"private float _pulseHz = 440.0f; // 音频波形的频率。\n" +"private double phase = 0.0;\n" +"\n" +"public override void _Ready()\n" +"{\n" +" if (Player.Stream is AudioStreamGenerator generator) // Type as a " +"generator to access MixRate.\n" +" {\n" +" _sampleHz = generator.MixRate;\n" +" Player.Play();\n" +" _playback = (AudioStreamGeneratorPlayback)Player." +"GetStreamPlayback();\n" +" FillBuffer();\n" +" }\n" +"}\n" +"\n" +"public void FillBuffer()\n" +"{\n" +" float increment = _pulseHz / _sampleHz;\n" +" int framesAvailable = _playback.GetFramesAvailable();\n" +"\n" +" for (int i = 0; i < framesAvailable; i++)\n" +" {\n" +" _playback.PushFrame(Vector2.One * (float)Mathf.Sin(phase * Mathf." +"Tau));\n" +" phase = Mathf.PosMod(phase + increment, 1.0);\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"上面的例子中,“AudioStreamPlayer”节点必须使用 [AudioStreamGenerator] 作为其" +"流。[code]fill_buffer[/code] 函数负责提供模拟正弦波的音频数据。\n" +"要执行实时音频频谱分析,见 [AudioEffectSpectrumAnalyzer]。\n" +"[b]注意:[/b]由于性能的限制,这个类最好在 C# 或者在利用 GDExtension 的编译语言" +"中使用。如果你仍然想要在 GDScript 中使用这个类,请考虑使用 11,025 Hz 或 " +"22,050 Hz 等较低的 [member mix_rate]。" + msgid "" "The length of the buffer to generate (in seconds). Lower values result in " "less latency, but require the script to generate audio data faster, resulting " @@ -13268,7 +17358,13 @@ msgid "" "Hz (since most humans can only hear up to ~20,000 Hz, often less). If you are " "generating lower-pitched sounds such as voices, lower sample rates such as " "[code]32000[/code] or [code]22050[/code] may be usable with no loss in " -"quality." +"quality.\n" +"[b]Note:[/b] [AudioStreamGenerator] is not automatically resampling input " +"data, to produce expected result [member mix_rate_mode] should match the " +"sampling rate of input data.\n" +"[b]Note:[/b] If you are using [AudioEffectCapture] as the source of your " +"data, set [member mix_rate_mode] to [constant MIX_RATE_INPUT] or [constant " +"MIX_RATE_OUTPUT] to automatically match current [AudioServer] mixing rate." msgstr "" "使用的采样率(单位:Hz)。更高的值对 CPU 要求更高,但会带来更好的质量。\n" "在游戏中,常用的采样率有 [code]11025[/code]、[code]16000[/code]、[code]22050[/" @@ -13277,7 +17373,31 @@ msgstr "" "奎斯特–香农采样定理[/url],当超过 40000 赫兹时,人类的听觉没有质量上的差别(因" "为大多数人最多只能听到 ~20000 赫兹,往往更少)。如果你要生成语音等音高较低的声" "音,则可以使用 [code]32000[/code] 或 [code]22050[/code] 等较低的采样率,不会降" -"低质量。" +"低质量。\n" +"[b]注意:[/b][AudioStreamGenerator] 不会自动对输入数据进行重新采样,[member " +"mix_rate_mode] 与输入数据的采样率相匹配才能生成预期的结果。\n" +"[b]注意:[/b]如果使用 [AudioEffectCapture] 作为数据源,请将 [member " +"mix_rate_mode] 设置为 [constant MIX_RATE_INPUT] 或 [constant " +"MIX_RATE_OUTPUT],自动匹配当前 [AudioServer] 的混音率。" + +msgid "" +"Mixing rate mode. If set to [constant MIX_RATE_CUSTOM], [member mix_rate] is " +"used, otherwise current [AudioServer] mixing rate is used." +msgstr "" +"混音率模式。如果设为 [constant MIX_RATE_CUSTOM] 则会使用 [member mix_rate],否" +"则会使用 [AudioServer] 的混音率。" + +msgid "Current [AudioServer] output mixing rate." +msgstr "当前 [AudioServer] 的输出混音率。" + +msgid "Current [AudioServer] input mixing rate." +msgstr "当前 [AudioServer] 的输入混音率。" + +msgid "Custom mixing rate, specified by [member mix_rate]." +msgstr "自定义混音率,由 [member mix_rate] 指定。" + +msgid "Maximum value for the mixing rate mode enum." +msgstr "混音率模式枚举的最大值。" msgid "Plays back audio generated using [AudioStreamGenerator]." msgstr "播放使用 [AudioStreamGenerator] 生成的音频。" @@ -13339,6 +17459,24 @@ msgid "" "transition table." msgstr "以可交互的形式播放音乐的音频流,包含若干剪辑和一张过渡表。" +msgid "" +"This is an audio stream that can playback music interactively, combining " +"clips and a transition table. Clips must be added first, and then the " +"transition rules via the [method add_transition]. Additionally, this stream " +"exports a property parameter to control the playback via [AudioStreamPlayer], " +"[AudioStreamPlayer2D], or [AudioStreamPlayer3D].\n" +"The way this is used is by filling a number of clips, then configuring the " +"transition table. From there, clips are selected for playback and the music " +"will smoothly go from the current to the new one while using the " +"corresponding transition rule defined in the transition table." +msgstr "" +"这是一种能够以可交互的形式播放音乐的音频流,包含若干剪辑和一张过渡表。必须先添" +"加剪辑,再使用 [method add_transition] 添加过渡规则。这种音频流还导出了一个用" +"于控制 [AudioStreamPlayer]、[AudioStreamPlayer2D]、[AudioStreamPlayer3D] 播放" +"的属性参数。\n" +"用法是先填充一些剪辑,然后配置过渡表。音频流会根据过渡表选择要播放的剪辑,并根" +"据表中定义的对应过渡规则平滑地将当前音乐过渡到新的剪辑。" + msgid "" "Add a transition between two clips. Provide the indices of the source and " "destination clips, or use the [constant CLIP_ANY] constant to indicate that " @@ -13417,6 +17555,13 @@ msgid "" "add_transition])." msgstr "返回过渡的目标时间位置(见 [method add_transition])。" +msgid "" +"Returns [code]true[/code] if a given transition exists (was added via [method " +"add_transition])." +msgstr "" +"如果存在给定的过渡则返回 [code]true[/code](通过 [method add_transition] 添" +"加)。" + msgid "" "Return whether a transition uses the [i]hold previous[/i] functionality (see " "[method add_transition])." @@ -13539,6 +17684,29 @@ msgstr "音频麦克风录音演示" msgid "MP3 audio stream driver." msgstr "MP3 音频流驱动程序。" +msgid "" +"MP3 audio stream driver. See [member data] if you want to load an MP3 file at " +"run-time.\n" +"[b]Note:[/b] This class can optionally support legacy MP1 and MP2 formats, " +"provided that the engine is compiled with the " +"[code]minimp3_extra_formats=yes[/code] SCons option. These extra formats are " +"not enabled by default." +msgstr "" +"MP3 音频流驱动。如果你想要在运行时加载 MP3 文件,请参阅 [member data]。\n" +"[b]注意:[/b]如果引擎编译时使用了 SCons 选项 [code]minimp3_extra_formats=yes[/" +"code],则该类能够可选地支持历史遗留的 MP1 和 MP2 格式。默认不启用此类额外格" +"式。" + +msgid "" +"Creates a new [AudioStreamMP3] instance from the given buffer. The buffer " +"must contain MP3 data." +msgstr "从给定缓冲区新建 [AudioStreamMP3] 实例。缓冲区中必须包含 MP3 数据。" + +msgid "" +"Creates a new [AudioStreamMP3] instance from the given file path. The file " +"must be in MP3 format." +msgstr "从给定的文件路径新建 [AudioStreamMP3] 实例。文件必须为 MP3 格式。" + msgid "" "Contains the audio data in bytes.\n" "You can load a file without having to import it beforehand using the code " @@ -13610,6 +17778,19 @@ msgstr "" msgid "Runtime file loading and saving" msgstr "运行时文件加载与保存" +msgid "" +"Creates a new [AudioStreamOggVorbis] instance from the given buffer. The " +"buffer must contain Ogg Vorbis data." +msgstr "" +"从给定缓冲区新建 [AudioStreamOggVorbis] 实例。缓冲区中必须包含 Ogg Vorbis 数" +"据。" + +msgid "" +"Creates a new [AudioStreamOggVorbis] instance from the given file path. The " +"file must be in Ogg Vorbis format." +msgstr "" +"从给定的文件路径新建 [AudioStreamOggVorbis] 实例。文件必须为 Ogg Vorbis 格式。" + msgid "" "If [code]true[/code], the audio will play again from the specified [member " "loop_offset] once it is done playing. Useful for ambient sounds and " @@ -13707,6 +17888,12 @@ msgstr "" "合音频流时调用。编辑器插件可以使用该方法以“标记”音频流中的当前位置并将其显示在" "预览中。" +msgid "Returns the number of times the stream has looped." +msgstr "返回音频流已循环的次数。" + +msgid "Returns the current position in the stream, in seconds." +msgstr "返回音频流中的当前位置,单位为秒。" + msgid "" "Returns the [AudioSamplePlayback] associated with this [AudioStreamPlayback] " "for playing back the audio sample of this stream." @@ -13714,12 +17901,37 @@ msgstr "" "返回与该 [AudioStreamPlayback] 相关联的、用于播放该流的音频样本的 " "[AudioSamplePlayback],。" +msgid "Returns [code]true[/code] if the stream is playing." +msgstr "音频流正在播放时,返回 [code]true[/code]。" + +msgid "" +"Mixes up to [param frames] of audio from the stream from the current " +"position, at a rate of [param rate_scale], advancing the stream.\n" +"Returns a [PackedVector2Array] where each element holds the left and right " +"channel volume levels of each frame.\n" +"[b]Note:[/b] Can return fewer frames than requested, make sure to use the " +"size of the return value." +msgstr "" +"从当前位置开始,以 [param rate_scale] 的速率混合音频流中最多 [param frames] 帧" +"音频,并推进流的位置。\n" +"返回一个[PackedVector2Array],其中每个元素对应包含每个帧的左右声道音量。\n" +"[b]注意:[/b]可能返回少于请求的帧数,请确定使用返回值的size。" + +msgid "Seeks the stream at the given [param time], in seconds." +msgstr "跳转到音频流中给定的时间点 [param time],单位为秒。" + msgid "" "Associates [AudioSamplePlayback] to this [AudioStreamPlayback] for playing " "back the audio sample of this stream." msgstr "" "将 [AudioSamplePlayback] 与该 [AudioStreamPlayback] 关联以播放该流的音频样本。" +msgid "Starts the stream from the given [param from_pos], in seconds." +msgstr "从给定的位置 [param from_pos] 开始播放音频流,单位为秒。" + +msgid "Stops the stream." +msgstr "停止音频流。" + msgid "Playback component of [AudioStreamInteractive]." msgstr "[AudioStreamInteractive] 的播放组件。" @@ -13728,6 +17940,29 @@ msgid "" "the currently played clip." msgstr "[AudioStreamInteractive] 的播放组件。包含更改当前播放剪辑的函数。" +msgid "" +"Return the index of the currently playing clip. You can use this to get the " +"name of the currently playing clip with [method AudioStreamInteractive." +"get_clip_name].\n" +"[b]Example:[/b] Get the currently playing clip name from inside an " +"[AudioStreamPlayer] node.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var playing_clip_name = stream.get_clip_name(get_stream_playback()." +"get_current_clip_index())\n" +"[/gdscript]\n" +"[/codeblocks]" +msgstr "" +"返回当前正在播放的剪辑的索引。可以通过 [method AudioStreamInteractive." +"get_clip_name] 用该索引获取当前正在播放的剪辑的名称。\n" +"[b]示例:[/b]在 [AudioStreamPlayer] 节点中获取当前正在播放的剪辑的名称。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var playing_clip_name = stream.get_clip_name(get_stream_playback()." +"get_current_clip_index())\n" +"[/gdscript]\n" +"[/codeblocks]" + msgid "Switch to a clip (by index)." msgstr "切换到剪辑(根据索引)。" @@ -13754,6 +17989,14 @@ msgstr "" "AudioStreamPlayer2D.get_stream_playback] 或 [method AudioStreamPlayer3D." "get_stream_playback] 方法获取播放实例。" +msgid "" +"Returns [code]true[/code] if the stream associated with the given integer ID " +"is still playing. Check [method play_stream] for information on when this ID " +"becomes invalid." +msgstr "" +"如果与给定的整数 ID 所关联的音频流仍在播放,则返回 [code]true[/code]。与 ID 何" +"时失效相关的信息请查看 [method play_stream]。" + msgid "" "Play an [AudioStream] at a given offset, volume, pitch scale, playback type, " "and bus. Playback starts immediately.\n" @@ -13818,6 +18061,24 @@ msgstr "" "如果你需要在特定的位置播放音频,请改用 [AudioStreamPlayer2D] 或 " "[AudioStreamPlayer3D]。" +msgid "" +"Returns the position in the [AudioStream] of the latest sound, in seconds. " +"Returns [code]0.0[/code] if no sounds are playing.\n" +"[b]Note:[/b] The position is not always accurate, as the [AudioServer] does " +"not mix audio every processed frame. To get more accurate results, add " +"[method AudioServer.get_time_since_last_mix] to the returned position.\n" +"[b]Note:[/b] This method always returns [code]0.0[/code] if the [member " +"stream] is an [AudioStreamInteractive], since it can have multiple clips " +"playing at once." +msgstr "" +"返回最近播放的 [AudioStream] 声音中的位置,单位为秒。如果没有正在播放的声音," +"则返回 [code]0.0[/code]。\n" +"[b]注意:[/b]返回的位置不一定精准,因为 [AudioServer] 不会在每个处理的帧中混合" +"音频。要想得到更多准确的结果,请将 [method AudioServer." +"get_time_since_last_mix] 添加到返回的位置。\n" +"[b]注意:[/b]如果 [member stream] 是 [AudioStreamInteractive],则始终返回 " +"[code]0.0[/code],因为这种音频流可以同时播放多个剪辑。" + msgid "" "Returns the latest [AudioStreamPlayback] of this node, usually the most " "recently created by [method play]. If no sounds are playing, this method " @@ -13917,6 +18178,32 @@ msgstr "" "[b]注意:[/b]进入和退出场景树以及节点暂停时均会自动修改该属性(见 [member " "Node.process_mode])。" +msgid "" +"Volume of sound, in decibels. This is an offset of the [member stream]'s " +"volume.\n" +"[b]Note:[/b] To convert between decibel and linear energy (like most volume " +"sliders do), use [member volume_linear], or [method @GlobalScope." +"db_to_linear] and [method @GlobalScope.linear_to_db]." +msgstr "" +"音量,单位为分贝。这是相对于 [member stream] 音量的偏移。\n" +"[b]注意:[/b]如需在分贝和线性能量间进行转换(常见于音量滑块),请使用 [member " +"volume_linear]、[method @GlobalScope.db_to_linear] 和 [method @GlobalScope." +"linear_to_db]。" + +msgid "" +"Volume of sound, as a linear value.\n" +"[b]Note:[/b] This member modifies [member volume_db] for convenience. The " +"returned value is equivalent to the result of [method @GlobalScope." +"db_to_linear] on [member volume_db]. Setting this member is equivalent to " +"setting [member volume_db] to the result of [method @GlobalScope." +"linear_to_db] on a value." +msgstr "" +"线性形式的音量。\n" +"[b]注意:[/b]该成员会帮助修改 [member volume_db]。返回的值等价于使用 [member " +"volume_db] 调用 [method @GlobalScope.db_to_linear] 的结果。设置该成员等价于将 " +"[member volume_db] 设置为使用新值调用 [method @GlobalScope.linear_to_db] 的结" +"果。" + msgid "" "Emitted when a sound finishes playing without interruptions. This signal is " "[i]not[/i] emitted when calling [method stop], or when exiting the tree while " @@ -14054,6 +18341,23 @@ msgstr "" "如果为 [code]true[/code],则播放会暂停。你可以通过将 [member stream_paused] 设" "置为 [code]false[/code]来恢复它。" +msgid "Base volume before attenuation, in decibels." +msgstr "衰减前的基础音量,单位为分贝。" + +msgid "" +"Base volume before attenuation, as a linear value.\n" +"[b]Note:[/b] This member modifies [member volume_db] for convenience. The " +"returned value is equivalent to the result of [method @GlobalScope." +"db_to_linear] on [member volume_db]. Setting this member is equivalent to " +"setting [member volume_db] to the result of [method @GlobalScope." +"linear_to_db] on a value." +msgstr "" +"线性形式的衰减前的基础音量。\n" +"[b]注意:[/b]该成员会帮助修改 [member volume_db]。返回的值等价于使用 [member " +"volume_db] 调用 [method @GlobalScope.db_to_linear] 的结果。设置该成员等价于将 " +"[member volume_db] 设置为使用新值调用 [method @GlobalScope.linear_to_db] 的结" +"果。" + msgid "Emitted when the audio stops playing." msgstr "当音频停止播放时发出。" @@ -14201,6 +18505,20 @@ msgstr "衰减效果的系数。更高的值使声音在更远的距离可以听 msgid "The base sound level before attenuation, in decibels." msgstr "不受衰减影响的基础声级,单位为分贝。" +msgid "" +"The base sound level before attenuation, as a linear value.\n" +"[b]Note:[/b] This member modifies [member volume_db] for convenience. The " +"returned value is equivalent to the result of [method @GlobalScope." +"db_to_linear] on [member volume_db]. Setting this member is equivalent to " +"setting [member volume_db] to the result of [method @GlobalScope." +"linear_to_db] on a value." +msgstr "" +"线性形式的不受衰减影响的基础声级。\n" +"[b]注意:[/b]该成员会帮助修改 [member volume_db]。返回的值等价于使用 [member " +"volume_db] 调用 [method @GlobalScope.db_to_linear] 的结果。设置该成员等价于将 " +"[member volume_db] 设置为使用新值调用 [method @GlobalScope.linear_to_db] 的结" +"果。" + msgid "Attenuation of loudness according to linear distance." msgstr "根据距离对响度进行线性衰减。" @@ -14387,6 +18705,16 @@ msgid "" "Stream that can be fitted with sub-streams, which will be played in-sync." msgstr "能够适配子音频流的音频流,子音频流会同步播放。" +msgid "" +"This is a stream that can be fitted with sub-streams, which will be played in-" +"sync. The streams begin at exactly the same time when play is pressed, and " +"will end when the last of them ends. If one of the sub-streams loops, then " +"playback will continue." +msgstr "" +"这是一种能够适配子音频流的音频流,子音频流会同步播放。按下播放时,各条音频流会" +"同时开始播放,最后一条音频流结束播放后该音频流才会结束。如果存在循环的子音频" +"流,那么播放就会继续。" + msgid "Get one of the synchronized streams, by index." msgstr "获取同步的音频流,使用索引号指定。" @@ -14422,9 +18750,97 @@ msgstr "" "这个类还可用于存储动态生成的 PCM 音频数据。另请参阅 [AudioStreamGenerator] 以" "了解程序化音频生成。" +msgid "" +"Creates a new [AudioStreamWAV] instance from the given buffer. The buffer " +"must contain WAV data.\n" +"The keys and values of [param options] match the properties of " +"[ResourceImporterWAV]. The usage of [param options] is identical to [method " +"AudioStreamWAV.load_from_file]." +msgstr "" +"从给定缓冲区新建 [AudioStreamWAV] 实例。缓冲区中必须包含 WAV 数据。\n" +"[param options] 中的键值对与 [ResourceImporterWAV] 的属性对应。[param " +"options] 的用法与 [method AudioStreamWAV.load_from_file] 一致。" + +msgid "" +"Creates a new [AudioStreamWAV] instance from the given file path. The file " +"must be in WAV format.\n" +"The keys and values of [param options] match the properties of " +"[ResourceImporterWAV].\n" +"[b]Example:[/b] Load the first file dropped as a WAV and play it:\n" +"[codeblock]\n" +"@onready var audio_player = $AudioStreamPlayer\n" +"\n" +"func _ready():\n" +" get_window().files_dropped.connect(_on_files_dropped)\n" +"\n" +"func _on_files_dropped(files):\n" +" if files[0].get_extension() == \"wav\":\n" +" audio_player.stream = AudioStreamWAV.load_from_file(files[0], {\n" +" \"force/max_rate\": true,\n" +" \"force/max_rate_hz\": 11025\n" +" })\n" +" audio_player.play()\n" +"[/codeblock]" +msgstr "" +"从给定的文件路径新建 [AudioStreamWAV] 实例。文件必须为 WAV 格式。\n" +"[param options] 中的键值对与 [ResourceImporterWAV] 的属性对应。\n" +"[b]示例:[/b]将拖放的第一个文件作为 WAV 加载并播放:\n" +"[codeblock]\n" +"@onready var audio_player = $AudioStreamPlayer\n" +"\n" +"func _ready():\n" +" get_window().files_dropped.connect(_on_files_dropped)\n" +"\n" +"func _on_files_dropped(files):\n" +" if files[0].get_extension() == \"wav\":\n" +" audio_player.stream = AudioStreamWAV.load_from_file(files[0], {\n" +" \"force/max_rate\": true,\n" +" \"force/max_rate_hz\": 11025\n" +" })\n" +" audio_player.play()\n" +"[/codeblock]" + +msgid "" +"Saves the AudioStreamWAV as a WAV file to [param path]. Samples with IMA " +"ADPCM or Quite OK Audio formats can't be saved.\n" +"[b]Note:[/b] A [code].wav[/code] extension is automatically appended to " +"[param path] if it is missing." +msgstr "" +"将 AudioStreamWAV 作为 WAV 文件保存到 [param path]。无法保存 IMA ADPCM 或 " +"Quite OK Audio 格式的样本。\n" +"[b]注意:[/b]如果缺少 [code].wav[/code] 扩展名,则会自动将其追加到 [param " +"path]。" + +msgid "" +"Contains the audio data in bytes.\n" +"[b]Note:[/b] If [member format] is set to [constant FORMAT_8_BITS], this " +"property expects signed 8-bit PCM data. To convert from unsigned 8-bit PCM, " +"subtract 128 from each byte.\n" +"[b]Note:[/b] If [member format] is set to [constant FORMAT_QOA], this " +"property expects data from a full QOA file." +msgstr "" +"包含音频的字节数据。\n" +"[b]注意:[/b]如果 [member format] 为 [constant FORMAT_8_BITS],该属性应为带符" +"号 8 位 PCM 数据。从无符号 8 位 PCM 数据转换时,请将每个字节减去 128。\n" +"[b]注意:[/b]如果 [member format] 为 [constant FORMAT_QOA],该属性应为完整 " +"QOA 文件的数据。" + msgid "Audio format. See [enum Format] constants for values." msgstr "音频格式。取值见 [enum Format] 常量。" +msgid "" +"The loop start point (in number of samples, relative to the beginning of the " +"stream)." +msgstr "循环起始点(单位为采样数,相对于该流开头)。" + +msgid "" +"The loop end point (in number of samples, relative to the beginning of the " +"stream)." +msgstr "循环结束点(单位为采样数,相对于该流开头)。" + +msgid "The loop mode. See [enum LoopMode] constants for values." +msgstr "循环模式。取值见 [enum LoopMode] 常量。" + msgid "" "The sample rate for mixing this audio. Higher values require more storage " "space, but result in better quality.\n" @@ -14451,6 +18867,21 @@ msgstr "" msgid "If [code]true[/code], audio is stereo." msgstr "如果为 [code]true[/code],则音频为立体声。" +msgid "8-bit PCM audio codec." +msgstr "8 位 PCM 音频编解码器。" + +msgid "16-bit PCM audio codec." +msgstr "16 位 PCM 音频编解码器。" + +msgid "Audio is lossily compressed as IMA ADPCM." +msgstr "音频按照 IMA ADPCM 进行有损压缩。" + +msgid "" +"Audio is lossily compressed as [url=https://qoaformat.org/]Quite OK Audio[/" +"url]." +msgstr "" +"音频按照 [url=https://qoaformat.org/]Quite OK Audio[/url] 进行有损压缩。" + msgid "Audio does not loop." msgstr "音频不循环。" @@ -14497,6 +18928,9 @@ msgstr "" "将 [Control] 派生节点添加为 [BackBufferCopy] 节点的[i]同级[/i]节点,而不是将它" "们添加为子节点。" +msgid "Screen-reading shaders" +msgstr "读屏着色器" + msgid "Buffer mode. See [enum CopyMode] constants." msgstr "缓冲区模式。见 [enum CopyMode] 常量。" @@ -14588,6 +19022,20 @@ msgstr "" "要同时允许左键单击和右键单击,请使用 [code]MOUSE_BUTTON_MASK_LEFT | " "MOUSE_BUTTON_MASK_RIGHT[/code]。" +msgid "" +"If [code]true[/code], the button's state is pressed. Means the button is " +"pressed down or toggled (if [member toggle_mode] is active). Only works if " +"[member toggle_mode] is [code]true[/code].\n" +"[b]Note:[/b] Changing the value of [member button_pressed] will result in " +"[signal toggled] to be emitted. If you want to change the pressed state " +"without emitting that signal, use [method set_pressed_no_signal]." +msgstr "" +"如果为 [code]true[/code],则该按钮的状态为被按下。表示按钮被按下或被切换(如" +"果 [member toggle_mode] 处于活动状态)。仅当 [member toggle_mode] 为 " +"[code]true[/code] 时才有效。\n" +"[b]注意:[/b]修改 [member button_pressed] 会发出 [signal toggled] 信号。如果想" +"在不发出该信号的情况下更改按下状态,请使用 [method set_pressed_no_signal]。" + msgid "" "If [code]true[/code], the button is in disabled state and can't be clicked or " "toggled." @@ -14618,6 +19066,16 @@ msgstr "" "果为 [code]false[/code] 且 [member toggle_mode] 为 [code]false[/code],则该快" "捷方式将在没有任何视觉反馈的情况下激活。" +msgid "" +"If [code]true[/code], the button will add information about its shortcut in " +"the tooltip.\n" +"[b]Note:[/b] This property does nothing when the tooltip control is " +"customized using [method Control._make_custom_tooltip]." +msgstr "" +"如果为 [code]true[/code],该按钮将在工具提示中加入快捷键信息。\n" +"[b]注意:[/b]使用 [method Control._make_custom_tooltip] 方法自定义工具提示控件" +"时,该属性无效。" + msgid "" "If [code]true[/code], the button is in toggle mode. Makes the button flip " "state between pressed and unpressed each time its area is clicked." @@ -14812,6 +19270,24 @@ msgstr "" "各向异性效果的强度。如果 [member anisotropy_flowmap] 是一张带有 Alpha 通道的纹" "理,那么这个值会与其 Alpha 通道相乘。" +msgid "" +"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of " +"the specular blob and aligns it to tangent space. This is useful for brushed " +"aluminum and hair reflections.\n" +"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh " +"does not contain tangents, the anisotropy effect will appear broken.\n" +"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic " +"texture filtering, which can be enabled by setting [member texture_filter] to " +"[constant TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC]." +msgstr "" +"如果为 [code]true[/code],则启用各向异性。各向异性会改变镜面反射斑点的形状并将" +"其与切线空间对齐。可用于拉丝铝材和毛发反射。\n" +"[b]注意:[/b]各向异性需要网格切线才能正常工作。如果网格中不包含切线,则各向异" +"性效果会显得破碎。\n" +"[b]注意:[/b]材质的各向异性不应与各向异性纹理过滤相混淆,后者可以通过将 " +"[member texture_filter] 设置为 [constant " +"TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC] 来启用。" + msgid "" "Texture that offsets the tangent map for anisotropy calculations and " "optionally controls the anisotropy effect (if an alpha channel is present). " @@ -14900,6 +19376,18 @@ msgstr "" "丢失缩放。仅在 [member billboard_mode] 不为 [constant BILLBOARD_DISABLED] 时适" "用。" +msgid "" +"Controls how the object faces the camera. See [enum BillboardMode].\n" +"[b]Note:[/b] Billboard mode is not suitable for VR because the left-right " +"vector of the camera is not horizontal when the screen is attached to your " +"head instead of on the table. See [url=https://github.com/godotengine/godot/" +"issues/41567]GitHub issue #41567[/url] for details." +msgstr "" +"控制该对象如何面对相机。见 [enum BillboardMode]。\n" +"[b]注意:[/b]公告板模式不适合 VR,因为当屏幕贴在你的头上而不是在桌子上时,相机" +"的左右向量不是水平的。详见 [url=https://github.com/godotengine/godot/" +"issues/41567]GitHub issue #41567[/url]。" + msgid "" "The material's blend mode.\n" "[b]Note:[/b] Values other than [code]Mix[/code] force the object into the " @@ -15113,25 +19601,6 @@ msgid "" "distance." msgstr "如果为 [code]true[/code],则无论距离远近,对象都以相同的大小渲染。" -msgid "" -"If [code]true[/code], enables the vertex grow setting. This can be used to " -"create mesh-based outlines using a second material pass and its [member " -"cull_mode] set to [constant CULL_FRONT]. See also [member grow_amount].\n" -"[b]Note:[/b] Vertex growth cannot create new vertices, which means that " -"visible gaps may occur in sharp corners. This can be alleviated by designing " -"the mesh to use smooth normals exclusively using [url=https://wiki.polycount." -"com/wiki/Face_weighted_normals]face weighted normals[/url] in the 3D " -"authoring software. In this case, grow will be able to join every outline " -"together, just like in the original mesh." -msgstr "" -"如果为 [code]true[/code],则启用顶点增长设置。可用于创建基于网格的轮廓,请在第" -"二个材质阶段中使用,并将 [member cull_mode] 设置为 [constant CULL_FRONT]。另" -"见 [member grow_amount]。\n" -"[b]注意:[/b]顶点增长无法新建顶点,这意味着锐角可能会造成可见的缺口。缓解方法" -"是在设计网格时就只用平滑的法线,在 3D 创作软件中使用 [url=https://wiki." -"polycount.com/wiki/Face_weighted_normals]面加权法线[/url]。这样增长就能够将所" -"有轮廓连接到一起,和原始网格一致。" - msgid "" "Grows object vertices in the direction of their normals. Only effective if " "[member grow] is [code]true[/code]." @@ -15429,6 +19898,18 @@ msgstr "" "如果为 [code]true[/code],则启用接近淡出效果。邻近淡出效果会根据每个像素与另一" "个对象的距离淡出。" +msgid "" +"If [code]true[/code], the refraction effect is enabled. Distorts transparency " +"based on light from behind the object.\n" +"[b]Note:[/b] Refraction is implemented using the screen texture. Only opaque " +"materials will appear in the refraction, since transparent materials do not " +"appear in the screen texture." +msgstr "" +"如果为 [code]true[/code],则启用折射效果,会根据后方物体的光照产生扭曲的透明效" +"果。\n" +"[b]注意:[/b]折射是通过屏幕纹理实现的,折射中只会出现非透明材质,因为透明材质" +"不会在屏幕纹理中出现。" + msgid "The strength of the refraction effect." msgstr "折射效果的强度。" @@ -15499,6 +19980,16 @@ msgstr "" "单个纹理中时,这很有用。例如,如果在红色通道中存储金属度,在蓝色通道中存储粗糙" "度,在绿色通道中存储环境遮挡,则可以减少使用的纹理数量。" +msgid "" +"Sets whether the shading takes place, per-pixel, per-vertex or unshaded. Per-" +"vertex lighting is faster, making it the best choice for mobile applications, " +"however it looks considerably worse than per-pixel. Unshaded rendering is the " +"fastest, but disables all interactions with lights." +msgstr "" +"设置是否发生着色,逐像素、逐顶点或无阴影。逐顶点时照明速度更快,使其成为移动应" +"用程序的最佳选择,但它看起来比逐像素时差很多。无阴影渲染是最快的,但会禁用与灯" +"光的所有交互。" + msgid "" "If [code]true[/code], enables the \"shadow to opacity\" render mode where " "lighting modifies the alpha so shadowed areas are opaque and non-shadowed " @@ -15953,6 +20444,12 @@ msgid "" "The object will be shaded per pixel. Useful for realistic shading effects." msgstr "对象将逐像素进行着色。对于逼真的阴影效果很有用。" +msgid "" +"The object will be shaded per vertex. Useful when you want cheaper shaders " +"and do not care about visual quality." +msgstr "" +"对象将逐顶点进行着色。适用于想要更便宜的着色器并且不关心视觉质量的场合。" + msgid "Represents the size of the [enum ShadingMode] enum." msgstr "代表 [enum ShadingMode] 枚举的大小。" @@ -16305,6 +20802,65 @@ msgstr "" msgid "A 3×3 matrix for representing 3D rotation and scale." msgstr "用于表示 3D 旋转和缩放的 3×3 矩阵。" +msgid "" +"The [Basis] built-in [Variant] type is a 3×3 [url=https://en.wikipedia.org/" +"wiki/Matrix_(mathematics)]matrix[/url] used to represent 3D rotation, scale, " +"and shear. It is frequently used within a [Transform3D].\n" +"A [Basis] is composed by 3 axis vectors, each representing a column of the " +"matrix: [member x], [member y], and [member z]. The length of each axis " +"([method Vector3.length]) influences the basis's scale, while the direction " +"of all axes influence the rotation. Usually, these axes are perpendicular to " +"one another. However, when you rotate any axis individually, the basis " +"becomes sheared. Applying a sheared basis to a 3D model will make the model " +"appear distorted.\n" +"A [Basis] is:\n" +"- [b]Orthogonal[/b] if its axes are perpendicular to each other.\n" +"- [b]Normalized[/b] if the length of every axis is [code]1.0[/code].\n" +"- [b]Uniform[/b] if all axes share the same length (see [method get_scale]).\n" +"- [b]Orthonormal[/b] if it is both orthogonal and normalized, which allows it " +"to only represent rotations (see [method orthonormalized]).\n" +"- [b]Conformal[/b] if it is both orthogonal and uniform, which ensures it is " +"not distorted.\n" +"For a general introduction, see the [url=$DOCS_URL/tutorials/math/" +"matrices_and_transforms.html]Matrices and transforms[/url] tutorial.\n" +"[b]Note:[/b] Godot uses a [url=https://en.wikipedia.org/wiki/Right-" +"hand_rule]right-handed coordinate system[/url], which is a common standard. " +"For directions, the convention for built-in types like [Camera3D] is for -Z " +"to point forward (+X is right, +Y is up, and +Z is back). Other objects may " +"use different direction conventions. For more information, see the " +"[url=$DOCS_URL/tutorials/assets_pipeline/importing_3d_scenes/" +"model_export_considerations.html#d-asset-direction-conventions]3D asset " +"direction conventions[/url] tutorial.\n" +"[b]Note:[/b] The basis matrices are exposed as [url=https://www.mindcontrol." +"org/~hplus/graphics/matrix-layout.html]column-major[/url] order, which is the " +"same as OpenGL. However, they are stored internally in row-major order, which " +"is the same as DirectX." +msgstr "" +"[Basis] 内置 [Variant] 类型是一种 3×3 [url=https://zh.wikipedia.org/zh-cn/" +"%E7%9F%A9%E9%98%B5]矩阵[/url],用于表示 3D 旋转、缩放和倾斜。常用于 " +"[Transform3D]。\n" +"[Basis] 由 3 个轴向量组成,每个轴向量代表矩阵的一列:[member x]、[member y] " +"和 [member z]。每个轴的长度([method Vector3.length])都会影响该基的缩放,而所" +"有轴的方向将影响旋转。通常,这些轴彼此垂直。但是,当你单独旋转任意轴时,该基会" +"产生倾斜。对 3D 模型应用倾斜后的基会使模型发生变形。\n" +"特殊形式的 [Basis] 有:\n" +"- [b]正交[/b]:轴相互垂直。\n" +"- [b]归一化[/b]:轴的长度都是 [code]1.0[/code]。\n" +"- [b]均匀[/b]:轴的长度相等(见 [method get_scale])。\n" +"- [b]正交归一[/b]:既正交又归一化,只能表示旋转。\n" +"- [b]共形[/b]:既正交又均匀,保证不扭曲。\n" +"通用介绍见教程[url=$DOCS_URL/tutorials/math/matrices_and_transforms.html]《矩" +"阵与变换》[/url]。\n" +"[b]注意:[/b]Godot 使用[url=https://zh.wikipedia.org/zh-cn/" +"%E5%8F%B3%E6%89%8B%E5%AE%9A%E5%89%87]右手坐标系[/url],这是一种普遍标准。方向" +"方面,[Camera3D] 等内置类型的约定是 -Z 指向前方(+X 为右、+Y 为上、+Z 为后)。" +"其他对象可能使用不同的方向约定。更多信息见教程[url=$DOCS_URL/tutorials/" +"assets_pipeline/importing_3d_scenes/model_export_considerations.html#d-asset-" +"direction-conventions]《3D 资产方向惯例》[/url] 。\n" +"[b]注意:[/b]基矩阵按[url=https://www.mindcontrol.org/~hplus/graphics/matrix-" +"layout.html]列为主[/url]的顺序公开,这与 OpenGL 一致。但是内部使用行为主的顺序" +"存储,这与 DirectX 一致。" + msgid "Matrices and transforms" msgstr "矩阵与变换" @@ -16317,6 +20873,14 @@ msgstr "矩阵变换演示" msgid "2.5D Game Demo" msgstr "2.5D 游戏演示" +msgid "" +"Constructs a [Basis] identical to [constant IDENTITY].\n" +"[b]Note:[/b] In C#, this constructs a [Basis] with all of its components set " +"to [constant Vector3.ZERO]." +msgstr "" +"构造与 [constant IDENTITY] 相同的 [Basis]。\n" +"[b]注意:[/b]在 C# 中构造的 [Basis] 的所有分量都为 [constant Vector3.ZERO]。" + msgid "Constructs a [Basis] as a copy of the given [Basis]." msgstr "构造给定 [Basis] 的副本。" @@ -16348,6 +20912,231 @@ msgid "" "matrix." msgstr "根据 3 个轴向量构造 [Basis]。这些是基矩阵的列向量。" +msgid "" +"Returns the [url=https://en.wikipedia.org/wiki/Determinant]determinant[/url] " +"of this basis's matrix. For advanced math, this number can be used to " +"determine a few attributes:\n" +"- If the determinant is exactly [code]0.0[/code], the basis is not invertible " +"(see [method inverse]).\n" +"- If the determinant is a negative number, the basis represents a negative " +"scale.\n" +"[b]Note:[/b] If the basis's scale is the same for every axis, its determinant " +"is always that scale by the power of 2." +msgstr "" +"返回基矩阵的[url=https://zh.wikipedia.org/wiki/%E8%A1%8C%E5%88%97%E5%BC%8F]行" +"列式[/url]。在高等数学中,这个数可以用来确定一些性质:\n" +"- 如果行列式为 [code]0.0[/code],则基不可逆(见 [method inverse])。\n" +"- 如果行列式为负数,则基表示负缩放。\n" +"[b]注意:[/b]如果基的每个轴缩放都相同,那么这个行列式始终为 2 的该缩放次幂。" + +msgid "" +"Constructs a new [Basis] that only represents rotation from the given " +"[Vector3] of [url=https://en.wikipedia.org/wiki/Euler_angles]Euler angles[/" +"url], in radians.\n" +"- The [member Vector3.x] should contain the angle around the [member x] axis " +"(pitch);\n" +"- The [member Vector3.y] should contain the angle around the [member y] axis " +"(yaw);\n" +"- The [member Vector3.z] should contain the angle around the [member z] axis " +"(roll).\n" +"[codeblocks]\n" +"[gdscript]\n" +"# Creates a Basis whose z axis points down.\n" +"var my_basis = Basis.from_euler(Vector3(TAU / 4, 0, 0))\n" +"\n" +"print(my_basis.z) # Prints (0.0, -1.0, 0.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"// Creates a Basis whose z axis points down.\n" +"var myBasis = Basis.FromEuler(new Vector3(Mathf.Tau / 4.0f, 0.0f, 0.0f));\n" +"\n" +"GD.Print(myBasis.Z); // Prints (0, -1, 0)\n" +"[/csharp]\n" +"[/codeblocks]\n" +"The order of each consecutive rotation can be changed with [param order] (see " +"[enum EulerOrder] constants). By default, the YXZ convention is used " +"([constant EULER_ORDER_YXZ]): the basis rotates first around the Y axis " +"(yaw), then X (pitch), and lastly Z (roll). When using the opposite method " +"[method get_euler], this order is reversed." +msgstr "" +"根据给定的 [Vector3] 构造 [Basis],这个向量为 [url=https://zh.wikipedia.org/" +"zh-cn/%E6%AC%A7%E6%8B%89%E8%A7%92]欧拉角[/url],单位为弧度。\n" +"- [member Vector3.x] 应包含围绕 [member x] 轴的角度(俯仰);\n" +"- [member Vector3.y] 应包含围绕 [member y] 轴的角度(偏摆);\n" +"- [member Vector3.z] 应包含围绕 [member z] 轴的角度(翻滚)。\n" +"[codeblocks]\n" +"[gdscript]\n" +"# 创建 Z 轴向下的 Basis。\n" +"var my_basis = Basis.from_euler(Vector3(TAU / 4, 0, 0))\n" +"\n" +"print(my_basis.z) # 输出 (0.0, -1.0, 0.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"// 创建 Z 轴向下的 Basis。\n" +"var myBasis = Basis.FromEuler(new Vector3(Mathf.Tau / 4.0f, 0.0f, 0.0f));\n" +"\n" +"GD.Print(myBasis.Z); // 输出 (0.0, -1.0, 0.0)\n" +"[/csharp]\n" +"[/codeblocks]\n" +"连续旋转的顺序可以通过 [param order] 修改(见 [enum EulerOrder] 常量)。默认使" +"用 YXZ 约定([constant EULER_ORDER_YXZ]):基首先围绕 Y 轴旋转(偏摆),然后围" +"绕 X 轴旋转(俯仰),最后围绕 Z 轴旋转(翻滚)。这个顺序在相对的函数 [method " +"get_euler] 中是相反的。" + +msgid "" +"Constructs a new [Basis] that only represents scale, with no rotation or " +"shear, from the given [param scale] vector.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var my_basis = Basis.from_scale(Vector3(2, 4, 8))\n" +"\n" +"print(my_basis.x) # Prints (2.0, 0.0, 0.0)\n" +"print(my_basis.y) # Prints (0.0, 4.0, 0.0)\n" +"print(my_basis.z) # Prints (0.0, 0.0, 8.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"var myBasis = Basis.FromScale(new Vector3(2.0f, 4.0f, 8.0f));\n" +"\n" +"GD.Print(myBasis.X); // Prints (2, 0, 0)\n" +"GD.Print(myBasis.Y); // Prints (0, 4, 0)\n" +"GD.Print(myBasis.Z); // Prints (0, 0, 8)\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] In linear algebra, the matrix of this basis is also known as a " +"[url=https://en.wikipedia.org/wiki/Diagonal_matrix]diagonal matrix[/url]." +msgstr "" +"根据给定的 [param scale] 向量构造仅表示缩放的 [Basis],不包含旋转和倾斜。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var my_basis = Basis.from_scale(Vector3(2, 4, 8))\n" +"\n" +"print(my_basis.x) # 输出 (2.0, 0.0, 0.0)\n" +"print(my_basis.y) # 输出 (0.0, 4.0, 0.0)\n" +"print(my_basis.z) # 输出 (0.0, 0.0, 8.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"var myBasis = Basis.FromScale(new Vector3(2.0f, 4.0f, 8.0f));\n" +"\n" +"GD.Print(myBasis.X); // 输出 (2.0, 0.0, 0.0)\n" +"GD.Print(myBasis.Y); // 输出 (0.0, 4.0, 0.0)\n" +"GD.Print(myBasis.Z); // 输出 (0.0, 0.0, 8.0)\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b]在线性代数中,这种基矩阵也被称作[url=https://zh.wikipedia.org/zh-" +"cn/%E5%B0%8D%E8%A7%92%E7%9F%A9%E9%99%A3]对角矩阵[/url]。" + +msgid "" +"Returns this basis's rotation as a [Vector3] of [url=https://en.wikipedia.org/" +"wiki/Euler_angles]Euler angles[/url], in radians. For the returned value:\n" +"- The [member Vector3.x] contains the angle around the [member x] axis " +"(pitch);\n" +"- The [member Vector3.y] contains the angle around the [member y] axis " +"(yaw);\n" +"- The [member Vector3.z] contains the angle around the [member z] axis " +"(roll).\n" +"The order of each consecutive rotation can be changed with [param order] (see " +"[enum EulerOrder] constants). By default, the YXZ convention is used " +"([constant EULER_ORDER_YXZ]): Z (roll) is calculated first, then X (pitch), " +"and lastly Y (yaw). When using the opposite method [method from_euler], this " +"order is reversed.\n" +"[b]Note:[/b] For this method to return correctly, the basis needs to be " +"[i]orthonormal[/i] (see [method orthonormalized]).\n" +"[b]Note:[/b] Euler angles are much more intuitive but are not suitable for 3D " +"math. Because of this, consider using the [method get_rotation_quaternion] " +"method instead, which returns a [Quaternion].\n" +"[b]Note:[/b] In the Inspector dock, a basis's rotation is often displayed in " +"Euler angles (in degrees), as is the case with the [member Node3D.rotation] " +"property." +msgstr "" +"以 [Vector3] 的形式返回基的旋转向量,这个向量为 [url=https://zh.wikipedia.org/" +"zh-cn/%E6%AC%A7%E6%8B%89%E8%A7%92]欧拉角[/url],单位为弧度。返回值中:\n" +"- [member Vector3.x] 包含围绕 [member x] 轴的角度(俯仰)。\n" +"- [member Vector3.y] 包含围绕 [member y] 轴的角度(偏摆)。\n" +"- [member Vector3.z] 包含围绕 [member z] 轴的角度(翻滚)。\n" +"连续旋转的顺序可以通过 [param order] 修改(见 [enum EulerOrder] 常量)。默认使" +"用 YXZ 约定([constant EULER_ORDER_YXZ]):首先计算围绕 Z 轴的旋转(翻滚),然" +"后计算围绕 X 轴的旋转(俯仰),最后计算围绕 Y 轴旋转(偏摆)。这个顺序在相对的" +"函数 [method from_euler] 中是相反的。\n" +"[b]注意:[/b]该方法只对[i]标准正交基[/i]返回正确的值(见 [method " +"orthonormalized])。\n" +"[b]注意:[/b]欧拉角更符合直觉,但是并不适合 3D 数学。因此请考虑改用返回 " +"[Quaternion] 的 [method get_rotation_quaternion]。\n" +"[b]注意:[/b]在检查器面板中,基的旋转通常是以欧拉角的形式显示的(单位为度)," +"与 [member Node3D.rotation] 属性相同。" + +msgid "" +"Returns this basis's rotation as a [Quaternion].\n" +"[b]Note:[/b] Quaternions are much more suitable for 3D math but are less " +"intuitive. For user interfaces, consider using the [method get_euler] method, " +"which returns Euler angles." +msgstr "" +"以 [Quaternion] 的形式返回基的旋转。\n" +"[b]注意:[/b]四元数更适合 3D 数学,但是并不那么符合直觉。用户界面相关的场合请" +"考虑使用返回欧拉角的 [method get_euler] 方法。" + +msgid "" +"Returns the length of each axis of this basis, as a [Vector3]. If the basis " +"is not sheared, this value is the scaling factor. It is not affected by " +"rotation.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var my_basis = Basis(\n" +" Vector3(2, 0, 0),\n" +" Vector3(0, 4, 0),\n" +" Vector3(0, 0, 8)\n" +")\n" +"# Rotating the Basis in any way preserves its scale.\n" +"my_basis = my_basis.rotated(Vector3.UP, TAU / 2)\n" +"my_basis = my_basis.rotated(Vector3.RIGHT, TAU / 4)\n" +"\n" +"print(my_basis.get_scale()) # Prints (2.0, 4.0, 8.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"var myBasis = new Basis(\n" +" Vector3(2.0f, 0.0f, 0.0f),\n" +" Vector3(0.0f, 4.0f, 0.0f),\n" +" Vector3(0.0f, 0.0f, 8.0f)\n" +");\n" +"// Rotating the Basis in any way preserves its scale.\n" +"myBasis = myBasis.Rotated(Vector3.Up, Mathf.Tau / 2.0f);\n" +"myBasis = myBasis.Rotated(Vector3.Right, Mathf.Tau / 4.0f);\n" +"\n" +"GD.Print(myBasis.Scale); // Prints (2, 4, 8)\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] If the value returned by [method determinant] is negative, the " +"scale is also negative." +msgstr "" +"返回该基的每个轴的长度,形式为 [Vector3]。如果该基未经倾斜,该值就是缩放系数。" +"它不受旋转的影响。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var my_basis = Basis(\n" +" Vector3(2, 0, 0),\n" +" Vector3(0, 4, 0),\n" +" Vector3(0, 0, 8)\n" +")\n" +"# 以任何方式旋转基都会保持其缩放。\n" +"my_basis = my_basis.rotated(Vector3.UP, TAU / 2)\n" +"my_basis = my_basis.rotated(Vector3.RIGHT, TAU / 4)\n" +"\n" +"print(my_basis.get_scale()) # 输出 (2.0, 4.0, 8.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"var myBasis = new Basis(\n" +" Vector3(2.0f, 0.0f, 0.0f),\n" +" Vector3(0.0f, 4.0f, 0.0f),\n" +" Vector3(0.0f, 0.0f, 8.0f)\n" +");\n" +"// 以任何方式旋转基都会保持其缩放。\n" +"myBasis = myBasis.Rotated(Vector3.Up, Mathf.Tau / 2.0f);\n" +"myBasis = myBasis.Rotated(Vector3.Right, Mathf.Tau / 4.0f);\n" +"\n" +"GD.Print(myBasis.Scale); // 输出 (2.0, 4.0, 8.0)\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b]如果 [method determinant] 返回的值为负数,则缩放也为负数。" + msgid "" "Returns the [url=https://en.wikipedia.org/wiki/Invertible_matrix]inverse of " "this basis's matrix[/url]." @@ -16379,6 +21168,225 @@ msgstr "" "如果该基是有限的,则返回 [code]true[/code],判断方法是在每个向量分量上调用 " "[method @GlobalScope.is_finite]。" +msgid "" +"Creates a new [Basis] with a rotation such that the forward axis (-Z) points " +"towards the [param target] position.\n" +"By default, the -Z axis (camera forward) is treated as forward (implies +X is " +"right). If [param use_model_front] is [code]true[/code], the +Z axis (asset " +"front) is treated as forward (implies +X is left) and points toward the " +"[param target] position.\n" +"The up axis (+Y) points as close to the [param up] vector as possible while " +"staying perpendicular to the forward axis. The returned basis is " +"orthonormalized (see [method orthonormalized]).\n" +"The [param target] and the [param up] cannot be [constant Vector3.ZERO], and " +"shouldn't be colinear to avoid unintended rotation around local Z axis." +msgstr "" +"创建一个带有旋转的新 [Basis],使向前轴(-Z)指向 [param target] 的位置。\n" +"默认情况下,-Z 轴(相机向前)被视为向前(意味着 +X 位于右侧)。如果 [param " +"use_model_front] 为 [code]true[/code],则 +Z 轴(资产正面)被视为向前(意味着 " +"+X 位于左侧)并指向 [param target] 的位置。\n" +"向上轴(+Y)尽可能靠近 [param up] 向量,同时保持垂直于向前轴。返回的基是正交归" +"一化的(见 [method orthonormalized])。\n" +"[param target] 和 [param up] 向量不能是 [constant Vector3.ZERO],两者也不能共" +"线,这样可以避免围绕局部 Z 轴发生预料之外的旋转。" + +msgid "" +"Returns the orthonormalized version of this basis. An orthonormal basis is " +"both [i]orthogonal[/i] (the axes are perpendicular to each other) and " +"[i]normalized[/i] (the axes have a length of [code]1.0[/code]), which also " +"means it can only represent a rotation.\n" +"It is often useful to call this method to avoid rounding errors on a rotating " +"basis:\n" +"[codeblocks]\n" +"[gdscript]\n" +"# Rotate this Node3D every frame.\n" +"func _process(delta):\n" +" basis = basis.rotated(Vector3.UP, TAU * delta)\n" +" basis = basis.rotated(Vector3.RIGHT, TAU * delta)\n" +"\n" +" basis = basis.orthonormalized()\n" +"[/gdscript]\n" +"[csharp]\n" +"// Rotate this Node3D every frame.\n" +"public override void _Process(double delta)\n" +"{\n" +" Basis = Basis.Rotated(Vector3.Up, Mathf.Tau * (float)delta)\n" +" .Rotated(Vector3.Right, Mathf.Tau * (float)delta)\n" +" .Orthonormalized();\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"返回该基的正交归一化版本。正交归一化基既是[i]正交的[/i](轴彼此垂直)又是[i]归" +"一化的[/i](轴长度为 [code]1.0[/code]),这也意味着它只能代表旋转。\n" +"调用该方法通常很有用,以避免旋转基上的舍入错误:\n" +"[codeblocks]\n" +"[gdscript]\n" +"# 每帧旋转该 Node3D。\n" +"func _process(delta):\n" +" basis = basis.rotated(Vector3.UP, TAU * delta)\n" +" basis = basis.rotated(Vector3.RIGHT, TAU * delta)\n" +"\n" +" basis = basis.orthonormalized()\n" +"[/gdscript]\n" +"[csharp]\n" +"// 每帧旋转该 Node3D。\n" +"public override void _Process(double delta)\n" +"{\n" +" Basis = Basis.Rotated(Vector3.Up, Mathf.Tau * (float)delta)\n" +" .Rotated(Vector3.Right, Mathf.Tau * (float)delta)\n" +" .Orthonormalized();\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" + +msgid "" +"Returns a copy of this basis rotated around the given [param axis] by the " +"given [param angle] (in radians).\n" +"The [param axis] must be a normalized vector (see [method Vector3." +"normalized]). If [param angle] is positive, the basis is rotated counter-" +"clockwise around the axis.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var my_basis = Basis.IDENTITY\n" +"var angle = TAU / 2\n" +"\n" +"my_basis = my_basis.rotated(Vector3.UP, angle) # Rotate around the up axis " +"(yaw).\n" +"my_basis = my_basis.rotated(Vector3.RIGHT, angle) # Rotate around the right " +"axis (pitch).\n" +"my_basis = my_basis.rotated(Vector3.BACK, angle) # Rotate around the back " +"axis (roll).\n" +"[/gdscript]\n" +"[csharp]\n" +"var myBasis = Basis.Identity;\n" +"var angle = Mathf.Tau / 2.0f;\n" +"\n" +"myBasis = myBasis.Rotated(Vector3.Up, angle); // Rotate around the up axis " +"(yaw).\n" +"myBasis = myBasis.Rotated(Vector3.Right, angle); // Rotate around the right " +"axis (pitch).\n" +"myBasis = myBasis.Rotated(Vector3.Back, angle); // Rotate around the back " +"axis (roll).\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"返回该基的副本,围绕给定轴 [param axis] 进行了旋转,旋转角度为 [param angle]" +"(单位为弧度)。\n" +"[param axis] 必须是归一化的向量(见 [method Vector3.normalized])。如果 " +"[param angle] 为正值,则基围绕转轴进行逆时针旋转。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var my_basis = Basis.IDENTITY\n" +"var angle = TAU / 2\n" +"\n" +"my_basis = my_basis.rotated(Vector3.UP, angle) # 绕向上轴旋转(偏航)。\n" +"my_basis = my_basis.rotated(Vector3.RIGHT, angle) # 绕向右轴旋转(俯仰)。\n" +"my_basis = my_basis.rotated(Vector3.BACK, angle) # 绕向后轴旋转(滚动)。\n" +"[/gdscript]\n" +"[csharp]\n" +"var myBasis = Basis.Identity;\n" +"var angle = Mathf.Tau / 2.0f;\n" +"\n" +"myBasis = myBasis.Rotated(Vector3.Up, angle); // 绕向上轴旋转(偏航)。\n" +"myBasis = myBasis.Rotated(Vector3.Right, angle); // 绕向右轴旋转(俯仰)。\n" +"myBasis = myBasis.Rotated(Vector3.Back, angle); // 绕向后轴旋转(滚动)。\n" +"[/csharp]\n" +"[/codeblocks]" + +msgid "" +"Returns this basis with each axis's components scaled by the given [param " +"scale]'s components.\n" +"The basis matrix's rows are multiplied by [param scale]'s components. This " +"operation is a global scale (relative to the parent).\n" +"[codeblocks]\n" +"[gdscript]\n" +"var my_basis = Basis(\n" +" Vector3(1, 1, 1),\n" +" Vector3(2, 2, 2),\n" +" Vector3(3, 3, 3)\n" +")\n" +"my_basis = my_basis.scaled(Vector3(0, 2, -2))\n" +"\n" +"print(my_basis.x) # Prints (0.0, 2.0, -2.0)\n" +"print(my_basis.y) # Prints (0.0, 4.0, -4.0)\n" +"print(my_basis.z) # Prints (0.0, 6.0, -6.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"var myBasis = new Basis(\n" +" new Vector3(1.0f, 1.0f, 1.0f),\n" +" new Vector3(2.0f, 2.0f, 2.0f),\n" +" new Vector3(3.0f, 3.0f, 3.0f)\n" +");\n" +"myBasis = myBasis.Scaled(new Vector3(0.0f, 2.0f, -2.0f));\n" +"\n" +"GD.Print(myBasis.X); // Prints (0, 2, -2)\n" +"GD.Print(myBasis.Y); // Prints (0, 4, -4)\n" +"GD.Print(myBasis.Z); // Prints (0, 6, -6)\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"返回该基,其中每个轴的分量都按给定的 [param scale] 的分量缩放。\n" +"该基矩阵的行乘以 [param scale] 的分量。该操作是全局缩放(相对于父级)。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var my_basis = Basis(\n" +" Vector3(1, 1, 1),\n" +" Vector3(2, 2, 2),\n" +" Vector3(3, 3, 3)\n" +")\n" +"my_basis = my_basis.scaled(Vector3(0, 2, -2))\n" +"\n" +"print(my_basis.x) # 输出 (0.0, 2.0, -2.0)\n" +"print(my_basis.y) # 输出 (0.0, 4.0, -4.0)\n" +"print(my_basis.z) # 输出 (0.0, 6.0, -6.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"var myBasis = new Basis(\n" +" new Vector3(1.0f, 1.0f, 1.0f),\n" +" new Vector3(2.0f, 2.0f, 2.0f),\n" +" new Vector3(3.0f, 3.0f, 3.0f)\n" +");\n" +"myBasis = myBasis.Scaled(new Vector3(0.0f, 2.0f, -2.0f));\n" +"\n" +"GD.Print(myBasis.X); // 输出 (0.0, 2.0, -2.0)\n" +"GD.Print(myBasis.Y); // 输出 (0.0, 4.0, -4.0)\n" +"GD.Print(myBasis.Z); // 输出 (0.0, 6.0, -6.0)\n" +"[/csharp]\n" +"[/codeblocks]" + +msgid "" +"Performs a spherical-linear interpolation with the [param to] basis, given a " +"[param weight]. Both this basis and [param to] should represent a rotation.\n" +"[b]Example:[/b] Smoothly rotate a [Node3D] to the target basis over time, " +"with a [Tween]:\n" +"[codeblock]\n" +"var start_basis = Basis.IDENTITY\n" +"var target_basis = Basis.IDENTITY.rotated(Vector3.UP, TAU / 2)\n" +"\n" +"func _ready():\n" +" create_tween().tween_method(interpolate, 0.0, 1.0, 5.0).set_trans(Tween." +"TRANS_EXPO)\n" +"\n" +"func interpolate(weight):\n" +" basis = start_basis.slerp(target_basis, weight)\n" +"[/codeblock]" +msgstr "" +"使用 [param to] 基在给定 [param weight] 的情况下执行球面线性插值。该基和 " +"[param to] 两者都应该代表一个旋转。\n" +"[b]示例:[/b]使用 [Tween] 随时间平滑地将 [Node3D] 旋转到目标基:\n" +"[codeblock]\n" +"var start_basis = Basis.IDENTITY\n" +"var target_basis = Basis.IDENTITY.rotated(Vector3.UP, TAU / 2)\n" +"\n" +"func _ready():\n" +" create_tween().tween_method(interpolate, 0.0, 1.0, 5.0).set_trans(Tween." +"TRANS_EXPO)\n" +"\n" +"func interpolate(weight):\n" +" basis = start_basis.slerp(target_basis, weight)\n" +"[/codeblock]" + msgid "" "Returns the transposed dot product between [param with] and the [member x] " "axis (see [method transposed]).\n" @@ -16406,6 +21414,64 @@ msgstr "" "transposed])。\n" "这相当于 [code]basis.z.dot(vector)[/code]。" +msgid "" +"Returns the transposed version of this basis. This turns the basis matrix's " +"columns into rows, and its rows into columns.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var my_basis = Basis(\n" +" Vector3(1, 2, 3),\n" +" Vector3(4, 5, 6),\n" +" Vector3(7, 8, 9)\n" +")\n" +"my_basis = my_basis.transposed()\n" +"\n" +"print(my_basis.x) # Prints (1.0, 4.0, 7.0)\n" +"print(my_basis.y) # Prints (2.0, 5.0, 8.0)\n" +"print(my_basis.z) # Prints (3.0, 6.0, 9.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"var myBasis = new Basis(\n" +" new Vector3(1.0f, 2.0f, 3.0f),\n" +" new Vector3(4.0f, 5.0f, 6.0f),\n" +" new Vector3(7.0f, 8.0f, 9.0f)\n" +");\n" +"myBasis = myBasis.Transposed();\n" +"\n" +"GD.Print(myBasis.X); // Prints (1, 4, 7)\n" +"GD.Print(myBasis.Y); // Prints (2, 5, 8)\n" +"GD.Print(myBasis.Z); // Prints (3, 6, 9)\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"返回该基的转置版本。这会将基矩阵的列转换为行,并将其行转换为列。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var my_basis = Basis(\n" +" Vector3(1, 2, 3),\n" +" Vector3(4, 5, 6),\n" +" Vector3(7, 8, 9)\n" +")\n" +"my_basis = my_basis.transposed()\n" +"\n" +"print(my_basis.x) # 输出 (1.0, 4.0, 7.0)\n" +"print(my_basis.y) # 输出 (2.0, 5.0, 8.0)\n" +"print(my_basis.z) # 输出 (3.0, 6.0, 9.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"var myBasis = new Basis(\n" +" new Vector3(1.0f, 2.0f, 3.0f),\n" +" new Vector3(4.0f, 5.0f, 6.0f),\n" +" new Vector3(7.0f, 8.0f, 9.0f)\n" +");\n" +"myBasis = myBasis.Transposed();\n" +"\n" +"GD.Print(myBasis.X); // 输出 (1.0, 4.0, 7.0)\n" +"GD.Print(myBasis.Y); // 输出 (2.0, 5.0, 8.0)\n" +"GD.Print(myBasis.Z); // 输出 (3.0, 6.0, 9.0)\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "The basis's X axis, and the column [code]0[/code] of the matrix.\n" "On the identity basis, this vector points right ([constant Vector3.RIGHT])." @@ -16427,6 +21493,51 @@ msgstr "" "该基的 Z 轴和矩阵的第 [code]2[/code] 列。\n" "在单位基上,该向量指向后面([constant Vector3.BACK])。" +msgid "" +"The identity [Basis]. This is an orthonormal basis with no rotation, no " +"shear, and a scale of [constant Vector3.ONE]. This also means that:\n" +"- The [member x] points right ([constant Vector3.RIGHT]);\n" +"- The [member y] points up ([constant Vector3.UP]);\n" +"- The [member z] points back ([constant Vector3.BACK]).\n" +"[codeblock]\n" +"var basis = Basis.IDENTITY\n" +"print(\"| X | Y | Z\")\n" +"print(\"| %.f | %.f | %.f\" % [basis.x.x, basis.y.x, basis.z.x])\n" +"print(\"| %.f | %.f | %.f\" % [basis.x.y, basis.y.y, basis.z.y])\n" +"print(\"| %.f | %.f | %.f\" % [basis.x.z, basis.y.z, basis.z.z])\n" +"# Prints:\n" +"# | X | Y | Z\n" +"# | 1 | 0 | 0\n" +"# | 0 | 1 | 0\n" +"# | 0 | 0 | 1\n" +"[/codeblock]\n" +"If a [Vector3] or another [Basis] is transformed (multiplied) by this " +"constant, no transformation occurs.\n" +"[b]Note:[/b] In GDScript, this constant is equivalent to creating a " +"[constructor Basis] without any arguments. It can be used to make your code " +"clearer, and for consistency with C#." +msgstr "" +"单位 [Basis]。这是一个没有旋转、没有倾斜的标准正交基,其缩放为 [constant " +"Vector3.ONE]。这也意味着:\n" +"- [member x] 指向右侧([constant Vector3.RIGHT]);\n" +"- [member y] 指向上方([constant Vector3.UP]);\n" +"- [member z] 指向后面([constant Vector3.BACK])。\n" +"[codeblock]\n" +"var basis = Basis.IDENTITY\n" +"print(\"| X | Y | Z\")\n" +"print(\"| %.f | %.f | %.f\" % [basis.x.x, basis.y.x, basis.z.x])\n" +"print(\"| %.f | %.f | %.f\" % [basis.x.y, basis.y.y, basis.z.y])\n" +"print(\"| %.f | %.f | %.f\" % [basis.x.z, basis.y.z, basis.z.z])\n" +"# 输出:\n" +"# | X | Y | Z\n" +"# | 1 | 0 | 0\n" +"# | 0 | 1 | 0\n" +"# | 0 | 0 | 1\n" +"[/codeblock]\n" +"使用该常量变换(乘以)一个 [Vector3] 或其他 [Basis] 时不会发生变换。\n" +"[b]注意:[/b]在 GDScript 中,该常量与不使用任何参数创建 [constructor Basis] 相" +"同。该常量可用于使你的代码更清晰,并与 C# 保持一致。" + msgid "" "When any basis is multiplied by [constant FLIP_X], it negates all components " "of the [member x] axis (the X column).\n" @@ -16477,6 +21588,38 @@ msgstr "" "由该基转换(乘以) [param right] 基。\n" "这是父级和子级 [Node3D] 之间执行的操作。" +msgid "" +"Transforms (multiplies) the [param right] vector by this basis, returning a " +"[Vector3].\n" +"[codeblocks]\n" +"[gdscript]\n" +"# Basis that swaps the X/Z axes and doubles the scale.\n" +"var my_basis = Basis(Vector3(0, 2, 0), Vector3(2, 0, 0), Vector3(0, 0, 2))\n" +"print(my_basis * Vector3(1, 2, 3)) # Prints (4.0, 2.0, 6.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"// Basis that swaps the X/Z axes and doubles the scale.\n" +"var myBasis = new Basis(new Vector3(0, 2, 0), new Vector3(2, 0, 0), new " +"Vector3(0, 0, 2));\n" +"GD.Print(myBasis * new Vector3(1, 2, 3)); // Prints (4, 2, 6)\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"使用该基变换(乘以)[param right] 向量,返回一个 [Vector3]。\n" +"[codeblocks]\n" +"[gdscript]\n" +"# 交换 X/Z 轴并使缩放加倍的基。\n" +"var my_basis = Basis(Vector3(0, 2, 0), Vector3(2, 0, 0), Vector3(0, 0, 2))\n" +"print(my_basis * Vector3(1, 2, 3)) # 输出 (4.0, 2.0, 6.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"// 交换 X/Z 轴并使缩放加倍的基。\n" +"var myBasis = new Basis(new Vector3(0, 2, 0), new Vector3(2, 0, 0), new " +"Vector3(0, 0, 2));\n" +"GD.Print(myBasis * new Vector3(1, 2, 3)); // 输出 (4.0, 2.0, 6.0)\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Multiplies all components of the [Basis] by the given [float]. This affects " "the basis's scale uniformly, resizing all 3 axes by the [param right] value." @@ -16728,6 +21871,9 @@ msgid "" "Returns the [NodePath] to the external [Skeleton3D] node, if one has been set." msgstr "返回到外部 [Skeleton3D] 节点的 [NodePath](如果已设置)。" +msgid "Get parent or external [Skeleton3D] node if found." +msgstr "存在 [Skeleton3D] 类型的父节点或外部节点时将其返回。" + msgid "" "Returns whether the BoneAttachment3D node is using an external [Skeleton3D] " "rather than attempting to use its parent node as the [Skeleton3D]." @@ -17137,6 +22283,76 @@ msgstr "3D 动力学角色演示" msgid "A themed button that can contain text and an icon." msgstr "按钮,支持主题,能够包含文本和图标。" +msgid "" +"[Button] is the standard themed button. It can contain text and an icon, and " +"it will display them according to the current [Theme].\n" +"[b]Example:[/b] Create a button and connect a method that will be called when " +"the button is pressed:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _ready():\n" +" var button = Button.new()\n" +" button.text = \"Click me\"\n" +" button.pressed.connect(_button_pressed)\n" +" add_child(button)\n" +"\n" +"func _button_pressed():\n" +" print(\"Hello world!\")\n" +"[/gdscript]\n" +"[csharp]\n" +"public override void _Ready()\n" +"{\n" +" var button = new Button();\n" +" button.Text = \"Click me\";\n" +" button.Pressed += ButtonPressed;\n" +" AddChild(button);\n" +"}\n" +"\n" +"private void ButtonPressed()\n" +"{\n" +" GD.Print(\"Hello world!\");\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"See also [BaseButton] which contains common properties and methods associated " +"with this node.\n" +"[b]Note:[/b] Buttons do not detect touch input and therefore don't support " +"multitouch, since mouse emulation can only press one button at a given time. " +"Use [TouchScreenButton] for buttons that trigger gameplay movement or actions." +msgstr "" +"[Button] 是标准的主题按钮,可以包含文字和图标,显示样式会根据当前的 [Theme] 改" +"变。\n" +"[b]示例:[/b]创建按钮并连接在按下时调用的方法:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _ready():\n" +" var button = Button.new()\n" +" button.text = \"Click me\"\n" +" button.pressed.connect(_button_pressed)\n" +" add_child(button)\n" +"\n" +"func _button_pressed():\n" +" print(\"Hello world!\")\n" +"[/gdscript]\n" +"[csharp]\n" +"public override void _Ready()\n" +"{\n" +" var button = new Button();\n" +" button.Text = \"Click me\";\n" +" button.Pressed += ButtonPressed;\n" +" AddChild(button);\n" +"}\n" +"\n" +"private void ButtonPressed()\n" +"{\n" +" GD.Print(\"Hello world!\");\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"另见 [BaseButton],其中包含与此节点相关联的通用属性和方法。\n" +"[b]注意:[/b]按钮不处理触摸输入,因此不支持多点触控,因为模拟鼠标在给定时间只" +"能按下一个按钮。请用 [TouchScreenButton] 制作触发游戏移动或动作的按钮。" + msgid "Operating System Testing Demo" msgstr "操作系统测试演示" @@ -17152,6 +22368,16 @@ msgstr "" "如果设置为 [constant TextServer.AUTOWRAP_OFF] 以外的值,则文本将在节点的边界矩" "形内换行。" +msgid "" +"If [code]true[/code], text that is too large to fit the button is clipped " +"horizontally. If [code]false[/code], the button will always be wide enough to " +"hold the text. The text is not vertically clipped, and the button's height is " +"not affected by this property." +msgstr "" +"如果为 [code]true[/code],则因过长而无法适配按钮的文本会被水平截断。如果为 " +"[code]false[/code],则按钮的宽度始终足够容纳文本。文本不会垂直截断,按钮的高度" +"不受该属性影响。" + msgid "" "When enabled, the button's icon will expand/shrink to fit the button's size " "while keeping its aspect. See also [theme_item icon_max_width]." @@ -17286,6 +22512,13 @@ msgstr "" "expand_icon] 为 [code]true[/code],则应用于其扩展大小。高度根据图标的缩放进行" "调整。如果按钮有其他图标(例如 [CheckBox]),它们也将会受到限制。" +msgid "" +"Additional vertical spacing between lines (in pixels), spacing is added to " +"line descent. This value can be negative." +msgstr "" +"行与行之间的额外纵向留白(单位为像素),留白会被添加到行的降部。该值可以为负" +"数。" + msgid "" "The size of the text outline.\n" "[b]Note:[/b] If using a font with [member FontFile." @@ -17406,6 +22639,143 @@ msgstr "当该组中的某个按钮被按下时发出。" msgid "A built-in type representing a method or a standalone function." msgstr "代表一个方法或一个独立函数的内置类型。" +msgid "" +"[Callable] is a built-in [Variant] type that represents a function. It can " +"either be a method within an [Object] instance, or a custom callable used for " +"different purposes (see [method is_custom]). Like all [Variant] types, it can " +"be stored in variables and passed to other functions. It is most commonly " +"used for signal callbacks.\n" +"[codeblocks]\n" +"[gdscript]\n" +"func print_args(arg1, arg2, arg3 = \"\"):\n" +" prints(arg1, arg2, arg3)\n" +"\n" +"func test():\n" +" var callable = Callable(self, \"print_args\")\n" +" callable.call(\"hello\", \"world\") # Prints \"hello world \".\n" +" callable.call(Vector2.UP, 42, callable) # Prints \"(0.0, -1.0) 42 " +"Node(node.gd)::print_args\"\n" +" callable.call(\"invalid\") # Invalid call, should have at least 2 " +"arguments.\n" +"[/gdscript]\n" +"[csharp]\n" +"// Default parameter values are not supported.\n" +"public void PrintArgs(Variant arg1, Variant arg2, Variant arg3 = default)\n" +"{\n" +" GD.PrintS(arg1, arg2, arg3);\n" +"}\n" +"\n" +"public void Test()\n" +"{\n" +" // Invalid calls fail silently.\n" +" Callable callable = new Callable(this, MethodName.PrintArgs);\n" +" callable.Call(\"hello\", \"world\"); // Default parameter values are not " +"supported, should have 3 arguments.\n" +" callable.Call(Vector2.Up, 42, callable); // Prints \"(0, -1) 42 Node(Node." +"cs)::PrintArgs\"\n" +" callable.Call(\"invalid\"); // Invalid call, should have 3 arguments.\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"In GDScript, it's possible to create lambda functions within a method. Lambda " +"functions are custom callables that are not associated with an [Object] " +"instance. Optionally, lambda functions can also be named. The name will be " +"displayed in the debugger, or when calling [method get_method].\n" +"[codeblock]\n" +"func _init():\n" +" var my_lambda = func (message):\n" +" print(message)\n" +"\n" +" # Prints \"Hello everyone!\"\n" +" my_lambda.call(\"Hello everyone!\")\n" +"\n" +" # Prints \"Attack!\", when the button_pressed signal is emitted.\n" +" button_pressed.connect(func(): print(\"Attack!\"))\n" +"[/codeblock]\n" +"In GDScript, you can access methods and global functions as [Callable]s:\n" +"[codeblock]\n" +"tween.tween_callback(node.queue_free) # Object methods.\n" +"tween.tween_callback(array.clear) # Methods of built-in types.\n" +"tween.tween_callback(print.bind(\"Test\")) # Global functions.\n" +"[/codeblock]\n" +"[b]Note:[/b] [Dictionary] does not support the above due to ambiguity with " +"keys.\n" +"[codeblock]\n" +"var dictionary = {\"hello\": \"world\"}\n" +"\n" +"# This will not work, `clear` is treated as a key.\n" +"tween.tween_callback(dictionary.clear)\n" +"\n" +"# This will work.\n" +"tween.tween_callback(Callable.create(dictionary, \"clear\"))\n" +"[/codeblock]" +msgstr "" +"可调用体 [Callable] 是表示函数的内置 [Variant] 类型。它可以是 [Object] 实例中" +"的方法,也可以是用于不同目的的自定义可调用函数(请参阅 [method is_custom])。" +"与所有 [Variant] 类型一样,它可以存储在变量中,也可以传递给其他函数。它最常用" +"于信号回调。\n" +"[codeblocks]\n" +"[gdscript]\n" +"func print_args(arg1, arg2, arg3 = \"\"):\n" +" prints(arg1, arg2, arg3)\n" +"\n" +"func test():\n" +" var callable = Callable(self, \"print_args\")\n" +" callable.call(\"hello\", \"world\") # 输出“hello world ”。\n" +" callable.call(Vector2.UP, 42, callable) # 输出“(0.0, -1.0) 42 Node(node." +"gd)::print_args”\n" +" callable.call(\"invalid\") # 无效调用,应当至少有 2 个参数。\n" +"[/gdscript]\n" +"[csharp]\n" +"// 不支持参数默认值。\n" +"public void PrintArgs(Variant arg1, Variant arg2, Variant arg3 = default)\n" +"{\n" +" GD.PrintS(arg1, arg2, arg3);\n" +"}\n" +"\n" +"public void Test()\n" +"{\n" +" // Invalid calls fail silently.\n" +" Callable callable = new Callable(this, MethodName.PrintArgs);\n" +" callable.Call(\"hello\", \"world\"); // 不支持参数默认值,应当有 3 个参" +"数。\n" +" callable.Call(Vector2.Up, 42, callable); // 输出“(0.0, -1.0) 42 Node(node." +"gd)::print_args”\n" +" callable.Call(\"invalid\"); // 无效调用,应当有 3 个参数。\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"GDScript 中可以在方法里创建 lambda 函数。Lambda 函数是自定义的可调用体,不与 " +"[Object] 实例关联。也可以为 Lambda 函数命名。该名称会显示在调试器中,也会在 " +"[method get_method] 中使用。\n" +"[codeblock]\n" +"func _init():\n" +" var my_lambda = func (message):\n" +" print(message)\n" +"\n" +" # 输出“大家好呀!”\n" +" my_lambda.call(\"大家好呀!\")\n" +"\n" +" # 发出 button_pressed 信号时输出“全军出击!”。\n" +" button_pressed.connect(func(): print(\"全军出击!\"))\n" +"[/codeblock]\n" +"在 GDScript 中,可以将方法和全局函数作为 [Callable] 进行访问:\n" +"[codeblock]\n" +"tween.tween_callback(node.queue_free) # Object 的方法。\n" +"tween.tween_callback(array.clear) # 内置类型的方法。\n" +"tween.tween_callback(print.bind(\"Test\")) # 全局函数。\n" +"[/codeblock]\n" +"[b]注意:[/b]由于键不明确,[Dictionary] 不支持上述内容。\n" +"[codeblock]\n" +"var dictionary = {\"hello\": \"world\"}\n" +"\n" +"# 不行,“clear” 被视为一个键。\n" +"tween.tween_callback(dictionary.clear)\n" +"\n" +"# 有效。\n" +"tween.tween_callback(Callable.create(dictionary, \"clear\"))\n" +"[/codeblock]" + msgid "Constructs an empty [Callable], with no object nor method bound." msgstr "构造空的 [Callable],没有绑定对象和方法。" @@ -17533,6 +22903,45 @@ msgstr "" "减去[/i]使用 [method bind] 绑定的参数、[i]加上[/i]使用 [method unbind] 解除绑" "定的参数。" +msgid "" +"Returns the array of arguments bound via successive [method bind] or [method " +"unbind] calls. These arguments will be added [i]after[/i] the arguments " +"passed to the call, from which [method get_unbound_arguments_count] arguments " +"on the right have been previously excluded.\n" +"[codeblock]\n" +"func get_effective_arguments(callable, call_args):\n" +" assert(call_args.size() - callable.get_unbound_arguments_count() >= 0)\n" +" var result = call_args.slice(0, call_args.size() - callable." +"get_unbound_arguments_count())\n" +" result.append_array(callable.get_bound_arguments())\n" +" return result\n" +"[/codeblock]" +msgstr "" +"返回一个参数数组,其元素通过连续的[method bind] or [method unbind]调用绑定。这" +"些参数会被追加到传给该调用的参数[i]后面[/i],而位于右侧的[method " +"get_unbound_arguments_count]的参数已被预先从此调用中排除。\n" +"[codeblock]\n" +"func get_effective_arguments(callable, call_args):\n" +" assert(call_args.size() - callable.get_unbound_arguments_count() >= 0)\n" +" var result = call_args.slice(0, call_args.size() - callable." +"get_unbound_arguments_count())\n" +" result.append_array(callable.get_bound_arguments())\n" +" return result\n" +"[/codeblock]" + +msgid "" +"Returns the total amount of arguments bound via successive [method bind] or " +"[method unbind] calls. This is the same as the size of the array returned by " +"[method get_bound_arguments]. See [method get_bound_arguments] for details.\n" +"[b]Note:[/b] The [method get_bound_arguments_count] and [method " +"get_unbound_arguments_count] methods can both return positive values." +msgstr "" +"返回通过连续的[method bind]或[method unbind]调用绑定的参数总数。此总数与" +"[method get_bound_arguments]返回的数组大小是一致的。详情参见[method " +"get_bound_arguments]。\n" +"[b]注意:[/b]方法[method get_bound_arguments_count]和[method " +"get_unbound_arguments_count]都返回正值。" + msgid "" "Returns the name of the method represented by this [Callable]. If the " "callable is a GDScript lambda function, returns the function's name or " @@ -17549,6 +22958,17 @@ msgid "" "get_instance_id])." msgstr "返回该 [Callable] 中对象的 ID(见 [method Object.get_instance_id])。" +msgid "" +"Returns the total amount of arguments unbound via successive [method bind] or " +"[method unbind] calls. See [method get_bound_arguments] for details.\n" +"[b]Note:[/b] The [method get_bound_arguments_count] and [method " +"get_unbound_arguments_count] methods can both return positive values." +msgstr "" +"返回通过连续调用 [method bind] 和 [method unbind] 解绑的参数总数。详见 " +"[method get_bound_arguments]。\n" +"[b]注意:[/b][method get_bound_arguments_count] 和 [method " +"get_unbound_arguments_count] 方法都可以返回正值。" + msgid "" "Returns the 32-bit hash value of this [Callable]'s object.\n" "[b]Note:[/b] [Callable]s with equal content will always produce identical " @@ -17578,6 +22998,19 @@ msgstr "" "- 用于在 GDScript 中表示全局、lambda 和 RPC 函数;\n" "- 用于核心、GDExtension 和 C# 中的其他目的。" +msgid "" +"Returns [code]true[/code] if this [Callable] has no target to call the method " +"on. Equivalent to [code]callable == Callable()[/code].\n" +"[b]Note:[/b] This is [i]not[/i] the same as [code]not is_valid()[/code] and " +"using [code]not is_null()[/code] will [i]not[/i] guarantee that this callable " +"can be called. Use [method is_valid] instead." +msgstr "" +"如果这个 [Callable] 没有可以调用方法的目标,则返回 [code]true[/code]。等价于 " +"[code]callable == Callable()[/code]。\n" +"[b]注意:[/b]这与 [code]not is_valid()[/code] [i]不同[/i],使用 [code]not " +"is_null()[/code] [i]无法[/i]保证能够调用该可调用对象。请改用 [method " +"is_valid]。" + msgid "" "Returns [code]true[/code] if this [Callable] is a standard callable. This " "method is the opposite of [method is_custom]. Returns [code]false[/code] if " @@ -17674,6 +23107,21 @@ msgstr "" "[b]注意:[/b]创建 [CallbackTweener] 的唯一正确方法是 [method Tween." "tween_callback]。任何手动创建的 [CallbackTweener] 都无法正常工作。" +msgid "" +"Makes the callback call delayed by given time in seconds.\n" +"[b]Example:[/b] Call [method Node.queue_free] after 2 seconds:\n" +"[codeblock]\n" +"var tween = get_tree().create_tween()\n" +"tween.tween_callback(queue_free).set_delay(2)\n" +"[/codeblock]" +msgstr "" +"让该回调延迟给定的时间,单位为秒。\n" +"[b]示例:[/b]在 2 秒后调用 [method Node.queue_free]:\n" +"[codeblock]\n" +"var tween = get_tree().create_tween()\n" +"tween.tween_callback(queue_free).set_delay(2)\n" +"[/codeblock]" + msgid "Camera node for 2D scenes." msgstr "2D 场景的相机节点。" @@ -18491,6 +23939,21 @@ msgid "" "image." msgstr "曝光量的乘数。较高的值会产生较亮的图像。" +msgid "" +"Sensitivity of camera sensors, measured in ISO. A higher sensitivity results " +"in a brighter image.\n" +"If [member auto_exposure_enabled] is [code]true[/code], this can be used as a " +"method of exposure compensation, doubling the value will increase the " +"exposure value (measured in EV100) by 1 stop.\n" +"[b]Note:[/b] Only available when [member ProjectSettings.rendering/" +"lights_and_shadows/use_physical_light_units] is enabled." +msgstr "" +"相机传感器的灵敏度,以 ISO 测量。灵敏度越高,图像越亮。\n" +"[member auto_exposure_enabled] 为 [code]true[/code] 时,可以用作曝光补偿的方" +"法,将该值加倍会使曝光值增加 1 档(以 EV100 测量)。\n" +"[b]注意:[/b]仅在启用 [member ProjectSettings.rendering/lights_and_shadows/" +"use_physical_light_units] 时可用。" + msgid "Physically-based camera settings." msgstr "基于物理的相机设置。" @@ -18545,6 +24008,16 @@ msgstr "" "少被钳制在这个值上。这限制了自动曝光在低于一定的亮度进行曝光时,导致场景将保持" "明亮的一个截止点。" +msgid "" +"The minimum luminance (in EV100) used when calculating auto exposure. When " +"calculating scene average luminance, color values will be clamped to at least " +"this value. This limits the auto-exposure from exposing above a certain " +"brightness, resulting in a cut off point where the scene will remain dark." +msgstr "" +"计算自动曝光时使用的最小亮度(单位为 EV100)。在计算场景平均亮度时,颜色值将至" +"少被钳制在这个值上。这限制了自动曝光在超过一定的亮度进行曝光时,导致场景将保持" +"黑暗的一个截止点。" + msgid "" "Size of the aperture of the camera, measured in f-stops. An f-stop is a " "unitless ratio between the focal length of the camera and the diameter of the " @@ -18731,6 +24204,33 @@ msgid "" "device." msgstr "通过相机源,你可以访问连接到设备的单个物理相机。" +msgid "" +"A camera feed gives you access to a single physical camera attached to your " +"device. When enabled, Godot will start capturing frames from the camera which " +"can then be used. See also [CameraServer].\n" +"[b]Note:[/b] Many cameras will return YCbCr images which are split into two " +"textures and need to be combined in a shader. Godot does this automatically " +"for you if you set the environment to show the camera image in the " +"background.\n" +"[b]Note:[/b] This class is currently only implemented on Linux, macOS, and " +"iOS. On other platforms no [CameraFeed]s will be available. To get a " +"[CameraFeed] on iOS, the camera plugin from [url=https://github.com/" +"godotengine/godot-ios-plugins]godot-ios-plugins[/url] is required." +msgstr "" +"通过相机源,你可以访问连接到设备的单个物理相机。启用后,Godot 将开始从相机捕获" +"帧,随后这些帧便可使用。另见 [CameraServer]。\n" +"[b]注意:[/b]很多相机会返回 YCbCr 图像,这些图像被分成两个纹理,需要在着色器中" +"组合。如果你将环境设置为在背景中显示相机图像,Godot 会自动执行此操作。\n" +"[b]注意:[/b]这个类目前只在 Linux、macOS 和 iOS 上实现。在其他平台上没有可用" +"的 [CameraFeed]。在 iOS 上获取 [CameraFeed] 需要来自 [url=https://github.com/" +"godotengine/godot-ios-plugins]godot-ios-plugins[/url] 的相机插件。" + +msgid "Called when the camera feed is activated." +msgstr "相机源被激活时调用。" + +msgid "Called when the camera feed is deactivated." +msgstr "相机源失去激活时调用。" + msgid "Returns feed image data type." msgstr "返回源图像的数据类型。" @@ -18743,12 +24243,43 @@ msgstr "返回相机的名称。" msgid "Returns the position of camera on the device." msgstr "返回设备上的相机位置。" +msgid "" +"Returns the texture backend ID (usable by some external libraries that need a " +"handle to a texture to write data)." +msgstr "返回纹理后端的 ID(可用于某些需要通过纹理句柄写入数据的外部库)。" + +msgid "Sets the feed as external feed provided by another library." +msgstr "将供给设置为由另一个库提供的外部供给。" + +msgid "Sets the camera's name." +msgstr "设置相机的名称。" + +msgid "Sets the position of this camera." +msgstr "设置相机的位置。" + +msgid "Sets RGB image for this feed." +msgstr "设置该源的 RGB 图像。" + +msgid "Sets YCbCr image for this feed." +msgstr "设置该源的 YCbCr 图像。" + msgid "If [code]true[/code], the feed is active." msgstr "如果为 [code]true[/code],则源是激活的。" msgid "The transform applied to the camera's image." msgstr "应用于相机图像的变换。" +msgid "" +"Formats supported by the feed. Each entry is a [Dictionary] describing format " +"parameters." +msgstr "源支持的所有格式。每个条目都是描述格式参数的 [Dictionary]。" + +msgid "Emitted when the format has changed." +msgstr "格式发生变化时发出。" + +msgid "Emitted when a new frame is available." +msgstr "新图像帧可用时发出。" + msgid "No image set for the feed." msgstr "没有为该源设置图像。" @@ -18763,6 +24294,9 @@ msgid "" "converted to RGB." msgstr "源提供单独的 Y 和 CbCr 图像,需要合并并转换为 RGB。" +msgid "Feed supplies external image." +msgstr "源提供外部图像。" + msgid "Unspecified position." msgstr "未指定坐标。" @@ -18775,6 +24309,22 @@ msgstr "相机安装在了设备后部。" msgid "Server keeping track of different cameras accessible in Godot." msgstr "跟踪 Godot 中可访问的不同摄像头的服务器。" +msgid "" +"The [CameraServer] keeps track of different cameras accessible in Godot. " +"These are external cameras such as webcams or the cameras on your phone.\n" +"It is notably used to provide AR modules with a video feed from the camera.\n" +"[b]Note:[/b] This class is currently only implemented on Linux, macOS, and " +"iOS. On other platforms no [CameraFeed]s will be available. To get a " +"[CameraFeed] on iOS, the camera plugin from [url=https://github.com/" +"godotengine/godot-ios-plugins]godot-ios-plugins[/url] is required." +msgstr "" +"[CameraServer] 记录了 Godot 中可访问的不同相机。此处的相机指外部相机,例如网络" +"摄像头或手机上的摄像头。\n" +"主要用于为 AR 模块提供来自相机的视频源。\n" +"[b]注意:[/b]这个类目前只在 Linux、macOS 和 iOS 上实现。在其他平台上没有可用" +"的 [CameraFeed]。在 iOS 上获取 [CameraFeed] 需要来自 [url=https://github.com/" +"godotengine/godot-ios-plugins]godot-ios-plugins[/url] 的相机插件。" + msgid "Adds the camera [param feed] to the camera server." msgstr "将相机源 [param feed] 添加到相机服务器中。" @@ -19074,23 +24624,55 @@ msgstr "" "[b]注意:[/b][param width] 只有在 [param filled] 为 [code]false[/code] 时才有" "效。" +msgid "" +"Draws a colored polygon of any number of points, convex or concave. Unlike " +"[method draw_polygon], a single color must be specified for the whole " +"polygon.\n" +"[b]Note:[/b] If you frequently redraw the same polygon with a large number of " +"vertices, consider pre-calculating the triangulation with [method Geometry2D." +"triangulate_polygon] and using [method draw_mesh], [method draw_multimesh], " +"or [method RenderingServer.canvas_item_add_triangle_array]." +msgstr "" +"绘制一个由任意数量的点构成的实心多边形,凹凸均可。与 [method draw_polygon] 不" +"同,必须为整个多边形制定单一颜色。\n" +"[b]注意:[/b]如果你需要频繁重绘同样的多边形,包含大量顶点,请考虑预先使用 " +"[method Geometry2D.triangulate_polygon] 进行三角剖分计算,并使用 [method " +"draw_mesh]、[method draw_multimesh] 或 [method RenderingServer." +"canvas_item_add_triangle_array]。" + msgid "" "Draws a dashed line from a 2D point to another, with a given color and width. " -"See also [method draw_multiline] and [method draw_polyline].\n" +"See also [method draw_line], [method draw_multiline], and [method " +"draw_polyline].\n" "If [param width] is negative, then a two-point primitives will be drawn " "instead of a four-point ones. This means that when the CanvasItem is scaled, " "the line parts will remain thin. If this behavior is not desired, then pass a " "positive [param width] like [code]1.0[/code].\n" +"[param dash] is the length of each dash in pixels, with the gap between each " +"dash being the same length. If [param aligned] is [code]true[/code], the " +"length of the first and last dashes may be shortened or lengthened to allow " +"the line to begin and end at the precise points defined by [param from] and " +"[param to]. Both ends are always symmetrical when [param aligned] is " +"[code]true[/code]. If [param aligned] is [code]false[/code], all dashes will " +"have the same length, but the line may appear incomplete at the end due to " +"the dash length not dividing evenly into the line length. Only full dashes " +"are drawn when [param aligned] is [code]false[/code].\n" "If [param antialiased] is [code]true[/code], half transparent \"feathers\" " "will be attached to the boundary, making outlines smooth.\n" "[b]Note:[/b] [param antialiased] is only effective if [param width] is " "greater than [code]0.0[/code]." msgstr "" "使用给定的颜色和宽度,从一个 2D 点到另一个点绘制一条虚线。另见 [method " -"draw_multiline] 和 [method draw_polyline]。\n" +"draw_line]、[method draw_multiline] 和 [method draw_polyline]。\n" "如果 [param width] 为负,则将绘制一个两点图元而不是一个四点图元。这意味着当缩" "放 CanvasItem 时,线条部分将保持细长。如果不需要此行为,请传递一个正的 [param " "width],如 [code]1.0[/code]。\n" +"[param dash] 是每一段的长度,单位为像素,段与段之间的留空使用相同的长度。如果 " +"[param aligned] 为 [code]true[/code],则可能会缩短第一段和最后一段的长度,使得" +"虚线的两端精确地落在 [param from] 和 [param to] 所定义的位置。[param aligned] " +"为 [code]true[/code] 时虚线两端始终是对称的。如果 [param aligned] 为 " +"[code]false[/code],则每一段的长度都相同,但是虚线长度无法被段长度整除时,末尾" +"可能看上去不完整。[param aligned] 为 [code]false[/code] 时只会绘制完整的段。\n" "如果 [param antialiased] 为 [code]true[/code],则半透明的“羽毛”将附加到边界," "使轮廓变得平滑。\n" "[b]注意:[/b]仅当 [param width] 大于 [code]0.0[/code] 时,[param antialiased] " @@ -19137,15 +24719,16 @@ msgstr "" msgid "" "Draws a line from a 2D point to another, with a given color and width. It can " -"be optionally antialiased. See also [method draw_multiline] and [method " -"draw_polyline].\n" +"be optionally antialiased. See also [method draw_dashed_line], [method " +"draw_multiline], and [method draw_polyline].\n" "If [param width] is negative, then a two-point primitive will be drawn " "instead of a four-point one. This means that when the CanvasItem is scaled, " "the line will remain thin. If this behavior is not desired, then pass a " "positive [param width] like [code]1.0[/code]." msgstr "" "使用给定的颜色和宽度,从一个 2D 点到另一个点绘制一条直线。它可以选择抗锯齿。另" -"请参阅 [method draw_multiline] 和 [method draw_polyline]。\n" +"见 [method draw_dashed_line]、[method draw_multiline] 和 [method " +"draw_polyline]。\n" "如果 [param width] 为负,则将绘制一个两点图元而不是一个四点图元。这意味着当缩" "放 CanvasItem 时,线条将保持细长。如果不需要此行为,请传递一个正的 [param " "width],如 [code]1.0[/code]。" @@ -19252,6 +24835,28 @@ msgstr "" "用所提供的纹理以 2D 方式绘制一个 [MultiMesh]。相关文档请参考 " "[MultiMeshInstance2D]。" +msgid "" +"Draws a solid polygon of any number of points, convex or concave. Unlike " +"[method draw_colored_polygon], each point's color can be changed " +"individually. See also [method draw_polyline] and [method " +"draw_polyline_colors]. If you need more flexibility (such as being able to " +"use bones), use [method RenderingServer.canvas_item_add_triangle_array] " +"instead.\n" +"[b]Note:[/b] If you frequently redraw the same polygon with a large number of " +"vertices, consider pre-calculating the triangulation with [method Geometry2D." +"triangulate_polygon] and using [method draw_mesh], [method draw_multimesh], " +"or [method RenderingServer.canvas_item_add_triangle_array]." +msgstr "" +"绘制一个由任意数量的点构成的实心多边形,凹凸均可。与 [method " +"draw_colored_polygon] 不同,每个点的颜色都可以单独修改。另见 [method " +"draw_polyline] 和 [method draw_polyline_colors]。如果需要更高的灵活度(例如能" +"够用到骨骼),请改用 [method RenderingServer." +"canvas_item_add_triangle_array]。\n" +"[b]注意:[/b]如果你需要频繁重绘同样的多边形,包含大量顶点,请考虑预先使用 " +"[method Geometry2D.triangulate_polygon] 进行三角剖分计算,并使用 [method " +"draw_mesh]、[method draw_multimesh] 或 [method RenderingServer." +"canvas_item_add_triangle_array]。" + msgid "" "Draws interconnected line segments with a uniform [param color] and [param " "width] and optional antialiasing (supported only for positive [param width]). " @@ -19368,6 +24973,60 @@ msgid "" "will be transformed by this." msgstr "设置通过矩阵绘制时的自定义变换。此后绘制的任何东西都将被它变换。" +msgid "" +"Draws [param text] using the specified [param font] at the [param pos] " +"(bottom-left corner using the baseline of the font). The text will have its " +"color multiplied by [param modulate]. If [param width] is greater than or " +"equal to 0, the text will be clipped if it exceeds the specified width.\n" +"[b]Example:[/b] Draw \"Hello world\", using the project's default font:\n" +"[codeblocks]\n" +"[gdscript]\n" +"# If using this method in a script that redraws constantly, move the\n" +"# `default_font` declaration to a member variable assigned in `_ready()`\n" +"# so the Control is only created once.\n" +"var default_font = ThemeDB.fallback_font\n" +"var default_font_size = ThemeDB.fallback_font_size\n" +"draw_string(default_font, Vector2(64, 64), \"Hello world\", " +"HORIZONTAL_ALIGNMENT_LEFT, -1, default_font_size)\n" +"[/gdscript]\n" +"[csharp]\n" +"// If using this method in a script that redraws constantly, move the\n" +"// `default_font` declaration to a member variable assigned in `_Ready()`\n" +"// so the Control is only created once.\n" +"Font defaultFont = ThemeDB.FallbackFont;\n" +"int defaultFontSize = ThemeDB.FallbackFontSize;\n" +"DrawString(defaultFont, new Vector2(64, 64), \"Hello world\", " +"HORIZONTAL_ALIGNMENT_LEFT, -1, defaultFontSize);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"See also [method Font.draw_string]." +msgstr "" +"使用指定的 [param font] 在 [param pos](使用的字体的基线的左下角)处绘制 " +"[param text]。该文本的颜色将乘以 [param modulate]。如果 [param width] 大于等" +"于 0,则文本超过指定宽度将被裁剪。\n" +"[b]示例:[/b]使用项目默认字体绘制“Hello world”:\n" +"[codeblocks]\n" +"[gdscript]\n" +"# 如果在不断重绘的脚本中使用此方法,\n" +"# 则将 `default_font` 声明移动到在 `_ready()` 中赋值的成员变量中\n" +"# 这样 Control 只创建一次。\n" +"var default_font = ThemeDB.fallback_font\n" +"var default_font_size = ThemeDB.fallback_font_size\n" +"draw_string(default_font, Vector2(64, 64), \"Hello world\", " +"HORIZONTAL_ALIGNMENT_LEFT, -1, default_font_size)\n" +"[/gdscript]\n" +"[csharp]\n" +"// 如果在不断重绘的脚本中使用此方法,\n" +"// 则将 `default_font` 声明移动到在 `_ready()` 中赋值的成员变量中\n" +"// 这样 Control 只创建一次。\n" +"Font defaultFont = ThemeDB.FallbackFont;\n" +"int defaultFontSize = ThemeDB.FallbackFontSize;\n" +"DrawString(defaultFont, new Vector2(64, 64), \"Hello world\", " +"HORIZONTAL_ALIGNMENT_LEFT, -1, defaultFontSize);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"另请参阅 [method Font.draw_string]。" + msgid "" "Draws [param text] outline using the specified [param font] at the [param " "pos] (bottom-left corner using the baseline of the font). The text will have " @@ -19509,6 +25168,41 @@ msgid "" "to children." msgstr "如果将全局变换通知传达给子级,则返回 [code]true[/code]。" +msgid "" +"Returns [code]true[/code] if the node is present in the [SceneTree], its " +"[member visible] property is [code]true[/code] and all its ancestors are also " +"visible. If any ancestor is hidden, this node will not be visible in the " +"scene tree, and is therefore not drawn (see [method _draw]).\n" +"Visibility is checked only in parent nodes that inherit from [CanvasItem], " +"[CanvasLayer], and [Window]. If the parent is of any other type (such as " +"[Node], [AnimationPlayer], or [Node3D]), it is assumed to be visible.\n" +"[b]Note:[/b] This method does not take [member visibility_layer] into " +"account, so even if this method returns [code]true[/code], the node might end " +"up not being rendered." +msgstr "" +"如果节点存在于 [SceneTree] 中,并且 [member visible] 属性为 [code]true[/" +"code]、所有祖级节点也都可见,则返回 [code]true[/code]。如果存在隐藏的祖级节" +"点,则该节点在场景树中不可见,因此不会进行绘制(见 [method _draw])。\n" +"父节点派生自 [CanvasItem]、[CanvasLayer] 或 [Window] 时才会进行可见性检查。如" +"果父节点为其他类型(例如 [Node]、[AnimationPlayer]、[Node3D]),则会当作可" +"见。\n" +"[b]注意:[/b]该方法不会考虑 [member visibility_layer],因此即便返回 " +"[code]true[/code],最后也可能不渲染该节点。" + +msgid "" +"Transforms [param viewport_point] from the viewport's coordinates to this " +"node's local coordinates.\n" +"For the opposite operation, use [method get_global_transform_with_canvas].\n" +"[codeblock]\n" +"var viewport_point = get_global_transform_with_canvas() * local_point\n" +"[/codeblock]" +msgstr "" +"将 [param viewport_point] 从视口坐标系变换到该节点的本地坐标系。\n" +"要进行相反的操作,请使用 [method get_global_transform_with_canvas]。\n" +"[codeblock]\n" +"var viewport_point = get_global_transform_with_canvas() * local_point\n" +"[/codeblock]" + msgid "" "Transformations issued by [param event]'s inputs are applied in local space " "instead of global space." @@ -19533,6 +25227,28 @@ msgstr "" "[constant NOTIFICATION_DRAW] 并调用 [method _draw]。即便多次调用这个方法,每帧" "也都只会发生[b]一次[/b]绘制。" +msgid "" +"Set the value of a shader uniform for this instance only ([url=$DOCS_URL/" +"tutorials/shaders/shader_reference/shading_language.html#per-instance-" +"uniforms]per-instance uniform[/url]). See also [method ShaderMaterial." +"set_shader_parameter] to assign a uniform on all instances using the same " +"[ShaderMaterial].\n" +"[b]Note:[/b] For a shader uniform to be assignable on a per-instance basis, " +"it [i]must[/i] be defined with [code]instance uniform ...[/code] rather than " +"[code]uniform ...[/code] in the shader code.\n" +"[b]Note:[/b] [param name] is case-sensitive and must match the name of the " +"uniform in the code exactly (not the capitalized name in the inspector)." +msgstr "" +"仅为该实例设置一个着色器 uniform 值([url=$DOCS_URL/tutorials/shaders/" +"shader_reference/shading_language.html#per-instance-uniforms]每实例 uniform[/" +"url]) 。另请参阅 [method ShaderMaterial.set_shader_parameter] 以使用相同的 " +"[ShaderMaterial] 在所有实例上分配一个 uniform。\n" +"[b]注意:[/b]要在每个实例的基础上分配一个着色器 uniform,则[i]必须[/i]在着色器" +"代码中,使用 [code]instance uniform ...[/code],而不是 [code]uniform ...[/" +"code] 来定义。\n" +"[b]注意:[/b][param name] 是区分大小写的,并且必须与代码中的 uniform 名称完全" +"匹配(而不是检查器中大写的名称)。" + msgid "" "If [param enable] is [code]true[/code], this node will receive [constant " "NOTIFICATION_LOCAL_TRANSFORM_CHANGED] when its local transform changes." @@ -19563,6 +25279,18 @@ msgstr "" "[code]true[/code]。对于继承自 [Popup] 的控件,让它们可见的正确做法是换成调用各" "种 [code]popup*()[/code] 函数的其中之一。" +msgid "" +"Allows the current node to clip child nodes, essentially acting as a mask.\n" +"[b]Note:[/b] Clipping nodes cannot be nested or placed within [CanvasGroup]s. " +"If an ancestor of this node clips its children or is a [CanvasGroup], then " +"this node's clip mode should be set to [constant CLIP_CHILDREN_DISABLED] to " +"avoid unexpected behavior." +msgstr "" +"允许当前节点裁剪子节点,本质上相当于遮罩。\n" +"[b]注意:[/b]节点裁剪无法嵌套,也不能位于 [CanvasGroup] 范围内。如果该节点的祖" +"先节点裁剪了它的子级,或者祖先节点是 [CanvasGroup],那么这个节点的裁剪模式应当" +"设为 [constant CLIP_CHILDREN_DISABLED],从而避免意外行为。" + msgid "" "The rendering layers in which this [CanvasItem] responds to [Light2D] nodes." msgstr "该 [CanvasItem] 的渲染层,用于响应 [Light2D] 节点。" @@ -19630,6 +25358,45 @@ msgstr "" "有父级均与 [Viewport] 的画布剔除遮罩有交集,该 [Viewport] 才会渲染此 " "[CanvasItem]。" +msgid "" +"If [code]true[/code], this [CanvasItem] may be drawn. Whether this " +"[CanvasItem] is actually drawn depends on the visibility of all of its " +"[CanvasItem] ancestors. In other words: this [CanvasItem] will be drawn when " +"[method is_visible_in_tree] returns [code]true[/code] and all [CanvasItem] " +"ancestors share at least one [member visibility_layer] with this " +"[CanvasItem].\n" +"[b]Note:[/b] For controls that inherit [Popup], the correct way to make them " +"visible is to call one of the multiple [code]popup*()[/code] functions " +"instead." +msgstr "" +"如果为 [code]true[/code],则允许绘制该 [CanvasItem]。实际是否对该 " +"[CanvasItem] 进行绘制取决于该节点的所有 [CanvasItem] 祖级节点的可见性。换句话" +"说:该 [CanvasItem] 只有在 [method is_visible_in_tree] 返回 [code]true[/" +"code],并且所有 [CanvasItem] 祖级节点都至少与这个 [CanvasItem] 共享一个 " +"[member visibility_layer]。\n" +"[b]注意:[/b]对于继承了 [Popup] 的控件,使其可见的正确方法是调用多个 " +"[code]popup*()[/code] 函数之一。" + +msgid "" +"If [code]true[/code], this and child [CanvasItem] nodes with a higher Y " +"position are rendered in front of nodes with a lower Y position. If " +"[code]false[/code], this and child [CanvasItem] nodes are rendered normally " +"in scene tree order.\n" +"With Y-sorting enabled on a parent node ('A') but disabled on a child node " +"('B'), the child node ('B') is sorted but its children ('C1', 'C2', etc.) " +"render together on the same Y position as the child node ('B'). This allows " +"you to organize the render order of a scene without changing the scene tree.\n" +"Nodes sort relative to each other only if they are on the same [member " +"z_index]." +msgstr "" +"如果为 [code]true[/code],则该节点及其子 [CanvasItem] 节点中 Y 位置较高的节点" +"会渲染在 Y 位置较低的节点的前面。如果为 [code]false[/code],则该节点及其子 " +"[CanvasItem] 节点会按照场景树的顺序正常渲染。\n" +"如果父节点(“A”)启用了 Y 排序,而子节点(“B”)没有启用,那么子节点(“B”)会进" +"行排序,但它自己的子节点(“C1”“C2”等)会渲染在与子节点(“B”)相同的 Y 位置。这" +"样你就可以在不修改场景树的前提下组织场景的渲染顺序了。\n" +"只有 [member z_index] 相同的节点才会互相进行排序。" + msgid "" "If [code]true[/code], the node's Z index is relative to its parent's Z index. " "If this node's Z index is 2 and its parent's effective Z index is 3, then " @@ -19666,6 +25433,30 @@ msgstr "" "知[i]之后[/i],调用 [method _draw] [i]之前[/i]。\n" "[b]注意:[/b]延迟连接无法使用 [code]draw_*[/code] 方法进行绘制。" +msgid "" +"Emitted when the [CanvasItem] is hidden, i.e. it's no longer visible in the " +"tree (see [method is_visible_in_tree])." +msgstr "" +"当 [CanvasItem] 隐藏时发出,即不再在树中可见(见 [method " +"is_visible_in_tree])。" + +msgid "" +"Emitted when the [CanvasItem]'s boundaries (position or size) change, or when " +"an action took place that may have affected these boundaries (e.g. changing " +"[member Sprite2D.texture])." +msgstr "" +"当 [CanvasItem] 的边界(位置或大小)发生变化,或者发生可能影响这些边界的操作" +"(例如更改 [member Sprite2D.texture])时发出。" + +msgid "" +"Emitted when the [CanvasItem]'s visibility changes, either because its own " +"[member visible] property changed or because its visibility in the tree " +"changed (see [method is_visible_in_tree])." +msgstr "" +"在 [CanvasItem] 的可见性改变时发射,这种改变或是因为其自身的 [member visible] " +"属性发生了变化,或是因为其在树中的可见性发生了变化(见 [method " +"is_visible_in_tree])。" + msgid "" "The [CanvasItem]'s global transform has changed. This notification is only " "received if enabled by [method set_notify_transform]." @@ -19976,6 +25767,16 @@ msgstr "" "分配给该 [CanvasLayer] 的自定义 [Viewport] 节点。如果为 [code]null[/code],则" "使用默认的视口。" +msgid "" +"If enabled, the [CanvasLayer] stays in a fixed position on the screen. If " +"disabled, the [CanvasLayer] maintains its position in world space.\n" +"Together with [member follow_viewport_scale], this can be used for a " +"pseudo-3D effect." +msgstr "" +"启用时,[CanvasLayer] 会保持在屏幕上的某个固定位置。禁用时,[CanvasLayer] 会保" +"持世界空间中的位置。\n" +"与 [member follow_viewport_scale] 配合可以实现伪 3D 效果。" + msgid "" "Scales the layer when using [member follow_viewport_enabled]. Layers moving " "into the foreground should have increasing scales, while layers moving into " @@ -20280,6 +26081,47 @@ msgstr "" "水平方向,爬坡时你也会斜向移动。此方法返回的就是那个斜向移动,与返回请求速度" "的 [member velocity] 相对。" +msgid "" +"Returns a [KinematicCollision2D], which contains information about a " +"collision that occurred during the last call to [method move_and_slide]. " +"Since the body can collide several times in a single call to [method " +"move_and_slide], you must specify the index of the collision in the range 0 " +"to ([method get_slide_collision_count] - 1).\n" +"[b]Example:[/b] Iterate through the collisions with a [code]for[/code] loop:\n" +"[codeblocks]\n" +"[gdscript]\n" +"for i in get_slide_collision_count():\n" +" var collision = get_slide_collision(i)\n" +" print(\"Collided with: \", collision.get_collider().name)\n" +"[/gdscript]\n" +"[csharp]\n" +"for (int i = 0; i < GetSlideCollisionCount(); i++)\n" +"{\n" +" KinematicCollision2D collision = GetSlideCollision(i);\n" +" GD.Print(\"Collided with: \", (collision.GetCollider() as Node).Name);\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"返回 [KinematicCollision2D],包含最近一次调用 [method move_and_slide] 时发生的" +"碰撞信息。因为单次调用 [method move_and_slide] 可能发生多次碰撞,所以你必须指" +"定碰撞索引,范围为 0 到 ([method get_slide_collision_count] - 1)。\n" +"[b]示例:[/b]使用 [code]for[/code] 循环遍历碰撞:\n" +"[codeblocks]\n" +"[gdscript]\n" +"for i in get_slide_collision_count():\n" +"var collision = get_slide_collision(i)\n" +"print(\"碰到了:\", collision.get_collider().name)\n" +"[/gdscript]\n" +"[csharp]\n" +"for (int i = 0; i < GetSlideCollisionCount(); i++)\n" +"{\n" +" KinematicCollision2D collision = GetSlideCollision(i);\n" +" GD.Print(\"碰到了:\", (collision.GetCollider() as Node).Name);\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Returns the number of times the body collided and changed direction during " "the last call to [method move_and_slide]." @@ -20777,9 +26619,63 @@ msgstr "" "1)}\n" "[/codeblock]" +msgid "" +"[TextServer] RID of the font used to render glyph, this value can be used " +"with [code]TextServer.font_*[/code] methods to retrieve font information.\n" +"[b]Note:[/b] Read-only. Setting this property won't affect drawing." +msgstr "" +"渲染字形所用字体的 [TextServer] RID,该值可以通过 [code]TextServer.font_*[/" +"code] 方法来检索字体信息。\n" +"[b]注意:[/b]只读。设置该属性不影响绘制。" + +msgid "" +"Number of glyphs in the grapheme cluster. This value is set in the first " +"glyph of a cluster.\n" +"[b]Note:[/b] Read-only. Setting this property won't affect drawing." +msgstr "" +"字素簇中的字形数量。该值在簇的第一个字形中设置。\n" +"[b]注意:[/b]只读。设置该属性不会影响绘制。" + +msgid "" +"Glyph flags. See [enum TextServer.GraphemeFlag] for more info.\n" +"[b]Note:[/b] Read-only. Setting this property won't affect drawing." +msgstr "" +"字形标志。详见 [enum TextServer.GraphemeFlag]。\n" +"[b]注意:[/b]只读。设置该属性不会影响绘制。" + +msgid "" +"Glyph index specific to the [member font]. If you want to replace this glyph, " +"use [method TextServer.font_get_glyph_index] with [member font] to get a new " +"glyph index for a single character." +msgstr "" +"特定于 [member font] 的字形索引。如果你想替换该字形,请使用 [member font] 调" +"用 [method TextServer.font_get_glyph_index] 获取单个字符的新字形索引。" + msgid "The position offset the character will be drawn with (in pixels)." msgstr "绘制字符的位置偏移量(单位:像素)。" +msgid "" +"If [code]true[/code], FX transform is called for outline drawing.\n" +"[b]Note:[/b] Read-only. Setting this property won't affect drawing." +msgstr "" +"如果为 [code]true[/code],则调用 FX 变换进行轮廓绘制。\n" +"[b]注意:[/b]只读。设置该属性不会影响绘制。" + +msgid "" +"Absolute character range in the string, corresponding to the glyph.\n" +"[b]Note:[/b] Read-only. Setting this property won't affect drawing." +msgstr "" +"该字符串中的绝对字符范围,对应于字形。\n" +"[b]注意:[/b]只读。设置该属性不会影响绘制。" + +msgid "" +"The character offset of the glyph, relative to the current [RichTextEffect] " +"custom block.\n" +"[b]Note:[/b] Read-only. Setting this property won't affect drawing." +msgstr "" +"该字形的字符偏移量,相对于当前 [RichTextEffect] 自定义块。\n" +"[b]注意:[/b]只读。设置该属性不会影响绘制。" + msgid "" "The current transform of the current glyph. It can be overridden (for " "example, by driving the position and rotation from a curve). You can also " @@ -20942,9 +26838,15 @@ msgstr "" "如果可以从指定的 [param class] 实例化对象,则返回 [code]true[/code],否则返回 " "[code]false[/code]。" +msgid "Calls a static method on a class." +msgstr "调用类的静态方法。" + msgid "Returns whether the specified [param class] is available or not." msgstr "返回指定的类 [param class] 是否可用。" +msgid "Returns the API type of [param class]. See [enum APIType]." +msgstr "返回 [param class] 的 API 类型。见 [enum APIType]。" + msgid "" "Returns an array with all the keys in [param enum] of [param class] or its " "ancestry." @@ -21003,6 +26905,9 @@ msgid "" "ancestor classes." msgstr "返回 [param class] 或其祖先类的 [param property] 的默认值。" +msgid "Returns the getter method name of [param property] of [param class]." +msgstr "返回 [param class] 类中 [param property] 属性的 getter 方法名。" + msgid "" "Returns an array with all the properties of [param class] or its ancestry if " "[param no_inheritance] is [code]false[/code]." @@ -21010,6 +26915,9 @@ msgstr "" "如果 [param no_inheritance] 为 [code]false[/code],则返回包含 [param class] 或" "其祖先的所有属性的数组。" +msgid "Returns the setter method name of [param property] of [param class]." +msgstr "返回 [param class] 类中 [param property] 属性的 setter 方法名。" + msgid "" "Returns the [param signal] data of [param class] or its ancestry. The " "returned value is a [Dictionary] with the following keys: [code]args[/code], " @@ -21084,6 +26992,21 @@ msgstr "" msgid "Returns whether [param inherits] is an ancestor of [param class] or not." msgstr "返回 [param inherits] 是否为 [param class] 的祖先。" +msgid "Native Core class type." +msgstr "原生核心类型。" + +msgid "Native Editor class type." +msgstr "原生编辑器类型。" + +msgid "GDExtension class type." +msgstr "GDExtension 类型。" + +msgid "GDExtension Editor class type." +msgstr "GDExtension 编辑器类型。" + +msgid "Unknown class type." +msgstr "未知类型。" + msgid "A multiline text editor designed for editing code." msgstr "多行文本编辑器,针对编辑代码而设计。" @@ -21171,6 +27094,17 @@ msgstr "" "如果 [param line_only] 为 [code]true[/code] 或 [param end_key] 为空 [String]," "则该区块不会延续到下一行。" +msgid "" +"Returns [code]true[/code] if the given line is foldable. A line is foldable " +"if it is the start of a valid code region (see [method " +"get_code_region_start_tag]), if it is the start of a comment or string block, " +"or if the next non-empty line is more indented (see [method TextEdit." +"get_indent_level])." +msgstr "" +"如果给定的行可折叠则返回 [code]true[/code]。可折叠的情况有:这一行是有效代码区" +"块的开头(见 [method get_code_region_start_tag]),这一行是注释或字符串块的开" +"头,以及后续非空行的缩进程度更高(见 [method TextEdit.get_indent_level])。" + msgid "Cancels the autocomplete menu." msgstr "取消自动补全菜单。" @@ -21227,6 +27161,17 @@ msgstr "" msgid "Deletes all lines that are selected or have a caret on them." msgstr "删除所选行以及有光标停留的行。" +msgid "" +"If there is no selection, indentation is inserted at the caret. Otherwise, " +"the selected lines are indented like [method indent_lines]. Equivalent to the " +"[member ProjectSettings.input/ui_text_indent] action. The indentation " +"characters used depend on [member indent_use_spaces] and [member indent_size]." +msgstr "" +"如果没有选中内容,则在光标处插入缩进。否则会将所选行缩进一级,与 [method " +"indent_lines] 类似。等价于 [member ProjectSettings.input/ui_text_indent] 动" +"作。所使用的缩进字符取决于 [member indent_use_spaces] 和 [member " +"indent_size]。" + msgid "" "Duplicates all lines currently selected with any caret. Duplicates the entire " "line beneath the current one no matter where the caret is within the line." @@ -21312,6 +27257,9 @@ msgstr "" msgid "Gets all executing lines." msgstr "获取所有正在执行的行。" +msgid "Returns all lines that are currently folded." +msgstr "返回当前所有折叠的行。" + msgid "" "Returns the full text with char [code]0xFFFF[/code] at the caret location." msgstr "返回在文本光标位置带有 [code]0xFFFF[/code] 字符的全文。" @@ -21336,6 +27284,13 @@ msgstr "如果注释的 [param start_key] 存在,返回 [code]true[/code] 。" msgid "Returns [code]true[/code] if string [param start_key] exists." msgstr "如果字符串的 [param start_key] 存在,返回 [code]true[/code] 。" +msgid "" +"Indents all lines that are selected or have a caret on them. Uses spaces or a " +"tab depending on [member indent_use_spaces]. See [method unindent_lines]." +msgstr "" +"缩进所有选中的行或光标所在的行。使用空格还是制表符取决于 [member " +"indent_use_spaces]。见 [method unindent_lines]。" + msgid "" "Returns delimiter index if [param line] [param column] is in a comment. If " "[param column] is not provided, will return delimiter index if the entire " @@ -21354,6 +27309,45 @@ msgstr "" "供 [param column],且整个 [param line] 是一个字符串,则将返回分隔符索引。否则" "返回 [code]-1[/code]。" +msgid "" +"Returns [code]true[/code] if the given line is bookmarked. See [method " +"set_line_as_bookmarked]." +msgstr "" +"如果给定的行设置了书签,则返回 [code]true[/code]。见 [method " +"set_line_as_bookmarked]。" + +msgid "" +"Returns [code]true[/code] if the given line is breakpointed. See [method " +"set_line_as_breakpoint]." +msgstr "" +"如果给定的行设置了断点,则返回 [code]true[/code]。见 [method " +"set_line_as_breakpoint]。" + +msgid "" +"Returns [code]true[/code] if the given line is a code region end. See [method " +"set_code_region_tags]." +msgstr "" +"如果给定的行是代码区块的结尾,则返回 [code]true[/code]。见 [method " +"set_code_region_tags]。" + +msgid "" +"Returns [code]true[/code] if the given line is a code region start. See " +"[method set_code_region_tags]." +msgstr "" +"如果给定的行是代码区块的开头,则返回 [code]true[/code]。见 [method " +"set_code_region_tags]。" + +msgid "" +"Returns [code]true[/code] if the given line is marked as executing. See " +"[method set_line_as_executing]." +msgstr "" +"如果给定的行被标记为正在执行,则返回 [code]true[/code]。见 [method " +"set_line_as_executing]。" + +msgid "" +"Returns [code]true[/code] if the given line is folded. See [method fold_line]." +msgstr "如果给定的行已折叠,则返回 [code]true[/code]。见 [method fold_line]。" + msgid "Moves all lines down that are selected or have a caret on them." msgstr "将所选行以及有光标停留的行向下移动。" @@ -21382,9 +27376,50 @@ msgstr "设置当前选定的补全选项。" msgid "Sets the code hint text. Pass an empty string to clear." msgstr "设置代码提示文本。传递一个空字符串来清除。" +msgid "" +"If [code]true[/code], the code hint will draw below the main caret. If " +"[code]false[/code], the code hint will draw above the main caret. See [method " +"set_code_hint]." +msgstr "" +"如果为 [code]true[/code],则会在主光标下方绘制代码提示。如果为 [code]false[/" +"code],则会在主光标上方绘制代码提示。见 [method set_code_hint]。" + msgid "Sets the code region start and end tags (without comment delimiter)." msgstr "设置代码区块的开始和结束标签(不含注释分隔符)。" +msgid "" +"Sets the given line as bookmarked. If [code]true[/code] and [member " +"gutters_draw_bookmarks] is [code]true[/code], draws the [theme_item bookmark] " +"icon in the gutter for this line. See [method get_bookmarked_lines] and " +"[method is_line_bookmarked]." +msgstr "" +"为给定的行设置书签。如果为 [code]true[/code] 并且 [member " +"gutters_draw_bookmarks] 为 [code]true[/code],则会在边栏中为该行绘制 " +"[theme_item bookmark] 图标。见 [method get_bookmarked_lines] 和 [method " +"is_line_bookmarked]。" + +msgid "" +"Sets the given line as a breakpoint. If [code]true[/code] and [member " +"gutters_draw_breakpoints_gutter] is [code]true[/code], draws the [theme_item " +"breakpoint] icon in the gutter for this line. See [method " +"get_breakpointed_lines] and [method is_line_breakpointed]." +msgstr "" +"为给定的行设置断点。如果为 [code]true[/code] 并且 [member " +"gutters_draw_breakpoints_gutter] 为 [code]true[/code],则会在边栏中为该行绘制 " +"[theme_item breakpoint] 图标。见 [method get_breakpointed_lines] 和 [method " +"is_line_breakpointed]。" + +msgid "" +"Sets the given line as executing. If [code]true[/code] and [member " +"gutters_draw_executing_lines] is [code]true[/code], draws the [theme_item " +"executing_line] icon in the gutter for this line. See [method " +"get_executing_lines] and [method is_line_executing]." +msgstr "" +"将给定的行设置为正在执行。如果为 [code]true[/code] 并且 [member " +"gutters_draw_executing_lines] 为 [code]true[/code],则会在边栏中为该行绘制 " +"[theme_item executing_line] 图标。见 [method get_executing_lines] 和 [method " +"is_line_executing]。" + msgid "Sets the symbol emitted by [signal symbol_validate] as a valid lookup." msgstr "将 [signal symbol_validate] 发出的符号设置为有效查找。" @@ -21394,6 +27429,22 @@ msgstr "在给定行切换代码块的折叠。" msgid "Toggle the folding of the code block on all lines with a caret on them." msgstr "在所有带有光标的行上切换代码块的折叠。" +msgid "Unfolds all lines that are folded." +msgstr "展开所有已折叠的行。" + +msgid "" +"Unfolds the given line if it is folded or if it is hidden under a folded line." +msgstr "如果给定的行处于折叠状态,或被隐藏在折叠行下,则展开该行。" + +msgid "" +"Unindents all lines that are selected or have a caret on them. Uses spaces or " +"a tab depending on [member indent_use_spaces]. Equivalent to the [member " +"ProjectSettings.input/ui_text_dedent] action. See [method indent_lines]." +msgstr "" +"将所选行或光标所在行取消一级缩进。会根据 [member indent_use_spaces] 决定使用空" +"格还是制表符。等价于 [member ProjectSettings.input/ui_text_dedent] 动作。见 " +"[method indent_lines]。" + msgid "" "Submits all completion options added with [method " "add_code_completion_option]. Will try to force the autocomplete menu to " @@ -21404,6 +27455,46 @@ msgstr "" "force] 是 [code]true[/code],将尝试强制弹出自动补全菜单 。\n" "[b]注意:[/b]这将取代所有当前的候补选项。" +msgid "" +"If [code]true[/code], uses [member auto_brace_completion_pairs] to " +"automatically insert the closing brace when the opening brace is inserted by " +"typing or autocompletion. Also automatically removes the closing brace when " +"using backspace on the opening brace." +msgstr "" +"如果为 [code]true[/code],则当左括号被键入或被自动补全插入时,使用 [member " +"auto_brace_completion_pairs] 自动插入右括号。对左括号使用退格键时,也会自动移" +"除右括号。" + +msgid "" +"If [code]true[/code], highlights brace pairs when the caret is on either one, " +"using [member auto_brace_completion_pairs]. If matching, the pairs will be " +"underlined. If a brace is unmatched, it is colored with [theme_item " +"brace_mismatch_color]." +msgstr "" +"如果为 [code]true[/code],则当光标在一对括号中任何一个的位置时,使用 [member " +"auto_brace_completion_pairs] 将其高亮。配对的括号将添加下划线。如果无法配对," +"则会使用 [theme_item brace_mismatch_color] 着色。" + +msgid "" +"Sets the brace pairs to be autocompleted. For each entry in the dictionary, " +"the key is the opening brace and the value is the closing brace that matches " +"it. A brace is a [String] made of symbols. See [member " +"auto_brace_completion_enabled] and [member " +"auto_brace_completion_highlight_matching]." +msgstr "" +"将括号对设置为自动补全。字典元素中,键是左括号、值是对应的右括号。括号是由符号" +"构成的 [String]。见 [member auto_brace_completion_enabled] 和 [member " +"auto_brace_completion_highlight_matching]。" + +msgid "" +"If [code]true[/code], the [member ProjectSettings.input/" +"ui_text_completion_query] action requests code completion. To handle it, see " +"[method _request_code_completion] or [signal code_completion_requested]." +msgstr "" +"如果为 [code]true[/code],则 [member ProjectSettings.input/" +"ui_text_completion_query] 动作会请求进行代码补全。处理请求见 [method " +"_request_code_completion] 或 [signal code_completion_requested]。" + msgid "Sets prefixes that will trigger code completion." msgstr "设置将触发代码补全的前缀。" @@ -21415,6 +27506,75 @@ msgid "" "Sets the string delimiters. All existing string delimiters will be removed." msgstr "设置字符串分隔符。将删除所有的现有字符串分隔符。" +msgid "" +"If [code]true[/code], bookmarks are drawn in the gutter. This gutter is " +"shared with breakpoints and executing lines. See [method " +"set_line_as_bookmarked]." +msgstr "" +"如果为 [code]true[/code],则在边栏中绘制书签。该边栏与断点和执行行共享。见 " +"[method set_line_as_bookmarked]." + +msgid "" +"If [code]true[/code], breakpoints are drawn in the gutter. This gutter is " +"shared with bookmarks and executing lines. Clicking the gutter will toggle " +"the breakpoint for the line, see [method set_line_as_breakpoint]." +msgstr "" +"如果为 [code]true[/code],则在边栏中绘制断点。该边栏与书签和执行行共享。点击边" +"栏会开关对应行的断点,见 [method set_line_as_breakpoint]." + +msgid "" +"If [code]true[/code], executing lines are marked in the gutter. This gutter " +"is shared with breakpoints and bookmarks. See [method set_line_as_executing]." +msgstr "" +"如果为 [code]true[/code],则在边栏中绘制执行行。该边栏与断点和书签共享。见 " +"[method set_line_as_executing]." + +msgid "" +"If [code]true[/code], the fold gutter is drawn. In this gutter, the " +"[theme_item can_fold_code_region] icon is drawn for each foldable line (see " +"[method can_fold_line]) and the [theme_item folded_code_region] icon is drawn " +"for each folded line (see [method is_line_folded]). These icons can be " +"clicked to toggle the fold state, see [method toggle_foldable_line]. [member " +"line_folding] must be [code]true[/code] to show icons." +msgstr "" +"如果为 [code]true[/code],则会绘制折叠栏。该边栏会为每个能够折叠的行绘制 " +"[theme_item can_fold_code_region] 图标(见 [method can_fold_line]),已折叠的" +"行则绘制 [theme_item folded_code_region] 图标(见 [method is_line_folded])。" +"点击这些图标可以开关折叠状态,见 [method toggle_foldable_line]。[member " +"line_folding] 为 [code]true[/code] 才会显示图标。" + +msgid "" +"If [code]true[/code], the line number gutter is drawn. Line numbers start at " +"[code]1[/code] and are incremented for each line of text. Clicking and " +"dragging in the line number gutter will select entire lines of text." +msgstr "" +"如果为 [code]true[/code],则会绘制行号栏。行号从 [code]1[/code] 开始,逐行递" +"增。在行号栏中点击并拖动会选中整行文本。" + +msgid "" +"If [code]true[/code], line numbers drawn in the gutter are zero padded based " +"on the total line count. Requires [member gutters_draw_line_numbers] to be " +"set to [code]true[/code]." +msgstr "" +"如果为 [code]true[/code],在边栏中绘制的行号会根据总行数用零填充。[member " +"gutters_draw_line_numbers] 须为 [code]true[/code]。" + +msgid "" +"If [code]true[/code], an extra indent is automatically inserted when a new " +"line is added and a prefix in [member indent_automatic_prefixes] is found. If " +"a brace pair opening key is found, the matching closing brace will be moved " +"to another new line (see [member auto_brace_completion_pairs])." +msgstr "" +"如果为 [code]true[/code],添加新行并且存在 [member indent_automatic_prefixes] " +"中的前缀时会自动插入一级额外的缩进。如果存在括号对中的左括号,就会将对应的右括" +"号移动到新的一行(见 [member auto_brace_completion_pairs])。" + +msgid "" +"Prefixes to trigger an automatic indent. Used when [member indent_automatic] " +"is set to [code]true[/code]." +msgstr "" +"触发自动缩进的前缀。[member indent_automatic] 为 [code]true[/code] 时使用。" + msgid "" "Size of the tabulation indent (one [kbd]Tab[/kbd] press) in characters. If " "[member indent_use_spaces] is enabled the number of spaces to use." @@ -21425,6 +27585,15 @@ msgstr "" msgid "Use spaces instead of tabs for indentation." msgstr "使用空格代替制表符进行缩进。" +msgid "" +"If [code]true[/code], lines can be folded. Otherwise, line folding methods " +"like [method fold_line] will not work and [method can_fold_line] will always " +"return [code]false[/code]. See [member gutters_draw_fold_gutter]." +msgstr "" +"如果为 [code]true[/code],则可以折叠行。否则 [method fold_line] 等与行折叠相关" +"的方法将无法工作,并且 [method can_fold_line] 将始终返回 [code]false[/code]。" +"见 [member gutters_draw_fold_gutter]。" + msgid "" "Draws vertical lines at the provided columns. The first entry is considered a " "main hard guideline and is draw more prominently." @@ -21445,9 +27614,42 @@ msgstr "" "在行中添加或移除断点时触发。如果该行通过退格键移动,则在旧行处触发一个移除的信" "号。" +msgid "" +"Emitted when the user requests code completion. This signal will not be sent " +"if [method _request_code_completion] is overridden or [member " +"code_completion_enabled] is [code]false[/code]." +msgstr "" +"在用户请求代码补全时发出。如果 [method _request_code_completion] 被覆盖或者 " +"[member code_completion_enabled] 为 [code]false[/code],则不会发送该信号。" + +msgid "" +"Emitted when the user hovers over a symbol. Unlike [signal Control." +"mouse_entered], this signal is not emitted immediately, but when the cursor " +"is over the symbol for [member ProjectSettings.gui/timers/tooltip_delay_sec] " +"seconds.\n" +"[b]Note:[/b] [member symbol_tooltip_on_hover] must be [code]true[/code] for " +"this signal to be emitted." +msgstr "" +"当用户在符号上悬停时发出。该信号与 [signal Control.mouse_entered] 不同,不会立" +"即发出,而是需要光标在符号上停留 [member ProjectSettings.gui/timers/" +"tooltip_delay_sec] 秒。\n" +"[b]注意:[/b][member symbol_tooltip_on_hover] 为 [code]true[/code] 时才会发出" +"该信号。" + msgid "Emitted when the user has clicked on a valid symbol." msgstr "用户点击有效符号时发出。" +msgid "" +"Emitted when the user hovers over a symbol. The symbol should be validated " +"and responded to, by calling [method set_symbol_lookup_word_as_valid].\n" +"[b]Note:[/b] [member symbol_lookup_on_click] must be [code]true[/code] for " +"this signal to be emitted." +msgstr "" +"用户将鼠标悬停在符号上时发出。应该通过调用 [method " +"set_symbol_lookup_word_as_valid] 对该符号进行验证和响应。\n" +"[b]注意:[/b][member symbol_lookup_on_click] 必须为 [code]true[/code] 才会发出" +"该信号。" + msgid "Marks the option as a class." msgstr "将该选项标记为类。" @@ -21582,6 +27784,11 @@ msgid "" "region can be folded." msgstr "设置一个自定义 [Texture2D],以在代码区块可以折叠时在行折叠栏中绘制。" +msgid "" +"Background panel for the color preview box in autocompletion (visible when " +"the color is translucent)." +msgstr "自动补全时颜色预览框的背景面板(颜色半透明时可见)。" + msgid "Icon to draw in the executing gutter for executing lines." msgstr "执行行的图标,会在执行栏中绘制。" @@ -22232,6 +28439,21 @@ msgstr "" msgid "A node that provides a polygon shape to a [CollisionObject2D] parent." msgstr "向 [CollisionObject2D] 父级提供多边形形状的节点。" +msgid "" +"A node that provides a polygon shape to a [CollisionObject2D] parent and " +"allows to edit it. The polygon can be concave or convex. This can give a " +"detection shape to an [Area2D], turn [PhysicsBody2D] into a solid object, or " +"give a hollow shape to a [StaticBody2D].\n" +"[b]Warning:[/b] A non-uniformly scaled [CollisionPolygon2D] will likely not " +"behave as expected. Make sure to keep its scale the same on all axes and " +"adjust its polygon instead." +msgstr "" +"向 [CollisionObject2D] 父级提供多边形形状的节点,允许对形状进行编辑,可以是凹" +"多边形也可以是凸多边形。该节点可以为 [Area2D] 提供检测形状,将 " +"[PhysicsBody2D] 变成实体对象,为 [StaticBody2D] 提供空心形状。\n" +"[b]警告:[/b]非均匀缩放的 [CollisionShape2D] 可能不会按预期运行。请确保在所有" +"轴上保持其缩放相同,可改为调整其多边形形状。" + msgid "Collision build mode. Use one of the [enum BuildMode] constants." msgstr "碰撞构建模式。使用 [enum BuildMode] 常量之一。" @@ -22307,6 +28529,25 @@ msgstr "" "[b]警告:[/b]非均匀缩放的 [CollisionShape3D] 应该无法按预期工作。请确保它在所" "有轴上的缩放是一致的,可以用对形状资源的调整来代替非均匀缩放。" +msgid "" +"The collision shape color that is displayed in the editor, or in the running " +"project if [b]Debug > Visible Collision Shapes[/b] is checked at the top of " +"the editor.\n" +"[b]Note:[/b] The default value is [member ProjectSettings.debug/shapes/" +"collision/shape_color]. The [code]Color(0, 0, 0, 0)[/code] value documented " +"here is a placeholder, and not the actual default debug color." +msgstr "" +"碰撞形状的颜色,在编辑器中显示,勾选编辑器顶部的 [b]调试 > 显示碰撞形状[/b] 时" +"也会在运行项目时显示。\n" +"[b]注意:[/b]默认值为 [member ProjectSettings.debug/shapes/collision/" +"shape_color]。这里记录的 [code]Color(0, 0, 0, 0)[/code] 值是占位符,不是实际的" +"默认调试颜色。" + +msgid "" +"If [code]true[/code], when the shape is displayed, it will show a solid fill " +"color in addition to its wireframe." +msgstr "如果为 [code]true[/code],则显示形状时除了显示线框外还会显示填充颜色。" + msgid "" "Length that the resulting collision extends in either direction perpendicular " "to its 2D polygon." @@ -22443,6 +28684,15 @@ msgstr "补间插值演示" msgid "GUI Drag And Drop Demo" msgstr "GUI 拖放演示" +msgid "" +"Constructs a default [Color] from opaque black. This is the same as [constant " +"BLACK].\n" +"[b]Note:[/b] In C#, this constructs a [Color] with all of its components set " +"to [code]0.0[/code] (transparent black)." +msgstr "" +"用不透明的黑色构造默认的 [Color],与 [constant BLACK] 相同。\n" +"[b]注意:[/b]在 C# 中构造的是所有分量都为 [code]0.0[/code] 的颜色(透明黑)。" + msgid "" "Constructs a [Color] from the existing color, with [member a] set to the " "given [param alpha] value.\n" @@ -22649,6 +28899,37 @@ msgstr "" "[/csharp]\n" "[/codeblocks]" +msgid "" +"Returns a [Color] constructed from red ([param r8]), green ([param g8]), blue " +"([param b8]), and optionally alpha ([param a8]) integer channels, each " +"divided by [code]255.0[/code] for their final value.\n" +"[codeblock]\n" +"var red = Color.from_rgba8(255, 0, 0) # Same as Color(1, 0, 0).\n" +"var dark_blue = Color.from_rgba8(0, 0, 51) # Same as Color(0, 0, " +"0.2).\n" +"var my_color = Color.from_rgba8(306, 255, 0, 102) # Same as Color(1.2, 1, 0, " +"0.4).\n" +"[/codeblock]\n" +"[b]Note:[/b] Due to the lower precision of [method from_rgba8] compared to " +"the standard [Color] constructor, a color created with [method from_rgba8] " +"will generally not be equal to the same color created with the standard " +"[Color] constructor. Use [method is_equal_approx] for comparisons to avoid " +"issues with floating-point precision error." +msgstr "" +"返回一个由整数红通道([param r8])、整数绿通道([param g8])、整数蓝通道" +"([param b8])和可选的整数 Alpha 通道([param a8])构造的 [Color],每个通道的" +"最终值都是除以 [code]255.0[/code] 后得到的。\n" +"[codeblock]\n" +"var red = Color.from_rgba8(255, 0, 0) # 与 Color(1, 0, 0) 相同。\n" +"var dark_blue = Color.from_rgba8(0, 0, 51) # 与 Color(0, 0, 0.2) 相" +"同。\n" +"var my_color = Color.from_rgba8(306, 255, 0, 102) # 与 Color(1.2, 1, 0, 0.4) " +"相同。\n" +"[/codeblock]\n" +"[b]注意:[/b]因为 [method from_rgba8] 的精度比标准 [Color] 构造函数低,所以使" +"用 [method from_rgba8] 创建的颜色通常与使用标准 [Color] 构造函数创建的相同颜色" +"不相等。请使用 [method Color.is_equal_approx] 进行比较,避免浮点数精度误差。" + msgid "" "Decodes a [Color] from an RGBE9995 format integer. See [constant Image." "FORMAT_RGBE9995]." @@ -23184,6 +29465,15 @@ msgstr "对 [member g] 的封装,使用 0 到 255 的范围而不是 0 到 1 msgid "The HSV hue of this color, on the range 0 to 1." msgstr "这个颜色的 HSV 色相,范围是 0 到 1。" +msgid "The OKHSL hue of this color, on the range 0 to 1." +msgstr "这个颜色的 OKHSL 色相,范围是 0 到 1。" + +msgid "The OKHSL lightness of this color, on the range 0 to 1." +msgstr "这个颜色的 OKHSL 亮度,范围为 0 到 1。" + +msgid "The OKHSL saturation of this color, on the range 0 to 1." +msgstr "这个颜色的 OKHSL 饱和度,范围为 0 到 1。" + msgid "The color's red component, typically on the range of 0 to 1." msgstr "颜色的红色分量,通常在 0 到 1 的范围内。" @@ -23706,6 +29996,25 @@ msgstr "" "1 - c.g, 1 - c.b, 1 - c.a)[/code]。与 [method inverted] 不同,[member a] 分量" "也将被反转。" +msgid "" +"A resource class for managing a palette of colors, which can be loaded and " +"saved using [ColorPicker]." +msgstr "用于管理调色板的资源类,可以用 [ColorPicker] 来加载和保存。" + +msgid "" +"The [ColorPalette] resource is designed to store and manage a collection of " +"colors. This resource is useful in scenarios where a predefined set of colors " +"is required, such as for creating themes, designing user interfaces, or " +"managing game assets. The built-in [ColorPicker] control can also make use of " +"[ColorPalette] without additional code." +msgstr "" +"[ColorPalette] 资源可用于存储和管理颜色的合集。常用于需要一组预设颜色的场景," +"例如创建主题、设计用户界面、管理游戏资产等。内置的 [ColorPicker] 控件无需额外" +"编写代码就可以使用 [ColorPalette]。" + +msgid "A [PackedColorArray] containing the colors in the palette." +msgstr "包含调色板中颜色的 [PackedColorArray]。" + msgid "A widget that provides an interface for selecting or modifying a color." msgstr "提供用于选择或修改颜色的界面的小工具。" @@ -23888,6 +30197,9 @@ msgstr "颜色预设下拉菜单展开时使用的图标。" msgid "The icon for color preset drop down menu when folded." msgstr "颜色预设下拉菜单折叠时使用的图标。" +msgid "The icon for color preset option menu." +msgstr "颜色预设菜单的图标。" + msgid "" "The indicator used to signalize that the color value is outside the 0-1 range." msgstr "该指示器用于指示颜色值在 0-1 范围之外。" @@ -23898,6 +30210,9 @@ msgid "" msgstr "" "显示在颜色框/圆(取决于 [member picker_shape])上的图像,标记当前选择的颜色。" +msgid "The fill image displayed behind the picker cursor." +msgstr "拾取器光标后显示的填充图像。" + msgid "" "Background panel for the color preview box (visible when the color is " "translucent)." @@ -24011,6 +30326,9 @@ msgid "" "is rendered." msgstr "合成器资源存储用于自定义 [Viewport] 渲染方式的属性。" +msgid "The Compositor" +msgstr "合成器" + msgid "" "The custom [CompositorEffect]s that are applied during rendering of viewports " "using this compositor." @@ -24048,6 +30366,46 @@ msgstr "" "effect_callback_type] 中指定的效果回调类型一致。可以通过 [param render_data] " "访问渲染状态,这个状态只有在渲染时有效,不应该存储。" +msgid "" +"If [code]true[/code] and MSAA is enabled, this will trigger a color buffer " +"resolve before the effect is run.\n" +"[b]Note:[/b] In [method _render_callback], to access the resolved buffer " +"use:\n" +"[codeblock]\n" +"var render_scene_buffers = render_data.get_render_scene_buffers()\n" +"var color_buffer = render_scene_buffers.get_texture(\"render_buffers\", " +"\"color\")\n" +"[/codeblock]" +msgstr "" +"如果为 [code]true[/code] 并且启用了 MSAA,则会在执行该效果之前触发颜色缓冲的解" +"析。\n" +"[b]注意:[/b]要在 [method _render_callback] 中访问解析后的缓冲,请使用:\n" +"[codeblock]\n" +"var render_scene_buffers = render_data.get_render_scene_buffers()\n" +"var color_buffer = render_scene_buffers.get_texture(\"render_buffers\", " +"\"color\")\n" +"[/codeblock]" + +msgid "" +"If [code]true[/code] and MSAA is enabled, this will trigger a depth buffer " +"resolve before the effect is run.\n" +"[b]Note:[/b] In [method _render_callback], to access the resolved buffer " +"use:\n" +"[codeblock]\n" +"var render_scene_buffers = render_data.get_render_scene_buffers()\n" +"var depth_buffer = render_scene_buffers.get_texture(\"render_buffers\", " +"\"depth\")\n" +"[/codeblock]" +msgstr "" +"如果为 [code]true[/code] 并且启用了 MSAA,则会在执行该效果之前触发深度缓冲的解" +"析。\n" +"[b]注意:[/b]要在 [method _render_callback] 中访问解析后的缓冲,请使用:\n" +"[codeblock]\n" +"var render_scene_buffers = render_data.get_render_scene_buffers()\n" +"var depth_buffer = render_scene_buffers.get_texture(\"render_buffers\", " +"\"depth\")\n" +"[/codeblock]" + msgid "" "The type of effect that is implemented, determines at what stage of rendering " "the callback is called." @@ -24058,6 +30416,77 @@ msgid "" "added to." msgstr "如果为 [code]true[/code],则该渲染效果会应用到所有相关视口。" +msgid "" +"If [code]true[/code] this triggers motion vectors being calculated during the " +"opaque render state.\n" +"[b]Note:[/b] In [method _render_callback], to access the motion vector buffer " +"use:\n" +"[codeblock]\n" +"var render_scene_buffers = render_data.get_render_scene_buffers()\n" +"var motion_buffer = render_scene_buffers.get_velocity_texture()\n" +"[/codeblock]" +msgstr "" +"如果为 [code]true[/code],则会在不透明渲染状态下触发运动向量的计算。\n" +"[b]注意:[/b]要在 [method _render_callback] 中访问运动向量缓冲,请使用:\n" +"[codeblock]\n" +"var render_scene_buffers = render_data.get_render_scene_buffers()\n" +"var motion_buffer = render_scene_buffers.get_velocity_texture()\n" +"[/codeblock]" + +msgid "" +"If [code]true[/code] this triggers normal and roughness data to be output " +"during our depth pre-pass, only applicable for the Forward+ renderer.\n" +"[b]Note:[/b] In [method _render_callback], to access the roughness buffer " +"use:\n" +"[codeblock]\n" +"var render_scene_buffers = render_data.get_render_scene_buffers()\n" +"var roughness_buffer = render_scene_buffers." +"get_texture(\"forward_clustered\", \"normal_roughness\")\n" +"[/codeblock]\n" +"The raw normal and roughness buffer is stored in an optimized format, " +"different than the one available in Spatial shaders. When sampling the " +"buffer, a conversion function must be applied. Use this function, copied from " +"[url=https://github.com/godotengine/godot/blob/" +"da5f39889f155658cef7f7ec3cc1abb94e17d815/servers/rendering/renderer_rd/" +"shaders/forward_clustered/scene_forward_clustered_inc.glsl#L334-L341]here[/" +"url]:\n" +"[codeblock]\n" +"vec4 normal_roughness_compatibility(vec4 p_normal_roughness) {\n" +" float roughness = p_normal_roughness.w;\n" +" if (roughness > 0.5) {\n" +" roughness = 1.0 - roughness;\n" +" }\n" +" roughness /= (127.0 / 255.0);\n" +" return vec4(normalize(p_normal_roughness.xyz * 2.0 - 1.0) * 0.5 + 0.5, " +"roughness);\n" +"}\n" +"[/codeblock]" +msgstr "" +"如果为 [code]true[/code],则会在深度预阶段中输出法线和粗糙度数据,仅适用于 " +"Forward+ 渲染器。\n" +"[b]注意:[/b]在 [method _render_callback] 中访问粗糙度缓冲:\n" +"[codeblock]\n" +"var render_scene_buffers = render_data.get_render_scene_buffers()\n" +"var roughness_buffer = render_scene_buffers." +"get_texture(\"forward_clustered\", \"normal_roughness\")\n" +"[/codeblock]\n" +"原始的法线和粗糙度缓冲使用优化格式存储,与空间着色器中的格式不同。对缓冲采样时" +"必须应用转换函数。请使用从[url=https://github.com/godotengine/godot/blob/" +"da5f39889f155658cef7f7ec3cc1abb94e17d815/servers/rendering/renderer_rd/" +"shaders/forward_clustered/scene_forward_clustered_inc.glsl#L334-L341]这里[/" +"url]复制的函数:\n" +"[codeblock]\n" +"vec4 normal_roughness_compatibility(vec4 p_normal_roughness) {\n" +" float roughness = p_normal_roughness.w;\n" +" if (roughness > 0.5) {\n" +" roughness = 1.0 - roughness;\n" +" }\n" +" roughness /= (127.0 / 255.0);\n" +" return vec4(normalize(p_normal_roughness.xyz * 2.0 - 1.0) * 0.5 + 0.5, " +"roughness);\n" +"}\n" +"[/codeblock]" + msgid "" "If [code]true[/code] this triggers specular data being rendered to a separate " "buffer and combined after effects have been applied, only applicable for the " @@ -24069,25 +30498,30 @@ msgstr "" msgid "" "The callback is called before our opaque rendering pass, but after depth " "prepass (if applicable)." -msgstr "该回调在我们的不透明渲染阶段之前、在深度前置阶段之后(如果适用)调用。" +msgstr "回调在不透明渲染阶段之前调用,但在深度前置阶段之后(如果适用)。" msgid "" "The callback is called after our opaque rendering pass, but before our sky is " "rendered." -msgstr "该回调在我们的不透明渲染阶段之后、天空渲染之前调用。" +msgstr "回调在不透明渲染阶段之后调用,但在渲染天空之前。" msgid "" "The callback is called after our sky is rendered, but before our back buffers " "are created (and if enabled, before subsurface scattering and/or screen space " "reflections)." msgstr "" -"在渲染天空之后、创建后台缓冲区之前(如果启用,则在次表面散射和/或屏幕空间反射" -"之前)调用回调。" +"回调在渲染天空之后调用,但在创建后台缓冲之前(如果启用,则在次表面散射和/或屏" +"幕空间反射之前)。" msgid "" "The callback is called before our transparent rendering pass, but after our " "sky is rendered and we've created our back buffers." -msgstr "在我们的透明渲染阶段之前、渲染天空并且创建了后台缓冲区之后,调用回调。" +msgstr "回调在透明渲染阶段之前调用,但在渲染天空和创建后台缓冲区之后。" + +msgid "" +"The callback is called after our transparent rendering pass, but before any " +"built-in post-processing effects and output to our render target." +msgstr "回调在透明渲染阶段之后调用,但在内置后期效果和输出到渲染目标之前。" msgid "Represents the size of the [enum EffectCallbackType] enum." msgstr "代表 [enum EffectCallbackType] 枚举的大小。" @@ -24933,6 +31367,80 @@ msgid "" "parent control." msgstr "所有 GUI 控件的基类。根据其父控件调整其位置和大小。" +msgid "" +"Base class for all UI-related nodes. [Control] features a bounding rectangle " +"that defines its extents, an anchor position relative to its parent control " +"or the current viewport, and offsets relative to the anchor. The offsets " +"update automatically when the node, any of its parents, or the screen size " +"change.\n" +"For more information on Godot's UI system, anchors, offsets, and containers, " +"see the related tutorials in the manual. To build flexible UIs, you'll need a " +"mix of UI elements that inherit from [Control] and [Container] nodes.\n" +"[b]Note:[/b] Since both [Node2D] and [Control] inherit from [CanvasItem], " +"they share several concepts from the class such as the [member CanvasItem." +"z_index] and [member CanvasItem.visible] properties.\n" +"[b]User Interface nodes and input[/b]\n" +"Godot propagates input events via viewports. Each [Viewport] is responsible " +"for propagating [InputEvent]s to their child nodes. As the [member SceneTree." +"root] is a [Window], this already happens automatically for all UI elements " +"in your game.\n" +"Input events are propagated through the [SceneTree] from the root node to all " +"child nodes by calling [method Node._input]. For UI elements specifically, it " +"makes more sense to override the virtual method [method _gui_input], which " +"filters out unrelated input events, such as by checking z-order, [member " +"mouse_filter], focus, or if the event was inside of the control's bounding " +"box.\n" +"Call [method accept_event] so no other node receives the event. Once you " +"accept an input, it becomes handled so [method Node._unhandled_input] will " +"not process it.\n" +"Only one [Control] node can be in focus. Only the node in focus will receive " +"events. To get the focus, call [method grab_focus]. [Control] nodes lose " +"focus when another node grabs it, or if you hide the node in focus.\n" +"Sets [member mouse_filter] to [constant MOUSE_FILTER_IGNORE] to tell a " +"[Control] node to ignore mouse or touch events. You'll need it if you place " +"an icon on top of a button.\n" +"[Theme] resources change the control's appearance. The [member theme] of a " +"[Control] node affects all of its direct and indirect children (as long as a " +"chain of controls is uninterrupted). To override some of the theme items, " +"call one of the [code]add_theme_*_override[/code] methods, like [method " +"add_theme_font_override]. You can also override theme items in the " +"Inspector.\n" +"[b]Note:[/b] Theme items are [i]not[/i] [Object] properties. This means you " +"can't access their values using [method Object.get] and [method Object.set]. " +"Instead, use the [code]get_theme_*[/code] and [code]add_theme_*_override[/" +"code] methods provided by this class." +msgstr "" +"所有 UI 相关节点的基类。[Control] 具有定义其范围的边界矩形,相对于父控件或当前" +"视口的锚点位置,以及相对于锚点的偏移。当节点、任何父节点或屏幕尺寸发生变化时," +"偏移就会自动更新。\n" +"更多关于 Godot 的 UI 系统、锚点、偏移和容器的信息,请参阅手册中的相关教程。要" +"构建灵活的 UI,你需要混合使用从 [Control] 和 [Container] 节点继承的 UI 元" +"素。\n" +"[b]注意:[/b][Node2D] 和 [Control] 都继承自 [CanvasItem],它们都具有该类的 " +"[member CanvasItem.z_index]、[member CanvasItem.visible] 等属性。\n" +"[b]用户界面节点与输入[/b]\n" +"Godot 使用视口来传播输入事件。视口负责将 [InputEvent] 传播给它的子节点。因为 " +"[member SceneTree.root] 是 [Window],所以游戏中的所有 UI 元素都会自动进行传" +"播。\n" +"输入事件通过调用 [method Node._input] 在 [SceneTree] 中传播,从根节点传播到所" +"有子节点。对 UI 元素而言,覆盖的最好是 [method _gui_input],可以过滤掉无关的输" +"入事件,例如它会对 Z 顺序、[member mouse_filter]、焦点、事件是否在该控件的边界" +"框内等条件进行检查。\n" +"请调用 [method accept_event],这样其他节点就不会收到该事件。输入被接受后,就会" +"被标记为已处理,[method Node._unhandled_input] 不会对它进行处理。\n" +"只能有一个 [Control] 节点处于焦点。只有处于焦点的节点才会接收到事件。要获得焦" +"点,请调用 [method grab_focus]。导致 [Control] 节点失去焦点的情况有:其他节点" +"获得了焦点、隐藏了聚焦节点。\n" +"将 [member mouse_filter] 设置为 [constant MOUSE_FILTER_IGNORE] 可以让 " +"[Control] 节点忽略鼠标或触摸事件。如果你在按钮上放了一个图标,就会需要用到。\n" +"[Theme] 资源会更改控件的外观。[Control] 节点的 [member theme] 会影响所有直接和" +"间接子级节点(只要控件链没有被打断)。要覆盖某些主题项,请调用 " +"[code]add_theme_*_override[/code] 方法,例如 [method " +"add_theme_font_override]。你也可以在检查器中覆盖主题项。\n" +"[b]注意:[/b]主题项[i]不是[/i] [Object] 的属性。这意味着你无法使用 [method " +"Object.get] 和 [method Object.set] 访问它们的值。请改用这个类的 " +"[code]get_theme_*[/code] 和 [code]add_theme_*_override[/code] 方法。" + msgid "GUI documentation index" msgstr "GUI 文档索引" @@ -24991,6 +31499,59 @@ msgstr "" "[/csharp]\n" "[/codeblocks]" +msgid "" +"Godot calls this method to pass you the [param data] from a control's [method " +"_get_drag_data] result. Godot first calls [method _can_drop_data] to test if " +"[param data] is allowed to drop at [param at_position] where [param " +"at_position] is local to this control.\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _can_drop_data(position, data):\n" +" return typeof(data) == TYPE_DICTIONARY and data.has(\"color\")\n" +"\n" +"func _drop_data(position, data):\n" +" var color = data[\"color\"]\n" +"[/gdscript]\n" +"[csharp]\n" +"public override bool _CanDropData(Vector2 atPosition, Variant data)\n" +"{\n" +" return data.VariantType == Variant.Type.Dictionary && data." +"AsGodotDictionary().ContainsKey(\"color\");\n" +"}\n" +"\n" +"public override void _DropData(Vector2 atPosition, Variant data)\n" +"{\n" +" Color color = data.AsGodotDictionary()[\"color\"].AsColor();\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Godot 调用该方法把 [param data] 传给你,这是从某个控件的 [method " +"_get_drag_data] 获得的结果。Godot 首先会调用 [method _can_drop_data] 来检查是" +"否允许把 [param data] 拖放到 [param at_position],这里的 [param at_position] " +"使用的是这个控件的局部坐标系。\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _can_drop_data(position, data):\n" +" return typeof(data) == TYPE_DICTIONARY and data.has(\"color\")\n" +"\n" +"func _drop_data(position, data):\n" +" var color = data[\"color\"]\n" +"[/gdscript]\n" +"[csharp]\n" +"public override bool _CanDropData(Vector2 atPosition, Variant data)\n" +"{\n" +" return data.VariantType == Variant.Type.Dictionary && data." +"AsGodotDictionary().ContainsKey(\"color\");\n" +"}\n" +"\n" +"public override void _DropData(Vector2 atPosition, Variant data)\n" +"{\n" +" Color color = data.AsGodotDictionary()[\"color\"].AsColor();\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Godot calls this method to get data that can be dragged and dropped onto " "controls that expect drop data. Returns [code]null[/code] if there is no data " @@ -25067,6 +31628,93 @@ msgstr "" "[Button]、[PanelContainer] 等)时,该方法将不会被调用。它只能用于最基本的 GUI " "节点,如 [Control]、[Container]、[Panel] 等。" +msgid "" +"Virtual method to be implemented by the user. Returns the tooltip text for " +"the position [param at_position] in control's local coordinates, which will " +"typically appear when the cursor is resting over this control. See [method " +"get_tooltip].\n" +"[b]Note:[/b] If this method returns an empty [String] and [method " +"_make_custom_tooltip] is not overridden, no tooltip is displayed." +msgstr "" +"用户实现的虚方法。返回位于控件局部坐标系中 [param at_position] 位置的工具提示" +"文本,工具提示一般会在鼠标停留在该控件上时显示。见 [method get_tooltip]。\n" +"[b]注意:[/b]如果返回的是空 [String] 并且未覆盖 [method " +"_make_custom_tooltip],则不会显示工具提示。" + +msgid "" +"Virtual method to be implemented by the user. Override this method to handle " +"and accept inputs on UI elements. See also [method accept_event].\n" +"[b]Example:[/b] Click on the control to print a message:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _gui_input(event):\n" +" if event is InputEventMouseButton:\n" +" if event.button_index == MOUSE_BUTTON_LEFT and event.pressed:\n" +" print(\"I've been clicked D:\")\n" +"[/gdscript]\n" +"[csharp]\n" +"public override void _GuiInput(InputEvent @event)\n" +"{\n" +" if (@event is InputEventMouseButton mb)\n" +" {\n" +" if (mb.ButtonIndex == MouseButton.Left && mb.Pressed)\n" +" {\n" +" GD.Print(\"I've been clicked D:\");\n" +" }\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"If the [param event] inherits [InputEventMouse], this method will [b]not[/b] " +"be called when:\n" +"- the control's [member mouse_filter] is set to [constant " +"MOUSE_FILTER_IGNORE];\n" +"- the control is obstructed by another control on top, that doesn't have " +"[member mouse_filter] set to [constant MOUSE_FILTER_IGNORE];\n" +"- the control's parent has [member mouse_filter] set to [constant " +"MOUSE_FILTER_STOP] or has accepted the event;\n" +"- the control's parent has [member clip_contents] enabled and the [param " +"event]'s position is outside the parent's rectangle;\n" +"- the [param event]'s position is outside the control (see [method " +"_has_point]).\n" +"[b]Note:[/b] The [param event]'s position is relative to this control's " +"origin." +msgstr "" +"由用户实现的虚方法。使用此方法处理和接受 UI 元素上的输入。另见 [method " +"accept_event]。\n" +"[b]示例:[/b]点击控件时输出一段消息:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _gui_input(event):\n" +" if event is InputEventMouseButton:\n" +" if event.button_index == MOUSE_BUTTON_LEFT and event.pressed:\n" +" print(\"我已被点击 D:\")\n" +"[/gdscript]\n" +"[csharp]\n" +"public override void _GuiInput(InputEvent @event)\n" +"{\n" +" if (@event is InputEventMouseButton mb)\n" +" {\n" +" if (mb.ButtonIndex == MouseButton.Left && mb.Pressed)\n" +" {\n" +" GD.Print(\"我已被点击 D:\");\n" +" }\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"如果 [param event] 继承自 [InputEventMouse],则符合下列条件时[b]不会[/b]调用该" +"方法:\n" +"- 控件的 [member mouse_filter] 为 [constant MOUSE_FILTER_IGNORE];\n" +"- 控件被上方的其他控件阻挡,且该控件没有将 [member mouse_filter] 设置为 " +"[constant MOUSE_FILTER_IGNORE];\n" +"- 控件父节点的 [member mouse_filter] 为 [constant MOUSE_FILTER_STOP] 或已接受" +"该事件;\n" +"- 控件父节点启用了 [member clip_contents] 且 [param event] 的位置在父节点矩形" +"范围之外;\n" +"- [param event] 的位置在控件范围之外(见 [method _has_point])。\n" +"[b]注意:[/b][param event] 的位置相对于该控件的原点。" + msgid "" "Virtual method to be implemented by the user. Returns whether the given " "[param point] is inside this control.\n" @@ -25080,6 +31728,119 @@ msgstr "" "[b]注意:[/b]如果要检查一个点是否在该控件内部,可以使用 [code]Rect2(Vector2." "ZERO, size).has_point(point)[/code]。" +msgid "" +"Virtual method to be implemented by the user. Returns a [Control] node that " +"should be used as a tooltip instead of the default one. [param for_text] is " +"the return value of [method get_tooltip].\n" +"The returned node must be of type [Control] or Control-derived. It can have " +"child nodes of any type. It is freed when the tooltip disappears, so make " +"sure you always provide a new instance (if you want to use a pre-existing " +"node from your scene tree, you can duplicate it and pass the duplicated " +"instance). When [code]null[/code] or a non-Control node is returned, the " +"default tooltip will be used instead.\n" +"The returned node will be added as child to a [PopupPanel], so you should " +"only provide the contents of that panel. That [PopupPanel] can be themed " +"using [method Theme.set_stylebox] for the type [code]\"TooltipPanel\"[/code] " +"(see [member tooltip_text] for an example).\n" +"[b]Note:[/b] The tooltip is shrunk to minimal size. If you want to ensure " +"it's fully visible, you might want to set its [member custom_minimum_size] to " +"some non-zero value.\n" +"[b]Note:[/b] The node (and any relevant children) should have their [member " +"CanvasItem.visible] set to [code]true[/code] when returned, otherwise, the " +"viewport that instantiates it will not be able to calculate its minimum size " +"reliably.\n" +"[b]Note:[/b] If overridden, this method is called even if [method " +"get_tooltip] returns an empty string. When this happens with the default " +"tooltip, it is not displayed. To copy this behavior, return [code]null[/code] " +"in this method when [param for_text] is empty.\n" +"[b]Example:[/b] Use a constructed node as a tooltip:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _make_custom_tooltip(for_text):\n" +" var label = Label.new()\n" +" label.text = for_text\n" +" return label\n" +"[/gdscript]\n" +"[csharp]\n" +"public override Control _MakeCustomTooltip(string forText)\n" +"{\n" +" var label = new Label();\n" +" label.Text = forText;\n" +" return label;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Example:[/b] Usa a scene instance as a tooltip:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _make_custom_tooltip(for_text):\n" +" var tooltip = preload(\"res://some_tooltip_scene.tscn\").instantiate()\n" +" tooltip.get_node(\"Label\").text = for_text\n" +" return tooltip\n" +"[/gdscript]\n" +"[csharp]\n" +"public override Control _MakeCustomTooltip(string forText)\n" +"{\n" +" Node tooltip = ResourceLoader.Load<PackedScene>(\"res://" +"some_tooltip_scene.tscn\").Instantiate();\n" +" tooltip.GetNode<Label>(\"Label\").Text = forText;\n" +" return tooltip;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"由用户实现的虚方法。返回应当用作工具提示的 [Control] 节点,代替默认的工具提" +"示。[param for_text] 为 [method get_tooltip] 的返回值。\n" +"返回的节点必须是 [Control] 或派生自 Control 类型,其子节点可以是任何类型。工具" +"提示消失时会释放该节点,因此请确保始提供的始终是新的实例(如果想要使用场景树中" +"已有的节点,可以制作并返回其副本)。如果返回的是 [code]null[/code] 或非 " +"Control 节点,则会使用默认的工具提示。\n" +"返回的节点会添加为一个 [PopupPanel] 的子节点,因此只需提供该面板的内容。该 " +"[PopupPanel] 可以通过为 [code]\"TooltipPanel\"[/code] 类型调用 [method Theme." +"set_stylebox] 设置主题样式(示例见 [member tooltip_text])。\n" +"[b]注意:[/b]工具提示会缩小至最小尺寸。如果想要确保其完全可见,你可能会需要将 " +"[member custom_minimum_size] 设为非零值。\n" +"[b]注意:[/b]返回时节点(及其相关子级节点)的 [member CanvasItem.visible] 应设" +"为 [code]true[/code],否则执行实例化的视口无法为其计算可靠的最小尺寸。\n" +"[b]注意:[/b]覆盖该方法后,即便 [method get_tooltip] 返回空字符串也会调用该方" +"法。类似情况下不会显示默认工具提示。要复制该行为,请在 [param for_text] 为空时" +"返回 [code]null[/code]。\n" +"[b]示例:[/b]构造工具提示节点:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _make_custom_tooltip(for_text):\n" +" var label = Label.new()\n" +" label.text = for_text\n" +" return label\n" +"[/gdscript]\n" +"[csharp]\n" +"public override Control _MakeCustomTooltip(string forText)\n" +"{\n" +" var label = new Label();\n" +" label.Text = forText;\n" +" return label;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]示例:[/b]使用场景实例作为工具提示:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _make_custom_tooltip(for_text):\n" +" var tooltip = preload(\"res://some_tooltip_scene.tscn\").instantiate()\n" +" tooltip.get_node(\"Label\").text = for_text\n" +" return tooltip\n" +"[/gdscript]\n" +"[csharp]\n" +"public override Control _MakeCustomTooltip(string forText)\n" +"{\n" +" Node tooltip = ResourceLoader.Load<PackedScene>(\"res://" +"some_tooltip_scene.tscn\").Instantiate();\n" +" tooltip.GetNode<Label>(\"Label\").Text = forText;\n" +" return tooltip;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "User defined BiDi algorithm override function.\n" "Returns an [Array] of [Vector3i] text ranges and text base directions, in the " @@ -25103,6 +31864,65 @@ msgstr "" "点。\n" "[b]注意:[/b]不会影响 [Input] 中的方法,只会影响事件的传播。" +msgid "" +"Creates a local override for a theme [Color] with the specified [param name]. " +"Local overrides always take precedence when fetching theme items for the " +"control. An override can be removed with [method " +"remove_theme_color_override].\n" +"See also [method get_theme_color].\n" +"[b]Example:[/b] Override a [Label]'s color and reset it later:\n" +"[codeblocks]\n" +"[gdscript]\n" +"# Given the child Label node \"MyLabel\", override its font color with a " +"custom value.\n" +"$MyLabel.add_theme_color_override(\"font_color\", Color(1, 0.5, 0))\n" +"# Reset the font color of the child label.\n" +"$MyLabel.remove_theme_color_override(\"font_color\")\n" +"# Alternatively it can be overridden with the default value from the Label " +"type.\n" +"$MyLabel.add_theme_color_override(\"font_color\", " +"get_theme_color(\"font_color\", \"Label\"))\n" +"[/gdscript]\n" +"[csharp]\n" +"// Given the child Label node \"MyLabel\", override its font color with a " +"custom value.\n" +"GetNode<Label>(\"MyLabel\").AddThemeColorOverride(\"font_color\", new " +"Color(1, 0.5f, 0));\n" +"// Reset the font color of the child label.\n" +"GetNode<Label>(\"MyLabel\").RemoveThemeColorOverride(\"font_color\");\n" +"// Alternatively it can be overridden with the default value from the Label " +"type.\n" +"GetNode<Label>(\"MyLabel\").AddThemeColorOverride(\"font_color\", " +"GetThemeColor(\"font_color\", \"Label\"));\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"为名称为 [param name] 的主题 [Color] 创建本地覆盖项。为控件获取主题项目时,本" +"地覆盖项始终优先。覆盖项可以使用 [method remove_theme_color_override] 移除。\n" +"另见 [method get_theme_color]。\n" +"[b]示例:[/b]覆盖标签颜色并在之后重置:\n" +"[codeblocks]\n" +"[gdscript]\n" +"# 存在名叫“MyLabel”的子 Label 节点,使用自定义的值覆盖其字体颜色。\n" +"$MyLabel.add_theme_color_override(\"font_color\", Color(1, 0.5, 0))\n" +"# 重置该子标签的字体颜色。\n" +"$MyLabel.remove_theme_color_override(\"font_color\")\n" +"# 也可以使用 Label 类型的默认值覆盖。\n" +"$MyLabel.add_theme_color_override(\"font_color\", " +"get_theme_color(\"font_color\", \"Label\"))\n" +"[/gdscript]\n" +"[csharp]\n" +"// 存在名叫“MyLabel”的子 Label 节点,使用自定义的值覆盖其字体颜色。\n" +"GetNode<Label>(\"MyLabel\").AddThemeColorOverride(\"font_color\", new " +"Color(1, 0.5f, 0));\n" +"// 重置该子标签的字体颜色。\n" +"GetNode<Label>(\"MyLabel\").RemoveThemeColorOverride(\"font_color\");\n" +"// 也可以使用 Label 类型的默认值覆盖。\n" +"GetNode<Label>(\"MyLabel\").AddThemeColorOverride(\"font_color\", " +"GetThemeColor(\"font_color\", \"Label\"));\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Creates a local override for a theme constant with the specified [param " "name]. Local overrides always take precedence when fetching theme items for " @@ -25148,6 +31968,76 @@ msgstr "" "项始终优先。覆盖项可以使用 [method remove_theme_icon_override] 移除。\n" "另见 [method get_theme_icon]。" +msgid "" +"Creates a local override for a theme [StyleBox] with the specified [param " +"name]. Local overrides always take precedence when fetching theme items for " +"the control. An override can be removed with [method " +"remove_theme_stylebox_override].\n" +"See also [method get_theme_stylebox].\n" +"[b]Example:[/b] Modify a property in a [StyleBox] by duplicating it:\n" +"[codeblocks]\n" +"[gdscript]\n" +"# The snippet below assumes the child node \"MyButton\" has a StyleBoxFlat " +"assigned.\n" +"# Resources are shared across instances, so we need to duplicate it\n" +"# to avoid modifying the appearance of all other buttons.\n" +"var new_stylebox_normal = $MyButton.get_theme_stylebox(\"normal\")." +"duplicate()\n" +"new_stylebox_normal.border_width_top = 3\n" +"new_stylebox_normal.border_color = Color(0, 1, 0.5)\n" +"$MyButton.add_theme_stylebox_override(\"normal\", new_stylebox_normal)\n" +"# Remove the stylebox override.\n" +"$MyButton.remove_theme_stylebox_override(\"normal\")\n" +"[/gdscript]\n" +"[csharp]\n" +"// The snippet below assumes the child node \"MyButton\" has a StyleBoxFlat " +"assigned.\n" +"// Resources are shared across instances, so we need to duplicate it\n" +"// to avoid modifying the appearance of all other buttons.\n" +"StyleBoxFlat newStyleboxNormal = GetNode<Button>(\"MyButton\")." +"GetThemeStylebox(\"normal\").Duplicate() as StyleBoxFlat;\n" +"newStyleboxNormal.BorderWidthTop = 3;\n" +"newStyleboxNormal.BorderColor = new Color(0, 1, 0.5f);\n" +"GetNode<Button>(\"MyButton\").AddThemeStyleboxOverride(\"normal\", " +"newStyleboxNormal);\n" +"// Remove the stylebox override.\n" +"GetNode<Button>(\"MyButton\").RemoveThemeStyleboxOverride(\"normal\");\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"为名称为 [param name] 的主题 [StyleBox] 创建本地覆盖项。为控件获取主题项目时," +"本地覆盖项始终优先。覆盖项可以使用 [method remove_theme_stylebox_override] 移" +"除。\n" +"另见 [method get_theme_stylebox]。\n" +"[b]示例:[/b]通过创建副本来修改 [StyleBox] 属性:\n" +"[codeblocks]\n" +"[gdscript]\n" +"# 以下代码片段要求子节点“MyButton”分配了 StyleBoxFlat。\n" +"# 资源是跨实例共享的,因此我们需要制作其副本\n" +"# 来避免修改其他所有按钮的外观。\n" +"var new_stylebox_normal = $MyButton.get_theme_stylebox(\"normal\")." +"duplicate()\n" +"new_stylebox_normal.border_width_top = 3\n" +"new_stylebox_normal.border_color = Color(0, 1, 0.5)\n" +"$MyButton.add_theme_stylebox_override(\"normal\", new_stylebox_normal)\n" +"# 移除样式盒覆盖项。\n" +"$MyButton.remove_theme_stylebox_override(\"normal\")\n" +"[/gdscript]\n" +"[csharp]\n" +"// 以下代码片段要求子节点“MyButton”分配了 StyleBoxFlat。\n" +"// 资源是跨实例共享的,因此我们需要制作其副本\n" +"// 来避免修改其他所有按钮的外观。\n" +"StyleBoxFlat newStyleboxNormal = GetNode<Button>(\"MyButton\")." +"GetThemeStylebox(\"normal\").Duplicate() as StyleBoxFlat;\n" +"newStyleboxNormal.BorderWidthTop = 3;\n" +"newStyleboxNormal.BorderColor = new Color(0, 1, 0.5f);\n" +"GetNode<Button>(\"MyButton\").AddThemeStyleboxOverride(\"normal\", " +"newStyleboxNormal);\n" +"// 移除样式盒覆盖项。\n" +"GetNode<Button>(\"MyButton\").RemoveThemeStyleboxOverride(\"normal\");\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Prevents [code]*_theme_*_override[/code] methods from emitting [constant " "NOTIFICATION_THEME_CHANGED] until [method end_bulk_theme_override] is called." @@ -25282,6 +32172,29 @@ msgstr "" "[b]注意:[/b]将 [member Viewport.gui_snap_controls_to_pixels] 设置为 " "[code]true[/code],会导致显示的控件和返回的 [Rect2] 之间的舍入不准确。" +msgid "" +"Returns the position of this [Control] in global screen coordinates (i.e. " +"taking window position into account). Mostly useful for editor plugins.\n" +"Equals to [member global_position] if the window is embedded (see [member " +"Viewport.gui_embed_subwindows]).\n" +"[b]Example:[/b] Show a popup at the mouse position:\n" +"[codeblock]\n" +"popup_menu.position = get_screen_position() + get_local_mouse_position()\n" +"popup_menu.reset_size()\n" +"popup_menu.popup()\n" +"[/codeblock]" +msgstr "" +"返回该 [Control] 在全局屏幕坐标系中的位置(即考虑窗口的位置)。主要用于编辑器" +"插件。\n" +"如果窗口是嵌入式的,则等于 [member global_position](见 [member Viewport." +"gui_embed_subwindows])。\n" +"[b]示例:[/b]在鼠标位置显示弹出框:\n" +"[codeblock]\n" +"popup_menu.position = get_screen_position() + get_local_mouse_position()\n" +"popup_menu.reset_size()\n" +"popup_menu.popup()\n" +"[/codeblock]" + msgid "" "Returns a [Color] from the first matching [Theme] in the tree if that [Theme] " "has a color item with the specified [param name] and [param theme_type]. If " @@ -25423,6 +32336,54 @@ msgstr "" "[param name] 和主题类型 [param theme_type] 的样式盒项。\n" "详情请参阅 [method get_theme_color]。" +msgid "" +"Returns the tooltip text for the position [param at_position] in control's " +"local coordinates, which will typically appear when the cursor is resting " +"over this control. By default, it returns [member tooltip_text].\n" +"This method can be overridden to customize its behavior. See [method " +"_get_tooltip].\n" +"[b]Note:[/b] If this method returns an empty [String] and [method " +"_make_custom_tooltip] is not overridden, no tooltip is displayed." +msgstr "" +"返回位于控件局部坐标系中 [param at_position] 位置的工具提示文本,工具提示一般" +"会在鼠标停留在该控件上时显示。默认返回 [member tooltip_text]。\n" +"该方法可以通过覆盖来自定义行为。见 [method _get_tooltip]。\n" +"[b]注意:[/b]如果返回的是空 [String] 并且未覆盖 [method " +"_make_custom_tooltip],则不会显示工具提示。" + +msgid "" +"Creates an [InputEventMouseButton] that attempts to click the control. If the " +"event is received, the control gains focus.\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _process(delta):\n" +" grab_click_focus() # When clicking another Control node, this node will " +"be clicked instead.\n" +"[/gdscript]\n" +"[csharp]\n" +"public override void _Process(double delta)\n" +"{\n" +" GrabClickFocus(); // When clicking another Control node, this node will " +"be clicked instead.\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"创建一个尝试点击控件的 [InputEventMouseButton]。如果收到该事件,则该控件将获得" +"焦点。\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _process(delta):\n" +" grab_click_focus() # 点击另一个控制节点时,将改为点击该节点。\n" +"[/gdscript]\n" +"[csharp]\n" +"public override void _Process(double delta)\n" +"{\n" +" GrabClickFocus(); // 点击另一个控制节点时,将改为点击该节点。\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Steal the focus from another control and become the focused control (see " "[member focus_mode]).\n" @@ -25556,8 +32517,11 @@ msgstr "" "gui_is_drag_successful] 的替代方案。\n" "建议与 [constant Node.NOTIFICATION_DRAG_END] 配合使用。" -msgid "Returns [code]true[/code] if layout is right-to-left." -msgstr "如果布局是从右至左的,则返回 [code]true[/code]。" +msgid "" +"Returns [code]true[/code] if layout is right-to-left. See also [member " +"layout_direction]." +msgstr "" +"如果从右至左排版,则返回 [code]true[/code]。另见 [member layout_direction]。" msgid "Give up the focus. No other control will be able to receive input." msgstr "放弃焦点。不会让其他控件能够接收键盘输入。" @@ -25670,6 +32634,27 @@ msgstr "" "同时设置 [member offset_left] 和 [member offset_top]。相当于改变 [member " "position]。" +msgid "" +"Sets the given callables to be used instead of the control's own drag-and-" +"drop virtual methods. If a callable is empty, its respective virtual method " +"is used as normal.\n" +"The arguments for each callable should be exactly the same as their " +"respective virtual methods, which would be:\n" +"- [param drag_func] corresponds to [method _get_drag_data] and requires a " +"[Vector2];\n" +"- [param can_drop_func] corresponds to [method _can_drop_data] and requires " +"both a [Vector2] and a [Variant];\n" +"- [param drop_func] corresponds to [method _drop_data] and requires both a " +"[Vector2] and a [Variant]." +msgstr "" +"设置使用给定的可调用体代替控件自身的拖拽虚方法。如果可调用体为空,则会正常使用" +"对应的虚方法。\n" +"可调用体的参数应当与对应的虚方法完全相同,即:\n" +"- [param drag_func] 对应 [method _get_drag_data],需要 [Vector2];\n" +"- [param can_drop_func] 对应 [method _can_drop_data],需要 [Vector2] 和 " +"[Variant];\n" +"- [param drop_func] 对应 [method _drop_data],需要 [Vector2] 和 [Variant]。" + msgid "" "Shows the given control at the mouse pointer. A good time to call this method " "is in [method _get_drag_data]. The control must not be in the scene tree. You " @@ -25991,10 +32976,11 @@ msgstr "" msgid "" "Controls layout direction and text writing direction. Right-to-left layouts " -"are necessary for certain languages (e.g. Arabic and Hebrew)." +"are necessary for certain languages (e.g. Arabic and Hebrew). See also " +"[method is_layout_rtl]." msgstr "" -"控制布局方向和文本书写方向。某些语言需要从右至左的布局(例如阿拉伯语和希伯来" -"语)。" +"控制排版方向和文本书写方向。某些语言需要从右至左的布局(例如阿拉伯语和希伯来" +"语)。另见 [method is_layout_rtl]。" msgid "" "If [code]true[/code], automatically converts code line numbers, list indices, " @@ -26028,6 +33014,22 @@ msgstr "" "些事件。还控制控件是否能接收 [signal mouse_entered] 和 [signal mouse_exited] " "信号。参阅常量来了解每个常量的作用。" +msgid "" +"When enabled, scroll wheel events processed by [method _gui_input] will be " +"passed to the parent control even if [member mouse_filter] is set to " +"[constant MOUSE_FILTER_STOP].\n" +"You should disable it on the root of your UI if you do not want scroll events " +"to go to the [method Node._unhandled_input] processing.\n" +"[b]Note:[/b] Because this property defaults to [code]true[/code], this allows " +"nested scrollable containers to work out of the box." +msgstr "" +"启用后,即使 [member mouse_filter] 被设置为 [constant MOUSE_FILTER_STOP],由 " +"[method _gui_input] 处理的滚轮事件也会被传递给父控件。\n" +"如果不希望滚轮事件进入 [method Node._unhandled_input] 处理,则应该在用户界面的" +"根节点将其禁用。\n" +"[b]注意:[/b]由于该属性默认为 [code]true[/code],这使得嵌套的可滚动容器可以开" +"箱即用。" + msgid "" "Distance between the node's bottom edge and its parent control, based on " "[member anchor_bottom].\n" @@ -26230,6 +33232,84 @@ msgstr "" "[member theme] 属性都将被检查。最早匹配任意类型名称/类名称的项将被返回。最后检" "查项目级的主题和默认主题。" +msgid "" +"Defines if tooltip text should automatically change to its translated version " +"depending on the current locale. Uses the same auto translate mode as this " +"control when set to [constant Node.AUTO_TRANSLATE_MODE_INHERIT].\n" +"[b]Note:[/b] Tooltips customized using [method _make_custom_tooltip] do not " +"use this auto translate mode automatically." +msgstr "" +"定义工具提示文本是否应当根据当前区域设置自动变更为翻译后的版本。设为 " +"[constant Node.AUTO_TRANSLATE_MODE_INHERIT] 时使用与该控件相同的自动翻译模" +"式。\n" +"[b]注意:[/b]使用 [method _make_custom_tooltip] 自定义的工具提示不会自动使用该" +"自动翻译模式。" + +msgid "" +"The default tooltip text. The tooltip appears when the user's mouse cursor " +"stays idle over this control for a few moments, provided that the [member " +"mouse_filter] property is not [constant MOUSE_FILTER_IGNORE]. The time " +"required for the tooltip to appear can be changed with the [member " +"ProjectSettings.gui/timers/tooltip_delay_sec] setting.\n" +"This string is the default return value of [method get_tooltip]. Override " +"[method _get_tooltip] to generate tooltip text dynamically. Override [method " +"_make_custom_tooltip] to customize the tooltip interface and behavior.\n" +"The tooltip popup will use either a default implementation, or a custom one " +"that you can provide by overriding [method _make_custom_tooltip]. The default " +"tooltip includes a [PopupPanel] and [Label] whose theme properties can be " +"customized using [Theme] methods with the [code]\"TooltipPanel\"[/code] and " +"[code]\"TooltipLabel\"[/code] respectively. For example:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var style_box = StyleBoxFlat.new()\n" +"style_box.set_bg_color(Color(1, 1, 0))\n" +"style_box.set_border_width_all(2)\n" +"# We assume here that the `theme` property has been assigned a custom Theme " +"beforehand.\n" +"theme.set_stylebox(\"panel\", \"TooltipPanel\", style_box)\n" +"theme.set_color(\"font_color\", \"TooltipLabel\", Color(0, 1, 1))\n" +"[/gdscript]\n" +"[csharp]\n" +"var styleBox = new StyleBoxFlat();\n" +"styleBox.SetBgColor(new Color(1, 1, 0));\n" +"styleBox.SetBorderWidthAll(2);\n" +"// We assume here that the `Theme` property has been assigned a custom Theme " +"beforehand.\n" +"Theme.SetStyleBox(\"panel\", \"TooltipPanel\", styleBox);\n" +"Theme.SetColor(\"font_color\", \"TooltipLabel\", new Color(0, 1, 1));\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"默认工具提示文本。如果 [member mouse_filter] 属性不是 [constant " +"MOUSE_FILTER_IGNORE],则当用户的鼠标光标在此控件上停留片刻时,将出现工具提示。" +"可以使用 [member ProjectSettings.gui/timers/tooltip_delay_sec] 设置更改工具提" +"示出现所需的时间。\n" +"该字符串是 [method get_tooltip] 的默认返回值。要动态生成工具提示文本请覆盖 " +"[method _get_tooltip]。要自定义工具提示界面和行为请覆盖 [method " +"_make_custom_tooltip]。\n" +"工具提示弹出窗口将使用默认实现,或者使用通过覆盖 [method " +"_make_custom_tooltip] 提供的自定义实现。默认工具提示包括一个 [PopupPanel] 和 " +"[Label],其主题属性可以使用 [Theme] 方法分别对 [code]\"TooltipPanel\"[/code] " +"和 [code]\"TooltipLabel\"[/code] 进行自定义。例如:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var style_box = StyleBoxFlat.new()\n" +"style_box.set_bg_color(Color(1, 1, 0))\n" +"style_box.set_border_width_all(2)\n" +"# 我们在这里假设`Theme`属性已经被事先分配了一个自定义的主题。\n" +"theme.set_stylebox(\"panel\", \"TooltipPanel\", style_box)\n" +"theme.set_color(\"font_color\", \"TooltipLabel\", Color(0, 1, 1))\n" +"[/gdscript]\n" +"[csharp]\n" +"var styleBox = new StyleBoxFlat();\n" +"styleBox.SetBgColor(new Color(1, 1, 0));\n" +"styleBox.SetBorderWidthAll(2);\n" +"// 我们在这里假设`Theme`属性已经被事先分配了一个自定义的主题。\n" +"Theme.SetStyleBox(\"panel\", \"TooltipPanel\", styleBox);\n" +"Theme.SetColor(\"font_color\", \"TooltipLabel\", new Color(0, 1, 1));\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "Emitted when the node gains focus." msgstr "当该节点获得焦点时发出。" @@ -26456,8 +33536,13 @@ msgstr "" "上需要启用 [member ProjectSettings.input_devices/pointing/" "emulate_touch_from_mouse]。" -msgid "Sent when control layout direction is changed." -msgstr "当控件的布局方向改变时发送。" +msgid "" +"Sent when the control layout direction is changed from LTR or RTL or vice " +"versa. This notification is propagated to child Control nodes as result of a " +"change to [member layout_direction]." +msgstr "" +"当控件的排版方向在“从左至右”和“从右至左”之间切换时发送。因为是更改了 [member " +"layout_direction],所以该通知会传播到子级 Control 节点。" msgid "" "Show the system's arrow mouse cursor when the user hovers the node. Use with " @@ -26772,6 +33857,61 @@ msgstr "" "SIZE_EXPAND] 一起使用。与 [member size_flags_horizontal] 和 [member " "size_flags_vertical] 一起使用。" +msgid "" +"The control will receive mouse movement input events and mouse button input " +"events if clicked on through [method _gui_input]. The control will also " +"receive the [signal mouse_entered] and [signal mouse_exited] signals. These " +"events are automatically marked as handled, and they will not propagate " +"further to other controls. This also results in blocking signals in other " +"controls." +msgstr "" +"在控件上点击时,将通过 [method _gui_input] 收到鼠标移动输入事件和鼠标按钮输入" +"事件。控件还能够接收到 [signal mouse_entered] 和 [signal mouse_exited] 信号。" +"这些事件将自动被标记为已处理,不会进一步传播到其他控件。这也会导致其他控件中的" +"信号被阻止。" + +msgid "" +"The control will receive mouse movement input events and mouse button input " +"events if clicked on through [method _gui_input]. The control will also " +"receive the [signal mouse_entered] and [signal mouse_exited] signals.\n" +"If this control does not handle the event, the event will propagate up to its " +"parent control if it has one. The event is bubbled up the node hierarchy " +"until it reaches a non-[CanvasItem], a control with [constant " +"MOUSE_FILTER_STOP], or a [CanvasItem] with [member CanvasItem.top_level] " +"enabled. This will allow signals to fire in all controls it reaches. If no " +"control handled it, the event will be passed to [method Node._shortcut_input] " +"for further processing." +msgstr "" +"在控件上点击时,将通过 [method _gui_input] 收到鼠标移动输入事件和鼠标按钮输入" +"事件。控件还能够接收到 [signal mouse_entered] 和 [signal mouse_exited] 信" +"号。\n" +"如果该控件不处理事件,则存在父控件时会将该事件传播至父控件。事件能够沿节点架构" +"向上传播,直到遇见非 [CanvasItem] 节点、设为 [constant MOUSE_FILTER_STOP] 的控" +"件或启用 [member CanvasItem.top_level] 的 [CanvasItem]。这样事件到达的所有控件" +"就都可以触发信号。如果没有任何控件对其进行处理,该事件将被传递到 [method Node." +"_shortcut_input] 进行进一步处理。" + +msgid "" +"The control will not receive any mouse movement input events nor mouse button " +"input events through [method _gui_input]. The control will also not receive " +"the [signal mouse_entered] nor [signal mouse_exited] signals. This will not " +"block other controls from receiving these events or firing the signals. " +"Ignored events will not be handled automatically. If a child has [constant " +"MOUSE_FILTER_PASS] and an event was passed to this control, the event will " +"further propagate up to the control's parent.\n" +"[b]Note:[/b] If the control has received [signal mouse_entered] but not " +"[signal mouse_exited], changing the [member mouse_filter] to [constant " +"MOUSE_FILTER_IGNORE] will cause [signal mouse_exited] to be emitted." +msgstr "" +"控件不会通过 [method _gui_input] 收到任何鼠标移动输入事件和鼠标按钮输入事件," +"也无法接收 [signal mouse_entered] 和 [signal mouse_exited] 信号。不会阻止其他" +"控件对这些事件的接收和对相关信号的触发。忽略的事件不会自动处理。如果存在设为 " +"[constant MOUSE_FILTER_PASS] 的子控件,并且事件传递到了该控件,那么事件就会继" +"续传播至该控件的父节点。\n" +"[b]注意:[/b]如果控件已收到 [signal mouse_entered] 但尚未收到 [signal " +"mouse_exited],则将 [member mouse_filter] 更改为 [constant " +"MOUSE_FILTER_IGNORE] 将导致发出 [signal mouse_exited]。" + msgid "" "The control will grow to the left or top to make up if its minimum size is " "changed to be greater than its current size on the respective axis." @@ -26818,14 +33958,55 @@ msgid "" "direction." msgstr "自动布局方向,由父控件布局方向决定。" -msgid "Automatic layout direction, determined from the current locale." -msgstr "自动布局方向,根据当前语言环境确定。" +msgid "" +"Automatic layout direction, determined from the current locale. Right-to-left " +"layout direction is automatically used for languages that require it such as " +"Arabic and Hebrew, but only if a valid translation file is loaded for the " +"given language (unless said language is configured as a fallback in [member " +"ProjectSettings.internationalization/locale/fallback]). For all other " +"languages (or if no valid translation file is found by Godot), left-to-right " +"layout direction is used. If using [TextServerFallback] ([member " +"ProjectSettings.internationalization/rendering/text_driver]), left-to-right " +"layout direction is always used regardless of the language. Right-to-left " +"layout direction can also be forced using [member ProjectSettings." +"internationalization/rendering/force_right_to_left_layout_direction]." +msgstr "" +"自动排版方向,由当前区域设置决定。阿拉伯语和希伯来语等语言会自动使用从右至左的" +"排版方向,但前提是加载了该语言的有效翻译文件(除非将该语言在 [member " +"ProjectSettings.internationalization/locale/fallback] 中设为了回退语言)。其他" +"所有语言(或者 Godot 未找到有效的翻译文件)都会使用从左至右的排版方向。如果使" +"用的是 [TextServerFallback]([member ProjectSettings.internationalization/" +"rendering/text_driver]),则所有语言都会使用从左至右的排版方向。也可以使用 " +"[member ProjectSettings.internationalization/rendering/" +"force_right_to_left_layout_direction] 强制从右至左的排版方向。" msgid "Left-to-right layout direction." -msgstr "从左至右的布局方向。" +msgstr "从左至右的排版方向。" msgid "Right-to-left layout direction." -msgstr "从右至左的布局方向。" +msgstr "从右至左的排版方向。" + +msgid "" +"Automatic layout direction, determined from the system locale. Right-to-left " +"layout direction is automatically used for languages that require it such as " +"Arabic and Hebrew, but only if a valid translation file is loaded for the " +"given language.. For all other languages (or if no valid translation file is " +"found by Godot), left-to-right layout direction is used. If using " +"[TextServerFallback] ([member ProjectSettings.internationalization/rendering/" +"text_driver]), left-to-right layout direction is always used regardless of " +"the language." +msgstr "" +"自动排版方向,由系统区域设置决定。阿拉伯语和希伯来语等语言会自动使用从右至左的" +"排版方向,但前提是加载了该语言的有效翻译文件。其他所有语言(或者 Godot 未找到" +"有效的翻译文件)都会使用从左至右的排版方向。如果使用的是 [TextServerFallback]" +"([member ProjectSettings.internationalization/rendering/text_driver]),则所" +"有语言都会使用从左至右的排版方向。" + +msgid "Represents the size of the [enum LayoutDirection] enum." +msgstr "代表 [enum LayoutDirection] 枚举的大小。" + +msgid "Use [constant LAYOUT_DIRECTION_APPLICATION_LOCALE] instead." +msgstr "请改用 [constant LAYOUT_DIRECTION_APPLICATION_LOCALE]。" msgid "Text writing direction is the same as layout direction." msgstr "文字书写方向与布局方向相同。" @@ -26973,6 +34154,31 @@ msgid "" "ParticleFlags] for options)." msgstr "返回给定粒子标志的启用状态(选项见 [enum ParticleFlags])。" +msgid "" +"Requests the particles to process for extra process time during a single " +"frame.\n" +"Useful for particle playback, if used in combination with [member " +"use_fixed_seed] or by calling [method restart] with parameter " +"[code]keep_seed[/code] set to [code]true[/code]." +msgstr "" +"请求让粒子在一帧中使用额外的处理时间进行处理。\n" +"适用于粒子回放,需要与 [member use_fixed_seed] 配合使用,或者调用 [method " +"restart] 时将 [code]keep_seed[/code] 参数设为 [code]true[/code]。" + +msgid "" +"Restarts the particle emitter.\n" +"If [param keep_seed] is [code]true[/code], the current random seed will be " +"preserved. Useful for seeking and playback." +msgstr "" +"重启粒子发射器。\n" +"如果 [param keep_seed] 为 [code]true[/code],则会保留当前的随机数种子。适用于" +"跳转和播放。" + +msgid "" +"Sets the [Curve] of the parameter specified by [enum Parameter]. Should be a " +"unit [Curve]." +msgstr "设置 [enum Parameter] 指定的参数的 [Curve]。应当为单位 [Curve]。" + msgid "Sets the maximum value for the given parameter." msgstr "设置给定参数的最大值。" @@ -26986,12 +34192,22 @@ msgstr "启用或禁用给定的标志(选项见 [enum ParticleFlags])。" msgid "Number of particles emitted in one emission cycle." msgstr "单个发射周期内发射的粒子数。" +msgid "" +"Each particle's rotation will be animated along this [Curve]. Should be a " +"unit [Curve]." +msgstr "每个粒子的旋转将沿着这个 [Curve] 进行动画。应当为单位 [Curve]。" + msgid "Maximum initial rotation applied to each particle, in degrees." msgstr "应用于每个粒子的最大初始旋转,单位:度。" msgid "Minimum equivalent of [member angle_max]." msgstr "[member angle_max] 的对应最小值。" +msgid "" +"Each particle's angular velocity will vary along this [Curve]. Should be a " +"unit [Curve]." +msgstr "每个粒子的角速度将沿着这条 [Curve] 变化。应当为单位 [Curve]。" + msgid "" "Maximum initial angular velocity (rotation speed) applied to each particle in " "[i]degrees[/i] per second." @@ -27000,6 +34216,11 @@ msgstr "应用于每个粒子的最大初始角速度(旋转速度),单位 msgid "Minimum equivalent of [member angular_velocity_max]." msgstr "[member angular_velocity_max] 的对应最小值。" +msgid "" +"Each particle's animation offset will vary along this [Curve]. Should be a " +"unit [Curve]." +msgstr "每个粒子的动画偏移将沿着这个 [Curve] 变化。应当为单位 [Curve]。" + msgid "" "Maximum animation offset that corresponds to frame index in the texture. " "[code]0[/code] is the first frame, [code]1[/code] is the last one. See " @@ -27011,6 +34232,11 @@ msgstr "" msgid "Minimum equivalent of [member anim_offset_max]." msgstr "[member anim_offset_max] 的对应最小值。" +msgid "" +"Each particle's animation speed will vary along this [Curve]. Should be a " +"unit [Curve]." +msgstr "每个粒子的动画速度将沿着这个 [Curve] 变化。应当为单位 [Curve]。" + msgid "" "Maximum particle animation speed. Animation speed of [code]1[/code] means " "that the particles will make full [code]0[/code] to [code]1[/code] offset " @@ -27033,6 +34259,22 @@ msgid "" "multiplied by this color." msgstr "每个粒子的初始颜色。如果定义了 [member texture],它将乘以该颜色。" +msgid "" +"Each particle's initial color will vary along this [Gradient] (multiplied " +"with [member color])." +msgstr "" +"每个粒子的初始颜色将沿着这个 [Gradient] 变化(与 [member color] 相乘)。" + +msgid "" +"Each particle's color will vary along this [Gradient] over its lifetime " +"(multiplied with [member color])." +msgstr "" +"每个粒子的颜色将在其生命周期中沿着这个 [Gradient] 变化(与 [member color] 相" +"乘)。" + +msgid "Damping will vary along this [Curve]. Should be a unit [Curve]." +msgstr "阻尼将沿着这个 [Curve] 变化。应当为单位 [Curve]。" + msgid "" "The maximum rate at which particles lose velocity. For example value of " "[code]100[/code] means that the particle will go from [code]100[/code] " @@ -27127,6 +34369,10 @@ msgstr "" msgid "Gravity applied to every particle." msgstr "应用于每个粒子的重力。" +msgid "" +"Each particle's hue will vary along this [Curve]. Should be a unit [Curve]." +msgstr "每个粒子的色相将沿着这个 [Curve] 变化。应当为单位 [Curve]。" + msgid "" "Maximum initial hue variation applied to each particle. It will shift the " "particle color's hue." @@ -27150,6 +34396,11 @@ msgstr "每个粒子存在的时间。" msgid "Particle lifetime randomness ratio." msgstr "粒子寿命随机率。" +msgid "" +"Each particle's linear acceleration will vary along this [Curve]. Should be a " +"unit [Curve]." +msgstr "每个粒子的线性加速度将沿着这个 [Curve] 变化。应当为单位 [Curve]。" + msgid "" "Maximum linear acceleration applied to each particle in the direction of " "motion." @@ -27178,6 +34429,11 @@ msgstr "" "如果为 [code]true[/code],则只发生一个发射周期。如果在某个周期内设置为 " "[code]true[/code],则发射将在该周期结束时停止。" +msgid "" +"Each particle's orbital velocity will vary along this [Curve]. Should be a " +"unit [Curve]." +msgstr "每个粒子的轨道速度将沿着这个 [Curve] 变化。应当为单位 [Curve]。" + msgid "" "Maximum orbital velocity applied to each particle. Makes the particles circle " "around origin. Specified in number of full rotations around origin per second." @@ -27194,6 +34450,11 @@ msgstr "将粒子的 Y 轴与其速度方向对齐。" msgid "Particle system starts as if it had already run for this many seconds." msgstr "粒子系统启动时就好像已经运行了这么多秒一样。" +msgid "" +"Each particle's radial acceleration will vary along this [Curve]. Should be a " +"unit [Curve]." +msgstr "每个粒子的径向加速度将沿着这个 [Curve] 变化。应当为单位 [Curve]。" + msgid "" "Maximum radial acceleration applied to each particle. Makes particle " "accelerate away from the origin or towards it if negative." @@ -27207,12 +34468,39 @@ msgstr "[member radial_accel_max] 的对应最小值。" msgid "Emission lifetime randomness ratio." msgstr "发射寿命随机率。" +msgid "" +"Each particle's scale will vary along this [Curve]. Should be a unit [Curve]." +msgstr "每个粒子的缩放将沿着这个 [Curve] 变化。应当为单位 [Curve]。" + msgid "Maximum initial scale applied to each particle." msgstr "应用于每个粒子的最大初始缩放。" msgid "Minimum equivalent of [member scale_amount_max]." msgstr "[member scale_amount_max] 的对应最小值。" +msgid "" +"Each particle's horizontal scale will vary along this [Curve]. Should be a " +"unit [Curve].\n" +"[member split_scale] must be enabled." +msgstr "" +"每个粒子的水平缩放将沿着这个 [Curve] 变化。应当为单位 [Curve]。\n" +"必须启用 [member split_scale]。" + +msgid "" +"Each particle's vertical scale will vary along this [Curve]. Should be a unit " +"[Curve].\n" +"[member split_scale] must be enabled." +msgstr "" +"每个粒子的垂直缩放将沿着这个 [Curve] 变化。应当为单位 [Curve]。\n" +"必须启用 [member split_scale]。" + +msgid "" +"Sets the random seed used by the particle system. Only effective if [member " +"use_fixed_seed] is [code]true[/code]." +msgstr "" +"设置粒子系统所使用的随机数种子。仅在 [member use_fixed_seed] 为 [code]true[/" +"code] 时有效。" + msgid "" "Particle system's running speed scaling ratio. A value of [code]0[/code] can " "be used to pause the particles." @@ -27231,6 +34519,11 @@ msgid "" msgstr "" "每个粒子的初始方向范围,从 [code]+spread[/code] 度到 [code]-spread[/code] 度。" +msgid "" +"Each particle's tangential acceleration will vary along this [Curve]. Should " +"be a unit [Curve]." +msgstr "每个粒子的切向加速度将沿着这个 [Curve] 变化。应当为单位 [Curve]。" + msgid "" "Maximum tangential acceleration applied to each particle. Tangential " "acceleration is perpendicular to the particle's velocity giving the particles " @@ -27245,6 +34538,15 @@ msgstr "[member tangential_accel_max] 的对应最小值。" msgid "Particle texture. If [code]null[/code], particles will be squares." msgstr "粒子纹理。如果为 [code]null[/code],则粒子将为正方形。" +msgid "" +"If [code]true[/code], particles will use the same seed for every simulation " +"using the seed defined in [member seed]. This is useful for situations where " +"the visual outcome should be consistent across replays, for example when " +"using Movie Maker mode." +msgstr "" +"如果为 [code]true[/code],则每次模拟中粒子会使用 [member seed] 中定义的种子。" +"适用于需要在重放时保持视觉效果一致的情况,例如使用 Movie Maker 模式时。" + msgid "" "Emitted when all active particles have finished processing. When [member " "one_shot] is disabled, particles will process continuously, so this is never " @@ -27435,6 +34737,13 @@ msgstr "最大角度。" msgid "Minimum angle." msgstr "最小角度。" +msgid "" +"Each particle's angular velocity (rotation speed) will vary along this " +"[Curve] over its lifetime. Should be a unit [Curve]." +msgstr "" +"每个粒子的角速度(旋转速度)将在其生命周期内沿着这个 [Curve] 变化。应当为单位 " +"[Curve]。" + msgid "" "Minimum initial angular velocity (rotation speed) applied to each particle in " "[i]degrees[/i] per second." @@ -27468,6 +34777,41 @@ msgstr "" "code] 函数中插入 [code]ALBEDO *= COLOR.rgb;[/code]。否则,[member color] 将没" "有可见效果。" +msgid "" +"Each particle's initial color will vary along this [Gradient] (multiplied " +"with [member color]).\n" +"[b]Note:[/b] [member color_initial_ramp] multiplies the particle mesh's " +"vertex colors. To have a visible effect on a [BaseMaterial3D], [member " +"BaseMaterial3D.vertex_color_use_as_albedo] [i]must[/i] be [code]true[/code]. " +"For a [ShaderMaterial], [code]ALBEDO *= COLOR.rgb;[/code] must be inserted in " +"the shader's [code]fragment()[/code] function. Otherwise, [member " +"color_initial_ramp] will have no visible effect." +msgstr "" +"每个粒子的初始颜色将沿着该 [Gradient] 变化(乘以 [member color])。\n" +"[b]注意:[/b][member color_initial_ramp] 会与粒子网格的顶点颜色相乘。要在 " +"[BaseMaterial3D] 上产生可见效果,[member BaseMaterial3D." +"vertex_color_use_as_albedo] [i]必须[/i]为 [code]true[/code]。对于 " +"[ShaderMaterial],必须在着色器的 [code]fragment()[/code] 函数中插入 " +"[code]ALBEDO *= COLOR.rgb;[/code]。否则 [member color_initial_ramp] 将没有可见" +"效果。" + +msgid "" +"Each particle's color will vary along this [Gradient] over its lifetime " +"(multiplied with [member color]).\n" +"[b]Note:[/b] [member color_ramp] multiplies the particle mesh's vertex " +"colors. To have a visible effect on a [BaseMaterial3D], [member " +"BaseMaterial3D.vertex_color_use_as_albedo] [i]must[/i] be [code]true[/code]. " +"For a [ShaderMaterial], [code]ALBEDO *= COLOR.rgb;[/code] must be inserted in " +"the shader's [code]fragment()[/code] function. Otherwise, [member color_ramp] " +"will have no visible effect." +msgstr "" +"每个粒子的颜色将在其生命周期内沿该 [Gradient] 变化(乘以 [member color])。\n" +"[b]注意:[/b][member color_ramp] 会与粒子网格的顶点颜色相乘。要在 " +"[BaseMaterial3D] 上产生可见效果,[member BaseMaterial3D." +"vertex_color_use_as_albedo] [i]必须[/i]为 [code]true[/code]。对于 " +"[ShaderMaterial],必须在着色器的 [code]fragment()[/code] 函数中插入 " +"[code]ALBEDO *= COLOR.rgb;[/code]。否则 [member color_ramp] 将没有可见效果。" + msgid "Maximum damping." msgstr "最大阻尼。" @@ -28088,9 +35432,55 @@ msgstr "" msgid "A CSG Mesh shape that uses a mesh resource." msgstr "使用网格资源的 CSG 网格形状。" +msgid "" +"This CSG node allows you to use any mesh resource as a CSG shape, provided it " +"is [i]manifold[/i]. A manifold shape is closed, does not self-intersect, does " +"not contain internal faces and has no edges that connect to more than two " +"faces. See also [CSGPolygon3D] for drawing 2D extruded polygons to be used as " +"CSG nodes.\n" +"[b]Note:[/b] CSG nodes are intended to be used for level prototyping. " +"Creating CSG nodes has a significant CPU cost compared to creating a " +"[MeshInstance3D] with a [PrimitiveMesh]. Moving a CSG node within another CSG " +"node also has a significant CPU cost, so it should be avoided during gameplay." +msgstr "" +"该 CSG 节点允许你将任何[i]流形[/i]的网格资源用作 CSG 形状。流形的形状指的是闭" +"合、不自相交、不包含内部面、没有连接到两个面以上的边。将绘制的 2D 多边形挤出用" +"作 CSG 节点见 [CSGPolygon3D]。\n" +"[b]注意:[/b]CSG 节点旨在用于关卡原型设计。与使用 [PrimitiveMesh] 创建 " +"[MeshInstance3D] 相比,创建 CSG 节点具有显着的 CPU 成本。在另一个 CSG 节点中移" +"动 CSG 节点也会大量消耗 CPU,因此在游戏过程中应该避免这种情况。" + msgid "The [Material] used in drawing the CSG shape." msgstr "用于绘制 CSG 形状的 [Material]。" +msgid "" +"The [Mesh] resource to use as a CSG shape.\n" +"[b]Note:[/b] Some [Mesh] types such as [PlaneMesh], [PointMesh], [QuadMesh], " +"and [RibbonTrailMesh] are excluded from the type hint for this property, as " +"these primitives are non-[i]manifold[/i] and thus not compatible with the CSG " +"algorithm.\n" +"[b]Note:[/b] When using an [ArrayMesh], all vertex attributes except " +"[constant Mesh.ARRAY_VERTEX], [constant Mesh.ARRAY_NORMAL] and [constant Mesh." +"ARRAY_TEX_UV] are left unused. Only [constant Mesh.ARRAY_VERTEX] and " +"[constant Mesh.ARRAY_TEX_UV] will be passed to the GPU.\n" +"[constant Mesh.ARRAY_NORMAL] is only used to determine which faces require " +"the use of flat shading. By default, CSGMesh will ignore the mesh's vertex " +"normals, recalculate them for each vertex and use a smooth shader. If a flat " +"shader is required for a face, ensure that all vertex normals of the face are " +"approximately equal." +msgstr "" +"用作 CSG 形状的 [Mesh] 资源。\n" +"[b]注意:[/b]该属性的类型提示中排除了 [PlaneMesh]、[PointMesh]、[QuadMesh]、" +"[RibbonTrailMesh] 等 [Mesh] 类型,因为这些图元非[i]流形[/i],与 CSG 算法不兼" +"容。\n" +"[b]注意:[/b]使用 [ArrayMesh] 时,除 [constant Mesh.ARRAY_VERTEX]、[constant " +"Mesh.ARRAY_NORMAL] 和 [constant Mesh.ARRAY_TEX_UV] 之外的所有顶点属性均保持未" +"被使用的状态。只有 [constant Mesh.ARRAY_VERTEX] 和 [constant Mesh." +"ARRAY_TEX_UV] 会被传递到 GPU。\n" +"[constant Mesh.ARRAY_NORMAL] 仅被用于确定哪些面需要使用平直着色。默认情况下," +"CSGMesh 将忽略该网格的顶点法线,为每个顶点重新计算它们并使用一个平滑着色器。如" +"果面需要平直着色器,请确保面的所有顶点法线大致相等。" + msgid "Extrudes a 2D polygon shape to create a 3D mesh." msgstr "拉伸 2D 多边形形状以创建 3D 网格。" @@ -28178,6 +35568,16 @@ msgstr "" "当 [member mode] 为 [constant MODE_PATH] 时,用于在挤出时旋转 [member " "polygon] 的路径旋转方法。" +msgid "" +"When [member mode] is [constant MODE_PATH], if [code]true[/code] the polygon " +"will be rotated according to the proper tangent of the path at the sampled " +"points. If [code]false[/code] an approximation is used, which decreases in " +"accuracy as the number of subdivisions decreases." +msgstr "" +"当 [member mode] 为 [constant MODE_PATH] 时,如果为 [code]true[/code],则该多" +"边形会根据路径在采样点处的实际切线进行旋转。如果为 [code]false[/code],则会使" +"用近似值,减少细分数,因而降低精确度。" + msgid "" "When [member mode] is [constant MODE_PATH], extrusions that are less than " "this angle, will be merged together to reduce polygon count." @@ -28296,6 +35696,54 @@ msgstr "如果设置,则每个三角形中顶点的顺序会颠倒,从而导 msgid "The CSG base class." msgstr "CSG 基类。" +msgid "" +"This is the CSG base class that provides CSG operation support to the various " +"CSG nodes in Godot.\n" +"[b]Performance:[/b] CSG nodes are only intended for prototyping as they have " +"a significant CPU performance cost.\n" +"Consider baking final CSG operation results into static geometry that " +"replaces the CSG nodes.\n" +"Individual CSG root node results can be baked to nodes with static resources " +"with the editor menu that appears when a CSG root node is selected.\n" +"Individual CSG root nodes can also be baked to static resources with scripts " +"by calling [method bake_static_mesh] for the visual mesh or [method " +"bake_collision_shape] for the physics collision.\n" +"Entire scenes of CSG nodes can be baked to static geometry and exported with " +"the editor gltf scene exporter." +msgstr "" +"这是 CSG 的基类,为 Godot 中的各种 CSG 节点提供 CSG 运算支持。\n" +"[b]性能:[/b]CSG 节点仅适用于原型设计,存在显著的 CPU 性能消耗。\n" +"请考虑将最终的 CSG 运算结果烘焙为静态几何体,替换 CSG 节点。\n" +"使用选中 CSG 根节点后显示的编辑器菜单可以将各个 CSG 根节点的结果烘焙为使用静态" +"资源的节点。\n" +"使用脚本也可以将各个 CSG 根节点烘焙为静态资源,可视网格请调用 [method " +"bake_static_mesh],物理碰撞请调用 [method bake_collision_shape]。\n" +"使用编辑器的 gltf 场景导出器可以将由 CSG 节点构成的整个场景烘焙为静态几何体。" + +msgid "" +"Returns a baked physics [ConcavePolygonShape3D] of this node's CSG operation " +"result. Returns an empty shape if the node is not a CSG root node or has no " +"valid geometry.\n" +"[b]Performance:[/b] If the CSG operation results in a very detailed geometry " +"with many faces physics performance will be very slow. Concave shapes should " +"in general only be used for static level geometry and not with dynamic " +"objects that are moving." +msgstr "" +"返回针对该节点 CSG 运算结果烘焙的物理 [ConcavePolygonShape3D]。如果该节点不是 " +"CSG 根节点或者不包含有效的几何体,则返回空形状。\n" +"[b]性能:[/b]如果 CSG 运算得到的是包含大量细节的几何体,面数很多,那么物理性能" +"可能非常慢。一般来说,凹面形状应该只用来制作静态关卡几何体,不应用来制作可以移" +"动的动态物体。" + +msgid "" +"Returns a baked static [ArrayMesh] of this node's CSG operation result. " +"Materials from involved CSG nodes are added as extra mesh surfaces. Returns " +"an empty mesh if the node is not a CSG root node or has no valid geometry." +msgstr "" +"返回将该节点 CSG 运算的结果烘焙得到的静态 [ArrayMesh]。复杂 CSG 节点的材质会添" +"加为额外的网格表面。如果该节点不是 CSG 根节点或没有有效的几何体,则返回空网" +"格。" + msgid "" "Returns an [Array] with two elements, the first is the [Transform3D] of this " "node and the second is the root [Mesh] of this node. Only works when this " @@ -28365,6 +35813,12 @@ msgstr "" "在此形状上执行的操作。对于第一个 CSG 子节点,将忽略此操作,因为操作是在此节点" "与该节点父级的上一个子级之间进行的。" +msgid "The CSG library no longer uses snapping." +msgstr "CSG 库不再使用吸附。" + +msgid "This property does nothing." +msgstr "该属性无效。" + msgid "" "Adds a collision shape to the physics engine for our CSG shape. This will " "always act like a static body. Note that the collision shape is still active " @@ -28483,6 +35937,102 @@ msgid "" "skybox." msgstr "代表立方体面的六个正方形纹理。通常用作天空盒。" +msgid "" +"A cubemap is made of 6 textures organized in layers. They are typically used " +"for faking reflections in 3D rendering (see [ReflectionProbe]). It can be " +"used to make an object look as if it's reflecting its surroundings. This " +"usually delivers much better performance than other reflection methods.\n" +"This resource is typically used as a uniform in custom shaders. Few core " +"Godot methods make use of [Cubemap] resources.\n" +"To create such a texture file yourself, reimport your image files using the " +"Godot Editor import presets. To create a Cubemap from code, use [method " +"ImageTextureLayered.create_from_images] on an instance of the Cubemap class.\n" +"The expected image order is X+, X-, Y+, Y-, Z+, Z- (in Godot's coordinate " +"system, so Y+ is \"up\" and Z- is \"forward\"). You can use one of the " +"following templates as a base:\n" +"- [url=https://raw.githubusercontent.com/godotengine/godot-docs/master/" +"tutorials/assets_pipeline/img/cubemap_template_2x3.webp]2×3 cubemap template " +"(default layout option)[/url]\n" +"- [url=https://raw.githubusercontent.com/godotengine/godot-docs/master/" +"tutorials/assets_pipeline/img/cubemap_template_3x2.webp]3×2 cubemap template[/" +"url]\n" +"- [url=https://raw.githubusercontent.com/godotengine/godot-docs/master/" +"tutorials/assets_pipeline/img/cubemap_template_1x6.webp]1×6 cubemap template[/" +"url]\n" +"- [url=https://raw.githubusercontent.com/godotengine/godot-docs/master/" +"tutorials/assets_pipeline/img/cubemap_template_6x1.webp]6×1 cubemap template[/" +"url]\n" +"[b]Note:[/b] Godot doesn't support using cubemaps in a [PanoramaSkyMaterial]. " +"To use a cubemap as a skybox, convert the default [PanoramaSkyMaterial] to a " +"[ShaderMaterial] using the [b]Convert to ShaderMaterial[/b] resource dropdown " +"option, then replace its code with the following:\n" +"[codeblock lang=text]\n" +"shader_type sky;\n" +"\n" +"uniform samplerCube source_panorama : filter_linear, source_color, " +"hint_default_black;\n" +"uniform float exposure : hint_range(0, 128) = 1.0;\n" +"\n" +"void sky() {\n" +" // If importing a cubemap from another engine, you may need to flip one " +"of the `EYEDIR` components below\n" +" // by replacing it with `-EYEDIR`.\n" +" vec3 eyedir = vec3(EYEDIR.x, EYEDIR.y, EYEDIR.z);\n" +" COLOR = texture(source_panorama, eyedir).rgb * exposure;\n" +"}\n" +"[/codeblock]\n" +"After replacing the shader code and saving, specify the imported Cubemap " +"resource in the Shader Parameters section of the ShaderMaterial in the " +"inspector.\n" +"Alternatively, you can use [url=https://danilw.github.io/GLSL-howto/" +"cubemap_to_panorama_js/cubemap_to_panorama.html]this tool[/url] to convert a " +"cubemap to an equirectangular sky map and use [PanoramaSkyMaterial] as usual." +msgstr "" +"立方体贴图由 6 个纹理组成,按层组织,通常用于在 3D 渲染中充当反射(见 " +"[ReflectionProbe])。使用立方体贴图可以使物体看起来像是在反射周围的环境。这通" +"常比其他反射方法提供更好的性能。\n" +"该资源通常作为自定义着色器中的 uniform 使用。少数核心 Godot 方法会用到 " +"[Cubemap] 资源。\n" +"要自己创建这样的纹理文件,请使用 Godot 编辑器的导入预设重新导入图像文件。要使" +"用代码创建 Cubemap,请对 Cubemap 类的实例调用 [method ImageTextureLayered." +"create_from_images]。\n" +"预期的图像顺序是 X+、X-、Y+、Y-、Z+、Z-(Godot 的坐标系统中 Y+ 是“上”、Z- " +"是“前”)。你可以从下列模板中挑选一个作为基础:\n" +"- [url=https://raw.githubusercontent.com/godotengine/godot-docs/master/" +"tutorials/assets_pipeline/img/cubemap_template_2x3.webp]2×3 立方体贴图模板(默" +"认布局选项)[/url]\n" +"- [url=https://raw.githubusercontent.com/godotengine/godot-docs/master/" +"tutorials/assets_pipeline/img/cubemap_template_3x2.webp]3×2 立方体贴图模板[/" +"url]\n" +"- [url=https://raw.githubusercontent.com/godotengine/godot-docs/master/" +"tutorials/assets_pipeline/img/cubemap_template_1x6.webp]1×6 立方体贴图模板[/" +"url]\n" +"- [url=https://raw.githubusercontent.com/godotengine/godot-docs/master/" +"tutorials/assets_pipeline/img/cubemap_template_6x1.webp]6×1 立方体贴图模板[/" +"url]\n" +"[b]注意:[/b]Godot 不支持在 [PanoramaSkyMaterial] 中使用立方体贴图。要将立方体" +"贴图用作天空盒,请使用 [b]转换为 ShaderMaterial[/b] 资源下拉选项将默认的 " +"[PanoramaSkyMaterial] 转换为 [ShaderMaterial],然后将其代码替换为:\n" +"[codeblock lang=text]\n" +"shader_type sky;\n" +"\n" +"uniform samplerCube source_panorama : filter_linear, source_color, " +"hint_default_black;\n" +"uniform float exposure : hint_range(0, 128) = 1.0;\n" +"\n" +"void sky() {\n" +" // 如果立方体贴图是从其他引擎导入的,可能需要通过将下面的\n" +" // 某一个 `EYEDIR` 分量替换为 `-EYEDIR` 来进行翻转。\n" +" vec3 eyedir = vec3(EYEDIR.x, EYEDIR.y, EYEDIR.z);\n" +" COLOR = texture(source_panorama, eyedir).rgb * exposure;\n" +"}\n" +"[/codeblock]\n" +"替换着色器代码并保存后,请在检查器中 ShaderMaterial 的 Shader Parameters 部分" +"指定导入的立方体贴图资源。\n" +"另外,你可以使用 [url=https://danilw.github.io/GLSL-howto/" +"cubemap_to_panorama_js/cubemap_to_panorama.html]这个工具[/url]将立方体贴图转换" +"为等距矩形天空图,这样就可以像往常一样使用 [PanoramaSkyMaterial] 了。" + msgid "Creates a placeholder version of this resource ([PlaceholderCubemap])." msgstr "创建该资源的占位符版本([PlaceholderCubemap])。" @@ -28496,6 +36046,21 @@ msgstr "创建该资源的占位符版本([PlaceholderCubemapArray])。" msgid "A mathematical curve." msgstr "数学曲线。" +msgid "" +"This resource describes a mathematical curve by defining a set of points and " +"tangents at each point. By default, it ranges between [code]0[/code] and " +"[code]1[/code] on the X and Y axes, but these ranges can be changed.\n" +"Please note that many resources and nodes assume they are given [i]unit " +"curves[/i]. A unit curve is a curve whose domain (the X axis) is between " +"[code]0[/code] and [code]1[/code]. Some examples of unit curve usage are " +"[member CPUParticles2D.angle_curve] and [member Line2D.width_curve]." +msgstr "" +"该资源通过定义一组点和每个点的切线来描述数学曲线。默认情况下,X 轴和 Y 轴的范" +"围都在 [code]0[/code] 到 [code]1[/code] 之间,但是范围可以调整。\n" +"请注意,许多资源和节点会假设用户设置的是[i]单位曲线[/i]。单位曲线即域(X 轴)" +"在 [code]0[/code] 到 [code]1[/code] 之间的曲线。例如 [member CPUParticles2D." +"angle_curve] 和 [member Line2D.width_curve] 用的就是单位曲线。" + msgid "" "Adds a point to the curve. For each side, if the [code]*_mode[/code] is " "[constant TANGENT_LINEAR], the [code]*_tangent[/code] angle (in degrees) uses " @@ -28521,6 +36086,10 @@ msgstr "" msgid "Removes all points from the curve." msgstr "从曲线中移除所有点。" +msgid "" +"Returns the difference between [member min_domain] and [member max_domain]." +msgstr "返回 [member min_domain] 和 [member max_domain] 的差。" + msgid "Returns the left [enum TangentMode] for the point at [param index]." msgstr "返回索引为 [param index] 的点的左侧切线模式 [enum TangentMode]。" @@ -28538,6 +36107,10 @@ msgid "" "Returns the right tangent angle (in degrees) for the point at [param index]." msgstr "返回索引为 [param index] 的点的右侧切线夹角(单位为度)。" +msgid "" +"Returns the difference between [member min_value] and [member max_value]." +msgstr "返回 [member min_value] 和 [member max_value] 的差。" + msgid "Removes the point at [param index] from the curve." msgstr "移除曲线中索引为 [param index] 的点。" @@ -28584,9 +36157,28 @@ msgstr "将索引为 [param index] 的点的垂直位置设置为 [param y]。" msgid "The number of points to include in the baked (i.e. cached) curve data." msgstr "烘焙(即缓存)曲线数据中包含的点的数量。" +msgid "The maximum domain (x-coordinate) that points can have." +msgstr "点能够达到的最大域(X 坐标)。" + +msgid "" +"The maximum value (y-coordinate) that points can have. Tangents can cause " +"higher values between points." +msgstr "点能够达到的最大值(Y 坐标)。切线可能导致两点之间存在更大的值。" + +msgid "The minimum domain (x-coordinate) that points can have." +msgstr "点能够达到的最小域(X 坐标)。" + +msgid "" +"The minimum value (y-coordinate) that points can have. Tangents can cause " +"lower values between points." +msgstr "点能够达到的最小值(Y 坐标)。切线可能导致两点之间存在更小的值。" + msgid "The number of points describing the curve." msgstr "描述该曲线的点的数量。" +msgid "Emitted when [member max_domain] or [member min_domain] is changed." +msgstr "更改 [member max_domain] 或 [member min_domain] 时发出。" + msgid "Emitted when [member max_value] or [member min_value] is changed." msgstr "更改 [member max_value] 或 [member min_value] 时发出。" @@ -28982,6 +36574,13 @@ msgstr "" "get_baked_points] 或 [method get_baked_length] 函数时重新计算。距离越小,缓存" "中的点越多,占用的内存也越多,所以使用时要注意。" +msgid "" +"If [code]true[/code], and the curve has more than 2 control points, the last " +"point and the first one will be connected in a loop." +msgstr "" +"如果为 [code]true[/code] 且曲线的控制点数量大于 2,则结尾的点和开头的点会连接" +"成环。" + msgid "" "If [code]true[/code], the curve will bake up vectors used for orientation. " "This is used when [member PathFollow3D.rotation_mode] is set to [constant " @@ -28993,7 +36592,23 @@ msgstr "" "它会强制缓存被重新计算。" msgid "A 1D texture where pixel brightness corresponds to points on a curve." -msgstr "一维纹理,其中像素亮度对应于曲线上的点。" +msgstr "一维纹理,像素亮度对应于曲线上的点。" + +msgid "" +"A 1D texture where pixel brightness corresponds to points on a unit [Curve] " +"resource, either in grayscale or in red. This visual representation " +"simplifies the task of saving curves as image files.\n" +"If you need to store up to 3 curves within a single texture, use " +"[CurveXYZTexture] instead. See also [GradientTexture1D] and " +"[GradientTexture2D]." +msgstr "" +"一维纹理,像素亮度对应于单位 [Curve] 资源上的点,可以是灰度图或红色图。这种视" +"觉表达简化了将曲线保存为图像文件的任务。\n" +"如果你需要在单个纹理中存储最多 3 条曲线,请改用 [CurveXYZTexture]。另见 " +"[GradientTexture1D] 和 [GradientTexture2D]。" + +msgid "The [Curve] that is rendered onto the texture. Should be a unit [Curve]." +msgstr "渲染到该纹理上的 [Curve]。应当为单位 [Curve]。" msgid "" "The format the texture should be generated with. When passing a CurveTexture " @@ -29027,7 +36642,35 @@ msgstr "" msgid "" "A 1D texture where the red, green, and blue color channels correspond to " "points on 3 curves." -msgstr "一维纹理,其中红色、绿色和蓝色通道分别对应 3 条曲线上的点。" +msgstr "一维纹理,红、绿、蓝通道分别对应 3 条曲线上的点。" + +msgid "" +"A 1D texture where the red, green, and blue color channels correspond to " +"points on 3 unit [Curve] resources. Compared to using separate " +"[CurveTexture]s, this further simplifies the task of saving curves as image " +"files.\n" +"If you only need to store one curve within a single texture, use " +"[CurveTexture] instead. See also [GradientTexture1D] and [GradientTexture2D]." +msgstr "" +"一维纹理,红、绿、蓝通道分别对应 3 条单位 [Curve] 资源上的点。与使用单独的 " +"[CurveTexture] 相比,可以简化将曲线保存为图像文件的任务。\n" +"如果你只需要在单张纹理中存储一条曲线,请改用 [CurveTexture]。另见 " +"[GradientTexture1D] 和 [GradientTexture2D]。" + +msgid "" +"The [Curve] that is rendered onto the texture's red channel. Should be a unit " +"[Curve]." +msgstr "渲染到该纹理红色通道上的 [Curve]。应当为单位 [Curve]。" + +msgid "" +"The [Curve] that is rendered onto the texture's green channel. Should be a " +"unit [Curve]." +msgstr "渲染到该纹理绿色通道上的 [Curve]。应当为单位 [Curve]。" + +msgid "" +"The [Curve] that is rendered onto the texture's blue channel. Should be a " +"unit [Curve]." +msgstr "渲染到该纹理蓝色通道上的 [Curve]。应当为单位 [Curve]。" msgid "Class representing a cylindrical [PrimitiveMesh]." msgstr "表示圆柱形 [PrimitiveMesh] 的类。" @@ -29823,6 +37466,14 @@ msgstr "GDScript 基础:字典" msgid "Constructs an empty [Dictionary]." msgstr "构造空的 [Dictionary]。" +msgid "" +"Creates a typed dictionary from the [param base] dictionary. A typed " +"dictionary can only contain keys and values of the given types, or that " +"inherit from the given classes, as described by this constructor's parameters." +msgstr "" +"根据 [param base] 字典创建类型化字典。类型化字典只能包含给定类型的键和值,也可" +"以是继承自给定的类,由该构造函数的参数描述。" + msgid "" "Returns the same dictionary as [param from]. If you need a copy of the " "dictionary, use [method duplicate]." @@ -29830,6 +37481,14 @@ msgstr "" "返回与 [param from] 相同的字典。如果你需要该字典的副本,请使用 [method " "duplicate]。" +msgid "" +"Assigns elements of another [param dictionary] into the dictionary. Resizes " +"the dictionary to match [param dictionary]. Performs type conversions if the " +"dictionary is typed." +msgstr "" +"将其他 [param dictionary] 中的元素赋值给该字典中。字典的大小会调整到与 [param " +"dictionary] 一致。如果为类型化字典则会执行类型转换。" + msgid "Clears the dictionary, removing all entries from it." msgstr "清空该字典,移除其中的所有条目。" @@ -29879,6 +37538,122 @@ msgstr "" "获取一个值并确保设置了键。如果 [param key] 存在于字典中,则其行为类似于 " "[method get]。否则,[param default] 值将被插入到字典中并返回。" +msgid "" +"Returns the built-in [Variant] type of the typed dictionary's keys as a [enum " +"Variant.Type] constant. If the keys are not typed, returns [constant " +"TYPE_NIL]. See also [method is_typed_key]." +msgstr "" +"将类型化字典中键的内置 [Variant] 类型以 [enum Variant.Type] 常量的形式返回。如" +"果键不是类型化的,则返回 [constant TYPE_NIL]。另见 [method is_typed_key]。" + +msgid "" +"Returns the [b]built-in[/b] class name of the typed dictionary's keys, if the " +"built-in [Variant] type is [constant TYPE_OBJECT]. Otherwise, returns an " +"empty [StringName]. See also [method is_typed_key] and [method Object." +"get_class]." +msgstr "" +"如果类型化字典的键的内置 [Variant] 类型为 [constant TYPE_OBJECT] 则返回其[b]内" +"置[/b]类名。否则返回空 [StringName]。另见 [method is_typed_key] 和 [method " +"Object.get_class]。" + +msgid "" +"Returns the [Script] instance associated with this typed dictionary's keys, " +"or [code]null[/code] if it does not exist. See also [method is_typed_key]." +msgstr "" +"返回与类型化字典的键相关联的 [Script] 实例,如果不存在则返回 [code]null[/" +"code]。另见 [method is_typed_key]。" + +msgid "" +"Returns the built-in [Variant] type of the typed dictionary's values as a " +"[enum Variant.Type] constant. If the values are not typed, returns [constant " +"TYPE_NIL]. See also [method is_typed_value]." +msgstr "" +"将类型化字典中值的内置 [Variant] 类型以 [enum Variant.Type] 常量的形式返回。如" +"果值不是类型化的,则返回 [constant TYPE_NIL]。另见 [method is_typed_value]。" + +msgid "" +"Returns the [b]built-in[/b] class name of the typed dictionary's values, if " +"the built-in [Variant] type is [constant TYPE_OBJECT]. Otherwise, returns an " +"empty [StringName]. See also [method is_typed_value] and [method Object." +"get_class]." +msgstr "" +"如果类型化字典的值的内置 [Variant] 类型为 [constant TYPE_OBJECT] 则返回其[b]内" +"置[/b]类名。否则返回空 [StringName]。另见 [method is_typed_value] 和 [method " +"Object.get_class]。" + +msgid "" +"Returns the [Script] instance associated with this typed dictionary's values, " +"or [code]null[/code] if it does not exist. See also [method is_typed_value]." +msgstr "" +"返回与类型化字典的值相关联的 [Script] 实例,如果不存在则返回 [code]null[/" +"code]。另见 [method is_typed_value]。" + +msgid "" +"Returns [code]true[/code] if the dictionary contains an entry with the given " +"[param key].\n" +"[codeblocks]\n" +"[gdscript]\n" +"var my_dict = {\n" +" \"Godot\" : 4,\n" +" 210 : null,\n" +"}\n" +"\n" +"print(my_dict.has(\"Godot\")) # Prints true\n" +"print(my_dict.has(210)) # Prints true\n" +"print(my_dict.has(4)) # Prints false\n" +"[/gdscript]\n" +"[csharp]\n" +"var myDict = new Godot.Collections.Dictionary\n" +"{\n" +" { \"Godot\", 4 },\n" +" { 210, default },\n" +"};\n" +"\n" +"GD.Print(myDict.ContainsKey(\"Godot\")); // Prints True\n" +"GD.Print(myDict.ContainsKey(210)); // Prints True\n" +"GD.Print(myDict.ContainsKey(4)); // Prints False\n" +"[/csharp]\n" +"[/codeblocks]\n" +"In GDScript, this is equivalent to the [code]in[/code] operator:\n" +"[codeblock]\n" +"if \"Godot\" in {\"Godot\": 4}:\n" +" print(\"The key is here!\") # Will be printed.\n" +"[/codeblock]\n" +"[b]Note:[/b] This method returns [code]true[/code] as long as the [param key] " +"exists, even if its corresponding value is [code]null[/code]." +msgstr "" +"如果该字典包含给定的键 [param key],则返回 [code]true[/code]。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var my_dict = {\n" +" \"Godot\" : 4,\n" +" 210 : null,\n" +"}\n" +"\n" +"print(my_dict.has(\"Godot\")) # 输出 true\n" +"print(my_dict.has(210)) # 输出 true\n" +"print(my_dict.has(4)) # 输出 false\n" +"[/gdscript]\n" +"[csharp]\n" +"var myDict = new Godot.Collections.Dictionary\n" +"{\n" +" { \"Godot\", 4 },\n" +" { 210, default },\n" +"};\n" +"\n" +"GD.Print(myDict.ContainsKey(\"Godot\")); // 输出 True\n" +"GD.Print(myDict.ContainsKey(210)); // 输出 True\n" +"GD.Print(myDict.ContainsKey(4)); // 输出 False\n" +"[/csharp]\n" +"[/codeblocks]\n" +"在 GDScript 中等价于 [code]in[/code] 运算符:\n" +"[codeblock]\n" +"if \"Godot\" in {\"Godot\": 4}:\n" +" print(\"这个键存在!\") # 会进行输出。\n" +"[/codeblock]\n" +"[b]注意:[/b]只要键 [param key] 存在,该方法就会返回 [code]true[/code],即便这" +"个键对应的值为 [code]null[/code]。" + msgid "" "Returns [code]true[/code] if the dictionary contains all keys in the given " "[param keys] array.\n" @@ -29893,6 +37668,49 @@ msgstr "" "data.has_all([\"height\", \"width\"]) # 返回 true\n" "[/codeblock]" +msgid "" +"Returns a hashed 32-bit integer value representing the dictionary contents.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var dict1 = {\"A\": 10, \"B\": 2}\n" +"var dict2 = {\"A\": 10, \"B\": 2}\n" +"\n" +"print(dict1.hash() == dict2.hash()) # Prints true\n" +"[/gdscript]\n" +"[csharp]\n" +"var dict1 = new Godot.Collections.Dictionary{{\"A\", 10}, {\"B\", 2}};\n" +"var dict2 = new Godot.Collections.Dictionary{{\"A\", 10}, {\"B\", 2}};\n" +"\n" +"// Godot.Collections.Dictionary has no Hash() method. Use GD.Hash() instead.\n" +"GD.Print(GD.Hash(dict1) == GD.Hash(dict2)); // Prints True\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] Dictionaries with the same entries but in a different order will " +"not have the same hash.\n" +"[b]Note:[/b] Dictionaries with equal hash values are [i]not[/i] guaranteed to " +"be the same, because of hash collisions. On the contrary, dictionaries with " +"different hash values are guaranteed to be different." +msgstr "" +"返回代表该字典内容的 32 位整数哈希值。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var dict1 = {\"A\": 10, \"B\": 2}\n" +"var dict2 = {\"A\": 10, \"B\": 2}\n" +"\n" +"print(dict1.hash() == dict2.hash()) # 输出 true\n" +"[/gdscript]\n" +"[csharp]\n" +"var dict1 = new Godot.Collections.Dictionary{{\"A\", 10}, {\"B\", 2}};\n" +"var dict2 = new Godot.Collections.Dictionary{{\"A\", 10}, {\"B\", 2}};\n" +"\n" +"// Godot.Collections.Dictionary 没有 Hash() 方法。请改用 GD.Hash()。\n" +"GD.Print(GD.Hash(dict1) == GD.Hash(dict2)); // 输出 True\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b]如果两个字典条目相同,但顺序不同,则哈希值也不同。\n" +"[b]注意:[/b]哈希值相同的字典[i]不保证[/i]相同,因为可能存在哈希碰撞。相对地," +"哈希值不同的字典保证不同。" + msgid "" "Returns [code]true[/code] if the dictionary is empty (its size is [code]0[/" "code]). See also [method size]." @@ -29908,6 +37726,41 @@ msgstr "" "如果该字典是只读的,则返回 [code]true[/code] 。见 [method make_read_only]。用 " "[code]const[/code] 关键字声明的字典自动只读。" +msgid "" +"Returns [code]true[/code] if the dictionary is typed the same as [param " +"dictionary]." +msgstr "如果该字典与 [param dictionary] 的类型相同,则返回 [code]true[/code] 。" + +msgid "" +"Returns [code]true[/code] if the dictionary's keys are typed the same as " +"[param dictionary]'s keys." +msgstr "" +"如果该字典的键与 [param dictionary] 的键的类型相同,则返回 [code]true[/" +"code] 。" + +msgid "" +"Returns [code]true[/code] if the dictionary's values are typed the same as " +"[param dictionary]'s values." +msgstr "" +"如果该字典的值与 [param dictionary] 的值的类型相同,则返回 [code]true[/" +"code] 。" + +msgid "" +"Returns [code]true[/code] if the dictionary is typed. Typed dictionaries can " +"only store keys/values of their associated type and provide type safety for " +"the [code][][/code] operator. Methods of typed dictionary still return " +"[Variant]." +msgstr "" +"如果该字典为类型化字典则返回 [code]true[/code]。类型化字典只能存储关联类型的键" +"和值,能够为 [code][][/code] 运算符提供类型安全。类型化字典的方法返回的仍然是 " +"[Variant]。" + +msgid "Returns [code]true[/code] if the dictionary's keys are typed." +msgstr "如果字典的键有类型约束,则返回 [code]true[/code]。" + +msgid "Returns [code]true[/code] if the dictionary's values are typed." +msgstr "如果字典的值有类型约束,则返回 [code]true[/code]。" + msgid "Returns the list of keys in the dictionary." msgstr "返回该字典中的键列表。" @@ -30047,6 +37900,14 @@ msgstr "" "如果两个字典包含相同的键和值,则返回 [code]true[/code],内部的 [Dictionary] " "和 [Array] 的键和值将进行递归比较。" +msgid "" +"Sets the value of the element at the given [param key] to the given [param " +"value]. This is the same as using the [code][][/code] operator " +"([code]array[index] = value[/code])." +msgstr "" +"将给定键 [param key] 对应元素的值设置为给定的 [param value]。与使用 [code][][/" +"code] 运算符相同([code]array[index] = value[/code])。" + msgid "" "Returns the number of entries in the dictionary. Empty dictionaries ([code]{ }" "[/code]) always return [code]0[/code]. See also [method is_empty]." @@ -30054,6 +37915,17 @@ msgstr "" "返回该字典中条目的数量。空字典([code]{ }[/code])始终返回 [code]0[/code]。另" "见 [method is_empty]。" +msgid "" +"Sorts the dictionary in-place by key. This can be used to ensure dictionaries " +"with the same contents produce equivalent results when getting the [method " +"keys], getting the [method values], and converting to a string. This is also " +"useful when wanting a JSON representation consistent with what is in memory, " +"and useful for storing on a database that requires dictionaries to be sorted." +msgstr "" +"将字典按照键的顺序原地排序。可以确保具有相同内容的字典在获取 [method keys]、获" +"取 [method values] 和转换为字符串时得到相同的结果。适用于希望 JSON 表示与内存" +"中一致的场合,也适用于需要字典有序的数据库存储的场合。" + msgid "Returns the list of values in this dictionary." msgstr "返回该字典中的值列表。" @@ -30084,6 +37956,137 @@ msgstr "" msgid "Provides methods for managing directories and their content." msgstr "提供管理目录及其内容的方法。" +msgid "" +"This class is used to manage directories and their content, even outside of " +"the project folder.\n" +"[DirAccess] can't be instantiated directly. Instead it is created with a " +"static method that takes a path for which it will be opened.\n" +"Most of the methods have a static alternative that can be used without " +"creating a [DirAccess]. Static methods only support absolute paths (including " +"[code]res://[/code] and [code]user://[/code]).\n" +"[codeblock]\n" +"# Standard\n" +"var dir = DirAccess.open(\"user://levels\")\n" +"dir.make_dir(\"world1\")\n" +"# Static\n" +"DirAccess.make_dir_absolute(\"user://levels/world1\")\n" +"[/codeblock]\n" +"[b]Note:[/b] Accessing project (\"res://\") directories once exported may " +"behave unexpectedly as some files are converted to engine-specific formats " +"and their original source files may not be present in the expected PCK " +"package. Because of this, to access resources in an exported project, it is " +"recommended to use [ResourceLoader] instead of [FileAccess].\n" +"Here is an example on how to iterate through the files of a directory:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func dir_contents(path):\n" +" var dir = DirAccess.open(path)\n" +" if dir:\n" +" dir.list_dir_begin()\n" +" var file_name = dir.get_next()\n" +" while file_name != \"\":\n" +" if dir.current_is_dir():\n" +" print(\"Found directory: \" + file_name)\n" +" else:\n" +" print(\"Found file: \" + file_name)\n" +" file_name = dir.get_next()\n" +" else:\n" +" print(\"An error occurred when trying to access the path.\")\n" +"[/gdscript]\n" +"[csharp]\n" +"public void DirContents(string path)\n" +"{\n" +" using var dir = DirAccess.Open(path);\n" +" if (dir != null)\n" +" {\n" +" dir.ListDirBegin();\n" +" string fileName = dir.GetNext();\n" +" while (fileName != \"\")\n" +" {\n" +" if (dir.CurrentIsDir())\n" +" {\n" +" GD.Print($\"Found directory: {fileName}\");\n" +" }\n" +" else\n" +" {\n" +" GD.Print($\"Found file: {fileName}\");\n" +" }\n" +" fileName = dir.GetNext();\n" +" }\n" +" }\n" +" else\n" +" {\n" +" GD.Print(\"An error occurred when trying to access the path.\");\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"Keep in mind that file names may change or be remapped after export. If you " +"want to see the actual resource file list as it appears in the editor, use " +"[method ResourceLoader.list_directory] instead." +msgstr "" +"这个类可用于管理目录及其内容,不限于项目文件夹。\n" +"[DirAccess] 无法直接实例化,需要通过静态方法创建,方法接受待打开的路径。\n" +"大多数方法都有对应的静态版本,无需创建 [DirAccess] 即可使用。静态方法仅支持绝" +"对路径(包含 [code]res://[/code] 和 [code]user://[/code])。\n" +"[codeblock]\n" +"# 标准\n" +"var dir = DirAccess.open(\"user://levels\")\n" +"dir.make_dir(\"world1\")\n" +"# 静态\n" +"DirAccess.make_dir_absolute(\"user://levels/world1\")\n" +"[/codeblock]\n" +"[b]注意:[/b]导出后,访问项目目录(\"res://\")可能导致意外行为,因为此时部分" +"文件已被转换为引擎所使用的格式,对应的原始文件可能不存在于 PCK 包中。因此,在" +"导出后的项目中访问资源建议使用 [ResourceLoader],不要使用 [FileAccess]。\n" +"以下是遍历目录中文件的示例:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func dir_contents(path):\n" +" var dir = DirAccess.open(path)\n" +" if dir:\n" +" dir.list_dir_begin()\n" +" var file_name = dir.get_next()\n" +" while file_name != \"\":\n" +" if dir.current_is_dir():\n" +" print(\"发现目录:\" + file_name)\n" +" else:\n" +" print(\"发现文件\" + file_name)\n" +" file_name = dir.get_next()\n" +" else:\n" +" print(\"尝试访问路径时出错。\")\n" +"[/gdscript]\n" +"[csharp]\n" +"public void DirContents(string path)\n" +"{\n" +" using var dir = DirAccess.Open(path);\n" +" if (dir != null)\n" +" {\n" +" dir.ListDirBegin();\n" +" string fileName = dir.GetNext();\n" +" while (fileName != \"\")\n" +" {\n" +" if (dir.CurrentIsDir())\n" +" {\n" +" GD.Print($\"发现目录:{fileName}\");\n" +" }\n" +" else\n" +" {\n" +" GD.Print($\"发现文件:{fileName}\");\n" +" }\n" +" fileName = dir.GetNext();\n" +" }\n" +" }\n" +" else\n" +" {\n" +" GD.Print(\"尝试访问路径时出错。\");\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"请牢记,导出后文件名可能发生变化和重映射。如果想要看到和编辑器中一致的实际资源" +"文件列表,请改用 [method ResourceLoader.list_directory]。" + msgid "File system" msgstr "文件系统" @@ -30136,6 +38139,23 @@ msgstr "" "正常工作。\n" "[b]注意:[/b]该方法仅在 macOS、Linux 和 Windows 上实现。" +msgid "" +"Creates a temporary directory. This directory will be freed when the returned " +"[DirAccess] is freed.\n" +"If [param prefix] is not empty, it will be prefixed to the directory name, " +"separated by a [code]-[/code].\n" +"If [param keep] is [code]true[/code], the directory is not deleted when the " +"returned [DirAccess] is freed.\n" +"Returns [code]null[/code] if opening the directory failed. You can use " +"[method get_open_error] to check the error that occurred." +msgstr "" +"创建一个临时目录。返回的 [DirAccess] 被释放时会释放该目录。\n" +"如果 [param prefix] 非空,则会用作目录名的前缀,使用 [code]-[/code] 分隔。\n" +"如果 [param keep] 为 [code]true[/code],则返回的 [DirAccess] 被释放时不会释放" +"该目录。\n" +"如果打开目录失败,则返回 [code]null[/code]。你可以使用 [method " +"get_open_error] 来查看发生的错误。" + msgid "" "Returns whether the current item processed with the last [method get_next] " "call is a directory ([code].[/code] and [code]..[/code] are considered " @@ -30144,6 +38164,46 @@ msgstr "" "返回上一次 [method get_next] 调用处理的当前项目是否为目录([code].[/code] 和 " "[code].[/code] 属于目录)。" +msgid "" +"Returns whether the target directory exists. The argument can be relative to " +"the current directory, or an absolute path.\n" +"[b]Note:[/b] The returned [bool] in the editor and after exporting when used " +"on a path in the [code]res://[/code] directory may be different. Some files " +"are converted to engine-specific formats when exported, potentially changing " +"the directory structure." +msgstr "" +"返回目标目录是否存在。参数可以相对于当前目录,也可以是绝对路径。\n" +"[b]注意:[/b]使用 [code]res://[/code] 目录下的路径时,在编辑器中返回的 [bool] " +"与导出后的返回值可能不同。导出时会将部分文件转换为引擎特有的格式,可能导致目录" +"结构的改变。" + +msgid "" +"Static version of [method dir_exists]. Supports only absolute paths.\n" +"[b]Note:[/b] The returned [bool] in the editor and after exporting when used " +"on a path in the [code]res://[/code] directory may be different. Some files " +"are converted to engine-specific formats when exported, potentially changing " +"the directory structure." +msgstr "" +"[method dir_exists] 的静态版本。仅支持绝对路径。\n" +"[b]注意:[/b]使用 [code]res://[/code] 目录下的路径时,在编辑器中返回的 [bool] " +"与导出后的返回值可能不同。导出时会将部分文件转换为引擎特有的格式,可能导致目录" +"结构的改变。" + +msgid "" +"Returns whether the target file exists. The argument can be relative to the " +"current directory, or an absolute path.\n" +"For a static equivalent, use [method FileAccess.file_exists].\n" +"[b]Note:[/b] Many resources types are imported (e.g. textures or sound " +"files), and their source asset will not be included in the exported game, as " +"only the imported version is used. See [method ResourceLoader.exists] for an " +"alternative approach that takes resource remapping into account." +msgstr "" +"返回目标文件是否存在。参数可以相对于当前目录,也可以是绝对路径。\n" +"静态版本见 [method DirAccess.file_exists]。\n" +"[b]注意:[/b]许多资源类型是导入的(例如纹理和声音文件),它们的源资产不会包含" +"在导出的游戏中,因为只使用导入的版本。有关考虑资源重新映射的替代方法,请参阅 " +"[method ResourceLoader.exists]。" + msgid "" "Returns the absolute path to the currently opened directory (e.g. [code]res://" "folder[/code] or [code]C:\\tmp\\folder[/code])." @@ -30158,6 +38218,34 @@ msgstr "" "返回当前打开目录的驱动器索引。要将返回的索引转换为驱动器名称,请参阅 [method " "get_drive_name]。" +msgid "" +"Returns a [PackedStringArray] containing filenames of the directory contents, " +"excluding files. The array is sorted alphabetically.\n" +"Affected by [member include_hidden] and [member include_navigational].\n" +"[b]Note:[/b] The returned directories in the editor and after exporting in " +"the [code]res://[/code] directory may differ as some files are converted to " +"engine-specific formats when exported." +msgstr "" +"返回该目录内容的文件名 [PackedStringArray],不含文件。该数组按字母顺序排序。\n" +"受 [member include_hidden] 和 [member include_navigational] 的影响。\n" +"[b]注意:[/b]对于 [code]res://[/code] 下的目录,在编辑器中所返回的目录和导出后" +"所返回的目录可能不同,因为导出时可能将部分文件转换为引擎特有的格式。" + +msgid "" +"Returns a [PackedStringArray] containing filenames of the directory contents, " +"excluding files, at the given [param path]. The array is sorted " +"alphabetically.\n" +"Use [method get_directories] if you want more control of what gets included.\n" +"[b]Note:[/b] The returned directories in the editor and after exporting in " +"the [code]res://[/code] directory may differ as some files are converted to " +"engine-specific formats when exported." +msgstr "" +"返回 [param path] 所指向目录内容的文件名 [PackedStringArray],不含文件。该数组" +"按字母顺序排序。\n" +"如果需要对包含内容做进一步控制,请使用 [method get_directories]。\n" +"[b]注意:[/b]对于 [code]res://[/code] 下的目录,在编辑器中所返回的目录和导出后" +"所返回的目录可能不同,因为导出时可能将部分文件转换为引擎特有的格式。" + msgid "" "On Windows, returns the number of drives (partitions) mounted on the current " "filesystem.\n" @@ -30209,6 +38297,32 @@ msgstr "" "ProjectSettings.editor/export/convert_text_resources_to_binary] 是否为 " "[code]true[/code] 而变化。" +msgid "" +"Returns a [PackedStringArray] containing filenames of the directory contents, " +"excluding directories, at the given [param path]. The array is sorted " +"alphabetically.\n" +"Use [method get_files] if you want more control of what gets included.\n" +"[b]Note:[/b] When used on a [code]res://[/code] path in an exported project, " +"only the files included in the PCK at the given folder level are returned. In " +"practice, this means that since imported resources are stored in a top-level " +"[code].godot/[/code] folder, only paths to [code].gd[/code] and [code]." +"import[/code] files are returned (plus a few other files, such as " +"[code]project.godot[/code] or [code]project.binary[/code] and the project " +"icon). In an exported project, the list of returned files will also vary " +"depending on [member ProjectSettings.editor/export/" +"convert_text_resources_to_binary]." +msgstr "" +"返回 [param path] 所指向目录内容的文件名 [PackedStringArray],不含目录。该数组" +"按字母排序。\n" +"如果需要对包含内容做进一步控制,请使用 [method get_files]。\n" +"[b]注意:[/b]在导出后的项目中对 [code]res://[/code] 使用时,只会返回确实在 " +"PCK 的给定文件夹中存在的文件。在实践中,导入后的资源是存放在顶层的 [code]." +"godot[/code] 文件夹中的,因此只会返回 [code]*.gd[/code] 和 [code]*.import[/" +"code] 文件的路径(以及 [code]project.godot[/code] 或者 [code]project.binary[/" +"code] 和项目图标等文件)。导出后的项目中,返回的列表也会因为 [member " +"ProjectSettings.editor/export/convert_text_resources_to_binary] 是否为 " +"[code]true[/code] 而变化。" + msgid "" "Returns the next element (file or directory) in the current directory.\n" "The name of the file or directory is returned (and not its full path). Once " @@ -30231,6 +38345,13 @@ msgstr "" "返回当前目录所在磁盘的可用空间,单位为字节。如果该平台查询可用空间的方法失败," "则返回 [code]0[/code]。" +msgid "" +"Returns [code]true[/code] if the directory is a macOS bundle.\n" +"[b]Note:[/b] This method is implemented on macOS." +msgstr "" +"如果该目录为 macOS 捆绑包,则返回 [code]true[/code]。\n" +"[b]注意:[/b]该方法在 macOS 上实现。" + msgid "" "Returns [code]true[/code] if the file system or directory use case sensitive " "file names.\n" @@ -30584,6 +38705,17 @@ msgstr "" "editor/command_line_tutorial.html]命令行参数[/url]启动引擎,就会禁用所有渲染和" "窗口管理功能。此时 [DisplayServer] 的大多数函数都会返回虚设值。" +msgid "" +"Plays the beep sound from the operative system, if possible. Because it comes " +"from the OS, the beep sound will be audible even if the application is muted. " +"It may also be disabled for the entire OS by the user.\n" +"[b]Note:[/b] This method is implemented on macOS, Linux (X11/Wayland), and " +"Windows." +msgstr "" +"播放操作系统的“哔”声,需要操作系统支持。因为发出声音的是操作系统,所以即便应用" +"程序被静音也能听到“哔”声。这一功能可能被用户在操作系统层面禁用。\n" +"[b]注意:[/b]该方法在 macOS、Linux(X11/Wayland)和 Windows。" + msgid "Returns the user's clipboard as a string if possible." msgstr "如果可能,将用户的剪贴板作为字符串返回。" @@ -30682,6 +38814,32 @@ msgstr "" msgid "Removes the application status indicator." msgstr "移除应用程序状态指示器。" +msgid "" +"Shows a text input dialog which uses the operating system's native look-and-" +"feel. [param callback] should accept a single [String] parameter which " +"contains the text field's contents.\n" +"[b]Note:[/b] This method is implemented if the display server has the " +"[constant FEATURE_NATIVE_DIALOG_INPUT] feature. Supported platforms include " +"macOS, Windows, and Android." +msgstr "" +"显示文本输入对话框,该对话框使用操作系统原生外观。[param callback] 应接受包含" +"文本字段内容的单个 [String] 参数。\n" +"[b]注意:[/b]如果显示服务器具有 [constant FEATURE_NATIVE_DIALOG_INPUT] 功能," +"则实现该方法。支持的平台包括 macOS、Windows 和 Android。" + +msgid "" +"Shows a text dialog which uses the operating system's native look-and-feel. " +"[param callback] should accept a single [int] parameter which corresponds to " +"the index of the pressed button.\n" +"[b]Note:[/b] This method is implemented if the display server has the " +"[constant FEATURE_NATIVE_DIALOG] feature. Supported platforms include macOS, " +"Windows, and Android." +msgstr "" +"显示文本对话框,该对话框使用操作系统原生外观。[param callback] 应接受与按下按" +"钮的索引相对应的单个 [int] 参数。\n" +"[b]注意:[/b]如果显示服务器具有 [constant FEATURE_NATIVE_DIALOG] 功能,则实现" +"该方法。支持的平台包括 macOS、Windows 和 Android。" + msgid "" "Allows the [param process_id] PID to steal focus from this window. In other " "words, this disables the operating system's focus stealing protection for the " @@ -30692,6 +38850,103 @@ msgstr "" "定 PID 的焦点窃取保护。\n" "[b]注意:[/b]该方法仅在 Windows 上实现。" +msgid "" +"Displays OS native dialog for selecting files or directories in the file " +"system.\n" +"Each filter string in the [param filters] array should be formatted like " +"this: [code]*.png,*.jpg,*.jpeg;Image Files;image/png,image/jpeg[/code]. The " +"description text of the filter is optional and can be omitted. It is " +"recommended to set both file extension and MIME type. See also [member " +"FileDialog.filters].\n" +"Callbacks have the following arguments: [code]status: bool, selected_paths: " +"PackedStringArray, selected_filter_index: int[/code]. [b]On Android,[/b] " +"callback argument [code]selected_filter_index[/code] is always zero.\n" +"[b]Note:[/b] This method is implemented if the display server has the " +"[constant FEATURE_NATIVE_DIALOG_FILE] feature. Supported platforms include " +"Linux (X11/Wayland), Windows, macOS, and Android.\n" +"[b]Note:[/b] [param current_directory] might be ignored.\n" +"[b]Note:[/b] Embedded file dialog and Windows file dialog support only file " +"extensions, while Android, Linux, and macOS file dialogs also support MIME " +"types.\n" +"[b]Note:[/b] On Android and Linux, [param show_hidden] is ignored.\n" +"[b]Note:[/b] On Android and macOS, native file dialogs have no title.\n" +"[b]Note:[/b] On macOS, sandboxed apps will save security-scoped bookmarks to " +"retain access to the opened folders across multiple sessions. Use [method OS." +"get_granted_permissions] to get a list of saved bookmarks." +msgstr "" +"显示操作系统原生对话框,用于选择文件系统中的文件或目录。\n" +"[param filters] 数组中的每个过滤器字符串都应该使用类似 [code]*.png,*.jpg,*." +"jpeg;图像文件;image/png,image/jpeg[/code] 的格式。过滤器的描述文本不是必填项," +"可以省略。建议同时设置文件扩展名和 MIME 类型。另见 [member FileDialog." +"filters]。\n" +"回调的参数如下:[code]status: bool, selected_paths: PackedStringArray, " +"selected_filter_index: int[/code]。[b]在 Android 平台[/b],回调参数 " +"[code]selected_filter_index[/code] 始终为 0。\n" +"[b]注意:[/b]如果显示服务器具有 [constant FEATURE_NATIVE_DIALOG] 功能,则该方" +"法已被实现。支持的平台包括 Linux(X11/Wayland)、Windows、macOS 和 Android。\n" +"[b]注意:[/b][param current_directory] 可能会被忽略。\n" +"[b]注意:[/b]内嵌文件对话框和 Windows 文件对话框仅支持文件扩展名,而 Android、" +"Linux 和 macOS 的文件对话框还支持 MIME 类型。\n" +"[b]注意:[/b]在 Android 和 Linux 上,[param show_hidden] 会被忽略。\n" +"[b]注意:[/b]在 Android 和 macOS 上,原生文件对话框没有标题。\n" +"[b]注意:[/b]在 macOS 上,沙盒应用程序将保存安全范围的书签,以保留对多个会话中" +"打开的文件夹的访问权限。请使用 [method OS.get_granted_permissions] 获取已保存" +"书签的列表。" + +msgid "" +"Displays OS native dialog for selecting files or directories in the file " +"system with additional user selectable options.\n" +"Each filter string in the [param filters] array should be formatted like " +"this: [code]*.png,*.jpg,*.jpeg;Image Files;image/png,image/jpeg[/code]. The " +"description text of the filter is optional and can be omitted. It is " +"recommended to set both file extension and MIME type. See also [member " +"FileDialog.filters].\n" +"[param options] is array of [Dictionary]s with the following keys:\n" +"- [code]\"name\"[/code] - option's name [String].\n" +"- [code]\"values\"[/code] - [PackedStringArray] of values. If empty, boolean " +"option (check box) is used.\n" +"- [code]\"default\"[/code] - default selected option index ([int]) or default " +"boolean value ([bool]).\n" +"Callbacks have the following arguments: [code]status: bool, selected_paths: " +"PackedStringArray, selected_filter_index: int, selected_option: Dictionary[/" +"code].\n" +"[b]Note:[/b] This method is implemented if the display server has the " +"[constant FEATURE_NATIVE_DIALOG_FILE_EXTRA] feature. Supported platforms " +"include Linux (X11/Wayland), Windows, and macOS.\n" +"[b]Note:[/b] [param current_directory] might be ignored.\n" +"[b]Note:[/b] Embedded file dialog and Windows file dialog support only file " +"extensions, while Android, Linux, and macOS file dialogs also support MIME " +"types.\n" +"[b]Note:[/b] On Linux (X11), [param show_hidden] is ignored.\n" +"[b]Note:[/b] On macOS, native file dialogs have no title.\n" +"[b]Note:[/b] On macOS, sandboxed apps will save security-scoped bookmarks to " +"retain access to the opened folders across multiple sessions. Use [method OS." +"get_granted_permissions] to get a list of saved bookmarks." +msgstr "" +"显示操作系统原生对话框,用于使用其他用户可选选项,选择文件系统中的文件或目" +"录。\n" +"[param filters] 数组中的每个过滤字符串都应该使用类似 [code]png,*.jpg,*.jpeg;图" +"像文件;image/png,image/jpeg[/code] 的格式。过滤器的描述文本不是必填项,可以省" +"略。建议同时设置文件扩展名和 MIME 类型。另见 [member FileDialog.filters]。\n" +"[param options] 是具有以下字段的 [Dictionary] 的数组:\n" +"- [code]\"name\"[/code] - 选项的名称 [String]。\n" +"- [code]\"values\"[/code] - 值的 [PackedStringArray]。如果为空,则使用布尔选项" +"(复选框)。\n" +"- [code]\"default\"[/code] - 默认选择的选项索引([int])或默认布尔值" +"([bool])。\n" +"回调具有以下参数:[code]status: bool, selected_paths: PackedStringArray, " +"selected_filter_index: int, selected_option: Dictionary[/code]。\n" +"[b]注意:[/b]如果显示服务器具有 [constant FEATURE_NATIVE_DIALOG] 功能,则该方" +"法已被实现。支持的平台包括 Linux(X11/Wayland)、Windows、macOS。\n" +"[b]注意:[/b][param current_directory] 可能会被忽略。\n" +"[b]注意:[/b]内嵌文件对话框和 Windows 文件对话框仅支持文件扩展名,而 Android、" +"Linux 和 macOS 的文件对话框还支持 MIME 类型。\n" +"[b]注意:[/b]在 Linux(X11) 上,[param show_hidden] 会被忽略。\n" +"[b]注意:[/b]在 macOS 上,原生文件对话框没有标题。\n" +"[b]注意:[/b]在 macOS 上,沙盒应用程序将保存安全范围的书签,以保留对多个会话中" +"打开的文件夹的访问权限。请使用 [method OS.get_granted_permissions] 获取已保存" +"书签的列表。" + msgid "" "Forces window manager processing while ignoring all [InputEvent]s. See also " "[method process_events].\n" @@ -30701,6 +38956,23 @@ msgstr "" "process_events]。\n" "[b]注意:[/b]这个方法在 Windows 和 macOS 上实现。" +msgid "" +"Returns OS theme accent color. Returns [code]Color(0, 0, 0, 0)[/code], if " +"accent color is unknown.\n" +"[b]Note:[/b] This method is implemented on macOS, Windows, and Android." +msgstr "" +"返回操作系统主题色。如果主题色未知,则返回 [code]Color(0, 0, 0, 0)[/code]。\n" +"[b]注意:[/b]该方法在 macOS、Windows 和 Android 上实现。" + +msgid "" +"Returns the OS theme base color (default control background). Returns " +"[code]Color(0, 0, 0, 0)[/code] if the base color is unknown.\n" +"[b]Note:[/b] This method is implemented on macOS, Windows, and Android." +msgstr "" +"返回操作系统主题基色(默认控件背景)。如果基色未知,则返回 [code]Color(0, 0, " +"0, 0)[/code]。\n" +"[b]注意:[/b]该方法在 macOS、Windows 和 Android 上实现。" + msgid "" "Returns an [Array] of [Rect2], each of which is the bounding rectangle for a " "display cutout or notch. These are non-functional areas on edge-to-edge " @@ -30715,6 +38987,19 @@ msgstr "" "[b]注意:[/b]目前仅在 Android 上实现。其他平台将返回一个空数组,即使它们确实有" "显示切口或凹口。" +msgid "" +"Returns the unobscured area of the display where interactive controls should " +"be rendered. See also [method get_display_cutouts].\n" +"[b]Note:[/b] Currently only implemented on Android and iOS. On other " +"platforms, [code]screen_get_usable_rect(SCREEN_OF_MAIN_WINDOW)[/code] will be " +"returned as a fallback. See also [method screen_get_usable_rect]." +msgstr "" +"返回显示器上未被遮挡的区域,交互式空间应当在此区域中渲染。另见 [method " +"get_display_cutouts]。\n" +"[b]注意:[/b]当前仅在 Android 和 iOS 上实现。其他平台上会使用 " +"[code]screen_get_usable_rect(SCREEN_OF_MAIN_WINDOW)[/code] 作为回退返回。另见 " +"[method screen_get_usable_rect]。" + msgid "" "Returns the index of the screen containing the window with the keyboard " "focus, or the primary screen if there's no focused window." @@ -31563,6 +39848,15 @@ msgstr "" "如果当前的 [DisplayServer] 支持指定的特性 [param feature],则返回 [code]true[/" "code],否则返回 [code]false[/code]。" +msgid "" +"Returns [code]true[/code] if hardware keyboard is connected.\n" +"[b]Note:[/b] This method is implemented on Android and iOS, on other " +"platforms this method always returns [code]true[/code]." +msgstr "" +"如果连接了物理键盘,则返回 [code]true[/code]。\n" +"[b]注意:[/b]该方法在 Android 和 iOS 上实现,在其他平台上始终返回 [code]true[/" +"code]。" + msgid "" "Sets native help system search callbacks.\n" "[param search_callback] has the following arguments: [code]String " @@ -31784,6 +40078,17 @@ msgstr "" "[b]注意:[/b]在 macOS 上,该方法需要“屏幕录制”权限,如果未授予权限将返回桌面壁" "纸颜色。" +msgid "" +"Returns screenshot of the screen [param rect].\n" +"[b]Note:[/b] This method is implemented on macOS and Windows.\n" +"[b]Note:[/b] On macOS, this method requires \"Screen Recording\" permission, " +"if permission is not granted it will return desktop wallpaper color." +msgstr "" +"返回屏幕上矩形框 [param rect] 的截图。\n" +"[b]注意:[/b]该方法在 macOS 和 Windows 上实现。\n" +"[b]注意:[/b]在 macOS 上,该方法需要“屏幕录制”权限,如果未授予权限将返回桌面壁" +"纸颜色。" + msgid "" "Returns the greatest scale factor of all screens.\n" "[b]Note:[/b] On macOS returned value is [code]2.0[/code] if there is at least " @@ -31873,6 +40178,27 @@ msgstr "" " refresh_rate = 60.0\n" "[/codeblock]" +msgid "" +"Returns the scale factor of the specified screen by index.\n" +"[b]Note:[/b] On macOS, the returned value is [code]2.0[/code] for hiDPI " +"(Retina) screens, and [code]1.0[/code] for all other cases.\n" +"[b]Note:[/b] On Linux (Wayland), the returned value is accurate only when " +"[param screen] is [constant SCREEN_OF_MAIN_WINDOW]. Due to API limitations, " +"passing a direct index will return a rounded-up integer, if the screen has a " +"fractional scale (e.g. [code]1.25[/code] would get rounded up to [code]2.0[/" +"code]).\n" +"[b]Note:[/b] This method is implemented on Android, iOS, Web, macOS, and " +"Linux (Wayland)." +msgstr "" +"返回屏幕的缩放系数,屏幕使用索引号指定。\n" +"[b]注意:[/b]在 macOS 上,hiDPI(视网膜)屏幕返回 [code]2.0[/code],其它所有情" +"况均返回 [code]1.0[/code]。\n" +"[b]注意:[/b]在 Linux(Wayland)上,只有 [param screen] 为 [constant " +"SCREEN_OF_MAIN_WINDOW] 时返回值才是精确的。由于 API 的限制,如果屏幕缩放存在小" +"数点,传入直接的索引号返回的是向上取整后的结果(即 [code]1.25[/code] 会向上取" +"整成 [code]2.0[/code])。\n" +"[b]注意:[/b]该方法在 Android、iOS、Web、macOS 和 Linux(Wayland)上实现。" + msgid "" "Returns the screen's size in pixels. See also [method screen_get_position] " "and [method screen_get_usable_rect]." @@ -31951,6 +40277,13 @@ msgstr "" "[b]注意:[/b]该方法在 Android、iOS、macOS、Windows 和 Linux(X11/Wayland)上实" "现。" +msgid "" +"Opens system emoji and symbol picker.\n" +"[b]Note:[/b] This method is implemented on macOS and Windows." +msgstr "" +"打开系统 Emoji 和符号拾取器。\n" +"[b]注意:[/b]该方法在 macOS 和 Windows 上实现。" + msgid "" "Returns the rectangle for the given status indicator [param id] in screen " "coordinates. If the status indicator is not visible, returns an empty " @@ -32555,6 +40888,85 @@ msgstr "" "可以防止将窗口调整为接近零的大小时可能出现的问题。\n" "[b]注意:[/b]使用第三方工具,用户可以禁用窗口几何限制,从而绕过此限制。" +msgid "" +"Sets window mode for the given window to [param mode]. See [enum WindowMode] " +"for possible values and how each mode behaves.\n" +"[b]Note:[/b] On Android, setting it to [constant WINDOW_MODE_FULLSCREEN] or " +"[constant WINDOW_MODE_EXCLUSIVE_FULLSCREEN] will enable immersive mode.\n" +"[b]Note:[/b] Setting the window to full screen forcibly sets the borderless " +"flag to [code]true[/code], so make sure to set it back to [code]false[/code] " +"when not wanted." +msgstr "" +"将给定窗口的窗口模式设置为 [param mode]。可能的值以及各个模式的行为见 [enum " +"WindowMode]。\n" +"[b]注意:[/b]在 Android 上,设为 [constant WINDOW_MODE_FULLSCREEN] 或 " +"[constant WINDOW_MODE_EXCLUSIVE_FULLSCREEN] 会启用沉浸模式。\n" +"[b]注意:[/b]将窗口设置为全屏会强制将无边框标志设为 [code]true[/code],所以不" +"再需要时请务必将其设回 [code]false[/code]。" + +msgid "" +"Sets a polygonal region of the window which accepts mouse events. Mouse " +"events outside the region will be passed through.\n" +"Passing an empty array will disable passthrough support (all mouse events " +"will be intercepted by the window, which is the default behavior).\n" +"[codeblocks]\n" +"[gdscript]\n" +"# Set region, using Path2D node.\n" +"DisplayServer.window_set_mouse_passthrough($Path2D.curve.get_baked_points())\n" +"\n" +"# Set region, using Polygon2D node.\n" +"DisplayServer.window_set_mouse_passthrough($Polygon2D.polygon)\n" +"\n" +"# Reset region to default.\n" +"DisplayServer.window_set_mouse_passthrough([])\n" +"[/gdscript]\n" +"[csharp]\n" +"// Set region, using Path2D node.\n" +"DisplayServer.WindowSetMousePassthrough(GetNode<Path2D>(\"Path2D\").Curve." +"GetBakedPoints());\n" +"\n" +"// Set region, using Polygon2D node.\n" +"DisplayServer.WindowSetMousePassthrough(GetNode<Polygon2D>(\"Polygon2D\")." +"Polygon);\n" +"\n" +"// Reset region to default.\n" +"DisplayServer.WindowSetMousePassthrough([]);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] On Windows, the portion of a window that lies outside the region " +"is not drawn, while on Linux (X11) and macOS it is.\n" +"[b]Note:[/b] This method is implemented on Linux (X11), macOS and Windows." +msgstr "" +"设置一个接受鼠标事件的窗口的多边形区域。该区域外的鼠标事件将被传递出去。\n" +"传递一个空数组将禁用穿透支持(所有鼠标事件将被窗口拦截,这是默认行为)。\n" +"[codeblocks]\n" +"[gdscript]\n" +"# 设置区域,使用 Path2D 节点。\n" +"DisplayServer.window_set_mouse_passthrough($Path2D.curve.get_baked_points())\n" +"\n" +"# 设置区域,使用 Polygon2D 节点。\n" +"DisplayServer.window_set_mouse_passthrough($Polygon2D.polygon)\n" +"\n" +"# 重置区域为默认值。\n" +"DisplayServer.window_set_mouse_passthrough([])\n" +"[/gdscript]\n" +"[csharp]\n" +"// 设置区域,使用 Path2D 节点。\n" +"DisplayServer.WindowSetMousePassthrough(GetNode<Path2D>(\"Path2D\").Curve." +"GetBakedPoints());\n" +"\n" +"// 设置区域,使用 Polygon2D 节点。\n" +"DisplayServer.WindowSetMousePassthrough(GetNode<Polygon2D>(\"Polygon2D\")." +"Polygon);\n" +"\n" +"// 重置区域为默认值。\n" +"DisplayServer.WindowSetMousePassthrough([]);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b]在 Windows 上,不会绘制位于区域之外的窗口部分,而在 Linux(X11)" +"和 macOS 上则会绘制。\n" +"[b]注意:[/b]该方法在 Linux(X11)、macOS 和 Windows 上实现。" + msgid "" "Sets the bounding box of control, or menu item that was used to open the " "popup window, in the screen coordinate system. Clicking this area will not " @@ -32630,6 +41042,20 @@ msgstr "" "[b]注意:[/b]避免每一帧都更改窗口标题,因为这会导致某些窗口管理器出现性能问" "题。尝试每秒最多更改几次窗口标题。" +msgid "" +"Sets window transient parent. Transient window will be destroyed with its " +"transient parent and will return focus to their parent when closed. The " +"transient window is displayed on top of a non-exclusive full-screen parent " +"window. Transient windows can't enter full-screen mode.\n" +"[b]Note:[/b] It's recommended to change this value using [member Window." +"transient] instead.\n" +"[b]Note:[/b] The behavior might be different depending on the platform." +msgstr "" +"设置窗口瞬态父级。瞬态窗口将与其瞬态父级一起销毁,并在关闭时将焦点返回到父级。" +"瞬态窗口显示在非排他性全屏父窗口的顶部。瞬态窗口无法进入全屏模式。\n" +"[b]注意:[/b]建议改用 [member Window.transient] 更改此值。\n" +"[b]注意:[/b]行为可能因平台而异。" + msgid "" "Sets the V-Sync mode of the given window. See also [member ProjectSettings." "display/window/vsync/vsync_mode].\n" @@ -32669,6 +41095,32 @@ msgstr "" "[b]警告:[/b]仅限高级用户!将这样的回调添加到 [Window] 节点将覆盖其默认实现," "这可能会引入错误。" +msgid "" +"Starts an interactive drag operation on the window with the given [param " +"window_id], using the current mouse position. Call this method when handling " +"a mouse button being pressed to simulate a pressed event on the window's " +"title bar. Using this method allows the window to participate in space " +"switching, tiling, and other system features.\n" +"[b]Note:[/b] This method is implemented on Linux (X11/Wayland), macOS, and " +"Windows." +msgstr "" +"在窗口编号为 [param window_id] 的窗口上启动交互式拖动操作,使用当前鼠标位置。" +"处理鼠标按钮按下事件时调用该方法可以模拟在窗口标题栏上按下的事件。使用该方法可" +"以使窗口参与空间切换、平铺等系统功能。\n" +"[b]注意:[/b]该方法在 Linux(X11/Wayland)、macOS 和 Windows 上实现。" + +msgid "" +"Starts an interactive resize operation on the window with the given [param " +"window_id], using the current mouse position. Call this method when handling " +"a mouse button being pressed to simulate a pressed event on the window's " +"edge.\n" +"[b]Note:[/b] This method is implemented on Linux (X11/Wayland), macOS, and " +"Windows." +msgstr "" +"在窗口编号为 [param window_id] 的窗口上启动交互式调整大小操作,使用当前鼠标位" +"置。处理鼠标按钮按下事件时调用该方法可以模拟在窗口边缘上按下的事件。\n" +"[b]注意:[/b]该方法在 Linux(X11/Wayland)、macOS 和 Windows 上实现。" + msgid "" "Display server supports global menu. This allows the application to display " "its menu items in the operating system's top bar. [b]macOS[/b]" @@ -32836,6 +41288,51 @@ msgstr "" "显示服务器支持使用操作系统的原生外观生成文本输入对话框。请参阅 [method " "dialog_input_text]。[b]Windows、macOS[/b]" +msgid "" +"Display server supports spawning dialogs for selecting files or directories " +"using the operating system's native look-and-feel. See [method " +"file_dialog_show]. [b]Windows, macOS, Linux (X11/Wayland), Android[/b]" +msgstr "" +"显示服务器支持使用操作系统的原生外观和操作方式来生成选择文件或目录的对话框。" +"见 [method file_dialog_show]。[b]Windows、macOS、Linux(X11/Wayland)、" +"Android[/b]" + +msgid "" +"The display server supports all features of [constant " +"FEATURE_NATIVE_DIALOG_FILE], with the added functionality of Options and " +"native dialog file access to [code]res://[/code] and [code]user://[/code] " +"paths. See [method file_dialog_show] and [method " +"file_dialog_with_options_show]. [b]Windows, macOS, Linux (X11/Wayland)[/b]" +msgstr "" +"显示服务器支持 [constant FEATURE_NATIVE_DIALOG_FILE] 的所有功能,并增加了“选" +"项”功能以及对 [code]res://[/code] 和 [code]user://[/code] 路径的原生对话框文件" +"访问。见 [method file_dialog_show] 和 [method file_dialog_with_options_show]。" +"[b]Windows、macOS、Linux(X11/Wayland)[/b]" + +msgid "" +"The display server supports initiating window drag and resize operations on " +"demand. See [method window_start_drag] and [method window_start_resize]." +msgstr "" +"显示服务器支持在需要时发起窗口拖拽和大小调整操作。见 [method " +"window_start_drag] 和 [method window_start_resize]。" + +msgid "" +"Display server supports [constant WINDOW_FLAG_EXCLUDE_FROM_CAPTURE] window " +"flag." +msgstr "显示服务器支持窗口标志 [constant WINDOW_FLAG_EXCLUDE_FROM_CAPTURE]。" + +msgid "" +"Display server supports embedding a window from another process. [b]Windows, " +"Linux (X11)[/b]" +msgstr "显示服务器支持嵌入其他进程的窗口。[b]Windows、Linux(X11)[/b]" + +msgid "Native file selection dialog supports MIME types as filters." +msgstr "原生文件选择对话框支持使用 MIME 类型作为过滤器。" + +msgid "" +"Display server supports system emoji and symbol picker. [b]Windows, macOS[/b]" +msgstr "显示服务器支持系统 Emoji 和符号拾取器。[b]Windows、macOS[/b]" + msgid "Makes the mouse cursor visible if it is hidden." msgstr "如果鼠标光标处于隐藏状态,则使其可见。" @@ -32858,6 +41355,9 @@ msgstr "将鼠标光标限制在游戏窗口内,并使其可见。" msgid "Confines the mouse cursor to the game window, and make it hidden." msgstr "将鼠标光标限制在游戏窗口内,并使其隐藏。" +msgid "Max value of the [enum MouseMode]." +msgstr "[enum MouseMode] 的最大值。" + msgid "" "Represents the screen containing the mouse pointer.\n" "[b]Note:[/b] On Linux (Wayland), this constant always represents the screen " @@ -33137,6 +41637,62 @@ msgstr "" "最大化窗口模式,即 [Window] 会占据整个屏幕区域,任务栏除外,并且会显示边框。通" "常发生在按下最大化按钮时。" +msgid "" +"Full screen mode with full multi-window support.\n" +"Full screen window covers the entire display area of a screen and has no " +"decorations. The display's video mode is not changed.\n" +"[b]On Android:[/b] This enables immersive mode.\n" +"[b]On Windows:[/b] Multi-window full-screen mode has a 1px border of the " +"[member ProjectSettings.rendering/environment/defaults/default_clear_color] " +"color.\n" +"[b]On macOS:[/b] A new desktop is used to display the running project.\n" +"[b]Note:[/b] Regardless of the platform, enabling full screen will change the " +"window size to match the monitor's size. Therefore, make sure your project " +"supports [url=$DOCS_URL/tutorials/rendering/multiple_resolutions." +"html]multiple resolutions[/url] when enabling full screen mode." +msgstr "" +"具有完整多窗口支持的全屏模式。\n" +"全屏窗口覆盖屏幕的整个显示区域,且没有任何装饰。显示的视频模式没有更改。\n" +"[b]在 Android 上:[/b]将启用沉浸模式。\n" +"[b]在 Windows 上:[/b]多窗口全屏模式具有 1px 宽的颜色为 [member " +"ProjectSettings.rendering/environment/defaults/default_clear_color] 的边框。\n" +"[b]在 macOS 上:[/b]使用新桌面来显示正在运行的项目。\n" +"[b]注意:[/b]无论平台如何,启用全屏都会更改窗口大小以匹配显示器的大小。因此," +"请确保你的项目在启用全屏模式时支持[url=$DOCS_URL/tutorials/rendering/" +"multiple_resolutions.html]多种分辨率[/url]。" + +msgid "" +"A single window full screen mode. This mode has less overhead, but only one " +"window can be open on a given screen at a time (opening a child window or " +"application switching will trigger a full screen transition).\n" +"Full screen window covers the entire display area of a screen and has no " +"border or decorations. The display's video mode is not changed.\n" +"[b]On Android:[/b] This enables immersive mode.\n" +"[b]On Windows:[/b] Depending on video driver, full screen transition might " +"cause screens to go black for a moment.\n" +"[b]On macOS:[/b] A new desktop is used to display the running project. " +"Exclusive full screen mode prevents Dock and Menu from showing up when the " +"mouse pointer is hovering the edge of the screen.\n" +"[b]On Linux (X11):[/b] Exclusive full screen mode bypasses compositor.\n" +"[b]On Linux (Wayland):[/b] Equivalent to [constant WINDOW_MODE_FULLSCREEN].\n" +"[b]Note:[/b] Regardless of the platform, enabling full screen will change the " +"window size to match the monitor's size. Therefore, make sure your project " +"supports [url=$DOCS_URL/tutorials/rendering/multiple_resolutions." +"html]multiple resolutions[/url] when enabling full screen mode." +msgstr "" +"单窗口全屏模式。这种模式开销较小,但一次只能在给定屏幕上打开一个窗口(打开子窗" +"口或切换应用程序会触发全屏过渡)。\n" +"全屏窗口会覆盖屏幕的整个显示区域,没有边框或装饰。显示视频模式没有改变。\n" +"[b]在 Android 上:[/b]将启用沉浸模式。\n" +"[b]在 Windows 上:[/b]取决于视频驱动程序,全屏过渡可能会导致屏幕暂时变黑。\n" +"[b]在 macOS 上:[/b]一个新的桌面用于显示正在运行的项目。当鼠标指针悬停在屏幕边" +"缘时,独占全屏模式会阻止 Dock 和 Menu 出现。\n" +"[b]在 Linux(X11)上:[/b]独占全屏模式会绕过合成器。\n" +"[b]在 Linux(Wayland)上:[/b]等价于 [constant WINDOW_MODE_FULLSCREEN]。\n" +"[b]注意:[/b]无论平台如何,启用全屏都会更改窗口大小以匹配显示器的大小。因此," +"确保你的项目在启用全屏模式时支持[url=$DOCS_URL/tutorials/rendering/" +"multiple_resolutions.html]多个分辨率[/url]。" + msgid "" "The window can't be resized by dragging its resize grip. It's still possible " "to resize the window using [method window_set_size]. This flag is ignored for " @@ -33209,6 +41765,25 @@ msgid "" "All mouse events are passed to the underlying window of the same application." msgstr "所有鼠标事件都被传递到同一应用程序的底层窗口。" +msgid "" +"Window style is overridden, forcing sharp corners.\n" +"[b]Note:[/b] This flag is implemented only on Windows (11)." +msgstr "" +"覆盖了窗口样式,强制使用尖角。\n" +"[b]注意:[/b]该标志仅在 Windows(11)上实现。" + +msgid "" +"Windows is excluded from screenshots taken by [method screen_get_image], " +"[method screen_get_image_rect], and [method screen_get_pixel].\n" +"[b]Note:[/b] This flag is implemented on macOS and Windows.\n" +"[b]Note:[/b] Setting this flag will [b]NOT[/b] prevent other apps from " +"capturing an image, it should not be used as a security measure." +msgstr "" +"在 [method screen_get_image]、[method screen_get_image_rect] 和 [method " +"screen_get_pixel] 的截图中排除该窗口。\n" +"[b]注意:[/b]该标志在 macOS 和 Windows 上实现。\n" +"[b]注意:[/b]设置该标志[b]不会[/b]阻止其他应用进行截图,不应用作安全措施。" + msgid "Max value of the [enum WindowFlags]." msgstr "[enum WindowFlags] 的最大值。" @@ -33254,6 +41829,33 @@ msgstr "" "置或窗口进入/退出全屏模式)。\n" "[b]注意:[/b]该标志仅在 macOS 上实现。" +msgid "Top-left edge of a window." +msgstr "窗口左上边缘。" + +msgid "Top edge of a window." +msgstr "窗口上边缘。" + +msgid "Top-right edge of a window." +msgstr "窗口右上边缘。" + +msgid "Left edge of a window." +msgstr "窗口左边缘。" + +msgid "Right edge of a window." +msgstr "窗口右边缘。" + +msgid "Bottom-left edge of a window." +msgstr "窗口左下边缘。" + +msgid "Bottom edge of a window." +msgstr "窗口下边缘。" + +msgid "Bottom-right edge of a window." +msgstr "窗口右下边缘。" + +msgid "Represents the size of the [enum WindowResizeEdge] enum." +msgstr "代表 [enum WindowResizeEdge] 枚举的大小。" + msgid "" "No vertical synchronization, which means the engine will display frames as " "fast as possible (tearing may be visible). Framerate is unlimited (regardless " @@ -33299,6 +41901,83 @@ msgstr "" "Sync 模式)。[constant VSYNC_MAILBOX] 在渲染的帧数至少是显示器刷新率的两倍时效" "果最佳。使用兼容渲染方法时表现得像 [constant VSYNC_ENABLED]。" +msgid "" +"Display handle:\n" +"- Linux (X11): [code]X11::Display*[/code] for the display.\n" +"- Linux (Wayland): [code]wl_display[/code] for the display.\n" +"- Android: [code]EGLDisplay[/code] for the display." +msgstr "" +"显示器句柄:\n" +"- Linux(X11):显示器的 [code]X11::Display*[/code]。\n" +"- Linux(Wayland):显示器的 [code]wl_display[/code]。\n" +"- Android:显示器的 [code]EGLDisplay[/code]。" + +msgid "" +"Window handle:\n" +"- Windows: [code]HWND[/code] for the window.\n" +"- Linux (X11): [code]X11::Window*[/code] for the window.\n" +"- Linux (Wayland): [code]wl_surface[/code] for the window.\n" +"- macOS: [code]NSWindow*[/code] for the window.\n" +"- iOS: [code]UIViewController*[/code] for the view controller.\n" +"- Android: [code]jObject[/code] for the activity." +msgstr "" +"窗口句柄:\n" +"- Windows:窗口的 [code]HWND[/code]。\n" +"- Linux(X11):窗口的 [code]X11::Window*[/code]。\n" +"- Linux(Wayland):窗口的 [code]wl_surface[/code]。\n" +"- macOS:窗口的 [code]NSWindow*[/code]。\n" +"- iOS:视图控制器的 [code]UIViewController*[/code]。\n" +"- Android:Activity 的 [code]jObject[/code]。" + +msgid "" +"Window view:\n" +"- Windows: [code]HDC[/code] for the window (only with the Compatibility " +"renderer).\n" +"- macOS: [code]NSView*[/code] for the window main view.\n" +"- iOS: [code]UIView*[/code] for the window main view." +msgstr "" +"窗口视图:\n" +"- Windows:窗口的 [code]HDC[/code](仅适用于 Compatibility 渲染器)。\n" +"- macOS:窗口主视图的 [code]NSView*[/code]。\n" +"- iOS:窗口主视图的 [code]UIView*[/code]。" + +msgid "" +"OpenGL context (only with the Compatibility renderer):\n" +"- Windows: [code]HGLRC[/code] for the window (native GL), or " +"[code]EGLContext[/code] for the window (ANGLE).\n" +"- Linux (X11): [code]GLXContext*[/code] for the window.\n" +"- Linux (Wayland): [code]EGLContext[/code] for the window.\n" +"- macOS: [code]NSOpenGLContext*[/code] for the window (native GL), or " +"[code]EGLContext[/code] for the window (ANGLE).\n" +"- Android: [code]EGLContext[/code] for the window." +msgstr "" +"OpenGL 上下文(仅适用于 Compatibility 渲染器):\n" +"- Windows:窗口的 [code]HGLRC[/code](原生 GL)或窗口的 [code]EGLContext[/" +"code](ANGLE)。\n" +"- Linux(X11):窗口的 [code]GLXContext*[/code]。\n" +"- Linux(Wayland):窗口的 [code]EGLContext[/code]。\n" +"- macOS:窗口的 [code]NSOpenGLContext*[/code](原生 GL)或窗口的 " +"[code]EGLContext[/code](ANGLE)。\n" +"- Android:窗口的 [code]EGLContext[/code]。" + +msgid "" +"- Windows: [code]EGLDisplay[/code] for the window (ANGLE).\n" +"- macOS: [code]EGLDisplay[/code] for the window (ANGLE).\n" +"- Linux (Wayland): [code]EGLDisplay[/code] for the window." +msgstr "" +"- Windows:窗口的 [code]EGLDisplay[/code](ANGLE)。\n" +"- macOS:窗口的 [code]EGLDisplay[/code](ANGLE)。\n" +"- Linux(Wayland):窗口的 [code]EGLDisplay[/code]。" + +msgid "" +"- Windows: [code]EGLConfig[/code] for the window (ANGLE).\n" +"- macOS: [code]EGLConfig[/code] for the window (ANGLE).\n" +"- Linux (Wayland): [code]EGLConfig[/code] for the window." +msgstr "" +"- Windows:窗口的 [code]EGLConfig[/code](ANGLE)。\n" +"- macOS:窗口的 [code]EGLConfig[/code](ANGLE)。\n" +"- Linux(Wayland):窗口的 [code]EGLConfig[/code]。" + msgid "Utterance has begun to be spoken." msgstr "发言开始。" @@ -33314,6 +41993,313 @@ msgstr "发言到达单词或句子的边界。" msgid "Helper class to implement a DTLS server." msgstr "实现 DTLS 服务器的辅助类。" +msgid "" +"This class is used to store the state of a DTLS server. Upon [method setup] " +"it converts connected [PacketPeerUDP] to [PacketPeerDTLS] accepting them via " +"[method take_connection] as DTLS clients. Under the hood, this class is used " +"to store the DTLS state and cookies of the server. The reason of why the " +"state and cookies are needed is outside of the scope of this documentation.\n" +"Below a small example of how to use it:\n" +"[codeblocks]\n" +"[gdscript]\n" +"# server_node.gd\n" +"extends Node\n" +"\n" +"var dtls = DTLSServer.new()\n" +"var server = UDPServer.new()\n" +"var peers = []\n" +"\n" +"func _ready():\n" +" server.listen(4242)\n" +" var key = load(\"key.key\") # Your private key.\n" +" var cert = load(\"cert.crt\") # Your X509 certificate.\n" +" dtls.setup(TlsOptions.server(key, cert))\n" +"\n" +"func _process(delta):\n" +" while server.is_connection_available():\n" +" var peer = server.take_connection()\n" +" var dtls_peer = dtls.take_connection(peer)\n" +" if dtls_peer.get_status() != PacketPeerDTLS.STATUS_HANDSHAKING:\n" +" continue # It is normal that 50% of the connections fails due to " +"cookie exchange.\n" +" print(\"Peer connected!\")\n" +" peers.append(dtls_peer)\n" +"\n" +" for p in peers:\n" +" p.poll() # Must poll to update the state.\n" +" if p.get_status() == PacketPeerDTLS.STATUS_CONNECTED:\n" +" while p.get_available_packet_count() > 0:\n" +" print(\"Received message from client: %s\" % p.get_packet()." +"get_string_from_utf8())\n" +" p.put_packet(\"Hello DTLS client\".to_utf8_buffer())\n" +"[/gdscript]\n" +"[csharp]\n" +"// ServerNode.cs\n" +"using Godot;\n" +"\n" +"public partial class ServerNode : Node\n" +"{\n" +" private DtlsServer _dtls = new DtlsServer();\n" +" private UdpServer _server = new UdpServer();\n" +" private Godot.Collections.Array<PacketPeerDtls> _peers = [];\n" +"\n" +" public override void _Ready()\n" +" {\n" +" _server.Listen(4242);\n" +" var key = GD.Load<CryptoKey>(\"key.key\"); // Your private key.\n" +" var cert = GD.Load<X509Certificate>(\"cert.crt\"); // Your X509 " +"certificate.\n" +" _dtls.Setup(TlsOptions.Server(key, cert));\n" +" }\n" +"\n" +" public override void _Process(double delta)\n" +" {\n" +" while (_server.IsConnectionAvailable())\n" +" {\n" +" PacketPeerUdp peer = _server.TakeConnection();\n" +" PacketPeerDtls dtlsPeer = _dtls.TakeConnection(peer);\n" +" if (dtlsPeer.GetStatus() != PacketPeerDtls.Status.Handshaking)\n" +" {\n" +" continue; // It is normal that 50% of the connections fails " +"due to cookie exchange.\n" +" }\n" +" GD.Print(\"Peer connected!\");\n" +" _peers.Add(dtlsPeer);\n" +" }\n" +"\n" +" foreach (var p in _peers)\n" +" {\n" +" p.Poll(); // Must poll to update the state.\n" +" if (p.GetStatus() == PacketPeerDtls.Status.Connected)\n" +" {\n" +" while (p.GetAvailablePacketCount() > 0)\n" +" {\n" +" GD.Print($\"Received Message From Client: {p.GetPacket()." +"GetStringFromUtf8()}\");\n" +" p.PutPacket(\"Hello DTLS Client\".ToUtf8Buffer());\n" +" }\n" +" }\n" +" }\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[codeblocks]\n" +"[gdscript]\n" +"# client_node.gd\n" +"extends Node\n" +"\n" +"var dtls = PacketPeerDTLS.new()\n" +"var udp = PacketPeerUDP.new()\n" +"var connected = false\n" +"\n" +"func _ready():\n" +" udp.connect_to_host(\"127.0.0.1\", 4242)\n" +" dtls.connect_to_peer(udp, false) # Use true in production for certificate " +"validation!\n" +"\n" +"func _process(delta):\n" +" dtls.poll()\n" +" if dtls.get_status() == PacketPeerDTLS.STATUS_CONNECTED:\n" +" if !connected:\n" +" # Try to contact server\n" +" dtls.put_packet(\"The answer is... 42!\".to_utf8_buffer())\n" +" while dtls.get_available_packet_count() > 0:\n" +" print(\"Connected: %s\" % dtls.get_packet()." +"get_string_from_utf8())\n" +" connected = true\n" +"[/gdscript]\n" +"[csharp]\n" +"// ClientNode.cs\n" +"using Godot;\n" +"using System.Text;\n" +"\n" +"public partial class ClientNode : Node\n" +"{\n" +" private PacketPeerDtls _dtls = new PacketPeerDtls();\n" +" private PacketPeerUdp _udp = new PacketPeerUdp();\n" +" private bool _connected = false;\n" +"\n" +" public override void _Ready()\n" +" {\n" +" _udp.ConnectToHost(\"127.0.0.1\", 4242);\n" +" _dtls.ConnectToPeer(_udp, validateCerts: false); // Use true in " +"production for certificate validation!\n" +" }\n" +"\n" +" public override void _Process(double delta)\n" +" {\n" +" _dtls.Poll();\n" +" if (_dtls.GetStatus() == PacketPeerDtls.Status.Connected)\n" +" {\n" +" if (!_connected)\n" +" {\n" +" // Try to contact server\n" +" _dtls.PutPacket(\"The Answer Is..42!\".ToUtf8Buffer());\n" +" }\n" +" while (_dtls.GetAvailablePacketCount() > 0)\n" +" {\n" +" GD.Print($\"Connected: {_dtls.GetPacket()." +"GetStringFromUtf8()}\");\n" +" _connected = true;\n" +" }\n" +" }\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"该类用于存储 DTLS 服务器的状态。在 [method setup] 之后,它将连接的 " +"[PacketPeerUDP] 转换为 [PacketPeerDTLS],通过 [method take_connection] 接受它" +"们作为 DTLS 客户端。在底层,这个类用于存储服务器的 DTLS 状态和 cookie。为什么" +"需要状态和 cookie 的原因不在本文档的范围内。\n" +"下面是一个如何使用它的小例子:\n" +"[codeblocks]\n" +"[gdscript]\n" +"# server_node.gd\n" +"extends Node\n" +"\n" +"var dtls = DTLSServer.new()\n" +"var server = UDPServer.new()\n" +"var peers = []\n" +"\n" +"func _ready():\n" +" server.listen(4242)\n" +" var key = load(\"key.key\") # 你的私钥。\n" +" var cert = load(\"cert.crt\") # 你的 X509 证书。\n" +" dtls.setup(TlsOptions.server(key, cert))\n" +"\n" +"func _process(delta):\n" +" while server.is_connection_available():\n" +" var peer = server.take_connection()\n" +" var dtls_peer = dtls.take_connection(peer)\n" +" if dtls_peer.get_status() != PacketPeerDTLS.STATUS_HANDSHAKING:\n" +" continue # 由于 cookie 交换,50% 的连接会失败,这是正常现象。\n" +" print(\"对等体已连接!\")\n" +" peers.append(dtls_peer)\n" +"\n" +" for p in peers:\n" +" p.poll() # 必须轮询以更新状态。\n" +" if p.get_status() == PacketPeerDTLS.STATUS_CONNECTED:\n" +" while p.get_available_packet_count() > 0:\n" +" print(\"从客户端收到消息:%s\" % p.get_packet()." +"get_string_from_utf8())\n" +" p.put_packet(\"你好 DTLS 客户端\".to_utf8_buffer())\n" +"[/gdscript]\n" +"[csharp]\n" +"// ServerNode.cs\n" +"using Godot;\n" +"\n" +"public partial class ServerNode : Node\n" +"{\n" +" private DtlsServer _dtls = new DtlsServer();\n" +" private UdpServer _server = new UdpServer();\n" +" private Godot.Collections.Array<PacketPeerDtls> _peers = [];\n" +"\n" +" public override void _Ready()\n" +" {\n" +" _server.Listen(4242);\n" +" var key = GD.Load<CryptoKey>(\"key.key\"); // 你的私钥。\n" +" var cert = GD.Load<X509Certificate>(\"cert.crt\"); // 你的 X509 证" +"书。\n" +" _dtls.Setup(TlsOptions.Server(key, cert));\n" +" }\n" +"\n" +" public override void _Process(double delta)\n" +" {\n" +" while (_server.IsConnectionAvailable())\n" +" {\n" +" PacketPeerUdp peer = _server.TakeConnection();\n" +" PacketPeerDtls dtlsPeer = _dtls.TakeConnection(peer);\n" +" if (dtlsPeer.GetStatus() != PacketPeerDtls.Status.Handshaking)\n" +" {\n" +" continue; // 由于 cookie 交换,50% 的连接会失败,这是正常现" +"象。\n" +" }\n" +" GD.Print(\"对等体已连接!\");\n" +" _peers.Add(dtlsPeer);\n" +" }\n" +"\n" +" foreach (var p in _peers)\n" +" {\n" +" p.Poll(); // 必须轮询以更新状态。\n" +" if (p.GetStatus() == PacketPeerDtls.Status.Connected)\n" +" {\n" +" while (p.GetAvailablePacketCount() > 0)\n" +" {\n" +" GD.Print($\"从客户端收到消息:{p.GetPacket()." +"GetStringFromUtf8()}\");\n" +" p.PutPacket(\"你好 DTLS 客户端\".ToUtf8Buffer());\n" +" }\n" +" }\n" +" }\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[codeblocks]\n" +"[gdscript]\n" +"# client_node.gd\n" +"extends Node\n" +"\n" +"var dtls = PacketPeerDTLS.new()\n" +"var udp = PacketPeerUDP.new()\n" +"var connected = false\n" +"\n" +"func _ready():\n" +" udp.connect_to_host(\"127.0.0.1\", 4242)\n" +" dtls.connect_to_peer(udp, false) # 生产环境中请使用 true 进行证书校验!\n" +"\n" +"func _process(delta):\n" +" dtls.poll()\n" +" if dtls.get_status() == PacketPeerDTLS.STATUS_CONNECTED:\n" +" if !connected:\n" +" # 尝试联系服务器\n" +" dtls.put_packet(\"回应是… 42!\".to_utf8_buffer())\n" +" while dtls.get_available_packet_count() > 0:\n" +" print(\"已连接:%s\" % dtls.get_packet().get_string_from_utf8())\n" +" connected = true\n" +"[/gdscript]\n" +"[csharp]\n" +"// ClientNode.cs\n" +"using Godot;\n" +"using System.Text;\n" +"\n" +"public partial class ClientNode : Node\n" +"{\n" +" private PacketPeerDtls _dtls = new PacketPeerDtls();\n" +" private PacketPeerUdp _udp = new PacketPeerUdp();\n" +" private bool _connected = false;\n" +"\n" +" public override void _Ready()\n" +" {\n" +" _udp.ConnectToHost(\"127.0.0.1\", 4242);\n" +" _dtls.ConnectToPeer(_udp, validateCerts: false); // 生产环境中请使用 " +"true 进行证书校验!\n" +" }\n" +"\n" +" public override void _Process(double delta)\n" +" {\n" +" _dtls.Poll();\n" +" if (_dtls.GetStatus() == PacketPeerDtls.Status.Connected)\n" +" {\n" +" if (!_connected)\n" +" {\n" +" // 尝试联系服务器\n" +" _dtls.PutPacket(\"回应是… 42!\".ToUtf8Buffer());\n" +" }\n" +" while (_dtls.GetAvailablePacketCount() > 0)\n" +" {\n" +" GD.Print($\"已连接:{_dtls.GetPacket()." +"GetStringFromUtf8()}\");\n" +" _connected = true;\n" +" }\n" +" }\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Setup the DTLS server to use the given [param server_options]. See [method " "TLSOptions.server]." @@ -33363,7 +42349,7 @@ msgid "" "[b]Note:[/b] This class shouldn't be instantiated directly. Instead, access " "the singleton using [method EditorInterface.get_command_palette]." msgstr "" -"该对象包含所有可用命令及其快捷方式文本。这些命令可以通过 [b]Editor > 命令面板" +"该对象包含所有可用命令及其快捷方式文本。这些命令可以通过 [b]编辑器 > 命令面板" "[/b] 菜单访问。\n" "命令键名使用斜杠分隔符来区分部分,例如:[code]\"example/command1\"[/code],那" "么 [code]example[/code] 将是部分名称。\n" @@ -33412,9 +42398,339 @@ msgstr "" "从 EditorCommandPalette 中删除自定义命令。\n" "- [param key_name]: [String] (特定 [b]Command[/b] 的键名)" +msgid "Plugin for adding custom context menus in the editor." +msgstr "用于在编辑器中添加自定义上下文菜单的插件。" + +msgid "" +"[EditorContextMenuPlugin] allows for the addition of custom options in the " +"editor's context menu.\n" +"Currently, context menus are supported for three commonly used areas: the " +"file system, scene tree, and editor script list panel." +msgstr "" +"[EditorContextMenuPlugin] 能够在编辑器的上下文菜单中添加自定义的选项。\n" +"目前支持三个常用区域的上下文菜单:文件系统、场景树、编辑器脚本列表面板。" + +msgid "" +"Called when creating a context menu, custom options can be added by using the " +"[method add_context_menu_item] or [method " +"add_context_menu_item_from_shortcut] functions. [param paths] contains " +"currently selected paths (depending on menu), which can be used to " +"conditionally add options." +msgstr "" +"创建上下文菜单时调用,可以使用 [method add_context_menu_item] 或 [method " +"add_context_menu_item_from_shortcut] 函数添加自定义选项。[param paths] 包含当" +"前选中的路径(取决于菜单),可以借此有选择地添加选项。" + +msgid "" +"Add custom option to the context menu of the plugin's specified slot. When " +"the option is activated, [param callback] will be called. Callback should " +"take single [Array] argument; array contents depend on context menu slot.\n" +"[codeblock]\n" +"func _popup_menu(paths):\n" +" add_context_menu_item(\"File Custom options\", handle, ICON)\n" +"[/codeblock]\n" +"If you want to assign shortcut to the menu item, use [method " +"add_context_menu_item_from_shortcut] instead." +msgstr "" +"在插件指定槽位的上下文菜单中添加自定义选项。激活该选项时会调用 [param " +"callback]。回调应当接受一个 [Array] 参数;该数组的内容取决于上下文菜单槽位。\n" +"[codeblock]\n" +"func _popup_menu(paths):\n" +" add_context_menu_item(\"文件自定义选项\", handle, ICON)\n" +"[/codeblock]\n" +"如果你想要为菜单项设置快捷键,请改用 [method " +"add_context_menu_item_from_shortcut]。" + +msgid "" +"Add custom option to the context menu of the plugin's specified slot. The " +"option will have the [param shortcut] assigned and reuse its callback. The " +"shortcut has to be registered beforehand with [method add_menu_shortcut].\n" +"[codeblock]\n" +"func _init():\n" +" add_menu_shortcut(SHORTCUT, handle)\n" +"\n" +"func _popup_menu(paths):\n" +" add_context_menu_item_from_shortcut(\"File Custom options\", SHORTCUT, " +"ICON)\n" +"[/codeblock]" +msgstr "" +"在插件指定槽位的上下文菜单中添加自定义选项。该选项会设置快捷键 [param " +"shortcut] 并重用其回调。快捷键必须事先用 [method add_menu_shortcut] 注册。\n" +"[codeblock]\n" +"func _init():\n" +" add_menu_shortcut(SHORTCUT, handle)\n" +"\n" +"func _popup_menu(paths):\n" +" add_context_menu_item_from_shortcut(\"文件自定义选项\", SHORTCUT, ICON)\n" +"[/codeblock]" + +msgid "" +"Add a submenu to the context menu of the plugin's specified slot. The submenu " +"is not automatically handled, you need to connect to its signals yourself. " +"Also the submenu is freed on every popup, so provide a new [PopupMenu] every " +"time.\n" +"[codeblock]\n" +"func _popup_menu(paths):\n" +" var popup_menu = PopupMenu.new()\n" +" popup_menu.add_item(\"Blue\")\n" +" popup_menu.add_item(\"White\")\n" +" popup_menu.id_pressed.connect(_on_color_submenu_option)\n" +"\n" +" add_context_submenu_item(\"Set Node Color\", popup_menu)\n" +"[/codeblock]" +msgstr "" +"在插件指定槽位的上下文菜单中添加子菜单。子菜单不会自动处理,你需要自行连接信" +"号。另外每次弹出后都会释放子菜单,所以每次都需要提供新的 [PopupMenu]。\n" +"[codeblock]\n" +"func _popup_menu(paths):\n" +" var popup_menu = PopupMenu.new()\n" +" popup_menu.add_item(\"蓝色\")\n" +" popup_menu.add_item(\"白色\")\n" +" popup_menu.id_pressed.connect(_on_color_submenu_option)\n" +"\n" +" add_context_submenu_item(\"设置节点颜色\", popup_menu)\n" +"[/codeblock]" + +msgid "" +"Registers a shortcut associated with the plugin's context menu. This method " +"should be called once (e.g. in plugin's [method Object._init]). [param " +"callback] will be called when user presses the specified [param shortcut] " +"while the menu's context is in effect (e.g. FileSystem dock is focused). " +"Callback should take single [Array] argument; array contents depend on " +"context menu slot.\n" +"[codeblock]\n" +"func _init():\n" +" add_menu_shortcut(SHORTCUT, handle)\n" +"[/codeblock]" +msgstr "" +"为插件的上下文菜单注册快捷键。该方法只应调用一次(例如在插件的 [method Object." +"_init] 中调用)。当用户按下 [param shortcut] 快捷键且菜单上下文有效时就会调用 " +"[param callback](例如聚焦“文件系统”面板)。回调应接受一个 [Array] 参数;数组" +"内容取决于具体的上下文菜单槽位。\n" +"[codeblock]\n" +"func _init():\n" +" add_menu_shortcut(SHORTCUT, handle)\n" +"[/codeblock]" + +msgid "" +"Context menu of Scene dock. [method _popup_menu] will be called with a list " +"of paths to currently selected nodes, while option callback will receive the " +"list of currently selected nodes." +msgstr "" +"“场景”面板的上下文菜单。调用 [method _popup_menu] 时提供的是当前所选节点路径的" +"列表,可选回调接收的是当前所选节点列表。" + +msgid "" +"Context menu of FileSystem dock. [method _popup_menu] and option callback " +"will be called with list of paths of the currently selected files." +msgstr "" +"“文件系统”面板的上下文菜单。调用 [method _popup_menu] 和可选回调时提供的是当前" +"所选文件路径的列表。" + +msgid "" +"Context menu of Script editor's script tabs. [method _popup_menu] will be " +"called with the path to the currently edited script, while option callback " +"will receive reference to that script." +msgstr "" +"“脚本”编辑器中脚本选项卡的上下文菜单。调用 [method _popup_menu] 时提供的是当前" +"编辑脚本的路径,可选回调接收的是该脚本的引用。" + +msgid "" +"The \"Create...\" submenu of FileSystem dock's context menu. [method " +"_popup_menu] and option callback will be called with list of paths of the " +"currently selected files." +msgstr "" +"“文件系统”面板上下文菜单的“创建...”子菜单。调用 [method _popup_menu] 和可选回" +"调时提供的是当前所选文件路径的列表。" + +msgid "" +"Context menu of Script editor's code editor. [method _popup_menu] will be " +"called with the path to the [CodeEdit] node. You can fetch it using this " +"code:\n" +"[codeblock]\n" +"func _popup_menu(paths):\n" +" var code_edit = Engine.get_main_loop().root.get_node(paths[0]);\n" +"[/codeblock]\n" +"The option callback will receive reference to that node. You can use " +"[CodeEdit] methods to perform symbol lookups etc." +msgstr "" +"“脚本”编辑器中代码编辑器的上下文菜单。调用 [method _popup_menu] 时提供的是指" +"向 [CodeEdit] 的路径。你可以使用这段代码获取该节点:\n" +"[codeblock]\n" +"func _popup_menu(paths):\n" +" var code_edit = Engine.get_main_loop().root.get_node(paths[0]);\n" +"[/codeblock]\n" +"可选回调接收的是该节点的引用。你可以使用 [CodeEdit] 的方法执行符号查询等操作。" + +msgid "" +"Context menu of scene tabs. [method _popup_menu] will be called with the path " +"of the clicked scene, or empty [PackedStringArray] if the menu was opened on " +"empty space. The option callback will receive the path of the clicked scene, " +"or empty [String] if none was clicked." +msgstr "" +"场景选项卡的上下文菜单。调用 [method _popup_menu] 时提供的点击场景的路径,在空" +"白区域打开菜单时为空的 [PackedStringArray]。可选回调接收的是点击场景的路径,未" +"点击场景时为空的 [String]。" + +msgid "" +"Context menu of 2D editor's basic right-click menu. [method _popup_menu] will " +"be called with paths to all [CanvasItem] nodes under the cursor. You can " +"fetch them using this code:\n" +"[codeblock]\n" +"func _popup_menu(paths):\n" +" var canvas_item = Engine.get_main_loop().root.get_node(paths[0]); # " +"Replace 0 with the desired index.\n" +"[/codeblock]\n" +"The paths array is empty if there weren't any nodes under cursor. The option " +"callback will receive a typed array of [CanvasItem] nodes." +msgstr "" +"2D 编辑器的基本右键菜单。调用 [method _popup_menu] 时提供的是光标下所有 " +"[CanvasItem] 的路径。你可以使用这段代码获取这些节点:\n" +"[codeblock]\n" +"func _popup_menu(paths):\n" +" var canvas_item = Engine.get_main_loop().root.get_node(paths[0]); # 将 0 " +"替换为想要的索引。\n" +"[/codeblock]\n" +"光标下没有节点时路径数组为空。可选回调接收的是类型为 [CanvasItem] 节点的类型化" +"数组。" + msgid "A base class to implement debugger plugins." msgstr "实现调试器插件的基类。" +msgid "" +"[EditorDebuggerPlugin] provides functions related to the editor side of the " +"debugger.\n" +"To interact with the debugger, an instance of this class must be added to the " +"editor via [method EditorPlugin.add_debugger_plugin].\n" +"Once added, the [method _setup_session] callback will be called for every " +"[EditorDebuggerSession] available to the plugin, and when new ones are " +"created (the sessions may be inactive during this stage).\n" +"You can retrieve the available [EditorDebuggerSession]s via [method " +"get_sessions] or get a specific one via [method get_session].\n" +"[codeblocks]\n" +"[gdscript]\n" +"@tool\n" +"extends EditorPlugin\n" +"\n" +"class ExampleEditorDebugger extends EditorDebuggerPlugin:\n" +"\n" +" func _has_capture(capture):\n" +" # Return true if you wish to handle messages with the prefix " +"\"my_plugin:\".\n" +" return capture == \"my_plugin\"\n" +"\n" +" func _capture(message, data, session_id):\n" +" if message == \"my_plugin:ping\":\n" +" get_session(session_id).send_message(\"my_plugin:echo\", data)\n" +" return true\n" +" return false\n" +"\n" +" func _setup_session(session_id):\n" +" # Add a new tab in the debugger session UI containing a label.\n" +" var label = Label.new()\n" +" label.name = \"Example plugin\" # Will be used as the tab title.\n" +" label.text = \"Example plugin\"\n" +" var session = get_session(session_id)\n" +" # Listens to the session started and stopped signals.\n" +" session.started.connect(func (): print(\"Session started\"))\n" +" session.stopped.connect(func (): print(\"Session stopped\"))\n" +" session.add_session_tab(label)\n" +"\n" +"var debugger = ExampleEditorDebugger.new()\n" +"\n" +"func _enter_tree():\n" +" add_debugger_plugin(debugger)\n" +"\n" +"func _exit_tree():\n" +" remove_debugger_plugin(debugger)\n" +"[/gdscript]\n" +"[/codeblocks]\n" +"To connect on the running game side, use the [EngineDebugger] singleton:\n" +"[codeblocks]\n" +"[gdscript]\n" +"extends Node\n" +"\n" +"func _ready():\n" +" EngineDebugger.register_message_capture(\"my_plugin\", _capture)\n" +" EngineDebugger.send_message(\"my_plugin:ping\", [\"test\"])\n" +"\n" +"func _capture(message, data):\n" +" # Note that the \"my_plugin:\" prefix is not used here.\n" +" if message == \"echo\":\n" +" prints(\"Echo received:\", data)\n" +" return true\n" +" return false\n" +"[/gdscript]\n" +"[/codeblocks]\n" +"[b]Note:[/b] While the game is running, [method @GlobalScope.print] and " +"similar functions [i]called in the editor[/i] do not print anything, the " +"Output Log prints only game messages." +msgstr "" +"编辑器调试器插件 [EditorDebuggerPlugin] 提供了与调试器的编辑器端相关的函数。\n" +"要与调试器交互,必须将这个类的实例通过 [method EditorPlugin." +"add_debugger_plugin] 添加至编辑器。\n" +"添加完成后,会针对该插件可用的每一个编辑器调试器会话 [EditorDebuggerSession] " +"回调一次 [method _setup_session],后续有新的会话也会进行回调(这些会话在此阶段" +"可能尚未激活)。\n" +"你可以通过 [method get_sessions] 获取所有可用的 [EditorDebuggerSession],也可" +"以通过 [method get_session] 获取特定的会话。\n" +"[codeblocks]\n" +"[gdscript]\n" +"@tool\n" +"extends EditorPlugin\n" +"\n" +"class ExampleEditorDebugger extends EditorDebuggerPlugin:\n" +"\n" +" func _has_capture(capture):\n" +" # 如果想要处理带有“my_plugin:”前缀的消息则返回 true。\n" +" return capture == \"my_plugin\"\n" +"\n" +" func _capture(message, data, session_id):\n" +" if message == \"my_plugin:ping\":\n" +" get_session(session_id).send_message(\"my_plugin:echo\", data)\n" +" return true\n" +" return false\n" +"\n" +" func _setup_session(session_id):\n" +" # 在调试器会话 UI 中添加新的选项卡,其中包含一个标签。\n" +" var label = Label.new()\n" +" label.name = \"Example plugin\" # 会显示为选项卡标题\n" +" label.text = \"示例插件\"\n" +" var session = get_session(session_id)\n" +" # 监听会话开始和停止信号。\n" +" session.started.connect(func (): print(\"会话已开始\"))\n" +" session.stopped.connect(func (): print(\"会话已停止\"))\n" +" session.add_session_tab(label)\n" +"\n" +"var debugger = ExampleEditorDebugger.new()\n" +"\n" +"func _enter_tree():\n" +" add_debugger_plugin(debugger)\n" +"\n" +"func _exit_tree():\n" +" remove_debugger_plugin(debugger)\n" +"[/gdscript]\n" +"[/codeblocks]\n" +"要在运行的游戏中连接,请使用 [EngineDebugger] 单例:\n" +"[codeblocks]\n" +"[gdscript]\n" +"extends Node\n" +"\n" +"func _ready():\n" +" EngineDebugger.register_message_capture(\"my_plugin\", _capture)\n" +" EngineDebugger.send_message(\"my_plugin:ping\", [\"test\"])\n" +"\n" +"func _capture(message, data):\n" +" # 请注意这里不使用“my_plugin:”前缀。\n" +" if message == \"echo\":\n" +" prints(\"收到回响:\", data)\n" +" return true\n" +" return false\n" +"[/gdscript]\n" +"[/codeblocks]\n" +"[b]注意:[/b]游戏运行时,在[i]编辑器中调用[/i] [method @GlobalScope.print] 等" +"函数不会输出任何内容,“输出日志”中只会输出游戏中的消息。" + msgid "" "Override this method to be notified when a breakpoint is set in the editor." msgstr "覆盖此方法以便在编辑器中设置断点时收到通知。" @@ -33424,11 +42740,36 @@ msgid "" "editor." msgstr "覆盖此方法以便当编辑器中所有断点被清除时收到通知。" +msgid "" +"Override this method to process incoming messages. The [param session_id] is " +"the ID of the [EditorDebuggerSession] that received the [param message]. Use " +"[method get_session] to retrieve the session. This method should return " +"[code]true[/code] if the message is recognized." +msgstr "" +"覆盖此方法以处理传入的消息。[param session_id] 是接收到消息的 " +"[EditorDebuggerSession] 的 ID,可以通过 [method get_session] 获取会话。能够识" +"别消息时,该方法应返回 [code]true[/code]。" + msgid "" "Override this method to be notified when a breakpoint line has been clicked " "in the debugger breakpoint panel." msgstr "覆盖此方法,当在调试器断点面板中单击断点行时收到通知。" +msgid "" +"Override this method to enable receiving messages from the debugger. If " +"[param capture] is \"my_message\" then messages starting with \"my_message:\" " +"will be passed to the [method _capture] method." +msgstr "" +"覆盖此方法以启用从调试器接收消息。如果 [param capture] 为“my_message”,则会将" +"所有以“my_message:”开头的消息传递给 [method _capture] 方法。" + +msgid "" +"Override this method to be notified whenever a new [EditorDebuggerSession] is " +"created. Note that the session may be inactive during this stage." +msgstr "" +"覆盖此方法,以在每次新建 [EditorDebuggerSession] 时收到通知。请注意,在此阶段" +"会话可能处于非活动状态。" + msgid "Returns the [EditorDebuggerSession] with the given [param id]." msgstr "返回具有给定 [param id] 的 [EditorDebuggerSession]。" @@ -33457,6 +42798,13 @@ msgstr "" "send_message] 可以发送消息,通过 [method toggle_profiler] 可以切换 " "[EngineProfiler]。" +msgid "" +"Adds the given [param control] to the debug session UI in the debugger bottom " +"panel. The [param control]'s node name will be used as the tab title." +msgstr "" +"将控件 [param control] 添加到调试器底部面板的调试会话 UI 中。[param control] " +"的节点名称会作为选项卡标题。" + msgid "" "Returns [code]true[/code] if the debug session is currently attached to a " "remote instance." @@ -33543,6 +42891,124 @@ msgstr "" msgid "Console support in Godot" msgstr "Godot 中的控制台支持" +msgid "" +"Adds a message to the export log that will be displayed when exporting ends." +msgstr "在导出日志中添加一条消息,会在导出结束时显示。" + +msgid "Clears the export log." +msgstr "清空导出日志。" + +msgid "Create a new preset for this platform." +msgstr "新建该平台的预设。" + +msgid "Creates a PCK archive at [param path] for the specified [param preset]." +msgstr "使用 [param preset] 预设在 [param path] 路径处创建 PCK 包。" + +msgid "" +"Creates a patch PCK archive at [param path] for the specified [param preset], " +"containing only the files that have changed since the last patch.\n" +"[b]Note:[/b] [param patches] is an optional override of the set of patches " +"defined in the export preset. When empty the patches defined in the export " +"preset will be used instead." +msgstr "" +"使用 [param preset] 预设在 [param path] 路径处创建 PCK 补丁包,只会包含相对于" +"上一个补丁发生更改的文件。\n" +"[b]注意:[/b][param patches] 是可选的,会覆盖导出预设中定义的补丁集。留空时会" +"使用导出预设中定义的补丁。" + +msgid "Creates a full project at [param path] for the specified [param preset]." +msgstr "使用 [param preset] 预设在 [param path] 路径处创建完整的项目。" + +msgid "" +"Exports project files for the specified preset. This method can be used to " +"implement custom export format, other than PCK and ZIP. One of the callbacks " +"is called for each exported file.\n" +"[param save_cb] is called for all exported files and have the following " +"arguments: [code]file_path: String[/code], [code]file_data: PackedByteArray[/" +"code], [code]file_index: int[/code], [code]file_count: int[/code], " +"[code]encryption_include_filters: PackedStringArray[/code], " +"[code]encryption_exclude_filters: PackedStringArray[/code], " +"[code]encryption_key: PackedByteArray[/code].\n" +"[param shared_cb] is called for exported native shared/static libraries and " +"have the following arguments: [code]file_path: String[/code], [code]tags: " +"PackedStringArray[/code], [code]target_folder: String[/code].\n" +"[b]Note:[/b] [code]file_index[/code] and [code]file_count[/code] are intended " +"for progress tracking only and aren't necessarily unique and precise." +msgstr "" +"使用指定的预设导出项目文件。该方法可以用来实现与 PCK 和 ZIP 不同的自定义导出格" +"式。每个导出的文件都会调用一个回调。\n" +"[param save_cb] 会针对所有导出的文件调用,参数为:[code]file_path: String[/" +"code]、[code]file_data: PackedByteArray[/code]、[code]file_index: int[/code]、" +"[code]file_count: int[/code]、[code]encryption_include_filters: " +"PackedStringArray[/code]、[code]encryption_exclude_filters: " +"PackedStringArray[/code]、[code]encryption_key: PackedByteArray[/code]。\n" +"[param shared_cb] 会针对导出的共享/静态库调用,参数为:[code]file_path: " +"String[/code]、[code]tags: PackedStringArray[/code]、[code]target_folder: " +"String[/code]。\n" +"[b]注意:[/b][code]file_index[/code] 和 [code]file_count[/code] 仅供跟踪进度使" +"用,不一定唯一,也不一定精确。" + +msgid "Create a ZIP archive at [param path] for the specified [param preset]." +msgstr "使用 [param preset] 预设在 [param path] 路径处创建 ZIP 压缩包。" + +msgid "" +"Create a patch ZIP archive at [param path] for the specified [param preset], " +"containing only the files that have changed since the last patch.\n" +"[b]Note:[/b] [param patches] is an optional override of the set of patches " +"defined in the export preset. When empty the patches defined in the export " +"preset will be used instead." +msgstr "" +"使用 [param preset] 预设在 [param path] 路径处创建 ZIP 补丁压缩包,只会包含相" +"对于上一个补丁发生更改的文件。\n" +"[b]注意:[/b][param patches] 是可选的,会覆盖导出预设中定义的补丁集。留空时会" +"使用导出预设中定义的补丁。" + +msgid "" +"Locates export template for the platform, and returns [Dictionary] with the " +"following keys: [code]path: String[/code] and [code]error: String[/code]. " +"This method is provided for convenience and custom export platforms aren't " +"required to use it or keep export templates stored in the same way official " +"templates are." +msgstr "" +"定位该平台的导出模板,返回带有以下字段的 [Dictionary]:路径 [code]path: " +"String[/code] 和错误 [code]error: String[/code]。该方法旨在方便使用,自定义导" +"出平台不必使用,也不必和官方模板一样存储导出模板。" + +msgid "" +"Generates array of command line arguments for the default export templates " +"for the debug flags and editor settings." +msgstr "生成命令行参数数组,适用于使用调试标志和编辑器设置的默认导出模板。" + +msgid "Returns array of [EditorExportPreset]s for this platform." +msgstr "返回该平台的 [EditorExportPreset] 数组。" + +msgid "" +"Returns array of core file names that always should be exported regardless of " +"preset config." +msgstr "返回核心文件名数组,这些文件无论预设配置如何都应该导出。" + +msgid "" +"Returns additional files that should always be exported regardless of preset " +"configuration, and are not part of the project source. The returned " +"[Dictionary] contains filename keys ([String]) and their corresponding raw " +"data ([PackedByteArray])." +msgstr "" +"返回无论预设如何配置都应当额外导出的文件,这些文件不在项目源文件中。返回的 " +"[Dictionary] 使用文件名作为键([String]),值为对应的原始数据" +"([PackedByteArray])。" + +msgid "Returns message category, for the message with [param index]." +msgstr "返回索引为 [param index] 的消息的消息分类。" + +msgid "Returns number of messages in the export log." +msgstr "返回导出日志中的消息数。" + +msgid "Returns message text, for the message with [param index]." +msgstr "返回索引为 [param index] 的消息的消息文本。" + +msgid "Returns message type, for the message with [param index]." +msgstr "返回索引为 [param index] 的消息的消息类型。" + msgid "" "Returns the name of the export operating system handled by this " "[EditorExportPlatform] class, as a friendly string. Possible return values " @@ -33553,8 +43019,147 @@ msgstr "" "称。可能的返回值为 [code]Windows[/code]、[code]Linux[/code]、[code]macOS[/" "code]、[code]Android[/code]、[code]iOS[/code] 和 [code]Web[/code]。" +msgid "Returns most severe message type currently present in the export log." +msgstr "返回导出日志中目前存在的最严重的消息类型。" + +msgid "" +"Saves PCK archive and returns [Dictionary] with the following keys: " +"[code]result: Error[/code], [code]so_files: Array[/code] (array of the shared/" +"static objects which contains dictionaries with the following keys: " +"[code]path: String[/code], [code]tags: PackedStringArray[/code], and " +"[code]target_folder: String[/code]).\n" +"If [param embed] is [code]true[/code], PCK content is appended to the end of " +"[param path] file and return [Dictionary] additionally include following " +"keys: [code]embedded_start: int[/code] (embedded PCK offset) and " +"[code]embedded_size: int[/code] (embedded PCK size)." +msgstr "" +"保存 PCK 归档并返回 [Dictionary],包含以下字段:[code]result: Error[/code]、" +"[code]so_files: Array[/code](包含字典的共享/静态对象数组,字典中包含以下字" +"段:[code]path: String[/code]、[code]tags: PackedStringArray[/code]、" +"[code]target_folder: String[/code])。\n" +"如果 [param embed] 为 [code]true[/code],则 PCK 中的内容会追加到 [param path] " +"文件的末尾,返回的 [Dictionary] 中额外包含以下字段:[code]embedded_start: " +"int[/code](嵌入 PCK 的偏移量)和 [code]embedded_size: int[/code](嵌入 PCK 的" +"大小)。" + +msgid "" +"Saves patch PCK archive and returns [Dictionary] with the following keys: " +"[code]result: Error[/code], [code]so_files: Array[/code] (array of the shared/" +"static objects which contains dictionaries with the following keys: " +"[code]path: String[/code], [code]tags: PackedStringArray[/code], and " +"[code]target_folder: String[/code])." +msgstr "" +"保存补丁 PCK 归档并返回 [Dictionary],包含以下字段:[code]result: Error[/" +"code]、[code]so_files: Array[/code](包含字典的共享/静态对象数组,字典中包含以" +"下字段:[code]path: String[/code]、[code]tags: PackedStringArray[/code]、" +"[code]target_folder: String[/code])。" + +msgid "" +"Saves ZIP archive and returns [Dictionary] with the following keys: " +"[code]result: Error[/code], [code]so_files: Array[/code] (array of the shared/" +"static objects which contains dictionaries with the following keys: " +"[code]path: String[/code], [code]tags: PackedStringArray[/code], and " +"[code]target_folder: String[/code])." +msgstr "" +"保存 ZIP 归档并返回 [Dictionary],包含以下字段:[code]result: Error[/code]、" +"[code]so_files: Array[/code](包含字典的共享/静态对象数组,字典中包含以下字" +"段:[code]path: String[/code]、[code]tags: PackedStringArray[/code]、" +"[code]target_folder: String[/code])。" + +msgid "" +"Saves patch ZIP archive and returns [Dictionary] with the following keys: " +"[code]result: Error[/code], [code]so_files: Array[/code] (array of the shared/" +"static objects which contains dictionaries with the following keys: " +"[code]path: String[/code], [code]tags: PackedStringArray[/code], and " +"[code]target_folder: String[/code])." +msgstr "" +"保存补丁 ZIP 归档并返回 [Dictionary],包含以下字段:[code]result: Error[/" +"code]、[code]so_files: Array[/code](包含字典的共享/静态对象数组,字典中包含以" +"下字段:[code]path: String[/code]、[code]tags: PackedStringArray[/code]、" +"[code]target_folder: String[/code])。" + +msgid "Uploads specified file over SCP protocol to the remote host." +msgstr "将指定的文件通过 SCP 协议上传至远程主机。" + +msgid "" +"Executes specified command on the remote host via SSH protocol and returns " +"command output in the [param output]." +msgstr "" +"通过 SSH 协议在远程主机上执行指定的命令,在 [param output] 中返回命令的输出。" + +msgid "" +"Executes specified command on the remote host via SSH protocol and returns " +"process ID (on the remote host) without waiting for command to finish." +msgstr "" +"通过 SSH 协议在远程主机上执行指定的命令,返回(远程主机上的)进程 ID,无需等待" +"命令完成。" + +msgid "" +"Invalid message type used as the default value when no type is specified." +msgstr "无效消息类型,是未指定类型时的默认值。" + +msgid "" +"Message type for informational messages that have no effect on the export." +msgstr "信息类消息的消息类型,对导出没有影响。" + +msgid "" +"Message type for warning messages that should be addressed but still allow to " +"complete the export." +msgstr "警告类消息的消息类型,应当解决,但仍然允许完成导出。" + +msgid "" +"Message type for error messages that must be addressed and fail the export." +msgstr "错误类消息的消息类型,必须解决,会让导出失败。" + +msgid "" +"Flag is set if remotely debugged project is expected to use remote file " +"system. If set, [method gen_export_flags] will add [code]--remote-fs[/code] " +"and [code]--remote-fs-password[/code] (if password is set in the editor " +"settings) command line arguments to the list." +msgstr "" +"如果希望远程调试的项目使用远程文件系统,则设置该标志。如果设置了该标志,则 " +"[method gen_export_flags] 会将 [code]--remote-fs[/code] 和 [code]--remote-fs-" +"password[/code](如果在编辑器设置中设置了密码)命令行参数添加到列表中。" + +msgid "" +"Flag is set if remote debug is enabled. If set, [method gen_export_flags] " +"will add [code]--remote-debug[/code] and [code]--breakpoints[/code] (if " +"breakpoints are selected in the script editor or added by the plugin) command " +"line arguments to the list." +msgstr "" +"如果启用了远程调试,则设置该标志。如果设置了该标志,则 [method " +"gen_export_flags] 会将 [code]--remote-debug[/code] 和 [code]--breakpoints[/" +"code](如果脚本编辑器中选择了断点或插件添加了断点)命令行参数添加到列表中。" + +msgid "" +"Flag is set if remotely debugged project is running on the localhost. If set, " +"[method gen_export_flags] will use [code]localhost[/code] instead of [member " +"EditorSettings.network/debug/remote_host] as remote debugger host." +msgstr "" +"如果远程调试的项目在本机运行,则设置该标志。如果设置了该标志,则 [method " +"gen_export_flags] 会使用 [code]localhost[/code] 作为远程调试器主机,不使用 " +"[member EditorSettings.network/debug/remote_host]。" + +msgid "" +"Flag is set if \"Visible Collision Shapes\" remote debug option is enabled. " +"If set, [method gen_export_flags] will add [code]--debug-collisions[/code] " +"command line arguments to the list." +msgstr "" +"如果启用了“显示碰撞形状”远程调试选项,则设置该标志。如果设置了该标志,则 " +"[method gen_export_flags] 会将 [code]--debug-collisions[/code] 命令行参数添加" +"到列表中。" + +msgid "" +"Flag is set if Visible Navigation\" remote debug option is enabled. If set, " +"[method gen_export_flags] will add [code]--debug-navigation[/code] command " +"line arguments to the list." +msgstr "" +"如果启用了“显示导航”远程调试选项,则设置该标志。如果设置了该标志,则 [method " +"gen_export_flags] 会将 [code]--debug-navigation[/code] 命令行参数添加到列表" +"中。" + msgid "Exporter for Android." -msgstr "适用于 Android 的导出器。" +msgstr "Android 导出器。" msgid "Exporting for Android" msgstr "为 Android 导出" @@ -33770,6 +43375,14 @@ msgstr "" "自适应图标文件的前景层。见[url=https://developer.android.com/develop/ui/views/" "launch/icon_design_adaptive#design-adaptive-icons]《设计自适应图标》[/url]。" +msgid "" +"Monochrome layer of the application adaptive icon file. See [url=https://" +"developer.android.com/develop/ui/views/launch/icon_design_adaptive#design-" +"adaptive-icons]Design adaptive icons[/url]." +msgstr "" +"自适应图标文件的单色层。见[url=https://developer.android.com/develop/ui/views/" +"launch/icon_design_adaptive#design-adaptive-icons]《设计自适应图标》[/url]。" + msgid "" "Application icon file. If left empty, it will fallback to [member " "ProjectSettings.application/config/icon]." @@ -34563,6 +44176,45 @@ msgstr "" "允许应用程序读取低级系统日志文件。见 [url=https://developer.android.com/" "reference/android/Manifest.permission#READ_LOGS]READ_LOGS[/url]。" +msgid "" +"Allows an application to read audio files from external storage. See " +"[url=https://developer.android.com/reference/android/Manifest." +"permission#READ_MEDIA_AUDIO]READ_MEDIA_AUDIO[/url]." +msgstr "" +"允许应用程序从外部存储读取音频文件。见 [url=https://developer.android.com/" +"reference/android/Manifest.permission#READ_MEDIA_AUDIO]READ_MEDIA_AUDIO[/" +"url]。" + +msgid "" +"Allows an application to read image files from external storage. See " +"[url=https://developer.android.com/reference/android/Manifest." +"permission#READ_MEDIA_IMAGES]READ_MEDIA_IMAGES[/url]." +msgstr "" +"允许应用程序从外部存储读取图像文件。见 [url=https://developer.android.com/" +"reference/android/Manifest.permission#READ_MEDIA_IMAGES]READ_MEDIA_IMAGES[/" +"url]。" + +msgid "" +"Allows an application to read video files from external storage. See " +"[url=https://developer.android.com/reference/android/Manifest." +"permission#READ_MEDIA_VIDEO]READ_MEDIA_VIDEO[/url]." +msgstr "" +"允许应用程序从外部存储读取视频文件。见 [url=https://developer.android.com/" +"reference/android/Manifest.permission#READ_MEDIA_VIDEO]READ_MEDIA_VIDEO[/" +"url]。" + +msgid "" +"Allows an application to read image or video files from external storage that " +"a user has selected via the permission prompt photo picker. See [url=https://" +"developer.android.com/reference/android/Manifest." +"permission#READ_MEDIA_VISUAL_USER_SELECTED]READ_MEDIA_VISUAL_USER_SELECTED[/" +"url]." +msgstr "" +"允许应用程序从外部存储读取图像或视频文件,这些文件由用户在权限弹窗的照片拾取器" +"中选定。见 [url=https://developer.android.com/reference/android/Manifest." +"permission#READ_MEDIA_VISUAL_USER_SELECTED]READ_MEDIA_VISUAL_USER_SELECTED[/" +"url]。" + msgid "" "Allows read only access to phone state. See [url=https://developer.android." "com/reference/android/Manifest.permission#READ_PHONE_STATE]READ_PHONE_STATE[/" @@ -34939,6 +44591,13 @@ msgstr "" msgid "Allows an application to write to the user dictionary." msgstr "允许应用程序对用户字典进行写操作。" +msgid "" +"If [code]true[/code], hides navigation and status bar. See [method " +"DisplayServer.window_set_mode] to toggle it at runtime." +msgstr "" +"如果为 [code]true[/code],则隐藏导航栏及状态栏。运行时开关见 [method " +"DisplayServer.window_set_mode]。" + msgid "Indicates whether the application supports larger screen form-factors." msgstr "表示应用程序是否支持较大屏幕尺寸。" @@ -34974,6 +44633,373 @@ msgstr "" msgid "The extended reality (XR) mode for this application." msgstr "应用程序的扩展现实(XR)模式。" +msgid "Base class for custom [EditorExportPlatform] implementations (plugins)." +msgstr "自定义 [EditorExportPlatform] 实现(插件)的基类。" + +msgid "" +"External [EditorExportPlatform] implementations should inherit from this " +"class.\n" +"To use [EditorExportPlatform], register it using the [method EditorPlugin." +"add_export_platform] method first." +msgstr "" +"外部 [EditorExportPlatform] 实现应当继承自该类。\n" +"要使用 [EditorExportPlatform],请先使用 [method EditorPlugin." +"add_export_platform] 方法注册。" + +msgid "" +"[b]Optional.[/b]\n" +"Returns [code]true[/code], if specified [param preset] is valid and can be " +"exported. Use [method set_config_error] and [method " +"set_config_missing_templates] to set error details.\n" +"Usual implementation can call [method _has_valid_export_configuration] and " +"[method _has_valid_project_configuration] to determine if export is possible." +msgstr "" +"[b]可选。[/b]\n" +"如果 [param preset] 预设有效且能够导出,则返回 [code]true[/code]。请使用 " +"[method set_config_error] 和 [method set_config_missing_templates] 设置错误细" +"节。\n" +"通常的实现可以调用 [method _has_valid_export_configuration] 和 [method " +"_has_valid_project_configuration] 来确定是否可以进行导出。" + +msgid "" +"[b]Optional.[/b]\n" +"Called by the editor before platform is unregistered." +msgstr "" +"[b]可选。[/b]\n" +"注销平台前编辑器会调用该方法。" + +msgid "" +"[b]Optional.[/b]\n" +"Creates a PCK archive at [param path] for the specified [param preset].\n" +"This method is called when \"Export PCK/ZIP\" button is pressed in the export " +"dialog, with \"Export as Patch\" disabled, and PCK is selected as a file type." +msgstr "" +"[b]可选。[/b]\n" +"使用 [param preset] 预设在 [param path] 路径处创建 PCK 包。\n" +"在导出对话框中按下“导出 PCK/ZIP”按钮,禁用“导出为补丁”,并选择 PCK 作为文件类" +"型时,将调用该方法。" + +msgid "" +"[b]Optional.[/b]\n" +"Creates a patch PCK archive at [param path] for the specified [param preset], " +"containing only the files that have changed since the last patch.\n" +"This method is called when \"Export PCK/ZIP\" button is pressed in the export " +"dialog, with \"Export as Patch\" enabled, and PCK is selected as a file " +"type.\n" +"[b]Note:[/b] The patches provided in [param patches] have already been loaded " +"when this method is called and are merely provided as context. When empty the " +"patches defined in the export preset have been loaded instead." +msgstr "" +"[b]可选。[/b]\n" +"使用 [param preset] 预设在路径 [param path] 处创建补丁 PCK 归档,包含自上次补" +"丁以来发生更改的文件。\n" +"在导出对话框中按下“导出 PCK/ZIP”按钮,启用“导出为补丁”,并选择 PCK 作为文件类" +"型时,将调用该方法。\n" +"[b]注意:[/b][param patches] 中的补丁在调用该方法时已加载 ,仅作为上下文提供。" +"为空时将加载导出预设中定义的补丁。" + +msgid "" +"[b]Required.[/b]\n" +"Creates a full project at [param path] for the specified [param preset].\n" +"This method is called when \"Export\" button is pressed in the export " +"dialog.\n" +"This method implementation can call [method EditorExportPlatform.save_pack] " +"or [method EditorExportPlatform.save_zip] to use default PCK/ZIP export " +"process, or calls [method EditorExportPlatform.export_project_files] and " +"implement custom callback for processing each exported file." +msgstr "" +"[b]必选。[/b]\n" +"使用 [param preset] 预设在 [param path] 路径处创建完整的项目。\n" +"在导出对话框中按下“导出”按钮时,将调用该方法。\n" +"该方法的实现可以调用 [method EditorExportPlatform.save_pack] 或 [method " +"EditorExportPlatform.save_zip] 来使用默认的 PCK/ZIP 导出过程,或者调用 " +"[method EditorExportPlatform.export_project_files] 并实现自定义回调来处理每个" +"导出的文件。" + +msgid "" +"[b]Optional.[/b]\n" +"Create a ZIP archive at [param path] for the specified [param preset].\n" +"This method is called when \"Export PCK/ZIP\" button is pressed in the export " +"dialog, with \"Export as Patch\" disabled, and ZIP is selected as a file type." +msgstr "" +"[b]可选。[/b]\n" +"使用 [param preset] 预设在 [param path] 路径处创建 ZIP 归档。\n" +"在导出对话框中按下“导出 PCK/ZIP”按钮,禁用“导出为补丁”,并选择 ZIP 作为文件类" +"型时,将调用该方法。" + +msgid "" +"[b]Optional.[/b]\n" +"Create a ZIP archive at [param path] for the specified [param preset], " +"containing only the files that have changed since the last patch.\n" +"This method is called when \"Export PCK/ZIP\" button is pressed in the export " +"dialog, with \"Export as Patch\" enabled, and ZIP is selected as a file " +"type.\n" +"[b]Note:[/b] The patches provided in [param patches] have already been loaded " +"when this method is called and are merely provided as context. When empty the " +"patches defined in the export preset have been loaded instead." +msgstr "" +"[b]可选。[/b]\n" +"使用 [param preset] 预设在 [param path] 路径处创建 ZIP 归档,仅包含自上次补丁" +"以来发生更改的文件。\n" +"在导出对话框中按下“导出 PCK/ZIP”按钮,启用“导出为补丁”,并选择 ZIP 作为文件类" +"型时,将调用该方法。\n" +"[b]注意:[/b][param patches] 中的补丁在调用该方法时已加载 ,仅作为上下文提供。" +"为空时将加载导出预设中定义的补丁。" + +msgid "" +"[b]Required.[/b]\n" +"Returns array of supported binary extensions for the full project export." +msgstr "" +"[b]必选。[/b]\n" +"返回完整项目导出所支持的二进制文件扩展名数组。" + +msgid "" +"[b]Optional.[/b]\n" +"Returns protocol used for remote debugging. Default implementation return " +"[code]tcp://[/code]." +msgstr "" +"[b]可选。[/b]\n" +"返回用于远程调试的协议。默认实现返回 [code]tcp://[/code]。" + +msgid "" +"[b]Optional.[/b]\n" +"Returns device architecture for one-click deploy." +msgstr "" +"[b]可选。[/b]\n" +"返回一键部署的设备架构。" + +msgid "" +"[b]Optional.[/b]\n" +"Validates [param option] and returns visibility for the specified [param " +"preset]. Default implementation return [code]true[/code] for all options." +msgstr "" +"[b]可选。[/b]\n" +"验证 [param option] 并返回指定 [param preset] 的可见性。默认实现为所有选项都返" +"回 [code]true[/code]。" + +msgid "" +"[b]Optional.[/b]\n" +"Validates [param option] and returns warning message for the specified [param " +"preset]. Default implementation return empty string for all options." +msgstr "" +"[b]可选。[/b]\n" +"验证 [param option] 并返回指定 [param preset] 的警告消息。默认实现为所有选项都" +"返回空字符串。" + +msgid "" +"[b]Optional.[/b]\n" +"Returns a property list, as an [Array] of dictionaries. Each [Dictionary] " +"must at least contain the [code]name: StringName[/code] and [code]type: " +"Variant.Type[/code] entries.\n" +"Additionally, the following keys are supported:\n" +"- [code]hint: PropertyHint[/code]\n" +"- [code]hint_string: String[/code]\n" +"- [code]usage: PropertyUsageFlags[/code]\n" +"- [code]class_name: StringName[/code]\n" +"- [code]default_value: Variant[/code], default value of the property.\n" +"- [code]update_visibility: bool[/code], if set to [code]true[/code], [method " +"_get_export_option_visibility] is called for each property when this property " +"is changed.\n" +"- [code]required: bool[/code], if set to [code]true[/code], this property " +"warnings are critical, and should be resolved to make export possible. This " +"value is a hint for the [method _has_valid_export_configuration] " +"implementation, and not used by the engine directly.\n" +"See also [method Object._get_property_list]." +msgstr "" +"[b]可选。[/b]\n" +"返回属性列表,类型是元素为字典的 [Array]。每个 [Dictionary] 都必须至少包含 " +"[code]name: StringName[/code] 和 [code]type: Variant.Type[/code] 两个条目。\n" +"另外还支持如下字段:\n" +"- [code]hint: PropertyHint[/code]\n" +"- [code]hint_string: String[/code]\n" +"- [code]usage: PropertyUsageFlags[/code]\n" +"- [code]class_name: StringName[/code]\n" +"- [code]default_value: Variant[/code],属性的默认值。\n" +"- [code]update_visibility: bool[/code],如果设为 [code]true[/code],则会在该属" +"性发生更改时为每个属性都调用 [method _get_export_option_visibility]。\n" +"- [code]required: bool[/code],如果设为 [code]true[/code],则该属性的警告是关" +"键的,解决后才能够实现导出。该值是 [method _has_valid_export_configuration] 实" +"现的提示,引擎不直接使用。\n" +"另见 [method Object._get_property_list]。" + +msgid "" +"[b]Required.[/b]\n" +"Returns platform logo displayed in the export dialog, logo should be 32x32 " +"adjusted to the current editor scale, see [method EditorInterface." +"get_editor_scale]." +msgstr "" +"[b]必选。[/b]\n" +"返回导出对话框中显示的平台徽标,徽标应为 32x32,根据当前编辑器缩放调整,见 " +"[method EditorInterface.get_editor_scale]。" + +msgid "" +"[b]Required.[/b]\n" +"Returns export platform name." +msgstr "" +"[b]必选。[/b]\n" +"返回导出平台的名称。" + +msgid "" +"[b]Optional.[/b]\n" +"Returns one-click deploy menu item icon for the specified [param device], " +"icon should be 16x16 adjusted to the current editor scale, see [method " +"EditorInterface.get_editor_scale]." +msgstr "" +"[b]可选。[/b]\n" +"返回 [param device] 设备的一键部署菜单项图标,该图标应为 16x16,根据当前编辑器" +"缩放调整,见 [method EditorInterface.get_editor_scale]。" + +msgid "" +"[b]Optional.[/b]\n" +"Returns one-click deploy menu item label for the specified [param device]." +msgstr "" +"[b]可选。[/b]\n" +"返回 [param device] 设备的一键部署菜单项标签。" + +msgid "" +"[b]Optional.[/b]\n" +"Returns one-click deploy menu item tooltip for the specified [param device]." +msgstr "" +"[b]可选。[/b]\n" +"返回 [param device] 设备的一键部署菜单项工具提示。" + +msgid "" +"[b]Optional.[/b]\n" +"Returns number one-click deploy devices (or other one-click option displayed " +"in the menu)." +msgstr "" +"[b]可选。[/b]\n" +"返回一键部署设备(或菜单中显示的其他一键部署选项)的数量。" + +msgid "" +"[b]Optional.[/b]\n" +"Returns tooltip of the one-click deploy menu button." +msgstr "" +"[b]可选。[/b]\n" +"返回一键部署菜单按钮的工具提示。" + +msgid "" +"[b]Required.[/b]\n" +"Returns target OS name." +msgstr "" +"[b]必选。[/b]\n" +"返回目标操作系统的名称。" + +msgid "" +"[b]Required.[/b]\n" +"Returns array of platform specific features." +msgstr "" +"[b]必选。[/b]\n" +"返回平台特定功能的数组。" + +msgid "" +"[b]Required.[/b]\n" +"Returns array of platform specific features for the specified [param preset]." +msgstr "" +"[b]必选。[/b]\n" +"返回 [param preset] 预设对应的平台特定功能的数组。" + +msgid "" +"[b]Optional.[/b]\n" +"Returns icon of the one-click deploy menu button, icon should be 16x16 " +"adjusted to the current editor scale, see [method EditorInterface." +"get_editor_scale]." +msgstr "" +"[b]可选。[/b]\n" +"返回一键部署菜单按钮的图标,该图标应为 16x16,根据当前编辑器缩放调整,见 " +"[method EditorInterface.get_editor_scale]。" + +msgid "" +"[b]Required.[/b]\n" +"Returns [code]true[/code] if export configuration is valid." +msgstr "" +"[b]必选。[/b]\n" +"如果导出配置有效,则返回 [code]true[/code]。" + +msgid "" +"[b]Required.[/b]\n" +"Returns [code]true[/code] if project configuration is valid." +msgstr "" +"[b]必选。[/b]\n" +"如果项目配置有效,则返回 [code]true[/code]。" + +msgid "" +"[b]Optional.[/b]\n" +"Returns [code]true[/code] if specified file is a valid executable (native " +"executable or script) for the target platform." +msgstr "" +"[b]可选。[/b]\n" +"如果指定的文件是目标平台上的有效可执行文件(原生可执行文件或脚本),则返回 " +"[code]true[/code]。" + +msgid "" +"[b]Optional.[/b]\n" +"Returns [code]true[/code] if one-click deploy options are changed and editor " +"interface should be updated." +msgstr "" +"[b]可选。[/b]\n" +"如果一键部署选项发生更改,编辑器界面需要更新,则返回 [code]true[/code]。" + +msgid "" +"[b]Optional.[/b]\n" +"This method is called when [param device] one-click deploy menu option is " +"selected.\n" +"Implementation should export project to a temporary location, upload and run " +"it on the specific [param device], or perform another action associated with " +"the menu item." +msgstr "" +"[b]可选。[/b]\n" +"选择 [param device] 一键部署菜单选项时调用该方法。\n" +"实现时应当将项目导出到临时位置,然后将其上传至 [param device] 设备并运行,也可" +"以执行与该菜单项相关的其他动作。" + +msgid "" +"[b]Optional.[/b]\n" +"Returns [code]true[/code] if export options list is changed and presets " +"should be updated." +msgstr "" +"[b]可选。[/b]\n" +"如果导出选项列表发生了更改,应当更新预设,则返回 [code]true[/code]。" + +msgid "" +"Returns current configuration error message text. This method should be " +"called only from the [method _can_export], [method " +"_has_valid_export_configuration], or [method " +"_has_valid_project_configuration] implementations." +msgstr "" +"返回当前配置的错误消息文本。该方法只应在 [method _can_export]、[method " +"_has_valid_export_configuration]、[method _has_valid_project_configuration] 的" +"实现中调用。" + +msgid "" +"Returns [code]true[/code] is export templates are missing from the current " +"configuration. This method should be called only from the [method " +"_can_export], [method _has_valid_export_configuration], or [method " +"_has_valid_project_configuration] implementations." +msgstr "" +"如果当前配置缺失导出模板,则返回 [code]true[/code]。该方法只应在 [method " +"_can_export]、[method _has_valid_export_configuration]、[method " +"_has_valid_project_configuration] 的实现中调用。" + +msgid "" +"Sets current configuration error message text. This method should be called " +"only from the [method _can_export], [method _has_valid_export_configuration], " +"or [method _has_valid_project_configuration] implementations." +msgstr "" +"设置当前配置的错误消息文本。该方法只应在 [method _can_export]、[method " +"_has_valid_export_configuration]、[method _has_valid_project_configuration] 的" +"实现中调用。" + +msgid "" +"Set to [code]true[/code] is export templates are missing from the current " +"configuration. This method should be called only from the [method " +"_can_export], [method _has_valid_export_configuration], or [method " +"_has_valid_project_configuration] implementations." +msgstr "" +"设为 [code]true[/code] 表示当前配置缺失导出模板 。该方法只应在 [method " +"_can_export]、[method _has_valid_export_configuration]、[method " +"_has_valid_project_configuration] 的实现中调用。" + msgid "Exporter for iOS." msgstr "iOS 导出器。" @@ -35070,6 +45096,30 @@ msgstr "" "code] 或 [code]主版本号.次版本号[/code],只能包含数字([code]0-9[/code])和英" "文句点([code].[/code])。" +msgid "" +"Name of the provisioning profile. Sets XCode PROVISIONING_PROFILE_SPECIFIER " +"for debug. [url=https://developer.apple.com/documentation/xcode/build-" +"settings-reference#Provisioning-Profile]Used for manual provisioning[/url].\n" +"Can be overridden with the environment variable " +"[code]GODOT_IOS_PROFILE_SPECIFIER_DEBUG[/code]." +msgstr "" +"预置描述文件的名称。设置调试时 XCode 使用的 PROVISIONING_PROFILE_SPECIFIER。" +"[url=https://developer.apple.com/documentation/xcode/build-settings-" +"reference#Provisioning-Profile]用于手动描述[/url]。\n" +"可以使用环境变量 [code]GODOT_IOS_PROFILE_SPECIFIER_DEBUG[/code] 覆盖。" + +msgid "" +"Name of the provisioning profile. Sets XCode PROVISIONING_PROFILE_SPECIFIER " +"for release. [url=https://developer.apple.com/documentation/xcode/build-" +"settings-reference#Provisioning-Profile]Used for manual provisioning[/url].\n" +"Can be overridden with the environment variable " +"[code]GODOT_IOS_PROFILE_SPECIFIER_RELEASE[/code]." +msgstr "" +"预置描述文件的名称。设置发布时 XCode 使用的 PROVISIONING_PROFILE_SPECIFIER。" +"[url=https://developer.apple.com/documentation/xcode/build-settings-" +"reference#Provisioning-Profile]用于手动描述[/url]。\n" +"可以使用环境变量 [code]GODOT_IOS_PROFILE_SPECIFIER_RELEASE[/code] 覆盖。" + msgid "" "UUID of the provisioning profile. If left empty, Xcode will download or " "create a provisioning profile automatically. See [url=https://developer.apple." @@ -35131,6 +45181,13 @@ msgstr "" "developer.apple.com/cn/support/required-device-capabilities/]App 所需的设备功" "能[/url]。" +msgid "" +"Additional data added to the [code]UIRequiredDeviceCapabilities[/code] array " +"of the [code]Info.plist[/code] file." +msgstr "" +"添加到 [code]Info.plist[/code] 文件的 [code]UIRequiredDeviceCapabilities[/" +"code] 数组中的额外数据。" + msgid "" "Requires the graphics performance and features of the A12 Bionic and later " "chips (devices supporting all Vulkan renderer features).\n" @@ -35154,6 +45211,23 @@ msgid "" "Path to the custom export template. If left empty, default template is used." msgstr "到自定义导出模板的路径。如果留空,则默认模板将被使用。" +msgid "" +"Enable to allow access to Game Center features. [url=https://developer.apple." +"com/documentation/bundleresources/entitlements/com_apple_developer_game-" +"center]com.apple.developer.game-center[/url]." +msgstr "" +"启用后允许访问 Game Center 功能。[url=https://developer.apple.com/" +"documentation/bundleresources/entitlements/com_apple_developer_game-" +"center]com.apple.developer.game-center[/url]。" + +msgid "" +"Environment for Apple Push Notification service. See [url=https://developer." +"apple.com/documentation/bundleresources/entitlements/aps-environment]aps-" +"environment[/url]." +msgstr "" +"Apple 推送通知服务的环境。见 [url=https://developer.apple.com/documentation/" +"bundleresources/entitlements/aps-environment]aps-environment[/url]。" + msgid "" "App Store application icon file. If left empty, it will fallback to [member " "ProjectSettings.application/config/icon]. See [url=https://developer.apple." @@ -35163,6 +45237,126 @@ msgstr "" "application/config/icon]。见 [url=https://developer.apple.com/cn/design/human-" "interface-guidelines/app-icons]App 图标[/url]。" +msgid "" +"App Store application icon file, dark version. See [url=https://developer." +"apple.com/design/human-interface-guidelines/foundations/app-icons]App icons[/" +"url]." +msgstr "" +"App Store 应用程序图标文件,暗色版本。见 [url=https://developer.apple.com/cn/" +"design/human-interface-guidelines/app-icons]App 图标[/url]。" + +msgid "" +"App Store application icon file, tinted version. See [url=https://developer." +"apple.com/design/human-interface-guidelines/foundations/app-icons]App icons[/" +"url]." +msgstr "" +"App Store 应用程序图标文件,着色版本。见 [url=https://developer.apple.com/cn/" +"design/human-interface-guidelines/app-icons]App 图标[/url]。" + +msgid "" +"Base application icon used to generate other icons. If left empty, it will " +"fallback to [member ProjectSettings.application/config/icon]. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"用于生成其他图标的基础应用程序图标。如果留空则会回退到 [member " +"ProjectSettings.application/config/icon]。见 [url=https://developer.apple.com/" +"design/human-interface-guidelines/foundations/app-icons]App 图标[/url]。" + +msgid "" +"Base application icon used to generate other icons, dark version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"用于生成其他图标的基础应用程序图标,暗色版本。见 [url=https://developer.apple." +"com/design/human-interface-guidelines/foundations/app-icons]App 图标[/url]。" + +msgid "" +"Base application icon used to generate other icons, tinted version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"用于生成其他图标的基础应用程序图标,着色版本。见 [url=https://developer.apple." +"com/design/human-interface-guidelines/foundations/app-icons]App 图标[/url]。" + +msgid "" +"iOS application 64x64 icon file (2x DPI). If left empty, it will fallback to " +"[member ProjectSettings.application/config/icon]. See [url=https://developer." +"apple.com/design/human-interface-guidelines/foundations/app-icons]App icons[/" +"url]." +msgstr "" +"iOS 应用程序 64x64 图标文件(2x DPI)。如果留空,则会回退至 [member " +"ProjectSettings.application/config/icon]。见 [url=https://developer.apple.com/" +"cn/design/human-interface-guidelines/app-icons]App 图标[/url]。" + +msgid "" +"iOS application 64x64 icon file (2x DPI), dark version. See [url=https://" +"developer.apple.com/design/human-interface-guidelines/foundations/app-" +"icons]App icons[/url]." +msgstr "" +"iOS 应用程序 64x64 图标文件(2x DPI),暗色版本。见 [url=https://developer." +"apple.com/cn/design/human-interface-guidelines/app-icons]App 图标[/url]。" + +msgid "" +"iOS application 64x64 icon file (2x DPI), tinted version. See [url=https://" +"developer.apple.com/design/human-interface-guidelines/foundations/app-" +"icons]App icons[/url]." +msgstr "" +"iOS 应用程序 64x64 图标文件(2x DPI),着色版本。见 [url=https://developer." +"apple.com/cn/design/human-interface-guidelines/app-icons]App 图标[/url]。" + +msgid "" +"iOS application 68x68 icon file (2x DPI). If left empty, it will fallback to " +"[member ProjectSettings.application/config/icon]. See [url=https://developer." +"apple.com/design/human-interface-guidelines/foundations/app-icons]App icons[/" +"url]." +msgstr "" +"iOS 应用程序 68x68 图标文件(2x DPI)。如果留空,则会回退至 [member " +"ProjectSettings.application/config/icon]。见 [url=https://developer.apple.com/" +"cn/design/human-interface-guidelines/app-icons]App 图标[/url]。" + +msgid "" +"iOS application 68x68 icon file (2x DPI), dark version. See [url=https://" +"developer.apple.com/design/human-interface-guidelines/foundations/app-" +"icons]App icons[/url]." +msgstr "" +"iOS 应用程序 68x68 图标文件(2x DPI),暗色版本。见 [url=https://developer." +"apple.com/cn/design/human-interface-guidelines/app-icons]App 图标[/url]。" + +msgid "" +"iOS application 68x68 icon file (2x DPI), tinted version. See [url=https://" +"developer.apple.com/design/human-interface-guidelines/foundations/app-" +"icons]App icons[/url]." +msgstr "" +"iOS 应用程序 68x68 图标文件(2x DPI),着色版本。见 [url=https://developer." +"apple.com/cn/design/human-interface-guidelines/app-icons]App 图标[/url]。" + +msgid "" +"iOS application 64x64 icon file (3x DPI). If left empty, it will fallback to " +"[member ProjectSettings.application/config/icon]. See [url=https://developer." +"apple.com/design/human-interface-guidelines/foundations/app-icons]App icons[/" +"url]." +msgstr "" +"iOS 应用程序 64x64 图标文件(3x DPI)。如果留空,则会回退至 [member " +"ProjectSettings.application/config/icon]。见 [url=https://developer.apple.com/" +"cn/design/human-interface-guidelines/app-icons]App 图标[/url]。" + +msgid "" +"iOS application 64x64 icon file (3x DPI), dark version. See [url=https://" +"developer.apple.com/design/human-interface-guidelines/foundations/app-" +"icons]App icons[/url]." +msgstr "" +"iOS 应用程序 64x64 图标文件(3x DPI),暗色版本。见 [url=https://developer." +"apple.com/cn/design/human-interface-guidelines/app-icons]App 图标[/url]。" + +msgid "" +"iOS application 64x64 icon file (3x DPI), tinted version. See [url=https://" +"developer.apple.com/design/human-interface-guidelines/foundations/app-" +"icons]App icons[/url]." +msgstr "" +"iOS 应用程序 64x64 图标文件(3x DPI),着色版本。见 [url=https://developer." +"apple.com/cn/design/human-interface-guidelines/app-icons]App 图标[/url]。" + msgid "" "Home screen application icon file on iPad (2x DPI). If left empty, it will " "fallback to [member ProjectSettings.application/config/icon]. See " @@ -35173,6 +45367,22 @@ msgstr "" "ProjectSettings.application/config/icon]。见 [url=https://developer.apple.com/" "cn/design/human-interface-guidelines/app-icons]App 图标[/url]。" +msgid "" +"Home screen application icon file on iPad (2x DPI), dark version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"iPad 主屏幕应用程序图标文件(2x DPI),暗色版本。见 [url=https://developer." +"apple.com/cn/design/human-interface-guidelines/app-icons]App 图标[/url]。" + +msgid "" +"Home screen application icon file on iPad (2x DPI), tinted version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"iPad 主屏幕应用程序图标文件(2x DPI),着色版本。见 [url=https://developer." +"apple.com/cn/design/human-interface-guidelines/app-icons]App 图标[/url]。" + msgid "" "Home screen application icon file on iPad (3x DPI). If left empty, it will " "fallback to [member ProjectSettings.application/config/icon]. See " @@ -35183,6 +45393,22 @@ msgstr "" "ProjectSettings.application/config/icon]。见 [url=https://developer.apple.com/" "cn/design/human-interface-guidelines/app-icons]App 图标[/url]。" +msgid "" +"Home screen application icon file on iPad (3x DPI), dark version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"iPad 主屏幕应用程序图标文件(3x DPI),暗色版本。见 [url=https://developer." +"apple.com/cn/design/human-interface-guidelines/app-icons]App 图标[/url]。" + +msgid "" +"Home screen application icon file on iPad (3x DPI), tinted version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"iPad 主屏幕应用程序图标文件(3x DPI),着色版本。见 [url=https://developer." +"apple.com/cn/design/human-interface-guidelines/app-icons]App 图标[/url]。" + msgid "" "Home screen application icon file on iPhone (2x DPI). If left empty, it will " "fallback to [member ProjectSettings.application/config/icon]. See " @@ -35193,6 +45419,22 @@ msgstr "" "ProjectSettings.application/config/icon]。见 [url=https://developer.apple.com/" "cn/design/human-interface-guidelines/app-icons]App 图标[/url]。" +msgid "" +"Home screen application icon file on iPhone (2x DPI), dark version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"iPhone 主屏幕应用程序图标文件(2x DPI),暗色版本。见 [url=https://developer." +"apple.com/cn/design/human-interface-guidelines/app-icons]App 图标[/url]。" + +msgid "" +"Home screen application icon file on iPhone (2x DPI), tinted version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"iPhone 主屏幕应用程序图标文件(2x DPI),着色版本。见 [url=https://developer." +"apple.com/cn/design/human-interface-guidelines/app-icons]App 图标[/url]。" + msgid "" "Home screen application icon file on iPhone (3x DPI). If left empty, it will " "fallback to [member ProjectSettings.application/config/icon]. See " @@ -35203,6 +45445,22 @@ msgstr "" "ProjectSettings.application/config/icon]。见 [url=https://developer.apple.com/" "cn/design/human-interface-guidelines/app-icons]App 图标[/url]。" +msgid "" +"Home screen application icon file on iPhone (3x DPI), dark version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"iPhone 主屏幕应用程序图标文件(3x DPI),暗色版本。见 [url=https://developer." +"apple.com/cn/design/human-interface-guidelines/app-icons]App 图标[/url]。" + +msgid "" +"Home screen application icon file on iPhone (3x DPI), tinted version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"iPhone 主屏幕应用程序图标文件(3x DPI),着色版本。见 [url=https://developer." +"apple.com/cn/design/human-interface-guidelines/app-icons]App 图标[/url]。" + msgid "" "Notification icon file on iPad and iPhone (2x DPI). If left empty, it will " "fallback to [member ProjectSettings.application/config/icon]. See " @@ -35213,16 +45471,78 @@ msgstr "" "ProjectSettings.application/config/icon]。见 [url=https://developer.apple.com/" "cn/design/human-interface-guidelines/app-icons]App 图标[/url]。" +msgid "" +"Notification icon file on iPad and iPhone (2x DPI), dark version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"iPad 和 iPhone 上的通知图标文件(2x DPI),暗色版本。见 [url=https://" +"developer.apple.com/cn/design/human-interface-guidelines/app-icons]App 图标[/" +"url]。" + +msgid "" +"Notification icon file on iPad and iPhone (2x DPI), tinted version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"iPad 和 iPhone 上的通知图标文件(2x DPI),着色版本。见 [url=https://" +"developer.apple.com/cn/design/human-interface-guidelines/app-icons]App 图标[/" +"url]。" + msgid "" "Notification icon file on iPhone (3x DPI). If left empty, it will fallback to " "[member ProjectSettings.application/config/icon]. See [url=https://developer." "apple.com/design/human-interface-guidelines/foundations/app-icons]App icons[/" "url]." msgstr "" +"iPhone 上的通知图标文件(3x DPI)。如果留空,则会回退至 [member " +"ProjectSettings.application/config/icon]。见 [url=https://developer.apple.com/" +"cn/design/human-interface-guidelines/app-icons]App 图标[/url]。" + +msgid "" +"Notification icon file on iPhone (3x DPI), dark version. See [url=https://" +"developer.apple.com/design/human-interface-guidelines/foundations/app-" +"icons]App icons[/url]." +msgstr "" +"iPhone 上的通知图标文件(3x DPI),暗色版本。见 [url=https://developer.apple." +"com/cn/design/human-interface-guidelines/app-icons]App 图标[/url]。" + +msgid "" +"Notification icon file on iPhone (3x DPI), tinted version. See [url=https://" +"developer.apple.com/design/human-interface-guidelines/foundations/app-" +"icons]App icons[/url]." +msgstr "" +"iPhone 上的通知图标文件(3x DPI),着色版本。见 [url=https://developer.apple." +"com/cn/design/human-interface-guidelines/app-icons]App 图标[/url]。" + +msgid "" +"Notification icon file on iPad and iPhone (3x DPI). If left empty, it will " +"fallback to [member ProjectSettings.application/config/icon]. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" "iPad 和 iPhone 上的通知图标文件(3x DPI)。如果留空,则会回退至 [member " "ProjectSettings.application/config/icon]。见 [url=https://developer.apple.com/" "cn/design/human-interface-guidelines/app-icons]App 图标[/url]。" +msgid "" +"Notification icon file on iPad and iPhone (3x DPI), dark version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"iPad 和 iPhone 上的通知图标文件(3x DPI),暗色版本。见 [url=https://" +"developer.apple.com/cn/design/human-interface-guidelines/app-icons]App 图标[/" +"url]。" + +msgid "" +"Notification icon file on iPad and iPhone (3x DPI), tinted version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"iPad 和 iPhone 上的通知图标文件(3x DPI),着色版本。见 [url=https://" +"developer.apple.com/cn/design/human-interface-guidelines/app-icons]App 图标[/" +"url]。" + msgid "" "Application settings icon file on iPad and iPhone (2x DPI). If left empty, it " "will fallback to [member ProjectSettings.application/config/icon]. See " @@ -35233,6 +45553,24 @@ msgstr "" "[member ProjectSettings.application/config/icon]。见 [url=https://developer." "apple.com/cn/design/human-interface-guidelines/app-icons]App 图标[/url]。" +msgid "" +"Application settings icon file on iPad and iPhone (2x DPI), dark version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"iPad 和 iPhone 上的应用程序设置图标文件(2x DPI),暗色版本。见 [url=https://" +"developer.apple.com/cn/design/human-interface-guidelines/app-icons]App 图标[/" +"url]。" + +msgid "" +"Application settings icon file on iPad and iPhone (2x DPI), tinted version. " +"See [url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"iPad 和 iPhone 上的应用程序设置图标文件(2x DPI),着色版本。见 [url=https://" +"developer.apple.com/cn/design/human-interface-guidelines/app-icons]App 图标[/" +"url]。" + msgid "" "Application settings icon file on iPhone (3x DPI). If left empty, it will " "fallback to [member ProjectSettings.application/config/icon]. See " @@ -35243,6 +45581,24 @@ msgstr "" "ProjectSettings.application/config/icon]。见 [url=https://developer.apple.com/" "cn/design/human-interface-guidelines/app-icons]App 图标[/url]。" +msgid "" +"Application settings icon file on iPhone (3x DPI), dark version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"iPhone 上的应用程序设置图标文件(3x DPI),暗色版本。见 [url=https://" +"developer.apple.com/cn/design/human-interface-guidelines/app-icons]App 图标[/" +"url]。" + +msgid "" +"Application settings icon file on iPhone (3x DPI), tinted version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"iPhone 上的应用程序设置图标文件(3x DPI),着色版本。见 [url=https://" +"developer.apple.com/cn/design/human-interface-guidelines/app-icons]App 图标[/" +"url]。" + msgid "" "Spotlight icon file on iPad and iPhone (2x DPI). If left empty, it will " "fallback to [member ProjectSettings.application/config/icon]. See " @@ -35253,6 +45609,52 @@ msgstr "" "ProjectSettings.application/config/icon]。见 [url=https://developer.apple.com/" "cn/design/human-interface-guidelines/app-icons]App 图标[/url]。" +msgid "" +"Spotlight icon file on iPad and iPhone (2x DPI), dark version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"iPad 和 iPhone 上的“聚焦”图标文件(2x DPI),暗色版本。见 [url=https://" +"developer.apple.com/cn/design/human-interface-guidelines/app-icons]App 图标[/" +"url]。" + +msgid "" +"Spotlight icon file on iPad and iPhone (2x DPI), tinted version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"iPad 和 iPhone 上的“聚焦”图标文件(2x DPI),着色版本。见 [url=https://" +"developer.apple.com/cn/design/human-interface-guidelines/app-icons]App 图标[/" +"url]。" + +msgid "" +"Spotlight icon file on iPad and iPhone (3x DPI). If left empty, it will " +"fallback to [member ProjectSettings.application/config/icon]. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"iPad 和 iPhone 上的“聚焦”图标文件(3x DPI)。如果留空,则会回退至 [member " +"ProjectSettings.application/config/icon]。见 [url=https://developer.apple.com/" +"cn/design/human-interface-guidelines/app-icons]App 图标[/url]。" + +msgid "" +"Spotlight icon file on iPad and iPhone (3x DPI), dark version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"iPad 和 iPhone 上的“聚焦”图标文件(3x DPI),暗色版本。见 [url=https://" +"developer.apple.com/cn/design/human-interface-guidelines/app-icons]App 图标[/" +"url]。" + +msgid "" +"Spotlight icon file on iPad and iPhone (3x DPI), tinted version. See " +"[url=https://developer.apple.com/design/human-interface-guidelines/" +"foundations/app-icons]App icons[/url]." +msgstr "" +"iPad 和 iPhone 上的“聚焦”图标文件(3x DPI),着色版本。见 [url=https://" +"developer.apple.com/cn/design/human-interface-guidelines/app-icons]App 图标[/" +"url]。" + msgid "" "The reasons your app use active keyboard API. See [url=https://developer." "apple.com/documentation/bundleresources/privacy_manifest_files/" @@ -36116,6 +46518,21 @@ msgstr "Linux/BSD 导出器。" msgid "Exporting for Linux" msgstr "为 Linux 导出" +msgid "" +"Application executable architecture.\n" +"Supported architectures: [code]x86_32[/code], [code]x86_64[/code], " +"[code]arm64[/code], [code]arm32[/code], [code]rv64[/code], [code]ppc64[/" +"code], [code]ppc32[/code], and [code]loongarch64[/code].\n" +"Official export templates include [code]x86_32[/code], [code]x86_64[/code], " +"[code]arm32[/code], and [code]arm64[/code] binaries only." +msgstr "" +"程序可执行文件架构。\n" +"支持的架构有:[code]x86_32[/code]、[code]x86_64[/code]、[code]arm64[/code]、" +"[code]arm32[/code]、[code]rv64[/code]、[code]ppc64[/code]、[code]ppc32[/" +"code]、[code]loongarch64[/code]。\n" +"官方导出模板中仅包含 [code]x86_32[/code]、[code]x86_64[/code]、[code]arm32[/" +"code]、[code]arm64[/code] 的二进制文件。" + msgid "" "If [code]true[/code], project resources are embedded into the executable." msgstr "如果为 [code]true[/code],则会将项目资源嵌入到可执行文件中。" @@ -36224,6 +46641,26 @@ msgstr "" "config/macos_native_icon],继而回退至 [member ProjectSettings.application/" "config/icon]。" +msgid "" +"Minimum version of macOS required for this application to run on Apple " +"Silicon Macs, in the [code]major.minor.patch[/code] or [code]major.minor[/" +"code] format, can only contain numeric characters ([code]0-9[/code]) and " +"periods ([code].[/code])." +msgstr "" +"在 Apple Silicon 设备上运行该应用程序所需的最低 macOS 版本,格式为 [code]主版" +"本号.次版本号.补丁号[/code] 或 [code]主版本号.次版本号[/code],只能包含数字" +"([code]0-9[/code])和英文句点([code].[/code])。" + +msgid "" +"Minimum version of macOS required for this application to run on Intel Macs, " +"in the [code]major.minor.patch[/code] or [code]major.minor[/code] format, can " +"only contain numeric characters ([code]0-9[/code]) and periods ([code].[/" +"code])." +msgstr "" +"在 Intel 设备上运行该应用程序所需的最低 macOS 版本,格式为 [code]主版本号.次版" +"本号.补丁号[/code] 或 [code]主版本号.次版本号[/code],只能包含数字" +"([code]0-9[/code])和英文句点([code].[/code])。" + msgid "" "Application executable architecture.\n" "Supported architectures: [code]x86_64[/code], [code]arm64[/code], and " @@ -36868,6 +47305,33 @@ msgstr "" "启用后,渐进式 Web 应用程序将确保每个请求都具有跨源隔离标头(COEP/COOP)。\n" "这可以简化设置以服务导出的游戏。" +msgid "" +"File path to the smallest icon for this web application. If not defined, " +"defaults to the project icon.\n" +"[b]Note:[/b] If the icon is not 144×144, it will be automatically resized for " +"the final build." +msgstr "" +"该 Web 应用程序的最小图标的文件路径。如果未定义,则默认为项目图标。\n" +"[b]注意:[/b]如果图标不是 144×144,则它将自动调整大小以适应最终构建。" + +msgid "" +"File path to the small icon for this web application. If not defined, " +"defaults to the project icon.\n" +"[b]Note:[/b] If the icon is not 180×180, it will be automatically resized for " +"the final build." +msgstr "" +"该 Web 应用程序的小图标的文件路径。如果未定义,则默认为项目图标。\n" +"[b]注意:[/b]如果图标不是 180×180,则它将自动调整大小以适应最终构建。" + +msgid "" +"File path to the largest icon for this web application. If not defined, " +"defaults to the project icon.\n" +"[b]Note:[/b] If the icon is not 512×512, it will be automatically resized for " +"the final build." +msgstr "" +"该 Web 应用程序的最小图标的文件路径。如果未定义,则默认为项目图标。\n" +"[b]注意:[/b]如果图标不是 512×512,则它将自动调整大小以适应最终构建。" + msgid "" "The page to display, should the server hosting the page not be available. " "This page is saved in the client's machine." @@ -36904,6 +47368,17 @@ msgstr "" "如果为 [code]false[/code],则导出的游戏将不支持多线程。因此,游戏会更容易出现" "性能和音频问题,但只要求在 HTTPS 网站上运行。" +msgid "" +"If [code]true[/code], allows textures to be optimized for desktop through the " +"S3TC/BPTC algorithm." +msgstr "如果为 [code]true[/code],则允许通过 S3TC/BPTC 算法针对桌面优化纹理。" + +msgid "" +"If [code]true[/code] allows textures to be optimized for mobile through the " +"ETC2/ASTC algorithm." +msgstr "" +"如果为 [code]true[/code],则允许通过 ETC2/ASTC 算法针对移动设备优化纹理。" + msgid "Exporter for Windows." msgstr "Windows 导出器。" @@ -37017,6 +47492,14 @@ msgstr "" "适用于该文件的商标及注册商标。选填。见 [url=https://learn.microsoft.com/en-us/" "windows/win32/menurc/stringfileinfo-block]StringFileInfo[/url]。" +msgid "" +"Application executable architecture.\n" +"Supported architectures: [code]x86_32[/code], [code]x86_64[/code], and " +"[code]arm64[/code]." +msgstr "" +"应用程序可执行文件的架构。\n" +"支持的架构:[code]x86_32[/code]、[code]x86_64[/code]、[code]arm64[/code]。" + msgid "" "Array of the additional command line arguments passed to the code signing " "tool. See [url=https://learn.microsoft.com/en-us/dotnet/framework/tools/" @@ -37129,6 +47612,54 @@ msgstr "" "启用后,[method _get_customization_configuration_hash] 和 [method " "_customize_resource] 将被调用并且必须被实现。" +msgid "" +"Return [code]true[/code] if this plugin will customize scenes based on the " +"platform and features used.\n" +"When enabled, [method _get_customization_configuration_hash] and [method " +"_customize_scene] will be called and must be implemented.\n" +"[b]Note:[/b] [method _customize_scene] will only be called for scenes that " +"have been modified since the last export." +msgstr "" +"如果该插件将根据所使用的平台和功能自定义场景,则返回 [code]true[/code]。\n" +"启用后,[method _get_customization_configuration_hash] 和 [method " +"_customize_scene] 将被调用并且必须被实现。\n" +"[b]注意:[/b]只会为上一次导出后发生修改的场景调用 [method _customize_scene]。" + +msgid "" +"Customize a resource. If changes are made to it, return the same or a new " +"resource. Otherwise, return [code]null[/code]. When a new resource is " +"returned, [param resource] will be replaced by a copy of the new resource.\n" +"The [param path] argument is only used when customizing an actual file, " +"otherwise this means that this resource is part of another one and it will be " +"empty.\n" +"Implementing this method is required if [method _begin_customize_resources] " +"returns [code]true[/code].\n" +"[b]Note:[/b] When customizing any of the following types and returning " +"another resource, the other resource should not be skipped using [method " +"skip] in [method _export_file]:\n" +"- [AtlasTexture]\n" +"- [CompressedCubemap]\n" +"- [CompressedCubemapArray]\n" +"- [CompressedTexture2D]\n" +"- [CompressedTexture2DArray]\n" +"- [CompressedTexture3D]" +msgstr "" +"对资源进行自定义。如果进行了修改,请返回相同的或新的资源,否则请返回 " +"[code]null[/code] 。如果返回的是新资源,则会使用新资源的副本替换 [param " +"resource]。\n" +"[param path] 参数只在自定义实际文件时使用,否则这个资源是另一个资源的一部分," +"该参数为空。\n" +"如果 [method _begin_customize_resources] 返回 [code]true[/code],则需要实现该" +"方法。\n" +"[b]注意:[/b]自定义以下类型并返回不同资源时,不应在 [method _export_file] 中使" +"用 [method skip] 跳过返回的资源:\n" +"- [AtlasTexture]\n" +"- [CompressedCubemap]\n" +"- [CompressedCubemapArray]\n" +"- [CompressedTexture2D]\n" +"- [CompressedTexture2DArray]\n" +"- [CompressedTexture3D]" + msgid "" "Customize a scene. If changes are made to it, return the same or a new scene. " "Otherwise, return [code]null[/code]. If a new scene is returned, it is up to " @@ -37297,6 +47828,16 @@ msgstr "" "返回该预设对于给定的 [param platform],应该具有的附加功能的 " "[PackedStringArray]。" +msgid "" +"[b]Optional.[/b]\n" +"Validates [param option] and returns the visibility for the specified [param " +"platform]. The default implementation returns [code]true[/code] for all " +"options." +msgstr "" +"[b]可选。[/b]\n" +"验证 [param option] 并返回 [param platform] 平台是否可见。默认实现会为所有选项" +"都返回 [code]true[/code]。" + msgid "" "Check the requirements for the given [param option] and return a non-empty " "warning string if they are not met.\n" @@ -37468,6 +48009,12 @@ msgstr "" "[code]Frameworks[/code] 目录中。\n" "如果使用的是目录,如果将非代码对象放在该目录中,则代码签名时会报错。" +msgid "Returns currently used export platform." +msgstr "返回当前使用的导出平台。" + +msgid "Returns currently used export preset." +msgstr "返回当前使用的导出预设。" + msgid "" "Returns the current value of an export option supplied by [method " "_get_export_options]." @@ -37478,6 +48025,119 @@ msgid "" "not included in the export." msgstr "在 [method _export_file] 中调用。跳过当前文件,因此它不包含在导出中。" +msgid "Export preset configuration." +msgstr "导出预设配置。" + +msgid "" +"Export preset configuration. Instances of [EditorExportPreset] by editor UI " +"and intended to be used a read-only configuration passed to the " +"[EditorExportPlatform] methods when exporting the project." +msgstr "" +"导出预设配置。编辑器 UI 中的 [EditorExportPreset] 实例,旨在用作导出项目时传" +"入 [EditorExportPlatform] 方法的只读配置。" + +msgid "" +"Returns [code]true[/code] if \"Advanced\" toggle is enabled in the export " +"dialog." +msgstr "如果导出对话框中打开了“高级”开关,则返回 [code]true[/code]。" + +msgid "Returns string with a comma separated list of custom features." +msgstr "返回用英文逗号分隔的自定义特性列表字符串。" + +msgid "" +"Returns [Dictionary] of files selected in the \"Resources\" tab of the export " +"dialog. Dictionary keys are file names and values are export mode - " +"[code]\"strip\"[/code], [code]\"keep\"[/code], or [code]\"remove\"[/code]. " +"See also [method get_file_export_mode]." +msgstr "" +"返回一个 [Dictionary],包含在导出对话框的“资源”选项卡中选择的文件。字典的键是" +"文件名,值是导出模式 :[code]\"strip\"[/code]、[code]\"keep\"[/code] 或 " +"[code]\"remove\"[/code]。另见 [method get_file_export_mode]。" + +msgid "" +"Returns number of files selected in the \"Resources\" tab of the export " +"dialog." +msgstr "返回导出对话框的“资源”选项卡中选中文件的数量。" + +msgid "" +"Returns [code]true[/code], PCK directory encryption is enabled in the export " +"dialog." +msgstr "返回 [code]true[/code] 表示在导出对话框中启用了 PCK 目录加密。" + +msgid "" +"Returns [code]true[/code], PCK encryption is enabled in the export dialog." +msgstr "返回 [code]true[/code] 表示在导出对话框中启用了 PCK 加密。" + +msgid "Returns file filters to exclude during PCK encryption." +msgstr "返回 PCK 加密时需要排除的文件过滤器。" + +msgid "Returns file filters to include during PCK encryption." +msgstr "返回 PCK 加密时需要包含的文件过滤器。" + +msgid "Returns PCK encryption key." +msgstr "返回 PCK 加密密钥。" + +msgid "Returns file filters to exclude during export." +msgstr "返回导出时需要排除的文件过滤器。" + +msgid "" +"Returns export file filter mode selected in the \"Resources\" tab of the " +"export dialog." +msgstr "返回导出对话框“资源”选项卡中选中的导出文件过滤模式。" + +msgid "Returns export target path." +msgstr "返回导出目标的路径。" + +msgid "Returns file export mode for the specified file." +msgstr "返回指定文件的文件导出模式。" + +msgid "Returns array of files to export." +msgstr "返回要导出的文件数组。" + +msgid "Returns file filters to include during export." +msgstr "返回导出时需要包含的文件过滤器。" + +msgid "" +"Returns export option value or value of environment variable if it is set." +msgstr "返回导出选项的值,如果设置了环境变量则返回环境变量的值。" + +msgid "Returns the list of packs on which to base a patch export on." +msgstr "返回导出补丁时用作基础的包的列表。" + +msgid "Returns export preset name." +msgstr "返回导出预设的名称。" + +msgid "Returns script export mode." +msgstr "返回脚本导出模式。" + +msgid "" +"Returns the preset's version number, or fall back to the [member " +"ProjectSettings.application/config/version] project setting if set to an " +"empty string.\n" +"If [param windows_version] is [code]true[/code], formats the returned version " +"number to be compatible with Windows executable metadata." +msgstr "" +"返回预设的版本号,如果为空字符串则回退至 [member ProjectSettings.application/" +"config/version] 项目设置。\n" +"如果 [param windows_version] 为 [code]true[/code],则会对返回的版本号进行格式" +"化,让其与 Windows 可执行文件元数据兼容。" + +msgid "Returns [code]true[/code] if preset has specified property." +msgstr "如果预设中存在指定的属性,则返回 [code]true[/code]。" + +msgid "Returns [code]true[/code] if specified file is exported." +msgstr "如果导出了指定的文件,则返回 [code]true[/code]。" + +msgid "" +"Returns [code]true[/code] if dedicated server export mode is selected in the " +"export dialog." +msgstr "如果导出对话框中选择了专用服务器导出模式,则返回 [code]true[/code]。" + +msgid "" +"Returns [code]true[/code] if \"Runnable\" toggle is enabled in the export " +"dialog." +msgstr "如果为导出对话框中打开了“可执行”开关,则返回 [code]true[/code]。" + msgid "" "An editor feature profile which can be used to disable specific features." msgstr "编辑器功能配置,可用于禁用特定功能。" @@ -37645,9 +48305,33 @@ msgid "" "visible." msgstr "历史面板。如果禁用此功能,则历史面板将不可见。" +msgid "" +"The Game tab, which allows embedding the game window and selecting nodes by " +"clicking inside of it. If this feature is disabled, the Game tab won't " +"display." +msgstr "" +"游戏选项卡,能够在其中嵌入游戏窗口,在游戏窗口中通过点击选择节点。如果禁用此功" +"能,则不会显示游戏选项卡。" + msgid "A modified version of [FileDialog] used by the editor." msgstr "编辑器使用的 [FileDialog] 的修改版。" +msgid "" +"[EditorFileDialog] is an enhanced version of [FileDialog] available only to " +"editor plugins. Additional features include list of favorited/recent files " +"and the ability to see files as thumbnails grid instead of list.\n" +"Unlike [FileDialog], [EditorFileDialog] does not have a property for using " +"native dialogs. Instead, native dialogs can be enabled globally via the " +"[member EditorSettings.interface/editor/use_native_file_dialogs] editor " +"setting. They are also enabled automatically when running in sandbox (e.g. on " +"macOS)." +msgstr "" +"[EditorFileDialog] 是增强版的 [FileDialog],只有编辑器插件能够使用。增加的功能" +"包括收藏列表、最近文件列表、除列表形式外能够以缩略图网格形式查看文件等。\n" +"与 [FileDialog] 不同,[EditorFileDialog] 没有使用原生对话框的属性。不过可以通" +"过 [member EditorSettings.interface/editor/use_native_file_dialogs] 编辑器属性" +"全局打开原生对话框。在沙盒中运行时会自动启用(例如在 macOS 上)。" + msgid "" "Adds a comma-delimited file name [param filter] option to the " "[EditorFileDialog] with an optional [param description], which restricts what " @@ -37686,6 +48370,15 @@ msgstr "" "将给定的 [param menu] 添加到文件对话框的侧边,在顶部显示标题文本 [param " "title]。仅支持一个侧边菜单。" +msgid "Clear the filter for file names." +msgstr "清空文件名筛选器。" + +msgid "Removes all filters except for \"All Files (*.*)\"." +msgstr "移除“所有文件 (*.*)”筛选器之外的所有筛选器。" + +msgid "Returns the value of the filter for file names." +msgstr "返回文件名筛选器的值。" + msgid "" "Returns the LineEdit for the selected file.\n" "[b]Warning:[/b] This is a required internal node, removing and freeing it may " @@ -37742,6 +48435,9 @@ msgstr "" "以编辑器中文件对话框的默认大小和位置显示该 [EditorFileDialog],如果有当前文件" "则选择该文件名。" +msgid "Sets the value of the filter for file names." +msgstr "设置文件名筛选器的值。" + msgid "" "Sets the default value index of the [OptionButton] or [CheckBox] with index " "[param option]." @@ -37817,6 +48513,9 @@ msgstr "选择目录时触发。" msgid "Emitted when a file is selected." msgstr "选择文件时触发。" +msgid "Emitted when the filter for file names changes." +msgstr "当文件名筛选器发生更改时发出。" + msgid "Emitted when multiple files are selected." msgstr "选择多个文件时触发。" @@ -38041,6 +48740,9 @@ msgstr "返回支持的文件扩展名。" msgid "Return whether this importer is active." msgstr "返回此导入器是否处于活动状态。" +msgid "Query support. Return [code]false[/code] if import must not continue." +msgstr "查询支持。如果不能继续导入,则返回 [code]false[/code]。" + msgid "" "Registers a custom resource importer in the editor. Use the class to parse " "any file and import it as a new resource type." @@ -38048,9 +48750,282 @@ msgstr "" "在编辑器中注册一个自定义资源导入器。使用该类来解析任何文件,并将其作为新的资源" "类型导入。" +msgid "" +"[EditorImportPlugin]s provide a way to extend the editor's resource import " +"functionality. Use them to import resources from custom files or to provide " +"alternatives to the editor's existing importers.\n" +"EditorImportPlugins work by associating with specific file extensions and a " +"resource type. See [method _get_recognized_extensions] and [method " +"_get_resource_type]. They may optionally specify some import presets that " +"affect the import process. EditorImportPlugins are responsible for creating " +"the resources and saving them in the [code].godot/imported[/code] directory " +"(see [member ProjectSettings.application/config/" +"use_hidden_project_data_directory]).\n" +"Below is an example EditorImportPlugin that imports a [Mesh] from a file with " +"the extension \".special\" or \".spec\":\n" +"[codeblocks]\n" +"[gdscript]\n" +"@tool\n" +"extends EditorImportPlugin\n" +"\n" +"func _get_importer_name():\n" +" return \"my.special.plugin\"\n" +"\n" +"func _get_visible_name():\n" +" return \"Special Mesh\"\n" +"\n" +"func _get_recognized_extensions():\n" +" return [\"special\", \"spec\"]\n" +"\n" +"func _get_save_extension():\n" +" return \"mesh\"\n" +"\n" +"func _get_resource_type():\n" +" return \"Mesh\"\n" +"\n" +"func _get_preset_count():\n" +" return 1\n" +"\n" +"func _get_preset_name(preset_index):\n" +" return \"Default\"\n" +"\n" +"func _get_import_options(path, preset_index):\n" +" return [{\"name\": \"my_option\", \"default_value\": false}]\n" +"\n" +"func _import(source_file, save_path, options, platform_variants, gen_files):\n" +" var file = FileAccess.open(source_file, FileAccess.READ)\n" +" if file == null:\n" +" return FAILED\n" +" var mesh = ArrayMesh.new()\n" +" # Fill the Mesh with data read in \"file\", left as an exercise to the " +"reader.\n" +"\n" +" var filename = save_path + \".\" + _get_save_extension()\n" +" return ResourceSaver.save(mesh, filename)\n" +"[/gdscript]\n" +"[csharp]\n" +"using Godot;\n" +"\n" +"public partial class MySpecialPlugin : EditorImportPlugin\n" +"{\n" +" public override string _GetImporterName()\n" +" {\n" +" return \"my.special.plugin\";\n" +" }\n" +"\n" +" public override string _GetVisibleName()\n" +" {\n" +" return \"Special Mesh\";\n" +" }\n" +"\n" +" public override string[] _GetRecognizedExtensions()\n" +" {\n" +" return [\"special\", \"spec\"];\n" +" }\n" +"\n" +" public override string _GetSaveExtension()\n" +" {\n" +" return \"mesh\";\n" +" }\n" +"\n" +" public override string _GetResourceType()\n" +" {\n" +" return \"Mesh\";\n" +" }\n" +"\n" +" public override int _GetPresetCount()\n" +" {\n" +" return 1;\n" +" }\n" +"\n" +" public override string _GetPresetName(int presetIndex)\n" +" {\n" +" return \"Default\";\n" +" }\n" +"\n" +" public override Godot.Collections.Array<Godot.Collections.Dictionary> " +"_GetImportOptions(string path, int presetIndex)\n" +" {\n" +" return\n" +" [\n" +" new Godot.Collections.Dictionary\n" +" {\n" +" { \"name\", \"myOption\" },\n" +" { \"default_value\", false },\n" +" },\n" +" ];\n" +" }\n" +"\n" +" public override Error _Import(string sourceFile, string savePath, Godot." +"Collections.Dictionary options, Godot.Collections.Array<string> " +"platformVariants, Godot.Collections.Array<string> genFiles)\n" +" {\n" +" using var file = FileAccess.Open(sourceFile, FileAccess.ModeFlags." +"Read);\n" +" if (file.GetError() != Error.Ok)\n" +" {\n" +" return Error.Failed;\n" +" }\n" +"\n" +" var mesh = new ArrayMesh();\n" +" // Fill the Mesh with data read in \"file\", left as an exercise to " +"the reader.\n" +" string filename = $\"{savePath}.{_GetSaveExtension()}\";\n" +" return ResourceSaver.Save(mesh, filename);\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"To use [EditorImportPlugin], register it using the [method EditorPlugin." +"add_import_plugin] method first." +msgstr "" +"[EditorImportPlugin] 提供了一种方法来扩展编辑器的资源导入功能。使用它们从自定" +"义文件中导入资源,或为编辑器的现有导入器提供替代方案。\n" +"EditorImportPlugin 通过与特定的文件扩展名和资源类型相关联来工作。请参见 " +"[method _get_recognized_extensions] 和 [method _get_resource_type]。它们可以选" +"择性地指定一些影响导入过程的导入预设。EditorImportPlugin 负责创建资源并将它们" +"保存在 [code].godot/imported[/code] 目录中(见 [member ProjectSettings." +"application/config/use_hidden_project_data_directory])。\n" +"下面是一个 EditorImportPlugin 的示例,它从扩展名为“.special”或“.spec”的文件中" +"导入 [Mesh]:\n" +"[codeblocks]\n" +"[gdscript]\n" +"@tool\n" +"extends EditorImportPlugin\n" +"\n" +"func _get_importer_name():\n" +" return \"my.special.plugin\"\n" +"\n" +"func _get_visible_name():\n" +" return \"Special Mesh\"\n" +"\n" +"func _get_recognized_extensions():\n" +" return [\"special\", \"spec\"]\n" +"\n" +"func _get_save_extension():\n" +" return \"mesh\"\n" +"\n" +"func _get_resource_type():\n" +" return \"Mesh\"\n" +"\n" +"func _get_preset_count():\n" +" return 1\n" +"\n" +"func _get_preset_name(preset_index):\n" +" return \"Default\"\n" +"\n" +"func _get_import_options(path, preset_index):\n" +" return [{\"name\": \"my_option\", \"default_value\": false}]\n" +"\n" +"func _import(source_file, save_path, options, platform_variants, gen_files):\n" +" var file = FileAccess.open(source_file, FileAccess.READ)\n" +" if file == null:\n" +" return FAILED\n" +" var mesh = ArrayMesh.new()\n" +" # 使用从“file”中读取的数据填充 Mesh,留作读者的练习。\n" +"\n" +" var filename = save_path + \".\" + _get_save_extension()\n" +" return ResourceSaver.save(mesh, filename)\n" +"[/gdscript]\n" +"[csharp]\n" +"using Godot;\n" +"\n" +"public partial class MySpecialPlugin : EditorImportPlugin\n" +"{\n" +" public override string _GetImporterName()\n" +" {\n" +" return \"my.special.plugin\";\n" +" }\n" +"\n" +" public override string _GetVisibleName()\n" +" {\n" +" return \"Special Mesh\";\n" +" }\n" +"\n" +" public override string[] _GetRecognizedExtensions()\n" +" {\n" +" return [\"special\", \"spec\"];\n" +" }\n" +"\n" +" public override string _GetSaveExtension()\n" +" {\n" +" return \"mesh\";\n" +" }\n" +"\n" +" public override string _GetResourceType()\n" +" {\n" +" return \"Mesh\";\n" +" }\n" +"\n" +" public override int _GetPresetCount()\n" +" {\n" +" return 1;\n" +" }\n" +"\n" +" public override string _GetPresetName(int presetIndex)\n" +" {\n" +" return \"Default\";\n" +" }\n" +"\n" +" public override Godot.Collections.Array<Godot.Collections.Dictionary> " +"_GetImportOptions(string path, int presetIndex)\n" +" {\n" +" return\n" +" [\n" +" new Godot.Collections.Dictionary\n" +" {\n" +" { \"name\", \"myOption\" },\n" +" { \"default_value\", false },\n" +" },\n" +" ];\n" +" }\n" +"\n" +" public override Error _Import(string sourceFile, string savePath, Godot." +"Collections.Dictionary options, Godot.Collections.Array<string> " +"platformVariants, Godot.Collections.Array<string> genFiles)\n" +" {\n" +" using var file = FileAccess.Open(sourceFile, FileAccess.ModeFlags." +"Read);\n" +" if (file.GetError() != Error.Ok)\n" +" {\n" +" return Error.Failed;\n" +" }\n" +"\n" +" var mesh = new ArrayMesh();\n" +" // 使用从“file”中读取的数据填充 Mesh,留作读者的练习\n" +" string filename = $\"{savePath}.{_GetSaveExtension()}\";\n" +" return ResourceSaver.Save(mesh, filename);\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"要使用 [EditorImportPlugin],请先使用 [method EditorPlugin.add_import_plugin] " +"方法注册它。" + msgid "Import plugins" msgstr "导入插件" +msgid "" +"Tells whether this importer can be run in parallel on threads, or, on the " +"contrary, it's only safe for the editor to call it from the main thread, for " +"one file at a time.\n" +"If this method is not overridden, it will return [code]false[/code] by " +"default.\n" +"If this importer's implementation is thread-safe and can be run in parallel, " +"override this with [code]true[/code] to optimize for concurrency." +msgstr "" +"表示该导入器是否能够利用线程并行执行,不能的话表示编辑器只能从主线程安全调用," +"一次一个文件。\n" +"如果没有覆盖该方法,则默认返回 [code]true[/code]。\n" +"如果该导入器的实现为线程安全的,可以并行执行,请覆盖该方法并返回 [code]true[/" +"code],从而优化并发。" + +msgid "" +"Gets the format version of this importer. Increment this version when making " +"incompatible changes to the format of the imported resources." +msgstr "" +"获取导入器的格式版本。请在对导入后的资源格式进行不兼容修改时增加该版本。" + msgid "" "Gets the options and default values for the preset at this index. Returns an " "Array of Dictionaries with the following keys: [code]name[/code], " @@ -38077,6 +49052,72 @@ msgstr "" msgid "Gets the unique name of the importer." msgstr "获取导入器的唯一名称。" +msgid "" +"This method can be overridden to hide specific import options if conditions " +"are met. This is mainly useful for hiding options that depend on others if " +"one of them is disabled.\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _get_option_visibility(option, options):\n" +" # Only show the lossy quality setting if the compression mode is set to " +"\"Lossy\".\n" +" if option == \"compress/lossy_quality\" and options.has(\"compress/" +"mode\"):\n" +" return int(options[\"compress/mode\"]) == COMPRESS_LOSSY # This is a " +"constant that you set\n" +"\n" +" return true\n" +"[/gdscript]\n" +"[csharp]\n" +"public void _GetOptionVisibility(string option, Godot.Collections.Dictionary " +"options)\n" +"{\n" +" // Only show the lossy quality setting if the compression mode is set to " +"\"Lossy\".\n" +" if (option == \"compress/lossy_quality\" && options." +"ContainsKey(\"compress/mode\"))\n" +" {\n" +" return (int)options[\"compress/mode\"] == CompressLossy; // This is a " +"constant you set\n" +" }\n" +"\n" +" return true;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"Returns [code]true[/code] to make all options always visible." +msgstr "" +"覆盖此方法就可以在满足条件时隐藏指定的导入选项。主要用于当某些选项存在依赖项" +"时,如果禁用了某个依赖项就隐藏这些选项。\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _get_option_visibility(option, options):\n" +" # 仅在压缩模式设为“Lossy”时显示有损压缩质量设置。\n" +" if option == \"compress/lossy_quality\" and options.has(\"compress/" +"mode\"):\n" +" return int(options[\"compress/mode\"]) == COMPRESS_LOSSY # 这是你设置" +"的常量\n" +"\n" +" return true\n" +"[/gdscript]\n" +"[csharp]\n" +"public void _GetOptionVisibility(string option, Godot.Collections.Dictionary " +"options)\n" +"{\n" +" // 仅在压缩模式设为“Lossy”时显示有损压缩质量设置。\n" +" if (option == \"compress/lossy_quality\" && options." +"ContainsKey(\"compress/mode\"))\n" +" {\n" +" return (int)options[\"compress/mode\"] == CompressLossy; // 这是你设置" +"的常量\n" +" }\n" +"\n" +" return true;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"返回 [code]true[/code] 会让所有选项始终可见。" + msgid "" "Gets the number of initial presets defined by the plugin. Use [method " "_get_import_options] to get the default options for the preset and [method " @@ -38218,12 +49259,29 @@ msgstr "" "据分组创建的部分的名称进行首字母大写。因此,包含分组用法的属性通常使用首字母大" "写的名称,而不是 snake_case。" +msgid "" +"Shows the properties of the given [param object] in this inspector for " +"editing. To clear the inspector, call this method with [code]null[/code].\n" +"[b]Note:[/b] If you want to edit an object in the editor's main inspector, " +"use the [code]edit_*[/code] methods in [EditorInterface] instead." +msgstr "" +"在该检查器中显示 [param object] 对象的属性,用于编辑。要清空检查器,请用 " +"[code]null[/code] 调用该方法。\n" +"[b]注意:[/b]如果你想要在编辑器的主检查器中编辑对象,请改用 [EditorInterface] " +"中的 [code]edit_*[/code] 方法。" + msgid "Returns the object currently selected in this inspector." msgstr "返回当前在该检查器中选择的对象。" msgid "Gets the path of the currently selected property." msgstr "获取当前选定属性的路径。" +msgid "" +"Creates a property editor that can be used by plugin UI to edit the specified " +"property of an [param object]." +msgstr "" +"创建一个属性编辑器,可以用在插件 UI 中,编辑 [param object] 中指定属性。" + msgid "Emitted when the object being edited by the inspector has changed." msgstr "当检查器正在编辑的对象发生更改时触发。" @@ -38519,6 +49577,12 @@ msgstr "" "[b]注意:[/b]创建自定义编辑器 UI 时,请优先直接通过 GUI 节点的 " "[code]get_theme_*[/code] 方法来访问主题项目。" +msgid "Returns the editor's [EditorToaster]." +msgstr "返回编辑器的 [EditorToaster]。" + +msgid "Returns the editor's [EditorUndoRedoManager]." +msgstr "返回编辑器的 [EditorUndoRedoManager]。" + msgid "" "Returns the 2D editor [SubViewport]. It does not have a camera. Instead, the " "view transforms are done directly and can be accessed with [member Viewport." @@ -38636,6 +49700,13 @@ msgstr "将以给定大小渲染的网格预览返回为元素类型为 [Texture msgid "Marks the current scene tab as unsaved." msgstr "将当前场景选项卡标记为未保存。" +msgid "" +"Opens the scene at the given path. If [param set_inherited] is [code]true[/" +"code], creates a new inherited scene." +msgstr "" +"打开位于给定路径的场景。如果 [param set_inherited] 为 [code]true[/code],则会" +"创建新的继承场景。" + msgid "Plays the currently active scene." msgstr "播放当前活动的场景。" @@ -38645,6 +49716,43 @@ msgstr "播放文件路径所指定的场景。" msgid "Plays the main scene." msgstr "播放主场景。" +msgid "" +"Pops up an editor dialog for creating an object.\n" +"The [param callback] must take a single argument of type [StringName] which " +"will contain the type name of the selected object or be empty if no item is " +"selected.\n" +"The [param base_type] specifies the base type of objects to display. For " +"example, if you set this to \"Resource\", all types derived from [Resource] " +"will display in the create dialog.\n" +"The [param current_type] will be passed in the search box of the create " +"dialog, and the specified type can be immediately selected when the dialog " +"pops up. If the [param current_type] is not derived from [param base_type], " +"there will be no result of the type in the dialog.\n" +"The [param dialog_title] allows you to define a custom title for the dialog. " +"This is useful if you want to accurately hint the usage of the dialog. If the " +"[param dialog_title] is an empty string, the dialog will use \"Create New " +"'Base Type'\" as the default title.\n" +"The [param type_blocklist] contains a list of type names, and the types in " +"the blocklist will be hidden from the create dialog.\n" +"[b]Note:[/b] Trying to list the base type in the [param type_blocklist] will " +"hide all types derived from the base type from the create dialog." +msgstr "" +"弹出用于创建对象的编辑器对话框。\n" +"[param callback] 必须接受一个类型为 [StringName] 的参数,其中包含的是所选对象" +"的类型名称,如果没有选中条目则为空。\n" +"[param base_type] 指定要显示对象的基础类型。例如设为“Resource”就会在创建对话框" +"中显示所有派生自 [Resource] 的类型。\n" +"[param current_type] 会传递给创建对话框中的搜索框,弹出对话框时会立即选中指定" +"的类型。如果 [param current_type] 不是从 [param base_type] 派生的,则对话框中" +"不会有该类型对应的结果。\n" +"[param dialog_title] 可以为对话框自定义标题。适用于需要精准描述对话框用途的场" +"合。如果 [param dialog_title] 为空字符串,则对话框会使用默认标题“新建‘Base " +"Type’”。\n" +"[param type_blocklist] 包含的是类型名称列表,创建对话框会隐藏拦截列表中的类" +"型。\n" +"[b]注意:[/b]尝试在 [param type_blocklist] 中列出基类型将会在创建对话框中隐藏" +"所有从该基类型派生的类型。" + msgid "" "Pops up the [param dialog] in the editor UI with [method Window." "popup_exclusive]. The dialog must have no current parent, otherwise the " @@ -38685,6 +49793,108 @@ msgstr "" "dialog]。该对话框目前必须没有父级,否则该方法失败。\n" "另见 [method Window.set_unparent_when_invisible]。" +msgid "" +"Pops up an editor dialog for selecting a method from [param object]. The " +"[param callback] must take a single argument of type [String] which will " +"contain the name of the selected method or be empty if the dialog is " +"canceled. If [param current_value] is provided, the method will be selected " +"automatically in the method list, if it exists." +msgstr "" +"弹出编辑器对话框,用于选择 [param object] 的方法。[param callback] 回调必须接" +"受单个 [String] 类型的参数,其中包含的是所选方法的名称,取消对话框时则为空。如" +"果提供了 [param current_value] 且对应方法存在,则会在方法列表中自动选中该方" +"法。" + +msgid "" +"Pops up an editor dialog for selecting a [Node] from the edited scene. The " +"[param callback] must take a single argument of type [NodePath]. It is called " +"on the selected [NodePath] or the empty path [code]^\"\"[/code] if the dialog " +"is canceled. If [param valid_types] is provided, the dialog will only show " +"Nodes that match one of the listed Node types. If [param current_value] is " +"provided, the Node will be automatically selected in the tree, if it exists.\n" +"[b]Example:[/b] Display the node selection dialog as soon as this node is " +"added to the tree for the first time:\n" +"[codeblock]\n" +"func _ready():\n" +" if Engine.is_editor_hint():\n" +" EditorInterface.popup_node_selector(_on_node_selected, [\"Button\"])\n" +"\n" +"func _on_node_selected(node_path):\n" +" if node_path.is_empty():\n" +" print(\"node selection canceled\")\n" +" else:\n" +" print(\"selected \", node_path)\n" +"[/codeblock]" +msgstr "" +"弹出编辑器对话框,用于选择所编辑场景中的 [Node]。[param callback] 必须接受单个" +"类型为 [NodePath] 的参数。调用回调时会传入所选 [NodePath],取消对话框时则为空" +"路径 [code]^\"\"[/code]。如果提供了 [param valid_types],则对话框只会显示与所" +"列 Node 类型匹配的 Node。\n" +"[b]示例:[/b]节点首次加入场景树时显示节点选择对话框:\n" +"[codeblock]\n" +"func _ready():\n" +" if Engine.is_editor_hint():\n" +" EditorInterface.popup_node_selector(_on_node_selected, [\"Button\"])\n" +"\n" +"func _on_node_selected(node_path):\n" +" if node_path.is_empty():\n" +" print(\"节点选择已取消\")\n" +" else:\n" +" print(\"选中 \", node_path)\n" +"[/codeblock]" + +msgid "" +"Pops up an editor dialog for selecting properties from [param object]. The " +"[param callback] must take a single argument of type [NodePath]. It is called " +"on the selected property path (see [method NodePath.get_as_property_path]) or " +"the empty path [code]^\"\"[/code] if the dialog is canceled. If [param " +"type_filter] is provided, the dialog will only show properties that match one " +"of the listed [enum Variant.Type] values. If [param current_value] is " +"provided, the property will be selected automatically in the property list, " +"if it exists.\n" +"[codeblock]\n" +"func _ready():\n" +" if Engine.is_editor_hint():\n" +" EditorInterface.popup_property_selector(this, _on_property_selected, " +"[TYPE_INT])\n" +"\n" +"func _on_property_selected(property_path):\n" +" if property_path.is_empty():\n" +" print(\"property selection canceled\")\n" +" else:\n" +" print(\"selected \", property_path)\n" +"[/codeblock]" +msgstr "" +"弹出编辑器对话框,用于选择 [param object] 的属性。[param callback] 必须接受单" +"个类型为 [NodePath] 的参数。调用回调时会传入所选属性路径(见 [method NodePath." +"get_as_property_path]),取消对话框时则为空路径 [code]^\"\"[/code]。如果提供" +"了 [param type_filter],则对话框只会显示与所列 [enum Variant.Type] 值匹配的属" +"性。\n" +"[codeblock]\n" +"func _ready():\n" +" if Engine.is_editor_hint():\n" +" EditorInterface.popup_property_selector(this, _on_property_selected, " +"[TYPE_INT])\n" +"\n" +"func _on_property_selected(property_path):\n" +" if property_path.is_empty():\n" +" print(\"属性选择已取消\")\n" +" else:\n" +" print(\"选中 \", property_path)\n" +"[/codeblock]" + +msgid "" +"Pops up an editor dialog for quick selecting a resource file. The [param " +"callback] must take a single argument of type [String] which will contain the " +"path of the selected resource or be empty if the dialog is canceled. If " +"[param base_types] is provided, the dialog will only show resources that " +"match these types. Only types deriving from [Resource] are supported." +msgstr "" +"弹出编辑器对话框,用于快速选择资源文件。[param callback] 回调必须接受单个 " +"[String] 类型的参数,其中包含的是所选资源的路径,取消对话框时则为空。如果提供" +"了 [param base_types],则对话框中只会显示与这些类型相匹配的资源。仅支持派生自 " +"[Resource] 的类型。" + msgid "Reloads the scene at the given path." msgstr "重新加载给定路径的场景。" @@ -39077,6 +50287,14 @@ msgstr "" "设置,无需任何 [UndoRedo] 动作。对于所有子小工具方法,变换是在与小工具的 " "Node3D 相关的局部空间中给出的。为该插件的活动小工具而调用。" +msgid "" +"Override this method to return a custom [EditorNode3DGizmo] for the 3D nodes " +"of your choice, return [code]null[/code] for the rest of nodes. See also " +"[method _has_gizmo]." +msgstr "" +"覆盖此方法,为选择的 3D 节点返回一个自定义的 [EditorNode3DGizmo],为其余节点返" +"回 [code]null[/code]。另见 [method _has_gizmo]。" + msgid "" "Override this method to provide the name that will appear in the gizmo " "visibility menu." @@ -39577,6 +50795,84 @@ msgstr "" "上。当需要一个显示在其他任何内容之上的额外图层时很有用。\n" "需要使用 [method set_force_draw_over_forwarding_enabled] 来启用该方法的调用。" +msgid "" +"Called when there is a root node in the current edited scene, [method " +"_handles] is implemented, and an [InputEvent] happens in the 3D viewport. The " +"return value decides whether the [InputEvent] is consumed or forwarded to " +"other [EditorPlugin]s. See [enum AfterGUIInput] for options.\n" +"[codeblocks]\n" +"[gdscript]\n" +"# Prevents the InputEvent from reaching other Editor classes.\n" +"func _forward_3d_gui_input(camera, event):\n" +" return EditorPlugin.AFTER_GUI_INPUT_STOP\n" +"[/gdscript]\n" +"[csharp]\n" +"// Prevents the InputEvent from reaching other Editor classes.\n" +"public override EditorPlugin.AfterGuiInput _Forward3DGuiInput(Camera3D " +"camera, InputEvent @event)\n" +"{\n" +" return EditorPlugin.AfterGuiInput.Stop;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"This method must return [constant AFTER_GUI_INPUT_PASS] in order to forward " +"the [InputEvent] to other Editor classes.\n" +"[codeblocks]\n" +"[gdscript]\n" +"# Consumes InputEventMouseMotion and forwards other InputEvent types.\n" +"func _forward_3d_gui_input(camera, event):\n" +" return EditorPlugin.AFTER_GUI_INPUT_STOP if event is " +"InputEventMouseMotion else EditorPlugin.AFTER_GUI_INPUT_PASS\n" +"[/gdscript]\n" +"[csharp]\n" +"// Consumes InputEventMouseMotion and forwards other InputEvent types.\n" +"public override EditorPlugin.AfterGuiInput _Forward3DGuiInput(Camera3D " +"camera, InputEvent @event)\n" +"{\n" +" return @event is InputEventMouseMotion ? EditorPlugin.AfterGuiInput." +"Stop : EditorPlugin.AfterGuiInput.Pass;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"在当前编辑的场景中有根节点时调用,实现 [method _handles] 并在 3D 视口中产生 " +"[InputEvent]。返回值决定 [InputEvent] 是被消费还是被转发给其他 " +"[EditorPlugin]。有关选项,请参阅 [enum AfterGUIInput]。\n" +"[codeblocks]\n" +"[gdscript]\n" +"# 阻止 InputEvent 到达其他编辑类。\n" +"func _forward_3d_gui_input(camera, event):\n" +" return EditorPlugin.AFTER_GUI_INPUT_STOP\n" +"[/gdscript]\n" +"[csharp]\n" +"// 阻止 InputEvent 到达其他编辑类。\n" +"public override EditorPlugin.AfterGuiInput _Forward3DGuiInput(Camera3D " +"camera, InputEvent @event)\n" +"{\n" +" return EditorPlugin.AfterGuiInput.Stop;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"该方法返回 [constant AFTER_GUI_INPUT_PASS] 才能将 [InputEvent] 转发给其他编辑" +"器类。\n" +"[codeblocks]\n" +"[gdscript]\n" +"# 消耗 InputEventMouseMotion 并转发其他 InputEvent 类型。\n" +"func _forward_3d_gui_input(camera, event):\n" +" return EditorPlugin.AFTER_GUI_INPUT_STOP if event is " +"InputEventMouseMotion else EditorPlugin.AFTER_GUI_INPUT_PASS\n" +"[/gdscript]\n" +"[csharp]\n" +"// 消耗 InputEventMouseMotion 并转发其他 InputEvent 类型。\n" +"public override EditorPlugin.AfterGuiInput _Forward3DGuiInput(Camera3D " +"camera, InputEvent @event)\n" +"{\n" +" return @event is InputEventMouseMotion ? EditorPlugin.AfterGuiInput." +"Stop : EditorPlugin.AfterGuiInput.Pass;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Called by the engine when the 2D editor's viewport is updated. Use the " "[code]overlay[/code] [Control] for drawing. You can update the viewport " @@ -39662,6 +50958,88 @@ msgstr "" "容之上。当需要一个显示在其他任何内容之上的额外图层时很有用。\n" "需要使用 [method set_force_draw_over_forwarding_enabled] 来启用该方法的调用。" +msgid "" +"Called when there is a root node in the current edited scene, [method " +"_handles] is implemented, and an [InputEvent] happens in the 2D viewport. If " +"this method returns [code]true[/code], [param event] is intercepted by this " +"[EditorPlugin], otherwise [param event] is forwarded to other Editor " +"classes.\n" +"[codeblocks]\n" +"[gdscript]\n" +"# Prevents the InputEvent from reaching other Editor classes.\n" +"func _forward_canvas_gui_input(event):\n" +" return true\n" +"[/gdscript]\n" +"[csharp]\n" +"// Prevents the InputEvent from reaching other Editor classes.\n" +"public override bool ForwardCanvasGuiInput(InputEvent @event)\n" +"{\n" +" return true;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"This method must return [code]false[/code] in order to forward the " +"[InputEvent] to other Editor classes.\n" +"[codeblocks]\n" +"[gdscript]\n" +"# Consumes InputEventMouseMotion and forwards other InputEvent types.\n" +"func _forward_canvas_gui_input(event):\n" +" if (event is InputEventMouseMotion):\n" +" return true\n" +" return false\n" +"[/gdscript]\n" +"[csharp]\n" +"// Consumes InputEventMouseMotion and forwards other InputEvent types.\n" +"public override bool _ForwardCanvasGuiInput(InputEvent @event)\n" +"{\n" +" if (@event is InputEventMouseMotion)\n" +" {\n" +" return true;\n" +" }\n" +" return false;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"在当前编辑的场景中有根节点时调用,实现 [method _handles] 并在 2D 视口中产生 " +"[InputEvent]。如果该方法返回 [code]true[/code],则 [EditorPlugin] 会拦截 " +"[param event],否则 [param event] 会转发给其他编辑器类。\n" +"[codeblocks]\n" +"[gdscript]\n" +"# 阻止 InputEvent 到达其他编辑类。\n" +"func _forward_canvas_gui_input(event):\n" +" return true\n" +"[/gdscript]\n" +"[csharp]\n" +"// 阻止 InputEvent 到达其他编辑类。\n" +"public override bool ForwardCanvasGuiInput(InputEvent @event)\n" +"{\n" +" return true;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"该方法返回 [code]false[/code] 才能将 [InputEvent] 转发到其他编辑器类。\n" +"[codeblocks]\n" +"[gdscript]\n" +"# 消耗 InputEventMouseMotion 并转发其他 InputEvent 类型。\n" +"func _forward_canvas_gui_input(event):\n" +" if (event is InputEventMouseMotion):\n" +" return true\n" +" return false\n" +"[/gdscript]\n" +"[csharp]\n" +"// 消耗 InputEventMouseMotion 并转发其他 InputEvent 类型。\n" +"public override bool _ForwardCanvasGuiInput(InputEvent @event)\n" +"{\n" +" if (@event is InputEventMouseMotion)\n" +" {\n" +" return true;\n" +" }\n" +" return false;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "This is for editors that edit script-based objects. You can return a list of " "breakpoints in the format ([code]script:line[/code]), for example: " @@ -39993,6 +51371,34 @@ msgstr "" msgid "Adds a script at [param path] to the Autoload list as [param name]." msgstr "将 [param path] 处的脚本作为 [param name] 添加到自动加载列表中。" +msgid "" +"Adds a plugin to the context menu. [param slot] is the context menu where the " +"plugin will be added.\n" +"See [enum EditorContextMenuPlugin.ContextMenuSlot] for available context " +"menus. A plugin instance can belong only to a single context menu slot." +msgstr "" +"将插件添加至上下文菜单。[param slot] 为添加插件的上下文菜单。\n" +"可用上下文菜单见 [enum EditorContextMenuPlugin.ContextMenuSlot]。插件的实例只" +"能属于单个上下文菜单槽。" + +msgid "" +"Adds a control to the bottom panel (together with Output, Debug, Animation, " +"etc.). Returns a reference to the button added. It's up to you to hide/show " +"the button when needed. When your plugin is deactivated, make sure to remove " +"your custom control with [method remove_control_from_bottom_panel] and free " +"it with [method Node.queue_free].\n" +"Optionally, you can specify a shortcut parameter. When pressed, this shortcut " +"will toggle the bottom panel's visibility. See the default editor bottom " +"panel shortcuts in the Editor Settings for inspiration. Per convention, they " +"all use [kbd]Alt[/kbd] modifier." +msgstr "" +"将控件添加到底部面板(与“输出”“调试”“动画”等一起)。返回添加的按钮。你需要视情" +"况自行隐藏/显示这个按钮。停用插件时,请确保使用 [method " +"remove_control_from_bottom_panel] 移除自定义控件并使用 [method Node." +"queue_free] 将其释放。\n" +"你还可以指定快捷键参数。按下快捷键时会切换底部面板的可见性。示例见“编辑器设" +"置”中的默认编辑器底部面板快捷键。按照惯例都使用了 [kbd]Alt[/kbd] 修饰键。" + msgid "" "Adds a custom control to a container (see [enum CustomControlContainer]). " "There are many locations where custom controls can be added in the editor " @@ -40064,6 +51470,11 @@ msgstr "" "将一个 [Script] 作为调试器插件添加到调试器。该脚本必须扩展 " "[EditorDebuggerPlugin]。" +msgid "" +"Registers a new [EditorExportPlatform]. Export platforms provides " +"functionality of exporting to the specific platform." +msgstr "注册新的 [EditorExportPlatform]。导出平台提供导出到该平台的功能。" + msgid "" "Registers a new [EditorExportPlugin]. Export plugins are used to perform " "tasks when the project is being exported.\n" @@ -40252,6 +51663,9 @@ msgstr "排队保存游戏项目的编辑器布局。" msgid "Removes an Autoload [param name] from the list." msgstr "从列表中移除自动加载 [param name]。" +msgid "Removes the specified context menu plugin." +msgstr "移除指定的上下文菜单插件。" + msgid "" "Removes the control from the bottom panel. You have to manually [method Node." "queue_free] the control." @@ -40276,12 +51690,18 @@ msgstr "移除由 [method add_custom_type] 添加的自定义类型。" msgid "Removes the debugger plugin with given script from the Debugger." msgstr "从调试器中移除带有给定脚本的调试器插件。" +msgid "Removes an export platform registered by [method add_export_platform]." +msgstr "移除由 [method add_export_platform] 注册的导出平台。" + msgid "Removes an export plugin registered by [method add_export_plugin]." msgstr "移除由 [method add_export_plugin] 注册的导出插件。" msgid "Removes an import plugin registered by [method add_import_plugin]." msgstr "移除由 [method add_import_plugin] 注册的导入插件。" +msgid "Removes an inspector plugin registered by [method add_inspector_plugin]." +msgstr "移除由 [method add_inspector_plugin] 注册的检查器插件。" + msgid "Removes a gizmo plugin registered by [method add_node_3d_gizmo_plugin]." msgstr "移除由 [method add_node_3d_gizmo_plugin] 注册的小工具插件。" @@ -40506,6 +51926,9 @@ msgstr "" "如果添加的任何控件可以获得键盘焦点,将其添加到此处。这样可以确保在检查器被刷新" "时恢复焦点。" +msgid "Draw property as not selected. Used by the inspector." +msgstr "以未选中的形式绘制属性。由检查器使用。" + msgid "" "If one or several properties have changed, this must be called. [param field] " "is used in case your editor can modify fields separately (as an example, " @@ -40527,6 +51950,14 @@ msgstr "" "获取被编辑的属性。如果你的编辑器适用于单个属性(通过 [method " "EditorInspectorPlugin._parse_property] 添加),则返回该属性。" +msgid "" +"Returns [code]true[/code] if property is drawn as selected. Used by the " +"inspector." +msgstr "如果属性以未选中的形式绘制,则返回 [code]true[/code]。由检查器使用。" + +msgid "Draw property as selected. Used by the inspector." +msgstr "以选中的形式绘制属性。由检查器使用。" + msgid "" "Puts the [param editor] control below the property label. The control must be " "previously added using [method Node.add_child]." @@ -40534,6 +51965,14 @@ msgstr "" "将 [param editor] 控件放在属性标签的下方。该控件必须事先用 [method Node." "add_child] 添加。" +msgid "" +"Used by the inspector, set to a control that will be used as a reference to " +"calculate the size of the label." +msgstr "由检查器使用,设为计算标签大小时用作参考的控件。" + +msgid "Assigns object and property to edit." +msgstr "分配要编辑的对象和属性。" + msgid "Forces refresh of the property display." msgstr "强制刷新属性显示。" @@ -40551,6 +51990,16 @@ msgid "" "deleted by the user." msgstr "用于检查器,该属性可以被用户删除时设置为 [code]true[/code]。" +msgid "" +"Used by the inspector, set to [code]true[/code] when the property label is " +"drawn." +msgstr "用于检查器,该属性绘制标签时设置为 [code]true[/code]。" + +msgid "" +"Used by the inspector, set to [code]true[/code] when the property background " +"is drawn." +msgstr "用于检查器,该属性绘制背景时设置为 [code]true[/code]。" + msgid "" "Used by the inspector, set to [code]true[/code] when the property is drawn " "with the editor theme's warning color. This is used for editable children's " @@ -40567,11 +52016,24 @@ msgstr "用于检查器,该属性可以被添加为动画关键帧时设置为 msgid "Set this property to change the label (if you want to show one)." msgstr "设置此属性可改变标签(如果你想显示标签)。" +msgid "Space distribution ratio between the label and the editing field." +msgstr "标签和编辑框之间的空间占比。" + msgid "" "Used by the inspector, set to [code]true[/code] when the property is read-" "only." msgstr "用于检查器,该属性为只读时设置为 [code]true[/code]。" +msgid "" +"Used by the inspector, set to [code]true[/code] when the property is " +"selectable." +msgstr "用于检查器,该属性可选中时设置为 [code]true[/code]。" + +msgid "" +"Used by the inspector, set to [code]true[/code] when the property is using " +"folding." +msgstr "用于检查器,该属性使用折叠时设置为 [code]true[/code]。" + msgid "" "Emit it if you want multiple properties modified at the same time. Do not use " "if added via [method EditorInspectorPlugin._parse_property]." @@ -40598,13 +52060,18 @@ msgstr "勾选某个属性时发出。内部使用。" msgid "Emitted when a property was deleted. Used internally." msgstr "删除某个属性时发出。内部使用。" +msgid "" +"Emit it if you want to mark a property as favorited, making it appear at the " +"top of the inspector." +msgstr "请在想要将属性标记为收藏时发出,会让属性显示在检查器开头。" + msgid "" "Emit it if you want to add this value as an animation key (check for keying " "being enabled first)." -msgstr "如果你想将此值添加这个值为动画键,请触发它(首先检查是否启用了键控)。" +msgstr "请在想要将这个值添加为动画关键帧时发出(请先检查是否启用了键控)。" msgid "Emit it if you want to key a property with a single value." -msgstr "如果你想用一个单一的值来键入一个属性,请触发它。" +msgstr "请在想用单个值为属性设置关键帧时发出。" msgid "" "Emit it if you want to mark (or unmark) the value of a property for being " @@ -40800,6 +52267,44 @@ msgid "" "corresponding signal emitted." msgstr "检查资源是否发生变化,如果发生变化,则无效,并发出相应的信号。" +msgid "" +"Queue the [param resource] being edited for preview. Once the preview is " +"ready, the [param receiver]'s [param receiver_func] will be called. The " +"[param receiver_func] must take the following four arguments: [String] path, " +"[Texture2D] preview, [Texture2D] thumbnail_preview, [Variant] userdata. " +"[param userdata] can be anything, and will be returned when [param " +"receiver_func] is called.\n" +"[b]Note:[/b] If it was not possible to create the preview the [param " +"receiver_func] will still be called, but the preview will be [code]null[/" +"code]." +msgstr "" +"将正在编辑的 [param resource] 加入预览队列。预览就绪后将调用 [param receiver] " +"的 [param receiver_func]。[param receiver_func] 必须接受以下四个参数:" +"[String] path、[Texture2D] preview、[Texture2D] thumbnail_preview、[Variant] " +"userdata。[param userdata] 可以是任何内容,会在调用 [param receiver_func] 时返" +"回。\n" +"[b]注意:[/b]无法创建预览时仍会调用 [param receiver_func],但预览将为 " +"[code]null[/code]。" + +msgid "" +"Queue a resource file located at [param path] for preview. Once the preview " +"is ready, the [param receiver]'s [param receiver_func] will be called. The " +"[param receiver_func] must take the following four arguments: [String] path, " +"[Texture2D] preview, [Texture2D] thumbnail_preview, [Variant] userdata. " +"[param userdata] can be anything, and will be returned when [param " +"receiver_func] is called.\n" +"[b]Note:[/b] If it was not possible to create the preview the [param " +"receiver_func] will still be called, but the preview will be [code]null[/" +"code]." +msgstr "" +"将位于 [param path] 的资源文件加入预览队列。预览就绪后将调用 [param receiver] " +"的 [param receiver_func]。[param receiver_func] 必须接受以下四个参数:" +"[String] path、[Texture2D] preview、[Texture2D] thumbnail_preview、[Variant] " +"userdata。[param userdata] 可以是任何内容,会在调用 [param receiver_func] 时返" +"回。\n" +"[b]注意:[/b]无法创建预览时仍会调用 [param receiver_func],但预览将为 " +"[code]null[/code]。" + msgid "Removes a custom preview generator." msgstr "移除自定义预览生成器。" @@ -40811,6 +52316,13 @@ msgstr "预览无效(更改)时发出。[param path] 对应预览的路径 msgid "Custom generator of previews." msgstr "自定义的预览生成器。" +msgid "" +"Custom code to generate previews. Check [member EditorSettings.filesystem/" +"file_dialog/thumbnail_size] to find a proper size to generate previews at." +msgstr "" +"生成预览的自定义代码。请查看 [member EditorSettings.filesystem/file_dialog/" +"thumbnail_size] 找出适合做预览的尺寸。" + msgid "" "If this function returns [code]true[/code], the generator will call [method " "_generate] or [method _generate_from_path] for small previews as well.\n" @@ -40820,6 +52332,43 @@ msgstr "" "_generate] 或 [method _generate_from_path]。\n" "默认情况下,它返回 [code]false[/code]。" +msgid "" +"Generate a preview from a given resource with the specified size. This must " +"always be implemented.\n" +"Returning [code]null[/code] is an OK way to fail and let another generator " +"take care.\n" +"Care must be taken because this function is always called from a thread (not " +"the main thread).\n" +"[param metadata] dictionary can be modified to store file-specific metadata " +"that can be used in [method EditorResourceTooltipPlugin." +"_make_tooltip_for_path] (like image size, sample length etc.)." +msgstr "" +"根据给定的资源生成指定大小的预览。必须始终实现。\n" +"失败时允许返回 [code]null[/code],会由其他生成器接手。\n" +"必须保持谨慎,因为这个函数始终是从(主线程以外的)线程中调用的。\n" +"可以修改 [param metadata] 字典,从而保存能够在 [method " +"EditorResourceTooltipPlugin._make_tooltip_for_path] 中使用的文件相关的源数据" +"(例如图片大小、采样长度等)。" + +msgid "" +"Generate a preview directly from a path with the specified size. Implementing " +"this is optional, as default code will load and call [method _generate].\n" +"Returning [code]null[/code] is an OK way to fail and let another generator " +"take care.\n" +"Care must be taken because this function is always called from a thread (not " +"the main thread).\n" +"[param metadata] dictionary can be modified to store file-specific metadata " +"that can be used in [method EditorResourceTooltipPlugin." +"_make_tooltip_for_path] (like image size, sample length etc.)." +msgstr "" +"根据路径直接生成指定大小的预览。可选实现,默认代码会在加载后调用 [method " +"_generate]。\n" +"失败时允许返回 [code]null[/code],会由其他生成器接手。\n" +"必须保持谨慎,因为这个函数始终是从(主线程以外的)线程中调用的。\n" +"可以修改 [param metadata] 字典,从而保存能够在 [method " +"EditorResourceTooltipPlugin._make_tooltip_for_path] 中使用的文件相关的源数据" +"(例如图片大小、采样长度等)。" + msgid "" "If this function returns [code]true[/code], the generator will automatically " "generate the small previews from the normal preview texture generated by the " @@ -40928,6 +52477,52 @@ msgstr "" "要使用 [EditorSceneFormatImporter],请先使用 [method EditorPlugin." "add_scene_format_importer_plugin] 方法注册它。" +msgid "Return supported file extensions for this scene importer." +msgstr "返回该场景导入器支持的文件扩展名。" + +msgid "" +"Override to add general import options. These will appear in the main import " +"dock on the editor. Add options via [method add_import_option] and [method " +"add_import_option_advanced].\n" +"[b]Note:[/b] All [EditorSceneFormatImporter] and " +"[EditorScenePostImportPlugin] instances will add options for all files. It is " +"good practice to check the file extension when [param path] is non-empty.\n" +"When the user is editing project settings, [param path] will be empty. It is " +"recommended to add all options when [param path] is empty to allow the user " +"to customize Import Defaults." +msgstr "" +"覆盖后可以添加通用导入选项。这些选项将出现在编辑器的主导入面板中。请通过 " +"[method add_import_option] 和 [method add_import_option_advanced] 添加选项。\n" +"[b]注意:[/b]所有 [EditorSceneFormatImporter] 和 " +"[EditorScenePostImportPlugin] 实例都会为所有文件添加选项。[param path] 非空" +"时,最好检查文件的扩展名。\n" +"用户编辑项目设置时 [param path] 将为空。建议在 [param path] 为空时添加所有选" +"项,以便用户自定义导入默认值。" + +msgid "" +"Should return [code]true[/code] to show the given option, [code]false[/code] " +"to hide the given option, or [code]null[/code] to ignore." +msgstr "" +"显示给定的选项应返回 [code]true[/code],隐藏给定的选项应返回 [code]false[/" +"code],忽略应返回 [code]null[/code]。" + +msgid "" +"Perform the bulk of the scene import logic here, for example using " +"[GLTFDocument] or [FBXDocument]." +msgstr "在此处执行批量场景导入逻辑,例如使用 [GLTFDocument] 和 [FBXDocument]。" + +msgid "" +"Add a specific import option (name and default value only). This function can " +"only be called from [method _get_import_options]." +msgstr "" +"添加特定的导入选项(仅限名称和默认值)。该函数只能在 [method " +"_get_import_options] 中调用。" + +msgid "" +"Add a specific import option. This function can only be called from [method " +"_get_import_options]." +msgstr "添加特定的导入选项。该函数只能在 [method _get_import_options] 中调用。" + msgid "Importer for Blender's [code].blend[/code] scene file format." msgstr "Blender 的 [code].blend[/code] 场景文件格式的导入器。" @@ -40989,6 +52584,111 @@ msgstr "" msgid "Post-processes scenes after import." msgstr "导入后对场景进行后处理。" +msgid "" +"Imported scenes can be automatically modified right after import by setting " +"their [b]Custom Script[/b] Import property to a [code]tool[/code] script that " +"inherits from this class.\n" +"The [method _post_import] callback receives the imported scene's root node " +"and returns the modified version of the scene:\n" +"[codeblocks]\n" +"[gdscript]\n" +"@tool # Needed so it runs in editor.\n" +"extends EditorScenePostImport\n" +"\n" +"# This sample changes all node names.\n" +"# Called right after the scene is imported and gets the root node.\n" +"func _post_import(scene):\n" +" # Change all node names to \"modified_[oldnodename]\"\n" +" iterate(scene)\n" +" return scene # Remember to return the imported scene\n" +"\n" +"func iterate(node):\n" +" if node != null:\n" +" node.name = \"modified_\" + node.name\n" +" for child in node.get_children():\n" +" iterate(child)\n" +"[/gdscript]\n" +"[csharp]\n" +"using Godot;\n" +"\n" +"// This sample changes all node names.\n" +"// Called right after the scene is imported and gets the root node.\n" +"[Tool]\n" +"public partial class NodeRenamer : EditorScenePostImport\n" +"{\n" +" public override GodotObject _PostImport(Node scene)\n" +" {\n" +" // Change all node names to \"modified_[oldnodename]\"\n" +" Iterate(scene);\n" +" return scene; // Remember to return the imported scene\n" +" }\n" +"\n" +" public void Iterate(Node node)\n" +" {\n" +" if (node != null)\n" +" {\n" +" node.Name = $\"modified_{node.Name}\";\n" +" foreach (Node child in node.GetChildren())\n" +" {\n" +" Iterate(child);\n" +" }\n" +" }\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"通过将[b]自定义脚本[/b]导入属性设置为从此类继承的 [code]tool[/code] 脚本,可以" +"在导入后立即自动修改导入的场景。\n" +"[method _post_import] 回调接收导入场景的根节点,并返回场景的修改版本。\n" +"[codeblocks]\n" +"[gdscript]\n" +"@tool # 需要它才能在编辑器中运行。\n" +"extends EditorScenePostImport\n" +"\n" +"# 该示例更改所有节点名称。\n" +"# 在导入场景并获取根节点后立即调用。\n" +"func _post_import(scene):\n" +" # 将所有节点名称更改为 “modified_[oldnodename]”\n" +" iterate(scene)\n" +" return scene # 记得返回导入的场景\n" +"\n" +"func iterate(node):\n" +" if node != null:\n" +" node.name = \"modified_\" + node.name\n" +" for child in node.get_children():\n" +" iterate(child)\n" +"[/gdscript]\n" +"[csharp]\n" +"using Godot;\n" +"\n" +"// 该示例更改所有节点名称。\n" +"// 在导入场景并获取根节点后立即调用。\n" +"[Tool]\n" +"public partial class NodeRenamer : EditorScenePostImport\n" +"{\n" +" public override GodotObject _PostImport(Node scene)\n" +" {\n" +" // 将所有节点名称更改为 “modified_[oldnodename]”\n" +" Iterate(scene);\n" +" return scene; // 记得返回导入的场景\n" +" }\n" +"\n" +" public void Iterate(Node node)\n" +" {\n" +" if (node != null)\n" +" {\n" +" node.Name = $\"modified_{node.Name}\";\n" +" foreach (Node child in node.GetChildren())\n" +" {\n" +" Iterate(child);\n" +" }\n" +" }\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "Importing 3D scenes: Configuration: Using import scripts for automation" msgstr "导入 3D 场景:配置:使用导入脚本进行自动化" @@ -41029,6 +52729,13 @@ msgstr "" "覆盖以添加内部导入选项。这些将出现在 3D 场景导入对话框中。通过 [method " "add_import_option] 和 [method add_import_option_advanced] 添加选项。" +msgid "" +"Should return [code]true[/code] if the 3D view of the import dialog needs to " +"update when changing the given option." +msgstr "" +"返回在选项已更改时是否需要更新导入对话框的 3D 视图,若更新则返回 [code]true[/" +"code]。" + msgid "Process a specific node or resource for a given category." msgstr "处理给定类别的特定节点或资源。" @@ -41037,6 +52744,20 @@ msgid "" "been configured." msgstr "对场景进行后期处理。该方法会在最终场景配置完成后调用。" +msgid "" +"Pre Process the scene. This function is called right after the scene format " +"loader loaded the scene and no changes have been made.\n" +"Pre process may be used to adjust internal import options in the " +"[code]\"nodes\"[/code], [code]\"meshes\"[/code], [code]\"animations\"[/code] " +"or [code]\"materials\"[/code] keys inside " +"[code]get_option_value(\"_subresources\")[/code]." +msgstr "" +"对场景进行预处理。场景格式加载器加载场景后会立即调用该函数,此时尚未进行任何更" +"改。\n" +"预处理可用于调整 [code]\"nodes\"[/code]、[code]\"meshes\"[/code]、" +"[code]\"animations\"[/code]、[code]\"materials\"[/code] 等内部导入选项,这些字" +"段位于 [code]get_option_value(\"_subresources\")[/code] 中。" + msgid "" "Add a specific import option (name and default value only). This function can " "only be called from [method _get_import_options] and [method " @@ -41060,6 +52781,75 @@ msgstr "查询选项的值。该函数只能从查询可见性的函数或处理 msgid "Base script that can be used to add extension functions to the editor." msgstr "可用于为编辑器添加扩展功能的基础脚本。" +msgid "" +"Scripts extending this class and implementing its [method _run] method can be " +"executed from the Script Editor's [b]File > Run[/b] menu option (or by " +"pressing [kbd]Ctrl + Shift + X[/kbd]) while the editor is running. This is " +"useful for adding custom in-editor functionality to Godot. For more complex " +"additions, consider using [EditorPlugin]s instead.\n" +"[b]Note:[/b] Extending scripts need to have [code]tool[/code] mode enabled.\n" +"[b]Example:[/b] Running the following script prints \"Hello from the Godot " +"Editor!\":\n" +"[codeblocks]\n" +"[gdscript]\n" +"@tool\n" +"extends EditorScript\n" +"\n" +"func _run():\n" +" print(\"Hello from the Godot Editor!\")\n" +"[/gdscript]\n" +"[csharp]\n" +"using Godot;\n" +"\n" +"[Tool]\n" +"public partial class HelloEditor : EditorScript\n" +"{\n" +" public override void _Run()\n" +" {\n" +" GD.Print(\"Hello from the Godot Editor!\");\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] The script is run in the Editor context, which means the output " +"is visible in the console window started with the Editor (stdout) instead of " +"the usual Godot [b]Output[/b] dock.\n" +"[b]Note:[/b] EditorScript is [RefCounted], meaning it is destroyed when " +"nothing references it. This can cause errors during asynchronous operations " +"if there are no references to the script." +msgstr "" +"扩展该类并实现其 [method _run] 方法的脚本可以在编辑器运行时通过脚本编辑器的[b]" +"文件 > 运行[/b]菜单选项(或按 [kbd]Ctrl + Shift + X[/kbd])执行。这对于向 " +"Godot 添加自定义的编辑内功能很有用。对于更复杂的添加,请考虑改用 " +"[EditorPlugin]。\n" +"[b]注意:[/b]扩展脚本需要启用 [code]tool[/code] 工具模式。\n" +"[b]示例:[/b]运行下面的脚本会输出“Godot 编辑器向你问好!”:\n" +"[codeblocks]\n" +"[gdscript]\n" +"@tool\n" +"extends EditorScript\n" +"\n" +"func _run():\n" +" print(\"Hello from the Godot Editor!\")\n" +"[/gdscript]\n" +"[csharp]\n" +"using Godot;\n" +"\n" +"[Tool]\n" +"public partial class HelloEditor : EditorScript\n" +"{\n" +" public override void _Run()\n" +" {\n" +" GD.Print(\"Godot 编辑器向你问好!\");\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b]脚本在编辑器上下文中运行,这意味着输出在使用编辑器(stdout)启动" +"的控制台窗口中可见,而不是通常的 Godot [b]输出[/b]停靠面板。\n" +"[b]注意:[/b]EditorScript 是 [RefCounted],这意味着它不再被引用时会被销毁。如" +"果没有对脚本的引用,这可能会在异步操作期间导致错误。" + msgid "This method is executed by the Editor when [b]File > Run[/b] is used." msgstr "当使用[b]文件 > 运行[/b]时,此方法由编辑器执行。" @@ -41213,6 +53003,77 @@ msgstr "" "[b]注意:[/b]不能直接实例化这个类。请改用 [method EditorInterface." "get_editor_settings] 访问单例。" +msgid "" +"Adds a custom property info to a property. The dictionary must contain:\n" +"- [code]name[/code]: [String] (the name of the property)\n" +"- [code]type[/code]: [int] (see [enum Variant.Type])\n" +"- optionally [code]hint[/code]: [int] (see [enum PropertyHint]) and " +"[code]hint_string[/code]: [String]\n" +"[codeblocks]\n" +"[gdscript]\n" +"var settings = EditorInterface.get_editor_settings()\n" +"settings.set(\"category/property_name\", 0)\n" +"\n" +"var property_info = {\n" +" \"name\": \"category/property_name\",\n" +" \"type\": TYPE_INT,\n" +" \"hint\": PROPERTY_HINT_ENUM,\n" +" \"hint_string\": \"one,two,three\"\n" +"}\n" +"\n" +"settings.add_property_info(property_info)\n" +"[/gdscript]\n" +"[csharp]\n" +"var settings = GetEditorInterface().GetEditorSettings();\n" +"settings.Set(\"category/property_name\", 0);\n" +"\n" +"var propertyInfo = new Godot.Collections.Dictionary\n" +"{\n" +" {\"name\", \"category/propertyName\"},\n" +" {\"type\", Variant.Type.Int},\n" +" {\"hint\", PropertyHint.Enum},\n" +" {\"hint_string\", \"one,two,three\"}\n" +"};\n" +"\n" +"settings.AddPropertyInfo(propertyInfo);\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"向属性添加自定义属性信息。该字典必须包含:\n" +"- [code]name[/code]: [String](属性名称)\n" +"- [code]type[/code]: [int](见 [enum Variant.Type])\n" +"- (可选) [code]hint[/code]: [int] (见 [enum PropertyHint])和 " +"[code]hint_string[/code]: [String]\n" +"[codeblocks]\n" +"[gdscript]\n" +"var settings = EditorInterface.get_editor_settings()\n" +"settings.set(\"category/property_name\", 0)\n" +"\n" +"var property_info = {\n" +" \"name\": \"category/property_name\",\n" +" \"type\": TYPE_INT,\n" +" \"hint\": PROPERTY_HINT_ENUM,\n" +" \"hint_string\": \"one,two,three\"\n" +"}\n" +"\n" +"settings.add_property_info(property_info)\n" +"[/gdscript]\n" +"[csharp]\n" +"var settings = GetEditorInterface().GetEditorSettings();\n" +"settings.Set(\"category/property_name\", 0);\n" +"\n" +"var propertyInfo = new Godot.Collections.Dictionary\n" +"{\n" +" {\"name\", \"category/propertyName\"},\n" +" {\"type\", Variant.Type.Int},\n" +" {\"hint\", PropertyHint.Enum},\n" +" {\"hint_string\", \"one,two,three\"}\n" +"};\n" +"\n" +"settings.AddPropertyInfo(propertyInfo);\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Checks if any settings with the prefix [param setting_prefix] exist in the " "set of changed settings. See also [method get_changed_settings]." @@ -41281,6 +53142,16 @@ msgstr "" msgid "Sets the list of favorite files and directories for this project." msgstr "设置该游戏项目收藏的文件和目录的列表。" +msgid "" +"Sets the initial value of the setting specified by [param name] to [param " +"value]. This is used to provide a value for the Revert button in the Editor " +"Settings. If [param update_current] is [code]true[/code], the setting is " +"reset to [param value] as well." +msgstr "" +"将由 [param name] 指定的设置项的初始值设置为 [param value]。用于在“编辑器设" +"置”中为“恢复”按钮提供值。如果 [param update_current] 为 [code]true[/code],则" +"该设置的当前值也会被设为 [param value]。" + msgid "" "Sets project-specific metadata with the [param section], [param key] and " "[param data] specified. This metadata is stored outside the project folder " @@ -41302,6 +53173,38 @@ msgstr "" "将由 [param name] 指定的设置项设置为 [param value]。等价于在 EditorSettings 实" "例上使用 [method Object.set]。" +msgid "" +"If [code]true[/code], the Asset Library uses multiple threads for its HTTP " +"requests. This prevents the Asset Library from blocking the main thread for " +"every loaded asset." +msgstr "" +"如果为 [code]true[/code],则资产库会多线程执行 HTTP 请求。这样资产库就不会每加" +"载一个资产阻塞一次主线程了。" + +msgid "" +"If [code]true[/code], automatically switches to the [b]Remote[/b] scene tree " +"when running the project from the editor. If [code]false[/code], stays on the " +"[b]Local[/b] scene tree when running the project from the editor.\n" +"[b]Warning:[/b] Enabling this setting can cause stuttering when running a " +"project with a large amount of nodes (typically a few thousands of nodes or " +"more), even if the editor window isn't focused. This is due to the remote " +"scene tree being updated every second regardless of whether the editor is " +"focused." +msgstr "" +"如果为 [code]true[/code],当从编辑器中运行项目时会自动切换至[b]远程[/b]场景" +"树。如果为 [code]false[/code],当从编辑器中运行项目时会保持显示[b]本地[/b]场景" +"树。\n" +"[b]警告:[/b]启用该设置后,运行包含大量节点的项目(通常是成千上万个节点)可能" +"造成卡顿,即便未聚焦编辑器窗口也是如此。这是由于无论编辑器是否聚焦,远程场景树" +"都会每帧更新。" + +msgid "" +"If [code]true[/code], automatically switches to the [b]Stack Trace[/b] panel " +"when the debugger hits a breakpoint or steps." +msgstr "" +"如果为 [code]true[/code],当调试器触发断点或步进时会自动切换到[b]栈跟踪[/b]面" +"板。" + msgid "" "If [code]true[/code], enables collection of profiling data from non-GDScript " "Godot functions, such as engine class methods. Enabling this slows execution " @@ -41332,6 +53235,11 @@ msgstr "" "个数量的脚本函数,则这些函数会被完全全部丢弃。\n" "[b]注意:[/b]这个设置仅在首次启动性能分析器时读取,进行分析时修改无效。" +msgid "" +"The target frame rate shown in the visual profiler graph, in frames per " +"second." +msgstr "可视性能分析器中显示的目标帧率,单位为帧每秒。" + msgid "" "The refresh interval for the remote inspector's properties (in seconds). " "Lower values are more reactive, but may cause stuttering while the project is " @@ -41362,6 +53270,21 @@ msgstr "" "[code]res://[/code] 文件夹路径旁边的图标来切换拆分模式。\n" "[b]注意:[/b]当拆分模式被禁用(这是默认设置)时,该设置无效。" +msgid "" +"A comma separated list of unsupported file extensions to show in the " +"FileSystem dock, e.g. [code]\"ico,icns\"[/code]." +msgstr "" +"文件系统面板不支持显示的文件扩展名列表,用英文逗号分隔,例如 [code]\"ico," +"icns\"[/code]。" + +msgid "" +"A comma separated list of file extensions to consider as editable text files " +"in the FileSystem dock (by double-clicking on the files), e.g. [code]\"txt,md," +"cfg,ini,log,json,yml,yaml,toml,xml\"[/code]." +msgstr "" +"文件系统面板认为是(双击文件后)可编辑的文本文件的文件扩展名列表,用英文逗号分" +"隔,例如 [code]\"txt,md,cfg,ini,log,json,yml,yaml,toml,xml\"[/code]。" + msgid "" "The thumbnail size to use in the FileSystem dock (in pixels). See also " "[member filesystem/file_dialog/thumbnail_size]." @@ -41387,6 +53310,25 @@ msgstr "" "检查器停靠面板中子资源背景的着色强度。着色用于区分检查器中不同的子资源。值越" "高,背景颜色差异越明显。" +msgid "" +"If [code]true[/code], when a node is deleted with animation tracks " +"referencing it, a confirmation dialog appears before the tracks are deleted. " +"The dialog will appear even when using the \"Delete (No Confirm)\" shortcut." +msgstr "" +"如果为 [code]true[/code],则删除节点时如果存在引用该节点的动画轨道,就会在删除" +"轨道前显示确认对话框。即便使用“删除(无确认)”快捷键也会显示该对话框。" + +msgid "" +"If [code]true[/code], displays a confirmation dialog after left-clicking the " +"\"percent\" icon next to a node name in the Scene tree dock. When clicked, " +"this icon revokes the node's scene-unique name, which can impact the behavior " +"of scripts that rely on this scene-unique name due to identifiers not being " +"found anymore." +msgstr "" +"如果为 [code]true[/code],则会在左键单击场景树面板中节点名称旁的“百分号”图标后" +"显示确认对话框。点击图标会废除节点的场景唯一名称,由于无法在找到标识符,可能影" +"响对该场景唯一名称存在依赖的脚本的行为。" + msgid "" "If [code]true[/code], the scene tree dock will automatically unfold nodes " "when a node that has folded parents is selected." @@ -41401,6 +53343,14 @@ msgstr "" "如果为 [code]true[/code],则重新设置节点父级时创建的新节点,将位于所选节点的平" "均位置。" +msgid "" +"If [code]true[/code], the scene tree dock will only show nodes that match the " +"filter, without showing parents that don't. This settings can also be changed " +"in the Scene dock's top menu." +msgstr "" +"如果为 [code]true[/code],则场景树面板只会显示与筛选器匹配的节点,不会显示不匹" +"配的父节点。该设置也可以在“场景”面板的顶部菜单中更改。" + msgid "" "If [code]true[/code], the Create dialog (Create New Node/Create New Resource) " "will start with all its sections expanded. Otherwise, sections will be " @@ -41478,6 +53428,14 @@ msgstr "" "在 2D 编辑器中,绘制智能吸附线时使用的颜色。如果在 2D 编辑器视口顶部的“吸附选" "项”菜单中启用智能吸附,则移动 2D 节点时智能吸附线将自动显示。" +msgid "" +"If [code]true[/code], the 2D editor will snap to integer zoom values when not " +"holding the [kbd]Alt[/kbd] key. If [code]false[/code], this behavior is " +"swapped." +msgstr "" +"如果为 [code]true[/code],2D 编辑器将在不按住 [kbd]Alt[/kbd] 键的情况下吸附到" +"整数缩放值。如果为 [code]false[/code] 则交换这种行为。" + msgid "" "The color of the viewport border in the 2D editor. This border represents the " "viewport's size at the base resolution defined in the Project Settings. " @@ -41489,6 +53447,14 @@ msgstr "" "小。除非使用 [Camera2D] 节点,或者除非调整窗口大小并将拉伸模式设置为 " "[code]disabled[/code],否则放置在该边界之外的对象将不可见。" +msgid "" +"The factor to use when zooming in or out in the 2D editor. For example, " +"[code]1.1[/code] will zoom in by 10% with every step. If set to [code]2.0[/" +"code], zooming will only cycle through powers of two." +msgstr "" +"在 2D 编辑器中进行缩放时使用的系数。例如 [code]1.1[/code] 会按照每步 10% 缩" +"放。如果设为 [code]2.0[/code],则只会在二的幂之间循环。" + msgid "" "The default camera vertical field of view to use in the 3D editor (in " "degrees). The camera field of view can be adjusted on a per-scene basis using " @@ -41660,6 +53626,42 @@ msgstr "" "使栅格对渲染的要求更高。根据相机的位置,栅格可能不会完全可见,因为着色器用于逐" "渐淡化它。" +msgid "" +"If [code]true[/code], renders the grid on the XY plane in perspective view. " +"This can be useful for 3D side-scrolling games." +msgstr "" +"如果为 [code]true[/code],则在 XY 平面上渲染栅格,使用透视图。可用于 3D 横向卷" +"轴游戏。" + +msgid "" +"If [code]true[/code], renders the grid on the XZ plane in perspective view." +msgstr "如果为 [code]true[/code],则在 XZ 平面上渲染栅格,使用透视图。" + +msgid "" +"If [code]true[/code], renders the grid on the YZ plane in perspective view. " +"This can be useful for 3D side-scrolling games." +msgstr "" +"如果为 [code]true[/code],则在 YZ 平面上渲染栅格,使用透视图。可用于 3D 横向卷" +"轴游戏。" + +msgid "Opacity of the default gizmo for moving, rotating, and scaling 3D nodes." +msgstr "用于对 3D 节点进行移动、旋转、缩放的默认小工具的不透明度。" + +msgid "Size of the default gizmo for moving, rotating, and scaling 3D nodes." +msgstr "用于对 3D 节点进行移动、旋转、缩放的默认小工具的大小。" + +msgid "" +"If [code]true[/code], enables 3-button mouse emulation mode. This is useful " +"on laptops when using a trackpad.\n" +"When 3-button mouse emulation mode is enabled, the pan, zoom and orbit " +"modifiers can always be used in the 3D editor viewport, even when not holding " +"down any mouse button." +msgstr "" +"如果为 [code]true[/code],启用 3 键鼠标模拟模式。这在使用触控板的笔记本电脑上" +"很有用。\n" +"启用 3 键鼠标模拟模式后,即使未按住任何鼠标按钮,也始终可以在 3D 编辑器视口中" +"使用平移、缩放和视轨修饰键。" + msgid "" "If [code]true[/code], allows using the top row [kbd]0[/kbd]-[kbd]9[/kbd] keys " "to function as their equivalent numpad keys for 3D editor navigation. This " @@ -41683,6 +53685,28 @@ msgstr "" "如果为 [code]true[/code],则在 3D 编辑器中平移、视轨或使用自由观看模式时,反转" "鼠标垂直轴。" +msgid "" +"The mouse button that needs to be held down to orbit in the 3D editor " +"viewport." +msgstr "在 3D 编辑器视口中视轨时需要按住的鼠标按键。" + +msgid "" +"The mouse button that needs to be held down to pan in the 3D editor viewport." +msgstr "在 3D 编辑器视口中平移时需要按住的鼠标按键。" + +msgid "" +"If [code]true[/code], shows gizmos for moving and rotating the camera in the " +"bottom corners of the 3D editor's viewport. Useful for devices that use touch " +"screen." +msgstr "" +"如果为 [code]true[/code],则会在 3D 编辑器视口的下方角落处显示对相机进行移动和" +"旋转操作的小工具。适合触屏设备。" + +msgid "" +"If [code]true[/code], shows a small orientation gizmo in the top-right corner " +"of the 3D editor's viewports." +msgstr "如果为 [code]true[/code],则会在 3D 编辑器视口的右上角显示朝向小工具。" + msgid "" "If [code]true[/code], warps the mouse around the 3D viewport while panning in " "the 3D editor. This makes it possible to pan over a large area without having " @@ -41691,6 +53715,10 @@ msgstr "" "如果为 [code]true[/code],则会在 3D 编辑器中平移时,鼠标超出 3D 视口范围后将其" "传送到对侧。这样在大型区域中平移就不必先退出平移然后调整鼠标光标。" +msgid "" +"The mouse button that needs to be held down to zoom in the 3D editor viewport." +msgstr "在 3D 编辑器视口中进行缩放时需要按住的鼠标按键。" + msgid "" "The mouse cursor movement direction to use when zooming by moving the mouse. " "This does not affect zooming with the mouse wheel." @@ -41719,6 +53747,9 @@ msgstr "" "在 3D 编辑器中进行平移时要使用的惯性。更高的值会使相机启动和停止更慢,这看起来" "更流畅但会增加延迟。" +msgid "The mouse sensitivity to use when panning in the 3D editor." +msgstr "在 3D 编辑器中进行平移时的鼠标灵敏度。" + msgid "" "The inertia to use when zooming in the 3D editor. Higher values make the " "camera start and stop slower, which looks smoother but adds latency." @@ -41762,6 +53793,23 @@ msgid "" "custom [AABB]." msgstr "显示 [GeometryInstance3D] 自定义 [AABB] 的 AABB 小工具所使用的颜色。" +msgid "The 3D editor gizmo color for [Camera3D]s." +msgstr "[Camera3D] 对应的 3D 编辑器小工具的颜色。" + +msgid "" +"The 3D editor gizmo color for CSG nodes (such as [CSGShape3D] or [CSGBox3D])." +msgstr "" +"CSG 节点(例如 [CSGShape3D] 和 [CSGBox3D])对应的 3D 编辑器小工具的颜色。" + +msgid "The 3D editor gizmo color for [Decal] nodes." +msgstr "[Decal] 节点对应的 3D 编辑器小工具的颜色。" + +msgid "The 3D editor gizmo color for [FogVolume] nodes." +msgstr "[FogVolume] 节点对应的 3D 编辑器小工具的颜色。" + +msgid "The 3D editor gizmo color for the [GridMap] grid." +msgstr "[GridMap] 栅格对应的 3D 编辑器小工具的颜色。" + msgid "" "The color override to use for 3D editor gizmos if the [Node3D] in question is " "part of an instantiated scene file (from the perspective of the current " @@ -41773,6 +53821,92 @@ msgstr "" msgid "The 3D editor gizmo color for [Joint3D]s and [PhysicalBone3D]s." msgstr "用于 [Joint3D] 和 [PhysicalBone3D] 的 3D 编辑器小工具颜色。" +msgid "Color for representing [member Joint3D.node_a] for some [Joint3D] types." +msgstr "表示部分 [Joint3D] 类型中 [member Joint3D.node_a] 的颜色。" + +msgid "Color for representing [member Joint3D.node_b] for some [Joint3D] types." +msgstr "表示部分 [Joint3D] 类型中 [member Joint3D.node_b] 的颜色。" + +msgid "Color of lines displayed in baked [LightmapGI] node's grid." +msgstr "显示在烘焙 [LightmapGI] 节点栅格中的直线的颜色。" + +msgid "The 3D editor gizmo color used for [LightmapProbe] nodes." +msgstr "用于 [LightmapProbe] 节点的 3D 编辑器小工具的颜色。" + +msgid "The 3D editor gizmo color used for [OccluderInstance3D] nodes." +msgstr "用于 [OccluderInstance3D] 节点的 3D 编辑器小工具的颜色。" + +msgid "The 3D editor gizmo color used for [GPUParticlesAttractor3D] nodes." +msgstr "用于 [GPUParticlesAttractor3D] 节点的 3D 编辑器小工具的颜色。" + +msgid "The 3D editor gizmo color used for [GPUParticlesCollision3D] nodes." +msgstr "用于 [GPUParticlesCollision3D] 节点的 3D 编辑器小工具的颜色。" + +msgid "" +"The 3D editor gizmo color used for [CPUParticles3D] and [GPUParticles3D] " +"nodes." +msgstr "" +"用于 [CPUParticles3D] 和 [GPUParticles3D] 节点的 3D 编辑器小工具的颜色。" + +msgid "" +"The 3D editor gizmo color used for [Path3D] tilt circles, which indicate the " +"direction the [Curve3D] is tilted towards." +msgstr "" +"用于 [Path3D] 节点倾斜圈的 3D 编辑器小工具的颜色,倾斜圈表示 [Curve3D] 的倾斜" +"方向。" + +msgid "The 3D editor gizmo color used for [ReflectionProbe] nodes." +msgstr "用于 [ReflectionProbe] 节点的 3D 编辑器小工具的颜色。" + +msgid "" +"The 3D editor gizmo color used for the currently selected [Skeleton3D] bone." +msgstr "用于 [Skeleton3D] 中当前选中骨骼的 3D 编辑器小工具的颜色。" + +msgid "The 3D editor gizmo color used for [Skeleton3D] nodes." +msgstr "用于 [Skeleton3D] 节点的 3D 编辑器小工具的颜色。" + +msgid "The 3D editor gizmo color used for [SpringBoneCollision3D] nodes." +msgstr "用于 [SpringBoneCollision3D] 节点的 3D 编辑器小工具的颜色。" + +msgid "" +"The 3D editor gizmo color used for [SpringBoneCollision3D] nodes with inside " +"mode." +msgstr "" +"用于启用了内部模式的 [SpringBoneCollision3D] 节点的 3D 编辑器小工具的颜色。" + +msgid "The 3D editor gizmo color used for [SpringBoneSimulator3D] nodes." +msgstr "用于 [SpringBoneSimulator3D] 节点的 3D 编辑器小工具的颜色。" + +msgid "" +"The 3D editor gizmo color used for [AudioStreamPlayer3D]'s emission angle." +msgstr "用于 [AudioStreamPlayer3D] 节点发射角的 3D 编辑器小工具的颜色。" + +msgid "" +"The 3D editor gizmo color used for [VisibleOnScreenNotifier3D] and " +"[VisibleOnScreenEnabler3D] nodes." +msgstr "" +"用于 [VisibleOnScreenNotifier3D] 和 [VisibleOnScreenEnabler3D] 节点的 3D 编辑" +"器小工具的颜色。" + +msgid "The 3D editor gizmo color used for [VoxelGI] nodes." +msgstr "用于 [VoxelGI] 节点的 3D 编辑器小工具的颜色。" + +msgid "The length of [Skeleton3D] bone gizmos in the 3D editor." +msgstr "3D 编辑器中 [Skeleton3D] 骨骼小工具的长度。" + +msgid "" +"The shape of [Skeleton3D] bone gizmos in the 3D editor. [b]Wire[/b] is a thin " +"line, while [b]Octahedron[/b] is a set of lines that represent a thicker " +"hollow line pointing in a specific direction (similar to most 3D animation " +"software)." +msgstr "" +"3D 编辑器中 [Skeleton3D] 骨骼小工具的形状。[b]Wire[/b] 是细线,而 " +"[b]Octahedron[/b] 则是一组线条,表示一个指向特定方向的较粗的空心线(与大多数 " +"3D 动画软件类似)。" + +msgid "Size of the disk gizmo displayed when editing [Path3D]'s tilt handles." +msgstr "编辑 [Path3D] 的倾斜手柄时显示的圆盘小工具的大小。" + msgid "" "If [code]true[/code], automatically updates animation tracks' target paths " "when renaming or reparenting nodes in the Scene tree dock." @@ -41818,11 +53952,17 @@ msgid "" "editor's onion skinning feature." msgstr "调制颜色,用于在动画编辑器的洋葱皮功能中显示“过去”帧。" +msgid "Minimum width of GridMap's mesh palette side panel." +msgstr "GridMap 网格调色板侧边面板的最小宽度。" + msgid "" "The maximum distance at which tiles can be placed on a GridMap, relative to " "the camera position (in 3D units)." msgstr "可以在 GridMap 上放置图块的最大距离,相对于相机位置(使用 3D 单位)。" +msgid "Texture size of mesh previews generated for GridMap's MeshLibrary." +msgstr "为 GridMap 的 MeshLibrary 生成的网格预览纹理的大小。" + msgid "" "The panning speed when using the mouse wheel or touchscreen events in the 2D " "editor. This setting does not apply to panning by holding down the middle or " @@ -42035,6 +54175,25 @@ msgstr "" "在可视着色器 uniform 中用于端口预览的大小(通过点击输出旁边的“眼睛”图标进行切" "换)。该值以像素为单位且以 100% 缩放时的值定义,并将随缩放自动缩放。" +msgid "" +"Path to the SCP (secure copy) executable (used for remote deploy to desktop " +"platforms). If left empty, the editor will attempt to run [code]scp[/code] " +"from [code]PATH[/code].\n" +"[b]Note:[/b] SCP is not the same as SFTP. Specifying the SFTP executable here " +"will not work." +msgstr "" +"SCP(安全复制)可执行文件的路径(用于向桌面平台进行远程部署)。如果留空,则编" +"辑器会尝试根据 [code]PATH[/code] 运行 [code]scp[/code]。\n" +"[b]注意:[/b]SCP 与 SFTP 不同。在此处指定 SFTP 可执行文件无效。" + +msgid "" +"Path to the SSH executable (used for remote deploy to desktop platforms). If " +"left empty, the editor will attempt to run [code]ssh[/code] from [code]PATH[/" +"code]." +msgstr "" +"SSH 可执行文件的路径(用于向桌面平台进行远程部署)。如果留空,则编辑器会尝试根" +"据 [code]PATH[/code] 运行 [code]ssh[/code]。" + msgid "" "The folder where projects should be scanned for (recursively), in a way " "similar to the project manager's [b]Scan[/b] button. This can be set to the " @@ -42176,6 +54335,68 @@ msgstr "" "编辑器的文件对话框中使用的缩略图大小(单位为像素)。另请参阅 [member docks/" "filesystem/thumbnail_size]。" +msgid "" +"Password used for file server when exporting project with remote file system." +msgstr "导出使用远程文件系统的项目时,文件服务器的密码。" + +msgid "" +"Port used for file server when exporting project with remote file system." +msgstr "导出使用远程文件系统的项目时,文件服务器的端口。" + +msgid "" +"The path to the Blender executable used for converting the Blender 3D scene " +"files [code].blend[/code] to glTF 2.0 format during import. Blender 3.0 or " +"later is required.\n" +"To enable this feature for your specific project, use [member ProjectSettings." +"filesystem/import/blender/enabled].\n" +"If this setting is empty, Blender's default paths will be detected and used " +"automatically if present in this order:\n" +"[b]Windows:[/b]\n" +"[codeblock]\n" +"- C:\\Program Files\\Blender Foundation\\blender.exe\n" +"- C:\\Program Files (x86)\\Blender Foundation\\blender.exe\n" +"[/codeblock]\n" +"[b]macOS:[/b]\n" +"[codeblock]\n" +"- /opt/homebrew/bin/blender\n" +"- /opt/local/bin/blender\n" +"- /usr/local/bin/blender\n" +"- /usr/local/opt/blender\n" +"- /Applications/Blender.app/Contents/MacOS/Blender\n" +"[/codeblock]\n" +"[b]Linux/*BSD:[/b]\n" +"[codeblock]\n" +"- /usr/bin/blender\n" +"- /usr/local/bin/blender\n" +"- /opt/blender/bin/blender\n" +"[/codeblock]" +msgstr "" +"Blender 可执行文件的路径,用于在导入时将 Blender 3D 场景文件 [code].blend[/" +"code] 转换为 glTF 2.0 格式。必须是 Blender 3.0 或后续版本。\n" +"针对特定项目启用该功能请使用 [member ProjectSettings.filesystem/import/" +"blender/enabled]。\n" +"如果将该设置留空,则会检测 Blender 的默认位置,如果存在就会自动使用,检测顺序" +"如下:\n" +"[b]Windows:[/b]\n" +"[codeblock]\n" +"- C:\\Program Files\\Blender Foundation\\blender.exe\n" +"- C:\\Program Files (x86)\\Blender Foundation\\blender.exe\n" +"[/codeblock]\n" +"[b]macOS:[/b]\n" +"[codeblock]\n" +"- /opt/homebrew/bin/blender\n" +"- /opt/local/bin/blender\n" +"- /usr/local/bin/blender\n" +"- /usr/local/opt/blender\n" +"- /Applications/Blender.app/Contents/MacOS/Blender\n" +"[/codeblock]\n" +"[b]Linux/*BSD:[/b]\n" +"[codeblock]\n" +"- /usr/bin/blender\n" +"- /usr/local/bin/blender\n" +"- /opt/blender/bin/blender\n" +"[/codeblock]" + msgid "" "The port number used for Remote Procedure Call (RPC) communication with " "Godot's created process of the blender executable.\n" @@ -42224,6 +54445,41 @@ msgstr "" "[b]注意:[/b]在 Windows 上,该功能可能会与某些防病毒程序产生负面的交互。在这种" "情况下,可能必须将其设置为 [code]false[/code],以防止出现文件锁定问题。" +msgid "" +"If set to [code]Adaptive[/code], the dialog opens in list view or grid view " +"depending on the requested type. If set to [code]Last Used[/code], the " +"display mode will always open the way you last used it." +msgstr "" +"如果设置为 [code]Adaptive[/code],对话框将根据请求的类型以列表视图或网格视图打" +"开。如果设置为 [code]Last Used[/code],则显示模式将始终以上次使用的方式打开。" + +msgid "If [code]true[/code], fuzzy matching of search tokens is allowed." +msgstr "如果为 [code]true[/code],则允许对搜索内容进行模糊匹配。" + +msgid "" +"If [code]true[/code], results will include files located in the [code]addons[/" +"code] folder." +msgstr "" +"如果为 [code]true[/code],则结果中不包含位于 [code]addons[/code] 文件夹中的文" +"件。" + +msgid "" +"The number of allowed missed query characters in a match, if fuzzy matching " +"is enabled. For example, with the default value of 2, [code]foobar[/code] " +"would match [code]foobur[/code] and [code]foob[/code] but not [code]foo[/" +"code]." +msgstr "" +"启用模糊匹配时,匹配中允许缺失的查询字符的数量。例如使用默认值 2 时," +"[code]foobar[/code] 能够匹配 [code]foobur[/code] 和 [code]foob[/code],但无法" +"匹配 [code]foo[/code]。" + +msgid "Maximum number of matches to show in dialog." +msgstr "对话框中显示的最大匹配数。" + +msgid "" +"If [code]true[/code], results will be highlighted with their search matches." +msgstr "如果为 [code]true[/code],则搜索结果中会将匹配内容高亮。" + msgid "" "The path to the directory containing the Open Image Denoise (OIDN) " "executable, used optionally for denoising lightmaps. It can be downloaded " @@ -42387,6 +54643,13 @@ msgstr "" "翻译由社区提供。如果发现错误,[url=$DOCS_URL/contributing/documentation/" "editor_and_docs_localization.html]请在 Weblate 上为编辑器翻译作出贡献![/url]" +msgid "" +"The preferred monitor to display the editor. If [b]Auto[/b], the editor will " +"remember the last screen it was displayed on across restarts." +msgstr "" +"用于显示编辑器的首选显示器。如果为 [b]Auto[/b],则编辑器重启后会记住上一次显示" +"的屏幕。" + msgid "" "Expanding main editor window content to the title, if supported by " "[DisplayServer]. See [constant DisplayServer.WINDOW_FLAG_EXTEND_TO_TITLE].\n" @@ -42396,6 +54659,19 @@ msgstr "" "DisplayServer.WINDOW_FLAG_EXTEND_TO_TITLE]。\n" "专用于 macOS 平台。" +msgid "" +"If set to [code]true[/code], MSDF font rendering will be used for the visual " +"shader graph editor. You may need to set this to [code]false[/code] when " +"using a custom main font, as some fonts will look broken due to the use of " +"self-intersecting outlines in their font data. Downloading the font from the " +"font maker's official website as opposed to a service like Google Fonts can " +"help resolve this issue." +msgstr "" +"如果为 [code]true[/code],则可视化着色器图编辑器会使用 MSDF 字体渲染。使用自定" +"义主字体时可能需要将其设置为 [code]false[/code],因为有些字体的数据中会使用自" +"我交叉的轮廓,导致显示问题。从字体制作商的官方网站下载字体,而不是使用像 " +"Google Fonts 这样的服务,可以帮助解决此问题。" + msgid "" "FreeType's font anti-aliasing mode used to render the editor fonts. Most " "fonts are not designed to look good with anti-aliasing disabled, so it's " @@ -42614,6 +54890,32 @@ msgstr "" "code],那么更新旋转图会无视该设置,[i]永远不会[/i]显示。这么做是为了避免与现实" "场景中导致重绘的情况混淆。" +msgid "" +"If [code]true[/code], embed modal windows such as docks inside the main " +"editor window. When single-window mode is enabled, tooltips will also be " +"embedded inside the main editor window, which means they can't be displayed " +"outside of the editor window. Single-window mode can be faster as it does not " +"need to create a separate window for every popup and tooltip, which can be a " +"slow operation depending on the operating system and rendering method in " +"use.\n" +"This is equivalent to [member ProjectSettings.display/window/subwindows/" +"embed_subwindows] in the running project, except the setting's value is " +"inverted.\n" +"[b]Note:[/b] To query whether the editor can use multiple windows in an " +"editor plugin, use [method EditorInterface.is_multi_window_enabled] instead " +"of querying the value of this editor setting.\n" +"[b]Note:[/b] If [code]true[/code], game embedding is disabled." +msgstr "" +"如果为 [code]true[/code],则会在主编辑器窗口中嵌入停靠面板等模态窗口。当启用单" +"窗口模式时,工具提示也会被嵌入到主编辑器窗口中,这意味着它们无法在编辑器窗口之" +"外显示。单窗口模式可能更快,因为无须为每个弹出项和工具提示都创建一个单独的窗" +"口,根据操作系统和所使用的渲染方法的不同,创建窗口可能是很慢的操作。\n" +"等价于项目运行时的 [member ProjectSettings.display/window/subwindows/" +"embed_subwindows],但是取值相反。\n" +"[b]注意:[/b]要查询编辑器是否可以在编辑器插件中使用多个窗口,请使用 [method " +"EditorInterface.is_multi_window_enabled] 而不是查询该编辑器设置的值。\n" +"[b]注意:[/b]如果为 [code]true[/code],则会禁用游戏内嵌。" + msgid "Editor UI default layout direction." msgstr "编辑器 UI 默认布局方向。" @@ -42682,6 +54984,21 @@ msgstr "" "[b]注意:[/b]除[b]启用[/b]之外的垂直同步模式,仅支持 Forward+ 和 Mobile 渲染方" "式,不支持 Compatibility。" +msgid "" +"If [code]true[/code], when extending a script, the global class name of the " +"script is inserted in the script creation dialog, if it exists. If " +"[code]false[/code], the script's file path is always inserted." +msgstr "" +"如果为 [code]true[/code],则扩展脚本时如果脚本存在全局类名,就会在脚本创建对话" +"框中插入该类名。如果为 [code]false[/code] 则始终插入脚本的文件路径。" + +msgid "" +"If [code]true[/code], the Scene dock will display buttons to quickly add a " +"root node to a newly created scene." +msgstr "" +"如果为 [code]true[/code],则“场景”面板会显示为新创建的场景快速添加根节点的按" +"钮。" + msgid "" "If [code]true[/code], automatically expands property groups in the Inspector " "dock when opening a scene that hasn't been opened previously. If [code]false[/" @@ -42731,6 +55048,17 @@ msgstr "" "[b]注意:[/b]要在“项目设置”和“编辑器设置”中显示翻译后的设置名称,请改用 " "[member interface/editor/localize_settings]。" +msgid "" +"If [code]true[/code], add a margin around Array, Dictionary, and Resource " +"Editors that are not already colored.\n" +"[b]Note:[/b] If [member interface/inspector/nested_color_mode] is set to " +"[b]Containers & Resources[/b] this parameter will have no effect since those " +"editors will already be colored." +msgstr "" +"如果为 [code]true[/code],则在未着色的数组、字典、资源编辑器周围添加边距。\n" +"[b]注意:[/b]如果 [member interface/inspector/nested_color_mode] 为 " +"[b]Containers & Resources[/b],则该参数无效,因为这些编辑器都已着色。" + msgid "" "If [code]true[/code], forces all property groups to be expanded in the " "Inspector dock and prevents collapsing them." @@ -42812,6 +55140,23 @@ msgstr "" "如果为 [code]true[/code],则在 [Font] 编辑器中,显示被字体文件标记为 " "[code]hidden[/code] 的 OpenType 特性。" +msgid "" +"If [code]true[/code], multiple window support in editor is enabled. The " +"following panels can become dedicated windows (i.e. made floating): Docks, " +"Script editor, Shader editor, and Game Workspace.\n" +"[b]Note:[/b] When [member interface/editor/single_window_mode] is [code]true[/" +"code], the multi window support is always disabled.\n" +"[b]Note:[/b] To query whether the editor can use multiple windows in an " +"editor plugin, use [method EditorInterface.is_multi_window_enabled] instead " +"of querying the value of this editor setting." +msgstr "" +"如果为 [code]true[/code],将启用编辑器的多窗口支持。以下面板可以成为独立窗口" +"(即浮动):停靠面板、脚本编辑器、着色器编辑器、游戏工作区。\n" +"[b]注意:[/b][member interface/editor/single_window_mode] 为 [code]true[/" +"code] 时,多窗口支持始终处于禁用状态。\n" +"[b]注意:[/b]要查询编辑器是否可以在编辑器插件中使用多个窗口,请使用 [method " +"EditorInterface.is_multi_window_enabled] 而不是查询该编辑器设置的值。" + msgid "" "If [code]true[/code], when panels are made floating they will be maximized.\n" "If [code]false[/code], when panels are made floating their position and size " @@ -42982,6 +55327,13 @@ msgstr "" "预设要使用的编辑器主题间距。另见 [member interface/theme/base_spacing] 和 " "[member interface/theme/additional_spacing]。" +msgid "" +"If [code]true[/code], set accent color based on system settings.\n" +"[b]Note:[/b] This setting is only effective on Windows, MacOS, and Android." +msgstr "" +"如果为 [code]true[/code],则根据系统设置来设置主题色。\n" +"[b]注意:[/b]该设置仅在 Windows、MacOS 和 Android 上有效。" + msgid "" "If [code]true[/code], long press on touchscreen is treated as right click.\n" "[b]Note:[/b] Defaults to [code]true[/code] on touchscreen devices." @@ -43049,6 +55401,16 @@ msgstr "" "向 Godot 网站和托管资产库中资产的第三方平台发出 HTTP 请求,有助于减轻对隐私的" "担忧。" +msgid "" +"The address to listen to when starting the remote debugger. This can be set " +"to this device's local IP address to allow external clients to connect to the " +"remote debugger (instead of restricting the remote debugger to connections " +"from [code]localhost[/code])." +msgstr "" +"启动远程调试器时要监听的地址。可以将其设置为该设备的本地 IP 地址,从而允许外部" +"客户端连接到远程调试器(而不是限制远程调试器仅接受来自 [code]localhost[/code] " +"的连接)。" + msgid "" "The port to listen to when starting the remote debugger. Godot will try to " "use port numbers above the configured number if the configured number is " @@ -43091,6 +55453,16 @@ msgstr "" "留空,将使用[url=https://github.com/godotengine/godot/blob/master/thirdparty/" "certs/ca-certificates.crt]包含的 Mozilla 证书包[/url]。" +msgid "" +"If [code]true[/code], enable TLSv1.3 negotiation.\n" +"[b]Note:[/b] Only supported when using Mbed TLS 3.0 or later (Linux " +"distribution packages may be compiled against older system Mbed TLS " +"packages), otherwise the maximum supported TLS version is always TLSv1.2." +msgstr "" +"如果为 [code]true[/code],则启用 TLSv1.3 协商。\n" +"[b]注意:[/b]仅在使用 Mbed TLS 3.0 或更高版本时支持(Linux 发行版包可能是针对" +"较旧的系统 Mbed TLS 包编译的),否则最大支持的 TLS 版本始终为 TLSv1.2。" + msgid "" "The renderer type that will be checked off by default when creating a new " "project. Accepted strings are \"forward_plus\", \"mobile\" or " @@ -43127,6 +55499,22 @@ msgstr "" "游戏项目的启动速度,但它可以运行带有未保存的更改的游戏项目。(未保存的更改在正" "在运行的项目中将不可见。)" +msgid "" +"The action to execute on the bottom panel when running the project.\n" +"[b]Note:[/b] This option won't do anything if the bottom panel switching is " +"locked using the pin button in the corner of the bottom panel." +msgstr "" +"运行项目时要对底部面板执行的动作。\n" +"[b]注意:[/b]使用底部面板角落的固定按钮锁定底部面板时,该选项不起作用。" + +msgid "" +"The action to execute on the bottom panel when stopping the project.\n" +"[b]Note:[/b] This option won't do anything if the bottom panel switching is " +"locked using the pin button in the corner of the bottom panel." +msgstr "" +"停止项目时要对底部面板执行的动作。\n" +"[b]注意:[/b]使用底部面板角落的固定按钮锁定底部面板时,该选项不起作用。" + msgid "" "If [code]true[/code], the editor will clear the Output panel when running the " "project." @@ -43150,6 +55538,40 @@ msgstr "" "如果为 [code]true[/code],在 Linux/BSD 上,编辑器将首先检查 Wayland 而不是 X11" "(如果可用)。" +msgid "" +"Specifies how the Play window is launched relative to the Android editor.\n" +"- [b]Auto (based on screen size)[/b] (default) will automatically choose how " +"to launch the Play window based on the device and screen metrics. Defaults to " +"[b]Same as Editor[/b] on phones and [b]Side-by-side with Editor[/b] on " +"tablets.\n" +"- [b]Same as Editor[/b] will launch the Play window in the same window as the " +"Editor.\n" +"- [b]Side-by-side with Editor[/b] will launch the Play window side-by-side " +"with the Editor window.\n" +"[b]Note:[/b] Only available in the Android editor." +msgstr "" +"指定游玩窗口相对于 Android 编辑器的启动方式。\n" +"- [b]Auto (based on screen size)[/b](默认)根据设备和屏幕尺寸自动选择启动游玩" +"窗口的方式。默认手机上为 [b]Same as Editor[/b]、平板上为 [b]Side-by-side with " +"Editor[/b]。\n" +"- [b]Same as Editor[/b] 在编辑器窗口中启动游玩窗口。\n" +"- [b]Side-by-side with Editor[/b] 与编辑器窗口并列启动游玩窗口。\n" +"[b]注意:[/b]仅在 Android 编辑器中可用。" + +msgid "" +"Overrides game embedding setting for all newly opened projects. If enabled, " +"game embedding settings are not saved." +msgstr "为所有新打开的项目覆盖游戏内嵌设置。启用后,不会保存游戏内嵌设置。" + +msgid "" +"The window mode to use to display the project when starting the project from " +"the editor.\n" +"[b]Note:[/b] Game embedding is not available for \"Force Maximized\" or " +"\"Force Fullscreen.\"" +msgstr "" +"从编辑器启动项目时,用于显示项目的窗口模式。\n" +"[b]注意:[/b]“Force Maximized”和“Force Fullscreen”不支持游戏内嵌。" + msgid "" "The custom position to use when starting the project from the editor (in " "pixels from the top-left corner). Only effective if [member run/" @@ -43311,6 +55733,16 @@ msgstr "" "行与行之间要增加的空间(像素)。更大的行间距可以帮助提高可读性,但代价是在屏幕" "上显示更少的行。" +msgid "" +"If [code]true[/code], documentation tooltips will appear when hovering over a " +"symbol." +msgstr "如果为 [code]true[/code],则悬停在符号上时会出现文档工具提示。" + +msgid "" +"If [code]true[/code], tool scripts will be automatically soft-reloaded after " +"they are saved." +msgstr "如果为 [code]true[/code],则工具脚本在保存时会自动进行软重载。" + msgid "" "If [code]true[/code], automatically reloads scripts in the editor when they " "have been modified and saved by external editors." @@ -43334,6 +55766,13 @@ msgstr "" "如果为 [code]true[/code],则在保存脚本时转换缩进,以匹配脚本编辑器的缩进设置。" "另见 [member text_editor/behavior/indent/type]。" +msgid "" +"If [code]true[/code], opening a scene automatically opens the script attached " +"to the root node, or the topmost node if the root has no script." +msgstr "" +"如果为 [code]true[/code],则打开场景时会自动打开根节点上附加的脚本,如果根节点" +"没有脚本则为最靠上的节点。" + msgid "" "If [code]true[/code], reopens scripts that were opened in the last session " "when the editor is reopened on a given project." @@ -43361,6 +55800,13 @@ msgstr "" "制表符和空格字符。由于这些没有任何实际用途,因此可以并且应该将其移除,以减少版" "本控制差异的干扰。" +msgid "" +"If [code]true[/code], copying or cutting without a selection is performed on " +"all lines with a caret. Otherwise, copy and cut require a selection." +msgstr "" +"如果为 [code]true[/code],未选中内容时进行复制或剪切会对光标所在行进行操作。否" +"则需要先选中才能进行复制和剪切。" + msgid "" "If [code]true[/code], automatically indents code when pressing the " "[kbd]Enter[/kbd] key based on blocks above the new line." @@ -43540,6 +55986,19 @@ msgstr "" "类型提示类似 [code]-> void[/code] 和 [code]: int[/code] 。如果为 [code]true[/" "code],则新创建的脚本也会自动将类型提示添加到其方法参数和返回类型中。" +msgid "" +"If [code]true[/code], automatically inserts the matching closing brace when " +"the opening brace is inserted by typing or autocompletion. Also automatically " +"removes the closing brace when pressing [kbd]Backspace[/kbd] on the opening " +"brace. This includes brackets ([code]()[/code], [code][][/code], [code]{}[/" +"code]), string quotation marks ([code]''[/code], [code]\"\"[/code]), and " +"comments ([code]/**/[/code]) if the language supports it." +msgstr "" +"如果为 [code]true[/code],则通过打字或自动补全插入左括号时会自动插入相应的右括" +"号。对左括号按 [kbd]Backspace[/kbd] 键也会自动移除右括号。包括括号([code]()[/" +"code]、[code][][/code]、[code]{}[/code])字符串引号([code]''[/code]、" +"[code]\"\"[/code])语言支持注释的话还包含注释([code]/**/[/code])。" + msgid "" "The delay in seconds after which autocompletion suggestions should be " "displayed when the user stops typing." @@ -43575,6 +56034,15 @@ msgid "" "when the user stops typing." msgstr "用户停止输入后,脚本编辑器应检查错误的延迟时间(以秒为单位)。" +msgid "" +"The delay used instead of [member text_editor/completion/idle_parse_delay], " +"when the parser has found errors. A lower value should feel more responsive " +"while fixing code, but may cause notable stuttering and increase CPU usage." +msgstr "" +"解析器发现错误时的延迟,代替 [member text_editor/completion/" +"idle_parse_delay]。较低的数值在修复代码时应该感觉更灵敏,但可能会导致明显的卡" +"顿并增加 CPU 使用率。" + msgid "" "If [code]true[/code], the code completion tooltip will appear below the " "current line unless there is no space on screen below the current line. If " @@ -43595,6 +56063,31 @@ msgstr "" "code],则执行带双引号的字符串自动补全(则与 [url=$DOCS_URL/tutorials/" "scripting/gdscript/gdscript_styleguide.html]GDScript 风格指南[/url]一致)。" +msgid "" +"The command-line arguments to pass to the external text editor that is run " +"when [member text_editor/external/use_external_editor] is [code]true[/code]. " +"See also [member text_editor/external/exec_path]." +msgstr "" +"运行外部文本编辑器时传递的命令行参数,需要 [member text_editor/external/" +"use_external_editor] 为 [code]true[/code]。另见 [member text_editor/external/" +"exec_path]。" + +msgid "" +"The path to the text editor executable used to edit text files if [member " +"text_editor/external/use_external_editor] is [code]true[/code]." +msgstr "" +"用于编辑文本文件的文本编辑器可执行文件路径,需要 [member text_editor/external/" +"use_external_editor] 为 [code]true[/code]。" + +msgid "" +"If [code]true[/code], uses an external editor instead of the built-in Script " +"Editor. See also [member text_editor/external/exec_path] and [member " +"text_editor/external/exec_flags]." +msgstr "" +"如果为 [code]true[/code],则会使用外部编辑器,不使用内置脚本编辑器。另见 " +"[member text_editor/external/exec_path] 和 [member text_editor/external/" +"exec_flags]。" + msgid "" "Controls which multi-line code blocks should be displayed in the editor help. " "This setting does not affect single-line code literals in the editor help." @@ -43623,6 +56116,49 @@ msgstr "" "如果为 [code]true[/code],则在编辑器帮助的左侧显示目录(编辑脚本时出现成员概览" "的位置)。" +msgid "" +"If [code]true[/code], the script's method list in the Script Editor is sorted " +"alphabetically." +msgstr "如果为 [code]true[/code],则脚本编辑器中脚本的方法列表按字母表排序。" + +msgid "" +"If [code]true[/code], class reference pages are grouped together at the " +"bottom of the Script Editor's script list." +msgstr "" +"如果为 [code]true[/code],则脚本编辑器的脚本列表会将参考页统一放置到底部。" + +msgid "" +"If [code]true[/code], the scripts that are used by the current scene are " +"highlighted in the Script Editor's script list." +msgstr "" +"如果为 [code]true[/code],则脚本编辑器的脚本列表中会高亮显示当前场景所使用的脚" +"本。" + +msgid "" +"Specifies how script paths should be displayed in Script Editor's script " +"list. If using the \"Name\" option and some scripts share the same file name, " +"more parts of their paths are revealed to avoid conflicts." +msgstr "" +"指定脚本路径在脚本编辑器的脚本列表中应如何显示。如果使用“Name”选项,并且某些脚" +"本的文件名相同,则会展示出路径中更多的部分,从而避免冲突。" + +msgid "" +"If [code]true[/code], the names of recently opened scripts in the Script " +"Editor are highlighted with the accent color, with its intensity based on how " +"recently they were opened." +msgstr "" +"如果 [code]true[/code],则脚本编辑器中最近打开的脚本名称将以强调颜色突出显示," +"强度取决于距离最近一次打开有多近。" + +msgid "" +"How many script names can be highlighted at most, if [member text_editor/" +"script_list/script_temperature_enabled] is [code]true[/code]. Scripts older " +"than this value use the default font color." +msgstr "" +"如果 [member text_editor/script_list/script_temperature_enabled] 为 " +"[code]true[/code],最多可以突出显示多少个脚本名称。超过此值的脚本将使用默认字" +"体颜色。" + msgid "" "If [code]true[/code], displays an overview of the current script's member " "variables and functions at the left of the script editor. See also [member " @@ -43646,6 +56182,9 @@ msgstr "" "[b]注意:[/b]仅当 [member text_editor/script_list/show_members_overview] 为 " "[code]true[/code] 时有效。" +msgid "Specifies sorting used for Script Editor's open script list." +msgstr "指定脚本编辑器打开脚本列表的排序方式。" + msgid "" "The syntax theme to use in the script editor.\n" "You can save your own syntax theme from your current settings by using " @@ -43884,6 +56423,22 @@ msgstr "" "脚本编辑器中,通过选择单词而高亮显示的颜色。仅当 [member text_editor/" "appearance/caret/highlight_all_occurrences] 为 [code]true[/code] 时可见。" +msgid "The vertical line separation used in text editors, in pixels." +msgstr "文本编辑器中使用的纵向行间距,单位为像素。" + +msgid "" +"Path to private SSH key file for the editor's Version Control integration " +"credentials." +msgstr "指向 SSH 私钥文件的路径,用于编辑器的版本控制集成认证。" + +msgid "" +"Path to public SSH key file for the editor's Version Control integration " +"credentials." +msgstr "指向 SSH 公钥文件的路径,用于编辑器的版本控制集成认证。" + +msgid "Default username for editor's Version Control integration." +msgstr "用于编辑器的版本控制集成的默认用户名。" + msgid "Emitted after any editor setting has changed." msgstr "在编辑器设置改变后触发。" @@ -43912,6 +56467,17 @@ msgstr "" "上/向下箭头,类似于 [SpinBox]。如果 [member Range.step] 值不是 [code]1[/" "code],则会显示一个滑块。" +msgid "" +"If [code]true[/code], the [EditorSpinSlider] is considered to be editing an " +"integer value. If [code]false[/code], the [EditorSpinSlider] is considered to " +"be editing a floating-point value. This is used to determine whether a slider " +"should be drawn. The slider is only drawn for floats; integers use up-down " +"arrows similar to [SpinBox] instead." +msgstr "" +"如果为 [code]true[/code],则 [EditorSpinSlider] 会认为正在编辑整数值。如果为 " +"[code]false[/code],则 [EditorSpinSlider] 会认为正在编辑浮点数值。用于确定是否" +"绘制滑杆。只有浮点数才会绘制滑杆;整数使用的是类似于 [SpinBox] 的上下箭头。" + msgid "If [code]true[/code], the slider will not draw background." msgstr "如果为 [code]true[/code],则滑块不会绘制背景。" @@ -43938,12 +56504,23 @@ msgstr "当微调器/滑块被抓取时发出。" msgid "Emitted when the spinner/slider is ungrabbed." msgstr "当微调器/滑块取消抓取时发出。" +msgid "Emitted when the updown button is pressed." +msgstr "当按下上下按钮时发出。" + msgid "Emitted when the value form gains focus." msgstr "值表单获得焦点时发出。" msgid "Emitted when the value form loses focus." msgstr "值表单丢失焦点时发出。" +msgid "Single texture representing both the up and down buttons." +msgstr "代表上下按钮的单张纹理。" + +msgid "" +"Single texture representing both the up and down buttons, when the control is " +"readonly or disabled." +msgstr "控件只读或禁用时,代表上下按钮的单张纹理。" + msgid "Base class for [SyntaxHighlighter] used by the [ScriptEditor]." msgstr "[ScriptEditor] 所使用的 [SyntaxHighlighter] 的基类。" @@ -43967,6 +56544,35 @@ msgid "" "Virtual method which can be overridden to return the supported language names." msgstr "虚函数,可以在重写后返回所支持的语言名称。" +msgid "Manages toast notifications within the editor." +msgstr "管理编辑器中的 Toast 消息框通知。" + +msgid "" +"This object manages the functionality and display of toast notifications " +"within the editor, ensuring timely and informative alerts are presented to " +"users.\n" +"[b]Note:[/b] This class shouldn't be instantiated directly. Instead, access " +"the singleton using [method EditorInterface.get_editor_toaster]." +msgstr "" +"这个对象管理编辑器中的 Toast 消息框通知,可以确保将时效性较高的通知性警告展现" +"给用户。\n" +"[b]注意:[/b]这个类不应该直接实例化。请改用 [method EditorInterface." +"get_editor_toaster] 访问单例。" + +msgid "Pushes a toast notification to the editor for display." +msgstr "将需要显示的 Toast 通知推送给编辑器。" + +msgid "Toast will display with an INFO severity." +msgstr "显示 Toast 时使用 INFO 严重度。" + +msgid "" +"Toast will display with a WARNING severity and have a corresponding color." +msgstr "显示 Toast 时使用 WARNING 严重度,有与之对应的颜色。" + +msgid "" +"Toast will display with an ERROR severity and have a corresponding color." +msgstr "显示 Toast 时使用 ERROR 严重度,有与之对应的颜色。" + msgid "" "Plugin for adding custom parsers to extract strings that are to be translated " "from custom files (.csv, .json etc.)." @@ -44078,6 +56684,40 @@ msgstr "" "为“撤消”注册一个引用,如果“撤消”历史丢失,则该引用将被擦除。这主要用于通" "过“做”调用(而不是“撤销”调用!)而移除的节点。" +msgid "" +"Clears the given undo history. You can clear history for a specific scene, " +"global history, or for all scenes at once if [param id] is [constant " +"INVALID_HISTORY].\n" +"If [param increase_version] is [code]true[/code], the undo history version " +"will be increased, marking it as unsaved. Useful for operations that modify " +"the scene, but don't support undo.\n" +"[codeblock]\n" +"var scene_root = EditorInterface.get_edited_scene_root()\n" +"var undo_redo = EditorInterface.get_editor_undo_redo()\n" +"undo_redo.clear_history(undo_redo.get_object_history_id(scene_root))\n" +"[/codeblock]\n" +"[b]Note:[/b] If you want to mark an edited scene as unsaved without clearing " +"its history, use [method EditorInterface.mark_scene_as_unsaved] instead." +msgstr "" +"清空给定的撤销历史。你可以只清空特定场景的历史或全局历史,如果 [param id] 为 " +"[constant INVALID_HISTORY] 则会清空所有场景的历史。\n" +"如果 [param increase_version] 为 [code]true[/code],则会增加撤销历史版本并将其" +"设为未保存。适合会修改场景但不支持撤销的操作。\n" +"[codeblock]\n" +"var scene_root = EditorInterface.get_edited_scene_root()\n" +"var undo_redo = EditorInterface.get_editor_undo_redo()\n" +"undo_redo.clear_history(undo_redo.get_object_history_id(scene_root))\n" +"[/codeblock]\n" +"[b]注意:[/b]如果想要将编辑过的场景标记为未保存且不清除历史记录,请改用 " +"[method EditorInterface.mark_scene_as_unsaved]。" + +msgid "" +"Commits the action. If [param execute] is [code]true[/code] (default), all " +"\"do\" methods/properties are called/set when this function is called." +msgstr "" +"提交该动作。如果 [param execute] 为 [code]true[/code](默认值),则该函数被调" +"用时所有“做”方法/属性将被调用/设置。" + msgid "" "Create a new action. After this is called, do all your calls to [method " "add_do_method], [method add_undo_method], [method add_do_property], and " @@ -44895,6 +57535,14 @@ msgstr "" msgid "Returns the number of channels allocated for communication with peer." msgstr "返回为与对等体通信而分配的通道数。" +msgid "" +"Returns the ENet flags of the next packet in the received queue. See " +"[code]FLAG_*[/code] constants for available packet flags. Note that not all " +"flags are replicated from the sending peer to the receiving peer." +msgstr "" +"返回接收队列中下一个数据包的 ENet 标志。可用的数据包标志见 [code]FLAG_*[/" +"code] 常量。请注意,并非所有标志都会从发送端复制到接收端。" + msgid "Returns the IP address of this peer." msgstr "返回该对等体的 IP 地址。" @@ -45185,6 +57833,35 @@ msgstr "" "[Engine] 单例使你可以查询和修改项目的运行时参数,例如每秒帧数,时间缩放等。它" "还存储有关 Godot 当前构建的信息,例如当前版本。" +msgid "" +"Returns the name of the CPU architecture the Godot binary was built for. " +"Possible return values include [code]\"x86_64\"[/code], [code]\"x86_32\"[/" +"code], [code]\"arm64\"[/code], [code]\"arm32\"[/code], [code]\"rv64\"[/code], " +"[code]\"riscv\"[/code], [code]\"ppc64\"[/code], [code]\"ppc\"[/code], " +"[code]\"wasm64\"[/code], and [code]\"wasm32\"[/code].\n" +"To detect whether the current build is 64-bit, or the type of architecture, " +"don't use the architecture name. Instead, use [method OS.has_feature] to " +"check for the [code]\"64\"[/code] feature tag, or tags such as [code]\"x86\"[/" +"code] or [code]\"arm\"[/code]. See the [url=$DOCS_URL/tutorials/export/" +"feature_tags.html]Feature Tags[/url] documentation for more details.\n" +"[b]Note:[/b] This method does [i]not[/i] return the name of the system's CPU " +"architecture (like [method OS.get_processor_name]). For example, when running " +"an [code]x86_32[/code] Godot binary on an [code]x86_64[/code] system, the " +"returned value will still be [code]\"x86_32\"[/code]." +msgstr "" +"返回构建 Godot 二进制文件所针对的 CPU 架构的名称。可能的返回值有 " +"[code]\"x86_64\"[/code]、[code]\"x86_32\"[/code]、[code]\"arm64\"[/code]、" +"[code]\"arm32\"[/code]、[code]\"rv64\"[/code]、[code]\"riscv\"[/code]、" +"[code]\"ppc64\"[/code]、[code]\"ppc\"[/code]、[code]\"wasm64\"[/code] 和 " +"[code]\"wasm32\"[/code]。\n" +"检测当前构建是否为 64 位或检测架构类型时请勿使用架构名称进行判断。请使用 " +"[method OS.has_feature],检测 [code]\"64\"[/code] 特性标签,或者 " +"[code]\"x86\"[/code]、[code]\"arm\"[/code] 等标签。详情见[url=$DOCS_URL/" +"tutorials/export/feature_tags.html]《特性标签》[/url]文档。\n" +"[b]注意:[/b]该方法[i]不返回[/i]系统 CPU 架构的名称(如 [method OS." +"get_processor_name])。例如在 [code]x86_64[/code] 系统上运行 [code]x86_32[/" +"code] Godot 二进制文件时,返回值仍为 [code]\"x86_32\"[/code]。" + msgid "" "Returns the engine author information as a [Dictionary], where each entry is " "an [Array] of strings with the names of notable contributors to the Godot " @@ -45490,6 +58167,44 @@ msgstr "" "回一个空字符串。该默认路径可以在 [member ProjectSettings.editor/movie_writer/" "movie_file] 中更改。" +msgid "" +"Returns [code]true[/code] if a singleton with the given [param name] exists " +"in the global scope. See also [method get_singleton].\n" +"[codeblocks]\n" +"[gdscript]\n" +"print(Engine.has_singleton(\"OS\")) # Prints true\n" +"print(Engine.has_singleton(\"Engine\")) # Prints true\n" +"print(Engine.has_singleton(\"AudioServer\")) # Prints true\n" +"print(Engine.has_singleton(\"Unknown\")) # Prints false\n" +"[/gdscript]\n" +"[csharp]\n" +"GD.Print(Engine.HasSingleton(\"OS\")); // Prints True\n" +"GD.Print(Engine.HasSingleton(\"Engine\")); // Prints True\n" +"GD.Print(Engine.HasSingleton(\"AudioServer\")); // Prints True\n" +"GD.Print(Engine.HasSingleton(\"Unknown\")); // Prints False\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] Global singletons are not the same as autoloaded nodes, which " +"are configurable in the project settings." +msgstr "" +"如果全局范围内存在具有给定 [param name] 的单例,则返回 [code]true[/code]。另" +"见 [method get_singleton]。\n" +"[codeblocks]\n" +"[gdscript]\n" +"print(Engine.has_singleton(\"OS\")) # 输出 true\n" +"print(Engine.has_singleton(\"Engine\")) # 输出 true\n" +"print(Engine.has_singleton(\"AudioServer\")) # 输出 true\n" +"print(Engine.has_singleton(\"Unknown\")) # 输出 false\n" +"[/gdscript]\n" +"[csharp]\n" +"GD.Print(Engine.HasSingleton(\"OS\")); // 输出 True\n" +"GD.Print(Engine.HasSingleton(\"Engine\")); // 输出 True\n" +"GD.Print(Engine.HasSingleton(\"AudioServer\")); // 输出 True\n" +"GD.Print(Engine.HasSingleton(\"Unknown\")); // 输出 False\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b]全局单例与自动加载的节点不同,后者可以在项目设置中进行配置。" + msgid "" "Returns [code]true[/code] if the script is currently running inside the " "editor, otherwise returns [code]false[/code]. This is useful for [code]@tool[/" @@ -45543,6 +58258,14 @@ msgstr "" "时,被评估为 [code]true[/code];但当从导出的项目运行时,它将被评估为 " "[code]false[/code]。" +msgid "" +"Returns [code]true[/code] if the engine is running embedded in the editor. " +"This is useful to prevent attempting to update window mode or window flags " +"that are not supported when running the project embedded in the editor." +msgstr "" +"如果引擎在编辑器中嵌入运行则返回 [code]true[/code]。可以用来防止在项目嵌入编辑" +"器中运行时尝试更新不支持的窗口模式或窗口标志。" + msgid "" "Returns [code]true[/code] if the engine is inside the fixed physics process " "step of the main loop.\n" @@ -45752,6 +58475,21 @@ msgstr "" "也会影响编辑器本身。在确保错误消息被启用(默认情况下)之前,[i]不[/i]要报告错" "误。" +msgid "" +"If [code]false[/code], stops printing messages (for example using [method " +"@GlobalScope.print]) to the console, log files, and editor Output log. This " +"property is equivalent to the [member ProjectSettings.application/run/" +"disable_stdout] project setting.\n" +"[b]Note:[/b] This does not stop printing errors or warnings produced by " +"scripts to the console or log files, for more details see [member " +"print_error_messages]." +msgstr "" +"如果 [code]false[/code],则会阻止将消息(例如使用 [method @GlobalScope." +"print])输出到控制台、日志文件和编辑器的“输出”日志中。该属性相当于项目设置 " +"[member ProjectSettings.application/run/disable_stdout]。\n" +"[b]注意:[/b]该属性并不会阻止将脚本产生的错误和警告输出到控制台或日志文件,详" +"见 [member print_error_messages]。" + msgid "" "The speed multiplier at which the in-game clock updates, compared to real " "time. For example, if set to [code]2.0[/code] the game runs twice as fast, " @@ -45857,6 +58595,14 @@ msgid "" msgstr "" "如果调试器跳过断点,则返回 [code]true[/code],否则返回 [code]false[/code]。" +msgid "" +"Forces a processing loop of debugger events. The purpose of this method is " +"just processing events every now and then when the script might get too busy, " +"so that bugs like infinite loops can be caught." +msgstr "" +"强制调试器事件的一个处理循环。该方法的目的是当脚本可能过于繁忙时不时地处理事" +"件,以便可以捕获无限循环之类的错误。" + msgid "" "Calls the [code]add[/code] callable of the profiler with given [param name] " "and [param data]." @@ -45872,6 +58618,23 @@ msgstr "" "使用给定的 [param name] 和 [param arguments] 调用分析器中的 [code]toggle[/" "code] 可调用体。会根据 [param enable] 参数启用/禁用同一分析器。" +msgid "" +"Registers a message capture with given [param name]. If [param name] is " +"\"my_message\" then messages starting with \"my_message:\" will be called " +"with the given callable.\n" +"The callable must accept a message string and a data array as argument. The " +"callable should return [code]true[/code] if the message is recognized.\n" +"[b]Note:[/b] The callable will receive the message with the prefix stripped, " +"unlike [method EditorDebuggerPlugin._capture]. See the [EditorDebuggerPlugin] " +"description for an example." +msgstr "" +"使用名称 [param name] 注册消息捕获。如果 [param name] 为“my_message”则会" +"为“my_message:”开头的消息调用给定的可调用体。\n" +"可调用体必须接受消息字符串和数据数组参数。如果能够识别该消息,则可调用体应返" +"回 [code]true[/code]。\n" +"[b]注意:[/b]可调用体收到的消息已剥离前缀,这一点与 [method " +"EditorDebuggerPlugin._capture] 不同。示例见 [EditorDebuggerPlugin] 的描述。" + msgid "" "Registers a profiler with the given [param name]. See [EngineProfiler] for " "more information." @@ -46322,6 +59085,24 @@ msgstr "" "[b]注意:[/b][member glow_map] 在使用兼容性渲染方法时没有效果,因为该渲染方法" "使用针对低端设备优化的更简单的辉光实现。" +msgid "" +"How strong of an influence the [member glow_map] should have on the overall " +"glow effect. A strength of [code]0.0[/code] means the glow map has no " +"influence, while a strength of [code]1.0[/code] means the glow map has full " +"influence.\n" +"[b]Note:[/b] If the glow map has black areas, a value of [code]1.0[/code] can " +"also turn off the glow effect entirely in specific areas of the screen.\n" +"[b]Note:[/b] [member glow_map_strength] has no effect when using the " +"Compatibility rendering method, due to this rendering method using a simpler " +"glow implementation optimized for low-end devices." +msgstr "" +"[member glow_map] 应该对整体辉光效果产生多大的影响。强度为 [code]0.0[/code] 表" +"示辉光贴图不产生任何影响。强度为 [code]1.0[/code] 表示辉光贴图发挥完全影响。\n" +"[b]注意:[/b]如果辉光贴图有黑色区域,强度为 [code]1.0[/code] 可以在屏幕的特定" +"区域完全关闭辉光。\n" +"[b]注意:[/b][member glow_map_strength] 在使用 Compatibility 渲染方法时没有效" +"果,因为该渲染方法使用针对低端设备优化的更简单的辉光实现。" + msgid "" "When using the [constant GLOW_BLEND_MODE_MIX] [member glow_blend_mode], this " "controls how much the source image is blended with the glow layer. A value of " @@ -46709,9 +59490,19 @@ msgid "" msgstr "屏幕空间反射的最大步数。数值越高,速度越慢。" msgid "" -"The default exposure used for tonemapping. Higher values result in a brighter " -"image. See also [member tonemap_white]." -msgstr "色调映射的默认曝光。值越高,图像越亮。另见 [member tonemap_white]。" +"Adjusts the brightness of values before they are provided to the tonemapper. " +"Higher [member tonemap_exposure] values result in a brighter image. See also " +"[member tonemap_white].\n" +"[b]Note:[/b] Values provided to the tonemapper will also be multiplied by " +"[code]2.0[/code] and [code]1.8[/code] for [constant TONE_MAPPER_FILMIC] and " +"[constant TONE_MAPPER_ACES] respectively to produce a similar apparent " +"brightness as [constant TONE_MAPPER_LINEAR]." +msgstr "" +"在将值提供给色调映射器之前调整亮度。[member tonemap_exposure] 取值越大图像越" +"亮。另见 [member tonemap_white]。\n" +"[b]注意:[/b]提供给色调映射器的值还将乘以 [code]2.0[/code] 和 [code]1.8[/" +"code],分别对应 [constant TONE_MAPPER_FILMIC] 和 [constant TONE_MAPPER_ACES]," +"会产生与 [constant TONE_MAPPER_LINEAR] 相似的明显亮度。" msgid "" "The tonemapping mode to use. Tonemapping is the process that \"converts\" HDR " @@ -46721,6 +59512,22 @@ msgstr "" "要使用的色调映射模式。色调映射是对 HDR 值进行“转换”的过程,转换后的值适合在 " "LDR 显示器上渲染。(Godot 尚不支持在 HDR 显示器上进行渲染。)" +msgid "" +"The white reference value for tonemapping, which indicates where bright white " +"is located in the scale of values provided to the tonemapper. For " +"photorealistic lighting, recommended values are between [code]6.0[/code] and " +"[code]8.0[/code]. Higher values result in less blown out highlights, but may " +"make the scene appear lower contrast. See also [member tonemap_exposure].\n" +"[b]Note:[/b] [member tonemap_white] is ignored when using [constant " +"TONE_MAPPER_LINEAR] or [constant TONE_MAPPER_AGX]." +msgstr "" +"色调映射的白色参考值,表示色调映射器所提供的取值范围中亮白色的位置。为了实现逼" +"真的光照,推荐使用在 [code]6.0[/code] 和 [code]8.0[/code] 之间的值。取值越高," +"高光部分的过曝程度越低,但可能会使场景看上去对比度较低。另见 [member " +"tonemap_exposure]。\n" +"[b]注意:[/b]使用 [constant TONE_MAPPER_LINEAR] 和 [constant TONE_MAPPER_AGX] " +"时会忽略 [member tonemap_white]。" + msgid "" "The [Color] of the volumetric fog when interacting with lights. Mist and fog " "have an albedo close to [code]Color(1, 1, 1, 1)[/code] while smoke has a " @@ -46955,34 +59762,58 @@ msgid "Use the [Sky] for reflections regardless of what the background is." msgstr "无论背景如何,都使用 [Sky] 进行反射。" msgid "" -"Linear tonemapper operator. Reads the linear data and passes it on " -"unmodified. This can cause bright lighting to look blown out, with noticeable " -"clipping in the output colors." +"Does not modify color data, resulting in a linear tonemapping curve which " +"unnaturally clips bright values, causing bright lighting to look blown out. " +"The simplest and fastest tonemapper." msgstr "" -"线性色调映射运算子。读取线性数据并将其原样传递。较亮的光照会导致过曝、输出的颜" -"色中会有可见的截断。" +"不修改颜色数据,得到线性的色调映射曲线,裁剪较亮的值时不自然,明亮的光照会过" +"曝。这是最简单快速的色调映射器。" msgid "" -"Filmic tonemapper operator. This avoids clipping bright highlights, with a " -"resulting image that usually looks more vivid than [constant " -"TONE_MAPPER_REINHARDT]." +"A simple tonemapping curve that rolls off bright values to prevent clipping. " +"This results in an image that can appear dull and low contrast. Slower than " +"[constant TONE_MAPPER_LINEAR].\n" +"[b]Note:[/b] When [member tonemap_white] is left at the default value of " +"[code]1.0[/code], [constant TONE_MAPPER_REINHARDT] produces an identical " +"image to [constant TONE_MAPPER_LINEAR]." msgstr "" -"电影级色调映射器运算子。可以避免对高光处的截断,最终图像通常比 [constant " -"TONE_MAPPER_REINHARDT] 更鲜艳。" +"一种简单的色调映射曲线,会让较亮的值逐渐降低,从而防止发生裁剪。得到的图像看起" +"来较平淡、对比度低。比 [constant TONE_MAPPER_LINEAR] 更慢。\n" +"[b]注意:[/b][member tonemap_white] 在默认值 [code]1.0[/code] 不变时," +"[constant TONE_MAPPER_REINHARDT] 产生的图像与 [constant TONE_MAPPER_LINEAR] 相" +"同。" msgid "" -"Use the Academy Color Encoding System tonemapper. ACES is slightly more " -"expensive than other options, but it handles bright lighting in a more " -"realistic fashion by desaturating it as it becomes brighter. ACES typically " -"has a more contrasted output compared to [constant TONE_MAPPER_REINHARDT] and " -"[constant TONE_MAPPER_FILMIC].\n" +"Uses a film-like tonemapping curve to prevent clipping of bright values and " +"provide better contrast than [constant TONE_MAPPER_REINHARDT]. Slightly " +"slower than [constant TONE_MAPPER_REINHARDT]." +msgstr "" +"使用类似电影胶片的色调映射曲线来防止较亮的值发生剪切,对比度比 [constant " +"TONE_MAPPER_REINHARDT] 更好。比 [constant TONE_MAPPER_REINHARDT] 稍慢。" + +msgid "" +"Uses a high-contrast film-like tonemapping curve and desaturates bright " +"values for a more realistic appearance. Slightly slower than [constant " +"TONE_MAPPER_FILMIC].\n" "[b]Note:[/b] This tonemapping operator is called \"ACES Fitted\" in Godot 3.x." msgstr "" -"使用学院色彩编码系统(Academy Color Encoding System)色调映射器。ACES 比其他选" -"项消耗略高,但对于较亮光照的处理更真实,越亮饱和度越低。ACES 的输出在对比度方" -"面通常比 [constant TONE_MAPPER_REINHARDT] 和 [constant TONE_MAPPER_FILMIC] 更" -"高。\n" -"[b]注意:[/b]Godot 3.x 将该色调映射运算符称为“ACES Fitted”。" +"类似电影胶片的高对比度色调映射曲线,对较亮的值进行去饱和处理,从而获得更真实的" +"外观。比 [constant TONE_MAPPER_FILMIC] 稍慢。\n" +"[b]注意:[/b]这种色调映射运算符在 Godot 3.x 中被称为“ACES Fitted”。" + +msgid "" +"Uses a film-like tonemapping curve and desaturates bright values for a more " +"realistic appearance. Better than other tonemappers at maintaining the hue of " +"colors as they become brighter. The slowest tonemapping option.\n" +"[b]Note:[/b] [member tonemap_white] is fixed at a value of [code]16.29[/" +"code], which makes [constant TONE_MAPPER_AGX] unsuitable for use with the " +"Mobile rendering method." +msgstr "" +"使用类似电影胶片的色调映射曲线对较亮的值进行去饱和处理,从而获得更真实的外观。" +"相比其他色调映射器而言,在颜色变亮时能够更好地保持色调。这是最慢的色调映射选" +"项。\n" +"[b]注意:[/b][member tonemap_white] 的值固定在 [code]16.29[/code],因此 " +"[constant TONE_MAPPER_AGX] 不适合移动渲染方法。" msgid "" "Additive glow blending mode. Mostly used for particles, glows (bloom), lens " @@ -47176,6 +60007,49 @@ msgstr "" "你也可以选择用 [param input_names] 来指定可能出现在表达式中的变量名称,这样就" "可以在执行表达式时进行绑定。" +msgid "Texture which displays the content of an external buffer." +msgstr "显示外部缓冲区内容的纹理。" + +msgid "" +"Displays the content of an external buffer provided by the platform.\n" +"Requires the [url=https://registry.khronos.org/OpenGL/extensions/OES/" +"OES_EGL_image_external.txt]OES_EGL_image_external[/url] extension (OpenGL) or " +"[url=https://registry.khronos.org/vulkan/specs/1.1-extensions/html/vkspec." +"html#VK_ANDROID_external_memory_android_hardware_buffer]VK_ANDROID_external_memory_android_hardware_buffer[/" +"url] extension (Vulkan).\n" +"[b]Note:[/b] This is currently only supported in Android builds." +msgstr "" +"显示平台所提供的外部缓冲区的内容。\n" +"需要 [url=https://registry.khronos.org/OpenGL/extensions/OES/" +"OES_EGL_image_external.txt]OES_EGL_image_external[/url] 扩展(OpenGL)或 " +"[url=https://registry.khronos.org/vulkan/specs/1.1-extensions/html/vkspec." +"html#VK_ANDROID_external_memory_android_hardware_buffer]VK_ANDROID_external_memory_android_hardware_buffer[/" +"url] 扩展(Vulkan)。\n" +"[b]注意:[/b]目前仅在 Android 构建中支持。" + +msgid "" +"Returns the external texture ID.\n" +"Depending on your use case, you may need to pass this to platform APIs, for " +"example, when creating an [code]android.graphics.SurfaceTexture[/code] on " +"Android." +msgstr "" +"返回外部纹理 ID。\n" +"根据你的需求,你可能需要将其传递给平台 API,例如在 Android 上创建 " +"[code]android.graphics.SurfaceTexture[/code]。" + +msgid "" +"Sets the external buffer ID.\n" +"Depending on your use case, you may need to call this with data received from " +"a platform API, for example, [code]SurfaceTexture.getHardwareBuffer()[/code] " +"on Android." +msgstr "" +"设置外部纹理 ID。\n" +"根据你的需求,你可能需要使用从平台 API 获取的数据调用该方法,例如在 Android 上" +"的 [code]SurfaceTexture.getHardwareBuffer()[/code]。" + +msgid "External texture size." +msgstr "外部纹理大小。" + msgid "Generates noise using the FastNoiseLite library." msgstr "使用 FastNoiseLite 库生成噪声。" @@ -47329,6 +60203,21 @@ msgid "" "various regions of the same value." msgstr "蜂窝包括 Worley 噪声图和 Voronoi 图,它们创建了相同值的不同区域。" +msgid "" +"As opposed to [constant TYPE_PERLIN], gradients exist in a simplex lattice " +"rather than a grid lattice, avoiding directional artifacts. Internally uses " +"FastNoiseLite's OpenSimplex2 noise type." +msgstr "" +"与 [constant TYPE_PERLIN] 不同,渐变存在于单纯形点阵中,而不是网格点阵中,从而" +"避免了定向伪影。内部使用 FastNoiseLite 的 OpenSimplex2 噪声类型。" + +msgid "" +"Modified, higher quality version of [constant TYPE_SIMPLEX], but slower. " +"Internally uses FastNoiseLite's OpenSimplex2S noise type." +msgstr "" +"对 [constant TYPE_SIMPLEX] 修改后得到的更高质量版本,但速度较慢。内部使用 " +"FastNoiseLite 的 OpenSimplex2S 噪声类型。" + msgid "No fractal noise." msgstr "无分形噪声。" @@ -47352,6 +60241,13 @@ msgstr "到最近点的欧几里得距离的平方。" msgid "Manhattan distance (taxicab metric) to the nearest point." msgstr "到最近点的曼哈顿距离(出租车度量法)。" +msgid "" +"Blend of [constant DISTANCE_EUCLIDEAN] and [constant DISTANCE_MANHATTAN] to " +"give curved cell boundaries." +msgstr "" +"[constant DISTANCE_EUCLIDEAN] 和 [constant DISTANCE_MANHATTAN] 的混合,以给出" +"弯曲的单元格边界。" + msgid "" "The cellular distance function will return the same value for all points " "within a cell." @@ -47444,6 +60340,109 @@ msgstr "" msgid "Provides methods for file reading and writing operations." msgstr "提供用于文件读写操作的方法。" +msgid "" +"This class can be used to permanently store data in the user device's file " +"system and to read from it. This is useful for storing game save data or " +"player configuration files.\n" +"Here's a sample on how to write and read from a file:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func save_to_file(content):\n" +" var file = FileAccess.open(\"user://save_game.dat\", FileAccess.WRITE)\n" +" file.store_string(content)\n" +"\n" +"func load_from_file():\n" +" var file = FileAccess.open(\"user://save_game.dat\", FileAccess.READ)\n" +" var content = file.get_as_text()\n" +" return content\n" +"[/gdscript]\n" +"[csharp]\n" +"public void SaveToFile(string content)\n" +"{\n" +" using var file = FileAccess.Open(\"user://save_game.dat\", FileAccess." +"ModeFlags.Write);\n" +" file.StoreString(content);\n" +"}\n" +"\n" +"public string LoadFromFile()\n" +"{\n" +" using var file = FileAccess.Open(\"user://save_game.dat\", FileAccess." +"ModeFlags.Read);\n" +" string content = file.GetAsText();\n" +" return content;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"In the example above, the file will be saved in the user data folder as " +"specified in the [url=$DOCS_URL/tutorials/io/data_paths.html]Data paths[/url] " +"documentation.\n" +"[FileAccess] will close when it's freed, which happens when it goes out of " +"scope or when it gets assigned with [code]null[/code]. [method close] can be " +"used to close it before then explicitly. In C# the reference must be disposed " +"manually, which can be done with the [code]using[/code] statement or by " +"calling the [code]Dispose[/code] method directly.\n" +"[b]Note:[/b] To access project resources once exported, it is recommended to " +"use [ResourceLoader] instead of [FileAccess], as some files are converted to " +"engine-specific formats and their original source files might not be present " +"in the exported PCK package. If using [FileAccess], make sure the file is " +"included in the export by changing its import mode to [b]Keep File (exported " +"as is)[/b] in the Import dock, or, for files where this option is not " +"available, change the non-resource export filter in the Export dialog to " +"include the file's extension (e.g. [code]*.txt[/code]).\n" +"[b]Note:[/b] Files are automatically closed only if the process exits " +"\"normally\" (such as by clicking the window manager's close button or " +"pressing [b]Alt + F4[/b]). If you stop the project execution by pressing " +"[b]F8[/b] while the project is running, the file won't be closed as the game " +"process will be killed. You can work around this by calling [method flush] at " +"regular intervals." +msgstr "" +"这个类可以用于在用户设备的文件系统中永久存储数据,也可以从中读取数据。适用于存" +"储游戏存档数据或玩家配置文件。\n" +"下面是一个关于如何写入和读取文件的示例:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func save_to_file(content):\n" +" var file = FileAccess.open(\"user://save_game.dat\", FileAccess.WRITE)\n" +" file.store_string(content)\n" +"\n" +"func load_from_file():\n" +" var file = FileAccess.open(\"user://save_game.dat\", FileAccess.READ)\n" +" var content = file.get_as_text()\n" +" return content\n" +"[/gdscript]\n" +"[csharp]\n" +"public void SaveToFile(string content)\n" +"{\n" +" using var file = FileAccess.Open(\"user://save_game.dat\", FileAccess." +"ModeFlags.Write);\n" +" file.StoreString(content);\n" +"}\n" +"\n" +"public string LoadFromFile()\n" +"{\n" +" using var file = FileAccess.Open(\"user://save_game.dat\", FileAccess." +"ModeFlags.Read);\n" +" string content = file.GetAsText();\n" +" return content;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"在上面的例子中,文件将被保存在[url=$DOCS_URL/tutorials/io/data_paths.html]数据" +"路径[/url]文件中指定的用户数据文件夹中。\n" +"[FileAccess] 会在释放时关闭,超出作用于、赋值为 [code]null[/code] 等情况都会导" +"致释放。可以使用 [method close] 在此之前显式关闭。在 C# 中,引用必须手动释放," +"可以通过 [code]using[/code] 语句或直接调用 [code]Dispose[/code] 方法来完成。\n" +"[b]注意:[/b]要在导出后访问项目资源,建议使用 [ResourceLoader] 而不是 " +"[FileAccess],因为有些文件已被转换为特定于引擎的格式,并且它们的原始源文件可能" +"并不存在于导出的 PCK 包中。如果使用 [FileAccess],请确保通过在导入面板中将其导" +"入模式更改为[b]保留文件(按原样导出)[/b]来将文件包含在导出中;或者对于没有此" +"选项的文件,请在导出对话框中更改非资源导出筛选器,加上文件的扩展名(例如 " +"[code]*.txt[/code])。\n" +"[b]注意:[/b]只有当进程“正常”退出时(例如通过单击窗口管理器的关闭按钮或按 " +"[b]Alt + F4[/b]),文件才会自动关闭。如果在项目运行时按 [b]F8[/b] 停止项目执" +"行,则不会关闭文件,因为游戏进程将被杀死。可以通过定期调用 [method flush] 来解" +"决这个问题。" + msgid "" "Closes the currently opened file and prevents subsequent read/write " "operations. Use [method flush] to persist the data to disk without closing " @@ -47460,6 +60459,27 @@ msgstr "" "[code]null[/code] 时。在 C# 中,使用完后必须弃置该引用,可以使用 [code]using[/" "code] 语句或直接调用 [code]Dispose[/code] 方法。" +msgid "" +"Creates a temporary file. This file will be freed when the returned " +"[FileAccess] is freed.\n" +"If [param prefix] is not empty, it will be prefixed to the file name, " +"separated by a [code]-[/code].\n" +"If [param extension] is not empty, it will be appended to the temporary file " +"name.\n" +"If [param keep] is [code]true[/code], the file is not deleted when the " +"returned [FileAccess] is freed.\n" +"Returns [code]null[/code] if opening the file failed. You can use [method " +"get_open_error] to check the error that occurred." +msgstr "" +"创建临时文件。该文件将在返回的 [FileAccess] 释放时释放。\n" +"如果 [param prefix] 非空,则会将其添加为文件名的前缀,用 [code]-[/code] 分" +"隔。\n" +"如果 [param extension] 非空,则会将其追加到临时文件名之后。\n" +"如果 [param keep] 为 [code]true[/code],则在返回的 [FileAccess] 释放时不会删除" +"该文件。\n" +"如果打开文件失败则返回 [code]null[/code],可以使用 [method get_open_error] 检" +"查发生的错误。" + msgid "" "Returns [code]true[/code] if the file cursor has already read past the end of " "the file.\n" @@ -47637,6 +60657,11 @@ msgstr "" msgid "Returns the next 32 bits from the file as a floating-point number." msgstr "将文件中接下来的 32 位作为浮点数返回。" +msgid "" +"Returns the next 16 bits from the file as a half-precision floating-point " +"number." +msgstr "将文件中接下来的 16 位作为半精度浮点数返回。" + msgid "" "Returns [code]true[/code], if file [code]hidden[/code] attribute is set.\n" "[b]Note:[/b] This method is implemented on iOS, BSD, macOS, and Windows." @@ -47644,6 +60669,12 @@ msgstr "" "如果文件 [code]hidden[/code] 属性已设置,则返回 [code]true[/code]。\n" "[b]注意:[/b]该方法在 iOS、BSD、macOS 和 Windows 上实现。" +msgid "" +"Returns the size of the file in bytes. For a pipe, returns the number of " +"bytes available for reading from the pipe." +msgstr "" +"返回文件的大小,单位为字节。如果是管道,则返回可以从管道中读取的字节数。" + msgid "" "Returns the next line of the file as a [String]. The returned string doesn't " "include newline ([code]\\n[/code]) or carriage return ([code]\\r[/code]) " @@ -47819,6 +60850,253 @@ msgstr "" "设置文件的 UNIX 权限。\n" "[b]注意:[/b]该方法在 iOS、Linux/BSD 和 macOS 上实现。" +msgid "" +"Stores an integer as 8 bits in the file.\n" +"[b]Note:[/b] The [param value] should lie in the interval [code][0, 255][/" +"code]. Any other value will overflow and wrap around.\n" +"[b]Note:[/b] If an error occurs, the resulting value of the file position " +"indicator is indeterminate.\n" +"To store a signed integer, use [method store_64], or convert it manually (see " +"[method store_16] for an example)." +msgstr "" +"将一个整数以 8 位形式存储在文件中。\n" +"[b]注意:[/b][param value] 应该位于 [code][0, 255][/code] 的区间内。任何其他的" +"值都会溢出并环绕。\n" +"[b]注意:[/b]出错时,文件位置标识符的取值不确定。\n" +"要存储有符号的整数,请使用 [method store_64],或者手动转换(见 [method " +"store_16] 的例子)。" + +msgid "" +"Stores an integer as 16 bits in the file.\n" +"[b]Note:[/b] The [param value] should lie in the interval [code][0, 2^16 - 1]" +"[/code]. Any other value will overflow and wrap around.\n" +"[b]Note:[/b] If an error occurs, the resulting value of the file position " +"indicator is indeterminate.\n" +"To store a signed integer, use [method store_64] or store a signed integer " +"from the interval [code][-2^15, 2^15 - 1][/code] (i.e. keeping one bit for " +"the signedness) and compute its sign manually when reading. For example:\n" +"[codeblocks]\n" +"[gdscript]\n" +"const MAX_15B = 1 << 15\n" +"const MAX_16B = 1 << 16\n" +"\n" +"func unsigned16_to_signed(unsigned):\n" +" return (unsigned + MAX_15B) % MAX_16B - MAX_15B\n" +"\n" +"func _ready():\n" +" var f = FileAccess.open(\"user://file.dat\", FileAccess.WRITE_READ)\n" +" f.store_16(-42) # This wraps around and stores 65494 (2^16 - 42).\n" +" f.store_16(121) # In bounds, will store 121.\n" +" f.seek(0) # Go back to start to read the stored value.\n" +" var read1 = f.get_16() # 65494\n" +" var read2 = f.get_16() # 121\n" +" var converted1 = unsigned16_to_signed(read1) # -42\n" +" var converted2 = unsigned16_to_signed(read2) # 121\n" +"[/gdscript]\n" +"[csharp]\n" +"public override void _Ready()\n" +"{\n" +" using var f = FileAccess.Open(\"user://file.dat\", FileAccess.ModeFlags." +"WriteRead);\n" +" f.Store16(unchecked((ushort)-42)); // This wraps around and stores 65494 " +"(2^16 - 42).\n" +" f.Store16(121); // In bounds, will store 121.\n" +" f.Seek(0); // Go back to start to read the stored value.\n" +" ushort read1 = f.Get16(); // 65494\n" +" ushort read2 = f.Get16(); // 121\n" +" short converted1 = (short)read1; // -42\n" +" short converted2 = (short)read2; // 121\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"将一个整数以 16 位形式存储到文件中。\n" +"[b]注意:[/b][param value] 应该位于 [code][0, 2^16 - 1][/code] 区间内。任何其" +"他的值都会溢出并进行环绕。\n" +"[b]注意:[/b]出错时,文件位置标识符的取值不确定。\n" +"要存储有符号的整数,请使用 [method store_64] 或者从区间 [code][-2^15, 2^15 - " +"1][/code] 中存储一个有符号的整数(即保留一位作为符号),在读取时手动计算其符" +"号。例如:\n" +"[codeblocks]\n" +"[gdscript]\n" +"const MAX_15B = 1 << 15\n" +"const MAX_16B = 1 << 16\n" +"\n" +"func unsigned16_to_signed(unsigned):\n" +" return (unsigned + MAX_15B) % MAX_16B - MAX_15B\n" +"\n" +"func _ready():\n" +" var f = FileAccess.open(\"user://file.dat\", FileAccess.WRITE_READ)\n" +" f.store_16(-42) # 发生环绕,存储 65494 (2^16 - 42)。\n" +" f.store_16(121) # 在范围内,存储 121。\n" +" f.seek(0) # 回到开头,读取存储的值。\n" +" var read1 = f.get_16() # 65494\n" +" var read2 = f.get_16() # 121\n" +" var converted1 = unsigned16_to_signed(read1) # -42\n" +" var converted2 = unsigned16_to_signed(read2) # 121\n" +"[/gdscript]\n" +"[csharp]\n" +"public override void _Ready()\n" +"{\n" +" using var f = FileAccess.Open(\"user://file.dat\", FileAccess.ModeFlags." +"WriteRead);\n" +" f.Store16(unchecked((ushort)-42)); // 发生环绕,存储 65494 (2^16 - 42)。\n" +" f.Store16(121); // 在范围内,存储 121。\n" +" f.Seek(0); // 回到开头,读取存储的值。\n" +" ushort read1 = f.Get16(); // 65494\n" +" ushort read2 = f.Get16(); // 121\n" +" short converted1 = (short)read1; // -42\n" +" short converted2 = (short)read2; // 121\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" + +msgid "" +"Stores an integer as 32 bits in the file.\n" +"[b]Note:[/b] The [param value] should lie in the interval [code][0, 2^32 - 1]" +"[/code]. Any other value will overflow and wrap around.\n" +"[b]Note:[/b] If an error occurs, the resulting value of the file position " +"indicator is indeterminate.\n" +"To store a signed integer, use [method store_64], or convert it manually (see " +"[method store_16] for an example)." +msgstr "" +"将一个整数以 32 位形式存储到文件中。\n" +"[b]注意:[/b][param value] 应该位于 [code][0, 2^32 - 1][/code] 区间内。任何其" +"他的值都会溢出并环绕。\n" +"[b]注意:[/b]出错时,文件位置标识符的取值不确定。\n" +"要存储有符号的整数,请使用 [method store_64],或者手动转换(见 [method " +"store_16] 的例子)。" + +msgid "" +"Stores an integer as 64 bits in the file.\n" +"[b]Note:[/b] The [param value] must lie in the interval [code][-2^63, 2^63 - " +"1][/code] (i.e. be a valid [int] value).\n" +"[b]Note:[/b] If an error occurs, the resulting value of the file position " +"indicator is indeterminate." +msgstr "" +"将一个整数以 64 位形式存储到文件中。\n" +"[b]注意:[/b][param value] 必须位于 [code][-2^63, 2^63 - 1][/code] 的区间内" +"(即有效的 [int] 值)。\n" +"[b]注意:[/b]出错时,文件位置标识符的取值不确定。" + +msgid "" +"Stores the given array of bytes in the file.\n" +"[b]Note:[/b] If an error occurs, the resulting value of the file position " +"indicator is indeterminate." +msgstr "" +"将给定的字节数组存储到文件中。\n" +"[b]注意:[/b]出错时,文件位置标识符的取值不确定。" + +msgid "" +"Store the given [PackedStringArray] in the file as a line formatted in the " +"CSV (Comma-Separated Values) format. You can pass a different delimiter " +"[param delim] to use other than the default [code]\",\"[/code] (comma). This " +"delimiter must be one-character long.\n" +"Text will be encoded as UTF-8.\n" +"[b]Note:[/b] If an error occurs, the resulting value of the file position " +"indicator is indeterminate." +msgstr "" +"将给定的 [PackedStringArray] 作为 CSV(逗号分隔值)格式的行存储在文件中。你可" +"以传递不同的分隔符 [param delim] 以使用默认 [code]\",\"[/code](逗号)以外的其" +"他分隔符。此分隔符的长度必须为一个字符。\n" +"将使用 UTF-8 编码文本。\n" +"[b]注意:[/b]出错时,文件位置标识符的取值不确定。" + +msgid "" +"Stores a floating-point number as 64 bits in the file.\n" +"[b]Note:[/b] If an error occurs, the resulting value of the file position " +"indicator is indeterminate." +msgstr "" +"将一个浮点数以 64 位的形式存储到文件中。\n" +"[b]注意:[/b]出错时,文件位置标识符的取值不确定。" + +msgid "" +"Stores a floating-point number as 32 bits in the file.\n" +"[b]Note:[/b] If an error occurs, the resulting value of the file position " +"indicator is indeterminate." +msgstr "" +"将一个浮点数以 32 位的形式存储到文件中。\n" +"[b]注意:[/b]出错时,文件位置标识符的取值不确定。" + +msgid "Stores a half-precision floating-point number as 16 bits in the file." +msgstr "将一个半精度浮点数以 16 位的形式存储到文件中。" + +msgid "" +"Stores [param line] in the file followed by a newline character ([code]\\n[/" +"code]), encoding the text as UTF-8.\n" +"[b]Note:[/b] If an error occurs, the resulting value of the file position " +"indicator is indeterminate." +msgstr "" +"将 [param line] 存储到文件中,后加一个换行符([code]\\n[/code]),文本编码为 " +"UTF-8。\n" +"[b]注意:[/b]出错时,文件位置标识符的取值不确定。" + +msgid "" +"Stores the given [String] as a line in the file in Pascal format (i.e. also " +"store the length of the string).\n" +"Text will be encoded as UTF-8.\n" +"[b]Note:[/b] If an error occurs, the resulting value of the file position " +"indicator is indeterminate." +msgstr "" +"将给定的 [String] 以 Pascal 格式存储在文件中(即同时存储字符串的长度)。\n" +"将使用 UTF-8 编码文本。\n" +"[b]注意:[/b]出错时,文件位置标识符的取值不确定。" + +msgid "" +"Stores a floating-point number in the file.\n" +"[b]Note:[/b] If an error occurs, the resulting value of the file position " +"indicator is indeterminate." +msgstr "" +"将一个浮点数存储到文件中。\n" +"[b]注意:[/b]出错时,文件位置标识符的取值不确定。" + +msgid "" +"Stores [param string] in the file without a newline character ([code]\\n[/" +"code]), encoding the text as UTF-8.\n" +"[b]Note:[/b] This method is intended to be used to write text files. The " +"string is stored as a UTF-8 encoded buffer without string length or " +"terminating zero, which means that it can't be loaded back easily. If you " +"want to store a retrievable string in a binary file, consider using [method " +"store_pascal_string] instead. For retrieving strings from a text file, you " +"can use [code]get_buffer(length).get_string_from_utf8()[/code] (if you know " +"the length) or [method get_as_text].\n" +"[b]Note:[/b] If an error occurs, the resulting value of the file position " +"indicator is indeterminate." +msgstr "" +"将 [param string] 存储到文件中,不带换行符([code]\\n[/code]),文本编码为 " +"UTF-8。\n" +"[b]注意:[/b]本方法是用来写入文本文件的。字符串会被存储为 UTF-8 编码的缓冲区," +"不带字符串长度或末尾零,这意味着它不能被轻易加载回来。如果想在二进制文件中存储" +"一个可检索的字符串,可以考虑改用 [method store_pascal_string]。对于从文本文件" +"中检索字符串,可以使用 [code]get_buffer(length).get_string_from_utf8()[/code]" +"(如果知道长度)或 [method get_as_text]。\n" +"[b]注意:[/b]出错时,文件位置标识符的取值不确定。" + +msgid "" +"Stores any Variant value in the file. If [param full_objects] is [code]true[/" +"code], encoding objects is allowed (and can potentially include code).\n" +"Internally, this uses the same encoding mechanism as the [method @GlobalScope." +"var_to_bytes] method.\n" +"[b]Note:[/b] Not all properties are included. Only properties that are " +"configured with the [constant PROPERTY_USAGE_STORAGE] flag set will be " +"serialized. You can add a new usage flag to a property by overriding the " +"[method Object._get_property_list] method in your class. You can also check " +"how property usage is configured by calling [method Object." +"_get_property_list]. See [enum PropertyUsageFlags] for the possible usage " +"flags.\n" +"[b]Note:[/b] If an error occurs, the resulting value of the file position " +"indicator is indeterminate." +msgstr "" +"将任意 Variant 值存储到文件中。如果 [param full_objects] 为 [code]true[/" +"code],则允许编码对象(并且可能包含代码)。\n" +"内部使用与 [method @GlobalScope.var_to_bytes] 方法相同的编码机制。\n" +"[b]注意:[/b]并非所有属性都包括在内。只有配置了 [constant " +"PROPERTY_USAGE_STORAGE] 标志集的属性才会被序列化。可以通过覆盖类中的 [method " +"Object._get_property_list] 方法来向属性添加新的使用标志。还可以通过调用 " +"[method Object._get_property_list] 来检查属性使用的配置方式。有关可能的使用标" +"志,请参阅 [enum PropertyUsageFlags]。\n" +"[b]注意:[/b]出错时,文件位置标识符的取值不确定。" + msgid "" "If [code]true[/code], the file is read with big-endian [url=https://en." "wikipedia.org/wiki/Endianness]endianness[/url]. If [code]false[/code], the " @@ -48022,6 +61300,35 @@ msgstr "文件对话框的当前选定的文件。" msgid "The currently selected file path of the file dialog." msgstr "当前选择的文件对话框的文件路径。" +msgid "" +"The filter for file names (case-insensitive). When set to a non-empty string, " +"only files that contains the substring will be shown. [member " +"filename_filter] can be edited by the user with the filter button at the top " +"of the file dialog.\n" +"See also [member filters], which should be used to restrict the file types " +"that can be selected instead of [member filename_filter] which is meant to be " +"set by the user." +msgstr "" +"文件名筛选器(不区分大小写)。设置为非空字符串时,只会显示包含该子字符串的文" +"件。用户可以通过文件对话框顶部的筛选按钮编辑 [member filename_filter]。\n" +"另见 [member filters],应使用该属性限制可以选择的文件类型,而 [member " +"filename_filter] 则是由用户设置的。" + +msgid "" +"The available file type filters. Each filter string in the array should be " +"formatted like this: [code]*.png,*.jpg,*.jpeg;Image Files;image/png,image/" +"jpeg[/code]. The description text of the filter is optional and can be " +"omitted. Both file extensions and MIME type should be always set.\n" +"[b]Note:[/b] Embedded file dialog and Windows file dialog support only file " +"extensions, while Android, Linux, and macOS file dialogs also support MIME " +"types." +msgstr "" +"可用的文件类型筛选器。数组中筛选器字符串的格式应类似于:[code].png,.jpg,*." +"jpeg;图像文件;image/png,image/jpeg[/code]。筛选器的描述文本是可选的,可以省" +"略。应始终设置文件扩展名和 MIME 类型。\n" +"[b]注意:[/b]嵌入式文件对话框和 Windows 文件对话框仅支持文件扩展名,而 " +"Android、Linux 和 macOS 文件对话框还支持 MIME 类型。" + msgid "" "If [code]true[/code], changing the [member file_mode] property will set the " "window title accordingly (e.g. setting [member file_mode] to [constant " @@ -48040,6 +61347,14 @@ msgstr "" "录。\n" "[b]注意:[/b]原生文件对话框将忽略该属性。" +msgid "" +"If [code]true[/code], the dialog will show hidden files.\n" +"[b]Note:[/b] This property is ignored by native file dialogs on Android and " +"Linux." +msgstr "" +"如果为 [code]true[/code],则对话框将显示隐藏文件。\n" +"[b]注意:[/b]Android 和 Linux 上的原生文件对话框会忽略该属性。" + msgid "Emitted when the user selects a directory." msgstr "当用户选择一个目录时触发的。" @@ -48113,6 +61428,9 @@ msgstr "父文件夹箭头的自定义图标。" msgid "Custom icon for the reload button." msgstr "重新加载按钮的自定义图标。" +msgid "Custom icon for the toggle button for the filter for file names." +msgstr "切换隐藏文件名筛选器的自定义图标。" + msgid "Custom icon for the toggle hidden button." msgstr "切换隐藏按钮的自定义图标。" @@ -48253,6 +61571,18 @@ msgid "" "Returns [code]true[/code] if the integer has different value than the float." msgstr "如果整数的值与浮点数不同,则返回 [code]true[/code]。" +msgid "" +"Multiplies each component of the [Color], including the alpha, by the given " +"[float].\n" +"[codeblock]\n" +"print(1.5 * Color(0.5, 0.5, 0.5)) # Prints (0.75, 0.75, 0.75, 1.5)\n" +"[/codeblock]" +msgstr "" +"将该 [Color] 的每个分量乘以给定的 [float],包括 Alpha。\n" +"[codeblock]\n" +"print(1.5 * Color(0.5, 0.5, 0.5)) # 输出 (0.75, 0.75, 0.75, 1.5)\n" +"[/codeblock]" + msgid "" "Multiplies each component of the [Quaternion] by the given [float]. This " "operation is not meaningful on its own, but it can be used as a part of a " @@ -48261,12 +61591,59 @@ msgstr "" "将该 [Quaternion] 的每个分量乘以给定的 [float]。此操作本身没有意义,但可以用作" "更大表达式的一部分。" +msgid "" +"Multiplies each component of the [Vector2] by the given [float].\n" +"[codeblock]\n" +"print(2.5 * Vector2(1, 3)) # Prints (2.5, 7.5)\n" +"[/codeblock]" +msgstr "" +"将该 [Vector2] 的每个分量乘以给定的 [float]。\n" +"[codeblock]\n" +"print(2.5 * Vector2(1, 3)) # 输出 (2.5, 7.5)\n" +"[/codeblock]" + +msgid "" +"Multiplies each component of the [Vector2i] by the given [float]. Returns a " +"[Vector2].\n" +"[codeblock]\n" +"print(0.9 * Vector2i(10, 15)) # Prints (9.0, 13.5)\n" +"[/codeblock]" +msgstr "" +"将该 [Vector2i] 的每个分量乘以给定的 [float]。返回的是 [Vector2]。\n" +"[codeblock]\n" +"print(0.9 * Vector2i(10, 15)) # 输出 (9.0, 13.5)\n" +"[/codeblock]" + msgid "Multiplies each component of the [Vector3] by the given [float]." msgstr "将该 [Vector3] 的每个分量乘以给定的 [float]。" +msgid "" +"Multiplies each component of the [Vector3i] by the given [float]. Returns a " +"[Vector3].\n" +"[codeblock]\n" +"print(0.9 * Vector3i(10, 15, 20)) # Prints (9.0, 13.5, 18.0)\n" +"[/codeblock]" +msgstr "" +"将该 [Vector3i] 的每个分量乘以给定的 [float]。返回的是 [Vector3]。\n" +"[codeblock]\n" +"print(0.9 * Vector3i(10, 15, 20)) # 输出 (9.0, 13.5, 18.0)\n" +"[/codeblock]" + msgid "Multiplies each component of the [Vector4] by the given [float]." msgstr "将该 [Vector4] 的每个分量乘以给定的 [float]。" +msgid "" +"Multiplies each component of the [Vector4i] by the given [float]. Returns a " +"[Vector4].\n" +"[codeblock]\n" +"print(0.9 * Vector4i(10, 15, 20, -10)) # Prints (9.0, 13.5, 18.0, -9.0)\n" +"[/codeblock]" +msgstr "" +"将该 [Vector4i] 的每个分量乘以给定的 [float]。返回的是 [Vector4]。\n" +"[codeblock]\n" +"print(0.9 * Vector4i(10, 15, 20, -10))# 输出 (9.0, 13.5, 18.0, -9.0)\n" +"[/codeblock]" + msgid "Multiplies two [float]s." msgstr "将两个 [float] 相乘。" @@ -49384,6 +62761,14 @@ msgstr "如果设置为 [code]true[/code],则为字体纹理生成 mipmap。" msgid "Font hinting mode. Used by dynamic fonts only." msgstr "字体微调模式。仅由动态字体使用。" +msgid "" +"If set to [code]true[/code], when aligning glyphs to the pixel boundaries " +"rounding remainders are accumulated to ensure more uniform glyph " +"distribution. This setting has no effect if subpixel positioning is enabled." +msgstr "" +"如果设置为 [code]true[/code],则将字形与像素边界对齐时会累积舍入余数,确保字形" +"的分布更加均匀。如果启用了次像素定位则该设置无效。" + msgid "" "The width of the range around the shape between the minimum and maximum " "representable signed distance. If using font outlines, [member " @@ -49728,6 +63113,20 @@ msgstr "" "按文件路径卸载扩展。[param path] 需要指向已经加载的 [GDExtension],否则该方法" "返回 [constant LOAD_STATUS_NOT_LOADED]。" +msgid "" +"Emitted after the editor has finished loading a new extension.\n" +"[b]Note:[/b] This signal is only emitted in editor builds." +msgstr "" +"编辑器完成加载新扩展时发出。\n" +"[b]注意:[/b]该信号仅会在编辑器构建中发出。" + +msgid "" +"Emitted before the editor starts unloading an extension.\n" +"[b]Note:[/b] This signal is only emitted in editor builds." +msgstr "" +"编辑器完成卸载某个扩展时发出。\n" +"[b]注意:[/b]该信号仅会在编辑器构建中发出。" + msgid "Emitted after the editor has finished reloading one or more extensions." msgstr "在编辑器已完成重新加载一个或多个扩展后发出。" @@ -49769,6 +63168,56 @@ msgstr "" msgid "GDScript documentation index" msgstr "GDScript 文档索引" +msgid "" +"Returns a new instance of the script.\n" +"[codeblock]\n" +"var MyClass = load(\"myclass.gd\")\n" +"var instance = MyClass.new()\n" +"print(instance.get_script() == MyClass) # Prints true\n" +"[/codeblock]" +msgstr "" +"返回该脚本的一个新实例化对象。\n" +"[codeblock]\n" +"var MyClass = load(\"myclass.gd\")\n" +"var instance = MyClass.new()\n" +"assert(instance.get_script() == MyClass) # 输出 true\n" +"[/codeblock]" + +msgid "" +"A GDScript syntax highlighter that can be used with [TextEdit] and [CodeEdit] " +"nodes." +msgstr "GDScript 语法高亮器,能够在 [TextEdit] 和 [CodeEdit] 节点中使用。" + +msgid "" +"[b]Note:[/b] This class can only be used for editor plugins because it relies " +"on editor settings.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var code_preview = TextEdit.new()\n" +"var highlighter = GDScriptSyntaxHighlighter.new()\n" +"code_preview.syntax_highlighter = highlighter\n" +"[/gdscript]\n" +"[csharp]\n" +"var codePreview = new TextEdit();\n" +"var highlighter = new GDScriptSyntaxHighlighter();\n" +"codePreview.SyntaxHighlighter = highlighter;\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"[b]注意:[/b]这个类智能用作编辑器插件,因为存在对编辑器设置的依赖。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var code_preview = TextEdit.new()\n" +"var highlighter = GDScriptSyntaxHighlighter.new()\n" +"code_preview.syntax_highlighter = highlighter\n" +"[/gdscript]\n" +"[csharp]\n" +"var codePreview = new TextEdit();\n" +"var highlighter = new GDScriptSyntaxHighlighter();\n" +"codePreview.SyntaxHighlighter = highlighter;\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "A physics joint that allows for complex movement and rotation between two 3D " "physics bodies." @@ -50131,6 +63580,35 @@ msgstr "" "为创建几何形状,计算形状之间的交集,以及处理 2D 中的各种其他几何操作提供了一组" "辅助函数。" +msgid "" +"Returns the [url=https://en.wikipedia.org/wiki/" +"Bresenham%27s_line_algorithm]Bresenham line[/url] between the [param from] " +"and [param to] points. A Bresenham line is a series of pixels that draws a " +"line and is always 1-pixel thick on every row and column of the drawing " +"(never more, never less).\n" +"Example code to draw a line between two [Marker2D] nodes using a series of " +"[method CanvasItem.draw_rect] calls:\n" +"[codeblock]\n" +"func _draw():\n" +" for pixel in Geometry2D.bresenham_line($MarkerA.position, $MarkerB." +"position):\n" +" draw_rect(Rect2(pixel, Vector2.ONE), Color.WHITE)\n" +"[/codeblock]" +msgstr "" +"返回起点 [param from] 和终点 [param to] 之间的[url=https://zh.wikipedia.org/" +"zh-hans/" +"%E5%B8%83%E9%9B%B7%E6%A3%AE%E6%BC%A2%E5%A7%86%E7%9B%B4%E7%B7%9A%E6%BC%94%E7%AE%97%E6%B3%95]" +"布雷森汉姆直线[/url]。布雷森汉姆直线是由一系列像素点构成的直线,绘制的每一行每" +"一列的粗细都(不多不少)始终为 1 像素。\n" +"在两个 [Marker2D] 节点之间调用一系列 [method CanvasItem.draw_rect] 绘制直" +"线:\n" +"[codeblock]\n" +"func _draw():\n" +" for pixel in Geometry2D.bresenham_line($MarkerA.position, $MarkerB." +"position):\n" +" draw_rect(Rect2(pixel, Vector2.ONE), Color.WHITE)\n" +"[/codeblock]" + msgid "" "Clips [param polygon_a] against [param polygon_b] and returns an array of " "clipped polygons. This performs [constant OPERATION_DIFFERENCE] between " @@ -50268,6 +63746,71 @@ msgstr "" "果使用屏幕坐标([code]+y[/code] 为下),则需要翻转结果(即 [code]true[/code] " "结果将标识是逆时针)。" +msgid "" +"Returns the point of intersection between the two lines ([param from_a], " +"[param dir_a]) and ([param from_b], [param dir_b]). Returns a [Vector2], or " +"[code]null[/code] if the lines are parallel.\n" +"[code]from[/code] and [code]dir[/code] are [i]not[/i] endpoints of a line " +"segment or ray but the slope ([code]dir[/code]) and a known point " +"([code]from[/code]) on that line.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var from_a = Vector2.ZERO\n" +"var dir_a = Vector2.RIGHT\n" +"var from_b = Vector2.DOWN\n" +"\n" +"# Returns Vector2(1, 0)\n" +"Geometry2D.line_intersects_line(from_a, dir_a, from_b, Vector2(1, -1))\n" +"# Returns Vector2(-1, 0)\n" +"Geometry2D.line_intersects_line(from_a, dir_a, from_b, Vector2(-1, -1))\n" +"# Returns null\n" +"Geometry2D.line_intersects_line(from_a, dir_a, from_b, Vector2.RIGHT)\n" +"[/gdscript]\n" +"[csharp]\n" +"var fromA = Vector2.Zero;\n" +"var dirA = Vector2.Right;\n" +"var fromB = Vector2.Down;\n" +"\n" +"// Returns new Vector2(1, 0)\n" +"Geometry2D.LineIntersectsLine(fromA, dirA, fromB, new Vector2(1, -1));\n" +"// Returns new Vector2(-1, 0)\n" +"Geometry2D.LineIntersectsLine(fromA, dirA, fromB, new Vector2(-1, -1));\n" +"// Returns null\n" +"Geometry2D.LineIntersectsLine(fromA, dirA, fromB, Vector2.Right);\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"返回直线 ([param from_a], [param dir_a]) 和直线 ([param from_b], [param " +"dir_b]) 的交点。返回 [Vector2],直线平行则返回 [code]null[/code]。\n" +"[code]from[/code] 和 [code]dir[/code] 不是线段或射线的端点,而是直线的斜率" +"([code]dir[/code])和直线上的一个已知点([code]from[/code])。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var from_a = Vector2.ZERO\n" +"var dir_a = Vector2.RIGHT\n" +"var from_b = Vector2.DOWN\n" +"\n" +"# 返回 Vector2(1, 0)\n" +"Geometry2D.line_intersects_line(from_a, dir_a, from_b, Vector2(1, -1))\n" +"# 返回 Vector2(-1, 0)\n" +"Geometry2D.line_intersects_line(from_a, dir_a, from_b, Vector2(-1, -1))\n" +"# 返回 null\n" +"Geometry2D.line_intersects_line(from_a, dir_a, from_b, Vector2.RIGHT)\n" +"[/gdscript]\n" +"[csharp]\n" +"var fromA = Vector2.Zero;\n" +"var dirA = Vector2.Right;\n" +"var fromB = Vector2.Down;\n" +"\n" +"// 返回新的 Vector2(1, 0)\n" +"Geometry2D.LineIntersectsLine(fromA, dirA, fromB, new Vector2(1, -1));\n" +"// 返回新的 Vector2(-1, 0)\n" +"Geometry2D.LineIntersectsLine(fromA, dirA, fromB, new Vector2(-1, -1));\n" +"// 返回 null\n" +"Geometry2D.LineIntersectsLine(fromA, dirA, fromB, Vector2.Right);\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Given an array of [Vector2]s representing tiles, builds an atlas. The " "returned dictionary has two keys: [code]points[/code] is a " @@ -50291,6 +63834,68 @@ msgstr "" "该操作可能会产生一个外部多边形(边界)和多个内部多边形(孔),可以通过调用 " "[method is_polygon_clockwise] 来区分它们。" +msgid "" +"Inflates or deflates [param polygon] by [param delta] units (pixels). If " +"[param delta] is positive, makes the polygon grow outward. If [param delta] " +"is negative, shrinks the polygon inward. Returns an array of polygons because " +"inflating/deflating may result in multiple discrete polygons. Returns an " +"empty array if [param delta] is negative and the absolute value of it " +"approximately exceeds the minimum bounding rectangle dimensions of the " +"polygon.\n" +"Each polygon's vertices will be rounded as determined by [param join_type], " +"see [enum PolyJoinType].\n" +"The operation may result in an outer polygon (boundary) and inner polygon " +"(hole) produced which could be distinguished by calling [method " +"is_polygon_clockwise].\n" +"[b]Note:[/b] To translate the polygon's vertices specifically, multiply them " +"to a [Transform2D]:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var polygon = PackedVector2Array([Vector2(0, 0), Vector2(100, 0), " +"Vector2(100, 100), Vector2(0, 100)])\n" +"var offset = Vector2(50, 50)\n" +"polygon = Transform2D(0, offset) * polygon\n" +"print(polygon) # Prints [(50.0, 50.0), (150.0, 50.0), (150.0, 150.0), (50.0, " +"150.0)]\n" +"[/gdscript]\n" +"[csharp]\n" +"Vector2[] polygon = [new Vector2(0, 0), new Vector2(100, 0), new Vector2(100, " +"100), new Vector2(0, 100)];\n" +"var offset = new Vector2(50, 50);\n" +"polygon = new Transform2D(0, offset) * polygon;\n" +"GD.Print((Variant)polygon); // Prints [(50, 50), (150, 50), (150, 150), (50, " +"150)]\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"按 [param delta] 单位(像素)膨胀或缩小 [param polygon]。如果 [param delta] 为" +"正,则使多边形向外增长。如果 [param delta] 为负,则使多边形向内收缩。返回一个" +"多边形数组,因为膨胀/收缩可能会产生多个离散的多边形。如果 [param delta] 为负," +"且其绝对值大约超过多边形的最小边界矩形尺寸,则返回一个空数组。\n" +"每个多边形的顶点将根据 [param join_type] 决定进行舍入,参见 [enum " +"PolyJoinType]。\n" +"该操作可能会产生一个外部多边形(边界)和内部多边形(孔),这可以通过调用 " +"[method is_polygon_clockwise] 来区分。\n" +"[b]注意:[/b]要具体平移多边形的顶点,将它们乘以一个 [Transform2D]:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var polygon = PackedVector2Array([Vector2(0, 0), Vector2(100, 0), " +"Vector2(100, 100), Vector2(0, 100)])\n" +"var offset = Vector2(50, 50)\n" +"polygon = Transform2D(0, offset) * polygon\n" +"print(polygon) # 输出 [(50.0, 50.0), (150.0, 50.0), (150.0, 150.0), (50.0, " +"150.0)]\n" +"[/gdscript]\n" +"[csharp]\n" +"Vector2[] polygon = [new Vector2(0, 0), new Vector2(100, 0), new Vector2(100, " +"100), new Vector2(0, 100)];\n" +"var offset = new Vector2(50, 50);\n" +"polygon = new Transform2D(0, offset) * polygon;\n" +"GD.Print((Variant)polygon); // 输出 [(50, 50), (150, 50), (150, 150), (50, " +"150)]\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Inflates or deflates [param polyline] by [param delta] units (pixels), " "producing polygons. If [param delta] is positive, makes the polyline grow " @@ -50640,6 +64245,12 @@ msgid "" msgstr "" "添加到 GeometryInstance3D 的边界框([AABB]),以增加其剔除框的额外距离。" +msgid "Use [member gi_lightmap_texel_scale] instead." +msgstr "请改用 [member gi_lightmap_texel_scale]。" + +msgid "The texel density to use for lightmapping in [LightmapGI]." +msgstr "[LightmapGI] 进行光照贴图时使用的纹素密度。" + msgid "" "The global illumination mode to use for the whole geometry. To avoid " "inconsistent results, use a mode that matches the purpose of the mesh during " @@ -50925,9 +64536,35 @@ msgstr "" "[b]注意:[/b]仅支持使用 Forward+ 渲染方法。使用 Mobile 或 Compatibility 渲染方" "法时,该模式与 [constant VISIBILITY_RANGE_FADE_DISABLED] 类似,但会禁用迟滞。" +msgid "Represents a glTF accessor." +msgstr "代表 glTF 访问器。" + +msgid "" +"GLTFAccessor is a data structure representing a glTF [code]accessor[/code] " +"that would be found in the [code]\"accessors\"[/code] array. A buffer is a " +"blob of binary data. A buffer view is a slice of a buffer. An accessor is a " +"typed interpretation of the data in a buffer view.\n" +"Most custom data stored in glTF does not need accessors, only buffer views " +"(see [GLTFBufferView]). Accessors are for more advanced use cases such as " +"interleaved mesh data encoded for the GPU." +msgstr "" +"GLTFAccessor 是一种表示 glTF 访问器 [code]\"accessors\"[/code] 的数据结构,可" +"以在 [code]\"accessors\"[/code] 数组中找到。缓冲区是二进制数据块。缓冲区视图是" +"缓冲区的切片。访问器是对缓冲区视图中数据的类型化解释。\n" +"大多数存储在 glTF 中的自定义数据不需要访问器,只需要缓冲区视图(见 " +"[GLTFBufferView])。访问器适用于更高级的用例,例如为 GPU 编码的交错网格数据。" + msgid "Buffers, BufferViews, and Accessors in Khronos glTF specification" msgstr "Khronos glTF 规范中的缓冲区、BufferView 和访问器" +msgid "" +"The glTF accessor type as an enum. Possible values are 0 for \"SCALAR\", 1 " +"for \"VEC2\", 2 for \"VEC3\", 3 for \"VEC4\", 4 for \"MAT2\", 5 for \"MAT3\", " +"and 6 for \"MAT4\"." +msgstr "" +"glTF 访问器类型枚举。取值为 0 表示“SCALAR”、1 表示“VEC2”、2 表示“VEC3”、3 表" +"示“VEC4”、4 表示“MAT2”、5 表示“MAT3”、6 表示“MAT4”。" + msgid "" "The index of the buffer view this accessor is referencing. If [code]-1[/" "code], this accessor is not referencing any buffer view." @@ -50938,6 +64575,15 @@ msgstr "" msgid "The offset relative to the start of the buffer view in bytes." msgstr "相对于缓冲视图起点的偏移量,单位为字节。" +msgid "" +"The glTF component type as an enum. See [enum GLTFComponentType] for possible " +"values. Within the core glTF specification, a value of 5125 or " +"\"UNSIGNED_INT\" must not be used for any accessor that is not referenced by " +"mesh.primitive.indices." +msgstr "" +"glTF 组件类型枚举。可能的取值见 [enum GLTFComponentType]。核心 glTF 规格中,未" +"通过 mesh.primitive.indices 引用的访问器不能使用 5125 或“UNSIGNED_INT”。" + msgid "The number of elements referenced by this accessor." msgstr "该访问器引用的元素数量。" @@ -50981,6 +64627,9 @@ msgstr "相对于 bufferView 起始位置的偏移量,单位为字节。" msgid "Use [member accessor_type] instead." msgstr "请改用 [member accessor_type]。" +msgid "The glTF accessor type as an enum. Use [member accessor_type] instead." +msgstr "glTF 访问器类型枚举。请改用 [member accessor_type]。" + msgid "" "Accessor type \"SCALAR\". For the glTF object model, this can be used to map " "to a single float, int, or bool value, or a float array." @@ -51030,9 +64679,164 @@ msgstr "" "“MAT4”访问器类型。在 glTF 对象模型中可映射为“float4x4”,在 glTF JSON 中表示为" "包含十六个 float 的数组。" +msgid "" +"Component type \"NONE\". This is not a valid component type, and is used to " +"indicate that the component type is not set." +msgstr "组件类型“NONE”。这不是有效的组件类型,用于表示组件类型未设置。" + +msgid "" +"Component type \"BYTE\". The value is [code]0x1400[/code] which comes from " +"OpenGL. This indicates data is stored in 1-byte or 8-bit signed integers. " +"This is a core part of the glTF specification." +msgstr "" +"组件类型“BYTE”。取值 [code]0x1400[/code] 来源于 OpenGL。表示数据的存储形式为 " +"1 字节即 8 位有符号整数。这是 glTF 规范的核心部分。" + +msgid "" +"Component type \"UNSIGNED_BYTE\". The value is [code]0x1401[/code] which " +"comes from OpenGL. This indicates data is stored in 1-byte or 8-bit unsigned " +"integers. This is a core part of the glTF specification." +msgstr "" +"组件类型“UNSIGNED_BYTE”。取值 [code]0x1401[/code] 来源于 OpenGL。表示数据的存" +"储形式为 1 字节即 8 位无符号整数。这是 glTF 规范的核心部分。" + +msgid "" +"Component type \"SHORT\". The value is [code]0x1402[/code] which comes from " +"OpenGL. This indicates data is stored in 2-byte or 16-bit signed integers. " +"This is a core part of the glTF specification." +msgstr "" +"组件类型“SHORT”。取值 [code]0x1402[/code] 来源于 OpenGL。表示数据的存储形式为 " +"2 字节即 16 位有符号整数。这是 glTF 规范的核心部分。" + +msgid "" +"Component type \"UNSIGNED_SHORT\". The value is [code]0x1403[/code] which " +"comes from OpenGL. This indicates data is stored in 2-byte or 16-bit unsigned " +"integers. This is a core part of the glTF specification." +msgstr "" +"组件类型“UNSIGNED_SHORT”。取值 [code]0x1403[/code] 来源于 OpenGL。表示数据的存" +"储形式为 2 字节即 16 位无符号整数。这是 glTF 规范的核心部分。" + +msgid "" +"Component type \"INT\". The value is [code]0x1404[/code] which comes from " +"OpenGL. This indicates data is stored in 4-byte or 32-bit signed integers. " +"This is NOT a core part of the glTF specification, and may not be supported " +"by all glTF importers. May be used by some extensions including " +"[code]KHR_interactivity[/code]." +msgstr "" +"组件类型“INT”。取值 [code]0x1404[/code] 来源于 OpenGL。表示数据的存储形式为 4 " +"字节即 32 位有符号整数。这不是 glTF 规范的核心部分,可能并不是所有 glTF 导入器" +"都支持。[code]KHR_interactivity[/code] 等扩展可能支持。" + +msgid "" +"Component type \"UNSIGNED_INT\". The value is [code]0x1405[/code] which comes " +"from OpenGL. This indicates data is stored in 4-byte or 32-bit unsigned " +"integers. This is a core part of the glTF specification." +msgstr "" +"组件类型“UNSIGNED_INT”。取值 [code]0x1405[/code] 来源于 OpenGL。表示数据的存储" +"形式为 4 字节即 32 位无符号整数。这是 glTF 规范的核心部分。" + +msgid "" +"Component type \"FLOAT\". The value is [code]0x1406[/code] which comes from " +"OpenGL. This indicates data is stored in 4-byte or 32-bit floating-point " +"numbers. This is a core part of the glTF specification." +msgstr "" +"组件类型“FLOAT”。取值 [code]0x1406[/code] 来源于 OpenGL。表示数据的存储形式为 " +"4 字节即 32 位浮点数。这是 glTF 规范的核心部分。" + +msgid "" +"Component type \"DOUBLE\". The value is [code]0x140A[/code] which comes from " +"OpenGL. This indicates data is stored in 8-byte or 64-bit floating-point " +"numbers. This is NOT a core part of the glTF specification, and may not be " +"supported by all glTF importers. May be used by some extensions including " +"[code]KHR_interactivity[/code]." +msgstr "" +"组件类型“DOUBLE”。取值 [code]0x140A[/code] 来源于 OpenGL。表示数据的存储形式" +"为 8 字节即 64 位浮点数。这不是 glTF 规范的核心部分,可能并不是所有 glTF 导入" +"器都支持。[code]KHR_interactivity[/code] 等扩展可能支持。" + +msgid "" +"Component type \"HALF_FLOAT\". The value is [code]0x140B[/code] which comes " +"from OpenGL. This indicates data is stored in 2-byte or 16-bit floating-point " +"numbers. This is NOT a core part of the glTF specification, and may not be " +"supported by all glTF importers. May be used by some extensions including " +"[code]KHR_interactivity[/code]." +msgstr "" +"组件类型“HALF_FLOAT”。取值 [code]0x140B[/code] 来源于 OpenGL。表示数据的存储形" +"式为 2 字节即 16 位浮点数。这不是 glTF 规范的核心部分,可能并不是所有 glTF 导" +"入器都支持。[code]KHR_interactivity[/code] 等扩展可能支持。" + +msgid "" +"Component type \"LONG\". The value is [code]0x140E[/code] which comes from " +"OpenGL. This indicates data is stored in 8-byte or 64-bit signed integers. " +"This is NOT a core part of the glTF specification, and may not be supported " +"by all glTF importers. May be used by some extensions including " +"[code]KHR_interactivity[/code]." +msgstr "" +"组件类型“LONG”。取值 [code]0x140E[/code] 来源于 OpenGL。表示数据的存储形式为 " +"8 字节即 64 位有符号整数。这不是 glTF 规范的核心部分,可能并不是所有 glTF 导入" +"器都支持。[code]KHR_interactivity[/code] 等扩展可能支持。" + +msgid "" +"Component type \"UNSIGNED_LONG\". The value is [code]0x140F[/code] which " +"comes from OpenGL. This indicates data is stored in 8-byte or 64-bit unsigned " +"integers. This is NOT a core part of the glTF specification, and may not be " +"supported by all glTF importers. May be used by some extensions including " +"[code]KHR_interactivity[/code]." +msgstr "" +"组件类型“UNSIGNED_LONG”。取值 [code]0x140F[/code] 来源于 OpenGL。表示数据的存" +"储形式为 8 字节即 64 位无符号整数。这不是 glTF 规范的核心部分,可能并不是所有 " +"glTF 导入器都支持。[code]KHR_interactivity[/code] 等扩展可能支持。" + +msgid "" +"Gets additional arbitrary data in this [GLTFAnimation] instance. This can be " +"used to keep per-node state data in [GLTFDocumentExtension] classes, which is " +"important because they are stateless.\n" +"The argument should be the [GLTFDocumentExtension] name (does not have to " +"match the extension name in the glTF file), and the return value can be " +"anything you set. If nothing was set, the return value is [code]null[/code]." +msgstr "" +"在这个 [GLTFAnimation] 实例中获取额外的任意数据。这可用于将每个节点的状态数据" +"保存在 [GLTFDocumentExtension] 类中,这很重要,因为它们是无状态的。\n" +"参数应该是 [GLTFDocumentExtension] 的名字(不必与 glTF 文件中的扩展名匹配)," +"且返回值可以是你设置的任何值。如果没有设置任何内容,则返回值为 [code]null[/" +"code]。" + +msgid "" +"Sets additional arbitrary data in this [GLTFAnimation] instance. This can be " +"used to keep per-node state data in [GLTFDocumentExtension] classes, which is " +"important because they are stateless.\n" +"The first argument should be the [GLTFDocumentExtension] name (does not have " +"to match the extension name in the glTF file), and the second argument can be " +"anything you want." +msgstr "" +"在这个 [GLTFAnimation] 实例中设置额外的任意数据。这可用于将每个节点的状态数据" +"保存在 [GLTFDocumentExtension] 类中,这很重要,因为它们是无状态的。\n" +"第一个参数应该是 [GLTFDocumentExtension] 的名字(不必与 glTF 文件中的扩展名匹" +"配),第二个参数可以是你想要的任何内容。" + msgid "The original name of the animation." msgstr "动画的原名。" +msgid "Represents a glTF buffer view." +msgstr "代表 glTF 缓冲区视图。" + +msgid "" +"GLTFBufferView is a data structure representing a glTF [code]bufferView[/" +"code] that would be found in the [code]\"bufferViews\"[/code] array. A buffer " +"is a blob of binary data. A buffer view is a slice of a buffer that can be " +"used to identify and extract data from the buffer.\n" +"Most custom uses of buffers only need to use the [member buffer], [member " +"byte_length], and [member byte_offset]. The [member byte_stride] and [member " +"indices] properties are for more advanced use cases such as interleaved mesh " +"data encoded for the GPU." +msgstr "" +"GLTFBufferView 是一种表示 glTF 缓冲区视图 [code]bufferView[/code] 的数据结构," +"可以在 [code]\"bufferViews\"[/code] 数组中找到。缓冲区是二进制数据块。缓冲区视" +"图是缓冲区的切片,可用于识别缓冲区并从缓冲区中提取数据。\n" +"大多数缓冲区的自定义用途只需要使用 [member buffer]、[member byte_length] 和 " +"[member byte_offset]。[member byte_stride] 和 [member indices] 属性适用于更高" +"级的用例,例如为 GPU 编码的交错网格数据。" + msgid "" "Loads the buffer view data from the buffer referenced by this buffer view in " "the given [GLTFState]. Interleaved data with a byte stride is not yet " @@ -51065,6 +64869,18 @@ msgid "" msgstr "" "交错数据的步幅,单位为字节。如果为 [code]-1[/code],则这个缓冲视图不是交错的。" +msgid "Represents a glTF camera." +msgstr "代表 glTF 相机。" + +msgid "Represents a camera as defined by the base glTF spec." +msgstr "代表基础 glTF 规格中定义的相机。" + +msgid "glTF camera detailed specification" +msgstr "glTF 相机的详细规格" + +msgid "glTF camera spec and example file" +msgstr "glTF 相机规格和示例文件" + msgid "Creates a new GLTFCamera instance by parsing the given [Dictionary]." msgstr "通过解析给定的 [Dictionary] 新建 GLTFCamera 实例。" @@ -51077,15 +64893,107 @@ msgstr "将这个 GLTFCamera 实例序列化为 [Dictionary]。" msgid "Converts this GLTFCamera instance into a Godot [Camera3D] node." msgstr "将这个 GLTFCamera 实例转换为 Godot [Camera3D] 节点。" +msgid "" +"The distance to the far culling boundary for this camera relative to its " +"local Z axis, in meters. This maps to glTF's [code]zfar[/code] property." +msgstr "" +"该相机与远剔除边界的距离,相对于其本地 Z 轴,单位为米。映射到 glTF 的 " +"[code]zfar[/code] 属性。" + +msgid "" +"The distance to the near culling boundary for this camera relative to its " +"local Z axis, in meters. This maps to glTF's [code]znear[/code] property." +msgstr "" +"该相机与近剔除边界的距离,相对于其本地 Z 轴,单位为米。映射到 glTF 的 " +"[code]znear[/code] 属性。" + +msgid "" +"The FOV of the camera. This class and glTF define the camera FOV in radians, " +"while Godot uses degrees. This maps to glTF's [code]yfov[/code] property. " +"This value is only used for perspective cameras, when [member perspective] is " +"[code]true[/code]." +msgstr "" +"该相机的 FOV。这个类和 glTF 在定义相机 FOV 时使用的都是弧度,但 Godot 使用的是" +"度。映射到 glTF 的 [code]yfov[/code] 属性。只在透视相机中使用,即 [member " +"perspective] 为 [code]true[/code] 时。" + +msgid "" +"If [code]true[/code], the camera is in perspective mode. Otherwise, the " +"camera is in orthographic/orthogonal mode. This maps to glTF's camera " +"[code]type[/code] property. See [member Camera3D.projection] and the glTF " +"spec for more information." +msgstr "" +"如果为 [code]true[/code],则相机处于透视模式。否则相机处于正交模式。映射到 " +"glTF 的相机 [code]type[/code] 属性。详见 [member Camera3D.projection] 及 glTF " +"规格。" + +msgid "" +"The size of the camera. This class and glTF define the camera size magnitude " +"as a radius in meters, while Godot defines it as a diameter in meters. This " +"maps to glTF's [code]ymag[/code] property. This value is only used for " +"orthographic/orthogonal cameras, when [member perspective] is [code]false[/" +"code]." +msgstr "" +"该相机的大小。这个类和 glTF 在定义相机大小尺度时使用的都是半径的米数,但 " +"Godot 使用的是直径的米数。映射到 glTF 的 [code]ymag[/code] 属性。只在正交相机" +"中使用,即 [member perspective] 为 [code]false[/code] 时。" + msgid "Class for importing and exporting glTF files in and out of Godot." msgstr "用于在 Godot 中导入和导出 glTF 文件的类。" +msgid "" +"GLTFDocument supports reading data from a glTF file, buffer, or Godot scene. " +"This data can then be written to the filesystem, buffer, or used to create a " +"Godot scene.\n" +"All of the data in a glTF scene is stored in the [GLTFState] class. " +"GLTFDocument processes state objects, but does not contain any scene data " +"itself. GLTFDocument has member variables to store export configuration " +"settings such as the image format, but is otherwise stateless. Multiple " +"scenes can be processed with the same settings using the same GLTFDocument " +"object and different [GLTFState] objects.\n" +"GLTFDocument can be extended with arbitrary functionality by extending the " +"[GLTFDocumentExtension] class and registering it with GLTFDocument via " +"[method register_gltf_document_extension]. This allows for custom data to be " +"imported and exported." +msgstr "" +"GLTFDocument 支持从 glTF 文件、缓冲区或 Godot 场景中读取数据。然后可以将该数据" +"写入文件系统、缓冲区或用于创建 Godot 场景。\n" +"glTF 场景中的所有数据都存储在 [GLTFState] 类中。GLTFDocument 处理状态对象,但" +"本身不包含任何场景数据。GLTFDocument 有成员变量来存储如图像格式等导出配置设" +"置,但在其他方面是无状态的。可以使用相同的 GLTFDocument 对象和不同的 " +"[GLTFState] 对象以相同的设置处理多个场景。\n" +"通过扩展 [GLTFDocumentExtension] 类并通过 [method " +"register_gltf_document_extension] 将其注册到 GLTFDocument,则可以使用任意功能" +"来扩展 GLTFDocument。这允许自定义数据被导入和导出。" + msgid "glTF 'What the duck?' guide" msgstr "glTF '鸭子是什么?' 指南" msgid "Khronos glTF specification" msgstr "Khronos glTF 规范" +msgid "" +"Takes a [PackedByteArray] defining a glTF and imports the data to the given " +"[GLTFState] object through the [param state] parameter.\n" +"[b]Note:[/b] The [param base_path] tells [method append_from_buffer] where to " +"find dependencies and can be empty." +msgstr "" +"接受定义 glTF 的 [PackedByteArray],将数据导入通过 [param state] 参数给定的 " +"[GLTFState] 对象。\n" +"[b]注意:[/b][param base_path] 代表 [method append_from_buffer] 寻找依赖项的位" +"置,可以为空。" + +msgid "" +"Takes a path to a glTF file and imports the data at that file path to the " +"given [GLTFState] object through the [param state] parameter.\n" +"[b]Note:[/b] The [param base_path] tells [method append_from_file] where to " +"find dependencies and can be empty." +msgstr "" +"接受 glTF 文件的路径,将文件路径处的数据导入通过 [param state] 参数给定的 " +"[GLTFState] 对象。\n" +"[b]注意:[/b][param base_path] 代表 [method append_from_file] 寻找依赖项的位" +"置,可以为空。" + msgid "" "Takes a Godot Engine scene node and exports it and its descendants to the " "given [GLTFState] object through the [param state] parameter." @@ -51093,6 +65001,25 @@ msgstr "" "接收一个 Godot 引擎的场景节点,并通过 [param state] 参数将其及其后代导出到给定" "的 [GLTFState] 对象。" +msgid "" +"Determines a mapping between the given Godot [param node_path] and the " +"corresponding glTF Object Model JSON pointer(s) in the generated glTF file. " +"The details of this mapping are returned in a [GLTFObjectModelProperty] " +"object. Additional mappings can be supplied via the [method " +"GLTFDocumentExtension._import_object_model_property] callback method." +msgstr "" +"确定给定 Godot [param node_path] 与生成的 glTF 文件中相应的 glTF 对象模型 " +"JSON 指针之间的映射。该映射的详细信息以 [GLTFObjectModelProperty] 对象的形式返" +"回。可以通过 [method GLTFDocumentExtension._import_object_model_property] 回调" +"方法提供额外的映射。" + +msgid "" +"Takes a [GLTFState] object through the [param state] parameter and returns a " +"glTF [PackedByteArray]." +msgstr "" +"通过 [param state] 参数接收一个 [GLTFState] 对象,并返回一个 glTF " +"[PackedByteArray]。" + msgid "" "Takes a [GLTFState] object through the [param state] parameter and returns a " "Godot Engine scene node.\n" @@ -51102,6 +65029,34 @@ msgstr "" "节点。\n" "[param bake_fps] 参数会覆盖 [param state] 中的 bake_fps。" +msgid "" +"Determines a mapping between the given glTF Object Model [param json_pointer] " +"and the corresponding Godot node path(s) in the generated Godot scene. The " +"details of this mapping are returned in a [GLTFObjectModelProperty] object. " +"Additional mappings can be supplied via the [method GLTFDocumentExtension." +"_export_object_model_property] callback method." +msgstr "" +"确定给定 glTF 对象模型 [param json_pointer] 与生成的 Godot 场景中相应的 Godot " +"节点路径之间的映射。该映射的详细信息以 [GLTFObjectModelProperty] 对象的形式返" +"回。可以通过 [method GLTFDocumentExtension._export_object_model_property] 回调" +"方法提供额外的映射。" + +msgid "" +"Registers the given [GLTFDocumentExtension] instance with GLTFDocument. If " +"[param first_priority] is [code]true[/code], this extension will be run " +"first. Otherwise, it will be run last.\n" +"[b]Note:[/b] Like GLTFDocument itself, all GLTFDocumentExtension classes must " +"be stateless in order to function properly. If you need to store data, use " +"the [code]set_additional_data[/code] and [code]get_additional_data[/code] " +"methods in [GLTFState] or [GLTFNode]." +msgstr "" +"使用 GLTFDocument 注册给定的 [GLTFDocumentExtension] 实例。如果 [param " +"first_priority] 为 [code]true[/code],则该扩展将被首先运行。否则,它将被最后运" +"行。\n" +"[b]注意:[/b]与 GLTFDocument 本身一样,所有 GLTFDocumentExtension 类都必须是无" +"状态的才能正常运行。如果需要存储数据,使用 [GLTFState] 或 [GLTFNode] 中的 " +"[code]set_additional_data[/code] 和 [code]get_additional_data[/code] 方法。" + msgid "Unregisters the given [GLTFDocumentExtension] instance." msgstr "将给定的 [GLTFDocumentExtension] 实例取消注册。" @@ -51116,6 +65071,18 @@ msgstr "" "[b]注意:[/b]glTF 文件的扩展名决定了它是一个 .glb 二进制文件还是一个 .gltf 文" "本文件。" +msgid "" +"The user-friendly name of the export image format. This is used when " +"exporting the glTF file, including writing to a file and writing to a byte " +"array.\n" +"By default, Godot allows the following options: \"None\", \"PNG\", \"JPEG\", " +"\"Lossless WebP\", and \"Lossy WebP\". Support for more image formats can be " +"added in [GLTFDocumentExtension] classes." +msgstr "" +"导出图像格式的用户友好名称,用于导出 glTF 文件,包括写入文件和写入字节数组。\n" +"默认情况下,Godot 允许以下选项:“无”“PNG”“JPEG”“无损 WebP”“有损 WebP”。可以使" +"用 [GLTFDocumentExtension] 类添加对更多图像格式的支持。" + msgid "" "If [member image_format] is a lossy image format, this determines the lossy " "quality of the image. On a range of [code]0.0[/code] to [code]1.0[/code], " @@ -51173,6 +65140,73 @@ msgstr "" msgid "[GLTFDocument] extension class." msgstr "[GLTFDocument] 扩展类。" +msgid "" +"Extends the functionality of the [GLTFDocument] class by allowing you to run " +"arbitrary code at various stages of glTF import or export.\n" +"To use, make a new class extending GLTFDocumentExtension, override any " +"methods you need, make an instance of your class, and register it using " +"[method GLTFDocument.register_gltf_document_extension].\n" +"[b]Note:[/b] Like GLTFDocument itself, all GLTFDocumentExtension classes must " +"be stateless in order to function properly. If you need to store data, use " +"the [code]set_additional_data[/code] and [code]get_additional_data[/code] " +"methods in [GLTFState] or [GLTFNode]." +msgstr "" +"通过允许在 glTF 导入或导出的各个阶段运行任意代码,来扩展 [GLTFDocument] 类的功" +"能。\n" +"使用时请创建一个扩展 GLTFDocumentExtension 的新类,覆盖需要的任何方法,创建你" +"的类的实例,然后使用 [method GLTFDocument.register_gltf_document_extension] 注" +"册。\n" +"[b]注意:[/b]与 GLTFDocument 本身一样,所有 GLTFDocumentExtension 类都必须是无" +"状态的才能正常运行。如果需要存储数据,请使用 [GLTFState] 或 [GLTFNode] 中的 " +"[code]set_additional_data[/code] 和 [code]get_additional_data[/code] 方法。" + +msgid "" +"Part of the export process. This method is run after [method " +"_export_preflight] and before [method _export_post_convert].\n" +"Runs when converting the data from a Godot scene node. This method can be " +"used to process the Godot scene node data into a format that can be used by " +"[method _export_node]." +msgstr "" +"导出过程的一部分。该方法在 [method _export_preflight] 之后、[method " +"_export_post_convert] 之前运行。\n" +"在转换来自 Godot 场景节点的数据时运行。该方法可用于将 Godot 场景节点的数据处理" +"成可以被 [method _export_node] 使用的格式。" + +msgid "" +"Part of the export process. This method is run after [method " +"_get_saveable_image_formats] and before [method _export_post]. If this " +"[GLTFDocumentExtension] is used for exporting images, this runs after [method " +"_serialize_texture_json].\n" +"This method can be used to modify the final JSON of each node. Data should be " +"primarily stored in [param gltf_node] prior to serializing the JSON, but the " +"original Godot [Node] is also provided if available. [param node] may be " +"[code]null[/code] if not available, such as when exporting glTF data not " +"generated from a Godot scene." +msgstr "" +"导出过程的一部分。该方法在 [method _get_saveable_image_formats] 之后、[method " +"_export_post] 之前运行。如果该 [GLTFDocumentExtension] 用于导出图像,则会在 " +"[method _serialize_texture_json] 之后运行。\n" +"该方法可用于修改每个节点的最终 JSON。在序列化 JSON 之前,数据应主要被存储在 " +"[param gltf_node] 中,但如果原始 Godot [Node] 可用,它也将被提供。[param " +"node] 不可用时可能为 [code]null[/code],例如导出不是从 Godot 场景生成的 glTF " +"数据的场合。" + +msgid "" +"Part of the import process. This method is run after [method " +"_import_pre_generate] and before [method _import_node].\n" +"Runs when generating a Godot scene node from a GLTFNode. The returned node " +"will be added to the scene tree. Multiple nodes can be generated in this step " +"if they are added as a child of the returned node.\n" +"[b]Note:[/b] The [param scene_parent] parameter may be [code]null[/code] if " +"this is the single root node." +msgstr "" +"导入过程的一部分。该方法在 [method _import_pre_generate] 之后、[method " +"_import_node] 之前运行。\n" +"当从 GLTFNode 生成 Godot 场景节点时运行。返回的节点将被添加到场景树中。如果将" +"多个节点添加为返回节点的子节点,则可以在该步骤中生成这些节点。\n" +"[b]注意:[/b]如果这是单个根节点,则 [param scene_parent] 参数可以为 " +"[code]null[/code]。" + msgid "" "Returns the file extension to use for saving image data into, for example, " "[code]\".png\"[/code]. If defined, when this extension is used to handle " @@ -51207,6 +65241,18 @@ msgstr "" "来将运行 [method _export_node]。如果格式名称包含 [code]\"Lossy\"[/code],则会" "显示有损质量滑块。" +msgid "" +"Part of the import process. This method is run after [method " +"_import_preflight] and before [method _parse_node_extensions].\n" +"Returns an array of the glTF extensions supported by this " +"GLTFDocumentExtension class. This is used to validate if a glTF file with " +"required extensions can be loaded." +msgstr "" +"导入过程的一部分。该方法在 [method _import_preflight] 之后、[method " +"_parse_node_extensions] 之前运行。\n" +"返回一个数组,元素为该 GLTFDocumentExtension 类支持的 glTF 扩展。用于验证是否" +"可以加载具有所需扩展名的 glTF 文件。" + msgid "" "Part of the import process. This method is run after [method " "_generate_scene_node] and before [method _import_post].\n" @@ -51226,6 +65272,29 @@ msgstr "" "导入过程的一部分。该方法在最后运行,在导入过程的所有其他部分之后。\n" "该方法可用于修改导入过程生成的最终 Godot 场景。" +msgid "" +"Part of the import process. This method is run after [method " +"_parse_node_extensions] and before [method _import_pre_generate].\n" +"This method can be used to modify any of the data imported so far after " +"parsing each node, but before generating the scene or any of its nodes." +msgstr "" +"导入过程的一部分。该方法在 [method _parse_node_extensions] 之后、[method " +"_import_pre_generate] 之前运行。\n" +"该方法可用于在解析后、生成节点并运行最终的各节点导入步骤之前,修改到目前为止导" +"入的任何数据。" + +msgid "" +"Part of the import process. This method is run after [method " +"_import_post_parse] and before [method _generate_scene_node].\n" +"This method can be used to modify or read from any of the processed data " +"structures, before generating the nodes and then running the final per-node " +"import step." +msgstr "" +"导入过程的一部分。该方法在 [method _import_post_parse] 之后、[method " +"_generate_scene_node] 之前运行。\n" +"该方法可用于在解析后、生成节点并运行最终的各节点导入步骤之前,修改到目前为止导" +"入的任何数据。" + msgid "" "Part of the import process. This method is run after [method " "_get_supported_extensions] and before [method _import_post_parse].\n" @@ -51258,6 +65327,17 @@ msgstr "" "[method GLTFState.add_used_extension] 将该扩展添加为使用的扩展,如果你不提供后" "备,请务必将 [code]required[/code] 设置为 [code]true[/code]。" +msgid "Represents a glTF light." +msgstr "代表 glTF 灯光。" + +msgid "" +"Represents a light as defined by the [code]KHR_lights_punctual[/code] glTF " +"extension." +msgstr "代表由 [code]KHR_lights_punctual[/code] glTF 扩展定义的灯光。" + +msgid "KHR_lights_punctual glTF extension spec" +msgstr "KHR_lights_punctual glTF 扩展规格" + msgid "Creates a new GLTFLight instance by parsing the given [Dictionary]." msgstr "通过解析给定的 [Dictionary] 新建 GLTFLight 实例。" @@ -51318,6 +65398,52 @@ msgstr "" "的过渡。如果这个角度是一个半圆,那么聚光灯会向所有方向发射。创建一个 Godot " "[SpotLight3D] 时,外锥角被用作聚光灯的角度。" +msgid "" +"The range of the light, beyond which the light has no effect. glTF lights " +"with no range defined behave like physical lights (which have infinite " +"range). When creating a Godot light, the range is clamped to 4096." +msgstr "" +"灯光的范围,超过这个范围灯光无效。没有定义范围的 glTF 灯光的行为与无限范围的物" +"理灯光一样。当创建 Godot 灯光时,范围限制在 4096。" + +msgid "GLTFMesh represents a glTF mesh." +msgstr "GLTFMesh 代表 glTF 网格。" + +msgid "" +"GLTFMesh handles 3D mesh data imported from glTF files. It includes " +"properties for blend channels, blend weights, instance materials, and the " +"mesh itself." +msgstr "" +"GLTFMesh 处理从 glTF 文件导入的 3D 网格数据,包括混合通道、混合权重、实例材质" +"等属性和网格本身。" + +msgid "" +"Gets additional arbitrary data in this [GLTFMesh] instance. This can be used " +"to keep per-node state data in [GLTFDocumentExtension] classes, which is " +"important because they are stateless.\n" +"The argument should be the [GLTFDocumentExtension] name (does not have to " +"match the extension name in the glTF file), and the return value can be " +"anything you set. If nothing was set, the return value is [code]null[/code]." +msgstr "" +"在这个 [GLTFMesh] 实例中获取额外的任意数据。这可用于将每个节点的状态数据保存" +"在 [GLTFDocumentExtension] 类中,这很重要,因为它们是无状态的。\n" +"参数应该是 [GLTFDocumentExtension] 的名字(不必与 glTF 文件中的扩展名匹配)," +"且返回值可以是你设置的任何值。如果没有设置任何内容,则返回值为 [code]null[/" +"code]。" + +msgid "" +"Sets additional arbitrary data in this [GLTFMesh] instance. This can be used " +"to keep per-node state data in [GLTFDocumentExtension] classes, which is " +"important because they are stateless.\n" +"The first argument should be the [GLTFDocumentExtension] name (does not have " +"to match the extension name in the glTF file), and the second argument can be " +"anything you want." +msgstr "" +"在这个 [GLTFMesh] 实例中设置额外的任意数据。这可用于将每个节点的状态数据保存" +"在 [GLTFDocumentExtension] 类中,这很重要,因为它们是无状态的。\n" +"第一个参数应该是 [GLTFDocumentExtension] 的名字(不必与 glTF 文件中的扩展名匹" +"配),第二个参数可以是你想要的任何内容。" + msgid "An array of floats representing the blend weights of the mesh." msgstr "float 数组,代表网格的混合权重。" @@ -51331,6 +65457,74 @@ msgstr "代表网格本身的 [ImporterMesh] 对象。" msgid "The original name of the mesh." msgstr "网格的原名。" +msgid "glTF node class." +msgstr "glTF 节点类。" + +msgid "" +"Represents a glTF node. glTF nodes may have names, transforms, children " +"(other glTF nodes), and more specialized properties (represented by their own " +"classes).\n" +"glTF nodes generally exist inside of [GLTFState] which represents all data of " +"a glTF file. Most of GLTFNode's properties are indices of other data in the " +"glTF file. You can extend a glTF node with additional properties by using " +"[method get_additional_data] and [method set_additional_data]." +msgstr "" +"代表 glTF 节点。glTF 节点中可以包含名称、变换、子节点(glTF 节点)以及其他专门" +"的属性(由各自不同的类表示)。\n" +"glTF 节点通常存在于表示 glTF 文件中的所有数据的 [GLTFState] 内部。大多数 " +"GLTFNode 的属性都是 glTF 文件中其他数据的索引。你可以使用 [method " +"get_additional_data] 和 [method set_additional_data] 来添加额外的属性,扩展 " +"glTF 节点。" + +msgid "glTF scene and node spec" +msgstr "glTF 场景和节点规格" + +msgid "Appends the given child node index to the [member children] array." +msgstr "将给定的子节点索引附加到 [member children] 数组。" + +msgid "" +"Gets additional arbitrary data in this [GLTFNode] instance. This can be used " +"to keep per-node state data in [GLTFDocumentExtension] classes, which is " +"important because they are stateless.\n" +"The argument should be the [GLTFDocumentExtension] name (does not have to " +"match the extension name in the glTF file), and the return value can be " +"anything you set. If nothing was set, the return value is [code]null[/code]." +msgstr "" +"在这个 [GLTFNode] 实例中获取额外的任意数据。这可以用来保持 " +"[GLTFDocumentExtension] 类中每个节点的状态数据,这很重要,因为它们是无状态" +"的。\n" +"参数应该是 [GLTFDocumentExtension] 的名字(不必与 glTF 文件中的扩展名相匹" +"配),而该返回值可以是你设置的任何值。如果没有设置任何值,则返回值为 " +"[code]null[/code]。" + +msgid "" +"Sets additional arbitrary data in this [GLTFNode] instance. This can be used " +"to keep per-node state data in [GLTFDocumentExtension] classes, which is " +"important because they are stateless.\n" +"The first argument should be the [GLTFDocumentExtension] name (does not have " +"to match the extension name in the glTF file), and the second argument can be " +"anything you want." +msgstr "" +"在这个 [GLTFNode] 实例中设置额外的任意数据。这可以用来保持 " +"[GLTFDocumentExtension] 类中每个节点的状态数据,这很重要,因为它们是无状态" +"的。\n" +"第一个参数应该是 [GLTFDocumentExtension] 的名字(不必与 glTF 文件中的扩展名相" +"匹配),第二个参数可以是任何你想要的东西。" + +msgid "" +"If this glTF node is a camera, the index of the [GLTFCamera] in the " +"[GLTFState] that describes the camera's properties. If -1, this node is not a " +"camera." +msgstr "" +"如果该 glTF 节点是一个相机,则 [GLTFState] 中 [GLTFCamera] 的索引将描述该相机" +"的属性。如果为 -1,则该节点不是相机。" + +msgid "" +"The indices of the child nodes in the [GLTFState]. If this glTF node has no " +"children, this will be an empty array." +msgstr "" +"[GLTFState] 中子节点的索引。如果该 glTF 节点没有子节点,则这将是一个空数组。" + msgid "" "How deep into the node hierarchy this node is. A root node will have a height " "of 0, its children will have a height of 1, and so on. If -1, the height has " @@ -51339,6 +65533,20 @@ msgstr "" "该节点在节点层次结构中的深度。根节点的高度为 0,其子节点的高度为 1,依此类推。" "如果为 -1,则尚未计算高度。" +msgid "" +"If this glTF node is a light, the index of the [GLTFLight] in the [GLTFState] " +"that describes the light's properties. If -1, this node is not a light." +msgstr "" +"如果该 glTF 节点是一盏灯,则 [GLTFState] 中 [GLTFLight] 的索引将描述该灯的属" +"性。如果为 -1,则该节点不是灯。" + +msgid "" +"If this glTF node is a mesh, the index of the [GLTFMesh] in the [GLTFState] " +"that describes the mesh's properties. If -1, this node is not a mesh." +msgstr "" +"如果该 glTF 节点是网格,则 [GLTFState] 中 [GLTFMesh] 的索引将描述该网格的属" +"性。如果为 -1,则该节点不是网格。" + msgid "The original name of the node." msgstr "节点的原名。" @@ -51347,11 +65555,238 @@ msgid "" "node." msgstr "[GLTFState] 中父节点的索引。如果为 -1,则该节点为根节点。" +msgid "The position of the glTF node relative to its parent." +msgstr "该 glTF 节点相对于其父节点的位置。" + +msgid "The rotation of the glTF node relative to its parent." +msgstr "该 glTF 节点相对于其父节点的旋转。" + +msgid "The scale of the glTF node relative to its parent." +msgstr "该 glTF 节点相对于其父节点的缩放。" + +msgid "" +"If this glTF node has a skeleton, the index of the [GLTFSkeleton] in the " +"[GLTFState] that describes the skeleton's properties. If -1, this node does " +"not have a skeleton." +msgstr "" +"如果该 glTF 节点具有骨架,则 [GLTFState] 中的 [GLTFSkeleton] 的索引将描述骨架" +"的属性。如果为 -1,则该节点没有骨架。" + +msgid "" +"If this glTF node has a skin, the index of the [GLTFSkin] in the [GLTFState] " +"that describes the skin's properties. If -1, this node does not have a skin." +msgstr "" +"如果该 glTF 节点有皮肤,则 [GLTFState] 中的 [GLTFSkin] 的索引将描述皮肤的属" +"性。如果为 -1,则该节点没有皮肤。" + +msgid "" +"The transform of the glTF node relative to its parent. This property is " +"usually unused since the position, rotation, and scale properties are " +"preferred." +msgstr "" +"glTF 节点相对于其父节点的变换。由于通常首选位置、旋转和缩放属性,因此不使用该" +"属性。" + +msgid "Describes how to access a property as defined in the glTF object model." +msgstr "描述如何访问 glTF 对象模型中定义的属性。" + +msgid "" +"GLTFObjectModelProperty defines a mapping between a property in the glTF " +"object model and a NodePath in the Godot scene tree. This can be used to " +"animate properties in a glTF file using the [code]KHR_animation_pointer[/" +"code] extension, or to access them through an engine-agnostic script such as " +"a behavior graph as defined by the [code]KHR_interactivity[/code] extension.\n" +"The glTF property is identified by JSON pointer(s) stored in [member " +"json_pointers], while the Godot property it maps to is defined by [member " +"node_paths]. In most cases [member json_pointers] and [member node_paths] " +"will each only have one item, but in some cases a single glTF JSON pointer " +"will map to multiple Godot properties, or a single Godot property will be " +"mapped to multiple glTF JSON pointers, or it might be a many-to-many " +"relationship.\n" +"[Expression] objects can be used to define conversions between the data, such " +"as when glTF defines an angle in radians and Godot uses degrees. The [member " +"object_model_type] property defines the type of data stored in the glTF file " +"as defined by the object model, see [enum GLTFObjectModelType] for possible " +"values." +msgstr "" +"GLTFObjectModelProperty 定义了 glTF 对象模型中的属性和 Godot 场景树中 " +"NodePath 之间的映射,可以用来使用 [code]KHR_animation_pointer[/code] 扩展对属" +"性进行动画,也可以通过与引擎无关的脚本(例如 [code]KHR_interactivity[/code] 扩" +"展定义的行为图)来访问这些属性。\n" +"glTF 属性由 [member json_pointers] 中存储的 JSON 指针标识,对应的 Godot 属性则" +"由 [member node_paths] 定义。大多数情况下,[member json_pointers] 和 [member " +"node_paths] 都只会有一个元素,不过部分情况下一个 glTF JSON 指针也会对应多个 " +"Godot 属性,一个 Godot 属性也可能对应多个 glTF JSON 指针,还可能会存在多对多的" +"关系。\n" +"可以使用 [Expression] 对象定义数据之间的转换,例如可能 glTF 中定义夹角时使用弧" +"度而 Godot 则使用角度。[member object_model_type] 属性定义的是 glTF 文件中所存" +"储数据的类型,该类型由对象模型定义,可能的取值见 [enum GLTFObjectModelType]。" + +msgid "GLTF Object Model" +msgstr "GLTF 对象模型" + +msgid "KHR_animation_pointer GLTF extension" +msgstr "KHR_animation_pointer GLTF 扩展" + +msgid "" +"Appends a [NodePath] to [member node_paths]. This can be used by " +"[GLTFDocumentExtension] classes to define how a glTF object model property " +"maps to a Godot property, or multiple Godot properties. Prefer using [method " +"append_path_to_property] for simple cases. Be sure to also call [method " +"set_types] once (the order does not matter)." +msgstr "" +"将一个 [NodePath] 附加到 [member node_paths]。[GLTFDocumentExtension] 类可以用" +"它来定义如何将 glTF 对象模型属性映射到一个或或多个 Godot 属性。简单情况建议使" +"用 [method append_path_to_property]。请记得再调用一次 [method set_types](顺序" +"无关紧要)。" + +msgid "" +"Returns [code]true[/code] if [member json_pointers] is not empty. This is " +"used during export to determine if a [GLTFObjectModelProperty] can handle " +"converting a Godot property to a glTF object model property." +msgstr "" +"如果 [member json_pointers] 非空则返回 [code]true[/code]。用于在导出过程中确" +"定 [GLTFObjectModelProperty] 是否能够处理将 Godot 属性转换为 glTF 对象模型属" +"性。" + +msgid "" +"Returns [code]true[/code] if [member node_paths] is not empty. This is used " +"during import to determine if a [GLTFObjectModelProperty] can handle " +"converting a glTF object model property to a Godot property." +msgstr "" +"如果 [member node_paths] 非空则返回 [code]true[/code]。用于在导入过程中确定 " +"[GLTFObjectModelProperty] 是否能够处理将 glTF 对象模型属性转换为 Godot 属性。" + +msgid "" +"The type of data stored in the glTF file as defined by the object model. This " +"is a superset of the available accessor types, and determines the accessor " +"type. See [enum GLTFObjectModelType] for possible values." +msgstr "" +"根据对象模型定义,存储在 glTF 文件中的数据类型。这是可用访问器类型的超集,决定" +"了访问器类型。可能的取值见 [enum GLTFObjectModelType]。" + +msgid "" +"The type of data stored in the Godot property. This is the type of the " +"property that the [member node_paths] point to." +msgstr "" +"存储在 Godot 属性中的数据类型。这是 [member node_paths] 指向的属性类型。" + +msgid "" +"Unknown or not set object model type. If the object model type is set to this " +"value, the real type still needs to be determined." +msgstr "" +"未知或未设置的对象模型类型。如果将对象模型类型设置为该值,则仍需确定真实类型。" + +msgid "" +"Object model type \"bool\". Represented in the glTF JSON as a boolean, and " +"encoded in a [GLTFAccessor] as \"SCALAR\". When encoded in an accessor, a " +"value of [code]0[/code] is [code]false[/code], and any other value is " +"[code]true[/code]." +msgstr "" +"对象模型类型“bool”。在 glTF JSON 中表示为布尔值,在 [GLTFAccessor] 中编码" +"为“SCALAR”。在访问器中编码时 [code]0[/code] 表示 [code]false[/code],任何其他" +"值都表示 [code]true[/code]。" + +msgid "" +"Object model type \"float\". Represented in the glTF JSON as a number, and " +"encoded in a [GLTFAccessor] as \"SCALAR\"." +msgstr "" +"对象模型类型“float”。在 glTF JSON 中表示为数字,在 [GLTFAccessor] 中编码" +"为“SCALAR”。" + +msgid "" +"Object model type \"float[lb][rb]\". Represented in the glTF JSON as an array " +"of numbers, and encoded in a [GLTFAccessor] as \"SCALAR\"." +msgstr "" +"对象模型类型“float[lb][rb]”。在 glTF JSON 中表示为数字数组,在 [GLTFAccessor] " +"中编码为“SCALAR”。" + +msgid "" +"Object model type \"float2\". Represented in the glTF JSON as an array of two " +"numbers, and encoded in a [GLTFAccessor] as \"VEC2\"." +msgstr "" +"对象模型类型“float2”。在 glTF JSON 中表示为两个数字的数组,在 [GLTFAccessor] " +"中编码为“VEC2”。" + +msgid "" +"Object model type \"float3\". Represented in the glTF JSON as an array of " +"three numbers, and encoded in a [GLTFAccessor] as \"VEC3\"." +msgstr "" +"对象模型类型“float3”。在 glTF JSON 中表示为三个数字的数组,在 [GLTFAccessor] " +"中编码为“VEC3”。" + +msgid "" +"Object model type \"float4\". Represented in the glTF JSON as an array of " +"four numbers, and encoded in a [GLTFAccessor] as \"VEC4\"." +msgstr "" +"对象模型类型“float4”。在 glTF JSON 中表示为四个数字的数组,在 [GLTFAccessor] " +"中编码为“VEC4”。" + +msgid "" +"Object model type \"float2x2\". Represented in the glTF JSON as an array of " +"four numbers, and encoded in a [GLTFAccessor] as \"MAT2\"." +msgstr "" +"对象模型类型“float2x2”。在 glTF JSON 中表示为四个数字的数组,在 " +"[GLTFAccessor] 中编码为“MAT2”。" + +msgid "" +"Object model type \"float3x3\". Represented in the glTF JSON as an array of " +"nine numbers, and encoded in a [GLTFAccessor] as \"MAT3\"." +msgstr "" +"对象模型类型“float3x3”。在 glTF JSON 中表示为九个数字的数组,在 " +"[GLTFAccessor] 中编码为“MAT3”。" + +msgid "" +"Object model type \"float4x4\". Represented in the glTF JSON as an array of " +"sixteen numbers, and encoded in a [GLTFAccessor] as \"MAT4\"." +msgstr "" +"对象模型类型“float4x4”。在 glTF JSON 中表示为十六个数字的数组,在 " +"[GLTFAccessor] 中编码为“MAT4”。" + +msgid "" +"Object model type \"int\". Represented in the glTF JSON as a number, and " +"encoded in a [GLTFAccessor] as \"SCALAR\". The range of values is limited to " +"signed integers. For [code]KHR_interactivity[/code], only 32-bit integers are " +"supported." +msgstr "" +"对象模型类型“int”。在 glTF JSON 中表示为数字,在 [GLTFAccessor] 中编码" +"为“SCALAR”。取值范围仅限于有符号整数。[code]KHR_interactivity[/code] 仅支持 " +"32 位整数。" + +msgid "Represents a glTF physics body." +msgstr "代表 glTF 物理体。" + +msgid "" +"Represents a physics body as an intermediary between the " +"[code]OMI_physics_body[/code] glTF data and Godot's nodes, and it's " +"abstracted in a way that allows adding support for different glTF physics " +"extensions in the future." +msgstr "" +"代表物理体作为 [code]OMI_physics_body[/code] glTF 数据和 Godot 节点之间的中" +"介,并且它的抽象方式允许在未来添加对不同 glTF 物理扩展的支持。" + +msgid "OMI_physics_body glTF extension" +msgstr "OMI_physics_body glTF 扩展" + +msgid "" +"Creates a new GLTFPhysicsBody instance by parsing the given [Dictionary] in " +"the [code]OMI_physics_body[/code] glTF extension format." +msgstr "" +"通过解析 [code]OMI_physics_body[/code] glTF 扩展格式中给定的 [Dictionary],创" +"建新的 GLTFPhysicsBody 实例。" + msgid "" "Creates a new GLTFPhysicsBody instance from the given Godot " "[CollisionObject3D] node." msgstr "从给定的 Godot [CollisionObject3D] 节点新建 GLTFPhysicsBody 实例。" +msgid "" +"Serializes this GLTFPhysicsBody instance into a [Dictionary]. It will be in " +"the format expected by the [code]OMI_physics_body[/code] glTF extension." +msgstr "" +"将这个 GLTFPhysicsBody 实例序列化到 [Dictionary] 中。使用的是 " +"[code]OMI_physics_body[/code] glTF 扩展所需要的格式。" + msgid "" "Converts this GLTFPhysicsBody instance into a Godot [CollisionObject3D] node." msgstr "将这个 GLTFPhysicsBody 实例转换为 Godot [CollisionObject3D] 节点。" @@ -51422,6 +65857,25 @@ msgid "" "type is \"rigid\" or \"vehicle\"." msgstr "该物理体的质量,单位为千克。仅在物体类型为“rigid”或“vehicle”时使用。" +msgid "Represents a glTF physics shape." +msgstr "代表 glTF 物理形状。" + +msgid "" +"Represents a physics shape as defined by the [code]OMI_physics_shape[/code] " +"or [code]OMI_collider[/code] glTF extensions. This class is an intermediary " +"between the glTF data and Godot's nodes, and it's abstracted in a way that " +"allows adding support for different glTF physics extensions in the future." +msgstr "" +"代表由 [code]OMI_physics_shape[/code] 或 [code]OMI_collider[/code] glTF 扩展定" +"义的物理形状。这个类是 glTF 数据与 Godot 节点的中介,并且经过了抽象,支持将来" +"添加不同 glTF 物理扩展。" + +msgid "OMI_physics_shape glTF extension" +msgstr "OMI_physics_shape glTF 扩展" + +msgid "OMI_collider glTF extension" +msgstr "OMI_collider glTF 扩展" + msgid "" "Creates a new GLTFPhysicsShape instance by parsing the given [Dictionary]." msgstr "通过解析给定的 [Dictionary] 新建 GLTFPhysicsShape 实例。" @@ -51477,6 +65931,13 @@ msgstr "" "这是 [method to_node] 方法中唯一没有用到的变量,应该单独用来确定要将生成的节点" "添加到哪个节点之下。" +msgid "" +"The index of the shape's mesh in the glTF file. This is only used when the " +"shape type is \"hull\" (convex hull) or \"trimesh\" (concave trimesh)." +msgstr "" +"形状网格在 glTF 文件中的索引。仅在形状类型为“hull”(凸包)和“trimesh”(凹三角" +"网格)时使用。" + msgid "" "The radius of the shape, in meters. This is only used when the shape type is " "\"capsule\", \"cylinder\", or \"sphere\". This value should not be negative." @@ -51499,6 +65960,38 @@ msgstr "" "形状的大小,单位为米。仅在碰撞体类型为“box”时使用,代表盒子的“直径”。这个值不" "应为负数。" +msgid "" +"Returns a [Dictionary] that maps skeleton bone indices to the indices of glTF " +"nodes. This property is unused during import, and only set during export. In " +"a glTF file, a bone is a node, so Godot converts skeleton bones to glTF nodes." +msgstr "" +"返回将骨架的骨骼索引映射到 glTF 节点索引的 [Dictionary]。导入时不使用该属性," +"仅在导出时设置。在 glTF 文件中,骨骼是一种节点,因此 Godot 将骨架中的骨骼转换" +"为 glTF 节点。" + +msgid "" +"Sets a [Dictionary] that maps skeleton bone indices to the indices of glTF " +"nodes. This property is unused during import, and only set during export. In " +"a glTF file, a bone is a node, so Godot converts skeleton bones to glTF nodes." +msgstr "" +"设置将骨架的骨骼索引映射到 glTF 节点索引的 [Dictionary]。导入时不使用该属性," +"仅在导出时设置。在 glTF 文件中,骨骼是一种节点,因此 Godot 将骨架中的骨骼转换" +"为 glTF 节点。" + +msgid "Archived glTF extension for specular/glossy materials." +msgstr "已归档的 glTF 扩展,用于镜面/光泽材质。" + +msgid "" +"KHR_materials_pbrSpecularGlossiness is an archived glTF extension. This means " +"that it is deprecated and not recommended for new files. However, it is still " +"supported for loading old files." +msgstr "" +"KHR_materials_pbrSpecularGlossiness 是一个已归档的 glTF 扩展。这意味着它已被弃" +"用,不推荐用于新文件。但是,它仍然被支持用于加载旧文件。" + +msgid "KHR_materials_pbrSpecularGlossiness glTF extension spec" +msgstr "KHR_materials_pbrSpecularGlossiness glTF 扩展规范" + msgid "The reflected diffuse factor of the material." msgstr "该材质反射漫反射系数。" @@ -51514,6 +66007,122 @@ msgstr "镜面光泽度纹理。" msgid "The specular RGB color of the material. The alpha channel is unused." msgstr "材质的镜面反射 RGB 颜色。不使用 Alpha 通道。" +msgid "Represents all data of a glTF file." +msgstr "代表 glTF 文件中的所有数据。" + +msgid "" +"Contains all nodes and resources of a glTF file. This is used by " +"[GLTFDocument] as data storage, which allows [GLTFDocument] and all " +"[GLTFDocumentExtension] classes to remain stateless.\n" +"GLTFState can be populated by [GLTFDocument] reading a file or by converting " +"a Godot scene. Then the data can either be used to create a Godot scene or " +"save to a glTF file. The code that converts to/from a Godot scene can be " +"intercepted at arbitrary points by [GLTFDocumentExtension] classes. This " +"allows for custom data to be stored in the glTF file or for custom data to be " +"converted to/from Godot nodes." +msgstr "" +"包含 glTF 文件中的所有节点和资源。用于 [GLTFDocument] 的数据存储,能够让 " +"[GLTFDocument] 和所有 [GLTFDocumentExtension] 类保持无状态。\n" +"GLTFState 的填写可以通过 [GLTFDocument] 读取文件进行,也可以通过转换 Godot 场" +"景进行。填写完成后,可以将数据用于 Godot 场景的创建或者 glTF 文件的保存。与 " +"Godot 场景之间进行转换的代码可以通过 [GLTFDocumentExtension] 类在任意时刻拦" +"截。这样就能够在 glTF 文件中存储自定义数据,也可以将自定义数据保存到 Godot 节" +"点或者从 Godot 节点读取。" + +msgid "glTF asset header schema" +msgstr "glTF 资产头的模式" + +msgid "" +"Appends an extension to the list of extensions used by this glTF file during " +"serialization. If [param required] is [code]true[/code], the extension will " +"also be added to the list of required extensions. Do not run this in [method " +"GLTFDocumentExtension._export_post], as that stage is too late to add " +"extensions. The final list is sorted alphabetically." +msgstr "" +"在序列化期间,将一个扩展名追加到该 glTF 文件使用的扩展名列表在。如果 [param " +"required] 为 [code]true[/code],则该扩展名也将被添加到所需扩展名列表中。不要" +"在 [method GLTFDocumentExtension._export_post] 中运行它,因为那个阶段已来不及" +"添加扩展。最终的列表将按字母顺序排序。" + +msgid "" +"Appends the given byte array data to the buffers and creates a " +"[GLTFBufferView] for it. The index of the destination [GLTFBufferView] is " +"returned. If [param deduplication] is [code]true[/code], the buffers will " +"first be searched for duplicate data, otherwise new bytes will always be " +"appended." +msgstr "" +"将给定的字节数组数据附加到缓冲区并为其创建一个 [GLTFBufferView]。返回目标 " +"[GLTFBufferView] 的索引。如果 [param deduplication] 为 [code]true[/code],则将" +"首先在缓冲区中搜索重复数据,否则将始终追加新字节。" + +msgid "" +"Gets additional arbitrary data in this [GLTFState] instance. This can be used " +"to keep per-file state data in [GLTFDocumentExtension] classes, which is " +"important because they are stateless.\n" +"The argument should be the [GLTFDocumentExtension] name (does not have to " +"match the extension name in the glTF file), and the return value can be " +"anything you set. If nothing was set, the return value is [code]null[/code]." +msgstr "" +"在 [GLTFState] 实例中获取额外的任意数据。这可用于保留在 " +"[GLTFDocumentExtension] 类中的每个文件的状态数据,这很重要,因为它们是无状态" +"的。\n" +"参数应该是 [GLTFDocumentExtension] 的名称(不必与 glTF 文件中的扩展名相匹" +"配),而返回值可以是你设置的任何东西。如果没有设置任何东西,则返回值为 " +"[code]null[/code]。" + +msgid "" +"Returns the [AnimationPlayer] node with the given index. These nodes are only " +"used during the export process when converting Godot [AnimationPlayer] nodes " +"to glTF animations." +msgstr "" +"返回具有给定索引的 [AnimationPlayer] 节点。这些节点仅在将 Godot " +"[AnimationPlayer] 节点转换为 glTF 动画时的导出过程中使用。" + +msgid "" +"Returns the number of [AnimationPlayer] nodes in this [GLTFState]. These " +"nodes are only used during the export process when converting Godot " +"[AnimationPlayer] nodes to glTF animations." +msgstr "" +"返回该 [GLTFState] 中 [AnimationPlayer] 节点的数量。这些节点仅在将 Godot " +"[AnimationPlayer] 节点转换为 glTF 动画时的导出过程中使用。" + +msgid "" +"Returns an array of all [GLTFAnimation]s in the glTF file. When importing, " +"these will be generated as animations in an [AnimationPlayer] node. When " +"exporting, these will be generated from Godot [AnimationPlayer] nodes." +msgstr "" +"返回 glTF 文件中所有 [GLTFAnimation] 的数组。导入时,这些将在一个 " +"[AnimationPlayer] 节点生成为动画。导出时,这些将从 Godot [AnimationPlayer] 节" +"点生成。" + +msgid "" +"Returns an array of all [GLTFCamera]s in the glTF file. These are the cameras " +"that the [member GLTFNode.camera] index refers to." +msgstr "" +"返回 glTF 文件中所有 [GLTFCamera] 的数组。这些是 [member GLTFNode.camera] 索引" +"引用的相机。" + +msgid "" +"Gets the images of the glTF file as an array of [Texture2D]s. These are the " +"images that the [member GLTFTexture.src_image] index refers to." +msgstr "" +"以 [Texture2D] 数组的形式获取 glTF 文件中的图像。这些是 [member GLTFTexture." +"src_image] 索引引用的图像。" + +msgid "" +"Returns an array of all [GLTFLight]s in the glTF file. These are the lights " +"that the [member GLTFNode.light] index refers to." +msgstr "" +"返回 glTF 文件中所有 [GLTFLight] 的数组。这些是 [member GLTFNode.light] 索引引" +"用的灯。" + +msgid "" +"Returns an array of all [GLTFMesh]es in the glTF file. These are the meshes " +"that the [member GLTFNode.mesh] index refers to." +msgstr "" +"返回 glTF 文件中所有 [GLTFMesh] 的数组。这些是 [member GLTFNode.mesh] 索引引用" +"的网格。" + msgid "" "Returns the index of the [GLTFNode] corresponding to this Godot scene node. " "This is the inverse of [method get_scene_node]. Useful during the export " @@ -51528,6 +66137,16 @@ msgstr "" "[GLTFNode] 都会生成场景节点。如果该场景节点没有 [GLTFNode] 索引,则会返回 " "[code]-1[/code]。" +msgid "" +"Returns an array of all [GLTFNode]s in the glTF file. These are the nodes " +"that [member GLTFNode.children] and [member root_nodes] refer to. This " +"includes nodes that may not be generated in the Godot scene, or nodes that " +"may generate multiple Godot scene nodes." +msgstr "" +"返回 glTF 文件中所有 [GLTFNode] 的数组。这些是 [member GLTFNode.children] 和 " +"[member root_nodes] 引用的节点。这包括可能不会在 Godot 场景中生成的节点,或者" +"可能生成多个 Godot 场景节点的节点。" + msgid "" "Returns the Godot scene node that corresponds to the same index as the " "[GLTFNode] it was generated from. This is the inverse of [method " @@ -51542,6 +66161,25 @@ msgstr "" "点都有对应的 [GLTFNode]。如果该 [GLTFNode] 索引没有场景节点,则会返回 " "[code]null[/code]。" +msgid "" +"Returns an array of all [GLTFSkeleton]s in the glTF file. These are the " +"skeletons that the [member GLTFNode.skeleton] index refers to." +msgstr "" +"返回 glTF 文件中所有 [GLTFSkeleton] 的数组。这些是 [member GLTFNode.skeleton] " +"索引引用的骨架。" + +msgid "" +"Returns an array of all [GLTFSkin]s in the glTF file. These are the skins " +"that the [member GLTFNode.skin] index refers to." +msgstr "" +"返回 glTF 文件中所有 [GLTFSkin] 的数组。这些是 [member GLTFNode.skin] 索引引用" +"的皮肤。" + +msgid "" +"Retrieves the array of texture samplers that are used by the textures " +"contained in the glTF." +msgstr "检索 glTF 中包含的纹理所使用的纹理采样器的数组。" + msgid "" "Returns an array of unique animation names. This is only used during the " "import process." @@ -51552,6 +66190,20 @@ msgid "" "process and export process." msgstr "返回唯一节点名称的数组。这用于导入过程和导出过程。" +msgid "" +"Sets additional arbitrary data in this [GLTFState] instance. This can be used " +"to keep per-file state data in [GLTFDocumentExtension] classes, which is " +"important because they are stateless.\n" +"The first argument should be the [GLTFDocumentExtension] name (does not have " +"to match the extension name in the glTF file), and the second argument can be " +"anything you want." +msgstr "" +"在这个 [GLTFState] 实例中设置额外的任意数据。这可以用来保留在 " +"[GLTFDocumentExtension] 类中的每个文件的状态数据,这很重要,因为它们是无状态" +"的。\n" +"第一个参数应该是 [GLTFDocumentExtension] 的名称(不必与 glTF 文件中的扩展名相" +"匹配),第二个参数可以是任何你想要的东西。" + msgid "" "Sets the [GLTFAnimation]s in the state. When importing, these will be " "generated as animations in an [AnimationPlayer] node. When exporting, these " @@ -51609,6 +66261,11 @@ msgid "" msgstr "" "设置该状态中的 [GLTFSkin]。这些是 [member GLTFNode.skin] 索引引用的皮肤。" +msgid "" +"Sets the array of texture samplers that are used by the textures contained in " +"the glTF." +msgstr "设置由 glTF 中包含的纹理所使用的纹理采样器的数组。" + msgid "" "Sets the unique animation names in the state. This is only used during the " "import process." @@ -51622,12 +66279,64 @@ msgstr "设置该状态中的唯一节点名称。这用于导入过程和导出 msgid "The baking fps of the animation for either import or export." msgstr "用于导入或导出的动画的烘焙 fps。" +msgid "" +"The folder path associated with this glTF data. This is used to find other " +"files the glTF file references, like images or binary buffers. This will be " +"set during import when appending from a file, and will be set during export " +"when writing to a file." +msgstr "" +"与该 glTF 数据关联的文件夹路径。这用于查找该 glTF 文件引用的其他文件,例如图像" +"或二进制缓冲区。这将在导入期间从文件追加时设置,并将在导出期间写入文件时设置。" + +msgid "" +"The copyright string in the asset header of the glTF file. This is set during " +"import if present and export if non-empty. See the glTF asset header " +"documentation for more information." +msgstr "" +"该 glTF 文件的资产标头中的版权字符串。如果存在,则在导入期间设置;如果非空则在" +"导出期间设置。详见 glTF 资产标头文档。" + +msgid "" +"The file name associated with this glTF data. If it ends with [code].gltf[/" +"code], this is text-based glTF, otherwise this is binary GLB. This will be " +"set during import when appending from a file, and will be set during export " +"when writing to a file. If writing to a buffer, this will be an empty string." +msgstr "" +"与该 glTF 数据关联的文件名。如果它以 [code].gltf[/code] 结尾,则这是基于文本" +"的 glTF,否则这是二进制 GLB。这将在导入期间从文件追加时设置,并将在导出期间写" +"入文件时设置。如果写入到缓冲区,这将是一个空字符串。" + msgid "The binary buffer attached to a .glb file." msgstr "附加到 .glb 文件的二进制缓冲区。" +msgid "" +"If [code]true[/code], forces all GLTFNodes in the document to be bones of a " +"single [Skeleton3D] Godot node." +msgstr "" +"如果为 [code]true[/code],则强制文档中的所有 GLTFNode 成为单个 [Skeleton3D] " +"Godot 节点的骨骼。" + msgid "The original raw JSON document corresponding to this GLTFState." msgstr "与该 GLTFState 对应的原始 JSON 文档。" +msgid "" +"The root nodes of the glTF file. Typically, a glTF file will only have one " +"scene, and therefore one root node. However, a glTF file may have multiple " +"scenes and therefore multiple root nodes, which will be generated as siblings " +"of each other and as children of the root node of the generated Godot scene." +msgstr "" +"glTF 文件的根节点。通常一个 glTF 文件只有一个场景,因此只有一个根节点。然而 " +"glTF 文件可能有多个场景,因此可以有多个根节点,它们将作为彼此的同级节点生成," +"并作为生成的 Godot 场景的根节点的子节点生成。" + +msgid "" +"The name of the scene. When importing, if not specified, this will be the " +"file name. When exporting, if specified, the scene name will be saved to the " +"glTF file." +msgstr "" +"场景的名称。导入时,如果没有指定,这将是文件名。导出时,如果指定,场景名称将被" +"保存到 glTF 文件中。" + msgid "Discards all embedded textures and uses untextured materials." msgstr "丢弃所有内嵌的纹理,并使用无纹理的材质。" @@ -51645,6 +66354,9 @@ msgid "" "behavior." msgstr "将无损压缩的纹理嵌入到生成的场景中,匹配旧行为。" +msgid "GLTFTexture represents a texture in a glTF file." +msgstr "GLTFTexture 代表 glTF 文件中的纹理。" + msgid "" "ID of the texture sampler to use when sampling the image. If -1, then the " "default texture sampler is used (linear filtering, and repeat wrapping in " @@ -51660,6 +66372,17 @@ msgstr "" "与该纹理关联的图像索引,见 [method GLTFState.get_images]。如果为 -1,则该纹理" "未与图像相关联。" +msgid "Represents a glTF texture sampler" +msgstr "代表 glTF 纹理采样器" + +msgid "" +"Represents a texture sampler as defined by the base glTF spec. Texture " +"samplers in glTF specify how to sample data from the texture's base image, " +"when rendering the texture on an object." +msgstr "" +"表示由基本 glTF 规范定义的纹理采样器。glTF 中的纹理采样器指定在对象上渲染纹理" +"时,如何从纹理的基础图像中采样数据。" + msgid "" "Texture's magnification filter, used when texture appears larger on screen " "than the source image." @@ -51716,6 +66439,38 @@ msgstr "" msgid "Sets this node's properties to match a given [CPUParticles2D] node." msgstr "设置该节点的属性以匹配给定的 [CPUParticles2D] 节点。" +msgid "" +"Emits a single particle. Whether [param xform], [param velocity], [param " +"color] and [param custom] are applied depends on the value of [param flags]. " +"See [enum EmitFlags].\n" +"The default ParticleProcessMaterial will overwrite [param color] and use the " +"contents of [param custom] as [code](rotation, age, animation, lifetime)[/" +"code].\n" +"[b]Note:[/b] [method emit_particle] is only supported on the Forward+ and " +"Mobile rendering methods, not Compatibility." +msgstr "" +"发射单个粒子。是否应用 [param xform]、[param velocity]、[param color] 和 " +"[param custom] 取决于 [param flags] 的值。见 [enum EmitFlags]。\n" +"默认的 ParticleProcessMaterial 会覆盖 [param color],使用 [param custom] 的内" +"容作为 [code](rotation, age, animation, lifetime)[/code]。\n" +"[b]注意:[/b][method emit_particle] 只有 Forward+ 和 Mobile 渲染方法支持," +"Compatibility 不支持。" + +msgid "" +"Restarts the particle emission cycle, clearing existing particles. To avoid " +"particles vanishing from the viewport, wait for the [signal finished] signal " +"before calling.\n" +"[b]Note:[/b] The [signal finished] signal is only emitted by [member " +"one_shot] emitters.\n" +"If [param keep_seed] is [code]true[/code], the current random seed will be " +"preserved. Useful for seeking and playback." +msgstr "" +"重新开始粒子发射周期,清除现存粒子。要避免粒子从视口中凭空消失,请在调用前等" +"待 [signal finished] 信号。\n" +"[b]注意:[/b]只有 [member one_shot] 的发射器会发出 [signal finished] 信号。\n" +"如果 [param keep_seed] 为 [code]true[/code],则会保留当前的随机数种子。适用于" +"跳转播放。" + msgid "" "The number of particles to emit in one emission cycle. The effective emission " "rate is [code](amount * amount_ratio) / lifetime[/code] particles per second. " @@ -51834,6 +66589,19 @@ msgstr "" "[code]false[/code],则粒子使用全局坐标;当移动或旋转时,它们不会沿着 " "[GPUParticles2D] 节点(及其父节点)移动或旋转。" +msgid "" +"Particle system starts as if it had already run for this many seconds.\n" +"[b]Note:[/b] This can be very expensive if set to a high number as it " +"requires running the particle shader a number of times equal to the [member " +"fixed_fps] (or 30, if [member fixed_fps] is 0) for every second. In extreme " +"cases it can even lead to a GPU crash due to the volume of work done in a " +"single frame." +msgstr "" +"粒子系统启动时仿佛已经运行了这么多秒。\n" +"[b]注意:[/b]如果设置为较高的数字可能会非常耗费资源,因为它需要每秒运行与 " +"[member fixed_fps] 相等次数的粒子着色器(如果 [member fixed_fps] 为 0 则为 30 " +"次)。在极端情况下,这甚至可能导致 GPU 崩溃,因为在单个帧中完成的工作量过大。" + msgid "" "[Material] for processing particles. Can be a [ParticleProcessMaterial] or a " "[ShaderMaterial]." @@ -51920,6 +66688,22 @@ msgstr "" "如果当节点进入/退出屏幕时粒子突然出现/消失,则增长矩形。[Rect2] 可以通过代码或" "使用 [b]Particles → Generate Visibility Rect[/b] 编辑器工具生成。" +msgid "" +"Emitted when all active particles have finished processing. To immediately " +"restart the emission cycle, call [method restart].\n" +"This signal is never emitted when [member one_shot] is disabled, as particles " +"will be emitted and processed continuously.\n" +"[b]Note:[/b] For [member one_shot] emitters, due to the particles being " +"computed on the GPU, there may be a short period after receiving the signal " +"during which setting [member emitting] to [code]true[/code] will not restart " +"the emission cycle. This delay is avoided by instead calling [method restart]." +msgstr "" +"所有活动粒子完成处理时发出。立即重启发射周期请调用 [method restart]。\n" +"禁用 [member one_shot] 时不会发出该信号,因为会持续发出并处理粒子。\n" +"[b]注意:[/b]由于粒子是在 GPU 上计算的,所以 [member one_shot] 的发射器在收到" +"该信号后可能存在一小段特殊时期,在此期间将 [member emitting] 设为 [code]true[/" +"code] 无法重启发射周期。改成调用 [method restart] 就可以避免这段延迟。" + msgid "" "Particles are drawn in reverse order of remaining lifetime. In other words, " "the particle with the lowest lifetime is drawn at the front." @@ -52036,6 +66820,21 @@ msgid "" "will be emitted." msgstr "如果为 [code]true[/code],将只发出 [member amount] 数量的粒子。" +msgid "" +"Amount of time to preprocess the particles before animation starts. Lets you " +"start the animation some time after particles have started emitting.\n" +"[b]Note:[/b] This can be very expensive if set to a high number as it " +"requires running the particle shader a number of times equal to the [member " +"fixed_fps] (or 30, if [member fixed_fps] is 0) for every second. In extreme " +"cases it can even lead to a GPU crash due to the volume of work done in a " +"single frame." +msgstr "" +"动画开始之前预处理粒子的时间量。允许你在粒子开始发射后的一段时间内启动动画。\n" +"[b]注意:[/b]如果设置为较高的数字可能会非常耗费资源,因为它需要每秒运行与 " +"[member fixed_fps] 相等的次数的粒子着色器(如果 [member fixed_fps] 为 0 则为 " +"30 次)。在极端情况下,这甚至可能导致 GPU 崩溃,因为在单个帧中完成的工作量过" +"大。" + msgid "Emission randomness ratio." msgstr "发出随机率。" @@ -52312,6 +67111,31 @@ msgstr "" "这可以通过将 [member GPUParticles3D.fixed_fps] 设置为 [code]0[/code] 或一个符" "合或超过目标帧速率的值来缓解。" +msgid "" +"The particle rendering layers ([member VisualInstance3D.layers]) that will be " +"affected by the collision shape. By default, all particles that have [member " +"ParticleProcessMaterial.collision_mode] set to [constant " +"ParticleProcessMaterial.COLLISION_RIGID] or [constant ParticleProcessMaterial." +"COLLISION_HIDE_ON_CONTACT] will be affected by a collision shape.\n" +"After configuring particle nodes accordingly, specific layers can be " +"unchecked to prevent certain particles from being affected by colliders. For " +"example, this can be used if you're using a collider as part of a spell " +"effect but don't want the collider to affect unrelated weather particles at " +"the same position.\n" +"Particle collision can also be disabled on a per-process material basis by " +"setting [member ParticleProcessMaterial.collision_mode] on the " +"[GPUParticles3D] node." +msgstr "" +"将受碰撞形状影响的粒子渲染层([member VisualInstance3D.layers])。默认情况下," +"所有 [member ParticleProcessMaterial.collision_mode] 设置为 [constant " +"ParticleProcessMaterial.COLLISION_RIGID] 或 [constant ParticleProcessMaterial." +"COLLISION_HIDE_ON_CONTACT] 的粒子都将受到碰撞形状的影响。\n" +"相应地配置粒子节点后,可以取消选中特定层,防止某些粒子受到碰撞体的影响。例如," +"如果你将碰撞体用作法术效果的一部分但不希望碰撞体影响同一位置的不相关天气粒子," +"则可以使用该选项。\n" +"通过在 [GPUParticles3D] 节点上设置 [member ParticleProcessMaterial." +"collision_mode],也可以在每个进程材质的基础上禁用粒子碰撞。" + msgid "" "A box-shaped 3D particle collision shape affecting [GPUParticles3D] nodes." msgstr "影响 [GPUParticles3D] 节点的盒形 3D 粒子碰撞形状。" @@ -52376,6 +67200,23 @@ msgstr "" "效。\n" "[b]注意:[/b]粒子碰撞只影响 [GPUParticles3D],不影响 [CPUParticles3D]。" +msgid "" +"Returns [code]true[/code] if the specified layer of the [member " +"heightfield_mask] is enabled, given a [param layer_number] between [code]1[/" +"code] and [code]20[/code], inclusive." +msgstr "" +"如果启用了 [member heightfield_mask] 中的指定层,则返回 [code]true[/code],给" +"定的 [param layer_number] 在 [code]1[/code] 到 [code]20[/code] 之间,包括端" +"点。" + +msgid "" +"Based on [param value], enables or disables the specified layer in the " +"[member heightfield_mask], given a [param layer_number] between [code]1[/" +"code] and [code]20[/code], inclusive." +msgstr "" +"根据 [param value] 启用或禁用 [member heightfield_mask] 中的指定层,给定的 " +"[param layer_number] 在 [code]1[/code] 到 [code]20[/code] 之间,包括端点。" + msgid "" "If [code]true[/code], the [GPUParticlesCollisionHeightField3D] will follow " "the current camera in global space. The [GPUParticlesCollisionHeightField3D] " @@ -52874,6 +67715,77 @@ msgid "" "Virtual method which can be overridden to customize how connections are drawn." msgstr "可以重写的虚方法,以自定义如何绘制连接。" +msgid "" +"Returns whether the [param mouse_position] is in the input hot zone.\n" +"By default, a hot zone is a [Rect2] positioned such that its center is at " +"[param in_node].[method GraphNode.get_input_port_position]([param in_port]) " +"(For output's case, call [method GraphNode.get_output_port_position] " +"instead). The hot zone's width is twice the Theme Property " +"[code]port_grab_distance_horizontal[/code], and its height is twice the " +"[code]port_grab_distance_vertical[/code].\n" +"Below is a sample code to help get started:\n" +"[codeblock]\n" +"func _is_in_input_hotzone(in_node, in_port, mouse_position):\n" +" var port_size = " +"Vector2(get_theme_constant(\"port_grab_distance_horizontal\"), " +"get_theme_constant(\"port_grab_distance_vertical\"))\n" +" var port_pos = in_node.get_position() + in_node." +"get_input_port_position(in_port) - port_size / 2\n" +" var rect = Rect2(port_pos, port_size)\n" +"\n" +" return rect.has_point(mouse_position)\n" +"[/codeblock]" +msgstr "" +"返回 [param mouse_position] 是否在输入热区。\n" +"默认情况下,热区是一个 [Rect2],其中心位于 [param in_node].[method GraphNode." +"get_input_port_position]([param in_port])(对于输出的情况,请改为调用 [method " +"GraphNode.get_output_port_position])。热区的宽度是主题属性 " +"[code]port_grab_distance_horizontal[/code] 的两倍,高度是 " +"[code]port_grab_distance_vertical[/code] 的两倍。\n" +"下面是一个示例代码,以帮助入门:\n" +"[codeblock]\n" +"func _is_in_input_hotzone(in_node, in_port, mouse_position):\n" +" var port_size = " +"Vector2(get_theme_constant(\"port_grab_distance_horizontal\"), " +"get_theme_constant(\"port_grab_distance_vertical\"))\n" +" var port_pos = in_node.get_position() + in_node." +"get_input_port_position(in_port) - port_size / 2\n" +" var rect = Rect2(port_pos, port_size)\n" +"\n" +" return rect.has_point(mouse_position)\n" +"[/codeblock]" + +msgid "" +"Returns whether the [param mouse_position] is in the output hot zone. For " +"more information on hot zones, see [method _is_in_input_hotzone].\n" +"Below is a sample code to help get started:\n" +"[codeblock]\n" +"func _is_in_output_hotzone(in_node, in_port, mouse_position):\n" +" var port_size = " +"Vector2(get_theme_constant(\"port_grab_distance_horizontal\"), " +"get_theme_constant(\"port_grab_distance_vertical\"))\n" +" var port_pos = in_node.get_position() + in_node." +"get_output_port_position(in_port) - port_size / 2\n" +" var rect = Rect2(port_pos, port_size)\n" +"\n" +" return rect.has_point(mouse_position)\n" +"[/codeblock]" +msgstr "" +"返回 [param mouse_position] 是否在输出热区。有关热区的更多信息,请参阅 " +"[method _is_in_input_hotzone]。\n" +"下面是一个示例代码,以帮助入门:\n" +"[codeblock]\n" +"func _is_in_output_hotzone(in_node, in_port, mouse_position):\n" +" var port_size = " +"Vector2(get_theme_constant(\"port_grab_distance_horizontal\"), " +"get_theme_constant(\"port_grab_distance_vertical\"))\n" +" var port_pos = in_node.get_position() + in_node." +"get_output_port_position(in_port) - port_size / 2\n" +" var rect = Rect2(port_pos, port_size)\n" +"\n" +" return rect.has_point(mouse_position)\n" +"[/codeblock]" + msgid "" "This virtual method can be used to insert additional error detection while " "the user is dragging a connection over a valid port.\n" @@ -52957,6 +67869,19 @@ msgstr "将 [param element] [GraphElement] 附加到 [param frame] [GraphFrame] msgid "Removes all connections between nodes." msgstr "移除节点之间的所有连接。" +msgid "" +"Create a connection between the [param from_port] of the [param from_node] " +"[GraphNode] and the [param to_port] of the [param to_node] [GraphNode]. If " +"the connection already exists, no connection is created.\n" +"Connections with [param keep_alive] set to [code]false[/code] may be deleted " +"automatically if invalid during a redraw." +msgstr "" +"在来源 [GraphNode] 节点 [param from_node] 的 [param from_port] 端口和目标 " +"[GraphNode] 节点 [param to_node] 的 [param to_port] 端口之间创建连接。如果已存" +"在连接,则不会创建连接。\n" +"[param keep_alive] 为 [code]false[/code] 的连接如果在重绘期间失效,则可能会被" +"自动删除。" + msgid "" "Detaches the [param element] [GraphElement] from the [GraphFrame] it is " "currently attached to." @@ -52994,11 +67919,82 @@ msgid "" "given name." msgstr "返回附加到给定名称的 [GraphFrame] 的节点名称数组。" +msgid "" +"Returns the closest connection to the given point in screen space. If no " +"connection is found within [param max_distance] pixels, an empty [Dictionary] " +"is returned.\n" +"A connection is represented as a [Dictionary] in the form of:\n" +"[codeblock]\n" +"{\n" +" from_node: StringName,\n" +" from_port: int,\n" +" to_node: StringName,\n" +" to_port: int,\n" +" keep_alive: bool\n" +"}\n" +"[/codeblock]\n" +"For example, getting a connection at a given mouse position can be achieved " +"like this:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var connection = get_closest_connection_at_point(mouse_event.get_position())\n" +"[/gdscript]\n" +"[/codeblocks]" +msgstr "" +"返回到屏幕空间中给定点的最近连接。如果在 [param max_distance] 像素内未找到连" +"接,则返回空的 [Dictionary]。\n" +"连接由以下形式的结构组成:\n" +"[codeblock]\n" +"{\n" +" from_node: StringName,\n" +" from_port: int,\n" +" to_node: StringName,\n" +" to_port: int,\n" +" keep_alive: bool\n" +"}\n" +"[/codeblock]\n" +"例如,可以像这样实现获取在给定鼠标位置处的连接:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var connection = get_closest_connection_at_point(mouse_event.get_position())\n" +"[/gdscript]\n" +"[/codeblocks]" + +msgid "" +"Returns the number of connections from [param from_port] of [param from_node]." +msgstr "返回 [param from_node] 节点的 [param from_port] 端口的连接数量。" + msgid "" "Returns the points which would make up a connection between [param from_node] " "and [param to_node]." msgstr "返回构成 [param from_node] 和 [param to_node] 之间的连接的点。" +msgid "" +"Returns an [Array] containing the list of connections that intersect with the " +"given [Rect2].\n" +"A connection is represented as a [Dictionary] in the form of:\n" +"[codeblock]\n" +"{\n" +" from_node: StringName,\n" +" from_port: int,\n" +" to_node: StringName,\n" +" to_port: int,\n" +" keep_alive: bool\n" +"}\n" +"[/codeblock]" +msgstr "" +"返回一个 [Array],其中包含与给定 [Rect2] 相交的连接列表。\n" +"连接由 [Dictionary] 表示,结构如下:\n" +"[codeblock]\n" +"{\n" +" from_node: StringName,\n" +" from_port: int,\n" +" to_node: StringName,\n" +" to_port: int,\n" +" keep_alive: bool\n" +"}\n" +"[/codeblock]" + msgid "" "Returns the [GraphFrame] that contains the [GraphElement] with the given name." msgstr "返回包含给定名称的 [GraphElement] 的 [GraphFrame]。" @@ -53091,6 +68087,35 @@ msgstr "节点之间连线的曲率。0 得到的是直线。" msgid "The thickness of the lines between the nodes." msgstr "节点之间连线的粗细。" +msgid "" +"The connections between [GraphNode]s.\n" +"A connection is represented as a [Dictionary] in the form of:\n" +"[codeblock]\n" +"{\n" +" from_node: StringName,\n" +" from_port: int,\n" +" to_node: StringName,\n" +" to_port: int,\n" +" keep_alive: bool\n" +"}\n" +"[/codeblock]\n" +"Connections with [code]keep_alive[/code] set to [code]false[/code] may be " +"deleted automatically if invalid during a redraw." +msgstr "" +"[GraphNode] 之间的连接。\n" +"连接由 [Dictionary] 代表,形式为:\n" +"[codeblock]\n" +"{\n" +" from_node: StringName,\n" +" from_port: int,\n" +" to_node: StringName,\n" +" to_port: int,\n" +" keep_alive: bool\n" +"}\n" +"[/codeblock]\n" +"重绘时,如果 [code]keep_alive[/code] 为 [code]false[/code] 的连接无效,则可能" +"会被自动删除。" + msgid "The pattern used for drawing the grid." msgstr "绘制网格时使用的图案。" @@ -53201,6 +68226,14 @@ msgstr "" "当该 [GraphEdit] 捕获 [code]ui_copy[/code] 动作(默认情况下为 [kbd]Ctrl + C[/" "kbd])时发出。一般来说,该信号指示所选的 [GraphElement] 应被复制。" +msgid "" +"Emitted when this [GraphEdit] captures a [code]ui_cut[/code] action " +"([kbd]Ctrl + X[/kbd] by default). In general, this signal indicates that the " +"selected [GraphElement]s should be cut." +msgstr "" +"当该 [GraphEdit] 捕获 [code]ui_cut[/code] 动作(默认情况下为 [kbd]Ctrl + X[/" +"kbd])时发出。一般来说,该信号指示所选的 [GraphElement] 应被剪切。" + msgid "" "Emitted when this [GraphEdit] captures a [code]ui_graph_delete[/code] action " "([kbd]Delete[/kbd] by default).\n" @@ -53320,6 +68353,14 @@ msgstr "选定的矩形的填充颜色。" msgid "The outline color of the selection rectangle." msgstr "选择的矩形的轮廓颜色。" +msgid "" +"Widen the line of the connection when the mouse is hovering over it by a " +"percentage factor. A value of [code]0[/code] disables the highlight. A value " +"of [code]100[/code] doubles the line width." +msgstr "" +"鼠标悬停在连接上时,按百分比系数加宽连接的线条。取值为 [code]0[/code] 会禁用高" +"亮。取值为 [code]100[/code] 会将线宽加倍。" + msgid "The horizontal range within which a port can be grabbed (inner side)." msgstr "能够抓取端口的(内侧)横向范围。" @@ -53632,6 +68673,13 @@ msgstr "" "返回标题栏所使用的 [HBoxContainer],默认只包含一个 [Label],用于显示标题。可用" "于向标题栏添加自定义控件,例如选项和关闭按钮等。" +msgid "" +"Returns [code]true[/code] if the background [StyleBox] of the slot with the " +"given [param slot_index] is drawn." +msgstr "" +"如果绘制索引为 [param slot_index] 的槽位的背景 [StyleBox],则返回 [code]true[/" +"code]。" + msgid "" "Returns [code]true[/code] if left (input) side of the slot with the given " "[param slot_index] is enabled." @@ -54042,6 +69090,57 @@ msgstr "" "可以在 [method set_cell_item] 中清除单元格(或在 [method get_cell_item] 中重新" "代表一个空的单元格)的无效单元格。" +msgid "Editor for [GridMap] nodes." +msgstr "[GridMap] 节点的编辑器。" + +msgid "" +"GridMapEditorPlugin provides access to the [GridMap] editor functionality." +msgstr "GridMapEditorPlugin 提供对 [GridMap] 编辑器功能的访问。" + +msgid "Deselects any currently selected cells." +msgstr "取消选择当前选中的单元格。" + +msgid "Returns the [GridMap] node currently edited by the grid map editor." +msgstr "返回网格地图编辑器当前编辑的 [GridMap] 节点。" + +msgid "Returns an array of [Vector3i]s with the selected cells' coordinates." +msgstr "返回 [Vector3i] 数组,表示选中单元格的坐标。" + +msgid "" +"Returns the index of the selected [MeshLibrary] item in the grid map editor's " +"palette or [code]-1[/code] if no item is selected.\n" +"[b]Note:[/b] The indices might not be in the same order as they appear in the " +"editor's interface." +msgstr "" +"返回网格地图编辑器调色板中选中的 [MeshLibrary] 项目的索引号,未选中项目时返回 " +"[code]-1[/code]。\n" +"[b]注意:[/b]索引可能与编辑器界面中展示的顺序不一致。" + +msgid "" +"Returns the cell coordinate bounds of the current selection. Use [method " +"has_selection] to check if there is an active selection." +msgstr "" +"返回当前选中项的单元格坐标边界。请使用 [method has_selection] 检查是否存在选中" +"项。" + +msgid "Returns [code]true[/code] if there are selected cells." +msgstr "如果存在选中的单元格,则返回 [code]true[/code]。" + +msgid "" +"Selects the [MeshLibrary] item with the given index in the grid map editor's " +"palette. If a negative index is given, no item will be selected. If a value " +"greater than the last index is given, the last item will be selected.\n" +"[b]Note:[/b] The indices might not be in the same order as they appear in the " +"editor's interface." +msgstr "" +"选中网格地图编辑器调色板中索引号对应的 [MeshLibrary] 项目。如果给定的索引为负" +"数,则不选中任何项目。如果给定值超过最后一个索引,则选中最后一个项目。\n" +"[b]注意:[/b]索引可能与编辑器界面中展示的顺序不一致。" + +msgid "" +"Selects the cells inside the given bounds from [param begin] to [param end]." +msgstr "选中从 [param begin] 到 [param end] 范围内的单元格。" + msgid "" "A physics joint that restricts the movement of two 2D physics bodies to a " "fixed axis." @@ -54219,6 +69318,47 @@ msgstr "" msgid "A 3D height map shape used for physics collision." msgstr "3D 高度图形状,用于物理碰撞。" +msgid "" +"A 3D heightmap shape, intended for use in physics. Usually used to provide a " +"shape for a [CollisionShape3D]. This is useful for terrain, but it is limited " +"as overhangs (such as caves) cannot be stored. Holes in a [HeightMapShape3D] " +"are created by assigning very low values to points in the desired area.\n" +"[b]Performance:[/b] [HeightMapShape3D] is faster to check collisions against " +"than [ConcavePolygonShape3D], but it is significantly slower than primitive " +"shapes like [BoxShape3D].\n" +"A heightmap collision shape can also be build by using an [Image] reference:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var heightmap_texture = ResourceLoader.load(\"res://heightmap_image.exr\")\n" +"var heightmap_image = heightmap_texture.get_image()\n" +"heightmap_image.convert(Image.FORMAT_RF)\n" +"\n" +"var height_min = 0.0\n" +"var height_max = 10.0\n" +"\n" +"update_map_data_from_image(heightmap_image, height_min, height_max)\n" +"[/gdscript]\n" +"[/codeblocks]" +msgstr "" +"3D 高度图形状,旨在用于物理。常用于为 [CollisionShape3D] 提供形状。可用于地" +"形,但是有无法存储悬垂部分(如洞窟)的限制。[HeightMapShape3D] 中创建洞的方法" +"是为所需区域分配极低的值。\n" +"[b]性能:[/b]对 [HeightMapShape3D] 的碰撞检测比 [ConcavePolygonShape3D] 快,但" +"与 [BoxShape3D] 等图元形状相比显著要慢。\n" +"高度图碰撞形状也可以使用 [Image] 构建:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var heightmap_texture = ResourceLoader.load(\"res://heightmap_image.exr\")\n" +"var heightmap_image = heightmap_texture.get_image()\n" +"heightmap_image.convert(Image.FORMAT_RF)\n" +"\n" +"var height_min = 0.0\n" +"var height_max = 10.0\n" +"\n" +"update_map_data_from_image(heightmap_image, height_min, height_max)\n" +"[/gdscript]\n" +"[/codeblocks]" + msgid "" "Returns the largest height value found in [member map_data]. Recalculates " "only when [member map_data] changes." @@ -54521,6 +69661,75 @@ msgstr "" msgid "Low-level hyper-text transfer protocol client." msgstr "低级别的超文本传输协议客户端。" +msgid "" +"Hyper-text transfer protocol client (sometimes called \"User Agent\"). Used " +"to make HTTP requests to download web content, upload files and other data or " +"to communicate with various services, among other use cases.\n" +"See the [HTTPRequest] node for a higher-level alternative.\n" +"[b]Note:[/b] This client only needs to connect to a host once (see [method " +"connect_to_host]) to send multiple requests. Because of this, methods that " +"take URLs usually take just the part after the host instead of the full URL, " +"as the client is already connected to a host. See [method request] for a full " +"example and to get started.\n" +"A [HTTPClient] should be reused between multiple requests or to connect to " +"different hosts instead of creating one client per request. Supports " +"Transport Layer Security (TLS), including server certificate verification. " +"HTTP status codes in the 2xx range indicate success, 3xx redirection (i.e. " +"\"try again, but over here\"), 4xx something was wrong with the request, and " +"5xx something went wrong on the server's side.\n" +"For more information on HTTP, see [url=https://developer.mozilla.org/en-US/" +"docs/Web/HTTP]MDN's documentation on HTTP[/url] (or read [url=https://tools." +"ietf.org/html/rfc2616]RFC 2616[/url] to get it straight from the source).\n" +"[b]Note:[/b] When exporting to Android, make sure to enable the " +"[code]INTERNET[/code] permission in the Android export preset before " +"exporting the project or using one-click deploy. Otherwise, network " +"communication of any kind will be blocked by Android.\n" +"[b]Note:[/b] It's recommended to use transport encryption (TLS) and to avoid " +"sending sensitive information (such as login credentials) in HTTP GET URL " +"parameters. Consider using HTTP POST requests or HTTP headers for such " +"information instead.\n" +"[b]Note:[/b] When performing HTTP requests from a project exported to Web, " +"keep in mind the remote server may not allow requests from foreign origins " +"due to [url=https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS]CORS[/" +"url]. If you host the server in question, you should modify its backend to " +"allow requests from foreign origins by adding the [code]Access-Control-Allow-" +"Origin: *[/code] HTTP header.\n" +"[b]Note:[/b] TLS support is currently limited to TLSv1.2 and TLSv1.3. " +"Attempting to connect to a server that only supports older (insecure) TLS " +"versions will return an error.\n" +"[b]Warning:[/b] TLS certificate revocation and certificate pinning are " +"currently not supported. Revoked certificates are accepted as long as they " +"are otherwise valid. If this is a concern, you may want to use automatically " +"managed certificates with a short validity period." +msgstr "" +"超文本传输协议客户端(有时称为“用户代理”)。用于发出 HTTP 请求以下载网络内容," +"上传文件和其他数据或与各种服务通信,以及其他用例。\n" +"请参阅 [HTTPRequest] 节点以获取更高级别的替代方案。\n" +"[b]注意:[/b]这个客户端只需要连接一个主机一次(见[method connect_to_host])," +"就可以发送多个请求。因此,使用 URL 的方法通常只使用主机后面的部分而不是完整的 " +"URL,因为客户端已经连接到主机。请参阅 [method request] 以获取完整示例并开始使" +"用。\n" +"[HTTPClient] 应该在多个请求之间重用或连接到不同的主机,而不是为每个请求创建一" +"个客户端。支持传输层安全 (TLS),包括服务器证书验证。2xx 范围内的 HTTP 状态代码" +"表示成功,3xx 表示重定向(即“再试一次,但在这里”),4xx 表示请求有问题,5xx 表" +"示服务器端出了问题。\n" +"有关 HTTP 的更多信息,请参阅 [url=https://developer.mozilla.org/en-US/docs/" +"Web/HTTP]MDN 上 HTTP 的文档[/url](或阅读 [url=https://tools.ietf.org/html/" +"rfc2616]RFC 2616[/url],直接从根源了解)。\n" +"[b]注意:[/b]导出到 Android 时,在导出项目或使用一键部署前,请确保在 Android " +"导出预设中启用 [code]INTERNET[/code] 权限。否则,任何类型的网络通信都将被 " +"Android 阻止。\n" +"[b]注意:[/b]建议使用传输加密(TLS)并避免在 HTTP GET URL 参数中发送敏感信息" +"(例如登录凭据)。考虑改用 HTTP POST 请求或 HTTP 标头来获取此类信息。\n" +"[b]注意:[/b]当从导出到 Web 的项目执行 HTTP 请求时,请记住,由于 [url=https://" +"developer.mozilla.org/en-US/docs/Web/HTTP/CORS]CORS[/url],远程服务器可能不允" +"许来自站外的请求。如果托管到有问题的服务器,应该修改其后台,以通过添加 " +"[code]Access-Control-Allow-Origin: *[/code] HTTP 标头来允许来自站外的请求。\n" +"[b]注意:[/b]TLS 支持目前仅限于 TLSv1.2 和 TLSv1.3。尝试连接到仅支持较早(不安" +"全)TLS 版本服务器时将返回一个错误。\n" +"[b]警告:[/b]目前不支持 TLS 证书撤销和证书绑定。只要吊销的证书在其他方面有效," +"就会被接受。如果这是一个问题,你可能希望使用有效期较短的自动管理的证书。" + msgid "HTTP client class" msgstr "HTTP 客户端类" @@ -54563,6 +69772,26 @@ msgstr "返回响应的 HTTP 状态码。" msgid "Returns the response headers." msgstr "返回响应报头。" +msgid "" +"Returns all response headers as a [Dictionary]. Each entry is composed by the " +"header name, and a [String] containing the values separated by [code]\"; \"[/" +"code]. The casing is kept the same as the headers were received.\n" +"[codeblock]\n" +"{\n" +" \"content-length\": 12,\n" +" \"Content-Type\": \"application/json; charset=UTF-8\",\n" +"}\n" +"[/codeblock]" +msgstr "" +"以 [Dictionary] 的形式返回所有响应报头。每个条目都是报头名称以及用 [code]\"; " +"\"[/code] 分隔的对应取值。大小写与收到的报头保持一致。\n" +"[codeblock]\n" +"{\n" +" \"content-length\": 12,\n" +" \"Content-Type\": \"application/json; charset=UTF-8\",\n" +"}\n" +"[/codeblock]" + msgid "" "Returns a [enum Status] constant. Need to call [method poll] in order to get " "status updates." @@ -54656,10 +69885,76 @@ msgstr "" msgid "Reads one chunk from the response." msgstr "从响应中读取一块数据。" +msgid "" +"Sends a request to the connected host.\n" +"The URL parameter is usually just the part after the host, so for " +"[code]https://example.com/index.php[/code], it is [code]/index.php[/code]. " +"When sending requests to an HTTP proxy server, it should be an absolute URL. " +"For [constant HTTPClient.METHOD_OPTIONS] requests, [code]*[/code] is also " +"allowed. For [constant HTTPClient.METHOD_CONNECT] requests, it should be the " +"authority component ([code]host:port[/code]).\n" +"Headers are HTTP request headers. For available HTTP methods, see [enum " +"Method].\n" +"To create a POST request with query strings to push to the server, do:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var fields = {\"username\" : \"user\", \"password\" : \"pass\"}\n" +"var query_string = http_client.query_string_from_dict(fields)\n" +"var headers = [\"Content-Type: application/x-www-form-urlencoded\", \"Content-" +"Length: \" + str(query_string.length())]\n" +"var result = http_client.request(http_client.METHOD_POST, \"/index.php\", " +"headers, query_string)\n" +"[/gdscript]\n" +"[csharp]\n" +"var fields = new Godot.Collections.Dictionary { { \"username\", \"user\" }, " +"{ \"password\", \"pass\" } };\n" +"string queryString = new HttpClient().QueryStringFromDict(fields);\n" +"string[] headers = [\"Content-Type: application/x-www-form-urlencoded\", $" +"\"Content-Length: {queryString.Length}\"];\n" +"var result = new HttpClient().Request(HttpClient.Method.Post, \"index.php\", " +"headers, queryString);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] The [param body] parameter is ignored if [param method] is " +"[constant HTTPClient.METHOD_GET]. This is because GET methods can't contain " +"request data. As a workaround, you can pass request data as a query string in " +"the URL. See [method String.uri_encode] for an example." +msgstr "" +"向连接的服务器发送请求。\n" +"URL 参数通常只是主机名后面的部分,所以对于 [code]https://example.com/index." +"php[/code] 来说就是 [code]/index.php[/code]。当向 HTTP 代理服务器发送请求时," +"它应该是一个绝对 URL。对于 [constant HTTPClient.METHOD_OPTIONS] 请求," +"[code]*[/code] 也是允许的。对于 [constant HTTPClient.METHOD_CONNECT] 请求,它" +"应该是权限组件 ([code]host:port[/code])。\n" +"Headers 参数是 HTTP 请求的报头。有关可用的 HTTP 方法,请参阅 [enum Method]。\n" +"要创建带有查询字符串的 POST 请求以推送到服务器,请执行以下操作:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var fields = {\"username\" : \"user\", \"password\" : \"pass\"}\n" +"var query_string = http_client.query_string_from_dict(fields)\n" +"var headers = [\"Content-Type: application/x-www-form-urlencoded\", \"Content-" +"Length: \" + str(query_string.length())]\n" +"var result = http_client.request(http_client.METHOD_POST, \"/index.php\", " +"headers, query_string)\n" +"[/gdscript]\n" +"[csharp]\n" +"var fields = new Godot.Collections.Dictionary { { \"username\", \"user\" }, " +"{ \"password\", \"pass\" } };\n" +"string queryString = new HttpClient().QueryStringFromDict(fields);\n" +"string[] headers = [\"Content-Type: application/x-www-form-urlencoded\", $" +"\"Content-Length: {queryString.Length}\"];\n" +"var result = new HttpClient().Request(HttpClient.Method.Post, \"index.php\", " +"headers, queryString);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b]如果 [param method] 是 [constant HTTPClient.METHOD_GET],则忽略 " +"[param body] 参数。这是因为 GET 方法不能包含请求数据。解决方法是,可以将请求数" +"据作为 URL 中的查询字符串传递。示例见 [method String.uri_encode]。" + msgid "" "Sends a raw request to the connected host.\n" "The URL parameter is usually just the part after the host, so for " -"[code]https://somehost.com/index.php[/code], it is [code]/index.php[/code]. " +"[code]https://example.com/index.php[/code], it is [code]/index.php[/code]. " "When sending requests to an HTTP proxy server, it should be an absolute URL. " "For [constant HTTPClient.METHOD_OPTIONS] requests, [code]*[/code] is also " "allowed. For [constant HTTPClient.METHOD_CONNECT] requests, it should be the " @@ -54669,12 +69964,12 @@ msgid "" "Sends the body data raw, as a byte array and does not encode it in any way." msgstr "" "向连接的服务器发送请求。\n" -"URL 参数通常只是主机名后面的部分,所以对于 [code]https://somehost.com/index." +"URL 参数通常只是主机名后面的部分,所以对于 [code]https://example.com/index." "php[/code] 来说就是 [code]/index.php[/code]。当向 HTTP 代理服务器发送请求时," "它应该是一个绝对 URL。对于 [constant HTTPClient.METHOD_OPTIONS] 请求," "[code]*[/code] 也是允许的。对于 [constant HTTPClient.METHOD_CONNECT] 请求,它" "应该是权限组件 ([code]host:port[/code])。\n" -"Headers 参数是 HTTP 请求的报头。有关可用的 HTTP 方法,请参阅 [enum Method]。\n" +"Headers 参数是 HTTP 请求的报头。可用的 HTTP 方法见 [enum Method]。\n" "请求体是以字节数组的形式原样发送的,不会进行任何形式的编码。" msgid "" @@ -54826,6 +70121,24 @@ msgstr "" "HTTP 状态码 [code]102 Processing[/code](WebDAV)。表示服务器已收到请求并且正" "在处理,尚未生成响应。" +msgid "" +"HTTP status code [code]200 OK[/code]. The request has succeeded. Default " +"response for successful requests. Meaning varies depending on the request:\n" +"- [constant METHOD_GET]: The resource has been fetched and is transmitted in " +"the message body.\n" +"- [constant METHOD_HEAD]: The entity headers are in the message body.\n" +"- [constant METHOD_POST]: The resource describing the result of the action is " +"transmitted in the message body.\n" +"- [constant METHOD_TRACE]: The message body contains the request message as " +"received by the server." +msgstr "" +"HTTP 状态码 [code]200 OK[/code]。请求成功,是成功请求的默认响应,根据请求的不" +"同表示的含义也不同:\n" +"- [constant METHOD_GET]:已获取资源并通过消息体发送。\n" +"- [constant METHOD_HEAD]:实体报头在消息体中。\n" +"- [constant METHOD_POST]:描述操作结果的资源已通过消息体发送。\n" +"- [constant METHOD_TRACE]:消息体包含服务器所收到的请求消息。" + msgid "" "HTTP status code [code]201 Created[/code]. The request has succeeded and a " "new resource has been created as a result of it. This is typically the " @@ -55307,6 +70620,333 @@ msgstr "" msgid "A node with the ability to send HTTP(S) requests." msgstr "具有发送 HTTP(S) 请求能力的节点。" +msgid "" +"A node with the ability to send HTTP requests. Uses [HTTPClient] internally.\n" +"Can be used to make HTTP requests, i.e. download or upload files or web " +"content via HTTP.\n" +"[b]Warning:[/b] See the notes and warnings on [HTTPClient] for limitations, " +"especially regarding TLS security.\n" +"[b]Note:[/b] When exporting to Android, make sure to enable the " +"[code]INTERNET[/code] permission in the Android export preset before " +"exporting the project or using one-click deploy. Otherwise, network " +"communication of any kind will be blocked by Android.\n" +"[b]Example:[/b] Contact a REST API and print one of its returned fields:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _ready():\n" +" # Create an HTTP request node and connect its completion signal.\n" +" var http_request = HTTPRequest.new()\n" +" add_child(http_request)\n" +" http_request.request_completed.connect(self._http_request_completed)\n" +"\n" +" # Perform a GET request. The URL below returns JSON as of writing.\n" +" var error = http_request.request(\"https://httpbin.org/get\")\n" +" if error != OK:\n" +" push_error(\"An error occurred in the HTTP request.\")\n" +"\n" +" # Perform a POST request. The URL below returns JSON as of writing.\n" +" # Note: Don't make simultaneous requests using a single HTTPRequest " +"node.\n" +" # The snippet below is provided for reference only.\n" +" var body = JSON.new().stringify({\"name\": \"Godette\"})\n" +" error = http_request.request(\"https://httpbin.org/post\", [], HTTPClient." +"METHOD_POST, body)\n" +" if error != OK:\n" +" push_error(\"An error occurred in the HTTP request.\")\n" +"\n" +"# Called when the HTTP request is completed.\n" +"func _http_request_completed(result, response_code, headers, body):\n" +" var json = JSON.new()\n" +" json.parse(body.get_string_from_utf8())\n" +" var response = json.get_data()\n" +"\n" +" # Will print the user agent string used by the HTTPRequest node (as " +"recognized by httpbin.org).\n" +" print(response.headers[\"User-Agent\"])\n" +"[/gdscript]\n" +"[csharp]\n" +"public override void _Ready()\n" +"{\n" +" // Create an HTTP request node and connect its completion signal.\n" +" var httpRequest = new HttpRequest();\n" +" AddChild(httpRequest);\n" +" httpRequest.RequestCompleted += HttpRequestCompleted;\n" +"\n" +" // Perform a GET request. The URL below returns JSON as of writing.\n" +" Error error = httpRequest.Request(\"https://httpbin.org/get\");\n" +" if (error != Error.Ok)\n" +" {\n" +" GD.PushError(\"An error occurred in the HTTP request.\");\n" +" }\n" +"\n" +" // Perform a POST request. The URL below returns JSON as of writing.\n" +" // Note: Don't make simultaneous requests using a single HTTPRequest " +"node.\n" +" // The snippet below is provided for reference only.\n" +" string body = new Json().Stringify(new Godot.Collections.Dictionary\n" +" {\n" +" { \"name\", \"Godette\" }\n" +" });\n" +" error = httpRequest.Request(\"https://httpbin.org/post\", null, " +"HttpClient.Method.Post, body);\n" +" if (error != Error.Ok)\n" +" {\n" +" GD.PushError(\"An error occurred in the HTTP request.\");\n" +" }\n" +"}\n" +"\n" +"// Called when the HTTP request is completed.\n" +"private void HttpRequestCompleted(long result, long responseCode, string[] " +"headers, byte[] body)\n" +"{\n" +" var json = new Json();\n" +" json.Parse(body.GetStringFromUtf8());\n" +" var response = json.GetData().AsGodotDictionary();\n" +"\n" +" // Will print the user agent string used by the HTTPRequest node (as " +"recognized by httpbin.org).\n" +" GD.Print((response[\"headers\"].AsGodotDictionary())[\"User-Agent\"]);\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Example:[/b] Load an image using [HTTPRequest] and display it:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _ready():\n" +" # Create an HTTP request node and connect its completion signal.\n" +" var http_request = HTTPRequest.new()\n" +" add_child(http_request)\n" +" http_request.request_completed.connect(self._http_request_completed)\n" +"\n" +" # Perform the HTTP request. The URL below returns a PNG image as of " +"writing.\n" +" var error = http_request.request(\"https://placehold.co/512\")\n" +" if error != OK:\n" +" push_error(\"An error occurred in the HTTP request.\")\n" +"\n" +"# Called when the HTTP request is completed.\n" +"func _http_request_completed(result, response_code, headers, body):\n" +" if result != HTTPRequest.RESULT_SUCCESS:\n" +" push_error(\"Image couldn't be downloaded. Try a different image.\")\n" +"\n" +" var image = Image.new()\n" +" var error = image.load_png_from_buffer(body)\n" +" if error != OK:\n" +" push_error(\"Couldn't load the image.\")\n" +"\n" +" var texture = ImageTexture.create_from_image(image)\n" +"\n" +" # Display the image in a TextureRect node.\n" +" var texture_rect = TextureRect.new()\n" +" add_child(texture_rect)\n" +" texture_rect.texture = texture\n" +"[/gdscript]\n" +"[csharp]\n" +"public override void _Ready()\n" +"{\n" +" // Create an HTTP request node and connect its completion signal.\n" +" var httpRequest = new HttpRequest();\n" +" AddChild(httpRequest);\n" +" httpRequest.RequestCompleted += HttpRequestCompleted;\n" +"\n" +" // Perform the HTTP request. The URL below returns a PNG image as of " +"writing.\n" +" Error error = httpRequest.Request(\"https://placehold.co/512\");\n" +" if (error != Error.Ok)\n" +" {\n" +" GD.PushError(\"An error occurred in the HTTP request.\");\n" +" }\n" +"}\n" +"\n" +"// Called when the HTTP request is completed.\n" +"private void HttpRequestCompleted(long result, long responseCode, string[] " +"headers, byte[] body)\n" +"{\n" +" if (result != (long)HttpRequest.Result.Success)\n" +" {\n" +" GD.PushError(\"Image couldn't be downloaded. Try a different image." +"\");\n" +" }\n" +" var image = new Image();\n" +" Error error = image.LoadPngFromBuffer(body);\n" +" if (error != Error.Ok)\n" +" {\n" +" GD.PushError(\"Couldn't load the image.\");\n" +" }\n" +"\n" +" var texture = ImageTexture.CreateFromImage(image);\n" +"\n" +" // Display the image in a TextureRect node.\n" +" var textureRect = new TextureRect();\n" +" AddChild(textureRect);\n" +" textureRect.Texture = texture;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] [HTTPRequest] nodes will automatically handle decompression of " +"response bodies. A [code]Accept-Encoding[/code] header will be automatically " +"added to each of your requests, unless one is already specified. Any response " +"with a [code]Content-Encoding: gzip[/code] header will automatically be " +"decompressed and delivered to you as uncompressed bytes." +msgstr "" +"一种具有发送 HTTP 请求能力的节点。内部使用 [HTTPClient]。\n" +"可用于发出 HTTP 请求,即通过 HTTP 下载或上传文件或网络内容。\n" +"[b]警告:[/b]请参阅 [HTTPClient] 中的注释和警告以了解限制,尤其是有关 TLS 安全" +"性的限制。\n" +"[b]注意:[/b]导出到 Android 时,在导出项目或使用一键部署前,请确保在 Android " +"导出预设中启用 [code]INTERNET[/code] 权限。否则,任何类型的网络通信都将被 " +"Android 阻止。\n" +"[b]示例:[/b]联系 REST API 并输出一个返回字段:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _ready():\n" +" # 创建一个 HTTP 请求节点并连接其完成信号。\n" +" var http_request = HTTPRequest.new()\n" +" add_child(http_request)\n" +" http_request.request_completed.connect(self._http_request_completed)\n" +"\n" +" # 执行一个 GET 请求。以下 URL 会将写入作为 JSON 返回。\n" +" var error = http_request.request(\"https://httpbin.org/get\")\n" +" if error != OK:\n" +" push_error(\"在HTTP请求中发生了一个错误。\")\n" +"\n" +" # 执行一个 POST 请求。 以下 URL 会将写入作为 JSON 返回。\n" +" # 注意:不要使用单个 HTTPRequest 节点同时发出请求。\n" +" # 下面的代码片段仅供参考。\n" +" var body = JSON.new().stringify({\"name\": \"Godette\"})\n" +" error = http_request.request(\"https://httpbin.org/post\", [], HTTPClient." +"METHOD_POST, body)\n" +" if error != OK:\n" +" push_error(\"在HTTP请求中发生了一个错误。\")\n" +"\n" +"# 当 HTTP 请求完成时调用。\n" +"func _http_request_completed(result, response_code, headers, body):\n" +" var json = JSON.new()\n" +" json.parse(body.get_string_from_utf8())\n" +" var response = json.get_data()\n" +"\n" +" # 将打印 HTTPRequest 节点使用的用户代理字符串(由 httpbin.org 识别)。\n" +" print(response.headers[\"User-Agent\"])\n" +"[/gdscript]\n" +"[csharp]\n" +"public override void _Ready()\n" +"{\n" +" // 创建一个 HTTP 请求节点并连接其完成信号。\n" +" var httpRequest = new HttpRequest();\n" +" AddChild(httpRequest);\n" +" httpRequest.RequestCompleted += HttpRequestCompleted;\n" +"\n" +" // 执行一个 GET 请求。以下 URL 会将写入作为 JSON 返回。\n" +" Error error = httpRequest.Request(\"https://httpbin.org/get\");\n" +" if (error != Error.Ok)\n" +" {\n" +" GD.PushError(\"在HTTP请求中发生了一个错误。\");\n" +" }\n" +"\n" +" // 执行一个 POST 请求。 以下 URL 会将写入作为 JSON 返回。\n" +" // 注意:不要使用单个 HTTPRequest 节点同时发出请求。\n" +" // 下面的代码片段仅供参考。\n" +" string body = new Json().Stringify(new Godot.Collections.Dictionary\n" +" {\n" +" { \"name\", \"Godette\" }\n" +" });\n" +" error = httpRequest.Request(\"https://httpbin.org/post\", null, " +"HttpClient.Method.Post, body);\n" +" if (error != Error.Ok)\n" +" {\n" +" GD.PushError(\"在HTTP请求中发生了一个错误。\");\n" +" }\n" +"}\n" +"\n" +"// 当 HTTP 请求完成时调用。\n" +"private void HttpRequestCompleted(long result, long responseCode, string[] " +"headers, byte[] body)\n" +"{\n" +" var json = new Json();\n" +" json.Parse(body.GetStringFromUtf8());\n" +" var response = json.GetData().AsGodotDictionary();\n" +"\n" +" // 将打印 HTTPRequest 节点使用的用户代理字符串(由 httpbin.org 识别)。\n" +" GD.Print((response[\"headers\"].AsGodotDictionary())[\"User-Agent\"]);\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]示例:[/b]使用 [HTTPRequest] 加载并显示图像:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _ready():\n" +" # 创建一个 HTTP 请求节点并连接其完成信号。\n" +" var http_request = HTTPRequest.new()\n" +" add_child(http_request)\n" +" http_request.request_completed.connect(self._http_request_completed)\n" +"\n" +" # 执行一个 HTTP 请求。下面的 URL 将写入作为一个 PNG 图像返回。\n" +" var error = http_request.request(\"https://placehold.co/512\")\n" +" if error != OK:\n" +" push_error(\"在HTTP请求中发生了一个错误。\")\n" +"\n" +"# 当 HTTP 请求完成时调用。\n" +"func _http_request_completed(result, response_code, headers, body):\n" +" if result != HTTPRequest.RESULT_SUCCESS:\n" +" push_error(\"无法下载图像。尝试一个不同的图像。\")\n" +"\n" +" var image = Image.new()\n" +" var error = image.load_png_from_buffer(body)\n" +" if error != OK:\n" +" push_error(\"无法加载图像。\")\n" +"\n" +" var texture = ImageTexture.create_from_image(image)\n" +"\n" +" # 在 TextureRect 节点中显示图像。\n" +" var texture_rect = TextureRect.new()\n" +" add_child(texture_rect)\n" +" texture_rect.texture = texture\n" +"[/gdscript]\n" +"[csharp]\n" +"public override void _Ready()\n" +"{\n" +" // 创建一个 HTTP 请求节点并连接其完成信号。\n" +" var httpRequest = new HttpRequest();\n" +" AddChild(httpRequest);\n" +" httpRequest.RequestCompleted += HttpRequestCompleted;\n" +"\n" +" // 执行一个 HTTP 请求。下面的 URL 将写入作为一个 PNG 图像返回。\n" +" Error error = httpRequest.Request(\"https://placehold.co/512\");\n" +" if (error != Error.Ok)\n" +" {\n" +" GD.PushError(\"在HTTP请求中发生了一个错误。\");\n" +" }\n" +"}\n" +"\n" +"// 当 HTTP 请求完成时调用。\n" +"private void HttpRequestCompleted(long result, long responseCode, string[] " +"headers, byte[] body)\n" +"{\n" +" if (result != (long)HttpRequest.Result.Success)\n" +" {\n" +" GD.PushError(\"无法下载图像。尝试一个不同的图像。\");\n" +" }\n" +" var image = new Image();\n" +" Error error = image.LoadPngFromBuffer(body);\n" +" if (error != Error.Ok)\n" +" {\n" +" GD.PushError(\"无法加载图像。\");\n" +" }\n" +"\n" +" var texture = ImageTexture.CreateFromImage(image);\n" +"\n" +" // 在 TextureRect 节点中显示图像。\n" +" var textureRect = new TextureRect();\n" +" AddChild(textureRect);\n" +" textureRect.Texture = texture;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b][HTTPRequest] 节点会自动处理响应体的解压缩。除非已经指定了一个," +"否则 [code]Accept-Encoding[/code] 报头将自动添加到你的每个请求中。任何带有 " +"[code]Content-Encoding: gzip[/code] 报头的响应都将自动解压,并作为未压缩的字节" +"传送给你。" + msgid "Making HTTP requests" msgstr "发出 HTTP 请求" @@ -55469,6 +71109,14 @@ msgstr "请求完成时触发。" msgid "Request successful." msgstr "请求成功。" +msgid "" +"Request failed due to a mismatch between the expected and actual chunked body " +"size during transfer. Possible causes include network errors, server " +"misconfiguration, or issues with chunked encoding." +msgstr "" +"请求失败,传输的实际数据块大小与预期不符。可能的原因有网络错误、服务器配置问" +"题、数据块编码问题等。" + msgid "Request failed while connecting." msgstr "连接时请求失败。" @@ -55487,6 +71135,14 @@ msgstr "请求(目前还)没有获得相应。" msgid "Request exceeded its maximum size limit, see [member body_size_limit]." msgstr "请求超出了大小上限,见 [member body_size_limit]。" +msgid "" +"Request failed due to an error while decompressing the response body. " +"Possible causes include unsupported or incorrect compression format, " +"corrupted data, or incomplete transfer." +msgstr "" +"请求失败,解压响应体出错。可能的原因有压缩格式不支持、压缩格式错误、数据损坏、" +"传输不完整等。" + msgid "Request failed (currently unused)." msgstr "请求失败(目前未使用)。" @@ -55570,6 +71226,21 @@ msgstr "" "mask] 图像的大小(宽度和高度)[b]必须[/b]相同,格式可以不同。[param src_rect] " "的大小如果非正,则会作为空矩形处理。" +msgid "" +"Copies [param src_rect] from [param src] image to this image at coordinates " +"[param dst], clipped accordingly to both image bounds. This image and [param " +"src] image [b]must[/b] have the same format. [param src_rect] with non-" +"positive size is treated as empty.\n" +"[b]Note:[/b] The alpha channel data in [param src] will overwrite the " +"corresponding data in this image at the target position. To blend alpha " +"channels, use [method blend_rect] instead." +msgstr "" +"将 [param src] 图像上的 [param src_rect] 复制到该图像的坐标 [param dst] 处,并" +"根据两个图像边界进行裁剪。该图像和 [param src] 图像的格式[b]必须[/b]相同。非正" +"数大小的 [param src_rect] 将被视为空矩形。\n" +"[b]注意:[/b][param src] 中的 Alpha 通道数据会覆盖图像目标位置上对应的数据。要" +"对 Alpha 通道进行混合,请改用 [method blend_rect]。" + msgid "" "Blits [param src_rect] area from [param src] image to this image at the " "coordinates given by [param dst], clipped accordingly to both image bounds. " @@ -55815,6 +71486,14 @@ msgstr "" "如果图像中所有像素的 Alpha 都是 0,则返回 [code]true[/code]。如果有任何像素的 " "Alpha 高于 0,则返回 [code]false[/code]。" +msgid "" +"Converts the entire image from the linear colorspace to the sRGB colorspace. " +"Only works on images with [constant FORMAT_RGB8] or [constant FORMAT_RGBA8] " +"formats." +msgstr "" +"将整个图像从线性色彩空间转换至 sRGB 色彩空间。仅适用于 [constant FORMAT_RGB8] " +"和 [constant FORMAT_RGBA8] 格式的图像。" + msgid "" "Loads an image from file [param path]. See [url=$DOCS_URL/tutorials/" "assets_pipeline/importing_images.html#supported-image-formats]Supported image " @@ -56041,16 +71720,138 @@ msgstr "将该图像作为 PNG 文件保存到位于 [param path] 的文件中 msgid "Saves the image as a PNG file to a byte array." msgstr "将该图像作为 PNG 文件保存到字节数组中。" +msgid "" +"Saves the image as a WebP (Web Picture) file to the file at [param path]. By " +"default it will save lossless. If [param lossy] is [code]true[/code], the " +"image will be saved lossy, using the [param quality] setting between " +"[code]0.0[/code] and [code]1.0[/code] (inclusive). Lossless WebP offers more " +"efficient compression than PNG.\n" +"[b]Note:[/b] The WebP format is limited to a size of 16383×16383 pixels, " +"while PNG can save larger images." +msgstr "" +"将该图像作为 WebP(Web 图片)文件保存到 [param path] 中的文件中。默认情况下," +"它将无损保存。如果 [param lossy] 为 [code]true[/code],则该图像将使用介于 " +"[code]0.0[/code] 和 [code]1.0[/code](包含)之间的 [param quality] 设置进行有" +"损保存。无损 WebP 提供比 PNG 更有效的压缩。\n" +"[b]注意:[/b]WebP 格式的大小限制为 16383×16383 像素,而 PNG 可以保存更大的图" +"像。" + +msgid "" +"Saves the image as a WebP (Web Picture) file to a byte array. By default it " +"will save lossless. If [param lossy] is [code]true[/code], the image will be " +"saved lossy, using the [param quality] setting between [code]0.0[/code] and " +"[code]1.0[/code] (inclusive). Lossless WebP offers more efficient compression " +"than PNG.\n" +"[b]Note:[/b] The WebP format is limited to a size of 16383×16383 pixels, " +"while PNG can save larger images." +msgstr "" +"将该图像作为 WebP(Web 图片)文件保存到字节数组中。默认情况下,它将无损保存。" +"如果 [param lossy] 为 [code]true[/code],则该图像将使用介于 [code]0.0[/code] " +"和 [code]1.0[/code](包含)之间的 [param quality] 设置进行有损保存。无损 WebP " +"提供比 PNG 更有效的压缩。\n" +"[b]注意:[/b]WebP 格式的大小限制为 16383×16383 像素,而 PNG 可以保存更大的图" +"像。" + msgid "" "Overwrites data of an existing [Image]. Non-static equivalent of [method " "create_from_data]." msgstr "覆盖现有 [Image] 的数据。[method create_from_data] 的非静态等价物。" +msgid "" +"Sets the [Color] of the pixel at [code](x, y)[/code] to [param color].\n" +"[codeblocks]\n" +"[gdscript]\n" +"var img_width = 10\n" +"var img_height = 5\n" +"var img = Image.create(img_width, img_height, false, Image.FORMAT_RGBA8)\n" +"\n" +"img.set_pixel(1, 2, Color.RED) # Sets the color at (1, 2) to red.\n" +"[/gdscript]\n" +"[csharp]\n" +"int imgWidth = 10;\n" +"int imgHeight = 5;\n" +"var img = Image.Create(imgWidth, imgHeight, false, Image.Format.Rgba8);\n" +"\n" +"img.SetPixel(1, 2, Colors.Red); // Sets the color at (1, 2) to red.\n" +"[/csharp]\n" +"[/codeblocks]\n" +"This is the same as [method set_pixelv], but with a two integer arguments " +"instead of a [Vector2i] argument." +msgstr "" +"将 [code](x, y)[/code] 处像素的 [Color] 设置为 [param color]。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var img_width = 10\n" +"var img_height = 5\n" +"var img = Image.create(img_width, img_height, false, Image.FORMAT_RGBA8)\n" +"\n" +"img.set_pixel(1, 2, Color.RED) # 将 (1, 2) 处的颜色设置为红色。\n" +"[/gdscript]\n" +"[csharp]\n" +"int imgWidth = 10;\n" +"int imgHeight = 5;\n" +"var img = Image.Create(imgWidth, imgHeight, false, Image.Format.Rgba8);\n" +"\n" +"img.SetPixel(1, 2, Colors.Red); // 将 (1, 2) 处的颜色设置为红色。\n" +"[/csharp]\n" +"[/codeblocks]\n" +"这与 [method set_pixelv] 相同,只是使用两个整数参数而不是一个 [Vector2i] 参" +"数。" + +msgid "" +"Sets the [Color] of the pixel at [param point] to [param color].\n" +"[codeblocks]\n" +"[gdscript]\n" +"var img_width = 10\n" +"var img_height = 5\n" +"var img = Image.create(img_width, img_height, false, Image.FORMAT_RGBA8)\n" +"\n" +"img.set_pixelv(Vector2i(1, 2), Color.RED) # Sets the color at (1, 2) to red.\n" +"[/gdscript]\n" +"[csharp]\n" +"int imgWidth = 10;\n" +"int imgHeight = 5;\n" +"var img = Image.Create(imgWidth, imgHeight, false, Image.Format.Rgba8);\n" +"\n" +"img.SetPixelv(new Vector2I(1, 2), Colors.Red); // Sets the color at (1, 2) to " +"red.\n" +"[/csharp]\n" +"[/codeblocks]\n" +"This is the same as [method set_pixel], but with a [Vector2i] argument " +"instead of two integer arguments." +msgstr "" +"将 [param point] 处像素的 [Color] 设置为 [param color]。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var img_width = 10\n" +"var img_height = 5\n" +"var img = Image.create(img_width, img_height, false, Image.FORMAT_RGBA8)\n" +"\n" +"img.set_pixelv(Vector2i(1, 2), Color.RED) # 将 (1, 2) 处的颜色设置为红色。\n" +"[/gdscript]\n" +"[csharp]\n" +"int imgWidth = 10;\n" +"int imgHeight = 5;\n" +"var img = Image.Create(imgWidth, imgHeight, false, Image.Format.Rgba8);\n" +"\n" +"img.SetPixelv(new Vector2I(1, 2), Colors.Red); // 将 (1, 2) 处的颜色设置为红" +"色。\n" +"[/csharp]\n" +"[/codeblocks]\n" +"这与 [method set_pixel] 相同,只是使用一个 [Vector2i] 参数而不是两个整数参数。" + msgid "" "Shrinks the image by a factor of 2 on each axis (this divides the pixel count " "by 4)." msgstr "在每个轴上将图像缩小 2 倍(这会将像素数除以 4)。" +msgid "" +"Converts the raw data from the sRGB colorspace to a linear scale. Only works " +"on images with [constant FORMAT_RGB8] or [constant FORMAT_RGBA8] formats." +msgstr "" +"将原始数据从 sRGB 色彩空间转换至线性尺度。仅对格式为 [constant FORMAT_RGB8] " +"和 [constant FORMAT_RGBA8] 的图像有效。" + msgid "" "Holds all the image's color data in a given format. See [enum Format] " "constants." @@ -56581,6 +72382,71 @@ msgstr "从引擎中移除这个格式加载器。" msgid "A [Texture2D] based on an [Image]." msgstr "基于 [Image] 的 [Texture2D]。" +msgid "" +"A [Texture2D] based on an [Image]. For an image to be displayed, an " +"[ImageTexture] has to be created from it using the [method create_from_image] " +"method:\n" +"[codeblock]\n" +"var image = Image.load_from_file(\"res://icon.svg\")\n" +"var texture = ImageTexture.create_from_image(image)\n" +"$Sprite2D.texture = texture\n" +"[/codeblock]\n" +"This way, textures can be created at run-time by loading images both from " +"within the editor and externally.\n" +"[b]Warning:[/b] Prefer to load imported textures with [method @GDScript.load] " +"over loading them from within the filesystem dynamically with [method Image." +"load], as it may not work in exported projects:\n" +"[codeblock]\n" +"var texture = load(\"res://icon.svg\")\n" +"$Sprite2D.texture = texture\n" +"[/codeblock]\n" +"This is because images have to be imported as a [CompressedTexture2D] first " +"to be loaded with [method @GDScript.load]. If you'd still like to load an " +"image file just like any other [Resource], import it as an [Image] resource " +"instead, and then load it normally using the [method @GDScript.load] method.\n" +"[b]Note:[/b] The image can be retrieved from an imported texture using the " +"[method Texture2D.get_image] method, which returns a copy of the image:\n" +"[codeblock]\n" +"var texture = load(\"res://icon.svg\")\n" +"var image = texture.get_image()\n" +"[/codeblock]\n" +"An [ImageTexture] is not meant to be operated from within the editor " +"interface directly, and is mostly useful for rendering images on screen " +"dynamically via code. If you need to generate images procedurally from within " +"the editor, consider saving and importing images as custom texture resources " +"implementing a new [EditorImportPlugin].\n" +"[b]Note:[/b] The maximum texture size is 16384×16384 pixels due to graphics " +"hardware limitations." +msgstr "" +"基于 [Image] 的 [Texture2D]。对于图像的显示,必须使用 [method " +"create_from_image] 方法从中创建一个 [ImageTexture]:\n" +"[codeblock]\n" +"var image = Image.load_from_file(\"res://icon.svg\")\n" +"var texture = ImageTexture.create_from_image(image)\n" +"$Sprite2D.texture = texture\n" +"[/codeblock]\n" +"这样,可以在运行时通过从编辑器内部和外部加载图像来创建纹理。\n" +"[b]警告:[/b]最好使用 [method @GDScript.load] 加载导入的纹理,而不是使用 " +"[method Image.load] 从文件系统中动态加载它们,因为后者可能不适用于导出的项" +"目:\n" +"[codeblock]\n" +"var texture = load(\"res://icon.svg\")\n" +"$Sprite2D.texture = texture\n" +"[/codeblock]\n" +"这是因为图像必须首先作为 [CompressedTexture2D] 导入,然后才能使用 [method " +"@GDScript.load] 加载。如果仍想像加载任何其他 [Resource] 一样加载图像文件,请将" +"其导入为 [Image] 资源,然后使用 [method @GDScript.load] 方法正常加载它。\n" +"[b]注意:[/b]可以使用 [method Texture2D.get_image] 方法从导入的纹理中检索该图" +"像,该方法返回该图像的副本:\n" +"[codeblock]\n" +"var texture = load(\"res://icon.svg\")\n" +"var image = texture.get_image()\n" +"[/codeblock]\n" +"[ImageTexture] 并不意味着直接在编辑器界面中进行操作,主要用于通过代码在屏幕上" +"动态渲染图像。如果需要从编辑器中按程序生成图像,请考虑实现一个新的 " +"[EditorImportPlugin],将图像保存和导入为自定义纹理资源。\n" +"[b]注意:[/b]由于图形硬件限制,最大纹理大小为 16384×16384 像素。" + msgid "" "Creates a new [ImageTexture] and initializes it by allocating and setting the " "data from an [Image]." @@ -56672,18 +72538,6 @@ msgstr "" "[Texture2DArray]、[Cubemap] 和 [CubemapArray] 的基类。不能直接使用,但包含了访" "问派生资源类型所需的所有函数。另请参阅 [Texture3D]。" -msgid "" -"Creates an [ImageTextureLayered] from an array of [Image]s. See [method Image." -"create] for the expected data format. The first image decides the width, " -"height, image format and mipmapping setting. The other images [i]must[/i] " -"have the same width, height, image format and mipmapping setting.\n" -"Each [Image] represents one [code]layer[/code]." -msgstr "" -"从一组 [Image] 创建一个 [ImageTextureLayered]。有关预期的数据格式,请参阅 " -"[method Image.create]。第一张图像决定宽度、高度、图像格式和 mipmapping 设置。" -"其他图像[i]必须[/i]具有相同的宽度、高度、图像格式和 mipmapping 设置。\n" -"每个 [Image] 代表一个 [code]layer[/code]。" - msgid "" "Replaces the existing [Image] data at the given [param layer] with this new " "image.\n" @@ -56955,14 +72809,18 @@ msgid "" "when your device has an accelerometer. You must export your project to a " "supported device to read values from the accelerometer.\n" "[b]Note:[/b] This method only works on Android and iOS. On other platforms, " -"it always returns [constant Vector3.ZERO]." +"it always returns [constant Vector3.ZERO].\n" +"[b]Note:[/b] For Android, [member ProjectSettings.input_devices/sensors/" +"enable_accelerometer] must be enabled." msgstr "" "如果设备有加速度计传感器,则返回该设备加速度计传感器的加速度,单位为 m/s²。否" "则,该方法返回 [constant Vector3.ZERO]。\\\n" "请注意,即使你的设备具有一个加速度计,在从编辑器运行时,该方法也会返回一个空" "的 [Vector3]。必须将项目导出到一个支持的设备上,才能从加速度计读取值。\n" "[b]注意:[/b]该方法仅适用于 Android 和 iOS。在其他平台上,它总是返回 " -"[constant Vector3.ZERO]。" +"[constant Vector3.ZERO]。\n" +"[b]注意:[/b]在 Android 上必须启用 [member ProjectSettings.input_devices/" +"sensors/enable_accelerometer]。" msgid "" "Returns a value between 0 and 1 representing the raw intensity of the given " @@ -57017,30 +72875,88 @@ msgid "" "Returns the gravity in m/s² of the device's accelerometer sensor, if the " "device has one. Otherwise, the method returns [constant Vector3.ZERO].\n" "[b]Note:[/b] This method only works on Android and iOS. On other platforms, " -"it always returns [constant Vector3.ZERO]." +"it always returns [constant Vector3.ZERO].\n" +"[b]Note:[/b] For Android, [member ProjectSettings.input_devices/sensors/" +"enable_gravity] must be enabled." msgstr "" "如果设备有加速度计传感器,则返回该设备有加速度计传感器的重力,单位为 m/s²。否" "则,该方法返回 [constant Vector3.ZERO]。\n" "[b]注意:[/b]该方法仅适用于 Android 和 iOS。在其他平台上,它总是返回 " -"[constant Vector3.ZERO]。" +"[constant Vector3.ZERO]。\n" +"[b]注意:[/b]在 Android 上必须启用 [member ProjectSettings.input_devices/" +"sensors/enable_gravity]。" msgid "" "Returns the rotation rate in rad/s around a device's X, Y, and Z axes of the " "gyroscope sensor, if the device has one. Otherwise, the method returns " "[constant Vector3.ZERO].\n" "[b]Note:[/b] This method only works on Android and iOS. On other platforms, " -"it always returns [constant Vector3.ZERO]." +"it always returns [constant Vector3.ZERO].\n" +"[b]Note:[/b] For Android, [member ProjectSettings.input_devices/sensors/" +"enable_gyroscope] must be enabled." msgstr "" "如果设备有陀螺仪传感器,则返回围绕设备 X、Y、Z 轴的旋转速率,单位为 rad/s。否" "则,该方法返回 [constant Vector3.ZERO]。\n" "[b]注意:[/b]这个方法只在 Android 和 iOS 上工作。在其他平台上,总是返回 " -"[constant Vector3.ZERO]。" +"[constant Vector3.ZERO]。\n" +"[b]注意:[/b]在 Android 上必须启用 [member ProjectSettings.input_devices/" +"sensors/enable_gyroscope]。" msgid "" "Returns the current value of the joypad axis at given index (see [enum " "JoyAxis])." msgstr "返回给定索引(参见 [enum JoyAxis])处的游戏手柄轴的当前值。" +msgid "" +"Returns an SDL2-compatible device GUID on platforms that use gamepad " +"remapping, e.g. [code]030000004c050000c405000000010000[/code]. Returns an " +"empty string if it cannot be found. Godot uses the [url=https://github.com/" +"gabomdq/SDL_GameControllerDB]SDL2 game controller database[/url] to determine " +"gamepad names and mappings based on this GUID.\n" +"On Windows, all XInput joypad GUIDs will be overridden by Godot to " +"[code]__XINPUT_DEVICE__[/code], because their mappings are the same." +msgstr "" +"如果平台使用游戏手柄重映射,则返回设备的 GUID,与 SDL2 兼容,例如 " +"[code]030000004c050000c405000000010000[/code]。如果无法找到则返回空字符串。" +"Godot 会根据这个 GUID 使用 [url=https://github.com/gabomdq/" +"SDL_GameControllerDB]SDL2 游戏控制器数据库[/url]来确定游戏手柄的名称和映射。\n" +"在 Windows 上,Godot 会将所有 XInput 游戏手柄的 GUID 覆盖为 " +"[code]__XINPUT_DEVICE__[/code],因为它们的映射是相同的。" + +msgid "" +"Returns a dictionary with extra platform-specific information about the " +"device, e.g. the raw gamepad name from the OS or the Steam Input index.\n" +"On Windows, the dictionary contains the following fields:\n" +"[code]xinput_index[/code]: The index of the controller in the XInput system. " +"Undefined for DirectInput devices.\n" +"[code]vendor_id[/code]: The USB vendor ID of the device.\n" +"[code]product_id[/code]: The USB product ID of the device.\n" +"On Linux:\n" +"[code]raw_name[/code]: The name of the controller as it came from the OS, " +"before getting renamed by the godot controller database.\n" +"[code]vendor_id[/code]: The USB vendor ID of the device.\n" +"[code]product_id[/code]: The USB product ID of the device.\n" +"[code]steam_input_index[/code]: The Steam Input gamepad index, if the device " +"is not a Steam Input device this key won't be present.\n" +"[b]Note:[/b] The returned dictionary is always empty on Web, iOS, Android, " +"and macOS." +msgstr "" +"返回关于设备的额外平台相关信息字典,例如操作系统的原始游戏手柄名称,或者 " +"Steam Input 索引。\n" +"在 Windows 上,该字典包含如下字段:\n" +"[code]xinput_index[/code]:控制器在 XInput 系统中的索引。如果是 DirectInput 设" +"备则未定义。\n" +"[code]vendor_id[/code]:设备的 USB 供应商 ID。\n" +"[code]product_id[/code]:设备的 USB 产品 ID。\n" +"在 Linux 上:\n" +"[code]raw_name[/code]:从操作系统获取的控制器名称,未经 Godot 控制器数据库重命" +"名。\n" +"[code]vendor_id[/code]:设备的 USB 供应商 ID。\n" +"[code]product_id[/code]:设备的 USB 产品 ID。\n" +"[code]steam_input_index[/code]:Steam Input 游戏手柄索引,如果该设备不是 " +"Steam Input 设备则该字段不存在。\n" +"[b]注意:[/b]在 Web、iOS、Android 和 macOS 平台上,返回的字典始终为空。" + msgid "" "Returns the name of the joypad at the specified device index, e.g. [code]PS4 " "Controller[/code]. Godot uses the [url=https://github.com/gabomdq/" @@ -57080,12 +72996,16 @@ msgid "" "device's magnetometer sensor, if the device has one. Otherwise, the method " "returns [constant Vector3.ZERO].\n" "[b]Note:[/b] This method only works on Android and iOS. On other platforms, " -"it always returns [constant Vector3.ZERO]." +"it always returns [constant Vector3.ZERO].\n" +"[b]Note:[/b] For Android, [member ProjectSettings.input_devices/sensors/" +"enable_magnetometer] must be enabled." msgstr "" "如果设备有磁力传感器,则返回设备所有轴的磁场强度,单位为微特斯拉。否则,该方法" "返回 [constant Vector3.ZERO]。\n" "[b]注意:[/b]该方法仅适用于 Android 和 iOS。在其他平台上,它总是返回 " -"[constant Vector3.ZERO]。" +"[constant Vector3.ZERO]。\n" +"[b]注意:[/b]在 Android 上必须启用 [member ProjectSettings.input_devices/" +"sensors/enable_magnetometer]。" msgid "" "Returns mouse buttons as a bitmask. If multiple mouse buttons are pressed at " @@ -57281,6 +73201,58 @@ msgstr "" "阅文档中的[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]" "《输入示例》[/url]。" +msgid "" +"Feeds an [InputEvent] to the game. Can be used to artificially trigger input " +"events from code. Also generates [method Node._input] calls.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var cancel_event = InputEventAction.new()\n" +"cancel_event.action = \"ui_cancel\"\n" +"cancel_event.pressed = true\n" +"Input.parse_input_event(cancel_event)\n" +"[/gdscript]\n" +"[csharp]\n" +"var cancelEvent = new InputEventAction();\n" +"cancelEvent.Action = \"ui_cancel\";\n" +"cancelEvent.Pressed = true;\n" +"Input.ParseInputEvent(cancelEvent);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] Calling this function has no influence on the operating system. " +"So for example sending an [InputEventMouseMotion] will not move the OS mouse " +"cursor to the specified position (use [method warp_mouse] instead) and " +"sending [kbd]Alt/Cmd + Tab[/kbd] as [InputEventKey] won't toggle between " +"active windows." +msgstr "" +"向游戏提供一个 [InputEvent]。可用于通过代码人为地触发输入事件。也会产生 " +"[method Node._input] 调用。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var cancel_event = InputEventAction.new()\n" +"cancel_event.action = \"ui_cancel\"\n" +"cancel_event.pressed = true\n" +"Input.parse_input_event(cancel_event)\n" +"[/gdscript]\n" +"[csharp]\n" +"var cancelEvent = new InputEventAction();\n" +"cancelEvent.Action = \"ui_cancel\";\n" +"cancelEvent.Pressed = true;\n" +"Input.ParseInputEvent(cancelEvent);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b]调用该函数不会影响操作系统。因此,发送 [InputEventMouseMotion] 事" +"件并不会将操作系统的鼠标光标移动到指定位置(请改用 [method warp_mouse]),发" +"送 [kbd]Alt/Cmd + Tab[/kbd] 对应的 [InputEventKey] 也不会触发当前窗口的切换。" + +msgid "" +"Removes all mappings from the internal database that match the given GUID. " +"All currently connected joypads that use this GUID will become unmapped.\n" +"On Android, Godot will map to an internal fallback mapping." +msgstr "" +"在内部数据库中移除所有与给定 GUID 匹配的映射。所有当前连接的使用该 GUID 的游戏" +"手柄将变为未映射状态。\n" +"在 Android 上,Godot 将映射到一个内部的回退映射。" + msgid "" "Sets the acceleration value of the accelerometer sensor. Can be used for " "debugging on devices without a hardware sensor, for example in an editor on a " @@ -57720,6 +73692,29 @@ msgstr "" "项目在所有配置下都能正常工作,请不要假设用户在项目行为中具有特定的按键重复配" "置。" +msgid "" +"Returns [code]true[/code] if the specified [param event] matches this event. " +"Only valid for action events i.e key ([InputEventKey]), button " +"([InputEventMouseButton] or [InputEventJoypadButton]), axis " +"[InputEventJoypadMotion] or action ([InputEventAction]) events.\n" +"If [param exact_match] is [code]false[/code], it ignores additional input " +"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the " +"direction for [InputEventJoypadMotion] events.\n" +"[b]Note:[/b] Only considers the event configuration (such as the keyboard key " +"or joypad axis), not state information like [method is_pressed], [method " +"is_released], [method is_echo], or [method is_canceled]." +msgstr "" +"如果指定的 [param event] 与该事件匹配,则返回 [code]true[/code]。仅对动作事件" +"有效,即键([InputEventKey])、按钮([InputEventMouseButton] 或 " +"[InputEventJoypadButton])、轴 [InputEventJoypadMotion] 或动作" +"([InputEventAction])事件。\n" +"如果 [param exact_match] 为 [code]false[/code],它会忽略 [InputEventKey] 和 " +"[InputEventMouseButton] 事件的额外输入修饰键,以及 [InputEventJoypadMotion] 事" +"件的方向。\n" +"[b]注意:[/b]只会考虑事件配置(例如键盘按键和游戏手柄轴),不会考虑 [method " +"is_pressed]、[method is_released]、[method is_echo]、[method is_canceled] 等状" +"态信息。" + msgid "" "Returns [code]true[/code] if this input event is pressed. Not relevant for " "events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n" @@ -58156,6 +74151,138 @@ msgid "" "Represents a MIDI message from a MIDI device, such as a musical keyboard." msgstr "代表来自 MIDI 设备的 MIDI 消息,例如来自音乐键盘。" +msgid "" +"InputEventMIDI stores information about messages from [url=https://en." +"wikipedia.org/wiki/MIDI]MIDI[/url] (Musical Instrument Digital Interface) " +"devices. These may include musical keyboards, synthesizers, and drum " +"machines.\n" +"MIDI messages can be received over a 5-pin MIDI connector or over USB. If " +"your device supports both be sure to check the settings in the device to see " +"which output it is using.\n" +"By default, Godot does not detect MIDI devices. You need to call [method OS." +"open_midi_inputs], first. You can check which devices are detected with " +"[method OS.get_connected_midi_inputs], and close the connection with [method " +"OS.close_midi_inputs].\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _ready():\n" +" OS.open_midi_inputs()\n" +" print(OS.get_connected_midi_inputs())\n" +"\n" +"func _input(input_event):\n" +" if input_event is InputEventMIDI:\n" +" _print_midi_info(input_event)\n" +"\n" +"func _print_midi_info(midi_event):\n" +" print(midi_event)\n" +" print(\"Channel \", midi_event.channel)\n" +" print(\"Message \", midi_event.message)\n" +" print(\"Pitch \", midi_event.pitch)\n" +" print(\"Velocity \", midi_event.velocity)\n" +" print(\"Instrument \", midi_event.instrument)\n" +" print(\"Pressure \", midi_event.pressure)\n" +" print(\"Controller number: \", midi_event.controller_number)\n" +" print(\"Controller value: \", midi_event.controller_value)\n" +"[/gdscript]\n" +"[csharp]\n" +"public override void _Ready()\n" +"{\n" +" OS.OpenMidiInputs();\n" +" GD.Print(OS.GetConnectedMidiInputs());\n" +"}\n" +"\n" +"public override void _Input(InputEvent inputEvent)\n" +"{\n" +" if (inputEvent is InputEventMidi midiEvent)\n" +" {\n" +" PrintMIDIInfo(midiEvent);\n" +" }\n" +"}\n" +"\n" +"private void PrintMIDIInfo(InputEventMidi midiEvent)\n" +"{\n" +" GD.Print(midiEvent);\n" +" GD.Print($\"Channel {midiEvent.Channel}\");\n" +" GD.Print($\"Message {midiEvent.Message}\");\n" +" GD.Print($\"Pitch {midiEvent.Pitch}\");\n" +" GD.Print($\"Velocity {midiEvent.Velocity}\");\n" +" GD.Print($\"Instrument {midiEvent.Instrument}\");\n" +" GD.Print($\"Pressure {midiEvent.Pressure}\");\n" +" GD.Print($\"Controller number: {midiEvent.ControllerNumber}\");\n" +" GD.Print($\"Controller value: {midiEvent.ControllerValue}\");\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] Godot does not support MIDI output, so there is no way to emit " +"MIDI messages from Godot. Only MIDI input is supported.\n" +"[b]Note:[/b] On the Web platform, using MIDI input requires a browser " +"permission to be granted first. This permission request is performed when " +"calling [method OS.open_midi_inputs]. MIDI input will not work until the user " +"accepts the permission request." +msgstr "" +"InputEventMIDI 存储有关来自 [url=https://en.wikipedia.org/wiki/MIDI]MIDI[/url]" +"(乐器数字接口)设备的消息的信息。这些设备可能包括音乐键盘、合成器和鼓机。\n" +"MIDI 消息可以通过 5 针 MIDI 连接器或 USB 接收。如果你的设备支持这两种方式,请" +"务必检查设备中的设置以查看它正在使用哪种输出。\n" +"默认情况下,Godot 不检测 MIDI 设备。需要首先调用 [method OS." +"open_midi_inputs]。可以使用 [method OS.get_connected_midi_inputs] 检查检测到哪" +"些设备,并使用 [method OS.close_midi_inputs] 关闭连接。\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _ready():\n" +" OS.open_midi_inputs()\n" +" print(OS.get_connected_midi_inputs())\n" +"\n" +"func _input(input_event):\n" +" if input_event is InputEventMIDI:\n" +" _print_midi_info(input_event)\n" +"\n" +"func _print_midi_info(midi_event):\n" +" print(midi_event)\n" +" print(\"Channel \", midi_event.channel)\n" +" print(\"Message \", midi_event.message)\n" +" print(\"Pitch \", midi_event.pitch)\n" +" print(\"Velocity \", midi_event.velocity)\n" +" print(\"Instrument \", midi_event.instrument)\n" +" print(\"Pressure \", midi_event.pressure)\n" +" print(\"Controller number: \", midi_event.controller_number)\n" +" print(\"Controller value: \", midi_event.controller_value)\n" +"[/gdscript]\n" +"[csharp]\n" +"public override void _Ready()\n" +"{\n" +" OS.OpenMidiInputs();\n" +" GD.Print(OS.GetConnectedMidiInputs());\n" +"}\n" +"\n" +"public override void _Input(InputEvent inputEvent)\n" +"{\n" +" if (inputEvent is InputEventMidi midiEvent)\n" +" {\n" +" PrintMIDIInfo(midiEvent);\n" +" }\n" +"}\n" +"\n" +"private void PrintMIDIInfo(InputEventMidi midiEvent)\n" +"{\n" +" GD.Print(midiEvent);\n" +" GD.Print($\"Channel {midiEvent.Channel}\");\n" +" GD.Print($\"Message {midiEvent.Message}\");\n" +" GD.Print($\"Pitch {midiEvent.Pitch}\");\n" +" GD.Print($\"Velocity {midiEvent.Velocity}\");\n" +" GD.Print($\"Instrument {midiEvent.Instrument}\");\n" +" GD.Print($\"Pressure {midiEvent.Pressure}\");\n" +" GD.Print($\"Controller number: {midiEvent.ControllerNumber}\");\n" +" GD.Print($\"Controller value: {midiEvent.ControllerValue}\");\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b]Godot 不支持 MIDI 输出,因此无法从 Godot 发出 MIDI 消息。仅支持 " +"MIDI 输入。\n" +"[b]注意:[/b]在 Web 平台上,需要在浏览器中授权才能使用 MIDI 输入。权限请求会在" +"调用 [method OS.open_midi_inputs] 时进行。用户接受权限请求后浏览器才会处理 " +"MIDI 输入。" + msgid "MIDI Message Status Byte List" msgstr "MIDI 消息状态字节列表" @@ -58360,6 +74487,31 @@ msgstr "" msgid "Represents a mouse or a pen movement." msgstr "代表鼠标或笔的移动。" +msgid "" +"Stores information about a mouse or a pen motion. This includes relative " +"position, absolute position, and velocity. See [method Node._input].\n" +"[b]Note:[/b] By default, this event is only emitted once per frame rendered " +"at most. If you need more precise input reporting, set [member Input." +"use_accumulated_input] to [code]false[/code] to make events emitted as often " +"as possible. If you use InputEventMouseMotion to draw lines, consider using " +"[method Geometry2D.bresenham_line] as well to avoid visible gaps in lines if " +"the user is moving the mouse quickly.\n" +"[b]Note:[/b] This event may be emitted even when the mouse hasn't moved, " +"either by the operating system or by Godot itself. If you really need to know " +"if the mouse has moved (e.g. to suppress displaying a tooltip), you should " +"check that [code]relative.is_zero_approx()[/code] is [code]false[/code]." +msgstr "" +"存储鼠标或笔的运动信息。支持相对位置、绝对位置和速度。见 [method Node." +"_input]。\n" +"[b]注意:[/b]默认情况下,该事件每个渲染帧最多只会发出一个。如果你需要更精确的" +"输入汇报,请将 [member Input.use_accumulated_input] 设置为 [code]false[/" +"code],尽可能频繁地发出事件。如果你使用 InputEventMouseMotion 来画线,请考虑同" +"时使用 [method Geometry2D.bresenham_line],避免在用户快速移动鼠标时出现可见的" +"线条空隙。\n" +"[b]注意:[/b]即使鼠标没有移动,操作系统或 Godot 本身也可能会发出该事件。如果你" +"确实需要知道鼠标是否移动(例如为了防止显示工具提示),你应当检查 " +"[code]relative.is_zero_approx()[/code] 是否为 [code]false[/code]。" + msgid "" "Returns [code]true[/code] when using the eraser end of a stylus pen.\n" "[b]Note:[/b] This property is implemented on Linux, macOS and Windows." @@ -58372,6 +74524,46 @@ msgid "" "code] to [code]1.0[/code]." msgstr "表示用户对笔施加的压力。范围从 [code]0.0[/code] 到 [code]1.0[/code] 。" +msgid "" +"The mouse position relative to the previous position (position at the last " +"frame).\n" +"[b]Note:[/b] Since [InputEventMouseMotion] may only be emitted when the mouse " +"moves, it is not possible to reliably detect when the mouse has stopped " +"moving by checking this property. A separate, short timer may be necessary.\n" +"[b]Note:[/b] [member relative] is automatically scaled according to the " +"content scale factor, which is defined by the project's stretch mode " +"settings. This means mouse sensitivity will appear different depending on " +"resolution when using [member relative] in a script that handles mouse aiming " +"with the [constant Input.MOUSE_MODE_CAPTURED] mouse mode. To avoid this, use " +"[member screen_relative] instead." +msgstr "" +"鼠标相对于前一个位置(上一帧时的位置)的位置。\n" +"[b]注意:[/b]因为 [InputEventMouseMotion] 可能只在鼠标移动时发出,检查该属性无" +"法可靠地检测鼠标何时停止移动。可能需要一个单独的短时间计时器。\n" +"[b]注意:[/b][member relative] 会根据内容缩放系数自动进行缩放,这个系数是在项" +"目的拉伸模式设置中定义的。也就是说在 [constant Input.MOUSE_MODE_CAPTURED] 鼠标" +"模式下,如果在脚本中使用 [member relative] 来处理鼠标瞄准,那么鼠标的灵敏度就" +"会因分辨率的不同而不同。为了避免这种情况,请改用 [member screen_relative]。" + +msgid "" +"The unscaled mouse position relative to the previous position in the " +"coordinate system of the screen (position at the last frame).\n" +"[b]Note:[/b] Since [InputEventMouseMotion] may only be emitted when the mouse " +"moves, it is not possible to reliably detect when the mouse has stopped " +"moving by checking this property. A separate, short timer may be necessary.\n" +"[b]Note:[/b] This coordinate is [i]not[/i] scaled according to the content " +"scale factor or calls to [method InputEvent.xformed_by]. This should be " +"preferred over [member relative] for mouse aiming when using the [constant " +"Input.MOUSE_MODE_CAPTURED] mouse mode, regardless of the project's stretch " +"mode." +msgstr "" +"未缩放的鼠标位置,该位置相对于屏幕坐标系中的前一个位置(上一帧的位置)。\n" +"[b]注意:[/b]因为 [InputEventMouseMotion] 可能只在鼠标移动时发出,检查该属性无" +"法可靠地检测鼠标何时停止移动。可能需要一个单独的短时间计时器。\n" +"[b]注意:[/b]该坐标[i]不会[/i]根据内容缩放因子或调用 [method InputEvent." +"xformed_by] 进行缩放。当使用 [constant Input.MOUSE_MODE_CAPTURED] 鼠标模式时," +"无论项目的拉伸模式如何,对于鼠标瞄准来说,这都应该优于 [member relative]。" + msgid "" "The unscaled mouse velocity in pixels per second in screen coordinates. This " "velocity is [i]not[/i] scaled according to the content scale factor or calls " @@ -58553,6 +74745,20 @@ msgid "" msgstr "" "受 [kbd]Shift[/kbd] 和 [kbd]Alt[/kbd] 等修饰键影响的输入事件的抽象基类。" +msgid "" +"Stores information about mouse, keyboard, and touch gesture input events. " +"This includes information about which modifier keys are pressed, such as " +"[kbd]Shift[/kbd] or [kbd]Alt[/kbd]. See [method Node._input].\n" +"[b]Note:[/b] Modifier keys are considered modifiers only when used in " +"combination with another key. As a result, their corresponding member " +"variables, such as [member ctrl_pressed], will return [code]false[/code] if " +"the key is pressed on its own." +msgstr "" +"存储鼠标、键盘、触摸手势等输入事件的相关信息。包括按下了哪些修饰键等信息,修饰" +"键包括 [kbd]Shift[/kbd]、[kbd]Alt[/kbd] 等。见 [method Node._input]。\n" +"[b]注意:[/b]修饰键只有在与其他键同时按下时才会被认为是修饰键。因此,单独按下" +"修饰键时,对应的 [member ctrl_pressed] 等成员变量会返回 [code]false[/code]。" + msgid "Returns the keycode combination of modifier keys." msgstr "返回修饰键的键码组合。" @@ -59334,8 +75540,19 @@ msgstr "" msgid "" "Adds an item to the item list with no text, only an icon. Returns the index " "of an added item." +msgstr "在项目列表中添加一个项目,不带文本、只有图标。返回添加项目的索引。" + +msgid "" +"Adds an item to the item list with specified text. Returns the index of an " +"added item.\n" +"Specify an [param icon], or use [code]null[/code] as the [param icon] for a " +"list item with no icon.\n" +"If [param selectable] is [code]true[/code], the list item will be selectable." msgstr "" -"将一个项目添加到项目列表中,没有文本,只有一个图标。返回添加的项的索引。" +"在项目列表中添加一个项目并指定文本。返回添加项目的索引。\n" +"使用 [param icon] 指定图标,列表项不带图标时请为 [param icon] 指定 " +"[code]null[/code]。\n" +"如果 [param selectable] 为 [code]true[/code],则该列表项可被选中。" msgid "Removes all items from the list." msgstr "移除列表中的所有项目。" @@ -59361,6 +75578,16 @@ msgstr "" "auto_height])发生变化时,这种情况就会自动发生。该方法可被用于在下一次绘制阶段" "之前触发更新。" +msgid "" +"Returns the horizontal scrollbar.\n" +"[b]Warning:[/b] This is a required internal node, removing and freeing it may " +"cause a crash. If you wish to hide it or any of its children, use their " +"[member CanvasItem.visible] property." +msgstr "" +"返回水平滚动条。\n" +"[b]警告:[/b]这是一个必需的内部节点,删除和释放它可能会导致崩溃。如果你希望隐" +"藏它或其任何子项,请使用它们的 [member CanvasItem.visible] 属性。" + msgid "" "Returns the item index at the given [param position].\n" "When there is no item at that point, -1 will be returned if [param exact] is " @@ -59374,6 +75601,9 @@ msgstr "" "[b]注意:[/b]如果修改 [ItemList] 后立即调用,尚未在下一帧中重绘,则返回值不可" "靠。" +msgid "Returns item's auto translate mode." +msgstr "返回项目的自动翻译模式。" + msgid "" "Returns the custom background color of the item specified by [param idx] " "index." @@ -59473,6 +75703,16 @@ msgstr "" "选择指定索引处的项目。\n" "[b]注意:[/b]此方法不触发项目选择信号。" +msgid "" +"Sets the auto translate mode of the item associated with the specified " +"index.\n" +"Items use [constant Node.AUTO_TRANSLATE_MODE_INHERIT] by default, which uses " +"the same auto translate mode as the [ItemList] itself." +msgstr "" +"设置与给定索引关联的项目的自动翻译模式。\n" +"项目默认使用 [constant Node.AUTO_TRANSLATE_MODE_INHERIT],表示使用与 " +"[ItemList] 相同的自动翻译模式。" + msgid "" "Sets the background color of the item specified by [param idx] index to the " "specified [Color]." @@ -59553,6 +75793,11 @@ msgid "" "its content." msgstr "如果为 [code]true[/code],控件将自动调整高度以适合其内容。" +msgid "" +"If [code]true[/code], the control will automatically resize the width to fit " +"its content." +msgstr "如果为 [code]true[/code],控件将自动调整宽度以适合其内容。" + msgid "" "The width all columns will be adjusted to.\n" "A value of zero disables the adjustment, each item will have a width equal to " @@ -59623,6 +75868,51 @@ msgstr "" "设置文本超出项目的边界矩形时的裁剪行为。所有模式的说明见 [enum TextServer." "OverrunBehavior]。" +msgid "" +"If [code]true[/code], the control will automatically move items into a new " +"row to fit its content. See also [HFlowContainer] for this behavior.\n" +"If [code]false[/code], the control will add a horizontal scrollbar to make " +"all items visible." +msgstr "" +"如果为 [code]true[/code],则控件会自动将项目移动至新的一行,适配内容。另见 " +"[HFlowContainer] 的这一行为。\n" +"如果为 [code]false[/code],控件会添加水平滚动条,使所有项目都可见。" + +msgid "" +"Emitted when any mouse click is issued within the rect of the list but on " +"empty space.\n" +"[param at_position] is the click position in this control's local coordinate " +"system." +msgstr "" +"在列表矩形内的非空白区域点击任意鼠标按键时触发。\n" +"[param at_position] 为点击的位置,使用控件的局部坐标系。" + +msgid "" +"Emitted when specified list item is activated via double-clicking or by " +"pressing [kbd]Enter[/kbd]." +msgstr "通过双击或按[kbd]回车[/kbd]键激活指定的列表项时触发。" + +msgid "" +"Emitted when specified list item has been clicked with any mouse button.\n" +"[param at_position] is the click position in this control's local coordinate " +"system." +msgstr "" +"使用任意鼠标按键单击指定的列表项时触发。\n" +"[param at_position] 为点击的位置,使用控件的局部坐标系。" + +msgid "" +"Emitted when specified item has been selected. Only applicable in single " +"selection mode.\n" +"[member allow_reselect] must be enabled to reselect an item." +msgstr "" +"选择指定项目时触发。仅适用于单选模式。\n" +"[member allow_reselect] 必须启用才能重新选择项目。" + +msgid "" +"Emitted when a multiple selection is altered on a list allowing multiple " +"selection." +msgstr "在允许多选的列表上更改多选时触发。" + msgid "Icon is drawn above the text." msgstr "图标绘制在文本上方。" @@ -59637,15 +75927,24 @@ msgid "" "kbd]." msgstr "允许通过按住 [kbd]Ctrl[/kbd] 或 [kbd]Shift[/kbd] 来选择多个项目。" +msgid "Allows selecting multiple items by toggling them on and off." +msgstr "允许选择多个项目,可以切换项目是否选中。" + msgid "Default text [Color] of the item." msgstr "项目的默认文本颜色 [Color]。" msgid "Text [Color] used when the item is hovered and not selected yet." msgstr "项目处于悬停但未选中状态时使用的文本 [Color]。" +msgid "Text [Color] used when the item is hovered and selected." +msgstr "项目处于悬停且已选中状态时使用的文本 [Color]。" + msgid "The tint of text outline of the item." msgstr "项目文本轮廓的色调。" +msgid "Text [Color] used when the item is selected, but not hovered." +msgstr "项目处于选中但未悬停状态时使用的文本 [Color]。" + msgid "" "[Color] of the guideline. The guideline is a line drawn between each row of " "items." @@ -59696,7 +75995,17 @@ msgid "" msgstr "该 [ItemList] 的焦点样式,绘制在背景之上,但低于其他东西。" msgid "[StyleBox] for the hovered, but not selected items." -msgstr "悬停但未被选中的项目的 [StyleBox]。" +msgstr "项目处于悬停但未选中状态时的 [StyleBox]。" + +msgid "" +"[StyleBox] for the hovered and selected items, used when the [ItemList] is " +"not being focused." +msgstr "项目处于悬停且选中状态时的 [StyleBox],在 [ItemList] 未获得焦点时使用。" + +msgid "" +"[StyleBox] for the hovered and selected items, used when the [ItemList] is " +"being focused." +msgstr "项目处于悬停且选中状态时的 [StyleBox],在 [ItemList] 获得焦点时使用。" msgid "The background style for the [ItemList]." msgstr "该 [ItemList] 的默认背景。" @@ -59710,9 +76019,82 @@ msgid "" "[StyleBox] for the selected items, used when the [ItemList] is being focused." msgstr "所选项的样式盒 [StyleBox],当该 [ItemList] 获得焦点时使用。" +msgid "Represents a class from the Java Native Interface." +msgstr "代表来自 Java 原生接口的类。" + +msgid "" +"Represents a class from the Java Native Interface. It is returned from " +"[method JavaClassWrapper.wrap].\n" +"[b]Note:[/b] This class only works on Android. On any other platform, this " +"class does nothing.\n" +"[b]Note:[/b] This class is not to be confused with [JavaScriptObject]." +msgstr "" +"代表 Java 原生接口中的类,由 [method JavaClassWrapper.wrap] 返回。\n" +"[b]注意:[/b]该类仅适用于 Android。该类在其他平台上不执行任何操作。\n" +"[b]注意:[/b]请勿与 [JavaScriptObject] 混淆。" + +msgid "Returns the Java class name." +msgstr "返回 Java 类名。" + +msgid "" +"Returns the object's Java methods and their signatures as an [Array] of " +"dictionaries, in the same format as [method Object.get_method_list]." +msgstr "" +"返回该对象的 Java 方法及签名,类型为元素为字典的数组,格式与 [method Object." +"get_method_list] 相同。" + +msgid "Returns a [JavaClass] representing the Java parent class of this class." +msgstr "返回代表该类的 Java 父类的 [JavaClass]。" + msgid "Provides access to the Java Native Interface." msgstr "提供对 Java 原生接口的访问。" +msgid "" +"The JavaClassWrapper singleton provides a way for the Godot application to " +"send and receive data through the [url=https://developer.android.com/training/" +"articles/perf-jni]Java Native Interface[/url] (JNI).\n" +"[b]Note:[/b] This singleton is only available in Android builds.\n" +"[codeblock]\n" +"var LocalDateTime = JavaClassWrapper.wrap(\"java.time.LocalDateTime\")\n" +"var DateTimeFormatter = JavaClassWrapper.wrap(\"java.time.format." +"DateTimeFormatter\")\n" +"\n" +"var datetime = LocalDateTime.now()\n" +"var formatter = DateTimeFormatter.ofPattern(\"dd-MM-yyyy HH:mm:ss\")\n" +"\n" +"print(datetime.format(formatter))\n" +"[/codeblock]\n" +"[b]Warning:[/b] When calling Java methods, be sure to check [method " +"JavaClassWrapper.get_exception] to check if the method threw an exception." +msgstr "" +"JavaClassWrapper 单例为 Godot 应用程序提供了一种通过 [url=https://developer." +"android.com/training/articles/perf-jni]Java 原生接口[/url](JNI)发送和接收数" +"据的方法。\n" +"[b]注意:[/b]该单例仅适用于 Android 版本。\n" +"[codeblock]\n" +"var LocalDateTime = JavaClassWrapper.wrap(\"java.time.LocalDateTime\")\n" +"var DateTimeFormatter = JavaClassWrapper.wrap(\"java.time.format." +"DateTimeFormatter\")\n" +"\n" +"var datetime = LocalDateTime.now()\n" +"var formatter = DateTimeFormatter.ofPattern(\"dd-MM-yyyy HH:mm:ss\")\n" +"\n" +"print(datetime.format(formatter))\n" +"[/codeblock]\n" +"[b]警告:[/b]调用 Java 方法时,请确保使用 [method JavaClassWrapper." +"get_exception] 检查该方法是否抛出了异常。" + +msgid "" +"Returns the Java exception from the last call into a Java class. If there was " +"no exception, it will return [code]null[/code].\n" +"[b]Note:[/b] This method only works on Android. On every other platform, this " +"method will always return [code]null[/code]." +msgstr "" +"返回最近一次调用 Java 类时产生的 Java 异常。如果没有产生异常则返回 " +"[code]null[/code]。\n" +"[b]注意:[/b]该方法仅在 Android 上有效。该方法在其他平台上始终返回 " +"[code]null[/code]。" + msgid "" "Wraps a class defined in Java, and returns it as a [JavaClass] [Object] type " "that Godot can interact with.\n" @@ -59727,6 +76109,22 @@ msgstr "" msgid "Represents an object from the Java Native Interface." msgstr "代表来自 Java 原生接口的对象。" +msgid "" +"Represents an object from the Java Native Interface. It can be returned from " +"Java methods called on [JavaClass] or other [JavaObject]s. See " +"[JavaClassWrapper] for an example.\n" +"[b]Note:[/b] This class only works on Android. On any other platform, this " +"class does nothing.\n" +"[b]Note:[/b] This class is not to be confused with [JavaScriptObject]." +msgstr "" +"代表 Java 原生接口中的对象。调用 [JavaClass] 或 [JavaObject] 对象的 Java 方法" +"可能会返回此类型的对象。示例见 [JavaClassWrapper]。\n" +"[b]注意:[/b]该类仅适用于 Android。该类在其他平台上不执行任何操作。\n" +"[b]注意:[/b]请勿与 [JavaScriptObject] 混淆。" + +msgid "Returns the [JavaClass] that this object is an instance of." +msgstr "返回该对象实例对应的 [JavaClass] 类。" + msgid "" "Singleton that connects the engine with the browser's JavaScript context in " "Web export." @@ -59752,6 +76150,21 @@ msgstr "" msgid "Exporting for the Web: Calling JavaScript from script" msgstr "为 Web 导出:从脚本调用 JavaScript" +msgid "" +"Creates a reference to a [Callable] that can be used as a callback by " +"JavaScript. The reference must be kept until the callback happens, or it " +"won't be called at all. See [JavaScriptObject] for usage.\n" +"[b]Note:[/b] The callback function must take exactly one [Array] argument, " +"which is going to be the JavaScript [url=https://developer.mozilla.org/en-US/" +"docs/Web/JavaScript/Reference/Functions/arguments]arguments object[/url] " +"converted to an array." +msgstr "" +"创建一个对 [Callable] 的引用,JavaScript 可以用它作为回调。回调前必须保持引" +"用,否则无法调用。用法见 [JavaScriptObject]。\n" +"[b]注意:[/b]回调函数必须只能接受单一 [Array] 参数,是转换成数组后的 " +"JavaScript [url=https://developer.mozilla.org/en-US/docs/Web/JavaScript/" +"Reference/Functions/arguments]参数对象[/url]。" + msgid "" "Creates a new JavaScript object using the [code]new[/code] constructor. The " "[param object] must a valid property of the JavaScript [code]window[/code]. " @@ -59812,6 +76225,22 @@ msgstr "" "JavaScript [code]window[/code] 的有效属性。回调必须接受单个 [Array] 参数,它将" "包含 JavaScript [code]arguments[/code]。有关用法,请参阅 [JavaScriptObject]。" +msgid "" +"Returns [code]true[/code] if the given [param javascript_object] is of type " +"[url=https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/" +"Global_Objects/ArrayBuffer][code]ArrayBuffer[/code][/url], [url=https://" +"developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/" +"DataView][code]DataView[/code][/url], or one of the many [url=https://" +"developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/" +"TypedArray]typed array objects[/url]." +msgstr "" +"如果给定的 [param javascript_object] 为 [url=https://developer.mozilla.org/en-" +"US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer]" +"[code]ArrayBuffer[/code][/url]、[url=https://developer.mozilla.org/en-US/docs/" +"Web/JavaScript/Reference/Global_Objects/DataView][code]DataView[/code][/url] " +"或某种[url=https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/" +"Global_Objects/TypedArray]类型化数组对象[/url]类型,则返回 [code]true[/code]。" + msgid "" "Returns [code]true[/code] if a new version of the progressive web app is " "waiting to be activated.\n" @@ -59843,6 +76272,82 @@ msgstr "" msgid "A wrapper class for web native JavaScript objects." msgstr "Web 原生 JavaScript 对象的封装类。" +msgid "" +"JavaScriptObject is used to interact with JavaScript objects retrieved or " +"created via [method JavaScriptBridge.get_interface], [method JavaScriptBridge." +"create_object], or [method JavaScriptBridge.create_callback].\n" +"[codeblock]\n" +"extends Node\n" +"\n" +"var _my_js_callback = JavaScriptBridge.create_callback(myCallback) # This " +"reference must be kept\n" +"var console = JavaScriptBridge.get_interface(\"console\")\n" +"\n" +"func _init():\n" +" var buf = JavaScriptBridge.create_object(\"ArrayBuffer\", 10) # new " +"ArrayBuffer(10)\n" +" print(buf) # Prints [JavaScriptObject:OBJECT_ID]\n" +" var uint8arr = JavaScriptBridge.create_object(\"Uint8Array\", buf) # new " +"Uint8Array(buf)\n" +" uint8arr[1] = 255\n" +" prints(uint8arr[1], uint8arr.byteLength) # Prints \"255 10\"\n" +"\n" +" # Prints \"Uint8Array(10) [ 0, 255, 0, 0, 0, 0, 0, 0, 0, 0 ]\" in the " +"browser's console.\n" +" console.log(uint8arr)\n" +"\n" +" # Equivalent of JavaScriptBridge: Array.from(uint8arr)." +"forEach(myCallback)\n" +" JavaScriptBridge.get_interface(\"Array\").from(uint8arr)." +"forEach(_my_js_callback)\n" +"\n" +"func myCallback(args):\n" +" # Will be called with the parameters passed to the \"forEach\" callback\n" +" # [0, 0, [JavaScriptObject:1173]]\n" +" # [255, 1, [JavaScriptObject:1173]]\n" +" # ...\n" +" # [0, 9, [JavaScriptObject:1180]]\n" +" print(args)\n" +"[/codeblock]\n" +"[b]Note:[/b] Only available in the Web platform." +msgstr "" +"JavaScriptObject 用于与通过 [method JavaScriptBridge.get_interface]、[method " +"JavaScriptBridge.create_object] 或 [method JavaScriptBridge.create_callback] " +"检索或创建的 JavaScript 对象进行交互。\n" +"[codeblock]\n" +"extends Node\n" +"\n" +"var _my_js_callback = JavaScriptBridge.create_callback(myCallback) # 必须保留" +"该引用\n" +"var console = JavaScriptBridge.get_interface(\"console\")\n" +"\n" +"func _init():\n" +" var buf = JavaScriptBridge.create_object(\"ArrayBuffer\", 10) # 新建 " +"ArrayBuffer(10)\n" +" print(buf) # 输出 [JavaScriptObject:OBJECT_ID]\n" +" var uint8arr = JavaScriptBridge.create_object(\"Uint8Array\", buf) # 新建 " +"Uint8Array(buf)\n" +" uint8arr[1] = 255\n" +" prints(uint8arr[1], uint8arr.byteLength) # 输出“255 10”\n" +"\n" +" # 在浏览器控制台中输出“Uint8Array(10) [ 0, 255, 0, 0, 0, 0, 0, 0, 0, " +"0 ]”\n" +" console.log(uint8arr)\n" +"\n" +" # 等效于 JavaScriptBridge: Array.from(uint8arr).forEach(myCallback)\n" +" JavaScriptBridge.get_interface(\"Array\").from(uint8arr)." +"forEach(_my_js_callback)\n" +"\n" +"func myCallback(args):\n" +" # 将使用传递给“forEach”回调的参数调用\n" +" # [0, 0, [JavaScriptObject:1173]]\n" +" # [255, 1, [JavaScriptObject:1173]]\n" +" # ...\n" +" # [0, 9, [JavaScriptObject:1180]]\n" +" print(args)\n" +"[/codeblock]\n" +"[b]注意:[/b]仅在 Web 平台上可用。" + msgid "" "Singleton that connects the engine with Android plugins to interface with " "native Android code." @@ -59953,6 +76458,111 @@ msgstr "" msgid "Helper class for creating and parsing JSON data." msgstr "用于创建和解析 JSON 数据的辅助类。" +msgid "" +"The [JSON] class enables all data types to be converted to and from a JSON " +"string. This is useful for serializing data, e.g. to save to a file or send " +"over the network.\n" +"[method stringify] is used to convert any data type into a JSON string.\n" +"[method parse] is used to convert any existing JSON data into a [Variant] " +"that can be used within Godot. If successfully parsed, use [member data] to " +"retrieve the [Variant], and use [method @GlobalScope.typeof] to check if the " +"Variant's type is what you expect. JSON Objects are converted into a " +"[Dictionary], but JSON data can be used to store [Array]s, numbers, [String]s " +"and even just a boolean.\n" +"[codeblock]\n" +"var data_to_send = [\"a\", \"b\", \"c\"]\n" +"var json_string = JSON.stringify(data_to_send)\n" +"# Save data\n" +"# ...\n" +"# Retrieve data\n" +"var json = JSON.new()\n" +"var error = json.parse(json_string)\n" +"if error == OK:\n" +" var data_received = json.data\n" +" if typeof(data_received) == TYPE_ARRAY:\n" +" print(data_received) # Prints the array.\n" +" else:\n" +" print(\"Unexpected data\")\n" +"else:\n" +" print(\"JSON Parse Error: \", json.get_error_message(), \" in \", " +"json_string, \" at line \", json.get_error_line())\n" +"[/codeblock]\n" +"Alternatively, you can parse strings using the static [method parse_string] " +"method, but it doesn't handle errors.\n" +"[codeblock]\n" +"var data = JSON.parse_string(json_string) # Returns null if parsing failed.\n" +"[/codeblock]\n" +"[b]Note:[/b] Both parse methods do not fully comply with the JSON " +"specification:\n" +"- Trailing commas in arrays or objects are ignored, instead of causing a " +"parser error.\n" +"- New line and tab characters are accepted in string literals, and are " +"treated like their corresponding escape sequences [code]\\n[/code] and " +"[code]\\t[/code].\n" +"- Numbers are parsed using [method String.to_float] which is generally more " +"lax than the JSON specification.\n" +"- Certain errors, such as invalid Unicode sequences, do not cause a parser " +"error. Instead, the string is cleaned up and an error is logged to the " +"console." +msgstr "" +"[JSON] 类允许所有数据类型与 JSON 字符串相互转换。可用于将数据序列化,从而保存" +"到文件或通过网络发送。\n" +"[method stringify] 用于将任何数据类型转换为 JSON 字符串。\n" +"[method parse] 用于将任何现有的 JSON 数据转换为可以在 Godot 中使用的 " +"[Variant]。如果解析成功,使用 [member data] 检索 [Variant],并使用 " +"[code]typeof[/code] 检查 Variant 的类型是否符合你的预期。JSON 对象被转换为 " +"[Dictionary],但 JSON 数据可用于存储 [Array]、数字、[String],甚至只是一个布尔" +"值。\n" +"[codeblock]\n" +"var data_to_send = [\"a\", \"b\", \"c\"]\n" +"var json_string = JSON.stringify(data_to_send)\n" +"# 保存数据\n" +"# ...\n" +"# 检索数据\n" +"var json = JSON.new()\n" +"var error = json.parse(json_string)\n" +"if error == OK:\n" +" var data_received = json.data\n" +" if typeof(data_received) == TYPE_ARRAY:\n" +" print(data_received) # 输出该数组。\n" +" else:\n" +" print(\"意外数据\")\n" +"else:\n" +" print(\"JSON 解析错误:\", json.get_error_message(), \" 位于 \", " +"json_string, \" 行号 \", json.get_error_line())\n" +"[/codeblock]\n" +"你也可以使用静态的 [method parse_string] 方法解析字符串,但该方法不会处理错" +"误。\n" +"[codeblock]\n" +"var data = JSON.parse_string(json_string) # 如果解析失败则返回 null。\n" +"[/codeblock]\n" +"[b]注意:[/b]两种解析方式都不完全符合 JSON 规范:\n" +"- 数组或对象中的尾随逗号将被忽略,而不是引起解析器错误。\n" +"- 换行符和制表符在字符串文字中被接受,并被视为它们相应的转义序列 [code]\\n[/" +"code] 和 [code]\\t[/code]。\n" +"- 使用 [method String.to_float] 解析数字,这通常比 JSON 规范更宽松。\n" +"- 某些错误,例如无效的 Unicode 序列,不会导致解析器错误。相反,该字符串会被清" +"理并将错误记录到控制台。" + +msgid "" +"Converts a native engine type to a JSON-compliant value.\n" +"By default, objects are ignored for security reasons, unless [param " +"full_objects] is [code]true[/code].\n" +"You can convert a native value to a JSON string like this:\n" +"[codeblock]\n" +"func encode_data(value, full_objects = false):\n" +" return JSON.stringify(JSON.from_native(value, full_objects))\n" +"[/codeblock]" +msgstr "" +"将引擎原生类型转换为 JSON 兼容类型。\n" +"出于安全原因,默认会忽略对象,除非 [param full_objects] 为 [code]true[/" +"code]。\n" +"将原生值转换为 JSON 字符串的方法如下:\n" +"[codeblock]\n" +"func encode_data(value, full_objects = false):\n" +" return JSON.stringify(JSON.from_native(value, full_objects))\n" +"[/codeblock]" + msgid "" "Returns [code]0[/code] if the last call to [method parse] was successful, or " "the line number where the parse failed." @@ -60105,6 +76715,26 @@ msgstr "" "}\n" "[/codeblock]" +msgid "" +"Converts a JSON-compliant value that was created with [method from_native] " +"back to native engine types.\n" +"By default, objects are ignored for security reasons, unless [param " +"allow_objects] is [code]true[/code].\n" +"You can convert a JSON string back to a native value like this:\n" +"[codeblock]\n" +"func decode_data(string, allow_objects = false):\n" +" return JSON.to_native(JSON.parse_string(string), allow_objects)\n" +"[/codeblock]" +msgstr "" +"将使用 [method from_native] 创建的 JSON 兼容值转换回引擎原生类型。\n" +"出于安全原因,默认会忽略对象,除非 [param allow_objects] 为 [code]true[/" +"code]。\n" +"将 JSON 字符串转换回原生值的方法如下:\n" +"[codeblock]\n" +"func decode_data(string, allow_objects = false):\n" +" return JSON.to_native(JSON.parse_string(string), allow_objects)\n" +"[/codeblock]" + msgid "Contains the parsed JSON data in [Variant] form." msgstr "包含解析到的 JSON 数据,类型为 [Variant]。" @@ -60371,6 +77001,17 @@ msgstr "" "用于显示纯文本的控件。可以控制水平和垂直对齐方式以及文本在节点包围框内的换行方" "式。不支持粗体、斜体等富文本格式。这种需求请改用 [RichTextLabel]。" +msgid "" +"Returns the bounding rectangle of the character at position [param pos] in " +"the label's local coordinate system. If the character is a non-visual " +"character or [param pos] is outside the valid range, an empty [Rect2] is " +"returned. If the character is a part of a composite grapheme, the bounding " +"rectangle of the whole grapheme is returned." +msgstr "" +"返回位置 [param pos] 处字符的边界矩形,使用标签的局部坐标系。如果字符是不可见" +"字符或 [param pos] 超出有效范围,则返回空 [Rect2]。如果字符是复合字素的一部" +"分,则返回整个字素的边界矩形。" + msgid "Returns the number of lines of text the Label has." msgstr "返回该 Label 的文本行数。" @@ -60420,6 +77061,11 @@ msgstr "" "控制文本的水平对齐方式。支持左对齐、居中对齐、右对齐、填充(即两端对齐)。请将" "其设置为 [enum HorizontalAlignment] 常量。" +msgid "" +"Line fill alignment rules. See [enum TextServer.JustificationFlag] for more " +"information." +msgstr "行两端对齐规则。详见 [enum TextServer.JustificationFlag]。" + msgid "" "A [LabelSettings] resource that can be shared between multiple [Label] nodes. " "Takes priority over theme properties." @@ -60433,6 +77079,11 @@ msgstr "从 [member text] 值的开头开始忽略且不显示的行数。" msgid "Limits the lines of text the node shows on screen." msgstr "限制节点在屏幕上显示的文本行数。" +msgid "" +"String used as a paragraph separator. Each paragraph is processed " +"independently, in its own BiDi context." +msgstr "段落分隔符字符串。段落独立处理,使用自己的 BiDi 上下文。" + msgid "Set BiDi algorithm override for the structured text." msgstr "为结构化文本设置 BiDi 算法覆盖。" @@ -60514,6 +77165,10 @@ msgstr "" "[b]注意:[/b]不建议使用大于字体大小一半的值,因为这种情况下字体轮廓可能无法完" "全闭合。" +msgid "" +"Vertical space between paragraphs. Added on top of [theme_item line_spacing]." +msgstr "段落之间的垂直空间。在 [theme_item line_spacing] 上添加。" + msgid "The horizontal offset of the text's shadow." msgstr "文本阴影的水平偏移。" @@ -60776,6 +77431,10 @@ msgstr "文本的大小。" msgid "The color of the outline." msgstr "轮廓的颜色。" +msgid "" +"Vertical space between paragraphs. Added on top of [member line_spacing]." +msgstr "段落之间的垂直空间。在 [member line_spacing] 上添加。" + msgid "" "Color of the shadow effect. If alpha is [code]0[/code], no shadow will be " "drawn." @@ -61393,6 +78052,55 @@ msgstr "" msgid "Computes and stores baked lightmaps for fast global illumination." msgstr "计算并存储烘焙光照贴图,以实现快速全局照明。" +msgid "" +"The [LightmapGI] node is used to compute and store baked lightmaps. Lightmaps " +"are used to provide high-quality indirect lighting with very little light " +"leaking. [LightmapGI] can also provide rough reflections using spherical " +"harmonics if [member directional] is enabled. Dynamic objects can receive " +"indirect lighting thanks to [i]light probes[/i], which can be automatically " +"placed by setting [member generate_probes_subdiv] to a value other than " +"[constant GENERATE_PROBES_DISABLED]. Additional lightmap probes can also be " +"added by creating [LightmapProbe] nodes. The downside is that lightmaps are " +"fully static and cannot be baked in an exported project. Baking a " +"[LightmapGI] node is also slower compared to [VoxelGI].\n" +"[b]Procedural generation:[/b] Lightmap baking functionality is only available " +"in the editor. This means [LightmapGI] is not suited to procedurally " +"generated or user-built levels. For procedurally generated or user-built " +"levels, use [VoxelGI] or SDFGI instead (see [member Environment." +"sdfgi_enabled]).\n" +"[b]Performance:[/b] [LightmapGI] provides the best possible run-time " +"performance for global illumination. It is suitable for low-end hardware " +"including integrated graphics and mobile devices.\n" +"[b]Note:[/b] Due to how lightmaps work, most properties only have a visible " +"effect once lightmaps are baked again.\n" +"[b]Note:[/b] Lightmap baking on [CSGShape3D]s and [PrimitiveMesh]es is not " +"supported, as these cannot store UV2 data required for baking.\n" +"[b]Note:[/b] If no custom lightmappers are installed, [LightmapGI] can only " +"be baked from devices that support the Forward+ or Mobile renderers.\n" +"[b]Note:[/b] The [LightmapGI] node only bakes light data for child nodes of " +"its parent. Nodes further up the hierarchy of the scene will not be baked." +msgstr "" +"[LightmapGI] 节点用于计算和存储烘焙的光照贴图。光照贴图用于提供高质量的间接照" +"明,并且漏光很少。如果启用 [member directional],[LightmapGI] 还可以使用球谐函" +"数,以提供粗略的反射。由于[i]光照探针[/i],动态物体可以接收间接光照,可以通过" +"将 [member generate_probes_subdiv] 设置为 [constant GENERATE_PROBES_DISABLED] " +"以外的值,来自动放置光照探针。也可以通过创建 [LightmapProbe] 节点,来添加额外" +"的光照贴图探针。缺点是光照贴图是完全静态的,不能在导出的项目中烘焙。与 " +"[VoxelGI] 相比,烘焙 [LightmapGI] 节点也更慢。\n" +"[b]程序生成:[/b]光照贴图烘焙功能仅在编辑器中可用。这意味着 [LightmapGI] 不适" +"合程序生成或用户构建的关卡。对于程序生成或用户构建的关卡,请改用 [VoxelGI] 或 " +"SDFGI(请参阅 [member Environment.sdfgi_enabled])。\n" +"[b]性能:[/b][LightmapGI] 为全局照明提供最佳的运行时性能。它适用于包括集成显卡" +"和移动设备在内的低端硬件。\n" +"[b]注意:[/b]由于光照贴图的工作方式,大多数属性只有在光照贴图被再次烘焙后,才" +"会产生可见效果。\n" +"[b]注意:[/b]不支持在 [CSGShape3D] 和 [PrimitiveMesh] 上烘焙光照贴图,因为它们" +"无法存储烘焙所需的 UV2 数据。\n" +"[b]注意:[/b]如果没有安装自定义光照贴图器,则只能从支持 Forward+ 或 Mobile 渲" +"染器的设备烘焙 [LightmapGI]。\n" +"[b]注意:[/b][LightmapGI] 节点只会为其父节点的子节点烘焙光照数据。不会烘焙场景" +"中更上层的节点。" + msgid "Using Lightmap global illumination" msgstr "使用光照贴图全局光照" @@ -62004,6 +78712,14 @@ msgstr "" msgid "The polyline's width." msgstr "多边形的宽度。" +msgid "" +"The polyline's width curve. The width of the polyline over its length will be " +"equivalent to the value of the width curve over its domain. The width curve " +"should be a unit [Curve]." +msgstr "" +"该折线的宽度曲线。该折线在其长度上的宽度将等于宽度曲线在其域上的值。宽度曲线应" +"当为单位 [Curve]。" + msgid "" "Makes the polyline's joints pointy, connecting the sides of the two segments " "by extending them until they intersect. If the rotation of a joint is too big " @@ -62059,6 +78775,104 @@ msgstr "" msgid "An input field for single-line text." msgstr "单行文本的输入字段。" +msgid "" +"[LineEdit] provides an input field for editing a single line of text.\n" +"- When the [LineEdit] control is focused using the keyboard arrow keys, it " +"will only gain focus and not enter edit mode.\n" +"- To enter edit mode, click on the control with the mouse, see also [member " +"keep_editing_on_text_submit].\n" +"- To exit edit mode, press [code]ui_text_submit[/code] or [code]ui_cancel[/" +"code] (by default [kbd]Escape[/kbd]) actions.\n" +"- Check [method edit], [method unedit], [method is_editing], and [signal " +"editing_toggled] for more information.\n" +"[b]Important:[/b]\n" +"- Focusing the [LineEdit] with [code]ui_focus_next[/code] (by default " +"[kbd]Tab[/kbd]) or [code]ui_focus_prev[/code] (by default [kbd]Shift + Tab[/" +"kbd]) or [method Control.grab_focus] still enters edit mode (for " +"compatibility).\n" +"[LineEdit] features many built-in shortcuts that are always available " +"([kbd]Ctrl[/kbd] here maps to [kbd]Cmd[/kbd] on macOS):\n" +"- [kbd]Ctrl + C[/kbd]: Copy\n" +"- [kbd]Ctrl + X[/kbd]: Cut\n" +"- [kbd]Ctrl + V[/kbd] or [kbd]Ctrl + Y[/kbd]: Paste/\"yank\"\n" +"- [kbd]Ctrl + Z[/kbd]: Undo\n" +"- [kbd]Ctrl + ~[/kbd]: Swap input direction.\n" +"- [kbd]Ctrl + Shift + Z[/kbd]: Redo\n" +"- [kbd]Ctrl + U[/kbd]: Delete text from the caret position to the beginning " +"of the line\n" +"- [kbd]Ctrl + K[/kbd]: Delete text from the caret position to the end of the " +"line\n" +"- [kbd]Ctrl + A[/kbd]: Select all text\n" +"- [kbd]Up Arrow[/kbd]/[kbd]Down Arrow[/kbd]: Move the caret to the beginning/" +"end of the line\n" +"On macOS, some extra keyboard shortcuts are available:\n" +"- [kbd]Cmd + F[/kbd]: Same as [kbd]Right Arrow[/kbd], move the caret one " +"character right\n" +"- [kbd]Cmd + B[/kbd]: Same as [kbd]Left Arrow[/kbd], move the caret one " +"character left\n" +"- [kbd]Cmd + P[/kbd]: Same as [kbd]Up Arrow[/kbd], move the caret to the " +"previous line\n" +"- [kbd]Cmd + N[/kbd]: Same as [kbd]Down Arrow[/kbd], move the caret to the " +"next line\n" +"- [kbd]Cmd + D[/kbd]: Same as [kbd]Delete[/kbd], delete the character on the " +"right side of caret\n" +"- [kbd]Cmd + H[/kbd]: Same as [kbd]Backspace[/kbd], delete the character on " +"the left side of the caret\n" +"- [kbd]Cmd + A[/kbd]: Same as [kbd]Home[/kbd], move the caret to the " +"beginning of the line\n" +"- [kbd]Cmd + E[/kbd]: Same as [kbd]End[/kbd], move the caret to the end of " +"the line\n" +"- [kbd]Cmd + Left Arrow[/kbd]: Same as [kbd]Home[/kbd], move the caret to the " +"beginning of the line\n" +"- [kbd]Cmd + Right Arrow[/kbd]: Same as [kbd]End[/kbd], move the caret to the " +"end of the line\n" +"[b]Note:[/b] Caret movement shortcuts listed above are not affected by " +"[member shortcut_keys_enabled]." +msgstr "" +"[LineEdit] 提供了用于编辑单行文本的输入框。\n" +"- 通过键盘方向键聚焦 [LineEdit] 时只会获得焦点,不会进入编辑模式。\n" +"- 要进入编辑模式,请使用鼠标点击控件,另见 [member " +"keep_editing_on_text_submit]。\n" +"- 要退出编辑模式,请点击 [code]ui_text_submit[/code] 或 [code]ui_cancel[/code]" +"(默认为 [kbd]Escape[/kbd])动作。\n" +"- 详情见 [method edit]、[method unedit]、[method is_editing]、[signal " +"editing_toggled]。\n" +"[b]重要:[/b]\n" +"- 通过 [code]ui_focus_next[/code](默认为 [kbd]Tab[/kbd])、" +"[code]ui_focus_prev[/code](默认为 [kbd]Shift + Tab[/kbd])或 [method Control." +"grab_focus] 聚焦 [LineEdit] 仍然会进入编辑模式(出于兼容考虑)。\n" +"[LineEdit] 提供了很多始终可用的内置快捷键(此处的 [kbd]Ctrl[/kbd] 在 macOS 上" +"会映射到 [kbd]Cmd[/kbd]):\n" +"- [kbd]Ctrl + C[/kbd]:复制\n" +"- [kbd]Ctrl + X[/kbd]:剪切\n" +"- [kbd]Ctrl + V[/kbd] 或 [kbd]Ctrl + Y[/kbd]:复制/“抽取”\n" +"- [kbd]Ctrl + Z[/kbd]:撤销\n" +"- [kbd]Ctrl + ~[/kbd]:切换输入方向。\n" +"- [kbd]Ctrl + Shift + Z[/kbd]:重做\n" +"- [kbd]Ctrl + U[/kbd]:删除从文本光标位置到行首的文本\n" +"- [kbd]Ctrl + K[/kbd]:删除从文本光标位置到行尾的文本\n" +"- [kbd]Ctrl + A[/kbd]:选择所有文本\n" +"- [kbd]Up Arrow[/kbd]/[kbd]Down Arrow[/kbd]:将文本光标移动到行首/行尾\n" +"在 macOS 上,有一些额外的键盘快捷键可用:\n" +"- [kbd]Ctrl + F[/kbd]:同 [kbd]Right Arrow[/kbd],将文本光标向右移动一个字符\n" +"- [kbd]Ctrl + B[/kbd]:同 [kbd]Left Arrow[/kbd],将文本光标向左移动一个字符\n" +"- [kbd]Ctrl + P[/kbd]:同 [kbd]Up Arrow[/kbd],将文本光标移动到上一行\n" +"- [kbd]Ctrl + N[/kbd]:同 [kbd]Down Arrow[/kbd],将文本光标移动到下一行\n" +"- [kbd]Ctrl + D[/kbd]:同 [kbd]Delete[/kbd],删除文本光标右侧的字符\n" +"- [kbd]Ctrl + H[/kbd]:同 [kbd]Backspace[/kbd],删除文本光标左侧的字符\n" +"- [kbd]Ctrl + A[/kbd]:同 [kbd]Home[/kbd],将文本光标移动到行首\n" +"- [kbd]Ctrl + E[/kbd]:同 [kbd]End[/kbd],将文本光标移动到行首尾\n" +"- [kbd]Cmd + Left Arrow[/kbd]:同 [kbd]Home[/kbd],将文本光标移动到行首\n" +"- [kbd]Cmd + Right Arrow[/kbd]:同 [kbd]End[/kbd],将文本光标移动到行尾\n" +"[b]注意:[/b]上述光标移动快捷键不受 [member shortcut_keys_enabled] 的影响。" + +msgid "" +"Applies text from the [url=https://en.wikipedia.org/wiki/Input_method]Input " +"Method Editor[/url] (IME) and closes the IME if it is open." +msgstr "" +"应用[url=https://zh.wikipedia.org/zh-cn/%E8%BE%93%E5%85%A5%E6%B3%95]输入法编辑" +"器[/url]中的文本,如果输入法编辑器处于打开状态,还会将其关闭。" + msgid "" "Closes the [url=https://en.wikipedia.org/wiki/Input_method]Input Method " "Editor[/url] (IME) if it is open. Any text in the IME will be lost." @@ -62085,6 +78899,13 @@ msgstr "" msgid "Clears the current selection." msgstr "清除当前选择。" +msgid "" +"Allows entering edit mode whether the [LineEdit] is focused or not.\n" +"See also [member keep_editing_on_text_submit]." +msgstr "" +"允许进入编辑模式,无论 [LineEdit] 是否获得焦点。\n" +"另见 [member keep_editing_on_text_submit]。" + msgid "" "Returns the [PopupMenu] of this [LineEdit]. By default, this menu is " "displayed when right-clicking on the [LineEdit].\n" @@ -62214,6 +79035,9 @@ msgstr "" "在光标处插入文本 [param text]。如果最终值比 [member max_length] 长,则不会发生" "任何事情。" +msgid "Returns whether the [LineEdit] is being edited." +msgstr "返回 [LineEdit] 是否处于编辑状态。" + msgid "" "Returns whether the menu is visible. Use this instead of [code]get_menu()." "visible[/code] to improve performance (so the creation of the menu is " @@ -62263,6 +79087,9 @@ msgstr "" msgid "Selects the whole [String]." msgstr "选中整个 [String]。" +msgid "Allows exiting edit mode while preserving focus." +msgstr "允许退出编辑模式,保持焦点。" + msgid "Text alignment as defined in the [enum HorizontalAlignment] enum." msgstr "文本对齐方式,由 [enum HorizontalAlignment] 枚举定义。" @@ -62317,6 +79144,9 @@ msgid "" "be added." msgstr "如果为 [code]false[/code],则不能修改现在的文本,也不能添加新文本。" +msgid "If [code]true[/code], \"Emoji and Symbols\" menu is enabled." +msgstr "如果为 [code]true[/code],则启用“Emoji 和符号”菜单。" + msgid "" "If [code]true[/code], the [LineEdit] width will increase to stay longer than " "the [member text]. It will [b]not[/b] compress if the [member text] is " @@ -62328,11 +79158,76 @@ msgstr "" msgid "If [code]true[/code], the [LineEdit] doesn't display decoration." msgstr "如果为 [code]true[/code],则 [LineEdit] 不显示装饰。" +msgid "" +"If [code]true[/code], the [LineEdit] will not exit edit mode when text is " +"submitted by pressing [code]ui_text_submit[/code] action (by default: " +"[kbd]Enter[/kbd] or [kbd]Kp Enter[/kbd])." +msgstr "" +"如果为 [code]true[/code],则按下 [code]ui_text_submit[/code] 动作(默认为 " +"[kbd]Enter[/kbd] 或 [kbd]Kp Enter[/kbd])提交文本时 [LineEdit] 不会退出编辑模" +"式。" + msgid "" "Language code used for line-breaking and text shaping algorithms. If left " "empty, current locale is used instead." msgstr "语言代码,用于断行和文本塑形算法。如果留空则使用当前区域设置。" +msgid "" +"Maximum number of characters that can be entered inside the [LineEdit]. If " +"[code]0[/code], there is no limit.\n" +"When a limit is defined, characters that would exceed [member max_length] are " +"truncated. This happens both for existing [member text] contents when setting " +"the max length, or for new text inserted in the [LineEdit], including " +"pasting.\n" +"If any input text is truncated, the [signal text_change_rejected] signal is " +"emitted with the truncated substring as parameter:\n" +"[codeblocks]\n" +"[gdscript]\n" +"text = \"Hello world\"\n" +"max_length = 5\n" +"# `text` becomes \"Hello\".\n" +"max_length = 10\n" +"text += \" goodbye\"\n" +"# `text` becomes \"Hello good\".\n" +"# `text_change_rejected` is emitted with \"bye\" as parameter.\n" +"[/gdscript]\n" +"[csharp]\n" +"Text = \"Hello world\";\n" +"MaxLength = 5;\n" +"// `Text` becomes \"Hello\".\n" +"MaxLength = 10;\n" +"Text += \" goodbye\";\n" +"// `Text` becomes \"Hello good\".\n" +"// `text_change_rejected` is emitted with \"bye\" as parameter.\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"[LineEdit] 中可以输入的最大字符数。如果为 [code]0[/code],则没有限制。\n" +"定义限制后,将截断超过 [member max_length] 的字符。在设置最大长度时,将适用于" +"现有的 [member text] 内容,以及在 [LineEdit] 中插入、包括粘贴进来的新文本。\n" +"如果输入文本发生截断,[signal text_change_rejected] 信号将以截断后的子字符串作" +"为参数发出。\n" +"[codeblocks]\n" +"[gdscript]\n" +"text = \"Hello world\"\n" +"max_length = 5\n" +"# `text` 变为 \"Hello\"。\n" +"max_length = 10\n" +"text += \" goodbye\"\n" +"# `text` 变为 \"Hello good\"。\n" +"# `text_change_rejected` 以 \"bye\" 作为参数发出。\n" +"[/gdscript]\n" +"[csharp]\n" +"Text = \"Hello world\";\n" +"MaxLength = 5;\n" +"// `Text` 变为 \"Hello\"。\n" +"MaxLength = 10;\n" +"Text += \" goodbye\";\n" +"// `text` 变为 \"Hello good\"。\n" +"// `text_change_rejected` 以 \"bye\" 作为参数发出。\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "If [code]false[/code], using middle mouse button to paste clipboard will be " "disabled.\n" @@ -62405,6 +79300,9 @@ msgstr "" msgid "Specifies the type of virtual keyboard to show." msgstr "指定要显示的虚拟键盘的类型。" +msgid "Emitted when the [LineEdit] switches in or out of edit mode." +msgstr "[LineEdit] 进入退出编辑模式时发出。" + msgid "" "Emitted when appending text that overflows the [member max_length]. The " "appended text is truncated to fit [member max_length], and the part that " @@ -62416,6 +79314,14 @@ msgstr "" msgid "Emitted when the text changes." msgstr "当文本更改时触发。" +msgid "" +"Emitted when the user presses the [code]ui_text_submit[/code] action (by " +"default: [kbd]Enter[/kbd] or [kbd]Kp Enter[/kbd]) while the [LineEdit] has " +"focus." +msgstr "" +"当 [LineEdit] 拥有焦点时,用户按下 [code]ui_text_submit[/code] 动作(默认为 " +"[kbd]Enter[/kbd] 或 [kbd]Kp Enter[/kbd])发出。" + msgid "Cuts (copies and clears) the selected text." msgstr "剪切(复制并删除)选中的文本。" @@ -62513,6 +79419,9 @@ msgstr "插入文字连接符(WJ)字符。" msgid "Inserts soft hyphen (SHY) character." msgstr "插入软连字符(SHY)字符。" +msgid "Opens system emoji and symbol picker." +msgstr "打开系统 Emoji 和符号拾取器。" + msgid "Represents the size of the [enum MenuItems] enum." msgstr "代表 [enum MenuItems] 枚举的大小。" @@ -62616,6 +79525,45 @@ msgid "" "for the available modes." msgstr "文本的下划线模式。可用模式见 [enum LinkButton.UnderlineMode]。" +msgid "" +"The [url=https://en.wikipedia.org/wiki/Uniform_Resource_Identifier]URI[/url] " +"for this [LinkButton]. If set to a valid URI, pressing the button opens the " +"URI using the operating system's default program for the protocol (via " +"[method OS.shell_open]). HTTP and HTTPS URLs open the default web browser.\n" +"[codeblocks]\n" +"[gdscript]\n" +"uri = \"https://godotengine.org\" # Opens the URL in the default web " +"browser.\n" +"uri = \"C:\\SomeFolder\" # Opens the file explorer at the given path.\n" +"uri = \"C:\\SomeImage.png\" # Opens the given image in the default viewing " +"app.\n" +"[/gdscript]\n" +"[csharp]\n" +"Uri = \"https://godotengine.org\"; // Opens the URL in the default web " +"browser.\n" +"Uri = \"C:\\SomeFolder\"; // Opens the file explorer at the given path.\n" +"Uri = \"C:\\SomeImage.png\"; // Opens the given image in the default viewing " +"app.\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"这个 [LinkButton] 的 [url=https://zh.wikipedia.org/wiki/" +"%E7%BB%9F%E4%B8%80%E8%B5%84%E6%BA%90%E6%A0%87%E5%BF%97%E7%AC%A6]URI[/url]。如" +"果设置为有效的 URI,按下按钮就会使用操作系统中与该协议对应的默认程序打开该 URI" +"(使用 [method OS.shell_open])。HTTP 和 HTTPS 的 URL 会打开默认的浏览器。\n" +"[codeblocks]\n" +"[gdscript]\n" +"uri = \"https://godotengine.org\" # 在默认浏览器中打开 URL。\n" +"uri = \"C:\\SomeFolder\" # 将文件浏览器打开到给定的路径。\n" +"uri = \"C:\\SomeImage.png\" # 在默认查看应用中打开给定的图像。\n" +"[/gdscript]\n" +"[csharp]\n" +"Uri = \"https://godotengine.org\"; // 在默认浏览器中打开 URL。\n" +"Uri = \"C:\\SomeFolder\"; // 将文件浏览器打开到给定的路径。\n" +"Uri = \"C:\\SomeImage.png\"; // 在默认查看应用中打开给定的图像。\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "The LinkButton will always show an underline at the bottom of its text." msgstr "LinkButton 将始终在其文本底部显示下划线。" @@ -62679,15 +79627,464 @@ msgstr "" "禁用聚焦的视觉效果会影响使用键盘/手柄进行导航的可用性,所以出于可访问性的原" "因,不建议这样做。" +msgid "The [LookAtModifier3D] rotates a bone to look at a target." +msgstr "[LookAtModifier3D] 会旋转骨骼,让它看向某个目标。" + +msgid "" +"This [SkeletonModifier3D] rotates a bone to look at a target. This is helpful " +"for moving a character's head to look at the player, rotating a turret to " +"look at a target, or any other case where you want to make a bone rotate " +"towards something quickly and easily.\n" +"When applying multiple [LookAtModifier3D]s, the [LookAtModifier3D] assigned " +"to the parent bone must be put above the [LookAtModifier3D] assigned to the " +"child bone in the list in order for the child bone results to be correct." +msgstr "" +"该 [SkeletonModifier3D] 会旋转骨骼,让它看向某个目标。适用于让角色的头部看向玩" +"家、让炮塔看向目标等需要让骨骼简单快速地旋转到指向某个物体的情况。\n" +"应用多个 [LookAtModifier3D] 时,分配给父骨骼的 [LookAtModifier3D] 在列表中必须" +"放在分配给子骨骼的 [LookAtModifier3D] 上方,这样才能让子骨骼得到正确的结果。" + +msgid "Returns the remaining seconds of the time-based interpolation." +msgstr "返回基于时间的插值的剩余秒数。" + +msgid "" +"Returns whether the time-based interpolation is running or not. If " +"[code]true[/code], it is equivalent to [method get_interpolation_remaining] " +"being [code]0[/code].\n" +"This is useful to determine whether a [LookAtModifier3D] can be removed " +"safely." +msgstr "" +"返回是否正在执行基于时间的插值。如果为 [code]true[/code],则等价于 [method " +"get_interpolation_remaining] 为 [code]0[/code]。\n" +"适用于确定是否能够安全移除 [LookAtModifier3D]。" + +msgid "" +"Returns whether the target is within the angle limitations. It is useful for " +"unsetting the [member target_node] when the target is outside of the angle " +"limitations.\n" +"[b]Note:[/b] The value is updated after [method SkeletonModifier3D." +"_process_modification]. To retrieve this value correctly, we recommend using " +"the signal [signal SkeletonModifier3D.modification_processed]." +msgstr "" +"返回目标是否在角度限制范围内。适用于在目标超出角度限制范围后将 [member " +"target_node] 清空。\n" +"[b]注意:[/b]该值在 [method SkeletonModifier3D._process_modification] 之后更" +"新。为了获取正确的值,我们建议使用 [signal SkeletonModifier3D." +"modification_processed] 信号。" + +msgid "Index of the [member bone_name] in the parent [Skeleton3D]." +msgstr "父级 [Skeleton3D] 中 [member bone_name] 的索引。" + +msgid "The bone name of the [Skeleton3D] that the modification will operate on." +msgstr "[Skeleton3D] 中要执行修改的骨骼名称。" + +msgid "" +"The duration of the time-based interpolation. Interpolation is triggered at " +"the following cases:\n" +"- When the target node is changed\n" +"- When an axis is flipped due to angle limitation\n" +"[b]Note:[/b] The flipping occurs when the target is outside the angle " +"limitation and the internally computed secondary rotation axis of the forward " +"vector is flipped. Visually, it occurs when the target is outside the angle " +"limitation and crosses the plane of the [member forward_axis] and [member " +"primary_rotation_axis]." +msgstr "" +"基于时间的插值的持续时间。插值的触发条件有:\n" +"- 目标节点发生改变\n" +"- 由于角度限制导致轴发生翻转\n" +"[b]注意:[/b]翻转的时机是目标超出角度限制范围,前进向量的内部次旋转轴发生翻" +"转。视觉上,发生的时机是目标超出角度限制范围,越过 [member forward_axis] 和 " +"[member primary_rotation_axis] 构成的平面。" + +msgid "" +"The ease type of the time-based interpolation. See also [enum Tween.EaseType]." +msgstr "基于时间的插值的缓动类型。另见 [enum Tween.EaseType]。" + +msgid "" +"The forward axis of the bone. This [SkeletonModifier3D] modifies the bone so " +"that this axis points toward the [member target_node]." +msgstr "" +"骨骼的前进轴。该 [SkeletonModifier3D] 对骨骼进行的修改会让该轴指向 [member " +"target_node]。" + +msgid "Index of the [member origin_bone_name] in the parent [Skeleton3D]." +msgstr "父级 [Skeleton3D] 中 [member origin_bone_name] 的索引。" + +msgid "" +"If [member origin_from] is [constant ORIGIN_FROM_SPECIFIC_BONE], the bone " +"global pose position specified for this is used as origin." +msgstr "" +"如果 [member origin_from] 为 [constant ORIGIN_FROM_SPECIFIC_BONE],则会将指定" +"的骨骼全局姿势位置用作原点。" + +msgid "" +"If [member origin_from] is [constant ORIGIN_FROM_EXTERNAL_NODE], the global " +"position of the [Node3D] specified for this is used as origin." +msgstr "" +"如果 [member origin_from] 为 [constant ORIGIN_FROM_EXTERNAL_NODE],则会将指定" +"的 [Node3D] 的全局位置用作原点。" + +msgid "" +"This value determines from what origin is retrieved for use in the " +"calculation of the forward vector." +msgstr "该值决定了计算前进向量时从哪里获取原点。" + +msgid "" +"The offset of the bone pose origin. Matching the origins by offset is useful " +"for cases where multiple bones must always face the same direction, such as " +"the eyes.\n" +"[b]Note:[/b] This value indicates the local position of the object set in " +"[member origin_from]." +msgstr "" +"骨骼姿势原点的偏移。通过偏移量来对齐原点常用于多个骨骼必须始终朝向同一方向的情" +"况,例如眼球。\n" +"[b]注意:[/b]该值表示的是 [member origin_from] 中设置的对象的局部位置。" + +msgid "" +"If the target passes through too close to the origin than this value, time-" +"based interpolation is used even if the target is within the angular " +"limitations, to prevent the angular velocity from becoming too high." +msgstr "" +"如果目标经过原点的距离小于该值,即使目标在角度限制范围内,也会使用基于时间的插" +"值,从而防止角速度过高。" + +msgid "" +"The threshold to start damping for [member primary_limit_angle]. It provides " +"non-linear (b-spline) interpolation, let it feel more resistance the more it " +"rotate to the edge limit. This is useful for simulating the limits of human " +"motion.\n" +"If [code]1.0[/code], no damping is performed. If [code]0.0[/code], damping is " +"always performed." +msgstr "" +"开始对 [member primary_limit_angle] 执行阻尼的阈值。提供的是非线性(B 样条)插" +"值,会使得在旋转到边缘限制时感受到更多的阻力。适用于模拟人类运动的限制。\n" +"如果为 [code]1.0[/code] 则不执行阻尼。如果为 [code]0.0[/code] 则始终执行阻尼。" + +msgid "" +"The limit angle of the primary rotation when [member symmetry_limitation] is " +"[code]true[/code]." +msgstr "" +"当 [member symmetry_limitation] 为 [code]true[/code] 时,主旋转的限制角度。" + +msgid "" +"The threshold to start damping for [member primary_negative_limit_angle]." +msgstr "开始对 [member primary_negative_limit_angle] 执行阻尼的阈值。" + +msgid "" +"The limit angle of negative side of the primary rotation when [member " +"symmetry_limitation] is [code]false[/code]." +msgstr "" +"当 [member symmetry_limitation] 为 [code]false[/code] 时,主旋转负方向的限制角" +"度。" + +msgid "" +"The threshold to start damping for [member primary_positive_limit_angle]." +msgstr "开始对 [member primary_positive_limit_angle] 执行阻尼的阈值。" + +msgid "" +"The limit angle of positive side of the primary rotation when [member " +"symmetry_limitation] is [code]false[/code]." +msgstr "" +"当 [member symmetry_limitation] 为 [code]false[/code] 时,主旋转正方向的限制角" +"度。" + +msgid "" +"The axis of the first rotation. This [SkeletonModifier3D] works by " +"compositing the rotation by Euler angles to prevent to rotate the [member " +"forward_axis]." +msgstr "" +"主旋转轴。该 [SkeletonModifier3D] 会使用欧拉角对旋转进行合成,防止围绕 " +"[member forward_axis] 旋转。" + +msgid "The threshold to start damping for [member secondary_limit_angle]." +msgstr "开始对 [member secondary_limit_angle] 执行阻尼的阈值。" + +msgid "" +"The limit angle of the secondary rotation when [member symmetry_limitation] " +"is [code]true[/code]." +msgstr "" +"当 [member symmetry_limitation] 为 [code]true[/code] 时,次旋转的限制角度。" + +msgid "" +"The threshold to start damping for [member secondary_negative_limit_angle]." +msgstr "开始对 [member secondary_negative_limit_angle] 执行阻尼的阈值。" + +msgid "" +"The limit angle of negative side of the secondary rotation when [member " +"symmetry_limitation] is [code]false[/code]." +msgstr "" +"当 [member symmetry_limitation] 为 [code]false[/code] 时,次旋转负方向的限制角" +"度。" + +msgid "" +"The threshold to start damping for [member secondary_positive_limit_angle]." +msgstr "开始对 [member secondary_positive_limit_angle] 执行阻尼的阈值。" + +msgid "" +"The limit angle of positive side of the secondary rotation when [member " +"symmetry_limitation] is [code]false[/code]." +msgstr "" +"当 [member symmetry_limitation] 为 [code]false[/code] 时,次旋转正方向的限制角" +"度。" + +msgid "" +"If [code]true[/code], the limitations are spread from the bone " +"symmetrically.\n" +"If [code]false[/code], the limitation can be specified separately for each " +"side of the bone rest." +msgstr "" +"如果 [code]true[/code],则限制对称地分布在骨骼两侧。\n" +"如果 [code]false[/code],则可以为骨骼放松时的每一侧单独指定限制。" + +msgid "" +"The [NodePath] to the node that is the target for the look at modification. " +"This node is what the modification will rotate the bone to." +msgstr "朝向修改的目标节点的 [NodePath]。该节点是修改时骨骼旋转的目标。" + +msgid "" +"The transition type of the time-based interpolation. See also [enum Tween." +"TransitionType]." +msgstr "基于时间的插值的过渡类型。另见 [enum Tween.TransitionType]。" + +msgid "" +"If [code]true[/code], limits the degree of rotation. This helps prevent the " +"character's neck from rotating 360 degrees.\n" +"[b]Note:[/b] As with [AnimationTree] blending, interpolation is provided that " +"favors [method Skeleton3D.get_bone_rest]. This means that interpolation does " +"not select the shortest path in some cases.\n" +"[b]Note:[/b] Some [member transition_type] may exceed the limitations (e.g. " +"`Back`, `Elastic`, and `Spring`). If interpolation occurs while overshooting " +"the limitations, the result might possibly not respect the bone rest." +msgstr "" +"如果为 [code]true[/code] 则会限制旋转的角度。有助于防止角色的脖子发生 360 度旋" +"转。\n" +"[b]注意:[/b]与 [AnimationTree] 混合一样,插值时会优先考虑 [method Skeleton3D." +"get_bone_rest]。这意味着插值在某些情况下不会选择最短路径。\n" +"[b]注意:[/b]某些 [member transition_type] 可能会超出限制(例如 `Back`、" +"`Elastic` 和 `Spring`)。如果在超出限制时发生插值,结果可能不会遵循骨骼的放松" +"姿势。" + +msgid "If [code]true[/code], provides rotation by two axes." +msgstr "如果为 [code]true[/code] 就能够使用两个转轴。" + +msgid "" +"The bone rest position of the bone specified in [member bone] is used as " +"origin." +msgstr "使用 [member bone] 所指定骨骼的放松位置作为原点。" + +msgid "" +"The bone global pose position of the bone specified in [member origin_bone] " +"is used as origin.\n" +"[b]Note:[/b] It is recommended that you select only the parent bone unless " +"you are familiar with the bone processing process. The specified bone pose at " +"the time the [LookAtModifier3D] is processed is used as a reference. In other " +"words, if you specify a child bone and the [LookAtModifier3D] causes the " +"child bone to move, the rendered result and direction will not match." +msgstr "" +"使用 [member origin_bone] 所指定骨骼的全局姿势位置作为原点。\n" +"[b]注意:[/b]除非你熟悉骨骼的处理流程,否则建议只选择父级骨骼。指定骨骼姿势在" +"处理 [LookAtModifier3D] 时会用作参考。换句话说,如果你指定的是子级骨骼,而 " +"[LookAtModifier3D] 导致该子级骨骼发生移动,那么渲染结果会与方向不一致。" + +msgid "" +"The global position of the [Node3D] specified in [member " +"origin_external_node] is used as origin.\n" +"[b]Note:[/b] Same as [constant ORIGIN_FROM_SPECIFIC_BONE], when specifying a " +"[BoneAttachment3D] with a child bone assigned, the rendered result and " +"direction will not match." +msgstr "" +"使用 [member origin_external_node] 所指定的 [Node3D] 的全局位置作为原点。\n" +"[b]注意:[/b]与 [constant ORIGIN_FROM_SPECIFIC_BONE] 相同,如果指定的是分配了" +"子级骨骼的 [BoneAttachment3D],那么渲染结果会与方向不一致。" + msgid "Abstract base class for the game's main loop." msgstr "游戏主循环的抽象基类。" +msgid "" +"[MainLoop] is the abstract base class for a Godot project's game loop. It is " +"inherited by [SceneTree], which is the default game loop implementation used " +"in Godot projects, though it is also possible to write and use one's own " +"[MainLoop] subclass instead of the scene tree.\n" +"Upon the application start, a [MainLoop] implementation must be provided to " +"the OS; otherwise, the application will exit. This happens automatically (and " +"a [SceneTree] is created) unless a [MainLoop] [Script] is provided from the " +"command line (with e.g. [code]godot -s my_loop.gd[/code]) or the [member " +"ProjectSettings.application/run/main_loop_type] project setting is " +"overwritten.\n" +"Here is an example script implementing a simple [MainLoop]:\n" +"[codeblocks]\n" +"[gdscript]\n" +"class_name CustomMainLoop\n" +"extends MainLoop\n" +"\n" +"var time_elapsed = 0\n" +"\n" +"func _initialize():\n" +" print(\"Initialized:\")\n" +" print(\" Starting time: %s\" % str(time_elapsed))\n" +"\n" +"func _process(delta):\n" +" time_elapsed += delta\n" +" # Return true to end the main loop.\n" +" return Input.get_mouse_button_mask() != 0 || Input." +"is_key_pressed(KEY_ESCAPE)\n" +"\n" +"func _finalize():\n" +" print(\"Finalized:\")\n" +" print(\" End time: %s\" % str(time_elapsed))\n" +"[/gdscript]\n" +"[csharp]\n" +"using Godot;\n" +"\n" +"[GlobalClass]\n" +"public partial class CustomMainLoop : MainLoop\n" +"{\n" +" private double _timeElapsed = 0;\n" +"\n" +" public override void _Initialize()\n" +" {\n" +" GD.Print(\"Initialized:\");\n" +" GD.Print($\" Starting Time: {_timeElapsed}\");\n" +" }\n" +"\n" +" public override bool _Process(double delta)\n" +" {\n" +" _timeElapsed += delta;\n" +" // Return true to end the main loop.\n" +" return Input.GetMouseButtonMask() != 0 || Input.IsKeyPressed(Key." +"Escape);\n" +" }\n" +"\n" +" private void _Finalize()\n" +" {\n" +" GD.Print(\"Finalized:\");\n" +" GD.Print($\" End Time: {_timeElapsed}\");\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"[MainLoop] 是 Godot 项目中游戏循环的抽象基类。它被 [SceneTree] 继承," +"[SceneTree] 是 Godot 项目中使用的默认游戏循环的实现,不过也可以编写和使用自己" +"的 [MainLoop] 子类,来代替场景树。\n" +"在应用程序启动时,必须向操作系统提供一个 [MainLoop] 实现;否则,应用程序将退" +"出。这会自动发生(并创建一个 [SceneTree]),除非从命令行提供一个 [MainLoop] " +"[Script](例如 [code]godot -s my_loop.gd[/code]),或 [member ProjectSettings." +"application/run/main_loop_type] 项目设置被覆盖。\n" +"以下是实现简单 [MainLoop] 的示例脚本:\n" +"[codeblocks]\n" +"[gdscript]\n" +"class_name CustomMainLoop\n" +"extends MainLoop\n" +"\n" +"var time_elapsed = 0\n" +"\n" +"func _initialize():\n" +" print(\"Initialized:\")\n" +" print(\" Starting time: %s\" % str(time_elapsed))\n" +"\n" +"func _process(delta):\n" +" time_elapsed += delta\n" +" # 返回 true 结束主循环。\n" +" return Input.get_mouse_button_mask() != 0 || Input." +"is_key_pressed(KEY_ESCAPE)\n" +"\n" +"func _finalize():\n" +" print(\"Finalized:\")\n" +" print(\" End time: %s\" % str(time_elapsed))\n" +"[/gdscript]\n" +"[csharp]\n" +"using Godot;\n" +"\n" +"[GlobalClass]\n" +"public partial class CustomMainLoop : MainLoop\n" +"{\n" +" private double _timeElapsed = 0;\n" +"\n" +" public override void _Initialize()\n" +" {\n" +" GD.Print(\"Initialized:\");\n" +" GD.Print($\" Starting Time: {_timeElapsed}\");\n" +" }\n" +"\n" +" public override bool _Process(double delta)\n" +" {\n" +" _timeElapsed += delta;\n" +" // 返回 true 结束主循环。\n" +" return Input.GetMouseButtonMask() != 0 || Input.IsKeyPressed(Key." +"Escape);\n" +" }\n" +"\n" +" private void _Finalize()\n" +" {\n" +" GD.Print(\"Finalized:\");\n" +" GD.Print($\" End Time: {_timeElapsed}\");\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "Called before the program exits." msgstr "在程序退出前调用。" msgid "Called once during initialization." msgstr "在初始化时调用一次。" +msgid "" +"Called each physics frame with the time since the last physics frame as " +"argument ([param delta], in seconds). Equivalent to [method Node." +"_physics_process].\n" +"If implemented, the method must return a boolean value. [code]true[/code] " +"ends the main loop, while [code]false[/code] lets it proceed to the next " +"frame.\n" +"[b]Note:[/b] [param delta] will be larger than expected if running at a " +"framerate lower than [member Engine.physics_ticks_per_second] / [member " +"Engine.max_physics_steps_per_frame] FPS. This is done to avoid \"spiral of " +"death\" scenarios where performance would plummet due to an ever-increasing " +"number of physics steps per frame. This behavior affects both [method " +"_process] and [method _physics_process]. As a result, avoid using [param " +"delta] for time measurements in real-world seconds. Use the [Time] " +"singleton's methods for this purpose instead, such as [method Time." +"get_ticks_usec]." +msgstr "" +"每个物理帧调用一次,调用时会传入自上一个物理帧以来的时间作为参数([param " +"delta],单位为秒)。等价于 [method Node._physics_process]。\n" +"如果实现了该方法,则必须返回一个布尔值。返回 [code]true[/code] 会结束主循环," +"而返回 [code]false[/code] 则允许继续到下一帧。\n" +"[b]注意:[/b]如果运行的帧率低于 [member Engine.physics_ticks_per_second] / " +"[member Engine.max_physics_steps_per_frame] FPS,则 [param delta] 将会比预期的" +"要大。这是为了避免发生“死亡螺旋”的情况,此时每帧的物理步骤数量会不断增加,导致" +"性能急剧下降。这种行为会影响 [method _process] 和 [method _physics_process]。" +"因此,请避免根据 [param delta] 来测量真实世界的秒数。请使用 [Time] 单例的方法" +"来实现此目的,例如 [method Time.get_ticks_usec]。" + +msgid "" +"Called each process (idle) frame with the time since the last process frame " +"as argument (in seconds). Equivalent to [method Node._process].\n" +"If implemented, the method must return a boolean value. [code]true[/code] " +"ends the main loop, while [code]false[/code] lets it proceed to the next " +"frame.\n" +"[b]Note:[/b] [param delta] will be larger than expected if running at a " +"framerate lower than [member Engine.physics_ticks_per_second] / [member " +"Engine.max_physics_steps_per_frame] FPS. This is done to avoid \"spiral of " +"death\" scenarios where performance would plummet due to an ever-increasing " +"number of physics steps per frame. This behavior affects both [method " +"_process] and [method _physics_process]. As a result, avoid using [param " +"delta] for time measurements in real-world seconds. Use the [Time] " +"singleton's methods for this purpose instead, such as [method Time." +"get_ticks_usec]." +msgstr "" +"每个处理(空闲)帧调用一次,调用时会传入自上一个处理帧以来的时间作为参数" +"([param delta],单位为秒)。等价于 [method Node._process]。\n" +"如果实现了该方法,则必须返回一个布尔值。返回 [code]true[/code] 会结束主循环," +"而返回 [code]false[/code] 则允许继续到下一帧。\n" +"[b]注意:[/b]如果运行的帧率低于 [member Engine.physics_ticks_per_second] / " +"[member Engine.max_physics_steps_per_frame] FPS,则 [param delta] 将会比预期的" +"要大。这是为了避免发生“死亡螺旋”的情况,此时每帧的物理步骤数量会不断增加,导致" +"性能急剧下降。这种行为会影响 [method _process] 和 [method _physics_process]。" +"因此,请避免根据 [param delta] 来测量真实世界的秒数。请使用 [Time] 单例的方法" +"来实现此目的,例如 [method Time.get_ticks_usec]。" + msgid "Emitted when a user responds to a permission request." msgstr "当用户对权限请求作出反应时发出。" @@ -62974,6 +80371,14 @@ msgstr "" msgid "Creates a placeholder version of this resource ([PlaceholderMaterial])." msgstr "创建该资源的占位符版本([PlaceholderMaterial])。" +msgid "" +"Only available when running in the editor. Opens a popup that visualizes the " +"generated shader code, including all variants and internal shader code. See " +"also [method Shader.inspect_native_shader_code]." +msgstr "" +"仅在编辑器中运行时可用。打开一个弹出窗口显示生成的着色器代码,包括所有变体和内" +"部着色器代码。另见 [method Shader.inspect_native_shader_code]。" + msgid "" "Sets the [Material] to be used for the next pass. This renders the object " "again using a different material.\n" @@ -63017,6 +80422,20 @@ msgstr "[member render_priority] 参数的最大值。" msgid "Minimum value for the [member render_priority] parameter." msgstr "[member render_priority] 参数的最小值。" +msgid "A horizontal menu bar that creates a menu for each [PopupMenu] child." +msgstr "水平菜单栏,会为每个 [PopupMenu] 类型的子节点创建一个菜单。" + +msgid "" +"A horizontal menu bar that creates a menu for each [PopupMenu] child. New " +"items are created by adding [PopupMenu]s to this node. Item title is " +"determined by [member Window.title], or node name if [member Window.title] is " +"empty. Item title can be overridden using [method set_menu_title]." +msgstr "" +"水平菜单栏,会为每个 [PopupMenu] 类型的子节点创建一个菜单。通过添加 " +"[PopupMenu] 节点来创建新的项目。项目的标题由 [member Window.title] 决定,如果 " +"[member Window.title] 为空则使用节点的名称。可以使用 [method set_menu_title] " +"覆盖项目标题。" + msgid "Returns number of menu items." msgstr "返回菜单项的数量。" @@ -63062,6 +80481,19 @@ msgstr "设置菜单项的工具提示。" msgid "Flat [MenuBar] don't display item decoration." msgstr "扁平的 [MenuBar],不显示项目装饰。" +msgid "" +"If [code]true[/code], [MenuBar] will use system global menu when supported.\n" +"[b]Note:[/b] If [code]true[/code] and global menu is supported, this node is " +"not displayed, has zero size, and all its child nodes except [PopupMenu]s are " +"inaccessible.\n" +"[b]Note:[/b] This property overrides the value of the [member PopupMenu." +"prefer_native_menu] property of the child nodes." +msgstr "" +"如果为 [code]true[/code],则系统支持全局菜单时 [MenuBar] 会使用全局菜单。\n" +"[b]注意:[/b]如果为 [code]true[/code] 且支持全局菜单,则不会显示该节点,其大小" +"为零,[PopupMenu] 外的所有子节点都无法访问。\n" +"[b]注意:[/b]该属性会覆盖子节点的 [member PopupMenu.prefer_native_menu] 属性。" + msgid "" "If [code]true[/code], when the cursor hovers above menu item, it will close " "the current [PopupMenu] and open the other one." @@ -63920,6 +81352,43 @@ msgstr "返回与给定面关联的元数据。" msgid "Calculates and returns the face normal of the given face." msgstr "计算并返回给定面的面法线。" +msgid "" +"Returns the specified vertex index of the given face.\n" +"[param vertex] must be either [code]0[/code], [code]1[/code], or [code]2[/" +"code] because faces contain three vertices.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var index = mesh_data_tool.get_face_vertex(0, 1) # Gets the index of the " +"second vertex of the first face.\n" +"var position = mesh_data_tool.get_vertex(index)\n" +"var normal = mesh_data_tool.get_vertex_normal(index)\n" +"[/gdscript]\n" +"[csharp]\n" +"int index = meshDataTool.GetFaceVertex(0, 1); // Gets the index of the second " +"vertex of the first face.\n" +"Vector3 position = meshDataTool.GetVertex(index);\n" +"Vector3 normal = meshDataTool.GetVertexNormal(index);\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"返回给定面的指定顶点索引。\n" +"[param vertex] 必须为 [code]0[/code]、[code]1[/code] 或 [code]2[/code],因为一" +"个面包含三个顶点。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var index = mesh_data_tool.get_face_vertex(0, 1) # 获取第一个面的第二个顶点的" +"索引。\n" +"var position = mesh_data_tool.get_vertex(index)\n" +"var normal = mesh_data_tool.get_vertex_normal(index)\n" +"[/gdscript]\n" +"[csharp]\n" +"int index = meshDataTool.GetFaceVertex(0, 1); // 获取第一个面的第二个顶点的索" +"引。\n" +"Vector3 position = meshDataTool.GetVertex(index);\n" +"Vector3 normal = meshDataTool.GetVertexNormal(index);\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Returns the [Mesh]'s format as a combination of the [enum Mesh.ArrayFormat] " "flags. For example, a mesh containing both vertices and normals would return " @@ -64431,33 +81900,6 @@ msgstr "" msgid "Generic mobile VR implementation." msgstr "通用移动 VR 实现。" -msgid "" -"This is a generic mobile VR implementation where you need to provide details " -"about the phone and HMD used. It does not rely on any existing framework. " -"This is the most basic interface we have. For the best effect, you need a " -"mobile phone with a gyroscope and accelerometer.\n" -"Note that even though there is no positional tracking, the camera will assume " -"the headset is at a height of 1.85 meters. You can change this by setting " -"[member eye_height].\n" -"You can initialize this interface as follows:\n" -"[codeblock]\n" -"var interface = XRServer.find_interface(\"Native mobile\")\n" -"if interface and interface.initialize():\n" -" get_viewport().use_xr = true\n" -"[/codeblock]" -msgstr "" -"这是一个通用的移动 VR 实现,你需要提供有关所用手机和 HMD 的详细信息。它不依赖" -"于任何现有框架。这是我们拥有的最基本的接口。为了获得最佳效果,你需要一部带有陀" -"螺仪和加速度计的手机。\n" -"请注意,即使没有位置跟踪,相机也会假定头戴设备处于 1.85 米的高度。可以通过设" -"置 [member eye_height] 来更改该设置。\n" -"可以按如下方式初始化该接口:\n" -"[codeblock]\n" -"var interface = XRServer.find_interface(\"Native mobile\")\n" -"if interface and interface.initialize():\n" -" get_viewport().use_xr = true\n" -"[/codeblock]" - msgid "" "The distance between the display and the lenses inside of the device in " "centimeters." @@ -64839,6 +82281,20 @@ msgstr "" "各个实例的外观可以通过 [method set_instance_color] 和 [method " "set_instance_custom_data] 来修改。" +msgid "" +"Choose whether to use an interpolation method that favors speed or quality.\n" +"When using low physics tick rates (typically below 20) or high rates of " +"object rotation, you may get better results from the high quality setting.\n" +"[b]Note:[/b] Fast quality does not equate to low quality. Except in the " +"special cases mentioned above, the quality should be comparable to high " +"quality." +msgstr "" +"选择使用优先考虑速度还是优先考虑质量的插值方式。\n" +"如果使用的物理周期率较低(通常低于 20)或对象旋转率较高,则设为高质量的效果会" +"更好。\n" +"[b]注意:[/b]速度优先并不意味着质量较低。除了上述特殊情况之外,其质量应与选择" +"高质量时类似。" + msgid "" "Accessing this property is very slow. Use [method set_instance_transform_2d] " "and [method get_instance_transform_2d] instead." @@ -64910,6 +82366,16 @@ msgstr "使用 2D 变换时使用此选项。" msgid "Use this when using 3D transforms." msgstr "使用 3D 变换时使用此选项。" +msgid "" +"Always interpolate using Basis lerping, which can produce warping artifacts " +"in some situations." +msgstr "始终使用 Basis 线性插值,部分情况下可能产生扭曲问题。" + +msgid "" +"Attempt to interpolate using Basis slerping (spherical linear interpolation) " +"where possible, otherwise fall back to lerping." +msgstr "尽可能使用 Basis 球面线性插值,否则回退至线性插值。" + msgid "Node that instances a [MultiMesh] in 2D." msgstr "在 2D 中实例化 [MultiMesh] 的节点。" @@ -65063,6 +82529,25 @@ msgstr "" "[b]注意:[/b]该方法会导致 RPC 被调用,因此它们将在该函数的相同上下文中执行(例" "如 [code]_process[/code]、[code]physics[/code]、[Thread])。" +msgid "" +"Sends an RPC to the target [param peer]. The given [param method] will be " +"called on the remote [param object] with the provided [param arguments]. The " +"RPC may also be called locally depending on the implementation and RPC " +"configuration. See [method Node.rpc] and [method Node.rpc_config].\n" +"[b]Note:[/b] Prefer using [method Node.rpc], [method Node.rpc_id], or " +"[code]my_method.rpc(peer, arg1, arg2, ...)[/code] (in GDScript), since they " +"are faster. This method is mostly useful in conjunction with " +"[MultiplayerAPIExtension] when extending or replacing the multiplayer " +"capabilities." +msgstr "" +"向目标对等体 [param peer] 发送 RPC。会使用提供的参数 [param arguments] 在远程" +"对象 [param object] 上调用给定的方法 [param method]。根据实现和 RPC 配置,RPC " +"可能也可以进行本地调用。见 [method Node.rpc] 和 [method Node.rpc_config]。\n" +"[b]注意:[/b]请尽量使用 [method Node.rpc]、[method Node.rpc_id] 或 " +"[code]my_method.rpc(peer, arg1, arg2, ...)[/code](适用于 GDScript),因为速度" +"更快。这个方法主要用于 [MultiplayerAPIExtension] 进行多人游戏能力的扩展和替" +"换。" + msgid "" "Sets the default MultiplayerAPI implementation class. This method can be used " "by modules and extensions to configure which implementation will be used by " @@ -65155,6 +82640,169 @@ msgstr "" msgid "Base class used for extending the [MultiplayerAPI]." msgstr "用于扩展 [MultiplayerAPI] 的基类。" +msgid "" +"This class can be used to extend or replace the default [MultiplayerAPI] " +"implementation via script or extensions.\n" +"The following example extend the default implementation ([SceneMultiplayer]) " +"by logging every RPC being made, and every object being configured for " +"replication.\n" +"[codeblocks]\n" +"[gdscript]\n" +"extends MultiplayerAPIExtension\n" +"class_name LogMultiplayer\n" +"\n" +"# We want to extend the default SceneMultiplayer.\n" +"var base_multiplayer = SceneMultiplayer.new()\n" +"\n" +"func _init():\n" +" # Just passthrough base signals (copied to var to avoid cyclic " +"reference)\n" +" var cts = connected_to_server\n" +" var cf = connection_failed\n" +" var pc = peer_connected\n" +" var pd = peer_disconnected\n" +" base_multiplayer.connected_to_server.connect(func(): cts.emit())\n" +" base_multiplayer.connection_failed.connect(func(): cf.emit())\n" +" base_multiplayer.peer_connected.connect(func(id): pc.emit(id))\n" +" base_multiplayer.peer_disconnected.connect(func(id): pd.emit(id))\n" +"\n" +"func _poll():\n" +" return base_multiplayer.poll()\n" +"\n" +"# Log RPC being made and forward it to the default multiplayer.\n" +"func _rpc(peer: int, object: Object, method: StringName, args: Array) -> " +"Error:\n" +" print(\"Got RPC for %d: %s::%s(%s)\" % [peer, object, method, args])\n" +" return base_multiplayer.rpc(peer, object, method, args)\n" +"\n" +"# Log configuration add. E.g. root path (nullptr, NodePath), replication " +"(Node, Spawner|Synchronizer), custom.\n" +"func _object_configuration_add(object, config: Variant) -> Error:\n" +" if config is MultiplayerSynchronizer:\n" +" print(\"Adding synchronization configuration for %s. Synchronizer: " +"%s\" % [object, config])\n" +" elif config is MultiplayerSpawner:\n" +" print(\"Adding node %s to the spawn list. Spawner: %s\" % [object, " +"config])\n" +" return base_multiplayer.object_configuration_add(object, config)\n" +"\n" +"# Log configuration remove. E.g. root path (nullptr, NodePath), replication " +"(Node, Spawner|Synchronizer), custom.\n" +"func _object_configuration_remove(object, config: Variant) -> Error:\n" +" if config is MultiplayerSynchronizer:\n" +" print(\"Removing synchronization configuration for %s. Synchronizer: " +"%s\" % [object, config])\n" +" elif config is MultiplayerSpawner:\n" +" print(\"Removing node %s from the spawn list. Spawner: %s\" % " +"[object, config])\n" +" return base_multiplayer.object_configuration_remove(object, config)\n" +"\n" +"# These can be optional, but in our case we want to extend SceneMultiplayer, " +"so forward everything.\n" +"func _set_multiplayer_peer(p_peer: MultiplayerPeer):\n" +" base_multiplayer.multiplayer_peer = p_peer\n" +"\n" +"func _get_multiplayer_peer() -> MultiplayerPeer:\n" +" return base_multiplayer.multiplayer_peer\n" +"\n" +"func _get_unique_id() -> int:\n" +" return base_multiplayer.get_unique_id()\n" +"\n" +"func _get_peer_ids() -> PackedInt32Array:\n" +" return base_multiplayer.get_peers()\n" +"[/gdscript]\n" +"[/codeblocks]\n" +"Then in your main scene or in an autoload call [method SceneTree." +"set_multiplayer] to start using your custom [MultiplayerAPI]:\n" +"[codeblocks]\n" +"[gdscript]\n" +"# autoload.gd\n" +"func _enter_tree():\n" +" # Sets our custom multiplayer as the main one in SceneTree.\n" +" get_tree().set_multiplayer(LogMultiplayer.new())\n" +"[/gdscript]\n" +"[/codeblocks]\n" +"Native extensions can alternatively use the [method MultiplayerAPI." +"set_default_interface] method during initialization to configure themselves " +"as the default implementation." +msgstr "" +"该类可用于通过脚本或扩展来扩展或替换默认的 [MultiplayerAPI] 实现。\n" +"下面的例子通过记录每一个正在进行的 RPC 和为复制而配置的每一个对象,扩展默认的" +"实现([SceneMultiplayer])。\n" +"[codeblocks]\n" +"[gdscript]\n" +"extends MultiplayerAPIExtension\n" +"class_name LogMultiplayer\n" +"\n" +"# 我们想扩展默认的 SceneMultiplayer。\n" +"var base_multiplayer = SceneMultiplayer.new()\n" +"\n" +"func _init():\n" +" # 仅传递基本信号(复制到 var 以避免循环引用)\n" +" var cts = connected_to_server\n" +" var cf = connection_failed\n" +" var pc = peer_connected\n" +" var pd = peer_disconnected\n" +" base_multiplayer.connected_to_server.connect(func(): cts.emit())\n" +" base_multiplayer.connection_failed.connect(func(): cf.emit())\n" +" base_multiplayer.peer_connected.connect(func(id): pc.emit(id))\n" +" base_multiplayer.peer_disconnected.connect(func(id): pd.emit(id))\n" +"\n" +"func _poll():\n" +" return base_multiplayer.poll()\n" +"\n" +"# 记录正在进行的 RPC 并将其转发到默认的多人游戏。\n" +"func _rpc(peer: int, object: Object, method: StringName, args: Array) -> " +"Error:\n" +" print(\"获取用于 %d 的 RPC:%s::%s(%s)\" % [peer, object, method, args])\n" +" return base_multiplayer.rpc(peer, object, method, args)\n" +"\n" +"# 记录配置添加。例如,根路径(nullptr、NodePath),复制(Node、Spawner|" +"Synchronizer),自定义。\n" +"func _object_configuration_add(object, config: Variant) -> Error:\n" +" if config is MultiplayerSynchronizer:\n" +" print(\"添加用于 %s 的同步配置。同步器:%s\" % [object, config])\n" +" elif config is MultiplayerSpawner:\n" +" print(\"将节点 %s 添加到出生列表。出生器:%s\" % [object, config])\n" +" return base_multiplayer.object_configuration_add(object, config)\n" +"\n" +"# 记录配置移除。例如,根路径(nullptr、NodePath),复制(Node、Spawner|" +"Synchronizer),自定义。\n" +"func _object_configuration_remove(object, config: Variant) -> Error:\n" +" if config is MultiplayerSynchronizer:\n" +" print(\"移除用于 %s 的同步配置。同步器:%s\" % [object, config])\n" +" elif config is MultiplayerSpawner:\n" +" print(\"将节点 %s 从出生列表移除。出生器:%s\" % [object, config])\n" +" return base_multiplayer.object_configuration_remove(object, config)\n" +"\n" +"# 这些可以是可选的,但在我们的例子中,我们想要扩展 SceneMultiplayer,所以转发" +"所有内容。\n" +"func _set_multiplayer_peer(p_peer: MultiplayerPeer):\n" +" base_multiplayer.multiplayer_peer = p_peer\n" +"\n" +"func _get_multiplayer_peer() -> MultiplayerPeer:\n" +" return base_multiplayer.multiplayer_peer\n" +"\n" +"func _get_unique_id() -> int:\n" +" return base_multiplayer.get_unique_id()\n" +"\n" +"func _get_peer_ids() -> PackedInt32Array:\n" +" return base_multiplayer.get_peers()\n" +"[/gdscript]\n" +"[/codeblocks]\n" +"然后在你的主场景或在自动加载中调用 [method SceneTree.set_multiplayer],以开始" +"使用你的自定义 [MultiplayerAPI]:\n" +"[codeblocks]\n" +"[gdscript]\n" +"# autoload.gd\n" +"func _enter_tree():\n" +" # 将我们的自定义多人游戏设置为 SceneTree 中的主要的多人游戏。\n" +" get_tree().set_multiplayer(LogMultiplayer.new())\n" +"[/gdscript]\n" +"[/codeblocks]\n" +"原生扩展也可以在初始化期间,使用 [method MultiplayerAPI." +"set_default_interface] 方法将自己配置为默认实现。" + msgid "Called when the [member MultiplayerAPI.multiplayer_peer] is retrieved." msgstr "在检索到 [member MultiplayerAPI.multiplayer_peer] 时调用。" @@ -65252,6 +82900,16 @@ msgstr "" msgid "Returns the ID of this [MultiplayerPeer]." msgstr "返回该 [MultiplayerPeer] 的 ID。" +msgid "" +"Returns [code]true[/code] if the server can act as a relay in the current " +"configuration. That is, if the higher level [MultiplayerAPI] should notify " +"connected clients of other peers, and implement a relay protocol to allow " +"communication between them." +msgstr "" +"如果服务器在当前配置中可以充当中继者,则返回 [code]true[/code](也就是说,如果" +"更高级别的 [MultiplayerAPI] 应该通知连接的客户端有其他对等体,并实现一个中继协" +"议以允许它们之间的通信)。" + msgid "Waits up to 1 second to receive a new network event." msgstr "等待最多 1 秒以接收一个新的网络事件。" @@ -65610,7 +83268,19 @@ msgid "" "Path to the spawn root. Spawnable scenes that are added as direct children " "are replicated to other peers." msgstr "" -"到出生的根的路径。作为直接子节点被添加的可出生场景,会被复制到其他对等体。" +"指向出生的根节点的路径。添加为其直接子节点的可出生场景会被复制到其他对等体。" + +msgid "" +"Emitted when a spawnable scene or custom spawn was despawned by the " +"multiplayer authority. Only called on remote peers." +msgstr "" +"当可生成场景或自定义生成被多人游戏授权端消除时发出。只在远程对等体上调用。" + +msgid "" +"Emitted when a spawnable scene or custom spawn was spawned by the multiplayer " +"authority. Only called on remote peers." +msgstr "" +"当可生成场景或自定义生成被多人游戏授权端生成时发出。只在远程对等体上调用。" msgid "" "Synchronizes properties from the multiplayer authority to the remote peers." @@ -65676,6 +83346,16 @@ msgstr "" "根据可见性过滤器更新 [param for_peer] 的可见性。如果 [param for_peer] 为 " "[code]0[/code](默认值),则更新所有对等体的可见性。" +msgid "" +"Time interval between delta synchronizations. Used when the replication is " +"set to [constant SceneReplicationConfig.REPLICATION_MODE_ON_CHANGE]. If set " +"to [code]0.0[/code] (the default), delta synchronizations happen every " +"network process frame." +msgstr "" +"两次增量同步之间的时间间隔。复制设为 [constant SceneReplicationConfig." +"REPLICATION_MODE_ON_CHANGE] 时使用。如果设置为 [code]0.0[/code](默认值)时," +"每个网络处理帧都会发生增量同步。" + msgid "" "Whether synchronization should be visible to all peers by default. See " "[method set_visibility_for] and [method add_visibility_filter] for ways of " @@ -65687,6 +83367,16 @@ msgstr "" msgid "Resource containing which properties to synchronize." msgstr "包含要同步的属性的资源。" +msgid "" +"Time interval between synchronizations. Used when the replication is set to " +"[constant SceneReplicationConfig.REPLICATION_MODE_ALWAYS]. If set to " +"[code]0.0[/code] (the default), synchronizations happen every network process " +"frame." +msgstr "" +"两次同步之间的时间间隔。复制设置为 [constant SceneReplicationConfig." +"REPLICATION_MODE_ALWAYS] 时使用。如果设置为 [code]0.0[/code](默认值)时,每个" +"网络处理帧都会发生同步。" + msgid "" "Node path that replicated properties are relative to.\n" "If [member root_path] was spawned by a [MultiplayerSpawner], the node will be " @@ -66251,6 +83941,13 @@ msgstr "" "返回全局菜单的最小宽度。\n" "[b]注意:[/b]该方法仅在 macOS 上实现。" +msgid "" +"Returns global menu close callback.\n" +"[b]Note:[/b] This method is implemented on macOS and Windows." +msgstr "" +"返回全局菜单的关闭回调。\n" +"[b]注意:[/b]该方法在 macOS 和 Windows 上实现。" + msgid "" "Returns global menu open callback.\n" "b]Note:[/b] This method is implemented only on macOS." @@ -67836,6 +85533,14 @@ msgstr "清除内部数据。" msgid "Clears all projected obstructions." msgstr "清除所有投射的障碍物。" +msgid "" +"Returns an axis-aligned bounding box that covers all the stored geometry " +"data. The bounds are calculated when calling this function with the result " +"cached until further geometry changes are made." +msgstr "" +"返回覆盖所有存储几何数据的轴对齐边界框。边界在调用该函数时计算,缓存至几何体发" +"生后续变化。" + msgid "Returns all the obstructed area outlines arrays." msgstr "返回所有遮挡区域轮廓数组。" @@ -68250,6 +85955,11 @@ msgstr "" "将路径上的所有位置在经过的导航网格多边形边缘上居中。这样就把移动限制在了单元格" "的中心,能够为基于图块或栅格的布局创建更好的路径。" +msgid "" +"Applies no postprocessing and returns the raw path corridor as found by the " +"pathfinding algorithm." +msgstr "不进行后期处理,返回寻路算法找到的原始路径走廊。" + msgid "Don't include any additional metadata about the returned path." msgstr "不要包含任何关于返回路径的额外元数据。" @@ -68344,6 +86054,103 @@ msgid "" "A 2D navigation mesh that describes a traversable surface for pathfinding." msgstr "2D 导航网格,描述用于寻路的可穿越表面。" +msgid "" +"A navigation mesh can be created either by baking it with the help of the " +"[NavigationServer2D], or by adding vertices and convex polygon indices arrays " +"manually.\n" +"To bake a navigation mesh at least one outline needs to be added that defines " +"the outer bounds of the baked area.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var new_navigation_mesh = NavigationPolygon.new()\n" +"var bounding_outline = PackedVector2Array([Vector2(0, 0), Vector2(0, 50), " +"Vector2(50, 50), Vector2(50, 0)])\n" +"new_navigation_mesh.add_outline(bounding_outline)\n" +"NavigationServer2D.bake_from_source_geometry_data(new_navigation_mesh, " +"NavigationMeshSourceGeometryData2D.new());\n" +"$NavigationRegion2D.navigation_polygon = new_navigation_mesh\n" +"[/gdscript]\n" +"[csharp]\n" +"var newNavigationMesh = new NavigationPolygon();\n" +"Vector2[] boundingOutline = [new Vector2(0, 0), new Vector2(0, 50), new " +"Vector2(50, 50), new Vector2(50, 0)];\n" +"newNavigationMesh.AddOutline(boundingOutline);\n" +"NavigationServer2D.BakeFromSourceGeometryData(newNavigationMesh, new " +"NavigationMeshSourceGeometryData2D());\n" +"GetNode<NavigationRegion2D>(\"NavigationRegion2D\").NavigationPolygon = " +"newNavigationMesh;\n" +"[/csharp]\n" +"[/codeblocks]\n" +"Adding vertices and polygon indices manually.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var new_navigation_mesh = NavigationPolygon.new()\n" +"var new_vertices = PackedVector2Array([Vector2(0, 0), Vector2(0, 50), " +"Vector2(50, 50), Vector2(50, 0)])\n" +"new_navigation_mesh.vertices = new_vertices\n" +"var new_polygon_indices = PackedInt32Array([0, 1, 2, 3])\n" +"new_navigation_mesh.add_polygon(new_polygon_indices)\n" +"$NavigationRegion2D.navigation_polygon = new_navigation_mesh\n" +"[/gdscript]\n" +"[csharp]\n" +"var newNavigationMesh = new NavigationPolygon();\n" +"Vector2[] newVertices = [new Vector2(0, 0), new Vector2(0, 50), new " +"Vector2(50, 50), new Vector2(50, 0)];\n" +"newNavigationMesh.Vertices = newVertices;\n" +"int[] newPolygonIndices = [0, 1, 2, 3];\n" +"newNavigationMesh.AddPolygon(newPolygonIndices);\n" +"GetNode<NavigationRegion2D>(\"NavigationRegion2D\").NavigationPolygon = " +"newNavigationMesh;\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"导航网格可以通过在 [NavigationServer2D] 的帮助下烘焙它来创建,也可以通过手动添" +"加顶点和凸多边形索引数组来创建。\n" +"要烘焙导航网格,至少需要添加一个轮廓来定义烘焙区域的外部边界。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var new_navigation_mesh = NavigationPolygon.new()\n" +"var bounding_outline = PackedVector2Array([Vector2(0, 0), Vector2(0, 50), " +"Vector2(50, 50), Vector2(50, 0)])\n" +"new_navigation_mesh.add_outline(bounding_outline)\n" +"NavigationServer2D.bake_from_source_geometry_data(new_navigation_mesh, " +"NavigationMeshSourceGeometryData2D.new());\n" +"$NavigationRegion2D.navigation_polygon = new_navigation_mesh\n" +"[/gdscript]\n" +"[csharp]\n" +"var newNavigationMesh = new NavigationPolygon();\n" +"Vector2[] boundingOutline = [new Vector2(0, 0), new Vector2(0, 50), new " +"Vector2(50, 50), new Vector2(50, 0)];\n" +"newNavigationMesh.AddOutline(boundingOutline);\n" +"NavigationServer2D.BakeFromSourceGeometryData(newNavigationMesh, new " +"NavigationMeshSourceGeometryData2D());\n" +"GetNode<NavigationRegion2D>(\"NavigationRegion2D\").NavigationPolygon = " +"newNavigationMesh;\n" +"[/csharp]\n" +"[/codeblocks]\n" +"手动添加顶点和多边形索引。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var new_navigation_mesh = NavigationPolygon.new()\n" +"var new_vertices = PackedVector2Array([Vector2(0, 0), Vector2(0, 50), " +"Vector2(50, 50), Vector2(50, 0)])\n" +"new_navigation_mesh.vertices = new_vertices\n" +"var new_polygon_indices = PackedInt32Array([0, 1, 2, 3])\n" +"new_navigation_mesh.add_polygon(new_polygon_indices)\n" +"$NavigationRegion2D.navigation_polygon = new_navigation_mesh\n" +"[/gdscript]\n" +"[csharp]\n" +"var newNavigationMesh = new NavigationPolygon();\n" +"Vector2[] newVertices = [new Vector2(0, 0), new Vector2(0, 50), new " +"Vector2(50, 50), new Vector2(50, 0)];\n" +"newNavigationMesh.Vertices = newVertices;\n" +"int[] newPolygonIndices = [0, 1, 2, 3];\n" +"newNavigationMesh.AddPolygon(newPolygonIndices);\n" +"GetNode<NavigationRegion2D>(\"NavigationRegion2D\").NavigationPolygon = " +"newNavigationMesh;\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "Navigation Polygon 2D Demo" msgstr "2D 导航多边形演示" @@ -68487,6 +86294,13 @@ msgstr "" "SOURCE_GEOMETRY_GROUPS_WITH_CHILDREN] 或 [constant " "SOURCE_GEOMETRY_GROUPS_EXPLICIT] 时才使用。" +msgid "Convex partitioning that yields navigation mesh with convex polygons." +msgstr "凸分区,得到的导航网格使用凸多边形。" + +msgid "" +"Triangulation partitioning that yields navigation mesh with triangle polygons." +msgstr "三角分区,得到的导航网格使用三角多边形。" + msgid "" "Parses mesh instances as obstruction geometry. This includes [Polygon2D], " "[MeshInstance2D], [MultiMeshInstance2D], and [TileMap] nodes.\n" @@ -68559,6 +86373,11 @@ msgstr "" "烘焙该 [NavigationPolygon]。如果 [param on_thread] 被设置为 [code]true[/code]" "(默认),则烘焙将在单独的线程上完成。" +msgid "" +"Returns the axis-aligned rectangle for the region's transformed navigation " +"mesh." +msgstr "返回区块中变换后的导航网格对应的轴对齐矩形。" + msgid "Returns the current navigation map [RID] used by this region." msgstr "返回该区块使用的当前导航地图 [RID]。" @@ -68687,6 +86506,11 @@ msgstr "" "步操作。另外,请注意在无法使用线程的操作系统(例如禁用线程的 Web)上,会自动禁" "用独立线程烘焙。" +msgid "" +"Returns the axis-aligned bounding box for the region's transformed navigation " +"mesh." +msgstr "返回区块中变换后的导航网格对应的轴对齐边界框。" + msgid "Returns the [RID] of this region on the [NavigationServer3D]." msgstr "返回 [NavigationServer3D] 上该区块的 [RID]。" @@ -68858,6 +86682,9 @@ msgid "" "callback." msgstr "如果指定的 [param agent] 有避障回调,则返回 [code]true[/code]。" +msgid "Returns [code]true[/code] if the map got changed the previous frame." +msgstr "如果地图在上一帧发生了变化,则返回 [code]true[/code]。" + msgid "" "Sets the callback [Callable] that gets called after each avoidance processing " "step for the [param agent]. The calculated [code]safe_velocity[/code] will be " @@ -68922,6 +86749,14 @@ msgstr "" "设置在导航中,该代理所考虑的其他代理的最大距离。这个数越大,模拟的运行时间越" "长。如果这个数太小,则模拟会不安全。" +msgid "" +"If [param paused] is [code]true[/code] the specified [param agent] will not " +"be processed, e.g. calculate avoidance velocities or receive avoidance " +"callbacks." +msgstr "" +"如果 [param paused] 为 [code]true[/code],则不会对指定的 [param agent] 进行处" +"理,例如不会计算避障速度以及收到避障回调。" + msgid "Sets the position of the agent in world space." msgstr "设置该代理在世界空间中的位置。" @@ -69130,6 +86965,20 @@ msgid "" "Returns the map cell size used to rasterize the navigation mesh vertices." msgstr "返回地图的单元格大小,用于将导航网格的顶点进行栅格化。" +msgid "" +"Returns the navigation mesh surface point closest to the provided [param " +"to_point] on the navigation [param map]." +msgstr "" +"返回导航地图 [param map] 中,导航网格表面上与给定的 [param to_point] 距离最近" +"的点。" + +msgid "" +"Returns the owner region RID for the navigation mesh surface point closest to " +"the provided [param to_point] on the navigation [param map]." +msgstr "" +"返回导航地图 [param map] 中,导航网格表面上与给定的 [param to_point] 距离最近" +"的点对应的所有者区块 RID。" + msgid "" "Returns the edge connection margin of the map. The edge connection margin is " "a distance used to connect two regions." @@ -69190,6 +87039,12 @@ msgid "" "requested navigation [param map]." msgstr "返回当前分配给所请求的导航 [param map] 的所有导航区块的 [RID]。" +msgid "" +"Returns [code]true[/code] if the [param map] synchronization uses an async " +"process that runs on a background thread." +msgstr "" +"如果地图 [param map] 的同步使用后台线程异步处理,则返回 [code]true[/code]。" + msgid "" "Returns whether the navigation [param map] allows navigation regions to use " "edge connections to connect with other navigation regions within proximity of " @@ -69198,6 +87053,9 @@ msgstr "" "返回是否允许导航地图 [param map] 使用边缘连接与位于导航地图边缘连接边距范围内" "的其他导航区块相连接。" +msgid "Returns [code]true[/code] if the map is active." +msgstr "如果地图处于活动状态,则返回 [code]true[/code]。" + msgid "Sets the map active." msgstr "设置地图的激活态。" @@ -69217,6 +87075,13 @@ msgid "" "polygons." msgstr "设置该地图用于连接链接和导航多边形的链接连接半径。" +msgid "" +"If [param enabled] is [code]true[/code] the [param map] synchronization uses " +"an async process that runs on a background thread." +msgstr "" +"如果 [param enabled] 为 [code]true[/code],则地图 [param map] 的同步使用后台线" +"程异步处理。" + msgid "" "Set the navigation [param map] edge connection use. If [param enabled] is " "[code]true[/code], the navigation map allows navigation regions to use edge " @@ -69273,6 +87138,13 @@ msgstr "设置障碍物的避障层 [code]avoidance_layers[/code] 位掩码。" msgid "Sets the navigation map [RID] for the obstacle." msgstr "为障碍物设置导航地图 [RID]。" +msgid "" +"If [param paused] is [code]true[/code] the specified [param obstacle] will " +"not be processed, e.g. affect avoidance velocities." +msgstr "" +"如果 [param paused] 为 [code]true[/code],则不会处理指定的障碍物 [param " +"obstacle],例如不会影响避障速度。" + msgid "Sets the position of the obstacle in world space." msgstr "设置障碍物在世界空间中的位置。" @@ -69319,9 +87191,33 @@ msgstr "" "些数据需要从 GPU 获取,卡住正在处理的 [RenderingServer]。出于性能考量,请优先" "使用碰撞形状或在完全在代码中创建数据数组。" +msgid "" +"Queries a path in a given navigation map. Start and target position and other " +"parameters are defined through [NavigationPathQueryParameters2D]. Updates the " +"provided [NavigationPathQueryResult2D] result object with the path among " +"other results requested by the query. After the process is finished the " +"optional [param callback] will be called." +msgstr "" +"在给定的导航地图中查询路径。起点、目标点以及其他参数通过 " +"[NavigationPathQueryParameters2D] 定义。会更新所提供的 " +"[NavigationPathQueryResult2D] 结果对象中的路径以及其他查询中请求的结果。处理完" +"成后会调用可选的回调 [param callback]。" + msgid "Creates a new region." msgstr "创建一个新的地区。" +msgid "" +"Returns the axis-aligned rectangle for the [param region]'s transformed " +"navigation mesh." +msgstr "返回区块 [param region] 变换后的导航网格所对应的轴对齐矩形。" + +msgid "" +"Returns the navigation mesh surface point closest to the provided [param " +"to_point] on the navigation [param region]." +msgstr "" +"返回导航区块 [param region] 上与给定点 [param to_point] 最接近的导航网格表面" +"点。" + msgid "" "Returns the ending point of a connection door. [param connection] is an index " "between 0 and the return value of [method region_get_connections_count]." @@ -69669,6 +87565,24 @@ msgid "" "the XZ plane." msgstr "返回在 XZ 平面上栅格化导航网格顶点所使用的地图单元格大小。" +msgid "" +"Returns the navigation mesh surface normal closest to the provided [param " +"to_point] on the navigation [param map]." +msgstr "" +"返回导航地图 [param map] 上与给定点 [param to_point] 最接近的导航网格表面法" +"线。" + +msgid "" +"Returns the navigation mesh surface point closest to the provided [param " +"start] and [param end] segment on the navigation [param map].\n" +"If [param use_collision] is [code]true[/code], a closest point test is only " +"done when the segment intersects with the navigation mesh surface." +msgstr "" +"返回导航地图 [param map] 上与给定起点 [param start] 和终点 [param end] 构成的" +"线段最接近的导航网格表面点。\n" +"如果 [param use_collision] 为 [code]true[/code],则只有在线段与该导航网格表面" +"相交时才算最接近的点。" + msgid "" "Returns the edge connection margin of the map. This distance is the minimum " "vertex distance needed to connect two edges from different regions." @@ -69681,6 +87595,14 @@ msgstr "返回地图的内部合并栅格化器的单元格缩放。" msgid "Returns the map's up direction." msgstr "返回地图的上方向。" +msgid "" +"Returns [code]true[/code] if the navigation [param map] allows navigation " +"regions to use edge connections to connect with other navigation regions " +"within proximity of the navigation map edge connection margin." +msgstr "" +"如果导航地图 [param map] 允许导航区块使用边缘连接与位于导航地图边缘连接边距范" +"围内的其他导航区块相连接,则返回 [code]true[/code]。" + msgid "" "Sets the map cell height used to rasterize the navigation mesh vertices on " "the Y axis. Must match with the cell height of the used navigation meshes." @@ -69735,12 +87657,55 @@ msgid "" "avoidance is enabled." msgstr "设置 [param obstacle] 在启用避障时使用 2D 避障还是 3D 避障。" +msgid "" +"Queries a path in a given navigation map. Start and target position and other " +"parameters are defined through [NavigationPathQueryParameters3D]. Updates the " +"provided [NavigationPathQueryResult3D] result object with the path among " +"other results requested by the query. After the process is finished the " +"optional [param callback] will be called." +msgstr "" +"在给定的导航地图中查询路径。起点、目标点以及其他参数通过 " +"[NavigationPathQueryParameters3D] 定义。会更新所提供的 " +"[NavigationPathQueryResult3D] 结果对象中的路径以及其他查询中请求的结果。处理完" +"成后会调用可选的回调 [param callback]。" + msgid "" "Bakes the [param navigation_mesh] with bake source geometry collected " "starting from the [param root_node]." msgstr "" "烘焙 [param navigation_mesh],烘焙的来源几何体从 [param root_node] 开始收集。" +msgid "" +"Returns the axis-aligned bounding box for the [param region]'s transformed " +"navigation mesh." +msgstr "返回区块 [param region] 变换后的导航网格所对应的轴对齐边界框。" + +msgid "" +"Returns the navigation mesh surface normal closest to the provided [param " +"to_point] on the navigation [param region]." +msgstr "" +"返回导航区块 [param region] 上与给定点 [param to_point] 最接近的导航网格表面法" +"线。" + +msgid "" +"Returns the navigation mesh surface point closest to the provided [param " +"start] and [param end] segment on the navigation [param region].\n" +"If [param use_collision] is [code]true[/code], a closest point test is only " +"done when the segment intersects with the navigation mesh surface." +msgstr "" +"返回导航区块 [param region] 上与给定起点 [param start] 和终点 [param end] 构成" +"的线段最接近的导航网格表面点。\n" +"如果 [param use_collision] 为 [code]true[/code],则只有在线段与该导航网格表面" +"相交时才算最接近的点。" + +msgid "" +"Returns [code]true[/code] if the navigation [param region] is set to use edge " +"connections to connect with other navigation regions within proximity of the " +"navigation map edge connection margin." +msgstr "" +"如果导航区块 [param region] 被设置为使用边缘连接与位于导航地图边缘连接边距范围" +"内的其他导航区块相连接,则返回 [code]true[/code]。" + msgid "" "If [param enabled] is [code]true[/code], the specified [param region] will " "contribute to its current navigation map." @@ -69820,6 +87785,9 @@ msgid "" msgstr "" "常量,用于获取无法合并但仍可通过边接近或链接连接的导航网格多边形的边的数量。" +msgid "Constant to get the number of active navigation obstacles." +msgstr "常量,用于获取活动导航障碍物的数量。" + msgid "" "A control that displays a texture by keeping its corners intact, but tiling " "its edges and center." @@ -70140,6 +88108,89 @@ msgstr "" "更适合,因为它们允许 GUI 首先拦截事件。\n" "[b]注意:[/b]仅当该节点存在于场景树中时(即不是孤立节点),此方法才会被调用。" +msgid "" +"Called during the physics processing step of the main loop. Physics " +"processing means that the frame rate is synced to the physics, i.e. the " +"[param delta] parameter will [i]generally[/i] be constant (see exceptions " +"below). [param delta] is in seconds.\n" +"It is only called if physics processing is enabled, which is done " +"automatically if this method is overridden, and can be toggled with [method " +"set_physics_process].\n" +"Processing happens in order of [member process_physics_priority], lower " +"priority values are called first. Nodes with the same priority are processed " +"in tree order, or top to bottom as seen in the editor (also known as pre-" +"order traversal).\n" +"Corresponds to the [constant NOTIFICATION_PHYSICS_PROCESS] notification in " +"[method Object._notification].\n" +"[b]Note:[/b] This method is only called if the node is present in the scene " +"tree (i.e. if it's not an orphan).\n" +"[b]Note:[/b] [param delta] will be larger than expected if running at a " +"framerate lower than [member Engine.physics_ticks_per_second] / [member " +"Engine.max_physics_steps_per_frame] FPS. This is done to avoid \"spiral of " +"death\" scenarios where performance would plummet due to an ever-increasing " +"number of physics steps per frame. This behavior affects both [method " +"_process] and [method _physics_process]. As a result, avoid using [param " +"delta] for time measurements in real-world seconds. Use the [Time] " +"singleton's methods for this purpose instead, such as [method Time." +"get_ticks_usec]." +msgstr "" +"在主循环的物理处理步骤中调用。物理处理的帧率与物理同步,即 [param delta] 参数" +"[i]通常[/i]不变(例外见下文)。[param delta] 的单位为秒。\n" +"启用物理处理后才会调用该方法,覆盖该方法后会自动启用,可以使用 [method " +"set_physics_process] 开关。\n" +"处理按照 [member process_physics_priority] 的顺序进行,优先级取值越低越先调" +"用。优先级相同的节点按照树顺序处理,即编辑器中从上到下的顺序(也叫前序遍" +"历)。\n" +"对应 [method Object._notification] 中的 [constant " +"NOTIFICATION_PHYSICS_PROCESS] 通知。\n" +"[b]注意:[/b]节点位于场景树中才会调用该方法(即不能是孤立节点)。\n" +"[b]注意:[/b]运行帧率小于 [member Engine.physics_ticks_per_second] / [member " +"Engine.max_physics_steps_per_frame] FPS 时 [param delta] 会比正常情况大。这样" +"做是为了避免产生“死亡螺旋”。在这种情况下,由于每帧物理步骤数量的不断增加,性能" +"会急剧下降。[method _process] 和 [method _physics_process] 都会受此影响。因" +"此,请避免根据 [param delta] 来测量真实世界的秒数。请使用 [Time] 单例的方法来" +"实现此目的,例如 [method Time.get_ticks_usec]。" + +msgid "" +"Called during the processing step of the main loop. Processing happens at " +"every frame and as fast as possible, so the [param delta] time since the " +"previous frame is not constant. [param delta] is in seconds.\n" +"It is only called if processing is enabled, which is done automatically if " +"this method is overridden, and can be toggled with [method set_process].\n" +"Processing happens in order of [member process_priority], lower priority " +"values are called first. Nodes with the same priority are processed in tree " +"order, or top to bottom as seen in the editor (also known as pre-order " +"traversal).\n" +"Corresponds to the [constant NOTIFICATION_PROCESS] notification in [method " +"Object._notification].\n" +"[b]Note:[/b] This method is only called if the node is present in the scene " +"tree (i.e. if it's not an orphan).\n" +"[b]Note:[/b] [param delta] will be larger than expected if running at a " +"framerate lower than [member Engine.physics_ticks_per_second] / [member " +"Engine.max_physics_steps_per_frame] FPS. This is done to avoid \"spiral of " +"death\" scenarios where performance would plummet due to an ever-increasing " +"number of physics steps per frame. This behavior affects both [method " +"_process] and [method _physics_process]. As a result, avoid using [param " +"delta] for time measurements in real-world seconds. Use the [Time] " +"singleton's methods for this purpose instead, such as [method Time." +"get_ticks_usec]." +msgstr "" +"在主循环的处理步骤中调用。每一帧都会尽快进行处理,因此表示自上一帧以来时间增量" +"的 [param delta] 会发生变化。[param delta] 的单位为秒。\n" +"启用处理后才会调用该方法,覆盖该方法后会自动启用,可以使用 [method " +"set_process] 开关。\n" +"处理按照 [member process_priority] 的顺序进行,优先级取值越低越先调用。优先级" +"相同的节点按照树顺序处理,即编辑器中从上到下的顺序(也叫前序遍历)。\n" +"对应 [method Object._notification] 中的 [constant NOTIFICATION_PROCESS] 通" +"知。\n" +"[b]注意:[/b]节点位于场景树中才会调用该方法(即不能是孤立节点)。\n" +"[b]注意:[/b]运行帧率小于 [member Engine.physics_ticks_per_second] / [member " +"Engine.max_physics_steps_per_frame] FPS 时 [param delta] 会比正常情况大。这样" +"做是为了避免产生“死亡螺旋”。在这种情况下,由于每帧物理步骤数量的不断增加,性能" +"会急剧下降。[method _process] 和 [method _physics_process] 都会受此影响。因" +"此,请避免根据 [param delta] 来测量真实世界的秒数。请使用 [Time] 单例的方法来" +"实现此目的,例如 [method Time.get_ticks_usec]。" + msgid "" "Called when the node is \"ready\", i.e. when both the node and its children " "have entered the scene tree. If the node has children, their [method _ready] " @@ -70547,6 +88598,19 @@ msgstr "" "[b]注意:[/b]当节点不在 [SceneTree] 内部时,该方法仍然可以使用。在使用自定义 " "[MainLoop] 的极少数情况下,它可能会失败。" +msgid "" +"Duplicates the node, returning a new node with all of its properties, " +"signals, groups, and children copied from the original. The behavior can be " +"tweaked through the [param flags] (see [enum DuplicateFlags]).\n" +"[b]Note:[/b] For nodes with a [Script] attached, if [method Object._init] has " +"been defined with required parameters, the duplicated node will not have a " +"[Script]." +msgstr "" +"复制该节点,返回一个新节点,其中包含从原始节点复制的所有属性、信号、组、子节" +"点。可以通过 [param flags] 调整该行为(见 [enum DuplicateFlags])。\n" +"[b]注意:[/b]对于附带有 [Script] 的节点,如果 [method Object._init] 已使用所需" +"参数定义,则复制的节点将不会有 [Script]。" + msgid "" "Finds the first descendant of this node whose [member name] matches [param " "pattern], returning [code]null[/code] if no match is found. The matching is " @@ -71690,6 +89754,16 @@ msgstr "" msgid "Similar to [method call_thread_safe], but for setting properties." msgstr "类似于 [method call_thread_safe],但用于设置属性。" +msgid "" +"Makes this node inherit the translation domain from its parent node. If this " +"node has no parent, the main translation domain will be used.\n" +"This is the default behavior for all nodes. Calling [method Object." +"set_translation_domain] disables this behavior." +msgstr "" +"使该节点继承父节点的翻译域。如果该节点无父节点,则会使用主翻译域。\n" +"这是所有节点的默认行为。调用 [method Object.set_translation_domain] 会禁用该行" +"为。" + msgid "" "Refreshes the warnings displayed for this node in the Scene dock. Use [method " "_get_configuration_warnings] to customize the warning messages to display." @@ -71746,6 +89820,20 @@ msgstr "" "[code]@[/code] 字符是为自动生成的名称保留的。另请参阅 [method String." "validate_node_name]。" +msgid "" +"The owner of this node. The owner must be an ancestor of this node. When " +"packing the owner node in a [PackedScene], all the nodes it owns are also " +"saved with it. See also [member unique_name_in_owner].\n" +"[b]Note:[/b] In the editor, nodes not owned by the scene root are usually not " +"displayed in the Scene dock, and will [b]not[/b] be saved. To prevent this, " +"remember to set the owner after calling [method add_child]." +msgstr "" +"该节点的所有者。所有者必须是该节点的祖先节点。当将所有者节点打包到 " +"[PackedScene] 中时,它拥有的所有节点也会随之保存。另见 [member " +"unique_name_in_owner]。\n" +"[b]注意:[/b]在编辑器中,不属于场景根的节点通常不会显示在场景面板中,并且[b]不" +"[/b]会被保存。为了防止这种情况,请记住在调用 [method add_child] 后设置所有者。" + msgid "" "Allows enabling or disabling physics interpolation per node, offering a finer " "grain of control than turning physics interpolation on and off globally. See " @@ -72378,6 +90466,14 @@ msgstr "" "复制该节点的脚本(与 [constant DUPLICATE_USE_INSTANTIATION] 组合时,也会覆盖复" "制的子节点的脚本)。" +msgid "" +"Duplicate using [method PackedScene.instantiate]. If the node comes from a " +"scene saved on disk, reuses [method PackedScene.instantiate] as the base for " +"the duplicated node and its children." +msgstr "" +"使用 [method PackedScene.instantiate] 进行复制。如果该节点来自磁盘上保存的场" +"景,则会重用 [method PackedScene.instantiate] 作为该节点及其子节点副本的基础。" + msgid "The node will not be internal." msgstr "该节点不是内部节点。" @@ -72415,6 +90511,26 @@ msgstr "" "生成 POT 解析字符串时会跳过对该节点,如果子节点为 [constant " "AUTO_TRANSLATE_MODE_INHERIT] 则还会跳过子节点。" +msgid "" +"A 2D game object, inherited by all 2D-related nodes. Has a position, " +"rotation, scale, and skew." +msgstr "2D 游戏对象,被所有 2D 相关的节点继承。具有位置、旋转、缩放和倾斜。" + +msgid "" +"A 2D game object, with a transform (position, rotation, and scale). All 2D " +"nodes, including physics objects and sprites, inherit from Node2D. Use Node2D " +"as a parent node to move, scale and rotate children in a 2D project. Also " +"gives control of the node's render order.\n" +"[b]Note:[/b] Since both [Node2D] and [Control] inherit from [CanvasItem], " +"they share several concepts from the class such as the [member CanvasItem." +"z_index] and [member CanvasItem.visible] properties." +msgstr "" +"2D 游戏对象,具有变换(位置、旋转、缩放)。包括物理对象和精灵在内的所有 2D 节" +"点都继承自 Node2D。可以使用 Node2D 作为父节点来移动、缩放和旋转 2D 项目中的子" +"节点。还可以控制该节点的渲染顺序。\n" +"[b]注意:[/b][Node2D] 和 [Control] 都继承自 [CanvasItem],它们都具有该类的 " +"[member CanvasItem.z_index]、[member CanvasItem.visible] 等属性。" + msgid "All 2D Demos" msgstr "所有 2D 演示" @@ -72490,6 +90606,84 @@ msgstr "" msgid "Translates the node by the given [param offset] in local coordinates." msgstr "在局部坐标系中,将该节点按给定的偏移量 [param offset] 进行平移。" +msgid "Global position. See also [member position]." +msgstr "全局位置。另见 [member position]。" + +msgid "Global rotation in radians. See also [member rotation]." +msgstr "全局旋转,单位为弧度。另见 [member rotation]。" + +msgid "" +"Helper property to access [member global_rotation] in degrees instead of " +"radians. See also [member rotation_degrees]." +msgstr "" +"辅助属性,用于按度数访问 [member global_rotation] 而不是弧度数。另见 [member " +"rotation_degrees]。" + +msgid "Global scale. See also [member scale]." +msgstr "全局缩放。另见 [member scale]。" + +msgid "Global skew in radians. See also [member skew]." +msgstr "全局偏斜,单位为弧度。另见 [member skew]。" + +msgid "Global [Transform2D]. See also [member transform]." +msgstr "全局 [Transform2D]。另见 [member transform]。" + +msgid "" +"Position, relative to the node's parent. See also [member global_position]." +msgstr "位置,相对于父节点。另见 [member global_position]。" + +msgid "" +"Rotation in radians, relative to the node's parent. See also [member " +"global_rotation].\n" +"[b]Note:[/b] This property is edited in the inspector in degrees. If you want " +"to use degrees in a script, use [member rotation_degrees]." +msgstr "" +"旋转,单位为弧度,相对于该节点的父节点。另见 [member global_rotation]。\n" +"[b]注意:[/b]这个属性在检查器中是以度数编辑的。如果你想在脚本中使用度数,请使" +"用 [member rotation_degrees]。" + +msgid "" +"Helper property to access [member rotation] in degrees instead of radians. " +"See also [member global_rotation_degrees]." +msgstr "" +"辅助属性,用于按度数访问 [member rotation] 而不是弧度数。另见 [member " +"global_rotation_degrees]。" + +msgid "" +"The node's scale, relative to the node's parent. Unscaled value: [code](1, 1)" +"[/code]. See also [member global_scale].\n" +"[b]Note:[/b] Negative X scales in 2D are not decomposable from the " +"transformation matrix. Due to the way scale is represented with " +"transformation matrices in Godot, negative scales on the X axis will be " +"changed to negative scales on the Y axis and a rotation of 180 degrees when " +"decomposed." +msgstr "" +"该节点的缩放,相对于父节点。未缩放值:[code](1, 1)[/code]。另见 [member " +"global_scale]。\n" +"[b]注意:[/b]2D 中,变换矩阵是无法分解出负数的 X 缩放的。由于 Godot 中使用变换" +"矩阵来表示缩放,X 轴上的负数缩放在分解后会变为 Y 轴的负数缩放和一次 180 度的旋" +"转。" + +msgid "" +"If set to a non-zero value, slants the node in one direction or another. This " +"can be used for pseudo-3D effects. See also [member global_skew].\n" +"[b]Note:[/b] Skew is performed on the X axis only, and [i]between[/i] " +"rotation and scaling.\n" +"[b]Note:[/b] This property is edited in the inspector in degrees. If you want " +"to use degrees in a script, use [code]skew = deg_to_rad(value_in_degrees)[/" +"code]." +msgstr "" +"如果设为非零值,则节点会向某一方向倾斜。可以用来实现伪 3D 效果。另见 [member " +"global_skew]。\n" +"[b]注意:[/b]只有 X 轴会执行倾斜,发生在旋转和缩放[i]中间[/i]。\n" +"[b]注意:[/b]该属性在检查器中以度为单位进行编辑。如果你想在脚本中使用度数,请" +"使用 [code]skew = deg_to_rad(value_in_degrees)[/code]。" + +msgid "" +"The node's [Transform2D], relative to the node's parent. See also [member " +"global_transform]." +msgstr "该节点的 [Transform2D],相对于父节点。另见 [member global_transform]。" + msgid "Most basic 3D game object, parent of all 3D-related nodes." msgstr "最基本的 3D 游戏对象,所有 3D 相关节点的父类。" @@ -72551,6 +90745,31 @@ msgstr "" msgid "Returns all the gizmos attached to this [Node3D]." msgstr "返回附加到该 [Node3D] 的所有小工具。" +msgid "" +"When using physics interpolation, there will be circumstances in which you " +"want to know the interpolated (displayed) transform of a node rather than the " +"standard transform (which may only be accurate to the most recent physics " +"tick).\n" +"This is particularly important for frame-based operations that take place in " +"[method Node._process], rather than [method Node._physics_process]. Examples " +"include [Camera3D]s focusing on a node, or finding where to fire lasers from " +"on a frame rather than physics tick.\n" +"[b]Note:[/b] This function creates an interpolation pump on the [Node3D] the " +"first time it is called, which can respond to physics interpolation resets. " +"If you get problems with \"streaking\" when initially following a [Node3D], " +"be sure to call [method get_global_transform_interpolated] at least once " +"[i]before[/i] resetting the [Node3D] physics interpolation." +msgstr "" +"使用物理插值时,你可能会想要了解节点插值后(显示)的变换而不是标准变换(标准变" +"换可能仅在最近的物理周期中准确)。\n" +"如果是在 [method Node._process] 中进行的基于帧的操作,而不是在 [method Node." +"_physics_process] 中进行,这一点就尤为重要。例如让 [Camera3D] 聚焦某个节点,或" +"在帧中而不是在物理周期中找到激光发射的位置。\n" +"[b]注意:[/b]第一次对 [Node2D] 调用该函数时会产生插值跳跃,重置物理插值后也会" +"产生这样的现象。如果在最初跟随 [Node3D] 时遇到“拖影”问题,请确保在重置 " +"[Node3D] 的物理插值之前至少调用一次 [method " +"get_global_transform_interpolated]。" + msgid "" "Returns the parent [Node3D], or [code]null[/code] if no parent exists, the " "parent is not of type [Node3D], or [member top_level] is [code]true[/code].\n" @@ -72602,6 +90821,56 @@ msgid "" "changes. [Node3D] will not propagate this by default." msgstr "返回该节点是否通知其全局和局部变换的更改。[Node3D] 默认不会传播此属性。" +msgid "" +"Returns [code]true[/code] if the node is present in the [SceneTree], its " +"[member visible] property is [code]true[/code] and all its ancestors are also " +"visible. If any ancestor is hidden, this node will not be visible in the " +"scene tree.\n" +"Visibility is checked only in parent nodes that inherit from [Node3D]. If the " +"parent is of any other type (such as [Node], [AnimationPlayer], or [Node2D]), " +"it is assumed to be visible.\n" +"[b]Note:[/b] This method does not take [member VisualInstance3D.layers] into " +"account, so even if this method returns [code]true[/code], the node might end " +"up not being rendered." +msgstr "" +"如果节点存在于 [SceneTree] 中,并且 [member visible] 属性为 [code]true[/" +"code]、所有祖级节点也都可见,则返回 [code]true[/code]。如果存在隐藏的祖级节" +"点,则该节点在场景树中不可见。\n" +"父节点派生自 [Node3D] 时才会进行可见性检查。如果父节点为其他类型(例如 " +"[Node]、[AnimationPlayer]、[Node2D]),则会当作可见。\n" +"[b]注意:[/b]该方法不会考虑 [member VisualInstance3D.layers],因此即便返回 " +"[code]true[/code],最后也可能不渲染该节点。" + +msgid "" +"Rotates the node so that the local forward axis (-Z, [constant Vector3." +"FORWARD]) points toward the [param target] position.\n" +"The local up axis (+Y) points as close to the [param up] vector as possible " +"while staying perpendicular to the local forward axis. The resulting " +"transform is orthogonal, and the scale is preserved. Non-uniform scaling may " +"not work correctly.\n" +"The [param target] position cannot be the same as the node's position, the " +"[param up] vector cannot be zero.\n" +"The [param target] and the [param up] cannot be [constant Vector3.ZERO], and " +"shouldn't be colinear to avoid unintended rotation around local Z axis.\n" +"Operations take place in global space, which means that the node must be in " +"the scene tree.\n" +"If [param use_model_front] is [code]true[/code], the +Z axis (asset front) is " +"treated as forward (implies +X is left) and points toward the [param target] " +"position. By default, the -Z axis (camera forward) is treated as forward " +"(implies +X is right)." +msgstr "" +"旋转该节点,让局部向前的轴(-Z,[constant Vector3.FORWARD])指向 [param " +"target] 的位置。\n" +"局部向上的轴(+Y)在保持与局部向前的轴垂直的前提下,尽可能接近 [param up] 向" +"量。最终的变换是正交变换,并且保留了原有缩放。非统一缩放可能无法正常工作。\n" +"[param target] 位置不能和该节点的位置相同,[param up] 向量不能为零。\n" +"[param target] 和 [param up] 不能为 [constant Vector3.ZERO],两者也不能共线," +"这样可以避免围绕局部 Z 轴发生预料之外的旋转。\n" +"操作发生在全局空间,也就是说该节点必须位于场景树中。\n" +"如果 [param use_model_front] 为 [code]true[/code],则会将 +Z 轴(资产正面)作" +"为向前的轴(此时 +X 为左),指向 [param target] 的位置。默认情况下会将 -Z 轴" +"(相机前方)作为向前的轴(此时 +X 为右)。" + msgid "" "Moves the node to the specified [param position], and then rotates the node " "to point toward the [param target] as per [method look_at]. Operations take " @@ -73030,12 +91299,179 @@ msgstr "构造空的 [NodePath]。" msgid "Constructs a [NodePath] as a copy of the given [NodePath]." msgstr "构造一个 [NodePath] 作为给定 [NodePath] 的副本。" +msgid "" +"Constructs a [NodePath] from a [String]. The created path is absolute if " +"prefixed with a slash (see [method is_absolute]).\n" +"The \"subnames\" optionally included after the path to the target node can " +"point to properties, and can also be nested.\n" +"The following strings can be valid node paths:\n" +"[codeblock]\n" +"# Points to the Sprite2D node.\n" +"\"Level/RigidBody2D/Sprite2D\"\n" +"\n" +"# Points to the Sprite2D node and its \"texture\" resource.\n" +"# get_node() would retrieve the Sprite2D, while get_node_and_resource()\n" +"# would retrieve both the Sprite2D node and the \"texture\" resource.\n" +"\"Level/RigidBody2D/Sprite2D:texture\"\n" +"\n" +"# Points to the Sprite2D node and its \"position\" property.\n" +"\"Level/RigidBody2D/Sprite2D:position\"\n" +"\n" +"# Points to the Sprite2D node and the \"x\" component of its \"position\" " +"property.\n" +"\"Level/RigidBody2D/Sprite2D:position:x\"\n" +"\n" +"# Points to the RigidBody2D node as an absolute path beginning from the " +"SceneTree.\n" +"\"/root/Level/RigidBody2D\"\n" +"[/codeblock]\n" +"[b]Note:[/b] In GDScript, it's also possible to convert a constant string " +"into a node path by prefixing it with [code]^[/code]. [code]^\"path/to/" +"node\"[/code] is equivalent to [code]NodePath(\"path/to/node\")[/code]." +msgstr "" +"从 [String] 构造 [NodePath]。如果以斜杠为前缀,则创建的路径是绝对路径(请参阅 " +"[method is_absolute])。\n" +"在到目标节点的路径后可以选择包含“子名称”,它可以指向属性,也可以被嵌套。\n" +"下面的字符串是有效的节点路径:\n" +"[codeblock]\n" +"# 指向 Sprite2D 节点。\n" +"\"Level/RigidBody2D/Sprite2D\"\n" +"\n" +"# 指向 Sprite2D 节点及其“纹理(texture)”资源。\n" +"# get_node() 将检索 Sprite2D,而 get_node_and_resource()\n" +"# 将同时检索该 Sprite2D 节点和其“纹理(texture)”资源。\n" +"\"Level/RigidBody2D/Sprite2D:texture\"\n" +"\n" +"# 指向 Sprite2D 节点及其“位置(position)”属性。\n" +"\"Level/RigidBody2D/Sprite2D:position\"\n" +"\n" +"# 指向 Sprite2D 节点及其“位置(position)”属性的 “x” 分量。\n" +"\"Level/RigidBody2D/Sprite2D:position:x\"\n" +"\n" +"# 指向 RigidBody2D 节点作为从 SceneTree 开始的绝对路径。\n" +"\"/root/Level/RigidBody2D\"\n" +"[/codeblock]\n" +"[b]注意:[/b]在 GDScript 中,也可以通过在常量字符串前面加上 [code]^[/code] 前" +"缀,来将常量字符串转换为节点路径。[code]^\"path/to/node\"[/code] 相当于 " +"[code]NodePath(\"path/to/node\")[/code]。" + +msgid "" +"Returns a copy of this node path with a colon character ([code]:[/code]) " +"prefixed, transforming it to a pure property path with no node names " +"(relative to the current node).\n" +"[codeblocks]\n" +"[gdscript]\n" +"# node_path points to the \"x\" property of the child node named " +"\"position\".\n" +"var node_path = ^\"position:x\"\n" +"\n" +"# property_path points to the \"position\" in the \"x\" axis of this node.\n" +"var property_path = node_path.get_as_property_path()\n" +"print(property_path) # Prints \":position:x\"\n" +"[/gdscript]\n" +"[csharp]\n" +"// nodePath points to the \"x\" property of the child node named " +"\"position\".\n" +"var nodePath = new NodePath(\"position:x\");\n" +"\n" +"// propertyPath points to the \"position\" in the \"x\" axis of this node.\n" +"NodePath propertyPath = nodePath.GetAsPropertyPath();\n" +"GD.Print(propertyPath); // Prints \":position:x\"\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"返回该节点路径带有冒号字符([code]:[/code])前缀的副本,将其转换为没有节点名称" +"的纯属性路径(相对于当前节点)。\n" +"[codeblocks]\n" +"[gdscript]\n" +"# node_path 指向名为 “position” 的子节点的 “x” 属性。\n" +"var node_path = ^\"position:x\"\n" +"\n" +"# property_path 指向该节点在 “x” 轴上的 “position”。\n" +"var property_path = node_path.get_as_property_path()\n" +"print(property_path) # 输出“:position:x”\n" +"[/gdscript]\n" +"[csharp]\n" +"// node_path 指向名为 “position” 的子节点的 “x” 属性。\n" +"var nodePath = new NodePath(\"position:x\");\n" +"\n" +"// property_path 指向该节点在 “x” 轴上的 “position”。\n" +"NodePath propertyPath = nodePath.GetAsPropertyPath();\n" +"GD.Print(propertyPath); // 输出“:position:x”\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Returns all node names concatenated with a slash character ([code]/[/code]) " "as a single [StringName]." msgstr "" "将与斜杠字符([code]/[/code])连接的所有节点名称作为单个 [StringName] 返回。" +msgid "" +"Returns all property subnames concatenated with a colon character ([code]:[/" +"code]) as a single [StringName].\n" +"[codeblocks]\n" +"[gdscript]\n" +"var node_path = ^\"Sprite2D:texture:resource_name\"\n" +"print(node_path.get_concatenated_subnames()) # Prints \"texture:" +"resource_name\"\n" +"[/gdscript]\n" +"[csharp]\n" +"var nodePath = new NodePath(\"Sprite2D:texture:resource_name\");\n" +"GD.Print(nodePath.GetConcatenatedSubnames()); // Prints \"texture:" +"resource_name\"\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"将与英文冒号字符([code]:[/code])连接的所有属性子名称作为单个 [StringName] 返" +"回。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var node_path = ^\"Sprite2D:texture:resource_name\"\n" +"print(node_path.get_concatenated_subnames()) # 输出“texture:resource_name”\n" +"[/gdscript]\n" +"[csharp]\n" +"var nodePath = new NodePath(\"Sprite2D:texture:resource_name\");\n" +"GD.Print(nodePath.GetConcatenatedSubnames()); // 输出“texture:resource_name”\n" +"[/csharp]\n" +"[/codeblocks]" + +msgid "" +"Returns the node name indicated by [param idx], starting from 0. If [param " +"idx] is out of bounds, an error is generated. See also [method " +"get_subname_count] and [method get_name_count].\n" +"[codeblocks]\n" +"[gdscript]\n" +"var sprite_path = NodePath(\"../RigidBody2D/Sprite2D\")\n" +"print(sprite_path.get_name(0)) # Prints \"..\"\n" +"print(sprite_path.get_name(1)) # Prints \"RigidBody2D\"\n" +"print(sprite_path.get_name(2)) # Prints \"Sprite\"\n" +"[/gdscript]\n" +"[csharp]\n" +"var spritePath = new NodePath(\"../RigidBody2D/Sprite2D\");\n" +"GD.Print(spritePath.GetName(0)); // Prints \"..\"\n" +"GD.Print(spritePath.GetName(1)); // Prints \"PathFollow2D\"\n" +"GD.Print(spritePath.GetName(2)); // Prints \"Sprite\"\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"返回由从 0 开始的 [param idx] 指示的节点名称。如果 [param idx] 超出范围,则会" +"生成错误。另请参阅 [method get_subname_count] 和 [method get_name_count]。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var sprite_path = NodePath(\"../RigidBody2D/Sprite2D\")\n" +"print(sprite_path.get_name(0)) # 输出“..”\n" +"print(sprite_path.get_name(1)) # 输出“RigidBody2D”\n" +"print(sprite_path.get_name(2)) # 输出“Sprite”\n" +"[/gdscript]\n" +"[csharp]\n" +"var spritePath = new NodePath(\"../RigidBody2D/Sprite2D\");\n" +"GD.Print(spritePath.GetName(0)); // 输出“..”\n" +"GD.Print(spritePath.GetName(1)); // 输出“PathFollow2D”\n" +"GD.Print(spritePath.GetName(2)); // 输出“Sprite”\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Returns the number of node names in the path. Property subnames are not " "included.\n" @@ -73045,6 +91481,38 @@ msgstr "" "返回路径中节点名称的数量。不包括属性子名称。\n" "例如,[code]\"../RigidBody2D/Sprite2D:texture\"[/code] 包含 3 个节点名称。" +msgid "" +"Returns the property name indicated by [param idx], starting from 0. If " +"[param idx] is out of bounds, an error is generated. See also [method " +"get_subname_count].\n" +"[codeblocks]\n" +"[gdscript]\n" +"var path_to_name = NodePath(\"Sprite2D:texture:resource_name\")\n" +"print(path_to_name.get_subname(0)) # Prints \"texture\"\n" +"print(path_to_name.get_subname(1)) # Prints \"resource_name\"\n" +"[/gdscript]\n" +"[csharp]\n" +"var pathToName = new NodePath(\"Sprite2D:texture:resource_name\");\n" +"GD.Print(pathToName.GetSubname(0)); // Prints \"texture\"\n" +"GD.Print(pathToName.GetSubname(1)); // Prints \"resource_name\"\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"返回由从 0 开始的 [param idx] 指示的属性名称。如果 [param idx] 超出范围,则会" +"生成错误。另请参阅 [method get_subname_count]。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var path_to_name = NodePath(\"Sprite2D:texture:resource_name\")\n" +"print(path_to_name.get_subname(0)) # 输出“texture”\n" +"print(path_to_name.get_subname(1)) # 输出“resource_name”\n" +"[/gdscript]\n" +"[csharp]\n" +"var pathToName = new NodePath(\"Sprite2D:texture:resource_name\");\n" +"GD.Print(pathToName.GetSubname(0)); // 输出“texture”\n" +"GD.Print(pathToName.GetSubname(1)); // 输出“resource_name”\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Returns the number of property names (\"subnames\") in the path. Each subname " "in the node path is listed after a colon character ([code]:[/code]).\n" @@ -73385,6 +91853,110 @@ msgstr "" msgid "Base class for all other classes in the engine." msgstr "引擎中所有其他类的基类。" +msgid "" +"An advanced [Variant] type. All classes in the engine inherit from Object. " +"Each class may define new properties, methods or signals, which are available " +"to all inheriting classes. For example, a [Sprite2D] instance is able to call " +"[method Node.add_child] because it inherits from [Node].\n" +"You can create new instances, using [code]Object.new()[/code] in GDScript, or " +"[code]new GodotObject[/code] in C#.\n" +"To delete an Object instance, call [method free]. This is necessary for most " +"classes inheriting Object, because they do not manage memory on their own, " +"and will otherwise cause memory leaks when no longer in use. There are a few " +"classes that perform memory management. For example, [RefCounted] (and by " +"extension [Resource]) deletes itself when no longer referenced, and [Node] " +"deletes its children when freed.\n" +"Objects can have a [Script] attached to them. Once the [Script] is " +"instantiated, it effectively acts as an extension to the base class, allowing " +"it to define and inherit new properties, methods and signals.\n" +"Inside a [Script], [method _get_property_list] may be overridden to customize " +"properties in several ways. This allows them to be available to the editor, " +"display as lists of options, sub-divide into groups, save on disk, etc. " +"Scripting languages offer easier ways to customize properties, such as with " +"the [annotation @GDScript.@export] annotation.\n" +"Godot is very dynamic. An object's script, and therefore its properties, " +"methods and signals, can be changed at run-time. Because of this, there can " +"be occasions where, for example, a property required by a method may not " +"exist. To prevent run-time errors, see methods such as [method set], [method " +"get], [method call], [method has_method], [method has_signal], etc. Note that " +"these methods are [b]much[/b] slower than direct references.\n" +"In GDScript, you can also check if a given property, method, or signal name " +"exists in an object with the [code]in[/code] operator:\n" +"[codeblock]\n" +"var node = Node.new()\n" +"print(\"name\" in node) # Prints true\n" +"print(\"get_parent\" in node) # Prints true\n" +"print(\"tree_entered\" in node) # Prints true\n" +"print(\"unknown\" in node) # Prints false\n" +"[/codeblock]\n" +"Notifications are [int] constants commonly sent and received by objects. For " +"example, on every rendered frame, the [SceneTree] notifies nodes inside the " +"tree with a [constant Node.NOTIFICATION_PROCESS]. The nodes receive it and " +"may call [method Node._process] to update. To make use of notifications, see " +"[method notification] and [method _notification].\n" +"Lastly, every object can also contain metadata (data about data). [method " +"set_meta] can be useful to store information that the object itself does not " +"depend on. To keep your code clean, making excessive use of metadata is " +"discouraged.\n" +"[b]Note:[/b] Unlike references to a [RefCounted], references to an object " +"stored in a variable can become invalid without being set to [code]null[/" +"code]. To check if an object has been deleted, do [i]not[/i] compare it " +"against [code]null[/code]. Instead, use [method @GlobalScope." +"is_instance_valid]. It's also recommended to inherit from [RefCounted] for " +"classes storing data instead of [Object].\n" +"[b]Note:[/b] The [code]script[/code] is not exposed like most properties. To " +"set or get an object's [Script] in code, use [method set_script] and [method " +"get_script], respectively.\n" +"[b]Note:[/b] In a boolean context, an [Object] will evaluate to [code]false[/" +"code] if it is equal to [code]null[/code] or it has been freed. Otherwise, an " +"[Object] will always evaluate to [code]true[/code]. See also [method " +"@GlobalScope.is_instance_valid]." +msgstr "" +"一种高级的 [Variant] 类型。引擎中的所有类都继承自 Object。每个类都可以定义新的" +"属性、方法或信号,并且这些对所有继承的类都可用。例如,一个 [Sprite2D] 实例能够" +"调用 [method Node.add_child] 因为它继承自 [Node]。\n" +"可以使用 GDScript 中的 [code]Object.new()[/code] 或 C# 中的 [code]new " +"GodotObject[/code] 来创建新实例。\n" +"要删除一个 Object 实例,请调用 [method free]。这对于大多数继承 Object 的类来说" +"是必须的,因为它们本身并不管理内存,如果不调用该方法的话,在不再使用时会造成内" +"存泄漏。有几个类会执行内存管理。例如,[RefCounted](以及扩展的 [Resource])在" +"不再被引用时删除自身,而 [Node] 在释放时会删除其子节点。\n" +"对象可以附加一个 [Script]。一旦该 [Script] 被实例化,它就有效地充当了基类的扩" +"展,允许它定义和继承新的属性、方法和信号。\n" +"在 [Script] 中,[method _get_property_list] 可以被可以重写,以通过多种方式自定" +"义属性。这允许它们对编辑器可用,显示为选项列表,细分为组,保存在磁盘上,等等。" +"脚本语言提供更简单的方式来自定义属性,例如使用 [annotation @GDScript.@export] " +"注解。\n" +"Godot 是非常动态的。一个对象的脚本,以及它的属性、方法和信号,都可以在运行时改" +"变。正因为如此,可能会出现这样的情况,例如,一个方法所需的属性可能不存在。为了" +"防止运行时出错,可以参考 [method set]、[method get]、[method call]、[method " +"has_method]、[method has_signal] 等方法。请注意,这些方法比直接引用慢[b]得多[/" +"b]。\n" +"在 GDScript 中,还可以使用 [code]in[/code] 运算符来检查对象中是否存在给定的属" +"性、方法或信号名称:\n" +"[codeblock]\n" +"var node = Node.new()\n" +"print(\"name\" in node) # 输出 true\n" +"print(\"get_parent\" in node) # 输出 true\n" +"print(\"tree_entered\" in node) # 输出 true\n" +"print(\"unknown\" in node) # 输出 false\n" +"[/codeblock]\n" +"通知是 [int] 常量,通常由对象发送和接收。例如,在每个渲染帧上,[SceneTree] 使" +"用 [constant Node.NOTIFICATION_PROCESS] 通知树内的节点。节点收到它后,可以调" +"用 [method Node._process] 进行更新。要使用通知,请参阅 [method notification] " +"和 [method _notification]。\n" +"最后,每个对象还可以包含元数据(关于数据的数据)。[method set_meta] 可用于存储" +"对象本身不依赖的信息。为了保持代码整洁,不鼓励过度使用元数据。\n" +"[b]注意:[/b]与对 [RefCounted] 的引用不同,对存储在变量中的对象的引用,可能会" +"在未被设置为 [code]null[/code] 的情况下变得无效。要检查对象是否已被删除,请[i]" +"不要[/i]将其与 [code]null[/code] 进行比较。而是使用 [method @GlobalScope." +"is_instance_valid]。存储数据的类,建议从 [RefCounted] 继承而不是 [Object]。\n" +"[b]注意:[/b][code]script[/code] 不像大多数属性那样公开。要在代码中设置或获取" +"一个对象的 [Script],请分别使用 [method set_script] 和 [method get_script]。\n" +"[b]注意:[/b]在布尔值上下文中,[Object] 等于 [code]null[/code] 或已释放时会求" +"值为 [code]false[/code]。否则 [Object] 始终求值为 [code]true[/code]。 另见 " +"[method @GlobalScope.is_instance_valid]。" + msgid "Object class introduction" msgstr "Object 类介绍" @@ -73394,6 +91966,340 @@ msgstr "何时以及如何避免为任何事情使用节点" msgid "Object notifications" msgstr "对象通知" +msgid "" +"Override this method to customize the behavior of [method get]. Should return " +"the given [param property]'s value, or [code]null[/code] if the [param " +"property] should be handled normally.\n" +"Combined with [method _set] and [method _get_property_list], this method " +"allows defining custom properties, which is particularly useful for editor " +"plugins. Note that a property must be present in [method get_property_list], " +"otherwise this method will not be called.\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _get(property):\n" +" if property == \"fake_property\":\n" +" print(\"Getting my property!\")\n" +" return 4\n" +"\n" +"func _get_property_list():\n" +" return [\n" +" { \"name\": \"fake_property\", \"type\": TYPE_INT }\n" +" ]\n" +"[/gdscript]\n" +"[csharp]\n" +"public override Variant _Get(StringName property)\n" +"{\n" +" if (property == \"FakeProperty\")\n" +" {\n" +" GD.Print(\"Getting my property!\");\n" +" return 4;\n" +" }\n" +" return default;\n" +"}\n" +"\n" +"public override Godot.Collections.Array<Godot.Collections.Dictionary> " +"_GetPropertyList()\n" +"{\n" +" return\n" +" [\n" +" new Godot.Collections.Dictionary()\n" +" {\n" +" { \"name\", \"FakeProperty\" },\n" +" { \"type\", (int)Variant.Type.Int },\n" +" },\n" +" ];\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"覆盖该方法以自定义 [method get] 的行为。应该返回给定的 [param property] 的值," +"或者 [param property] 应该被正常处理时返回 [code]null[/code]。\n" +"结合 [method _set] 和 [method _get_property_list],该方法允许定义自定义属性," +"这对编辑器插件特别有用。请注意,属性必须存在于 [method get_property_list] 中," +"否则该方法不会被调用。\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _get(property):\n" +" if property == \"fake_property\":\n" +" print(\"正在获取我的属性!\")\n" +" return 4\n" +"\n" +"func _get_property_list():\n" +" return [\n" +" { \"name\": \"fake_property\", \"type\": TYPE_INT }\n" +" ]\n" +"[/gdscript]\n" +"[csharp]\n" +"public override Variant _Get(StringName property)\n" +"{\n" +" if (property == \"FakeProperty\")\n" +" {\n" +" GD.Print(\"正在获取我的属性!\");\n" +" return 4;\n" +" }\n" +" return default;\n" +"}\n" +"\n" +"public override Godot.Collections.Array<Godot.Collections.Dictionary> " +"_GetPropertyList()\n" +"{\n" +" return\n" +" [\n" +" new Godot.Collections.Dictionary()\n" +" {\n" +" { \"name\", \"FakeProperty\" },\n" +" { \"type\", (int)Variant.Type.Int },\n" +" },\n" +" ];\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" + +msgid "" +"Override this method to provide a custom list of additional properties to " +"handle by the engine.\n" +"Should return a property list, as an [Array] of dictionaries. The result is " +"added to the array of [method get_property_list], and should be formatted in " +"the same way. Each [Dictionary] must at least contain the [code]name[/code] " +"and [code]type[/code] entries.\n" +"You can use [method _property_can_revert] and [method _property_get_revert] " +"to customize the default values of the properties added by this method.\n" +"The example below displays a list of numbers shown as words going from " +"[code]ZERO[/code] to [code]FIVE[/code], with [code]number_count[/code] " +"controlling the size of the list:\n" +"[codeblocks]\n" +"[gdscript]\n" +"@tool\n" +"extends Node\n" +"\n" +"@export var number_count = 3:\n" +" set(nc):\n" +" number_count = nc\n" +" numbers.resize(number_count)\n" +" notify_property_list_changed()\n" +"\n" +"var numbers = PackedInt32Array([0, 0, 0])\n" +"\n" +"func _get_property_list():\n" +" var properties = []\n" +"\n" +" for i in range(number_count):\n" +" properties.append({\n" +" \"name\": \"number_%d\" % i,\n" +" \"type\": TYPE_INT,\n" +" \"hint\": PROPERTY_HINT_ENUM,\n" +" \"hint_string\": \"ZERO,ONE,TWO,THREE,FOUR,FIVE\",\n" +" })\n" +"\n" +" return properties\n" +"\n" +"func _get(property):\n" +" if property.begins_with(\"number_\"):\n" +" var index = property.get_slice(\"_\", 1).to_int()\n" +" return numbers[index]\n" +"\n" +"func _set(property, value):\n" +" if property.begins_with(\"number_\"):\n" +" var index = property.get_slice(\"_\", 1).to_int()\n" +" numbers[index] = value\n" +" return true\n" +" return false\n" +"[/gdscript]\n" +"[csharp]\n" +"[Tool]\n" +"public partial class MyNode : Node\n" +"{\n" +" private int _numberCount;\n" +"\n" +" [Export]\n" +" public int NumberCount\n" +" {\n" +" get => _numberCount;\n" +" set\n" +" {\n" +" _numberCount = value;\n" +" _numbers.Resize(_numberCount);\n" +" NotifyPropertyListChanged();\n" +" }\n" +" }\n" +"\n" +" private Godot.Collections.Array<int> _numbers = [];\n" +"\n" +" public override Godot.Collections.Array<Godot.Collections.Dictionary> " +"_GetPropertyList()\n" +" {\n" +" Godot.Collections.Array<Godot.Collections.Dictionary> properties = " +"[];\n" +"\n" +" for (int i = 0; i < _numberCount; i++)\n" +" {\n" +" properties.Add(new Godot.Collections.Dictionary()\n" +" {\n" +" { \"name\", $\"number_{i}\" },\n" +" { \"type\", (int)Variant.Type.Int },\n" +" { \"hint\", (int)PropertyHint.Enum },\n" +" { \"hint_string\", \"Zero,One,Two,Three,Four,Five\" },\n" +" });\n" +" }\n" +"\n" +" return properties;\n" +" }\n" +"\n" +" public override Variant _Get(StringName property)\n" +" {\n" +" string propertyName = property.ToString();\n" +" if (propertyName.StartsWith(\"number_\"))\n" +" {\n" +" int index = int.Parse(propertyName.Substring(\"number_\"." +"Length));\n" +" return _numbers[index];\n" +" }\n" +" return default;\n" +" }\n" +"\n" +" public override bool _Set(StringName property, Variant value)\n" +" {\n" +" string propertyName = property.ToString();\n" +" if (propertyName.StartsWith(\"number_\"))\n" +" {\n" +" int index = int.Parse(propertyName.Substring(\"number_\"." +"Length));\n" +" _numbers[index] = value.As<int>();\n" +" return true;\n" +" }\n" +" return false;\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] This method is intended for advanced purposes. For most common " +"use cases, the scripting languages offer easier ways to handle properties. " +"See [annotation @GDScript.@export], [annotation @GDScript.@export_enum], " +"[annotation @GDScript.@export_group], etc. If you want to customize exported " +"properties, use [method _validate_property].\n" +"[b]Note:[/b] If the object's script is not [annotation @GDScript.@tool], this " +"method will not be called in the editor." +msgstr "" +"覆盖该方法以提供由引擎处理的额外属性的自定义列表。\n" +"应该返回一个属性列表,作为字典的 [Array]。该结果被添加到 [method " +"get_property_list] 的数组中,并且应该以相同的方式进行格式化。每个 " +"[Dictionary] 必须至少包含 [code]name[/code] 和 [code]type[/code] 条目。\n" +"你可以使用 [method _property_can_revert] 和 [method _property_get_revert] 自定" +"义该方法添加的属性的默认值。\n" +"下面的示例显示了一个数字列表,该列表显示为从 [code]ZERO[/code] 到 [code]FIVE[/" +"code] 的单词,其中 [code]number_count[/code] 控制列表的大小:\n" +"[codeblocks]\n" +"[gdscript]\n" +"@tool\n" +"extends Node\n" +"\n" +"@export var number_count = 3:\n" +" set(nc):\n" +" number_count = nc\n" +" numbers.resize(number_count)\n" +" notify_property_list_changed()\n" +"\n" +"var numbers = PackedInt32Array([0, 0, 0])\n" +"\n" +"func _get_property_list():\n" +" var properties = []\n" +"\n" +" for i in range(number_count):\n" +" properties.append({\n" +" \"name\": \"number_%d\" % i,\n" +" \"type\": TYPE_INT,\n" +" \"hint\": PROPERTY_HINT_ENUM,\n" +" \"hint_string\": \"ZERO,ONE,TWO,THREE,FOUR,FIVE\",\n" +" })\n" +"\n" +" return properties\n" +"\n" +"func _get(property):\n" +" if property.begins_with(\"number_\"):\n" +" var index = property.get_slice(\"_\", 1).to_int()\n" +" return numbers[index]\n" +"\n" +"func _set(property, value):\n" +" if property.begins_with(\"number_\"):\n" +" var index = property.get_slice(\"_\", 1).to_int()\n" +" numbers[index] = value\n" +" return true\n" +" return false\n" +"[/gdscript]\n" +"[csharp]\n" +"[Tool]\n" +"public partial class MyNode : Node\n" +"{\n" +" private int _numberCount;\n" +"\n" +" [Export]\n" +" public int NumberCount\n" +" {\n" +" get => _numberCount;\n" +" set\n" +" {\n" +" _numberCount = value;\n" +" _numbers.Resize(_numberCount);\n" +" NotifyPropertyListChanged();\n" +" }\n" +" }\n" +"\n" +" private Godot.Collections.Array<int> _numbers = [];\n" +"\n" +" public override Godot.Collections.Array<Godot.Collections.Dictionary> " +"_GetPropertyList()\n" +" {\n" +" Godot.Collections.Array<Godot.Collections.Dictionary> properties = " +"[];\n" +"\n" +" for (int i = 0; i < _numberCount; i++)\n" +" {\n" +" properties.Add(new Godot.Collections.Dictionary()\n" +" {\n" +" { \"name\", $\"number_{i}\" },\n" +" { \"type\", (int)Variant.Type.Int },\n" +" { \"hint\", (int)PropertyHint.Enum },\n" +" { \"hint_string\", \"Zero,One,Two,Three,Four,Five\" },\n" +" });\n" +" }\n" +"\n" +" return properties;\n" +" }\n" +"\n" +" public override Variant _Get(StringName property)\n" +" {\n" +" string propertyName = property.ToString();\n" +" if (propertyName.StartsWith(\"number_\"))\n" +" {\n" +" int index = int.Parse(propertyName.Substring(\"number_\"." +"Length));\n" +" return _numbers[index];\n" +" }\n" +" return default;\n" +" }\n" +"\n" +" public override bool _Set(StringName property, Variant value)\n" +" {\n" +" string propertyName = property.ToString();\n" +" if (propertyName.StartsWith(\"number_\"))\n" +" {\n" +" int index = int.Parse(propertyName.Substring(\"number_\"." +"Length));\n" +" _numbers[index] = value.As<int>();\n" +" return true;\n" +" }\n" +" return false;\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b]该方法旨在用于高级目的。对于大多数常见用例,脚本语言提供了更简单" +"的方法来处理属性。参见 [annotation @GDScript.@export]、[annotation @GDScript." +"@export_enum]、[annotation @GDScript.@export_group] 等。如果要自定义导出的属" +"性,请使用 [method _validate_property]。\n" +"[b]注意:[/b]如果该对象的脚本不是 [annotation @GDScript.@tool],则该方法在编辑" +"器中不会被调用。" + msgid "" "Called when the object's script is instantiated, oftentimes after the object " "is initialized in memory (through [code]Object.new()[/code] in GDScript, or " @@ -73485,6 +92391,117 @@ msgstr "" "个还原图标。\n" "[b]注意:[/b][method _property_can_revert] 也必须被覆盖,该方法才能被调用。" +msgid "" +"Override this method to customize the behavior of [method set]. Should set " +"the [param property] to [param value] and return [code]true[/code], or " +"[code]false[/code] if the [param property] should be handled normally. The " +"[i]exact[/i] way to set the [param property] is up to this method's " +"implementation.\n" +"Combined with [method _get] and [method _get_property_list], this method " +"allows defining custom properties, which is particularly useful for editor " +"plugins. Note that a property [i]must[/i] be present in [method " +"get_property_list], otherwise this method will not be called.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var internal_data = {}\n" +"\n" +"func _set(property, value):\n" +" if property == \"fake_property\":\n" +" # Storing the value in the fake property.\n" +" internal_data[\"fake_property\"] = value\n" +" return true\n" +" return false\n" +"\n" +"func _get_property_list():\n" +" return [\n" +" { \"name\": \"fake_property\", \"type\": TYPE_INT }\n" +" ]\n" +"[/gdscript]\n" +"[csharp]\n" +"private Godot.Collections.Dictionary _internalData = new Godot.Collections." +"Dictionary();\n" +"\n" +"public override bool _Set(StringName property, Variant value)\n" +"{\n" +" if (property == \"FakeProperty\")\n" +" {\n" +" // Storing the value in the fake property.\n" +" _internalData[\"FakeProperty\"] = value;\n" +" return true;\n" +" }\n" +"\n" +" return false;\n" +"}\n" +"\n" +"public override Godot.Collections.Array<Godot.Collections.Dictionary> " +"_GetPropertyList()\n" +"{\n" +" return\n" +" [\n" +" new Godot.Collections.Dictionary()\n" +" {\n" +" { \"name\", \"FakeProperty\" },\n" +" { \"type\", (int)Variant.Type.Int },\n" +" },\n" +" ];\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"覆盖该方法以自定义 [method set] 的行为。应将 [param property] 设置为 [param " +"value] 并返回 [code]true[/code],如果 [param property] 正常处理则返回 " +"[code]false[/code]。设置 [param property] 的[i]确切[/i]方式取决于该方法的实" +"现。\n" +"结合 [method _get] 和 [method _get_property_list],该方法允许定义自定义属性," +"这对编辑器插件特别有用。注意属性[i]必须[/i]在 [method get_property_list] 中存" +"在,否则该方法将不会被调用。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var internal_data = {}\n" +"\n" +"func _set(property, value):\n" +" if property == \"fake_property\":\n" +" # 在冒牌属性中存值。\n" +" internal_data[\"fake_property\"] = value\n" +" return true\n" +" return false\n" +"\n" +"func _get_property_list():\n" +" return [\n" +" { \"name\": \"fake_property\", \"type\": TYPE_INT }\n" +" ]\n" +"[/gdscript]\n" +"[csharp]\n" +"private Godot.Collections.Dictionary _internalData = new Godot.Collections." +"Dictionary();\n" +"\n" +"public override bool _Set(StringName property, Variant value)\n" +"{\n" +" if (property == \"FakeProperty\")\n" +" {\n" +" // 在冒牌属性中存值。\n" +" _internalData[\"FakeProperty\"] = value;\n" +" return true;\n" +" }\n" +"\n" +" return false;\n" +"}\n" +"\n" +"public override Godot.Collections.Array<Godot.Collections.Dictionary> " +"_GetPropertyList()\n" +"{\n" +" return\n" +" [\n" +" new Godot.Collections.Dictionary()\n" +" {\n" +" { \"name\", \"FakeProperty\" },\n" +" { \"type\", (int)Variant.Type.Int },\n" +" },\n" +" ];\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Override this method to customize existing properties. Every property info " "goes through this method, except properties added with [method " @@ -73593,6 +92610,63 @@ msgstr "" "[/csharp]\n" "[/codeblocks]" +msgid "" +"Adds a user-defined signal named [param signal]. Optional arguments for the " +"signal can be added as an [Array] of dictionaries, each defining a " +"[code]name[/code] [String] and a [code]type[/code] [int] (see [enum Variant." +"Type]). See also [method has_user_signal] and [method remove_user_signal].\n" +"[codeblocks]\n" +"[gdscript]\n" +"add_user_signal(\"hurt\", [\n" +" { \"name\": \"damage\", \"type\": TYPE_INT },\n" +" { \"name\": \"source\", \"type\": TYPE_OBJECT }\n" +"])\n" +"[/gdscript]\n" +"[csharp]\n" +"AddUserSignal(\"Hurt\",\n" +"[\n" +" new Godot.Collections.Dictionary()\n" +" {\n" +" { \"name\", \"damage\" },\n" +" { \"type\", (int)Variant.Type.Int },\n" +" },\n" +" new Godot.Collections.Dictionary()\n" +" {\n" +" { \"name\", \"source\" },\n" +" { \"type\", (int)Variant.Type.Object },\n" +" },\n" +"]);\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"添加名为 [param signal] 的用户定义的信号。信号的参数是可选的,以字典的 " +"[Array] 形式添加,字典中定义名称 [code]name[/code] [String],类型 [code]type[/" +"code] [int](见 [enum Variant.Type])。另见 [method has_user_signal] 和 " +"[method remove_user_signal]。\n" +"[codeblocks]\n" +"[gdscript]\n" +"add_user_signal(\"hurt\", [\n" +" { \"name\": \"damage\", \"type\": TYPE_INT },\n" +" { \"name\": \"source\", \"type\": TYPE_OBJECT }\n" +"])\n" +"[/gdscript]\n" +"[csharp]\n" +"AddUserSignal(\"Hurt\",\n" +"[\n" +" new Godot.Collections.Dictionary()\n" +" {\n" +" { \"name\", \"damage\" },\n" +" { \"type\", (int)Variant.Type.Int },\n" +" },\n" +" new Godot.Collections.Dictionary()\n" +" {\n" +" { \"name\", \"source\" },\n" +" { \"type\", (int)Variant.Type.Object },\n" +" },\n" +"]);\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Calls the [param method] on the object and returns the result. This method " "supports a variable number of arguments, so parameters can be passed as a " @@ -73628,6 +92702,115 @@ msgstr "" "snake_case 格式。最好使用 [code]MethodName[/code] 类中公开的名称,以避免在每次" "调用时分配新的 [StringName]。" +msgid "" +"Calls the [param method] on the object during idle time. Always returns " +"[code]null[/code], [b]not[/b] the method's result.\n" +"Idle time happens mainly at the end of process and physics frames. In it, " +"deferred calls will be run until there are none left, which means you can " +"defer calls from other deferred calls and they'll still be run in the current " +"idle time cycle. This means you should not call a method deferred from itself " +"(or from a method called by it), as this causes infinite recursion the same " +"way as if you had called the method directly.\n" +"This method supports a variable number of arguments, so parameters can be " +"passed as a comma separated list.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var node = Node3D.new()\n" +"node.call_deferred(\"rotate\", Vector3(1.0, 0.0, 0.0), 1.571)\n" +"[/gdscript]\n" +"[csharp]\n" +"var node = new Node3D();\n" +"node.CallDeferred(Node3D.MethodName.Rotate, new Vector3(1f, 0f, 0f), " +"1.571f);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"See also [method Callable.call_deferred].\n" +"[b]Note:[/b] In C#, [param method] must be in snake_case when referring to " +"built-in Godot methods. Prefer using the names exposed in the " +"[code]MethodName[/code] class to avoid allocating a new [StringName] on each " +"call.\n" +"[b]Note:[/b] If you're looking to delay the function call by a frame, refer " +"to the [signal SceneTree.process_frame] and [signal SceneTree.physics_frame] " +"signals.\n" +"[codeblock]\n" +"var node = Node3D.new()\n" +"# Make a Callable and bind the arguments to the node's rotate() call.\n" +"var callable = node.rotate.bind(Vector3(1.0, 0.0, 0.0), 1.571)\n" +"# Connect the callable to the process_frame signal, so it gets called in the " +"next process frame.\n" +"# CONNECT_ONE_SHOT makes sure it only gets called once instead of every " +"frame.\n" +"get_tree().process_frame.connect(callable, CONNECT_ONE_SHOT)\n" +"[/codeblock]" +msgstr "" +"在空闲时调用该对象的 [param method] 方法。始终返回 [code]null[/code],[b]不返" +"回[/b]该方法的结果。\n" +"空闲时间主要出现在处理帧和物理帧的末尾。延迟的调用会在此时执行,直到没有调用剩" +"余为止,这意味着你可以从其他延迟的调用中延迟调用,并且它们仍将在当前空闲时间周" +"期中运行。这意味着你不应从延迟调用的方法(或从其调用的方法)中延迟调用其自身," +"因为这会导致无限递归,就像你直接调用该方法一样。\n" +"这个方法支持可变数量的参数,所以参数可以用逗号分隔列表的形式传递。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var node = Node3D.new()\n" +"node.call_deferred(\"rotate\", Vector3(1.0, 0.0, 0.0), 1.571)\n" +"[/gdscript]\n" +"[csharp]\n" +"var node = new Node3D();\n" +"node.CallDeferred(Node3D.MethodName.Rotate, new Vector3(1f, 0f, 0f), " +"1.571f);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"另见 [method Callable.call_deferred]。\n" +"[b]注意:[/b]在 C# 中,[param method] 引用内置的 Godot 方法时必须使用 " +"snake_case 的形式。请优先使用 [code]MethodName[/code] 类中暴露的名称,避免每次" +"调用都分配一个新的 [StringName]。\n" +"[b]注意:[/b]如果你想要延迟一帧再调用函数,请使用 [signal SceneTree." +"process_frame] 和 [signal SceneTree.physics_frame] 信号。\n" +"[codeblock]\n" +"var node = Node3D.new()\n" +"# 制作可调用体并将参数绑定到该节点的 rotate() 调用。\n" +"var callable = node.rotate.bind(Vector3(1.0, 0.0, 0.0), 1.571)\n" +"# 将可调用体连接到 process_frame 信号,这样就能够在下一个处理帧中调用。\n" +"# CONNECT_ONE_SHOT 能够确保只调用一次,不会每帧都调用。\n" +"get_tree().process_frame.connect(callable, CONNECT_ONE_SHOT)\n" +"[/codeblock]" + +msgid "" +"Calls the [param method] on the object and returns the result. Unlike [method " +"call], this method expects all parameters to be contained inside [param " +"arg_array].\n" +"[codeblocks]\n" +"[gdscript]\n" +"var node = Node3D.new()\n" +"node.callv(\"rotate\", [Vector3(1.0, 0.0, 0.0), 1.571])\n" +"[/gdscript]\n" +"[csharp]\n" +"var node = new Node3D();\n" +"node.Callv(Node3D.MethodName.Rotate, [new Vector3(1f, 0f, 0f), 1.571f]);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] In C#, [param method] must be in snake_case when referring to " +"built-in Godot methods. Prefer using the names exposed in the " +"[code]MethodName[/code] class to avoid allocating a new [StringName] on each " +"call." +msgstr "" +"在对象上调用 [param method] 并返回结果。与 [method call] 不同,该方法期望所有" +"参数都包含在 [param arg_array] 中。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var node = Node3D.new()\n" +"node.callv(\"rotate\", [Vector3(1.0, 0.0, 0.0), 1.571])\n" +"[/gdscript]\n" +"[csharp]\n" +"var node = new Node3D();\n" +"node.Callv(Node3D.MethodName.Rotate, [new Vector3(1f, 0f, 0f), 1.571f]);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b]在 C# 中,[param method] 在引用 Godot 内置方法时必须是 " +"snake_case。最好使用 [code]MethodName[/code] 类中公开的名称,以避免在每次调用" +"时分配新的 [StringName]。" + msgid "" "Returns [code]true[/code] if the object is allowed to translate messages with " "[method tr] and [method tr_n]. See also [method set_message_translation]." @@ -74182,6 +93365,10 @@ msgstr "" "辑器使用的元数据不会在“检查器”中显示,虽然仍然能够被这个方法找到,但是不应该进" "行编辑。" +msgid "" +"Returns the object's metadata entry names as an [Array] of [StringName]s." +msgstr "将该对象的元数据条目名称以元素为 [StringName] 的 [Array] 形式返回。" + msgid "" "Returns the number of arguments of the given [param method] by name.\n" "[b]Note:[/b] In C#, [param method] must be in snake_case when referring to " @@ -74276,6 +93463,26 @@ msgstr "" "[b]注意:[/b]由于该实现,每个 [Dictionary] 被格式为与 [method " "get_method_list] 的返回值非常相似。" +msgid "" +"Returns the name of the translation domain used by [method tr] and [method " +"tr_n]. See also [TranslationServer]." +msgstr "" +"返回 [method tr] 和 [method tr_n] 所使用的翻译域的名称。另见 " +"[TranslationServer]。" + +msgid "" +"Returns [code]true[/code] if any connection exists on the given [param " +"signal] name.\n" +"[b]Note:[/b] In C#, [param signal] must be in snake_case when referring to " +"built-in Godot methods. Prefer using the names exposed in the " +"[code]SignalName[/code] class to avoid allocating a new [StringName] on each " +"call." +msgstr "" +"如果给定的信号名称 [param signal] 存在连接,则返回 [code]true[/code]。\n" +"[b]注意:[/b]在 C# 中,引用 Godot 内置方法时 [param signal] 必须使用 " +"snake_case 形式命名。请优先使用 [code]SignalName[/code] 类中暴露的名称,避免每" +"次调用都分配一个新的 [StringName]。" + msgid "" "Returns [code]true[/code] if a metadata entry is found with the given [param " "name]. See also [method get_meta], [method set_meta] and [method " @@ -74308,6 +93515,19 @@ msgstr "" "形大小写。请优先使用 [code]MethodName[/code] 类中暴露的名称,避免每次调用都重" "新分配一个 [StringName]。" +msgid "" +"Returns [code]true[/code] if the given [param signal] name exists in the " +"object.\n" +"[b]Note:[/b] In C#, [param signal] must be in snake_case when referring to " +"built-in Godot signals. Prefer using the names exposed in the " +"[code]SignalName[/code] class to avoid allocating a new [StringName] on each " +"call." +msgstr "" +"如果对象中存在给定的信号名称 [param signal],则返回 [code]true[/code]。\n" +"[b]注意:[/b]在 C# 中,引用 Godot 内置方法时 [param signal] 必须使用 " +"snake_case 形式命名。请优先使用 [code]SignalName[/code] 类中暴露的名称,避免每" +"次调用都分配一个新的 [StringName]。" + msgid "" "Returns [code]true[/code] if the given user-defined [param signal] name " "exists. Only signals added with [method add_user_signal] are included. See " @@ -74361,6 +93581,20 @@ msgstr "" "[/codeblocks]\n" "[b]注意:[/b]此方法忽略对象脚本中的 [code]class_name[/code] 声明。" +msgid "" +"Returns [code]true[/code] if a connection exists between the given [param " +"signal] name and [param callable].\n" +"[b]Note:[/b] In C#, [param signal] must be in snake_case when referring to " +"built-in Godot signals. Prefer using the names exposed in the " +"[code]SignalName[/code] class to avoid allocating a new [StringName] on each " +"call." +msgstr "" +"如果给定的信号名称 [param signal] 与可调用体 [param callable] 之间存在连接,则" +"返回 [code]true[/code]。\n" +"[b]注意:[/b]在 C# 中,引用 Godot 内置方法时 [param signal] 必须使用 " +"snake_case 形式命名。请优先使用 [code]SignalName[/code] 类中暴露的名称,避免每" +"次调用都分配一个新的 [StringName]。" + msgid "" "Returns [code]true[/code] if the [method Node.queue_free] method was called " "for the object." @@ -74484,6 +93718,44 @@ msgstr "" "从对象中移除给定的用户信号 [param signal]。另请参阅 [method add_user_signal] " "和 [method has_user_signal]。" +msgid "" +"Assigns [param value] to the given [param property]. If the property does not " +"exist or the given [param value]'s type doesn't match, nothing happens.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var node = Node2D.new()\n" +"node.set(\"global_scale\", Vector2(8, 2.5))\n" +"print(node.global_scale) # Prints (8.0, 2.5)\n" +"[/gdscript]\n" +"[csharp]\n" +"var node = new Node2D();\n" +"node.Set(Node2D.PropertyName.GlobalScale, new Vector2(8, 2.5f));\n" +"GD.Print(node.GlobalScale); // Prints (8, 2.5)\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] In C#, [param property] must be in snake_case when referring to " +"built-in Godot properties. Prefer using the names exposed in the " +"[code]PropertyName[/code] class to avoid allocating a new [StringName] on " +"each call." +msgstr "" +"将给定属性 [param property] 的值分配为 [param value]。如果该属性不存在,或者给" +"定 [param value] 的类型不匹配,则不会发生任何事情。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var node = Node2D.new()\n" +"node.set(\"global_scale\", Vector2(8, 2.5))\n" +"print(node.global_scale) # 输出 (8.0, 2.5)\n" +"[/gdscript]\n" +"[csharp]\n" +"var node = new Node2D();\n" +"node.Set(Node2D.PropertyName.GlobalScale, new Vector2(8, 2.5f));\n" +"GD.Print(node.GlobalScale); // 输出 (8, 2.5)\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b]在 C# 中,引用 Godot 内置方法时 [param property] 必须使用 " +"snake_case 形式命名。请优先使用 [code]PropertyName[/code] 类中暴露的名称,避免" +"每次调用都分配一个新的 [StringName]。" + msgid "" "If set to [code]true[/code], the object becomes unable to emit signals. As " "such, [method emit_signal] and signal connections will not work, until it is " @@ -74551,6 +93823,50 @@ msgstr "" "蛇形大小写。请优先使用 [code]PropertyName[/code] 类中暴露的名称,避免每次调用" "都重新分配一个 [StringName]。" +msgid "" +"Assigns a new [param value] to the property identified by the [param " +"property_path]. The path should be a [NodePath] relative to this object, and " +"can use the colon character ([code]:[/code]) to access nested properties.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var node = Node2D.new()\n" +"node.set_indexed(\"position\", Vector2(42, 0))\n" +"node.set_indexed(\"position:y\", -10)\n" +"print(node.position) # Prints (42.0, -10.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"var node = new Node2D();\n" +"node.SetIndexed(\"position\", new Vector2(42, 0));\n" +"node.SetIndexed(\"position:y\", -10);\n" +"GD.Print(node.Position); // Prints (42, -10)\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] In C#, [param property_path] must be in snake_case when " +"referring to built-in Godot properties. Prefer using the names exposed in the " +"[code]PropertyName[/code] class to avoid allocating a new [StringName] on " +"each call." +msgstr "" +"将由属性路径 [param property_path] 标识的属性的值分配为 [param value]。该路径" +"应为相对于这个对象的 [NodePath],可以使用英文冒号([code]:[/code])访问内嵌属" +"性。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var node = Node2D.new()\n" +"node.set_indexed(\"position\", Vector2(42, 0))\n" +"node.set_indexed(\"position:y\", -10)\n" +"print(node.position) # 输出 (42.0, -10.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"var node = new Node2D();\n" +"node.SetIndexed(\"position\", new Vector2(42, 0));\n" +"node.SetIndexed(\"position:y\", -10);\n" +"GD.Print(node.Position); // 输出 (42, -10)\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b]在 C# 中,引用 Godot 内置方法时 [param property_path] 必须使用 " +"snake_case 形式命名。请优先使用 [code]PropertyName[/code] 类中暴露的名称,避免" +"每次调用都分配一个新的 [StringName]。" + msgid "" "If set to [code]true[/code], allows the object to translate messages with " "[method tr] and [method tr_n]. Enabled by default. See also [method " @@ -74595,6 +93911,13 @@ msgstr "" "如果已存在脚本,则该脚本的实例会被分离,其属性值和状态会丢失。仍会保留内置属性" "的值。" +msgid "" +"Sets the name of the translation domain used by [method tr] and [method " +"tr_n]. See also [TranslationServer]." +msgstr "" +"设置 [method tr] 和 [method tr_n] 所使用的翻译域的名称。另见 " +"[TranslationServer]。" + msgid "" "Returns a [String] representing the object. Defaults to " "[code]\"<ClassName#RID>\"[/code]. Override [method _to_string] to customize " @@ -74681,6 +94004,12 @@ msgid "" "attached. Used internally." msgstr "该对象初始化时收到的通知,发生在附加脚本之前。内部使用。" +msgid "" +"Notification received when the object is about to be deleted. Can be used " +"like destructors in object-oriented programming languages." +msgstr "" +"该对象即将被删除时收到的通知。可以用作其他面向对象编程语言中的析构函数。" + msgid "" "Notification received when the object finishes hot reloading. This " "notification is only sent for extensions classes and derived." @@ -74735,6 +94064,61 @@ msgid "" "areas." msgstr "为 3D 节点提供遮挡剔除,可以提高封闭区域的性能。" +msgid "" +"Occlusion culling can improve rendering performance in closed/semi-open areas " +"by hiding geometry that is occluded by other objects.\n" +"The occlusion culling system is mostly static. [OccluderInstance3D]s can be " +"moved or hidden at run-time, but doing so will trigger a background " +"recomputation that can take several frames. It is recommended to only move " +"[OccluderInstance3D]s sporadically (e.g. for procedural generation purposes), " +"rather than doing so every frame.\n" +"The occlusion culling system works by rendering the occluders on the CPU in " +"parallel using [url=https://www.embree.org/]Embree[/url], drawing the result " +"to a low-resolution buffer then using this to cull 3D nodes individually. In " +"the 3D editor, you can preview the occlusion culling buffer by choosing " +"[b]Perspective > Display Advanced... > Occlusion Culling Buffer[/b] in the " +"top-left corner of the 3D viewport. The occlusion culling buffer quality can " +"be adjusted in the Project Settings.\n" +"[b]Baking:[/b] Select an [OccluderInstance3D] node, then use the [b]Bake " +"Occluders[/b] button at the top of the 3D editor. Only opaque materials will " +"be taken into account; transparent materials (alpha-blended or alpha-tested) " +"will be ignored by the occluder generation.\n" +"[b]Note:[/b] Occlusion culling is only effective if [member ProjectSettings." +"rendering/occlusion_culling/use_occlusion_culling] is [code]true[/code]. " +"Enabling occlusion culling has a cost on the CPU. Only enable occlusion " +"culling if you actually plan to use it. Large open scenes with few or no " +"objects blocking the view will generally not benefit much from occlusion " +"culling. Large open scenes generally benefit more from mesh LOD and " +"visibility ranges ([member GeometryInstance3D.visibility_range_begin] and " +"[member GeometryInstance3D.visibility_range_end]) compared to occlusion " +"culling.\n" +"[b]Note:[/b] Due to memory constraints, occlusion culling is not supported by " +"default in Web export templates. It can be enabled by compiling custom Web " +"export templates with [code]module_raycast_enabled=yes[/code]." +msgstr "" +"遮挡剔除可以通过隐藏被其他对象遮挡的几何体,来提高封闭/半开放区域的渲染性" +"能。\n" +"遮挡剔除系统大多是静态的。[OccluderInstance3D] 可以在运行时移动或隐藏,但这样" +"做会触发可能需要几帧的背景重新计算。建议仅偶尔移动 [OccluderInstance3D](例" +"如,出于程序生成目的),而不是每帧都这样做。\n" +"遮挡剔除系统的工作原理是,使用 [url=https://www.embree.org/]Embree[/url] 在 " +"CPU 上并行渲染遮挡物,将结果绘制到一个低分辨率缓冲区,然后使用它来单独剔除 3D " +"的节点。在 3D 编辑器中,可以通过选择 3D 视口左上角的[b]透视图 > 显示高级... > " +"遮挡剔除缓冲区[/b],来预览遮挡剔除缓冲区。可以在项目设置中调整遮挡剔除缓冲区的" +"质量。\n" +"[b]烘焙:[/b]选择一个 [OccluderInstance3D] 节点,然后使用 3D 编辑器顶部的[b]烘" +"焙遮挡物[/b]按钮。只考虑不透明的材质;遮挡器生成将忽略透明材质(alpha 混合或 " +"alpha 测试)。\n" +"[b]注意:[/b]遮挡剔除只有在 [member ProjectSettings.rendering/" +"occlusion_culling/use_occlusion_culling] 为 [code]true[/code] 时才有效。启用遮" +"挡剔除会消耗一定的 CPU。仅当确实打算使用遮挡剔除时才启用它。具有很少或没有物" +"体,将阻挡视口的大型开放场景,通常不会从遮挡剔除中受益更多。与遮挡剔除相比,大" +"型开放场景通常从网格 LOD 和可见性范围([member GeometryInstance3D." +"visibility_range_begin] 和 [member GeometryInstance3D.visibility_range_end])" +"中受益更多。\n" +"[b]注意:[/b]由于内存限制,Web 导出模板中默认不支持遮挡剔除。编译自定义 Web 导" +"出模板时使用 [code]module_raycast_enabled=yes[/code] 可以启用。" + msgid "" "The visual layers to account for when baking for occluders. Only " "[MeshInstance3D]s whose [member VisualInstance3D.layers] match with this " @@ -75011,6 +94395,11 @@ msgid "" "and joysticks." msgstr "该动作提供 [Vector2] 值,可以和嵌入式控制板与操纵杆绑定。" +msgid "" +"Binding modifier that applies on individual actions related to an interaction " +"profile." +msgstr "对交互配置相关的独立动作应用的绑定修改器。" + msgid "" "Collection of [OpenXRActionSet] and [OpenXRInteractionProfile] resources for " "the OpenXR module." @@ -75117,6 +94506,38 @@ msgstr "该动作集的本地化名称。" msgid "The priority for this action set." msgstr "该动作集的优先级。" +msgid "" +"The analog threshold binding modifier can modify a float input to a boolean " +"input with specified thresholds." +msgstr "模拟阈值绑定修改器能够根据指定的阈值将 float 输入修改为布尔值输入。" + +msgid "" +"The analog threshold binding modifier can modify a float input to a boolean " +"input with specified thresholds.\n" +"See [url=https://registry.khronos.org/OpenXR/specs/1.1/html/xrspec." +"html#XR_VALVE_analog_threshold]XR_VALVE_analog_threshold[/url] for in-depth " +"details." +msgstr "" +"模拟阈值绑定修改器能够根据指定的阈值将 float 输入修改为布尔值输入。\n" +"详见 [url=https://registry.khronos.org/OpenXR/specs/1.1/html/xrspec." +"html#XR_VALVE_analog_threshold]XR_VALVE_analog_threshold[/url]。" + +msgid "Haptic pulse to emit when the user releases the input." +msgstr "用户松开输入时发出的触觉脉冲。" + +msgid "When our input value falls below this, our output becomes false." +msgstr "输入值低于此值时,输出变为 false。" + +msgid "Haptic pulse to emit when the user presses the input." +msgstr "用户按下输入时发出的触觉脉冲。" + +msgid "" +"When our input value is equal or larger than this value, our output becomes " +"true. It stays true until it falls under the [member off_threshold] value." +msgstr "" +"输入大于等于此值时,输出变为 true。直到低于 [member off_threshold] 都会保持为 " +"true。" + msgid "Makes the OpenXR API available for GDExtension." msgstr "为 GDExtension 提供 OpenXR API。" @@ -75154,6 +94575,11 @@ msgstr "xrBeginSession 文档" msgid "XrPosef documentation" msgstr "XrPosef 文档" +msgid "" +"Returns the corresponding [code]XrAction[/code] OpenXR handle for the given " +"action RID." +msgstr "返回与给定动作 RID 对应的 [code]XrAction[/code] OpenXR 句柄。" + msgid "" "Returns [code]true[/code] if OpenXR is initialized for rendering with an XR " "viewport." @@ -75206,6 +94632,20 @@ msgstr "" msgid "Returns the predicted display timing for the current frame." msgstr "返回当前帧的预测显示时间。" +msgid "" +"Returns the far boundary value of the camera frustum.\n" +"[b]Note:[/b] This is only accessible in the render thread." +msgstr "" +"返回相机视锥的远端边界值。\n" +"[b]注意:[/b]只能在渲染线程中访问。" + +msgid "" +"Returns the near boundary value of the camera frustum.\n" +"[b]Note:[/b] This is only accessible in the render thread." +msgstr "" +"返回相机视锥的近端边界值。\n" +"[b]注意:[/b]只能在渲染线程中访问。" + msgid "" "Returns the OpenXR session, which is an [url=https://registry.khronos.org/" "OpenXR/specs/1.0/man/html/XrSession.html]XrSession[/url] cast to an integer." @@ -75213,6 +94653,9 @@ msgstr "" "返回该 OpenXR 会话,它是一个被转换为整数的 [url=https://registry.khronos.org/" "OpenXR/specs/1.0/man/html/XrSession.html]XrSession[/url]。" +msgid "Returns an array of supported swapchain formats." +msgstr "返回支持的交换链格式的数组。" + msgid "Returns the name of the specified swapchain format." msgstr "返回指定交换链格式的名称。" @@ -75246,6 +94689,25 @@ msgstr "" msgid "Returns [code]true[/code] if OpenXR is enabled." msgstr "如果启用 OpenXR,则返回 [code]true[/code]。" +msgid "Acquires the image of the provided swapchain." +msgstr "获取给定交换链的图像。" + +msgid "" +"Returns a pointer to a new swapchain created using the provided parameters." +msgstr "返回一个指针,指向使用给定参数创建的新交换链。" + +msgid "Destroys the provided swapchain and frees it from memory." +msgstr "销毁给定的交换链并在内存中将其释放。" + +msgid "Returns the RID of the provided swapchain's image." +msgstr "返回给定交换链图像的 RID。" + +msgid "Returns the [code]XrSwapchain[/code] handle of the provided swapchain." +msgstr "返回给定交换链的 [code]XrSwapchain[/code] 句柄。" + +msgid "Releases the image of the provided swapchain." +msgstr "释放给定交换链的图像。" + msgid "Registers the given extension as a composition layer provider." msgstr "将给定扩展注册为组合层提供器。" @@ -75257,6 +94719,11 @@ msgstr "" "如果设置为 [code]true[/code],则会加载 OpenXR 扩展,该扩展能够模拟 [constant " "XRInterface.XR_ENV_BLEND_MODE_ALPHA_BLEND] 混合模式。" +msgid "" +"Sets the render region to [param render_region], overriding the normal render " +"target's rect." +msgstr "将渲染区域设置为 [param render_region],覆盖常规渲染目标的矩形区域。" + msgid "" "Creates a [Transform3D] from an [url=https://registry.khronos.org/OpenXR/" "specs/1.0/man/html/XrPosef.html]XrPosef[/url]." @@ -75295,6 +94762,36 @@ msgid "" "Means that [constant XRInterface.XR_ENV_BLEND_MODE_ALPHA_BLEND] is emulated." msgstr "表示模拟 [constant XRInterface.XR_ENV_BLEND_MODE_ALPHA_BLEND]。" +msgid "Binding modifier base class." +msgstr "绑定修改器基类。" + +msgid "" +"Binding modifier base class. Subclasses implement various modifiers that " +"alter how an OpenXR runtime processes inputs." +msgstr "" +"绑定修改器基类。子类会实现各种修改器,改变 OpenXR 运行时对输入的处理方式。" + +msgid "" +"Return the description of this class that is used for the title bar of the " +"binding modifier editor." +msgstr "返回该类的描述,会显示在绑定修改器编辑器的标题栏。" + +msgid "Binding modifier editor." +msgstr "绑定修改器编辑器。" + +msgid "" +"This is the default binding modifier editor used in the OpenXR action map." +msgstr "OpenXR 动作映射所使用的默认绑定修改器编辑器。" + +msgid "Returns the [OpenXRBindingModifier] currently being edited." +msgstr "返回当前正在编辑的 [OpenXRBindingModifier]。" + +msgid "" +"Setup this editor for the provided [param action_map] and [param " +"binding_modifier]." +msgstr "" +"针对给定的 [param action_map] 和 [param binding_modifier] 设置该编辑器。" + msgid "The parent class of all OpenXR composition layer nodes." msgstr "所有 OpenXR 合成层节点的父类。" @@ -75312,6 +94809,21 @@ msgstr "" "[b]注意:[/b]如果 OpenXR 运行时不支持给定的合成层类型,则可以使用 " "[ViewportTexture] 生成后备网格,以模拟合成层。" +msgid "" +"Returns a [JavaObject] representing an [code]android.view.Surface[/code] if " +"[member use_android_surface] is enabled and OpenXR has created the surface. " +"Otherwise, this will return [code]null[/code].\n" +"[b]Note:[/b] The surface can only be created during an active OpenXR session. " +"So, if [member use_android_surface] is enabled outside of an OpenXR session, " +"it won't be created until a new session fully starts." +msgstr "" +"如果启用了 [member use_android_surface] 并且 OpenXR 已创建 [code]android.view." +"Surface[/code],则返回代表该表面的 [JavaObject]。否则返回 [code]null[/" +"code]。\n" +"[b]注意:[/b]表面只能在活动的 OpenXR 会话中创建。因此,如果 [member " +"use_android_surface] 是在 OpenXR 会话外启用的,就需要等到启动全新的会话才会创" +"建。" + msgid "" "Returns UV coordinates where the given ray intersects with the composition " "layer. [param origin] and [param direction] must be in global space.\n" @@ -75321,6 +94833,15 @@ msgstr "" "于全局空间中。\n" "如果射线不相交,则返回 [code]Vector2(-1.0, -1.0)[/code]。" +msgid "" +"Returns [code]true[/code] if the OpenXR runtime natively supports this " +"composition layer type.\n" +"[b]Note:[/b] This will only return an accurate result after the OpenXR " +"session has started." +msgstr "" +"如果 OpenXR 运行时本身支持该合成层类型,则返回 [code]true[/code]。\n" +"[b]注意:[/b]仅在 OpenXR 会话启动后才会返回准确结果。" + msgid "" "Enables the blending the layer using its alpha channel.\n" "Can be combined with [member Viewport.transparent_bg] to give the layer a " @@ -75329,6 +94850,12 @@ msgstr "" "启用使用其 alpha 通道混合图层的功能。\n" "可以与 [member Viewport.transparent_bg] 结合使用,以便为图层提供透明背景。" +msgid "" +"The size of the Android surface to create if [member use_android_surface] is " +"enabled." +msgstr "" +"如果启用了 [member use_android_surface],则为要创建的 Android 表面的大小。" + msgid "" "Enables a technique called \"hole punching\", which allows putting the " "composition layer behind the main projection layer (i.e. setting [member " @@ -75412,6 +94939,13 @@ msgstr "能够在四边形上渲染 [SubViewport] 的 OpenXR 合成层。" msgid "The dimensions of the quad." msgstr "四边形的尺寸。" +msgid "The DPad binding modifier converts an axis input to a dpad output." +msgstr "十字键绑定修改器会将轴输入转换为十字键输出。" + +msgid "" +"The angle of each wedge that identifies the 4 directions of the emulated dpad." +msgstr "每个楔形的角度,用于标识模拟十字键的四个方向。" + msgid "Allows clients to implement OpenXR extensions with GDExtension." msgstr "允许客户端使用 GDExtension 实现 OpenXR 扩展。" @@ -75590,6 +95124,16 @@ msgstr "" "当通过 [OpenXRCompositionLayer] 创建的合成层被销毁时调用。\n" "[param layer] 是指向 [code]XrCompositionLayerBaseHeader[/code] 结构的指针。" +msgid "" +"Adds additional data structures to Android surface swapchains created by " +"[OpenXRCompositionLayer].\n" +"[param property_values] contains the values of the properties returned by " +"[method _get_viewport_composition_layer_extension_properties]." +msgstr "" +"向由 [OpenXRCompositionLayer] 创建的合成层添加其他数据结构。\n" +"[param property_values] 包含 [method " +"_get_viewport_composition_layer_extension_properties] 返回的属性值。" + msgid "Adds additional data structures when each hand tracker is created." msgstr "当每个手部跟踪器被创建时添加额外的数据结构。" @@ -75602,6 +95146,9 @@ msgstr "创建 OpenXR 会话时添加额外的数据结构。" msgid "Adds additional data structures when creating OpenXR swapchains." msgstr "创建 OpenXR 交换链时添加额外的数据结构。" +msgid "Adds additional data structures when querying OpenXR system abilities." +msgstr "查询 OpenXR 系统能力时添加额外的数据结构。" + msgid "" "Adds additional data structures to composition layers created by " "[OpenXRCompositionLayer].\n" @@ -75713,6 +95260,41 @@ msgstr "骨架骨骼仅旋转以与跟踪的骨骼对齐,从而保留骨骼长 msgid "Maximum supported bone update mode." msgstr "最大支持的骨骼更新模式。" +msgid "OpenXR Haptic feedback base class." +msgstr "OpenXR 触觉反馈基类。" + +msgid "This is a base class for haptic feedback resources." +msgstr "这是触觉反馈资源的基类。" + +msgid "Vibration haptic feedback." +msgstr "振动触觉反馈。" + +msgid "" +"This haptic feedback resource makes it possible to define a vibration based " +"haptic feedback pulse that can be triggered through actions in the OpenXR " +"action map." +msgstr "" +"该触觉反馈资源能够定义基于振动的触觉反馈脉冲,该脉冲可以通过 OpenXR 动作映射中" +"的动作触发。" + +msgid "" +"The amplitude of the pulse between [code]0.0[/code] and [code]1.0[/code]." +msgstr "脉冲的幅度,在 [code]0.0[/code] 和 [code]1.0[/code] 之间。" + +msgid "" +"The duration of the pulse in nanoseconds. Use [code]-1[/code] for a minimum " +"duration pulse for the current XR runtime." +msgstr "" +"脉冲的持续时间,单位为纳秒。使用 [code]-1[/code] 表示当前 XR 运行时的最小持续" +"时间脉冲。" + +msgid "" +"The frequency of the pulse in Hz. [code]0.0[/code] will let the XR runtime " +"chose an optimal frequency for the device used." +msgstr "" +"脉冲的频率,单位为赫兹。[code]0.0[/code] 会让 XR 运行时为所使用的设备选择最佳" +"频率。" + msgid "Suggested bindings object for OpenXR." msgstr "用于 OpenXR 的建议绑定对象。" @@ -75736,12 +95318,50 @@ msgstr "检索在该索引处的绑定。" msgid "Get the number of bindings in this interaction profile." msgstr "获取该交互配置中的绑定数量。" +msgid "Get the [OpenXRBindingModifier] at this index." +msgstr "获取位于该索引的 [OpenXRBindingModifier]。" + +msgid "Get the number of binding modifiers in this interaction profile." +msgstr "获取交互配置中绑定修改器的数量。" + +msgid "Binding modifiers for this interaction profile." +msgstr "用于该交互配置的绑定修改器。" + msgid "Action bindings for this interaction profile." msgstr "用于该交互配置的动作绑定。" msgid "The interaction profile path identifying the XR device." msgstr "标识该 XR 设备的交互配置路径。" +msgid "Default OpenXR interaction profile editor." +msgstr "默认 OpenXR 交互配置编辑器。" + +msgid "" +"This is the default OpenXR interaction profile editor that provides a generic " +"interface for editing any interaction profile for which no custom editor has " +"been defined." +msgstr "" +"这是默认的 OpenXR 交互配置编辑器,为编辑交互配置提供通用界面,未定义任何自定义" +"编辑器。" + +msgid "Base class for editing interaction profiles." +msgstr "对交互配置进行编辑的基类。" + +msgid "" +"This is a base class for interaction profile editors used by the OpenXR " +"action map editor. It can be used to create bespoke editors for specific " +"interaction profiles." +msgstr "" +"这是 OpenXR 动作映射编辑器所使用的交互配置编辑器的基类。可以用来创建针对特定的" +"交互配置的自定义编辑器。" + +msgid "" +"Setup this editor for the provided [param action_map] and [param " +"interaction_profile]." +msgstr "" +"使用给定的动作映射 [param action_map] 和交互配置 [param interaction_profile] " +"设置该编辑器。" + msgid "Meta class registering supported devices in OpenXR." msgstr "在 OpenXR 中注册受支持设备的元类。" @@ -76240,9 +95860,21 @@ msgstr "如果该输入/输出路径是该绑定的一部分,则返回 [code]t msgid "Removes this input/output path from this binding." msgstr "从该绑定中移除该输入/输出路径。" +msgid "[OpenXRAction] that is bound to [member binding_path]." +msgstr "与绑定路径 [member binding_path] 绑定的 [OpenXRAction]。" + +msgid "Binding modifiers for this binding." +msgstr "该绑定的绑定修改器。" + +msgid "Use [member binding_path] instead." +msgstr "请改用 [member binding_path]。" + msgid "Paths that define the inputs or outputs bound on the device." msgstr "定义该设备上绑定的输入或输出的路径。" +msgid "Binding modifier that applies directly on an interaction profile." +msgstr "直接应用于某个交互配置的绑定修改器。" + msgid "An optimized translation, used by default for CSV Translations." msgstr "经过优化的翻译,由 CSV 翻译默认使用。" @@ -76252,6 +95884,15 @@ msgid "" msgstr "" "经过优化的翻译,由 CSV 翻译默认使用。使用实时压缩翻译,从而生成非常小的词典。" +msgid "" +"Generates and sets an optimized translation from the given [Translation] " +"resource.\n" +"[b]Note:[/b] This method is intended to be used in the editor. It does " +"nothing when called from an exported project." +msgstr "" +"根据给定的 [Translation] 资源生成并设置优化翻译。\n" +"[b]注意:[/b]该方法适于在编辑器中使用。在导出后的项目中调用无效。" + msgid "A button that brings up a dropdown with selectable options when pressed." msgstr "按下时弹出下拉菜单的按钮。" @@ -76494,6 +96135,16 @@ msgid "" msgstr "" "使用主机平台的实现显示一个模式对话框。引擎执行将被阻塞,直到该对话框被关闭。" +msgid "" +"Shuts down the system MIDI driver. Godot will no longer receive " +"[InputEventMIDI]. See also [method open_midi_inputs] and [method " +"get_connected_midi_inputs].\n" +"[b]Note:[/b] This method is implemented on Linux, macOS, Windows, and Web." +msgstr "" +"关闭系统 MIDI 驱动程序。Godot 将不再接收 [InputEventMIDI]。另见 [method " +"open_midi_inputs] 和 [method get_connected_midi_inputs]。\n" +"[b]注意:[/b]该方法在 Linux、macOS、Windows 和 Web 上实现。" + msgid "" "Crashes the engine (or the editor if called within a [code]@tool[/code] " "script). See also [method kill].\n" @@ -76526,6 +96177,55 @@ msgstr "" "如果你希望运行不同的进程,请参阅 [method create_process]。\n" "[b]注意:[/b]该方法在 Android、Linux、macOS 和 Windows 上实现。" +msgid "" +"Creates a new process that runs independently of Godot. It will not terminate " +"when Godot terminates. The path specified in [param path] must exist and be " +"an executable file or macOS [code].app[/code] bundle. The path is resolved " +"based on the current platform. The [param arguments] are used in the given " +"order and separated by a space.\n" +"On Windows, if [param open_console] is [code]true[/code] and the process is a " +"console app, a new terminal window will be opened.\n" +"If the process is successfully created, this method returns its process ID, " +"which you can use to monitor the process (and potentially terminate it with " +"[method kill]). Otherwise, this method returns [code]-1[/code].\n" +"[b]Example:[/b] Run another instance of the project:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var pid = OS.create_process(OS.get_executable_path(), [])\n" +"[/gdscript]\n" +"[csharp]\n" +"var pid = OS.CreateProcess(OS.GetExecutablePath(), []);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"See [method execute] if you wish to run an external command and retrieve the " +"results.\n" +"[b]Note:[/b] This method is implemented on Android, Linux, macOS, and " +"Windows.\n" +"[b]Note:[/b] On macOS, sandboxed applications are limited to run only " +"embedded helper executables, specified during export or system .app bundle, " +"system .app bundles will ignore arguments." +msgstr "" +"创建一个独立于 Godot 运行的新进程。Godot 终止时它也不会终止。[param path] 中指" +"定的路径必须存在,并且是可执行文件或 macOS 的 [code].app[/code] 捆绑包。将使用" +"平台路径解析。[param arguments] 按给定顺序使用,并以空格分隔。\n" +"在 Windows 上,如果 [param open_console] 为 [code]true[/code] 并且该进程是一个" +"控制台应用程序,则会打开新的终端窗口。\n" +"如果进程创建成功,则该方法将返回新的进程 ID,可以用来监视进程(也可以通过 " +"[method kill] 来终止进程)。否则该方法返回 [code]-1[/code]。\n" +"[b]示例:[/b]运行当前项目的另一个实例:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var pid = OS.create_process(OS.get_executable_path(), [])\n" +"[/gdscript]\n" +"[csharp]\n" +"var pid = OS.CreateProcess(OS.GetExecutablePath(), []);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"如果希望运行外部命令并获取结果,请参阅 [method execute]。\n" +"[b]注意:[/b]该方法在 Android、Linux、macOS 和 Windows 上实现。\n" +"[b]注意:[/b]在 macOS 上,沙盒应用程序被限制为只能运行嵌入式辅助可执行文件,在" +"导出或系统 .app 捆绑包期间指定,系统 .app 捆绑包将忽略参数。" + msgid "" "Delays execution of the current thread by [param msec] milliseconds. [param " "msec] must be greater than or equal to [code]0[/code]. Otherwise, [method " @@ -76580,6 +96280,171 @@ msgstr "" "或 [EditorScript] 的一部分时,它会冻结编辑器但不会冻结当前正在运行的项目(因为" "项目是一个独立的子进程)。" +msgid "" +"Executes the given process in a [i]blocking[/i] way. The file specified in " +"[param path] must exist and be executable. The system path resolution will be " +"used. The [param arguments] are used in the given order, separated by spaces, " +"and wrapped in quotes.\n" +"If an [param output] array is provided, the complete shell output of the " +"process is appended to [param output] as a single [String] element. If [param " +"read_stderr] is [code]true[/code], the output to the standard error stream is " +"also appended to the array.\n" +"On Windows, if [param open_console] is [code]true[/code] and the process is a " +"console app, a new terminal window is opened.\n" +"This method returns the exit code of the command, or [code]-1[/code] if the " +"process fails to execute.\n" +"[b]Note:[/b] The main thread will be blocked until the executed command " +"terminates. Use [Thread] to create a separate thread that will not block the " +"main thread, or use [method create_process] to create a completely " +"independent process.\n" +"For example, to retrieve a list of the working directory's contents:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var output = []\n" +"var exit_code = OS.execute(\"ls\", [\"-l\", \"/tmp\"], output)\n" +"[/gdscript]\n" +"[csharp]\n" +"Godot.Collections.Array output = [];\n" +"int exitCode = OS.Execute(\"ls\", [\"-l\", \"/tmp\"], output);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"If you wish to access a shell built-in or execute a composite command, a " +"platform-specific shell can be invoked. For example:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var output = []\n" +"OS.execute(\"CMD.exe\", [\"/C\", \"cd %TEMP% && dir\"], output)\n" +"[/gdscript]\n" +"[csharp]\n" +"Godot.Collections.Array output = [];\n" +"OS.Execute(\"CMD.exe\", [\"/C\", \"cd %TEMP% && dir\"], output);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] This method is implemented on Android, Linux, macOS, and " +"Windows.\n" +"[b]Note:[/b] To execute a Windows command interpreter built-in command, " +"specify [code]cmd.exe[/code] in [param path], [code]/c[/code] as the first " +"argument, and the desired command as the second argument.\n" +"[b]Note:[/b] To execute a PowerShell built-in command, specify " +"[code]powershell.exe[/code] in [param path], [code]-Command[/code] as the " +"first argument, and the desired command as the second argument.\n" +"[b]Note:[/b] To execute a Unix shell built-in command, specify shell " +"executable name in [param path], [code]-c[/code] as the first argument, and " +"the desired command as the second argument.\n" +"[b]Note:[/b] On macOS, sandboxed applications are limited to run only " +"embedded helper executables, specified during export.\n" +"[b]Note:[/b] On Android, system commands such as [code]dumpsys[/code] can " +"only be run on a rooted device." +msgstr "" +"以[i]阻塞[/i]方式执行给定进程。[param path] 中指定的文件必须存在且可执行。将使" +"用系统路径解析。[param arguments] 按给定顺序使用,用空格分隔,并用引号包裹。\n" +"如果提供了 [param output] 数组,则进程的完整 shell 输出,将作为单个 [String] " +"元素被追加到 [param output]。如果 [param read_stderr] 为 [code]true[/code],则" +"标准错误流的输出也会被追加到数组中。\n" +"在 Windows 上,如果 [param open_console] 为 [code]true[/code] 并且进程是控制台" +"应用程序,则会打开一个新的终端窗口。\n" +"该方法返回命令的退出代码,如果进程执行失败,则返回 [code]-1[/code]。\n" +"[b]注意:[/b]主线程将被阻塞,直到执行的命令终止。使用 [Thread] 创建一个不会阻" +"塞主线程的独立线程,或者使用 [method create_process] 创建一个完全独立的进" +"程。\n" +"例如,要检索工作目录内容的列表:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var output = []\n" +"var exit_code = OS.execute(\"ls\", [\"-l\", \"/tmp\"], output)\n" +"[/gdscript]\n" +"[csharp]\n" +"Godot.Collections.Array output = [];\n" +"int exitCode = OS.Execute(\"ls\", [\"-l\", \"/tmp\"], output);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"如果希望访问内置的 shell 或执行复合命令,则可以调用特定于平台的 shell。例" +"如:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var output = []\n" +"OS.execute(\"CMD.exe\", [\"/C\", \"cd %TEMP% && dir\"], output)\n" +"[/gdscript]\n" +"[csharp]\n" +"Godot.Collections.Array output = [];\n" +"OS.Execute(\"CMD.exe\", [\"/C\", \"cd %TEMP% && dir\"], output);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b]该方法在 Android、Linux、macOS 和 Windows 上实现。\n" +"[b]注意:[/b]要执行 Windows 命令解释器的内置命令,在 [param path] 中指定 " +"[code]cmd.exe[/code],将 [code]/c[/code] 作为第一个参数,并将所需的命令作为第" +"二个参数。\n" +"[b]注意:[/b]要执行 PowerShell 的内置命令,在 [param path] 中指定 " +"[code]powershell.exe[/code],将 [code]-Command[/code] 作为第一个参数,然后将所" +"需的命令作为第二个参数。\n" +"[b]注意:[/b]要执行 Unix shell 内置命令,请在 [param path] 中指定 shell 可执行" +"文件名称,将 [code]-c[/code] 作为第一个参数,并将所需的命令作为第二个参数。\n" +"[b]注意:[/b]在 macOS 上,沙盒应用程序仅限于运行在导出期间指定的嵌入的辅助可执" +"行文件。\n" +"[b]注意:[/b]在 Android 上,[code]dumpsys[/code] 等系统命令只能在 root 设备上" +"运行。" + +msgid "" +"Creates a new process that runs independently of Godot with redirected IO. It " +"will not terminate when Godot terminates. The path specified in [param path] " +"must exist and be an executable file or macOS [code].app[/code] bundle. The " +"path is resolved based on the current platform. The [param arguments] are " +"used in the given order and separated by a space.\n" +"If [param blocking] is [code]false[/code], created pipes work in non-blocking " +"mode, i.e. read and write operations will return immediately. Use [method " +"FileAccess.get_error] to check if the last read/write operation was " +"successful.\n" +"If the process cannot be created, this method returns an empty [Dictionary]. " +"Otherwise, this method returns a [Dictionary] with the following keys:\n" +"- [code]\"stdio\"[/code] - [FileAccess] to access the process stdin and " +"stdout pipes (read/write).\n" +"- [code]\"stderr\"[/code] - [FileAccess] to access the process stderr pipe " +"(read only).\n" +"- [code]\"pid\"[/code] - Process ID as an [int], which you can use to monitor " +"the process (and potentially terminate it with [method kill]).\n" +"[b]Note:[/b] This method is implemented on Android, Linux, macOS, and " +"Windows.\n" +"[b]Note:[/b] To execute a Windows command interpreter built-in command, " +"specify [code]cmd.exe[/code] in [param path], [code]/c[/code] as the first " +"argument, and the desired command as the second argument.\n" +"[b]Note:[/b] To execute a PowerShell built-in command, specify " +"[code]powershell.exe[/code] in [param path], [code]-Command[/code] as the " +"first argument, and the desired command as the second argument.\n" +"[b]Note:[/b] To execute a Unix shell built-in command, specify shell " +"executable name in [param path], [code]-c[/code] as the first argument, and " +"the desired command as the second argument.\n" +"[b]Note:[/b] On macOS, sandboxed applications are limited to run only " +"embedded helper executables, specified during export or system .app bundle, " +"system .app bundles will ignore arguments." +msgstr "" +"创建一个独立于 Godot 运行的新进程并重定向 IO。Godot 终止时它也不会终止。" +"[param path] 中指定的路径必须存在,并且是可执行文件或 macOS 的 [code].app[/" +"code] 捆绑包。将使用平台路径解析。[param arguments] 按给定顺序使用,并以空格分" +"隔。\n" +"如果 [param blocking] 为 [code]false[/code],则创建的管道使用非阻塞模式,即读" +"写操作会立即返回。请使用 [method FileAccess.get_error] 检查最近一次读写操作是" +"否成功。\n" +"如果无法创建进程,则该方法返回空的 [Dictionary]。否则该方法会返回一个 " +"[Dictionary],包含以下字段:\n" +"- [code]\"stdio\"[/code] - 用于访问进程 stdin 和 stdout 管道的 [FileAccess]" +"(读写)。\n" +"- [code]\"stderr\"[/code] - 用于访问进程 stderr 管道的 [FileAccess](只" +"读)。\n" +"- [code]\"pid\"[/code] - [int] 形式的进程 ID,可以用来监视进程(也可以通过 " +"[method kill] 来终止进程)。\n" +"[b]注意:[/b]该方法在 Android、Linux、macOS 和 Windows 上实现。\n" +"[b]注意:[/b]如果要执行 Windows 命令解释器的内置命令,请在 [param path] 中指" +"定 [code]cmd.exe[/code],使用 [code]/c[/code] 作为第一个参数并将所需的命令作为" +"第二个参数。\n" +"[b]注意:[/b]如果要执行 PowerShell 的内置命令,请在 [param path] 中指定 " +"[code]powershell.exe[/code],使用 [code]-Command[/code] 作为第一个参数并将所需" +"的命令作为第二个参数。\n" +"[b]注意:[/b]如果要执行 Unix Shell 的内置命令,请在 [param path] 中指定 shell " +"可执行文件的名称,使用 [code]-c[/code] 作为第一个参数并将所需的命令作为第二个" +"参数。\n" +"[b]注意:[/b]在 macOS 上,沙盒应用程序被限制为只能运行嵌入式辅助可执行文件,在" +"导出或系统 .app 捆绑包期间指定,系统 .app 捆绑包将忽略参数。" + msgid "" "Finds the keycode for the given string. The returned values are equivalent to " "the [enum Key] constants.\n" @@ -76643,6 +96508,96 @@ msgstr "" "不要与 [method get_user_data_dir] 混淆,后者返回[i]项目特定的[/i]用户数据路" "径。" +msgid "" +"Returns the command-line arguments passed to the engine.\n" +"Command-line arguments can be written in any form, including both [code]--key " +"value[/code] and [code]--key=value[/code] forms so they can be properly " +"parsed, as long as custom command-line arguments do not conflict with engine " +"arguments.\n" +"You can also incorporate environment variables using the [method " +"get_environment] method.\n" +"You can set [member ProjectSettings.editor/run/main_run_args] to define " +"command-line arguments to be passed by the editor when running the project.\n" +"[b]Example:[/b] Parse command-line arguments into a [Dictionary] using the " +"[code]--key=value[/code] form for arguments:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var arguments = {}\n" +"for argument in OS.get_cmdline_args():\n" +" if argument.contains(\"=\"):\n" +" var key_value = argument.split(\"=\")\n" +" arguments[key_value[0].trim_prefix(\"--\")] = key_value[1]\n" +" else:\n" +" # Options without an argument will be present in the dictionary,\n" +" # with the value set to an empty string.\n" +" arguments[argument.trim_prefix(\"--\")] = \"\"\n" +"[/gdscript]\n" +"[csharp]\n" +"var arguments = new Dictionary<string, string>();\n" +"foreach (var argument in OS.GetCmdlineArgs())\n" +"{\n" +" if (argument.Contains('='))\n" +" {\n" +" string[] keyValue = argument.Split(\"=\");\n" +" arguments[keyValue[0].TrimPrefix(\"--\")] = keyValue[1];\n" +" }\n" +" else\n" +" {\n" +" // Options without an argument will be present in the dictionary,\n" +" // with the value set to an empty string.\n" +" arguments[argument.TrimPrefix(\"--\")] = \"\";\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] Passing custom user arguments directly is not recommended, as " +"the engine may discard or modify them. Instead, pass the standard UNIX double " +"dash ([code]--[/code]) and then the custom arguments, which the engine will " +"ignore by design. These can be read via [method get_cmdline_user_args]." +msgstr "" +"返回传递给引擎的命令行参数。\n" +"命令行参数可以写成任何形式,包括 [code]--key value[/code] 和 [code]--" +"key=value[/code] 两种形式,这样它们就可以被正确解析,只要自定义命令行参数不与" +"引擎参数冲突。\n" +"还可以使用 [method get_environment] 方法合并环境变量。\n" +"可以设置 [member ProjectSettings.editor/run/main_run_args] 来定义编辑器在运行" +"项目时传递的命令行参数。\n" +"[b]示例:[/b]使用参数的 [code]--key=value[/code] 形式,将命令行参数解析为 " +"[Dictionary]:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var arguments = {}\n" +"for argument in OS.get_cmdline_args():\n" +" if argument.contains(\"=\"):\n" +" var key_value = argument.split(\"=\")\n" +" arguments[key_value[0].trim_prefix(\"--\")] = key_value[1]\n" +" else:\n" +" # 没有参数的选项将出现在字典中,\n" +" # 其值被设置为空字符串。\n" +" arguments[argument.trim_prefix(\"--\")] = \"\"\n" +"[/gdscript]\n" +"[csharp]\n" +"var arguments = new Dictionary<string, string>();\n" +"foreach (var argument in OS.GetCmdlineArgs())\n" +"{\n" +" if (argument.Contains('='))\n" +" {\n" +" string[] keyValue = argument.Split(\"=\");\n" +" arguments[keyValue[0].TrimPrefix(\"--\")] = keyValue[1];\n" +" }\n" +" else\n" +" {\n" +" // 没有参数的选项将出现在字典中,\n" +" // 其值被设置为空字符串。\n" +" arguments[argument.TrimPrefix(\"--\")] = \"\";\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b]不建议直接传递自定义用户参数,因为引擎可能会丢弃或修改它们。相" +"反,传递标准的 UNIX 双破折号([code]--[/code]),然后传递自定义参数,引擎将根" +"据设计忽略这些参数。这些可以通过 [method get_cmdline_user_args] 读取。" + msgid "" "Returns the command-line user arguments passed to the engine. User arguments " "are ignored by the engine and reserved for the user. They are passed after " @@ -76691,6 +96646,29 @@ msgstr "" "不要与 [method get_user_data_dir] 混淆,后者返回[i]项目专用的[/i]用户数据路" "径。" +msgid "" +"Returns an array of connected MIDI device names, if they exist. Returns an " +"empty array if the system MIDI driver has not previously been initialized " +"with [method open_midi_inputs]. See also [method close_midi_inputs].\n" +"[b]Note:[/b] This method is implemented on Linux, macOS, Windows, and Web.\n" +"[b]Note:[/b] On the Web platform, Web MIDI needs to be supported by the " +"browser. [url=https://caniuse.com/midi]For the time being[/url], it is " +"currently supported by all major browsers, except Safari.\n" +"[b]Note:[/b] On the Web platform, using MIDI input requires a browser " +"permission to be granted first. This permission request is performed when " +"calling [method open_midi_inputs]. The browser will refrain from processing " +"MIDI input until the user accepts the permission request." +msgstr "" +"如果存在已连接的 MIDI 设备,则返回设备名称的数组。如果尚未使用 [method " +"open_midi_inputs] 初始化系统 MIDI 驱动,则返回空数组。另见 [method " +"close_midi_inputs]。\n" +"[b]注意:[/b]该方法在 Linux、macOS、Windows 和 Web 上实现。\n" +"[b]注意:[/b]在 Web 平台上,浏览器需要支持 Web MIDI。[url=https://caniuse.com/" +"midi]目前[/url]主流浏览器中除了 Safari 都支持。\n" +"[b]注意:[/b]在 Web 平台上,需要在浏览器中授权才能使用 MIDI 输入。权限请求会在" +"调用 [method open_midi_inputs] 时进行。用户接受权限请求后浏览器才会处理 MIDI " +"输入。" + msgid "" "Returns the [i]global[/i] user data directory according to the operating " "system's standards.\n" @@ -76897,6 +96875,15 @@ msgstr "" "- [code]\"stack\"[/code] - 当前线程的栈大小,单位为字节。\n" "[b]注意:[/b]每个条目的值在其未知时可能是 [code]-1[/code]。" +msgid "" +"Returns the model name of the current device.\n" +"[b]Note:[/b] This method is implemented on Android, iOS, macOS, and Windows. " +"Returns [code]\"GenericDevice\"[/code] on unsupported platforms." +msgstr "" +"返回当前设备的型号名称。\n" +"[b]注意:[/b]该方法在 Android、iOS、macOS 和 Windows 上实现。在不支持的平台上" +"返回 [code]\"GenericDevice\"[/code]。" + msgid "" "Returns the name of the host platform.\n" "- On Windows, this is [code]\"Windows\"[/code].\n" @@ -77077,6 +97064,15 @@ msgid "" "works in debug builds." msgstr "返回程序正在使用的静态内存量,以字节为单位。仅适用于调试版本。" +msgid "Returns type of the standard error device." +msgstr "返回标准错误设备的类型。" + +msgid "Returns type of the standard input device." +msgstr "返回标准输入设备的类型。" + +msgid "Returns type of the standard output device." +msgstr "返回标准输出设备的类型。" + msgid "" "Returns the list of certification authorities trusted by the operating system " "as a string of concatenated certificates in PEM format." @@ -77150,6 +97146,11 @@ msgstr "" "返回可用的字体家族名称列表。\n" "[b]注意:[/b]该方法在 Android、iOS、Linux、macOS、Windows 上实现。" +msgid "" +"Returns the [i]global[/i] temporary data directory according to the operating " +"system's standards." +msgstr "返回[i]全局[/i]临时数据目录,遵循操作系统标准。" + msgid "" "Returns the ID of the current thread. This can be used in logs to ease " "debugging of multi-threaded applications.\n" @@ -77250,6 +97251,26 @@ msgstr "" "其版本。\n" "[b]注意:[/b]该方法在 web 平台上不被支持。它将返回一个空字符串。" +msgid "" +"Returns the branded version used in marketing, followed by the build number " +"(on Windows) or the version number (on macOS). Examples include [code]11 " +"(build 22000)[/code] and [code]Sequoia (15.0.0)[/code]. This value can then " +"be appended to [method get_name] to get a full, human-readable operating " +"system name and version combination for the operating system. Windows feature " +"updates such as 24H2 are not contained in the resulting string, but Windows " +"Server is recognized as such (e.g. [code]2025 (build 26100)[/code] for " +"Windows Server 2025).\n" +"[b]Note:[/b] This method is only supported on Windows and macOS. On other " +"operating systems, it returns the same value as [method get_version]." +msgstr "" +"返回用于营销的品牌版本,后接构建号(Windows 上)或版本号(macOS 上)。例如 " +"[code]11 (build 22000)[/code] 和 [code]Sequoia (15.0.0)[/code]。这个值可以附加" +"到 [method get_name] 后面,获取该操作系统完整、人类可读的操作系统名称和版本组" +"合。“24H2”等 Windows 功能更新不包含在结果字符串中,但会识别 Windows Server(例" +"如 [code]2025 (build 26100)[/code] 表示 Windows Server 2025)。\n" +"[b]注意:[/b]该方法仅在 Windows 和 macOS 上支持。在其他操作系统上返回值与 " +"[method get_version] 相同。" + msgid "" "Returns the video adapter driver name and version for the user's currently " "active graphics card, as a [PackedStringArray]. See also [method " @@ -77322,6 +97343,41 @@ msgstr "" "[b]注意:[/b]要检查用于运行项目的 Godot 二进制文件是否是导出模板(调试或发" "布),请改用 [code]OS.has_feature(\"template\")[/code]。" +msgid "" +"Returns [code]true[/code] if the input keycode corresponds to a Unicode " +"character. For a list of codes, see the [enum Key] constants.\n" +"[codeblocks]\n" +"[gdscript]\n" +"print(OS.is_keycode_unicode(KEY_G)) # Prints true\n" +"print(OS.is_keycode_unicode(KEY_KP_4)) # Prints true\n" +"print(OS.is_keycode_unicode(KEY_TAB)) # Prints false\n" +"print(OS.is_keycode_unicode(KEY_ESCAPE)) # Prints false\n" +"[/gdscript]\n" +"[csharp]\n" +"GD.Print(OS.IsKeycodeUnicode((long)Key.G)); // Prints True\n" +"GD.Print(OS.IsKeycodeUnicode((long)Key.Kp4)); // Prints True\n" +"GD.Print(OS.IsKeycodeUnicode((long)Key.Tab)); // Prints False\n" +"GD.Print(OS.IsKeycodeUnicode((long)Key.Escape)); // Prints False\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"如果输入的键码对应 Unicode 字符,则返回 [code]true[/code]。键码列表见 [enum " +"Key] 常量。\n" +"[codeblocks]\n" +"[gdscript]\n" +"print(OS.is_keycode_unicode(KEY_G)) # 输出 true\n" +"print(OS.is_keycode_unicode(KEY_KP_4)) # 输出 true\n" +"print(OS.is_keycode_unicode(KEY_TAB)) # 输出 false\n" +"print(OS.is_keycode_unicode(KEY_ESCAPE)) # 输出 false\n" +"[/gdscript]\n" +"[csharp]\n" +"GD.Print(OS.IsKeycodeUnicode((long)Key.G)); // 输出 True\n" +"GD.Print(OS.IsKeycodeUnicode((long)Key.Kp4)); // 输出 True\n" +"GD.Print(OS.IsKeycodeUnicode((long)Key.Tab)); // 输出 False\n" +"GD.Print(OS.IsKeycodeUnicode((long)Key.Escape)); // 输出 False\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Returns [code]true[/code] if the child process ID ([param pid]) is still " "running or [code]false[/code] if it has terminated. [param pid] must be a " @@ -77426,6 +97482,103 @@ msgstr "" "[b]注意:[/b]该方法在 Android、Linux、macOS 和 Windows 上实现。\n" "[b]注意:[/b]如果用户在其系统上禁用了回收站,则该文件将被永久删除。" +msgid "" +"Initializes the singleton for the system MIDI driver, allowing Godot to " +"receive [InputEventMIDI]. See also [method get_connected_midi_inputs] and " +"[method close_midi_inputs].\n" +"[b]Note:[/b] This method is implemented on Linux, macOS, Windows, and Web.\n" +"[b]Note:[/b] On the Web platform, Web MIDI needs to be supported by the " +"browser. [url=https://caniuse.com/midi]For the time being[/url], it is " +"currently supported by all major browsers, except Safari.\n" +"[b]Note:[/b] On the Web platform, using MIDI input requires a browser " +"permission to be granted first. This permission request is performed when " +"calling [method open_midi_inputs]. The browser will refrain from processing " +"MIDI input until the user accepts the permission request." +msgstr "" +"初始化系统 MIDI 驱动的单例,允许 Godot 接收 [InputEventMIDI]。另见 [method " +"get_connected_midi_inputs] 和 [method close_midi_inputs]。\n" +"[b]注意:[/b]该方法在 Linux、macOS、Windows、Web 上实现。\n" +"[b]注意:[/b]在 Web 平台上,浏览器需要支持 Web MIDI。[url=https://caniuse.com/" +"midi]目前[/url]主流浏览器中除了 Safari 都支持。\n" +"[b]注意:[/b]在 Web 平台上,需要在浏览器中授权才能使用 MIDI 输入。权限请求会在" +"调用 [method open_midi_inputs] 时进行。用户接受权限请求后浏览器才会处理 MIDI " +"输入。" + +msgid "" +"Reads a user input as a UTF-8 encoded string from the standard input. This " +"operation can be [i]blocking[/i], which causes the window to freeze if " +"[method read_string_from_stdin] is called on the main thread.\n" +"- If standard input is console, this method will block until the program " +"receives a line break in standard input (usually by the user pressing " +"[kbd]Enter[/kbd]).\n" +"- If standard input is pipe, this method will block until a specific amount " +"of data is read or pipe is closed.\n" +"- If standard input is a file, this method will read a specific amount of " +"data (or less if end-of-file is reached) and return immediately.\n" +"[b]Note:[/b] This method automatically replaces [code]\\r\\n[/code] line " +"breaks with [code]\\n[/code] and removes them from the end of the string. Use " +"[method read_buffer_from_stdin] to read the unprocessed data.\n" +"[b]Note:[/b] This method is implemented on Linux, macOS, and Windows.\n" +"[b]Note:[/b] On exported Windows builds, run the console wrapper executable " +"to access the terminal. If standard input is console, calling this method " +"without console wrapped will freeze permanently. If standard input is pipe or " +"file, it can be used without console wrapper. If you need a single executable " +"with full console support, use a custom build compiled with the " +"[code]windows_subsystem=console[/code] flag." +msgstr "" +"从标准输入读取用户输入。这个操作可能导致[i]阻塞[/i] ,如果是在主线程上调用的 " +"[method read_string_from_stdin],就会导致窗口冻结。\n" +"- 如果标准输入是控制台,则该方法会阻塞到程序在标准输入中接收到一个断行为止(通" +"常由用户按下 [kbd]Enter[/kbd] 触发)。\n" +"- 如果标准输入是管道,则该方法会阻塞至读取指定量的数据或管道断开为止。\n" +"- 如果标准输入是文件,则该方法会读取指定量的数据(到达文件末尾时会则更少)并立" +"即返回。\n" +"[b]注意:[/b]该方法会自动将 [code]\\r\\n[/code] 换行替换为 [code]\\n[/code] 并" +"移除字符串末尾的换行。读取未经处理的数据请使用 [method " +"read_buffer_from_stdin]。\n" +"[b]注意:[/b]该方法在 Linux、macOS 和 Windows 上实现。\n" +"[b]注意:[/b]使用导出的 Windows 版本时,如需访问终端,请运行控制台包装器可执行" +"文件。如果标准输入为控制台,不使用控制台包装器运行时调用该方法会导致卡死。如果" +"标准输入为管道或文件,则可以不使用控制台包装器。如果你需要具有控制台支持的单个" +"可执行文件,请使用启用 [code]windows_subsystem=console[/code] 标志编译的自定义" +"构建。" + +msgid "" +"Requests permission from the OS for the given [param name]. Returns " +"[code]true[/code] if the permission has already been granted. See also " +"[signal MainLoop.on_request_permissions_result].\n" +"The [param name] must be the full permission name. For example:\n" +"- [code]OS.request_permission(\"android.permission.READ_EXTERNAL_STORAGE\")[/" +"code]\n" +"- [code]OS.request_permission(\"android.permission.POST_NOTIFICATIONS\")[/" +"code]\n" +"[b]Note:[/b] Permission must be checked during export.\n" +"[b]Note:[/b] This method is only implemented on Android." +msgstr "" +"向操作系统请求名为 [param name] 的权限。如果已授权则返回 [code]true[/code]。另" +"见 [signal MainLoop.on_request_permissions_result]。\n" +"[param name] 必须是权限的全名。例如:\n" +"- [code]OS.request_permission(\"android.permission.READ_EXTERNAL_STORAGE\")[/" +"code]\n" +"- [code]OS.request_permission(\"android.permission.POST_NOTIFICATIONS\")[/" +"code]\n" +"[b]注意:[/b]导出时必须检查权限。\n" +"[b]注意:[/b]该方法仅在 Android 上实现。" + +msgid "" +"Requests [i]dangerous[/i] permissions from the OS. Returns [code]true[/code] " +"if permissions have already been granted. See also [signal MainLoop." +"on_request_permissions_result].\n" +"[b]Note:[/b] Permissions must be checked during export.\n" +"[b]Note:[/b] This method is only implemented on Android. Normal permissions " +"are automatically granted at install time in Android applications." +msgstr "" +"向操作系统请求[i]危险[/i]权限。如果已授权则返回 [code]true[/code]。另见 " +"[signal MainLoop.on_request_permissions_result]。\n" +"[b]注意:[/b]导出时必须检查权限。\n" +"[b]注意:[/b]该方法仅在 Android 上实现。安装 Android 应用时会自动授予普通权" +"限。" + msgid "" "On macOS (sandboxed applications only), this function clears list of user " "selected folders accessible to the application." @@ -77501,6 +97654,47 @@ msgstr "" "适用于文件可能被杀毒软件、文本编辑器、甚至 Godot 编辑器自己等其他程序打开的场" "景。" +msgid "" +"Requests the OS to open a resource identified by [param uri] with the most " +"appropriate program. For example:\n" +"- [code]OS.shell_open(\"C:\\\\Users\\\\name\\\\Downloads\")[/code] on Windows " +"opens the file explorer at the user's Downloads folder.\n" +"- [code]OS.shell_open(\"C:/Users/name/Downloads\")[/code] also works on " +"Windows and opens the file explorer at the user's Downloads folder.\n" +"- [code]OS.shell_open(\"https://godotengine.org\")[/code] opens the default " +"web browser on the official Godot website.\n" +"- [code]OS.shell_open(\"mailto:example@example.com\")[/code] opens the " +"default email client with the \"To\" field set to [code]example@example.com[/" +"code]. See [url=https://datatracker.ietf.org/doc/html/rfc2368]RFC 2368 - The " +"[code]mailto[/code] URL scheme[/url] for a list of fields that can be added.\n" +"Use [method ProjectSettings.globalize_path] to convert a [code]res://[/code] " +"or [code]user://[/code] project path into a system path for use with this " +"method.\n" +"[b]Note:[/b] Use [method String.uri_encode] to encode characters within URLs " +"in a URL-safe, portable way. This is especially required for line breaks. " +"Otherwise, [method shell_open] may not work correctly in a project exported " +"to the Web platform.\n" +"[b]Note:[/b] This method is implemented on Android, iOS, Web, Linux, macOS " +"and Windows." +msgstr "" +"请求操作系统使用最合适的程序打开由 [param uri] 标识的资源。例如:\n" +"- [code]OS.shell_open(\"C:\\\\Users\\\\name\\\\Downloads\")[/code] 在 Windows " +"上会用资源管理器打开用户的 Downloads 文件夹。\n" +"- [code]OS.shell_open(\"C:/Users/name/Downloads\")[/code] 在 Windows 也会用资" +"源管理器打开用户的 Downloads 文件夹。\n" +"- [code]OS.shell_open(\"https://godotengine.org\")[/code] 会使用默认网页浏览器" +"打开 Godot 官方网站。\n" +"- [code]OS.shell_open(\"mailto:example@example.com\")[/code] 会打开默认电子邮" +"件客户端并将“收件人”字段设置为 [code]example@example.com[/code]。其他支持自定" +"义的字段见 [url=https://datatracker.ietf.org/doc/html/rfc2368]RFC 2368 - " +"[code]mailto[/code] URL 方案[/url]。\n" +"可以使用 [method ProjectSettings.globalize_path] 将 [code]res://[/code] 和 " +"[code]user://[/code] 项目路径转换为系统路径,以便与该方法一起使用。\n" +"[b]注意:[/b]请使用 [method String.uri_encode] 对 URL 中的字符进行编码,得到" +"的 URL 才能安全使用、可移植。尤其是在包含换行的情况下。否则项目导出至 Web 平台" +"后 [method shell_open] 可能无法正常工作。\n" +"[b]注意:[/b]这个方法在 Android、iOS、Web、Linux、macOS 以及 Windows 上实现。" + msgid "" "Requests the OS to open the file manager, navigate to the given [param " "file_or_dir_path] and select the target file or folder.\n" @@ -77593,6 +97787,9 @@ msgstr "" msgid "The Direct3D 12 rendering driver." msgstr "Direct3D 12 渲染驱动。" +msgid "The Metal rendering driver." +msgstr "Metal 渲染驱动。" + msgid "Refers to the Desktop directory path." msgstr "指桌面目录路径。" @@ -77617,6 +97814,38 @@ msgstr "指图片目录路径。" msgid "Refers to the Ringtones directory path." msgstr "指铃声目录路径。" +msgid "" +"Standard I/O device is invalid. No data can be received from or sent to these " +"standard I/O devices." +msgstr "标准 I/O 设备无效。无法用这些标准 I/O 设备接收和发送数据。" + +msgid "" +"Standard I/O device is a console. This typically occurs when Godot is run " +"from a terminal with no redirection. This is also used for all standard I/O " +"devices when running Godot from the editor, at least on desktop platforms." +msgstr "" +"标准 I/O 设备为控制台。通常发生在从终端运行 Godot 且未进行重定向的场合。在桌面" +"平台上,从编辑器运行 Godot 时也会用于所有标准 I/O 设备。" + +msgid "" +"Standard I/O device is a regular file. This typically occurs with redirection " +"from a terminal, e.g. [code]godot > stdout.txt[/code], [code]godot < stdin." +"txt[/code] or [code]godot > stdout_stderr.txt 2>&1[/code]." +msgstr "" +"标准 I/O 设备为普通文件。通常发生在终端重定向的场合,例如 [code]godot > " +"stdout.txt[/code]、[code]godot < stdin.txt[/code] 和 [code]godot > " +"stdout_stderr.txt 2>&1[/code]。" + +msgid "" +"Standard I/O device is a FIFO/pipe. This typically occurs with pipe usage " +"from a terminal, e.g. [code]echo \"Hello\" | godot[/code]." +msgstr "" +"标准 I/O 设备为 FIFO 或管道。通常发生在终端用到了管道的场合,例如 [code]echo " +"\"Hello\" | godot[/code]。" + +msgid "Standard I/O device type is unknown." +msgstr "标准 I/O 设备类型未知。" + msgid "A packed array of bytes." msgstr "字节紧缩数组。" @@ -77951,6 +98180,13 @@ msgstr "" "在数组中搜索值并返回其索引,如果未找到则返回 [code]-1[/code] 。可选地,可以传" "递起始搜索索引。" +msgid "" +"Returns the byte at the given [param index] in the array. This is the same as " +"using the [code][][/code] operator ([code]array[index][/code])." +msgstr "" +"返回数组中位于给定索引 [param index] 处的字节。与使用 [code][][/code] 运算符相" +"同([code]array[index][/code])。" + msgid "" "Converts ASCII/Latin-1 encoded array to [String]. Fast alternative to [method " "get_string_from_utf8] if the content is ASCII/Latin-1 only. Unlike the UTF-8 " @@ -78016,6 +98252,31 @@ msgstr "" "[code]true[/code]。其他情况,或者当该值派生自 [Object] 而 [param " "allow_objects] 为 [code]false[/code] 时,则返回 [code]false[/code]。" +msgid "" +"Returns a hexadecimal representation of this array as a [String].\n" +"[codeblocks]\n" +"[gdscript]\n" +"var array = PackedByteArray([11, 46, 255])\n" +"print(array.hex_encode()) # Prints \"0b2eff\"\n" +"[/gdscript]\n" +"[csharp]\n" +"byte[] array = [11, 46, 255];\n" +"GD.Print(array.HexEncode()); // Prints \"0b2eff\"\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"返回该数组的十六进制表示,类型为 [String]。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var array = PackedByteArray([11, 46, 255])\n" +"print(array.hex_encode()) # 输出“0b2eff”\n" +"[/gdscript]\n" +"[csharp]\n" +"byte[] array = [11, 46, 255];\n" +"GD.Print(array.HexEncode()); // 输出“0b2eff”\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Inserts a new element at a given position in the array. The position must be " "valid, or at the end of the array ([code]idx == size()[/code])." @@ -78224,6 +98485,13 @@ msgstr "" msgid "Appends a [PackedColorArray] at the end of this array." msgstr "在该数组的末尾追加一个 [PackedColorArray]。" +msgid "" +"Returns the [Color] at the given [param index] in the array. This is the same " +"as using the [code][][/code] operator ([code]array[index][/code])." +msgstr "" +"返回数组中位于给定索引 [param index] 处的 [Color]。与使用 [code][][/code] 运算" +"符相同([code]array[index][/code])。" + msgid "Appends a value to the array." msgstr "将一个值添加到数组中。" @@ -78278,6 +98546,57 @@ msgstr "" msgid "Efficiently packs and serializes [Array] or [Dictionary]." msgstr "将 [Array] 或 [Dictionary] 进行高效打包和序列化。" +msgid "" +"[PackedDataContainer] can be used to efficiently store data from untyped " +"containers. The data is packed into raw bytes and can be saved to file. Only " +"[Array] and [Dictionary] can be stored this way.\n" +"You can retrieve the data by iterating on the container, which will work as " +"if iterating on the packed data itself. If the packed container is a " +"[Dictionary], the data can be retrieved by key names ([String]/[StringName] " +"only).\n" +"[codeblock]\n" +"var data = { \"key\": \"value\", \"another_key\": 123, \"lock\": Vector2() }\n" +"var packed = PackedDataContainer.new()\n" +"packed.pack(data)\n" +"ResourceSaver.save(packed, \"packed_data.res\")\n" +"[/codeblock]\n" +"[codeblock]\n" +"var container = load(\"packed_data.res\")\n" +"for key in container:\n" +" prints(key, container[key])\n" +"[/codeblock]\n" +"Prints:\n" +"[codeblock lang=text]\n" +"key value\n" +"lock (0, 0)\n" +"another_key 123\n" +"[/codeblock]\n" +"Nested containers will be packed recursively. While iterating, they will be " +"returned as [PackedDataContainerRef]." +msgstr "" +"[PackedDataContainer] 可以高效地保存未指定类型的容器中的数据。数据会以原始字节" +"的形式打包,能够保存到文件中。只有 [Array] 和 [Dictionary] 能够这样存储。\n" +"你可以通过遍历容器来获取数据,效果和遍历被打包的数据一样。如果打包容器为 " +"[Dictionary],则获取的是键名(仅 [String]/[StringName])。\n" +"[codeblock]\n" +"var data = { \"key\": \"value\", \"another_key\": 123, \"lock\": Vector2() }\n" +"var packed = PackedDataContainer.new()\n" +"packed.pack(data)\n" +"ResourceSaver.save(packed, \"packed_data.res\")\n" +"[/codeblock]\n" +"[codeblock]\n" +"var container = load(\"packed_data.res\")\n" +"for key in container:\n" +" prints(key, container[key])\n" +"[/codeblock]\n" +"输出:\n" +"[codeblock lang=text]\n" +"key value\n" +"lock (0, 0)\n" +"another_key 123\n" +"[/codeblock]\n" +"内嵌容器会递归打包。遍历时返回的是 [PackedDataContainerRef]。" + msgid "" "Packs the given container into a binary representation. The [param value] " "must be either [Array] or [Dictionary], any other type will result in invalid " @@ -78299,6 +98618,60 @@ msgid "" "dictionaries." msgstr "[PackedDataContainer] 使用的内部类,用于打包嵌套的数组和字典。" +msgid "" +"When packing nested containers using [PackedDataContainer], they are " +"recursively packed into [PackedDataContainerRef] (only applies to [Array] and " +"[Dictionary]). Their data can be retrieved the same way as from " +"[PackedDataContainer].\n" +"[codeblock]\n" +"var packed = PackedDataContainer.new()\n" +"packed.pack([1, 2, 3, [\"nested1\", \"nested2\"], 4, 5, 6])\n" +"\n" +"for element in packed:\n" +" if element is PackedDataContainerRef:\n" +" for subelement in element:\n" +" print(\"::\", subelement)\n" +" else:\n" +" print(element)\n" +"[/codeblock]\n" +"Prints:\n" +"[codeblock lang=text]\n" +"1\n" +"2\n" +"3\n" +"::nested1\n" +"::nested2\n" +"4\n" +"5\n" +"6\n" +"[/codeblock]" +msgstr "" +"使用 [PackedDataContainer] 打包嵌套容器时,会将其递归打包进 " +"[PackedDataContainerRef](仅适用于 [Array] 和 [Dictionary])。获取数据的方法" +"和 [PackedDataContainer] 相同。\n" +"[codeblock]\n" +"var packed = PackedDataContainer.new()\n" +"packed.pack([1, 2, 3, [\"nested1\", \"nested2\"], 4, 5, 6])\n" +"\n" +"for element in packed:\n" +" if element is PackedDataContainerRef:\n" +" for subelement in element:\n" +" print(\"::\", subelement)\n" +" else:\n" +" print(element)\n" +"[/codeblock]\n" +"输出:\n" +"[codeblock lang=text]\n" +"1\n" +"2\n" +"3\n" +"::nested1\n" +"::nested2\n" +"4\n" +"5\n" +"6\n" +"[/codeblock]" + msgid "A packed array of 32-bit floating-point values." msgstr "32 位浮点数紧缩数组。" @@ -78377,6 +98750,13 @@ msgstr "" "[b]注意:[/b][constant @GDScript.NAN] 的行为与其他数字不同。因此,如果包含 " "NaN,则这个方法的结果可能不准确。" +msgid "" +"Returns the 32-bit float at the given [param index] in the array. This is the " +"same as using the [code][][/code] operator ([code]array[index][/code])." +msgstr "" +"返回数组中位于给定索引 [param index] 处的 32 位浮点数。与使用 [code][][/code] " +"运算符相同([code]array[index][/code])。" + msgid "" "Returns [code]true[/code] if the array contains [param value].\n" "[b]Note:[/b] [constant @GDScript.NAN] doesn't behave the same as other " @@ -78432,6 +98812,15 @@ msgstr "" "[b]注意:[/b][constant @GDScript.NAN] 的行为与其他数字不同。因此,如果包含 " "NaN,则这个方法的结果可能不准确。" +msgid "" +"Returns a copy of the data converted to a [PackedByteArray], where each " +"element has been encoded as 4 bytes.\n" +"The size of the new array will be [code]float32_array.size() * 4[/code]." +msgstr "" +"返回数据的副本,将其中的每个元素都编码为 4 个字节,放入 [PackedByteArray] " +"中。\n" +"新数组的大小为 [code]float32_array.size() * 4[/code]。" + msgid "" "Returns a new [PackedFloat32Array] with contents of [param right] added at " "the end of this array. For better performance, consider using [method " @@ -78507,6 +98896,13 @@ msgstr "构造新 [PackedFloat64Array]。你还可以传入通用 [Array] 进行 msgid "Appends a [PackedFloat64Array] at the end of this array." msgstr "在该数组的末尾追加一个 [PackedFloat64Array]。" +msgid "" +"Returns the 64-bit float at the given [param index] in the array. This is the " +"same as using the [code][][/code] operator ([code]array[index][/code])." +msgstr "" +"返回数组中位于给定索引 [param index] 处的 64 位浮点数。与使用 [code][][/code] " +"运算符相同([code]array[index][/code])。" + msgid "" "Returns the slice of the [PackedFloat64Array], from [param begin] (inclusive) " "to [param end] (exclusive), as a new [PackedFloat64Array].\n" @@ -78526,6 +98922,15 @@ msgstr "" "如果 [param begin] 或 [param end] 为负,则表示相对于数组的末尾(即 [code]arr." "slice(0, -2)[/code] 是 [code]arr.slice(0, arr.size() - 2)[/code] 的简写)。" +msgid "" +"Returns a copy of the data converted to a [PackedByteArray], where each " +"element has been encoded as 8 bytes.\n" +"The size of the new array will be [code]float64_array.size() * 8[/code]." +msgstr "" +"返回数据的副本,将其中的每个元素都编码为 8 个字节,放入 [PackedByteArray] " +"中。\n" +"新数组的大小为 [code]float64_array.size() * 8[/code]。" + msgid "" "Returns a new [PackedFloat64Array] with contents of [param right] added at " "the end of this array. For better performance, consider using [method " @@ -78593,6 +98998,13 @@ msgstr "构造新 [PackedInt32Array]。你还可以传入通用 [Array] 进行 msgid "Appends a [PackedInt32Array] at the end of this array." msgstr "在该数组的末尾追加一个 [PackedInt32Array]。" +msgid "" +"Returns the 32-bit integer at the given [param index] in the array. This is " +"the same as using the [code][][/code] operator ([code]array[index][/code])." +msgstr "" +"返回数组中位于给定索引 [param index] 处的 32 位整数。与使用 [code][][/code] 运" +"算符相同([code]array[index][/code])。" + msgid "" "Inserts a new integer at a given position in the array. The position must be " "valid, or at the end of the array ([code]idx == size()[/code])." @@ -78622,6 +99034,15 @@ msgstr "" "如果 [param begin] 或 [param end] 为负,则表示相对于数组的末尾(即 [code]arr." "slice(0, -2)[/code] 是 [code]arr.slice(0, arr.size() - 2)[/code] 的简写)。" +msgid "" +"Returns a copy of the data converted to a [PackedByteArray], where each " +"element has been encoded as 4 bytes.\n" +"The size of the new array will be [code]int32_array.size() * 4[/code]." +msgstr "" +"返回数据的副本,将其中的每个元素都编码为 4 个字节,放入 [PackedByteArray] " +"中。\n" +"新数组的大小为 [code]int32_array.size() * 4[/code]。" + msgid "" "Returns a new [PackedInt32Array] with contents of [param right] added at the " "end of this array. For better performance, consider using [method " @@ -78649,6 +99070,43 @@ msgstr "" msgid "A packed array of 64-bit integers." msgstr "64 位整数紧缩数组。" +msgid "" +"An array specifically designed to hold 64-bit integer values. Packs data " +"tightly, so it saves memory for large array sizes.\n" +"[b]Note:[/b] This type stores signed 64-bit integers, which means it can take " +"values in the interval [code][-2^63, 2^63 - 1][/code], i.e. [code]" +"[-9223372036854775808, 9223372036854775807][/code]. Exceeding those bounds " +"will wrap around. If you only need to pack 32-bit integers tightly, see " +"[PackedInt32Array] for a more memory-friendly alternative.\n" +"[b]Differences between packed arrays, typed arrays, and untyped arrays:[/b] " +"Packed arrays are generally faster to iterate on and modify compared to a " +"typed array of the same type (e.g. [PackedInt64Array] versus [code]Array[int]" +"[/code]). Also, packed arrays consume less memory. As a downside, packed " +"arrays are less flexible as they don't offer as many convenience methods such " +"as [method Array.map]. Typed arrays are in turn faster to iterate on and " +"modify than untyped arrays.\n" +"[b]Note:[/b] Packed arrays are always passed by reference. To get a copy of " +"an array that can be modified independently of the original array, use " +"[method duplicate]. This is [i]not[/i] the case for built-in properties and " +"methods. The returned packed array of these are a copies, and changing it " +"will [i]not[/i] affect the original value. To update a built-in property you " +"need to modify the returned array, and then assign it to the property again." +msgstr "" +"专门设计用于保存 64 位整数值的数组。紧密打包数据,因此可为大型数组节省内存。\n" +"[b]注意:[/b]该类型存储有符号的 64 位整数,这意味着它可以在区间 [code][-2^63, " +"2^63 - 1][/code] 内取值,即 [code][-9223372036854775808, 9223372036854775807]" +"[/code]。超出这些界限将出现回绕。如果只需要紧密打包 32 位整数,请参阅 " +"[PackedInt32Array] 以获得更节省内存的替代方案。\n" +"[b]紧缩数组、类型化数组和非类型化数组之间的差异:[/b]与同类型的类型化数组相" +"比,紧缩数组的迭代和修改速度通常更快(例如 [PackedInt64Array] 与 " +"[code]Array[int][/code])。此外,紧缩数组消耗的内存更少。缺点是,紧缩数组不太" +"灵活,因为它们不提供许多便利方法,例如 [method Array.map]。反过来,类型化数组" +"的迭代和修改速度比非类型化数组更快。\n" +"[b]注意:[/b]紧缩数组始终通过引用传递。要获取可以独立于原始数组进行修改的数组" +"副本,请使用 [method duplicate]。内置属性和方法并[i]非[/i]如此。这些返回的紧缩" +"数组是副本,更改它[i]不[/i]会影响原始值。要更新内置属性,需要修改返回的数组," +"然后再次将其分配给该属性。" + msgid "Constructs an empty [PackedInt64Array]." msgstr "构造空的 [PackedInt64Array]。" @@ -78664,6 +99122,13 @@ msgstr "构造新 [PackedInt64Array]。你还可以传入通用 [Array] 进行 msgid "Appends a [PackedInt64Array] at the end of this array." msgstr "在该数组的末尾追加一个 [PackedInt64Array]。" +msgid "" +"Returns the 64-bit integer at the given [param index] in the array. This is " +"the same as using the [code][][/code] operator ([code]array[index][/code])." +msgstr "" +"返回数组中位于给定索引 [param index] 处的 64 位整数。与使用 [code][][/code] 运" +"算符相同([code]array[index][/code])。" + msgid "" "Returns the slice of the [PackedInt64Array], from [param begin] (inclusive) " "to [param end] (exclusive), as a new [PackedInt64Array].\n" @@ -78683,6 +99148,15 @@ msgstr "" "如果 [param begin] 或 [param end] 为负,则表示相对于数组的末尾(即 [code]arr." "slice(0, -2)[/code] 是 [code]arr.slice(0, arr.size() - 2)[/code] 的简写)。" +msgid "" +"Returns a copy of the data converted to a [PackedByteArray], where each " +"element has been encoded as 8 bytes.\n" +"The size of the new array will be [code]int64_array.size() * 8[/code]." +msgstr "" +"返回数据的副本,将其中的每个元素都编码为 8 个字节,放入 [PackedByteArray] " +"中。\n" +"新数组的大小为 [code]int64_array.size() * 8[/code]。" + msgid "" "Returns a new [PackedInt64Array] with contents of [param right] added at the " "end of this array. For better performance, consider using [method " @@ -78702,6 +99176,163 @@ msgstr "" msgid "An abstraction of a serialized scene." msgstr "对序列化场景的抽象。" +msgid "" +"A simplified interface to a scene file. Provides access to operations and " +"checks that can be performed on the scene resource itself.\n" +"Can be used to save a node to a file. When saving, the node as well as all " +"the nodes it owns get saved (see [member Node.owner] property).\n" +"[b]Note:[/b] The node doesn't need to own itself.\n" +"[b]Example:[/b] Load a saved scene:\n" +"[codeblocks]\n" +"[gdscript]\n" +"# Use load() instead of preload() if the path isn't known at compile-time.\n" +"var scene = preload(\"res://scene.tscn\").instantiate()\n" +"# Add the node as a child of the node the script is attached to.\n" +"add_child(scene)\n" +"[/gdscript]\n" +"[csharp]\n" +"// C# has no preload, so you have to always use ResourceLoader." +"Load<PackedScene>().\n" +"var scene = ResourceLoader.Load<PackedScene>(\"res://scene.tscn\")." +"Instantiate();\n" +"// Add the node as a child of the node the script is attached to.\n" +"AddChild(scene);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Example:[/b] Save a node with different owners. The following example " +"creates 3 objects: [Node2D] ([code]node[/code]), [RigidBody2D] ([code]body[/" +"code]) and [CollisionObject2D] ([code]collision[/code]). [code]collision[/" +"code] is a child of [code]body[/code] which is a child of [code]node[/code]. " +"Only [code]body[/code] is owned by [code]node[/code] and [method pack] will " +"therefore only save those two nodes, but not [code]collision[/code].\n" +"[codeblocks]\n" +"[gdscript]\n" +"# Create the objects.\n" +"var node = Node2D.new()\n" +"var body = RigidBody2D.new()\n" +"var collision = CollisionShape2D.new()\n" +"\n" +"# Create the object hierarchy.\n" +"body.add_child(collision)\n" +"node.add_child(body)\n" +"\n" +"# Change owner of `body`, but not of `collision`.\n" +"body.owner = node\n" +"var scene = PackedScene.new()\n" +"\n" +"# Only `node` and `body` are now packed.\n" +"var result = scene.pack(node)\n" +"if result == OK:\n" +" var error = ResourceSaver.save(scene, \"res://path/name.tscn\") # Or " +"\"user://...\"\n" +" if error != OK:\n" +" push_error(\"An error occurred while saving the scene to disk.\")\n" +"[/gdscript]\n" +"[csharp]\n" +"// Create the objects.\n" +"var node = new Node2D();\n" +"var body = new RigidBody2D();\n" +"var collision = new CollisionShape2D();\n" +"\n" +"// Create the object hierarchy.\n" +"body.AddChild(collision);\n" +"node.AddChild(body);\n" +"\n" +"// Change owner of `body`, but not of `collision`.\n" +"body.Owner = node;\n" +"var scene = new PackedScene();\n" +"\n" +"// Only `node` and `body` are now packed.\n" +"Error result = scene.Pack(node);\n" +"if (result == Error.Ok)\n" +"{\n" +" Error error = ResourceSaver.Save(scene, \"res://path/name.tscn\"); // Or " +"\"user://...\"\n" +" if (error != Error.Ok)\n" +" {\n" +" GD.PushError(\"An error occurred while saving the scene to disk.\");\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"场景文件的简化接口。提供可以对场景资源本身进行的操作和检查。\n" +"可以用来将某个节点保存到文件中。保存时,会将该节点和它所拥有的所有节点一起保存" +"(见 [member Node.owner] 属性)。\n" +"[b]注意:[/b]该节点不必自我拥有。\n" +"[b]示例:[/b]加载已保存的场景:\n" +"[codeblocks]\n" +"[gdscript]\n" +"# 如果路径在编译期不可知,请使用 load() 而不是 preload()。\n" +"var scene = preload(\"res://scene.tscn\").instantiate()\n" +"# 将该节点添加为脚本附加节点的子节点。\n" +"add_child(scene)\n" +"[/gdscript]\n" +"[csharp]\n" +"// C# 没有 preload,所以你使用的永远是 ResourceLoader.Load<PackedScene>()。\n" +"var scene = ResourceLoader.Load<PackedScene>(\"res://scene.tscn\")." +"Instantiate();\n" +"// 将该节点添加为脚本附加节点的子节点。\n" +"AddChild(scene);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]示例:[/b]保存不同所有者的节点。下面的例子会创建 3 个对象:[Node2D]" +"([code]node[/code])、[RigidBody2D]([code]body[/code])、[CollisionObject2D]" +"([code]collision[/code]))。[code]node[/code] 的下一级是 [code]body[/code]," +"再下一级是 [code]collision[/code]。只有 [code]body[/code] 被 [code]node[/" +"code] 拥有,因此 [method pack] 只会保存两个节点,不会保存 [code]collision[/" +"code]。\n" +"[codeblocks]\n" +"[gdscript]\n" +"# 创建对象。\n" +"var node = Node2D.new()\n" +"var body = RigidBody2D.new()\n" +"var collision = CollisionShape2D.new()\n" +"\n" +"# 创建对象架构。\n" +"body.add_child(collision)\n" +"node.add_child(body)\n" +"\n" +"# 修改 `body` 的拥有者,但不修改 `collision` 的拥有者。\n" +"body.owner = node\n" +"var scene = PackedScene.new()\n" +"\n" +"# 只会打包 `node` 和 `body`。\n" +"var result = scene.pack(node)\n" +"if result == OK:\n" +" var error = ResourceSaver.save(scene, \"res://path/name.tscn\") # Or " +"\"user://...\"\n" +" if error != OK:\n" +" push_error(\"将场景保存到磁盘时出错。\")\n" +"[/gdscript]\n" +"[csharp]\n" +"// 创建对象。\n" +"var node = new Node2D();\n" +"var body = new RigidBody2D();\n" +"var collision = new CollisionShape2D();\n" +"\n" +"// 创建对象架构。\n" +"body.AddChild(collision);\n" +"node.AddChild(body);\n" +"\n" +"// 修改 `body` 的拥有者,但不修改 `collision` 的拥有者。\n" +"body.Owner = node;\n" +"var scene = new PackedScene();\n" +"\n" +"// 只会打包 `node` 和 `body`。\n" +"Error result = scene.Pack(node);\n" +"if (result == Error.Ok)\n" +"{\n" +" Error error = ResourceSaver.Save(scene, \"res://path/name.tscn\"); // Or " +"\"user://...\"\n" +" if (error != Error.Ok)\n" +" {\n" +" GD.PushError(\"将场景保存到磁盘时出错。\");\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "Returns [code]true[/code] if the scene file has nodes." msgstr "如果场景文件有节点,返回 [code]true[/code]。" @@ -78810,6 +99441,13 @@ msgstr "构造新 [PackedStringArray]。你还可以传入通用 [Array] 进行 msgid "Appends a [PackedStringArray] at the end of this array." msgstr "在该数组的末尾追加一个 [PackedStringArray]。" +msgid "" +"Returns the [String] at the given [param index] in the array. This is the " +"same as using the [code][][/code] operator ([code]array[index][/code])." +msgstr "" +"返回数组中位于给定索引 [param index] 处的 [String]。与使用 [code][][/code] 运" +"算符相同([code]array[index][/code])。" + msgid "Appends a string element at end of the array." msgstr "在数组的末尾追加字符串元素。" @@ -78835,8 +99473,12 @@ msgstr "" "如果 [param begin] 或 [param end] 为负,则表示相对于数组的末尾(即 [code]arr." "slice(0, -2)[/code] 是 [code]arr.slice(0, arr.size() - 2)[/code] 的简写)。" -msgid "Returns a [PackedByteArray] with each string encoded as bytes." -msgstr "返回 [PackedByteArray],每个字符串都被编码为字节。" +msgid "" +"Returns a [PackedByteArray] with each string encoded as UTF-8. Strings are " +"[code]null[/code] terminated." +msgstr "" +"返回 [PackedByteArray],每个字符串都按照 UTF-8 编码。字符串以 [code]null[/" +"code] 结尾。" msgid "" "Returns a new [PackedStringArray] with contents of [param right] added at the " @@ -78864,6 +99506,34 @@ msgstr "" msgid "A packed array of [Vector2]s." msgstr "[Vector2] 紧缩数组。" +msgid "" +"An array specifically designed to hold [Vector2]. Packs data tightly, so it " +"saves memory for large array sizes.\n" +"[b]Differences between packed arrays, typed arrays, and untyped arrays:[/b] " +"Packed arrays are generally faster to iterate on and modify compared to a " +"typed array of the same type (e.g. [PackedVector2Array] versus " +"[code]Array[Vector2][/code]). Also, packed arrays consume less memory. As a " +"downside, packed arrays are less flexible as they don't offer as many " +"convenience methods such as [method Array.map]. Typed arrays are in turn " +"faster to iterate on and modify than untyped arrays.\n" +"[b]Note:[/b] Packed arrays are always passed by reference. To get a copy of " +"an array that can be modified independently of the original array, use " +"[method duplicate]. This is [i]not[/i] the case for built-in properties and " +"methods. The returned packed array of these are a copies, and changing it " +"will [i]not[/i] affect the original value. To update a built-in property you " +"need to modify the returned array, and then assign it to the property again." +msgstr "" +"专门设计用于保存 [Vector2] 的数组。紧密打包数据,因此可为大型数组节省内存。\n" +"[b]紧缩数组、类型化数组和非类型化数组之间的差异:[/b]与同类型的类型化数组相" +"比,紧缩数组的迭代和修改速度通常更快(例如 [PackedVector2Array] 与 " +"[code]Array[Vector2][/code])。此外,紧缩数组消耗的内存更少。缺点是,紧缩数组" +"不太灵活,因为它们不提供许多便捷方法,例如 [method Array.map]。类型化数组的迭" +"代和修改速度反过来比非类型化数组更快。\n" +"[b]注意:[/b]紧缩数组始终通过引用传递。要获取可以独立于原始数组进行修改的数组" +"副本,请使用 [method duplicate]。内置属性和方法并[i]非[/i]如此。返回的紧缩数组" +"是这些的副本,更改它[i]不[/i]会影响原始值。要更新内置属性,需要修改返回的数" +"组,然后再次将其分配给该属性。" + msgid "Grid-based Navigation with AStarGrid2D Demo" msgstr "AStarGrid2D 的网格导航演示" @@ -78934,6 +99604,13 @@ msgstr "" "[b]注意:[/b]包含 [constant @GDScript.NAN] 元素的向量的行为与其他向量不同。因" "此,如果包含 NaN,则这个方法的结果可能不准确。" +msgid "" +"Returns the [Vector2] at the given [param index] in the array. This is the " +"same as using the [code][][/code] operator ([code]array[index][/code])." +msgstr "" +"返回数组中位于给定索引 [param index] 处的 [Vector2]。与使用 [code][][/code] 运" +"算符相同([code]array[index][/code])。" + msgid "" "Returns [code]true[/code] if the array contains [param value].\n" "[b]Note:[/b] Vectors with [constant @GDScript.NAN] elements don't behave the " @@ -79095,6 +99772,13 @@ msgstr "" msgid "Appends a [PackedVector3Array] at the end of this array." msgstr "在该数组的末尾追加一个 [PackedVector3Array]。" +msgid "" +"Returns the [Vector3] at the given [param index] in the array. This is the " +"same as using the [code][][/code] operator ([code]array[index][/code])." +msgstr "" +"返回数组中位于给定索引 [param index] 处的 [Vector3]。与使用 [code][][/code] 运" +"算符相同([code]array[index][/code])。" + msgid "Inserts a [Vector3] at the end." msgstr "在末尾插入一个 [Vector3]。" @@ -79166,6 +99850,34 @@ msgstr "" msgid "A packed array of [Vector4]s." msgstr "[Vector4] 紧缩数组。" +msgid "" +"An array specifically designed to hold [Vector4]. Packs data tightly, so it " +"saves memory for large array sizes.\n" +"[b]Differences between packed arrays, typed arrays, and untyped arrays:[/b] " +"Packed arrays are generally faster to iterate on and modify compared to a " +"typed array of the same type (e.g. [PackedVector4Array] versus " +"[code]Array[Vector4][/code]). Also, packed arrays consume less memory. As a " +"downside, packed arrays are less flexible as they don't offer as many " +"convenience methods such as [method Array.map]. Typed arrays are in turn " +"faster to iterate on and modify than untyped arrays.\n" +"[b]Note:[/b] Packed arrays are always passed by reference. To get a copy of " +"an array that can be modified independently of the original array, use " +"[method duplicate]. This is [i]not[/i] the case for built-in properties and " +"methods. The returned packed array of these are a copies, and changing it " +"will [i]not[/i] affect the original value. To update a built-in property you " +"need to modify the returned array, and then assign it to the property again." +msgstr "" +"专门设计用于保存 [Vector2] 的数组。紧密打包数据,因此可为大型数组节省内存。\n" +"[b]紧缩数组、类型化数组和非类型化数组之间的差异:[/b]与同类型的类型化数组相" +"比,紧缩数组的迭代和修改速度通常更快(例如 [PackedVector4Array] 与 " +"[code]Array[Vector4][/code])。此外,紧缩数组消耗的内存更少。缺点是,紧缩数组" +"不太灵活,因为它们不提供许多便捷方法,例如 [method Array.map]。类型化数组的迭" +"代和修改速度反过来比非类型化数组更快。\n" +"[b]注意:[/b]紧缩数组始终通过引用传递。要获取可以独立于原始数组进行修改的数组" +"副本,请使用 [method duplicate]。内置属性和方法并[i]非[/i]如此。返回的紧缩数组" +"是这些的副本,更改它[i]不[/i]会影响原始值。要更新内置属性,需要修改返回的数" +"组,然后再次将其分配给该属性。" + msgid "Constructs an empty [PackedVector4Array]." msgstr "构造空的 [PackedVector4Array]。" @@ -79194,6 +99906,13 @@ msgstr "" msgid "Appends a [PackedVector4Array] at the end of this array." msgstr "在该数组的末尾追加一个 [PackedVector4Array]。" +msgid "" +"Returns the [Vector4] at the given [param index] in the array. This is the " +"same as using the [code][][/code] operator ([code]array[index][/code])." +msgstr "" +"返回数组中位于给定索引 [param index] 处的 [Vector4]。与使用 [code][][/code] 运" +"算符相同([code]array[index][/code])。" + msgid "Inserts a [Vector4] at the end." msgstr "在末尾插入一个 [Vector4]。" @@ -79418,6 +100137,68 @@ msgstr "被包装的 [StreamPeer] 对象。" msgid "UDP packet peer." msgstr "UDP 数据包客户端。" +msgid "" +"UDP packet peer. Can be used to send and receive raw UDP packets as well as " +"[Variant]s.\n" +"[b]Example:[/b] Send a packet:\n" +"[codeblock]\n" +"var peer = PacketPeerUDP.new()\n" +"\n" +"# Optionally, you can select the local port used to send the packet.\n" +"peer.bind(4444)\n" +"\n" +"peer.set_dest_address(\"1.1.1.1\", 4433)\n" +"peer.put_packet(\"hello\".to_utf8_buffer())\n" +"[/codeblock]\n" +"[b]Example:[/b] Listen for packets:\n" +"[codeblock]\n" +"var peer\n" +"\n" +"func _ready():\n" +" peer = PacketPeerUDP.new()\n" +" peer.bind(4433)\n" +"\n" +"\n" +"func _process(_delta):\n" +" if peer.get_available_packet_count() > 0:\n" +" var array_bytes = peer.get_packet()\n" +" var packet_string = array_bytes.get_string_from_ascii()\n" +" print(\"Received message: \", packet_string)\n" +"[/codeblock]\n" +"[b]Note:[/b] When exporting to Android, make sure to enable the " +"[code]INTERNET[/code] permission in the Android export preset before " +"exporting the project or using one-click deploy. Otherwise, network " +"communication of any kind will be blocked by Android." +msgstr "" +"UDP 数据包对等体。可以用来发送和接收原始 UPD 数据包和 [Variant]。\n" +"[b]示例:[/b]发送数据包:\n" +"[codeblock]\n" +"var peer = PacketPeerUDP.new()\n" +"\n" +"# 可以自行选择用于发送数据包的本地端口。\n" +"peer.bind(4444)\n" +"\n" +"peer.set_dest_address(\"1.1.1.1\", 4433)\n" +"peer.put_packet(\"hello\".to_utf8_buffer())\n" +"[/codeblock]\n" +"[b]示例:[/b]监听数据包:\n" +"[codeblock]\n" +"var peer\n" +"\n" +"func _ready():\n" +" peer = PacketPeerUDP.new()\n" +" peer.bind(4433)\n" +"\n" +"\n" +"func _process(_delta):\n" +" if peer.get_available_packet_count() > 0:\n" +" var array_bytes = peer.get_packet()\n" +" var packet_string = array_bytes.get_string_from_ascii()\n" +" print(\"收到消息:\", packet_string)\n" +"[/codeblock]\n" +"[b]注意:[/b]导出到 Android 时,请确保在导出项目和使用一键部署前启用 Android " +"导出预设中的 [code]INTERNET[/code] 权限。否则 Android 会阻止所有网络通信。" + msgid "" "Binds this [PacketPeerUDP] to the specified [param port] and [param " "bind_address] with a buffer size [param recv_buf_size], allowing it to " @@ -79671,13 +100452,6 @@ msgstr "布尔值,用于确定背景纹理是否应被过滤。" msgid "[Texture2D] to be applied to the [PanoramaSkyMaterial]." msgstr "应用于该 [PanoramaSkyMaterial] 的 [Texture2D]。" -msgid "" -"This node is meant to replace [ParallaxBackground] and [ParallaxLayer]. The " -"implementation may change in the future." -msgstr "" -"该节点旨在替换 [ParallaxBackground] 和 [ParallaxLayer]。后续版本中可能修改实现" -"方法。" - msgid "A node used to create a parallax scrolling background." msgstr "用于创建视差滚动背景的节点。" @@ -80522,6 +101296,19 @@ msgid "" "A pivot point used to calculate radial and orbital velocity of particles." msgstr "用于计算粒子的径向速度和轨道速度的轴心点。" +msgid "" +"Emitted when this material's emission shape is changed in any way. This " +"includes changes to [member emission_shape], [member emission_shape_scale], " +"or [member emission_sphere_radius], and any other property that affects the " +"emission shape's offset, size, scale, or orientation.\n" +"[b]Note:[/b] This signal is only emitted inside the editor for performance " +"reasons." +msgstr "" +"当材质的发射形状发生任何变化时发出,包括对 [member emission_shape]、[member " +"emission_shape_scale] 和 [member emission_sphere_radius] 的更改,以及任何其他" +"影响发射形状的偏移、大小、缩放、朝向等属性的更改。\n" +"[b]注意:[/b]出于性能考虑,该信号仅会在编辑器内发出。" + msgid "" "Use with [method set_param_min], [method set_param_max], and [method " "set_param_texture] to set initial velocity properties." @@ -80782,6 +101569,22 @@ msgstr "" "沿路径走过的距离,单位为像素。改变这个值会将这个节点的位置设置为路径上的某个" "点。" +msgid "" +"The distance along the path as a number in the range 0.0 (for the first " +"vertex) to 1.0 (for the last). This is just another way of expressing the " +"progress within the path, as the offset supplied is multiplied internally by " +"the path's length.\n" +"It can be set or get only if the [PathFollow2D] is the child of a [Path2D] " +"which is part of the scene tree, and that this [Path2D] has a [Curve2D] with " +"a non-zero length. Otherwise, trying to set this field will print an error, " +"and getting this field will return [code]0.0[/code]." +msgstr "" +"沿路径走过的距离,用 0.0(第一个顶点)到 1.0(最后一个顶点)范围内的数字表示。" +"这只是表示路径内偏移量的另一种方式,提供的偏移量在内部会与路径的长度相乘。\n" +"[PathFollow2D] 为场景树中 [Path2D] 的子节点时才能够设置和获取,该 [Path2D] 中" +"还需要存在长度非零的 [Curve2D]。否则设置该字段会输出错误,获取该字段则会返回 " +"[code]0.0[/code]。" + msgid "" "If [code]true[/code], this node rotates to follow the path, with the +X " "direction facing forward on the path." @@ -80840,6 +101643,22 @@ msgstr "" "到第一个顶点的距离,单位为沿路径经过的 3D 单位数。改变这个值会将这个节点的位置" "设置为路径上的某个点。" +msgid "" +"The distance from the first vertex, considering 0.0 as the first vertex and " +"1.0 as the last. This is just another way of expressing the progress within " +"the path, as the progress supplied is multiplied internally by the path's " +"length.\n" +"It can be set or get only if the [PathFollow3D] is the child of a [Path3D] " +"which is part of the scene tree, and that this [Path3D] has a [Curve3D] with " +"a non-zero length. Otherwise, trying to set this field will print an error, " +"and getting this field will return [code]0.0[/code]." +msgstr "" +"到第一个顶点的距离,将 0.0 作为第一个顶点,1.0 作为最后一个顶点。这只是表示路" +"径内偏移量的另一种方式,提供的偏移量在内部会与路径的长度相乘。\n" +"[PathFollow3D] 为场景树中 [Path3D] 的子节点时才能够设置和获取,该 [Path3D] 中" +"还需要存在长度非零的 [Curve3D]。否则设置该字段会输出错误,获取该字段则会返回 " +"[code]0.0[/code]。" + msgid "" "Allows or forbids rotation on one or more axes, depending on the [enum " "RotationMode] constants being used." @@ -80880,6 +101699,67 @@ msgstr "" msgid "Creates packages that can be loaded into a running project." msgstr "创建可以加载到正在运行的项目中的包。" +msgid "" +"The [PCKPacker] is used to create packages that can be loaded into a running " +"project using [method ProjectSettings.load_resource_pack].\n" +"[codeblocks]\n" +"[gdscript]\n" +"var packer = PCKPacker.new()\n" +"packer.pck_start(\"test.pck\")\n" +"packer.add_file(\"res://text.txt\", \"text.txt\")\n" +"packer.flush()\n" +"[/gdscript]\n" +"[csharp]\n" +"var packer = new PckPacker();\n" +"packer.PckStart(\"test.pck\");\n" +"packer.AddFile(\"res://text.txt\", \"text.txt\");\n" +"packer.Flush();\n" +"[/csharp]\n" +"[/codeblocks]\n" +"The above [PCKPacker] creates package [code]test.pck[/code], then adds a file " +"named [code]text.txt[/code] at the root of the package.\n" +"[b]Note:[/b] PCK is Godot's own pack file format. To create ZIP archives that " +"can be read by any program, use [ZIPPacker] instead." +msgstr "" +"[PCKPacker] 可以创建打包文件,项目运行时可以使用 [method ProjectSettings." +"load_resource_pack] 来加载打包文件。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var packer = PCKPacker.new()\n" +"packer.pck_start(\"test.pck\")\n" +"packer.add_file(\"res://text.txt\", \"text.txt\")\n" +"packer.flush()\n" +"[/gdscript]\n" +"[csharp]\n" +"var packer = new PckPacker();\n" +"packer.PckStart(\"test.pck\");\n" +"packer.AddFile(\"res://text.txt\", \"text.txt\");\n" +"packer.Flush();\n" +"[/csharp]\n" +"[/codeblocks]\n" +"上面的例子中,[PCKPacker] 创建了打包文件 [code]test.pck[/code],但后将名为 " +"[code]text.txt[/code] 的文件添加到了包的根目录。\n" +"[b]注意:[/b]PCK 是 Godot 自有的打包文件格式。要创建任何程序都能够读取的 ZIP " +"压缩包,请改用 [ZIPPacker]。" + +msgid "" +"Adds the [param source_path] file to the current PCK package at the [param " +"target_path] internal path. The [code]res://[/code] prefix for [param " +"target_path] is optional and stripped internally." +msgstr "" +"将 [param source_path] 文件添加到当前 PCK 包的内部路径 [param target_path] " +"处。[param target_path] 不必写 [code]res://[/code] 前缀,内部会将其去除。" + +msgid "" +"Registers a file removal of the [param target_path] internal path to the PCK. " +"This is mainly used for patches. If the file at this path has been loaded " +"from a previous PCK, it will be removed. The [code]res://[/code] prefix for " +"[param target_path] is optional and stripped internally." +msgstr "" +"注册移除 PCK 内部路径 [param target_path] 处的文件。主要用于补丁。如果位于该路" +"径的文件已从之前的 PCK 加载,则会被移除。[param target_path] 不必写 " +"[code]res://[/code] 前缀,内部会将其去除。" + msgid "" "Writes the files specified using all [method add_file] calls since the last " "flush. If [param verbose] is [code]true[/code], a list of files added will be " @@ -80889,6 +101769,14 @@ msgstr "" "verbose] 为 [code]true[/code],被添加的文件的列表将被打印到控制台,以便于调" "试。" +msgid "" +"Creates a new PCK file at the file path [param pck_path]. The [code].pck[/" +"code] file extension isn't added automatically, so it should be part of " +"[param pck_path] (even though it's not required)." +msgstr "" +"在文件路径 [param pck_path] 处新建 PCK 文件。不会自动添加 [code].pck[/code] 文" +"件扩展名,因此 [param pck_path] 中应包含该扩展名(即使扩展名不是必需的)。" + msgid "Exposes performance-related data." msgstr "公开与性能相关的数据。" @@ -81288,6 +102176,45 @@ msgstr "" "[NavigationServer3D] 中无法合并的导航网格多边形的边的数量。这些边仍然可以通过" "边缘接近或使用链接而被连接。" +msgid "Number of active navigation obstacles in the [NavigationServer3D]." +msgstr "[NavigationServer3D] 中活动导航障碍物的数量。" + +msgid "" +"Number of pipeline compilations that were triggered by the 2D canvas renderer." +msgstr "由 2D 画布渲染器触发的管线编译次数。" + +msgid "" +"Number of pipeline compilations that were triggered by loading meshes. These " +"compilations will show up as longer loading times the first time a user runs " +"the game and the pipeline is required." +msgstr "" +"因加载网格而触发的管线编译次数。用户首次运行游戏且需要该管线时,这些编译会导致" +"加载时间变长。" + +msgid "" +"Number of pipeline compilations that were triggered by building the surface " +"cache before rendering the scene. These compilations will show up as a " +"stutter when loading an scene the first time a user runs the game and the " +"pipeline is required." +msgstr "" +"因渲染场景前构建表面缓存而触发的管线编译次数。用户首次运行游戏且需要该管线时," +"这些编译会导致加载场景时的卡顿。" + +msgid "" +"Number of pipeline compilations that were triggered while drawing the scene. " +"These compilations will show up as stutters during gameplay the first time a " +"user runs the game and the pipeline is required." +msgstr "" +"因绘制场景而触发的管线编译次数。用户首次运行游戏且需要该管线时,这些编译会导致" +"游戏过程中的卡顿。" + +msgid "" +"Number of pipeline compilations that were triggered to optimize the current " +"scene. These compilations are done in the background and should not cause any " +"stutters whatsoever." +msgstr "" +"因优化当前场景而触发的管线编译次数。这些编译是在后台进行的,不会导致任何卡顿。" + msgid "Represents the size of the [enum Monitor] enum." msgstr "代表 [enum Monitor] 枚举的大小。" @@ -81402,6 +102329,34 @@ msgstr "" "标准力积分之前调用,但 [member custom_integrator] 属性允许你禁用标准力积分并对" "物体进行完全自定义的力积分。" +msgid "Returns the unique identifier of the PhysicsBone3D." +msgstr "返回 PhysicsBone3D 的唯一标识符。" + +msgid "" +"Returns [code]true[/code] if the PhysicsBone3D is allowed to simulate physics." +msgstr "如果 PhysicsBone3D 允许进行物理模拟,则返回 [code]true[/code]。" + +msgid "" +"Returns [code]true[/code] if the PhysicsBone3D is currently simulating " +"physics." +msgstr "如果 PhysicsBone3D 正在进行物理模拟,则返回 [code]true[/code]。" + +msgid "" +"Damps the body's rotation. By default, the body will use the [member " +"ProjectSettings.physics/3d/default_angular_damp] project setting or any value " +"override set by an [Area3D] the body is in. Depending on [member " +"angular_damp_mode], you can set [member angular_damp] to be added to or to " +"replace the body's damping value.\n" +"See [member ProjectSettings.physics/3d/default_angular_damp] for more details " +"about damping." +msgstr "" +"阻碍物体的旋转。默认情况下,物体将使用项目设置 [member ProjectSettings." +"physics/3d/default_angular_damp],或物体所在的 [Area3D] 中设置的任何覆盖值。取" +"决于 [member angular_damp_mode],可以设置 [member angular_damp] 以增加或替换物" +"体的阻尼值。\n" +"有关阻尼的更多详细信息,请参阅 [member ProjectSettings.physics/3d/" +"default_angular_damp]。" + msgid "" "Defines how [member angular_damp] is applied. See [enum DampMode] for " "possible values." @@ -81461,6 +102416,16 @@ msgid "" msgstr "" "该物体的摩擦,从 [code]0[/code](无摩擦)到 [code]1[/code](最大摩擦)。" +msgid "" +"This is multiplied by [member ProjectSettings.physics/3d/default_gravity] to " +"produce this body's gravity. For example, a value of [code]1.0[/code] will " +"apply normal gravity, [code]2.0[/code] will apply double the gravity, and " +"[code]0.5[/code] will apply half the gravity to this body." +msgstr "" +"与 [member ProjectSettings.physics/3d/default_gravity] 相乘,得到该物体的重" +"力。例如取值为 [code]1.0[/code] 就是正常重力,[code]2.0[/code] 就是双倍重力," +"[code]0.5[/code] 会让应用到这个对象的重力减半。" + msgid "Sets the joint's transform." msgstr "设置该关节的变换。" @@ -81470,6 +102435,21 @@ msgstr "设置该关节的旋转,单位为弧度。" msgid "Sets the joint type. See [enum JointType] for possible values." msgstr "设置关节的类型。可能的值见 [enum JointType]。" +msgid "" +"Damps the body's movement. By default, the body will use [member " +"ProjectSettings.physics/3d/default_linear_damp] or any value override set by " +"an [Area3D] the body is in. Depending on [member linear_damp_mode], [member " +"linear_damp] may be added to or replace the body's damping value.\n" +"See [member ProjectSettings.physics/3d/default_linear_damp] for more details " +"about damping." +msgstr "" +"阻碍物体的运动。默认情况下,物体将使用 [member ProjectSettings.physics/3d/" +"default_linear_damp],或物体所在的 [Area3D] 中设置的任何覆盖值。取决于 " +"[member linear_damp_mode],可以设置 [member linear_damp] 以增加或替换物体的阻" +"尼值。\n" +"有关阻尼的更多详细信息,请参阅 [member ProjectSettings.physics/3d/" +"default_linear_damp]。" + msgid "" "Defines how [member linear_damp] is applied. See [enum DampMode] for possible " "values." @@ -81499,6 +102479,24 @@ msgid "" "default value." msgstr "在这种模式下,物体的阻尼值将替换掉区域中设置的任何值或默认值。" +msgid "No joint is applied to the PhysicsBone3D." +msgstr "PhysicsBone3D 未应用任何关节。" + +msgid "A pin joint is applied to the PhysicsBone3D." +msgstr "PhysicsBone3D 应用了钉固关节。" + +msgid "A cone joint is applied to the PhysicsBone3D." +msgstr "PhysicsBone3D 应用了锥形关节。" + +msgid "A hinge joint is applied to the PhysicsBone3D." +msgstr "PhysicsBone3D 应用了铰链关节。" + +msgid "A slider joint is applied to the PhysicsBone3D." +msgstr "PhysicsBone3D 应用了滑杆关节。" + +msgid "A 6 degrees of freedom joint is applied to the PhysicsBone3D." +msgstr "PhysicsBone3D 应用了六自由度关节。" + msgid "" "Node that can be the parent of [PhysicalBone3D] and can apply the simulation " "results to [Skeleton3D]." @@ -82512,6 +103510,37 @@ msgstr "" "[PhysicsShapeQueryParameters2D] 对象中传递的形状,第二个是来自物理空间的碰撞形" "状。" +msgid "" +"Checks the intersections of a shape, given through a " +"[PhysicsShapeQueryParameters2D] object, against the space. If it collides " +"with more than one shape, the nearest one is selected. If the shape did not " +"intersect anything, then an empty dictionary is returned instead.\n" +"[b]Note:[/b] This method does not take into account the [code]motion[/code] " +"property of the object. The returned object is a dictionary containing the " +"following fields:\n" +"[code]collider_id[/code]: The colliding object's ID.\n" +"[code]linear_velocity[/code]: The colliding object's velocity [Vector2]. If " +"the object is an [Area2D], the result is [code](0, 0)[/code].\n" +"[code]normal[/code]: The collision normal of the query shape at the " +"intersection point, pointing away from the intersecting object.\n" +"[code]point[/code]: The intersection point.\n" +"[code]rid[/code]: The intersecting object's [RID].\n" +"[code]shape[/code]: The shape index of the colliding shape." +msgstr "" +"检查通过 [PhysicsShapeQueryParameters2D] 对象给出的一个形状与该空间的交点。如" +"果它与多个形状碰撞,则选择最近的一个。如果该形状没有与任何对象相交,则返回一个" +"空字典。\n" +"[b]注意:[/b]该方法不考虑对象的 [code]motion[/code] 属性。返回的对象是一个包含" +"以下字段的字典:\n" +"[code]collider_id[/code]:该碰撞对象的 ID。\n" +"[code]linear_velocity[/code]:该碰撞对象的速度 [Vector2]。如果对象是一个 " +"[Area2D],则结果是 [code](0, 0)[/code]。\n" +"[code]normal[/code]:相交点处查询形状的碰撞法线,法线指向远离相交对象的方" +"向。\n" +"[code]point[/code]:相交点。\n" +"[code]rid[/code]:相交对象的 [RID]。\n" +"[code]shape[/code]:该碰撞形状的形状索引。" + msgid "" "Checks whether a point is inside any solid shape. Position and other " "parameters are defined through [PhysicsPointQueryParameters2D]. The shapes " @@ -82653,6 +103682,37 @@ msgstr "" "状。\n" "[b]注意:[/b]该方法不考虑对象的 [code]motion[/code] 属性。" +msgid "" +"Checks the intersections of a shape, given through a " +"[PhysicsShapeQueryParameters3D] object, against the space. If it collides " +"with more than one shape, the nearest one is selected. The returned object is " +"a dictionary containing the following fields:\n" +"[code]collider_id[/code]: The colliding object's ID.\n" +"[code]linear_velocity[/code]: The colliding object's velocity [Vector3]. If " +"the object is an [Area3D], the result is [code](0, 0, 0)[/code].\n" +"[code]normal[/code]: The collision normal of the query shape at the " +"intersection point, pointing away from the intersecting object.\n" +"[code]point[/code]: The intersection point.\n" +"[code]rid[/code]: The intersecting object's [RID].\n" +"[code]shape[/code]: The shape index of the colliding shape.\n" +"If the shape did not intersect anything, then an empty dictionary is returned " +"instead.\n" +"[b]Note:[/b] This method does not take into account the [code]motion[/code] " +"property of the object." +msgstr "" +"检查通过 [PhysicsShapeQueryParameters3D] 对象给出的形状与该空间的交点。如果它" +"与多个形状发生碰撞,则选择最近的一个。返回的对象是一个包含以下字段的字典:\n" +"[code]collider_id[/code]:该碰撞对象的 ID。\n" +"[code]linear_velocity[/code]:该碰撞对象的速度 [Vector3]。如果对象是一个 " +"[Area3D],则结果为 [code](0, 0, 0)[/code]。\n" +"[code]normal[/code]:相交点处查询形状的碰撞法线,法线指向远离相交对象的方" +"向。\n" +"[code]point[/code]:相交点。\n" +"[code]rid[/code]:该相交对象的 [RID]。\n" +"[code]shape[/code]:该碰撞形状的形状索引。\n" +"如果该形状没有与任何东西相交,则返回一个空字典。\n" +"[b]注意:[/b]该方法不考虑对象的 [code]motion[/code] 属性。" + msgid "" "Checks whether a point is inside any solid shape. Position and other " "parameters are defined through [PhysicsPointQueryParameters3D]. The shapes " @@ -87720,6 +108780,109 @@ msgstr "" "可能地少,才能够让性能最大化。\n" "多边形必须[i]不存在[/i]相交的线。否则三角形化会失败(同时会输出错误信息)。" +msgid "" +"Returns [code]true[/code] if [param point] falls inside the polygon area.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var polygon_path_finder = PolygonPathFinder.new()\n" +"var points = [Vector2(0.0, 0.0), Vector2(1.0, 0.0), Vector2(0.0, 1.0)]\n" +"var connections = [0, 1, 1, 2, 2, 0]\n" +"polygon_path_finder.setup(points, connections)\n" +"print(polygon_path_finder.is_point_inside(Vector2(0.2, 0.2))) # Prints true\n" +"print(polygon_path_finder.is_point_inside(Vector2(1.0, 1.0))) # Prints false\n" +"[/gdscript]\n" +"[csharp]\n" +"var polygonPathFinder = new PolygonPathFinder();\n" +"Vector2[] points =\n" +"[\n" +" new Vector2(0.0f, 0.0f),\n" +" new Vector2(1.0f, 0.0f),\n" +" new Vector2(0.0f, 1.0f)\n" +"];\n" +"int[] connections = [0, 1, 1, 2, 2, 0];\n" +"polygonPathFinder.Setup(points, connections);\n" +"GD.Print(polygonPathFinder.IsPointInside(new Vector2(0.2f, 0.2f))); // Prints " +"True\n" +"GD.Print(polygonPathFinder.IsPointInside(new Vector2(1.0f, 1.0f))); // Prints " +"False\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"如果 [param point] 在多边形区域内部,则返回 [code]true[/code]。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var polygon_path_finder = PolygonPathFinder.new()\n" +"var points = [Vector2(0.0, 0.0), Vector2(1.0, 0.0), Vector2(0.0, 1.0)]\n" +"var connections = [0, 1, 1, 2, 2, 0]\n" +"polygon_path_finder.setup(points, connections)\n" +"print(polygon_path_finder.is_point_inside(Vector2(0.2, 0.2))) # 输出 true\n" +"print(polygon_path_finder.is_point_inside(Vector2(1.0, 1.0))) # 输出 false\n" +"[/gdscript]\n" +"[csharp]\n" +"var polygonPathFinder = new PolygonPathFinder();\n" +"Vector2[] points =\n" +"[\n" +" new Vector2(0.0f, 0.0f),\n" +" new Vector2(1.0f, 0.0f),\n" +" new Vector2(0.0f, 1.0f)\n" +"];\n" +"int[] connections = [0, 1, 1, 2, 2, 0];\n" +"polygonPathFinder.Setup(points, connections);\n" +"GD.Print(polygonPathFinder.IsPointInside(new Vector2(0.2f, 0.2f))); // 输出 " +"True\n" +"GD.Print(polygonPathFinder.IsPointInside(new Vector2(1.0f, 1.0f))); // 输出 " +"False\n" +"[/csharp]\n" +"[/codeblocks]" + +msgid "" +"Sets up [PolygonPathFinder] with an array of points that define the vertices " +"of the polygon, and an array of indices that determine the edges of the " +"polygon.\n" +"The length of [param connections] must be even, returns an error if odd.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var polygon_path_finder = PolygonPathFinder.new()\n" +"var points = [Vector2(0.0, 0.0), Vector2(1.0, 0.0), Vector2(0.0, 1.0)]\n" +"var connections = [0, 1, 1, 2, 2, 0]\n" +"polygon_path_finder.setup(points, connections)\n" +"[/gdscript]\n" +"[csharp]\n" +"var polygonPathFinder = new PolygonPathFinder();\n" +"Vector2[] points =\n" +"[\n" +" new Vector2(0.0f, 0.0f),\n" +" new Vector2(1.0f, 0.0f),\n" +" new Vector2(0.0f, 1.0f)\n" +"];\n" +"int[] connections = [0, 1, 1, 2, 2, 0];\n" +"polygonPathFinder.Setup(points, connections);\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"使用两个数组设置 [PolygonPathFinder]:点数组中定义了多边形的顶点,索引数组则决" +"定了多边形的边。\n" +"[param connections] 的长度必须为偶数,为奇数时会返回错误。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var polygon_path_finder = PolygonPathFinder.new()\n" +"var points = [Vector2(0.0, 0.0), Vector2(1.0, 0.0), Vector2(0.0, 1.0)]\n" +"var connections = [0, 1, 1, 2, 2, 0]\n" +"polygon_path_finder.setup(points, connections)\n" +"[/gdscript]\n" +"[csharp]\n" +"var polygonPathFinder = new PolygonPathFinder();\n" +"Vector2[] points =\n" +"[\n" +" new Vector2(0.0f, 0.0f),\n" +" new Vector2(1.0f, 0.0f),\n" +" new Vector2(0.0f, 1.0f)\n" +"];\n" +"int[] connections = [0, 1, 1, 2, 2, 0];\n" +"polygonPathFinder.Setup(points, connections);\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "Base class for contextual windows and panels with fixed position." msgstr "上下文窗口以及固定位置的面板的基类。" @@ -87922,6 +109085,63 @@ msgstr "" "id_focused] 信号。它与在函数中,例如在 [method set_item_checked] 中的 " "[code]index[/code] 参数无关。" +msgid "" +"Adds a new multistate item with text [param label].\n" +"Contrarily to normal binary items, multistate items can have more than two " +"states, as defined by [param max_states]. The default value is defined by " +"[param default_state].\n" +"An [param id] can optionally be provided, as well as an accelerator ([param " +"accel]). If no [param id] is provided, one will be created from the index. If " +"no [param accel] is provided, then the default value of 0 (corresponding to " +"[constant @GlobalScope.KEY_NONE]) will be assigned to the item (which means " +"it won't have any accelerator). See [method get_item_accelerator] for more " +"info on accelerators.\n" +"[codeblock]\n" +"func _ready():\n" +" add_multistate_item(\"Item\", 3, 0)\n" +"\n" +" index_pressed.connect(func(index: int):\n" +" toggle_item_multistate(index)\n" +" match get_item_multistate(index):\n" +" 0:\n" +" print(\"First state\")\n" +" 1:\n" +" print(\"Second state\")\n" +" 2:\n" +" print(\"Third state\")\n" +" )\n" +"[/codeblock]\n" +"[b]Note:[/b] Multistate items don't update their state automatically and must " +"be done manually. See [method toggle_item_multistate], [method " +"set_item_multistate] and [method get_item_multistate] for more info on how to " +"control it." +msgstr "" +"添加新的多状态菜单项,使用 [param label] 作为文本。\n" +"与普通的双态菜单项不同,多状态菜单项的状态可以超过两个,数量由 [param " +"max_states] 定义。默认值由 [param default_state] 定义。\n" +"还可以提供 [param id] 和快捷键([param accel])。如果没有提供 [param id],则会" +"根据索引来创建。如果没有提供 [param accel],则会为该菜单项分配默认的 0(对应 " +"[constant @GlobalScope.KEY_NONE],在这里表示没有快捷键)。更多快捷键相关的信息" +"见 [method get_item_accelerator]。\n" +"[codeblock]\n" +"func _ready():\n" +" add_multistate_item(\"菜单项\", 3, 0)\n" +"\n" +" index_pressed.connect(func(index: int):\n" +" toggle_item_multistate(index)\n" +" match get_item_multistate(index):\n" +" 0:\n" +" print(\"甲状态\")\n" +" 1:\n" +" print(\"乙状态\")\n" +" 2:\n" +" print(\"丙状态\")\n" +" )\n" +"[/codeblock]\n" +"[b]注意:[/b]多状态菜单项的状态不会自动变化,必须手动修改。控制方法见 [method " +"toggle_item_multistate]、[method set_item_multistate]、[method " +"get_item_multistate]。" + msgid "" "Adds a new radio check button with text [param label].\n" "An [param id] can optionally be provided, as well as an accelerator ([param " @@ -88499,6 +109719,9 @@ msgid "" "add_separator]." msgstr "用于标签分隔器的右侧 [StyleBox]。请参阅 [method add_separator]。" +msgid "[StyleBox] for the background panel." +msgstr "用于背景面板的 [StyleBox]。" + msgid "[StyleBox] used for the separators. See [method add_separator]." msgstr "用于分隔符的 [StyleBox]。请参阅 [method add_separator]。" @@ -88601,6 +109824,43 @@ msgstr "" "重写该方法以自定义应如何生成该基本网格。应该返回一个 [Array],其中每个元素都是" "该网格所需的另一个值数组(请参阅 [enum Mesh.ArrayType] 常量)。" +msgid "" +"Returns the mesh arrays used to make up the surface of this primitive mesh.\n" +"[b]Example:[/b] Pass the result to [method ArrayMesh.add_surface_from_arrays] " +"to create a new surface:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var c = CylinderMesh.new()\n" +"var arr_mesh = ArrayMesh.new()\n" +"arr_mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, c." +"get_mesh_arrays())\n" +"[/gdscript]\n" +"[csharp]\n" +"var c = new CylinderMesh();\n" +"var arrMesh = new ArrayMesh();\n" +"arrMesh.AddSurfaceFromArrays(Mesh.PrimitiveType.Triangles, c." +"GetMeshArrays());\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"返回用于构成图元网格表面的网格数组。\n" +"[b]示例:[/b]将结果可以传递给 [method ArrayMesh.add_surface_from_arrays] 创建" +"新的表面:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var c = CylinderMesh.new()\n" +"var arr_mesh = ArrayMesh.new()\n" +"arr_mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, c." +"get_mesh_arrays())\n" +"[/gdscript]\n" +"[csharp]\n" +"var c = new CylinderMesh();\n" +"var arrMesh = new ArrayMesh();\n" +"arrMesh.AddSurfaceFromArrays(Mesh.PrimitiveType.Triangles, c." +"GetMeshArrays());\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "Request an update of this primitive mesh based on its properties." msgstr "请求根据其属性更新该基本网格。" @@ -88849,6 +110109,15 @@ msgstr "" "强,内存占用更少。\n" "在内部作为 [Camera3D] 的投影矩阵使用。" +msgid "" +"Constructs a default-initialized [Projection] identical to [constant " +"IDENTITY].\n" +"[b]Note:[/b] In C#, this constructs a [Projection] identical to [constant " +"ZERO]." +msgstr "" +"构造默认初始化的 [Projection],与 [constant IDENTITY] 相同。\n" +"[b]注意:[/b]在 C# 中构造的 [Projection] 与 [constant ZERO] 相同。" + msgid "Constructs a [Projection] as a copy of the given [Projection]." msgstr "构造给定 [Projection] 的副本。" @@ -88976,6 +110245,17 @@ msgstr "返回投影远裁剪平面的尺寸除以二。" msgid "Returns the horizontal field of view of the projection (in degrees)." msgstr "返回该投影的水平视场角(单位为度)。" +msgid "" +"Returns the vertical field of view of the projection (in degrees) associated " +"with the given horizontal field of view (in degrees) and aspect ratio.\n" +"[b]Note:[/b] Unlike most methods of [Projection], [param aspect] is expected " +"to be 1 divided by the X:Y aspect ratio." +msgstr "" +"返回与给定水平视场角(以度为单位)和长宽比相关联的投影的垂直视场角(以度为单" +"位)。\n" +"[b]注意:[/b]与 [Projection] 中的大多数方法不同,[param aspect] 需要是 1 除以 " +"X:Y 纵横比。" + msgid "" "Returns the factor by which the visible level of detail is scaled by this " "[Projection]." @@ -89161,6 +110441,76 @@ msgstr "" "tutorials/export/feature_tags.html]特性标签[/url]。因此,如果你想让它们在所有" "平台和配置上覆盖基础项目设置,请确保[i]也用[/i]所需的特性标签覆盖该设置。" +msgid "Project Settings" +msgstr "项目设置" + +msgid "" +"Adds a custom property info to a property. The dictionary must contain:\n" +"- [code]\"name\"[/code]: [String] (the property's name)\n" +"- [code]\"type\"[/code]: [int] (see [enum Variant.Type])\n" +"- optionally [code]\"hint\"[/code]: [int] (see [enum PropertyHint]) and " +"[code]\"hint_string\"[/code]: [String]\n" +"[codeblocks]\n" +"[gdscript]\n" +"ProjectSettings.set(\"category/property_name\", 0)\n" +"\n" +"var property_info = {\n" +" \"name\": \"category/property_name\",\n" +" \"type\": TYPE_INT,\n" +" \"hint\": PROPERTY_HINT_ENUM,\n" +" \"hint_string\": \"one,two,three\"\n" +"}\n" +"\n" +"ProjectSettings.add_property_info(property_info)\n" +"[/gdscript]\n" +"[csharp]\n" +"ProjectSettings.Singleton.Set(\"category/property_name\", 0);\n" +"\n" +"var propertyInfo = new Godot.Collections.Dictionary\n" +"{\n" +" {\"name\", \"category/propertyName\"},\n" +" {\"type\", (int)Variant.Type.Int},\n" +" {\"hint\", (int)PropertyHint.Enum},\n" +" {\"hint_string\", \"one,two,three\"},\n" +"};\n" +"\n" +"ProjectSettings.AddPropertyInfo(propertyInfo);\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"为某个属性添加自定义属性信息。字典必须包含:\n" +"- [code]\"name\"[/code]:[String](属性名称)\n" +"- [code]\"type\"[/code]:[int](见 [enum Variant.Type])\n" +"- 可选的 [code]\"hint\"[/code]:[int](见 [enum PropertyHint])和 " +"[code]\"hint_string\"[/code]:[String]\n" +"[codeblocks]\n" +"[gdscript]\n" +"ProjectSettings.set(\"category/property_name\", 0)\n" +"\n" +"var property_info = {\n" +" \"name\": \"category/property_name\",\n" +" \"type\": TYPE_INT,\n" +" \"hint\": PROPERTY_HINT_ENUM,\n" +" \"hint_string\": \"one,two,three\"\n" +"}\n" +"\n" +"ProjectSettings.add_property_info(property_info)\n" +"[/gdscript]\n" +"[csharp]\n" +"ProjectSettings.Singleton.Set(\"category/property_name\", 0);\n" +"\n" +"var propertyInfo = new Godot.Collections.Dictionary\n" +"{\n" +" {\"name\", \"category/propertyName\"},\n" +" {\"type\", (int)Variant.Type.Int},\n" +" {\"hint\", (int)PropertyHint.Enum},\n" +" {\"hint_string\", \"one,two,three\"},\n" +"};\n" +"\n" +"ProjectSettings.AddPropertyInfo(propertyInfo);\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "Clears the whole configuration (not recommended, may break things)." msgstr "清除整个配置(不推荐,可能会弄坏东西)。" @@ -89192,6 +110542,76 @@ msgid "" "config file)." msgstr "返回配置值的顺序(保存到配置文件时会产生影响)。" +msgid "" +"Returns the value of the setting identified by [param name]. If the setting " +"doesn't exist and [param default_value] is specified, the value of [param " +"default_value] is returned. Otherwise, [code]null[/code] is returned.\n" +"[codeblocks]\n" +"[gdscript]\n" +"print(ProjectSettings.get_setting(\"application/config/name\"))\n" +"print(ProjectSettings.get_setting(\"application/config/custom_description\", " +"\"No description specified.\"))\n" +"[/gdscript]\n" +"[csharp]\n" +"GD.Print(ProjectSettings.GetSetting(\"application/config/name\"));\n" +"GD.Print(ProjectSettings.GetSetting(\"application/config/" +"custom_description\", \"No description specified.\"));\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] This method doesn't take potential feature overrides into " +"account automatically. Use [method get_setting_with_override] to handle " +"seamlessly." +msgstr "" +"返回由名称 [param name] 标识的设置项的值。如果该设置项不存在,并且指定了默认" +"值 [param default_value],则会返回 [param default_value] 的值。否则返回 " +"[code]null[/code]。\n" +"[codeblocks]\n" +"[gdscript]\n" +"print(ProjectSettings.get_setting(\"application/config/name\"))\n" +"print(ProjectSettings.get_setting(\"application/config/custom_description\", " +"\"未指定描述。\"))\n" +"[/gdscript]\n" +"[csharp]\n" +"GD.Print(ProjectSettings.GetSetting(\"application/config/name\"));\n" +"GD.Print(ProjectSettings.GetSetting(\"application/config/" +"custom_description\", \"未指定描述。\"));\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b]这个方法不会自动考虑可能的特性覆盖项。如需无缝处理,请使用 " +"[method get_setting_with_override]。" + +msgid "" +"Similar to [method get_setting], but applies feature tag overrides if any " +"exists and is valid.\n" +"[b]Example:[/b] If the setting override [code]\"application/config/name." +"windows\"[/code] exists, and the following code is executed on a [i]Windows[/" +"i] operating system, the overridden setting is printed instead:\n" +"[codeblocks]\n" +"[gdscript]\n" +"print(ProjectSettings.get_setting_with_override(\"application/config/" +"name\"))\n" +"[/gdscript]\n" +"[csharp]\n" +"GD.Print(ProjectSettings.GetSettingWithOverride(\"application/config/" +"name\"));\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"类似于 [method get_setting],但会应用有效的特性标签覆盖项。\n" +"[b]示例:[/b]如果存在设置覆盖项 [code]\"application/config/name.windows\"[/" +"code] 并且下列代码在 [i]Windows[/i] 操作系统上执行,就会改为输出覆盖后的设置" +"值。\n" +"[codeblocks]\n" +"[gdscript]\n" +"print(ProjectSettings.get_setting_with_override(\"application/config/" +"name\"))\n" +"[/gdscript]\n" +"[csharp]\n" +"GD.Print(ProjectSettings.GetSettingWithOverride(\"application/config/" +"name\"));\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Returns the absolute, native OS path corresponding to the localized [param " "path] (starting with [code]res://[/code] or [code]user://[/code]). The " @@ -89242,6 +110662,30 @@ msgstr "" msgid "Returns [code]true[/code] if a configuration value is present." msgstr "配置值存在时返回 [code]true[/code]。" +msgid "" +"Loads the contents of the .pck or .zip file specified by [param pack] into " +"the resource filesystem ([code]res://[/code]). Returns [code]true[/code] on " +"success.\n" +"[b]Note:[/b] If a file from [param pack] shares the same path as a file " +"already in the resource filesystem, any attempts to load that file will use " +"the file from [param pack] unless [param replace_files] is set to " +"[code]false[/code].\n" +"[b]Note:[/b] The optional [param offset] parameter can be used to specify the " +"offset in bytes to the start of the resource pack. This is only supported " +"for .pck files.\n" +"[b]Note:[/b] [DirAccess] will not show changes made to the contents of " +"[code]res://[/code] after calling this function." +msgstr "" +"将 [param pack] 指定的 .pck 或 .zip 文件的内容,加载到资源文件系统" +"([code]res://[/code])。成功时返回 [code]true[/code]。\n" +"[b]注意:[/b]如果来自 [param pack] 的文件与资源文件系统中已有的文件路径相同," +"则任何加载该文件的尝试,都将使用来自 [param pack] 的文件,除非 [param " +"replace_files] 被设置为 [code]false[/code]。\n" +"[b]注意:[/b]可选的 [param offset] 参数可用于指定资源包开头的字节偏移量。只支" +"持 .pck 文件。\n" +"[b]注意:[/b]调用该函数后,[DirAccess] 不再显示对 [code]res://[/code] 内容的更" +"改。" + msgid "" "Returns the localized path (starting with [code]res://[/code]) corresponding " "to the absolute, native OS [param path]. See also [method globalize_path]." @@ -89312,6 +110756,30 @@ msgstr "" "[b]注意:[/b]这只是向用户显示的提示,提示必须重新启动编辑器才能使更改生效。启" "用 [method set_restart_if_changed] [i]不[/i]会延迟在更改时设置的设置。" +msgid "" +"Sets the value of a setting.\n" +"[codeblocks]\n" +"[gdscript]\n" +"ProjectSettings.set_setting(\"application/config/name\", \"Example\")\n" +"[/gdscript]\n" +"[csharp]\n" +"ProjectSettings.SetSetting(\"application/config/name\", \"Example\");\n" +"[/csharp]\n" +"[/codeblocks]\n" +"This can also be used to erase custom project settings. To do this change the " +"setting value to [code]null[/code]." +msgstr "" +"设置设置项的值。\n" +"[codeblocks]\n" +"[gdscript]\n" +"ProjectSettings.set_setting(\"application/config/name\", \"Example\")\n" +"[/gdscript]\n" +"[csharp]\n" +"ProjectSettings.SetSetting(\"application/config/name\", \"Example\");\n" +"[/csharp]\n" +"[/codeblocks]\n" +"也可以用来擦除自定义项目设置。方法是将设置项的值设置为 [code]null[/code]。" + msgid "" "If [code]true[/code], [AnimationMixer] prints the warning of interpolation " "being forced to choose the shortest rotation path due to multiple angle " @@ -89703,6 +111171,32 @@ msgid "" "overridden by the scene." msgstr "项目中使用的默认 [AudioBusLayout] 资源文件,除非被场景覆盖。" +msgid "" +"Specifies the audio driver to use. This setting is platform-dependent as each " +"platform supports different audio drivers. If left empty, the default audio " +"driver will be used.\n" +"The [code]Dummy[/code] audio driver disables all audio playback and " +"recording, which is useful for non-game applications as it reduces CPU usage. " +"It also prevents the engine from appearing as an application playing audio in " +"the OS' audio mixer.\n" +"To query the value that is being used at run-time (which may be overridden by " +"command-line arguments or headless mode), use [method AudioServer." +"get_driver_name].\n" +"[b]Note:[/b] The driver in use can be overridden at runtime via the [code]--" +"audio-driver[/code] [url=$DOCS_URL/tutorials/editor/command_line_tutorial." +"html]command line argument[/url]." +msgstr "" +"指定要使用的音频驱动程序。这个设置与平台有关,因为不同的平台支持不同的音频驱" +"动。如果留空,将使用默认的音频驱动程序。\n" +"[code]Dummy[/code] 音频驱动程序会禁用所有的音频播放和录制,对非游戏应用程序很" +"有用,因为会减少对 CPU 的使用。它还可以防止引擎作为正在播放音频的应用程序出现" +"在操作系统的音频混合器中。\n" +"要查询在运行时使用的值(该值可能会被命令行参数或无头模式覆盖),请使用 " +"[method AudioServer.get_driver_name]。\n" +"[b]注意:[/b]运行时可以通过 [code]--audio-driver[/code] [url=$DOCS_URL/" +"tutorials/editor/command_line_tutorial.html]命令行参数[/url]覆盖所使用的驱动程" +"序。" + msgid "" "If [code]true[/code], microphone input will be allowed. This requires " "appropriate permissions to be set when exporting to Android or iOS.\n" @@ -89717,12 +111211,6 @@ msgstr "" "那么音频捕获只会返回静音。自 Windows 10 起,请确保在操作系统的隐私设置中允许应" "用对麦克风的访问。" -msgid "" -"The mixing rate used for audio (in Hz). In general, it's better to not touch " -"this and leave it to the host operating system." -msgstr "" -"用于音频的混合率(单位:Hz)。一般来说,最好不要碰这个,把它留给主机操作系统。" - msgid "" "Safer override for [member audio/driver/mix_rate] in the Web platform. Here " "[code]0[/code] means \"let the browser choose\" (since some browsers do not " @@ -90733,6 +112221,13 @@ msgstr "" "multiple_resolutions.html]多个分辨率[/url],而不是禁用此设置。\n" "[b]注意:[/b]这个设置在 Linux 上无效,因为 Linux 不支持 DPI 感知回退。" +msgid "" +"Enable Swappy for stable frame pacing on Android. Highly recommended.\n" +"[b]Note:[/b] This option will be forced off when using OpenXR." +msgstr "" +"启用 Swappy,能够在 Android 上实现稳定帧率。强烈推荐。\n" +"[b]注意:[/b]使用 OpenXR 时会强制关闭该选项。" + msgid "" "The default screen orientation to use on mobile devices. See [enum " "DisplayServer.ScreenOrientation] for possible values.\n" @@ -90856,6 +112351,15 @@ msgstr "" "[b]注意:[/b]该设置仅影响导出的项目,或者当项目从命令行运行时。在编辑器中,请" "改用 [member EditorSettings.run/window_placement/screen] 的值。" +msgid "" +"Main window mode. See [enum DisplayServer.WindowMode] for possible values and " +"how each mode behaves.\n" +"[b]Note:[/b] Game embedding is available only in the \"Windowed\" mode." +msgstr "" +"主窗口的模式。可能的取值以及各个模式的行为请参阅 [enum DisplayServer." +"WindowMode]。\n" +"[b]注意:[/b]游戏内嵌仅在“Windowed”模式下可用。" + msgid "" "Main window can't be focused. No-focus window will ignore all input, except " "mouse clicks." @@ -90882,6 +112386,13 @@ msgstr "" "设置来保证窗口[i]永远不会[/i]调整大小。\n" "[b]注意:[/b]该设置在 iOS 上被忽略。" +msgid "" +"If [code]true[/code], the main window uses sharp corners by default.\n" +"[b]Note:[/b] This property is implemented only on Windows (11)." +msgstr "" +"如果为 [code]true[/code],则主窗口默认使用尖角。\n" +"[b]注意:[/b]该属性在 Windows(11)上实现。" + msgid "" "If [code]true[/code], enables a window manager hint that the main window " "background [i]can[/i] be transparent. This does not make the background " @@ -92219,6 +113730,31 @@ msgid "" "the caret." msgstr "针对 macOS 的快捷键覆盖项,对应选中光标处单词的快捷键。" +msgid "" +"If no selection is currently active with the last caret in text fields, " +"searches for the next occurrence of the word currently under the caret and " +"moves the caret to the next occurrence. The action can be performed " +"sequentially for other occurrences of the word under the last caret.\n" +"If a selection is currently active with the last caret in text fields, " +"searches for the next occurrence of the selection, adds a caret, selects the " +"next occurrence then deselects the previous selection and its associated " +"caret. The action can be performed sequentially for other occurrences of the " +"selection of the last caret.\n" +"The viewport is adjusted to the latest newly added caret.\n" +"[b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are " +"necessary for the internal logic of several [Control]s. The events assigned " +"to the action can however be modified." +msgstr "" +"如果文本字段的最后一个文本光标当前未处于活动状态,则会搜索当前位于文本光标下方" +"的单词的下一次出现的位置,并将文本光标移动到下一个出现位置。可以对最后一个文本" +"光标下方的单词的其他出现位置依次执行该动作。\n" +"如果文本字段中最后一个文本光标当前处于活动状态,则搜索所选内容的下一个出现位" +"置,添加文本光标,选择下一个出现位置,然后取消选择上一个选择及其关联的文本光" +"标。可以对上一个文本光标的其他出现位置依次执行该动作。\n" +"视口会根据最近新添加的文本光标进行调整。\n" +"[b]注意:[/b]默认的 [code]ui_*[/code] 动作对于多个 [Control] 的内部逻辑是必需" +"的,无法删除。但是可以修改分配给该动作的事件。" + msgid "" "Default [InputEventAction] to submit a text field.\n" "[b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are " @@ -92252,6 +113788,17 @@ msgstr "" "[b]注意:[/b]默认的 [code]ui_*[/code] 动作是部分 [Control] 的内部逻辑所必需" "的,无法删除。但是可以修改分配给该动作的事件。" +msgid "" +"Default [InputEventAction] to start Unicode character hexadecimal code input " +"in a text field.\n" +"[b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are " +"necessary for the internal logic of several [Control]s. The events assigned " +"to the action can however be modified." +msgstr "" +"默认 [InputEventAction],用于在文本框中开启 Unicode 字符的十六进制码输入。\n" +"[b]注意:[/b]默认的 [code]ui_*[/code] 动作是部分 [Control] 的内部逻辑所必需" +"的,无法删除。但是可以修改分配给该动作的事件。" + msgid "" "Default [InputEventAction] to move up in the UI.\n" "[b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are " @@ -92302,14 +113849,16 @@ msgid "" "used.\n" "[b]Note:[/b] The driver in use can be overridden at runtime via the [code]--" "tablet-driver[/code] [url=$DOCS_URL/tutorials/editor/command_line_tutorial." -"html]command line argument[/url]." +"html]command line argument[/url].\n" +"[b]Note:[/b] Use [method DisplayServer.tablet_set_current_driver] to switch " +"tablet driver in runtime." msgstr "" "指定要使用的平板驱动。如果留空,则会使用默认驱动。\n" "[b]注意:[/b]所使用的驱动可以通过 [code]--tablet-driver[/code] [url=$DOCS_URL/" -"tutorials/editor/command_line_tutorial.html]命令行参数[/url]在运行时进行覆盖。" - -msgid "Override for [member input_devices/pen_tablet/driver] on Windows." -msgstr "[member input_devices/pen_tablet/driver] 针对 Windows 的覆盖项。" +"tutorials/editor/command_line_tutorial.html]命令行参数[/url]在运行时进行覆" +"盖。\n" +"[b]注意:[/b]运行时切换平板驱动请使用 [method DisplayServer." +"tablet_set_current_driver]。" msgid "" "If [code]true[/code], long press events on an Android touchscreen are " @@ -92342,11 +113891,41 @@ msgid "" msgstr "如果为 [code]true[/code],则在点击或拖动鼠标时发送触摸输入事件。" msgid "" -"The locale to fall back to if a translation isn't available in a given " -"language. If left empty, [code]en[/code] (English) will be used." +"If [code]true[/code], the accelerometer sensor is enabled and [method Input." +"get_accelerometer] returns valid data." msgstr "" -"如果给定语言的翻译不可用,则使用默认区域设置。如果留空,将使用 [code]en[/" -"code],即英文。" +"如果为 [code]true[/code],则启用了加速度计传感器,并且 [method Input." +"get_accelerometer] 会返回有效数据。" + +msgid "" +"If [code]true[/code], the gravity sensor is enabled and [method Input." +"get_gravity] returns valid data." +msgstr "" +"如果为 [code]true[/code],则启用了重力传感器,并且 [method Input.get_gravity] " +"会返回有效数据。" + +msgid "" +"If [code]true[/code], the gyroscope sensor is enabled and [method Input." +"get_gyroscope] returns valid data." +msgstr "" +"如果为 [code]true[/code],则启用了陀螺仪传感器,并且 [method Input." +"get_gyroscope] 会返回有效数据。" + +msgid "" +"If [code]true[/code], the magnetometer sensor is enabled and [method Input." +"get_magnetometer] returns valid data." +msgstr "" +"如果为 [code]true[/code],则启用了磁力计传感器,并且 [method Input." +"get_magnetometer] 会返回有效数据。" + +msgid "" +"The locale to fall back to if a translation isn't available in a given " +"language. If left empty, [code]en[/code] (English) will be used.\n" +"[b]Note:[/b] Not to be confused with [TextServerFallback]." +msgstr "" +"如果给定语言的翻译不可用,则使用默认区域设置。如果留空则使用 [code]en[/code]" +"(英文)。\n" +"[b]注意:[/b]请勿与 [TextServerFallback] 混淆。" msgid "" "If [code]true[/code], text server break iteration rule sets, dictionaries and " @@ -92355,19 +113934,27 @@ msgid "" "dictionaries for Burmese, Chinese, Japanese, Khmer, Lao and Thai as well as " "Unicode Standard Annex #29 and Unicode Standard Annex #14 word and line " "breaking rules. Data is about 4 MB large.\n" -"[b]Note:[/b] \"Fallback\" text server does not use additional data." +"[b]Note:[/b] [TextServerFallback] does not use additional data." msgstr "" "如果为 [code]true[/code],则文本服务器中断迭代规则集、字典和其他可选数据将被包" "含在导出的项目中。\n" "[b]注意:[/b]“ICU / HarfBuzz / Graphite”文本服务器数据,包括缅甸语、汉语、日" "语、高棉语、老挝语和泰语的词典,以及 Unicode 标准附件 #29 和 Unicode 标准附件 " "#14 单词和行折断规则。数据大约 4 MB。\n" -"[b]注意:[/b]“后备”文本服务器不使用额外数据。" +"[b]注意:[/b][TextServerFallback] 不使用额外数据。" msgid "" -"If non-empty, this locale will be used when running the project from the " -"editor." -msgstr "如果不为空,那么当从编辑器中运行项目时,将使用该区域设置。" +"If non-empty, this locale will be used instead of the automatically detected " +"system locale.\n" +"[b]Note:[/b] This setting also applies to the exported project. To only " +"affect testing within the editor, override this setting with an [code]editor[/" +"code] [url=$DOCS_URL/tutorials/export/feature_tags.html]feature tag[/url] for " +"localization testing purposes." +msgstr "" +"如果非空,则将使用该区域设置,不使用自动检测的系统区域设置。\n" +"[b]注意:[/b]该设置也适用于导出后的项目。要仅影响编辑器中的测试,请使用 " +"[code]editor[/code] [url=$DOCS_URL/tutorials/export/feature_tags.html]功能标签" +"[/url]来覆盖该设置项,以便进行本地化测试。" msgid "" "Double vowels in strings during pseudolocalization to simulate the " @@ -92387,11 +113974,13 @@ msgid "" "If [code]true[/code], emulate bidirectional (right-to-left) text when " "pseudolocalization is enabled. This can be used to spot issues with RTL " "layout and UI mirroring that will crop up if the project is localized to RTL " -"languages such as Arabic or Hebrew." +"languages such as Arabic or Hebrew. See also [member internationalization/" +"rendering/force_right_to_left_layout_direction]." msgstr "" "如果为 [code]true[/code],则在启用伪本地化时模拟双向(从右至左)文本。可用于发" "现 RTL 布局和 UI 镜像问题,如果项目本地化为阿拉伯语或希伯来语等 RTL 语言,则会" -"出现这些问题。" +"出现这些问题。另见 [member internationalization/rendering/" +"force_right_to_left_layout_direction]。" msgid "" "Replace all characters in the string with [code]*[/code]. Useful for finding " @@ -92430,10 +114019,6 @@ msgstr "" "[b]注意:[/b]只有在项目启动时该属性才会被读取。要在运行时切换伪本地化,请改用 " "[member TranslationServer.pseudolocalization_enabled]。" -msgid "" -"Force layout direction and text writing direction to RTL for all controls." -msgstr "强制所有控件的布局方向和文本书写方向为 RTL。" - msgid "" "If [code]true[/code], root node will use [constant Node." "AUTO_TRANSLATE_MODE_ALWAYS], otherwise [constant Node." @@ -92451,33 +114036,6 @@ msgstr "" msgid "Root node default layout direction." msgstr "根节点的默认布局方向。" -msgid "" -"Specifies the [TextServer] to use. If left empty, the default will be used.\n" -"\"ICU / HarfBuzz / Graphite\" is the most advanced text driver, supporting " -"right-to-left typesetting and complex scripts (for languages like Arabic, " -"Hebrew, etc.). The \"Fallback\" text driver does not support right-to-left " -"typesetting and complex scripts.\n" -"[b]Note:[/b] The driver in use can be overridden at runtime via the [code]--" -"text-driver[/code] [url=$DOCS_URL/tutorials/editor/command_line_tutorial." -"html]command line argument[/url].\n" -"[b]Note:[/b] There is an additional [code]Dummy[/code] text driver available, " -"which disables all text rendering and font-related functionality. This driver " -"is not listed in the project settings, but it can be enabled when running the " -"editor or project using the [code]--text-driver Dummy[/code] [url=$DOCS_URL/" -"tutorials/editor/command_line_tutorial.html]command line argument[/url]." -msgstr "" -"指定要使用的 [TextServer]。如果留空,则会使用默认服务器。\n" -"“ICU / HarfBuzz / Graphite”是最先进的文本驱动,支持从右至左的排版和复杂文字" -"(用于阿拉伯语、希伯来语等语言)。“Fallback”文本驱动不支持从右至左的排版和复杂" -"文字。\n" -"[b]注意:[/b]在运行时可以通过 [code]--text-driver[/code] [url=$DOCS_URL/" -"tutorials/editor/command_line_tutorial.html]命令行参数[/url]覆盖使用的驱动程" -"序。\n" -"[b]注意:[/b]另外还提供了 [code]Dummy[/code] 文本驱动,它禁用了所有文本渲染和" -"字体相关的功能。这个驱动没有在项目设置中列出,但可以在运行编辑器或项目时使用 " -"[code]--text-driver Dummy[/code] [url=$DOCS_URL/tutorials/editor/" -"command_line_tutorial.html]命令行参数[/url]启用。" - msgid "" "Optional name for the 2D navigation layer 1. If left empty, the layer will " "display as \"Layer 1\"." @@ -94041,16 +115599,6 @@ msgstr "" "阻尼值都会有这种现象。要恢复此前的感觉,就需要修改阻尼值。修改多少并不成比例," "需要根据实际情况调整。" -msgid "" -"If [code]true[/code], the 3D physics server runs on a separate thread, making " -"better use of multi-core CPUs. If [code]false[/code], the 3D physics server " -"runs on the main thread. Running the physics server on a separate thread can " -"increase performance, but restricts API access to only physics process." -msgstr "" -"如果为 [code]true[/code],则 3D 物理服务器会在单独的线程上运行,能够更好地利用" -"多核 CPU。如果为 [code]false[/code],则 3D 物理服务器会在主线程上运行。在单独" -"的线程上运行物理服务器能够提高性能,但会把对 API 的访问限制在物理处理中。" - msgid "" "Threshold angular velocity under which a 3D physics body will be considered " "inactive. See [constant PhysicsServer3D." @@ -94174,6 +115722,42 @@ msgstr "" "且远大于默认值,那么建议将 [member physics/common/" "max_physics_steps_per_frame] 也调大。" +msgid "How much bodies are allowed to penetrate each other, in meters." +msgstr "允许物体相互穿透的程度,单位为米。" + +msgid "" +"Number of solver position iterations. The greater the number of iterations, " +"the more accurate the simulation will be, at the cost of CPU performance." +msgstr "" +"求解器的位置迭代次数。迭代次数越大,模拟精确度越高,但对 CPU 性能的消耗也越" +"大。" + +msgid "" +"Radius around physics bodies, inside which speculative contact points will be " +"detected, in meters. This is mainly used to prevent tunneling/penetration for " +"[RigidBody3D] nodes during simulation.\n" +"[b]Note:[/b] Setting this too high may result in ghost collisions, as " +"speculative contacts are based on the closest points during the collision " +"detection step which may not be the actual closest points by the time the two " +"bodies hit." +msgstr "" +"围绕物理体的半径,单位为米,位于此半径中的推测接触点能够被检测到。主要用于防" +"止 [RigidBody3D] 节点在模拟中发生隧穿/穿透。\n" +"[b]注意:[/b]设置得过高可能导致幽灵碰撞,因为推测接触是基于碰撞检测步骤中最接" +"近的点,而在两个物体碰撞时,这些点可能并不是实际的最接近点。" + +msgid "" +"Number of solver velocity iterations. The greater the number of iterations, " +"the more accurate the simulation will be, at the cost of CPU performance.\n" +"[b]Note:[/b] This needs to be at least [code]2[/code] in order for friction " +"to work, as friction is applied using the non-penetration impulse from the " +"previous iteration." +msgstr "" +"求解器的速度迭代次数。迭代次数越大,模拟精确度越高,但对 CPU 性能的消耗也越" +"大。\n" +"[b]注意:[/b]至少为 [code]2[/code] 阻力才会生效,因为阻力需要根据上一次迭代的" +"非穿透冲量进行计算。" + msgid "" "Controls how much of the original viewport size should be covered by the 2D " "signed distance field. This SDF can be sampled in [CanvasItem] shaders and is " @@ -94581,29 +116165,128 @@ msgstr "" msgid "" "Sets the driver to be used by the renderer when using the Compatibility " -"renderer. This property can not be edited directly, instead, set the driver " -"using the platform-specific overrides." +"renderer. Editing this property has no effect in the default configuration, " +"as first-party platforms each have platform-specific overrides. Use those " +"overrides to configure the driver for each platform.\n" +"This can be overridden using the [code]--rendering-driver <driver>[/code] " +"command line argument.\n" +"Supported values are:\n" +"- [code]opengl3[/code], OpenGL 3.3 on desktop platforms, OpenGL ES 3.0 on " +"mobile platforms, WebGL 2.0 on web.\n" +"- [code]opengl3_angle[/code], OpenGL ES 3.0 using the ANGLE compatibility " +"layer, supported on macOS (over native OpenGL) and Windows (over Direct3D " +"11).\n" +"- [code]opengl3_es[/code], OpenGL ES 3.0 on Linux/BSD.\n" +"[b]Note:[/b] The availability of these options depends on whether the engine " +"was compiled with support for them (determined by SCons options " +"[code]opengl3[/code] and [code]angle_libs[/code]).\n" +"[b]Note:[/b] The actual rendering driver may be automatically changed by the " +"engine as a result of a fallback, or a user-specified command line argument. " +"To get the actual rendering driver that is used at runtime, use [method " +"RenderingServer.get_current_rendering_driver_name] instead of reading this " +"project setting's value." msgstr "" -"设置渲染器驱动程序,在使用 Compatibility(兼容性)渲染器时使用。这个属性不能直" -"接编辑,请改用特定平台的覆盖项来设置驱动程序。" +"设置使用 Compatibility 渲染器时渲染器所使用的驱动。默认配置中编辑该属性无效," +"因为第一方平台都有各自特定的覆盖项,配置这些平台的驱动请使用对应的覆盖项。\n" +"可以使用 [code]--rendering-driver <driver>[/code] 命令行参数覆盖。\n" +"支持的值有:\n" +"- [code]opengl3[/code],桌面平台为 OpenGL 3.3,移动平台为 OpenGL ES 3.0,Web " +"平台为 WebGL 2.0。\n" +"- [code]opengl3_angle[/code],使用 ANGLE 兼容层的 OpenGL ES 3.0,支持 macOS" +"(原生 OpenGL)和 Windows(基于 Direct3D 11)。\n" +"- [code]opengl3_es[/code],Linux/BSD 为 OpenGL ES 3.0。\n" +"[b]注意:[/b]这些选项是否可用取决于编译引擎时是否开启了对应的支持(由 SCons 选" +"项 [code]opengl3[/code] 和 [code]angle_libs[/code] 决定)。\n" +"[b]注意:[/b]实际的渲染驱动程序可能会因为回退或用户指定的命令行参数而被引擎自" +"动更改。要获取在运行时使用的实际渲染驱动程序,请使用 [method RenderingServer." +"get_current_rendering_driver_name],不要读取该项目设置的值。" -msgid "Android override for [member rendering/gl_compatibility/driver]." -msgstr "[member rendering/gl_compatibility/driver] 在 Android 的覆盖项。" +msgid "" +"Android override for [member rendering/gl_compatibility/driver].\n" +"Only one option is supported:\n" +"- [code]opengl3[/code], OpenGL ES 3.0 from native drivers." +msgstr "" +"[member rendering/gl_compatibility/driver] 的 Android 覆盖项。\n" +"仅支持一个选项:\n" +"- [code]opengl3[/code],原生驱动的 OpenGL ES 3.0。" -msgid "iOS override for [member rendering/gl_compatibility/driver]." -msgstr "[member rendering/gl_compatibility/driver] 在 iOS 的覆盖项。" +msgid "" +"iOS override for [member rendering/gl_compatibility/driver].\n" +"Only one option is supported:\n" +"- [code]opengl3[/code], OpenGL ES 3.0 from native drivers." +msgstr "" +"[member rendering/gl_compatibility/driver] 的 iOS 覆盖项。\n" +"仅支持一个选项:\n" +"- [code]opengl3[/code],原生驱动的 OpenGL ES 3.0。" -msgid "LinuxBSD override for [member rendering/gl_compatibility/driver]." -msgstr "[member rendering/gl_compatibility/driver] 在 LinuxBSD 的覆盖项。" +msgid "" +"LinuxBSD override for [member rendering/gl_compatibility/driver].\n" +"Two options are supported:\n" +"- [code]opengl3[/code] (default), OpenGL 3.3 from native drivers.\n" +"- [code]opengl3_es[/code], OpenGL ES 3.0 from native drivers. If [member " +"rendering/gl_compatibility/fallback_to_gles] is enabled, this is used as a " +"fallback if OpenGL 3.3 is not supported." +msgstr "" +"[member rendering/gl_compatibility/driver] 的 LinuxBSD 覆盖项。\n" +"支持两个选项:\n" +"- [code]opengl3[/code](默认),原生驱动的 OpenGL 3.3。\n" +"- [code]opengl3_es[/code],原生驱动的 OpenGL ES 3.0。如果启用了 [member " +"rendering/gl_compatibility/fallback_to_gles],则会在不支持 OpenGL 3.3 时作为回" +"退使用。" -msgid "macOS override for [member rendering/gl_compatibility/driver]." -msgstr "[member rendering/gl_compatibility/driver] 在 macOS 的覆盖项。" +msgid "" +"macOS override for [member rendering/gl_compatibility/driver].\n" +"Two options are supported:\n" +"- [code]opengl3[/code] (default), OpenGL 3.3 from native drivers. If [member " +"rendering/gl_compatibility/fallback_to_native] is enabled, this is used as a " +"fallback if ANGLE is configured as the preferred driver but not supported.\n" +"- [code]opengl3_angle[/code], OpenGL ES 3.0 using the ANGLE compatibility " +"layer over native OpenGL drivers. If [member rendering/gl_compatibility/" +"fallback_to_angle] is enabled, this is used as a fallback if OpenGL 3.3 is " +"not supported." +msgstr "" +"[member rendering/gl_compatibility/driver] 的 macOS 覆盖项。\n" +"支持两个选项:\n" +"- [code]opengl3[/code](默认),原生驱动的 OpenGL 3.3。如果启用了 [member " +"rendering/gl_compatibility/fallback_to_native],则会在将 ANGLE 配置为首选驱动" +"但不支持时作为回退使用。\n" +"- [code]opengl3_es[/code],基于原生 OpenGL 驱动使用 ANGLE 兼容层的 OpenGL ES " +"3.0。如果启用了 [member rendering/gl_compatibility/fallback_to_angle],则会在" +"不支持 OpenGL 3.3 时作为回退使用。" -msgid "Web override for [member rendering/gl_compatibility/driver]." -msgstr "[member rendering/gl_compatibility/driver] 在 Web 的覆盖项。" +msgid "" +"Web override for [member rendering/gl_compatibility/driver].\n" +"Only one option is supported:\n" +"- [code]opengl3[/code], WebGL 2.0. The underlying native API depends on the " +"target OS, browser, and browser configuration." +msgstr "" +"[member rendering/gl_compatibility/driver] 的 Web 覆盖项。\n" +"仅支持一个选项:\n" +"- [code]opengl3[/code],WebGL 2.0。底层原生 API 取决于目标操作系统、浏览器以及" +"浏览器配置。" -msgid "Windows override for [member rendering/gl_compatibility/driver]." -msgstr "[member rendering/gl_compatibility/driver] 在 Windows 的覆盖项。" +msgid "" +"Windows override for [member rendering/gl_compatibility/driver].\n" +"Two options are supported:\n" +"- [code]opengl3[/code] (default), OpenGL 3.3 from native drivers. If [member " +"rendering/gl_compatibility/fallback_to_native] is enabled, this is used as a " +"fallback if ANGLE is configured as the preferred driver but not supported.\n" +"- [code]opengl3_angle[/code], OpenGL ES 3.0 using the ANGLE compatibility " +"layer over native Direct3D 11 drivers. If [member rendering/gl_compatibility/" +"fallback_to_angle] is enabled, this is used as a fallback if OpenGL 3.3 is " +"not supported. By default, ANGLE is used as the default driver for some " +"devices listed in [member rendering/gl_compatibility/force_angle_on_devices]." +msgstr "" +"[member rendering/gl_compatibility/driver] 的 Windows 覆盖项。\n" +"支持两个选项:\n" +"- [code]opengl3[/code](默认),原生驱动的 OpenGL 3.3。如果启用了 [member " +"rendering/gl_compatibility/fallback_to_native],则会在将 ANGLE 配置为首选驱动" +"但不支持时作为回退使用。\n" +"- [code]opengl3_es[/code],基于原生 Direct3D 11 驱动使用 ANGLE 兼容层的 " +"OpenGL ES 3.0。如果启用了 [member rendering/gl_compatibility/" +"fallback_to_angle],则会在不支持 OpenGL 3.3 时作为回退使用。默认情况下," +"[member rendering/gl_compatibility/force_angle_on_devices] 中列出的设备会使用 " +"ANGLE 作为默认驱动。" msgid "" "If [code]true[/code], the compatibility renderer will fall back to ANGLE if " @@ -94625,6 +116308,15 @@ msgstr "" "OpenGLES。\n" "[b]注意:[/b]该设置仅在 Linux/X11 上实现。" +msgid "" +"If [code]true[/code], the compatibility renderer will fall back to native " +"OpenGL if ANGLE is not supported, or ANGLE dynamic libraries aren't found.\n" +"[b]Note:[/b] This setting is implemented on macOS and Windows." +msgstr "" +"如果为 [code]true[/code],如果不支持 ANGLE 或无法找到 ANGLE 动态库,则兼容性渲" +"染器将回退到原生 OpenGL。\n" +"[b]注意:[/b]该设置在 macOS 和 Windows 上实现。" + msgid "" "An [Array] of devices which should always use the ANGLE renderer.\n" "Each entry is a [Dictionary] with the following keys: [code]vendor[/code] and " @@ -94758,6 +116450,18 @@ msgstr "" "[b]注意:[/b]这个属性仅在项目启动时读取。要在运行时控制 VoxelGI 的质量,请改为" "调用 [method RenderingServer.voxel_gi_set_quality]。" +msgid "" +"The region size to use when baking lightmaps with [LightmapGI]. The specified " +"value is rounded up to the nearest power of 2.\n" +"[b]Note:[/b] Using a value that is too high for your system can cause crashes " +"due to the GPU being unresponsive for long periods of time, and the graphics " +"driver being reset by the OS." +msgstr "" +"使用 [LightmapGI] 烘焙光照贴图时使用的区域大小。指定的值会向上舍入到最近的 2 " +"的幂。\n" +"[b]注意:[/b]使用过高的值可能会导致系统崩溃,因为 GPU 如果长时间无响应,操作系" +"统会重置图形驱动程序。" + msgid "" "The number of rays to use for baking dynamic object lighting in " "[LightmapProbe]s when [member LightmapGI.quality] is [constant LightmapGI." @@ -94850,6 +116554,16 @@ msgstr "" "如果系统上没有配置 GPU 加速,则会执行基于 CPU 的多线程去噪。在大多数情况下,这" "种基于 CPU 的降噪明显慢于 JNLM 降噪器。" +msgid "" +"If [code]true[/code], applies a bicubic filter during lightmap sampling. This " +"makes lightmaps look much smoother, at a moderate performance cost.\n" +"[b]Note:[/b] The bicubic filter exaggerates the 'bleeding' effect that occurs " +"when a lightmap's resolution is low enough." +msgstr "" +"如果为 [code]true[/code],则会在光照贴图采样期间应用双三次过滤。这样光照贴图看" +"起来会更加平滑,但会带来一定的性能开销。\n" +"[b]注意:[/b]双三次过滤会夸大光照贴图分辨率足够低时出现的“出血”效果。" + msgid "" "The texel_size that is used to calculate the [member Mesh.lightmap_size_hint] " "on [PrimitiveMesh] resources if [member PrimitiveMesh.add_uv2] is enabled." @@ -95308,39 +117022,6 @@ msgstr "" "作。\n" "这个值可能会降低,也可能需要提高,具体取决于场景的复杂度。" -msgid "Android override for [member rendering/rendering_device/driver]." -msgstr "[member rendering/rendering_device/driver] 在 Android 的覆盖项。" - -msgid "iOS override for [member rendering/rendering_device/driver]." -msgstr "[member rendering/rendering_device/driver] 在 iOS 的覆盖项。" - -msgid "LinuxBSD override for [member rendering/rendering_device/driver]." -msgstr "[member rendering/rendering_device/driver] 在 LinuxBSD 的覆盖项。" - -msgid "macOS override for [member rendering/rendering_device/driver]." -msgstr "[member rendering/rendering_device/driver] 在 macOS 的覆盖项。" - -msgid "Windows override for [member rendering/rendering_device/driver]." -msgstr "[member rendering/rendering_device/driver] 在 Windows 的覆盖项。" - -msgid "" -"If [code]true[/code], the forward renderer will fall back to Direct3D 12 if " -"Vulkan is not supported.\n" -"[b]Note:[/b] This setting is implemented only on Windows." -msgstr "" -"如果为 [code]true[/code],则 forward 渲染器会在不支持 Vulkan 时回退到 " -"Direct3D 12。\n" -"[b]注意:[/b]该设置仅在 Windows 上实现。" - -msgid "" -"If [code]true[/code], the forward renderer will fall back to Vulkan if " -"Direct3D 12 is not supported.\n" -"[b]Note:[/b] This setting is implemented only on Windows." -msgstr "" -"如果为 [code]true[/code],则 forward 渲染器会在不支持 Direct3D 12 时回退到 " -"Vulkan。\n" -"[b]注意:[/b]该设置仅在 Windows 上实现。" - msgid "" "Enable the pipeline cache that is saved to disk if the graphics API supports " "it.\n" @@ -95478,6 +117159,34 @@ msgstr "" "由于性能问题或驱动程序支持,移动设备上用于 [member rendering/shading/" "overrides/force_lambert_over_burley] 的低端覆盖。" +msgid "" +"If [code]true[/code], forces vertex shading for all rendering. This can " +"increase performance a lot, but also reduces quality immensely. Can be used " +"to optimize performance on low-end mobile devices." +msgstr "" +"如果为 [code]true[/code],为所有渲染强制顶点着色。这可以大大提高性能,但也会极" +"大地降低质量。可用于优化低端移动设备的性能。" + +msgid "" +"The default texture filtering mode to use for [CanvasItem]s built-in texture. " +"In shaders, this texture is accessed as [code]TEXTURE[/code].\n" +"[b]Note:[/b] For pixel art aesthetics, see also [member rendering/2d/snap/" +"snap_2d_vertices_to_pixel] and [member rendering/2d/snap/" +"snap_2d_transforms_to_pixel]." +msgstr "" +"[CanvasItem] 内置纹理所使用的默认纹理过滤模式。在着色器中可以通过 " +"[code]TEXTURE[/code] 访问该纹理。\n" +"[b]注意:[/b]制作像素风游戏时另见 [member rendering/2d/snap/" +"snap_2d_vertices_to_pixel] 和 [member rendering/2d/snap/" +"snap_2d_transforms_to_pixel]。" + +msgid "" +"The default texture repeating mode to use for [CanvasItem]s built-in texture. " +"In shaders, this texture is accessed as [code]TEXTURE[/code]." +msgstr "" +"[CanvasItem] 内置纹理所使用的默认纹理重复模式。在着色器中可以通过 " +"[code]TEXTURE[/code] 访问该纹理。" + msgid "" "The filtering quality to use for [Decal] nodes. When using one of the " "anisotropic filtering modes, the anisotropic filtering level is controlled by " @@ -95548,6 +117257,30 @@ msgstr "" "如果为 [code]true[/code],纹理导入器将使用 PNG 格式导入无损纹理。否则默认使用 " "WebP。" +msgid "" +"If [code]true[/code], the GPU texture compressor will cache the local " +"RenderingDevice and its resources (shaders and pipelines), allowing for " +"faster subsequent imports at a memory cost." +msgstr "" +"如果为 [code]true[/code],则 GPU 纹理压缩器会缓存本地 RenderingDevice 及其资源" +"(着色器和管道),用内存开销换取后续导入的速度。" + +msgid "" +"If [code]true[/code], the texture importer will utilize the GPU for " +"compressing textures, improving the import time of large images.\n" +"[b]Note:[/b] This only functions on a device which supports either Vulkan, " +"Direct3D 12, or Metal as a rendering driver.\n" +"[b]Note:[/b] Currently this only affects certain compressed formats (BC1, " +"BC3, BC4, BC5, and BC6), all of which are exclusive to desktop platforms and " +"consoles." +msgstr "" +"如果为 [code]true[/code],则纹理导入器会利用 GPU 来压缩纹理,提高大图像的导入" +"时间。\n" +"[b]注意:[/b]仅在支持 Vulkan、Direct3D 12 或 Metal 作为渲染驱动的设备上有" +"效。\n" +"[b]注意:[/b]目前仅影响部分压缩格式(BC1、BC3、BC4、BC5 和 BC6),这些格式均专" +"属于桌面平台和游戏主机。" + msgid "" "If [code]true[/code], the texture importer will import VRAM-compressed " "textures using the Ericsson Texture Compression 2 algorithm for lower quality " @@ -95688,6 +117421,17 @@ msgid "" "[code]-1[/code] means no limit." msgstr "[WorkerThreadPool] 所使用的最大线程数。[code]-1[/code] 表示无限制。" +msgid "" +"If [code]true[/code], enables the analog threshold binding modifier if " +"supported by the XR runtime." +msgstr "" +"如果为 [code]true[/code],则会在 XR 运行时支持时启用模拟阈值绑定修改器。" + +msgid "" +"If [code]true[/code], enables the D-pad binding modifier if supported by the " +"XR runtime." +msgstr "如果为 [code]true[/code],则会在 XR 运行时支持时启用十字键绑定修改器。" + msgid "Action map configuration to load by default." msgstr "默认加载的动作映射配置。" @@ -95756,6 +117500,200 @@ msgstr "任何设置项发生改变的时候发出,每个处理帧最多一次 msgid "Interpolates an [Object]'s property over time." msgstr "随时间对 [Object] 的属性进行插值。" +msgid "" +"[PropertyTweener] is used to interpolate a property in an object. See [method " +"Tween.tween_property] for more usage information.\n" +"The tweener will finish automatically if the target object is freed.\n" +"[b]Note:[/b] [method Tween.tween_property] is the only correct way to create " +"[PropertyTweener]. Any [PropertyTweener] created manually will not function " +"correctly." +msgstr "" +"[PropertyTweener] 用于为对象的属性进行插值。详见 [method Tween." +"tween_property]。\n" +"目标对象被释放时,补间器会自动结束。\n" +"[b]注意:[/b][method Tween.tween_property] 是创建 [PropertyTweener] 的唯一正确" +"方法。任何手动创建的 [PropertyTweener] 都将无法正常运行。" + +msgid "" +"When called, the final value will be used as a relative value instead.\n" +"[b]Example:[/b] Move the node by [code]100[/code] pixels to the right.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var tween = get_tree().create_tween()\n" +"tween.tween_property(self, \"position\", Vector2.RIGHT * 100, 1)." +"as_relative()\n" +"[/gdscript]\n" +"[csharp]\n" +"Tween tween = GetTree().CreateTween();\n" +"tween.TweenProperty(this, \"position\", Vector2.Right * 100.0f, 1.0f)." +"AsRelative();\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"调用后会将最终值用作相对值。\n" +"[b]示例:[/b]将节点向右移动 [code]100[/code] 像素。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var tween = get_tree().create_tween()\n" +"tween.tween_property(self, \"position\", Vector2.RIGHT * 100, 1)." +"as_relative()\n" +"[/gdscript]\n" +"[csharp]\n" +"Tween tween = GetTree().CreateTween();\n" +"tween.TweenProperty(this, \"position\", Vector2.Right * 100.0f, 1.0f)." +"AsRelative();\n" +"[/csharp]\n" +"[/codeblocks]" + +msgid "" +"Sets a custom initial value to the [PropertyTweener].\n" +"[b]Example:[/b] Move the node from position [code](100, 100)[/code] to [code]" +"(200, 100)[/code].\n" +"[codeblocks]\n" +"[gdscript]\n" +"var tween = get_tree().create_tween()\n" +"tween.tween_property(self, \"position\", Vector2(200, 100), 1)." +"from(Vector2(100, 100))\n" +"[/gdscript]\n" +"[csharp]\n" +"Tween tween = GetTree().CreateTween();\n" +"tween.TweenProperty(this, \"position\", new Vector2(200.0f, 100.0f), 1.0f)." +"From(new Vector2(100.0f, 100.0f));\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"为 [PropertyTweener] 设置自定义初始值。\n" +"[b]示例:[/b]将节点从 [code](100, 100)[/code] 移动到 [code](200, 100)[/" +"code]。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var tween = get_tree().create_tween()\n" +"tween.tween_property(self, \"position\", Vector2(200, 100), 1)." +"from(Vector2(100, 100))\n" +"[/gdscript]\n" +"[csharp]\n" +"Tween tween = GetTree().CreateTween();\n" +"tween.TweenProperty(this, \"position\", new Vector2(200.0f, 100.0f), 1.0f)." +"From(new Vector2(100.0f, 100.0f));\n" +"[/csharp]\n" +"[/codeblocks]" + +msgid "" +"Makes the [PropertyTweener] use the current property value (i.e. at the time " +"of creating this [PropertyTweener]) as a starting point. This is equivalent " +"of using [method from] with the current value. These two calls will do the " +"same:\n" +"[codeblocks]\n" +"[gdscript]\n" +"tween.tween_property(self, \"position\", Vector2(200, 100), 1)." +"from(position)\n" +"tween.tween_property(self, \"position\", Vector2(200, 100), 1)." +"from_current()\n" +"[/gdscript]\n" +"[csharp]\n" +"tween.TweenProperty(this, \"position\", new Vector2(200.0f, 100.0f), 1.0f)." +"From(Position);\n" +"tween.TweenProperty(this, \"position\", new Vector2(200.0f, 100.0f), 1.0f)." +"FromCurrent();\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"让 [PropertyTweener] 使用属性的当前值(即创建 [PropertyTweener] 时)作为起点。" +"等价于使用当前值调用 [method from]。下列两种调用效果相同:\n" +"[codeblocks]\n" +"[gdscript]\n" +"tween.tween_property(self, \"position\", Vector2(200, 100), 1)." +"from(position)\n" +"tween.tween_property(self, \"position\", Vector2(200, 100), 1)." +"from_current()\n" +"[/gdscript]\n" +"[csharp]\n" +"tween.TweenProperty(this, \"position\", new Vector2(200.0f, 100.0f), 1.0f)." +"From(Position);\n" +"tween.TweenProperty(this, \"position\", new Vector2(200.0f, 100.0f), 1.0f)." +"FromCurrent();\n" +"[/csharp]\n" +"[/codeblocks]" + +msgid "" +"Allows interpolating the value with a custom easing function. The provided " +"[param interpolator_method] will be called with a value ranging from " +"[code]0.0[/code] to [code]1.0[/code] and is expected to return a value within " +"the same range (values outside the range can be used for overshoot). The " +"return value of the method is then used for interpolation between initial and " +"final value. Note that the parameter passed to the method is still subject to " +"the tweener's own easing.\n" +"[codeblocks]\n" +"[gdscript]\n" +"@export var curve: Curve\n" +"\n" +"func _ready():\n" +" var tween = create_tween()\n" +" # Interpolate the value using a custom curve.\n" +" tween.tween_property(self, \"position:x\", 300, 1).as_relative()." +"set_custom_interpolator(tween_curve)\n" +"\n" +"func tween_curve(v):\n" +" return curve.sample_baked(v)\n" +"[/gdscript]\n" +"[csharp]\n" +"[Export]\n" +"public Curve Curve { get; set; }\n" +"\n" +"public override void _Ready()\n" +"{\n" +" Tween tween = CreateTween();\n" +" // Interpolate the value using a custom curve.\n" +" Callable tweenCurveCallable = Callable.From<float, float>(TweenCurve);\n" +" tween.TweenProperty(this, \"position:x\", 300.0f, 1.0f).AsRelative()." +"SetCustomInterpolator(tweenCurveCallable);\n" +"}\n" +"\n" +"private float TweenCurve(float value)\n" +"{\n" +" return Curve.SampleBaked(value);\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"使用自定义缓动函数进行插值。会使用 [code]0.0[/code] 到 [code]1.0[/code] 之间的" +"值来调用 [param interpolator_method],提供的这个方法的返回值应该也在这个范围内" +"(可以用超出范围的值表示越过目标)。后续会再使用这个方法的返回值进行起始值和目" +"标值之间的插值。请注意,传给这个方法的参数仍然会受到补间器本身缓动功能的影" +"响。\n" +"[codeblocks]\n" +"[gdscript]\n" +"@export var curve: Curve\n" +"\n" +"func _ready():\n" +" var tween = create_tween()\n" +" # 使用自定义曲线进行插值。\n" +" tween.tween_property(self, \"position:x\", 300, 1).as_relative()." +"set_custom_interpolator(tween_curve)\n" +"\n" +"func tween_curve(v):\n" +" return curve.sample_baked(v)\n" +"[/gdscript]\n" +"[csharp]\n" +"[Export]\n" +"public Curve Curve { get; set; }\n" +"\n" +"public override void _Ready()\n" +"{\n" +" Tween tween = CreateTween();\n" +" // 使用自定义曲线进行插值。\n" +" Callable tweenCurveCallable = Callable.From<float, float>(TweenCurve);\n" +" tween.TweenProperty(this, \"position:x\", 300.0f, 1.0f).AsRelative()." +"SetCustomInterpolator(tweenCurveCallable);\n" +"}\n" +"\n" +"private float TweenCurve(float value)\n" +"{\n" +" return Curve.SampleBaked(value);\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Sets the time in seconds after which the [PropertyTweener] will start " "interpolating. By default there's no delay." @@ -95850,6 +117788,14 @@ msgstr "在线四元数可视化" msgid "Advanced Quaternion Visualization" msgstr "高级四元数可视化" +msgid "" +"Constructs a [Quaternion] identical to [constant IDENTITY].\n" +"[b]Note:[/b] In C#, this constructs a [Quaternion] with all of its components " +"set to [code]0.0[/code]." +msgstr "" +"构造与 [constant IDENTITY] 相同的 [Quaternion]。\n" +"[b]注意:[/b]在 C# 中构造的 [Quaternion] 的所有分量都为 [code]0.0[/code]。" + msgid "Constructs a [Quaternion] as a copy of the given [Quaternion]." msgstr "构造给定 [Quaternion] 的副本。" @@ -95960,6 +117906,13 @@ msgid "" "component except [member w]." msgstr "返回该四元数的逆版本,反转除 [member w] 之外的每个分量的符号。" +msgid "" +"Returns [code]true[/code] if this quaternion and [param to] are approximately " +"equal, by calling [method @GlobalScope.is_equal_approx] on each component." +msgstr "" +"如果该四元数和 [param to] 近似相等,则返回 [code]true[/code],判断方法是通过对" +"每个分量调用 [method @GlobalScope.is_equal_approx]。" + msgid "" "Returns [code]true[/code] if this quaternion is finite, by calling [method " "@GlobalScope.is_finite] on each component." @@ -96070,6 +118023,20 @@ msgstr "" "四元数的 Z 分量。这是沿“虚数” [code]k[/code] 轴的值。\n" "[b]注意:[/b]四元数分量通常不应被直接操作。" +msgid "" +"The identity quaternion, representing no rotation. This has the same rotation " +"as [constant Basis.IDENTITY].\n" +"If a [Vector3] is rotated (multiplied) by this quaternion, it does not " +"change.\n" +"[b]Note:[/b] In GDScript, this constant is equivalent to creating a " +"[constructor Quaternion] without any arguments. It can be used to make your " +"code clearer, and for consistency with C#." +msgstr "" +"单位四元数,代表无旋转。这与 [constant Basis.IDENTITY] 具有相同的旋转。\n" +"如果一个 [Vector3] 被该四元数旋转(乘以),则它不会改变。\n" +"[b]注意:[/b]在 GDScript 中,该常量等价于不带任何参数创建 [constructor " +"Quaternion]。可以用来让代码更加清晰,并且与 C# 保持一致。" + msgid "" "Returns [code]true[/code] if the components of both quaternions are not " "exactly equal.\n" @@ -96305,6 +118272,41 @@ msgstr "" "rng.state = 100 # 恢复到之前保存的一些状态。\n" "[/codeblock]" +msgid "" +"The current state of the random number generator. Save and restore this " +"property to restore the generator to a previous state:\n" +"[codeblock]\n" +"var rng = RandomNumberGenerator.new()\n" +"print(rng.randf())\n" +"var saved_state = rng.state # Store current state.\n" +"print(rng.randf()) # Advance internal state.\n" +"rng.state = saved_state # Restore the state.\n" +"print(rng.randf()) # Prints the same value as previously.\n" +"[/codeblock]\n" +"[b]Note:[/b] Do not set state to arbitrary values, since the random number " +"generator requires the state to have certain qualities to behave properly. It " +"should only be set to values that came from the state property itself. To " +"initialize the random number generator with arbitrary input, use [member " +"seed] instead.\n" +"[b]Note:[/b] The default value of this property is pseudo-random, and changes " +"when calling [method randomize]. The [code]0[/code] value documented here is " +"a placeholder, and not the actual default seed." +msgstr "" +"随机数生成器的当前状态。保存并恢复此属性,以将生成器恢复到之前的状态:\n" +"[codeblock]\n" +"var rng = RandomNumberGenerator.new()\n" +"print(rng.randf())\n" +"var saved_state = rng.state # 保存当前状态。\n" +"print(rng.randf()) # 让内部状态发生步进。\n" +"rng.state = saved_state # 恢复状态。\n" +"print(rng.randf()) # 输出和之前一样的值。\n" +"[/codeblock]\n" +"[b]注意:[/b]不要将状态设置为任意值,因为随机数生成器要求状态具有某些特性才能" +"正常运行。它应该只设置为来自状态属性本身的值。要使用任意输入初始化随机数生成" +"器,请改用 [member seed]。\n" +"[b]注意:[/b]该属性的默认值是伪随机的,会在调用 [method randomize] 时改变。文" +"档中记录的 [code]0[/code] 是占位符,不是实际的默认种子。" + msgid "Abstract base class for controls that represent a number within a range." msgstr "代表特定范围内数字的控件的抽象基类。" @@ -96365,6 +118367,14 @@ msgid "" "min_value]." msgstr "最小值。如果 [member value] 小于 [member min_value],则会被范围限制。" +msgid "" +"Page size. Used mainly for [ScrollBar]. A [ScrollBar]'s grabber length is the " +"[ScrollBar]'s size multiplied by [member page] over the difference between " +"[member min_value] and [member max_value]." +msgstr "" +"页面大小。主要用于 [ScrollBar]。[ScrollBar] 滑块的长度是 [ScrollBar] 的尺寸乘" +"以 [member page] 再除以 [member min_value] 和 [member max_value] 的差。" + msgid "The value mapped between 0 and 1." msgstr "该值在 0 和 1 之间进行映射。" @@ -96603,11 +118613,52 @@ msgid "" "The ray's destination point, relative to the RayCast's [code]position[/code]." msgstr "射线的目标点,相对于该 RayCast 的 [code]position[/code]。" +msgid "A ray in 3D space, used to find the first object it intersects." +msgstr "3D 空间中的射线,用于查找第一个与其相交的物体。" + +msgid "" +"A raycast represents a ray from its origin to its [member target_position] " +"that finds the closest object along its path, if it intersects any.\n" +"[RayCast3D] can ignore some objects by adding them to an exception list, by " +"making its detection reporting ignore [Area3D]s ([member collide_with_areas]) " +"or [PhysicsBody3D]s ([member collide_with_bodies]), or by configuring physics " +"layers.\n" +"[RayCast3D] calculates intersection every physics frame, and it holds the " +"result until the next physics frame. For an immediate raycast, or if you want " +"to configure a [RayCast3D] multiple times within the same physics frame, use " +"[method force_raycast_update].\n" +"To sweep over a region of 3D space, you can approximate the region with " +"multiple [RayCast3D]s or use [ShapeCast3D]." +msgstr "" +"Raycast 代表的是从它的原点到 [member target_position] 的射线,如果与碰撞对象相" +"交,就能找到路径上距离最近的物体。\n" +"要让 [RayCast3D] 忽略某些对象,可以通过将它们加入例外列表,也可以通过让检测汇" +"报忽略 [Area3D]([member collide_with_areas])或 [PhysicsBody3D]([member " +"collide_with_bodies]),还可以通过配置物理层。\n" +"[RayCast3D] 每一个物理帧都会计算是否相交,且该计算结果会保留到下一个物理帧。如" +"果要立即执行射线投射,或者你想要在同一个物理帧内多次配置 [RayCast3D],请使用 " +"[method force_raycast_update]。\n" +"要扫描 3D 空间中的某个区块,可以使用多个 [RayCast3D] 或使用 [ShapeCast3D] 去近" +"似该区块。" + msgid "" "Adds a collision exception so the ray does not report collisions with the " "specified [CollisionObject3D] node." msgstr "添加碰撞例外,这样射线就不会报告与指定 [CollisionObject3D] 节点的碰撞。" +msgid "" +"Returns the first object that the ray intersects, or [code]null[/code] if no " +"object is intersecting the ray (i.e. [method is_colliding] returns " +"[code]false[/code]).\n" +"[b]Note:[/b] This object is not guaranteed to be a [CollisionObject3D]. For " +"example, if the ray intersects a [CSGShape3D] or a [GridMap], the method will " +"return a [CSGShape3D] or [GridMap] instance." +msgstr "" +"返回射线相交的第一个物体,如果没有物体与射线相交则返回 [code]null[/code](即 " +"[method is_colliding] 返回 [code]false[/code])。\n" +"[b]注意:[/b]该物体不一定是 [CollisionObject3D]。例如射线与 [CSGShape3D] 或 " +"[GridMap] 相交时,方法返回的就是 [CSGShape3D] 或 [GridMap] 实例。" + msgid "" "Returns the shape ID of the first object that the ray intersects, or [code]0[/" "code] if no object is intersecting the ray (i.e. [method is_colliding] " @@ -97043,6 +119094,11 @@ msgid "" "stencil test but fail the depth test." msgstr "对通过模板测试但未通过深度测试的背面像素的模板缓冲区执行的操作。" +msgid "" +"The operation to perform on the stencil buffer for back pixels that fail the " +"stencil test." +msgstr "对未通过模板测试的背面像素的模板缓冲区执行的操作。" + msgid "" "The operation to perform on the stencil buffer for back pixels that pass the " "stencil test." @@ -97057,6 +119113,16 @@ msgstr "选择背面模板值中的哪些位将被更改。" msgid "The method used for comparing the previous and current depth values." msgstr "用于比较前一个和当前深度值的方法。" +msgid "" +"The maximum depth that returns [code]true[/code] for [member " +"enable_depth_range]." +msgstr "[member enable_depth_range] 将返回 [code]true[/code] 的最大深度。" + +msgid "" +"The minimum depth that returns [code]true[/code] for [member " +"enable_depth_range]." +msgstr "[member enable_depth_range] 将返回 [code]true[/code] 的最小深度。" + msgid "" "If [code]true[/code], each depth value will be tested to see if it is between " "[member depth_range_min] and [member depth_range_max]. If it is outside of " @@ -97077,6 +119143,14 @@ msgstr "" "挡。这样对象就能够被其他对象部分遮挡。如果为 [code]false[/code],则对象会按照" "绘制顺序显示(类似 Godot 的 2D 渲染器)。" +msgid "" +"If [code]true[/code], writes to the depth buffer whenever the depth test " +"returns [code]true[/code]. Only works when enable_depth_test is also " +"[code]true[/code]." +msgstr "" +"如果为 [code]true[/code],则每当深度测试返回 [code]true[/code] 时写入深度缓冲" +"区。仅当 enable_depth_test 也为 [code]true[/code] 时才有效。" + msgid "" "If [code]true[/code], enables stencil testing. There are separate stencil " "buffers for front-facing triangles and back-facing triangles. See properties " @@ -97609,6 +119683,23 @@ msgstr "" msgid "Texture format (used by [RenderingDevice])." msgstr "纹理格式(由 [RenderingDevice] 使用)。" +msgid "" +"Adds [param format] as a valid format for the corresponding [RDTextureView]'s " +"[member RDTextureView.format_override] property. If any format is added as " +"shareable, then the main [member format] must also be added." +msgstr "" +"将 [param format] 添加为相应 [RDTextureView] 的 [member RDTextureView." +"format_override] 属性的有效格式。如果将格式作为可共享格式添加,那么也必须添加" +"主 [member format]。" + +msgid "" +"Removes [param format] from the list of valid formats that the corresponding " +"[RDTextureView]'s [member RDTextureView.format_override] property can be set " +"to." +msgstr "" +"从相应 [RDTextureView] 的 [member RDTextureView.format_override] 属性可以设置" +"的有效格式列表中移除 [param format]。" + msgid "" "The number of layers in the texture. Only relevant for 2D texture arrays." msgstr "纹理的层数。仅适用于 2D 纹理数组。" @@ -97624,6 +119715,22 @@ msgstr "纹理的像素数据格式。" msgid "The texture's height (in pixels)." msgstr "纹理的高度(单位为像素)。" +msgid "" +"If a texture is discardable, its contents do not need to be preserved between " +"frames. This flag is only relevant when the texture is used as target in a " +"draw list.\n" +"This information is used by [RenderingDevice] to figure out if a texture's " +"contents can be discarded, eliminating unnecessary writes to memory and " +"boosting performance." +msgstr "" +"如果纹理可丢弃,则帧与帧之间不需要保留其内容。该标志仅在纹理作为绘制列表中的目" +"标时相关。\n" +"[RenderingDevice] 会使用该信息来判断纹理的内容是否可丢弃,进而消除不必要的内存" +"写入、提升性能。" + +msgid "The texture will be used as the destination of a resolve operation." +msgstr "该纹理将用作解析操作的目标。" + msgid "The number of mipmaps available in the texture." msgstr "纹理中可用的 mipmap 数。" @@ -97643,6 +119750,15 @@ msgstr "纹理的宽度(单位为像素)。" msgid "Texture view (used by [RenderingDevice])." msgstr "纹理视图(由 [RenderingDevice] 使用)。" +msgid "" +"Optional override for the data format to return sampled values in. The " +"corresponding [RDTextureFormat] must have had this added as a shareable " +"format. The default value of [constant RenderingDevice.DATA_FORMAT_MAX] does " +"not override the format." +msgstr "" +"返回的采样值的可选覆盖数据格式。相应的 [RDTextureFormat] 必须将其添加为可共享" +"格式。默认值 [constant RenderingDevice.DATA_FORMAT_MAX] 不会覆盖格式。" + msgid "The channel to sample when sampling the alpha channel." msgstr "对 Alpha 通道进行采样时采样的通道。" @@ -98604,6 +120720,133 @@ msgstr "" msgid "Class for searching text for patterns using regular expressions." msgstr "使用正则表达式搜索文本的类。" +msgid "" +"A regular expression (or regex) is a compact language that can be used to " +"recognize strings that follow a specific pattern, such as URLs, email " +"addresses, complete sentences, etc. For example, a regex of [code]ab[0-9][/" +"code] would find any string that is [code]ab[/code] followed by any number " +"from [code]0[/code] to [code]9[/code]. For a more in-depth look, you can " +"easily find various tutorials and detailed explanations on the Internet.\n" +"To begin, the RegEx object needs to be compiled with the search pattern using " +"[method compile] before it can be used.\n" +"[codeblock]\n" +"var regex = RegEx.new()\n" +"regex.compile(\"\\\\w-(\\\\d+)\")\n" +"[/codeblock]\n" +"The search pattern must be escaped first for GDScript before it is escaped " +"for the expression. For example, [code]compile(\"\\\\d+\")[/code] would be " +"read by RegEx as [code]\\d+[/code]. Similarly, [code]compile(\"\\\"(?:\\\\\\" +"\\.|[^\\\"])*\\\"\")[/code] would be read as [code]\"(?:\\\\.|[^\"])*\"[/" +"code]. In GDScript, you can also use raw string literals (r-strings). For " +"example, [code]compile(r'\"(?:\\\\.|[^\"])*\"')[/code] would be read the " +"same.\n" +"Using [method search], you can find the pattern within the given text. If a " +"pattern is found, [RegExMatch] is returned and you can retrieve details of " +"the results using methods such as [method RegExMatch.get_string] and [method " +"RegExMatch.get_start].\n" +"[codeblock]\n" +"var regex = RegEx.new()\n" +"regex.compile(\"\\\\w-(\\\\d+)\")\n" +"var result = regex.search(\"abc n-0123\")\n" +"if result:\n" +" print(result.get_string()) # Would print n-0123\n" +"[/codeblock]\n" +"The results of capturing groups [code]()[/code] can be retrieved by passing " +"the group number to the various methods in [RegExMatch]. Group 0 is the " +"default and will always refer to the entire pattern. In the above example, " +"calling [code]result.get_string(1)[/code] would give you [code]0123[/code].\n" +"This version of RegEx also supports named capturing groups, and the names can " +"be used to retrieve the results. If two or more groups have the same name, " +"the name would only refer to the first one with a match.\n" +"[codeblock]\n" +"var regex = RegEx.new()\n" +"regex.compile(\"d(?<digit>[0-9]+)|x(?<digit>[0-9a-f]+)\")\n" +"var result = regex.search(\"the number is x2f\")\n" +"if result:\n" +" print(result.get_string(\"digit\")) # Would print 2f\n" +"[/codeblock]\n" +"If you need to process multiple results, [method search_all] generates a list " +"of all non-overlapping results. This can be combined with a [code]for[/code] " +"loop for convenience.\n" +"[codeblock]\n" +"for result in regex.search_all(\"d01, d03, d0c, x3f and x42\"):\n" +" print(result.get_string(\"digit\"))\n" +"# Would print 01 03 0 3f 42\n" +"[/codeblock]\n" +"[b]Example:[/b] Split a string using a RegEx:\n" +"[codeblock]\n" +"var regex = RegEx.new()\n" +"regex.compile(\"\\\\S+\") # Negated whitespace character class.\n" +"var results = []\n" +"for result in regex.search_all(\"One Two \\n\\tThree\"):\n" +" results.push_back(result.get_string())\n" +"# The `results` array now contains \"One\", \"Two\", and \"Three\".\n" +"[/codeblock]\n" +"[b]Note:[/b] Godot's regex implementation is based on the [url=https://www." +"pcre.org/]PCRE2[/url] library. You can view the full pattern reference " +"[url=https://www.pcre.org/current/doc/html/pcre2pattern.html]here[/url].\n" +"[b]Tip:[/b] You can use [url=https://regexr.com/]Regexr[/url] to test regular " +"expressions online." +msgstr "" +"正则表达式(或称 regex)是一种紧凑的语言,可用于识别遵循特定模式的字符串,如 " +"URL、电子邮件地址、完整句子等。例如正则表达式 [code]ab[0-9][/code] 可以找到 " +"[code]ab[/code] 后面跟着 [code]0[/code] 到 [code]9[/code] 的任何数字的字符串。" +"要想更深入地了解,你可以很容易地在互联网上找到各种教程和详细解释。\n" +"首先,在使用 RegEx 对象之前,需要用 [method compile] 对其进行搜索模式的编" +"译。\n" +"[codeblock]\n" +"var regex = RegEx.new()\n" +"regex.compile(\"\\\\w-(\\\\d+)\")\n" +"[/codeblock]\n" +"在为表达式转义之前,必须先为 GDScript 转义搜索模式。例如,[code]compile(\"\\" +"\\d+\")[/code] 会被 RegEx 读成 [code]\\d+[/code]。同样,[code]compile(\"\\" +"\"(?:\\\\\\\\.|[^\\\"])*\\\")[/code] 会被读作 [code]\"(?:\\.|[^\"])*\"[/" +"code]。在 GDScript 中,你还可以使用原始字符串文字(r-字符串)。例如," +"[code]compile(r'\"(?:\\\\.|[^\"])*\"')[/code] 将被读取为相同的。\n" +"使用 [method search],你可以在给定的文本中匹配模式。如果匹配到一个模式,将返" +"回 [RegExMatch],你可以使用 [method RegExMatch.get_string] 和 [method " +"RegExMatch.get_start] 等方法检索结果的细节。\n" +"[codeblock]\n" +"var regex = RegEx.new()\n" +"regex.compile(\"\\\\w-(\\\\d+)\")\n" +"var result = regex.search(\"abc n-0123\")\n" +"if result:\n" +" print(result.get_string()) # 会输出 n-0123\n" +"[/codeblock]\n" +"捕获组的结果 [code]()[/code] 可以通过向 [RegExMatch] 中的各种方法传递组号来检" +"索。默认是组 0,并且将总是指整个模式。在上面的例子中,调用 [code]result." +"get_string(1)[/code] 会得到 [code]0123[/code]。\n" +"这个版本的 RegEx 也支持命名的捕获组,名称可以用来检索结果。如果两个或更多的组" +"有相同的名称,那么这个名称将只指第一个有匹配的组。\n" +"[codeblock]\n" +"var regex = RegEx.new()\n" +"regex.compile(\"d(?<digit>[0-9]+)|x(?<digit>[0-9a-f]+)\")\n" +"var result = regex.search(\"数字是 x2f\")\n" +"if result:\n" +" print(result.get_string(\"digit\")) # 会输出 2f\n" +"[/codeblock]\n" +"如果你需要处理多个结果,[method search_all] 会生成一个所有不重叠的结果列表。为" +"了方便起见,这可以和一个 [code]for[/code] 循环结合起来。\n" +"[codeblock]\n" +"for result in regex.search_all(\"d01, d03, d0c, x3f and x42\"):\n" +" print(result.get_string(\"digit\"))\n" +"# 会输出 01 03 0 3f 42\n" +"[/codeblock]\n" +"[b]示例:[/b]使用 RegEx 分割字符串:\n" +"[codeblock]\n" +"var regex = RegEx.new()\n" +"regex.compile(\"\\\\S+\") # 非空白字符类。\n" +"var results = []\n" +"for result in regex.search_all(\"One Two \\n\\tThree\"):\n" +" results.push_back(result.get_string())\n" +"# `results` 数组包含“One”“Two”“Three”。\n" +"[/codeblock]\n" +"[b]注意:[/b]Godot 的 regex 实现基于的是 [url=https://www.pcre.org/]PCRE2[/" +"url]。你可以查看完整的模式参考[url=https://www.pcre.org/current/doc/html/" +"pcre2pattern.html]这里[/url]。\n" +"[b]提示:[/b]你可以使用 [url=https://regexr.com/]Regexr[/url] 来在线测试正则表" +"达式。" + msgid "" "This method resets the state of the object, as if it was freshly created. " "Namely, it unassigns the regular expression of this object." @@ -98611,14 +120854,26 @@ msgstr "" "这个方法重置了对象的状态,就像它是新创建的一样。也就是说,它取消了这个对象的正" "则表达式的赋值。" +msgid "" +"Compiles and assign the search pattern to use. Returns [constant OK] if the " +"compilation is successful. If compilation fails, returns [constant FAILED] " +"and when [param show_error] is [code]true[/code], details are printed to " +"standard output." +msgstr "" +"编译并指定要使用的搜索模式。如果编译成功则返回 [constant OK]。如果遇到错误则返" +"回 [constant FAILED],[param show_error] 为 [code]true[/code] 时会将细节打印到" +"标准输出。" + +msgid "Creates and compiles a new [RegEx] object. See also [method compile]." +msgstr "创建并编译新 [RegEx] 对象。另见 [method compile]。" + msgid "Returns the number of capturing groups in compiled pattern." -msgstr "返回编译模式中捕获组的数量。" +msgstr "返回编译的模式中捕获组的数量。" msgid "" "Returns an array of names of named capturing groups in the compiled pattern. " "They are ordered by appearance." -msgstr "" -"返回一个数组,该数组是编译模式中命名的捕获组的名称。它们是按外观排序的。" +msgstr "返回一个数组,元素为编译的模式中具名捕获组的名称,按出现顺序排序。" msgid "Returns the original search pattern that was compiled." msgstr "返回被编译的原始搜索模式。" @@ -99381,6 +121636,46 @@ msgid "" "available for querying." msgstr "返回能够进行渲染时间戳查询的最后一个渲染帧的索引。" +msgid "" +"Returns how many allocations the GPU has performed for internal driver " +"structures.\n" +"This is only used by Vulkan in debug builds and can return 0 when this " +"information is not tracked or unknown." +msgstr "" +"返回 GPU 为内部驱动器结构进行了多少次分配。\n" +"只有调试构建下的 Vulkan 会用到,未跟踪此信息或信息未知时可能返回 0。" + +msgid "" +"Same as [method get_device_allocation_count] but filtered for a given object " +"type.\n" +"The type argument must be in range [code][0; get_tracked_object_type_count - " +"1][/code]. If [method get_tracked_object_type_count] is 0, then type argument " +"is ignored and always returns 0.\n" +"This is only used by Vulkan in debug builds and can return 0 when this " +"information is not tracked or unknown." +msgstr "" +"与 [method get_device_allocation_count] 相同,但是根据给定对象类型进行了过" +"滤。\n" +"类型参数必须在 [code][0; get_tracked_object_type_count - 1][/code] 的范围内。" +"如果 [method get_tracked_object_type_count] 为 0,则会忽略类型参数并始终返回 " +"0。\n" +"只有调试构建下的 Vulkan 会用到,未跟踪此信息或信息未知时可能返回 0。" + +msgid "" +"Same as [method get_device_total_memory] but filtered for a given object " +"type.\n" +"The type argument must be in range [code][0; get_tracked_object_type_count - " +"1][/code]. If [method get_tracked_object_type_count] is 0, then type argument " +"is ignored and always returns 0.\n" +"This is only used by Vulkan in debug builds and can return 0 when this " +"information is not tracked or unknown." +msgstr "" +"与 [method get_device_total_memory] 相同,但是根据给定对象类型进行了过滤。\n" +"类型参数必须在 [code][0; get_tracked_object_type_count - 1][/code] 的范围内。" +"如果 [method get_tracked_object_type_count] 为 0,则会忽略类型参数并始终返回 " +"0。\n" +"只有调试构建下的 Vulkan 会用到,未跟踪此信息或信息未知时可能返回 0。" + msgid "" "Returns the name of the video adapter (e.g. \"GeForce GTX 1080/PCIe/SSE2\"). " "Equivalent to [method RenderingServer.get_video_adapter_name]. See also " @@ -99401,6 +121696,14 @@ msgstr "" "行着色器的重新编译。这个 UUID 会根据显卡型号以及驱动版本的不同而不同。因此,更" "新图形驱动会使着色器缓存失效。" +msgid "" +"Returns how much bytes the GPU is using.\n" +"This is only used by Vulkan in debug builds and can return 0 when this " +"information is not tracked or unknown." +msgstr "" +"返回 GPU 使用了多少字节。\n" +"只有调试构建下的 Vulkan 会用到,未跟踪此信息或信息未知时可能返回 0。" + msgid "" "Returns the vendor of the video adapter (e.g. \"NVIDIA Corporation\"). " "Equivalent to [method RenderingServer.get_video_adapter_vendor]. See also " @@ -99409,6 +121712,46 @@ msgstr "" "返回视频适配器的供应商(例如 \"NVIDIA Corporation\")。等价于 [method " "RenderingServer.get_video_adapter_vendor]。另见 [method get_device_name]。" +msgid "" +"Returns how many allocations the GPU driver has performed for internal driver " +"structures.\n" +"This is only used by Vulkan in debug builds and can return 0 when this " +"information is not tracked or unknown." +msgstr "" +"返回 GPU 驱动器为内部驱动器结构进行了多少次分配。\n" +"只有调试构建下的 Vulkan 会用到,未跟踪此信息或信息未知时可能返回 0。" + +msgid "" +"Same as [method get_driver_allocation_count] but filtered for a given object " +"type.\n" +"The type argument must be in range [code][0; get_tracked_object_type_count - " +"1][/code]. If [method get_tracked_object_type_count] is 0, then type argument " +"is ignored and always returns 0.\n" +"This is only used by Vulkan in debug builds and can return 0 when this " +"information is not tracked or unknown." +msgstr "" +"与 [method get_driver_allocation_count] 相同,但是根据给定对象类型进行了过" +"滤。\n" +"类型参数必须在 [code][0; get_tracked_object_type_count - 1][/code] 的范围内。" +"如果 [method get_tracked_object_type_count] 为 0,则会忽略类型参数并始终返回 " +"0。\n" +"只有调试构建下的 Vulkan 会用到,未跟踪此信息或信息未知时可能返回 0。" + +msgid "" +"Same as [method get_driver_total_memory] but filtered for a given object " +"type.\n" +"The type argument must be in range [code][0; get_tracked_object_type_count - " +"1][/code]. If [method get_tracked_object_type_count] is 0, then type argument " +"is ignored and always returns 0.\n" +"This is only used by Vulkan in debug builds and can return 0 when this " +"information is not tracked or unknown." +msgstr "" +"与 [method get_driver_total_memory] 相同,但是根据给定对象类型进行了过滤。\n" +"类型参数必须在 [code][0; get_tracked_object_type_count - 1][/code] 的范围内。" +"如果 [method get_tracked_object_type_count] 为 0,则会忽略类型参数并始终返回 " +"0。\n" +"只有调试构建下的 Vulkan 会用到,未跟踪此信息或信息未知时可能返回 0。" + msgid "" "Returns the unique identifier of the driver [param resource] for the " "specified [param rid]. Some driver resource types ignore the specified [param " @@ -99419,6 +121762,15 @@ msgstr "" "型会忽略指定的 [param rid](说明见 [enum DriverResource])。[param index] 始终" "会被忽略,但仍然必须指定。" +msgid "" +"Returns how much bytes the GPU driver is using for internal driver " +"structures.\n" +"This is only used by Vulkan in debug builds and can return 0 when this " +"information is not tracked or unknown." +msgstr "" +"返回 GPU 驱动器为内部驱动器结构使用了多少字节。\n" +"只有调试构建下的 Vulkan 会用到,未跟踪此信息或信息未知时可能返回 0。" + msgid "" "Returns the frame count kept by the graphics API. Higher values result in " "higher input lag, but with more consistent throughput. For the main " @@ -99438,6 +121790,15 @@ msgstr "" "[url=https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator]Vulkan " "Memory Allocator[/url] 计算这些统计信息。" +msgid "" +"Returns a string with a performance report from the past frame. Updates every " +"frame." +msgstr "返回上一帧的性能报告字符串。每一帧都会更新。" + +msgid "" +"Returns [code]true[/code] if the [param feature] is supported by the GPU." +msgstr "如果 GPU 支持 [param feature] 特性,则返回 [code]true[/code]。" + msgid "" "Creates a new index array. It can be accessed with the RID that is returned.\n" "Once finished with your RID, you will want to free the RID using the " @@ -102211,6 +124572,45 @@ msgstr "" "32 位无符号整数格式的索引缓冲。对可指定索引最大值的限制为 [code]4294967295[/" "code]。" +msgid "" +"Optionally, set this flag if you wish to use [method " +"buffer_get_device_address] functionality. You must first check the GPU " +"supports it:\n" +"[codeblocks]\n" +"[gdscript]\n" +"rd = RenderingServer.get_rendering_device()\n" +"\n" +"if rd.has_feature(RenderingDevice.SUPPORTS_BUFFER_DEVICE_ADDRESS):\n" +" storage_buffer = rd.storage_buffer_create(bytes.size(), bytes, " +"RenderingDevice.STORAGE_BUFFER_USAGE_SHADER_DEVICE_ADDRESS):\n" +" storage_buffer_address = rd.buffer_get_device_address(storage_buffer)\n" +"[/gdscript]\n" +"[/codeblocks]" +msgstr "" +"如果希望使用 [method buffer_get_device_address] 功能,则可以选择设置该标志。必" +"须先检查 GPU 是否支持该功能:\n" +"[codeblocks]\n" +"[gdscript]\n" +"rd = RenderingServer.get_rendering_device()\n" +"\n" +"if rd.has_feature(RenderingDevice.SUPPORTS_BUFFER_DEVICE_ADDRESS):\n" +" storage_buffer = rd.storage_buffer_create(bytes.size(), bytes, " +"RenderingDevice.STORAGE_BUFFER_USAGE_SHADER_DEVICE_ADDRESS):\n" +" storage_buffer_address = rd.buffer_get_device_address(storage_buffer)\n" +"[/gdscript]\n" +"[/codeblocks]" + +msgid "" +"Set this flag so that it is created as storage. This is useful if Compute " +"Shaders need access (for reading or writing) to the buffer, e.g. skeletal " +"animations are processed in Compute Shaders which need access to vertex " +"buffers, to be later consumed by vertex shaders as part of the regular " +"rasterization pipeline." +msgstr "" +"设置该标志可以将其创建为存储。适用于计算着色器需要访问(读取或写入)缓冲区的场" +"合,例如在计算着色器中处理骨骼动画,这些着色器需要访问顶点缓冲区,以便后续在顶" +"点着色器中使用,这是常规光栅化管线的一部分。" + msgid "Sampler uniform." msgstr "采样器 uniform。" @@ -102652,6 +125052,9 @@ msgstr "允许动态改变渲染线的宽度。" msgid "Allows dynamically changing the depth bias." msgstr "允许动态改变深度偏差。" +msgid "Initial actions are solved automatically by RenderingDevice." +msgstr "初始操作由 RenderingDevice 自动处理。" + msgid "Load the previous contents of the framebuffer." msgstr "加载帧缓冲的先前内容。" @@ -102668,6 +125071,9 @@ msgstr "" msgid "Represents the size of the [enum InitialAction] enum." msgstr "代表 [enum InitialAction] 枚举的大小。" +msgid "Final actions are solved automatically by RenderingDevice." +msgstr "最终操作由 RenderingDevice 自动处理。" + msgid "" "Store the result of the draw list in the framebuffer. This is generally what " "you want to do." @@ -102755,6 +125161,9 @@ msgstr "整型特化常量。" msgid "Floating-point specialization constant." msgstr "浮点型特化常量。" +msgid "Features support for buffer device address extension." +msgstr "支持缓冲区设备地址扩展的功能。" + msgid "Maximum number of uniform sets that can be bound at a given time." msgstr "能够同时绑定的最大 uniform 集的数量。" @@ -102883,6 +125292,30 @@ msgstr "视口的最大宽度(单位为像素)。" msgid "Maximum viewport height (in pixels)." msgstr "视口的最大高度(单位为像素)。" +msgid "" +"Returns the smallest value for [member ProjectSettings.rendering/scaling_3d/" +"scale] when using the MetalFX temporal upscaler.\n" +"[b]Note:[/b] The returned value is multiplied by a factor of [code]1000000[/" +"code] to preserve 6 digits of precision. It must be divided by " +"[code]1000000.0[/code] to convert the value to a floating point number." +msgstr "" +"返回使用 MetalFX 时间图像放大器时 [member ProjectSettings.rendering/" +"scaling_3d/scale] 的最小值。\n" +"[b]注意:[/b]返回值已与 [code]1000000[/code] 相乘,从而保留了 6 位精度。必须将" +"其除以 [code]1000000.0[/code] 转换为浮点数。" + +msgid "" +"Returns the largest value for [member ProjectSettings.rendering/scaling_3d/" +"scale] when using the MetalFX temporal upscaler.\n" +"[b]Note:[/b] The returned value is multiplied by a factor of [code]1000000[/" +"code] to preserve 6 digits of precision. It must be divided by " +"[code]1000000.0[/code] to convert the value to a floating point number." +msgstr "" +"返回使用 MetalFX 时间图像放大器时 [member ProjectSettings.rendering/" +"scaling_3d/scale] 的最大值。\n" +"[b]注意:[/b]返回值已与 [code]1000000[/code] 相乘,从而保留了 6 位精度。必须将" +"其除以 [code]1000000.0[/code] 转换为浮点数。" + msgid "Memory taken by textures." msgstr "纹理占用的内存。" @@ -102903,6 +125336,87 @@ msgstr "返回 ID 的函数会在值无效时返回此值。" msgid "Returned by functions that return a format ID if a value is invalid." msgstr "返回格式 ID 的函数会在值无效时返回此值。" +msgid "Do not clear or ignore any attachments." +msgstr "不清空和忽略任何附件。" + +msgid "Clear the first color attachment." +msgstr "清空第一个颜色附件。" + +msgid "Clear the second color attachment." +msgstr "清空第二个颜色附件。" + +msgid "Clear the third color attachment." +msgstr "清空第三个颜色附件。" + +msgid "Clear the fourth color attachment." +msgstr "清空第四个颜色附件。" + +msgid "Clear the fifth color attachment." +msgstr "清空第五个颜色附件。" + +msgid "Clear the sixth color attachment." +msgstr "清空第六个颜色附件。" + +msgid "Clear the seventh color attachment." +msgstr "清空第七个颜色附件。" + +msgid "Clear the eighth color attachment." +msgstr "清空第八个颜色附件。" + +msgid "Mask for clearing all color attachments." +msgstr "表示清空所有颜色附件的掩码。" + +msgid "Clear all color attachments." +msgstr "清空所有颜色附件。" + +msgid "Ignore the previous contents of the first color attachment." +msgstr "忽略第一个颜色附件中先前的内容。" + +msgid "Ignore the previous contents of the second color attachment." +msgstr "忽略第二个颜色附件中先前的内容。" + +msgid "Ignore the previous contents of the third color attachment." +msgstr "忽略第三个颜色附件中先前的内容。" + +msgid "Ignore the previous contents of the fourth color attachment." +msgstr "忽略第四个颜色附件中先前的内容。" + +msgid "Ignore the previous contents of the fifth color attachment." +msgstr "忽略第五个颜色附件中先前的内容。" + +msgid "Ignore the previous contents of the sixth color attachment." +msgstr "忽略第六个颜色附件中先前的内容。" + +msgid "Ignore the previous contents of the seventh color attachment." +msgstr "忽略第七个颜色附件中先前的内容。" + +msgid "Ignore the previous contents of the eighth color attachment." +msgstr "忽略第八个颜色附件中先前的内容。" + +msgid "Mask for ignoring all the previous contents of the color attachments." +msgstr "表示忽略所有颜色附件中先前内容的掩码。" + +msgid "Ignore the previous contents of all color attachments." +msgstr "忽略所有颜色附件中先前的内容。" + +msgid "Clear the depth attachment." +msgstr "清空深度附件。" + +msgid "Ignore the previous contents of the depth attachment." +msgstr "忽略深度附件中先前的内容。" + +msgid "Clear the stencil attachment." +msgstr "清空模板附件。" + +msgid "Ignore the previous contents of the stencil attachment." +msgstr "忽略模板附件中先前的内容。" + +msgid "Clear all attachments." +msgstr "清空所有附件。" + +msgid "Ignore the previous contents of all attachments." +msgstr "忽略所有附件中先前的内容。" + msgid "Server for anything visible." msgstr "任何可见的东西的服务器。" @@ -103169,6 +125683,14 @@ msgstr "" "在 [param item] [RID] 指向的 [CanvasItem] 上绘制一个圆圈。另见 [method " "CanvasItem.draw_circle]。" +msgid "" +"If [param ignore] is [code]true[/code], ignore clipping on items drawn with " +"this canvas item until this is called again with [param ignore] set to " +"[code]false[/code]." +msgstr "" +"如果 [param ignore] 为 [code]true[/code],则使用该画布项绘制的项目会忽略裁剪," +"直到将 [param ignore] 设置为 [code]false[/code] 再次调用。" + msgid "See also [method CanvasItem.draw_lcd_texture_rect_region]." msgstr "另见 [method CanvasItem.draw_lcd_texture_rect_region]。" @@ -103214,6 +125736,24 @@ msgid "" "Draws particles on the [CanvasItem] pointed to by the [param item] [RID]." msgstr "在 [param item] [RID] 指向的 [CanvasItem] 上绘制粒子。" +msgid "" +"Draws a 2D polygon on the [CanvasItem] pointed to by the [param item] [RID]. " +"If you need more flexibility (such as being able to use bones), use [method " +"canvas_item_add_triangle_array] instead. See also [method CanvasItem." +"draw_polygon].\n" +"[b]Note:[/b] If you frequently redraw the same polygon with a large number of " +"vertices, consider pre-calculating the triangulation with [method Geometry2D." +"triangulate_polygon] and using [method CanvasItem.draw_mesh], [method " +"CanvasItem.draw_multimesh], or [method canvas_item_add_triangle_array]." +msgstr "" +"在 [param item] [RID] 指向的 [CanvasItem] 上绘制一个 2D 多边形。如果需要更高的" +"灵活度(例如能够用到骨骼),请改用 [method canvas_item_add_triangle_array]。另" +"见 [method CanvasItem.draw_polygon]。\n" +"[b]注意:[/b]如果你需要频繁重绘同样的多边形,包含大量顶点,请考虑预先使用 " +"[method Geometry2D.triangulate_polygon] 进行三角剖分计算,并使用 [method " +"CanvasItem.draw_mesh]、[method CanvasItem.draw_multimesh] 或 [method " +"canvas_item_add_triangle_array]。" + msgid "" "Draws a 2D polyline on the [CanvasItem] pointed to by the [param item] [RID]. " "See also [method CanvasItem.draw_polyline] and [method CanvasItem." @@ -103270,6 +125810,9 @@ msgstr "" "活,但用起来要比 [method canvas_item_add_polygon] 复杂。\n" "[b]注意:[/b][param count] 未使用,可以不指定。" +msgid "Attaches a skeleton to the [CanvasItem]. Removes the previous skeleton." +msgstr "将骨架附加到 [CanvasItem] 上。会移除之前骨架。" + msgid "Clears the [CanvasItem] and removes all commands in it." msgstr "清空 [CanvasItem] 并删除其中的所有命令。" @@ -103286,6 +125829,34 @@ msgstr "" "RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。\n" "[b]注意:[/b]等价节点为 [CanvasItem]。" +msgid "" +"Returns the value of the per-instance shader uniform from the specified " +"canvas item instance. Equivalent to [method CanvasItem." +"get_instance_shader_parameter]." +msgstr "" +"返回指定画布项实例的单实例着色器 uniform 取值。等价于 [method CanvasItem." +"get_instance_shader_parameter]。" + +msgid "" +"Returns the default value of the per-instance shader uniform from the " +"specified canvas item instance. Equivalent to [method CanvasItem." +"get_instance_shader_parameter]." +msgstr "" +"返回指定画布项实例的单实例着色器 uniform 默认取值。等价于 [method CanvasItem." +"get_instance_shader_parameter]。" + +msgid "" +"Returns a dictionary of per-instance shader uniform names of the per-instance " +"shader uniform from the specified canvas item instance.\n" +"The returned dictionary is in PropertyInfo format, with the keys [code]name[/" +"code], [code]class_name[/code], [code]type[/code], [code]hint[/code], " +"[code]hint_string[/code], and [code]usage[/code]." +msgstr "" +"返回指定画布项实例的单实例着色器 uniform 名称的字典。\n" +"返回的字典使用 PropertyInfo 格式,包含 [code]name[/code]、[code]class_name[/" +"code]、[code]type[/code]、[code]hint[/code]、[code]hint_string[/code] 以及 " +"[code]usage[/code] 等字段。" + msgid "" "Prevents physics interpolation for the current physics tick.\n" "This is useful when moving a canvas item to a new location, to give an " @@ -103373,6 +125944,13 @@ msgstr "" msgid "Sets the index for the [CanvasItem]." msgstr "设置 [CanvasItem] 的索引。" +msgid "" +"Sets the per-instance shader uniform on the specified canvas item instance. " +"Equivalent to [method CanvasItem.set_instance_shader_parameter]." +msgstr "" +"设置指定画布项实例的单实例着色器 uniform。等价于 [method CanvasItem." +"set_instance_shader_parameter]。" + msgid "" "If [param interpolated] is [code]true[/code], turns on physics interpolation " "for the canvas item." @@ -104176,6 +126754,39 @@ msgstr "" "尝试释放 RenderingServer 中的某个对象。为了避免内存泄漏,应该在使用完对象后调" "用,因为直接使用 RenderingServer 时不会自动进行内存管理。" +msgid "" +"Returns the name of the current rendering driver. This can be [code]vulkan[/" +"code], [code]d3d12[/code], [code]metal[/code], [code]opengl3[/code], " +"[code]opengl3_es[/code], or [code]opengl3_angle[/code]. See also [method " +"get_current_rendering_method].\n" +"The rendering driver is determined by [member ProjectSettings.rendering/" +"rendering_device/driver], the [code]--rendering-driver[/code] command line " +"argument that overrides this project setting, or an automatic fallback that " +"is applied depending on the hardware." +msgstr "" +"返回当前渲染驱动的名称,可以是 [code]vulkan[/code]、[code]d3d12[/code]、" +"[code]metal[/code]、[code]opengl3[/code]、[code]opengl3_es[/code] 或 " +"[code]opengl3_angle[/code]。另见 [method get_current_rendering_method].\n" +"渲染方法由 [member ProjectSettings.rendering/rendering_device/driver] 决定," +"[code]--rendering-driver[/code] 命令行参数会覆盖该项目设置,还会根据硬件应用自" +"动回退。" + +msgid "" +"Returns the name of the current rendering method. This can be " +"[code]forward_plus[/code], [code]mobile[/code], or [code]gl_compatibility[/" +"code]. See also [method get_current_rendering_driver_name].\n" +"The rendering method is determined by [member ProjectSettings.rendering/" +"renderer/rendering_method], the [code]--rendering-method[/code] command line " +"argument that overrides this project setting, or an automatic fallback that " +"is applied depending on the hardware." +msgstr "" +"返回当前渲染方法的名称,可以是 [code]forward_plus[/code]、[code]mobile[/code] " +"或 [code]gl_compatibility[/code]。另见 [method " +"get_current_rendering_driver_name].\n" +"渲染方法由 [member ProjectSettings.rendering/renderer/rendering_method] 决定," +"[code]--rendering-method[/code] 命令行参数会覆盖该项目设置,还会根据硬件应用自" +"动回退。" + msgid "" "Returns the default clear color which is used when a specific clear color has " "not been selected. See also [method set_default_clear_color]." @@ -104193,6 +126804,15 @@ msgstr "" "要[/i]在查询的视口上启用 [method viewport_set_measure_render_time]。另见 " "[method viewport_get_measured_render_time_cpu]。" +msgid "" +"Returns the global RenderingDevice.\n" +"[b]Note:[/b] When using the OpenGL rendering driver or when running in " +"headless mode, this function always returns [code]null[/code]." +msgstr "" +"返回全局的 RenderingDevice。\n" +"[b]注意:[/b]当使用 OpenGL 渲染驱动或在无头模式下运行时,这个函数始终返回 " +"[code]null[/code]。" + msgid "" "Returns a statistic about the rendering engine which can be used for " "performance profiling. See [enum RenderingServer.RenderingInfo] for a list of " @@ -104240,6 +126860,30 @@ msgstr "" "返回测试立方体的 RID。首次调用 [method get_test_cube] 时会创建并返回该网格,然" "后为后续调用缓存。另见 [method make_sphere_mesh]。" +msgid "" +"Returns the RID of a 256×256 texture with a testing pattern on it (in " +"[constant Image.FORMAT_RGB8] format). This texture will be created and " +"returned on the first call to [method get_test_texture], then it will be " +"cached for subsequent calls. See also [method get_white_texture].\n" +"[b]Example:[/b] Get the test texture and apply it to a [Sprite2D] node:\n" +"[codeblock]\n" +"var texture_rid = RenderingServer.get_test_texture()\n" +"var texture = ImageTexture.create_from_image(RenderingServer." +"texture_2d_get(texture_rid))\n" +"$Sprite2D.texture = texture\n" +"[/codeblock]" +msgstr "" +"返回带有测试图案的 256×256 纹理(格式为 [constant Image.FORMAT_RGB8])。首次调" +"用 [method get_test_texture] 时会创建并返回该纹理,然后为后续调用缓存。另见 " +"[method get_white_texture]。\n" +"[b]示例:[/b]获取测试纹理并将其应用至 [Sprite2D] 节点:\n" +"[codeblock]\n" +"var texture_rid = RenderingServer.get_test_texture()\n" +"var texture = ImageTexture.create_from_image(RenderingServer." +"texture_2d_get(texture_rid))\n" +"$Sprite2D.texture = texture\n" +"[/codeblock]" + msgid "" "Returns the version of the graphics video adapter [i]currently in use[/i] (e." "g. \"1.2.189\" for Vulkan, \"3.3.0 NVIDIA 510.60.02\" for OpenGL). This " @@ -104269,6 +126913,23 @@ msgstr "" "GPU 名称,例如“GeForce GTX 980”(无论用户的实际 GPU 型号如何)。这样做是为了使" "指纹识别更加困难。" +msgid "" +"Returns the type of the video adapter. Since dedicated graphics cards from a " +"given generation will [i]usually[/i] be significantly faster than integrated " +"graphics made in the same generation, the device type can be used as a basis " +"for automatic graphics settings adjustment. However, this is not always true, " +"so make sure to provide users with a way to manually override graphics " +"settings.\n" +"[b]Note:[/b] When using the OpenGL rendering driver or when running in " +"headless mode, this function always returns [constant RenderingDevice." +"DEVICE_TYPE_OTHER]." +msgstr "" +"返回视频适配器的类型。由于给定代的专用显卡[i]通常[/i]明显快于同一代制造的集成" +"显卡,因此设备类型可用作自动图形设置调整的基础。然而,这并不总是正确的,因此请" +"确保为用户提供一种手动覆盖图形设置的方法。\n" +"[b]注意:[/b]当使用 OpenGL 渲染驱动或在无头模式下运行时,该函数始终返回 " +"[constant RenderingDevice.DEVICE_TYPE_OTHER]。" + msgid "" "Returns the vendor of the video adapter (e.g. \"NVIDIA Corporation\").\n" "[b]Note:[/b] When running a headless or server binary, this function returns " @@ -104277,6 +126938,30 @@ msgstr "" "返回视频适配器的供应商(例如 \"NVIDIA Corporation\")。\n" "[b]注意:[/b]当运行精简或服务器可执行文件时,该函数返回一个空字符串。" +msgid "" +"Returns the ID of a 4×4 white texture (in [constant Image.FORMAT_RGB8] " +"format). This texture will be created and returned on the first call to " +"[method get_white_texture], then it will be cached for subsequent calls. See " +"also [method get_test_texture].\n" +"[b]Example:[/b] Get the white texture and apply it to a [Sprite2D] node:\n" +"[codeblock]\n" +"var texture_rid = RenderingServer.get_white_texture()\n" +"var texture = ImageTexture.create_from_image(RenderingServer." +"texture_2d_get(texture_rid))\n" +"$Sprite2D.texture = texture\n" +"[/codeblock]" +msgstr "" +"返回 4×4 的白色纹理(格式为 [constant Image.FORMAT_RGB8])。首次调用 [method " +"get_white_texture] 时会创建并返回该纹理,然后为后续调用缓存。另见 [method " +"get_test_texture]。\n" +"[b]示例:[/b]获取测试纹理并将其应用至 [Sprite2D] 节点:\n" +"[codeblock]\n" +"var texture_rid = RenderingServer.get_white_texture()\n" +"var texture = ImageTexture.create_from_image(RenderingServer." +"texture_2d_get(texture_rid))\n" +"$Sprite2D.texture = texture\n" +"[/codeblock]" + msgid "" "If [param half_resolution] is [code]true[/code], renders [VoxelGI] and SDFGI " "([member Environment.sdfgi_enabled]) buffers at halved resolution on each " @@ -104584,6 +127269,9 @@ msgstr "" "[member GeometryInstance3D.ignore_occlusion_culling] 不同,后者只会忽略遮挡剔" "除,仍会保留视锥剔除。" +msgid "Turns on and off physics interpolation for the instance." +msgstr "开启或关闭实例的物理插值。" + msgid "" "Sets the render layers that this instance will be drawn to. Equivalent to " "[member VisualInstance3D.layers]." @@ -105029,6 +127717,78 @@ msgstr "" "为此实例设置 [Transform2D]。用于在 2D 中使用 multimesh 时。相当于 [method " "MultiMesh.set_instance_transform_2d]。" +msgid "" +"Set the entire data to use for drawing the [param multimesh] at once to " +"[param buffer] (such as instance transforms and colors). [param buffer]'s " +"size must match the number of instances multiplied by the per-instance data " +"size (which depends on the enabled MultiMesh fields). Otherwise, an error " +"message is printed and nothing is rendered. See also [method " +"multimesh_get_buffer].\n" +"The per-instance data size and expected data order is:\n" +"[codeblock lang=text]\n" +"2D:\n" +" - Position: 8 floats (8 floats for Transform2D)\n" +" - Position + Vertex color: 12 floats (8 floats for Transform2D, 4 floats " +"for Color)\n" +" - Position + Custom data: 12 floats (8 floats for Transform2D, 4 floats of " +"custom data)\n" +" - Position + Vertex color + Custom data: 16 floats (8 floats for " +"Transform2D, 4 floats for Color, 4 floats of custom data)\n" +"3D:\n" +" - Position: 12 floats (12 floats for Transform3D)\n" +" - Position + Vertex color: 16 floats (12 floats for Transform3D, 4 floats " +"for Color)\n" +" - Position + Custom data: 16 floats (12 floats for Transform3D, 4 floats of " +"custom data)\n" +" - Position + Vertex color + Custom data: 20 floats (12 floats for " +"Transform3D, 4 floats for Color, 4 floats of custom data)\n" +"[/codeblock]\n" +"Instance transforms are in row-major order. Specifically:\n" +"- For [Transform2D] the float-order is: [code](x.x, y.x, padding_float, " +"origin.x, x.y, y.y, padding_float, origin.y)[/code].\n" +"- For [Transform3D] the float-order is: [code](basis.x.x, basis.y.x, basis.z." +"x, origin.x, basis.x.y, basis.y.y, basis.z.y, origin.y, basis.x.z, basis.y.z, " +"basis.z.z, origin.z)[/code]." +msgstr "" +"将用于绘制 [param multimesh] 的全部数据立即写入 [param buffer](例如实例的变换" +"和颜色)。[param buffer] 的大小必须与实例数和单实例数据大小的乘积匹配(后者取" +"决于启用的 MultiMesh 字段)。否则,会输出错误信息,不渲染任何东西。另见 " +"[method multimesh_get_buffer]。\n" +"单实例数据大小与预期的数据顺序如下:\n" +"[codeblock lang=text]\n" +"2D:\n" +" - 位置:8 个 float(Transform2D 占 8 个 float)\n" +" - 位置 + 顶点颜色:12 个 float(Transform2D 占 8 个 float、颜色占 4 个 " +"float)\n" +" - 位置 + 自定义数据:12 个 float(Transform2D 占 8 个 float、自定义数据占 4 " +"个 float)\n" +" - 位置 + 顶点颜色 + 自定义数据:16 个 float(Transform2D 占 8 个 float、颜色" +"占 4 个 float、自定义数据占 4 个 float)\n" +"3D:\n" +" - 位置:12 个 float(Transform3D 占 12 个 float)\n" +" - 位置 + 顶点颜色:16 个 float(Transform3D 占 12 个 float、颜色占 4 个 " +"float)\n" +" - 位置 + 自定义数据:16 个 float(Transform3D 占 12 个 float、自定义数据占 " +"4 个 float)\n" +" - 位置 + 顶点颜色 + 自定义数据:20 个 float(Transform3D 占 12 个 float、颜" +"色占 4 个 float、自定义数据占 4 个 float)\n" +"[/codeblock]\n" +"实例变换使用行主序,即:\n" +"- [Transform2D] 的 float 顺序为:[code](x.x, y.x, padding_float, origin.x, x." +"y, y.y, padding_float, origin.y)[/code]。\n" +"- [Transform3D] 的 float 顺序为:[code](basis.x.x, basis.y.x, basis.z.x, " +"origin.x, basis.x.y, basis.y.y, basis.z.y, origin.y, basis.x.z, basis.y.z, " +"basis.z.z, origin.z)[/code]。" + +msgid "" +"Alternative version of [method multimesh_set_buffer] for use with physics " +"interpolation.\n" +"Takes both an array of current data and an array of data for the previous " +"physics tick." +msgstr "" +"适合物理插值的 [method multimesh_set_buffer] 版本。\n" +"接受当前数据数组以及上一物理周期的数据数组。" + msgid "Sets the custom AABB for this MultiMesh resource." msgstr "为该 MultiMesh 资源设置自定义 AABB。" @@ -105037,6 +127797,19 @@ msgid "" "mesh]." msgstr "设置 Multimesh 所要绘制的网格。相当于 [member MultiMesh.mesh]。" +msgid "Turns on and off physics interpolation for this MultiMesh resource." +msgstr "为该 MultiMesh 资源打开或关闭物理插值。" + +msgid "" +"Sets the physics interpolation quality for the [MultiMesh].\n" +"A value of [constant MULTIMESH_INTERP_QUALITY_FAST] gives fast but low " +"quality interpolation, a value of [constant MULTIMESH_INTERP_QUALITY_HIGH] " +"gives slower but higher quality interpolation." +msgstr "" +"设置 [MultiMesh] 物理插值的质量。\n" +"[constant MULTIMESH_INTERP_QUALITY_FAST] 较快但插值质量较低,[constant " +"MULTIMESH_INTERP_QUALITY_HIGH] 较慢但插值质量较高。" + msgid "" "Sets the number of instances visible at a given time. If -1, all instances " "that have been allocated are drawn. Equivalent to [member MultiMesh." @@ -105799,6 +128572,27 @@ msgstr "" "[b]注意:[/b]请勿与 [method RenderingDevice.texture_create] 混淆,后者创建的是" "图形 API 自己的纹理类型,并非 Godot 专属的 [Texture2D] 资源。" +msgid "" +"Returns an [Image] instance from the given [param texture] [RID].\n" +"[b]Example:[/b] Get the test texture from [method get_test_texture] and apply " +"it to a [Sprite2D] node:\n" +"[codeblock]\n" +"var texture_rid = RenderingServer.get_test_texture()\n" +"var texture = ImageTexture.create_from_image(RenderingServer." +"texture_2d_get(texture_rid))\n" +"$Sprite2D.texture = texture\n" +"[/codeblock]" +msgstr "" +"根据给定的纹理 [RID] [param texture] 返回 [Image] 实例。\n" +"[b]示例:[/b]从 [method get_test_texture] 获取测试纹理并将其应用至 [Sprite2D] " +"节点:\n" +"[codeblock]\n" +"var texture_rid = RenderingServer.get_test_texture()\n" +"var texture = ImageTexture.create_from_image(RenderingServer." +"texture_2d_get(texture_rid))\n" +"$Sprite2D.texture = texture\n" +"[/codeblock]" + msgid "" "Returns an [Image] instance from the given [param texture] [RID] and [param " "layer]." @@ -105883,6 +128677,19 @@ msgstr "" "会输出错误,不会修改原始纹理。如果你需要使用不同的宽度、高度或格式,请改用 " "[method texture_replace]。" +msgid "" +"Creates a texture based on a native handle that was created outside of " +"Godot's renderer.\n" +"[b]Note:[/b] If using only the rendering device renderer, it's recommend to " +"use [method RenderingDevice.texture_create_from_extension] together with " +"[method RenderingServer.texture_rd_create], rather than this method. It will " +"give you much more control over the texture's format and usage." +msgstr "" +"根据在 Godot 渲染器外部创建的原生句柄创建纹理。\n" +"[b]注意:[/b]如果仅使用渲染设备渲染器,建议将 [method RenderingDevice." +"texture_create_from_extension] 和 [method RenderingServer.texture_rd_create] " +"结合使用,不要使用此方法。这样控制纹理格式和使用更加灵活。" + msgid "Returns the format for the texture." msgstr "返回该纹理的格式。" @@ -105916,6 +128723,47 @@ msgstr "设置视图的相机。" msgid "Sets a viewport's canvas." msgstr "设置视口的画布。" +msgid "" +"Copies the viewport to a region of the screen specified by [param rect]. If " +"[method viewport_set_render_direct_to_screen] is [code]true[/code], then the " +"viewport does not use a framebuffer and the contents of the viewport are " +"rendered directly to screen. However, note that the root viewport is drawn " +"last, therefore it will draw over the screen. Accordingly, you must set the " +"root viewport to an area that does not cover the area that you have attached " +"this viewport to.\n" +"For example, you can set the root viewport to not render at all with the " +"following code:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _ready():\n" +" RenderingServer.viewport_attach_to_screen(get_viewport()." +"get_viewport_rid(), Rect2())\n" +" RenderingServer.viewport_attach_to_screen($Viewport.get_viewport_rid(), " +"Rect2(0, 0, 600, 600))\n" +"[/gdscript]\n" +"[/codeblocks]\n" +"Using this can result in significant optimization, especially on lower-end " +"devices. However, it comes at the cost of having to manage your viewports " +"manually. For further optimization, see [method " +"viewport_set_render_direct_to_screen]." +msgstr "" +"将该视口复制到 [param rect] 指定的屏幕区域。如果 [method " +"viewport_set_render_direct_to_screen] 为 [code]true[/code],则视口不使用帧缓冲" +"区,视口的内容将直接渲染到屏幕。但是,请注意根视口是最后绘制的,因此它会覆盖屏" +"幕。相应地,必须将根视口的区域设置为不覆盖附加该视口的区域。\n" +"例如,可以使用以下代码将根视口设置为完全不渲染:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _ready():\n" +" RenderingServer.viewport_attach_to_screen(get_viewport()." +"get_viewport_rid(), Rect2())\n" +" RenderingServer.viewport_attach_to_screen($Viewport.get_viewport_rid(), " +"Rect2(0, 0, 600, 600))\n" +"[/gdscript]\n" +"[/codeblocks]\n" +"使用它可以带来显著的优化,尤其是在低端设备上。但是,这是以必须手动管理视口为代" +"价的。进一步优化请参见 [method viewport_set_render_direct_to_screen]。" + msgid "" "Creates an empty viewport and adds it to the RenderingServer. It can be " "accessed with the RID that is returned. This RID will be used in all " @@ -106022,6 +128870,44 @@ msgid "If [code]true[/code], sets the viewport active, else sets it inactive." msgstr "" "如果为 [code]true[/code],则将视口设置为活动状态,否则将其设置为非活动状态。" +msgid "" +"Sets the maximum number of samples to take when using anisotropic filtering " +"on textures (as a power of two). A higher sample count will result in sharper " +"textures at oblique angles, but is more expensive to compute. A value of " +"[code]0[/code] forcibly disables anisotropic filtering, even on materials " +"where it is enabled.\n" +"The anisotropic filtering level also affects decals and light projectors if " +"they are configured to use anisotropic filtering. See [member ProjectSettings." +"rendering/textures/decals/filter] and [member ProjectSettings.rendering/" +"textures/light_projectors/filter].\n" +"[b]Note:[/b] In 3D, for this setting to have an effect, set [member " +"BaseMaterial3D.texture_filter] to [constant BaseMaterial3D." +"TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC] or [constant BaseMaterial3D." +"TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC] on materials.\n" +"[b]Note:[/b] In 2D, for this setting to have an effect, set [member " +"CanvasItem.texture_filter] to [constant CanvasItem." +"TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC] or [constant CanvasItem." +"TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC] on the [CanvasItem] node " +"displaying the texture (or in [CanvasTexture]). However, anisotropic " +"filtering is rarely useful in 2D, so only enable it for textures in 2D if it " +"makes a meaningful visual difference." +msgstr "" +"设置在纹理上使用各向异性过滤时要采用的最大样本数(作为 2 的幂)。更高的采样数" +"将导致倾斜角度的纹理更清晰,但计算成本更高。[code]0[/code] 的值会强制禁用各向" +"异性过滤,即使在启用它的材质上也是如此。\n" +"如果贴花和投影器被配置为使用各向异性过滤,则各向异性过滤级别也会影响它们。见 " +"[member ProjectSettings.rendering/textures/decals/filter] and [member " +"ProjectSettings.rendering/textures/light_projectors/filter]。\n" +"[b]注意:[/b]要使该设置在 3D 中生效,请在材质上将 [member BaseMaterial3D." +"texture_filter] 设置为 [constant BaseMaterial3D." +"TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC] 或 [constant BaseMaterial3D." +"TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC]。\n" +"[b]注意:[/b]要使该设置在 2D 中生效,请在显示纹理的 [CanvasItem] 节点上(或 " +"[CanvasTexture] 中)将 [member CanvasItem.texture_filter] 设置为 [constant " +"CanvasItem.TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC] 或 [constant " +"CanvasItem.TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC]。然而各向异性过滤" +"在 2D 中并不实用,因此在 2D 中只有在它产生有意义的视觉差异时才对纹理启用它。" + msgid "" "Sets the rendering mask associated with this [Viewport]. Only [CanvasItem] " "nodes with a matching rendering visibility layer will be rendered by this " @@ -106336,6 +129222,25 @@ msgstr "" "复制一次,且模式更改为 [constant RenderingServer." "VIEWPORT_VRS_UPDATE_DISABLED]。" +msgid "" +"Creates a new 3D visibility notifier object and adds it to the " +"RenderingServer. It can be accessed with the RID that is returned. This RID " +"will be used in all [code]visibility_notifier_*[/code] RenderingServer " +"functions.\n" +"Once finished with your RID, you will want to free the RID using the " +"RenderingServer's [method free_rid] method.\n" +"To place in a scene, attach this notifier to an instance using [method " +"instance_set_base] using the returned RID.\n" +"[b]Note:[/b] The equivalent node is [VisibleOnScreenNotifier3D]." +msgstr "" +"新建 3D 可见性通知器并将其添加到 RenderingServer。可以通过返回的 RID 进行访" +"问。这个 RID 会在所有 [code]visibility_notifier_*[/code] RenderingServer 函数" +"中使用。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。\n" +"如果要将这个网格放置到场景中,请使用返回的 RID 调用 [method " +"instance_set_base],将通知器附加至某个实例上。\n" +"[b]注意:[/b]等价节点为 [VisibleOnScreenNotifier3D]。" + msgid "" "Creates a new voxel-based global illumination object and adds it to the " "RenderingServer. It can be accessed with the RID that is returned. This RID " @@ -106458,6 +129363,15 @@ msgstr "2D 中同一时间能够渲染的最大方向光的数量。" msgid "The maximum number of surfaces a mesh can have." msgstr "网格可拥有的最大表面数。" +msgid "2D texture." +msgstr "2D 纹理。" + +msgid "Layered texture." +msgstr "分层纹理。" + +msgid "3D texture." +msgstr "3D 纹理。" + msgid "Array of 2-dimensional textures (see [Texture2DArray])." msgstr "二维纹理数组(见 [Texture2DArray])。" @@ -106727,6 +129641,12 @@ msgstr "使用 [Transform2D] 存储 MultiMesh 变换。" msgid "Use [Transform3D] to store MultiMesh transform." msgstr "使用 [Transform3D] 存储 MultiMesh 变换。" +msgid "MultiMesh physics interpolation favors speed over quality." +msgstr "MultiMesh 的物理插值优先考虑速度,然后才是质量。" + +msgid "MultiMesh physics interpolation favors quality over speed." +msgstr "MultiMesh 的物理插值优先考虑质量,然后才是速度。" + msgid "" "Nearest-neighbor filter for light projectors (use for pixel art light " "projectors). No mipmaps are used for rendering, which means light projectors " @@ -107229,6 +130149,40 @@ msgstr "" "FSR2 放大视口。不支持大于 [code]1.0[/code] 的值,将改用双线性降采样。" "[code]1.0[/code] 的值将使用原生分辨率下的 FSR2 作为 TAA 解决方案。" +msgid "" +"Use MetalFX spatial upscaling for the viewport's 3D buffer. The amount of " +"scaling can be set using [member Viewport.scaling_3d_scale]. Values less than " +"[code]1.0[/code] will be result in the viewport being upscaled using MetalFX. " +"Values greater than [code]1.0[/code] are not supported and bilinear " +"downsampling will be used instead. A value of [code]1.0[/code] disables " +"scaling.\n" +"[b]Note:[/b] Only supported when the Metal rendering driver is in use, which " +"limits this scaling mode to macOS and iOS." +msgstr "" +"对视口的 3D 缓冲区使用 MetalFX 空间放大。可以使用 [member Viewport." +"scaling_3d_scale] 设置缩放量。小于 [code]1.0[/code] 的值将导致使用 MetalFX 放" +"大视口。不支持大于 [code]1.0[/code] 的值,将改用双线性降采样。[code]1.0[/" +"code] 的值将禁用缩放。\n" +"[b]注意:[/b]仅在使用 Metal 渲染驱动时支持该缩放模式,因此该模式仅限于 macOS " +"和 iOS。" + +msgid "" +"Use MetalFX temporal upscaling for the viewport's 3D buffer. The amount of " +"scaling can be set using [member Viewport.scaling_3d_scale]. Values less than " +"[code]1.0[/code] will be result in the viewport being upscaled using MetalFX. " +"Values greater than [code]1.0[/code] are not supported and bilinear " +"downsampling will be used instead. A value of [code]1.0[/code] will use " +"MetalFX at native resolution as a TAA solution.\n" +"[b]Note:[/b] Only supported when the Metal rendering driver is in use, which " +"limits this scaling mode to macOS and iOS." +msgstr "" +"对视口的 3D 缓冲区使用 MetalFX 时间放大。可以使用 [member Viewport." +"scaling_3d_scale] 设置缩放量。小于 [code]1.0[/code] 的值将导致使用 MetalFX 放" +"大视口。不支持大于 [code]1.0[/code] 的值,将改用双线性降采样。[code]1.0[/" +"code] 的值将以原生分辨率使用 MetalFX 作为 TAA 解决方案。\n" +"[b]注意:[/b]仅在使用 Metal 渲染驱动时支持该缩放模式,因此该模式仅限于 macOS " +"和 iOS。" + msgid "Represents the size of the [enum ViewportScaling3DMode] enum." msgstr "代表 [enum ViewportScaling3DMode] 枚举的大小。" @@ -107358,6 +130312,24 @@ msgstr "" msgid "Represents the size of the [enum ViewportMSAA] enum." msgstr "代表 [enum ViewportMSAA] 枚举的大小。" +msgid "Anisotropic filtering is disabled." +msgstr "各向异性过滤已禁用。" + +msgid "Use 2× anisotropic filtering." +msgstr "使用 2× 各向异性过滤。" + +msgid "Use 4× anisotropic filtering. This is the default value." +msgstr "使用 4× 各向异性过滤。这是默认值。" + +msgid "Use 8× anisotropic filtering." +msgstr "使用 8× 各向异性过滤。" + +msgid "Use 16× anisotropic filtering." +msgstr "使用 16× 各向异性过滤。" + +msgid "Represents the size of the [enum ViewportAnisotropicFiltering] enum." +msgstr "代表 [enum ViewportAnisotropicFiltering] 枚举的大小。" + msgid "Do not perform any antialiasing in the full screen post-process." msgstr "不要在全屏后处理中执行抗锯齿。" @@ -107440,6 +130412,16 @@ msgstr "" "[b]注意:[/b]使用该调试绘制模式时,自定义着色器将被忽略。这意味着顶点置换不再" "可见。" +msgid "" +"Debug draw draws objects in wireframe.\n" +"[b]Note:[/b] [method set_debug_generate_wireframes] must be called before " +"loading any meshes for wireframes to be visible when using the Compatibility " +"renderer." +msgstr "" +"调试绘制以线框形式绘制对象。\n" +"[b]注意:[/b]使用 Compatibility 渲染器时,必须在加载任何网格之前调用 [method " +"set_debug_generate_wireframes] 线框才可见。" + msgid "" "Normal buffer is drawn instead of regular scene so you can see the per-pixel " "normals that will be used by post-processing effects." @@ -107733,32 +130715,50 @@ msgid "Disable reflections." msgstr "禁用反射。" msgid "" -"Output color as they came in. This can cause bright lighting to look blown " -"out, with noticeable clipping in the output colors." +"A simple tonemapping curve that rolls off bright values to prevent clipping. " +"This results in an image that can appear dull and low contrast. Slower than " +"[constant ENV_TONE_MAPPER_LINEAR].\n" +"[b]Note:[/b] When [member Environment.tonemap_white] is left at the default " +"value of [code]1.0[/code], [constant ENV_TONE_MAPPER_REINHARD] produces an " +"identical image to [constant ENV_TONE_MAPPER_LINEAR]." msgstr "" -"按照输入原样输出颜色。较亮的光照会导致过曝、输出的颜色中会有可见的截断。" +"一种简单的色调映射曲线,会通过降低亮度值来防止发生裁剪。这会导致图像看起来平淡" +"并且对比度低。比 [constant ENV_TONE_MAPPER_LINEAR] 更慢。\n" +"[b]注意:[/b]当 [member Environment.tonemap_white] 保持默认值 [code]1.0[/" +"code] 时,[constant ENV_TONE_MAPPER_REINHARD] 生成的图像与 [constant " +"ENV_TONE_MAPPER_LINEAR] 相同。" msgid "" -"Use the filmic tonemapper. This avoids clipping bright highlights, with a " -"resulting image that usually looks more vivid than [constant " -"ENV_TONE_MAPPER_REINHARD]." +"Uses a film-like tonemapping curve to prevent clipping of bright values and " +"provide better contrast than [constant ENV_TONE_MAPPER_REINHARD]. Slightly " +"slower than [constant ENV_TONE_MAPPER_REINHARD]." msgstr "" -"使用电影级色调映射器。可以避免对高光的截断,最终的图像一般比 [constant " -"ENV_TONE_MAPPER_REINHARD] 看上去更鲜艳。" +"使用类似胶卷的色调映射曲线来防止裁剪亮度值,提供比 [constant " +"ENV_TONE_MAPPER_REINHARD] 更好的对比度。比 [constant " +"ENV_TONE_MAPPER_REINHARD] 稍慢。" msgid "" -"Use the Academy Color Encoding System tonemapper. ACES is slightly more " -"expensive than other options, but it handles bright lighting in a more " -"realistic fashion by desaturating it as it becomes brighter. ACES typically " -"has a more contrasted output compared to [constant ENV_TONE_MAPPER_REINHARD] " -"and [constant ENV_TONE_MAPPER_FILMIC].\n" +"Uses a high-contrast film-like tonemapping curve and desaturates bright " +"values for a more realistic appearance. Slightly slower than [constant " +"ENV_TONE_MAPPER_FILMIC].\n" "[b]Note:[/b] This tonemapping operator is called \"ACES Fitted\" in Godot 3.x." msgstr "" -"使用Academy 颜色编码系统色调映射器。ACES 比其他选项稍贵一些,但它通过在光线变" -"亮时对其进行去饱和处理,以更逼真的方式处理明亮的光线。与 [constant " -"ENV_TONE_MAPPER_REINHARD] 和 [constant ENV_TONE_MAPPER_FILMIC] 相比,ACES 通常" -"具有对比度更高的输出。\n" -"[b]注意:[/b]这个色调映射运算符在 Godot 3.x 中被称为“ACES Fitted”。" +"使用高对比度的类似胶卷的色调映射曲线并对亮度值进行去饱和处理,从而获得更真实的" +"外观。比 [constant ENV_TONE_MAPPER_FILMIC] 稍慢。\n" +"[b]注意:[/b]在 Godot 3.x 中将该色调映射运算称为“ACES Fitted”。" + +msgid "" +"Uses a film-like tonemapping curve and desaturates bright values for a more " +"realistic appearance. Better than other tonemappers at maintaining the hue of " +"colors as they become brighter. The slowest tonemapping option.\n" +"[b]Note:[/b] [member Environment.tonemap_white] is fixed at a value of " +"[code]16.29[/code], which makes [constant ENV_TONE_MAPPER_AGX] unsuitable for " +"use with the Mobile rendering method." +msgstr "" +"使用类似胶卷的色调映射曲线并对亮度值进行去饱和处理,从而获得更真实的外观。相比" +"其他色调映射器,在颜色变亮时能够更好地保持色调。这是最慢的色调映射选项。\n" +"[b]注意:[/b][member Environment.tonemap_white] 固定在 [code]16.29[/code],因" +"此 [constant ENV_TONE_MAPPER_AGX] 不适合移动渲染方法。" msgid "" "Lowest quality of roughness filter for screen-space reflections. Rough " @@ -108414,6 +131414,41 @@ msgstr "" "缓冲内存的使用量(单位为字节)。包括顶点数据、uniform 缓冲以及内部使用的各种不" "同缓冲类型。" +msgid "" +"Video memory used (in bytes). When using the Forward+ or Mobile renderers, " +"this is always greater than the sum of [constant " +"RENDERING_INFO_TEXTURE_MEM_USED] and [constant " +"RENDERING_INFO_BUFFER_MEM_USED], since there is miscellaneous data not " +"accounted for by those two metrics. When using the Compatibility renderer, " +"this is equal to the sum of [constant RENDERING_INFO_TEXTURE_MEM_USED] and " +"[constant RENDERING_INFO_BUFFER_MEM_USED]." +msgstr "" +"显存的使用量(单位为字节)。使用 Forward+ 或移动渲染器时,始终比 [constant " +"RENDERING_INFO_TEXTURE_MEM_USED] 与 [constant RENDERING_INFO_BUFFER_MEM_USED] " +"的总和要大,因为这两项之外还有一些杂项数据。使用 Compatibility 渲染器时,等于 " +"[constant RENDERING_INFO_TEXTURE_MEM_USED] 与 [constant " +"RENDERING_INFO_BUFFER_MEM_USED] 之和。" + +msgid "Pipeline compilation that was triggered by the 2D canvas renderer." +msgstr "由 2D 画布渲染器触发的管线编译。" + +msgid "Pipeline compilation that was triggered by loading a mesh." +msgstr "因加载网格而触发的管线编译。" + +msgid "" +"Pipeline compilation that was triggered by building the surface cache before " +"rendering the scene." +msgstr "因渲染场景前构建表面缓存而触发的管线编译。" + +msgid "Pipeline compilation that was triggered while drawing the scene." +msgstr "因绘制场景而触发的管线编译。" + +msgid "Pipeline compilation that was triggered to optimize the current scene." +msgstr "因优化当前场景而触发的管线编译。" + +msgid "Represents the size of the [enum PipelineSource] enum." +msgstr "代表 [enum PipelineSource] 枚举的大小。" + msgid "This constant has not been used since Godot 3.0." msgstr "Godot 3.0 起不再使用这个常量。" @@ -108451,6 +131486,9 @@ msgstr "" "该配置对象由渲染引擎在视口更改时创建和填充,并用于(重新)配置 " "[RenderSceneBuffers] 对象。" +msgid "Level of the anisotropic filter." +msgstr "各向异性过滤的级别。" + msgid "FSR Sharpness applicable if FSR upscaling is used." msgstr "如果使用 FSR 放大,则 FSR 锐度适用。" @@ -108845,6 +131883,17 @@ msgstr "" "储在服务器([DisplayServer]、[RenderingServer] 等)中的资源的高级抽象,所以这" "个函数将返回原始的 [RID]。" +msgid "" +"Sets the unique identifier to [param id] for the resource with the given " +"[param path] in the resource cache. If the unique identifier is empty, the " +"cache entry using [param path] is removed if it exists.\n" +"[b]Note:[/b] This method is only implemented when running in an editor " +"context." +msgstr "" +"在资源缓存中将位于 [param path] 的资源的唯一标识符设置为 [param id]。如果唯一" +"标识符为空且存在使用 [param path] 的缓存条目,则会移除该缓存条目。\n" +"[b]注意:[/b]该方法仅在编辑器上下文中实现。" + msgid "This method should only be called internally." msgstr "这个方法只应在内部调用。" @@ -109024,6 +132073,14 @@ msgstr "" "[b]注意:[/b][ClassDB] 不知道脚本定义的自定义资源类型,因此你可能只为它们返回 " "[code]\"Resource\"[/code]。" +msgid "" +"Should return the unique ID for the resource associated with the given path. " +"If this method is not overridden, a [code].uid[/code] file is generated along " +"with the resource file, containing the unique ID." +msgstr "" +"应返回与给定路径关联的资源的唯一 ID。如果未覆盖该方法,则会在资源文件旁生成一" +"个 [code].uid[/code] 文件,该文件中包含唯一 ID。" + msgid "" "Tells which resource class this loader can load.\n" "[b]Note:[/b] Custom resource types defined by scripts aren't known by the " @@ -109626,6 +132683,33 @@ msgstr "" "[GPUParticlesAttractorVectorField3D]。另请参见 [ResourceImporterTexture] 和 " "[ResourceImporterTextureAtlas]。" +msgid "" +"Controls how color channels should be used in the imported texture.\n" +"[b]sRGB Friendly:[/b], prevents the RG color format from being used, as it " +"does not support sRGB color.\n" +"[b]Optimized:[/b], allows the RG color format to be used if the texture does " +"not use the blue channel. This reduces memory usage if the texture's blue " +"channel can be discarded (all pixels must have a blue value of [code]0[/" +"code]).\n" +"[b]Normal Map (RG Channels):[/b] This forces all layers from the texture to " +"be imported with the RG color format, with only the red and green channels " +"preserved. RGTC (Red-Green Texture Compression) compression is able to " +"preserve its detail much better, while using the same amount of memory as a " +"standard RGBA VRAM-compressed texture. This only has an effect on textures " +"with the VRAM Compressed or Basis Universal compression modes. This mode is " +"only available in layered textures ([Cubemap], [CubemapArray], " +"[Texture2DArray] and [Texture3D])." +msgstr "" +"控制在导入的纹理中应如何使用颜色通道。\n" +"[b]sRGB 友好:[/b]阻止使用 RG 颜色格式,因为它不支持 sRGB 颜色。\n" +"[b]优化:[/b]如果纹理不使用蓝色通道,则允许使用 RG 颜色格式。如果可以丢弃纹理" +"的蓝色通道(所有像素的蓝色值必须为 [code]0[/code]),则可以减少内存使用量。\n" +"[b]法线贴图(RG 通道):[/b]这会强制使用 RG 颜色格式导入纹理中的所有图层,仅保" +"留红色和绿色通道。RGTC(红绿纹理压缩)压缩能够更好地保留细节,同时使用与标准 " +"RGBA VRAM 压缩纹理相同的内存量。这仅对具有 VRAM 压缩或 Basis Universal 压缩模" +"式的纹理有影响。该模式仅适用于分层纹理([Cubemap]、[CubemapArray]、" +"[Texture2DArray] 和 [Texture3D])。" + msgid "" "Controls how VRAM compression should be performed for HDR images.\n" "[b]Disabled:[/b] Never use VRAM compression for HDR textures, regardless of " @@ -109771,6 +132855,43 @@ msgstr "" msgid "Importing audio samples" msgstr "导入音频样本" +msgid "" +"The number of bars within a single beat in the audio track. This is only " +"relevant for music that wishes to make use of interactive music " +"functionality, not sound effects.\n" +"A more convenient editor for [member bar_beats] is provided in the " +"[b]Advanced Import Settings[/b] dialog, as it lets you preview your changes " +"without having to reimport the audio." +msgstr "" +"音轨中单个节拍内的小节数。这仅与希望利用交互式音乐功能的音乐相关,与声音效果无" +"关。\n" +"[b]高级导入设置[/b]对话框中为 [member bar_beats] 提供了更方便的编辑器,因为它" +"可以让你预览更改,且无需重新导入音频。" + +msgid "" +"The beat count of the audio track. This is only relevant for music that " +"wishes to make use of interactive music functionality, not sound effects.\n" +"A more convenient editor for [member beat_count] is provided in the " +"[b]Advanced Import Settings[/b] dialog, as it lets you preview your changes " +"without having to reimport the audio." +msgstr "" +"该音轨的节拍数。这仅与希望利用交互式音乐功能的音乐相关,与声音效果无关。\n" +"[b]高级导入设置[/b]对话框中为 [member beat_count] 提供了更方便的编辑器,因为它" +"可以让你预览更改,且无需重新导入音频。" + +msgid "" +"The beats per minute of the audio track. This should match the BPM measure " +"that was used to compose the track. This is only relevant for music that " +"wishes to make use of interactive music functionality, not sound effects.\n" +"A more convenient editor for [member bpm] is provided in the [b]Advanced " +"Import Settings[/b] dialog, as it lets you preview your changes without " +"having to reimport the audio." +msgstr "" +"音轨的每分钟节拍数。这应该与用于创作曲目的 BPM 测量相匹配。这仅与希望利用交互" +"式音乐功能的音乐相关,与声音效果无关。\n" +"[b]高级导入设置[/b]对话框中为 [member bpm] 提供了更方便的编辑器,因为它可以让" +"你预览更改,且无需重新导入音频。" + msgid "" "If enabled, the audio will begin playing at the beginning after playback ends " "by reaching the end of the audio.\n" @@ -109831,6 +132952,9 @@ msgstr "" "如果为 [code]true[/code],则不会使用网格压缩。如果你在网格法线或 UV 中发现块状" "伪影,或者如果你的网格在每个方向都大于几千米,请考虑启用。" +msgid "If [code]true[/code], generates UV2 on import for [LightmapGI] baking." +msgstr "如果为 [code]true[/code],导入时会为烘焙 [LightmapGI] 生成 UV2。" + msgid "" "If [code]true[/code], generates lower detail variants of the mesh which will " "be displayed in the distance to improve rendering performance. Not all meshes " @@ -109906,6 +133030,12 @@ msgstr "" "Ogg Vorbis 比 [ResourceImporterWAV] 需要更多的 CPU 来解码。如果你需要同时播放" "很多声音,建议对这些声音使用 WAV,特别是针对低端设备。" +msgid "Use [method AudioStreamOggVorbis.load_from_buffer] instead." +msgstr "请改用 [method AudioStreamOggVorbis.load_from_buffer]。" + +msgid "Use [method AudioStreamOggVorbis.load_from_file] instead." +msgstr "请改用 [method AudioStreamOggVorbis.load_from_file]。" + msgid "Imports a glTF, FBX, Collada or Blender 3D scene." msgstr "导入 glTF、FBX、Collada 或 Blender 3D 场景。" @@ -110323,6 +133453,13 @@ msgstr "" "[code]spatial[/code] 着色器中应使用 [code]render_mode blend_premul_alpha;[/" "code]。" +msgid "" +"The color channel to consider as a roughness map in this texture. Only " +"effective if [member roughness/src_normal] is not empty." +msgstr "" +"将该纹理视为粗糙度贴图的颜色通道。仅当 [member roughness/src_normal] 不为空时" +"才有效。" + msgid "" "The path to the texture to consider as a normal map for roughness filtering " "on import. Specifying this can help decrease specular aliasing slightly in " @@ -110413,6 +133550,20 @@ msgstr "" msgid "Imports a WAV audio file for playback." msgstr "导入 WAV 音频文件,用于播放。" +msgid "" +"WAV is an uncompressed format, which can provide higher quality compared to " +"Ogg Vorbis and MP3. It also has the lowest CPU cost to decode. This means " +"high numbers of WAV sounds can be played at the same time, even on low-end " +"devices.\n" +"By default, Godot imports WAV files using the lossy Quite OK Audio " +"compression. You may change this by setting the [member compress/mode] " +"property." +msgstr "" +"WAV 是未经压缩的格式,能够提供比 Ogg Vorbis 和 MP3 更高的质量。解压时的 CPU 开" +"销也最低。因此即便在低端设备上,也能够同时播放大量的 WAV 声音。\n" +"默认情况下,Godot 使用有损的 Quite OK Audio 压缩导入 WAV 文件。可以通过设置 " +"[member compress/mode] 属性来更改。" + msgid "" "The begin loop point to use when [member edit/loop_mode] is [b]Forward[/b], " "[b]Ping-Pong[/b], or [b]Backward[/b]. This is set in samples after the " @@ -110497,6 +133648,30 @@ msgstr "" msgid "A singleton for loading resource files." msgstr "用于加载资源文件的单例。" +msgid "" +"A singleton used to load resource files from the filesystem.\n" +"It uses the many [ResourceFormatLoader] classes registered in the engine " +"(either built-in or from a plugin) to load files into memory and convert them " +"to a format that can be used by the engine.\n" +"[b]Note:[/b] You have to import the files into the engine first to load them " +"using [method load]. If you want to load [Image]s at run-time, you may use " +"[method Image.load]. If you want to import audio files, you can use the " +"snippet described in [member AudioStreamMP3.data].\n" +"[b]Note:[/b] Non-resource files such as plain text files cannot be read using " +"[ResourceLoader]. Use [FileAccess] for those files instead, and be aware that " +"non-resource files are not exported by default (see notes in the [FileAccess] " +"class description for instructions on exporting them)." +msgstr "" +"用于从文件系统加载资源文件的单例。\n" +"会使用引擎中(内置或插件)注册的许多 [ResourceFormatLoader] 类将文件加载到内存" +"中并将其转换为引擎可以使用的格式。\n" +"[b]注意:[/b]你需要先将文件导入引擎,才能使用 [method load] 进行加载。如果你想" +"在运行时加载 [Image],可以使用 [method Image.load]。如果你想导入音频文件,可以" +"使用 [member AudioStreamMP3.data] 中描述的代码段。\n" +"[b]注意:[/b]纯文本文件等非资源文件无法使用 [ResourceLoader] 读取。请改用 " +"[FileAccess] 来处理这些文件,注意默认情况下不会导出非资源文件(导出说明见 " +"[FileAccess] 类描述)。" + msgid "" "Registers a new [ResourceFormatLoader]. The ResourceLoader will use the " "ResourceFormatLoader as described in [method load].\n" @@ -110838,6 +134013,78 @@ msgstr "" "用于无效 UID 的值,例如无法加载的资源。\n" "对应的文本表示为 [code]uid://<invalid>[/code]。" +msgid "" +"A modifier to transfer parent skeleton poses (or global poses) to child " +"skeletons in model space with different rests." +msgstr "" +"修改器,能够将父骨架的姿势(或全局姿势)转移给在模型空间中具有不同放松姿势的子" +"骨架。" + +msgid "" +"Retrieves the pose (or global pose) relative to the parent Skeleton's rest in " +"model space and transfers it to the child Skeleton.\n" +"This modifier rewrites the pose of the child skeleton directly in the parent " +"skeleton's update process. This means that it overwrites the mapped bone pose " +"set in the normal process on the target skeleton. If you want to set the " +"target skeleton bone pose after retargeting, you will need to add a " +"[SkeletonModifier3D] child to the target skeleton and thereby modify the " +"pose.\n" +"[b]Note:[/b] When the [member use_global_pose] is enabled, even if it is an " +"unmapped bone, it can cause visual problems because the global pose is " +"applied ignoring the parent bone's pose [b]if it has mapped bone children[/" +"b]. See also [member use_global_pose]." +msgstr "" +"获取模型空间中相对于父骨架放松姿势的姿势(或全局姿势)并将其转移给子 " +"Skeleton。\n" +"修改器会在父骨架的更新过程中直接重写子骨架的姿势。这意味着它会覆盖目标骨架上正" +"常处理过程中设置的映射骨骼姿势。如果你想要在重新定向后设置目标骨架的骨骼姿势," +"则需要向目标骨架添加一个 [SkeletonModifier3D] 子节点才能修改姿势。\n" +"[b]注意:[/b]启用 [member use_global_pose] 时,即便是未映射的骨骼也可能导致视" +"觉问题,因为[b]如果父骨骼存在映射的子骨骼[/b],那么应用全局姿势时会忽略父骨骼" +"的姿势。另见 [member use_global_pose]。" + +msgid "" +"Returns [code]true[/code] if [member enable] has [constant " +"TRANSFORM_FLAG_POSITION]." +msgstr "" +"如果 [member enable] 中有 [constant TRANSFORM_FLAG_POSITION] 则返回 " +"[code]true[/code]。" + +msgid "" +"Returns [code]true[/code] if [member enable] has [constant " +"TRANSFORM_FLAG_ROTATION]." +msgstr "" +"如果 [member enable] 中有 [constant TRANSFORM_FLAG_ROTATION] 则返回 " +"[code]true[/code]。" + +msgid "" +"Returns [code]true[/code] if [member enable] has [constant " +"TRANSFORM_FLAG_SCALE]." +msgstr "" +"如果 [member enable] 中有 [constant TRANSFORM_FLAG_SCALE] 则返回 [code]true[/" +"code]。" + +msgid "Sets [constant TRANSFORM_FLAG_POSITION] into [member enable]." +msgstr "在 [member enable] 中设置 [constant TRANSFORM_FLAG_POSITION]。" + +msgid "Sets [constant TRANSFORM_FLAG_ROTATION] into [member enable]." +msgstr "在 [member enable] 中设置 [constant TRANSFORM_FLAG_ROTATION]。" + +msgid "Sets [constant TRANSFORM_FLAG_SCALE] into [member enable]." +msgstr "在 [member enable] 中设置 [constant TRANSFORM_FLAG_SCALE]。" + +msgid "If set, allows to retarget the position." +msgstr "如果设置,则允许重定向位置。" + +msgid "If set, allows to retarget the rotation." +msgstr "如果设置,则允许重定向旋转。" + +msgid "If set, allows to retarget the scale." +msgstr "如果设置,则允许重定向缩放。" + +msgid "If set, allows to retarget the position/rotation/scale." +msgstr "如果设置,则允许重定向位置、旋转、位置。" + msgid "Represents a straight ribbon-shaped [PrimitiveMesh] with variable width." msgstr "代表竖直丝带形状的 [PrimitiveMesh],丝带的宽度可变。" @@ -110859,6 +134106,16 @@ msgstr "" msgid "3D Particle trails" msgstr "3D 粒子拖尾" +msgid "" +"Determines the size of the ribbon along its length. The size of a particular " +"section segment is obtained by multiplying the baseline [member size] by the " +"value of this curve at the given distance. For values smaller than [code]0[/" +"code], the faces will be inverted. Should be a unit [Curve]." +msgstr "" +"决定条带沿长度的大小。通过将基础大小 [member size] 乘以这条曲线上给定位置对应" +"的值,就可以得到分节上某一段的大小。如果得到的值小于 [code]0[/code],则对应的" +"面会被翻转。应当为单位 [Curve]。" + msgid "The length of a section of the ribbon." msgstr "条带中一节的长度。" @@ -110949,6 +134206,53 @@ msgid "" "and basic formatting." msgstr "用于显示文本的控件,文本中能够包含不同的字体样式、图片以及基础格式。" +msgid "" +"A control for displaying text that can contain custom fonts, images, and " +"basic formatting. [RichTextLabel] manages these as an internal tag stack. It " +"also adapts itself to given width/heights.\n" +"[b]Note:[/b] [method newline], [method push_paragraph], [code]\"\\n\"[/code], " +"[code]\"\\r\\n\"[/code], [code]p[/code] tag, and alignment tags start a new " +"paragraph. Each paragraph is processed independently, in its own BiDi " +"context. If you want to force line wrapping within paragraph, any other line " +"breaking character can be used, for example, Form Feed (U+000C), Next Line " +"(U+0085), Line Separator (U+2028).\n" +"[b]Note:[/b] Assignments to [member text] clear the tag stack and reconstruct " +"it from the property's contents. Any edits made to [member text] will erase " +"previous edits made from other manual sources such as [method append_text] " +"and the [code]push_*[/code] / [method pop] methods.\n" +"[b]Note:[/b] RichTextLabel doesn't support entangled BBCode tags. For " +"example, instead of using [code skip-lint][b]bold[i]bold italic[/b]italic[/i]" +"[/code], use [code skip-lint][b]bold[i]bold italic[/i][/b][i]italic[/i][/" +"code].\n" +"[b]Note:[/b] [code]push_*/pop_*[/code] functions won't affect BBCode.\n" +"[b]Note:[/b] Unlike [Label], [RichTextLabel] doesn't have a [i]property[/i] " +"to horizontally align text to the center. Instead, enable [member " +"bbcode_enabled] and surround the text in a [code skip-lint][center][/code] " +"tag as follows: [code skip-lint][center]Example[/center][/code]. There is " +"currently no built-in way to vertically align text either, but this can be " +"emulated by relying on anchors/containers and the [member fit_content] " +"property." +msgstr "" +"用于显示文本的控件,文本中能够包含自定义字体、图片以及基础格式。" +"[RichTextLabel] 使用内部标签栈管理这些内容。它还可以适应给定的宽度和高度。\n" +"[b]注意:[/b][method newline]、[method push_paragraph]、[code]\"\\n\"[/code]、" +"[code]\"\\r\\n\"[/code]、[code]p[/code] 标签以及对齐标签都会开启新的段落。不同" +"段落时独立处理的,使用独立的 BiDi 上下文。如果你想要在段落中强制换行,也可以使" +"用其他换行符,例如 Form Feed(U+000C)、Next Line(U+0085)、Line Separator" +"(U+2028)。\n" +"[b]注意:[/b]对 [member text] 赋值会将标签栈清空并根据该属性的内容重建。对 " +"[member text] 所做的任何编辑都将擦除之前从 [method append_text] 和 " +"[code]push_*[/code] / [method pop] 方法等其他手动来源所做的编辑。\n" +"[b]注意:[/b]RichTextLabel 不支持纠缠的 BBCode 标签。例如,请不要使用 [code " +"skip-lint][b]加粗[i]加粗斜体[/b]斜体[/i][/code],请改为 [code skip-lint][b]加" +"粗[i]加粗斜体[/i][/b][i]斜体[/i][/code]。\n" +"[b]注意:[/b][code]push_*/pop[/code] 函数不会影响 BBCode。\n" +"[b]注意:[/b]与 [Label] 不同,[RichTextLabel] 没有使文本水平居中的[i]属性[/" +"i]。请启用 [member bbcode_enabled] 并将文本包围在 [code skip-lint][center][/" +"code] 标签中,类似:[code skip-lint][center]示例[/center][/code]。目前也没有垂" +"直对齐文本的内置方法,但这可以通过使用锚点/容器和 [member fit_content] 属性来" +"模拟。" + msgid "Rich Text Label with BBCode Demo" msgstr "富文本标签 RichTextLabel 的 BBCode 演示" @@ -111010,6 +134314,36 @@ msgstr "" "[b]注意:[/b]这个方法不会影响 [member text],如果重绘标签,其内容会重新显示。" "但将 [member text] 设置为空 [String] 也会清除栈。" +msgid "" +"Returns the total number of lines in the text. Wrapped text is counted as " +"multiple lines.\n" +"[b]Note:[/b] If [member visible_characters_behavior] is set to [constant " +"TextServer.VC_CHARS_BEFORE_SHAPING] only visible wrapped lines are counted.\n" +"[b]Note:[/b] If [member threaded] is enabled, this method returns a value for " +"the loaded part of the document. Use [method is_finished] or [signal " +"finished] to determine whether document is fully loaded." +msgstr "" +"返回文本中的总行数。自动换行的文本计为多行。\n" +"[b]注意:[/b]如果将 [member visible_characters_behavior] 设为 [constant " +"TextServer.VC_CHARS_BEFORE_SHAPING],则只会计算可见的换行。\n" +"[b]注意:[/b]如果启用了 [member threaded],则此方法返回的是文档已加载部分的" +"值。请使用 [method is_ready] 或 [signal finished] 来确定文档是否已完全加载。" + +msgid "" +"Returns the indexes of the first and last visible characters for the given " +"[param line], as a [Vector2i].\n" +"[b]Note:[/b] If [member visible_characters_behavior] is set to [constant " +"TextServer.VC_CHARS_BEFORE_SHAPING] only visible wrapped lines are counted.\n" +"[b]Note:[/b] If [member threaded] is enabled, this method returns a value for " +"the loaded part of the document. Use [method is_finished] or [signal " +"finished] to determine whether document is fully loaded." +msgstr "" +"返回 [param line] 行上第一个和最后一个可见字符的索引,形式为 [Vector2i]。\n" +"[b]注意:[/b]如果将 [member visible_characters_behavior] 设为 [constant " +"TextServer.VC_CHARS_BEFORE_SHAPING],则只会计算可见的换行。\n" +"[b]注意:[/b]如果启用了 [member threaded],则此方法返回的是文档已加载部分的" +"值。请使用 [method is_ready] 或 [signal finished] 来确定文档是否已完全加载。" + msgid "" "Returns the [PopupMenu] of this [RichTextLabel]. By default, this menu is " "displayed when right-clicking on the [RichTextLabel].\n" @@ -111134,6 +134468,57 @@ msgid "" "BBCodes." msgstr "返回文本标签的总字符数。不包括 BBCode。" +msgid "" +"Installs a custom effect. This can also be done in the Inspector through the " +"[member custom_effects] property. [param effect] should be a valid " +"[RichTextEffect].\n" +"[b]Example:[/b] With the following script extending from [RichTextEffect]:\n" +"[codeblock]\n" +"# effect.gd\n" +"class_name MyCustomEffect\n" +"extends RichTextEffect\n" +"\n" +"var bbcode = \"my_custom_effect\"\n" +"\n" +"# ...\n" +"[/codeblock]\n" +"The above effect can be installed in [RichTextLabel] from a script:\n" +"[codeblock]\n" +"# rich_text_label.gd\n" +"extends RichTextLabel\n" +"\n" +"func _ready():\n" +" install_effect(MyCustomEffect.new())\n" +"\n" +" # Alternatively, if not using `class_name` in the script that extends " +"RichTextEffect:\n" +" install_effect(preload(\"res://effect.gd\").new())\n" +"[/codeblock]" +msgstr "" +"安装自定义效果。这也可以在检查器中使用 [member custom_effects] 属性来完成。" +"[param effect] 应该是一个有效的 [RichTextEffect]。\n" +"[b]示例:[/b]下面的脚本扩展自 [RichTextEffect]:\n" +"[codeblock]\n" +"# effect.gd\n" +"class_name MyCustomEffect\n" +"extends RichTextEffect\n" +"\n" +"var bbcode = \"my_custom_effect\"\n" +"\n" +"# ...\n" +"[/codeblock]\n" +"可以通过脚本在 [RichTextLabel] 中安装上述效果:\n" +"[codeblock]\n" +"# rich_text_label.gd\n" +"extends RichTextLabel\n" +"\n" +"func _ready():\n" +" install_effect(MyCustomEffect.new())\n" +"\n" +" # 或者,如果在扩展 RichTextEffect 的脚本中不使用“class_name”:\n" +" install_effect(preload(\"res://effect.gd\").new())\n" +"[/codeblock]" + msgid "Invalidates [param paragraph] and all subsequent paragraphs cache." msgstr "使 [param paragraph] 和所有后续段落缓存无效。" @@ -111145,6 +134530,9 @@ msgstr "" "如果启用了 [member threaded],则在后台线程完成文本处理后,返回 [code]true[/" "code],否则始终返回 [code]true[/code]。" +msgid "Use [method is_finished] instead." +msgstr "请改用 [method is_finished]。" + msgid "Adds a newline tag to the tag stack." msgstr "在标签栈中添加一个换行标签。" @@ -111517,6 +134905,16 @@ msgstr "" msgid "If [code]true[/code], text processing is done in a background thread." msgstr "如果为 [code]true[/code],则文本处理在后台线程中完成。" +msgid "" +"Triggered when the document is fully loaded.\n" +"[b]Note:[/b] This can happen before the text is processed for drawing. " +"Scrolling values may not be valid until the document is drawn for the first " +"time after this signal." +msgstr "" +"文档完全加载时触发。\n" +"[b]注意:[/b]可能发生在文本进行绘制处理之前。发出信号后,滚动值在文档首次绘制" +"前无效。" + msgid "" "Triggered when the user clicks on content between meta (URL) tags. If the " "meta is defined in BBCode, e.g. [code skip-lint][url={\"key\": " @@ -112064,6 +135462,22 @@ msgstr "" "[/csharp]\n" "[/codeblocks]" +msgid "" +"Damps the body's movement. By default, the body will use the [member " +"ProjectSettings.physics/2d/default_linear_damp] setting or any value override " +"set by an [Area2D] the body is in. Depending on [member linear_damp_mode], " +"you can set [member linear_damp] to be added to or to replace the body's " +"damping value.\n" +"See [member ProjectSettings.physics/2d/default_linear_damp] for more details " +"about damping." +msgstr "" +"抑制物体的运动。默认情况下,物体将使用 [member ProjectSettings.physics/2d/" +"default_linear_damp] 设置或物体所在的 [Area2D] 的覆盖值。取决于 [member " +"linear_damp_mode],你可以将 [member linear_damp] 设置为添加或替换物体的阻尼" +"值。\n" +"有关阻尼的更多详细信息,请参阅 [member ProjectSettings.physics/2d/" +"default_linear_damp]。" + msgid "" "The body's linear velocity in pixels per second. Can be used sporadically, " "but [b]don't set this every frame[/b], because physics may run in another " @@ -112449,6 +135863,22 @@ msgstr "" "[/csharp]\n" "[/codeblocks]" +msgid "" +"Damps the body's movement. By default, the body will use the [member " +"ProjectSettings.physics/3d/default_linear_damp] project setting or any value " +"override set by an [Area3D] the body is in. Depending on [member " +"linear_damp_mode], you can set [member linear_damp] to be added to or to " +"replace the body's damping value.\n" +"See [member ProjectSettings.physics/3d/default_linear_damp] for more details " +"about damping." +msgstr "" +"抑制物体的运动。默认情况下,物体将使用 [member ProjectSettings.physics/3d/" +"default_linear_damp] 设置或物体所在的 [Area3D] 的覆盖值。取决于 [member " +"linear_damp_mode],你可以将 [member linear_damp] 设置为添加或替换物体的阻尼" +"值。\n" +"有关阻尼的更多详细信息,请参阅 [member ProjectSettings.physics/3d/" +"default_linear_damp]。" + msgid "" "Emitted when a collision with another [PhysicsBody3D] or [GridMap] occurs. " "Requires [member contact_monitor] to be set to [code]true[/code] and [member " @@ -112692,6 +136122,24 @@ msgstr "" "[b]警告:[/b]反序列化的对象可能包含要执行的代码。如果序列化的对象来自不受信任" "的来源,请勿使用此选项,以避免潜在的安全威胁,例如远程代码执行。" +msgid "" +"The callback to execute when receiving authentication data sent via [method " +"send_auth]. If the [Callable] is empty (default), peers will be automatically " +"accepted as soon as they connect." +msgstr "" +"当通过 [method send_auth] 接收身份验证数据时要执行的回调函数。如果 [Callable] " +"为空(默认),对等方将在连接后立即自动接受。" + +msgid "" +"If set to a value greater than [code]0.0[/code], the maximum duration in " +"seconds peers can stay in the authenticating state, after which the " +"authentication will automatically fail. See the [signal peer_authenticating] " +"and [signal peer_authentication_failed] signals." +msgstr "" +"如果将其设置为大于 [code]0.0[/code] 的值,则对等方可以停留在正在验证状态的最长" +"时间,单位为秒,之后身份验证将自动失败。见 [signal peer_authenticating] 和 " +"[signal peer_authentication_failed] 信号。" + msgid "" "Maximum size of each delta packet. Higher values increase the chance of " "receiving full updates in a single frame, but also the chance of causing " @@ -113779,6 +137227,11 @@ msgstr "返回脚本的基类类型。" msgid "Returns the default value of the specified property." msgstr "返回指定属性的默认值。" +msgid "" +"Returns a [Dictionary] mapping method names to their RPC configuration " +"defined by this script." +msgstr "返回一个 [Dictionary],将方法名映射到由脚本定义的对应 RPC 配置。" + msgid "Returns a dictionary containing constant names and their values." msgstr "返回一个包含常量名称及其值的字典。" @@ -113905,6 +137358,9 @@ msgstr "" "[b]注意:[/b]这个类不应该被直接实例化。请使用 [method EditorInterface." "get_script_editor] 来访问这个单例。" +msgid "Returns array of breakpoints." +msgstr "返回断点数组。" + msgid "" "Returns the [ScriptEditorBase] object that the user is currently editing." msgstr "返回用户当前正在编辑的 [ScriptEditorBase] 对象。" @@ -113922,6 +137378,72 @@ msgid "" "Returns an array with all [Script] objects which are currently open in editor." msgstr "返回一个包含当前在编辑器中打开的所有 [Script] 对象的数组。" +msgid "" +"Opens help for the given topic. The [param topic] is an encoded string that " +"controls which class, method, constant, signal, annotation, property, or " +"theme item should be focused.\n" +"The supported [param topic] formats include [code]class_name:class[/code], " +"[code]class_method:class:method[/code], [code]class_constant:class:constant[/" +"code], [code]class_signal:class:signal[/code], [code]class_annotation:class:" +"@annotation[/code], [code]class_property:class:property[/code], and " +"[code]class_theme_item:class:item[/code], where [code]class[/code] is the " +"class name, [code]method[/code] is the method name, [code]constant[/code] is " +"the constant name, [code]signal[/code] is the signal name, [code]annotation[/" +"code] is the annotation name, [code]property[/code] is the property name, and " +"[code]item[/code] is the theme item.\n" +"[codeblock]\n" +"# Shows help for the Node class.\n" +"class_name:Node\n" +"# Shows help for the global min function.\n" +"# Global objects are accessible in the `@GlobalScope` namespace, shown here.\n" +"class_method:@GlobalScope:min\n" +"# Shows help for get_viewport in the Node class.\n" +"class_method:Node:get_viewport\n" +"# Shows help for the Input constant MOUSE_BUTTON_MIDDLE.\n" +"class_constant:Input:MOUSE_BUTTON_MIDDLE\n" +"# Shows help for the BaseButton signal pressed.\n" +"class_signal:BaseButton:pressed\n" +"# Shows help for the CanvasItem property visible.\n" +"class_property:CanvasItem:visible\n" +"# Shows help for the GDScript annotation export.\n" +"# Annotations should be prefixed with the `@` symbol in the descriptor, as " +"shown here.\n" +"class_annotation:@GDScript:@export\n" +"# Shows help for the GraphNode theme item named panel_selected.\n" +"class_theme_item:GraphNode:panel_selected\n" +"[/codeblock]" +msgstr "" +"打开指定主题的帮助。[param topic] 是一个编码字符串,用于控制哪个类、方法、常" +"量、信号、注解、属性或主题项应该被关注。\n" +"支持的 [param topic] 格式包括 [code]class_name:class[/code]、" +"[code]class_method:class:method[/code]、[code]class_constant:class:constant[/" +"code]、[code]class_signal:class:signal[/code]、[code]class_annotation:class:" +"@annotation[/code]、[code]class_property:class:property[/code] 和 " +"[code]class_theme_item:class:item[/code],其中 [code]class[/code] 为类名," +"[code]method[/code] 为方法名,[code]constant[/code] 为常量名,[code]signal[/" +"code] 为信号名,[code]annotation[/code] 为注解名,[code]property[/code] 为属性" +"名,[code]item[/code] 为主题项。\n" +"[codeblock]\n" +"# 显示 Node 类的帮助。\n" +"class_name:Node\n" +"# 显示全局 min 函数的帮助。\n" +"# 全局对象可在 `@GlobalScope` 命名空间中访问,如下所示。\n" +"class_method:@GlobalScope:min\n" +"# 显示 Node 类中 get_viewport 的帮助。\n" +"class_method:Node:get_viewport\n" +"# 显示输入常量 MOUSE_BUTTON_MIDDLE 的帮助。\n" +"class_constant:Input:MOUSE_BUTTON_MIDDLE\n" +"# 显示 BaseButton 信号 pressed 的帮助。\n" +"class_signal:BaseButton:pressed\n" +"# 显示 CanvasItem 属性 visible 的帮助。\n" +"class_property:CanvasItem:visible\n" +"# 显示 GDScript 注解 export 的帮助。\n" +"# 注解应在描述符中以 `@` 符号为前缀,如下所示。\n" +"class_annotation:@GDScript:@export\n" +"# 显示名为 panel_selected 的 GraphNode 主题项的帮助。\n" +"class_theme_item:GraphNode:panel_selected\n" +"[/codeblock]" + msgid "Goes to the specified line in the current script." msgstr "转到当前脚本中的指定行。" @@ -114528,6 +138050,32 @@ msgstr "" "返回着色器头文件的代码。返回的文本是用户所编写的内容,不是内部使用的完整生成的" "代码。" +msgid "Internal database of built in shader include files." +msgstr "内置着色器头文件的内部数据库。" + +msgid "" +"This object contains shader fragments from Godot's internal shaders. These " +"can be used when access to internal uniform buffers and/or internal functions " +"is required for instance when composing compositor effects or compute " +"shaders. Only fragments for the current rendering device are loaded." +msgstr "" +"该对象包含 Godot 内部着色器中的着色器片段。需要访问内部 Uniform 缓冲区和/或内" +"部函数时,例如在组合合成器效果或计算着色器时,可以使用这些片段。仅加载当前渲染" +"设备的片段。" + +msgid "" +"Returns the code for the built-in shader fragment. You can also access this " +"in your shader code through [code]#include \"filename\"[/code]." +msgstr "" +"返回内置着色器片段的代码。在着色器代码中也可以通过 [code]#include \"文件名\"[/" +"code] 访问。" + +msgid "Returns [code]true[/code] if an include file with this name exists." +msgstr "如果存在该名称对应的头文件,则返回 [code]true[/code]。" + +msgid "Returns a list of built-in include files that are currently registered." +msgstr "返回目前已注册的内置头文件列表。" + msgid "" "A material defined by a custom [Shader] program and the values of its shader " "parameters." @@ -114760,14 +138308,52 @@ msgstr "" "服 [Area2D] 在进行连续区域检测时的局限性,因为它无法立即获取碰撞信息。\n" "[b]注意:[/b]形状投射比射线投射的计算量更大。" +msgid "" +"Adds a collision exception so the shape does not report collisions with the " +"specified node." +msgstr "添加碰撞例外,使该形状不汇报与指定节点的碰撞。" + msgid "" "Adds a collision exception so the shape does not report collisions with the " "specified [RID]." -msgstr "添加碰撞例外,使该形状不汇报与指定 [RID] 节点的碰撞。" +msgstr "添加碰撞例外,使该形状不汇报与指定 [RID] 的碰撞。" msgid "Removes all collision exceptions for this shape." msgstr "移除该形状的所有碰撞例外。" +msgid "" +"Updates the collision information for the shape immediately, without waiting " +"for the next [code]_physics_process[/code] call. Use this method, for " +"example, when the shape or its parent has changed state.\n" +"[b]Note:[/b] Setting [member enabled] to [code]true[/code] is not required " +"for this to work." +msgstr "" +"立即更新形状的碰撞信息,不等待下一次的 [code]_physics_process[/code] 调用。例" +"如,请在形状或其父级更改状态后使用该方法。\n" +"[b]注意:[/b]不将 [member enabled] 设置为 [code]true[/code] 也可以生效。" + +msgid "" +"Returns the fraction from this cast's origin to its [member target_position] " +"of how far the shape can move without triggering a collision, as a value " +"between [code]0.0[/code] and [code]1.0[/code]." +msgstr "" +"返回从投射原点到 [member target_position] 之间的分数,形状在不触发碰撞的情况下" +"能够移动多远,是一个 [code]0.0[/code] 到 [code]1.0[/code] 之间的值。" + +msgid "" +"Returns the fraction from this cast's origin to its [member target_position] " +"of how far the shape must move to trigger a collision, as a value between " +"[code]0.0[/code] and [code]1.0[/code].\n" +"In ideal conditions this would be the same as [method " +"get_closest_collision_safe_fraction], however shape casting is calculated in " +"discrete steps, so the precise point of collision can occur between two " +"calculated positions." +msgstr "" +"返回从投射原点到 [member target_position] 之间的分数,形状移动多远才能够触发碰" +"撞,是一个 [code]0.0[/code] 到 [code]1.0[/code] 之间的值。\n" +"在理想条件下与 [method get_closest_collision_safe_fraction] 相同,但是形状投射" +"是分步骤计算的,因此精确的碰撞点可能发生在两个计算位置之间。" + msgid "" "Returns the collided [Object] of one of the multiple collisions at [param " "index], or [code]null[/code] if no object is intersecting the shape (i.e. " @@ -114804,11 +138390,24 @@ msgid "" "intersecting object." msgstr "返回相交对象 [param index] 处多次碰撞之一的法线。" +msgid "" +"Returns the collision point of one of the multiple collisions at [param " +"index] where the shape intersects the colliding object.\n" +"[b]Note:[/b] This point is in the [b]global[/b] coordinate system." +msgstr "" +"返回形状与碰撞对象相交的 [param index] 处多次碰撞之一的碰撞点。\n" +"[b]注意:[/b]这个点使用[b]全局[/b]坐标系。" + msgid "" "Returns whether any object is intersecting with the shape's vector " "(considering the vector length)." msgstr "返回是否有任何对象与形状的向量相交(考虑向量长度)。" +msgid "" +"Removes a collision exception so the shape does report collisions with the " +"specified node." +msgstr "移除碰撞例外,使该形状能够汇报与指定节点的碰撞。" + msgid "" "Removes a collision exception so the shape does report collisions with the " "specified [RID]." @@ -114842,6 +138441,14 @@ msgid "" "processing time." msgstr "可以使用这个参数来限制相交点的数量,减少处理时间。" +msgid "The shape to be used for collision queries." +msgstr "用于碰撞查询的形状。" + +msgid "" +"The shape's destination point, relative to this node's [member Node2D." +"position]." +msgstr "形状的目标点,相对于该节点的 [member Node2D.position]。" + msgid "A 3D shape that sweeps a region of space to detect [CollisionObject3D]s." msgstr "3D 形状,会扫描空间中某个区域,用于检测 [CollisionObject3D]。" @@ -114890,15 +138497,36 @@ msgstr "" "如果设置为 [code]Color(0.0, 0.0, 0.0)[/code](默认值),则使用 [member " "ProjectSettings.debug/shapes/collision/shape_color] 中设置的颜色。" +msgid "" +"The shape's destination point, relative to this node's [member Node3D." +"position]." +msgstr "形状的目标点,相对于该节点的 [member Node3D.position]。" + msgid "A shortcut for binding input." msgstr "用于绑定输入的快捷键。" +msgid "" +"Shortcuts are commonly used for interacting with a [Control] element from an " +"[InputEvent] (also known as hotkeys).\n" +"One shortcut can contain multiple [InputEvent]s, allowing the possibility of " +"triggering one action with multiple different inputs." +msgstr "" +"快捷键通常用于通过 [InputEvent] 与 [Control] 元素进行交互(也叫热键)。\n" +"一个快捷键可以包含多个 [InputEvent],因此能够使用多种不同的输入触发某个动作。" + msgid "Returns the shortcut's first valid [InputEvent] as a [String]." msgstr "返回该快捷键的第一个有效 [InputEvent] 的 [String] 形式。" msgid "Returns whether [member events] contains an [InputEvent] which is valid." msgstr "返回 [member events] 是否包含有效的 [InputEvent]。" +msgid "" +"Returns whether any [InputEvent] in [member events] equals [param event]. " +"This uses [method InputEvent.is_match] to compare events." +msgstr "" +"返回 [member events] 中是否有等于 [param event] 的 [InputEvent]。比较事件时使" +"用 [method InputEvent.is_match]。" + msgid "" "The shortcut's [InputEvent] array.\n" "Generally the [InputEvent] used is an [InputEventKey], though it can be any " @@ -114911,6 +138539,61 @@ msgstr "" msgid "A built-in type representing a signal of an [Object]." msgstr "代表 [Object] 中某个信号的内置类型。" +msgid "" +"[Signal] is a built-in [Variant] type that represents a signal of an [Object] " +"instance. Like all [Variant] types, it can be stored in variables and passed " +"to functions. Signals allow all connected [Callable]s (and by extension their " +"respective objects) to listen and react to events, without directly " +"referencing one another. This keeps the code flexible and easier to manage. " +"You can check whether an [Object] has a given signal name using [method " +"Object.has_signal].\n" +"In GDScript, signals can be declared with the [code]signal[/code] keyword. In " +"C#, you may use the [code][Signal][/code] attribute on a delegate.\n" +"[codeblocks]\n" +"[gdscript]\n" +"signal attacked\n" +"\n" +"# Additional arguments may be declared.\n" +"# These arguments must be passed when the signal is emitted.\n" +"signal item_dropped(item_name, amount)\n" +"[/gdscript]\n" +"[csharp]\n" +"[Signal]\n" +"delegate void AttackedEventHandler();\n" +"\n" +"// Additional arguments may be declared.\n" +"// These arguments must be passed when the signal is emitted.\n" +"[Signal]\n" +"delegate void ItemDroppedEventHandler(string itemName, int amount);\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"信号 [Signal] 是内置的 [Variant] 类型,代表 [Object] 实例的某个信息。信号和所" +"有 [Variant] 类型一样,可以在变量中存储、传递给函数。信号能够让所有连接的 " +"[Callable](及相应扩展对象)监听事件并作出反应,不必直接互相引用。这样就能让代" +"码更灵活、更易于管理。你可以使用 [method Object.has_signal] 来判断 [Object] 是" +"否存在给定名称的信号。\n" +"在 GDScript 中,信号可以使用 [code]signal[/code] 关键字声明。在 C# 中,你可以" +"在代理上使用 [code][Signal][/code] 属性。\n" +"[codeblocks]\n" +"[gdscript]\n" +"signal attacked\n" +"\n" +"# 可以声明额外的参数。\n" +"# 这些参数必须在发出信号时传递。\n" +"signal item_dropped(item_name, amount)\n" +"[/gdscript]\n" +"[csharp]\n" +"[Signal]\n" +"delegate void AttackedEventHandler();\n" +"\n" +"// 可以声明额外的参数。\n" +"// 这些参数必须在发出信号时传递。\n" +"[Signal]\n" +"delegate void ItemDroppedEventHandler(string itemName, int amount);\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "Using Signals" msgstr "使用信号" @@ -114923,6 +138606,13 @@ msgstr "构造空的 [Signal],没有绑定对象和信号名称。" msgid "Constructs a [Signal] as a copy of the given [Signal]." msgstr "构造给定 [Signal] 的副本。" +msgid "" +"Creates a [Signal] object referencing a signal named [param signal] in the " +"specified [param object]." +msgstr "" +"在指定对象 [param object] 中新建 [Signal] 对象,引用名为 [param signal] 的信" +"号。" + msgid "" "Connects this signal to the specified [param callable]. Optional [param " "flags] can be also added to configure the connection's behavior (see [enum " @@ -114995,11 +138685,21 @@ msgid "" "get_instance_id])." msgstr "返回发出该信号的对象的 ID(见 [method Object.get_instance_id])。" +msgid "Returns [code]true[/code] if any [Callable] is connected to this signal." +msgstr "如果存在连接到该信号的 [Callable],则返回 [code]true[/code]。" + msgid "" "Returns [code]true[/code] if the specified [Callable] is connected to this " "signal." msgstr "如果指定的 [Callable] 已连接到此信号,则返回 [code]true[/code]。" +msgid "" +"Returns [code]true[/code] if this [Signal] has no object and the signal name " +"is empty. Equivalent to [code]signal == Signal()[/code]." +msgstr "" +"如果该 [Signal] 不存在对象且信号名为空,则返回 [code]true[/code]。等价于 " +"[code]signal == Signal()[/code]。" + msgid "" "Returns [code]true[/code] if the signals do not share the same object and " "name." @@ -115176,6 +138876,12 @@ msgstr "返回 [param bone_idx] 骨骼的全局姿势覆盖变换。" msgid "Returns the global rest transform for [param bone_idx]." msgstr "返回 [param bone_idx] 骨骼的全局放松变换。" +msgid "Returns bone metadata for [param bone_idx] with [param key]." +msgstr "返回 [param bone_idx] 骨骼中键名为 [param key] 的元数据。" + +msgid "Returns a list of all metadata keys for [param bone_idx]." +msgstr "返回 [param bone_idx] 骨骼的所有元数据键名。" + msgid "Returns the name of the bone at index [param bone_idx]." msgstr "返回索引为 [param bone_idx] 的骨骼的名称。" @@ -115216,7 +138922,7 @@ msgstr "" "且相对于任何父骨骼的旋转。" msgid "Returns the pose scale of the bone at [param bone_idx]." -msgstr "返回 [param bone_idx] 处骨骼的姿态缩放。" +msgstr "返回 [param bone_idx] 骨骼的姿势缩放。" msgid "Returns the rest transform for a bone [param bone_idx]." msgstr "返回骨骼 [param bone_idx] 的放松变换。" @@ -115248,6 +138954,11 @@ msgstr "" "骨架版本没有被序列化:只能在 Skeleton3D 的单个实例中使用。\n" "用于使 IK 解算器中的和处理骨骼的其他节点中的缓存失效。" +msgid "" +"Returns whether there exists any bone metadata for [param bone_idx] with key " +"[param key]." +msgstr "返回 [param bone_idx] 骨骼是否存在键名为 [param key] 的元数据。" + msgid "" "Returns whether the bone pose for the bone at [param bone_idx] is enabled." msgstr "返回位于 [param bone_idx] 的骨骼是否启用了骨骼姿势。" @@ -115301,6 +139012,12 @@ msgstr "" "姿势,请将节点的 [member Node3D.global_transform] 的 [method Transform3D." "affine_inverse] 乘以所期望的世界变换。" +msgid "" +"Sets bone metadata for [param bone_idx], will set the [param key] meta to " +"[param value]." +msgstr "" +"将 [param bone_idx] 骨骼中键名为 [param key] 的元数据设置为 [param value]。" + msgid "Sets the bone name, [param name], for the bone at [param bone_idx]." msgstr "将索引号为 [param bone_idx] 的骨骼的名称设置为 [param name]。" @@ -115398,6 +139115,9 @@ msgstr "" "[b]注意:[/b]更新过程中不会发出该信号,因此不会检测到 [SkeletonModifier3D] 的" "修改。" +msgid "Emitted when the rest is updated." +msgstr "更新放松姿势时发出。" + msgid "Emitted when the value of [member show_rest_only] changes." msgstr "当 [member show_rest_only] 的值改变时触发。" @@ -115498,6 +139218,14 @@ msgstr "" "skeleton_ik_node.set_influence(0.0)\n" "[/codeblock]" +msgid "" +"Returns the parent [Skeleton3D] node that was present when SkeletonIK entered " +"the scene tree. Returns [code]null[/code] if the parent node was not a " +"[Skeleton3D] node when SkeletonIK3D entered the scene tree." +msgstr "" +"返回 SkeletonIK 进入场景树时存在的父级 [Skeleton3D] 节点。如果 SkeletonIK3D 进" +"入场景树时父节点不是 [Skeleton3D] 节点,则返回 [code]null[/code]。" + msgid "" "Returns [code]true[/code] if SkeletonIK is applying IK effects on continues " "frames to the [Skeleton3D] bones. Returns [code]false[/code] if SkeletonIK is " @@ -116441,6 +140169,9 @@ msgstr "" "强度将应用一半,[code]1[/code] 的强度将允许修改被完全应用并覆盖 [Skeleton2D] " "[Bone2D] 姿势。" +msgid "A node that may modify Skeleton3D's bone." +msgstr "能够修改 Skeleton3D 中骨骼的节点。" + msgid "" "[SkeletonModifier3D] retrieves a target [Skeleton3D] by having a [Skeleton3D] " "parent.\n" @@ -116495,6 +140226,24 @@ msgstr "" "[b]注意:[/b]如果要获取修改器修改后的骨骼姿势,必须在触发该信号时使用 [method " "Skeleton3D.get_bone_pose] 或 [method Skeleton3D.get_bone_global_pose]。" +msgid "Enumerated value for the +X axis." +msgstr "+X 轴对应的枚举值。" + +msgid "Enumerated value for the -X axis." +msgstr "-X 轴对应的枚举值。" + +msgid "Enumerated value for the +Y axis." +msgstr "+Y 轴对应的枚举值。" + +msgid "Enumerated value for the -Y axis." +msgstr "-Y 轴对应的枚举值。" + +msgid "Enumerated value for the +Z axis." +msgstr "+Z 轴对应的枚举值。" + +msgid "Enumerated value for the -Z axis." +msgstr "-Z 轴对应的枚举值。" + msgid "" "Base class for a profile of a virtual skeleton used as a target for " "retargeting." @@ -116699,6 +140448,135 @@ msgstr "不计算方向。" msgid "A humanoid [SkeletonProfile] preset." msgstr "人形 [SkeletonProfile] 预设。" +msgid "" +"A [SkeletonProfile] as a preset that is optimized for the human form. This " +"exists for standardization, so all parameters are read-only.\n" +"A humanoid skeleton profile contains 54 bones divided in 4 groups: " +"[code]\"Body\"[/code], [code]\"Face\"[/code], [code]\"LeftHand\"[/code], and " +"[code]\"RightHand\"[/code]. It is structured as follows:\n" +"[codeblock lang=text]\n" +"Root\n" +"└─ Hips\n" +" ├─ LeftUpperLeg\n" +" │ └─ LeftLowerLeg\n" +" │ └─ LeftFoot\n" +" │ └─ LeftToes\n" +" ├─ RightUpperLeg\n" +" │ └─ RightLowerLeg\n" +" │ └─ RightFoot\n" +" │ └─ RightToes\n" +" └─ Spine\n" +" └─ Chest\n" +" └─ UpperChest\n" +" ├─ Neck\n" +" │ └─ Head\n" +" │ ├─ Jaw\n" +" │ ├─ LeftEye\n" +" │ └─ RightEye\n" +" ├─ LeftShoulder\n" +" │ └─ LeftUpperArm\n" +" │ └─ LeftLowerArm\n" +" │ └─ LeftHand\n" +" │ ├─ LeftThumbMetacarpal\n" +" │ │ └─ LeftThumbProximal\n" +" │ │ └─ LeftThumbDistal\n" +" │ ├─ LeftIndexProximal\n" +" │ │ └─ LeftIndexIntermediate\n" +" │ │ └─ LeftIndexDistal\n" +" │ ├─ LeftMiddleProximal\n" +" │ │ └─ LeftMiddleIntermediate\n" +" │ │ └─ LeftMiddleDistal\n" +" │ ├─ LeftRingProximal\n" +" │ │ └─ LeftRingIntermediate\n" +" │ │ └─ LeftRingDistal\n" +" │ └─ LeftLittleProximal\n" +" │ └─ LeftLittleIntermediate\n" +" │ └─ LeftLittleDistal\n" +" └─ RightShoulder\n" +" └─ RightUpperArm\n" +" └─ RightLowerArm\n" +" └─ RightHand\n" +" ├─ RightThumbMetacarpal\n" +" │ └─ RightThumbProximal\n" +" │ └─ RightThumbDistal\n" +" ├─ RightIndexProximal\n" +" │ └─ RightIndexIntermediate\n" +" │ └─ RightIndexDistal\n" +" ├─ RightMiddleProximal\n" +" │ └─ RightMiddleIntermediate\n" +" │ └─ RightMiddleDistal\n" +" ├─ RightRingProximal\n" +" │ └─ RightRingIntermediate\n" +" │ └─ RightRingDistal\n" +" └─ RightLittleProximal\n" +" └─ RightLittleIntermediate\n" +" └─ RightLittleDistal\n" +"[/codeblock]" +msgstr "" +"[SkeletonProfile] 是针对人形优化的预设。它存在的目的是进行标准化,因此所有参数" +"都是只读的。\n" +"人形骨架预设包含了 54 根骨骼,分为 [code]\"Body\"[/code](身体)、" +"[code]\"Face\"[/code](面部)、 [code]\"LeftHand\"[/code](左手)、" +"[code]\"RightHand\"[/code](右手)4 组。结构如下:\n" +"[codeblock lang=text]\n" +"Root\n" +"└─ Hips\n" +" ├─ LeftUpperLeg\n" +" │ └─ LeftLowerLeg\n" +" │ └─ LeftFoot\n" +" │ └─ LeftToes\n" +" ├─ RightUpperLeg\n" +" │ └─ RightLowerLeg\n" +" │ └─ RightFoot\n" +" │ └─ RightToes\n" +" └─ Spine\n" +" └─ Chest\n" +" └─ UpperChest\n" +" ├─ Neck\n" +" │ └─ Head\n" +" │ ├─ Jaw\n" +" │ ├─ LeftEye\n" +" │ └─ RightEye\n" +" ├─ LeftShoulder\n" +" │ └─ LeftUpperArm\n" +" │ └─ LeftLowerArm\n" +" │ └─ LeftHand\n" +" │ ├─ LeftThumbMetacarpal\n" +" │ │ └─ LeftThumbProximal\n" +" │ │ └─ LeftThumbDistal\n" +" │ ├─ LeftIndexProximal\n" +" │ │ └─ LeftIndexIntermediate\n" +" │ │ └─ LeftIndexDistal\n" +" │ ├─ LeftMiddleProximal\n" +" │ │ └─ LeftMiddleIntermediate\n" +" │ │ └─ LeftMiddleDistal\n" +" │ ├─ LeftRingProximal\n" +" │ │ └─ LeftRingIntermediate\n" +" │ │ └─ LeftRingDistal\n" +" │ └─ LeftLittleProximal\n" +" │ └─ LeftLittleIntermediate\n" +" │ └─ LeftLittleDistal\n" +" └─ RightShoulder\n" +" └─ RightUpperArm\n" +" └─ RightLowerArm\n" +" └─ RightHand\n" +" ├─ RightThumbMetacarpal\n" +" │ └─ RightThumbProximal\n" +" │ └─ RightThumbDistal\n" +" ├─ RightIndexProximal\n" +" │ └─ RightIndexIntermediate\n" +" │ └─ RightIndexDistal\n" +" ├─ RightMiddleProximal\n" +" │ └─ RightMiddleIntermediate\n" +" │ └─ RightMiddleDistal\n" +" ├─ RightRingProximal\n" +" │ └─ RightRingIntermediate\n" +" │ └─ RightRingDistal\n" +" └─ RightLittleProximal\n" +" └─ RightLittleIntermediate\n" +" └─ RightLittleDistal\n" +"[/codeblock]" + msgid "" "A reference-counted holder object for a skeleton RID used in the " "[RenderingServer]." @@ -116904,6 +140782,20 @@ msgid "" "values." msgstr "如果为 [code]true[/code],则滑杆将显示最小值和最大值的刻度。" +msgid "" +"Emitted when the grabber stops being dragged. If [param value_changed] is " +"[code]true[/code], [member Range.value] is different from the value when the " +"dragging was started." +msgstr "" +"停止拖拽拖动器时发出。如果 [param value_changed] 为 [code]true[/code],则 " +"[member Range.value] 与开始拖拽时的值不同。" + +msgid "" +"Emitted when the grabber starts being dragged. This is emitted before the " +"corresponding [signal Range.value_changed] signal." +msgstr "" +"开始拖拽拖动器时发出,时机在对应的 [signal Range.value_changed] 信号之前。" + msgid "" "Boolean constant. If [code]1[/code], the grabber texture size will be ignored " "and it will fit within slider's bounds based only on its center position." @@ -117323,6 +141215,67 @@ msgstr "球体的半径。形状的直径是半径的两倍。" msgid "An input field for numbers." msgstr "数字的输入字段。" +msgid "" +"[SpinBox] is a numerical input text field. It allows entering integers and " +"floating-point numbers.\n" +"[b]Example:[/b] Create a [SpinBox], disable its context menu and set its text " +"alignment to right.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var spin_box = SpinBox.new()\n" +"add_child(spin_box)\n" +"var line_edit = spin_box.get_line_edit()\n" +"line_edit.context_menu_enabled = false\n" +"spin_box.horizontal_alignment = LineEdit.HORIZONTAL_ALIGNMENT_RIGHT\n" +"[/gdscript]\n" +"[csharp]\n" +"var spinBox = new SpinBox();\n" +"AddChild(spinBox);\n" +"var lineEdit = spinBox.GetLineEdit();\n" +"lineEdit.ContextMenuEnabled = false;\n" +"spinBox.AlignHorizontal = LineEdit.HorizontalAlignEnum.Right;\n" +"[/csharp]\n" +"[/codeblocks]\n" +"See [Range] class for more options over the [SpinBox].\n" +"[b]Note:[/b] With the [SpinBox]'s context menu disabled, you can right-click " +"the bottom half of the spinbox to set the value to its minimum, while right-" +"clicking the top half sets the value to its maximum.\n" +"[b]Note:[/b] [SpinBox] relies on an underlying [LineEdit] node. To theme a " +"[SpinBox]'s background, add theme items for [LineEdit] and customize them. " +"The [LineEdit] has the [code]SpinBoxInnerLineEdit[/code] theme variation, so " +"that you can give it a distinct appearance from regular [LineEdit]s.\n" +"[b]Note:[/b] If you want to implement drag and drop for the underlying " +"[LineEdit], you can use [method Control.set_drag_forwarding] on the node " +"returned by [method get_line_edit]." +msgstr "" +"[SpinBox] 是一种用于输入数值的文本框,允许输入整数和浮点数。\n" +"[b]示例:[/b]创建 [SpinBox],禁用其上下文菜单,并将文本设置为右对齐。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var spin_box = SpinBox.new()\n" +"add_child(spin_box)\n" +"var line_edit = spin_box.get_line_edit()\n" +"line_edit.context_menu_enabled = false\n" +"spin_box.horizontal_alignment = LineEdit.HORIZONTAL_ALIGNMENT_RIGHT\n" +"[/gdscript]\n" +"[csharp]\n" +"var spinBox = new SpinBox();\n" +"AddChild(spinBox);\n" +"var lineEdit = spinBox.GetLineEdit();\n" +"lineEdit.ContextMenuEnabled = false;\n" +"spinBox.AlignHorizontal = LineEdit.HorizontalAlignEnum.Right;\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[SpinBox] 的更多选项见 [Range] 类。\n" +"[b]注意:[/b][SpinBox] 的上下文菜单被禁用时,右键单击微调框的下半部分可以将取" +"值设置最小值,右键单击上半部分可以将取值设置最大值。\n" +"[b]注意:[/b][SpinBox] 依赖底层的 [LineEdit] 节点。要为 [SpinBox] 的背景设置主" +"题,请为 [LineEdit] 添加主题项目并进行自定义。该 [LineEdit] 使用 " +"[code]SpinBoxInnerLineEdit[/code] 主题变体,因此你可以为其指定不同于普通 " +"[LineEdit] 的外观。\n" +"[b]注意:[/b]如果你想要为底层的 [LineEdit] 实现拖放,可以对 [method " +"get_line_edit] 所返回的节点使用 [method Control.set_drag_forwarding]。" + msgid "Applies the current value of this [SpinBox]." msgstr "应用此 [SpinBox] 的当前值。" @@ -117380,6 +141333,132 @@ msgstr "" "的 [Range] 的值。见 [signal LineEdit.text_changed] 和 [signal LineEdit." "text_submitted]。" +msgid "Down button icon modulation color, when the button is disabled." +msgstr "向下按钮处于禁用状态时的图标调制颜色。" + +msgid "Down button icon modulation color, when the button is hovered." +msgstr "向下按钮处于悬停状态时的图标调制颜色。" + +msgid "Down button icon modulation color." +msgstr "向下按钮的图标调制颜色。" + +msgid "Down button icon modulation color, when the button is being pressed." +msgstr "向下按钮处于按下状态时的图标调制颜色。" + +msgid "Up button icon modulation color, when the button is disabled." +msgstr "向上按钮处于禁用状态时的图标调制颜色。" + +msgid "Up button icon modulation color, when the button is hovered." +msgstr "向上按钮处于悬停状态时的图标调制颜色。" + +msgid "Up button icon modulation color." +msgstr "向上按钮的图标调制颜色。" + +msgid "Up button icon modulation color, when the button is being pressed." +msgstr "向上按钮处于按下状态时的图标调制颜色。" + +msgid "Vertical separation between the up and down buttons." +msgstr "上下按钮之间的垂直间隔。" + +msgid "" +"Width of the up and down buttons. If smaller than any icon set on the " +"buttons, the respective icon may overlap neighboring elements. If smaller " +"than [code]0[/code], the width is automatically adjusted from the icon size." +msgstr "" +"上下按钮的宽度。如果小于按钮上设置的图标,那么对应的图标就可能与相邻的元素重" +"叠。如果小于 [code]0[/code],那么就会根据图标的大小自动调整宽度。" + +msgid "" +"Width of the horizontal separation between the text input field ([LineEdit]) " +"and the buttons." +msgstr "文本输入框([LineEdit])与按钮之间的水平间隔宽度。" + +msgid "" +"This property exists only for compatibility with older themes. Setting " +"[theme_item buttons_width] to a negative value has the same effect." +msgstr "" +"该属性仅用于兼容旧主题。将 [theme_item buttons_width] 设置为负值具有相同的效" +"果。" + +msgid "" +"If not [code]0[/code], the minimum button width corresponds to the widest of " +"all icons set on those buttons, even if [theme_item buttons_width] is smaller." +msgstr "" +"如果非 [code]0[/code],则最小按钮宽度对应这些按钮所设置的最宽的图标,即便 " +"[theme_item buttons_width] 更小。" + +msgid "" +"Down button icon, displayed in the middle of the down (value-decreasing) " +"button." +msgstr "向下按钮的图标,在下按钮(减小取值)的中间显示。" + +msgid "Down button icon when the button is disabled." +msgstr "向下按钮禁用时的图标。" + +msgid "Down button icon when the button is hovered." +msgstr "向下按钮悬停时的图标。" + +msgid "Down button icon when the button is being pressed." +msgstr "向下按钮按下时的图标。" + +msgid "" +"Up button icon, displayed in the middle of the up (value-increasing) button." +msgstr "向上按钮的图标,在上按钮(增加取值)的中间显示。" + +msgid "Up button icon when the button is disabled." +msgstr "向上按钮禁用时的图标。" + +msgid "Up button icon when the button is hovered." +msgstr "向上按钮悬停时的图标。" + +msgid "Up button icon when the button is being pressed." +msgstr "向上按钮按下时的图标。" + +msgid "" +"Single texture representing both the up and down buttons icons. It is " +"displayed in the middle of the buttons and does not change upon interaction. " +"It is recommended to use individual [theme_item up] and [theme_item down] " +"graphics for better usability. This can also be used as additional decoration " +"between the two buttons." +msgstr "" +"代表上下按钮图标的单个纹理。该纹理显示在按钮中间,交互式不会改变。建议使用单独" +"的 [theme_item up] 和 [theme_item down] 图像,可用性更佳。也可以将其当作两个按" +"钮之间的额外装饰。" + +msgid "Background style of the down button." +msgstr "向下按钮的背景样式。" + +msgid "Background style of the down button when disabled." +msgstr "向下按钮禁用时的背景样式。" + +msgid "Background style of the down button when hovered." +msgstr "向下按钮悬停时的背景样式。" + +msgid "Background style of the down button when being pressed." +msgstr "向下按钮按下时的背景样式。" + +msgid "" +"[StyleBox] drawn in the space occupied by the separation between the input " +"field and the buttons." +msgstr "输入框和按钮之间的间隔区域内绘制的 [StyleBox]。" + +msgid "Background style of the up button." +msgstr "向上按钮的背景样式。" + +msgid "Background style of the up button when disabled." +msgstr "向上按钮禁用时的背景样式。" + +msgid "Background style of the up button when hovered." +msgstr "向上按钮悬停时的背景样式。" + +msgid "Background style of the up button when being pressed." +msgstr "向上按钮按下时的背景样式。" + +msgid "" +"[StyleBox] drawn in the space occupied by the separation between the up and " +"down buttons." +msgstr "上下按钮之间的间隔区域内绘制的 [StyleBox]。" + msgid "" "A container that splits two child controls horizontally or vertically and " "provides a grabber for adjusting the split ratio." @@ -117398,6 +141477,47 @@ msgid "" "possible minimal and maximum values." msgstr "限制 [member split_offset] 值不超出当前可能的最小值和最大值。" +msgid "" +"Returns the drag area [Control]. For example, you can move a pre-configured " +"button into the drag area [Control] so that it rides along with the split " +"bar. Try setting the [Button] anchors to [code]center[/code] prior to the " +"[code]reparent()[/code] call.\n" +"[codeblock]\n" +"$BarnacleButton.reparent($SplitContainer.get_drag_area_control())\n" +"[/codeblock]\n" +"[b]Note:[/b] The drag area [Control] is drawn over the [SplitContainer]'s " +"children, so [CanvasItem] draw objects called from the [Control] and children " +"added to the [Control] will also appear over the [SplitContainer]'s children. " +"Try setting [member Control.mouse_filter] of custom children to [constant " +"Control.MOUSE_FILTER_IGNORE] to prevent blocking the mouse from dragging if " +"desired.\n" +"[b]Warning:[/b] This is a required internal node, removing and freeing it may " +"cause a crash." +msgstr "" +"返回拖拽区域 [Control]。例如你可以把一个预先配置好的按钮放到拖拽区域 " +"[Control] 中,这样这个按钮就会跟随拆分条移动。调用 [code]reparent()[/code] 前" +"请尝试将 [Button] 的锚点设置为 [code]center[/code]。\n" +"[codeblock]\n" +"$BarnacleButton.reparent($SplitContainer.get_drag_area_control())\n" +"[/codeblock]\n" +"[b]注意:[/b]拖拽区域 [Control] 绘制在 [SplitContainer] 的子节点之上,因此 " +"[Control] 调用 [CanvasItem] 绘制方法所绘制的内容和添加至 [Control] 的子节点也" +"会显示在 [SplitContainer] 的子节点之上。如果需要阻止鼠标拖动,请尝试将自定义子" +"节点的 [member Control.mouse_filter] 设置为 [constant Control." +"MOUSE_FILTER_IGNORE]。\n" +"[b]警告:[/b]这是必要的内部节点,将其移除或释放都可能造成崩溃。" + +msgid "" +"Determines the dragger's visibility. See [enum DraggerVisibility] for " +"details. This property does not determine whether dragging is enabled or not. " +"Use [member dragging_enabled] for that." +msgstr "" +"决定拖动器是否可见。详见 [enum DraggerVisibility]。该属性无法决定拖动器是否启" +"用,这一需求请使用 [member dragging_enabled]。" + +msgid "Enables or disables split dragging." +msgstr "启用或禁用拆分拖拽。" + msgid "" "The initial offset of the splitting between the two [Control]s, with [code]0[/" "code] being at the end of the first [Control]." @@ -117414,9 +141534,50 @@ msgstr "" "列。\n" "在使用 [HSplitContainer] 和 [VSplitContainer] 时无法改变。" +msgid "Emitted when the user ends dragging." +msgstr "用户结束拖拽时发出。" + +msgid "Emitted when the user starts dragging." +msgstr "用户开始拖拽时发出。" + msgid "Emitted when the dragger is dragged by user." msgstr "当用户拖动拖动器时发出。" +msgid "" +"The split dragger icon is always visible when [theme_item autohide] is " +"[code]false[/code], otherwise visible only when the cursor hovers it.\n" +"The size of the grabber icon determines the minimum [theme_item separation].\n" +"The dragger icon is automatically hidden if the length of the grabber icon is " +"longer than the split bar." +msgstr "" +"当 [theme_item autohide] 为 [code]false[/code] 时,拆分拖动器始终可见,否则仅" +"在鼠标在拖动器上悬停时可见。\n" +"拖动器图标的大小决定了最小间隔 [theme_item separation]。\n" +"拖动器图标如果比拆分条长,就会自动隐藏。" + +msgid "" +"The split dragger icon is never visible regardless of the value of " +"[theme_item autohide].\n" +"The size of the grabber icon determines the minimum [theme_item separation]." +msgstr "" +"拆分拖动器图标始终不可见,无视 [theme_item autohide] 的值。\n" +"拖动器图标的大小决定了最小间隔 [theme_item separation]。" + +msgid "" +"The split dragger icon is not visible, and the split bar is collapsed to zero " +"thickness." +msgstr "拆分拖动器图标不可见,拆分条粗细折叠为零。" + +msgid "" +"Boolean value. If [code]1[/code] ([code]true[/code]), the grabber will hide " +"automatically when it isn't under the cursor. If [code]0[/code] ([code]false[/" +"code]), it's always visible. The [member dragger_visibility] must be " +"[constant DRAGGER_VISIBLE]." +msgstr "" +"布尔值。如果为 [code]1[/code]([code]true[/code]),则拖动器不在鼠标下方时会自" +"动隐藏。如果为 [code]0[/code]([code]false[/code])则始终可见。[member " +"dragger_visibility] 必须为 [constant DRAGGER_VISIBLE]。" + msgid "The icon used for the grabber drawn in the middle area." msgstr "在中间区域绘制的抓取图标。" @@ -117430,6 +141591,11 @@ msgid "" "is [code]true[/code]." msgstr "[member vertical] 为 [code]true[/code] 时绘制在中间区域的抓取器图标。" +msgid "" +"Determines the background of the split bar if its thickness is greater than " +"zero." +msgstr "决定拆分条厚度大于零时的背景。" + msgid "A spotlight, such as a reflector spotlight or a lantern." msgstr "聚光灯,如反射器聚光灯或灯笼。" @@ -117531,6 +141697,9 @@ msgstr "" "以保留一定的边距。可用于第三人称相机,让其在狭窄空间中朝玩家移动(你可能需要" "在 [SpringArm3D] 的碰撞检查中排除玩家的碰撞体)。" +msgid "Third-person camera with spring arm" +msgstr "使用弹簧臂制作的第三人称相机" + msgid "" "Adds the [PhysicsBody3D] object with the given [RID] to the list of " "[PhysicsBody3D] objects excluded from the collision check." @@ -117596,6 +141765,136 @@ msgstr "" "要了解有关如何执行形状投射或射线投射的更多信息,请参阅 " "[PhysicsDirectSpaceState3D] 文档。" +msgid "" +"A base class of the collision that interacts with [SpringBoneSimulator3D]." +msgstr "与 [SpringBoneSimulator3D] 交互的碰撞的基类。" + +msgid "" +"The offset of the position from [Skeleton3D]'s [member bone] pose position." +msgstr "位置的偏移量,相对于 [Skeleton3D] 的 [member bone] 姿势位置。" + +msgid "" +"The offset of the rotation from [Skeleton3D]'s [member bone] pose rotation." +msgstr "旋转的偏移量,相对于 [Skeleton3D] 的 [member bone] 姿势旋转。" + +msgid "A capsule shape collision that interacts with [SpringBoneSimulator3D]." +msgstr "与 [SpringBoneSimulator3D] 交互的胶囊形状碰撞体。" + +msgid "Clears all settings." +msgstr "清空所有设置。" + +msgid "Returns the center bone index of the bone chain." +msgstr "返回骨骼链中间骨骼的索引。" + +msgid "Returns the center bone name of the bone chain." +msgstr "返回骨骼链中间骨骼的名称。" + +msgid "Returns the end bone index of the bone chain." +msgstr "返回骨骼链末尾骨骼的索引。" + +msgid "Returns the end bone name of the bone chain." +msgstr "返回骨骼链末尾骨骼的名称。" + +msgid "" +"If sets [param enabled] to [code]true[/code], the all child " +"[SpringBoneCollision3D]s are collided and [method set_exclude_collision_path] " +"is enabled as an exclusion list at [param index] in the settings.\n" +"If sets [param enabled] to [code]false[/code], you need to manually register " +"all valid collisions with [method set_collision_path]." +msgstr "" +"如果将 [param enabled] 设置为 [code]true[/code],则所有子级 " +"[SpringBoneCollision3D] 都会发生碰撞,[method set_exclude_collision_path] 在设" +"置中的 [param index] 处启用作为排除列表。\n" +"如果将 [param enabled] 设置为 [code]false[/code],则需要手动使用 [method " +"set_collision_path] 注册所有有效的碰撞。" + +msgid "" +"If [param enabled] is [code]true[/code], the end bone is extended to have the " +"tail.\n" +"The extended tail config is allocated to the last element in the joint list.\n" +"In other words, if you set [param enabled] is [code]false[/code], the config " +"of last element in the joint list has no effect in the simulated result." +msgstr "" +"如果 [param enabled] 为 [code]true[/code],则会延伸末端骨骼形成尾部。\n" +"扩展的尾部配置会分配给关节列表中的最后一个元素。\n" +"换句话说,如果将 [param enabled] 设置为 [code]false[/code],则关节列表中最后一" +"个元素的配置在模拟结果中将没有效果。" + +msgid "" +"Sets the gravity amount of the bone chain. This value is not an acceleration, " +"but a constant velocity of movement in [method set_gravity_direction].\n" +"If [param gravity] is not [code]0[/code], the modified pose will not return " +"to the original pose since it is always affected by gravity.\n" +"The value is scaled by [method set_gravity_damping_curve] and cached in each " +"joint setting in the joint list." +msgstr "" +"设置骨骼链的重力强度。该值不是加速度,而是 [method set_gravity_direction] 的恒" +"定运动速度。\n" +"如果 [param gravity] 不为 [code]0[/code],则修改后的姿势将不会返回到原始姿势," +"因为它始终受到重力的影响。\n" +"该值会被 [method set_gravity_damping_curve] 缩放,并缓存到关节列表中的每个关节" +"设置中。" + +msgid "Sets the gravity amount damping curve of the bone chain." +msgstr "设置骨骼链的重力强度阻尼曲线。" + +msgid "" +"Sets the gravity direction of the bone chain. This value is internally " +"normalized and then multiplied by [method set_gravity].\n" +"The value is cached in each joint setting in the joint list." +msgstr "" +"设置骨骼链的重力方向。内部会对该值进行归一化,然后乘以 [method " +"set_gravity]。\n" +"该值会被缓存到关节列表中的每个关节设置中。" + +msgid "" +"If [param enabled] is [code]true[/code], the config can be edited " +"individually for each joint." +msgstr "" +"如果 [param enabled] 为 [code]true[/code],则可以为每个关节单独编辑配置。" + +msgid "Sets the root bone index of the bone chain." +msgstr "设置骨骼链中根骨骼的索引。" + +msgid "Sets the root bone name of the bone chain." +msgstr "设置骨骼链中根骨骼的名称。" + +msgid "The number of settings." +msgstr "设置的数量。" + +msgid "Enumerated value for the axis from a parent bone to the child bone." +msgstr "枚举值,表示从父骨骼指向子骨骼的轴。" + +msgid "The world origin is defined as center." +msgstr "将世界原点定义为中心。" + +msgid "" +"The [Node3D] specified by [method set_center_node] is defined as center.\n" +"If [Node3D] is not found, the parent [Skeleton3D] is treated as center." +msgstr "" +"将 [method set_center_node] 指定的 [Node3D] 定义为中心。\n" +"如果未找到 [Node3D],则将父 [Skeleton3D] 作为中心。" + +msgid "" +"The bone pose origin of the parent [Skeleton3D] specified by [method " +"set_center_bone] is defined as center.\n" +"If [Node3D] is not found, the parent [Skeleton3D] is treated as center." +msgstr "" +"将 [method set_center_bone] 指定的父 [Skeleton3D] 的骨骼姿势原点定义为中心。\n" +"如果未找到 [Node3D],则将父 [Skeleton3D] 作为中心。" + +msgid "Enumerated value for the rotation of the X axis." +msgstr "枚举值,表示 X 轴的旋转。" + +msgid "Enumerated value for the rotation of the Y axis." +msgstr "枚举值,表示 Y 轴的旋转。" + +msgid "Enumerated value for the rotation of the Z axis." +msgstr "枚举值,表示 Z 轴的旋转。" + +msgid "Enumerated value for the unconstrained rotation." +msgstr "枚举值,表示无约束的旋转。" + msgid "General-purpose sprite node." msgstr "通用精灵节点。" @@ -117606,6 +141905,63 @@ msgstr "" "显示 2D 纹理的节点。显示的纹理可以是较大图集纹理中的某个区域,也可以是精灵表动" "画中的某一帧。" +msgid "" +"Returns a [Rect2] representing the Sprite2D's boundary in local coordinates.\n" +"[b]Example:[/b] Detect if the Sprite2D was clicked:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _input(event):\n" +" if event is InputEventMouseButton and event.pressed and event." +"button_index == MOUSE_BUTTON_LEFT:\n" +" if get_rect().has_point(to_local(event.position)):\n" +" print(\"A click!\")\n" +"[/gdscript]\n" +"[csharp]\n" +"public override void _Input(InputEvent @event)\n" +"{\n" +" if (@event is InputEventMouseButton inputEventMouse)\n" +" {\n" +" if (inputEventMouse.Pressed && inputEventMouse.ButtonIndex == " +"MouseButton.Left)\n" +" {\n" +" if (GetRect().HasPoint(ToLocal(inputEventMouse.Position)))\n" +" {\n" +" GD.Print(\"A click!\");\n" +" }\n" +" }\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"返回代表该 Sprite2D 边界的 [Rect2],使用局部坐标。\n" +"[b]示例:[/b]检测该 Sprite2D 是否被点击:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _input(event):\n" +" if event is InputEventMouseButton and event.pressed and event." +"button_index == MOUSE_BUTTON_LEFT:\n" +" if get_rect().has_point(to_local(event.position)):\n" +" print(\"我点!\")\n" +"[/gdscript]\n" +"[csharp]\n" +"public override void _Input(InputEvent @event)\n" +"{\n" +" if (@event is InputEventMouseButton inputEventMouse)\n" +" {\n" +" if (inputEventMouse.Pressed && inputEventMouse.ButtonIndex == " +"MouseButton.Left)\n" +" {\n" +" if (GetRect().HasPoint(ToLocal(inputEventMouse.Position)))\n" +" {\n" +" GD.Print(\"我点!\");\n" +" }\n" +" }\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Returns [code]true[/code], if the pixel at the given position is opaque and " "[code]false[/code] in other case. The position is in local coordinates.\n" @@ -117667,6 +142023,14 @@ msgstr "" "如果为 [code]true[/code],则从较大的图集纹理中剪切纹理。见 [member " "region_rect]。" +msgid "" +"If [code]true[/code], the area outside of the [member region_rect] is clipped " +"to avoid bleeding of the surrounding texture pixels. [member region_enabled] " +"must be [code]true[/code]." +msgstr "" +"如果为 [code]true[/code],则会裁剪 [member region_rect] 之外的区域,避免周围纹" +"理像素的出血现象。[member region_enabled] 必须为 [code]true[/code]。" + msgid "" "The region of the atlas texture to display. [member region_enabled] must be " "[code]true[/code]." @@ -117915,6 +142279,14 @@ msgid "" "created." msgstr "移除所有动画。将创建名为 [code]default[/code] 的空动画。" +msgid "" +"Duplicates the animation [param anim_from] to a new animation named [param " +"anim_to]. Fails if [param anim_to] already exists, or if [param anim_from] " +"does not exist." +msgstr "" +"将动画 [param anim_from] 复制为名叫 [param anim_to] 的新动画。如果 [param " +"anim_to] 已存在或 [param anim_from] 不存在则会失败。" + msgid "" "Returns [code]true[/code] if the given animation is configured to loop when " "it finishes playing. Otherwise, returns [code]false[/code]." @@ -118160,6 +142532,9 @@ msgstr "从流中获取一个双精度浮点数。" msgid "Gets a single-precision float from the stream." msgstr "从流中获取一个单精度浮点数。" +msgid "Gets a half-precision float from the stream." +msgstr "从流中获取一个半精度浮点数。" + msgid "" "Returns a chunk data with the received bytes. The number of bytes to be " "received can be requested in the \"bytes\" argument. If not enough bytes are " @@ -118239,6 +142614,9 @@ msgstr "向流中放入一个双精度浮点数。" msgid "Puts a single-precision float into the stream." msgstr "向流中放入一个单精度浮点数。" +msgid "Puts a half-precision float into the stream." +msgstr "向流中放入一个半精度浮点数。" + msgid "" "Sends a chunk of data through the connection. If all the data could not be " "sent at once, only part of it will. This function returns two values, an " @@ -118572,6 +142950,37 @@ msgstr "错误状态,表示主机的 TLS 证书域名与请求验证的域名 msgid "A built-in type for strings." msgstr "字符串内置类型。" +msgid "" +"This is the built-in string Variant type (and the one used by GDScript). " +"Strings may contain any number of Unicode characters, and expose methods " +"useful for manipulating and generating strings. Strings are reference-counted " +"and use a copy-on-write approach (every modification to a string returns a " +"new [String]), so passing them around is cheap in resources.\n" +"Some string methods have corresponding variations. Variations suffixed with " +"[code]n[/code] ([method countn], [method findn], [method replacen], etc.) are " +"[b]case-insensitive[/b] (they make no distinction between uppercase and " +"lowercase letters). Method variations prefixed with [code]r[/code] ([method " +"rfind], [method rsplit], etc.) are reversed, and start from the end of the " +"string, instead of the beginning.\n" +"To convert any [Variant] to or from a string, see [method @GlobalScope.str], " +"[method @GlobalScope.str_to_var], and [method @GlobalScope.var_to_str].\n" +"[b]Note:[/b] In a boolean context, a string will evaluate to [code]false[/" +"code] if it is empty ([code]\"\"[/code]). Otherwise, a string will always " +"evaluate to [code]true[/code]." +msgstr "" +"这是内置的字符串 Variant 类型(GDScript 使用的就是这个类型)。字符串中可以包含" +"任意数量的 Unicode 字符,暴露的方法可用于字符串的操作和生成。字符串有引用计" +"数,使用写时复制技术(每次对字符串的修改都会返回新的 [String]),所以传递字符" +"串的资源损耗很小。\n" +"部分字符串方法有对应的变体。后缀 [code]n[/code] 的变体([method countn]、" +"[method findn]、[method replacen] 等)[b]大小写不敏感[/b](不区分大写字符和小" +"写字符)。前缀 [code]r[/code] 的方法变体([method rfind]、[method rsplit] 等)" +"是逆序的,会从字符串末尾开始,而不是从开头开始。\n" +"任意 [Variant] 和字符串之间的相互转换见 [method @GlobalScope.str]、[method " +"@GlobalScope.str_to_var]、[method @GlobalScope.var_to_str]。\n" +"[b]注意:[/b]在布尔语境下,空字符串([code]\"\"[/code])的求值结果为 " +"[code]false[/code]。否则字符串的求值结果始终为 [code]true[/code]。" + msgid "GDScript format strings" msgstr "GDScript 格式字符串" @@ -118733,6 +143142,39 @@ msgstr "" "print(String.chr(129302)) # 输出 \"🤖\"(机器人脸 Emoji)\n" "[/codeblock]" +msgid "" +"Returns [code]true[/code] if the string contains [param what]. In GDScript, " +"this corresponds to the [code]in[/code] operator.\n" +"[codeblocks]\n" +"[gdscript]\n" +"print(\"Node\".contains(\"de\")) # Prints true\n" +"print(\"team\".contains(\"I\")) # Prints false\n" +"print(\"I\" in \"team\") # Prints false\n" +"[/gdscript]\n" +"[csharp]\n" +"GD.Print(\"Node\".Contains(\"de\")); // Prints True\n" +"GD.Print(\"team\".Contains(\"I\")); // Prints False\n" +"[/csharp]\n" +"[/codeblocks]\n" +"If you need to know where [param what] is within the string, use [method " +"find]. See also [method containsn]." +msgstr "" +"如果该字符串包含 [param what],则返回 [code]true[/code]。在 GDScript 中对应 " +"[code]in[/code] 运算符。\n" +"[codeblocks]\n" +"[gdscript]\n" +"print(\"Node\".contains(\"de\")) # 输出 true\n" +"print(\"team\".contains(\"I\")) # 输出 false\n" +"print(\"I\" in \"team\") # 输出 false\n" +"[/gdscript]\n" +"[csharp]\n" +"GD.Print(\"Node\".Contains(\"de\")); // 输出 True\n" +"GD.Print(\"team\".Contains(\"I\")); // 输出 False\n" +"[/csharp]\n" +"[/codeblocks]\n" +"如果想要知道 [param what] 在该字符串中的位置,请使用 [method find]。另见 " +"[method containsn]。" + msgid "" "Returns [code]true[/code] if the string contains [param what], [b]ignoring " "case[/b].\n" @@ -118870,6 +143312,102 @@ msgstr "" "在时则为 [code]-1[/code]。搜索的起点可以用 [param from] 指定,终点为该字符串的" "末尾。" +msgid "" +"Formats the string by replacing all occurrences of [param placeholder] with " +"the elements of [param values].\n" +"[param values] can be a [Dictionary], an [Array], or an [Object]. Any " +"underscores in [param placeholder] will be replaced with the corresponding " +"keys in advance. Array elements use their index as keys.\n" +"[codeblock]\n" +"# Prints \"Waiting for Godot is a play by Samuel Beckett, and Godot Engine is " +"named after it.\"\n" +"var use_array_values = \"Waiting for {0} is a play by {1}, and {0} Engine is " +"named after it.\"\n" +"print(use_array_values.format([\"Godot\", \"Samuel Beckett\"]))\n" +"\n" +"# Prints \"User 42 is Godot.\"\n" +"print(\"User {id} is {name}.\".format({\"id\": 42, \"name\": \"Godot\"}))\n" +"[/codeblock]\n" +"Some additional handling is performed when [param values] is an [Array]. If " +"[param placeholder] does not contain an underscore, the elements of the " +"[param values] array will be used to replace one occurrence of the " +"placeholder in order; If an element of [param values] is another 2-element " +"array, it'll be interpreted as a key-value pair.\n" +"[codeblock]\n" +"# Prints \"User 42 is Godot.\"\n" +"print(\"User {} is {}.\".format([42, \"Godot\"], \"{}\"))\n" +"print(\"User {id} is {name}.\".format([[\"id\", 42], [\"name\", " +"\"Godot\"]]))\n" +"[/codeblock]\n" +"When passing an [Object], the property names from [method Object." +"get_property_list] are used as keys.\n" +"[codeblock]\n" +"# Prints \"Visible true, position (0, 0)\"\n" +"var node = Node2D.new()\n" +"print(\"Visible {visible}, position {position}\".format(node))\n" +"[/codeblock]\n" +"See also the [url=$DOCS_URL/tutorials/scripting/gdscript/" +"gdscript_format_string.html]GDScript format string[/url] tutorial.\n" +"[b]Note:[/b] Each replacement is done sequentially for each element of [param " +"values], [b]not[/b] all at once. This means that if any element is inserted " +"and it contains another placeholder, it may be changed by the next " +"replacement. While this can be very useful, it often causes unexpected " +"results. If not necessary, make sure [param values]'s elements do not contain " +"placeholders.\n" +"[codeblock]\n" +"print(\"{0} {1}\".format([\"{1}\", \"x\"])) # Prints \"x x\"\n" +"print(\"{0} {1}\".format([\"x\", \"{0}\"])) # Prints \"x {0}\"\n" +"print(\"{a} {b}\".format({\"a\": \"{b}\", \"b\": \"c\"})) # Prints \"c c\"\n" +"print(\"{a} {b}\".format({\"b\": \"c\", \"a\": \"{b}\"})) # Prints \"{b} c\"\n" +"[/codeblock]\n" +"[b]Note:[/b] In C#, it's recommended to [url=https://learn.microsoft.com/en-" +"us/dotnet/csharp/language-reference/tokens/interpolated]interpolate strings " +"with \"$\"[/url], instead." +msgstr "" +"对字符串进行格式化,会将其中出现的所有 [param placeholder] 都替换为 [param " +"values] 中的元素。\n" +"[param values] 可以是 [Dictionary]、[Array] 或 [Object]。[param placeholder] " +"中的下划线都会事先替换为对应的键。数组元素使用对应的索引作为键。\n" +"[codeblock]\n" +"# 输出“Waiting for Godot 是 Samuel Beckett 的戏剧,Godot 引擎由此得名。”\n" +"var use_array_values = \"Waiting for {0} 是 {1} 的戏剧,{0} 引擎由此得名。\"\n" +"print(use_array_values.format([\"Godot\", \"Samuel Beckett\"]))\n" +"\n" +"# 输出“第 42 号用户是 Godot。”\n" +"print(\"第 {id} 号用户是 {name}。\".format({\"id\": 42, \"name\": " +"\"Godot\"}))\n" +"[/codeblock]\n" +"当 [param values] 为 [Array] 时还会执行一些额外的处理。如果 [param " +"placeholder] 不包含下划线,则 [param values] 数组的元素将用于按顺序替换出现的" +"占位符;如果 [param values] 的元素也是包含两个元素的数组,则会被解释为键值" +"对。\n" +"[codeblock]\n" +"# 输出“第 42 号用户是 Godot。”\n" +"print(\"第 {} 号用户是 {}。\".format([42, \"Godot\"], \"{}\"))\n" +"print(\"第 {id} 号用户是 {name}。\".format([[\"id\", 42], [\"name\", " +"\"Godot\"]]))\n" +"[/codeblock]\n" +"传入 [Object] 时,会将 [method Object.get_property_list] 中的属性名称用作" +"键。\n" +"[codeblock]\n" +"# 输出“可见 true,位置 (0, 0)”\n" +"var node = Node2D.new()\n" +"print(\"可见 {visible},位置 {position}\".format(node))\n" +"[/codeblock]\n" +"另见 [url=$DOCS_URL/tutorials/scripting/gdscript/gdscript_format_string." +"html]GDScript 格式化字符串[/url]教程。\n" +"[b]注意:[/b]占位符的替换是依次进行的,[b]并非[/b]同时完成。因此插入的元素中如" +"果包含其他占位符,就可能在下一次替换时发生改变。这是一把双刃剑,常会导致预料之" +"外的结果。除非必要,请确保 [param values] 的元素中不包含占位符。\n" +"[codeblock]\n" +"print(\"{0} {1}\".format([\"{1}\", \"x\"])) # 输出“x x”\n" +"print(\"{0} {1}\".format([\"x\", \"{0}\"])) # 输出“x {0}”\n" +"print(\"{a} {b}\".format({\"a\": \"{b}\", \"b\": \"c\"})) # 输出“c c”\n" +"print(\"{a} {b}\".format({\"b\": \"c\", \"a\": \"{b}\"})) # 输出“{b} c”\n" +"[/codeblock]\n" +"[b]注意:[/b]在 C# 中推荐改为[url=https://learn.microsoft.com/en-us/dotnet/" +"csharp/language-reference/tokens/interpolated]使用“$”插入字符串[/url]。" + msgid "" "If the string is a valid file path, returns the base directory name.\n" "[codeblock]\n" @@ -118937,6 +143475,24 @@ msgstr "" "var file = \"/path/to/icon.png\".get_file() # file 为 \"icon.png\"\n" "[/codeblock]" +msgid "" +"Splits the string using a [param delimiter] and returns the substring at " +"index [param slice]. Returns the original string if [param delimiter] does " +"not occur in the string. Returns an empty string if the [param slice] does " +"not exist.\n" +"This is faster than [method split], if you only need one substring.\n" +"[codeblock]\n" +"print(\"i/am/example/hi\".get_slice(\"/\", 2)) # Prints \"example\"\n" +"[/codeblock]" +msgstr "" +"使用分隔符 [param delimiter] 拆分该字符串,返回索引为 [param slice] 的子串。如" +"果字符串中不存在 [param delimiter] 则返回原字符串。如果 [param slice] 不存在则" +"返回空字符串。\n" +"只需要一个子串时这个方法比 [method split] 快。\n" +"[codeblock]\n" +"print(\"i/am/example/hi\".get_slice(\"/\", 2)) # 输出“example”\n" +"[/codeblock]" + msgid "" "Returns the total number of slices when the string is split with the given " "[param delimiter] (see [method split])." @@ -119116,6 +143672,28 @@ msgstr "" "如果这个字符串中的所有字符都能在 [param text] 中按照原始顺序找到,[b]忽略大小" "写[/b],则返回 [code]true[/code]。" +msgid "" +"Returns [code]true[/code] if this string is a valid ASCII identifier. A valid " +"ASCII identifier may contain only letters, digits, and underscores ([code]_[/" +"code]), and the first character may not be a digit.\n" +"[codeblock]\n" +"print(\"node_2d\".is_valid_ascii_identifier()) # Prints true\n" +"print(\"TYPE_FLOAT\".is_valid_ascii_identifier()) # Prints true\n" +"print(\"1st_method\".is_valid_ascii_identifier()) # Prints false\n" +"print(\"MyMethod#2\".is_valid_ascii_identifier()) # Prints false\n" +"[/codeblock]\n" +"See also [method is_valid_unicode_identifier]." +msgstr "" +"如果该字符串为有效的 ASCII 标识符,则返回 [code]true[/code]。有效的 ASCII 标识" +"符仅可以包含字母、数字和下划线([code]_[/code]),第一个字符不能为数字。\n" +"[codeblock]\n" +"print(\"node_2d\".is_valid_identifier()) # 输出 true\n" +"print(\"TYPE_FLOAT\".is_valid_identifier()) # 输出 true\n" +"print(\"1st_method\".is_valid_identifier()) # 输出 false\n" +"print(\"MyMethod#2\".is_valid_identifier()) # 输出 false\n" +"[/codeblock]\n" +"另见 [method is_valid_unicode_identifier]。" + msgid "" "Returns [code]true[/code] if this string does not contain characters that are " "not allowed in file names ([code]:[/code] [code]/[/code] [code]\\[/code] " @@ -119192,6 +143770,9 @@ msgstr "" "is_valid_hex_number]),也可以带有井号前缀([code]#[/code])。名称、" "[code]hsl()[/code] 等其他 HTML 颜色标记法无效。另见 [method Color.html]。" +msgid "Use [method is_valid_ascii_identifier] instead." +msgstr "请改用 [method is_valid_ascii_identifier]。" + msgid "" "Returns [code]true[/code] if this string is a valid identifier. A valid " "identifier may contain only letters, digits and underscores ([code]_[/code]), " @@ -119246,6 +143827,81 @@ msgstr "" "ffff\"[/code] 等[url=https://zh.wikipedia.org/wiki/" "%E4%BF%9D%E7%95%99IP%E5%9C%B0%E5%9D%80]保留 IP 地址[/url]是有效的。" +msgid "" +"Returns [code]true[/code] if this string is a valid Unicode identifier.\n" +"A valid Unicode identifier must begin with a Unicode character of class " +"[code]XID_Start[/code] or [code]\"_\"[/code], and may contain Unicode " +"characters of class [code]XID_Continue[/code] in the other positions.\n" +"[codeblock]\n" +"print(\"node_2d\".is_valid_unicode_identifier()) # Prints true\n" +"print(\"1st_method\".is_valid_unicode_identifier()) # Prints false\n" +"print(\"MyMethod#2\".is_valid_unicode_identifier()) # Prints false\n" +"print(\"állóképesség\".is_valid_unicode_identifier()) # Prints true\n" +"print(\"выносливость\".is_valid_unicode_identifier()) # Prints true\n" +"print(\"体力\".is_valid_unicode_identifier()) # Prints true\n" +"[/codeblock]\n" +"See also [method is_valid_ascii_identifier].\n" +"[b]Note:[/b] This method checks identifiers the same way as GDScript. See " +"[method TextServer.is_valid_identifier] for more advanced checks." +msgstr "" +"如果该字符串是有效的 Unicode 标识符,则返回 [code]true[/code]。\n" +"有效的 Unicode 标识符必须使用 [code]XID_Start[/code] 类的 Unicode 字符或 " +"[code]\"_\"[/code] 开头,其他位置可以包含 [code]XID_Continue[/code] 类的 " +"Unicode 字符。\n" +"[codeblock]\n" +"print(\"node_2d\".is_valid_unicode_identifier()) # 输出 true\n" +"print(\"1st_method\".is_valid_unicode_identifier()) # 输出 false\n" +"print(\"MyMethod#2\".is_valid_unicode_identifier()) # 输出 false\n" +"print(\"állóképesség\".is_valid_unicode_identifier()) # 输出 true\n" +"print(\"выносливость\".is_valid_unicode_identifier()) # 输出 true\n" +"print(\"体力\".is_valid_unicode_identifier()) # 输出 true\n" +"[/codeblock]\n" +"另见 [method is_valid_ascii_identifier]。\n" +"[b]注意:[/b]该方法检查标识符的规则与 GDScript 相同。使用更多高级规则见 " +"[method TextServer.is_valid_identifier]。" + +msgid "" +"Returns the concatenation of [param parts]' elements, with each element " +"separated by the string calling this method. This method is the opposite of " +"[method split].\n" +"[codeblocks]\n" +"[gdscript]\n" +"var fruits = [\"Apple\", \"Orange\", \"Pear\", \"Kiwi\"]\n" +"\n" +"print(\", \".join(fruits)) # Prints \"Apple, Orange, Pear, Kiwi\"\n" +"print(\"---\".join(fruits)) # Prints \"Apple---Orange---Pear---Kiwi\"\n" +"[/gdscript]\n" +"[csharp]\n" +"string[] fruits = [\"Apple\", \"Orange\", \"Pear\", \"Kiwi\"];\n" +"\n" +"// In C#, this method is static.\n" +"GD.Print(string.Join(\", \", fruits)); // Prints \"Apple, Orange, Pear, " +"Kiwi\"\n" +"GD.Print(string.Join(\"---\", fruits)); // Prints \"Apple---Orange---Pear---" +"Kiwi\"\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"返回将 [param parts] 中的元素连接组成的字符串,元素间使用调用该方法的字符串进" +"行分隔。该方法和 [method split] 相反。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var fruits = [\"Apple\", \"Orange\", \"Pear\", \"Kiwi\"]\n" +"\n" +"print(\", \".join(fruits)) # 输出 \"Apple, Orange, Pear, Kiwi\"\n" +"print(\"---\".join(fruits)) # 输出 \"Apple---Orange---Pear---Kiwi\"\n" +"[/gdscript]\n" +"[csharp]\n" +"string[] fruits = [\"Apple\", \"Orange\", \"Pear\", \"Kiwi\"];\n" +"\n" +"// 这个方法在 C# 中是静态的。\n" +"GD.Print(string.Join(\", \", fruits)); // 输出 \"Apple, Orange, Pear, " +"Kiwi\"\n" +"GD.Print(string.Join(\"---\", fruits)); // 输出 \"Apple---Orange---Pear---" +"Kiwi\"\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Returns a copy of the string with special characters escaped using the JSON " "standard. Because it closely matches the C standard, it is possible to use " @@ -119420,6 +144076,48 @@ msgstr "" "[method casecmp_to]、[method filenocasecmp_to] 和 [method " "naturalnocasecmp_to]。" +msgid "" +"Converts a [float] to a string representation of a decimal number, with the " +"number of decimal places specified in [param decimals].\n" +"If [param decimals] is [code]-1[/code] as by default, the string " +"representation may only have up to 14 significant digits, with digits before " +"the decimal point having priority over digits after.\n" +"Trailing zeros are not included in the string. The last digit is rounded, not " +"truncated.\n" +"[codeblock]\n" +"String.num(3.141593) # Returns \"3.141593\"\n" +"String.num(3.141593, 3) # Returns \"3.142\"\n" +"String.num(3.14159300) # Returns \"3.141593\"\n" +"\n" +"# Here, the last digit will be rounded up,\n" +"# which reduces the total digit count, since trailing zeros are removed:\n" +"String.num(42.129999, 5) # Returns \"42.13\"\n" +"\n" +"# If `decimals` is not specified, the maximum number of significant digits is " +"14:\n" +"String.num(-0.0000012345432123454321) # Returns \"-0.00000123454321\"\n" +"String.num(-10000.0000012345432123454321) # Returns \"-10000.0000012345\"\n" +"[/codeblock]" +msgstr "" +"将 [float] 转换为十进制小数的字符串表示,小数点位数由 [param decimals] 指" +"定。\n" +"如果 [param decimals] 为默认的 [code]-1[/code],该字符串表示可能最多只有 14 位" +"有效数字,小数点前的数字优先于小数点后的数字。\n" +"该字符串中不包含后缀的零。最后一位数字会四舍五入,而不是截断。\n" +"[codeblock]\n" +"String.num(3.141593) # 返回 \"3.141593\"\n" +"String.num(3.141593, 3) # 返回 \"3.142\"\n" +"String.num(3.14159300) # 返回 \"3.141593\"\n" +"\n" +"# 此处的最后一位数字会进位,\n" +"# 数字位数会减少,因为后缀的零会被移除:\n" +"String.num(42.129999, 5) # 返回 \"42.13\"\n" +"\n" +"# 如果没有指定 `decimals`,最大有效位数为 14:\n" +"String.num(-0.0000012345432123454321) # 返回 \"-0.00000123454321\"\n" +"String.num(-10000.0000012345432123454321) # 返回 \"-10000.0000012345\"\n" +"[/codeblock]" + msgid "" "Converts the given [param number] to a string representation, with the given " "[param base].\n" @@ -119585,6 +144283,51 @@ msgstr "" "必要时在该字符串的右侧添加若干 [param character] 字符,使其长度至少为 [param " "min_length]。另见 [method lpad]。" +msgid "" +"Splits the string using a [param delimiter] and returns an array of the " +"substrings, starting from the end of the string. The splits in the returned " +"array appear in the same order as the original string. If [param delimiter] " +"is an empty string, each substring will be a single character.\n" +"If [param allow_empty] is [code]false[/code], empty strings between adjacent " +"delimiters are excluded from the array.\n" +"If [param maxsplit] is greater than [code]0[/code], the number of splits may " +"not exceed [param maxsplit]. By default, the entire string is split, which is " +"mostly identical to [method split].\n" +"[codeblocks]\n" +"[gdscript]\n" +"var some_string = \"One,Two,Three,Four\"\n" +"var some_array = some_string.rsplit(\",\", true, 1)\n" +"\n" +"print(some_array.size()) # Prints 2\n" +"print(some_array[0]) # Prints \"One,Two,Three\"\n" +"print(some_array[1]) # Prints \"Four\"\n" +"[/gdscript]\n" +"[csharp]\n" +"// In C#, there is no String.RSplit() method.\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"使用分隔符 [param delimiter] 将该字符串从末尾开始进行拆分,返回子字符串数组。" +"返回的数组中,每部分的出现顺序与它们在原字符串中的出现顺序一致。如果 [param " +"delimiter] 为空,则子串为单个字符。\n" +"如果 [param allow_empty] 为 [code]false[/code],数组中会排除相邻分隔符之间的空" +"字符串。\n" +"如果 [param maxsplit] 大于 [code]0[/code],则拆分次数不能超过 [param " +"maxsplit]。默认拆分整个字符串,基本与 [method split] 一致。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var some_string = \"One,Two,Three,Four\"\n" +"var some_array = some_string.rsplit(\",\", true, 1)\n" +"\n" +"print(some_array.size()) # 输出 2\n" +"print(some_array[0]) # 输出“One,Two,Three”\n" +"print(some_array[1]) # 输出“Four”\n" +"[/gdscript]\n" +"[csharp]\n" +"// C# 中没有 String.RSplit() 方法。\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Removes a set of characters defined in [param chars] from the string's end. " "See also [method lstrip].\n" @@ -119623,6 +144366,28 @@ msgstr "" "返回该字符串的 [url=https://zh.wikipedia.org/wiki/SHA-2]SHA-256[/url] 哈希,类" "型为 [String]。" +msgid "" +"Returns the similarity index ([url=https://en.wikipedia.org/wiki/" +"S%C3%B8rensen%E2%80%93Dice_coefficient]Sørensen-Dice coefficient[/url]) of " +"this string compared to another. A result of [code]1.0[/code] means totally " +"similar, while [code]0.0[/code] means totally dissimilar.\n" +"[codeblock]\n" +"print(\"ABC123\".similarity(\"ABC123\")) # Prints 1.0\n" +"print(\"ABC123\".similarity(\"XYZ456\")) # Prints 0.0\n" +"print(\"ABC123\".similarity(\"123ABC\")) # Prints 0.8\n" +"print(\"ABC123\".similarity(\"abc123\")) # Prints 0.4\n" +"[/codeblock]" +msgstr "" +"返回该字符串与另一个字符串的相似指数([url=https://zh.wikipedia.org/wiki/" +"Dice%E7%B3%BB%E6%95%B0]索伦森-戴斯系数[/url])。结果为 [code]1.0[/code] 表示完" +"全相似,[code]0.0[/code] 表示完全不相似。\n" +"[codeblock]\n" +"print(\"ABC123\".similarity(\"ABC123\")) # 输出 1.0\n" +"print(\"ABC123\".similarity(\"XYZ456\")) # 输出 0.0\n" +"print(\"ABC123\".similarity(\"123ABC\")) # 输出 0.8\n" +"print(\"ABC123\".similarity(\"abc123\")) # 输出 0.4\n" +"[/codeblock]" + msgid "" "If the string is a valid file path, converts the string into a canonical " "path. This is the shortest possible path, without [code]\"./\"[/code], and " @@ -119640,6 +144405,63 @@ msgstr "" "print(simple_path) # 输出 \"path/file\"\n" "[/codeblock]" +msgid "" +"Splits the string using a [param delimiter] and returns an array of the " +"substrings. If [param delimiter] is an empty string, each substring will be a " +"single character. This method is the opposite of [method join].\n" +"If [param allow_empty] is [code]false[/code], empty strings between adjacent " +"delimiters are excluded from the array.\n" +"If [param maxsplit] is greater than [code]0[/code], the number of splits may " +"not exceed [param maxsplit]. By default, the entire string is split.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var some_array = \"One,Two,Three,Four\".split(\",\", true, 2)\n" +"\n" +"print(some_array.size()) # Prints 3\n" +"print(some_array[0]) # Prints \"One\"\n" +"print(some_array[1]) # Prints \"Two\"\n" +"print(some_array[2]) # Prints \"Three,Four\"\n" +"[/gdscript]\n" +"[csharp]\n" +"// C#'s `Split()` does not support the `maxsplit` parameter.\n" +"var someArray = \"One,Two,Three\".Split(\",\");\n" +"\n" +"GD.Print(someArray[0]); // Prints \"One\"\n" +"GD.Print(someArray[1]); // Prints \"Two\"\n" +"GD.Print(someArray[2]); // Prints \"Three\"\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] If you only need one substring from the array, consider using " +"[method get_slice] which is faster. If you need to split strings with more " +"complex rules, use the [RegEx] class instead." +msgstr "" +"使用分隔符 [param delimiter] 将该字符串进行拆分,返回子字符串数组。如果 " +"[param delimiter] 为空,则子串为单个字符。这个方法与 [method join] 相对。\n" +"如果 [param allow_empty] 为 [code]false[/code],数组中会排除相邻分隔符之间的空" +"字符串。\n" +"如果 [param maxsplit] 大于 [code]0[/code],则拆分次数不能超过 [param " +"maxsplit]。默认拆分整个字符串。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var some_array = \"One,Two,Three,Four\".split(\",\", true, 2)\n" +"\n" +"print(some_array.size()) # 输出 3\n" +"print(some_array[0]) # 输出“One”\n" +"print(some_array[1]) # 输出“Two”\n" +"print(some_array[2]) # 输出“Three,Four”\n" +"[/gdscript]\n" +"[csharp]\n" +"// C# 的 `Split()` 不支持 `maxsplit` 参数。\n" +"var someArray = \"One,Two,Three\".Split(\",\");\n" +"\n" +"GD.Print(someArray[0]); // 输出“One”\n" +"GD.Print(someArray[1]); // 输出“Two”\n" +"GD.Print(someArray[2]); // 输出“Three,Four”\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b]如果你只需要数组中的某一个子串,请考虑使用更快的 [method " +"get_slice]。如果你需要用更复杂的规则来拆分字符串,请改用 [RegEx] 类。" + msgid "" "Splits the string into floats by using a [param delimiter] and returns a " "[PackedFloat64Array].\n" @@ -120066,6 +144888,48 @@ msgstr "" msgid "A built-in type for unique strings." msgstr "唯一字符串内置类型。" +msgid "" +"[StringName]s are immutable strings designed for general-purpose " +"representation of unique names (also called \"string interning\"). Two " +"[StringName]s with the same value are the same object. Comparing them is " +"extremely fast compared to regular [String]s.\n" +"You will usually pass a [String] to methods expecting a [StringName] and it " +"will be automatically converted (often at compile time), but in rare cases " +"you can construct a [StringName] ahead of time with the [StringName] " +"constructor or, in GDScript, the literal syntax [code]&\"example\"[/code]. " +"Manually constructing a [StringName] allows you to control when the " +"conversion from [String] occurs or to use the literal and prevent conversions " +"entirely.\n" +"See also [NodePath], which is a similar concept specifically designed to " +"store pre-parsed scene tree paths.\n" +"All of [String]'s methods are available in this class too. They convert the " +"[StringName] into a string, and they also return a string. This is highly " +"inefficient and should only be used if the string is desired.\n" +"[b]Note:[/b] In C#, an explicit conversion to [code]System.String[/code] is " +"required to use the methods listed on this page. Use the [code]ToString()[/" +"code] method to cast a [StringName] to a string, and then use the equivalent " +"methods in [code]System.String[/code] or [code]StringExtensions[/code].\n" +"[b]Note:[/b] In a boolean context, a [StringName] will evaluate to " +"[code]false[/code] if it is empty ([code]StringName(\"\")[/code]). Otherwise, " +"a [StringName] will always evaluate to [code]true[/code]." +msgstr "" +"[StringName] 是不可变的字符串,用于唯一名称的通用表示(也叫“字符串内嵌”)。值" +"相同的两个 [StringName] 是同一个对象。进行比较时比普通 [String] 要快很多。\n" +"需要 [StringName] 的方法通常可以传 [String],会自动进行转换(经常发生在编译" +"时),不过有时候你可能会想要提前使用 [StringName] 构造函数来构造 " +"[StringName],在 GDScript 中也可以用字面量语法 [code]&\"example\"[/code]。你可" +"以通过手动构造 [StringName] 来控制 [String] 的转换时机,使用字面量则可以完全消" +"除掉转换过程。\n" +"另见 [NodePath],这是与此类似的概念,针对存储预解析的场景树路径设计。\n" +"[String] 的所有方法都在这个类中可用。它们会将 [StringName] 转换为字符串,返回" +"的也是字符串。这样做效率非常低,应该只在需要字符串时使用。\n" +"[b]注意:[/b]在 C# 中,需要显式转换为 [code]System.String[/code] 才能使用本页" +"列出的方法。使用 [code]ToString()[/code] 方法将 [StringName] 转换为字符串,然" +"后使用 [code]System.String[/code] 或 [code]StringExtensions[/code] 中的等效方" +"法。\n" +"[b]注意:[/b]转换为布尔值时,空的 [StringName]([code]StringName(\"\")[/" +"code])为 [code]false[/code],其他 [StringName] 均为 [code]true[/code]。" + msgid "Constructs an empty [StringName]." msgstr "构造空的 [StringName]。" @@ -120313,6 +145177,40 @@ msgstr "" msgid "A customizable [StyleBox] that doesn't use a texture." msgstr "不使用纹理的自定义 [StyleBox]。" +msgid "" +"By configuring various properties of this style box, you can achieve many " +"common looks without the need of a texture. This includes optionally rounded " +"borders, antialiasing, shadows, and skew.\n" +"Setting corner radius to high values is allowed. As soon as corners overlap, " +"the stylebox will switch to a relative system:\n" +"[codeblock lang=text]\n" +"height = 30\n" +"corner_radius_top_left = 50\n" +"corner_radius_bottom_left = 100\n" +"[/codeblock]\n" +"The relative system now would take the 1:2 ratio of the two left corners to " +"calculate the actual corner width. Both corners added will [b]never[/b] be " +"more than the height. Result:\n" +"[codeblock lang=text]\n" +"corner_radius_top_left: 10\n" +"corner_radius_bottom_left: 20\n" +"[/codeblock]" +msgstr "" +"通过配置这个样式盒的各种属性,你可以不使用纹理实现许多常见外观,包括可选的圆角" +"边框、抗锯齿、阴影、偏斜等。\n" +"允许将圆角半径设置为较高的值。两角重叠时,样式盒将切换到相对系统:\n" +"[codeblock lang=text]\n" +"height = 30\n" +"corner_radius_top_left = 50\n" +"corner_radius_bottom_left = 100\n" +"[/codeblock]\n" +"相对系统现在将采用两个左角的 1:2 比率来计算实际角宽度。添加的两个角[b]永远[/b]" +"不会超过高度。结果:\n" +"[codeblock lang=text]\n" +"corner_radius_top_left: 10\n" +"corner_radius_bottom_left: 20\n" +"[/codeblock]" + msgid "Returns the specified [enum Side]'s border width." msgstr "返回指定边 [enum Side] 的边框宽度。" @@ -120633,6 +145531,16 @@ msgstr "绘制时扩展此样式盒的上边距,使其绘制得比请求的大 msgid "Modulates the color of the texture when this style box is drawn." msgstr "绘制此样式盒时用于调制纹理的颜色。" +msgid "" +"The region to use from the [member texture].\n" +"This is equivalent to first wrapping the [member texture] in an " +"[AtlasTexture] with the same region.\n" +"If empty ([code]Rect2(0, 0, 0, 0)[/code]), the whole [member texture] is used." +msgstr "" +"[member texture] 中要使用的区域。\n" +"等价于首先将 [member texture] 包裹在具有相同区域的 [AtlasTexture] 中。\n" +"如果为空([code]Rect2(0, 0, 0, 0)[/code]),则将使用整个 [member texture]。" + msgid "The texture to use when drawing this style box." msgstr "绘制此样式盒时所使用的纹理。" @@ -120700,11 +145608,51 @@ msgstr "" "根据九宫格系统,重复样式盒的纹理,以匹配样式盒的大小。与 [constant " "AXIS_STRETCH_MODE_TILE] 不同,可能会稍微拉伸纹理以使九宫格纹理平铺无缝。" +msgid "Runs a [Tween] nested within another [Tween]." +msgstr "在一个 [Tween] 中嵌套运行另一个 [Tween]。" + +msgid "" +"[SubtweenTweener] is used to execute a [Tween] as one step in a sequence " +"defined by another [Tween]. See [method Tween.tween_subtween] for more usage " +"information.\n" +"[b]Note:[/b] [method Tween.tween_subtween] is the only correct way to create " +"[SubtweenTweener]. Any [SubtweenTweener] created manually will not function " +"correctly." +msgstr "" +"[SubtweenTweener] 可以将执行某个 [Tween] 设为另一个 [Tween] 所定义序列中的一个" +"步骤。更多用法信息见 [method Tween.tween_subtween]。\n" +"[b]注意:[/b]创建 [SubtweenTweener] 的唯一正确方法是 [method Tween." +"tween_subtween]。任何手动创建的 [SubtweenTweener] 都无法正常工作。" + +msgid "" +"Sets the time in seconds after which the [SubtweenTweener] will start running " +"the subtween. By default there's no delay." +msgstr "设置该 [SubtweenTweener] 开始运行子补间的时间,单位为秒。默认无延迟。" + msgid "" "An interface to a game world that doesn't create a window or draw to the " "screen directly." msgstr "游戏世界的界面,不会创建窗口,也不会直接绘制到屏幕上。" +msgid "" +"[SubViewport] Isolates a rectangular region of a scene to be displayed " +"independently. This can be used, for example, to display UI in 3D space.\n" +"[b]Note:[/b] [SubViewport] is a [Viewport] that isn't a [Window], i.e. it " +"doesn't draw anything by itself. To display anything, [SubViewport] must have " +"a non-zero size and be either put inside a [SubViewportContainer] or assigned " +"to a [ViewportTexture].\n" +"[b]Note:[/b] [InputEvent]s are not passed to a standalone [SubViewport] by " +"default. To ensure [InputEvent] propagation, a [SubViewport] can be placed " +"inside of a [SubViewportContainer]." +msgstr "" +"[SubViewport] 会将场景中的一个矩形区域分离出来,能够独立显示。例如,可以用于" +"在 3D 世界中显示 UI。\n" +"[b]注意:[/b][SubViewport] 是 [Viewport] 但不是 [Window],即它本身不绘制任何内" +"容。要显示内容,[SubViewport] 的大小必须非零,并且应该被放在 " +"[SubViewportContainer] 内,或被分配给 [ViewportTexture]。\n" +"[b]注意:[/b]默认情况下,[InputEvent] 不会传递给独立的 [SubViewport]。为了确保" +"传播 [InputEvent],可以将 [SubViewport] 放置在 [SubViewportContainer] 内。" + msgid "Using Viewports" msgstr "使用视口" @@ -120811,6 +145759,23 @@ msgstr "" "[SubViewport] 子级。如果返回 [code]false[/code],则传播不会发生。如果未实现该" "功能,则所有事件都会被传播到子视口。" +msgid "" +"Configure, if either the [SubViewportContainer] or alternatively the " +"[Control] nodes of its [SubViewport] children should be available as targets " +"of mouse-related functionalities, like identifying the drop target in drag-" +"and-drop operations or cursor shape of hovered [Control] node.\n" +"If [code]false[/code], the [Control] nodes inside its [SubViewport] children " +"are considered as targets.\n" +"If [code]true[/code], the [SubViewportContainer] itself will be considered as " +"a target." +msgstr "" +"配置 [SubViewportContainer] 或其 [SubViewport] 子节点中的 [Control] 节点是否应" +"作为鼠标相关功能的目标,例如在拖放操作中识别放置目标或悬停的 [Control] 节点的" +"光标形状。\n" +"如果为 [code]false[/code],则视其 [SubViewport] 子节点中的 [Control] 节点为目" +"标。\n" +"如果为 [code]true[/code],则视 [SubViewportContainer] 本身为目标。" + msgid "" "If [code]true[/code], the sub-viewport will be automatically resized to the " "control's size.\n" @@ -120942,6 +145907,21 @@ msgstr "" msgid "Clear all information passed into the surface tool so far." msgstr "清除到目前为止传入表面工具(surface tool)的所有信息。" +msgid "" +"Returns a constructed [ArrayMesh] from current information passed in. If an " +"existing [ArrayMesh] is passed in as an argument, will add an extra surface " +"to the existing [ArrayMesh].\n" +"The [param flags] argument can be the bitwise OR of [constant Mesh." +"ARRAY_FLAG_USE_DYNAMIC_UPDATE], [constant Mesh." +"ARRAY_FLAG_USE_8_BONE_WEIGHTS], or [constant Mesh." +"ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY]." +msgstr "" +"根据传入的当前信息返回构造的 [ArrayMesh]。如果将一个已有的 [ArrayMesh] 作为参" +"数传入,则会向该已有的 [ArrayMesh] 添加一个额外的表面。\n" +"[param flags] 参数可以是 [constant Mesh.ARRAY_FLAG_USE_DYNAMIC_UPDATE]、" +"[constant Mesh.ARRAY_FLAG_USE_8_BONE_WEIGHTS]、[constant Mesh." +"ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY] 三者的按位或值。" + msgid "" "Commits the data to the same format used by [method ArrayMesh." "add_surface_from_arrays], [method ImporterMesh.add_surface], and [method " @@ -120995,6 +145975,41 @@ msgstr "" "为给定的 [param nd_threshold] 生成 LOD,使用线性单位(四次误差的平方根),最多" "使用 [param target_index_count] 个索引。" +msgid "" +"Generates normals from vertices so you do not have to do it manually. If " +"[param flip] is [code]true[/code], the resulting normals will be inverted. " +"[method generate_normals] should be called [i]after[/i] generating geometry " +"and [i]before[/i] committing the mesh using [method commit] or [method " +"commit_to_arrays]. For correct display of normal-mapped surfaces, you will " +"also have to generate tangents using [method generate_tangents].\n" +"[b]Note:[/b] [method generate_normals] only works if the primitive type is " +"set to [constant Mesh.PRIMITIVE_TRIANGLES].\n" +"[b]Note:[/b] [method generate_normals] takes smooth groups into account. To " +"generate smooth normals, set the smooth group to a value greater than or " +"equal to [code]0[/code] using [method set_smooth_group] or leave the smooth " +"group at the default of [code]0[/code]. To generate flat normals, set the " +"smooth group to [code]-1[/code] using [method set_smooth_group] prior to " +"adding vertices." +msgstr "" +"从顶点生成法线,因此不必手动执行。如果 [param flip] 为 [code]true[/code],则生" +"成的法线将被反转。[method generate_normals] 的调用,应在生成几何体[i]之后[/" +"i],且在使用 [method commit] 或 [method commit_to_arrays] 提交网格[i]之前[/" +"i]。为了正确显示法线贴图表面,还必须使用 [method generate_tangents] 生成切" +"线。\n" +"[b]注意:[/b][method generate_normals] 仅在图元类型被设置为 [constant Mesh." +"PRIMITIVE_TRIANGLES] 时有效。\n" +"[b]注意:[/b][method generate_normals] 考虑了平滑组。要生成平滑法线,请使用 " +"[method set_smooth_group] 将平滑组设置为大于或等于 [code]0[/code] 的值,或者将" +"平滑组保留为默认值 [code]0[/code]。要生成平面法线,请在添加顶点之前,使用 " +"[method set_smooth_group] 将平滑组设置为 [code]-1[/code]。" + +msgid "" +"Generates a tangent vector for each vertex. Requires that each vertex already " +"has UVs and normals set (see [method generate_normals])." +msgstr "" +"为每个顶点生成切向量。要求每个顶点已经设置了 UV 和法线(见 [method " +"generate_normals])。" + msgid "Returns the axis-aligned bounding box of the vertex positions." msgstr "返回顶点位置的轴对齐边界框。" @@ -121081,6 +146096,16 @@ msgstr "" "指定[i]下一个[/i]顶点所使用的法线。如果每个顶点都需要设置此信息,而你没有为第" "一个顶点提交,则可能根本无法使用此信息。" +msgid "" +"Set to [constant SKIN_8_WEIGHTS] to indicate that up to 8 bone influences per " +"vertex may be used.\n" +"By default, only 4 bone influences are used ([constant SKIN_4_WEIGHTS]).\n" +"[b]Note:[/b] This function takes an enum, not the exact number of weights." +msgstr "" +"设置为 [constant SKIN_8_WEIGHTS] 表示每个顶点最多可以使用 8 个骨骼影响。\n" +"默认情况下,仅使用 4 个骨骼影响([constant SKIN_4_WEIGHTS])。\n" +"[b]注意:[/b]该函数接受一个枚举,而不是权重的确切数量。" + msgid "" "Specifies the smooth group to use for the [i]next[/i] vertex. If this is " "never called, all vertices will have the default smooth group of [code]0[/" @@ -121233,6 +146258,47 @@ msgstr "" "清空所有缓存的语法高亮数据。\n" "然后调用可覆盖的 [method _clear_highlighting_cache] 方法。" +msgid "" +"Returns the syntax highlighting data for the line at index [param line]. If " +"the line is not cached, calls [method _get_line_syntax_highlighting] first to " +"calculate the data.\n" +"Each entry is a column number containing a nested [Dictionary]. The column " +"number denotes the start of a region, the region will end if another region " +"is found, or at the end of the line. The nested [Dictionary] contains the " +"data for that region. Currently only the key [code]\"color\"[/code] is " +"supported.\n" +"[b]Example:[/b] Possible return value. This means columns [code]0[/code] to " +"[code]4[/code] should be red, and columns [code]5[/code] to the end of the " +"line should be green:\n" +"[codeblock]\n" +"{\n" +" 0: {\n" +" \"color\": Color(1, 0, 0)\n" +" },\n" +" 5: {\n" +" \"color\": Color(0, 1, 0)\n" +" }\n" +"}\n" +"[/codeblock]" +msgstr "" +"返回索引为 [param line] 的行的语法高亮数据。如果尚未缓存该行,则会先调用 " +"[method _get_line_syntax_highlighting] 来计算相关数据。\n" +"每个条目都是将列号映射到嵌套的 [Dictionary]。列号代表区域的开始位置,当前区域" +"在遇到其他区域或行尾时结束。嵌套的 [Dictionary] 中包含该区域的数据,目前仅支" +"持 [code]color[/code] 字段。\n" +"[b]示例:[/b]可能的返回值,表示第 [code]0[/code] 列到第 [code]4[/code] 列应当" +"为红色,第 [code]5[/code] 列至行尾应当为绿色:\n" +"[codeblock]\n" +"{\n" +" 0: {\n" +" \"color\": Color(1, 0, 0)\n" +" },\n" +" 5: {\n" +" \"color\": Color(0, 1, 0)\n" +" }\n" +"}\n" +"[/codeblock]" + msgid "Returns the associated [TextEdit] node." msgstr "返回关联的 [TextEdit] 节点。" @@ -122190,6 +147256,39 @@ msgstr "" "开始一个多部分编辑。在调用 [method end_complex_operation] 之前,所有编辑都将被" "视为一个动作。" +msgid "" +"Starts an edit for multiple carets. The edit must be ended with [method " +"end_multicaret_edit]. Multicaret edits can be used to edit text at multiple " +"carets and delay merging the carets until the end, so the caret indexes " +"aren't affected immediately. [method begin_multicaret_edit] and [method " +"end_multicaret_edit] can be nested, and the merge will happen at the last " +"[method end_multicaret_edit].\n" +"[codeblock]\n" +"begin_complex_operation()\n" +"begin_multicaret_edit()\n" +"for i in range(get_caret_count()):\n" +" if multicaret_edit_ignore_caret(i):\n" +" continue\n" +" # Logic here.\n" +"end_multicaret_edit()\n" +"end_complex_operation()\n" +"[/codeblock]" +msgstr "" +"开始对多个光标进行编辑。编辑必须以 [method end_multicaret_edit] 结束。多光标编" +"辑可用于编辑多个光标处的文本,并将光标的合并延迟到末尾,因此光标索引不会立即受" +"到影响。[method begin_multicaret_edit] 和 [method end_multicaret_edit] 可以嵌" +"套,并且合并将发生在最后一个 [method end_multicaret_edit]。\n" +"[codeblock]\n" +"begin_complex_operation()\n" +"begin_multicaret_edit()\n" +"for i in range(get_caret_count()):\n" +" if multicaret_edit_ignore_caret(i):\n" +" continue\n" +" # 逻辑在这里。\n" +"end_multicaret_edit()\n" +"end_complex_operation()\n" +"[/codeblock]" + msgid "" "Centers the viewport on the line the editing caret is at. This also resets " "the [member scroll_horizontal] value to [code]0[/code]." @@ -122283,6 +147382,12 @@ msgstr "返回编辑光标所在的行。" msgid "Returns the wrap index the editing caret is on." msgstr "返回正编辑的文本光标所在的换行索引。" +msgid "" +"Returns the first column containing a non-whitespace character on the given " +"line. If there is only whitespace, returns the number of characters." +msgstr "" +"返回给定的行中第一个包含非空白字符的列。如果只有空白字符,就会返回字符总数。" + msgid "Returns the first visible line." msgstr "返回第一个可见行。" @@ -122305,6 +147410,14 @@ msgstr "返回给定索引处边栏的宽度。" msgid "Returns the [HScrollBar] used by [TextEdit]." msgstr "设置该 [TextEdit] 所使用的 [HScrollBar]。" +msgid "" +"Returns the indent level of the given line. This is the number of spaces and " +"tabs at the beginning of the line, with the tabs taking the tab size into " +"account (see [method get_tab_size])." +msgstr "" +"给定行的缩进级别。缩进级别为行首空格和制表符的数量,制表符会考虑制表符的大小" +"(见 [method get_tab_size])。" + msgid "" "Returns the last visible line. Use [method " "get_last_full_visible_line_wrap_index] for the wrap index." @@ -122321,6 +147434,28 @@ msgstr "返回整个 [TextEdit] 中最后一个未隐藏的行。" msgid "Returns the text of a specific line." msgstr "返回特定行的文本。" +msgid "" +"Returns the custom background color of the given line. If no color is set, " +"returns [code]Color(0, 0, 0, 0)[/code]." +msgstr "" +"返回给定行的自定义背景色。如果没有设置颜色则返回 [code]Color(0, 0, 0, 0)[/" +"code]。" + +msgid "" +"Returns the line and column at the given position. In the returned vector, " +"[code]x[/code] is the column and [code]y[/code] is the line.\n" +"If [param clamp_line] is [code]false[/code] and [param position] is below the " +"last line, [code]Vector2i(-1, -1)[/code] is returned.\n" +"If [param clamp_column] is [code]false[/code] and [param position] is outside " +"the column range of the line, [code]Vector2i(-1, -1)[/code] is returned." +msgstr "" +"返回给定位置处的行号和列号。返回的向量中,[code]x[/code] 是列号,[code]y[/" +"code] 是行号。\n" +"如果 [param clamp_line] 为 [code]false[/code] 且 [param position] 位于最后一列" +"的下方,则会返回 [code]Vector2i(-1, -1)[/code]。\n" +"如果 [param clamp_column] 为 [code]false[/code] 且 [param position] 超出了所在" +"行的列的范围,则会返回 [code]Vector2i(-1, -1)[/code]。" + msgid "Returns the number of lines in the text." msgstr "返回文本中的行数。" @@ -122377,9 +147512,21 @@ msgstr "" msgid "Returns the width in pixels of the [param wrap_index] on [param line]." msgstr "返回位于 [param line] 的 [param wrap_index] 的像素宽度。" +msgid "" +"Returns line text as it is currently displayed, including IME composition " +"string." +msgstr "返回当前显示的行文本,包括 IME 合成字符串。" + msgid "Returns the number of times the given line is wrapped." msgstr "返回给定行换行的次数。" +msgid "" +"Returns the wrap index of the given column on the given line. This ranges " +"from [code]0[/code] to [method get_line_wrap_count]." +msgstr "" +"返回给定行给定列的自动换行索引。范围为 [code]0[/code] 到 [method " +"get_line_wrap_count]。" + msgid "Returns an array of [String]s representing each wrapped index." msgstr "返回代表各个换行索引的 [String] 数组。" @@ -122617,6 +147764,18 @@ msgstr "返回该 [TextEdit] 的制表符大小。" msgid "Returns the total width of all gutters and internal padding." msgstr "返回所有栏位及内部边距的总宽度。" +msgid "" +"Returns the total number of lines in the text. This includes wrapped lines " +"and excludes folded lines. If [member wrap_mode] is set to [constant " +"LINE_WRAPPING_NONE] and no lines are folded (see [method CodeEdit." +"is_line_folded]) then this is equivalent to [method get_line_count]. See " +"[method get_visible_line_count_in_range] for a limited range of lines." +msgstr "" +"文本中的总行数,包括自动换行,排除已折叠的行。如果 [member wrap_mode] 为 " +"[constant LINE_WRAPPING_NONE] 且没有折叠任何行(见 [method CodeEdit." +"is_line_folded])则等价于 [method get_line_count]。有限范围的行见 [method " +"get_visible_line_count_in_range]。" + msgid "Returns the [VScrollBar] of the [TextEdit]." msgstr "设置该 [TextEdit] 所使用的 [StyleBox]。" @@ -122625,6 +147784,21 @@ msgid "" "recorded operations by the undo/redo history." msgstr "返回该 [TextEdit] 的当前版本。版本是撤消/重做历史所记录操作的计数。" +msgid "" +"Returns the number of lines that can visually fit, rounded down, based on " +"this control's height." +msgstr "返回视觉上能够容纳的行数,向下取整,基于控件的高度。" + +msgid "" +"Returns the total number of lines between [param from_line] and [param " +"to_line] (inclusive) in the text. This includes wrapped lines and excludes " +"folded lines. If the range covers all lines it is equivalent to [method " +"get_total_visible_line_count]." +msgstr "" +"返回文本中 [param from_line] 到 [param to_line] 之间(两端包含)的总行数,包括" +"自动换行,排除已折叠的行。如果范围包含所有行,则等价于 [method " +"get_total_visible_line_count]。" + msgid "Returns the word at [param position]." msgstr "返回位于 [param position] 的单词。" @@ -122663,11 +147837,50 @@ msgstr "" "如果选区的光标位于选区原点之后,则返回 [code]true[/code]。这可用于确定选区的方" "向。" +msgid "" +"Returns [code]true[/code] if the caret is visible, [code]false[/code] " +"otherwise. A caret will be considered hidden if it is outside the scrollable " +"area when scrolling is enabled.\n" +"[b]Note:[/b] [method is_caret_visible] does not account for a caret being off-" +"screen if it is still within the scrollable area. It will return [code]true[/" +"code] even if the caret is off-screen as long as it meets [TextEdit]'s own " +"conditions for being visible. This includes uses of [member " +"scroll_fit_content_width] and [member scroll_fit_content_height] that cause " +"the [TextEdit] to expand beyond the viewport's bounds." +msgstr "" +"如果光标可见则返回 [code]true[/code],否则返回 [code]false[/code]。启用滚动" +"时,可以将超出可滚动区域的光标视为隐藏。\n" +"[b]注意:[/b]如果光标仍然在可滚动区域内,[method is_caret_visible] 就不会考虑" +"它是否在屏幕外。即便光标位于屏幕外,只要它满足 [TextEdit] 自身的可见条件,该函" +"数就会返回 [code]true[/code]。这包括使用 [member scroll_fit_content_width] 和 " +"[member scroll_fit_content_height] 导致 [TextEdit] 超出视口边界的情况。" + msgid "" "Returns [code]true[/code] if the user is dragging their mouse for scrolling, " "selecting, or text dragging." msgstr "如果用户拖动鼠标进行滚动、选择或文本拖动,则返回 [code]true[/code]。" +msgid "" +"Returns [code]true[/code] if the gutter at the given index is clickable. See " +"[method set_gutter_clickable]." +msgstr "" +"如果给定索引处的边栏可点击,则返回 [code]true[/code]。见 [method " +"set_gutter_clickable]。" + +msgid "" +"Returns [code]true[/code] if the gutter at the given index is currently " +"drawn. See [method set_gutter_draw]." +msgstr "" +"如果给定索引处的边栏目前被绘制,则返回 [code]true[/code]。见 [method " +"set_gutter_draw]。" + +msgid "" +"Returns [code]true[/code] if the gutter at the given index is overwritable. " +"See [method set_gutter_overwritable]." +msgstr "" +"如果给定索引处的边栏可覆盖,则返回 [code]true[/code]。见 [method " +"set_gutter_overwritable]。" + msgid "" "Returns [code]true[/code] if a [method begin_multicaret_edit] has been called " "and [method end_multicaret_edit] has not yet been called." @@ -122675,8 +147888,30 @@ msgstr "" "如果已调用 [method begin_multicaret_edit] 且尚未调用 [method " "end_multicaret_edit] 则返回 [code]true[/code]。" +msgid "" +"Returns [code]true[/code] if the gutter at the given index on the given line " +"is clickable. See [method set_line_gutter_clickable]." +msgstr "" +"如果给定索引处的边栏在给定的行处可点击,则返回 [code]true[/code]。见 [method " +"set_line_gutter_clickable]。" + msgid "Returns if the given line is wrapped." -msgstr "返回给定的行是否换行。" +msgstr "返回给定的行是否自动换行。" + +msgid "" +"Returns [code]true[/code] if the menu is visible. Use this instead of " +"[code]get_menu().visible[/code] to improve performance (so the creation of " +"the menu is avoided). See [method get_menu]." +msgstr "" +"如果菜单可见则返回 [code]true[/code]。请使用这个方法来代替 [code]get_menu()." +"visible[/code],可以提高性能(因为避免了菜单的创建)。见 [method get_menu]。" + +msgid "" +"Returns [code]true[/code] if the mouse is over a selection. If [param edges] " +"is [code]true[/code], the edges are considered part of the selection." +msgstr "" +"如果鼠标位于选区之上则返回 [code]true[/code]。如果 [param edges] 为 " +"[code]true[/code],则边界会被认为是选区的一部分。" msgid "" "Merges any overlapping carets. Will favor the newest caret, or the caret with " @@ -122858,6 +148093,35 @@ msgstr "" "[b]注意:[/b]如果支持多个光标,则不会检查任何重叠。请参阅 [method " "merge_overlapping_carets]。" +msgid "" +"If [code]true[/code], the gutter at the given index is drawn. The gutter type " +"([method set_gutter_type]) determines how it is drawn. See [method " +"is_gutter_drawn]." +msgstr "" +"如果为 [code]true[/code],则会绘制给定索引处的边栏。绘制方法由边栏类型" +"([method set_gutter_type])决定。见 [method is_gutter_drawn]。" + +msgid "Sets the name of the gutter at the given index." +msgstr "设置给定索引处边栏的名称。" + +msgid "" +"If [code]true[/code], the line data of the gutter at the given index can be " +"overridden when using [method merge_gutters]. See [method " +"is_gutter_overwritable]." +msgstr "" +"如果为 [code]true[/code],则使用 [method merge_gutters] 时可以覆盖边栏在给定索" +"引处的行数据。见 [method is_gutter_overwritable]。" + +msgid "" +"Sets the type of gutter at the given index. Gutters can contain icons, text, " +"or custom visuals. See [enum TextEdit.GutterType] for options." +msgstr "" +"设置给定索引处的边栏的类型。边栏可以包含图标、文本或自定义视觉效果。选项见 " +"[enum TextEdit.GutterType]。" + +msgid "Set the width of the gutter at the given index." +msgstr "设置给定索引处边栏的宽度。" + msgid "" "Sets the text for a specific [param line].\n" "Carets on the line will attempt to keep their visual x position." @@ -122879,6 +148143,28 @@ msgid "" "viewport." msgstr "将 [param line] 的 [param wrap_index] 放置在视口的底部。" +msgid "" +"Sets the custom background color of the given line. If transparent, this " +"color is applied on top of the default background color (See [theme_item " +"background_color]). If set to [code]Color(0, 0, 0, 0)[/code], no additional " +"color is applied." +msgstr "" +"设置给定行的自定义背景色。如果半透明,则该颜色会应用在默认背景色之上(见 " +"[theme_item background_color])。如果设为 [code]Color(0, 0, 0, 0)[/code],则不" +"会应用额外的颜色。" + +msgid "" +"If [param clickable] is [code]true[/code], makes the [param gutter] on the " +"given [param line] clickable. This is like [method set_gutter_clickable], but " +"for a single line. If [method is_gutter_clickable] is [code]true[/code], this " +"will not have any effect. See [method is_line_gutter_clickable] and [signal " +"gutter_clicked]." +msgstr "" +"如果 [param clickable] 为 [code]true[/code],则 [param line] 行的 [param " +"gutter] 边栏可点击。类似于 [method set_gutter_clickable],但只作用于单行。如" +"果 [method is_gutter_clickable] 为 [code]true[/code] 则无效。见 [method " +"is_line_gutter_clickable] 和 [signal gutter_clicked]。" + msgid "" "Sets the icon for [param gutter] on [param line] to [param icon]. This only " "works when the gutter type is [constant GUTTER_TYPE_ICON] (see [method " @@ -123007,6 +148293,14 @@ msgstr "" "上下文菜单。\n" "如果为 [code]false[/code],则上下文菜单将忽略鼠标位置。" +msgid "" +"If [code]true[/code], multiple carets are allowed. Left-clicking with " +"[kbd]Alt[/kbd] adds a new caret. See [method add_caret] and [method " +"get_caret_count]." +msgstr "" +"如果为 [code]true[/code],则允许多光标。按住 [kbd]Alt[/kbd] 单击左键会添加一个" +"新的光标。见 [method add_caret] 和 [method get_caret_count]。" + msgid "Set the type of caret to draw." msgstr "设置要绘制的文本光标的类型。" @@ -123059,6 +148353,26 @@ msgstr "" "[TextEdit] 为空时显示的文本。它[b]不是[/b] [TextEdit] 的默认值(参见 [member " "text])。" +msgid "" +"If [code]true[/code], [TextEdit] will disable vertical scroll and fit minimum " +"height to the number of visible lines. When both this property and [member " +"scroll_fit_content_width] are [code]true[/code], no scrollbars will be " +"displayed." +msgstr "" +"如果为 [code]true[/code],则 [TextEdit] 将禁用垂直滚动,让最小高度与可见行数相" +"匹配。该属性与 [member scroll_fit_content_width] 同时为 [code]true[/code] 时不" +"会显示滚动条。" + +msgid "" +"If [code]true[/code], [TextEdit] will disable horizontal scroll and fit " +"minimum width to the widest line in the text. When both this property and " +"[member scroll_fit_content_height] are [code]true[/code], no scrollbars will " +"be displayed." +msgstr "" +"如果为 [code]true[/code],则 [TextEdit] 将禁用水平滚动,让最小宽度与文本中最宽" +"的行相匹配。该属性与 [member scroll_fit_content_height] 同时为 [code]true[/" +"code] 时不会显示滚动条。" + msgid "" "If there is a horizontal scrollbar, this determines the current horizontal " "scroll value in pixels." @@ -123090,6 +148404,14 @@ msgstr "" "如果为 [code]false[/code],用户或使用[method select]或[method select_all]方法" "都不能选择文本。" +msgid "" +"The syntax highlighter to use.\n" +"[b]Note:[/b] A [SyntaxHighlighter] instance should not be used across " +"multiple [TextEdit] nodes." +msgstr "" +"要使用的语法高亮器。\n" +"[b]注意:[/b]不应在多个 [TextEdit] 节点间共享 [SyntaxHighlighter] 实例。" + msgid "String value of the [TextEdit]." msgstr "[TextEdit] 的字符串值。" @@ -123779,6 +149101,47 @@ msgid "" "Returns the font oversampling factor, shared by all fonts in the TextServer." msgstr "返回字体过采样系数,由 TextServer 中的所有字体共享。" +msgid "" +"Returns outline contours of the glyph as a [Dictionary] with the following " +"contents:\n" +"[code]points[/code] - [PackedVector3Array], containing outline " +"points. [code]x[/code] and [code]y[/code] are point coordinates. [code]z[/" +"code] is the type of the point, using the [enum ContourPointTag] values.\n" +"[code]contours[/code] - [PackedInt32Array], containing indices the end " +"points of each contour.\n" +"[code]orientation[/code] - [bool], contour orientation. If [code]true[/" +"code], clockwise contours must be filled.\n" +"- Two successive [constant CONTOUR_CURVE_TAG_ON] points indicate a line " +"segment.\n" +"- One [constant CONTOUR_CURVE_TAG_OFF_CONIC] point between two [constant " +"CONTOUR_CURVE_TAG_ON] points indicates a single conic (quadratic) Bézier " +"arc.\n" +"- Two [constant CONTOUR_CURVE_TAG_OFF_CUBIC] points between two [constant " +"CONTOUR_CURVE_TAG_ON] points indicate a single cubic Bézier arc.\n" +"- Two successive [constant CONTOUR_CURVE_TAG_OFF_CONIC] points indicate two " +"successive conic (quadratic) Bézier arcs with a virtual [constant " +"CONTOUR_CURVE_TAG_ON] point at their middle.\n" +"- Each contour is closed. The last point of a contour uses the first point of " +"a contour as its next point, and vice versa. The first point can be [constant " +"CONTOUR_CURVE_TAG_OFF_CONIC] point." +msgstr "" +"返回字形的轮廓,是一个包含以下内容的 [Dictionary]:\n" +"[code]points[/code] - [PackedVector3Array],包含轮廓点。[code]x[/" +"code] 和 [code]y[/code] 是点的坐标。[code]z[/code] 是点的类型,使用 [enum " +"ContourPointTag] 的值。\n" +"[code]contours[/code] - [PackedInt32Array],包含每个轮廓的端点索引。\n" +"[code]orientation[/code] - [bool],轮廓方向。如果为 [code]true[/code] 则必" +"须填充顺时针轮廓。\n" +"- 两个连续的 [constant CONTOUR_CURVE_TAG_ON] 点表示一条线段。\n" +"- 在两个 [constant CONTOUR_CURVE_TAG_ON] 点之间的一个 [constant " +"CONTOUR_CURVE_TAG_OFF_CONIC] 点表示一个一条圆锥(二次)贝塞尔弧。\n" +"- 在两个 [constant CONTOUR_CURVE_TAG_ON] 点之间的两个 [constant " +"CONTOUR_CURVE_TAG_OFF_CUBIC] 点表示一个一条三次贝塞尔弧。\n" +"- 两个连续的 [constant CONTOUR_CURVE_TAG_OFF_CONIC] 点表示两条连续的圆锥(二" +"次)贝塞尔弧,中点处存在一个虚拟的 [constant CONTOUR_CURVE_TAG_ON] 点。\n" +"- 每个轮廓都是闭合的。轮廓的最后一个点使用轮廓的第一个点作为下一个点,反之亦" +"然。第一个点可以是 [constant CONTOUR_CURVE_TAG_OFF_CONIC] 点。" + msgid "" "Returns the glyph index of a [param char], optionally modified by the [param " "variation_selector]. See [method font_get_char_from_glyph_index]." @@ -123808,6 +149171,15 @@ msgstr "" msgid "Returns the font hinting mode. Used by dynamic fonts only." msgstr "返回字体微调模式。仅用于动态字体。" +msgid "" +"Returns glyph position rounding behavior. If set to [code]true[/code], when " +"aligning glyphs to the pixel boundaries rounding remainders are accumulated " +"to ensure more uniform glyph distribution. This setting has no effect if " +"subpixel positioning is enabled." +msgstr "" +"返回字形位置的舍入行为。如果设为 [code]true[/code],在将字形对齐到像素边界时会" +"累积余数,确保字形分布更加均匀。如果启用了次像素定位,则该设置无效。" + msgid "" "Returns the width of the range around the shape between the minimum and " "maximum representable signed distance." @@ -123842,6 +149214,9 @@ msgstr "返回字体的次像素字形定位模式。" msgid "Returns a string containing all the characters available in the font." msgstr "返回包含字体中所有可用字符的字符串。" +msgid "Returns an array containing all glyph indices in the font." +msgstr "返回包含字体中所有字形索引的数组。" + msgid "Returns font cache texture image data." msgstr "返回字体缓存纹理图像数据。" @@ -123947,6 +149322,15 @@ msgstr "设置字形的大小。" msgid "Sets font hinting mode. Used by dynamic fonts only." msgstr "设置字体微调模式。仅由动态字体使用。" +msgid "" +"Sets glyph position rounding behavior. If set to [code]true[/code], when " +"aligning glyphs to the pixel boundaries rounding remainders are accumulated " +"to ensure more uniform glyph distribution. This setting has no effect if " +"subpixel positioning is enabled." +msgstr "" +"设置字形位置的舍入行为。如果设为 [code]true[/code],则会将字形与像素边界对齐时" +"的舍入余数进行累积,确保字形分布更为均匀。启用次像素定位时该设置无效。" + msgid "Adds override for [method font_is_language_supported]." msgstr "为 [method font_is_language_supported] 添加覆盖。" @@ -124092,6 +149476,11 @@ msgstr "返回替换字符的大小(在无效字符处绘制的带十六进制 msgid "Returns the name of the server interface." msgstr "返回该服务器接口的名称。" +msgid "" +"Returns default TextServer database (e.g. ICU break iterators and " +"dictionaries)." +msgstr "返回默认的 TextServer 数据库(例如 ICU 中断迭代器和字典)。" + msgid "" "Returns default TextServer database (e.g. ICU break iterators and " "dictionaries) filename." @@ -124208,6 +149597,9 @@ msgstr "" "返回使用 [method shaped_text_add_string] 或 [method shaped_text_add_object] 添" "加的文本区间的数量。" +msgid "Returns text embedded object key." +msgstr "返回文本内嵌对象的键。" + msgid "Returns text span metadata." msgstr "返回文本区间的元数据。" @@ -124471,6 +149863,56 @@ msgstr "" "[b]注意:[/b]如果服务器不支持 [constant FEATURE_UNICODE_SECURITY] 特性,则始终" "返回 [code]false[/code]。" +msgid "" +"Returns array of the composite character boundaries.\n" +"[codeblock]\n" +"var ts = TextServerManager.get_primary_interface()\n" +"print(ts.string_get_character_breaks(\"Test ❤️🔥 Test\")) # Prints [1, 2, 3, " +"4, 5, 9, 10, 11, 12, 13, 14]\n" +"[/codeblock]" +msgstr "" +"返回组合字符边界的数组。\n" +"[codeblock]\n" +"var ts = TextServerManager.get_primary_interface()\n" +"print(ts.string_get_word_breaks(\"Test ❤️🔥 Test\")) # 输出 [1, 2, 3, 4, 5, 9, " +"10, 11, 12, 13, 14]\n" +"[/codeblock]" + +msgid "" +"Returns an array of the word break boundaries. Elements in the returned array " +"are the offsets of the start and end of words. Therefore the length of the " +"array is always even.\n" +"When [param chars_per_line] is greater than zero, line break boundaries are " +"returned instead.\n" +"[codeblock]\n" +"var ts = TextServerManager.get_primary_interface()\n" +"# Corresponds to the substrings \"The\", \"Godot\", \"Engine\", and \"4\".\n" +"print(ts.string_get_word_breaks(\"The Godot Engine, 4\")) # Prints [0, 3, 4, " +"9, 10, 16, 18, 19]\n" +"# Corresponds to the substrings \"The\", \"Godot\", \"Engin\", and \"e, 4\".\n" +"print(ts.string_get_word_breaks(\"The Godot Engine, 4\", \"en\", 5)) # Prints " +"[0, 3, 4, 9, 10, 15, 15, 19]\n" +"# Corresponds to the substrings \"The Godot\" and \"Engine, 4\".\n" +"print(ts.string_get_word_breaks(\"The Godot Engine, 4\", \"en\", 10)) # " +"Prints [0, 9, 10, 19]\n" +"[/codeblock]" +msgstr "" +"返回分词边界的数组。返回数组中的元素是单词的起点和终点偏移量。因此,该数组的长" +"度始终为偶数。\n" +"[param chars_per_line] 大于零时,返回的是分行边界。\n" +"[codeblock]\n" +"var ts = TextServerManager.get_primary_interface()\n" +"# 对应以下子字符串: \"The\"、\"Godot\"、\"Engine\"、\"4\"\n" +"print(ts.string_get_word_breaks(\"The Godot Engine, 4\")) # 输出 [0, 3, 4, 9, " +"10, 16, 18, 19]\n" +"# 对应以下子字符串:\"The\"、\"Godot\"、\"Engin\"、\"e, 4\"\n" +"print(ts.string_get_word_breaks(\"The Godot Engine, 4\", \"en\", 5)) # 输出 " +"[0, 3, 4, 9, 10, 15, 15, 19]\n" +"# 对应以下子字符串:\"The Godot\"、\"Engine, 4\"\n" +"print(ts.string_get_word_breaks(\"The Godot Engine, 4\", \"en\", 10)) # 输出 " +"[0, 9, 10, 19]\n" +"[/codeblock]" + msgid "" "Returns the string converted to lowercase.\n" "[b]Note:[/b] Casing is locale dependent and context sensitive if server " @@ -124672,6 +150114,17 @@ msgid "" "Subtract first line indentation width from all lines after the first one." msgstr "从第一行之后的所有行中减去第一行的缩进宽度。" +msgid "" +"Trims text before the shaping. e.g, increasing [member Label." +"visible_characters] or [member RichTextLabel.visible_characters] value is " +"visually identical to typing the text.\n" +"[b]Note:[/b] In this mode, trimmed text is not processed at all. It is not " +"accounted for in line breaking and size calculations." +msgstr "" +"塑形前截断文本。例如,增加 [member Label.visible_characters] 或 [member " +"RichTextLabel.visible_characters] 的值在视觉上会与输入该文本等价。\n" +"[b]注意:[/b]该模式下完全不处理截断前的文本,断行和计算大小时也不会考虑。" + msgid "" "Displays glyphs that are mapped to the first [member Label." "visible_characters] or [member RichTextLabel.visible_characters] characters " @@ -125295,6 +150748,17 @@ msgstr "" "[b]可选。[/b]\n" "返回字体微调模式。仅用于动态字体。" +msgid "" +"[b]Optional.[/b]\n" +"Returns glyph position rounding behavior. If set to [code]true[/code], when " +"aligning glyphs to the pixel boundaries rounding remainders are accumulated " +"to ensure more uniform glyph distribution. This setting has no effect if " +"subpixel positioning is enabled." +msgstr "" +"[b]可选。[/b]\n" +"返回字形位置的舍入行为。如果设为 [code]true[/code],在将字形对齐到像素边界时会" +"累积余数,确保字形分布更加均匀。如果启用了次像素定位,则该设置无效。" + msgid "" "[b]Optional.[/b]\n" "Returns kerning for the pair of glyphs." @@ -125447,6 +150911,13 @@ msgstr "" "[b]必选。[/b]\n" "返回包含字体中所有可用字符的字符串。" +msgid "" +"[b]Required.[/b]\n" +"Returns an array containing all glyph indices in the font." +msgstr "" +"[b]必选。[/b]\n" +"返回包含字体中所有字形索引的数组。" + msgid "" "[b]Required.[/b]\n" "Returns number of textures used by font cache entry." @@ -125757,6 +151228,17 @@ msgstr "" "[b]可选。[/b]\n" "设置字体微调模式。仅由动态字体使用。" +msgid "" +"[b]Optional.[/b]\n" +"Sets glyph position rounding behavior. If set to [code]true[/code], when " +"aligning glyphs to the pixel boundaries rounding remainders are accumulated " +"to ensure more uniform glyph distribution. This setting has no effect if " +"subpixel positioning is enabled." +msgstr "" +"[b]可选。[/b]\n" +"设置字形位置的舍入行为。如果设为 [code]true[/code],则会将字形与像素边界对齐时" +"的舍入余数进行累积,确保字形分布更为均匀。启用次像素定位时该设置无效。" + msgid "" "[b]Optional.[/b]\n" "Sets kerning for the pair of glyphs." @@ -125983,6 +151465,14 @@ msgstr "" "[b]必选。[/b]\n" "返回该服务器接口的名称。" +msgid "" +"[b]Optional.[/b]\n" +"Returns default TextServer database (e.g. ICU break iterators and " +"dictionaries)." +msgstr "" +"[b]可选。[/b]\n" +"返回默认的 TextServer 数据库(例如 ICU 中断迭代器和字典)。" + msgid "" "[b]Optional.[/b]\n" "Returns default TextServer database (e.g. ICU break iterators and " @@ -126094,6 +151584,13 @@ msgstr "" "返回使用 [method _shaped_text_add_string] 或 [method _shaped_text_add_object] " "添加的文本跨度数。" +msgid "" +"[b]Required.[/b]\n" +"Returns text embedded object key." +msgstr "" +"[b]必选。[/b]\n" +"返回文本内嵌对象的键。" + msgid "" "[b]Required.[/b]\n" "Returns text span metadata." @@ -126650,12 +152147,16 @@ msgid "" "support BiDi and complex text layout.\n" "[b]Note:[/b] This text server is not part of official Godot binaries. If you " "want to use it, compile the engine with the option " -"[code]module_text_server_fb_enabled=yes[/code]." +"[code]module_text_server_fb_enabled=yes[/code]. When building with " +"[TextServerFallback], consider also disabling [TextServerAdvanced] with " +"[code]module_text_server_adv_enabled=no[/code] to reduce binary size." msgstr "" "Godot 文本服务器的回退实现。回退版本在处理大量文本时比 [TextServerAdvanced] " "快,但是不支持双向排版和复杂排版。\n" "[b]注意:[/b]官方 Godot 二进制文件中不包含该文本服务器。如果想要使用,请使用 " -"[code]module_text_server_fb_enabled=yes[/code] 选项编译引擎。" +"[code]module_text_server_fb_enabled=yes[/code] 选项编译引擎。构建带有 " +"[TextServerFallback] 时,请考虑使用 [code]module_text_server_adv_enabled=no[/" +"code] 禁用 [TextServerAdvanced],从而减小二进制文件的大小。" msgid "A singleton for managing [TextServer] implementations." msgstr "用于管理 [TextServer] 实现的单例。" @@ -126813,6 +152314,22 @@ msgstr "使用 [RenderingServer] API 在 [CanvasItem] 上绘制纹理的一部 msgid "Returns the texture height in pixels." msgstr "返回该纹理的高度,单位为像素。" +msgid "" +"Returns an [Image] that is a copy of data from this [Texture2D] (a new " +"[Image] is created each time). [Image]s can be accessed and manipulated " +"directly.\n" +"[b]Note:[/b] This will return [code]null[/code] if this [Texture2D] is " +"invalid.\n" +"[b]Note:[/b] This will fetch the texture data from the GPU, which might cause " +"performance problems when overused. Avoid calling [method get_image] every " +"frame, especially on large textures." +msgstr "" +"返回一个 [Image],该对象是这个 [Texture2D] 中数据的副本(每次都会新建一个 " +"[Image])。可以直接访问并操作 [Image]。\n" +"[b]注意:[/b]如果该 [Texture2D] 无效,则会返回 [code]null[/code]。\n" +"[b]注意:[/b]这个函数会从 GPU 获取纹理数据,过度使用可能会引起性能问题。请避免" +"每一帧都调用 [method get_image],尤其是大型纹理。" + msgid "Returns the texture size in pixels." msgstr "返回该纹理的大小,单位为像素。" @@ -126841,7 +152358,9 @@ msgid "" "separately for each layer. In an atlas, the slicing has to be done manually " "in the fragment shader.\n" "To create such a texture file yourself, reimport your image files using the " -"Godot Editor import presets." +"Godot Editor import presets. To create a Texture2DArray from code, use " +"[method ImageTextureLayered.create_from_images] on an instance of the " +"Texture2DArray class." msgstr "" "Texture2DArray 与 Texture3D 不同:Texture2DArray 不支持在 [Image] 之间进行三线" "性插值,即不会进行混合。另见 [Cubemap] 和 [CubemapArray],这些纹理数组具有针对" @@ -126850,7 +152369,9 @@ msgstr "" "的。而在图集中,区域(即单张图像)的大小可以不同。此外,你通常会需要围绕区域添" "加边距,防止 UV 映射意外进入多个区域。多级渐远纹理 mipmap 也是一样:每一层的 " "mipmap 链都是单独处理的。而在图集中,需要在片段着色器中手动切片。\n" -"要自己创建这样的纹理文件,请使用 Godot 编辑器导入预设重新导入图像文件。" +"要自己创建这样的纹理文件,请使用 Godot 编辑器导入预设重新导入图像文件。要使用" +"代码创建 Texture2DArray,请对 Texture2DArray 类的实例使用 [method " +"ImageTextureLayered.create_from_images]。" msgid "" "Creates a placeholder version of this resource ([PlaceholderTexture2DArray])." @@ -126969,6 +152490,27 @@ msgid "" "Texture-based button. Supports Pressed, Hover, Disabled and Focused states." msgstr "基于纹理的按钮。支持按下、悬停、停用和焦点状态。" +msgid "" +"[TextureButton] has the same functionality as [Button], except it uses " +"sprites instead of Godot's [Theme] resource. It is faster to create, but it " +"doesn't support localization like more complex [Control]s.\n" +"See also [BaseButton] which contains common properties and methods associated " +"with this node.\n" +"[b]Note:[/b] Setting a texture for the \"normal\" state ([member " +"texture_normal]) is recommended. If [member texture_normal] is not set, the " +"[TextureButton] will still receive input events and be clickable, but the " +"user will not be able to see it unless they activate another one of its " +"states with a texture assigned (e.g., hover over it to show [member " +"texture_hover])." +msgstr "" +"[TextureButton] 的功能与 [Button] 相同,只是它使用精灵而不是 Godot 的 [Theme] " +"主题资源。它的创建速度更快,但它不像更复杂的 [Control] 那样支持本地化。\n" +"另见 [BaseButton],它包含了与该节点相关的通用属性和方法。\n" +"[b]注意:[/b]建议设置“正常”状态的纹理([member texture_normal])。如果未设置 " +"[member texture_normal],[TextureButton] 仍会接受输入事件、仍然可以点击,但是" +"用户无法看到这个按钮,除非设置了其他状态的纹理(例如悬停时会显示 [member " +"texture_hover])。" + msgid "" "If [code]true[/code], the size of the texture won't be considered for minimum " "size calculation, so the [TextureButton] can be shrunk down past the texture " @@ -126991,6 +152533,37 @@ msgstr "" "用于点击检测的纯黑白 [BitMap] 图像。在遮罩上,白色像素代表按钮的可点击区域。可" "用它来创建具有弯曲形状的按钮。" +msgid "" +"Texture to display when the node is disabled. See [member BaseButton." +"disabled]. If not assigned, the [TextureButton] displays [member " +"texture_normal] instead." +msgstr "" +"节点处于禁用状态时显示的纹理。见 [member BaseButton.disabled]。未赋值时 " +"[TextureButton] 会显示 [member texture_normal]。" + +msgid "" +"Texture to [i]overlay on the base texture[/i] when the node has mouse or " +"keyboard focus. Because [member texture_focused] is displayed on top of the " +"base texture, a partially transparent texture should be used to ensure the " +"base texture remains visible. A texture that represents an outline or an " +"underline works well for this purpose. To disable the focus visual effect, " +"assign a fully transparent texture of any size. Note that disabling the focus " +"visual effect will harm keyboard/controller navigation usability, so this is " +"not recommended for accessibility reasons." +msgstr "" +"节点持有鼠标或键盘焦点时[i]覆盖在基础纹理上[/i]的纹理。因为 [member " +"texture_focused] 会在基础纹理上方显示,所以要让基础纹理可见就应该使用半透明纹" +"理。这种情况下比较适用代表轮廓或者下划线的纹理。要禁用焦点的视觉效果,请分配一" +"张任意大小的全透明纹理。请注意,禁用焦点的视觉效果不利于键盘/控制器的导航,所" +"以出于可用性的原因并不建议这么做。" + +msgid "" +"Texture to display when the mouse hovers over the node. If not assigned, the " +"[TextureButton] displays [member texture_normal] instead when hovered over." +msgstr "" +"鼠标悬停在节点上时显示的纹理。未赋值时 [TextureButton] 处于悬停状态会显示 " +"[member texture_normal]。" + msgid "" "Texture to display by default, when the node is [b]not[/b] in the disabled, " "hover or pressed state. This texture is still displayed in the focused state, " @@ -126999,6 +152572,16 @@ msgstr "" "节点[b]不处于[/b]禁用、悬停、按下状态时,默认显示的纹理。该纹理仍会在聚焦状态" "下显示,上层绘制的是 [member texture_focused]。" +msgid "" +"Texture to display on mouse down over the node, if the node has keyboard " +"focus and the player presses the Enter key or if the player presses the " +"[member BaseButton.shortcut] key. If not assigned, the [TextureButton] " +"displays [member texture_hover] instead when pressed." +msgstr "" +"鼠标在节点上按下时显示的纹理,要求节点持有键盘焦点且玩家按下了回车键或 " +"[member BaseButton.shortcut] 键。未赋值时 [TextureButton] 处于按下状态会显示 " +"[member texture_hover]。" + msgid "Scale to fit the node's bounding rectangle." msgstr "缩放以适应节点的边界矩形。" @@ -127168,6 +152751,36 @@ msgid "" "stretch_margin_bottom] and related properties." msgstr "设置给定索引的拉伸边距。见 [member stretch_margin_bottom] 及相关属性。" +msgid "" +"If [code]true[/code], Godot treats the bar's textures like in " +"[NinePatchRect]. Use the [code]stretch_margin_*[/code] properties like " +"[member stretch_margin_bottom] to set up the nine patch's 3×3 grid. When " +"using a radial [member fill_mode], this setting will only enable stretching " +"for [member texture_progress], while [member texture_under] and [member " +"texture_over] will be treated like in [NinePatchRect]." +msgstr "" +"如果为 [code]true[/code],Godot 会像在 [NinePatchRect] 中那样处理进度条的纹" +"理。请使用 [member stretch_margin_bottom] 等 [code]stretch_margin_*[/code] 属" +"性来设置九宫格的 3×3 网格。当使用径向的 [member fill_mode] 时,该设置将为 " +"[member texture_progress] 启用拉伸,[member texture_under] 和 [member " +"texture_over] 则进行类似于 [NinePatchRect] 的处理。" + +msgid "" +"Offsets [member texture_progress] if [member fill_mode] is [constant " +"FILL_CLOCKWISE], [constant FILL_COUNTER_CLOCKWISE], or [constant " +"FILL_CLOCKWISE_AND_COUNTER_CLOCKWISE].\n" +"[b]Note:[/b] The effective radial center always stays within the [member " +"texture_progress] bounds. If you need to move it outside the texture's " +"bounds, modify the [member texture_progress] to contain additional empty " +"space where needed." +msgstr "" +"[member fill_mode] 为 [constant FILL_CLOCKWISE]、[constant " +"FILL_COUNTER_CLOCKWISE] 或 [constant FILL_CLOCKWISE_AND_COUNTER_CLOCKWISE] " +"时, [member texture_progress] 的偏移。\n" +"[b]注意:[/b]有效的径向中心始终保持在 [member texture_progress] 的范围内。如果" +"需要将其移动到纹理的边界之外,请修改 [member texture_progress],让该纹理包含所" +"需的额外空白空间。" + msgid "" "Upper limit for the fill of [member texture_progress] if [member fill_mode] " "is [constant FILL_CLOCKWISE], [constant FILL_COUNTER_CLOCKWISE], or [constant " @@ -127181,6 +152794,24 @@ msgstr "" "[code]max_value[/code] 时,则纹理将会填充到这个角度。\n" "见 [member Range.value]、[member Range.max_value]。" +msgid "" +"Starting angle for the fill of [member texture_progress] if [member " +"fill_mode] is [constant FILL_CLOCKWISE], [constant FILL_COUNTER_CLOCKWISE], " +"or [constant FILL_CLOCKWISE_AND_COUNTER_CLOCKWISE]. When the node's " +"[code]value[/code] is equal to its [code]min_value[/code], the texture " +"doesn't show up at all. When the [code]value[/code] increases, the texture " +"fills and tends towards [member radial_fill_degrees].\n" +"[b]Note:[/b] [member radial_initial_angle] is wrapped between [code]0[/code] " +"and [code]360[/code] degrees (inclusive)." +msgstr "" +"[member fill_mode] 为 [constant FILL_CLOCKWISE]、[constant " +"FILL_COUNTER_CLOCKWISE] 或 [constant FILL_CLOCKWISE_AND_COUNTER_CLOCKWISE] " +"时,[member texture_progress] 填充的起始角度。当节点的 [code]value[/code] 等于" +"其 [code]min_value[/code] 时,纹理根本不会显示出来。当 [code]value[/code] 增加" +"时,纹理填充并趋向于 [member radial_fill_degrees]。\n" +"[b]注意:[/b][member radial_initial_angle] 会在 [code]0[/code] 到 [code]360[/" +"code] 度之间环绕(包含两端)。" + msgid "" "The height of the 9-patch's bottom row. A margin of 16 means the 9-slice's " "bottom corners and side will have a height of 16 pixels. You can set all 4 " @@ -128285,7 +153916,12 @@ msgstr "" "可以在运行时使用 [method TileMap._tile_data_runtime_update] 进行修改。" msgid "Adds a collision polygon to the tile on the given TileSet physics layer." -msgstr "为该图块在给定的 TileSet 物理层上添加碰撞多边形。" +msgstr "在给定的 TileSet 物理层上为该图块添加一个碰撞多边形。" + +msgid "" +"Adds an occlusion polygon to the tile on the TileSet occlusion layer with " +"index [param layer_id]." +msgstr "在索引为 [param layer_id] 的 TileSet 遮挡层上为图块添加一个遮挡多边形。" msgid "" "Returns the one-way margin (for one-way platforms) of the polygon at index " @@ -128316,6 +153952,13 @@ msgid "" "tile." msgstr "返回恒定线速度,将应用于与此图块碰撞的对象。" +msgid "" +"Returns the custom data value for custom data layer named [param layer_name]. " +"To check if a custom data layer exists, use [method has_custom_data]." +msgstr "" +"返回名为 [param layer_name] 的自定义数据层的自定义数据值。检查自定义数据层是否" +"存在请使用 [method has_custom_data]。" + msgid "" "Returns the custom data value for custom data layer with index [param " "layer_id]." @@ -128332,6 +153975,9 @@ msgstr "" "可以使用 [param flip_h]、[param flip_v]、[param transpose] 对返回的多边形进行" "变换。" +msgid "Use [method get_occluder_polygon] instead." +msgstr "请改用 [method get_occluder_polygon]。" + msgid "" "Returns the occluder polygon of the tile for the TileSet occlusion layer with " "index [param layer_id].\n" @@ -128342,6 +153988,22 @@ msgstr "" "可以使用 [param flip_h]、[param flip_v]、[param transpose] 对返回的多边形进行" "变换。" +msgid "" +"Returns the occluder polygon at index [param polygon_index] from the TileSet " +"occlusion layer with index [param layer_id].\n" +"The [param flip_h], [param flip_v], and [param transpose] parameters can be " +"[code]true[/code] to transform the returned polygon." +msgstr "" +"返回索引为 [param layer_id] 的 TileSet 遮挡层的遮挡器中索引为 [param " +"polygon_index] 的多边形。\n" +"参数 [param flip_h]、[param flip_v]、[param transpose] 参数可以为 [code]true[/" +"code],对返回的多边形进行变换。" + +msgid "" +"Returns the number of occluder polygons of the tile in the TileSet occlusion " +"layer with index [param layer_id]." +msgstr "返回索引为 [param layer_id] 的 TileSet 遮挡层的遮挡器多边形的数量。" + msgid "" "Returns the tile's terrain bit for the given [param peering_bit] direction. " "To check that a direction is valid, use [method is_valid_terrain_peering_bit]." @@ -128349,6 +154011,10 @@ msgstr "" "返回该图块给定 [param peering_bit] 方向的地形位。要检查方向是否有效,请使用 " "[method is_valid_terrain_peering_bit]。" +msgid "" +"Returns whether there exists a custom data layer named [param layer_name]." +msgstr "返回是否存在名为 [param layer_name] 的自定义数据层。" + msgid "" "Returns whether one-way collisions are enabled for the polygon at index " "[param polygon_index] for TileSet physics layer with index [param layer_id]." @@ -128368,6 +154034,13 @@ msgstr "" "移除索引为 [param layer_id] 的 TileSet 物理层上索引为 [param polygon_index] 的" "多边形。" +msgid "" +"Removes the polygon at index [param polygon_index] for TileSet occlusion " +"layer with index [param layer_id]." +msgstr "" +"移除索引为 [param layer_id] 的 TileSet 遮挡层上索引为 [param polygon_index] 的" +"多边形。" + msgid "" "Enables/disables one-way collisions on the polygon at index [param " "polygon_index] for TileSet physics layer with index [param layer_id]." @@ -128375,6 +154048,13 @@ msgstr "" "启用/禁用索引为 [param layer_id] 的 TileSet 物理层上索引为 [param " "polygon_index] 的多边形的单向碰撞。" +msgid "" +"Sets the one-way margin (for one-way platforms) of the polygon at index " +"[param polygon_index] for TileSet physics layer with index [param layer_id]." +msgstr "" +"设置在索引为 [param layer_id] 的 TileSet 物理层上,索引为 [param " +"polygon_index] 的多边形的单向边距(用于单向平台)。" + msgid "" "Sets the points of the polygon at index [param polygon_index] for TileSet " "physics layer with index [param layer_id]." @@ -128416,10 +154096,25 @@ msgid "" "[param layer_id]." msgstr "设置索引为 [param layer_id] 的 TileSet 导航层的导航多边形。" +msgid "Use [method set_occluder_polygon] instead." +msgstr "请改用 [method set_occluder_polygon]。" + msgid "" "Sets the occluder for the TileSet occlusion layer with index [param layer_id]." msgstr "设置索引为 [param layer_id] 的 TileSet 遮挡层的遮挡器。" +msgid "" +"Sets the occluder for polygon with index [param polygon_index] in the TileSet " +"occlusion layer with index [param layer_id]." +msgstr "" +"设置索引为 [param layer_id] 的 TileSet 遮挡层的遮挡器中索引为 [param " +"polygon_index] 的多边形。" + +msgid "" +"Sets the occluder polygon count in the TileSet occlusion layer with index " +"[param layer_id]." +msgstr "设置索引为 [param layer_id] 的 TileSet 遮挡层的遮挡器多边形数量。" + msgid "" "Sets the tile's terrain bit for the given [param peering_bit] direction. To " "check that a direction is valid, use [method is_valid_terrain_peering_bit]." @@ -128493,7 +154188,11 @@ msgid "" "frame. Notably, this means that scene tiles from a " "[TileSetScenesCollectionSource] may be initialized after their parent. This " "is only queued when inside the scene tree.\n" -"To force an update earlier on, call [method update_internals]." +"To force an update earlier on, call [method update_internals].\n" +"[b]Note:[/b] For performance and compatibility reasons, the coordinates " +"serialized by [TileMap] are limited to 16-bit signed integers, i.e. the range " +"for X and Y coordinates is from [code]-32768[/code] to [code]32767[/code]. " +"When saving tile data, tiles outside this range are wrapped." msgstr "" "基于 2D 图块的地图节点。Tilemap(图块地图)使用 [TileSet],其中包含了图块的列" "表,用于创建基于栅格的地图。TileMap 可以有若干图层,可以将图块布局在彼此之" @@ -128501,7 +154200,10 @@ msgstr "" "出于性能原因,所有 TileMap 更新都会在一帧结束时进行批处理。值得注意的是,这意" "味着 [TileSetScenesCollectionSource] 中的场景图块可能会在其父级之后初始化。仅" "当在场景树内时才会排队。\n" -"要提前强制更新,请调用 [method update_internals]。" +"要提前强制更新,请调用 [method update_internals]。\n" +"[b]注意:[/b]考虑到性能和兼容性,[TileMap] 所序列化的坐标限制为 16 位带符号整" +"数,即 X、Y 坐标的范围在 [code]-32768[/code] 到 [code]32767[/code] 之间。保存" +"图块数据时,该范围之外的图块会发生环绕。" msgid "Using Tilemaps" msgstr "使用 Tilemap" @@ -128512,6 +154214,9 @@ msgstr "2D 六边形演示" msgid "2D Grid-based Navigation with AStarGrid2D Demo" msgstr "AStarGrid2D 的 2D 网格导航演示" +msgid "2D Dynamic TileMap Layers Demo" +msgstr "2D 动态 TileMap 层演示" + msgid "" "Called with a TileData object about to be used internally by the TileMap, " "allowing its modification at runtime.\n" @@ -128797,6 +154502,29 @@ msgid "" "including all layers." msgstr "返回该地图的包围矩形,包围所有图层中的已使用(非空)的图块。" +msgid "" +"Returns [code]true[/code] if the cell on layer [param layer] at coordinates " +"[param coords] is flipped horizontally. The result is valid only for atlas " +"sources." +msgstr "" +"如果在 [param layer] 层中位于坐标 [param coords] 的单元格发生了水平翻转,则返" +"回 [code]true[/code]。结果仅对图集源有效。" + +msgid "" +"Returns [code]true[/code] if the cell on layer [param layer] at coordinates " +"[param coords] is flipped vertically. The result is valid only for atlas " +"sources." +msgstr "" +"如果在 [param layer] 层中位于坐标 [param coords] 的单元格发生了垂直翻转,则返" +"回 [code]true[/code]。结果仅对图集源有效。" + +msgid "" +"Returns [code]true[/code] if the cell on layer [param layer] at coordinates " +"[param coords] is transposed. The result is valid only for atlas sources." +msgstr "" +"如果在 [param layer] 层中位于坐标 [param coords] 的单元格发生了转置,则返回 " +"[code]true[/code]。结果仅对图集源有效。" + msgid "" "Returns if a layer is enabled.\n" "If [param layer] is negative, the layers are accessed from the last one." @@ -128915,6 +154643,53 @@ msgstr "" "值,即 [code]-1[/code]、[code]Vector2i(-1, -1)[/code] 和 [code]-1[/code]。\n" "如果 [param layer] 为负数,则从最后一个图层开始访问。" +msgid "" +"Update all the cells in the [param cells] coordinates array so that they use " +"the given [param terrain] for the given [param terrain_set]. If an updated " +"cell has the same terrain as one of its neighboring cells, this function " +"tries to join the two. This function might update neighboring tiles if needed " +"to create correct terrain transitions.\n" +"If [param ignore_empty_terrains] is [code]true[/code], empty terrains will be " +"ignored when trying to find the best fitting tile for the given terrain " +"constraints.\n" +"If [param layer] is negative, the layers are accessed from the last one.\n" +"[b]Note:[/b] To work correctly, this method requires the TileMap's TileSet to " +"have terrains set up with all required terrain combinations. Otherwise, it " +"may produce unexpected results." +msgstr "" +"更新 [param cells] 坐标数组中的所有单元格,以便它们将给定的 [param terrain] 用" +"于给定的 [param terrain_set]。如果一个更新的单元格与其相邻单元格之一具有相同的" +"地形,则该函数会尝试将两者连接起来。如果需要创建正确的地形过渡,该函数可能会更" +"新相邻的图块。\n" +"如果 [param ignore_empty_terrains] 为 [code]true[/code],则在尝试为给定地形约" +"束找到最合适的图块时,空地形将被忽略。\n" +"如果 [param layer] 为负,则从最后一个图层开始访问。\n" +"[b]注意:[/b]要正常工作,这个方法需要 TileMap 的 TileSet 设置了具有所有必需地" +"形组合的地形。否则,可能会产生意想不到的结果。" + +msgid "" +"Update all the cells in the [param path] coordinates array so that they use " +"the given [param terrain] for the given [param terrain_set]. The function " +"will also connect two successive cell in the path with the same terrain. This " +"function might update neighboring tiles if needed to create correct terrain " +"transitions.\n" +"If [param ignore_empty_terrains] is [code]true[/code], empty terrains will be " +"ignored when trying to find the best fitting tile for the given terrain " +"constraints.\n" +"If [param layer] is negative, the layers are accessed from the last one.\n" +"[b]Note:[/b] To work correctly, this method requires the TileMap's TileSet to " +"have terrains set up with all required terrain combinations. Otherwise, it " +"may produce unexpected results." +msgstr "" +"更新 [param path] 坐标数组中的所有单元格,以便它们将给定的 [param terrain] 用" +"于给定的 [param terrain_set]。该函数还将连接路径中具有相同地形的两个连续单元" +"格。如果需要创建正确的地形过渡,该函数可能会更新相邻的图块。\n" +"如果 [param ignore_empty_terrains] 为 [code]true[/code],则在尝试为给定地形约" +"束找到最合适的图块时将忽略空地形。\n" +"如果 [param layer] 为负,则从最后一个图层开始访问。\n" +"[b]注意:[/b]要正常工作,这个方法需要 TileMap 的 TileSet 设置了具有所有必需地" +"形组合的地形。否则,可能会产生意想不到的结果。" + msgid "" "Enables or disables the layer [param layer]. A disabled layer is not " "processed at all (no rendering, no physics, etc.).\n" @@ -129112,7 +154887,11 @@ msgid "" "frame. Notably, this means that scene tiles from a " "[TileSetScenesCollectionSource] may be initialized after their parent. This " "is only queued when inside the scene tree.\n" -"To force an update earlier on, call [method update_internals]." +"To force an update earlier on, call [method update_internals].\n" +"[b]Note:[/b] For performance and compatibility reasons, the coordinates " +"serialized by [TileMapLayer] are limited to 16-bit signed integers, i.e. the " +"range for X and Y coordinates is from [code]-32768[/code] to [code]32767[/" +"code]. When saving tile data, tiles outside this range are wrapped." msgstr "" "基于 2D 图块的地图节点。[TileMapLayer] 即图块地图层,需要使用包含了图块列表的 " "[TileSet],用于创建基于栅格的地图。与已经废弃的 [TileMap] 节点不同," @@ -129121,7 +154900,10 @@ msgstr "" "出于性能原因,所有 TileMap 更新都会在一帧结束时进行批处理。值得注意的是,这意" "味着 [TileSetScenesCollectionSource] 中的场景图块可能会在其父级之后初始化。仅" "当在场景树内时才会排队。\n" -"要提前强制更新,请调用 [method update_internals]。" +"要提前强制更新,请调用 [method update_internals]。\n" +"[b]注意:[/b]考虑到性能和兼容性,[TileMapLayer] 所序列化的坐标限制为 16 位带符" +"号整数,即 X、Y 坐标的范围在 [code]-32768[/code] 到 [code]32767[/code] 之间。" +"保存图块数据时,该范围之外的图块会发生环绕。" msgid "" "Called with a [TileData] object about to be used internally by the " @@ -129144,6 +154926,40 @@ msgstr "" "[b]注意:[/b]如果 [param tile_data] 对象的属性应随时间发生变化,请使用 " "[method notify_runtime_tile_data_update] 来通知 [TileMapLayer] 它需要更新。" +msgid "" +"Called when this [TileMapLayer]'s cells need an internal update. This update " +"may be caused from individual cells being modified or by a change in the " +"[member tile_set] (causing all cells to be queued for an update). The first " +"call to this function is always for initializing all the [TileMapLayer]'s " +"cells. [param coords] contains the coordinates of all modified cells, roughly " +"in the order they were modified. [param forced_cleanup] is [code]true[/code] " +"when the [TileMapLayer]'s internals should be fully cleaned up. This is the " +"case when:\n" +"- The layer is disabled;\n" +"- The layer is not visible;\n" +"- [member tile_set] is set to [code]null[/code];\n" +"- The node is removed from the tree;\n" +"- The node is freed.\n" +"Note that any internal update happening while one of these conditions is " +"verified is considered to be a \"cleanup\". See also [method " +"update_internals].\n" +"[b]Warning:[/b] Implementing this method may degrade the [TileMapLayer]'s " +"performance." +msgstr "" +"[TileMapLayer] 的单元格需要内部更新时调用。更新可能由某个单元格的修改触发,也" +"可能由 [member tile_set] 的更改触发(所有单元格都会排队更新)。首次调用该函数" +"始终为对 [TileMapLayer] 单元格的初始化。[param coords] 包含所有已修改单元格的" +"坐标,大致按照修改顺序排列。应当完全清理 [TileMapLayer] 的内部数据时 [param " +"forced_cleanup] 为 [code]true[/code]。触发条件为:\n" +"- 层禁用;\n" +"- 层不可见;\n" +"- [member tile_set] 设为 [code]null[/code];\n" +"- 节点从场景树移除;\n" +"- 释放节点;\n" +"请注意,满足以上任一条件时进行的内部更新都视为“清理”。另见 [method " +"update_internals]。\n" +"[b]警告:[/b]实现该方法可能降低 [TileMapLayer] 的性能。" + msgid "" "Should return [code]true[/code] if the tile at coordinates [param coords] " "requires a runtime update.\n" @@ -129238,6 +155054,14 @@ msgstr "" "根据给定的单元格数组新建 [TileMapPattern] 并将其返回。另见 [method " "set_pattern]。" +msgid "" +"Returns the list of all neighboring cells to the one at [param coords]. Any " +"neighboring cell is one that is touching edges, so for a square cell 4 cells " +"would be returned, for a hexagon 6 cells are returned." +msgstr "" +"返回与位于 [param coords] 的单元格相邻的所有单元格的列表。相邻单元格指存在相接" +"边的单元格,因此正方形单元格会返回 4 个单元格,六边形单元格会返回 6 个单元格。" + msgid "" "Returns a [Vector2i] array with the positions of all cells containing a tile. " "A cell is considered empty if its source identifier equals [code]-1[/code], " @@ -129276,6 +155100,27 @@ msgid "" "[TileMapLayer]'s cells." msgstr "返回给定的 [param body] [RID] 属于该 [TileMapLayer] 中的某个单元格。" +msgid "" +"Returns [code]true[/code] if the cell at coordinates [param coords] is " +"flipped horizontally. The result is valid only for atlas sources." +msgstr "" +"如果位于坐标 [param coords] 的单元格发生了水平翻转,则返回 [code]true[/code]。" +"结果仅对图集源有效。" + +msgid "" +"Returns [code]true[/code] if the cell at coordinates [param coords] is " +"flipped vertically. The result is valid only for atlas sources." +msgstr "" +"如果位于坐标 [param coords] 的单元格发生了垂直翻转,则返回 [code]true[/code]。" +"结果仅对图集源有效。" + +msgid "" +"Returns [code]true[/code] if the cell at coordinates [param coords] is " +"transposed. The result is valid only for atlas sources." +msgstr "" +"如果位于坐标 [param coords] 的单元格发生了转置,则返回 [code]true[/code]。结果" +"仅对图集源有效。" + msgid "" "Returns for the given coordinates [param coords_in_pattern] in a " "[TileMapPattern] the corresponding cell coordinates if the pattern was pasted " @@ -129352,6 +155197,49 @@ msgstr "" "则会擦除该单元格。擦除后的单元格中,[b]所有[/b]标识符都会自动设为对应的无效" "值,即 [code]-1[/code]、[code]Vector2i(-1, -1)[/code] 和 [code]-1[/code]。" +msgid "" +"Update all the cells in the [param cells] coordinates array so that they use " +"the given [param terrain] for the given [param terrain_set]. If an updated " +"cell has the same terrain as one of its neighboring cells, this function " +"tries to join the two. This function might update neighboring tiles if needed " +"to create correct terrain transitions.\n" +"If [param ignore_empty_terrains] is [code]true[/code], empty terrains will be " +"ignored when trying to find the best fitting tile for the given terrain " +"constraints.\n" +"[b]Note:[/b] To work correctly, this method requires the [TileMapLayer]'s " +"TileSet to have terrains set up with all required terrain combinations. " +"Otherwise, it may produce unexpected results." +msgstr "" +"更新 [param cells] 坐标数组中的所有单元格,以便它们将给定的 [param terrain] 用" +"于给定的 [param terrain_set]。如果一个更新的单元格与其相邻单元格之一具有相同的" +"地形,则该函数会尝试将两者连接起来。如果需要创建正确的地形过渡,该函数可能会更" +"新相邻的图块。\n" +"如果 [param ignore_empty_terrains] 为 [code]true[/code],则在尝试为给定地形约" +"束找到最合适的图块时,空地形将被忽略。\n" +"[b]注意:[/b]要正常工作,这个方法需要 TileMap 的 TileSet 设置了具有所有必需地" +"形组合的地形。否则,可能会产生意想不到的结果。" + +msgid "" +"Update all the cells in the [param path] coordinates array so that they use " +"the given [param terrain] for the given [param terrain_set]. The function " +"will also connect two successive cell in the path with the same terrain. This " +"function might update neighboring tiles if needed to create correct terrain " +"transitions.\n" +"If [param ignore_empty_terrains] is [code]true[/code], empty terrains will be " +"ignored when trying to find the best fitting tile for the given terrain " +"constraints.\n" +"[b]Note:[/b] To work correctly, this method requires the [TileMapLayer]'s " +"TileSet to have terrains set up with all required terrain combinations. " +"Otherwise, it may produce unexpected results." +msgstr "" +"更新 [param path] 坐标数组中的所有单元格,以便它们将给定的 [param terrain] 用" +"于给定的 [param terrain_set]。该函数还将连接路径中具有相同地形的两个连续单元" +"格。如果需要创建正确的地形过渡,该函数可能会更新相邻的图块。\n" +"如果 [param ignore_empty_terrains] 为 [code]true[/code],则在尝试为给定地形约" +"束找到最合适的图块时将忽略空地形。\n" +"[b]注意:[/b]要正常工作,这个方法需要 TileMap 的 TileSet 设置了具有所有必需地" +"形组合的地形。否则,可能会产生意想不到的结果。" + msgid "" "Sets a custom [param map] as a [NavigationServer2D] navigation map. If not " "set, uses the default [World2D] navigation map instead." @@ -129413,6 +155301,9 @@ msgstr "" "显示或隐藏 [TileMapLayer] 的导航网格。如果设置为 [constant " "DEBUG_VISIBILITY_MODE_DEFAULT],则取决于调试设置“显示导航”。" +msgid "Enable or disable light occlusion." +msgstr "启用或禁用光线遮蔽。" + msgid "" "The [TileMapLayer]'s quadrant size. A quadrant is a group of tiles to be " "drawn together on a single canvas item, for optimization purposes. [member " @@ -129541,6 +155432,33 @@ msgstr "设置图案的大小。" msgid "Tile library for tilemaps." msgstr "Tilemap 的图块库。" +msgid "" +"A TileSet is a library of tiles for a [TileMapLayer]. A TileSet handles a " +"list of [TileSetSource], each of them storing a set of tiles.\n" +"Tiles can either be from a [TileSetAtlasSource], which renders tiles out of a " +"texture with support for physics, navigation, etc., or from a " +"[TileSetScenesCollectionSource], which exposes scene-based tiles.\n" +"Tiles are referenced by using three IDs: their source ID, their atlas " +"coordinates ID, and their alternative tile ID.\n" +"A TileSet can be configured so that its tiles expose more or fewer " +"properties. To do so, the TileSet resources use property layers, which you " +"can add or remove depending on your needs.\n" +"For example, adding a physics layer allows giving collision shapes to your " +"tiles. Each layer has dedicated properties (physics layer and mask), so you " +"may add several TileSet physics layers for each type of collision you need.\n" +"See the functions to add new layers for more information." +msgstr "" +"TileSet 是 [TileMapLayer] 的图块库。TileSet 处理 [TileSetSource] 列表,每个表" +"中存储一组图块。\n" +"图块既可以来自 [TileSetAtlasSource],可以渲染纹理中的图块,支持物理、导航等功" +"能,也可以来自 [TileSetScenesCollectionSource],提供基于场景的图块。\n" +"图块通过使用三个 ID 来引用:源 ID、图集坐标 ID、备选图块 ID。\n" +"TileSet 可以配置图块暴露哪些属性。为了做到这一点,TileSet 资源使用了属性层,你" +"可以根据需要进行添加和删除。\n" +"例如,添加物理层可以为瓷砖提供碰撞形状。不同的层都有不同的属性(物理层和遮" +"罩),要实现不同类型的碰撞,你也可以添加多个 TileSet 物理层。\n" +"更多信息请参阅添加新层的函数。" + msgid "" "Adds a custom data layer to the TileSet at the given position [param " "to_position] in the array. If [param to_position] is -1, adds it at the end " @@ -129703,6 +155621,10 @@ msgid "" "Returns the collision mask of bodies on the given TileSet's physics layer." msgstr "返回给定 TileSet 物理层中物体的碰撞遮罩。" +msgid "" +"Returns the collision priority of bodies on the given TileSet's physics layer." +msgstr "返回给定 TileSet 物理层中物体的碰撞优先级。" + msgid "" "Returns the physics material of bodies on the given TileSet's physics layer." msgstr "返回给定 TileSet 物理层中物体的碰撞材质。" @@ -129748,6 +155670,9 @@ msgstr "返回给定的标识符是否存在备选级别的代理。" msgid "Returns if there is a coodinates-level proxy for the given identifiers." msgstr "返回给定的标识符是否存在坐标级别的代理。" +msgid "Returns if there is a custom data layer named [param layer_name]." +msgstr "返回是否存在名为 [param layer_name] 的自定义数据层。" + msgid "Returns if this TileSet has a source for the given source ID." msgstr "返回该 TileSet 中是否存在给定源 ID 的源。" @@ -129923,6 +155848,18 @@ msgid "" "occlusion layer." msgstr "启用或禁用给定 TileSet 遮挡层中遮挡器的 SDF 碰撞。" +msgid "" +"Sets the collision layer (as in the physics server) for bodies in the given " +"TileSet physics layer." +msgstr "设置给定 TileSet 物理层中物体的碰撞层(物理服务器中使用)。" + +msgid "Sets the collision mask for bodies in the given TileSet physics layer." +msgstr "设置给定 TileSet 物理层中物体的碰撞遮罩。" + +msgid "" +"Sets the collision priority for bodies in the given TileSet physics layer." +msgstr "设置给定 TileSet 物理层中物体的碰撞优先级。" + msgid "Sets the physics material for bodies in the given TileSet physics layer." msgstr "设置给定 TileSet 物理层中物体的物理材质。" @@ -130373,6 +156310,13 @@ msgstr "间隔,单位为像素,是栅格的纹理区域中图块之间的间 msgid "The atlas texture." msgstr "图集纹理。" +msgid "" +"The base tile size in the texture (in pixel). This size must be bigger than " +"or equal to the TileSet's [code]tile_size[/code] value." +msgstr "" +"纹理中的基础图块大小(以像素为单位)。该大小必须大于等于 TileSet 中的 " +"[code]tile_size[/code] 值。" + msgid "" "If [code]true[/code], generates an internal texture with an additional one " "pixel padding around each tile. Texture padding avoids a common artifact " @@ -131038,9 +156982,38 @@ msgstr "" msgid "Returns [code]true[/code] if the timer is stopped or has not started." msgstr "如果定时器处于停止状态或尚未启动,则返回 [code]true[/code]。" +msgid "" +"Starts the timer, or resets the timer if it was started already. Fails if the " +"timer is not inside the tree. If [param time_sec] is greater than [code]0[/" +"code], this value is used for the [member wait_time].\n" +"[b]Note:[/b] This method does not resume a paused timer. See [member paused]." +msgstr "" +"如果计时器尚未启动,则启动或重置计时器。如果计时器不在场景树中则会失败。如果 " +"[param time_sec] 大于 [code]0[/code],则会将其用于 [member wait_time]。\n" +"[b]注意:[/b]这个方法不会恢复已暂停的定时器。见 [member paused]。" + msgid "Stops the timer." msgstr "停止计时器。" +msgid "" +"If [code]true[/code], the timer will start immediately when it enters the " +"scene tree.\n" +"[b]Note:[/b] After the timer enters the tree, this property is automatically " +"set to [code]false[/code].\n" +"[b]Note:[/b] This property does nothing when the timer is running in the " +"editor." +msgstr "" +"如果为 [code]true[/code],则计时器将在进入场景树时自动启动。\n" +"[b]注意:[/b]计时器进入场景树后,该属性会自动设置为 [code]false[/code]。\n" +"[b]注意:[/b]计时器在编辑器中运行时该属性无效。" + +msgid "" +"If [code]true[/code], the timer will ignore [member Engine.time_scale] and " +"update with the real, elapsed time." +msgstr "" +"如果为 [code]true[/code],则计时器会忽略 [member Engine.time_scale],使用真实" +"经过的时间进行更新。" + msgid "" "If [code]true[/code], the timer will stop after reaching the end. Otherwise, " "as by default, the timer will automatically restart." @@ -131231,6 +157204,29 @@ msgstr "表示圆环 [PrimitiveMesh] 的类。" msgid "Button for touch screen devices for gameplay use." msgstr "触摸屏设备的按钮,供游戏使用。" +msgid "" +"TouchScreenButton allows you to create on-screen buttons for touch devices. " +"It's intended for gameplay use, such as a unit you have to touch to move. " +"Unlike [Button], TouchScreenButton supports multitouch out of the box. " +"Several TouchScreenButtons can be pressed at the same time with touch input.\n" +"This node inherits from [Node2D]. Unlike with [Control] nodes, you cannot set " +"anchors on it. If you want to create menus or user interfaces, you may want " +"to use [Button] nodes instead. To make button nodes react to touch events, " +"you can enable [member ProjectSettings.input_devices/pointing/" +"emulate_mouse_from_touch] in the Project Settings.\n" +"You can configure TouchScreenButton to be visible only on touch devices, " +"helping you develop your game both for desktop and mobile devices." +msgstr "" +"TouchScreenButton 允许你为触摸设备创建屏幕上的按钮。其为游戏使用,比如在必须触" +"摸才能移动的设备。与 [Button] 不同,TouchScreenButton 原生支持多点触摸。几个 " +"TouchScreenButton 可以通过触摸输入同时被按下。\n" +"这个节点继承自 [Node2D]。与 [Control] 节点不同,你不能在它上面设置锚点。如果要" +"创建菜单或用户界面,可用 [Button] 节点代替。为了使按钮节点对触摸事件作出反应," +"可在项目设置中启用 [member ProjectSettings.input_devices/pointing/" +"emulate_mouse_from_touch]。\n" +"可将 TouchScreenButton 配置为只在触摸设备上可见,有助你同时为桌面和移动设备开" +"发游戏。" + msgid "Returns [code]true[/code] if this button is currently pressed." msgstr "如果这个按钮当前被按下,则返回 [code]true[/code]。" @@ -131319,6 +157315,15 @@ msgstr "" "[b]注意:[/b]与 [Transform3D] 不同,没有与 [Basis] 类型等效的 2D 类型。所有提" "及的“基”均指 [Transform2D] 的 [member x] 和 [member y] 分量。" +msgid "" +"Constructs a [Transform2D] identical to [constant IDENTITY].\n" +"[b]Note:[/b] In C#, this constructs a [Transform2D] with all of its " +"components set to [constant Vector2.ZERO]." +msgstr "" +"构造与 [constant IDENTITY] 相同的 [Transform2D]。\n" +"[b]注意:[/b]在 C# 中构造的 [Transform2D] 的所有分量都为 [constant Vector2." +"ZERO]。" + msgid "Constructs a [Transform2D] as a copy of the given [Transform2D]." msgstr "构造给定 [Transform2D] 的副本。" @@ -131339,6 +157344,19 @@ msgstr "" "根据表示 [member x]、[member y]、[member origin] 的 3 个 [Vector2](三个矩阵列" "向量)构建 [Transform2D]。" +msgid "" +"Returns the inverted version of this transform. Unlike [method inverse], this " +"method works with almost any basis, including non-uniform ones, but is " +"slower.\n" +"[b]Note:[/b] For this method to return correctly, the transform's basis needs " +"to have a determinant that is not exactly [code]0.0[/code] (see [method " +"determinant])." +msgstr "" +"返回该变换的逆版本。与 [method inverse] 不同,该方法适用于几乎任何基,包括非均" +"匀基,但速度较慢。\n" +"[b]注意:[/b]要使该方法正确返回,该变换的基需要有一个不完全是 [code]0.0[/" +"code] 的行列式(见 [method determinant])。" + msgid "" "Returns a copy of the [param v] vector, transformed (multiplied) by the " "transform basis's matrix. Unlike the multiplication operator ([code]*[/" @@ -131362,6 +157380,24 @@ msgstr "" "orthonormalized])。如果基不是正交归一化的,则应改用 [code]transform." "affine_inverse().basis_xform(vector)[/code](参阅 [method affine_inverse])。" +msgid "" +"Returns the [url=https://en.wikipedia.org/wiki/Determinant]determinant[/url] " +"of this transform basis's matrix. For advanced math, this number can be used " +"to determine a few attributes:\n" +"- If the determinant is exactly [code]0.0[/code], the basis is not invertible " +"(see [method inverse]).\n" +"- If the determinant is a negative number, the basis represents a negative " +"scale.\n" +"[b]Note:[/b] If the basis's scale is the same for every axis, its determinant " +"is always that scale by the power of 2." +msgstr "" +"返回该变换基矩阵的[url=https://zh.wikipedia.org/wiki/" +"%E8%A1%8C%E5%88%97%E5%BC%8F]行列式[/url]。在高等数学中,这个数可以用来确定一些" +"性质:\n" +"- 如果行列式为 [code]0.0[/code],则基不可逆(见 [method inverse])。\n" +"- 如果行列式为负数,则基表示负缩放。\n" +"[b]注意:[/b]如果基的每个轴缩放都相同,那么这个行列式始终为 2 的该缩放次幂。" + msgid "Returns this transform's translation. Equivalent to [member origin]." msgstr "返回该变换的平移。相当于 [member origin]。" @@ -131372,6 +157408,65 @@ msgstr "" "返回该变换的旋转(单位为弧度)。等价于 [member x] 的旋转角(见 [method " "Vector2.angle])。" +msgid "" +"Returns the length of both [member x] and [member y], as a [Vector2]. If this " +"transform's basis is not skewed, this value is the scaling factor. It is not " +"affected by rotation.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var my_transform = Transform2D(\n" +" Vector2(2, 0),\n" +" Vector2(0, 4),\n" +" Vector2(0, 0)\n" +")\n" +"# Rotating the Transform2D in any way preserves its scale.\n" +"my_transform = my_transform.rotated(TAU / 2)\n" +"\n" +"print(my_transform.get_scale()) # Prints (2.0, 4.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"var myTransform = new Transform2D(\n" +" Vector3(2.0f, 0.0f),\n" +" Vector3(0.0f, 4.0f),\n" +" Vector3(0.0f, 0.0f)\n" +");\n" +"// Rotating the Transform2D in any way preserves its scale.\n" +"myTransform = myTransform.Rotated(Mathf.Tau / 2.0f);\n" +"\n" +"GD.Print(myTransform.GetScale()); // Prints (2, 4)\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] If the value returned by [method determinant] is negative, the " +"scale is also negative." +msgstr "" +"以 [Vector2] 的形式同时返回 [member x] 和 [member y] 的长度。如果该变换的基不" +"存在剪切,这个值就是缩放系数。它不受旋转的影响。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var my_transform = Transform2D(\n" +" Vector2(2, 0),\n" +" Vector2(0, 4),\n" +" Vector2(0, 0)\n" +")\n" +"# 以任何方式旋转 Transform2D 都会保持其缩放。\n" +"my_transform = my_transform.rotated(TAU / 2)\n" +"\n" +"print(my_transform.get_scale()) # 输出 (2.0, 4.0)\n" +"[/gdscript]\n" +"[csharp]\n" +"var myTransform = new Transform2D(\n" +" Vector3(2.0f, 0.0f),\n" +" Vector3(0.0f, 4.0f),\n" +" Vector3(0.0f, 0.0f)\n" +");\n" +"// R以任何方式旋转 Transform2D 都会保持其缩放。\n" +"myTransform = myTransform.Rotated(Mathf.Tau / 2.0f);\n" +"\n" +"GD.Print(myTransform.GetScale()); // 输出 (2, 4)\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b]如果 [method determinant] 返回的值为负数,则缩放也为负数。" + msgid "Returns this transform's skew (in radians)." msgstr "返回该变换的偏斜(单位为弧度)。" @@ -131387,6 +157482,20 @@ msgstr "" "[param weight] 应该在 [code]0.0[/code] 到 [code]1.0[/code](闭区间)的范围内。" "允许使用超出这个范围的值,表示进行[i]外插[/i]。" +msgid "" +"Returns the [url=https://en.wikipedia.org/wiki/Invertible_matrix]inverted " +"version of this transform[/url].\n" +"[b]Note:[/b] For this method to return correctly, the transform's basis needs " +"to be [i]orthonormal[/i] (see [method orthonormalized]). That means the basis " +"should only represent a rotation. If it does not, use [method affine_inverse] " +"instead." +msgstr "" +"返回[url=https://en.wikipedia.org/wiki/Invertible_matrix]该变换的逆版本[/" +"url]。\n" +"[b]注意:[/b]为了使该方法正确返回,该变换的基需要是[i]正交归一化的[/i](见 " +"[method orthonormalized])。这意味着该基应该只代表旋转。如果不是,请改用 " +"[method affine_inverse]。" + msgid "" "Returns [code]true[/code] if this transform's basis is conformal. A conformal " "basis is both [i]orthogonal[/i] (the axes are perpendicular to each other) " @@ -131419,6 +157528,32 @@ msgstr "" "返回该变换旋转后的一个副本,使得旋转后的 X 轴指向全局空间中的 [param target] " "位置。" +msgid "" +"Returns a copy of this transform with its basis orthonormalized. An " +"orthonormal basis is both [i]orthogonal[/i] (the axes are perpendicular to " +"each other) and [i]normalized[/i] (the axes have a length of [code]1.0[/" +"code]), which also means it can only represent a rotation." +msgstr "" +"返回该变换的副本,其基已正交归一化。正交归一化的基既是[i]正交的[/i](轴彼此垂" +"直)又是[i]归一化的[/i](轴长度为 [code]1.0[/code]),这也意味着它只能代表旋" +"转。" + +msgid "" +"Returns a copy of this transform rotated by the given [param angle] (in " +"radians).\n" +"If [param angle] is positive, the transform is rotated clockwise.\n" +"This method is an optimized version of multiplying the given transform " +"[code]X[/code] with a corresponding rotation transform [code]R[/code] from " +"the left, i.e., [code]R * X[/code].\n" +"This can be seen as transforming with respect to the global/parent frame." +msgstr "" +"返回该变换的副本,该副本进行了夹角为 [param angle] 的旋转操作(单位为弧" +"度)。\n" +"如果 [param angle] 为负数,则变换执行顺时针旋转。\n" +"这个方法的结果和让 [code]X[/code] 变换与相应的旋转变换 [code]R[/code] 从左侧相" +"乘一致,即 [code]R * X[/code],但进行了优化。\n" +"可以视作在全局/父级坐标系中的变换。" + msgid "" "Returns a copy of the transform rotated by the given [param angle] (in " "radians).\n" @@ -131498,6 +157633,82 @@ msgstr "" "换的旋转、缩放和倾斜。\n" "在恒等变换中,该向量指向右侧([constant Vector2.RIGHT])。" +msgid "" +"The transform basis's Y axis, and the column [code]1[/code] of the matrix. " +"Combined with [member x], this represents the transform's rotation, scale, " +"and skew.\n" +"On the identity transform, this vector points down ([constant Vector2.DOWN])." +msgstr "" +"该变换基的 Y 轴,以及矩阵的 [code]1[/code] 列。与 [member x] 组合,这表示变换" +"的旋转、缩放和倾斜。\n" +"在恒等变换中,该向量指向下方([constant Vector2.DOWN])。" + +msgid "" +"The identity [Transform2D]. This is a transform with no translation, no " +"rotation, and a scale of [constant Vector2.ONE]. This also means that:\n" +"- The [member x] points right ([constant Vector2.RIGHT]);\n" +"- The [member y] points down ([constant Vector2.DOWN]).\n" +"[codeblock]\n" +"var transform = Transform2D.IDENTITY\n" +"print(\"| X | Y | Origin\")\n" +"print(\"| %.f | %.f | %.f\" % [transform.x.x, transform.y.x, transform.origin." +"x])\n" +"print(\"| %.f | %.f | %.f\" % [transform.x.y, transform.y.y, transform.origin." +"y])\n" +"# Prints:\n" +"# | X | Y | Origin\n" +"# | 1 | 0 | 0\n" +"# | 0 | 1 | 0\n" +"[/codeblock]\n" +"If a [Vector2], a [Rect2], a [PackedVector2Array], or another [Transform2D] " +"is transformed (multiplied) by this constant, no transformation occurs.\n" +"[b]Note:[/b] In GDScript, this constant is equivalent to creating a " +"[constructor Transform2D] without any arguments. It can be used to make your " +"code clearer, and for consistency with C#." +msgstr "" +"单位 [Transform2D]。这是一个没有平移和旋转的变换,缩放为 [constant Vector2." +"ONE]。这意味着:\n" +"- [member x] 指向右侧([constant Vector2.RIGHT]);\n" +"- [member y] 指向上方([constant Vector2.UP])。\n" +"[codeblock]\n" +"var transform = Transform2D.IDENTITY\n" +"print(\"| X | Y | 原点\")\n" +"print(\"| %.f | %.f | %.f\" % [transform.x.x, transform.y.x, transform.origin." +"x])\n" +"print(\"| %.f | %.f | %.f\" % [transform.x.y, transform.y.y, transform.origin." +"y])\n" +"# 输出:\n" +"# | X | Y | Origin\n" +"# | 1 | 0 | 0\n" +"# | 0 | 1 | 0\n" +"[/codeblock]\n" +"如果使用该常量变换(相乘)[Vector2]、[Rect2]、[PackedVector2Array] 或其他 " +"[Transform2D],则不会发生变换。\n" +"[b]注意:[/b]在 GDScript 中,该常量与不带任何参数创建 [constructor " +"Transform2D] 相同。使用该常量可以让你的代码更清晰,并与 C# 保持一致。" + +msgid "" +"When any transform is multiplied by [constant FLIP_X], it negates all " +"components of the [member x] axis (the X column).\n" +"When [constant FLIP_X] is multiplied by any transform, it negates the [member " +"Vector2.x] component of all axes (the X row)." +msgstr "" +"当任意变换被 [constant FLIP_X] 相乘时,它会取负 [member x] 轴(X 列)的所有分" +"量。\n" +"当 [constant FLIP_X] 被任意变换相乘时,它会取负所有轴(X 行)的 [member " +"Vector2.x] 分量。" + +msgid "" +"When any transform is multiplied by [constant FLIP_Y], it negates all " +"components of the [member y] axis (the Y column).\n" +"When [constant FLIP_Y] is multiplied by any transform, it negates the [member " +"Vector2.y] component of all axes (the Y row)." +msgstr "" +"当任意变换被 [constant FLIP_Y] 相乘时,它会取负 [member y] 轴(Y 列)的所有分" +"量。\n" +"当 [constant FLIP_Y] 被任意变换相乘时,它会取负所有轴(Y 行)的 [member " +"Vector2.y] 分量。" + msgid "" "Returns [code]true[/code] if the components of both transforms are not " "equal.\n" @@ -131617,6 +157828,15 @@ msgstr "" "assets_pipeline/importing_3d_scenes/model_export_considerations.html#d-asset-" "direction-conventions]《3D 资产方向约定》[/url]。" +msgid "" +"Constructs a [Transform3D] identical to [constant IDENTITY].\n" +"[b]Note:[/b] In C#, this constructs a [Transform3D] with its [member origin] " +"and the components of its [member basis] set to [constant Vector3.ZERO]." +msgstr "" +"构造与 [constant IDENTITY] 相同的 [Transform3D]。\n" +"[b]注意:[/b]在 C# 中构造的 [Transform3D] 的 [member origin] 和 [member " +"basis] 的所有分量都为 [constant Vector3.ZERO]。" + msgid "Constructs a [Transform3D] as a copy of the given [Transform3D]." msgstr "构造给定 [Transform3D] 的副本 [Transform3D]。" @@ -131645,6 +157865,34 @@ msgstr "" "前三个参数是 [member basis] 的三个轴([member Basis.x]、[member Basis.y]、" "[member Basis.z])。" +msgid "" +"Returns the inverted version of this transform. Unlike [method inverse], this " +"method works with almost any [member basis], including non-uniform ones, but " +"is slower. See also [method Basis.inverse].\n" +"[b]Note:[/b] For this method to return correctly, the transform's [member " +"basis] needs to have a determinant that is not exactly [code]0.0[/code] (see " +"[method Basis.determinant])." +msgstr "" +"返回该变换的逆版本。与 [method inverse] 不同,则该方法几乎适用于任何 [member " +"basis],包括非均匀的,但速度较慢。另见 [method Basis.inverse]。\n" +"[b]注意:[/b]为了使该方法正确返回,该变换的 [member basis] 需要具有一个不完全" +"是 [code]0.0[/code] 的行列式(见 [method Basis.determinant])。" + +msgid "" +"Returns the [url=https://en.wikipedia.org/wiki/Invertible_matrix]inverted " +"version of this transform[/url]. See also [method Basis.inverse].\n" +"[b]Note:[/b] For this method to return correctly, the transform's [member " +"basis] needs to be [i]orthonormal[/i] (see [method orthonormalized]). That " +"means the basis should only represent a rotation. If it does not, use [method " +"affine_inverse] instead." +msgstr "" +"返回[url=https://zh.wikipedia.org/zh-hans/" +"%E9%9D%9E%E5%A5%87%E5%BC%82%E6%96%B9%E9%98%B5]该变换的逆版本[/url]。另见 " +"[method Basis.inverse]。\n" +"[b]注意:[/b]为了使该方法正确返回,该变换的基需要是[i]正交归一化的[/i](见 " +"[method orthonormalized])。这意味着该基应该只代表旋转。如果不是,请改用 " +"[method affine_inverse]。" + msgid "" "Returns a copy of this transform rotated so that the forward axis (-Z) points " "towards the [param target] position.\n" @@ -131667,6 +157915,53 @@ msgstr "" "为向前的轴(此时 +X 为左),指向 [param target] 的位置。默认情况下会将 -Z 轴" "(相机前方)作为向前的轴(此时 +X 为右)。" +msgid "" +"Returns a copy of this transform with its [member basis] orthonormalized. An " +"orthonormal basis is both [i]orthogonal[/i] (the axes are perpendicular to " +"each other) and [i]normalized[/i] (the axes have a length of [code]1.0[/" +"code]), which also means it can only represent a rotation. See also [method " +"Basis.orthonormalized]." +msgstr "" +"返回该变换的副本,其 [member basis] 已正交归一化。正交归一化的基既是[i]正交的" +"[/i](轴彼此垂直)又是[i]归一化的[/i](轴长度为 [code]1.0[/code]),这也意味着" +"它只能代表旋转。另见 [method Basis.orthonormalized]。" + +msgid "" +"Returns a copy of this transform rotated around the given [param axis] by the " +"given [param angle] (in radians).\n" +"The [param axis] must be a normalized vector (see [method Vector3." +"normalized]). If [param angle] is positive, the basis is rotated counter-" +"clockwise around the axis.\n" +"This method is an optimized version of multiplying the given transform " +"[code]X[/code] with a corresponding rotation transform [code]R[/code] from " +"the left, i.e., [code]R * X[/code].\n" +"This can be seen as transforming with respect to the global/parent frame." +msgstr "" +"返回该变换围绕给定 [param axis] 旋转给定 [param angle](单位为弧度)的副本。\n" +"[param axis] 必须为归一化的向量(见 [method Vector3.normalized])。如果 " +"[param angle] 为正数,则基会围绕轴进行逆时针旋转。\n" +"这个方法的结果和让 [code]X[/code] 变换与相应的旋转变换 [code]R[/code] 从左侧相" +"乘一致,即 [code]R * X[/code],但进行了优化。\n" +"可以视作在全局/父级坐标系中的变换。" + +msgid "" +"Returns a copy of this transform rotated around the given [param axis] by the " +"given [param angle] (in radians).\n" +"The [param axis] must be a normalized vector in the transform's local " +"coordinate system. For example, to rotate around the local X-axis, use " +"[constant Vector3.RIGHT].\n" +"This method is an optimized version of multiplying the given transform " +"[code]X[/code] with a corresponding rotation transform [code]R[/code] from " +"the right, i.e., [code]X * R[/code].\n" +"This can be seen as transforming with respect to the local frame." +msgstr "" +"返回该变换围绕给定 [param axis] 旋转给定 [param angle](单位为弧度)的副本。\n" +"[param axis] 必须为归一化的向量,使用变换的局部坐标系。例如,要围绕局部 X 轴旋" +"转请使用 [constant Vector3.RIGHT]。\n" +"这个方法的结果和让 [code]X[/code] 变换与相应的旋转变换 [code]R[/code] 从右侧相" +"乘一致,即 [code]R * X[/code],但进行了优化。\n" +"可以视作在局部坐标系中的变换。" + msgid "" "Returns a copy of this transform scaled by the given [param scale] factor.\n" "This method is an optimized version of multiplying the given transform " @@ -131728,6 +158023,62 @@ msgid "" "the position." msgstr "该变换的平移偏移量。在 3D 空间中,这可以被看作是位置。" +msgid "" +"The identity [Transform3D]. This is a transform with no translation, no " +"rotation, and a scale of [constant Vector3.ONE]. Its [member basis] is equal " +"to [constant Basis.IDENTITY]. This also means that:\n" +"- Its [member Basis.x] points right ([constant Vector3.RIGHT]);\n" +"- Its [member Basis.y] points up ([constant Vector3.UP]);\n" +"- Its [member Basis.z] points back ([constant Vector3.BACK]).\n" +"[codeblock]\n" +"var transform = Transform3D.IDENTITY\n" +"var basis = transform.basis\n" +"print(\"| X | Y | Z | Origin\")\n" +"print(\"| %.f | %.f | %.f | %.f\" % [basis.x.x, basis.y.x, basis.z.x, " +"transform.origin.x])\n" +"print(\"| %.f | %.f | %.f | %.f\" % [basis.x.y, basis.y.y, basis.z.y, " +"transform.origin.y])\n" +"print(\"| %.f | %.f | %.f | %.f\" % [basis.x.z, basis.y.z, basis.z.z, " +"transform.origin.z])\n" +"# Prints:\n" +"# | X | Y | Z | Origin\n" +"# | 1 | 0 | 0 | 0\n" +"# | 0 | 1 | 0 | 0\n" +"# | 0 | 0 | 1 | 0\n" +"[/codeblock]\n" +"If a [Vector3], an [AABB], a [Plane], a [PackedVector3Array], or another " +"[Transform3D] is transformed (multiplied) by this constant, no transformation " +"occurs.\n" +"[b]Note:[/b] In GDScript, this constant is equivalent to creating a " +"[constructor Transform3D] without any arguments. It can be used to make your " +"code clearer, and for consistency with C#." +msgstr "" +"单位 [Transform3D]。这是一个没有平移和旋转的变换,缩放为 [constant Vector3." +"ONE]。[member basis] 等于 [constant Basis.IDENTITY]。这意味着:\n" +"- [member Basis.x] 指向右侧([constant Vector3.RIGHT]);\n" +"- [member Basis.y] 指向上方([constant Vector3.UP]);\n" +"- [member Basis.z] 指向后方([constant Vector3.BACK])。\n" +"[codeblock]\n" +"var transform = Transform3D.IDENTITY\n" +"var basis = transform.basis\n" +"print(\"| X | Y | Z | 原点\")\n" +"print(\"| %.f | %.f | %.f | %.f\" % [basis.x.x, basis.y.x, basis.z.x, " +"transform.origin.x])\n" +"print(\"| %.f | %.f | %.f | %.f\" % [basis.x.y, basis.y.y, basis.z.y, " +"transform.origin.y])\n" +"print(\"| %.f | %.f | %.f | %.f\" % [basis.x.z, basis.y.z, basis.z.z, " +"transform.origin.z])\n" +"# 输出:\n" +"# | X | Y | Z | 原点\n" +"# | 1 | 0 | 0 | 0\n" +"# | 0 | 1 | 0 | 0\n" +"# | 0 | 0 | 1 | 0\n" +"[/codeblock]\n" +"如果使用该常量变换(相乘)[Vector3]、[AABB]、[Plane]、[PackedVector3Array] 或" +"其他 [Transform3D],则不会发生变换。\n" +"[b]注意:[/b]在 GDScript 中,该常量与不带任何参数创建 [constructor " +"Transform3D] 相同。使用该常量可以让你的代码更清晰,并与 C# 保持一致。" + msgid "" "[Transform3D] with mirroring applied perpendicular to the YZ plane. Its " "[member basis] is equal to [constant Basis.FLIP_X]." @@ -131885,13 +158236,198 @@ msgstr "返回所有信息(翻译后的文本)。" msgid "The locale of the translation." msgstr "翻译的区域设置。" +msgid "A self-contained collection of [Translation] resources." +msgstr "独立的 [Translation] 资源合集。" + +msgid "" +"[TranslationDomain] is a self-contained collection of [Translation] " +"resources. Translations can be added to or removed from it.\n" +"If you're working with the main translation domain, it is more convenient to " +"use the wrap methods on [TranslationServer]." +msgstr "" +"[TranslationDomain] 即翻译域,是一种独立的 [Translation] 资源合集。可以向其中" +"添加和删除翻译。\n" +"如果你想处理的是主翻译域,使用 [TranslationServer] 上的封装方法更方便。" + +msgid "Adds a translation." +msgstr "添加翻译。" + +msgid "Removes all translations." +msgstr "移除所有翻译。" + +msgid "" +"Returns the [Translation] instance that best matches [param locale]. Returns " +"[code]null[/code] if there are no matches." +msgstr "" +"返回与 [param locale] 最为匹配的 [Translation] 实例。如果没有能够匹配的翻译则" +"返回 [code]null[/code]。" + msgid "" "Returns the pseudolocalized string based on the [param message] passed in." msgstr "根据传入的 [param message] 返回伪本地化字符串。" +msgid "Removes the given translation." +msgstr "移除给定的翻译。" + +msgid "" +"Returns the current locale's translation for the given message and context." +msgstr "返回当前区域设置下,与给定消息和上下文对应的翻译。" + +msgid "" +"Returns the current locale's translation for the given message, plural " +"message and context.\n" +"The number [param n] is the number or quantity of the plural object. It will " +"be used to guide the translation system to fetch the correct plural form for " +"the selected language." +msgstr "" +"返回当前区域设置下,与给定消息、复数消息和上下文对应的翻译。\n" +"数字 [param n] 是复数对象的数量。翻译系统会根据这个数字来针对所选语言获取正确" +"的复数形式。" + +msgid "" +"Replace all characters with their accented variants during " +"pseudolocalization.\n" +"[b]Note:[/b] Updating this property does not automatically update texts in " +"the scene tree. Please propagate the [constant MainLoop." +"NOTIFICATION_TRANSLATION_CHANGED] notification manually after you have " +"finished modifying pseudolocalization related options." +msgstr "" +"伪本地化时将所有字符替换为对应的带重音的版本。\n" +"[b]注意:[/b]更新该属性不会自动更新场景树中的文本。请在完成修改伪本地化相关选" +"项后,手动传播 [constant MainLoop.NOTIFICATION_TRANSLATION_CHANGED] 通知。" + +msgid "" +"Double vowels in strings during pseudolocalization to simulate the " +"lengthening of text due to localization.\n" +"[b]Note:[/b] Updating this property does not automatically update texts in " +"the scene tree. Please propagate the [constant MainLoop." +"NOTIFICATION_TRANSLATION_CHANGED] notification manually after you have " +"finished modifying pseudolocalization related options." +msgstr "" +"伪本地化时重复元音字母,用于模拟因本地化导致文本变长的效果。\n" +"[b]注意:[/b]更新该属性不会自动更新场景树中的文本。请在完成修改伪本地化相关选" +"项后,手动传播 [constant MainLoop.NOTIFICATION_TRANSLATION_CHANGED] 通知。" + +msgid "" +"If [code]true[/code], enables pseudolocalization for the project. This can be " +"used to spot untranslatable strings or layout issues that may occur once the " +"project is localized to languages that have longer strings than the source " +"language.\n" +"[b]Note:[/b] Updating this property does not automatically update texts in " +"the scene tree. Please propagate the [constant MainLoop." +"NOTIFICATION_TRANSLATION_CHANGED] notification manually after you have " +"finished modifying pseudolocalization related options." +msgstr "" +"如果为 [code]true[/code],则为项目启用伪本地化。可以用来发现未翻译的字符串,也" +"可以用来发现将项目本地化为字符串比源语言更长的语言时可能出现的布局问题。\n" +"[b]注意:[/b]更新该属性不会自动更新场景树中的文本。请在完成修改伪本地化相关选" +"项后,手动传播 [constant MainLoop.NOTIFICATION_TRANSLATION_CHANGED] 通知。" + +msgid "" +"The expansion ratio to use during pseudolocalization. A value of [code]0.3[/" +"code] is sufficient for most practical purposes, and will increase the length " +"of each string by 30%.\n" +"[b]Note:[/b] Updating this property does not automatically update texts in " +"the scene tree. Please propagate the [constant MainLoop." +"NOTIFICATION_TRANSLATION_CHANGED] notification manually after you have " +"finished modifying pseudolocalization related options." +msgstr "" +"伪本地化时使用的扩展率。[code]0.3[/code] 会将字符串的长度增加 30%,对于大多数" +"实际情况而言足够了。\n" +"[b]注意:[/b]更新该属性不会自动更新场景树中的文本。请在完成修改伪本地化相关选" +"项后,手动传播 [constant MainLoop.NOTIFICATION_TRANSLATION_CHANGED] 通知。" + +msgid "" +"If [code]true[/code], emulate bidirectional (right-to-left) text when " +"pseudolocalization is enabled. This can be used to spot issues with RTL " +"layout and UI mirroring that will crop up if the project is localized to RTL " +"languages such as Arabic or Hebrew.\n" +"[b]Note:[/b] Updating this property does not automatically update texts in " +"the scene tree. Please propagate the [constant MainLoop." +"NOTIFICATION_TRANSLATION_CHANGED] notification manually after you have " +"finished modifying pseudolocalization related options." +msgstr "" +"如果为 [code]true[/code],则在启用伪本地化时模拟双向(从右至左)文本。可以用来" +"发现将项目本地化为阿拉伯语和希伯来语等 RTL 语言时可能出现的 RTL 布局和 UI 镜像" +"问题。\n" +"[b]注意:[/b]更新该属性不会自动更新场景树中的文本。请在完成修改伪本地化相关选" +"项后,手动传播 [constant MainLoop.NOTIFICATION_TRANSLATION_CHANGED] 通知。" + +msgid "" +"Replace all characters in the string with [code]*[/code]. Useful for finding " +"non-localizable strings.\n" +"[b]Note:[/b] Updating this property does not automatically update texts in " +"the scene tree. Please propagate the [constant MainLoop." +"NOTIFICATION_TRANSLATION_CHANGED] notification manually after you have " +"finished modifying pseudolocalization related options." +msgstr "" +"将字符串中的所有字符都替换为 [code]*[/code]。可用于发现无法本地化的字符串。\n" +"[b]注意:[/b]更新该属性不会自动更新场景树中的文本。请在完成修改伪本地化相关选" +"项后,手动传播 [constant MainLoop.NOTIFICATION_TRANSLATION_CHANGED] 通知。" + +msgid "" +"Prefix that will be prepended to the pseudolocalized string.\n" +"[b]Note:[/b] Updating this property does not automatically update texts in " +"the scene tree. Please propagate the [constant MainLoop." +"NOTIFICATION_TRANSLATION_CHANGED] notification manually after you have " +"finished modifying pseudolocalization related options." +msgstr "" +"在伪本地化字符串前添加的前缀。\n" +"[b]注意:[/b]更新该属性不会自动更新场景树中的文本。请在完成修改伪本地化相关选" +"项后,手动传播 [constant MainLoop.NOTIFICATION_TRANSLATION_CHANGED] 通知。" + +msgid "" +"Skip placeholders for string formatting like [code]%s[/code] or [code]%f[/" +"code] during pseudolocalization. Useful to identify strings which need " +"additional control characters to display correctly.\n" +"[b]Note:[/b] Updating this property does not automatically update texts in " +"the scene tree. Please propagate the [constant MainLoop." +"NOTIFICATION_TRANSLATION_CHANGED] notification manually after you have " +"finished modifying pseudolocalization related options." +msgstr "" +"伪本地化时跳过 [code]%s[/code] 或 [code]%f[/code] 等用于字符串格式化的占位符。" +"可用于识别需要额外的控制字符才能正确显示的字符串。\n" +"[b]注意:[/b]更新该属性不会自动更新场景树中的文本。请在完成修改伪本地化相关选" +"项后,手动传播 [constant MainLoop.NOTIFICATION_TRANSLATION_CHANGED] 通知。" + +msgid "" +"Suffix that will be appended to the pseudolocalized string.\n" +"[b]Note:[/b] Updating this property does not automatically update texts in " +"the scene tree. Please propagate the [constant MainLoop." +"NOTIFICATION_TRANSLATION_CHANGED] notification manually after you have " +"finished modifying pseudolocalization related options." +msgstr "" +"在伪本地化字符串后添加的后缀。\n" +"[b]注意:[/b]更新该属性不会自动更新场景树中的文本。请在完成修改伪本地化相关选" +"项后,手动传播 [constant MainLoop.NOTIFICATION_TRANSLATION_CHANGED] 通知。" + msgid "The server responsible for language translations." msgstr "负责语言翻译的服务器。" +msgid "" +"The translation server is the API backend that manages all language " +"translations.\n" +"Translations are stored in [TranslationDomain]s, which can be accessed by " +"name. The most commonly used translation domain is the main translation " +"domain. It always exists and can be accessed using an empty [StringName]. The " +"translation server provides wrapper methods for accessing the main " +"translation domain directly, without having to fetch the translation domain " +"first. Custom translation domains are mainly for advanced usages like editor " +"plugins. Names starting with [code]godot.[/code] are reserved for engine " +"internals." +msgstr "" +"翻译服务器是负责管理所有语言翻译的 API 后端。\n" +"翻译存储在翻译域 [TranslationDomain] 中,可以通过名称访问。最常用的翻译域是主" +"翻译域。主翻译域始终存在,可以通过空 [StringName] 访问。翻译服务器为直接访问主" +"翻译域提供了封装方法,无需先获取翻译域。自定义翻译域主要用于编辑器插件等高阶用" +"法。以 [code]godot.[/code] 开头的名称是引擎内部保留名称。" + +msgid "Adds a translation to the main translation domain." +msgstr "在主翻译域中添加翻译。" + +msgid "Removes all translations from the main translation domain." +msgstr "在主翻译域中移除所有翻译。" + msgid "" "Compares two locales and returns a similarity score between [code]0[/code] " "(no match) and [code]10[/code] (full match)." @@ -131933,6 +158469,13 @@ msgstr "" "返回区域设置的语言及其变体。例如,[code]\"en_US\"[/code] 将返回 " "[code]\"English (United States)\"[/code]。" +msgid "" +"Returns the translation domain with the specified name. An empty translation " +"domain will be created and added if it does not exist." +msgstr "" +"返回给定名称对应的翻译域。如果不存在使用该名称的翻译域,则会创建并添加一个空的" +"翻译域。" + msgid "Returns a readable script name for the [param script] code." msgstr "返回文字代码 [param script] 的可读文字名称。" @@ -131944,6 +158487,40 @@ msgstr "" "返回编辑器的当前区域设置。\n" "[b]注意:[/b]从导出后的项目中调用时,返回值与 [method get_locale] 相同。" +msgid "" +"Returns the [Translation] instance that best matches [param locale] in the " +"main translation domain. Returns [code]null[/code] if there are no matches." +msgstr "" +"返回主翻译域中与 [param locale] 最为匹配的 [Translation] 实例。如果没有能够匹" +"配的翻译则返回 [code]null[/code]。" + +msgid "" +"Returns [code]true[/code] if a translation domain with the specified name " +"exists." +msgstr "如果存在指定名称的翻译域,则返回 [code]true[/code]。" + +msgid "" +"Returns the pseudolocalized string based on the [param message] passed in.\n" +"[b]Note:[/b] This method always uses the main translation domain." +msgstr "" +"根据传入的 [param message] 返回伪本地化字符串。\n" +"[b]注意:[/b]该方法始终使用主翻译域。" + +msgid "" +"Reparses the pseudolocalization options and reloads the translation for the " +"main translation domain." +msgstr "重新解析伪本地化选项,并为主翻译域重新加载翻译。" + +msgid "" +"Removes the translation domain with the specified name.\n" +"[b]Note:[/b] Trying to remove the main translation domain is an error." +msgstr "" +"移除指定名称的翻译域。\n" +"[b]注意:[/b]尝试移除主翻译域会发生错误。" + +msgid "Removes the given translation from the main translation domain." +msgstr "在主翻译域中移除给定的翻译。" + msgid "" "Sets the locale of the project. The [param locale] string will be " "standardized to match known locales (e.g. [code]en-US[/code] would be matched " @@ -131955,6 +158532,45 @@ msgstr "" "如 [code]en-US[/code] 将与 [code]en_US[/code] 匹配)。\n" "如果已经为新区域设置预先加载了翻译,则它们将被应用。" +msgid "" +"Returns a [param locale] string standardized to match known locales (e.g. " +"[code]en-US[/code] would be matched to [code]en_US[/code]). If [param " +"add_defaults] is [code]true[/code], the locale may have a default script or " +"country added." +msgstr "" +"返回标准化后的 [param locale] 字符串,与已知的区域设置匹配(例如 [code]en-US[/" +"code] 将与 [code]en_US[/code] 匹配)。如果 [param add_defaults] 为 " +"[code]true[/code],则可以为区域设置添加默认文字和地区。" + +msgid "" +"Returns the current locale's translation for the given message and context.\n" +"[b]Note:[/b] This method always uses the main translation domain." +msgstr "" +"返回当前区域设置下,给定消息和上下文对应的翻译。\n" +"[b]注意:[/b]该方法始终使用主翻译域。" + +msgid "" +"Returns the current locale's translation for the given message, plural " +"message and context.\n" +"The number [param n] is the number or quantity of the plural object. It will " +"be used to guide the translation system to fetch the correct plural form for " +"the selected language.\n" +"[b]Note:[/b] This method always uses the main translation domain." +msgstr "" +"返回当前区域设置下,与给定消息、复数消息和上下文对应的翻译。\n" +"数字 [param n] 是复数对象的数量。翻译系统会根据这个数字来针对所选语言获取正确" +"的复数形式。\n" +"[b]注意:[/b]该方法始终使用主翻译域。" + +msgid "" +"If [code]true[/code], enables the use of pseudolocalization on the main " +"translation domain. See [member ProjectSettings.internationalization/" +"pseudolocalization/use_pseudolocalization] for details." +msgstr "" +"如果为 [code]true[/code],则在主翻译域中启用伪本地化。详情见 [member " +"ProjectSettings.internationalization/pseudolocalization/" +"use_pseudolocalization]。" + msgid "" "A control used to show a set of internal [TreeItem]s in a hierarchical " "structure." @@ -132335,6 +158951,15 @@ msgid "" msgstr "" "如果为 [code]true[/code],允许在 [Tree] 中以增量搜索的形式使用字母键导航。" +msgid "" +"If [code]true[/code], tree items with no tooltip assigned display their text " +"as their tooltip. See also [method TreeItem.get_tooltip_text] and [method " +"TreeItem.get_button_tooltip_text]." +msgstr "" +"如果为 [code]true[/code],则未分配工具提示的树项目会使用其文本属性作为工具提" +"示。另见 [method TreeItem.get_tooltip_text] 和 [method TreeItem." +"get_button_tooltip_text]。" + msgid "If [code]true[/code], column titles are visible." msgstr "如果为 [code]true[/code],列标题可见。" @@ -132550,6 +159175,15 @@ msgstr "" "当不可编辑时,[constant TreeItem.CELL_MODE_CHECK] 模式单元格的文本 [Color](请" "参阅 [method TreeItem.set_editable])。" +msgid "Text [Color] used when the item is hovered." +msgstr "项目处于悬停状态时使用的文本颜色 [Color]。" + +msgid "" +"Text [Color] used when the item is hovered, while a button of the same item " +"is hovered as the same time." +msgstr "" +"项目处于悬停状态且该项目的某个按钮也同时处于悬停状态时使用的文本颜色 [Color]。" + msgid "Text [Color] used when the item is selected." msgstr "选择项目时使用的文本颜色 [Color]。" @@ -132744,6 +159378,9 @@ msgid "" "mode cell." msgstr "上下箭头图标,模式为 [constant TreeItem.CELL_MODE_RANGE] 的单元格显示。" +msgid "[StyleBox] used when a button in the tree is hovered." +msgstr "树中的按钮处于悬停状态时使用的 [StyleBox]。" + msgid "[StyleBox] used when a button in the tree is pressed." msgstr "树中的按钮处于按下状态时使用的 [StyleBox]。" @@ -132777,6 +159414,15 @@ msgstr "" msgid "The focused style for the [Tree], drawn on top of everything." msgstr "该 [Tree] 的聚焦样式,绘制在所有东西之上。" +msgid "[StyleBox] for the item being hovered." +msgstr "项目处于悬停状态时使用的 [StyleBox]。" + +msgid "" +"[StyleBox] for the item being hovered, while a button of the same item is " +"hovered as the same time." +msgstr "" +"项目处于悬停状态且该项目的某个按钮也同时处于悬停状态时使用的 [StyleBox]。" + msgid "The background style for the [Tree]." msgstr "该 [Tree] 的背景样式。" @@ -132817,6 +159463,20 @@ msgstr "" "[b]注意:[/b]按钮的 ID 值为 32 位,与始终为 64 位的 [int] 不同。取值范围为 " "[code]-2147483648[/code] 到 [code]2147483647[/code]。" +msgid "" +"Adds a button with [Texture2D] [param button] to the end of the cell at " +"column [param column]. The [param id] is used to identify the button in the " +"according [signal Tree.button_clicked] signal and can be different from the " +"buttons index. If not specified, the next available index is used, which may " +"be retrieved by calling [method get_button_count] immediately before this " +"method. Optionally, the button can be [param disabled] and have a [param " +"tooltip_text]." +msgstr "" +"在 [param column] 列的末尾添加一个带有 [Texture] [param button] 的按钮。" +"[param id] 用于标识按钮。如果未指定,则使用下一个可用索引,可以在此方法之前调" +"用 [method get_button_count] 来获取该索引。另外,该按钮还可以通过 [param " +"disabled] 禁用、通过 [param tooltip_text] 设置工具提示。" + msgid "" "Adds a previously unparented [TreeItem] as a direct child of this one. The " "[param child] item must not be a part of any [Tree] or parented to any " @@ -132833,6 +159493,9 @@ msgstr "" "递归调用在实际 TreeItem 及其子项上的 [param method]。将参数作为一个逗号分隔列" "表传递。" +msgid "Removes all buttons from all columns of this item." +msgstr "移除该项目所有列中的所有按钮。" + msgid "Resets the background color for the given column to default." msgstr "重置指定列默认的背景颜色。" @@ -132856,6 +159519,9 @@ msgid "" "Removes the button at index [param button_index] in column [param column]." msgstr "删除列 [param column] 中索引 [param button_index] 处的按钮。" +msgid "Returns the column's auto translate mode." +msgstr "返回该列的自动翻译模式。" + msgid "" "Returns the text autowrap mode in the given [param column]. By default it is " "[constant TextServer.AUTOWRAP_OFF]." @@ -132946,6 +159612,9 @@ msgstr "返回给定列 [param column] 中图标所允许的最大宽度。" msgid "Returns the [Color] modulating the column's icon." msgstr "返回调制列的图标的 [Color] 颜色。" +msgid "Returns the given column's icon overlay [Texture2D]." +msgstr "返回给定列的图标覆盖 [Texture2D]。" + msgid "Returns the icon [Texture2D] region as [Rect2]." msgstr "返回图标 [Texture2D] 的区域,类型为 [Rect2]。" @@ -132960,6 +159629,11 @@ msgid "" "set_metadata]." msgstr "返回使用 [method set_metadata] 为指定列设置的元数据。" +msgid "" +"Returns the next sibling TreeItem in the tree or a [code]null[/code] object " +"if there is none." +msgstr "返回树中的下一个同级 TreeItem,如果没有则返回 [code]null[/code] 对象。" + msgid "" "Returns the next TreeItem in the tree (in the context of a depth-first " "search) or a [code]null[/code] object if there is none.\n" @@ -132984,6 +159658,15 @@ msgstr "" "如果启用了 [param wrap],则当在最后一个可见元素调用时,该方法将环绕到树中的第" "一个可见元素,否则它将返回 [code]null[/code]。" +msgid "" +"Returns the parent TreeItem or a [code]null[/code] object if there is none." +msgstr "返回父级 TreeItem,如果没有则返回 [code]null[/code] 对象。" + +msgid "" +"Returns the previous sibling TreeItem in the tree or a [code]null[/code] " +"object if there is none." +msgstr "返回树中的前一个同级 TreeItem,如果没有则返回 [code]null[/code] 对象。" + msgid "" "Returns the previous TreeItem in the tree (in the context of a depth-first " "search) or a [code]null[/code] object if there is none.\n" @@ -133141,6 +159824,15 @@ msgstr "" msgid "Selects the given [param column]." msgstr "选中 [param column] 指定的列。" +msgid "" +"Sets the given column's auto translate mode to [param mode].\n" +"All columns use [constant Node.AUTO_TRANSLATE_MODE_INHERIT] by default, which " +"uses the same auto translate mode as the [Tree] itself." +msgstr "" +"将给定列的自动翻译模式设为 [param mode]。\n" +"所有列都默认使用 [constant Node.AUTO_TRANSLATE_MODE_INHERIT],即使用与 [Tree] " +"相同的自动翻译模式。" + msgid "" "Sets the autowrap mode in the given [param column]. If set to something other " "than [constant TextServer.AUTOWRAP_OFF], the text gets wrapped inside the " @@ -133262,6 +159954,16 @@ msgid "" msgstr "" "如果 [param enable] 为 [code]true[/code],则给定的列 [param column] 向右扩展。" +msgid "" +"Sets the given cell's icon [Texture2D]. If the cell is in [constant " +"CELL_MODE_ICON] mode, the icon is displayed in the center of the cell. " +"Otherwise, the icon is displayed before the cell's text. [constant " +"CELL_MODE_RANGE] does not display an icon." +msgstr "" +"设置给定单元格的图标 [Texture2D]。如果单元格处于 [constant CELL_MODE_ICON] 模" +"式,则会在单元格的中心显示图标。否则图标在单元格文本之前显示。[constant " +"CELL_MODE_RANGE] 不显示图标。" + msgid "" "Sets the maximum allowed width of the icon in the given [param column]. This " "limit is applied on top of the default size of the icon and on top of " @@ -133274,6 +159976,14 @@ msgstr "" msgid "Modulates the given column's icon with [param modulate]." msgstr "用 [param modulate] 调制给定列的图标。" +msgid "" +"Sets the given cell's icon overlay [Texture2D]. The cell has to be in " +"[constant CELL_MODE_ICON] mode, and icon has to be set. Overlay is drawn on " +"top of icon, in the bottom left corner." +msgstr "" +"设置给定单元格的图标覆盖 [Texture2D]。单元格必须处于 [constant " +"CELL_MODE_ICON] 模式且必须设置图标。覆盖项绘制在图标之上,位于左下角。" + msgid "Sets the given column's icon's texture region." msgstr "设置给定列的图标的纹理区域。" @@ -133368,6 +160078,23 @@ msgstr "" "如果为 [code]true[/code],则该 [TreeItem] 可见(默认)。\n" "请注意,如果将 [TreeItem] 设置为不可见,则其子项也将不可见。" +msgid "" +"Cell shows a string label, optionally with an icon. When editable, the text " +"can be edited using a [LineEdit], or a [TextEdit] popup if [method " +"set_edit_multiline] is used." +msgstr "" +"单元格显示字符串标签,可以带图标。单元格可编辑时,文本可以使用 [LineEdit] 进行" +"编辑,如果使用了 [method set_edit_multiline] 则会使用 [TextEdit] 弹框进行编" +"辑。" + +msgid "" +"Cell shows a checkbox, optionally with text and an icon. The checkbox can be " +"pressed, released, or indeterminate (via [method set_indeterminate]). The " +"checkbox can't be clicked unless the cell is editable." +msgstr "" +"单元格显示复选框,可以带文本和图标。复选框可以处于勾选、未勾选以及未定状态(使" +"用 [method set_indeterminate])。单元格可编辑时才能够点击复选框。" + msgid "" "Cell shows a numeric range. When editable, it can be edited using a range " "slider. Use [method set_range] to set the value and [method set_range_config] " @@ -133381,6 +160108,11 @@ msgstr "" "如果使用 [method set_text] 设置文本,该单元格也可以处于文本下拉框模式。请使用" "英文逗号分隔选项,例如 [code]\"选项甲,选项乙,选项丙\"[/code]。" +msgid "" +"Cell shows an icon. It can't be edited nor display text. The icon is always " +"centered within the cell." +msgstr "单元格显示图标。无法编辑和显示文本。图标始终在单元格内居中。" + msgid "" "Cell shows as a clickable button. It will display an arrow similar to " "[OptionButton], but doesn't feature a dropdown (for that you can use " @@ -133435,6 +160167,16 @@ msgstr "" "如果为 [code]true[/code] ,则在管子的顶部生成盖子。如果相机永远不可能见到盖" "子,那么设置为 [code]false[/code] 可以加快生成和渲染的速度。" +msgid "" +"Determines the radius of the tube along its length. The radius of a " +"particular section ring is obtained by multiplying the baseline [member " +"radius] by the value of this curve at the given distance. For values smaller " +"than [code]0[/code], the faces will be inverted. Should be a unit [Curve]." +msgstr "" +"确定管身半径沿长度的变化方式。将基础 [member radius] 与给定距离下该曲线的取值" +"相乘,就得到了某个分区中某个环的半径。小于 [code]0[/code] 的值会让面进行正反翻" +"转。应当为单位 [Curve]。" + msgid "" "The number of sides on the tube. For example, a value of [code]5[/code] means " "the tube will be pentagonal. Higher values result in a more detailed tube at " @@ -133470,6 +160212,264 @@ msgid "" "[Tweener]s." msgstr "通过脚本进行通用动画的轻量级对象,使用 [Tweener]。" +msgid "" +"Tweens are mostly useful for animations requiring a numerical property to be " +"interpolated over a range of values. The name [i]tween[/i] comes from [i]in-" +"betweening[/i], an animation technique where you specify [i]keyframes[/i] and " +"the computer interpolates the frames that appear between them. Animating " +"something with a [Tween] is called tweening.\n" +"[Tween] is more suited than [AnimationPlayer] for animations where you don't " +"know the final values in advance. For example, interpolating a dynamically-" +"chosen camera zoom value is best done with a [Tween]; it would be difficult " +"to do the same thing with an [AnimationPlayer] node. Tweens are also more " +"light-weight than [AnimationPlayer], so they are very much suited for simple " +"animations or general tasks that don't require visual tweaking provided by " +"the editor. They can be used in a \"fire-and-forget\" manner for some logic " +"that normally would be done by code. You can e.g. make something shoot " +"periodically by using a looped [CallbackTweener] with a delay.\n" +"A [Tween] can be created by using either [method SceneTree.create_tween] or " +"[method Node.create_tween]. [Tween]s created manually (i.e. by using " +"[code]Tween.new()[/code]) are invalid and can't be used for tweening values.\n" +"A tween animation is created by adding [Tweener]s to the [Tween] object, " +"using [method tween_property], [method tween_interval], [method " +"tween_callback] or [method tween_method]:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var tween = get_tree().create_tween()\n" +"tween.tween_property($Sprite, \"modulate\", Color.RED, 1)\n" +"tween.tween_property($Sprite, \"scale\", Vector2(), 1)\n" +"tween.tween_callback($Sprite.queue_free)\n" +"[/gdscript]\n" +"[csharp]\n" +"Tween tween = GetTree().CreateTween();\n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"modulate\", Colors.Red, 1.0f);\n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"scale\", Vector2.Zero, 1.0f);\n" +"tween.TweenCallback(Callable.From(GetNode(\"Sprite\").QueueFree));\n" +"[/csharp]\n" +"[/codeblocks]\n" +"This sequence will make the [code]$Sprite[/code] node turn red, then shrink, " +"before finally calling [method Node.queue_free] to free the sprite. " +"[Tweener]s are executed one after another by default. This behavior can be " +"changed using [method parallel] and [method set_parallel].\n" +"When a [Tweener] is created with one of the [code]tween_*[/code] methods, a " +"chained method call can be used to tweak the properties of this [Tweener]. " +"For example, if you want to set a different transition type in the above " +"example, you can use [method set_trans]:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var tween = get_tree().create_tween()\n" +"tween.tween_property($Sprite, \"modulate\", Color.RED, 1).set_trans(Tween." +"TRANS_SINE)\n" +"tween.tween_property($Sprite, \"scale\", Vector2(), 1).set_trans(Tween." +"TRANS_BOUNCE)\n" +"tween.tween_callback($Sprite.queue_free)\n" +"[/gdscript]\n" +"[csharp]\n" +"Tween tween = GetTree().CreateTween();\n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"modulate\", Colors.Red, 1.0f)." +"SetTrans(Tween.TransitionType.Sine);\n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"scale\", Vector2.Zero, 1.0f)." +"SetTrans(Tween.TransitionType.Bounce);\n" +"tween.TweenCallback(Callable.From(GetNode(\"Sprite\").QueueFree));\n" +"[/csharp]\n" +"[/codeblocks]\n" +"Most of the [Tween] methods can be chained this way too. In the following " +"example the [Tween] is bound to the running script's node and a default " +"transition is set for its [Tweener]s:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var tween = get_tree().create_tween().bind_node(self).set_trans(Tween." +"TRANS_ELASTIC)\n" +"tween.tween_property($Sprite, \"modulate\", Color.RED, 1)\n" +"tween.tween_property($Sprite, \"scale\", Vector2(), 1)\n" +"tween.tween_callback($Sprite.queue_free)\n" +"[/gdscript]\n" +"[csharp]\n" +"var tween = GetTree().CreateTween().BindNode(this).SetTrans(Tween." +"TransitionType.Elastic);\n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"modulate\", Colors.Red, 1.0f);\n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"scale\", Vector2.Zero, 1.0f);\n" +"tween.TweenCallback(Callable.From(GetNode(\"Sprite\").QueueFree));\n" +"[/csharp]\n" +"[/codeblocks]\n" +"Another interesting use for [Tween]s is animating arbitrary sets of objects:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var tween = create_tween()\n" +"for sprite in get_children():\n" +" tween.tween_property(sprite, \"position\", Vector2(0, 0), 1)\n" +"[/gdscript]\n" +"[csharp]\n" +"Tween tween = CreateTween();\n" +"foreach (Node sprite in GetChildren())\n" +" tween.TweenProperty(sprite, \"position\", Vector2.Zero, 1.0f);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"In the example above, all children of a node are moved one after another to " +"position (0, 0).\n" +"You should avoid using more than one [Tween] per object's property. If two or " +"more tweens animate one property at the same time, the last one created will " +"take priority and assign the final value. If you want to interrupt and " +"restart an animation, consider assigning the [Tween] to a variable:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var tween\n" +"func animate():\n" +" if tween:\n" +" tween.kill() # Abort the previous animation.\n" +" tween = create_tween()\n" +"[/gdscript]\n" +"[csharp]\n" +"private Tween _tween;\n" +"\n" +"public void Animate()\n" +"{\n" +" if (_tween != null)\n" +" _tween.Kill(); // Abort the previous animation\n" +" _tween = CreateTween();\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"Some [Tweener]s use transitions and eases. The first accepts a [enum " +"TransitionType] constant, and refers to the way the timing of the animation " +"is handled (see [url=https://easings.net/]easings.net[/url] for some " +"examples). The second accepts an [enum EaseType] constant, and controls where " +"the [code]trans_type[/code] is applied to the interpolation (in the " +"beginning, the end, or both). If you don't know which transition and easing " +"to pick, you can try different [enum TransitionType] constants with [constant " +"EASE_IN_OUT], and use the one that looks best.\n" +"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" +"tween_cheatsheet.webp]Tween easing and transition types cheatsheet[/url]\n" +"[b]Note:[/b] Tweens are not designed to be reused and trying to do so results " +"in an undefined behavior. Create a new Tween for each animation and every " +"time you replay an animation from start. Keep in mind that Tweens start " +"immediately, so only create a Tween when you want to start animating.\n" +"[b]Note:[/b] The tween is processed after all of the nodes in the current " +"frame, i.e. node's [method Node._process] method would be called before the " +"tween (or [method Node._physics_process] depending on the value passed to " +"[method set_process_mode])." +msgstr "" +"Tween 主要用于需要将一个数值属性插值到一系列值的动画。[i]tween[/i] 这个名字来" +"自 [i]in-betweening[/i],这是一种动画技术,可以在其中指定 [i]关键帧[/i],然后" +"计算机会插入出现在它们之间的帧。使用 [Tween] 制作动画被称为补间动画。\n" +"[Tween] 比 [AnimationPlayer] 更适合事先不知道最终值的动画。例如,插入动态选择" +"的相机缩放值最好使用 [Tween] 完成;很难使用 [AnimationPlayer] 节点做同样的事" +"情。Tween 也比 [AnimationPlayer] 更轻量级,因此它们非常适合简单的动画,或不需" +"要编辑器提供的视觉调整的通用任务。对于通常由代码完成的某些逻辑,它们可以以“即" +"用即弃”的方式使用。例如,可以使用带延迟的循环 [CallbackTweener] 定期射击。\n" +"可以使用 [method SceneTree.create_tween] 或 [method Node.create_tween] 创建 " +"[Tween]。手动创建的 [Tween](即使用 [code]Tween.new()[/code])无效,不能用于对" +"值进行补间。\n" +"通过使用 [method tween_property]、[method tween_interval]、[method " +"tween_callback] 或 [method tween_method],可将 [Tweener] 添加到 [Tween] 对象来" +"创建一个补间动画:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var tween = get_tree().create_tween()\n" +"tween.tween_property($Sprite, \"modulate\", Color.RED, 1)\n" +"tween.tween_property($Sprite, \"scale\", Vector2(), 1)\n" +"tween.tween_callback($Sprite.queue_free)\n" +"[/gdscript]\n" +"[csharp]\n" +"Tween tween = GetTree().CreateTween();\n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"modulate\", Colors.Red, 1.0f);\n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"scale\", Vector2.Zero, 1.0f);\n" +"tween.TweenCallback(Callable.From(GetNode(\"Sprite\").QueueFree));\n" +"[/csharp]\n" +"[/codeblocks]\n" +"该序列将使 [code]$Sprite[/code] 节点变红,然后缩小,最后调用 [method Node." +"queue_free] 来释放该精灵。默认情况下,[Tweener] 一个接一个地执行。这种行为可以" +"使用 [method parallel] 和 [method set_parallel] 来更改。\n" +"当使用 [code]tween_*[/code] 方法之一创建 [Tweener] 时,可以使用链式方法调用来" +"调整该 [Tweener] 的属性。例如,如果想在上面的例子中设置一个不同的过渡类型,可" +"以使用 [method set_trans]:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var tween = get_tree().create_tween()\n" +"tween.tween_property($Sprite, \"modulate\", Color.RED, 1).set_trans(Tween." +"TRANS_SINE)\n" +"tween.tween_property($Sprite, \"scale\", Vector2(), 1).set_trans(Tween." +"TRANS_BOUNCE)\n" +"tween.tween_callback($Sprite.queue_free)\n" +"[/gdscript]\n" +"[csharp]\n" +"Tween tween = GetTree().CreateTween();\n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"modulate\", Colors.Red, 1.0f)." +"SetTrans(Tween.TransitionType.Sine);\n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"scale\", Vector2.Zero, 1.0f)." +"SetTrans(Tween.TransitionType.Bounce);\n" +"tween.TweenCallback(Callable.From(GetNode(\"Sprite\").QueueFree));\n" +"[/csharp]\n" +"[/codeblocks]\n" +"大多数 [Tween] 方法也可以这样链式调用。在下面的示例中,[Tween] 被绑定到运行脚" +"本的节点,并为其 [Tweener] 设置了默认过渡:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var tween = get_tree().create_tween().bind_node(self).set_trans(Tween." +"TRANS_ELASTIC)\n" +"tween.tween_property($Sprite, \"modulate\", Color.RED, 1)\n" +"tween.tween_property($Sprite, \"scale\", Vector2(), 1)\n" +"tween.tween_callback($Sprite.queue_free)\n" +"[/gdscript]\n" +"[csharp]\n" +"var tween = GetTree().CreateTween().BindNode(this).SetTrans(Tween." +"TransitionType.Elastic);\n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"modulate\", Colors.Red, 1.0f);\n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"scale\", Vector2.Zero, 1.0f);\n" +"tween.TweenCallback(Callable.From(GetNode(\"Sprite\").QueueFree));\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[Tween] 的另一个有趣用途是动画化任意对象集:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var tween = create_tween()\n" +"for sprite in get_children():\n" +" tween.tween_property(sprite, \"position\", Vector2(0, 0), 1)\n" +"[/gdscript]\n" +"[csharp]\n" +"Tween tween = CreateTween();\n" +"foreach (Node sprite in GetChildren())\n" +" tween.TweenProperty(sprite, \"position\", Vector2.Zero, 1.0f);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"在上面的示例中,一个节点的所有子节点都被依次移动到位置 (0, 0)。\n" +"应该避免为对象的同一属性使用多个 [Tween]。如果两个或多个补间同时为同一个属性设" +"置动画,则最后创建的补间将优先使用,并分配最终值。如果要中断并重新启动动画,请" +"考虑将 [Tween] 赋给变量:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var tween\n" +"func animate():\n" +" if tween:\n" +" tween.kill() # 终止之前的补间动画。\n" +" tween = create_tween()\n" +"[/gdscript]\n" +"[csharp]\n" +"private Tween _tween;\n" +"\n" +"public void Animate()\n" +"{\n" +" if (_tween != null)\n" +" _tween.Kill(); // 终止之前的补间动画。\n" +" _tween = CreateTween();\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"一些 [Tweener] 会使用过渡和缓动。第一个接受一个 [enum TransitionType] 常量,指" +"的是处理动画时间的方式(相关示例见 [url=https://easings.net/]easings.net[/" +"url])。第二个接受一个 [enum EaseType] 常量,并控制 [code]trans_type[/code] 应" +"用于插值的位置(在开头、结尾或两者均有)。如果不知道该选择哪种过渡和缓动,可以" +"尝试使用 [constant EASE_IN_OUT] 并配合不同 [enum TransitionType] 常量,并使用" +"看起来最好的那个。\n" +"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" +"tween_cheatsheet.webp]补间缓动与过渡类型速查表[/url]\n" +"[b]注意:[/b]Tween 并不是针对重用设计的,尝试重用会造成未定义行为。每次从头开" +"始重新播放每个动画都请新建一个 Tween。请记住,Tween 是会立即开始的,所以请只在" +"需要开始动画时创建 Tween。\n" +"[b]注意:[/b]该补间在当前帧中的所有节点之后进行处理,即节点的 [method Node." +"_process] 方法(或 [method Node._physics_process],具体取决于传递给 [method " +"set_process_mode] 的值)会在补间之前被调用。" + msgid "" "Binds this [Tween] with the given [param node]. [Tween]s are processed " "directly by the [SceneTree], so they run independently of the animated nodes. " @@ -133606,6 +160606,43 @@ msgstr "" msgid "Aborts all tweening operations and invalidates the [Tween]." msgstr "中止所有补间操作,并使该 [Tween] 无效。" +msgid "" +"Makes the next [Tweener] run parallelly to the previous one.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var tween = create_tween()\n" +"tween.tween_property(...)\n" +"tween.parallel().tween_property(...)\n" +"tween.parallel().tween_property(...)\n" +"[/gdscript]\n" +"[csharp]\n" +"Tween tween = CreateTween();\n" +"tween.TweenProperty(...);\n" +"tween.Parallel().TweenProperty(...);\n" +"tween.Parallel().TweenProperty(...);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"All [Tweener]s in the example will run at the same time.\n" +"You can make the [Tween] parallel by default by using [method set_parallel]." +msgstr "" +"让下一个 [Tweener] 与上一个并行执行。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var tween = create_tween()\n" +"tween.tween_property(...)\n" +"tween.parallel().tween_property(...)\n" +"tween.parallel().tween_property(...)\n" +"[/gdscript]\n" +"[csharp]\n" +"Tween tween = CreateTween();\n" +"tween.TweenProperty(...);\n" +"tween.Parallel().TweenProperty(...);\n" +"tween.Parallel().TweenProperty(...);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"该示例中的所有 [Tweener] 都会同时执行。\n" +"你可以通过使用 [method set_parallel] 让该 [Tween] 默认并行。" + msgid "" "Pauses the tweening. The animation can be resumed by using [method play].\n" "[b]Note:[/b] If a Tween is paused and not bound to any node, it will exist " @@ -133621,6 +160658,38 @@ msgstr "" msgid "Resumes a paused or stopped [Tween]." msgstr "恢复已暂停或已停止的 [Tween]。" +msgid "" +"Sets the default ease type for [PropertyTweener]s and [MethodTweener]s " +"appended after this method.\n" +"Before this method is called, the default ease type is [constant " +"EASE_IN_OUT].\n" +"[codeblock]\n" +"var tween = create_tween()\n" +"tween.tween_property(self, \"position\", Vector2(300, 0), 0.5) # Uses " +"EASE_IN_OUT.\n" +"tween.set_ease(Tween.EASE_IN)\n" +"tween.tween_property(self, \"rotation_degrees\", 45.0, 0.5) # Uses EASE_IN.\n" +"[/codeblock]" +msgstr "" +"设置在该方法之后追加的 [PropertyTweener] 和 [MethodTweener] 的默认缓动类型。\n" +"调用该方法前的默认缓动类型为 [constant EASE_IN_OUT]。\n" +"[codeblock]\n" +"var tween = create_tween()\n" +"tween.tween_property(self, \"position\", Vector2(300, 0), 0.5) # 使用 " +"EASE_IN_OUT。\n" +"tween.set_ease(Tween.EASE_IN)\n" +"tween.tween_property(self, \"rotation_degrees\", 45.0, 0.5) # 使用 EASE_IN。\n" +"[/codeblock]" + +msgid "" +"If [param ignore] is [code]true[/code], the tween will ignore [member Engine." +"time_scale] and update with the real, elapsed time. This affects all " +"[Tweener]s and their delays. Default value is [code]false[/code]." +msgstr "" +"如果 [param ignore] 为 [code]true[/code],则该补间动画会忽略 [member Engine." +"time_scale],随实际流逝的时间更新。所有 [Tweener] 和对应的延迟都会受到影响。默" +"认值为 [code]false[/code]。" + msgid "" "Sets the number of times the tweening sequence will be repeated, i.e. " "[code]set_loops(2)[/code] will run the animation twice.\n" @@ -133688,6 +160757,78 @@ msgid "" "Scales the speed of tweening. This affects all [Tweener]s and their delays." msgstr "补间的速度缩放。影响所有 [Tweener] 及其延迟。" +msgid "" +"Sets the default transition type for [PropertyTweener]s and [MethodTweener]s " +"appended after this method.\n" +"Before this method is called, the default transition type is [constant " +"TRANS_LINEAR].\n" +"[codeblock]\n" +"var tween = create_tween()\n" +"tween.tween_property(self, \"position\", Vector2(300, 0), 0.5) # Uses " +"TRANS_LINEAR.\n" +"tween.set_trans(Tween.TRANS_SINE)\n" +"tween.tween_property(self, \"rotation_degrees\", 45.0, 0.5) # Uses " +"TRANS_SINE.\n" +"[/codeblock]" +msgstr "" +"设置在该方法之后追加的 [PropertyTweener] 和 [MethodTweener] 的默认过渡类型。\n" +"调用该方法前的默认过渡类型为 [constant TRANS_LINEAR]。\n" +"[codeblock]\n" +"var tween = create_tween()\n" +"tween.tween_property(self, \"position\", Vector2(300, 0), 0.5) # 使用 " +"TRANS_LINEAR。\n" +"tween.set_trans(Tween.TRANS_SINE)\n" +"tween.tween_property(self, \"rotation_degrees\", 45.0, 0.5) # 使用 " +"TRANS_SINE。\n" +"[/codeblock]" + +msgid "" +"Stops the tweening and resets the [Tween] to its initial state. This will not " +"remove any appended [Tweener]s.\n" +"[b]Note:[/b] This does [i]not[/i] reset targets of [PropertyTweener]s to " +"their values when the [Tween] first started.\n" +"[codeblock]\n" +"var tween = create_tween()\n" +"\n" +"# Will move from 0 to 500 over 1 second.\n" +"position.x = 0.0\n" +"tween.tween_property(self, \"position:x\", 500, 1.0)\n" +"\n" +"# Will be at (about) 250 when the timer finishes.\n" +"await get_tree().create_timer(0.5).timeout\n" +"\n" +"# Will now move from (about) 250 to 500 over 1 second,\n" +"# thus at half the speed as before.\n" +"tween.stop()\n" +"tween.play()\n" +"[/codeblock]\n" +"[b]Note:[/b] If a Tween is stopped and not bound to any node, it will exist " +"indefinitely until manually started or invalidated. If you lose a reference " +"to such Tween, you can retrieve it using [method SceneTree." +"get_processed_tweens]." +msgstr "" +"停止补间动画并将 [Tween] 重置为初始状态,不会移除已追加的 [Tweener]。\n" +"[b]注意:[/b]该方法[i]不会[/i]将 [PropertyTweener] 的目标重置为 [Tween] 首次开" +"始时的值。\n" +"[codeblock]\n" +"var tween = create_tween()\n" +"\n" +"# 将在 1 秒内从 0 移动到 500。\n" +"position.x = 0.0\n" +"tween.tween_property(self, \"position:x\", 500, 1.0)\n" +"\n" +"# 计时器结束时(大概)在 250。\n" +"await get_tree().create_timer(0.5).timeout\n" +"\n" +"# 现在将在 1 秒内从(大概)250 移动到 500,\n" +"# 因此速度为原先的一半。\n" +"tween.stop()\n" +"tween.play()\n" +"[/codeblock]\n" +"[b]注意:[/b]如果 Tween 被停止且未与任何节点绑定,则会无限存续下去,直到手动启" +"动或手动废除。如果你丢失了对这种 Tween 的引用,则可以通过 [method SceneTree." +"get_processed_tweens] 来获取。" + msgid "" "Creates and appends a [CallbackTweener]. This method can be used to call an " "arbitrary method in any object. Use [method Callable.bind] to bind additional " @@ -133933,6 +161074,139 @@ msgstr "" "[/csharp]\n" "[/codeblocks]" +msgid "" +"Creates and appends a [PropertyTweener]. This method tweens a [param " +"property] of an [param object] between an initial value and [param final_val] " +"in a span of time equal to [param duration], in seconds. The initial value by " +"default is the property's value at the time the tweening of the " +"[PropertyTweener] starts.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var tween = create_tween()\n" +"tween.tween_property($Sprite, \"position\", Vector2(100, 200), 1)\n" +"tween.tween_property($Sprite, \"position\", Vector2(200, 300), 1)\n" +"[/gdscript]\n" +"[csharp]\n" +"Tween tween = CreateTween();\n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"position\", new Vector2(100.0f, " +"200.0f), 1.0f);\n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"position\", new Vector2(200.0f, " +"300.0f), 1.0f);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"will move the sprite to position (100, 200) and then to (200, 300). If you " +"use [method PropertyTweener.from] or [method PropertyTweener.from_current], " +"the starting position will be overwritten by the given value instead. See " +"other methods in [PropertyTweener] to see how the tweening can be tweaked " +"further.\n" +"[b]Note:[/b] You can find the correct property name by hovering over the " +"property in the Inspector. You can also provide the components of a property " +"directly by using [code]\"property:component\"[/code] (eg. [code]position:x[/" +"code]), where it would only apply to that particular component.\n" +"[b]Example:[/b] Moving an object twice from the same position, with different " +"transition types:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var tween = create_tween()\n" +"tween.tween_property($Sprite, \"position\", Vector2.RIGHT * 300, 1)." +"as_relative().set_trans(Tween.TRANS_SINE)\n" +"tween.tween_property($Sprite, \"position\", Vector2.RIGHT * 300, 1)." +"as_relative().from_current().set_trans(Tween.TRANS_EXPO)\n" +"[/gdscript]\n" +"[csharp]\n" +"Tween tween = CreateTween();\n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"position\", Vector2.Right * " +"300.0f, 1.0f).AsRelative().SetTrans(Tween.TransitionType.Sine);\n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"position\", Vector2.Right * " +"300.0f, 1.0f).AsRelative().FromCurrent().SetTrans(Tween.TransitionType." +"Expo);\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"创建并追加一个 [PropertyTweener]。这个方法会将 [param object] 对象的 [param " +"property] 属性在初始值和最终值 [param final_val] 之间进行补间,持续时间为 " +"[param duration] 秒。初始值默认为该 [PropertyTweener] 启动时该属性的值。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var tween = create_tween()\n" +"tween.tween_property($Sprite, \"position\", Vector2(100, 200), 1)\n" +"tween.tween_property($Sprite, \"position\", Vector2(200, 300), 1)\n" +"[/gdscript]\n" +"[csharp]\n" +"Tween tween = CreateTween();\n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"position\", new Vector2(100.0f, " +"200.0f), 1.0f);\n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"position\", new Vector2(200.0f, " +"300.0f), 1.0f);\n" +"[/csharp]\n" +"[/codeblocks]\n" +"会将该精灵移动到 (100, 200) 然后再移动到 (200, 300)。如果你使用了 [method " +"PropertyTweener.from] 或 [method PropertyTweener.from_current],那么起始位置就" +"会被给定的值所覆盖。更多调整项请参阅 [PropertyTweener] 中的其他方法。\n" +"[b]注意:[/b]鼠标悬停在检查器中的属性上即可查看正确的属性名称。你还可以用 " +"[code]\"属性:组件\"[/code] 的形式提供属性中的组件(例如 [code]position:x[/" +"code]),这样就只会修改这个特定的组件。\n" +"[b]示例:[/b]使用不同的过渡类型从同一位置开始移动两次:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var tween = create_tween()\n" +"tween.tween_property($Sprite, \"position\", Vector2.RIGHT * 300, 1)." +"as_relative().set_trans(Tween.TRANS_SINE)\n" +"tween.tween_property($Sprite, \"position\", Vector2.RIGHT * 300, 1)." +"as_relative().from_current().set_trans(Tween.TRANS_EXPO)\n" +"[/gdscript]\n" +"[csharp]\n" +"Tween tween = CreateTween();\n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"position\", Vector2.Right * " +"300.0f, 1.0f).AsRelative().SetTrans(Tween.TransitionType.Sine);\n" +"tween.TweenProperty(GetNode(\"Sprite\"), \"position\", Vector2.Right * " +"300.0f, 1.0f).AsRelative().FromCurrent().SetTrans(Tween.TransitionType." +"Expo);\n" +"[/csharp]\n" +"[/codeblocks]" + +msgid "" +"Creates and appends a [SubtweenTweener]. This method can be used to nest " +"[param subtween] within this [Tween], allowing for the creation of more " +"complex and composable sequences.\n" +"[codeblock]\n" +"# Subtween will rotate the object.\n" +"var subtween = create_tween()\n" +"subtween.tween_property(self, \"rotation_degrees\", 45.0, 1.0)\n" +"subtween.tween_property(self, \"rotation_degrees\", 0.0, 1.0)\n" +"\n" +"# Parent tween will execute the subtween as one of its steps.\n" +"var tween = create_tween()\n" +"tween.tween_property(self, \"position:x\", 500, 3.0)\n" +"tween.tween_subtween(subtween)\n" +"tween.tween_property(self, \"position:x\", 300, 2.0)\n" +"[/codeblock]\n" +"[b]Note:[/b] The methods [method pause], [method stop], and [method " +"set_loops] can cause the parent [Tween] to get stuck on the subtween step; " +"see the documentation for those methods for more information.\n" +"[b]Note:[/b] The pause and process modes set by [method set_pause_mode] and " +"[method set_process_mode] on [param subtween] will be overridden by the " +"parent [Tween]'s settings." +msgstr "" +"创建并追加 [SubtweenTweener]。该方法可用于将 [param subtween] 嵌套至该 " +"[Tween] 中,从而创建更复杂、方便合成的动画序列。\n" +"[codeblock]\n" +"# 子补间动画会旋转该对象。\n" +"var subtween = create_tween()\n" +"subtween.tween_property(self, \"rotation_degrees\", 45.0, 1.0)\n" +"subtween.tween_property(self, \"rotation_degrees\", 0.0, 1.0)\n" +"\n" +"# 父补间动画会将子补间动画作为单一步骤执行。\n" +"var tween = create_tween()\n" +"tween.tween_property(self, \"position:x\", 500, 3.0)\n" +"tween.tween_subtween(subtween)\n" +"tween.tween_property(self, \"position:x\", 300, 2.0)\n" +"[/codeblock]\n" +"[b]注意:[/b][method pause]、[method stop]、[method set_loops] 等方法可能导致" +"父 [Tween] 卡在子补间动画步骤;详情见对应方法的文档。\n" +"[b]注意:[/b]使用 [method set_pause_mode] 和 [method set_process_mode] 对 " +"[param subtween] 设置的暂停模式和处理模式会被父 [Tween] 的设置覆盖。" + msgid "" "Emitted when the [Tween] has finished all tweening. Never emitted when the " "[Tween] is set to infinite looping (see [method set_loops])." @@ -134049,9 +161323,263 @@ msgstr "" "Tweener 是执行特定动画化的任务的对象,例如,在给定的时间,插值一个属性或调用一" "个方法。[Tweener] 不能被手动创建,你需要使用 [Tween] 中的专用方法。" +msgid "" +"Emitted when the [Tweener] has just finished its job or became invalid (e.g. " +"due to a freed object)." +msgstr "当该 [Tweener] 刚刚完成其任务或失效(例如对象被释放)时触发。" + msgid "Helper class to implement a UDP server." msgstr "用于实现 UDP 服务器的辅助类。" +msgid "" +"A simple server that opens a UDP socket and returns connected [PacketPeerUDP] " +"upon receiving new packets. See also [method PacketPeerUDP.connect_to_host].\n" +"After starting the server ([method listen]), you will need to [method poll] " +"it at regular intervals (e.g. inside [method Node._process]) for it to " +"process new packets, delivering them to the appropriate [PacketPeerUDP], and " +"taking new connections.\n" +"Below a small example of how it can be used:\n" +"[codeblocks]\n" +"[gdscript]\n" +"# server_node.gd\n" +"class_name ServerNode\n" +"extends Node\n" +"\n" +"var server = UDPServer.new()\n" +"var peers = []\n" +"\n" +"func _ready():\n" +" server.listen(4242)\n" +"\n" +"func _process(delta):\n" +" server.poll() # Important!\n" +" if server.is_connection_available():\n" +" var peer = server.take_connection()\n" +" var packet = peer.get_packet()\n" +" print(\"Accepted peer: %s:%s\" % [peer.get_packet_ip(), peer." +"get_packet_port()])\n" +" print(\"Received data: %s\" % [packet.get_string_from_utf8()])\n" +" # Reply so it knows we received the message.\n" +" peer.put_packet(packet)\n" +" # Keep a reference so we can keep contacting the remote peer.\n" +" peers.append(peer)\n" +"\n" +" for i in range(0, peers.size()):\n" +" pass # Do something with the connected peers.\n" +"[/gdscript]\n" +"[csharp]\n" +"// ServerNode.cs\n" +"using Godot;\n" +"using System.Collections.Generic;\n" +"\n" +"public partial class ServerNode : Node\n" +"{\n" +" private UdpServer _server = new UdpServer();\n" +" private List<PacketPeerUdp> _peers = new List<PacketPeerUdp>();\n" +"\n" +" public override void _Ready()\n" +" {\n" +" _server.Listen(4242);\n" +" }\n" +"\n" +" public override void _Process(double delta)\n" +" {\n" +" _server.Poll(); // Important!\n" +" if (_server.IsConnectionAvailable())\n" +" {\n" +" PacketPeerUdp peer = _server.TakeConnection();\n" +" byte[] packet = peer.GetPacket();\n" +" GD.Print($\"Accepted Peer: {peer.GetPacketIP()}:{peer." +"GetPacketPort()}\");\n" +" GD.Print($\"Received Data: {packet.GetStringFromUtf8()}\");\n" +" // Reply so it knows we received the message.\n" +" peer.PutPacket(packet);\n" +" // Keep a reference so we can keep contacting the remote peer.\n" +" _peers.Add(peer);\n" +" }\n" +" foreach (var peer in _peers)\n" +" {\n" +" // Do something with the peers.\n" +" }\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[codeblocks]\n" +"[gdscript]\n" +"# client_node.gd\n" +"class_name ClientNode\n" +"extends Node\n" +"\n" +"var udp = PacketPeerUDP.new()\n" +"var connected = false\n" +"\n" +"func _ready():\n" +" udp.connect_to_host(\"127.0.0.1\", 4242)\n" +"\n" +"func _process(delta):\n" +" if !connected:\n" +" # Try to contact server\n" +" udp.put_packet(\"The answer is... 42!\".to_utf8_buffer())\n" +" if udp.get_available_packet_count() > 0:\n" +" print(\"Connected: %s\" % udp.get_packet().get_string_from_utf8())\n" +" connected = true\n" +"[/gdscript]\n" +"[csharp]\n" +"// ClientNode.cs\n" +"using Godot;\n" +"\n" +"public partial class ClientNode : Node\n" +"{\n" +" private PacketPeerUdp _udp = new PacketPeerUdp();\n" +" private bool _connected = false;\n" +"\n" +" public override void _Ready()\n" +" {\n" +" _udp.ConnectToHost(\"127.0.0.1\", 4242);\n" +" }\n" +"\n" +" public override void _Process(double delta)\n" +" {\n" +" if (!_connected)\n" +" {\n" +" // Try to contact server\n" +" _udp.PutPacket(\"The Answer Is..42!\".ToUtf8Buffer());\n" +" }\n" +" if (_udp.GetAvailablePacketCount() > 0)\n" +" {\n" +" GD.Print($\"Connected: {_udp.GetPacket()." +"GetStringFromUtf8()}\");\n" +" _connected = true;\n" +" }\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"简易服务器,会打开 UDP 套接字,并在收到新数据包时返回已连接的 " +"[PacketPeerUDP]。另见 [method PacketPeerUDP.connect_to_host]。\n" +"服务器启动后([method listen]),你需要调用 [method poll] 按照一定的间隔轮询" +"(例如在 [method Node._process] 中)才能处理新数据包、将它们传递给合适的 " +"[PacketPeerUDP]、获取新连接。\n" +"下面是简单的用法示例:\n" +"[codeblocks]\n" +"[gdscript]\n" +"# server_node.gd\n" +"class_name ServerNode\n" +"extends Node\n" +"\n" +"var server = UDPServer.new()\n" +"var peers = []\n" +"\n" +"func _ready():\n" +" server.listen(4242)\n" +"\n" +"func _process(delta):\n" +" server.poll() # 重要!\n" +" if server.is_connection_available():\n" +" var peer = server.take_connection()\n" +" var packet = peer.get_packet()\n" +" print(\"接受对等体:%s:%s\" % [peer.get_packet_ip(), peer." +"get_packet_port()])\n" +" print(\"接收到数据:%s\" % [packet.get_string_from_utf8()])\n" +" # 进行回复,这样对方就知道我们收到了消息。\n" +" peer.put_packet(packet)\n" +" # 保持引用,这样我们就能继续与远程对等体联系。\n" +" peers.append(peer)\n" +"\n" +" for i in range(0, peers.size()):\n" +" pass # 针对已连接的对等体进行操作。\n" +"[/gdscript]\n" +"[csharp]\n" +"// ServerNode.cs\n" +"using Godot;\n" +"using System.Collections.Generic;\n" +"\n" +"public partial class ServerNode : Node\n" +"{\n" +" private UdpServer _server = new UdpServer();\n" +" private List<PacketPeerUdp> _peers = new List<PacketPeerUdp>();\n" +"\n" +" public override void _Ready()\n" +" {\n" +" _server.Listen(4242);\n" +" }\n" +"\n" +" public override void _Process(double delta)\n" +" {\n" +" _server.Poll(); // 重要!\n" +" if (_server.IsConnectionAvailable())\n" +" {\n" +" PacketPeerUdp peer = _server.TakeConnection();\n" +" byte[] packet = peer.GetPacket();\n" +" GD.Print($\"接受对等体:{peer.GetPacketIP()}:{peer." +"GetPacketPort()}\");\n" +" GD.Print($\"接收到数据:{packet.GetStringFromUtf8()}\");\n" +" // 进行回复,这样对方就知道我们收到了消息。\n" +" peer.PutPacket(packet);\n" +" // 保持引用,这样我们就能继续与远程对等体联系。\n" +" _peers.Add(peer);\n" +" }\n" +" foreach (var peer in _peers)\n" +" {\n" +" // 针对已连接的对等体进行操作。\n" +" }\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[codeblocks]\n" +"[gdscript]\n" +"# client_node.gd\n" +"class_name ClientNode\n" +"extends Node\n" +"\n" +"var udp = PacketPeerUDP.new()\n" +"var connected = false\n" +"\n" +"func _ready():\n" +" udp.connect_to_host(\"127.0.0.1\", 4242)\n" +"\n" +"func _process(delta):\n" +" if !connected:\n" +" # 尝试连接服务器\n" +" udp.put_packet(\"答案是……42!\".to_utf8_buffer())\n" +" if udp.get_available_packet_count() > 0:\n" +" print(\"已连接:%s\" % udp.get_packet().get_string_from_utf8())\n" +" connected = true\n" +"[/gdscript]\n" +"[csharp]\n" +"// ClientNode.cs\n" +"using Godot;\n" +"\n" +"public partial class ClientNode : Node\n" +"{\n" +" private PacketPeerUdp _udp = new PacketPeerUdp();\n" +" private bool _connected = false;\n" +"\n" +" public override void _Ready()\n" +" {\n" +" _udp.ConnectToHost(\"127.0.0.1\", 4242);\n" +" }\n" +"\n" +" public override void _Process(double delta)\n" +" {\n" +" if (!_connected)\n" +" {\n" +" // 尝试联系服务器\n" +" _udp.PutPacket(\"答案是……42!\".ToUtf8Buffer());\n" +" }\n" +" if (_udp.GetAvailablePacketCount() > 0)\n" +" {\n" +" GD.Print($\"已连接:{_udp.GetPacket().GetStringFromUtf8()}\");\n" +" _connected = true;\n" +" }\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Returns [code]true[/code] if a packet with a new address/port combination was " "received on the socket." @@ -134524,6 +162052,169 @@ msgid "" "querying and port forwarding." msgstr "通用即插即用(UPnP)功能,用于网络设备的发现、查询及端口映射。" +msgid "" +"This class can be used to discover compatible [UPNPDevice]s on the local " +"network and execute commands on them, like managing port mappings (for port " +"forwarding/NAT traversal) and querying the local and remote network IP " +"address. Note that methods on this class are synchronous and block the " +"calling thread.\n" +"To forward a specific port (here [code]7777[/code], note both [method " +"discover] and [method add_port_mapping] can return errors that should be " +"checked):\n" +"[codeblock]\n" +"var upnp = UPNP.new()\n" +"upnp.discover()\n" +"upnp.add_port_mapping(7777)\n" +"[/codeblock]\n" +"To close a specific port (e.g. after you have finished using it):\n" +"[codeblock]\n" +"upnp.delete_port_mapping(port)\n" +"[/codeblock]\n" +"[b]Note:[/b] UPnP discovery blocks the current thread. To perform discovery " +"without blocking the main thread, use [Thread]s like this:\n" +"[codeblock]\n" +"# Emitted when UPnP port mapping setup is completed (regardless of success or " +"failure).\n" +"signal upnp_completed(error)\n" +"\n" +"# Replace this with your own server port number between 1024 and 65535.\n" +"const SERVER_PORT = 3928\n" +"var thread = null\n" +"\n" +"func _upnp_setup(server_port):\n" +" # UPNP queries take some time.\n" +" var upnp = UPNP.new()\n" +" var err = upnp.discover()\n" +"\n" +" if err != OK:\n" +" push_error(str(err))\n" +" upnp_completed.emit(err)\n" +" return\n" +"\n" +" if upnp.get_gateway() and upnp.get_gateway().is_valid_gateway():\n" +" upnp.add_port_mapping(server_port, server_port, ProjectSettings." +"get_setting(\"application/config/name\"), \"UDP\")\n" +" upnp.add_port_mapping(server_port, server_port, ProjectSettings." +"get_setting(\"application/config/name\"), \"TCP\")\n" +" upnp_completed.emit(OK)\n" +"\n" +"func _ready():\n" +" thread = Thread.new()\n" +" thread.start(_upnp_setup.bind(SERVER_PORT))\n" +"\n" +"func _exit_tree():\n" +" # Wait for thread finish here to handle game exit while the thread is " +"running.\n" +" thread.wait_to_finish()\n" +"[/codeblock]\n" +"[b]Terminology:[/b] In the context of UPnP networking, \"gateway\" (or " +"\"internet gateway device\", short IGD) refers to network devices that allow " +"computers in the local network to access the internet (\"wide area network\", " +"WAN). These gateways are often also called \"routers\".\n" +"[b]Pitfalls:[/b]\n" +"- As explained above, these calls are blocking and shouldn't be run on the " +"main thread, especially as they can block for multiple seconds at a time. Use " +"threading!\n" +"- Networking is physical and messy. Packets get lost in transit or get " +"filtered, addresses, free ports and assigned mappings change, and devices may " +"leave or join the network at any time. Be mindful of this, be diligent when " +"checking and handling errors, and handle these gracefully if you can: add " +"clear error UI, timeouts and re-try handling.\n" +"- Port mappings may change (and be removed) at any time, and the remote/" +"external IP address of the gateway can change likewise. You should consider " +"re-querying the external IP and try to update/refresh the port mapping " +"periodically (for example, every 5 minutes and on networking failures).\n" +"- Not all devices support UPnP, and some users disable UPnP support. You need " +"to handle this (e.g. documenting and requiring the user to manually forward " +"ports, or adding alternative methods of NAT traversal, like a relay/mirror " +"server, or NAT hole punching, STUN/TURN, etc.).\n" +"- Consider what happens on mapping conflicts. Maybe multiple users on the " +"same network would like to play your game at the same time, or maybe another " +"application uses the same port. Make the port configurable, and optimally " +"choose a port automatically (re-trying with a different port on failure).\n" +"[b]Further reading:[/b] If you want to know more about UPnP (and the Internet " +"Gateway Device (IGD) and Port Control Protocol (PCP) specifically), " +"[url=https://en.wikipedia.org/wiki/Universal_Plug_and_Play]Wikipedia[/url] is " +"a good first stop, the specification can be found at the [url=https://" +"openconnectivity.org/developer/specifications/upnp-resources/upnp/]Open " +"Connectivity Foundation[/url] and Godot's implementation is based on the " +"[url=https://github.com/miniupnp/miniupnp]MiniUPnP client[/url]." +msgstr "" +"这个类可用于在本地网络中发现兼容的 [UPNPDevice] 并在这些设备上执行命令,如管理" +"端口映射(用于端口转发/NAT 穿透)和查询本地及远程网络 IP 地址。请注意,这个类" +"的方法都是同步的,会阻塞调用线程。\n" +"要转发指定端口(此处为 [code]7777[/code],请注意 [method discover] 和 [method " +"add_port_mapping] 都可能返回错误,应进行检查):\n" +"[codeblock]\n" +"var upnp = UPNP.new()\n" +"upnp.discover()\n" +"upnp.add_port_mapping(7777)\n" +"[/codeblock]\n" +"要关闭指定端口(例如结束使用后):\n" +"[codeblock]\n" +"upnp.delete_port_mapping(port)\n" +"[/codeblock]\n" +"[b]注意:[/b]UPnP 发现会阻塞当前线程。要在不阻塞主线程的前提下执行发现,请像这" +"样使用 [Thread]:\n" +"[codeblock]\n" +"# UPnP 端口映射建立完成时发出(无论成败)。\n" +"signal upnp_completed(error)\n" +"\n" +"# 请将其替换为你自己的服务器端口号,在 1024 和 65535 之间。\n" +"const SERVER_PORT = 3928\n" +"var thread = null\n" +"\n" +"func _upnp_setup(server_port):\n" +" # UPNP 查询比较耗时。\n" +" var upnp = UPNP.new()\n" +" var err = upnp.discover()\n" +"\n" +" if err != OK:\n" +" push_error(str(err))\n" +" upnp_completed.emit(err)\n" +" return\n" +"\n" +" if upnp.get_gateway() and upnp.get_gateway().is_valid_gateway():\n" +" upnp.add_port_mapping(server_port, server_port, ProjectSettings." +"get_setting(\"application/config/name\"), \"UDP\")\n" +" upnp.add_port_mapping(server_port, server_port, ProjectSettings." +"get_setting(\"application/config/name\"), \"TCP\")\n" +" upnp_completed.emit(OK)\n" +"\n" +"func _ready():\n" +" thread = Thread.new()\n" +" thread.start(_upnp_setup.bind(SERVER_PORT))\n" +"\n" +"func _exit_tree():\n" +" # 游戏退出但线程还在运行时,在此处等待线程完成。\n" +" thread.wait_to_finish()\n" +"[/codeblock]\n" +"[b]术语:[/b]UPnP 网络中,“网关”(gateway,或称“互联网网关设备”,internet " +"gateway device,简称 IGD)指的是在局域网中让计算机能够访问互联网(“广域网”," +"wide area network,WAN)的网络设备。这些网关经常也叫做“路由器”。\n" +"[b]陷阱:[/b]\n" +"- 前文解释过,这些调用都是阻塞的,不应该在主线程上执行,一次就能阻塞上很多秒。" +"用用线程吧!\n" +"- 网络是实打实的混乱。数据包可能会在传输过程中丢失或者被过滤掉,地址、空闲端" +"口、端口映射有可能发生变化,设备可以随时离开或者加入网络。请考虑周全,老老实实" +"地检查错误并进行处理,处理错误时请尽量友好:添加简洁的报错 UI、超时处理、重试" +"机制。\n" +"- 端口映射是随时会变的(也可以被删除),网关的远程/外部 IP 也可能发生改变。你" +"应该考虑定期重新查询外部 IP、尝试更新/刷新端口映射(例如每隔 5 分钟或者在发生" +"网络错误时执行)。\n" +"- 并不是所有的设备都支持 UPnP,有些用户还会禁用 UPnP 支持。你需要处理这种情况" +"(例如编写文档,要求用户手动进行端口映射,或者加入接力/镜像服务器、NAT 打洞、" +"STUN/TURN 等 NAT 穿透的备用方案)。\n" +"- 请考虑映射冲突时该怎么办。可能在同一个网络上同时有多个用户想要来玩你的游戏," +"或者有其他应用程序用了一样的端口。请把端口号做成可配置的,最好能够自动选择(失" +"败时重试其他端口)。\n" +"[b]拓展阅读:[/b]如果你想了解更多关于 UPnP(尤其是 Internet Gateway Device" +"(IGD)和 Port Control Protocol(PCP)),可以首先查看[url=https://en." +"wikipedia.org/wiki/Universal_Plug_and_Play]维基百科[/url],技术规范可以在 " +"[url=https://openconnectivity.org/developer/specifications/upnp-resources/" +"upnp/]Open Connectivity 基金会[/url]找到,Godot 的实现基于的是 [url=https://" +"github.com/miniupnp/miniupnp]MiniUPnP 客户端[/url]。" + msgid "Adds the given [UPNPDevice] to the list of discovered devices." msgstr "将给定的 [UPNPDevice] 添加到已发现设备的列表中。" @@ -135155,11 +162846,11 @@ msgstr "" "atan2] 进行调用的结果:[code]atan2(y, x)[/code]。" msgid "" -"Returns the angle to the given vector, in radians.\n" +"Returns the signed angle to the given vector, in radians.\n" "[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" "vector2_angle_to.png]Illustration of the returned angle.[/url]" msgstr "" -"返回与给定向量的夹角,单位为弧度。\n" +"返回与给定向量的带符号夹角,单位为弧度。\n" "[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" "vector2_angle_to.png]返回夹角示意图。[/url]" @@ -135316,6 +163007,25 @@ msgid "" "infinity)." msgstr "返回一个新的向量,所有的向量都被四舍五入,向负无穷大。" +msgid "" +"Creates a unit [Vector2] rotated to the given [param angle] in radians. This " +"is equivalent to doing [code]Vector2(cos(angle), sin(angle))[/code] or " +"[code]Vector2.RIGHT.rotated(angle)[/code].\n" +"[codeblock]\n" +"print(Vector2.from_angle(0)) # Prints (1.0, 0.0)\n" +"print(Vector2(1, 0).angle()) # Prints 0.0, which is the angle used above.\n" +"print(Vector2.from_angle(PI / 2)) # Prints (0.0, 1.0)\n" +"[/codeblock]" +msgstr "" +"创建单位 [Vector2] 并将其旋转到给定的 [param angle],单位为弧度。相当于执行 " +"[code]Vector2(cos(angle), sin(angle))[/code] 或 [code]Vector2.RIGHT." +"rotated(angle)[/code]。\n" +"[codeblock]\n" +"print(Vector2.from_angle(0)) # 输出 (1.0, 0.0)\n" +"print(Vector2(1, 0).angle()) # 输出 0.0,即上一行所使用的角度。\n" +"print(Vector2.from_angle(PI / 2)) # 输出 (0.0, 1.0)\n" +"[/codeblock]" + msgid "" "Returns [code]true[/code] if this vector and [param to] are approximately " "equal, by running [method @GlobalScope.is_equal_approx] on each component." @@ -135365,6 +163075,13 @@ msgstr "" "返回此向量和 [param to] 之间,按数量 [param weight] 线性插值结果。[param " "weight] 在 [code]0.0[/code] 到 [code]1.0[/code] 的范围内,代表插值的量。" +msgid "" +"Returns the vector with a maximum length by limiting its length to [param " +"length]. If the vector is non-finite, the result is undefined." +msgstr "" +"返回应用了最大长度限制的向量,长度被限制到 [param length]。如果向量非有限,则" +"结果未定义。" + msgid "" "Returns the component-wise maximum of this and [param with], equivalent to " "[code]Vector2(maxf(x, with.x), maxf(y, with.y))[/code]." @@ -135614,12 +163331,60 @@ msgstr "" "affine_inverse() * vector[/code] 代替。请参阅 [method Transform2D." "affine_inverse]。" +msgid "" +"Multiplies each component of the [Vector2] by the components of the given " +"[Vector2].\n" +"[codeblock]\n" +"print(Vector2(10, 20) * Vector2(3, 4)) # Prints (30.0, 80.0)\n" +"[/codeblock]" +msgstr "" +"将该 [Vector2] 的每个分量乘以给定 [Vector2] 的对应分量。\n" +"[codeblock]\n" +"print(Vector2(10, 20) * Vector2(3, 4)) # 输出 (30.0, 80.0)\n" +"[/codeblock]" + msgid "Multiplies each component of the [Vector2] by the given [float]." msgstr "将该 [Vector2] 的每个分量乘以给定的 [float]。" msgid "Multiplies each component of the [Vector2] by the given [int]." msgstr "将该 [Vector2] 的每个分量乘以给定的 [int]。" +msgid "" +"Adds each component of the [Vector2] by the components of the given " +"[Vector2].\n" +"[codeblock]\n" +"print(Vector2(10, 20) + Vector2(3, 4)) # Prints (13.0, 24.0)\n" +"[/codeblock]" +msgstr "" +"将该 [Vector2] 的每个分量加上给定 [Vector2] 的对应分量。\n" +"[codeblock]\n" +"print(Vector2(10, 20) + Vector2(3, 4)) # 输出 (13.0, 24.0)\n" +"[/codeblock]" + +msgid "" +"Subtracts each component of the [Vector2] by the components of the given " +"[Vector2].\n" +"[codeblock]\n" +"print(Vector2(10, 20) - Vector2(3, 4)) # Prints (7.0, 16.0)\n" +"[/codeblock]" +msgstr "" +"将该 [Vector2] 的每个分量减去给定 [Vector2] 的对应分量。\n" +"[codeblock]\n" +"print(Vector2(10, 20) - Vector2(3, 4)) # 输出 (7.0, 16.0)\n" +"[/codeblock]" + +msgid "" +"Divides each component of the [Vector2] by the components of the given " +"[Vector2].\n" +"[codeblock]\n" +"print(Vector2(10, 20) / Vector2(2, 5)) # Prints (5.0, 4.0)\n" +"[/codeblock]" +msgstr "" +"将该 [Vector2] 的每个分量除以给定 [Vector2] 的对应分量。\n" +"[codeblock]\n" +"print(Vector2(10, 20) / Vector2(2, 5)) # 输出 (5.0, 4.0)\n" +"[/codeblock]" + msgid "Divides each component of the [Vector2] by the given [float]." msgstr "将该 [Vector2] 的每个分量除以给定的 [float]。" @@ -135826,9 +163591,113 @@ msgstr "" msgid "Returns [code]true[/code] if the vectors are not equal." msgstr "如果向量不相等,则返回 [code]true[/code]。" +msgid "" +"Gets the remainder of each component of the [Vector2i] with the components of " +"the given [Vector2i]. This operation uses truncated division, which is often " +"not desired as it does not work well with negative numbers. Consider using " +"[method @GlobalScope.posmod] instead if you want to handle negative numbers.\n" +"[codeblock]\n" +"print(Vector2i(10, -20) % Vector2i(7, 8)) # Prints (3, -4)\n" +"[/codeblock]" +msgstr "" +"获取该 [Vector2i] 的每个分量与给定 [Vector2i] 中分量的余数。这个运算使用的是截" +"断式除法,因为对负数不友好,所以通常不会想要使用。如果你想要处理负数,请考虑改" +"用 [method @GlobalScope.posmod]。\n" +"[codeblock]\n" +"print(Vector2i(10, -20) % Vector2i(7, 8)) # 输出 (3, -4)\n" +"[/codeblock]" + +msgid "" +"Gets the remainder of each component of the [Vector2i] with the given [int]. " +"This operation uses truncated division, which is often not desired as it does " +"not work well with negative numbers. Consider using [method @GlobalScope." +"posmod] instead if you want to handle negative numbers.\n" +"[codeblock]\n" +"print(Vector2i(10, -20) % 7) # Prints (3, -6)\n" +"[/codeblock]" +msgstr "" +"获取该 [Vector2i] 的每个分量与给定的 [int] 的余数。这个运算使用的是截断式除" +"法,因为对负数不友好,所以通常不会想要使用。如果你想要处理负数,请考虑改用 " +"[method @GlobalScope.posmod]。\n" +"[codeblock]\n" +"print(Vector2i(10, -20) % 7) # 输出 (3, -6)\n" +"[/codeblock]" + +msgid "" +"Multiplies each component of the [Vector2i] by the components of the given " +"[Vector2i].\n" +"[codeblock]\n" +"print(Vector2i(10, 20) * Vector2i(3, 4)) # Prints (30, 80)\n" +"[/codeblock]" +msgstr "" +"将该 [Vector2i] 的每个分量乘以给定 [Vector2i] 的对应分量。\n" +"[codeblock]\n" +"print(Vector2i(10, 20) * Vector2i(3, 4)) # 输出 (30, 80)\n" +"[/codeblock]" + +msgid "" +"Multiplies each component of the [Vector2i] by the given [float]. Returns a " +"[Vector2].\n" +"[codeblock]\n" +"print(Vector2i(10, 15) * 0.9) # Prints (9.0, 13.5)\n" +"[/codeblock]" +msgstr "" +"将该 [Vector2i] 的每个分量乘以给定的 [float]。返回的是 [Vector2]。\n" +"[codeblock]\n" +"print(Vector2i(10, 15) * 0.9) # 输出 (9.0, 13.5)\n" +"[/codeblock]" + msgid "Multiplies each component of the [Vector2i] by the given [int]." msgstr "将该 [Vector2i] 的每个分量乘以给定的 [int]。" +msgid "" +"Adds each component of the [Vector2i] by the components of the given " +"[Vector2i].\n" +"[codeblock]\n" +"print(Vector2i(10, 20) + Vector2i(3, 4)) # Prints (13, 24)\n" +"[/codeblock]" +msgstr "" +"将该 [Vector2i] 的每个分量加上给定 [Vector2i] 的对应分量。\n" +"[codeblock]\n" +"print(Vector2i(10, 20) + Vector2i(3, 4)) # 输出 (13, 24)\n" +"[/codeblock]" + +msgid "" +"Subtracts each component of the [Vector2i] by the components of the given " +"[Vector2i].\n" +"[codeblock]\n" +"print(Vector2i(10, 20) - Vector2i(3, 4)) # Prints (7, 16)\n" +"[/codeblock]" +msgstr "" +"将该 [Vector2i] 的每个分量减去给定 [Vector2i] 的对应分量。\n" +"[codeblock]\n" +"print(Vector2i(10, 20) - Vector2i(3, 4)) # 输出 (7, 16)\n" +"[/codeblock]" + +msgid "" +"Divides each component of the [Vector2i] by the components of the given " +"[Vector2i].\n" +"[codeblock]\n" +"print(Vector2i(10, 20) / Vector2i(2, 5)) # Prints (5, 4)\n" +"[/codeblock]" +msgstr "" +"将该 [Vector2i] 的每个分量除以给定 [Vector2i] 的对应分量。\n" +"[codeblock]\n" +"print(Vector2i(10, 20) / Vector2i(2, 5)) # 输出 (5, 4)\n" +"[/codeblock]" + +msgid "" +"Divides each component of the [Vector2i] by the given [float]. Returns a " +"[Vector2].\n" +"[codeblock]\n" +"print(Vector2i(10, 20) / 2.9) # Prints (5.0, 10.0)\n" +"[/codeblock]" +msgstr "" +"将该 [Vector2i] 的每个分量除以给定的 [float]。返回的是 [Vector2]。\n" +"[codeblock]\n" +"print(Vector2i(10, 20) / 2.9) # 输出 (5.0, 10.0)\n" +"[/codeblock]" + msgid "Divides each component of the [Vector2i] by the given [int]." msgstr "将该 [Vector2i] 的每个分量除以给定的 [int]。" @@ -136190,9 +164059,57 @@ msgstr "" "affine_inverse() * vector[/code] 代替。请参阅 [method Transform3D." "affine_inverse]。" +msgid "" +"Multiplies each component of the [Vector3] by the components of the given " +"[Vector3].\n" +"[codeblock]\n" +"print(Vector3(10, 20, 30) * Vector3(3, 4, 5)) # Prints (30.0, 80.0, 150.0)\n" +"[/codeblock]" +msgstr "" +"将该 [Vector3] 的每个分量乘以给定 [Vector3] 的对应分量。\n" +"[codeblock]\n" +"print(Vector3(10, 20, 30) * Vector3(3, 4, 5)) # 输出 (30.0, 80.0, 150.0)\n" +"[/codeblock]" + msgid "Multiplies each component of the [Vector3] by the given [int]." msgstr "将该 [Vector3] 的每个分量乘以给定的 [int]。" +msgid "" +"Adds each component of the [Vector3] by the components of the given " +"[Vector3].\n" +"[codeblock]\n" +"print(Vector3(10, 20, 30) + Vector3(3, 4, 5)) # Prints (13.0, 24.0, 35.0)\n" +"[/codeblock]" +msgstr "" +"将该 [Vector3] 的每个分量加上给定 [Vector3] 的对应分量。\n" +"[codeblock]\n" +"print(Vector3(10, 20, 30) + Vector3(3, 4, 5)) # 输出 (13.0, 24.0, 35.0)\n" +"[/codeblock]" + +msgid "" +"Subtracts each component of the [Vector3] by the components of the given " +"[Vector3].\n" +"[codeblock]\n" +"print(Vector3(10, 20, 30) - Vector3(3, 4, 5)) # Prints (7.0, 16.0, 25.0)\n" +"[/codeblock]" +msgstr "" +"将该 [Vector3] 的每个分量减去给定 [Vector3] 的对应分量。\n" +"[codeblock]\n" +"print(Vector3(10, 20, 30) - Vector3(3, 4, 5)) # 输出 (7.0, 16.0, 25.0)\n" +"[/codeblock]" + +msgid "" +"Divides each component of the [Vector3] by the components of the given " +"[Vector3].\n" +"[codeblock]\n" +"print(Vector3(10, 20, 30) / Vector3(2, 5, 3)) # Prints (5.0, 4.0, 10.0)\n" +"[/codeblock]" +msgstr "" +"将该 [Vector3] 的每个分量除以给定 [Vector3] 的对应分量。\n" +"[codeblock]\n" +"print(Vector3(10, 20, 30) / Vector3(2, 5, 3)) # 输出 (5.0, 4.0, 10.0)\n" +"[/codeblock]" + msgid "Divides each component of the [Vector3] by the given [float]." msgstr "将该 [Vector3] 的每个分量除以给定的 [float]。" @@ -136371,9 +164288,113 @@ msgid "" "global direction of north." msgstr "前单位向量。代表局部的前方向,全局的北方向。" +msgid "" +"Gets the remainder of each component of the [Vector3i] with the components of " +"the given [Vector3i]. This operation uses truncated division, which is often " +"not desired as it does not work well with negative numbers. Consider using " +"[method @GlobalScope.posmod] instead if you want to handle negative numbers.\n" +"[codeblock]\n" +"print(Vector3i(10, -20, 30) % Vector3i(7, 8, 9)) # Prints (3, -4, 3)\n" +"[/codeblock]" +msgstr "" +"获取该 [Vector3i] 的每个分量与给定 [Vector3i] 中分量的余数。这个运算使用的是截" +"断式除法,因为对负数不友好,所以通常不会想要使用。如果你想要处理负数,请考虑改" +"用 [method @GlobalScope.posmod]。\n" +"[codeblock]\n" +"print(Vector3i(10, -20, 30) % Vector3i(7, 8, 9)) # 输出 (3, -4, 3)\n" +"[/codeblock]" + +msgid "" +"Gets the remainder of each component of the [Vector3i] with the given [int]. " +"This operation uses truncated division, which is often not desired as it does " +"not work well with negative numbers. Consider using [method @GlobalScope." +"posmod] instead if you want to handle negative numbers.\n" +"[codeblock]\n" +"print(Vector3i(10, -20, 30) % 7) # Prints (3, -6, 2)\n" +"[/codeblock]" +msgstr "" +"获取该 [Vector3i] 的每个分量与给定的 [int] 的余数。这个运算使用的是截断式除" +"法,因为对负数不友好,所以通常不会想要使用。如果你想要处理负数,请考虑改用 " +"[method @GlobalScope.posmod]。\n" +"[codeblock]\n" +"print(Vector3i(10, -20, 30) % 7) # 输出 (3, -6, 2)\n" +"[/codeblock]" + +msgid "" +"Multiplies each component of the [Vector3i] by the components of the given " +"[Vector3i].\n" +"[codeblock]\n" +"print(Vector3i(10, 20, 30) * Vector3i(3, 4, 5)) # Prints (30, 80, 150)\n" +"[/codeblock]" +msgstr "" +"将该 [Vector3i] 的每个分量乘以给定 [Vector3i] 的对应分量。\n" +"[codeblock]\n" +"print(Vector3i(10, 20, 30) * Vector3i(3, 4, 5)) # 输出 (30, 80, 150)\n" +"[/codeblock]" + +msgid "" +"Multiplies each component of the [Vector3i] by the given [float]. Returns a " +"[Vector3].\n" +"[codeblock]\n" +"print(Vector3i(10, 15, 20) * 0.9) # Prints (9.0, 13.5, 18.0)\n" +"[/codeblock]" +msgstr "" +"将该 [Vector3i] 的每个分量乘以给定的 [float]。返回的是 [Vector3]。\n" +"[codeblock]\n" +"print(Vector3i(10, 15, 20) * 0.9) # 输出 (9.0, 13.5, 18.0)\n" +"[/codeblock]" + msgid "Multiplies each component of the [Vector3i] by the given [int]." msgstr "将该 [Vector3i] 的每个分量乘以给定的 [int]。" +msgid "" +"Adds each component of the [Vector3i] by the components of the given " +"[Vector3i].\n" +"[codeblock]\n" +"print(Vector3i(10, 20, 30) + Vector3i(3, 4, 5)) # Prints (13, 24, 35)\n" +"[/codeblock]" +msgstr "" +"将该 [Vector3i] 的每个分量加上给定 [Vector3i] 的对应分量。\n" +"[codeblock]\n" +"print(Vector3i(10, 20, 30) + Vector3i(3, 4, 5)) # 输出 (13, 24, 35)\n" +"[/codeblock]" + +msgid "" +"Subtracts each component of the [Vector3i] by the components of the given " +"[Vector3i].\n" +"[codeblock]\n" +"print(Vector3i(10, 20, 30) - Vector3i(3, 4, 5)) # Prints (7, 16, 25)\n" +"[/codeblock]" +msgstr "" +"将该 [Vector3i] 的每个分量减去给定 [Vector3i] 的对应分量。\n" +"[codeblock]\n" +"print(Vector3i(10, 20, 30) - Vector3i(3, 4, 5)) # 输出 (7, 16, 25)\n" +"[/codeblock]" + +msgid "" +"Divides each component of the [Vector3i] by the components of the given " +"[Vector3i].\n" +"[codeblock]\n" +"print(Vector3i(10, 20, 30) / Vector3i(2, 5, 3)) # Prints (5, 4, 10)\n" +"[/codeblock]" +msgstr "" +"将该 [Vector3i] 的每个分量除以给定 [Vector3i] 的对应分量。\n" +"[codeblock]\n" +"print(Vector3i(10, 20, 30) / Vector3i(2, 5, 3)) # 输出 (5, 4, 10)\n" +"[/codeblock]" + +msgid "" +"Divides each component of the [Vector3i] by the given [float]. Returns a " +"[Vector3].\n" +"[codeblock]\n" +"print(Vector3i(10, 20, 30) / 2.9) # Prints (5.0, 10.0, 15.0)\n" +"[/codeblock]" +msgstr "" +"将该 [Vector3i] 的每个分量除以给定的 [float]。返回的是 [Vector3]。\n" +"[codeblock]\n" +"print(Vector3i(10, 20, 30) / 2.9) # 输出 (5.0, 10.0, 15.0)\n" +"[/codeblock]" + msgid "Divides each component of the [Vector3i] by the given [int]." msgstr "将该 [Vector3i] 的每个分量除以给定的 [int]。" @@ -136549,9 +164570,87 @@ msgstr "" "对于通过投影的逆进行的变换,可以使用 [code]projection.inverse() * vector[/" "code] 代替。请参阅 [method Projection.inverse]。" +msgid "" +"Multiplies each component of the [Vector4] by the components of the given " +"[Vector4].\n" +"[codeblock]\n" +"print(Vector4(10, 20, 30, 40) * Vector4(3, 4, 5, 6)) # Prints (30.0, 80.0, " +"150.0, 240.0)\n" +"[/codeblock]" +msgstr "" +"将该 [Vector4] 的每个分量乘以给定 [Vector4] 的对应分量。\n" +"[codeblock]\n" +"print(Vector4(10, 20, 30, 40) * Vector4(3, 4, 5, 6)) # 输出 (30.0, 80.0, " +"150.0, 240.0)\n" +"[/codeblock]" + +msgid "" +"Multiplies each component of the [Vector4] by the given [float].\n" +"[codeblock]\n" +"print(Vector4(10, 20, 30, 40) * 2) # Prints (20.0, 40.0, 60.0, 80.0)\n" +"[/codeblock]" +msgstr "" +"将该 [Vector4] 的每个分量乘以给定的 [float]。\n" +"[codeblock]\n" +"print(Vector4(10, 20, 30, 40) * 2) # 输出 (20.0, 40.0, 60.0, 80.0)\n" +"[/codeblock]" + msgid "Multiplies each component of the [Vector4] by the given [int]." msgstr "将该 [Vector4] 的每个分量乘以给定的 [int]。" +msgid "" +"Adds each component of the [Vector4] by the components of the given " +"[Vector4].\n" +"[codeblock]\n" +"print(Vector4(10, 20, 30, 40) + Vector4(3, 4, 5, 6)) # Prints (13.0, 24.0, " +"35.0, 46.0)\n" +"[/codeblock]" +msgstr "" +"将该 [Vector4] 的每个分量加上给定 [Vector4] 的对应分量。\n" +"[codeblock]\n" +"print(Vector4(10, 20, 30, 40) + Vector4(3, 4, 5, 6)) # 输出 (13.0, 24.0, " +"35.0, 46.0)\n" +"[/codeblock]" + +msgid "" +"Subtracts each component of the [Vector4] by the components of the given " +"[Vector4].\n" +"[codeblock]\n" +"print(Vector4(10, 20, 30, 40) - Vector4(3, 4, 5, 6)) # Prints (7.0, 16.0, " +"25.0, 34.0)\n" +"[/codeblock]" +msgstr "" +"将该 [Vector4] 的每个分量减去给定 [Vector4] 的对应分量。\n" +"[codeblock]\n" +"print(Vector4(10, 20, 30, 40) - Vector4(3, 4, 5, 6)) # 输出 (7.0, 16.0, 25.0, " +"34.0)\n" +"[/codeblock]" + +msgid "" +"Divides each component of the [Vector4] by the components of the given " +"[Vector4].\n" +"[codeblock]\n" +"print(Vector4(10, 20, 30, 40) / Vector4(2, 5, 3, 4)) # Prints (5.0, 4.0, " +"10.0, 10.0)\n" +"[/codeblock]" +msgstr "" +"将该 [Vector4] 的每个分量除以给定 [Vector4] 的对应分量。\n" +"[codeblock]\n" +"print(Vector4(10, 20, 30, 40) / Vector4(2, 5, 3, 4)) # 输出 (5.0, 4.0, 10.0, " +"10.0)\n" +"[/codeblock]" + +msgid "" +"Divides each component of the [Vector4] by the given [float].\n" +"[codeblock]\n" +"print(Vector4(10, 20, 30, 40) / 2) # Prints (5.0, 10.0, 15.0, 20.0)\n" +"[/codeblock]" +msgstr "" +"将该 [Vector4] 的每个分量除以给定的 [float]。\n" +"[codeblock]\n" +"print(Vector4(10, 20, 30, 40) / 2 # 输出 (5.0, 10.0, 15.0, 20.0)\n" +"[/codeblock]" + msgid "Divides each component of the [Vector4] by the given [int]." msgstr "将该 [Vector4] 的每个分量除以给定的 [int]。" @@ -136728,9 +164827,124 @@ msgstr "" "最大向量,所有分量等于 [code]INT32_MAX[/code] 的向量。可用作 [constant " "Vector4.INF] 的整数等价物。" +msgid "" +"Gets the remainder of each component of the [Vector4i] with the components of " +"the given [Vector4i]. This operation uses truncated division, which is often " +"not desired as it does not work well with negative numbers. Consider using " +"[method @GlobalScope.posmod] instead if you want to handle negative numbers.\n" +"[codeblock]\n" +"print(Vector4i(10, -20, 30, -40) % Vector4i(7, 8, 9, 10)) # Prints (3, -4, 3, " +"0)\n" +"[/codeblock]" +msgstr "" +"获取该 [Vector4i] 的每个分量与给定 [Vector4i] 中分量的余数。这个运算使用的是截" +"断式除法,因为对负数不友好,所以通常不会想要使用。如果你想要处理负数,请考虑改" +"用 [method @GlobalScope.posmod]。\n" +"[codeblock]\n" +"print(Vector4i(10, -20, 30, -40) % Vector4i(7, 8, 9, 10)) # 输出 \"(3, -4, 3, " +"0)\"\n" +"[/codeblock]" + +msgid "" +"Gets the remainder of each component of the [Vector4i] with the given [int]. " +"This operation uses truncated division, which is often not desired as it does " +"not work well with negative numbers. Consider using [method @GlobalScope." +"posmod] instead if you want to handle negative numbers.\n" +"[codeblock]\n" +"print(Vector4i(10, -20, 30, -40) % 7) # Prints (3, -6, 2, -5)\n" +"[/codeblock]" +msgstr "" +"获取该 [Vector4i] 的每个分量与给定的 [int] 的余数。这个运算使用的是截断式除" +"法,因为对负数不友好,所以通常不会想要使用。如果你想要处理负数,请考虑改用 " +"[method @GlobalScope.posmod]。\n" +"[codeblock]\n" +"print(Vector4i(10, -20, 30, -40) % 7) # 输出 \"(3, -6, 2, -5)\"\n" +"[/codeblock]" + +msgid "" +"Multiplies each component of the [Vector4i] by the components of the given " +"[Vector4i].\n" +"[codeblock]\n" +"print(Vector4i(10, 20, 30, 40) * Vector4i(3, 4, 5, 6)) # Prints (30, 80, 150, " +"240)\n" +"[/codeblock]" +msgstr "" +"将该 [Vector4i] 的每个分量乘以给定 [Vector4i] 的对应分量。\n" +"[codeblock]\n" +"print(Vector4i(10, 20, 30, 40) * Vector4i(3, 4, 5, 6))# 输出 (30, 80, 150, " +"240)\n" +"[/codeblock]" + +msgid "" +"Multiplies each component of the [Vector4i] by the given [float].\n" +"Returns a Vector4 value due to floating-point operations.\n" +"[codeblock]\n" +"print(Vector4i(10, 20, 30, 40) * 2) # Prints (20.0, 40.0, 60.0, 80.0)\n" +"[/codeblock]" +msgstr "" +"将该 [Vector4i] 的每个分量乘以给定的 [float]。\n" +"由于浮点数运算,返回值为 Vector4。\n" +"[codeblock]\n" +"print(Vector4i(10, 20, 30, 40) * 2) # 输出 (20.0, 40.0, 60.0, 80.0)\n" +"[/codeblock]" + msgid "Multiplies each component of the [Vector4i] by the given [int]." msgstr "将该 [Vector4i] 的每个分量乘以给定的 [int]。" +msgid "" +"Adds each component of the [Vector4i] by the components of the given " +"[Vector4i].\n" +"[codeblock]\n" +"print(Vector4i(10, 20, 30, 40) + Vector4i(3, 4, 5, 6)) # Prints (13, 24, 35, " +"46)\n" +"[/codeblock]" +msgstr "" +"将该 [Vector4i] 的每个分量加上给定 [Vector4i] 的对应分量。\n" +"[codeblock]\n" +"print(Vector4i(10, 20, 30, 40) + Vector4i(3, 4, 5, 6)) # 输出 (13, 24, 35, " +"46)\n" +"[/codeblock]" + +msgid "" +"Subtracts each component of the [Vector4i] by the components of the given " +"[Vector4i].\n" +"[codeblock]\n" +"print(Vector4i(10, 20, 30, 40) - Vector4i(3, 4, 5, 6)) # Prints (7, 16, 25, " +"34)\n" +"[/codeblock]" +msgstr "" +"将该 [Vector4i] 的每个分量减去给定 [Vector4i] 的对应分量。\n" +"[codeblock]\n" +"print(Vector4i(10, 20, 30, 40) - Vector4i(3, 4, 5, 6)) # 输出 (7, 16, 25, " +"34)\n" +"[/codeblock]" + +msgid "" +"Divides each component of the [Vector4i] by the components of the given " +"[Vector4i].\n" +"[codeblock]\n" +"print(Vector4i(10, 20, 30, 40) / Vector4i(2, 5, 3, 4)) # Prints (5, 4, 10, " +"10)\n" +"[/codeblock]" +msgstr "" +"将该 [Vector4i] 的每个分量除以给定 [Vector4i] 的对应分量。\n" +"[codeblock]\n" +"print(Vector4i(10, 20, 30, 40) / Vector4i(2, 5, 3, 4)) # 输出 (5, 4, 10, 10)\n" +"[/codeblock]" + +msgid "" +"Divides each component of the [Vector4i] by the given [float].\n" +"Returns a Vector4 value due to floating-point operations.\n" +"[codeblock]\n" +"print(Vector4i(10, 20, 30, 40) / 2) # Prints (5.0, 10.0, 15.0, 20.0)\n" +"[/codeblock]" +msgstr "" +"将该 [Vector4i] 的每个分量除以给定的 [float]。\n" +"由于浮点数运算,返回值为 Vector4。\n" +"[codeblock]\n" +"print(Vector4i(10, 20, 30, 40) / 2 # 输出 (5.0, 10.0, 15.0, 20.0)\n" +"[/codeblock]" + msgid "Divides each component of the [Vector4i] by the given [int]." msgstr "将该 [Vector4] 的每个分量除以给定的 [int]。" @@ -137095,6 +165309,16 @@ msgid "" "[method _stop]." msgstr "返回由调用 [method _play] 和 [method _stop] 决定的播放状态。" +msgid "" +"Called in response to [member VideoStreamPlayer.autoplay] or [method " +"VideoStreamPlayer.play]. Note that manual playback may also invoke [method " +"_stop] multiple times before this method is called. [method _is_playing] " +"should return [code]true[/code] once playing." +msgstr "" +"[member VideoStreamPlayer.autoplay] 或 [method VideoStreamPlayer.play] 时会被" +"调用。请注意,手动播放在这个方法被调用前也可能多次调用 [method _stop]。开始播" +"放后 [method _is_playing] 就应该返回 [code]true[/code]。" + msgid "" "Seeks to [param time] seconds. Called in response to the [member " "VideoStreamPlayer.stream_position] setter." @@ -137117,6 +165341,21 @@ msgstr "" "设置视频播放的暂停状态。[method _is_paused] 必须返回 [param paused]。设置 " "[member VideoStreamPlayer.paused] 时会被调用。" +msgid "" +"Stops playback. May be called multiple times before [method _play], or in " +"response to [method VideoStreamPlayer.stop]. [method _is_playing] should " +"return [code]false[/code] once stopped." +msgstr "" +"停止播放。可能在 [method _play] 多次调用,也可能与 [method VideoStreamPlayer." +"stop] 对应。停止后 [method _is_playing] 应返回 [code]false[/code]。" + +msgid "" +"Ticks video playback for [param delta] seconds. Called every frame as long as " +"both [method _is_paused] and [method _is_playing] return [code]true[/code]." +msgstr "" +"将视频播放推进 [param delta] 秒。只要 [method _is_paused] 和 [method " +"_is_playing] 返回 [code]true[/code],就会为每一帧调用。" + msgid "" "Render [param num_frames] audio frames (of [method _get_channels] floats " "each) from [param buffer], starting from index [param offset] in the array. " @@ -137287,6 +165526,27 @@ msgstr "" "返回这个视口的第一个有效 [World3D],会在自身和 Viewport 祖先的 [member " "world_3d] 属性中搜索。" +msgid "" +"Returns the currently active 2D audio listener. Returns [code]null[/code] if " +"there are no active 2D audio listeners, in which case the active 2D camera " +"will be treated as listener." +msgstr "" +"返回当前活动的 2D 音频侦听器。如果没有活动的 2D 音频侦听器,则返回 " +"[code]null[/code],此时会将活动的 2D 相机作为侦听器。" + +msgid "" +"Returns the currently active 3D audio listener. Returns [code]null[/code] if " +"there are no active 3D audio listeners, in which case the active 3D camera " +"will be treated as listener." +msgstr "" +"返回当前活动的 3D 音频侦听器。如果没有活动的 3D 音频侦听器,则返回 " +"[code]null[/code],此时会将活动的 3D 相机作为侦听器。" + +msgid "" +"Returns the currently active 2D camera. Returns [code]null[/code] if there " +"are no active cameras." +msgstr "返回当前活动的 2D 相机。如果没有活动的相机,则返回 [code]null[/code]。" + msgid "Returns the currently active 3D camera." msgstr "返回当前活动的 3D 相机。" @@ -137326,21 +165586,110 @@ msgid "" "coordinates of the containing window manager window." msgstr "返回从视口的坐标到包含窗口管理器窗口的屏幕坐标的变换。" +msgid "" +"Returns the automatically computed 2D stretch transform, taking the " +"[Viewport]'s stretch settings into account. The final value is multiplied by " +"[member Window.content_scale_factor], but only for the root viewport. If this " +"method is called on a [SubViewport] (e.g., in a scene tree with " +"[SubViewportContainer] and [SubViewport]), the scale factor of the root " +"window will not be applied. Using [method Transform2D.get_scale] on the " +"returned value, this can be used to compensate for scaling when zooming a " +"[Camera2D] node, or to scale down a [TextureRect] to be pixel-perfect " +"regardless of the automatically computed scale factor.\n" +"[b]Note:[/b] Due to how pixel scaling works, the returned transform's X and Y " +"scale may differ slightly, even when [member Window.content_scale_aspect] is " +"set to a mode that preserves the pixels' aspect ratio. If [member Window." +"content_scale_aspect] is [constant Window.CONTENT_SCALE_ASPECT_IGNORE], the X " +"and Y scale may differ [i]significantly[/i]." +msgstr "" +"返回自动计算的 2D 拉伸变换,会考虑 [Viewport] 的拉伸设置。最终值已和 [member " +"Window.content_scale_factor] 相乘,但仅适用于根视口。如果在 [SubViewport] 上调" +"用该方法(例如在包含 [SubViewportContainer] 和 [SubViewport] 的场景树中),则" +"不会应用根窗口的缩放系数。使用返回值上的 [method Transform2D.get_scale] 可以在" +"缩放 [Camera2D] 节点时补偿缩放或将 [TextureRect] 缩小到像素级精确,无论自动计" +"算的缩放系数如何。\n" +"[b]注意:[/b]由于像素缩放的工作方式,即使 [member Window." +"content_scale_aspect] 设置为保持像素宽高比的模式,返回的变换的 X 和 Y 缩放也可" +"能会略有不同。如果 [member Window.content_scale_aspect] 为 [constant Window." +"CONTENT_SCALE_ASPECT_IGNORE],则 X 和 Y 缩放可能会有[i]显著[/i]差异。" + +msgid "" +"Returns the viewport's texture.\n" +"[b]Note:[/b] When trying to store the current texture (e.g. in a file), it " +"might be completely black or outdated if used too early, especially when used " +"in e.g. [method Node._ready]. To make sure the texture you get is correct, " +"you can await [signal RenderingServer.frame_post_draw] signal.\n" +"[codeblock]\n" +"func _ready():\n" +" await RenderingServer.frame_post_draw\n" +" $Viewport.get_texture().get_image().save_png(\"user://Screenshot.png\")\n" +"[/codeblock]\n" +"[b]Note:[/b] When [member use_hdr_2d] is [code]true[/code] the returned " +"texture will be an HDR image encoded in linear space." +msgstr "" +"返回该视口的纹理\n" +"[b]注意:[/b]保存当前纹理时(例如保存到文件中),如果时机过早则可能是全黑或过" +"时的图片,尤其是在 [method Node._ready] 等函数中使用时。要确保获得正确的纹理," +"你可以等待 [signal RenderingServer.frame_post_draw] 信号。\n" +"[codeblock]\n" +"func _ready():\n" +" await RenderingServer.frame_post_draw\n" +" $Viewport.get_texture().get_image().save_png(\"user://Screenshot.png\")\n" +"[/codeblock]\n" +"[b]注意:[/b][member use_hdr_2d] 为 [code]true[/code] 时,返回的纹理是使用线性" +"色彩空间编码的 HDR 图像。" + msgid "Returns the viewport's RID from the [RenderingServer]." msgstr "返回该视口在 [RenderingServer] 的 RID。" msgid "Returns the visible rectangle in global screen coordinates." msgstr "返回全局屏幕坐标中的可见矩形。" +msgid "" +"Cancels the drag operation that was previously started through [method " +"Control._get_drag_data] or forced with [method Control.force_drag]." +msgstr "" +"取消之前的拖动操作,既可以是通过 [method Control._get_drag_data] 开始的拖动," +"也可以是通过 [method Control.force_drag] 强制开始的拖动。" + msgid "" "Returns the drag data from the GUI, that was previously returned by [method " "Control._get_drag_data]." msgstr "" "返回 GUI 的拖动数据,该数据先前由 [method Control._get_drag_data] 返回。" +msgid "" +"Returns the currently focused [Control] within this viewport. If no [Control] " +"is focused, returns [code]null[/code]." +msgstr "" +"返回这个视口中当前聚焦的 [Control]。如果没有聚焦任何 [Control],则返回 " +"[code]null[/code]。" + +msgid "" +"Returns the [Control] that the mouse is currently hovering over in this " +"viewport. If no [Control] has the cursor, returns [code]null[/code].\n" +"Typically the leaf [Control] node or deepest level of the subtree which " +"claims hover. This is very useful when used together with [method Node." +"is_ancestor_of] to find if the mouse is within a control tree." +msgstr "" +"返回当前鼠标在该视口中悬停的 [Control]。如果鼠标没有对应的 [Control] 则返回 " +"[code]null[/code]。\n" +"获取到悬停的通常是末端的 [Control] 节点或子树中最深的一级。与 [method Node." +"is_ancestor_of] 配合的时候非常有用,可以查到鼠标是否位于某个控件树中。" + msgid "Returns [code]true[/code] if the drag operation is successful." msgstr "如果拖拽操作成功,则返回 [code]true[/code]。" +msgid "" +"Returns [code]true[/code] if a drag operation is currently ongoing and where " +"the drop action could happen in this viewport.\n" +"Alternative to [constant Node.NOTIFICATION_DRAG_BEGIN] and [constant Node." +"NOTIFICATION_DRAG_END] when you prefer polling the value." +msgstr "" +"如果该视口目前正在执行拖拽操作,可以进行放置动作,则返回 [code]true[/code]。\n" +"如果你更倾向于轮询,可以作为 [constant Node.NOTIFICATION_DRAG_BEGIN] 和 " +"[constant Node.NOTIFICATION_DRAG_END] 的替代品。" + msgid "" "Removes the focus from the currently focused [Control] within this viewport. " "If no [Control] has the focus, does nothing." @@ -137366,6 +165715,40 @@ msgstr "" "如果 [member handle_input_locally] 为 [code]false[/code],则这个方法会尝试查找" "第一个本地处理输入的父级视口,并返回该视口的 [method is_input_handled]。" +msgid "" +"Inform the Viewport that the mouse has entered its area. Use this function " +"before sending an [InputEventMouseButton] or [InputEventMouseMotion] to the " +"[Viewport] with [method Viewport.push_input]. See also [method " +"notify_mouse_exited].\n" +"[b]Note:[/b] In most cases, it is not necessary to call this function because " +"[SubViewport] nodes that are children of [SubViewportContainer] are notified " +"automatically. This is only necessary when interacting with viewports in non-" +"default ways, for example as textures in [TextureRect] or with an [Area3D] " +"that forwards input events." +msgstr "" +"通知 Viewport 鼠标已进入其区域。请在通过 [method Viewport.push_input] 向 " +"[Viewport] 发送 [InputEventMouseButton] 和 [InputEventMouseMotion] 前调用该方" +"法。另见 [method notify_mouse_exited]。\n" +"[b]注意:[/b]大多数情况下不需要调用该函数,因为会自动通知 " +"[SubViewportContainer] 的子级 [SubViewport] 节点。只有在以非默认方式与视口交互" +"时才有必要,例如以 [TextureRect] 中的纹理或通过 [Area3D] 转发输入事件。" + +msgid "" +"Inform the Viewport that the mouse has left its area. Use this function when " +"the node that displays the viewport notices the mouse has left the area of " +"the displayed viewport. See also [method notify_mouse_entered].\n" +"[b]Note:[/b] In most cases, it is not necessary to call this function because " +"[SubViewport] nodes that are children of [SubViewportContainer] are notified " +"automatically. This is only necessary when interacting with viewports in non-" +"default ways, for example as textures in [TextureRect] or with an [Area3D] " +"that forwards input events." +msgstr "" +"通知 Viewport 鼠标已离开其区域。请在显示视口的节点注意到鼠标已离开视口显示区域" +"时调用该方法。另见 [method notify_mouse_entered]。\n" +"[b]注意:[/b]大多数情况下不需要调用该函数,因为会自动通知 " +"[SubViewportContainer] 的子级 [SubViewport] 节点。只有在以非默认方式与视口交互" +"时才有必要,例如以 [TextureRect] 中的纹理或通过 [Area3D] 转发输入事件。" + msgid "" "Triggers the given [param event] in this [Viewport]. This can be used to pass " "an [InputEvent] between viewports, or to locally apply inputs that were sent " @@ -137607,6 +165990,39 @@ msgstr "" "[b]注意:[/b][member mesh_lod_threshold] 不影响 [GeometryInstance3D] 可见性范" "围(也称为“手动”LOD 或分层 LOD)。" +msgid "" +"The multisample antialiasing mode for 2D/Canvas rendering. A higher number " +"results in smoother edges at the cost of significantly worse performance. A " +"value of [constant Viewport.MSAA_2X] or [constant Viewport.MSAA_4X] is best " +"unless targeting very high-end systems. This has no effect on shader-induced " +"aliasing or texture aliasing.\n" +"See also [member ProjectSettings.rendering/anti_aliasing/quality/msaa_2d] and " +"[method RenderingServer.viewport_set_msaa_2d]." +msgstr "" +"2D/画布渲染的多重采样抗锯齿模式。数字越高,得到的边缘越平滑,代价是性能也会显" +"著降低。设为 [constant Viewport.MSAA_2X] 或 [constant Viewport.MSAA_4X] 为佳," +"除非目标是非常高端的系统。对由着色器或纹理导致的锯齿无效。\n" +"另见 [member ProjectSettings.rendering/anti_aliasing/quality/msaa_2d] 和 " +"[method RenderingServer.viewport_set_msaa_2d]。" + +msgid "" +"The multisample antialiasing mode for 3D rendering. A higher number results " +"in smoother edges at the cost of significantly worse performance. A value of " +"[constant Viewport.MSAA_2X] or [constant Viewport.MSAA_4X] is best unless " +"targeting very high-end systems. See also bilinear scaling 3D [member " +"scaling_3d_mode] for supersampling, which provides higher quality but is much " +"more expensive. This has no effect on shader-induced aliasing or texture " +"aliasing.\n" +"See also [member ProjectSettings.rendering/anti_aliasing/quality/msaa_3d] and " +"[method RenderingServer.viewport_set_msaa_3d]." +msgstr "" +"3D 渲染的多重采样抗锯齿模式。数字越高,得到的边缘越平滑,代价是性能也会显著降" +"低。设为 2 或 4 为佳,除非目标是非常高端的系统。另请参阅 3D 的双线性缩放 " +"[member scaling_3d_mode] 实现超采样,能够提供更高的质量,但消耗也更高。对由着" +"色器或纹理导致的锯齿无效。\n" +"另见 [member ProjectSettings.rendering/anti_aliasing/quality/msaa_3d] 和 " +"[method RenderingServer.viewport_set_msaa_3d]。" + msgid "" "If [code]true[/code], the viewport will use a unique copy of the [World3D] " "defined in [member world_3d]." @@ -137683,6 +166099,23 @@ msgstr "" "可以通过降低 CPU 和 GPU 负载来显著提升在低端系统上的性能(因为绘制不带阴影的场" "景需要的绘制调用更少)。" +msgid "" +"Sets scaling 3D mode. Bilinear scaling renders at different resolution to " +"either undersample or supersample the viewport. FidelityFX Super Resolution " +"1.0, abbreviated to FSR, is an upscaling technology that produces high " +"quality images at fast framerates by using a spatially aware upscaling " +"algorithm. FSR is slightly more expensive than bilinear, but it produces " +"significantly higher image quality. FSR should be used where possible.\n" +"To control this property on the root viewport, set the [member " +"ProjectSettings.rendering/scaling_3d/mode] project setting." +msgstr "" +"设置缩放 3D 模式。双线性缩放会以不同的分辨率进行渲染,对视口进行欠采样或超采" +"样。FidelityFX Super Resolution 1.0,缩写为 FSR,是一种放大技术,通过使用一种" +"空间感知放大算法,以快速帧速率生成高质量图像。FSR 比双线性的性能消耗略高一些," +"但产生的图像质量却高得多。应尽可能使用 FSR。\n" +"要在根视口上控制这个属性,请使用项目设置 [member ProjectSettings.rendering/" +"scaling_3d/mode]。" + msgid "" "Scales the 3D render buffer based on the viewport size uses an image filter " "specified in [member ProjectSettings.rendering/scaling_3d/mode] to scale the " @@ -137711,6 +166144,21 @@ msgstr "" "要在根视口上控制这个属性,请使用项目设置 [member ProjectSettings.rendering/" "scaling_3d/scale]。" +msgid "" +"Sets the screen-space antialiasing method used. Screen-space antialiasing " +"works by selectively blurring edges in a post-process shader. It differs from " +"MSAA which takes multiple coverage samples while rendering objects. Screen-" +"space AA methods are typically faster than MSAA and will smooth out specular " +"aliasing, but tend to make scenes appear blurry.\n" +"See also [member ProjectSettings.rendering/anti_aliasing/quality/" +"screen_space_aa] and [method RenderingServer.viewport_set_screen_space_aa]." +msgstr "" +"设置使用的屏幕空间抗锯齿方法。屏幕空间抗锯齿的原理是在后期处理着色器中选择性地" +"模糊边缘。它与 MSAA 不同,后者在渲染对象时采用多个覆盖样本。屏幕空间抗锯齿方法" +"通常比 MSAA 更快,并且会平滑高光锯齿,但往往会使场景显得模糊。\n" +"另见 [member ProjectSettings.rendering/anti_aliasing/quality/screen_space_aa] " +"和 [method RenderingServer.viewport_set_screen_space_aa]。" + msgid "" "Controls how much of the original viewport's size should be covered by the 2D " "signed distance field. This SDF can be sampled in [CanvasItem] shaders and is " @@ -137796,6 +166244,52 @@ msgid "" "transparent." msgstr "如果为 [code]true[/code],该视口应使其背景渲染为透明。" +msgid "" +"If [code]true[/code], uses a fast post-processing filter to make banding " +"significantly less visible in 3D. 2D rendering is [i]not[/i] affected by " +"debanding unless the [member Environment.background_mode] is [constant " +"Environment.BG_CANVAS].\n" +"In some cases, debanding may introduce a slightly noticeable dithering " +"pattern. It's recommended to enable debanding only when actually needed since " +"the dithering pattern will make lossless-compressed screenshots larger.\n" +"See also [member ProjectSettings.rendering/anti_aliasing/quality/" +"use_debanding] and [method RenderingServer.viewport_set_use_debanding]." +msgstr "" +"如果为 [code]true[/code],则使用一个快速的后处理滤镜使条带在 3D 中明显不那么明" +"显。除非 [member Environment.background_mode] 为 [constant Environment." +"BG_CANVAS],否则 2D 渲染[i]不会[/i]受到去条带的影响。\n" +"在某些情况下,去条带可能会引入稍微明显的抖动图案。建议只在实际需要时才启用去条" +"带,因为抖动图案会使无损压缩的屏幕截图变大。\n" +"另见 [member ProjectSettings.rendering/anti_aliasing/quality/use_debanding] " +"和 [method RenderingServer.viewport_set_use_debanding]。" + +msgid "" +"If [code]true[/code], 2D rendering will use an high dynamic range (HDR) " +"format framebuffer matching the bit depth of the 3D framebuffer. When using " +"the Forward+ renderer this will be an [code]RGBA16[/code] framebuffer, while " +"when using the Mobile renderer it will be an [code]RGB10_A2[/code] " +"framebuffer. Additionally, 2D rendering will take place in linear color space " +"and will be converted to sRGB space immediately before blitting to the screen " +"(if the Viewport is attached to the screen). Practically speaking, this means " +"that the end result of the Viewport will not be clamped into the [code]0-1[/" +"code] range and can be used in 3D rendering without color space adjustments. " +"This allows 2D rendering to take advantage of effects requiring high dynamic " +"range (e.g. 2D glow) as well as substantially improves the appearance of " +"effects requiring highly detailed gradients.\n" +"[b]Note:[/b] This setting will have no effect when using the Compatibility " +"renderer, which always renders in low dynamic range for performance reasons." +msgstr "" +"如果为 [code]true[/code],则 2D 渲染将使用与 3D 帧缓冲的位深度相匹配的高动态范" +"围(HDR)格式的帧缓冲。使用 Forward+ 渲染器时,这将是一个 [code]RGBA16[/code] " +"帧缓冲,而使用 Mobile 渲染器时,这将是一个 [code]RGB10_A2[/code] 帧缓冲。此" +"外,2D 渲染将在线性色彩空间中进行,并将在传输到屏幕之前立即转换到 sRGB 空间" +"(如果视口已连接到屏幕)。实际上,这意味着视口的最终结果不会被限制在 " +"[code]0-1[/code] 范围内,并且可以在 3D 渲染中使用而无需调整色彩空间。这使得 " +"2D 渲染能够利用需要高动态范围的效果(例如 2D 辉光),并显著改善需要高度详细渐" +"变的效果的外观。\n" +"[b]注意:[/b]使用 Compatibility 渲染器时该设置将不起作用,出于性能原因将始终在" +"低动态范围内渲染。" + msgid "" "If [code]true[/code], [OccluderInstance3D] nodes will be usable for occlusion " "culling in 3D for this viewport. For the root viewport, [member " @@ -137824,6 +166318,21 @@ msgstr "" "[b]注意:[/b]由于内存限制,Web 导出模板中默认不支持遮挡剔除。编译自定义 Web 导" "出模板时使用 [code]module_raycast_enabled=yes[/code] 可以启用。" +msgid "" +"Enables temporal antialiasing for this viewport. TAA works by jittering the " +"camera and accumulating the images of the last rendered frames, motion vector " +"rendering is used to account for camera and object motion.\n" +"[b]Note:[/b] The implementation is not complete yet, some visual instances " +"such as particles and skinned meshes may show artifacts.\n" +"See also [member ProjectSettings.rendering/anti_aliasing/quality/use_taa] and " +"[method RenderingServer.viewport_set_use_taa]." +msgstr "" +"为该视口启用时间抗锯齿。TAA 通过抖动相机并累积最后渲染帧的图像来工作,运动向量" +"渲染被用于解释相机和对象的运动。\n" +"[b]注意:[/b]实现尚未完成,一些可视实例,如粒子和蒙皮网格可能会出现伪影。\n" +"另见 [member ProjectSettings.rendering/anti_aliasing/quality/use_taa] 和 " +"[method RenderingServer.viewport_set_use_taa]。" + msgid "" "If [code]true[/code], the viewport will use the primary XR interface to " "render XR output. When applicable this can result in a stereoscopic image and " @@ -137964,6 +166473,60 @@ msgstr "" "行放大。不支持大于 [code]1.0[/code] 的值,会改用双线性降采样。值为 [code]1.0[/" "code] 时禁用缩放。" +msgid "" +"Use the [url=https://developer.apple.com/documentation/metalfx/" +"mtlfxspatialscaler#overview]MetalFX spatial upscaler[/url] for the viewport's " +"3D buffer.\n" +"The amount of scaling can be set using [member scaling_3d_scale].\n" +"Values less than [code]1.0[/code] will be result in the viewport being " +"upscaled using MetalFX. Values greater than [code]1.0[/code] are not " +"supported and bilinear downsampling will be used instead. A value of " +"[code]1.0[/code] disables scaling.\n" +"More information: [url=https://developer.apple.com/documentation/" +"metalfx]MetalFX[/url].\n" +"[b]Note:[/b] Only supported when the Metal rendering driver is in use, which " +"limits this scaling mode to macOS and iOS." +msgstr "" +"对视口的 3D 缓冲区使用 [url=https://developer.apple.com/documentation/metalfx/" +"mtlfxspatialscaler#overview]MetalFX 空间图像放大器[/url]。\n" +"可以使用 [member scaling_3d_scale] 设置缩放量。\n" +"小于 [code]1.0[/code] 的值将导致使用 MetalFX 放大视口。不支持大于 [code]1.0[/" +"code] 的值,将改用双线性降采样。[code]1.0[/code] 的值将禁用缩放。\n" +"更多信息:[url=https://developer.apple.com/documentation/metalfx]MetalFX[/" +"url]。\n" +"[b]注意:[/b]仅在使用 Metal 渲染驱动时支持,因此该缩放模式仅限 macOS 和 iOS 使" +"用。" + +msgid "" +"Use the [url=https://developer.apple.com/documentation/metalfx/" +"mtlfxtemporalscaler#overview]MetalFX temporal upscaler[/url] for the " +"viewport's 3D buffer.\n" +"The amount of scaling can be set using [member scaling_3d_scale]. To " +"determine the minimum input scale, use the [method RenderingDevice.limit_get] " +"method with [constant RenderingDevice." +"LIMIT_METALFX_TEMPORAL_SCALER_MIN_SCALE].\n" +"Values less than [code]1.0[/code] will be result in the viewport being " +"upscaled using MetalFX. Values greater than [code]1.0[/code] are not " +"supported and bilinear downsampling will be used instead. A value of " +"[code]1.0[/code] will use MetalFX at native resolution as a TAA solution.\n" +"More information: [url=https://developer.apple.com/documentation/" +"metalfx]MetalFX[/url].\n" +"[b]Note:[/b] Only supported when the Metal rendering driver is in use, which " +"limits this scaling mode to macOS and iOS." +msgstr "" +"对视口的 3D 缓冲区使用 [url=https://developer.apple.com/documentation/metalfx/" +"mtlfxtemporalscaler#overview]MetalFX 时间图像放大器[/url]。\n" +"可以使用 [member scaling_3d_scale] 设置缩放量。确定最小的输入缩放请在调用 " +"[method RenderingDevice.limit_get] 时使用 [constant RenderingDevice." +"LIMIT_METALFX_TEMPORAL_SCALER_MIN_SCALE]。\n" +"小于 [code]1.0[/code] 的值将导致使用 MetalFX 放大视口。不支持大于 [code]1.0[/" +"code] 的值,将改用双线性降采样。[code]1.0[/code] 的值将在原生分辨率使用 " +"MetalFX 作为 TAA 的解决方案。\n" +"更多信息:[url=https://developer.apple.com/documentation/metalfx]MetalFX[/" +"url]。\n" +"[b]注意:[/b]仅在使用 Metal 渲染驱动时支持,因此该缩放模式仅限 macOS 和 iOS 使" +"用。" + msgid "Represents the size of the [enum Scaling3DMode] enum." msgstr "代表 [enum Scaling3DMode] 枚举的大小。" @@ -137996,6 +166559,9 @@ msgstr "" msgid "Represents the size of the [enum MSAA] enum." msgstr "代表 [enum MSAA] 枚举的大小。" +msgid "Represents the size of the [enum AnisotropicFiltering] enum." +msgstr "代表 [enum AnisotropicFiltering] 枚举的大小。" + msgid "Represents the size of the [enum ScreenSpaceAA] enum." msgstr "代表 [enum ScreenSpaceAA] 枚举的大小。" @@ -138029,6 +166595,16 @@ msgstr "" "对象通过加法混合显示为半透明,因此可以看到它们在彼此之上绘制的位置。更高的过度" "绘制意味着在绘制隐藏在其他像素后面的像素时浪费了性能。" +msgid "" +"Objects are displayed as wireframe models.\n" +"[b]Note:[/b] [method RenderingServer.set_debug_generate_wireframes] must be " +"called before loading any meshes for wireframes to be visible when using the " +"Compatibility renderer." +msgstr "" +"对象以线框模型的形式显示。\n" +"[b]注意:[/b]使用 Compatibility 渲染器时,必须先调用 [method RenderingServer." +"set_debug_generate_wireframes],然后再加载网格,才能显示线框。" + msgid "" "Objects are displayed without lighting information and their textures " "replaced by normal mapping." @@ -138198,6 +166774,55 @@ msgstr "代表 [enum VRSUpdateMode] 枚举的大小。" msgid "Provides the content of a [Viewport] as a dynamic texture." msgstr "以动态纹理的形式提供 [Viewport] 的内容。" +msgid "" +"A [ViewportTexture] provides the content of a [Viewport] as a dynamic " +"[Texture2D]. This can be used to combine the rendering of [Control], [Node2D] " +"and [Node3D] nodes. For example, you can use this texture to display a 3D " +"scene inside a [TextureRect], or a 2D overlay in a [Sprite3D].\n" +"To get a [ViewportTexture] in code, use the [method Viewport.get_texture] " +"method on the target viewport.\n" +"[b]Note:[/b] A [ViewportTexture] is always local to its scene (see [member " +"Resource.resource_local_to_scene]). If the scene root is not ready, it may " +"return incorrect data (see [signal Node.ready]).\n" +"[b]Note:[/b] Instantiating scenes containing a high-resolution " +"[ViewportTexture] may cause noticeable stutter.\n" +"[b]Note:[/b] When using a [Viewport] with [member Viewport.use_hdr_2d] set to " +"[code]true[/code], the returned texture will be an HDR image encoded in " +"linear space. This may look darker than normal when displayed directly on " +"screen. To convert to gamma space, you can do the following:\n" +"[codeblock]\n" +"img.convert(Image.FORMAT_RGBA8)\n" +"imb.linear_to_srgb()\n" +"[/codeblock]\n" +"[b]Note:[/b] Some nodes such as [Decal], [Light3D], and [PointLight2D] do not " +"support using [ViewportTexture] directly. To use texture data from a " +"[ViewportTexture] in these nodes, you need to create an [ImageTexture] by " +"calling [method Texture2D.get_image] on the [ViewportTexture] and passing the " +"result to [method ImageTexture.create_from_image]. This conversion is a slow " +"operation, so it should not be performed every frame." +msgstr "" +"[ViewportTexture] 以动态 [Texture2D] 的形式提供 [Viewport] 的内容,可以用来结" +"合 [Control]、[Node2D]、[Node3D] 等节点的渲染。例如你可以用该纹理在 " +"[TextureRect] 中显示 3D 场景,也可以在 [Sprite3D] 中显示 2D 覆盖层。\n" +"要在代码中获取 [ViewportTexture],请在目标视口上使用 [method Viewport." +"get_texture] 方法。\n" +"[b]注意:[/b][ViewportTexture] 始终是局部于其场景的(见 [member Resource." +"resource_local_to_scene])。如果场景根节点尚未就绪,就可能返回不正确的数据" +"(见 [signal Node.ready])。\n" +"[b]注意:[/b]实例化包含高分辨率 [ViewportTexture] 的场景可能引起显著的卡顿。\n" +"[b]注意:[/b]如果使用的 [Viewport] 将 [member Viewport.use_hdr_2d] 设为了 " +"[code]true[/code],则返回的纹理是在线性空间中编码的 HDR 图像。这种图像在屏幕上" +"直接显示时看上去比较暗。你可以用下面的方法将其转换至 Gamma 空间:\n" +"[codeblock]\n" +"img.convert(Image.FORMAT_RGBA8)\n" +"imb.linear_to_srgb()\n" +"[/codeblock]\n" +"[b]注意:[/b][Decal]、[Light3D]、[PointLight2D] 等节点并不支持直接使用 " +"[ViewportTexture]。要在这些节点中使用 [ViewportTexture] 的纹理数据,你需要对 " +"[ViewportTexture] 调用 [method Texture2D.get_image] 获取 [ImageTexture],将这" +"个结果传给 [method ImageTexture.create_from_image]。这种转换操作比较慢,因此不" +"应该每帧都执行。" + msgid "" "The path to the [Viewport] node to display. This is relative to the local " "scene root (see [method Resource.get_local_scene]), [b]not[/b] to the nodes " @@ -138969,6 +167594,62 @@ msgstr "" "return vec3(r, g, b);\n" "[/codeblock]" +msgid "" +"Converts color from linear color space to sRGB color space using the " +"following formula:\n" +"[codeblock]\n" +"vec3 c = clamp(c, vec3(0.0), vec3(1.0));\n" +"const vec3 a = vec3(0.055f);\n" +"return mix((vec3(1.0f) + a) * pow(c.rgb, vec3(1.0f / 2.4f)) - a, 12.92f * c." +"rgb, lessThan(c.rgb, vec3(0.0031308f)));\n" +"[/codeblock]\n" +"The Compatibility renderer uses a simpler formula:\n" +"[codeblock]\n" +"vec3 c = input;\n" +"return max(vec3(1.055) * pow(c, vec3(0.416666667)) - vec3(0.055), " +"vec3(0.0));\n" +"[/codeblock]" +msgstr "" +"将颜色从线性色彩空间转换至 sRGB 色彩空间,使用公式如下:\n" +"[codeblock]\n" +"vec3 c = clamp(c, vec3(0.0), vec3(1.0));\n" +"const vec3 a = vec3(0.055f);\n" +"return mix((vec3(1.0f) + a) * pow(c.rgb, vec3(1.0f / 2.4f)) - a, 12.92f * c." +"rgb, lessThan(c.rgb, vec3(0.0031308f)));\n" +"[/codeblock]\n" +"Compatibility 渲染器使用的公式更简单:\n" +"[codeblock]\n" +"vec3 c = input;\n" +"return max(vec3(1.055) * pow(c, vec3(0.416666667)) - vec3(0.055), " +"vec3(0.0));\n" +"[/codeblock]" + +msgid "" +"Converts color from sRGB color space to linear color space using the " +"following formula:\n" +"[codeblock]\n" +"vec3 c = input;\n" +"return mix(pow((c.rgb + vec3(0.055)) * (1.0 / (1.0 + 0.055)), vec3(2.4)), c." +"rgb * (1.0 / 12.92), lessThan(c.rgb, vec3(0.04045)));\n" +"[/codeblock]\n" +"The Compatibility renderer uses a simpler formula:\n" +"[codeblock]\n" +"vec3 c = input;\n" +"return c * (c * (c * 0.305306011 + 0.682171111) + 0.012522878);\n" +"[/codeblock]" +msgstr "" +"将颜色从 sRGB 色彩空间转换至线性色彩空间,使用公式如下:\n" +"[codeblock]\n" +"vec3 c = input;\n" +"return mix(pow((c.rgb + vec3(0.055)) * (1.0 / (1.0 + 0.055)), vec3(2.4)), c." +"rgb * (1.0 / 12.92), lessThan(c.rgb, vec3(0.04045)));\n" +"[/codeblock]\n" +"Compatibility 渲染器使用的公式更简单:\n" +"[codeblock]\n" +"vec3 c = input;\n" +"return c * (c * (c * 0.305306011 + 0.682171111) + 0.012522878);\n" +"[/codeblock]" + msgid "Represents the size of the [enum Function] enum." msgstr "代表 [enum Function] 枚举的大小。" @@ -139224,6 +167905,16 @@ msgstr "" "小于或等于的比较([code]a <= b[/code])。如果 [member type] 设置为 [constant " "CTYPE_BOOLEAN] 或 [constant CTYPE_TRANSFORM],则无法使用。" +msgid "" +"The result will be [code]true[/code] if all components in the vector satisfy " +"the comparison condition." +msgstr "如果向量中的所有分量都满足比较条件,则结果为 [code]true[/code]。" + +msgid "" +"The result will be [code]true[/code] if any component in the vector satisfies " +"the comparison condition." +msgstr "如果向量中的任何一个分量满足比较条件,则结果为 [code]true[/code]。" + msgid "Represents the size of the [enum Condition] enum." msgstr "代表 [enum Condition] 枚举的大小。" @@ -139621,6 +168312,14 @@ msgstr "导数函数的类型。可选项见 [enum Function]。" msgid "A type of operands and returned value. See [enum OpType] for options." msgstr "操作数和返回值的类型。可选项见 [enum OpType]。" +msgid "" +"Sets the level of precision to use for the derivative function. See [enum " +"Precision] for options. When using the Compatibility renderer, this setting " +"has no effect." +msgstr "" +"设置用于导数函数的精度级别。可选项见 [enum Precision]。使用 Compatibility 渲染" +"器时此设置无效。" + msgid "Sum of absolute derivative in [code]x[/code] and [code]y[/code]." msgstr "[code]x[/code] 和 [code]y[/code] 的绝对导数之和。" @@ -140405,6 +169104,13 @@ msgstr "" msgid "If [code]true[/code], the node will have a custom default value." msgstr "如果为 [code]true[/code],则该节点有自定义默认值。" +msgid "" +"The names used for the enum select in the editor. [member hint] must be " +"[constant HINT_ENUM] for this to take effect." +msgstr "" +"用于在编辑器中选择枚举的名称。[member hint] 必须为 [constant HINT_ENUM] 才能生" +"效。" + msgid "Range hint of this node. Use it to customize valid parameter range." msgstr "该节点的范围提示。请用它来自定义有效的参数范围。" @@ -140443,6 +169149,10 @@ msgid "" "[member step] between values." msgstr "参数的取值必须在指定的范围内,值与值之间的步长为给定的 [member step]。" +msgid "" +"The parameter uses an enum to associate preset values to names in the editor." +msgstr "参数使用枚举将预设值与编辑器中的名称进行关联。" + msgid "A boolean comparison operator to be used within the visual shader graph." msgstr "布尔比较运算符,在可视化着色器图中使用。" @@ -140792,6 +169502,33 @@ msgstr "" "Remap 函数将输入范围变换到输出范围。例如你可以将 [code]0..1[/code] 里的值变到 " "[code]-2..2[/code] 里。详见 [method @GlobalScope.remap]。" +msgid "" +"The [code]value[/code] port uses a 2D vector type, while the [code]input min[/" +"code], [code]input max[/code], [code]output min[/code], and [code]output max[/" +"code] ports use a floating-point scalar type." +msgstr "" +"[code]value[/code] 端口使用 2D 向量类型,而 [code]input min[/code]、" +"[code]input max[/code]、[code]output min[/code]、[code]output max[/code] 端口" +"使用浮点数标量类型。" + +msgid "" +"The [code]value[/code] port uses a 3D vector type, while the [code]input min[/" +"code], [code]input max[/code], [code]output min[/code], and [code]output max[/" +"code] ports use a floating-point scalar type." +msgstr "" +"[code]value[/code] 端口使用 3D 向量类型,而 [code]input min[/code]、" +"[code]input max[/code]、[code]output min[/code]、[code]output max[/code] 端口" +"使用浮点数标量类型。" + +msgid "" +"The [code]value[/code] port uses a 4D vector type, while the [code]input min[/" +"code], [code]input max[/code], [code]output min[/code], and [code]output max[/" +"code] ports use a floating-point scalar type." +msgstr "" +"[code]value[/code] 端口使用 4D 向量类型,而 [code]input min[/code]、" +"[code]input max[/code]、[code]output min[/code]、[code]output max[/code] 端口" +"使用浮点数标量类型。" + msgid "" "A node that allows rerouting a connection within the visual shader graph." msgstr "允许在可视化着色器图内重新路由连接的节点。" @@ -142870,6 +171607,38 @@ msgstr "" "保持轮询。\n" "[b]注意:[/b]Web 导出可能不支持部分状态码。详情请参考具体浏览器的文档。" +msgid "" +"Connects to the given URL. TLS certificates will be verified against the " +"hostname when connecting using the [code]wss://[/code] protocol. You can pass " +"the optional [param tls_client_options] parameter to customize the trusted " +"certification authorities, or disable the common name verification. See " +"[method TLSOptions.client] and [method TLSOptions.client_unsafe].\n" +"[b]Note:[/b] This method is non-blocking, and will return [constant OK] " +"before the connection is established as long as the provided parameters are " +"valid and the peer is not in an invalid state (e.g. already connected). " +"Regularly call [method poll] (e.g. during [Node] process) and check the " +"result of [method get_ready_state] to know whether the connection succeeds or " +"fails.\n" +"[b]Note:[/b] To avoid mixed content warnings or errors in Web, you may have " +"to use a [param url] that starts with [code]wss://[/code] (secure) instead of " +"[code]ws://[/code]. When doing so, make sure to use the fully qualified " +"domain name that matches the one defined in the server's TLS certificate. Do " +"not connect directly via the IP address for [code]wss://[/code] connections, " +"as it won't match with the TLS certificate." +msgstr "" +"连接到给定的 URL。使用 [code]wss://[/code] 协议连接时会校验 TLS 证书与主机名。" +"传入可选的 [param tls_client_options] 参数可以自定义信任的证书颁发机构,也可以" +"禁用通用名校验。见 [method TLSOptions.client] 和 [method TLSOptions." +"client_unsafe]。\n" +"[b]注意:[/b]该方法不会阻塞,只要提供的参数有效且对等体不处于无效状态(例如已" +"连接)就会在建立连接前返回 [constant OK]。要检测连接成功还是失败,请定期调用 " +"[method poll](例如在 [Node] 的处理方法中)并检查 [method get_ready_state] 的" +"结果。\n" +"[b]注意:[/b]为了避免 Web 中的混合内容警告或错误,你可能需要使用以 " +"[code]wss://[/code](安全)开头的 [param url] 而不是 [code]ws://[/code]。采用" +"这种做法时,请确保使用与服务器 TLS 证书相匹配的主机域名全称。[code]wss://[/" +"code] 连接请勿直接使用 IP 地址连接,因为不会与 TLS 证书匹配。" + msgid "" "Returns the received WebSocket close frame status code, or [code]-1[/code] " "when the connection was not cleanly closed. Only call this method when " @@ -142969,6 +171738,16 @@ msgstr "" "在 WebSocket 握手过程中要发送的额外 HTTP 标头。\n" "[b]注意:[/b]由于浏览器的限制,在 Web 导出中不支持。" +msgid "" +"The interval (in seconds) at which the peer will automatically send WebSocket " +"\"ping\" control frames. When set to [code]0[/code], no \"ping\" control " +"frames will be sent.\n" +"[b]Note:[/b] Has no effect in Web exports due to browser restrictions." +msgstr "" +"对等体自动发送 WebSocket“ping”控制帧的间隔(单位为秒)。设为 [code]0[/code] 时" +"不会发送“ping”控制帧。\n" +"[b]注意:[/b]由于浏览器的限制,在 Web 导出中无效。" + msgid "" "The size of the input buffer in bytes (roughly the maximum amount of memory " "that will be allocated for the inbound packets)." @@ -143559,6 +172338,9 @@ msgstr "" msgid "Emitted when [member visibility_state] has changed." msgstr "当 [member visibility_state] 已更改时触发。" +msgid "We don't know the target ray mode." +msgstr "不知道目标射线模式。" + msgid "" "Target ray originates at the viewer's eyes and points in the direction they " "are looking." @@ -143819,6 +172601,9 @@ msgid "" "window." msgstr "如果该窗口当前嵌入在其他窗口中,则返回 [code]true[/code]。" +msgid "Returns [code]true[/code] if layout is right-to-left." +msgstr "如果布局是从右至左的,则返回 [code]true[/code]。" + msgid "" "Returns [code]true[/code] if the window can be maximized (the maximize button " "is enabled)." @@ -144036,6 +172821,25 @@ msgstr "" "让该 [Window] 出现。这样会启用与 [Window] 的交互,除了可见性之外不会更改其他任" "何属性(与 [method popup] 不同)。" +msgid "" +"Starts an interactive drag operation on the window, using the current mouse " +"position. Call this method when handling a mouse button being pressed to " +"simulate a pressed event on the window's title bar. Using this method allows " +"the window to participate in space switching, tiling, and other system " +"features." +msgstr "" +"在窗口上启动交互式拖动操作,使用当前鼠标位置。处理鼠标按钮按下事件时调用该方法" +"可以模拟在窗口标题栏上按下的事件。使用该方法可以使窗口参与空间切换、平铺等系统" +"功能。" + +msgid "" +"Starts an interactive resize operation on the window, using the current mouse " +"position. Call this method when handling a mouse button being pressed to " +"simulate a pressed event on the window's edge." +msgstr "" +"在窗口上启动交互式调整大小操作,使用当前鼠标位置。处理鼠标按钮按下事件时调用该" +"方法可以模拟在窗口边缘上按下的事件。" + msgid "" "If [code]true[/code], the window will be on top of all other windows. Does " "not work if [member transient] is enabled." @@ -144053,6 +172857,14 @@ msgstr "" "指定当 [Window] 的大小改变时,内容纵横比的行为。基础纵横比由 [member " "content_scale_size] 决定。" +msgid "" +"Specifies the base scale of [Window]'s content when its [member size] is " +"equal to [member content_scale_size]. See also [method Viewport." +"get_stretch_transform]." +msgstr "" +"指定当 [member size] 等于 [member content_scale_size] 时 [Window] 内容的基础比" +"例。另见 [method Viewport.get_stretch_transform]。" + msgid "Specifies how the content is scaled when the [Window] is resized." msgstr "指定当 [Window] 的大小改变时,如何对内容进行缩放。" @@ -144075,6 +172887,15 @@ msgstr "" msgid "The screen the window is currently on." msgstr "该窗口当前所在的屏幕。" +msgid "" +"Windows is excluded from screenshots taken by [method DisplayServer." +"screen_get_image], [method DisplayServer.screen_get_image_rect], and [method " +"DisplayServer.screen_get_pixel]." +msgstr "" +"在 [method DisplayServer.screen_get_image]、[method DisplayServer." +"screen_get_image_rect]、[method DisplayServer.screen_get_pixel] 的截图中排除该" +"窗口。" + msgid "" "If [code]true[/code], the [Window] will be in exclusive mode. Exclusive " "windows are always on top of their parent and will block all input going to " @@ -144154,6 +172975,73 @@ msgstr "" "[b]注意:[/b]这个属性在 Linux(X11)、macOS 和 Windows 上实现。\n" "[b]注意:[/b]这个属性仅对原生窗口有效。" +msgid "" +"Sets a polygonal region of the window which accepts mouse events. Mouse " +"events outside the region will be passed through.\n" +"Passing an empty array will disable passthrough support (all mouse events " +"will be intercepted by the window, which is the default behavior).\n" +"[codeblocks]\n" +"[gdscript]\n" +"# Set region, using Path2D node.\n" +"$Window.mouse_passthrough_polygon = $Path2D.curve.get_baked_points()\n" +"\n" +"# Set region, using Polygon2D node.\n" +"$Window.mouse_passthrough_polygon = $Polygon2D.polygon\n" +"\n" +"# Reset region to default.\n" +"$Window.mouse_passthrough_polygon = []\n" +"[/gdscript]\n" +"[csharp]\n" +"// Set region, using Path2D node.\n" +"GetNode<Window>(\"Window\").MousePassthroughPolygon = " +"GetNode<Path2D>(\"Path2D\").Curve.GetBakedPoints();\n" +"\n" +"// Set region, using Polygon2D node.\n" +"GetNode<Window>(\"Window\").MousePassthroughPolygon = " +"GetNode<Polygon2D>(\"Polygon2D\").Polygon;\n" +"\n" +"// Reset region to default.\n" +"GetNode<Window>(\"Window\").MousePassthroughPolygon = [];\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] This property is ignored if [member mouse_passthrough] is set to " +"[code]true[/code].\n" +"[b]Note:[/b] On Windows, the portion of a window that lies outside the region " +"is not drawn, while on Linux (X11) and macOS it is.\n" +"[b]Note:[/b] This property is implemented on Linux (X11), macOS and Windows." +msgstr "" +"设置窗口的一个接受鼠标事件的多边形区域。该区域外的鼠标事件将被传递出去。\n" +"传递一个空数组将禁用穿透支持(所有鼠标事件将被窗口拦截,这是默认行为)。\n" +"[codeblocks]\n" +"[gdscript]\n" +"# 设置区域,使用 Path2D 节点。\n" +"$Window.mouse_passthrough_polygon = $Path2D.curve.get_baked_points()\n" +"\n" +"# 设置区域,使用 Polygon2D 节点。\n" +"$Window.mouse_passthrough_polygon = $Polygon2D.polygon\n" +"\n" +"# 重置区域为默认值。\n" +"$Window.mouse_passthrough_polygon = []\n" +"[/gdscript]\n" +"[csharp]\n" +"// 设置区域,使用 Path2D 节点。\n" +"GetNode<Window>(\"Window\").MousePassthroughPolygon = " +"GetNode<Path2D>(\"Path2D\").Curve.GetBakedPoints();\n" +"\n" +"// 设置区域,使用 Polygon2D 节点。\n" +"GetNode<Window>(\"Window\").MousePassthroughPolygon = " +"GetNode<Polygon2D>(\"Polygon2D\").Polygon;\n" +"\n" +"// 重置区域为默认值。\n" +"GetNode<Window>(\"Window\").MousePassthroughPolygon = [];\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b]如果 [member mouse_passthrough] 设置为 [code]true[/code],则忽略" +"此属性。\n" +"[b]注意:[/b]在 Windows 上,位于区域外的窗口部分不会被绘制,而在 Linux (X11) " +"和 macOS 上则会被绘制。\n" +"[b]注意:[/b]该属性在 Linux (X11)、macOS 和 Windows 上实现。" + msgid "" "If [code]true[/code], the [Window] will be considered a popup. Popups are sub-" "windows that don't show as separate windows in system's window manager's " @@ -144180,6 +173068,16 @@ msgstr "" "[b]注意:[/b]这个属性仅在 [member initial_position] 为 [constant " "WINDOW_INITIAL_POSITION_ABSOLUTE] 时有效。" +msgid "" +"If [code]true[/code], the [Window] will override the OS window style to " +"display sharp corners.\n" +"[b]Note:[/b] This property is implemented only on Windows (11).\n" +"[b]Note:[/b] This property only works with native windows." +msgstr "" +"如果为 [code]true[/code],则 [Window] 会覆盖操作系统窗口样式,显示尖角。\n" +"[b]注意:[/b]这个属性仅在 Windows(11)上实现。\n" +"[b]注意:[/b]这个属性仅对原生窗口有效。" + msgid "The window's size in pixels." msgstr "该窗口的大小,单位为像素。" @@ -144287,6 +173185,31 @@ msgstr "" "Retina 屏幕移动到了更低分辨率的屏幕)。\n" "[b]注意:[/b]仅在 macOS 上实现。" +msgid "" +"Emitted when files are dragged from the OS file manager and dropped in the " +"game window. The argument is a list of file paths.\n" +"[codeblock]\n" +"func _ready():\n" +" get_window().files_dropped.connect(on_files_dropped)\n" +"\n" +"func on_files_dropped(files):\n" +" print(files)\n" +"[/codeblock]\n" +"[b]Note:[/b] This signal only works with native windows, i.e. the main window " +"and [Window]-derived nodes when [member Viewport.gui_embed_subwindows] is " +"disabled in the main viewport." +msgstr "" +"将文件从操作系统文件管理器拖放到游戏窗口时发出。参数为文件路径列表。\n" +"[codeblock]\n" +"func _ready():\n" +" get_window().files_dropped.connect(on_files_dropped)\n" +"\n" +"func on_files_dropped(files):\n" +" print(files)\n" +"[/codeblock]\n" +"[b]注意:[/b]该信号仅对原生窗口有效,即主窗口及主视口禁用 [member Viewport." +"gui_embed_subwindows] 时的 [Window] 派生节点。" + msgid "Emitted when the [Window] gains focus." msgstr "当该 [Window] 获得焦点时发出。" @@ -144320,6 +173243,9 @@ msgstr "" "挡,只要其 [member Viewport.gui_disable_input] 为 [code]false[/code] 并且无论" "它当前聚焦与否。" +msgid "Emitted when window title bar text is changed." +msgstr "当窗口标题栏文本发生变化时发出。" + msgid "" "Emitted when window title bar decorations are changed, e.g. macOS window " "enter/exit full screen mode, or extend-to-title flag is changed." @@ -144362,6 +173288,36 @@ msgstr "" "[b]注意:[/b]为了优化性能,此节点在场景树之外发生更改时不会发送此通知。取而代" "之的是,当节点进入场景树时会统一应用所有主题项的更新。" +msgid "" +"A single window full screen mode. This mode has less overhead, but only one " +"window can be open on a given screen at a time (opening a child window or " +"application switching will trigger a full screen transition).\n" +"Full screen window covers the entire display area of a screen and has no " +"border or decorations. The display's video mode is not changed.\n" +"[b]On Android:[/b] This enables immersive mode.\n" +"[b]On Windows:[/b] Depending on video driver, full screen transition might " +"cause screens to go black for a moment.\n" +"[b]On macOS:[/b] A new desktop is used to display the running project. " +"Exclusive full screen mode prevents Dock and Menu from showing up when the " +"mouse pointer is hovering the edge of the screen.\n" +"[b]On Linux (X11):[/b] Exclusive full screen mode bypasses compositor.\n" +"[b]Note:[/b] Regardless of the platform, enabling full screen will change the " +"window size to match the monitor's size. Therefore, make sure your project " +"supports [url=$DOCS_URL/tutorials/rendering/multiple_resolutions." +"html]multiple resolutions[/url] when enabling full screen mode." +msgstr "" +"单窗口全屏模式。这种模式开销较小,但一次只能在给定屏幕上打开一个窗口(打开子窗" +"口或切换应用程序会触发全屏过渡)。\n" +"全屏窗口会覆盖屏幕的整个显示区域,没有边框或装饰。显示视频模式没有改变。\n" +"[b]在 Android 上:[/b]启用沉浸模式。\n" +"[b]在 Windows 上:[/b]取决于视频驱动程序,全屏过渡可能会导致屏幕暂时变黑。\n" +"[b]在 macOS 上:[/b]一个新的桌面用于显示正在运行的项目。当鼠标指针悬停在屏幕边" +"缘时,独占全屏模式会阻止 Dock 和 Menu 出现。\n" +"[b]在 Linux(X11)上:[/b]独占全屏模式会绕过合成器。\n" +"[b]注意:[/b]无论平台如何,启用全屏都会更改窗口大小以匹配显示器的大小。因此," +"确保你的项目在启用全屏模式时支持[url=$DOCS_URL/tutorials/rendering/" +"multiple_resolutions.html]多个分辨率[/url]。" + msgid "" "The window can't be resized by dragging its resize grip. It's still possible " "to resize the window using [member size]. This flag is ignored for full " @@ -144441,6 +173397,29 @@ msgstr "" "所有鼠标事件都被传递到同一应用程序的底层窗口。\n" "[b]注意:[/b]这个标志在嵌入式窗口中无效。" +msgid "" +"Window style is overridden, forcing sharp corners.\n" +"[b]Note:[/b] This flag has no effect in embedded windows.\n" +"[b]Note:[/b] This flag is implemented only on Windows (11)." +msgstr "" +"覆盖窗口样式,强制尖角。\n" +"[b]注意:[/b]该标志对嵌入式窗口无效。\n" +"[b]注意:[/b]该标志仅在 Windows(11)上实现。" + +msgid "" +"Windows is excluded from screenshots taken by [method DisplayServer." +"screen_get_image], [method DisplayServer.screen_get_image_rect], and [method " +"DisplayServer.screen_get_pixel].\n" +"[b]Note:[/b] This flag is implemented on macOS and Windows.\n" +"[b]Note:[/b] Setting this flag will [b]NOT[/b] prevent other apps from " +"capturing an image, it should not be used as a security measure." +msgstr "" +"在 [method DisplayServer.screen_get_image]、[method DisplayServer." +"screen_get_image_rect] 和 [method DisplayServer.screen_get_pixel] 的截图中排除" +"该窗口。\n" +"[b]注意:[/b]该标志在 macOS 和 Windows 上实现。\n" +"[b]注意:[/b]设置该标志[b]不会[/b]阻止其他应用进行截图,不应用作安全措施。" + msgid "Max value of the [enum Flags]." msgstr "[enum Flags] 的最大值。" @@ -144515,6 +173494,12 @@ msgid "" "direction." msgstr "自动布局方向,由父窗口的布局方向决定。" +msgid "Automatic layout direction, determined from the current locale." +msgstr "自动布局方向,根据当前区域设置确定。" + +msgid "Automatic layout direction, determined from the system locale." +msgstr "自动布局方向,根据系统区域设置确定。" + msgid "Initial window position is determined by [member position]." msgstr "初始窗口位置由 [member position] 决定。" @@ -144907,6 +173892,28 @@ msgstr "" msgid "A 3D world boundary (half-space) shape used for physics collision." msgstr "用于物理碰撞的 3D 空间边界(半空间)形状。" +msgid "" +"A 3D world boundary shape, intended for use in physics. " +"[WorldBoundaryShape3D] works like an infinite plane that forces all physics " +"bodies to stay above it. The [member plane]'s normal determines which " +"direction is considered as \"above\" and in the editor, the line over the " +"plane represents this direction. It can for example be used for endless flat " +"floors.\n" +"[b]Note:[/b] When the physics engine is set to [b]Jolt Physics[/b] in the " +"project settings ([member ProjectSettings.physics/3d/physics_engine]), " +"[WorldBoundaryShape3D] has a finite size (centered at the shape's origin). It " +"can be adjusted by changing [member ProjectSettings.physics/jolt_physics_3d/" +"limits/world_boundary_shape_size]." +msgstr "" +"3D 世界边界形状,应当用于物理用途。[WorldBoundaryShape3D] 本质上和无限平面类" +"似,能够强制所有物理体都保持在它的上方。哪个方向是“上方”由该平面 [member " +"plane] 的法线确定,这个方向在编辑器中由平面上方的一条线表示。用例是无限的平坦" +"地面。\n" +"[b]注意:[/b]在项目设置中将物理引擎设为 [b]Jolt Physics[/b]([member " +"ProjectSettings.physics/3d/physics_engine])时,[WorldBoundaryShape3D] 的大小" +"有限(以形状原点为中心),可以通过 [member ProjectSettings.physics/" +"jolt_physics_3d/limits/world_boundary_shape_size] 调整。" + msgid "The [Plane] used by the [WorldBoundaryShape3D] for collision." msgstr "该 [WorldBoundaryShape3D] 用于碰撞的 [Plane]。" @@ -145587,6 +174594,53 @@ msgid "" "tracking." msgstr "应用了一些 AR/VR 规则的相机节点,例如位置跟踪。" +msgid "" +"This is a helper 3D node for our camera. Note that, if stereoscopic rendering " +"is applicable (VR-HMD), most of the camera properties are ignored, as the HMD " +"information overrides them. The only properties that can be trusted are the " +"near and far planes.\n" +"The position and orientation of this node is automatically updated by the XR " +"Server to represent the location of the HMD if such tracking is available and " +"can thus be used by game logic. Note that, in contrast to the XR Controller, " +"the render thread has access to the most up-to-date tracking data of the HMD " +"and the location of the XRCamera3D can lag a few milliseconds behind what is " +"used for rendering as a result." +msgstr "" +"这是用于我们相机的一种辅助 3D 节点;请注意,如果立体渲染适用(VR-HMD),则大多" +"数相机属性都会被忽略,因为 HMD 信息会覆盖它们。可以信任的属性只有近平面和远平" +"面。\n" +"如果此类跟踪可用,则该节点的位置和方向由 XR 服务器自动更新,以表示 HMD 的位" +"置,因此可以被游戏逻辑使用。请注意,与 XR 控制器相比,渲染线程可以访问 HMD 的" +"最新跟踪数据,因此 XRCamera3D 的位置可能比用于渲染的位置滞后几毫秒。" + +msgid "A 3D node representing a spatially-tracked controller." +msgstr "表示空间跟踪控制器的 3D 节点。" + +msgid "" +"This is a helper 3D node that is linked to the tracking of controllers. It " +"also offers several handy passthroughs to the state of buttons and such on " +"the controllers.\n" +"Controllers are linked by their ID. You can create controller nodes before " +"the controllers are available. If your game always uses two controllers (one " +"for each hand), you can predefine the controllers with ID 1 and 2; they will " +"become active as soon as the controllers are identified. If you expect " +"additional controllers to be used, you should react to the signals and add " +"XRController3D nodes to your scene.\n" +"The position of the controller node is automatically updated by the " +"[XRServer]. This makes this node ideal to add child nodes to visualize the " +"controller.\n" +"As many XR runtimes now use a configurable action map all inputs are named." +msgstr "" +"这是一个辅助 3D 节点,链接到控制器的跟踪。它还为控制器上的按钮等状态,提供了几" +"个方便的直通方式。\n" +"控制器通过其 ID 链接。可以在控制器可用之前创建控制器节点。如果游戏总是使用两个" +"控制器(每只手一个),可以预定义 ID 为 1 和 2 的控制器;一旦控制器被识别,它们" +"将被立即激活。如果希望使用额外的控制器,应该对这些信号做出反应并将 " +"XRController3D 节点添加到场景中。\n" +"控制器节点的位置由 [XRServer] 自动更新。这使得该节点非常适合添加子节点以可视化" +"控制器。\n" +"由于许多 XR 运行时现在使用可配置的动作映射,因此所有输入都被命名。" + msgid "" "Returns a numeric value for the input with the given [param name]. This is " "used for triggers and grip sensors." @@ -146232,6 +175286,14 @@ msgid "" "positions are inferred from controller inputs." msgstr "手部跟踪数据的来源是控制器,这意味着关节位置是根据控制器输入推断的。" +msgid "" +"No hand tracking data is tracked, this either means the hand is obscured, the " +"controller is turned off, or tracking is not supported for the current input " +"type." +msgstr "" +"未跟踪手部跟踪数据,这意味着手部被遮挡,或控制器关闭,或不支持跟踪当前输入类" +"型。" + msgid "Represents the size of the [enum HandTrackingSource] enum." msgstr "代表 [enum HandTrackingSource] 枚举的大小。" @@ -146480,6 +175542,45 @@ msgstr "" msgid "Returns [code]true[/code] if this interface supports passthrough." msgstr "如果该接口支持穿透,则返回 [code]true[/code]。" +msgid "" +"Sets the active environment blend mode.\n" +"[param mode] is the environment blend mode starting with the next frame.\n" +"[b]Note:[/b] Not all runtimes support all environment blend modes, so it is " +"important to check this at startup. For example:\n" +"[codeblock]\n" +"func _ready():\n" +" var xr_interface = XRServer.find_interface(\"OpenXR\")\n" +" if xr_interface and xr_interface.is_initialized():\n" +" var vp = get_viewport()\n" +" vp.use_xr = true\n" +" var acceptable_modes = [XRInterface.XR_ENV_BLEND_MODE_OPAQUE, " +"XRInterface.XR_ENV_BLEND_MODE_ADDITIVE]\n" +" var modes = xr_interface.get_supported_environment_blend_modes()\n" +" for mode in acceptable_modes:\n" +" if mode in modes:\n" +" xr_interface.set_environment_blend_mode(mode)\n" +" break\n" +"[/codeblock]" +msgstr "" +"设置活动的环境混合模式。\n" +"[param mode] 是从下一帧开始的环境混合模式。\n" +"[b]注意:[/b]并非所有运行时都支持全部的环境混合模式,因此在启动时检查这一点很" +"重要。例如:\n" +"[codeblock]\n" +"func _ready():\n" +" var xr_interface = XRServer.find_interface(\"OpenXR\")\n" +" if xr_interface and xr_interface.is_initialized():\n" +" var vp = get_viewport()\n" +" vp.use_xr = true\n" +" var acceptable_modes = [XRInterface.XR_ENV_BLEND_MODE_OPAQUE, " +"XRInterface.XR_ENV_BLEND_MODE_ADDITIVE]\n" +" var modes = xr_interface.get_supported_environment_blend_modes()\n" +" for mode in acceptable_modes:\n" +" if mode in modes:\n" +" xr_interface.set_environment_blend_mode(mode)\n" +" break\n" +"[/codeblock]" + msgid "" "Sets the active play area mode, will return [code]false[/code] if the mode " "can't be used with this interface.\n" @@ -146823,6 +175924,9 @@ msgid "" msgstr "" "如果接口支持,则返回一个纹理的有效 [RID],我们应更将当前帧渲染至该纹理。" +msgid "A 3D node that has its position automatically updated by the [XRServer]." +msgstr "位置由 [XRServer] 自动更新的 3D 节点。" + msgid "" "This node can be bound to a specific pose of a [XRPositionalTracker] and will " "automatically have its [member Node3D.transform] updated by the [XRServer]. " @@ -146980,6 +176084,26 @@ msgstr "" msgid "The linear velocity of this pose." msgstr "该姿势的线速度。" +msgid "" +"The name of this pose. Usually, this name is derived from an action map set " +"up by the user. Godot also suggests some pose names that [XRInterface] " +"objects are expected to implement:\n" +"- [code]root[/code] is the root location, often used for tracked objects that " +"do not have further nodes.\n" +"- [code]aim[/code] is the tip of a controller with its orientation pointing " +"outwards, often used for raycasts.\n" +"- [code]grip[/code] is the location where the user grips the controller.\n" +"- [code]skeleton[/code] is the root location for a hand mesh, when using hand " +"tracking and an animated skeleton is supplied by the XR runtime." +msgstr "" +"姿势的名称。姿势名称通常派生自用户设置的动作映射。Godot 也针对姿势名称给出了一" +"些建议,希望 [XRInterface] 能够实现:\n" +"-[code]root[/code] 是根位置,通常用于没有其他节点的被追踪物体。\n" +"-[code]aim[/code] 是控制器的顶端,方向朝外,常用于射线投射。\n" +"-[code]grip[/code] 是用户持握控制器的位置。\n" +"-[code]skeleton[/code] 是在使用手部跟踪且 XR 运行时提供的动画骨架时,手部网格" +"的根位置。" + msgid "" "The tracking confidence for this pose, provides insight on how accurate the " "spatial positioning of this record is." @@ -147215,6 +176339,17 @@ msgstr "移除该 [param interface]。" msgid "Removes this [param tracker]." msgstr "移除该 [param tracker]。" +msgid "" +"If set to [code]true[/code], the scene will be rendered as if the camera is " +"locked to the [XROrigin3D].\n" +"[b]Note:[/b] This doesn't provide a very comfortable experience for users. " +"This setting exists for doing benchmarking or automated testing, where you " +"want to control what is rendered via code." +msgstr "" +"如果设为 [code]true[/code],则渲染场景时会当作相机锁定在了 [XROrigin3D]。\n" +"[b]注意:[/b]这并不能为用户提供非常舒适的体验。该设置存在的目的是为了进行基准" +"测试或自动化测试,即希望通过代码控制渲染的内容。" + msgid "The primary [XRInterface] currently bound to the [XRServer]." msgstr "当前绑定到 [XRServer] 的主 [XRInterface]。" @@ -147382,11 +176517,52 @@ msgid "" "VRS is used as a percentage of screen size." msgstr "如果 VRS 用作屏幕尺寸大小的百分比,则焦点周围可保证完整质量的最小半径。" +msgid "The render region that the VRS texture will be scaled to when generated." +msgstr "生成时 VRS 纹理缩放至的渲染区域。" + msgid "" "The strength used to calculate the VRS density map. The greater this value, " "the more noticeable VRS is." msgstr "计算 VRS 密度图时使用的强度。该值越大,VRS 越明显。" +msgid "Allows the creation of ZIP files." +msgstr "允许创建 ZIP 文件。" + +msgid "" +"This class implements a writer that allows storing the multiple blobs in a " +"ZIP archive. See also [ZIPReader] and [PCKPacker].\n" +"[codeblock]\n" +"# Create a ZIP archive with a single file at its root.\n" +"func write_zip_file():\n" +" var writer = ZIPPacker.new()\n" +" var err = writer.open(\"user://archive.zip\")\n" +" if err != OK:\n" +" return err\n" +" writer.start_file(\"hello.txt\")\n" +" writer.write_file(\"Hello World\".to_utf8_buffer())\n" +" writer.close_file()\n" +"\n" +" writer.close()\n" +" return OK\n" +"[/codeblock]" +msgstr "" +"该类实现了能够在 ZIP 压缩包中存储多个数据块的写入器。另见 [ZIPReader] 和 " +"[PCKPacker]。\n" +"[codeblock]\n" +"# 创建 ZIP 压缩包,根条目为单个文件。\n" +"func write_zip_file():\n" +" var writer = ZIPPacker.new()\n" +" var err = writer.open(\"user://archive.zip\")\n" +" if err != OK:\n" +" return err\n" +" writer.start_file(\"hello.txt\")\n" +" writer.write_file(\"Hello World\".to_utf8_buffer())\n" +" writer.close_file()\n" +"\n" +" writer.close()\n" +" return OK\n" +"[/codeblock]" + msgid "Closes the underlying resources used by this instance." msgstr "关闭该实例底层所使用的资源。" @@ -147431,6 +176607,97 @@ msgstr "在位于给定路径的已有文件的末尾追加新的 Zip 归档文 msgid "Add new files to the existing zip archive at the given path." msgstr "在位于给定路径的已有 Zip 归档文件中添加新文件。" +msgid "Allows reading the content of a ZIP file." +msgstr "允许读取 ZIP 文件的内容。" + +msgid "" +"This class implements a reader that can extract the content of individual " +"files inside a ZIP archive. See also [ZIPPacker].\n" +"[codeblock]\n" +"# Read a single file from a ZIP archive.\n" +"func read_zip_file():\n" +" var reader = ZIPReader.new()\n" +" var err = reader.open(\"user://archive.zip\")\n" +" if err != OK:\n" +" return PackedByteArray()\n" +" var res = reader.read_file(\"hello.txt\")\n" +" reader.close()\n" +" return res\n" +"\n" +"# Extract all files from a ZIP archive, preserving the directories within.\n" +"# This acts like the \"Extract all\" functionality from most archive " +"managers.\n" +"func extract_all_from_zip():\n" +" var reader = ZIPReader.new()\n" +" reader.open(\"res://archive.zip\")\n" +"\n" +" # Destination directory for the extracted files (this folder must exist " +"before extraction).\n" +" # Not all ZIP archives put everything in a single root folder,\n" +" # which means several files/folders may be created in `root_dir` after " +"extraction.\n" +" var root_dir = DirAccess.open(\"user://\")\n" +"\n" +" var files = reader.get_files()\n" +" for file_path in files:\n" +" # If the current entry is a directory.\n" +" if file_path.ends_with(\"/\"):\n" +" root_dir.make_dir_recursive(file_path)\n" +" continue\n" +"\n" +" # Write file contents, creating folders automatically when needed.\n" +" # Not all ZIP archives are strictly ordered, so we need to do this in " +"case\n" +" # the file entry comes before the folder entry.\n" +" root_dir.make_dir_recursive(root_dir.get_current_dir()." +"path_join(file_path).get_base_dir())\n" +" var file = FileAccess.open(root_dir.get_current_dir()." +"path_join(file_path), FileAccess.WRITE)\n" +" var buffer = reader.read_file(file_path)\n" +" file.store_buffer(buffer)\n" +"[/codeblock]" +msgstr "" +"该类实现了能够从 ZIP 压缩包中提取各个文件内容的读取器。另见 [ZIPPacker]。\n" +"[codeblock]\n" +"# 读取 ZIP 压缩包中的单个文件。\n" +"func read_zip_file():\n" +" var reader = ZIPReader.new()\n" +" var err = reader.open(\"user://archive.zip\")\n" +" if err != OK:\n" +" return PackedByteArray()\n" +" var res = reader.read_file(\"hello.txt\")\n" +" reader.close()\n" +" return res\n" +"\n" +"# 解压 ZIP 压缩包中的所有文件,保持目录结构。\n" +"# 功能类似于大多数归档文件管理器中的“全部解压”功能。\n" +"func extract_all_from_zip():\n" +" var reader = ZIPReader.new()\n" +" reader.open(\"res://archive.zip\")\n" +"\n" +" # 解压文件的目标目录(解压前必须存在)。\n" +" # 不是所有的 ZIP 压缩包都会把所有文件都放在根文件夹中,\n" +" # 解压后 `root_dir` 中会创建若干文件/文件夹。\n" +" var root_dir = DirAccess.open(\"user://\")\n" +"\n" +" var files = reader.get_files()\n" +" for file_path in files:\n" +" # 如果当前条目是目录。\n" +" if file_path.ends_with(\"/\"):\n" +" root_dir.make_dir_recursive(file_path)\n" +" continue\n" +"\n" +" # 写入文件内容,需要时自动创建文件夹。\n" +" # 不是所有 ZIP 压缩包都遵循特定的顺序,这一步的作用是\n" +" # 防止文件条目出现在文件夹条目之前。\n" +" root_dir.make_dir_recursive(root_dir.get_current_dir()." +"path_join(file_path).get_base_dir())\n" +" var file = FileAccess.open(root_dir.get_current_dir()." +"path_join(file_path), FileAccess.WRITE)\n" +" var buffer = reader.read_file(file_path)\n" +" file.store_buffer(buffer)\n" +"[/codeblock]" + msgid "" "Returns [code]true[/code] if the file exists in the loaded zip archive.\n" "Must be called after [method open]." diff --git a/engine/doc/translations/zh_TW.po b/engine/doc/translations/zh_TW.po index 3734b7df..aff41ef9 100644 --- a/engine/doc/translations/zh_TW.po +++ b/engine/doc/translations/zh_TW.po @@ -8931,30 +8931,6 @@ msgstr "" "要生成的緩衝區的長度,以秒為單位。較低的值會帶來更少的延遲,但需要腳本更快地生" "成音訊資料,從而導致 CPU 使用率增加,如果 CPU 跟不上,則音訊破裂的風險更大。" -msgid "" -"The sample rate to use (in Hz). Higher values are more demanding for the CPU " -"to generate, but result in better quality.\n" -"In games, common sample rates in use are [code]11025[/code], [code]16000[/" -"code], [code]22050[/code], [code]32000[/code], [code]44100[/code], and " -"[code]48000[/code].\n" -"According to the [url=https://en.wikipedia.org/wiki/" -"Nyquist%E2%80%93Shannon_sampling_theorem]Nyquist-Shannon sampling theorem[/" -"url], there is no quality difference to human hearing when going past 40,000 " -"Hz (since most humans can only hear up to ~20,000 Hz, often less). If you are " -"generating lower-pitched sounds such as voices, lower sample rates such as " -"[code]32000[/code] or [code]22050[/code] may be usable with no loss in " -"quality." -msgstr "" -"使用的取樣速率(單位:Hz)。更高的值對 CPU 要求更高,但會帶來更好的品質。\n" -"在遊戲中,常用的取樣速率有 [code]11025[/code]、[code]16000[/code]、" -"[code]22050[/code]、[code]32000[/code]、[code]44100[/code]、[code]48000[/" -"code]。\n" -"根據[url=https://zh.wikipedia.org/wiki/%E9%87%87%E6%A0%B7%E5%AE%9A%E7%90%86]奈" -"奎斯特–香農取樣定理[/url],當超過 40000 赫茲時,人類的聽覺沒有品質上的差別(因" -"為大多數人最多只能聽到 ~20000 赫茲,往往更少)。如果你要生成語音等音高較低的聲" -"音,則可以使用 [code]32000[/code] 或 [code]22050[/code] 等較低的取樣率,不會降" -"低品質。" - msgid "Plays back audio generated using [AudioStreamGenerator]." msgstr "播放使用 [AudioStreamGenerator] 生成的音訊。" @@ -10255,25 +10231,6 @@ msgid "" "distance." msgstr "如果為 [code]true[/code],則無論距離遠近,物件都以相同的大小算繪。" -msgid "" -"If [code]true[/code], enables the vertex grow setting. This can be used to " -"create mesh-based outlines using a second material pass and its [member " -"cull_mode] set to [constant CULL_FRONT]. See also [member grow_amount].\n" -"[b]Note:[/b] Vertex growth cannot create new vertices, which means that " -"visible gaps may occur in sharp corners. This can be alleviated by designing " -"the mesh to use smooth normals exclusively using [url=https://wiki.polycount." -"com/wiki/Face_weighted_normals]face weighted normals[/url] in the 3D " -"authoring software. In this case, grow will be able to join every outline " -"together, just like in the original mesh." -msgstr "" -"如果為 [code]true[/code],則啟用頂點增長設定。可用於建立基於網格的輪廓,請在第" -"二個材質階段中使用,並將 [member cull_mode] 設定為 [constant CULL_FRONT]。另" -"見 [member grow_amount]。\n" -"[b]注意:[/b]頂點增長無法新建頂點,這意味著銳角可能會造成可見的缺口。緩解方法" -"是在設計網格時就只用平滑的法線,在 3D 創作軟體中使用 [url=https://wiki." -"polycount.com/wiki/Face_weighted_normals]面加權法線[/url]。這樣增長就能夠將所" -"有輪廓連接到一起,和原始網格一致。" - msgid "" "Grows object vertices in the direction of their normals. Only effective if " "[member grow] is [code]true[/code]." @@ -13609,21 +13566,6 @@ msgstr "" "dst.a = modulate.a + dst.a * (1.0 - modulate.a);\n" "[/codeblock]" -msgid "" -"Draws a line from a 2D point to another, with a given color and width. It can " -"be optionally antialiased. See also [method draw_multiline] and [method " -"draw_polyline].\n" -"If [param width] is negative, then a two-point primitive will be drawn " -"instead of a four-point one. This means that when the CanvasItem is scaled, " -"the line will remain thin. If this behavior is not desired, then pass a " -"positive [param width] like [code]1.0[/code]." -msgstr "" -"使用給定的顏色和寬度,從一個 2D 點到另一個點繪製一條直線。它可以選擇抗鋸齒。另" -"請參閱 [method draw_multiline] 和 [method draw_polyline]。\n" -"如果 [param width] 為負,則將繪製一個兩點圖元而不是一個四點圖元。這意味著當縮" -"放 CanvasItem 時,線條將保持細長。如果不需要此行為,請傳遞一個正的 [param " -"width],如 [code]1.0[/code]。" - msgid "" "Draws a [Mesh] in 2D, using the provided texture. See [MeshInstance2D] for " "related documentation." @@ -18828,9 +18770,6 @@ msgstr "" "gui_is_drag_successful] 的替代方案。\n" "建議與 [constant Node.NOTIFICATION_DRAG_END] 配合使用。" -msgid "Returns [code]true[/code] if layout is right-to-left." -msgstr "如果佈局是從右至左的,則返回 [code]true[/code]。" - msgid "Give up the focus. No other control will be able to receive input." msgstr "放棄焦點。不會讓其他控制項能夠接收鍵盤輸入。" @@ -19243,13 +19182,6 @@ msgstr "" "控制控制項在垂直軸上的方向,如果控制項的垂直最小尺寸更改為大於目前尺寸,則控制" "項應沿該方向增大,因為控制項始終必須至少為最小尺寸。" -msgid "" -"Controls layout direction and text writing direction. Right-to-left layouts " -"are necessary for certain languages (e.g. Arabic and Hebrew)." -msgstr "" -"控制佈局方向和文字書寫方向。某些語言需要從右至左的佈局(例如阿拉伯語和希伯來" -"語)。" - msgid "" "If [code]true[/code], automatically converts code line numbers, list indices, " "[SpinBox] and [ProgressBar] values from the Western Arabic (0..9) to the " @@ -19505,9 +19437,6 @@ msgstr "當節點獲得焦點時發送。" msgid "Sent when the node loses focus." msgstr "當節點失去焦點時發送。" -msgid "Sent when control layout direction is changed." -msgstr "當控制項的佈局方向改變時發送。" - msgid "" "Show the system's arrow mouse cursor when the user hovers the node. Use with " "[member mouse_default_cursor_shape]." @@ -19867,9 +19796,6 @@ msgid "" "direction." msgstr "自動佈局方向,由父控制項佈局方向決定。" -msgid "Automatic layout direction, determined from the current locale." -msgstr "自動佈局方向,根據目前語言環境確定。" - msgid "Left-to-right layout direction." msgstr "從左至右的佈局方向。" @@ -33795,11 +33721,6 @@ msgid "" "slower." msgstr "螢幕空間反射的最大步數。數值越高,速度越慢。" -msgid "" -"The default exposure used for tonemapping. Higher values result in a brighter " -"image. See also [member tonemap_white]." -msgstr "色調對應的預設曝光。值越高,圖像越亮。另見 [member tonemap_white]。" - msgid "" "The [Color] of the volumetric fog when interacting with lights. Mist and fog " "have an albedo close to [code]Color(1, 1, 1, 1)[/code] while smoke has a " @@ -34033,36 +33954,6 @@ msgstr "禁用反射。與其他選項相比,這提供了輕微的性能提升 msgid "Use the [Sky] for reflections regardless of what the background is." msgstr "無論背景如何,都使用 [Sky] 進行反射。" -msgid "" -"Linear tonemapper operator. Reads the linear data and passes it on " -"unmodified. This can cause bright lighting to look blown out, with noticeable " -"clipping in the output colors." -msgstr "" -"線性色調對應運算子。讀取線性資料並將其原樣傳遞。較亮的光照會導致過曝、輸出的顏" -"色中會有可見的截斷。" - -msgid "" -"Filmic tonemapper operator. This avoids clipping bright highlights, with a " -"resulting image that usually looks more vivid than [constant " -"TONE_MAPPER_REINHARDT]." -msgstr "" -"電影級色調對應器運算子。可以避免對高光處的截斷,最終圖像通常比 [constant " -"TONE_MAPPER_REINHARDT] 更鮮豔。" - -msgid "" -"Use the Academy Color Encoding System tonemapper. ACES is slightly more " -"expensive than other options, but it handles bright lighting in a more " -"realistic fashion by desaturating it as it becomes brighter. ACES typically " -"has a more contrasted output compared to [constant TONE_MAPPER_REINHARDT] and " -"[constant TONE_MAPPER_FILMIC].\n" -"[b]Note:[/b] This tonemapping operator is called \"ACES Fitted\" in Godot 3.x." -msgstr "" -"使用學院色彩編碼系統(Academy Color Encoding System)色調對應器。ACES 比其他選" -"項消耗略高,但對於較亮光照的處理更真實,越亮飽和度越低。ACES 的輸出在對比度方" -"面通常比 [constant TONE_MAPPER_REINHARDT] 和 [constant TONE_MAPPER_FILMIC] 更" -"高。\n" -"[b]注意:[/b]Godot 3.x 將該色調對應運算子稱為“ACES Fitted”。" - msgid "" "Additive glow blending mode. Mostly used for particles, glows (bloom), lens " "flare, bright sources." @@ -40035,27 +39926,6 @@ msgstr "" msgid "Reads one chunk from the response." msgstr "從回應中讀取一塊資料。" -msgid "" -"Sends a raw request to the connected host.\n" -"The URL parameter is usually just the part after the host, so for " -"[code]https://somehost.com/index.php[/code], it is [code]/index.php[/code]. " -"When sending requests to an HTTP proxy server, it should be an absolute URL. " -"For [constant HTTPClient.METHOD_OPTIONS] requests, [code]*[/code] is also " -"allowed. For [constant HTTPClient.METHOD_CONNECT] requests, it should be the " -"authority component ([code]host:port[/code]).\n" -"Headers are HTTP request headers. For available HTTP methods, see [enum " -"Method].\n" -"Sends the body data raw, as a byte array and does not encode it in any way." -msgstr "" -"向連接的伺服器發送請求。\n" -"URL 參數通常只是主機名稱後面的部分,所以對於 [code]https://somehost.com/index." -"php[/code] 來說就是 [code]/index.php[/code]。當向 HTTP 代理伺服器發送請求時," -"它應該是一個絕對 URL。對於 [constant HTTPClient.METHOD_OPTIONS] 請求," -"[code]*[/code] 也是允許的。對於 [constant HTTPClient.METHOD_CONNECT] 請求,它" -"應該是許可權組件 ([code]host:port[/code])。\n" -"Headers 參數是 HTTP 請求的報頭。有關可用的 HTTP 方法,請參閱 [enum Method]。\n" -"請求體是以位元組陣列的形式原樣發送的,不會進行任何形式的編碼。" - msgid "" "Sets the proxy server for HTTP requests.\n" "The proxy server is unset if [param host] is empty or [param port] is -1." @@ -41797,18 +41667,6 @@ msgstr "" "[Texture2DArray]、[Cubemap] 和 [CubemapArray] 的基底類別。不能直接使用,但包含" "了存取衍生資源型別所需的所有函式。另請參閱 [Texture3D]。" -msgid "" -"Creates an [ImageTextureLayered] from an array of [Image]s. See [method Image." -"create] for the expected data format. The first image decides the width, " -"height, image format and mipmapping setting. The other images [i]must[/i] " -"have the same width, height, image format and mipmapping setting.\n" -"Each [Image] represents one [code]layer[/code]." -msgstr "" -"從一組 [Image] 建立一個 [ImageTextureLayered]。有關預期的資料格式,請參閱 " -"[method Image.create]。第一張圖像決定寬度、高度、圖像格式和 mipmapping 設定。" -"其他圖像[i]必須[/i]具有相同的寬度、高度、圖像格式和 mipmapping 設定。\n" -"每個 [Image] 代表一個 [code]layer[/code]。" - msgid "Mesh optimized for creating geometry manually." msgstr "為手動建立幾何體,而優化的網格。" @@ -42003,22 +41861,6 @@ msgstr "" "引擎已經會在關鍵的執行點執行此操作,至少每影格一次。然而,在你想要精確控制事件" "處理時間的高級情況下,這可能是有用的。" -msgid "" -"Returns the acceleration in m/s² of the device's accelerometer sensor, if the " -"device has one. Otherwise, the method returns [constant Vector3.ZERO].\n" -"Note this method returns an empty [Vector3] when running from the editor even " -"when your device has an accelerometer. You must export your project to a " -"supported device to read values from the accelerometer.\n" -"[b]Note:[/b] This method only works on Android and iOS. On other platforms, " -"it always returns [constant Vector3.ZERO]." -msgstr "" -"如果裝置有加速度計感測器,則返回該裝置加速度計感測器的加速度,單位為 m/s²。否" -"則,該方法返回 [constant Vector3.ZERO]。\\\n" -"請注意,即使你的裝置具有一個加速度計,在從編輯器運作時,該方法也會返回一個空" -"的 [Vector3]。必須將專案匯出到一個支援的裝置上,才能從加速度計讀取值。\n" -"[b]注意:[/b]該方法僅適用於 iOS、Android 和 UWP。在其他平臺上,它總是返回 " -"[constant Vector3.ZERO]。" - msgid "" "Returns a value between 0 and 1 representing the raw intensity of the given " "action, ignoring the action's deadzone. In most cases, you should use [method " @@ -42051,29 +41893,6 @@ msgstr "返回一個 [Array],包含目前所有連接手柄的裝置 ID。" msgid "Returns the currently assigned cursor shape (see [enum CursorShape])." msgstr "返回目前指定的游標形狀(見 [enum CursorShape])。" -msgid "" -"Returns the gravity in m/s² of the device's accelerometer sensor, if the " -"device has one. Otherwise, the method returns [constant Vector3.ZERO].\n" -"[b]Note:[/b] This method only works on Android and iOS. On other platforms, " -"it always returns [constant Vector3.ZERO]." -msgstr "" -"如果裝置有加速度計感測器,則返回該裝置有加速度計感測器的重力,單位為 m/s²。否" -"則,該方法返回 [constant Vector3.ZERO]。\n" -"[b]注意:[/b]該方法僅適用於 Android 和 iOS。在其他平臺上,它總是返回 " -"[constant Vector3.ZERO]。" - -msgid "" -"Returns the rotation rate in rad/s around a device's X, Y, and Z axes of the " -"gyroscope sensor, if the device has one. Otherwise, the method returns " -"[constant Vector3.ZERO].\n" -"[b]Note:[/b] This method only works on Android and iOS. On other platforms, " -"it always returns [constant Vector3.ZERO]." -msgstr "" -"如果裝置有陀螺儀感測器,則返回圍繞裝置 X、Y、Z 軸的旋轉速率,單位為 rad/s。否" -"則,該方法返回 [constant Vector3.ZERO]。\n" -"[b]注意:[/b]這個方法只在 Android 和 iOS 上工作。在其他平臺上,總是返回 " -"[constant Vector3.ZERO]。" - msgid "" "Returns the current value of the joypad axis at given index (see [enum " "JoyAxis])." @@ -42105,18 +41924,6 @@ msgstr "" "返回上次的滑鼠速度。為了提供精確且無抖動的速度,滑鼠速度僅每 0.1 秒計算一次。" "因此,滑鼠速度將滯後於滑鼠移動。" -msgid "" -"Returns the magnetic field strength in micro-Tesla for all axes of the " -"device's magnetometer sensor, if the device has one. Otherwise, the method " -"returns [constant Vector3.ZERO].\n" -"[b]Note:[/b] This method only works on Android and iOS. On other platforms, " -"it always returns [constant Vector3.ZERO]." -msgstr "" -"如果裝置有磁力感測器,則返回裝置所有軸的磁場強度,單位為微特斯拉。否則,該方法" -"返回 [constant Vector3.ZERO]。\n" -"[b]注意:[/b]這個方法只在 Android、iOS 和 UWP 上有效。在其他平臺上,總是返回 " -"[constant Vector3.ZERO]。" - msgid "" "Returns mouse buttons as a bitmask. If multiple mouse buttons are pressed at " "the same time, the bits are added together. Equivalent to [method " @@ -55330,9 +55137,6 @@ msgstr "" "如果 [param begin] 或 [param end] 為負,則表示相對於陣列的末尾(即 [code]arr." "slice(0, -2)[/code] 是 [code]arr.slice(0, arr.size() - 2)[/code] 的簡寫)。" -msgid "Returns a [PackedByteArray] with each string encoded as bytes." -msgstr "返回 [PackedByteArray],每個字串都被編碼為位元組。" - msgid "" "Returns a new [PackedStringArray] with contents of [param right] added at the " "end of this array. For better performance, consider using [method " @@ -63513,12 +63317,6 @@ msgstr "" "取,那麼音訊捕獲只會返回靜音。自 Windows 10 起,請確保在作業系統的隱私設定中允" "許套用對麥克風的存取。" -msgid "" -"The mixing rate used for audio (in Hz). In general, it's better to not touch " -"this and leave it to the host operating system." -msgstr "" -"用於音訊的混合率(單位:Hz)。一般來說,最好不要碰這個,把它留給主機操作系統。" - msgid "" "Safer override for [member audio/driver/mix_rate] in the Web platform. Here " "[code]0[/code] means \"let the browser choose\" (since some browsers do not " @@ -65492,20 +65290,6 @@ msgstr "" "[b]注意:[/b]幾乎所有情況下都應該優先設定為 [code]false[/code]。舊有行為的用途" "是支援老專案,這樣不需要修改腳本就可以使用以前的邏輯。" -msgid "" -"Specifies the tablet driver to use. If left empty, the default driver will be " -"used.\n" -"[b]Note:[/b] The driver in use can be overridden at runtime via the [code]--" -"tablet-driver[/code] [url=$DOCS_URL/tutorials/editor/command_line_tutorial." -"html]command line argument[/url]." -msgstr "" -"指定要使用的平板驅動。如果留空,則會使用預設驅動。\n" -"[b]注意:[/b]所使用的驅動可以通過 [code]--tablet-driver[/code] [url=$DOCS_URL/" -"tutorials/editor/command_line_tutorial.html]命令列參數[/url]在運作時進行覆蓋。" - -msgid "Override for [member input_devices/pen_tablet/driver] on Windows." -msgstr "[member input_devices/pen_tablet/driver] 針對 Windows 的覆蓋項。" - msgid "" "If [code]true[/code], sends mouse input events when tapping or swiping on the " "touchscreen." @@ -65516,34 +65300,6 @@ msgid "" "mouse." msgstr "如果為 [code]true[/code],則在點擊或拖動滑鼠時發送觸摸輸入事件。" -msgid "" -"The locale to fall back to if a translation isn't available in a given " -"language. If left empty, [code]en[/code] (English) will be used." -msgstr "" -"如果給定語言的翻譯不可用,則使用預設區域設定。如果留空,將使用 [code]en[/" -"code],即英文。" - -msgid "" -"If [code]true[/code], text server break iteration rule sets, dictionaries and " -"other optional data are included in the exported project.\n" -"[b]Note:[/b] \"ICU / HarfBuzz / Graphite\" text server data includes " -"dictionaries for Burmese, Chinese, Japanese, Khmer, Lao and Thai as well as " -"Unicode Standard Annex #29 and Unicode Standard Annex #14 word and line " -"breaking rules. Data is about 4 MB large.\n" -"[b]Note:[/b] \"Fallback\" text server does not use additional data." -msgstr "" -"如果為 [code]true[/code],則文字伺服器中斷反覆運算規則集、字典、和其他可選資料" -"將被包含在匯出的專案中。\n" -"[b]注意:[/b]“ICU / HarfBuzz / Graphite”文字伺服器資料,包括緬甸語、漢語、日" -"語、高棉語、老撾語和泰語的詞典,以及 Unicode 標準附件 #29 和 Unicode 標準附件 " -"#14 單詞和行折斷規則。資料大約 4 MB。\n" -"[b]注意:[/b]“後備”文字伺服器不使用額外資料。" - -msgid "" -"If non-empty, this locale will be used when running the project from the " -"editor." -msgstr "如果不為空,那麼當從編輯器中運作專案時,將使用該區域設定。" - msgid "" "Double vowels in strings during pseudolocalization to simulate the " "lengthening of text due to localization." @@ -65558,16 +65314,6 @@ msgstr "" "進行偽當地語系化時的擴充比率。取 [code]0.3[/code] 能夠適應大部分實際使用,會將" "每個字串加長 30%。" -msgid "" -"If [code]true[/code], emulate bidirectional (right-to-left) text when " -"pseudolocalization is enabled. This can be used to spot issues with RTL " -"layout and UI mirroring that will crop up if the project is localized to RTL " -"languages such as Arabic or Hebrew." -msgstr "" -"如果為 [code]true[/code],則在啟用偽當地語系化時模擬雙向(從右至左)文字。可用" -"於發現 RTL 佈局和 UI 鏡像問題,如果專案當地語系化為阿拉伯語或希伯來語等 RTL 語" -"言,則會出現這些問題。" - msgid "" "Replace all characters in the string with [code]*[/code]. Useful for finding " "non-localizable strings." @@ -65605,10 +65351,6 @@ msgstr "" "[b]注意:[/b]只有在專案啟動時該屬性才會被讀取。要在運作時切換偽當地語系化,請" "改用 [member TranslationServer.pseudolocalization_enabled]。" -msgid "" -"Force layout direction and text writing direction to RTL for all controls." -msgstr "強制所有控制項的佈局方向和文字書寫方向為 RTL。" - msgid "Root node default layout direction." msgstr "根節點的預設佈局方向。" @@ -66986,17 +66728,6 @@ msgstr "" "[/csharp]\n" "[/codeblocks]" -msgid "" -"If [code]true[/code], the 3D physics server runs on a separate thread, making " -"better use of multi-core CPUs. If [code]false[/code], the 3D physics server " -"runs on the main thread. Running the physics server on a separate thread can " -"increase performance, but restricts API access to only physics process." -msgstr "" -"如果為 [code]true[/code],則 3D 物理伺服器會在單獨的執行緒上運作,能夠更好地利" -"用多核 CPU。如果為 [code]false[/code],則 3D 物理伺服器會在主執行緒上運作。在" -"單獨的執行緒上運作物理伺服器能夠提高性能,但會把對 API 的存取限制在物理處理" -"中。" - msgid "" "Threshold angular velocity under which a 3D physics body will be considered " "inactive. See [constant PhysicsServer3D." @@ -67456,32 +67187,6 @@ msgstr "" "縮放,因此實際值可能與設定的值不同。設定較大的大小,以獲得更詳細的霧;設定較小" "的大小,以獲得更好的性能。" -msgid "" -"Sets the driver to be used by the renderer when using the Compatibility " -"renderer. This property can not be edited directly, instead, set the driver " -"using the platform-specific overrides." -msgstr "" -"設定算繪器驅動程式,在使用 Compatibility(相容性)算繪器時使用。這個屬性不能直" -"接編輯,請改用特定平臺的覆蓋項來設定驅動程式。" - -msgid "Android override for [member rendering/gl_compatibility/driver]." -msgstr "[member rendering/gl_compatibility/driver] 在 Android 的覆蓋項。" - -msgid "iOS override for [member rendering/gl_compatibility/driver]." -msgstr "[member rendering/gl_compatibility/driver] 在 iOS 的覆蓋項。" - -msgid "LinuxBSD override for [member rendering/gl_compatibility/driver]." -msgstr "[member rendering/gl_compatibility/driver] 在 LinuxBSD 的覆蓋項。" - -msgid "macOS override for [member rendering/gl_compatibility/driver]." -msgstr "[member rendering/gl_compatibility/driver] 在 macOS 的覆蓋項。" - -msgid "Web override for [member rendering/gl_compatibility/driver]." -msgstr "[member rendering/gl_compatibility/driver] 在 Web 的覆蓋項。" - -msgid "Windows override for [member rendering/gl_compatibility/driver]." -msgstr "[member rendering/gl_compatibility/driver] 在 Windows 的覆蓋項。" - msgid "" "Maximum number of canvas items commands that can be drawn in a single " "viewport update. If more render commands are issued they will be ignored. " @@ -68050,21 +67755,6 @@ msgstr "移動裝置的 [member rendering/renderer/rendering_method] 覆蓋項 msgid "Override for [member rendering/renderer/rendering_method] on web." msgstr "Web 平臺的 [member rendering/renderer/rendering_method] 覆蓋項。" -msgid "Android override for [member rendering/rendering_device/driver]." -msgstr "[member rendering/rendering_device/driver] 在 Android 的覆蓋項。" - -msgid "iOS override for [member rendering/rendering_device/driver]." -msgstr "[member rendering/rendering_device/driver] 在 iOS 的覆蓋項。" - -msgid "LinuxBSD override for [member rendering/rendering_device/driver]." -msgstr "[member rendering/rendering_device/driver] 在 LinuxBSD 的覆蓋項。" - -msgid "macOS override for [member rendering/rendering_device/driver]." -msgstr "[member rendering/rendering_device/driver] 在 macOS 的覆蓋項。" - -msgid "Windows override for [member rendering/rendering_device/driver]." -msgstr "[member rendering/rendering_device/driver] 在 Windows 的覆蓋項。" - msgid "" "Determines at which interval pipeline cache is saved to disk. The lower the " "value, the more often it is saved." @@ -78536,34 +78226,6 @@ msgstr "為環境光指定特定的 [Color]。" msgid "Disable reflections." msgstr "禁用反射。" -msgid "" -"Output color as they came in. This can cause bright lighting to look blown " -"out, with noticeable clipping in the output colors." -msgstr "" -"按照輸入原樣輸出顏色。較亮的光照會導致過曝、輸出的顏色中會有可見的截斷。" - -msgid "" -"Use the filmic tonemapper. This avoids clipping bright highlights, with a " -"resulting image that usually looks more vivid than [constant " -"ENV_TONE_MAPPER_REINHARD]." -msgstr "" -"使用電影級色調對應器。可以避免對高光的截斷,最終的圖像一般比 [constant " -"ENV_TONE_MAPPER_REINHARD] 看上去更鮮豔。" - -msgid "" -"Use the Academy Color Encoding System tonemapper. ACES is slightly more " -"expensive than other options, but it handles bright lighting in a more " -"realistic fashion by desaturating it as it becomes brighter. ACES typically " -"has a more contrasted output compared to [constant ENV_TONE_MAPPER_REINHARD] " -"and [constant ENV_TONE_MAPPER_FILMIC].\n" -"[b]Note:[/b] This tonemapping operator is called \"ACES Fitted\" in Godot 3.x." -msgstr "" -"使用Academy 顏色編碼系統色調對應器。ACES 比其他選項稍貴一些,但它通過在光線變" -"亮時對其進行去飽和處理,以更逼真的方式處理明亮的光線。與 [constant " -"ENV_TONE_MAPPER_REINHARD] 和 [constant ENV_TONE_MAPPER_FILMIC] 相比,ACES 通常" -"具有對比度更高的輸出。\n" -"[b]注意:[/b]這個色調對應運算子在 Godot 3.x 中被稱為“ACES Fitted”。" - msgid "" "Lowest quality of roughness filter for screen-space reflections. Rough " "materials will not have blurrier screen-space reflections compared to smooth " @@ -92019,19 +91681,6 @@ msgid "" "and complex text layout." msgstr "Godot 文字伺服器的退回實作,不支援雙向排版和複雜排版。" -msgid "" -"A fallback implementation of Godot's text server. This fallback is faster " -"than [TextServerAdvanced] for processing a lot of text, but it does not " -"support BiDi and complex text layout.\n" -"[b]Note:[/b] This text server is not part of official Godot binaries. If you " -"want to use it, compile the engine with the option " -"[code]module_text_server_fb_enabled=yes[/code]." -msgstr "" -"Godot 文字伺服器的退回實作。退回版本在處理大量文字時比 [TextServerAdvanced] " -"快,但是不支援雙向排版和複雜排版。\n" -"[b]注意:[/b]官方 Godot 二進位檔案中不包含該文字伺服器。如果想要使用,請使用 " -"[code]module_text_server_fb_enabled=yes[/code] 選項編譯引擎。" - msgid "A singleton for managing [TextServer] implementations." msgstr "用於管理 [TextServer] 實作的單例。" @@ -92203,30 +91852,6 @@ msgid "" msgstr "" "由多個獨立圖像構成的單個紋理資源。每個圖像的尺寸和 mipmap 級別數都相同。" -msgid "" -"A Texture2DArray is different from a Texture3D: The Texture2DArray does not " -"support trilinear interpolation between the [Image]s, i.e. no blending. See " -"also [Cubemap] and [CubemapArray], which are texture arrays with specialized " -"cubemap functions.\n" -"A Texture2DArray is also different from an [AtlasTexture]: In a " -"Texture2DArray, all images are treated separately. In an atlas, the regions " -"(i.e. the single images) can be of different sizes. Furthermore, you usually " -"need to add a padding around the regions, to prevent accidental UV mapping to " -"more than one region. The same goes for mipmapping: Mipmap chains are handled " -"separately for each layer. In an atlas, the slicing has to be done manually " -"in the fragment shader.\n" -"To create such a texture file yourself, reimport your image files using the " -"Godot Editor import presets." -msgstr "" -"Texture2DArray 與 Texture3D 不同:Texture2DArray 不支援在 [Image] 之間進行三線" -"性插值,即不會進行混合。另見 [Cubemap] 和 [CubemapArray],這些紋理陣列具有針對" -"立方體貼圖設計的函式。\n" -"Texture2DArray 與 [AtlasTexture] 也不同:Texture2DArray 中的圖形都是單獨處理" -"的。而在合集中,區域(即單張圖像)的大小可以不同。此外,你通常會需要圍繞區域新" -"增邊距,防止 UV 對應意外進入多個區域。多級漸遠紋理 mipmap 也是一樣:每一層的 " -"mipmap 鏈都是單獨處理的。而在合集中,需要在片段著色器中手動切片。\n" -"要自己建立這樣的紋理檔,請使用 Godot 編輯器匯入預設重新匯入影像檔。" - msgid "" "Creates a placeholder version of this resource ([PlaceholderTexture2DArray])." msgstr "建立該資源的預留位置版本([PlaceholderTexture2DArray])。" @@ -98389,15 +98014,6 @@ msgstr "" "相當於使用該向量的 [member y] 和 [member x] 作為參數對 [method @GlobalScope." "atan2] 進行呼叫的結果:[code]atan2(y, x)[/code]。" -msgid "" -"Returns the angle to the given vector, in radians.\n" -"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" -"vector2_angle_to.png]Illustration of the returned angle.[/url]" -msgstr "" -"返回與給定向量的夾角,單位為弧度。\n" -"[url=https://raw.githubusercontent.com/godotengine/godot-docs/4.1/img/" -"vector2_angle_to.png]返回夾角示意圖。[/url]" - msgid "" "Returns the angle between the line connecting the two points and the X axis, " "in radians.\n" @@ -105454,6 +105070,9 @@ msgid "" "window." msgstr "如果該視窗目前嵌入在其他視窗中,則返回 [code]true[/code]。" +msgid "Returns [code]true[/code] if layout is right-to-left." +msgstr "如果佈局是從右至左的,則返回 [code]true[/code]。" + msgid "" "Returns [code]true[/code] if the window can be maximized (the maximize button " "is enabled)." @@ -106080,6 +105699,9 @@ msgid "" "direction." msgstr "自動佈局方向,由父視窗的佈局方向決定。" +msgid "Automatic layout direction, determined from the current locale." +msgstr "自動佈局方向,根據目前語言環境確定。" + msgid "Initial window position is determined by [member position]." msgstr "初始視窗位置由 [member position] 決定。" diff --git a/engine/drivers/metal/rendering_device_driver_metal.mm b/engine/drivers/metal/rendering_device_driver_metal.mm index b6f606bf..6c170034 100644 --- a/engine/drivers/metal/rendering_device_driver_metal.mm +++ b/engine/drivers/metal/rendering_device_driver_metal.mm @@ -2045,6 +2045,7 @@ Vector<uint8_t> RenderingDeviceDriverMetal::shader_compile_binary_from_spirv(Vec #if TARGET_OS_IPHONE msl_options.ios_use_simdgroup_functions = (*device_properties).features.simdPermute; + msl_options.ios_support_base_vertex_instance = true; #endif bool disable_argument_buffers = false; @@ -4082,9 +4083,14 @@ RenderingDeviceDriverMetal::RenderingDeviceDriverMetal(RenderingContextDriverMet context_driver(p_context_driver) { DEV_ASSERT(p_context_driver != nullptr); +#if TARGET_OS_OSX if (String res = OS::get_singleton()->get_environment("GODOT_MTL_SHADER_LOAD_STRATEGY"); res == U"lazy") { _shader_load_strategy = ShaderLoadStrategy::LAZY; } +#else + // Always use the lazy strategy on other OSs like iOS, tvOS, or visionOS. + _shader_load_strategy = ShaderLoadStrategy::LAZY; +#endif } RenderingDeviceDriverMetal::~RenderingDeviceDriverMetal() { diff --git a/engine/editor/editor_data.cpp b/engine/editor/editor_data.cpp index d06472e3..7b6eb409 100644 --- a/engine/editor/editor_data.cpp +++ b/engine/editor/editor_data.cpp @@ -1028,8 +1028,8 @@ String EditorData::script_class_get_icon_path(const String &p_class, bool *r_val return String(); } HashMap<StringName, String>::ConstIterator E = _script_class_icon_paths.find(current); - if ((bool)E && !E->value.is_empty()) { - if (r_valid) { + if ((bool)E) { + if (r_valid && !E->value.is_empty()) { *r_valid = true; } return E->value; diff --git a/engine/editor/editor_dock_manager.cpp b/engine/editor/editor_dock_manager.cpp index 51c15f3d..32269f91 100644 --- a/engine/editor/editor_dock_manager.cpp +++ b/engine/editor/editor_dock_manager.cpp @@ -547,10 +547,10 @@ void EditorDockManager::load_docks_from_config(Ref<ConfigFile> p_layout, const S continue; } Control *dock = dock_map[name]; - dock->call(SNAME("_load_layout_from_config"), p_layout, p_section); if (!all_docks[dock].enabled) { // Don't open disabled docks. + dock->call(SNAME("_load_layout_from_config"), p_layout, p_section); continue; } bool at_bottom = false; @@ -563,6 +563,7 @@ void EditorDockManager::load_docks_from_config(Ref<ConfigFile> p_layout, const S } else if (i >= 0) { _move_dock(dock, dock_slot[i], 0); } + dock->call(SNAME("_load_layout_from_config"), p_layout, p_section); if (closed_docks.has(name)) { _move_dock(dock, closed_dock_parent); diff --git a/engine/editor/editor_settings.cpp b/engine/editor/editor_settings.cpp index 04fc8d15..a246249c 100644 --- a/engine/editor/editor_settings.cpp +++ b/engine/editor/editor_settings.cpp @@ -974,6 +974,7 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { // SSL EDITOR_SETTING_USAGE(Variant::STRING, PROPERTY_HINT_GLOBAL_FILE, "network/tls/editor_tls_certificates", _SYSTEM_CERTS_PATH, "*.crt,*.pem", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED); + EDITOR_SETTING_BASIC(Variant::BOOL, PROPERTY_HINT_NONE, "network/tls/enable_tls_v1.3", true, "") // Debug _initial_set("network/debug/remote_host", "127.0.0.1"); // Hints provided in setup_network diff --git a/engine/editor/import/resource_importer_csv_translation.cpp b/engine/editor/import/resource_importer_csv_translation.cpp index 17f6070d..62aa7bd1 100644 --- a/engine/editor/import/resource_importer_csv_translation.cpp +++ b/engine/editor/import/resource_importer_csv_translation.cpp @@ -142,14 +142,22 @@ Error ResourceImporterCSVTranslation::import(ResourceUID::ID p_source_id, const } String save_path = p_source_file.get_basename() + "." + translations[i]->get_locale() + ".translation"; + ResourceUID::ID save_id = hash64_murmur3_64(translations[i]->get_locale().hash64(), p_source_id) & 0x7FFFFFFFFFFFFFFF; + bool uid_already_exists = ResourceUID::get_singleton()->has_id(save_id); + if (uid_already_exists) { + // Avoid creating a new file with a duplicate UID. + // Always use this UID, even if the user has moved it to a different path. + save_path = ResourceUID::get_singleton()->get_id_path(save_id); + } ResourceSaver::save(xlt, save_path); if (r_gen_files) { r_gen_files->push_back(save_path); } - - ResourceUID::ID save_id = hash64_murmur3_64(translations[i]->get_locale().hash64(), p_source_id); - ResourceSaver::set_uid(save_path, save_id); + if (!uid_already_exists) { + // No need to call set_uid if save_path already refers to save_id. + ResourceSaver::set_uid(save_path, save_id); + } } return OK; diff --git a/engine/editor/plugins/embedded_process.cpp b/engine/editor/plugins/embedded_process.cpp index 0da2dceb..8aae1d88 100644 --- a/engine/editor/plugins/embedded_process.cpp +++ b/engine/editor/plugins/embedded_process.cpp @@ -95,9 +95,11 @@ void EmbeddedProcess::set_keep_aspect(bool p_keep_aspect) { } } -Rect2i EmbeddedProcess::_get_global_embedded_window_rect() { - Rect2i control_rect = get_global_rect(); - control_rect = Rect2i(control_rect.position + margin_top_left, (control_rect.size - get_margins_size()).maxi(1)); +Rect2i EmbeddedProcess::get_adjusted_embedded_window_rect(Rect2i p_rect) { + Rect2i control_rect = Rect2i(p_rect.position + margin_top_left, (p_rect.size - get_margins_size()).maxi(1)); + if (window) { + control_rect.position += window->get_position(); + } if (window_size != Size2i()) { Rect2i desired_rect = Rect2i(); if (!keep_aspect && control_rect.size.x >= window_size.x && control_rect.size.y >= window_size.y) { @@ -116,12 +118,7 @@ Rect2i EmbeddedProcess::_get_global_embedded_window_rect() { } Rect2i EmbeddedProcess::get_screen_embedded_window_rect() { - Rect2i rect = _get_global_embedded_window_rect(); - if (window) { - rect.position += window->get_position(); - } - - return rect; + return get_adjusted_embedded_window_rect(get_global_rect()); } int EmbeddedProcess::get_margin_size(Side p_side) const { @@ -321,10 +318,15 @@ void EmbeddedProcess::_check_mouse_over() { return; } - // When there's a modal window, we don't want to grab the focus to prevent - // the game window to go in front of the modal window. - if (_get_current_modal_window()) { - return; + // Check if there's an exclusive popup, an open menu, or a tooltip. + // We don't want to grab focus to prevent the game window from coming to the front of the modal window + // or the open menu from closing when the mouse cursor moves outside the menu and over the embedded game. + Vector<DisplayServer::WindowID> wl = DisplayServer::get_singleton()->get_window_list(); + for (const DisplayServer::WindowID &window_id : wl) { + Window *w = Window::get_from_id(window_id); + if (w && (w->is_exclusive() || w->get_flag(Window::FLAG_POPUP))) { + return; + } } // Force "regrabbing" the game window focus. diff --git a/engine/editor/plugins/embedded_process.h b/engine/editor/plugins/embedded_process.h index 55988be3..298424b0 100644 --- a/engine/editor/plugins/embedded_process.h +++ b/engine/editor/plugins/embedded_process.h @@ -83,6 +83,7 @@ public: void set_keep_aspect(bool p_keep_aspect); void queue_update_embedded_process(); + Rect2i get_adjusted_embedded_window_rect(Rect2i p_rect); Rect2i get_screen_embedded_window_rect(); int get_margin_size(Side p_side) const; Size2 get_margins_size(); diff --git a/engine/editor/plugins/game_view_plugin.cpp b/engine/editor/plugins/game_view_plugin.cpp index 6318bf6d..bc3b4cee 100644 --- a/engine/editor/plugins/game_view_plugin.cpp +++ b/engine/editor/plugins/game_view_plugin.cpp @@ -257,7 +257,7 @@ void GameView::_show_update_window_wrapper() { Point2 offset_embedded_process = embedded_process->get_global_position() - get_global_position(); // On the first startup, the global position of the embedded process control is invalid because it was - // never displayed. We will calculated it manually using the minimum size of the window. + // never displayed. We will calculate it manually using the minimum size of the window. if (offset_embedded_process == Point2()) { offset_embedded_process.y = wrapped_min_size.y; } @@ -812,10 +812,27 @@ void GameView::_update_arguments_for_instance(int p_idx, List<String> &r_argumen _update_embed_window_size(); Rect2i rect = embedded_process->get_screen_embedded_window_rect(); + // Usually, the global rect of the embedded process control is invalid because it was hidden. We will calculate it manually. + if (!window_wrapper->get_window_enabled()) { + Size2 old_min_size = embedded_process->get_custom_minimum_size(); + embedded_process->set_custom_minimum_size(Size2i()); + + Control *container = EditorNode::get_singleton()->get_editor_main_screen()->get_control(); + rect = container->get_global_rect(); + + Size2 wrapped_min_size = window_wrapper->get_minimum_size(); + rect.position.y += wrapped_min_size.y; + rect.size.y -= wrapped_min_size.y; + + rect = embedded_process->get_adjusted_embedded_window_rect(rect); + + embedded_process->set_custom_minimum_size(old_min_size); + } + // When using the floating window, we need to force the position and size from the // editor/project settings, because the get_screen_embedded_window_rect of the // embedded_process will be updated only on the next frame. - if (p_idx == 0 && window_wrapper->get_window_enabled()) { + if (window_wrapper->get_window_enabled()) { EditorRun::WindowPlacement placement = EditorRun::get_window_placement(); if (placement.position != Point2i(INT_MAX, INT_MAX)) { rect.position = placement.position; diff --git a/engine/editor/project_manager/project_dialog.cpp b/engine/editor/project_manager/project_dialog.cpp index 6f2e9da3..09819215 100644 --- a/engine/editor/project_manager/project_dialog.cpp +++ b/engine/editor/project_manager/project_dialog.cpp @@ -973,7 +973,7 @@ ProjectDialog::ProjectDialog() { default_renderer_type = EditorSettings::get_singleton()->get_setting("project_manager/default_renderer"); } - rendering_device_supported = DisplayServer::can_create_rendering_device(); + rendering_device_supported = DisplayServer::is_rendering_device_supported(); if (!rendering_device_supported) { default_renderer_type = "gl_compatibility"; diff --git a/engine/editor/scene_tree_dock.cpp b/engine/editor/scene_tree_dock.cpp index 2bc022f1..267d35f9 100644 --- a/engine/editor/scene_tree_dock.cpp +++ b/engine/editor/scene_tree_dock.cpp @@ -3115,6 +3115,7 @@ void SceneTreeDock::_replace_node(Node *p_node, Node *p_by_node, bool p_keep_pro // If we're dealing with a custom node type, we need to create a default instance of the custom type instead of the native type for property comparison. if (oldnode->has_meta(SceneStringName(_custom_type_script))) { Ref<Script> cts = PropertyUtils::get_custom_type_script(oldnode); + ERR_FAIL_COND_MSG(cts.is_null(), "Invalid custom type script."); default_oldnode = Object::cast_to<Node>(get_editor_data()->script_class_instance(cts->get_global_name())); if (default_oldnode) { default_oldnode->set_name(cts->get_global_name()); diff --git a/engine/editor/translations/editor/ar.po b/engine/editor/translations/editor/ar.po index 4d04e4a8..91d598b0 100644 --- a/engine/editor/translations/editor/ar.po +++ b/engine/editor/translations/editor/ar.po @@ -95,13 +95,14 @@ # Mohammed Almosawy <nairex1212m1@gmail.com>, 2024. # Ali al khawaja <ali.al.khuwaja@gmail.com>, 2024. # Spirit <spirit@programmer.net>, 2024. +# Saif El-Din Ahmed <sa435995@gmail.com>, 2025. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2024-11-17 23:22+0000\n" -"Last-Translator: بسام العوفي <co-able@hotmail.com>\n" +"PO-Revision-Date: 2025-02-23 18:34+0000\n" +"Last-Translator: Saif El-Din Ahmed <sa435995@gmail.com>\n" "Language-Team: Arabic <https://hosted.weblate.org/projects/godot-engine/godot/" "ar/>\n" "Language: ar\n" @@ -110,7 +111,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 5.9-dev\n" +"X-Generator: Weblate 5.10.1-dev\n" msgid "Main Thread" msgstr "النظيمة الأساسية" @@ -282,7 +283,7 @@ msgid "Magnify Gesture at (%s) with factor %s" msgstr "تكبير الإيماءة (Gesture) عند (%s) بمعامل %s" msgid "Pan Gesture at (%s) with delta (%s)" -msgstr "النهاية" +msgstr "إيماءة التحريك عند (%s) مع دلتا (%s)" msgid "MIDI Input on Channel=%s Message=%s" msgstr "إدخال MIDI في قناة=%s رسالة=%s" @@ -467,6 +468,9 @@ msgstr "أظهر الملفات المخفية" msgid "Swap Input Direction" msgstr "تبديل جهة الإدخال" +msgid "Start Unicode Character Input" +msgstr "بدء إدخال حروف يونيكود" + msgid "Invalid input %d (not passed) in expression" msgstr "مدخلات خاطئة %d (لم يتم تمريرها) في التعبير" @@ -708,6 +712,34 @@ msgstr "تعديل مدة الرسم المتحرك" msgid "Change Animation Loop" msgstr "تغيير حلقية التحريك" +msgid "" +"Can't change loop mode on animation instanced from an imported scene.\n" +"\n" +"To change this animation's loop mode, navigate to the scene's Advanced Import " +"settings and select the animation.\n" +"You can then change the loop mode from the inspector menu." +msgstr "" +"لا يمكن تغيير وضع الحلقة في تحريك مُنشأ من مشهد منسوخ.\n" +"\n" +"لتغير هذا وضع حلقة هذا التحريك، انتقل إلى إعدادات نسخ المشهد المتقدمة و حدد " +"التحريك.\n" +"يمكنك بعد ذلك ان تغير وضع الحلقة من قائمة الفاحص." + +msgid "Can't change loop mode on animation instanced from an imported resource." +msgstr "لا يمكن تغيير وضع الحلقة التكرارية في تحيرك مُنشأ من مشهد مستورد." + +msgid "" +"Can't change loop mode on animation embedded in another scene.\n" +"\n" +"You must open this scene and change the animation's loop mode from there." +msgstr "" +"لا يُمكن تغيير وضع التكرار في تحريك مضمن في مشهد آخر.\n" +"\n" +"يجب أن تفتح هذا المشهد و تغير وضع تكرار التحريك من هناك." + +msgid "Can't change loop mode on animation embedded in another resource." +msgstr "لا يمكن تغيير وضع الحلقة التكرارية في تحيرك المضمن في مورد آخر." + msgid "Property Track..." msgstr "مسار الملكية..." @@ -976,6 +1008,9 @@ msgstr "مسار المقطع غير صالح, إذن لا يمكن إضافة msgid "Track is not of type Node3D, can't insert key" msgstr "المقطع ليس عقدة ثلاثية الأبعاد، لا يمكن إضافة مفتاح" +msgid "Track is not of type MeshInstance3D, can't insert key" +msgstr "المقطع ليس من نوع تنسيخ-مجسم-ثلاثي، لا يمكن إدخال مفتاح" + msgid "Track path is invalid, so can't add a method key." msgstr "مسار المقطع غير صالح, إذن لا يمكن إضافة دالة المفتاح (Method key)." @@ -1099,6 +1134,15 @@ msgstr "أظهرْ المقاطع من العُقد المحددة داخل ال msgid "Group tracks by node or display them as plain list." msgstr "جمع المقاطع حسب العُقد أو إظهارها في قائمة واضحة." +msgid "Apply snapping to timeline cursor." +msgstr "تطبيق المحاذاة لمؤشر الخط الزمني." + +msgid "Apply snapping to selected key(s)." +msgstr "تطبيق المحاذاة للمفتاح (المفاتيح) المحددة." + +msgid "Apply snapping to the nearest integer FPS." +msgstr "تطبيق المحاذاة لأقرب عدد إطارات في الثانية صحيح." + msgid "Animation step value." msgstr "قيمة خطوة الحركة." @@ -1319,12 +1363,75 @@ msgstr "اختر الكل/لا شيء" msgid "Animation Change Keyframe Time" msgstr "تغيير مدة حركة الإطارات" +msgid "Marker name is read-only in the inspector." +msgstr "اسم العلامة غير قابل للتعديل في الفاحص." + +msgid "" +"A marker's name can only be changed by right-clicking it in the animation " +"editor and selecting \"Rename Marker\", in order to make sure that marker " +"names are all unique." +msgstr "" +"يمكن تغيير أسماء العلامات فقط عن طريق نقرها بزر الفأرة الأيمن داخل محرر " +"التحريك و تحديد \"إعادة تسمية العلامة\"، حتى يُضمن أن أسماء العلامات كلها " +"مميزة." + +msgid "Insert Marker..." +msgstr "أدخل علامة..." + +msgid "Rename Marker" +msgstr "إعادة تسمية العلامة" + +msgid "Delete Marker(s)" +msgstr "حذف العلامة (العلامات)" + +msgid "Show All Marker Names" +msgstr "إظهار أسماء العلامات كلها" + +msgid "Marker:" +msgstr "علامة:" + +msgid "Animation Move Markers" +msgstr "نقل علامات التحريك" + +msgid "Animation Delete Markers" +msgstr "حذف علامات التحريك" + +msgid "Marker '%s' already exists!" +msgstr "العلامة '%s' توجد بالفعل!" + +msgid "Add Marker Key" +msgstr "إضافة مفتاح لعلامة" + +msgid "Empty marker names are not allowed." +msgstr "غير مسموح بأسماء العلامات الفارغة." + +msgid "Insert Marker" +msgstr "إدخال علامة" + +msgid "Marker Name" +msgstr "أسم العلامة" + +msgid "Marker Color" +msgstr "لون العلامة" + msgid "Close" msgstr "إغلاق" msgid "Error!" msgstr "خطأ!" +msgid "Change Marker Name:" +msgstr "تغيير اسم العلامة:" + +msgid "Edit Marker Color" +msgstr "تعديل لون العلامة" + +msgid "Multi Edit Marker Color" +msgstr "تعديل لون علامات متعددة" + +msgid "Animation Change Marker Time" +msgstr "تغير وقت العلامة في التحريك" + msgid "Add Audio Track Clip" msgstr "أضف مقطع صوت" @@ -1364,6 +1471,12 @@ msgstr[3] "%d من %d تطابقات" msgstr[4] "%d من %d تطابقات" msgstr[5] "%d من %d تطابقات" +msgid "Hide Replace" +msgstr "إخباء الإستبدال" + +msgid "Show Replace" +msgstr "إظهار الإستبدال" + msgid "Find" msgstr "بحث" @@ -1420,6 +1533,13 @@ msgstr "تحذيرات" msgid "Zoom factor" msgstr "معدل التكبير" +msgid "" +"%sMouse wheel, %s/%s: Finetune\n" +"%s: Reset" +msgstr "" +"%sعجلة الفأرة، %s\\%s: ضبط دقيق\n" +"%s: إعادة ضبط" + msgid "Line and column numbers." msgstr "أرقام الخط و العمود." @@ -1578,6 +1698,12 @@ msgstr "إنشاء %s" msgid "No results for \"%s\"." msgstr "لا نتائج من أجل \"%s\"." +msgid "Script path: %s" +msgstr "مسار النص البرمجي: %s" + +msgid "The script will run in the editor." +msgstr "هذا النص البرمجي سيعمل في المحرر." + msgid "This class is marked as deprecated." msgstr "تم وضع علامة على هذه الفئة على أنها مهملة." @@ -1608,6 +1734,9 @@ msgstr "الوصف:" msgid "Remote %s:" msgstr "من بعد %s:" +msgid "Session %d" +msgstr "الجسلة %d" + msgid "Debugger" msgstr "مُنقح الأخطاء" @@ -1638,6 +1767,15 @@ msgstr "" msgid "Toggle Visibility" msgstr "تبديل الوضوحية" +msgid "Expression to evaluate" +msgstr "التعبير المراد تقييمه" + +msgid "Clear on Run" +msgstr "مسح عند التشغيل" + +msgid "Evaluate" +msgstr "قيّم" + msgid "Clear" msgstr "مسح" @@ -1683,6 +1821,9 @@ msgstr "إيقاف" msgid "Start" msgstr "بدء" +msgid "Autostart" +msgstr "البدئ التلقائي" + msgid "Measure:" msgstr "قياس:" @@ -1839,6 +1980,9 @@ msgstr "توسيع الكل" msgid "Collapse All" msgstr "طوي الكل" +msgid "Evaluator" +msgstr "المقيّم" + msgid "Profiler" msgstr "المحلل" @@ -1968,6 +2112,12 @@ msgstr "" msgid "Cannot remove:" msgstr "لا يمكن المسح:" +msgid "Files to be deleted:" +msgstr "الملفات التي ستحذف:" + +msgid "Dependencies of files to be deleted:" +msgstr "تبعيات الملفات التي ستحذف:" + msgid "Error loading:" msgstr "خطأ في التحميل:" @@ -2001,15 +2151,30 @@ msgstr "يملك" msgid "Resources Without Explicit Ownership:" msgstr "موارد من غير مالك صريح:" +msgid "Name cannot be empty." +msgstr "لا يمكن ان يكون الاسم فارغاً." + +msgid "File name can't end with /." +msgstr "لا يمكن أن ينتهي اسم المجلد ب/." + +msgid "File name cannot be empty." +msgstr "لا يمكن أن يكون اسم المجلد فارغاً." + msgid "Folder name cannot be empty." msgstr "اسم المجلد لا يمكن أن يكون فارغا." +msgid "File name contains invalid characters." +msgstr "اسم المجلد يحوي حروفاً لا تصلُح." + msgid "Folder name contains invalid characters." msgstr "اسم المجلد يحوي حروفا لا تصلح." msgid "File name begins with a dot." msgstr "اسم الملف يبدأ بنقطة." +msgid "Folder name begins with a dot." +msgstr "اسم المجلد يبدأ بنقطة." + msgid "File with that name already exists." msgstr "وُجدَ ملف بهذا الاسم سابقا." @@ -2019,6 +2184,16 @@ msgstr "وُجدَ مجلد بهذا الاسم سابقا." msgid "Using slashes in folder names will create subfolders recursively." msgstr "استعمال العلامة \"المائلة\" في أسماء المجلد يُنشئ مجلدات فرعية متكررة." +msgid "" +"Using slashes in path will create the file in subfolder, creating new " +"subfolders if necessary." +msgstr "" +"استعمال العلامات المائلة (سلاش) في المسار سيُنشئ الملف في مجلدات فرعية، يتم " +"إنشاء مجلدات فرعية لو كان ضارورياً." + +msgid "Base path: %s" +msgstr "المسار الأساسي: %s" + msgid "Folder name is valid." msgstr "اسم المجلد صالح." @@ -2133,7 +2308,7 @@ msgid "(and %s more files)" msgstr "(و %s ملفات اخرى)" msgid "Asset \"%s\" installed successfully!" -msgstr "تم تحميل الملحق \"s%\" بنجاح!" +msgstr "تم تحميل الأصل \"%s\" بنجاح!" msgid "Success!" msgstr "تم بنجاح!" @@ -2301,8 +2476,11 @@ msgstr "تخطيط مقطع الصوت" msgid "Invalid name." msgstr "اسم لا يصلح." +msgid "Must be a valid Unicode identifier." +msgstr "يجب أن يكون معرف يونيكود صالحا." + msgid "Must not collide with an existing engine class name." -msgstr "لا يجب ان" +msgstr "لا يجب ان يتشابه مع اسم صنف في محرك." msgid "Must not collide with an existing global script class name." msgstr "يجب ألا يتعارض مع اسم صف الخاص بالترميز العام المتواجد." @@ -2565,6 +2743,12 @@ msgstr "[فارغ]" msgid "[unsaved]" msgstr "[غير محفوظ]" +msgid "Open the %s dock." +msgstr "فتح الرصيف %s." + +msgid "Focus on the %s dock." +msgstr "التركيز على الرصيف %s." + msgid "%s - Godot Engine" msgstr "%s - محرك جَوْدَتْ" @@ -2616,6 +2800,9 @@ msgstr "رصيف الاستيراد" msgid "History Dock" msgstr "رصيف السجلات" +msgid "Game View" +msgstr "مشهد اللعبة" + msgid "Allows to view and edit 3D scenes." msgstr "يسمح لعرض وتحرير المشاهد ثلاثية الأبعاد." @@ -2645,6 +2832,10 @@ msgstr "" msgid "Provides an overview of the editor's and each scene's undo history." msgstr "يؤمن موجزاً لتاريخ التراجع الخاص بالمحرر وكل من العُقد على حدة." +msgid "Provides tools for selecting and debugging nodes at runtime." +msgstr "" +"يوفر الأدوات اللازمة لتحديد وتنقيح الأخطاء العقد البرمجية خلال وقت التشغيل." + msgid "(current)" msgstr "(الحالي)" @@ -2730,6 +2921,30 @@ msgstr "استيراد التعريفات" msgid "Manage Editor Feature Profiles" msgstr "إدارة تعريفة مزايا المحرر" +msgid "Project initialization" +msgstr "تهيئة المشروع" + +msgid "Scanning file structure..." +msgstr "يتم مسح هيكل الملفات..." + +msgid "Loading global class names..." +msgstr "جارٍ تحميل اسماء الأصناف العالمية..." + +msgid "Verifying GDExtensions..." +msgstr "جارٍ التحقق من GDExtensions..." + +msgid "Creating autoload scripts..." +msgstr "جارٍ تحميل البرامج التحميل التلقائي النصية..." + +msgid "Initializing plugins..." +msgstr "جارٍ تهيئة الإضافات..." + +msgid "Starting file scan..." +msgstr "جارٍ بدء مسح الملفات..." + +msgid "Scanning actions..." +msgstr "جارٍ مسح الإجراءات..." + msgid "Some extensions need the editor to restart to take effect." msgstr "بعض الإضافات تحتاج إلى إعادة تشغيل المُحرر لتحدث تغييراً." @@ -2742,6 +2957,15 @@ msgstr "حفظ و إعادة تشغيل" msgid "ScanSources" msgstr "البحث في المصادر" +msgid "Registering global classes..." +msgstr "جارٍ تسجيل الاصناف العالمية..." + +msgid "Updating scripts documentation" +msgstr "تحديث وثائق البرامج النصية" + +msgid "Updating Scene Groups" +msgstr "تحديث مجموعات المشهد" + msgid "" "There are multiple importers for different types pointing to file %s, import " "aborted" @@ -2750,9 +2974,21 @@ msgstr "هناك عدة مستوردات مخصوصة لعدة أنواع حدد msgid "(Re)Importing Assets" msgstr "إعادة استيراد المُلحقات" +msgid "Preparing files to reimport..." +msgstr "تجهيز الملف من أجل إعادة الاستيراد..." + +msgid "Executing pre-reimport operations..." +msgstr "تنفيذ عمليات إعادة الاستيراد المسبق..." + msgid "Import resources of type: %s" msgstr "استيراد الموارد من نوع: %s" +msgid "Finalizing Asset Import..." +msgstr "جارٍ الإنتهاء من استيراد الأصول..." + +msgid "Executing post-reimport operations..." +msgstr "جارٍ تنفيذ عمليات ما بعد الاستيراد." + msgid "This method supports a variable number of arguments." msgstr "تدعم هذا الدالة عددا متفاوتاً من المتغيرات." @@ -3040,6 +3276,18 @@ msgstr "التوضيح" msgid "File" msgstr "ملف" +msgid "Invalid UID" +msgstr "UID غير صالح" + +msgid "This UID does not point to any valid Resource." +msgstr "لا يشير هذا المعرف الفريد إلى أي مورد صالح." + +msgid "Invalid path" +msgstr "مسار غير صالح" + +msgid "This path does not exist." +msgstr "هذا المسار غير موجود." + msgid "%d match." msgstr "%d تطابق" @@ -3097,12 +3345,27 @@ msgstr "نوع العضو" msgid "Keywords" msgstr "كلمات مفتاحية" +msgid "Matches the \"%s\" keyword." +msgstr "يتطابق مع الكلمة المفتاحية %s." + msgid "This member is marked as deprecated." msgstr "تم وسم هذا العنصر بأنه مُهمل." msgid "This member is marked as experimental." msgstr "تم وسم هذا العنصر على أنه تجريبي." +msgid "Unfavorite Property" +msgstr "إلغاء تفضيل الخاصية" + +msgid "Make this property be put back at its original place." +msgstr "اجعل هذه الخاصية ترد إلى مكانها الأصلي." + +msgid "Favorite Property" +msgstr "تفضيل الخاصية" + +msgid "Make this property be placed at the top for all objects of this class." +msgstr "اجعل هذه الخاصية موضوعة أعلى لجميع اجسام هذا الصنف." + msgid "Pin Value" msgstr "القيمة المثبتة" @@ -3112,6 +3375,9 @@ msgstr "القيمة المثبتة [معطلة بسبب '%s' هو/هي في ا msgid "Pinning a value forces it to be saved even if it's equal to the default." msgstr "تثبيت القيمة يجْبِرَهُ على حفظها حتى لو كانت تساوي القيمة الإفتراضية." +msgid "Unfavorite All" +msgstr "إلغاء تفضيل الكل" + msgid "(%d change)" msgid_plural "(%d changes)" msgstr[0] "(%d تغيير)" @@ -3298,6 +3564,9 @@ msgstr "فاحص مصدر الطيف الأصلي" msgid "Unnamed Project" msgstr "مشروع غير مسمى" +msgid "Recovery Mode is enabled. Editor functionality has been restricted." +msgstr "وضع الاسترداد مفعل. تم تقييد وظائف المحرر." + msgid "" "Spins when the editor window redraws.\n" "Update Continuously is enabled, which can increase power usage. Click to " @@ -3498,6 +3767,9 @@ msgstr "" msgid "Save Scene As..." msgstr "حفظ المشهد ك…" +msgid "Pack Project as ZIP..." +msgstr "حزم المشروع كملف ZIP..." + msgid "Can't undo while mouse buttons are pressed." msgstr "لا يمكن التراجع أثناء ضغط أزار الفأرة." @@ -3580,6 +3852,9 @@ msgstr "لا يمكن إتمام هذه العملية بدون مشهد." msgid "Export Mesh Library" msgstr "تصدير مكتبة الميش" +msgid "Quick Open Color Palette..." +msgstr "فتح لوحة ألوان سريعاً..." + msgid "Unable to enable addon plugin at: '%s' parsing of config failed." msgstr "غير قادر علي تفعيل إضافة البرنامج المُساعد في: '%s' تحميل الظبط فشل." @@ -3659,6 +3934,51 @@ msgstr "إخلاء المشاهد الحالية" msgid "There is no defined scene to run." msgstr "لا يوجد مشهد معدل للتشغيل." +msgid "Loading editor" +msgstr "جارٍ تحميل المحرر" + +msgid "Loading editor layout..." +msgstr "جارٍ تحميل تنسيق المحرر..." + +msgid "Loading docks..." +msgstr "جارٍ التحميل الأرصِفة..." + +msgid "Reopening scenes..." +msgstr "جارٍ إعادة فتح المشاهد..." + +msgid "Loading central editor layout..." +msgstr "جارٍ تحميل تنسيق المحرر المركزي..." + +msgid "Loading plugin window layout..." +msgstr "جارٍ تحميل تنسيق نافذة الإضافة..." + +msgid "Editor layout ready." +msgstr "تنسيق المحرّر جاهز." + +msgid "" +"No main scene has ever been defined. Select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"لم يتم تحديد أي مشهد رئيسي على الإطلاق. حدد مشهداً؟\n" +"يمكنك تغييره لاحقا في \"إعدادات المشروع\" ضمن فئة 'التطبيق'." + +msgid "" +"Selected scene '%s' does not exist. Select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"المشهد المُحدد '%s' غير موجود، حدد مشهداً صالحاً؟\n" +"يمكنك تغييره لاحقا في \"إعدادات المشروع\" ضمن فئة 'التطبيق'." + +msgid "" +"Selected scene '%s' is not a scene file. Select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"المشهد المُحدد '%s' ليس ملف مشهد. حدد مشهداً صالحاً؟\n" +"يمكنك تغييره لاحقا في \"إعدادات المشروع\" ضمن فئة 'التطبيق'." + msgid "Save Layout..." msgstr "حفظ التخطيط..." @@ -3897,6 +4217,9 @@ msgstr "محرر لتهيئة مجمع المحرك..." msgid "Upgrade Mesh Surfaces..." msgstr "ترقية أسطح المجسم..." +msgid "Upgrade UIDs..." +msgstr "تحديث المعرفات الفريدة..." + msgid "Reload Current Project" msgstr "إعادة تحميل/تشغيل المشروع الحالي" @@ -4049,6 +4372,9 @@ msgstr "تصدير المكتبة" msgid "Open & Run a Script" msgstr "فتح و تشغيل كود" +msgid "The following files are newer on disk:" +msgstr "–الملفات التالية هي الأحدث على القرص." + msgid "Create/Override Version Control Metadata..." msgstr "إنشاء/تجاوز البيانات الوصفية لإدارة الإصدارات..." @@ -4495,6 +4821,11 @@ msgstr "تخزين الملف:" msgid "No export template found at the expected path:" msgstr "ما فيه قالب تصدير في المسار المتوقع:" +msgid "" +"Missing text server data, text display in the exported project might be " +"broken!" +msgstr "بيانات خادم نص مفقودة، قد يكون عرض النص في المشروع المصدّر معطلاً!" + msgid "ZIP Creation" msgstr "إنشاء ملف مضغوط (ZIP)" @@ -4513,6 +4844,9 @@ msgstr "لا يمكن إنشاء الملف \"%s\"." msgid "Failed to export project files." msgstr "فشل تصدير ملفات المشروع." +msgid "No files or changes to export." +msgstr "لا توجد ملفات أو تغييرات للتصدير." + msgid "Can't open file for writing at path \"%s\"." msgstr "تعذر فتح الملف للكتابة في المسار: \"%s\"." @@ -4531,12 +4865,20 @@ msgstr "لا يمكن فتح الملف للقراءة من المسار \"%s\". msgid "Save ZIP" msgstr "حفظ الملف المضغوط" +msgid "Failed to move temporary file \"%s\" to \"%s\"." +msgstr "فشل نقل الملف المؤقت \"%s\" إلى \"%s\"." + msgid "Custom debug template not found." msgstr "قالب التنقيح المخصص غير موجود." msgid "Custom release template not found." msgstr "قالب الإصدار المخصص ليس موجود." +msgid "" +"A texture format must be selected to export the project. Please select at " +"least one texture format." +msgstr "يجب تحديد صيغة نقش لتصدير المشروع. يرجى تحديد صيغة نقش واحدة على الأقل." + msgid "Prepare Template" msgstr "تحضير القوالب" @@ -4555,6 +4897,12 @@ msgstr "تضمين الحزمة (.pck)" msgid "On 32-bit exports the embedded PCK cannot be bigger than 4 GiB." msgstr "لا يمكن لمُصدرات 32-bit التي تتضمن PCK أن تكون أكبر من 4 GiB." +msgid "GDExtension" +msgstr "GDExtension" + +msgid "Failed to copy shared object \"%s\"." +msgstr "فشل نسخ الكائن المتشارك \"%s\"." + msgid "Plugin \"%s\" is not supported on \"%s\"" msgstr "الإضافة \"%s\" غير مدعومة على \"%s\"" @@ -4655,6 +5003,9 @@ msgstr "جاري التنزيل" msgid "Connection Error" msgstr "خطأ في الاتصال" +msgid "TLS Handshake Error" +msgstr "خطأ اثناء تصافح TLS" + msgid "Can't open the export templates file." msgstr "لا نستطيع فتح ملف القوالب." @@ -4682,6 +5033,15 @@ msgstr "قوالب التصدير مفقودة. حمّلها أو نصبّها msgid "Export templates are missing. Install them from a file." msgstr "قوالب التصدير مفقودة. حمّلها أو نصبّها من ملف." +msgid "Not available in offline mode" +msgstr "غير متاح في وضع عدم الاتصال" + +msgid "Template downloading is disabled in offline mode." +msgstr "تنزيل القوالب معطل في وضع عدم الاتصال." + +msgid "No templates for development builds" +msgstr "لا يوجد قوالب لأجل البناء التطوير" + msgid "Official export templates aren't available for development builds." msgstr "قوالب التصدير الرسمية غير مدعومة لأجل البناء الخاص بالتطوير." @@ -4788,9 +5148,15 @@ msgstr "الموارد المُعدّة للتصدير:" msgid "(Inherited)" msgstr "(موروثة)" +msgid "Delete patch '%s' from list?" +msgstr "حذف التصحيح '%s' من القائمة؟" + msgid "Export With Debug" msgstr "التصدير مع مُنقح الأخطاء" +msgid "Export As Patch" +msgstr "تصدير كتصحيح" + msgid "%s Export" msgstr "تصدير %s" @@ -4873,9 +5239,18 @@ msgstr "" "المصافي لتصدير الملفات/المُجلدات من المشروع\n" "(مفصولةً بفاصلة، مثلاً: *.json, *.txt, docs/*)" +msgid "Patches" +msgstr "تصحيحات" + +msgid "Base Packs:" +msgstr "الحزم الأساسية:" + msgid "Godot Project Pack" msgstr "حزمة مشروع جوْدَتْ" +msgid "Add Pack" +msgstr "إضافة حزمة" + msgid "Features" msgstr "المزايا" @@ -4914,6 +5289,9 @@ msgstr "مفتاح التشفير غير صالح (يجب أن يتكون من 6 msgid "Encryption Key (256-bits as hexadecimal):" msgstr "مفتاح التشفير (256 بت كنظام سداسي عشري):" +msgid "Initialization vector seed" +msgstr "بذور تهيئة المُتجه" + msgid "" "Note: Encryption key needs to be stored in the binary,\n" "you need to build the export templates from source." @@ -4952,6 +5330,13 @@ msgstr "" msgid "Export Project..." msgstr "تصدير المشروع..." +msgid "" +"Export the project as a playable build (Godot executable and project data) " +"for the selected preset." +msgstr "" +"تصدير المشروع كبناء قابل للعب (ملفات جوْدَتْ التنفيذية و بيانات المشروع) للإعداد " +"المسبق المحدد." + msgid "Export All" msgstr "تصدير الكُل" @@ -4976,6 +5361,20 @@ msgstr "إدارة قوالب التصدير" msgid "Disable FBX2glTF & Restart" msgstr "تعطيل FBX2glTF وإعادة التشغيل" +msgid "" +"Canceling this dialog will disable the FBX2glTF importer and use the ufbx " +"importer.\n" +"You can re-enable FBX2glTF in the Project Settings under Filesystem > Import " +"> FBX > Enabled.\n" +"\n" +"The editor will restart as importers are registered when the editor starts." +msgstr "" +"إلغاء مربع الحوار هذا سيؤدي إلى تعطيل مستورد FBX2glTF.\n" +"يمكنك إعادة تمكينه في إعدادات المشروع ضمن نظام الملفات > استيراد > FBX > " +"ممكّن.\n" +"\n" +"سيعاد تشغيل المحرر حيث ان تسجيل المستوردين يبدء عند تشغيل المحرر." + msgid "Path to FBX2glTF executable is empty." msgstr "المسار إلى FBX2glTF القابل للتنفيذ فارغ." @@ -4991,6 +5390,15 @@ msgstr "الملف القابل للتنفيذ FBX2glTF صالح." msgid "Configure FBX Importer" msgstr "تهيئة مُستورِد FBX" +msgid "" +"FBX2glTF is required for importing FBX files if using FBX2glTF.\n" +"Alternatively, you can use ufbx by disabling FBX2glTF.\n" +"Please download the necessary tool and provide a valid path to the binary:" +msgstr "" +"FBX2glTF مطلوب لاستيراد ملفات FBX اذا كنت تستخدم FBX2glTF.\n" +"بدلاً من ذلك، يمكنك استخدام ufbx عن طريق تعطيل FBX2glTF.\n" +"رجائاً حمل الآداة الضرورية ووفر مسار صالح الى ملف التشغيل:" + msgid "Click this link to download FBX2glTF" msgstr "اضغط هذا الرابط لتنزيل FBX2glTF" @@ -5000,6 +5408,9 @@ msgstr "تصفح" msgid "Confirm Path" msgstr "تأكيد المسار" +msgid "Link to: %s" +msgstr "روابط إلى: %s" + msgid "View items as a grid of thumbnails." msgstr "أظهر العناصر في شبكة صور." @@ -5405,6 +5816,9 @@ msgstr "" msgid "Select This Folder" msgstr "حدد هذا المجلد" +msgid "Show Package Contents" +msgstr "إظهار محتويات الحُزمة" + msgid "All Files" msgstr "كل الملفات" @@ -5456,6 +5870,9 @@ msgstr "أظهر الوضع" msgid "Focus Path" msgstr "مسار التركيز" +msgid "Focus Filter" +msgstr "مرشح التركيز" + msgid "Move Favorite Up" msgstr "حرك المُفضلة للأعلى" @@ -5486,9 +5903,15 @@ msgstr "المجلدات والملفات:" msgid "Toggle the visibility of hidden files." msgstr "إظهار/إخفاء الملفات المخفية." +msgid "Toggle the visibility of the filter for file names." +msgstr "تبديل إظهار/إخفاء التصفية لاسماء الملفات." + msgid "Preview:" msgstr "معاينة:" +msgid "Filter:" +msgstr "التصفية:" + msgid "Filter" msgstr "التصفية" @@ -5512,6 +5935,45 @@ msgstr "لم نجد المصادر الفرعية." msgid "Open a list of sub-resources." msgstr "فتح قائمة الموارد الفرعية." +msgid "Search files..." +msgstr "البحث في الملفات..." + +msgid "Select Resource" +msgstr "تحديد المَورد" + +msgid "Select Scene" +msgstr "تحديد المشهد" + +msgid "Fuzzy Search" +msgstr "بحث ضبابي" + +msgid "Enable fuzzy matching" +msgstr "تفعيل المطابقة الضبابية" + +msgid "Addons" +msgstr "إضافات" + +msgid "Include files from addons" +msgstr "تضمن ملفات من الإضافات" + +msgid "No files found for this type" +msgstr "لم يتم العثور على ملفات لهذا النوع" + +msgid "Start searching to find files..." +msgstr "ابدأ البحث لتعثر على الملفات..." + +msgid "No results found" +msgstr "لم يُعثر على نتائج" + +msgid " (recently opened)" +msgstr " (فُتح حديثاً)" + +msgid "Grid view" +msgstr "عرض الشبكة" + +msgid "List view" +msgstr "عرض القائمة" + msgid "Play the project." msgstr "تشغيل المشروع." @@ -5524,12 +5986,64 @@ msgstr "تشغيل مشهد مخصص." msgid "Reload the played scene." msgstr "أعد تشغيل المشهد الذي تم تشغيله." +msgid "" +"Movie Maker mode is enabled, but no movie file path has been specified.\n" +"A default movie file path can be specified in the project settings under the " +"Editor > Movie Writer category.\n" +"Alternatively, for running single scenes, a `movie_file` string metadata can " +"be added to the root node,\n" +"specifying the path to a movie file that will be used when recording that " +"scene." +msgstr "" +"تم تمكين وضع صانع الفيلم، ولكن لم يتم تحديد مسار ملف الفيلم.\n" +"يمكن تحديد مسار ملف فيلم افتراضي في إعدادات المشروع ضمن المحرّر > كاتب " +"الأفلام.\n" +"بدلاً من ذلك ، لتشغيل مشهد فردي، يمكن إضافة سلسلة بيانات وصفية `ملف_فيلم` إلى " +"العقدة الجذرية،\n" +"محدداً المسار إلى ملف فيلم الذي سيتم استخدامه عند تسجيل ذلك المشهد." + msgid "Could not start subprocess(es)!" msgstr "تعذر بدء العملية/العمليات الفرعية!" +msgid "Recovery Mode is enabled. Disable it to run the project." +msgstr "تم تمكين وضع الاسترداد. قم بتعطيله لتشغّل المشروع." + +msgid "" +"Autostart is enabled for the following profilers, which can have a " +"performance impact:" +msgstr "" +"يتم تمكين البدئ التلقائي محللات الأداء التالية، والذي قد يكون له تأثير على " +"الأداء:" + msgid "Network Profiler" msgstr "المُحلل الشبكي" +msgid "Click to open the first profiler for which autostart is enabled." +msgstr "انقر لتفتح أول محلل أداءٍ تم تمكين التشغيل التلقائي له." + +msgid "Recovery Mode" +msgstr "وضع الاسترداد" + +msgid "" +"Godot opened the project in Recovery Mode, which is a special mode that can " +"help recover projects that crash the engine upon initialization. The " +"following features have been temporarily disabled:" +msgstr "" +"جوْدَتْ فُتح في وضع استرداد المشروع، وهو وضع خاص يمكن أن يساعد في استعادة " +"المشاريع التي تعطل المحرك عند التهيئة. تم تعطيل الميزات التالية مؤقتا:" + +msgid "Tool scripts" +msgstr "النص اداة برمجي" + +msgid "Editor plugins" +msgstr "إضافات المحرر" + +msgid "GDExtension addons" +msgstr "إضافات GDExtension" + +msgid "Automatic scene restoring" +msgstr "استعادة المشهد التلقائي" + msgid "Run the project's default scene." msgstr "شغّل المشهد الافتراضي للمشروع." @@ -16269,9 +16783,6 @@ msgstr "لا يمكن فهرسة كائن من النوع '%s'." msgid "Invalid base type for increment/decrement operator." msgstr "نوع أساسي غير صالح لعامل الزيادة/الإنقاص." -msgid "Invalid use of increment/decrement operator in a constant expression." -msgstr "استخدام غير صالح لعامل الزيادة/التناقص في تعبير ثابت." - msgid "Invalid token for the operator: '%s'." msgstr "رمز مميز غير صالح لعامل التشغيل: '%s'." diff --git a/engine/editor/translations/editor/ca.po b/engine/editor/translations/editor/ca.po index 29138525..b8a5bfe9 100644 --- a/engine/editor/translations/editor/ca.po +++ b/engine/editor/translations/editor/ca.po @@ -25,16 +25,17 @@ # pc <polct50@users.noreply.hosted.weblate.org>, 2024. # sprin <graham32@tutamail.com>, 2024. # Azor Carreras Alcaraz <azorcarreras@gmail.com>, 2024. -# Alberto Blanco Celdrán <flaberto.abc@gmail.com>, 2024. +# Alberto Blanco Celdrán <flaberto.abc@gmail.com>, 2024, 2025. # Luna Moreno <akaluna99@gmail.com>, 2024. # Lukas Tenbrink <lukas.tenbrink@gmail.com>, 2025. +# Alvaro <alvaro.garcia-bamala@epitech.eu>, 2025. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2025-01-09 13:44+0000\n" -"Last-Translator: Lukas Tenbrink <lukas.tenbrink@gmail.com>\n" +"PO-Revision-Date: 2025-02-27 18:37+0000\n" +"Last-Translator: Alberto Blanco Celdrán <flaberto.abc@gmail.com>\n" "Language-Team: Catalan <https://hosted.weblate.org/projects/godot-engine/" "godot/ca/>\n" "Language: ca\n" @@ -42,7 +43,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 5.10-dev\n" +"X-Generator: Weblate 5.10.2-rc\n" msgid "Main Thread" msgstr "Fil principal" @@ -401,6 +402,9 @@ msgstr "Mostra els Fitxers Ocults" msgid "Swap Input Direction" msgstr "Inverteix la direcció d'entrada" +msgid "Start Unicode Character Input" +msgstr "Iniciar la introducció de caràcters Unicode" + msgid "Invalid input %d (not passed) in expression" msgstr "Entrada no vàlida %d (no transmesa) en l'expressió" @@ -510,6 +514,12 @@ msgstr "Nom:" msgid "Type:" msgstr "Tipus:" +msgid "Metadata name can't be empty." +msgstr "El nom de la metadada no pot estar buit." + +msgid "Names starting with _ are reserved for editor-only metadata." +msgstr "Els noms començant amb _ estan reservats per a metadades de l'editor." + msgid "Time:" msgstr "Temps:" @@ -621,6 +631,20 @@ msgstr "Canvia la durada de l'Animació" msgid "Change Animation Loop" msgstr "Modifica el bucle d'Animació" +msgid "" +"Can't change loop mode on animation instanced from an imported scene.\n" +"\n" +"To change this animation's loop mode, navigate to the scene's Advanced Import " +"settings and select the animation.\n" +"You can then change the loop mode from the inspector menu." +msgstr "" +"No es pot canviar el mode de repetició de l'animació instanciada des d'una " +"escena importada.\n" +"\n" +"Per canviar el mode de repetició d'aquesta animació, navega a la configuració " +"avançada d'importació de l'escena i seleccciona la animació.\n" +"Després podràs canviar el mode de repetició des del menú de l'inspector." + msgid "Property Track..." msgstr "Pista de Propietats..." @@ -1014,6 +1038,12 @@ msgstr "Mostra només les pistes dels nodes seleccionats en l'arbre." msgid "Group tracks by node or display them as plain list." msgstr "Agrupa les pistes per node o mostra-les en una llista." +msgid "Apply snapping to timeline cursor." +msgstr "Aplicar ajustament al cursor de la línia de temps." + +msgid "Apply snapping to the nearest integer FPS." +msgstr "Aplicar ajustament al FPS enter més proper." + msgid "Animation step value." msgstr "Valor del pas d'Animació." @@ -1041,6 +1071,12 @@ msgstr "Escala la Selecció..." msgid "Scale From Cursor..." msgstr "Escala a partir del Cursor..." +msgid "Set Start Offset (Audio)" +msgstr "Estableix l'offset d'inici (Áudio)" + +msgid "Set End Offset (Audio)" +msgstr "Estableix l'offset de fi (Àudio)" + msgid "Cut Selected Keys" msgstr "Retallar les Claus seleccionades" @@ -1050,6 +1086,12 @@ msgstr "Copiar les Claus seleccionades" msgid "Paste Keys" msgstr "Enganxar les claus" +msgid "Move First Selected Key to Cursor" +msgstr "Mou la primera clau seleccionada al cursor" + +msgid "Move Last Selected Key to Cursor" +msgstr "Mou l'última clau seleccionada al cursor" + msgid "Delete Selection" msgstr "Suprimeix la Selecció" @@ -1126,6 +1168,18 @@ msgctxt "Transition Type" msgid "Sine" msgstr "Sinus" +msgctxt "Transition Type" +msgid "Quint" +msgstr "Quint" + +msgctxt "Transition Type" +msgid "Quart" +msgstr "Quart" + +msgctxt "Transition Type" +msgid "Quad" +msgstr "Quad" + msgctxt "Transition Type" msgid "Elastic" msgstr "Elàstic" @@ -1142,6 +1196,10 @@ msgctxt "Transition Type" msgid "Bounce" msgstr "Rebot" +msgctxt "Transition Type" +msgid "Spring" +msgstr "Spring" + msgctxt "Ease Type" msgid "Out" msgstr "Sortida" @@ -1172,12 +1230,27 @@ msgstr "Seleccioneu les Pistes a Copiar" msgid "Select All/None" msgstr "(Des)selecciona-ho tot" +msgid "" +"A marker's name can only be changed by right-clicking it in the animation " +"editor and selecting \"Rename Marker\", in order to make sure that marker " +"names are all unique." +msgstr "" +"El nom d'un marcador només es pot canviar fent-hi clic amb el botó dret al " +"editor d'animacions i seleccionant 'Reanomena marcador', per tal d'assegurar-" +"se que els noms dels marcadors siguin únics." + +msgid "Marker:" +msgstr "Marcador:" + msgid "Close" msgstr "Tancar" msgid "Error!" msgstr "Error !" +msgid "Multi Edit Marker Color" +msgstr "Edició múltiple del color del marcador" + msgid "Add Audio Track Clip" msgstr "Afegir Clip de Pista d'Àudio" @@ -1211,6 +1284,17 @@ msgstr "Reemplaça-hoTot" msgid "Selection Only" msgstr "Selecció Només" +msgid "Hide" +msgstr "Amagar" + +msgctxt "Indentation" +msgid "Spaces" +msgstr "Espais" + +msgctxt "Indentation" +msgid "Tabs" +msgstr "Pestanyes" + msgid "Toggle Scripts Panel" msgstr "Panell d'Scripts" @@ -1229,6 +1313,13 @@ msgstr "Errors" msgid "Warnings" msgstr "Avisos" +msgid "" +"%sMouse wheel, %s/%s: Finetune\n" +"%s: Reset" +msgstr "" +"%s:Roda de ratolí, %s/%s: Ajustar\n" +"%s: Restablir" + msgid "Line and column numbers." msgstr "Números de línia i columna." @@ -1245,6 +1336,10 @@ msgstr "" "El mètode objectiu no s'ha trobat. Especifiqueu un mètode vàlid o adjunteu un " "script al node." +msgid "%s: Callback code won't be generated, please add it manually." +msgstr "" +"%s: El codi de callback no es generarà, si us plau, afegeix-lo manualment." + msgid "Connect to Node:" msgstr "Connectar al Node:" @@ -1260,6 +1355,10 @@ msgstr "L'escena no conté cap script." msgid "Select Method" msgstr "Selecciona un Mètode" +msgid "No method found matching given filters." +msgstr "" +"No s'ha trobat cap mètode que coincideixi amb els filtres proporcionats." + msgid "Remove" msgstr "Treu" @@ -1269,6 +1368,9 @@ msgstr "Afegir arguments de crida addicionals:" msgid "Extra Call Arguments:" msgstr "Arguments de Crida addicionals:" +msgid "Allows to drop arguments sent by signal emitter." +msgstr "Permet descartar els arguments enviats pel emissor del senyal." + msgid "Receiver Method:" msgstr "Mètode Receptor:" @@ -1342,6 +1444,15 @@ msgstr "Crea Nou %s" msgid "No results for \"%s\"." msgstr "No hi ha cap resultat per a «%s»." +msgid "The script will run in the editor." +msgstr "El script s'executarà a l'editor." + +msgid "This class is marked as deprecated." +msgstr "Aquesta classe està marcada com a obsoleta." + +msgid "This class is marked as experimental." +msgstr "Aquesta classe està marcada com a experimental." + msgid "Favorites:" msgstr "Favorits:" @@ -1357,6 +1468,9 @@ msgstr "Coincidències:" msgid "Description:" msgstr "Descripció:" +msgid "Session %d" +msgstr "Sessió%d" + msgid "Debugger" msgstr "Depurador" @@ -1372,12 +1486,36 @@ msgstr "Copia el Camí del Node" msgid "Instance:" msgstr "Instància:" +msgid "" +"This node has been instantiated from a PackedScene file:\n" +"%s\n" +"Click to open the original file in the Editor." +msgstr "" +"Aquest node ha estat instanciat des d'un arxiu PackedScene:\n" +"%s\n" +"Feu clic aquí per a obrir l'arxiu original a l'Editor:" + msgid "Toggle Visibility" msgstr "Visibilitat" +msgid "Expression to evaluate" +msgstr "Expressió a evaluar" + msgid "Clear" msgstr "Neteja" +msgid "Updating assets on target device:" +msgstr "Actualitzant recursos al dispositiu de destinació:" + +msgid "Getting remote file system" +msgstr "Obtenint sistema d'arxius remot" + +msgid "Sending list of changed files:" +msgstr "Enviant llista d'arxius canviats:" + +msgid "ms" +msgstr "ms" + msgid "Monitors" msgstr "Monitors" @@ -1411,6 +1549,22 @@ msgstr "Inclusiu" msgid "Self" msgstr "Propi" +msgid "" +"Inclusive: Includes time from other functions called by this function.\n" +"Use this to spot bottlenecks.\n" +"\n" +"Self: Only count the time spent in the function itself, not in other " +"functions called by that function.\n" +"Use this to find individual functions to optimize." +msgstr "" +"Inclusiu: Inclou el temps de les altres funcions cridades per aquesta " +"funció.\n" +"Utilitza això per identificar els punts febles.\n" +"\n" +"Propi: Comptabilitza només el temps passat a la funció mateixa, no en altes " +"fruncions cridades per aquesta funció.\n" +"Utilitza això per trobar funcions individuals a optimitzar." + msgid "Frame #:" msgstr "Fotograma núm.:" @@ -1423,15 +1577,27 @@ msgstr "Temps" msgid "Calls" msgstr "Crides" +msgid "GPU" +msgstr "GPU" + +msgid "Execution resumed." +msgstr "S'ha reprès l'execució." + msgid "Bytes:" msgstr "Bytes:" msgid "Error:" msgstr "Error:" +msgid "Debug session closed." +msgstr "S'ha tancat la sessió de depuració." + msgid "Copy Error" msgstr "Copia l'error" +msgid "Open C++ Source on GitHub" +msgstr "Obre la font C++ a GitHub" + msgid "Step Into" msgstr "Pas a Pas (per instruccions)" @@ -1444,6 +1610,9 @@ msgstr "Atura" msgid "Continue" msgstr "Continua" +msgid "Thread:" +msgstr "Fil:" + msgid "Stack Frames" msgstr "Fotogrames de la Pila" @@ -1456,6 +1625,9 @@ msgstr "Expandir tot" msgid "Collapse All" msgstr "Col·lapsar tot" +msgid "Evaluator" +msgstr "Avaluador" + msgid "Profiler" msgstr "Perfilador" @@ -1542,6 +1714,9 @@ msgstr "Obre" msgid "Owners of: %s (Total: %d)" msgstr "Propietaris de: %s (Total: %d)" +msgid "Localization remap for path '%s' and locale '%s'." +msgstr "Reassignació de localització per a la ruta '%s' i la localització '%s'." + msgid "" "Remove the selected files from the project? (Cannot be undone.)\n" "Depending on your filesystem configuration, the files will either be moved to " @@ -1567,6 +1742,9 @@ msgstr "" msgid "Cannot remove:" msgstr "No es pot eliminar:" +msgid "Dependencies of files to be deleted:" +msgstr "Dependències dels fitxers a eliminar:" + msgid "Error loading:" msgstr "Error en carregar:" @@ -1600,6 +1778,21 @@ msgstr "Posseeix" msgid "Resources Without Explicit Ownership:" msgstr "Recursos Sense Propietat Explícita:" +msgid "Using slashes in folder names will create subfolders recursively." +msgstr "" +"Utilitzant barres en els noms de les carpetes creará subcarpetes " +"recursivament." + +msgid "" +"Using slashes in path will create the file in subfolder, creating new " +"subfolders if necessary." +msgstr "" +"Fer servir barres obliques en la ruta crearà el fitxer en una subcarpeta, " +"creant noves subcarpetes si és necessari." + +msgid "Double-click to open in browser." +msgstr "Fes doble clic per obrir-ho al navegador." + msgid "Thanks from the Godot community!" msgstr "Gràcies de la part de la Comunitat del Godot!" @@ -1622,6 +1815,9 @@ msgstr "Desenvolupadors" msgid "Authors" msgstr "Autors" +msgid "Patrons" +msgstr "Patrons" + msgid "Platinum Sponsors" msgstr "Patrocinadors Platinum" @@ -1631,6 +1827,12 @@ msgstr "Patrocinadors Gold" msgid "Silver Sponsors" msgstr "Donants Plata" +msgid "Diamond Members" +msgstr "Patrocinadors Diamant" + +msgid "Titanium Members" +msgstr "Patrocinadors Titani" + msgid "Donors" msgstr "Donants" @@ -1669,6 +1871,18 @@ msgstr "" msgid "%s (already exists)" msgstr "%s (ja existeix)" +msgid "%d file conflicts with your project and won't be installed" +msgid_plural "%d files conflict with your project and won't be installed" +msgstr[0] "%d fitxer entra en conflicte amb el teu projecte i no s'instal·larà" +msgstr[1] "" +"%d fitxers entren en conflicte amb el teu projecte i no s'instal·laran" + +msgid "This asset doesn't have a root directory, so it can't be ignored." +msgstr "Aquest recurs no té un directori arrel, per tant no es pot ignorar." + +msgid "Ignore the root directory when extracting files." +msgstr "Ignorar el directori arrel quan s'extreguin arxius." + msgid "Uncompressing Assets" msgstr "Descomprimint Recursos" @@ -1678,9 +1892,33 @@ msgstr "Els fitxers següents no s'han pogut extraure del recurs \"%s\":" msgid "(and %s more files)" msgstr "(i %s fitxer(s) més)" +msgid "Asset \"%s\" installed successfully!" +msgstr "Recurs \"%s\" instal·lat amb éxit!" + msgid "Success!" msgstr "Èxit!" +msgid "Open the list of the asset contents and select which files to install." +msgstr "" +"Obre la llista dels continguts del recurs i selecciona quins arxius " +"instal·lar." + +msgid "" +"Change the folder where the contents of the asset are going to be installed." +msgstr "Canvia la carpeta on s'instal·laran els continguts de l'actiu." + +msgid "Ignore asset root" +msgstr "Ignorar arrel del recurs" + +msgid "Show contents of the asset and conflicting files." +msgstr "Mostrar continguts del recurs i els arxius en conflicte." + +msgid "Contents of the asset:" +msgstr "Continguts del recurs:" + +msgid "Configure Asset Before Installing" +msgstr "Configurar el recurs abans d'instal·lar-ho" + msgid "Install" msgstr "Instal·la" @@ -1801,6 +2039,18 @@ msgstr "Crea un nou Disseny de Bus." msgid "Audio Bus Layout" msgstr "Disseny del bus d'àudio" +msgid "Must not collide with an existing engine class name." +msgstr "No ha de coincidir amb un nom de classe d'engine existent." + +msgid "Must not collide with an existing global script class name." +msgstr "No ha de coincidir amb un nom de classe de script global existent." + +msgid "Must not collide with an existing built-in type name." +msgstr "No ha de coincidir amb un nom de tipus incorporat existent." + +msgid "Must not collide with an existing global constant name." +msgstr "No ha de coincidir amb un nom de constant global existent." + msgid "Autoload '%s' already exists!" msgstr "l'AutoCàrrega '%s' ja existeix!" @@ -1828,15 +2078,119 @@ msgstr "%s no és un camí vàlid. No a la ruta del recurs (res://)." msgid "Path:" msgstr "Camí:" +msgid "Set path or press \"%s\" to create a script." +msgstr "Estableix la ruta o prem \"%s\" per crear un script." + msgid "Node Name:" msgstr "Nom del node:" msgid "Global Variable" msgstr "Variable Global" +msgid "XR" +msgstr "XR" + msgid "OpenGL" msgstr "OpenGL" +msgid "Vulkan" +msgstr "Vulkan" + +msgid "Text Server: Fallback" +msgstr "Servidor de text: Alternatiu" + +msgid "Text Server: Advanced" +msgstr "Servidor de text: Avançat" + +msgid "TTF, OTF, Type 1, WOFF1 Fonts" +msgstr "Fonts TTF, OTF, Tipus 1, WOFF1" + +msgid "SIL Graphite Fonts" +msgstr "Fonts SIL Graphite" + +msgid "Multi-channel Signed Distance Field Font Rendering" +msgstr "Renderització de font amb camp de distància signada multi-canal" + +msgid "3D Nodes as well as RenderingServer access to 3D features." +msgstr "Nodes 3D així com accés del RenderingServer a les característiques 3D." + +msgid "2D Physics nodes and PhysicsServer2D." +msgstr "Nodes de física 2D i PhysicsServer2D." + +msgid "3D Physics nodes and PhysicsServer3D." +msgstr "Nodes de física 3D i PhysicsServer3D." + +msgid "XR (AR and VR)." +msgstr "XR (RA i RV)." + +msgid "" +"RenderingDevice based rendering (if disabled, the OpenGL back-end is " +"required)." +msgstr "" +"Renderització basada en RenderingDevice (es requerirà el back-end d'OpenGL si " +"es desactiva)." + +msgid "OpenGL back-end (if disabled, the RenderingDevice back-end is required)." +msgstr "" +"Renderització basada en OpenGL (es requerirà el back-end de RenderingDevice " +"si es desactiva)." + +msgid "Vulkan back-end of RenderingDevice." +msgstr "Back-end Vulkan del RenderingDevice." + +msgid "" +"Fallback implementation of Text Server\n" +"Supports basic text layouts." +msgstr "" +"Implementació de substitució del servidor de text\n" +"Suporta plantilles bàsiques de text." + +msgid "" +"Text Server implementation powered by ICU and HarfBuzz libraries.\n" +"Supports complex text layouts, BiDi, and contextual OpenType font features." +msgstr "" +"Implementació del servidor de text impulsada per les biblioteques ICU i " +"HarfBuzz.\n" +"Admet dissenys de text complexos, BiDi i característiques tipogràfiques " +"contextuals OpenType." + +msgid "" +"TrueType, OpenType, Type 1, and WOFF1 font format support using FreeType " +"library (if disabled, WOFF2 support is also disabled)." +msgstr "" +"Suport per als formats de font TrueType, OpenType, Type 1 i WOFF1 utilitzant " +"la biblioteca FreeType (si està desactivat, també es desactiva el suport per " +"a WOFF2)." + +msgid "WOFF2 font format support using FreeType and Brotli libraries." +msgstr "" +"Suport per al format de font WOFF2 utilitzant les biblioteques FreeType i " +"Brotli." + +msgid "" +"SIL Graphite smart font technology support (supported by Advanced Text Server " +"only)." +msgstr "" +"Suport per a la tecnologia de fonts intel·ligents SIL Graphite (només " +"suportat pel servidor de text avançat)." + +msgid "" +"Multi-channel signed distance field font rendering support using msdfgen " +"library (pre-rendered MSDF fonts can be used even if this option disabled)." +msgstr "" +"Suport per a la renderització de fonts amb camp de distància signada multi-" +"canal utilitzant la biblioteca msdfgen (les fonts MSDF prèviament " +"renderitzades es poden utilitzar encara que aquesta opció estigui " +"desactivada)." + +msgid "Text Rendering and Font Options:" +msgstr "Renderització de text i opcions de fonts:" + +msgid "This will scan all files in the current project to detect used classes." +msgstr "" +"Això escanejarà tots els fitxers del projecte actual per detectar les classes " +"utilitzades." + msgid "File '%s' format is invalid, import aborted." msgstr "El format del fitxer '%s' no és vàlid, s'ha anul·lat la importació." @@ -1852,6 +2206,9 @@ msgstr "Desa" msgid "Export Profile" msgstr "Exportar Perfil" +msgid "Forced Classes on Detect:" +msgstr "Classes forçades en la detecció:" + msgid "Paste Params" msgstr "Enganxa els Paràmetres" @@ -1870,9 +2227,15 @@ msgstr "[buit]" msgid "[unsaved]" msgstr "[no desat]" +msgid "%s - Godot Engine" +msgstr "%s - Motor Godot" + msgid "Dock Position" msgstr "Posició de l'Acoblador" +msgid "Move this dock to the bottom panel." +msgstr "Mou aquest panell al panell inferior." + msgid "3D Editor" msgstr "Editor 3D" @@ -1922,6 +2285,14 @@ msgstr "" "Permet configurar els ajustos d'importació per assets individuals. Requereix " "el panell Sistema de Fitxers per a funcionar." +msgid "Provides an overview of the editor's and each scene's undo history." +msgstr "" +"Proporciona una visió general de l'historial de desfets de l'editor i de cada " +"escena." + +msgid "Provides tools for selecting and debugging nodes at runtime." +msgstr "Proporciona eines per seleccionar i depurar nodes en temps d'execució." + msgid "(none)" msgstr "(cap)" @@ -1998,6 +2369,9 @@ msgstr "Importar Perfil(s)" msgid "Manage Editor Feature Profiles" msgstr "Administra els Perfils de Característiques de l'Editor" +msgid "Initializing plugins..." +msgstr "Inicialitzant els complements..." + msgid "Save & Restart" msgstr "Desa i Reinicia" @@ -2014,6 +2388,42 @@ msgstr "" msgid "(Re)Importing Assets" msgstr "(Re)Important Recursos" +msgid "Preparing files to reimport..." +msgstr "Preparant els fitxers per a la reimportació..." + +msgid "Executing pre-reimport operations..." +msgstr "Executant operacions prèvies a la reimportació..." + +msgid "Finalizing Asset Import..." +msgstr "Finalitzant la importació de l'actiu..." + +msgid "Executing post-reimport operations..." +msgstr "Executant operacions post-reimportació..." + +msgid "This method supports a variable number of arguments." +msgstr "Aquest mètode admet un nombre variable d'arguments." + +msgid "" +"This method is called by the engine.\n" +"It can be overridden to customize built-in behavior." +msgstr "" +"Aquest mètode és cridat pel motor.\n" +"Es pot sobrecarregar per personalitzar el comportament incorporat." + +msgid "" +"This method has no side effects.\n" +"It does not modify the object in any way." +msgstr "" +"Aquest mètode no té efectes secundaris.\n" +"No modifica l'objecte de cap manera." + +msgid "" +"This method does not need an instance to be called.\n" +"It can be called directly using the class name." +msgstr "" +"Aquest mètode no necessita una instància per ser cridat.\n" +"Es pot cridar directament utilitzant el nom de la classe." + msgid "Operators" msgstr "Operadors" diff --git a/engine/editor/translations/editor/cs.po b/engine/editor/translations/editor/cs.po index 5769c75d..b0fb164d 100644 --- a/engine/editor/translations/editor/cs.po +++ b/engine/editor/translations/editor/cs.po @@ -58,7 +58,7 @@ msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2025-02-06 23:01+0000\n" +"PO-Revision-Date: 2025-02-25 16:26+0000\n" "Last-Translator: Vojtech Krajnansky <vojtech.krajnansky@gmail.com>\n" "Language-Team: Czech <https://hosted.weblate.org/projects/godot-engine/godot/" "cs/>\n" @@ -67,7 +67,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 5.10-dev\n" +"X-Generator: Weblate 5.10.2-dev\n" msgid "Main Thread" msgstr "Hlavní vlákno" @@ -211,7 +211,7 @@ msgid "Xbox Paddle 4" msgstr "Xbox pádlo 4" msgid "PS4/5 Touchpad" -msgstr "PS4/5 Dotykový panel" +msgstr "Dotykový panel PS4/5" msgid "Joypad Button %d" msgstr "Tlačítko joypadu %d" @@ -229,23 +229,23 @@ msgid "released" msgstr "puštěno" msgid "Screen %s at (%s) with %s touch points" -msgstr "Obrazovka %s v (%s) s %s dotykovými body" +msgstr "Obrazovka %s na (%s) s %s dotykovými body" msgid "" "Screen dragged with %s touch points at position (%s) with velocity of (%s)" -msgstr "Obrazovka tažená %s dotykovými body na pozici (%s) s rychlostí (%s)" +msgstr "Obrazovka tažena %s dotykovými body na pozici (%s) s rychlostí (%s)" msgid "Magnify Gesture at (%s) with factor %s" -msgstr "Gesto přiblížení na (%s) s faktorem %s" +msgstr "Gesto zvštření na (%s) s faktorem %s" msgid "Pan Gesture at (%s) with delta (%s)" -msgstr "Gesto přesouvání na (%s) se změnou (%s)" +msgstr "Gesto posunu na (%s) s deltou (%s)" msgid "MIDI Input on Channel=%s Message=%s" -msgstr "Vstup MIDI na Kanále=%s Zpráva=%s" +msgstr "MIDI vstup na kanálu=%s Zpráva=%s" msgid "Input Event with Shortcut=%s" -msgstr "Vstupní událost se Zkratkou=%s" +msgstr "Vstupní událost s klávesovou zkratkou=%s" msgid "Accept" msgstr "Potvrdit" @@ -323,7 +323,7 @@ msgid "Backspace" msgstr "Backspace" msgid "Backspace Word" -msgstr "Backspace slovo" +msgstr "Backspace slova" msgid "Backspace all to Left" msgstr "Backspace vše vlevo" @@ -338,13 +338,13 @@ msgid "Delete all to Right" msgstr "Smazat vše vpravo" msgid "Caret Left" -msgstr "Kurzor vlevo" +msgstr "Kurzor doleva" msgid "Caret Word Left" msgstr "Kurzor o slovo doleva" msgid "Caret Right" -msgstr "Kurzor vpravo" +msgstr "Kurzor doprava" msgid "Caret Word Right" msgstr "Kurzor o slovo doprava" @@ -398,7 +398,7 @@ msgid "Skip Selection for Next Occurrence" msgstr "Přeskočit výběr pro další výskyt" msgid "Clear Carets and Selection" -msgstr "Odznačit kurzory a výběr" +msgstr "Zrušit kurzory a výběr" msgid "Toggle Insert Mode" msgstr "Přepnout režim přepisování textu" @@ -424,13 +424,14 @@ msgstr "Zobrazit skryté" msgid "Swap Input Direction" msgstr "Obrátit směr vstupu" +msgid "Start Unicode Character Input" +msgstr "Zahájit vstup Unicode znaků" + msgid "Invalid input %d (not passed) in expression" msgstr "Neplatný vstup %d (nepředán) ve výrazu" msgid "self can't be used because instance is null (not passed)" -msgstr "" -"self nemůže být použito, protože jeho instance je null (nebyla předána jako " -"parametr)" +msgstr "self nemůže být použito, protože jeho instance je null (nebyla předána)" msgid "Invalid operands to operator %s, %s and %s." msgstr "Neplatné vstupní hodnoty pro operátor %s, %s a %s." @@ -482,13 +483,13 @@ msgstr "" "nebo '\"'" msgid "An action with the name '%s' already exists." -msgstr "Akce s názvem \"%s\" již existuje." +msgstr "Akce s názvem '%s' již existuje." msgid "Cannot Revert - Action is same as initial" msgstr "Není možné vrátit - Akce je stejná jako původní" msgid "Revert Action" -msgstr "Vzít akci zpět" +msgstr "Vrátit akci zpět" msgid "Add Event" msgstr "Přidat událost" @@ -506,13 +507,13 @@ msgid "Remove Event" msgstr "Odstranit událost" msgid "Filter by Name" -msgstr "Filtrovat dle jména" +msgstr "Filtrovat podle jména" msgid "Clear All" -msgstr "Vyčistit vše" +msgstr "Promazat vše" msgid "Clear all search filters." -msgstr "Vymazat všechny filtry vyhledávání." +msgstr "Promazat všechny filtry vyhledávání." msgid "Add New Action" msgstr "Přidat novou akci" @@ -536,22 +537,22 @@ msgid "Type:" msgstr "Typ:" msgid "Metadata name is valid." -msgstr "Metadata jsou platná." +msgstr "Název metadat je platný." msgid "Add Metadata Property for \"%s\"" msgstr "Přidat vlastnost metadat pro \"%s\"" msgid "Metadata name can't be empty." -msgstr "Název metadat nemůže být prázdný." +msgstr "Název metadat nesmí být prázdný." msgid "Metadata name must be a valid identifier." msgstr "Název metadat musí být platný identifikátor." msgid "Metadata with name \"%s\" already exists." -msgstr "Metadata s názvem \"%s\" již existuje." +msgstr "Metadata s názvem \"%s\" již existují." msgid "Names starting with _ are reserved for editor-only metadata." -msgstr "Názvy začínající _ jsou rezervována pouze pro metadata editoru." +msgstr "Názvy začínající znakem _ jsou rezervována pouze pro metadata editoru." msgid "Time:" msgstr "Čas:" @@ -566,19 +567,19 @@ msgid "Insert Key Here" msgstr "Vložit klíč zde" msgid "Duplicate Selected Key(s)" -msgstr "Duplikovat vybrané klíč(e)" +msgstr "Duplikovat vybrané klíče" msgid "Cut Selected Key(s)" -msgstr "Vyjmout vybrané klíč(e)" +msgstr "Vyjmout vybrané klíče" msgid "Copy Selected Key(s)" -msgstr "Kopírovat vybrané klíč(e)" +msgstr "Kopírovat vybrané klíče" msgid "Paste Key(s)" -msgstr "Vložit klíč(e)" +msgstr "Vložit klíče" msgid "Delete Selected Key(s)" -msgstr "Smazat vybrané klíč(e)" +msgstr "Smazat vybrané klíče" msgid "Make Handles Free" msgstr "Uvolnit úchyty" @@ -623,19 +624,19 @@ msgid "Select All Keys" msgstr "Vybrat všechny klíče" msgid "Deselect All Keys" -msgstr "Odznačit všechny klíče" +msgstr "Zrušit výběr všech klíčů" msgid "Animation Change Transition" msgstr "Animace: Změnit přechod" msgid "Animation Change Position3D" -msgstr "Animace: Změnit 3D pozici" +msgstr "Animace: Změnit Position3D" msgid "Animation Change Rotation3D" -msgstr "Animace: Změnit 3D Rotaci" +msgstr "Animace: Změnit Rotation3D" msgid "Animation Change Scale3D" -msgstr "Animace: Změnit 3D Škálu" +msgstr "Animace: Změnit Scale3D" msgid "Animation Change Keyframe Value" msgstr "Animace: Změnit hodnotu klíčového snímku" @@ -644,22 +645,22 @@ msgid "Animation Change Call" msgstr "Animace: Změnit volání" msgid "Animation Multi Change Transition" -msgstr "Animace Multi Change Přechod" +msgstr "Animace: Změnit přechod více" msgid "Animation Multi Change Position3D" -msgstr "Animace Multi Change Position3D" +msgstr "Animace: Změnit Position3D více" msgid "Animation Multi Change Rotation3D" -msgstr "Animace Multi Change Rotation3D" +msgstr "Animace: Změnit Rotation3D více" msgid "Animation Multi Change Scale3D" -msgstr "Animace Multi Change Scale3D" +msgstr "Animace: Změnit Scale3D více" msgid "Animation Multi Change Keyframe Value" -msgstr "Animace Multi Change Hodnota Klíčového snímku" +msgstr "Animace: Změnit hodnotu klíčového snímku více" msgid "Animation Multi Change Call" -msgstr "Animace: Změna Více Volání" +msgstr "Animace: Změnit volání více" msgid "Change Animation Length" msgstr "Změnit délku animace" @@ -667,17 +668,46 @@ msgstr "Změnit délku animace" msgid "Change Animation Loop" msgstr "Změnit smyčku animace" +msgid "" +"Can't change loop mode on animation instanced from an imported scene.\n" +"\n" +"To change this animation's loop mode, navigate to the scene's Advanced Import " +"settings and select the animation.\n" +"You can then change the loop mode from the inspector menu." +msgstr "" +"U animace instancované z importované scény nelze změnit režim smyčky.\n" +"\n" +"Chcete-li změnit režim smyčky této animace, přejděte do Pokročilých nastavení " +"importu dané scény a animaci vyberte.\n" +"Poté můžete režim smyčky změnit z nabídky inspektoru." + +msgid "Can't change loop mode on animation instanced from an imported resource." +msgstr "" +"U animace instancované z importovaného zdroje nelze změnit režim smyčky." + +msgid "" +"Can't change loop mode on animation embedded in another scene.\n" +"\n" +"You must open this scene and change the animation's loop mode from there." +msgstr "" +"U animace vložené do jiné scény nelze změnit režim smyčky .\n" +"\n" +"Musíte tuto scénu otevřít a změnit režim smyčky animace v ní." + +msgid "Can't change loop mode on animation embedded in another resource." +msgstr "U animace vložené do jiného zdroje nelze změnit režim smyčky." + msgid "Property Track..." msgstr "Stopa vlastnosti..." msgid "3D Position Track..." -msgstr "Stopa 3D Pozice..." +msgstr "Stopa 3D pozice..." msgid "3D Rotation Track..." msgstr "Stopa 3D rotace..." msgid "3D Scale Track..." -msgstr "Stopa 3D Velikosti..." +msgstr "Stopa 3D škály..." msgid "Blend Shape Track..." msgstr "Stopa prolínání tvarů..." @@ -704,7 +734,7 @@ msgid "Add Track" msgstr "Přidat stopu" msgid "Animation Looping" -msgstr "Opakování animace" +msgstr "Smyčka animace" msgid "Functions:" msgstr "Funkce:" @@ -713,13 +743,13 @@ msgid "Audio Clips:" msgstr "Audio klipy:" msgid "Animation Clips:" -msgstr "Animační klipy:" +msgstr "Klipy animací:" msgid "Change Track Path" msgstr "Změnit cestu stopy" msgid "Toggle this track on/off." -msgstr "Aktivovat/Deaktivovat tuto stopu." +msgstr "Přepnout stopu na aktivní/neaktivní." msgid "Use Blend" msgstr "Použít prolnutí" @@ -731,7 +761,7 @@ msgid "Interpolation Mode" msgstr "Režim interpolace" msgid "Loop Wrap Mode (Interpolate end with beginning on loop)" -msgstr "Režim uzavřené smyčky (Interpolace mezi koncem a začátkem smyčky)" +msgstr "Režim plynulé smyčky (Interpolace mezi koncem a začátkem smyčky)" msgid "Remove this track." msgstr "Odstranit tuto stopu." @@ -746,7 +776,7 @@ msgid "Rotation:" msgstr "Rotace:" msgid "Scale:" -msgstr "Zvětšení:" +msgstr "Měřítko:" msgid "Blend Shape:" msgstr "Prolnutí tvaru:" @@ -788,13 +818,13 @@ msgid "Animation Clip:" msgstr "Klip animace:" msgid "Toggle Track Enabled" -msgstr "Povolit stopu" +msgstr "Přepnout stopa povolená" msgid "Don't Use Blend" msgstr "Nepoužívat prolínání" msgid "Continuous" -msgstr "Spojité" +msgstr "Spojitá" msgid "Discrete" msgstr "Diskrétní" @@ -812,10 +842,10 @@ msgid "Cubic" msgstr "Kubická" msgid "Linear Angle" -msgstr "Lineární úhel" +msgstr "Lineární úhlová" msgid "Cubic Angle" -msgstr "Kubický úhel" +msgstr "Kubická úhlová" msgid "Clamp Loop Interp" msgstr "Přerušená interpolace smyčky" @@ -827,19 +857,19 @@ msgid "Insert Key..." msgstr "Vložit klíč..." msgid "Duplicate Key(s)" -msgstr "Duplikovat klíč(e)" +msgstr "Duplikovat klíče" msgid "Cut Key(s)" -msgstr "Vyjmout klíč(e)" +msgstr "Vyjmout klíče" msgid "Copy Key(s)" -msgstr "Zkopírovat klíč(e)" +msgstr "Kopírovat klíče" msgid "Add RESET Value(s)" -msgstr "Přidat RESET hodnotu(y)" +msgstr "Přidat RESET hodnoty" msgid "Delete Key(s)" -msgstr "Odstranit klíč(e)" +msgstr "Odstranit klíče" msgid "Change Animation Update Mode" msgstr "Změnit režim aktualizace animace" @@ -851,7 +881,7 @@ msgid "Change Animation Loop Mode" msgstr "Změnit režim smyčky animace" msgid "Change Animation Use Blend" -msgstr "Změna Animace: Použít prolnutí" +msgstr "Změnit použití prolnutí animace" msgid "" "Compressed tracks can't be edited or removed. Re-import the animation with " @@ -870,7 +900,7 @@ msgid "Create %d new tracks and insert keys?" msgstr "Vytvořit %d nových stop a vložit klíče?" msgid "Hold Shift when clicking the key icon to skip this dialog." -msgstr "Pro přeskočení tohoto dialogu držte Shift při kliknutí na ikonku klíče." +msgstr "Pro přeskočení tohoto dialogu držte Shift při kliknutí na ikonu klíče." msgid "Create" msgstr "Vytvořit" @@ -897,10 +927,10 @@ msgid "Rearrange Tracks" msgstr "Upravit pořadí stop" msgid "Blend Shape tracks only apply to MeshInstance3D nodes." -msgstr "Transformační stopy se vztahují pouze na uzly MeshInstance 3D." +msgstr "Stopy prolínání tvarů lze použít pouze s uzly MeshInstance3D." msgid "Position/Rotation/Scale 3D tracks only apply to 3D-based nodes." -msgstr "Pozice/Rotace/Měřítko 3D stopy platí pouze pro uzly založené na 3D." +msgstr "Stopy Position/Rotation/Scale 3D platí pouze pro uzly založené na 3D." msgid "" "Audio tracks can only point to nodes of type:\n" @@ -920,13 +950,13 @@ msgid "Not possible to add a new track without a root" msgstr "Není možné přidat novou stopu bez kořenového uzlu" msgid "Invalid track for Bezier (no suitable sub-properties)" -msgstr "Neplatná stopa pro Bezier (žádné vhodné podvlastnosti)" +msgstr "Neplatná stopa pro Bézier (žádné vhodné dílčí vlastnosti)" msgid "Add Bezier Track" msgstr "Přidat Bézierovu stopu" msgid "Track path is invalid, so can't add a key." -msgstr "Cesta stopy je neplatná, takže nelze přidat klíč." +msgstr "Cesta stopy je neplatná, nelze přidat klíč." msgid "Track is not of type Node3D, can't insert key" msgstr "Stopa není typu Node3D, nelze vložit klíč" @@ -935,13 +965,13 @@ msgid "Track is not of type MeshInstance3D, can't insert key" msgstr "Stopa není typu MeshInstance3D, nelze vložit klíč" msgid "Track path is invalid, so can't add a method key." -msgstr "Cesta stopy je neplatná, nelze vložit klíč metody." +msgstr "Cesta stopy je neplatná, nelze přidat klíč metody." msgid "Add Method Track Key" msgstr "Přidat stopu volání metody" msgid "Method not found in object:" -msgstr "Tato metoda nebyla v objektu nalezena:" +msgstr "Metoda nebyla v objektu nalezena:" msgid "Animation Move Keys" msgstr "Animace: Přesunout klíče" @@ -956,7 +986,7 @@ msgid "Scale" msgstr "Měřítko" msgid "BlendShape" -msgstr "BlendTvar" +msgstr "BlendShape" msgid "Methods" msgstr "Metody" @@ -974,19 +1004,19 @@ msgid "Paste Tracks" msgstr "Vložit stopy" msgid "Animation Scale Keys" -msgstr "Klíče měřítka animace" +msgstr "Animace: Škálovat klíče" msgid "Animation Set Start Offset" -msgstr "Nastavení počátečního posunu animace" +msgstr "Animace: Nastavit počáteční offset" msgid "Animation Set End Offset" -msgstr "Nastavení počátečního posunu animace" +msgstr "Animace: Nastavit koncový offset" msgid "Make Easing Keys" -msgstr "Vytvoř klíče pro dynamiku" +msgstr "Vytvořit klíče pro vyhlazování" msgid "Animation Add RESET Keys" -msgstr "Animace: Přidání kláves RESET" +msgstr "Animace: Přidat RESET klíče" msgid "Bake Animation as Linear Keys" msgstr "Zapečení animace jako lineárních klíčů" @@ -1004,8 +1034,8 @@ msgstr "" "Tato animace patří k importované scéně, takže změny na importovaných stopách " "nebudou uloženy.\n" "\n" -"Chcete-li tuto animaci upravit, přejděte do pokročilých nastavení importu " -"scény a vyberte animaci.\n" +"Chcete-li tuto animaci upravit, přejděte do Pokročilých nastavení importu " +"dané scény a vyberte animaci.\n" "Zde jsou k dispozici některé možnosti, včetně smyčky. Chcete-li přidat " "vlastní stopy, povolte možnost „Uložit do souboru“ a\n" "„Zachovat vlastní stopy“." @@ -1027,8 +1057,7 @@ msgid "AnimationPlayer is inactive. The playback will not be processed." msgstr "AnimationPlayer je neaktivní. Přehrávání nebude zpracováno." msgid "Select an AnimationPlayer node to create and edit animations." -msgstr "" -"Pro přidání a úpravu animací vyberte ze stromu scény uzel AnimationPlayer." +msgstr "Pro přidání a úpravu animací vyberte uzel AnimationPlayer." msgid "Imported Scene" msgstr "Importovaná scéna" @@ -1040,7 +1069,7 @@ msgid "Dummy Player" msgstr "Ukázkový přehrávač" msgid "Warning: Editing dummy AnimationPlayer" -msgstr "Varování: Upravuje atrapa AnimationPlayer" +msgstr "Varování: Upravuje se ukázkový AnimationPlayer" msgid "Inactive Player" msgstr "Neaktivní přehrávač" @@ -1052,11 +1081,20 @@ msgid "Toggle between the bezier curve editor and track editor." msgstr "Přepnout mezi editorem Bézierovy křivky a editorem stopy." msgid "Only show tracks from nodes selected in tree." -msgstr "Zobrazit pouze stopy vybraných uzlů." +msgstr "Zobrazit pouze stopy uzlů vybraných ve stromu." msgid "Group tracks by node or display them as plain list." msgstr "Seskupit stopy podle uzlu nebo je zobrazit jako jednoduchý seznam." +msgid "Apply snapping to timeline cursor." +msgstr "Přichytávat na kurzor časové osy." + +msgid "Apply snapping to selected key(s)." +msgstr "Přichytávat k vybraným klíčům." + +msgid "Apply snapping to the nearest integer FPS." +msgstr "Přichytávat na nejbližší celočíselné FPS." + msgid "Animation step value." msgstr "Hodnota kroku animace." @@ -1079,10 +1117,10 @@ msgid "Copy Tracks..." msgstr "Kopírovat stopy..." msgid "Scale Selection..." -msgstr "Změnit měřítko výběru..." +msgstr "Výběr měřítka..." msgid "Scale From Cursor..." -msgstr "Změnit měřítko od kurzoru..." +msgstr "Změnit měřítko kurzorem..." msgid "Set Start Offset (Audio)" msgstr "Nastavit počáteční offset (Audio)" @@ -1124,7 +1162,7 @@ msgid "Apply Reset" msgstr "Resetovat" msgid "Bake Animation..." -msgstr "Zapéct animaci..." +msgstr "Vypálit animaci..." msgid "Optimize Animation (no undo)..." msgstr "Optimalizovat animaci (nelze vrátit zpět)..." @@ -1139,19 +1177,19 @@ msgid "Use Bezier Curves" msgstr "Použít Bézierovy křivky" msgid "Create RESET Track(s)" -msgstr "Vytvořit RESET stopu/stopy" +msgstr "Vytvořit RESET stopy" msgid "Animation Optimizer" msgstr "Optimalizátor animace" msgid "Max Velocity Error:" -msgstr "Maximální rychlost chyba:" +msgstr "Maximální chyba rychlosti:" msgid "Max Angular Error:" -msgstr "Maximální úhlová chyba:" +msgstr "Maximální chyba úhlu:" msgid "Max Precision Error:" -msgstr "Maximální přesnostní chyba:" +msgstr "Maximální chyba přesnosti:" msgid "Optimize" msgstr "Optimalizovat" @@ -1181,7 +1219,7 @@ msgid "Scale Ratio:" msgstr "Poměr zvětšení:" msgid "Select Transition and Easing" -msgstr "Vybrat přechod a dynamiku" +msgstr "Vybrat přechod a vyhlazení" msgctxt "Transition Type" msgid "Linear" @@ -1257,25 +1295,76 @@ msgid "FPS:" msgstr "FPS:" msgid "Animation Baker" -msgstr "Zapékač animací" +msgstr "Vypalovač animace" msgid "3D Pos/Rot/Scl Track:" -msgstr "3D Poz/Rot/Měř stopy:" +msgstr "Stopa 3D Pos/Rot/Scl:" msgid "Blendshape Track:" msgstr "Stopa prolínání tvarů:" msgid "Value Track:" -msgstr "Hodnotná stopa:" +msgstr "Stopa hodnoty:" msgid "Select Tracks to Copy" msgstr "Vybrat stopy ke kopírování" msgid "Select All/None" -msgstr "Vybrat vše/nic" +msgstr "Vybrat všechny/žádné" msgid "Animation Change Keyframe Time" -msgstr "Změna času klíčového snímku animace" +msgstr "Animace: Změnit čas klíčového snímku" + +msgid "Marker name is read-only in the inspector." +msgstr "Název značky je v inspektoru přístupný pouze ke čtení." + +msgid "" +"A marker's name can only be changed by right-clicking it in the animation " +"editor and selecting \"Rename Marker\", in order to make sure that marker " +"names are all unique." +msgstr "" +"Aby bylo zajištěno, že jsou všechny názvy značek unikátní, lze název značky " +"lze změnit pouze tak, že na ni kliknute pravým tlačítkem myši v editoru " +"animací a vyberete \"Přejmenovat značku\"." + +msgid "Insert Marker..." +msgstr "Vložit značku..." + +msgid "Rename Marker" +msgstr "Přejmenovat značku" + +msgid "Delete Marker(s)" +msgstr "Odstranit značky" + +msgid "Show All Marker Names" +msgstr "Zobrazit všechny názvy značek" + +msgid "Marker:" +msgstr "Značka:" + +msgid "Animation Move Markers" +msgstr "Animace: Přesunout značky" + +msgid "Animation Delete Markers" +msgstr "Animace: Smazat značky" + +msgid "Marker '%s' already exists!" +msgstr "Značka '%s' již existuje!" + +msgid "Add Marker Key" +msgstr "Přidat klíč značky" + +msgid "Empty marker names are not allowed." +msgstr "Prázdné názvy značek nejsou dovoleny." + +msgid "Insert Marker" +msgstr "Vložit značku" + +msgid "Marker Name" +msgstr "Název značky" + +msgid "Marker Color" +msgstr "Barva značky" msgid "Close" msgstr "Zavřít" @@ -1283,6 +1372,18 @@ msgstr "Zavřít" msgid "Error!" msgstr "Chyba!" +msgid "Change Marker Name:" +msgstr "Změnit název značky:" + +msgid "Edit Marker Color" +msgstr "Upravit barvu značky" + +msgid "Multi Edit Marker Color" +msgstr "Upravit barvu značky více" + +msgid "Animation Change Marker Time" +msgstr "Animace: Změnit čas značky" + msgid "Add Audio Track Clip" msgstr "Přidat audio klip" @@ -1316,6 +1417,12 @@ msgstr[0] "%d z %d shody" msgstr[1] "%d ze %d shod" msgstr[2] "%d z %d shod" +msgid "Hide Replace" +msgstr "Schovat nahrazení" + +msgid "Show Replace" +msgstr "Zobrazit nahrazení" + msgid "Find" msgstr "Najít" @@ -1326,7 +1433,7 @@ msgid "Next Match" msgstr "Další shoda" msgid "Match Case" -msgstr "Rozlišovat malá/velká" +msgstr "Rozlišovat velká a malá písmena" msgid "Whole Words" msgstr "Celá slova" @@ -1335,7 +1442,7 @@ msgid "Replace" msgstr "Nahradit" msgid "Replace All" -msgstr "Nahradit všechny" +msgstr "Nahradit vše" msgid "Selection Only" msgstr "Pouze výběr" @@ -1372,6 +1479,13 @@ msgstr "Varování" msgid "Zoom factor" msgstr "Faktor přiblížení" +msgid "" +"%sMouse wheel, %s/%s: Finetune\n" +"%s: Reset" +msgstr "" +"%skolečko myši, %s/%s: Doladit\n" +"%s: Obnovit" + msgid "Line and column numbers." msgstr "Čísla řádků a sloupců." @@ -1388,14 +1502,16 @@ msgid "" "Target method not found. Specify a valid method or attach a script to the " "target node." msgstr "" -"Cílová metoda nenalezena. Specifikujte existující metodu, nebo k cílovému " -"uzlu připojte skript." +"Cílová metoda nenalezena. Zadejte existující metodu, nebo k cílovému uzlu " +"připojte skript." msgid "Attached Script" msgstr "Připojený skript" msgid "%s: Callback code won't be generated, please add it manually." -msgstr "%s: Kód pro callback nebude generován, bude nutné ho přidat ručně." +msgstr "" +"%s: Kód pro metodu zpětného volání nebude vygenerován, přidejte ho prosím " +"ručně." msgid "Connect to Node:" msgstr "Připojit k uzlu:" @@ -1410,7 +1526,7 @@ msgid "Filter Nodes" msgstr "Filtrovat uzly" msgid "Go to Source" -msgstr "Jít ke Zdroji" +msgstr "Přejít ke zdrojovému kódu" msgid "Scene does not contain any script." msgstr "Scéna neobsahuje žádný skript." @@ -1443,10 +1559,10 @@ msgid "Allows to drop arguments sent by signal emitter." msgstr "Umožňuje ignorovat argumenty poslané vysílající stranou." msgid "Unbind Signal Arguments:" -msgstr "Zrušení vazby argumentu signálu:" +msgstr "Zrušit vazby argumentů signálu:" msgid "Receiver Method:" -msgstr "Metoda příjemce:" +msgstr "Přijímací metoda:" msgid "Advanced" msgstr "Pokročilé" @@ -1456,7 +1572,7 @@ msgstr "Odloženě" msgid "" "Defers the signal, storing it in a queue and only firing it at idle time." -msgstr "Odkládá signál, ukládá do fronty a jen spouští při nečinnosti." +msgstr "Odkládá signál, uloží jej do fronty a vyšle ho až v době nečinnosti." msgid "One Shot" msgstr "Jednorázový" @@ -1492,7 +1608,7 @@ msgid "Edit Connection: '%s'" msgstr "Upravit spojení: \"%s\"" msgid "Are you sure you want to remove all connections from the \"%s\" signal?" -msgstr "Jste si jisti, že chcete odstranit všechna připojení ze signálu \"%s\"?" +msgstr "Jste si jisti, že chcete odstranit všechna připojení k signálu \"%s\"?" msgid "Signals" msgstr "Signály" @@ -1530,6 +1646,12 @@ msgstr "Vytvořit nový %s" msgid "No results for \"%s\"." msgstr "Žádné výsledky pro \"%s\"." +msgid "Script path: %s" +msgstr "Cesta ke skriptu: %s" + +msgid "The script will run in the editor." +msgstr "Tento skript poběží v editoru." + msgid "This class is marked as deprecated." msgstr "Tato třída je označena jako zastaralá." @@ -1560,6 +1682,9 @@ msgstr "Popis:" msgid "Remote %s:" msgstr "Vzdálený %s:" +msgid "Session %d" +msgstr "Relace %d" + msgid "Debugger" msgstr "Ladicí program" @@ -1583,13 +1708,22 @@ msgid "" "%s\n" "Click to open the original file in the Editor." msgstr "" -"Tento uzel by vytvořen ze souboru PackedScene:\n" +"Tento uzel byl instancován ze souboru PackedScene:\n" "%s\n" -"Klikněte pro otevření původního souboru v Editoru." +"Kliknutím otevřete původní soubor v editoru." msgid "Toggle Visibility" msgstr "Přepnout viditelnost" +msgid "Expression to evaluate" +msgstr "Výraz pro vyhodnocení" + +msgid "Clear on Run" +msgstr "Promazat při spuštění" + +msgid "Evaluate" +msgstr "Vyhodnotit" + msgid "Clear" msgstr "Promazat" @@ -1606,7 +1740,7 @@ msgid "Decompressing remote file system" msgstr "Dekomprese vzáleného souborového systému" msgid "Scanning for local changes" -msgstr "Hledání lokálních změn" +msgstr "Prohledávání místních změn" msgid "Sending list of changed files:" msgstr "Zasílání seznamu změněných souborů:" @@ -1627,7 +1761,7 @@ msgid "Value" msgstr "Hodnota" msgid "Pick one or more items from the list to display the graph." -msgstr "Vyberte jednu nebo více položek ze seznamu pro zobrazení grafu." +msgstr "Pro zobrazení grafu vyberte jednu nebo více položek ze seznamu." msgid "Stop" msgstr "Stop" @@ -1635,6 +1769,9 @@ msgstr "Stop" msgid "Start" msgstr "Start" +msgid "Autostart" +msgstr "Automatický start" + msgid "Measure:" msgstr "Měření:" @@ -1654,7 +1791,7 @@ msgid "Inclusive" msgstr "Včetně vnořených" msgid "Self" -msgstr "Tento objekt" +msgstr "Tato funkce" msgid "" "Inclusive: Includes time from other functions called by this function.\n" @@ -1667,7 +1804,7 @@ msgstr "" "Včetně vnořených: Zahrnuje čas z jiných funkcí volaných touto funkcí.\n" "Slouží k odhalení úzkých míst.\n" "\n" -"Tento objekt: Započítává pouze čas strávený v samotné funkci, nikoli v jiných " +"Tato funkce: Započítává pouze čas strávený v samotné funkci, nikoli v jiných " "funkcích volaných touto funkcí.\n" "Použijte k vyhledání jednotlivých funkcí, které je třeba optimalizovat." @@ -1687,7 +1824,7 @@ msgid "Calls" msgstr "Volání" msgid "Fit to Frame" -msgstr "Vejít do snímku" +msgstr "Přizpůsobit rámečku" msgid "Linked" msgstr "Propojený" @@ -1702,7 +1839,7 @@ msgid "Execution resumed." msgstr "Provádění obnoveno." msgid "Bytes:" -msgstr "Bajtů:" +msgstr "Bajty:" msgid "Warning:" msgstr "Varování:" @@ -1729,10 +1866,10 @@ msgid "Stack Trace:" msgstr "Trasování zásobníku:" msgid "Debug session started." -msgstr "Ladící sezení zahájeno." +msgstr "Ladicí sezení zahájeno." msgid "Debug session closed." -msgstr "Ladící sezení ukončeno." +msgstr "Ladicí sezení ukončeno." msgid "Line %d" msgstr "Řádek %d" @@ -1791,6 +1928,9 @@ msgstr "Rozbalit vše" msgid "Collapse All" msgstr "Sbalit vše" +msgid "Evaluator" +msgstr "Evaluátor" + msgid "Profiler" msgstr "Profiler" @@ -1798,7 +1938,7 @@ msgid "Visual Profiler" msgstr "Vizuální profiler" msgid "List of Video Memory Usage by Resource:" -msgstr "Spotřeba video paměti dle zdroje:" +msgstr "Spotřeba video paměti podle zdroje:" msgid "Total:" msgstr "Celkem:" @@ -1816,13 +1956,13 @@ msgid "Format" msgstr "Formát" msgid "Usage" -msgstr "Používání" +msgstr "Použití" msgid "Misc" msgstr "Různé" msgid "Clicked Control:" -msgstr "Kliknutý ovládací prvek:" +msgstr "Kliknutý ovládací prvek:" msgid "Clicked Control Type:" msgstr "Typ kliknutého prvku:" @@ -1846,15 +1986,15 @@ msgid "" "Scene '%s' is currently being edited.\n" "Changes will only take effect when reloaded." msgstr "" -"Scéna \"%s\" se právě upravuje.\n" -"Změny se projeví po opětovném načtení." +"Scéna '%s' je právě upravována.\n" +"Změny se projeví až po opětovném načtení." msgid "" "Resource '%s' is in use.\n" "Changes will only take effect when reloaded." msgstr "" -"Zdroj \"%s\" se právě používá.\n" -"Změny se projeví po opětovném načtení." +"Zdroj '%s' je právě používán.\n" +"Změny se projeví až po opětovném načtení." msgid "Dependencies" msgstr "Závislosti" @@ -1911,7 +2051,7 @@ msgid "" "Depending on your filesystem configuration, the files will either be moved to " "the system trash or deleted permanently." msgstr "" -"Odstraňované soubory potřebují jiné zdroje ke své činnosti.\n" +"Jiné zdroje potřebují odstraňované soubory ke své činnosti.\n" "Chcete je přesto odstranit? (Nelze vrátit zpět.)\n" "V závislosti na konfiguraci souborového systému budou soubory buď přesunuty " "do systémového koše, nebo trvale odstraněny." @@ -1919,6 +2059,12 @@ msgstr "" msgid "Cannot remove:" msgstr "Nelze odstranit:" +msgid "Files to be deleted:" +msgstr "Soubory ke smazání:" + +msgid "Dependencies of files to be deleted:" +msgstr "Závislosti souborů ke smazání:" + msgid "Error loading:" msgstr "Chyba při načítání:" @@ -1929,7 +2075,7 @@ msgid "Open Anyway" msgstr "Přesto otevřít" msgid "Which action should be taken?" -msgstr "Jaká akce by se měla provést?" +msgstr "Jaká akce by měla být provedena?" msgid "Fix Dependencies" msgstr "Opravit závislosti" @@ -1953,16 +2099,28 @@ msgid "Resources Without Explicit Ownership:" msgstr "Zdroje bez explicitního vlastnictví:" msgid "Name cannot be empty." -msgstr "Název složky nesmí být prázdný." +msgstr "Název nesmí být prázdný." + +msgid "File name can't end with /." +msgstr "Název souboru nesmí končit znakem /." + +msgid "File name cannot be empty." +msgstr "Název souboru nesmí být prázdný." msgid "Folder name cannot be empty." -msgstr "Název složky nemůže být prázdný." +msgstr "Název složky nesmí být prázdný." + +msgid "File name contains invalid characters." +msgstr "Název souboru obsahuje neplatné znaky." msgid "Folder name contains invalid characters." msgstr "Název složky obsahuje neplatné znaky." msgid "File name begins with a dot." -msgstr "Název souboru nesmí začínat tečkou." +msgstr "Název souboru začíná tečkou." + +msgid "Folder name begins with a dot." +msgstr "Název složky začíná tečkou." msgid "File with that name already exists." msgstr "Soubor s tímto názvem již existuje." @@ -1973,6 +2131,19 @@ msgstr "Složka s tímto názvem již existuje." msgid "Using slashes in folder names will create subfolders recursively." msgstr "Použití lomítek v názvech složek rekurzivně vytvoří podsložky." +msgid "" +"Using slashes in path will create the file in subfolder, creating new " +"subfolders if necessary." +msgstr "" +"Použití lomítek v cestě vytvoří soubor v podsložce. V případě potřeby vytvoří " +"nové podsložky." + +msgid "File name is valid." +msgstr "Název souboru je platný." + +msgid "Base path: %s" +msgstr "Základní cesta: %s" + msgid "Folder name is valid." msgstr "Název složky je platný." @@ -1983,7 +2154,7 @@ msgid "Thanks from the Godot community!" msgstr "Děkujeme za komunitu Godotu!" msgid "Godot Engine contributors" -msgstr "Přispěvatelé do Godot Enginu" +msgstr "Přispěvatelé do enginu Godot" msgid "Project Founders" msgstr "Zakladatelé projektu" @@ -2040,10 +2211,10 @@ msgid "" "an exhaustive list of all such third-party components with their respective " "copyright statements and license terms." msgstr "" -"Godot Engine závisí na volně dostupných a open source knihovnách od třetích " -"stran; všechny jsou kompatibilní s podmínkami jeho MIT licence. Následuje " -"plný výčet těchto komponent třetích stran s jejich příslušnými popisy " -"autorských práv a licenčními podmínkami." +"Engine Godot závisí na různých volně dostupných a open source knihovnách od " +"třetích stran. Všechny jsou kompatibilní s podmínkami jeho MIT licence. " +"Následuje plný výčet těchto komponent třetích stran společně s jejich " +"příslušnými popisy autorských práv a licenčními podmínkami." msgid "All Components" msgstr "Všechny komponenty" @@ -2068,16 +2239,16 @@ msgstr[1] "" msgstr[2] "%d souborů je v konfliktu s vaším projektem a nebudou nainstalovány" msgid "This asset doesn't have a root directory, so it can't be ignored." -msgstr "Tento zdroj nemá kořenový adresář, proto nemůže být ignorován." +msgstr "Tento zdroj nemá kořenový adresář, proto jej nelze ignorovat." msgid "Ignore the root directory when extracting files." -msgstr "Ignorovat kořenovou složku při extrakci souborů." +msgstr "Ignorovat kořenový adresář při extrakci souborů." msgid "Select Install Folder" -msgstr "Vybrat složku k instalaci" +msgstr "Vybrat složku pro instalaci" msgid "Uncompressing Assets" -msgstr "Dekomprese uživatelského obsahu" +msgstr "Dekomprese zdrojů" msgid "The following files failed extraction from asset \"%s\":" msgstr "Následující soubory se nepodařilo extrahovat z balíčku \"%s\":" @@ -2092,27 +2263,26 @@ msgid "Success!" msgstr "Úspěch!" msgid "Asset:" -msgstr "Asset:" +msgstr "Zdroj:" msgid "Open the list of the asset contents and select which files to install." -msgstr "" -"Otevřít seznam obsahů zdrojů a vybrat, které soubory se mají instalovat." +msgstr "Otevřít obsah zdroje a vybrat ze seznamu soubory pro instalaci." msgid "Change Install Folder" -msgstr "Změnit složku k instalaci" +msgstr "Změnit složku pro instalaci" msgid "" "Change the folder where the contents of the asset are going to be installed." -msgstr "Změnit složku, do které se instaluje obsah zdrojů." +msgstr "Změnit složku, do které bude obsah zdroje nainstalován." msgid "Ignore asset root" -msgstr "Ignorovat kořen zdrojů" +msgstr "Ignorovat kořenový adresář zdroje" msgid "No files conflict with your project" msgstr "Žádné soubory nejsou v konfliktu s vaším projektem" msgid "Show contents of the asset and conflicting files." -msgstr "Ukázat obsah zdroje a konfliktní soubory." +msgstr "Ukázat obsah zdroje a soubory, které jsou v konfliktu." msgid "Contents of the asset:" msgstr "Obsah zdroje:" @@ -2145,7 +2315,7 @@ msgid "Toggle Audio Bus Mute" msgstr "Přepnout ztlumení zvukové sběrnice" msgid "Toggle Audio Bus Bypass Effects" -msgstr "Přepnout bypass efektů na zvukové sběrnice" +msgstr "Přepnout obcházení efektů zvukové sběrnice" msgid "Select Audio Bus Send" msgstr "Vybrat cíl zvukové sběrnice" @@ -2154,10 +2324,10 @@ msgid "Add Audio Bus Effect" msgstr "Přidat efekt zvukové sběrnice" msgid "Move Bus Effect" -msgstr "Přesunout efekt zvukové sběrnice" +msgstr "Přesunout efekt sběrnice" msgid "Delete Bus Effect" -msgstr "Smazat efekt zvukové sběrnice" +msgstr "Smazat efekt sběrnice" msgid "Drag & drop to rearrange." msgstr "Přetažením uspořádejte." @@ -2187,58 +2357,58 @@ msgid "Delete Effect" msgstr "Smazat efekt" msgid "Toggle Audio Bottom Panel" -msgstr "Přepnout spodní Audio Panel" +msgstr "Přepnout spodní panel Zvuk" msgid "Add Audio Bus" -msgstr "Přidat audio sběrnici" +msgstr "Přidat zvukovou sběrnici" msgid "Master bus can't be deleted!" -msgstr "Master sběrnici nelze smazat!" +msgstr "Hlavní sběrnici nelze smazat!" msgid "Delete Audio Bus" msgstr "Smazat zvukovou sběrnici" msgid "Duplicate Audio Bus" -msgstr "Duplikovat audio sběrnici" +msgstr "Duplikovat zvukovou sběrnici" msgid "Reset Bus Volume" msgstr "Obnovit hlasitost sběrnice" msgid "Move Audio Bus" -msgstr "Přesunout audio sběrnici" +msgstr "Přesunout zvukovou sběrnici" msgid "Save Audio Bus Layout As..." -msgstr "Uložit rozložení audio sběrnice jako..." +msgstr "Uložit rozvržení zvukové sběrnice jako..." msgid "Location for New Layout..." -msgstr "Umístění pro nové rozložení..." +msgstr "Umístění pro nové rozvržení..." msgid "Open Audio Bus Layout" -msgstr "Otevřít rozložení audio sběrnice" +msgstr "Otevřít rozvržení zvukové sběrnice" msgid "Error saving file: %s" msgstr "Chyba při ukládání souboru: %s" msgid "Layout:" -msgstr "Rozložení:" +msgstr "Rozvržení:" msgid "Add Bus" msgstr "Přidat sběrnici" msgid "Add a new Audio Bus to this layout." -msgstr "Přidá do tohoto rozložení novou zvukovou sběrnici." +msgstr "Přidat do tohoto rozvržení novou zvukovou sběrnici." msgid "Load" msgstr "Načíst" msgid "Load an existing Bus Layout." -msgstr "Načíst existující rozložení sběrnice." +msgstr "Načíst existující rozvržení sběrnice." msgid "Save As" msgstr "Uložit jako" msgid "Save this Bus Layout to a file." -msgstr "Uložit toto rozložení sběrnice do souboru." +msgstr "Uložit toto rozvržení sběrnice do souboru." msgid "Load Default" msgstr "Načíst výchozí" @@ -2247,19 +2417,22 @@ msgid "Load the default Bus Layout." msgstr "Načíst výchozí rozvržení sběrnice." msgid "Create a new Bus Layout." -msgstr "Vytvořit nové rozložení sběrnice." +msgstr "Vytvořit nové rozvržení sběrnice." msgid "Audio Bus Layout" -msgstr "Rozložení audio sběrnice" +msgstr "Rozvržení zvukové sběrnice" msgid "Invalid name." msgstr "Neplatný název." +msgid "Must be a valid Unicode identifier." +msgstr "Musí být platný Unicode identifikátor." + msgid "Must not collide with an existing engine class name." msgstr "Nesmí kolidovat s existujícím názvem třídy enginu." msgid "Must not collide with an existing global script class name." -msgstr "Nesmí kolidovat s existujícím globálním názvem skriptu." +msgstr "Nesmí kolidovat s názvem existující globální třídy skriptu." msgid "Must not collide with an existing built-in type name." msgstr "Nesmí kolidovat s názvem existujícího vestavěného typu." @@ -2277,10 +2450,10 @@ msgid "Rename Autoload" msgstr "Přejmenovat Autoload" msgid "Toggle Autoload Globals" -msgstr "Přepnout auto-načítání globálních proměnných" +msgstr "Přepnout globální Autoloady" msgid "Move Autoload" -msgstr "Přemístit Autoload" +msgstr "Přesunout Autoload" msgid "Remove Autoload" msgstr "Odstranit Autoload" @@ -2307,7 +2480,7 @@ msgid "Path:" msgstr "Cesta:" msgid "Set path or press \"%s\" to create a script." -msgstr "Zadejte cestu nebo zmáčkněte \"%s\" pro vytvoření skriptu." +msgstr "Chcete-li vytvořit skript, zadejte cestu nebo zmáčkněte \"%s\"." msgid "Node Name:" msgstr "Název uzlu:" @@ -2316,13 +2489,13 @@ msgid "Global Variable" msgstr "Globální proměnná" msgid "3D Engine" -msgstr "3D Engine" +msgstr "3D engine" msgid "2D Physics" -msgstr "2D Fyzika" +msgstr "2D fyzika" msgid "3D Physics" -msgstr "3D Fyzika" +msgstr "3D fyzika" msgid "Navigation" msgstr "Navigace" @@ -2331,7 +2504,7 @@ msgid "XR" msgstr "XR" msgid "RenderingDevice" -msgstr "Vykreslovač" +msgstr "RenderingDevice" msgid "OpenGL" msgstr "OpenGL" @@ -2352,19 +2525,20 @@ msgid "WOFF2 Fonts" msgstr "Fonty WOFF2" msgid "SIL Graphite Fonts" -msgstr "Fonty SIL Grafite" +msgstr "Fonty SIL Graphite" msgid "Multi-channel Signed Distance Field Font Rendering" -msgstr "Vícekanálové SDF zobrazování fontů" +msgstr "" +"Vykreslování fontů pomocí vícekanálového pole vzdáleností se znaménkem (MSDF)" msgid "3D Nodes as well as RenderingServer access to 3D features." -msgstr "Přístup 3D Uzlů a RenderingServeru k 3D funkcím." +msgstr "Přístup 3D uzlů a RenderingServeru k 3D funkcím." msgid "2D Physics nodes and PhysicsServer2D." -msgstr "Uzly 2D Fyziky a PhysicsServer2D." +msgstr "Uzly 2D fyziky a PhysicsServer2D." msgid "3D Physics nodes and PhysicsServer3D." -msgstr "Uzly 3D Fyziky a PhysicsServer3D." +msgstr "Uzly 3D fyziky a PhysicsServer3D." msgid "Navigation, both 2D and 3D." msgstr "Navigace, jak 2D, tak i 3D." @@ -2376,12 +2550,11 @@ msgid "" "RenderingDevice based rendering (if disabled, the OpenGL back-end is " "required)." msgstr "" -"Vykreslování založené na RenderingDevice (pokud je zakázáno, je vyžadován " -"OpenGL back-end)." +"Vykreslování založené na RenderingDevice (je-li zakázáno, je vyžadován OpenGL " +"back-end)." msgid "OpenGL back-end (if disabled, the RenderingDevice back-end is required)." -msgstr "" -"OpenGL back-end (pokud je zakázán, je vyžadován back-end RenderingDevice)." +msgstr "OpenGL back-end (je-li zakázán, je vyžadován back-end RenderingDevice)." msgid "Vulkan back-end of RenderingDevice." msgstr "Back-end Vulkan pro RenderingDevice." @@ -2390,16 +2563,16 @@ msgid "" "Fallback implementation of Text Server\n" "Supports basic text layouts." msgstr "" -"Záložní implementace Text Serveru\n" -"Podporuje základní rozložení textu." +"Záložní implementace textového serveru\n" +"Podporuje základní rozvržení textu." msgid "" "Text Server implementation powered by ICU and HarfBuzz libraries.\n" "Supports complex text layouts, BiDi, and contextual OpenType font features." msgstr "" -"Implementace Text Serveru založená na knihovnách ICU a HarfBuzz.\n" -"Podporuje komplexní textová rozložení, BiDi a vlastnosti kontextuálních " -"OpenType fontů." +"Implementace textového serveru založená na knihovnách ICU a HarfBuzz.\n" +"Podporuje komplexní textová rozvržení, obousměrný text (BiDi) a kontextuální " +"vlastnosti OpenType fontů." msgid "" "TrueType, OpenType, Type 1, and WOFF1 font format support using FreeType " @@ -2415,8 +2588,8 @@ msgid "" "SIL Graphite smart font technology support (supported by Advanced Text Server " "only)." msgstr "" -"Podpora SIL Graphite smart font technology (podporováno pouze Advanced Text " -"Server)." +"Podpora technologie chytrých fontů SIL Graphite (podporováno pouze pokročilým " +"textovým serverem)." msgid "" "Multi-channel signed distance field font rendering support using msdfgen " @@ -2430,7 +2603,7 @@ msgid "General Features:" msgstr "Obecné funkce:" msgid "Text Rendering and Font Options:" -msgstr "Vykreslování textu a možnosti nastavení fontů:" +msgstr "Vykreslování textu a možnosti fontů:" msgid "Reset the edited profile?" msgstr "Resetovat upravený profil?" @@ -2443,14 +2616,14 @@ msgstr "Vytvořit nový profil?" msgid "This will scan all files in the current project to detect used classes." msgstr "" -"Budou prohledány všechny soubory aktuálního projektu pro nalezení použitých " +"Budou prohledány všechny soubory aktuálního projektu pro objevení použitých " "tříd." msgid "Nodes and Classes:" msgstr "Uzly a třídy:" msgid "File '%s' format is invalid, import aborted." -msgstr "Formát souboru '%s' je neplatný, import zrušen." +msgstr "Formát souboru '%s' je neplatný, import přerušen." msgid "Error saving profile to path: '%s'." msgstr "Chyba při ukládání profilu do cesty: '%s '." @@ -2468,19 +2641,19 @@ msgid "Reset to Defaults" msgstr "Obnovit výchozí" msgid "Detect from Project" -msgstr "Zjistit z projektu" +msgstr "Objevit z projektu" msgid "Actions:" msgstr "Akce:" msgid "Configure Engine Compilation Profile:" -msgstr "Konfigurace vybraného kompilačního profilu Enginu:" +msgstr "Konfigurace kompilačního profilu enginu:" msgid "Please Confirm:" msgstr "Potvrďte prosím:" msgid "Engine Compilation Profile" -msgstr "Profil Kompilace Enginu" +msgstr "Kompilační profil enginu" msgid "Load Profile" msgstr "Načíst profil" @@ -2489,10 +2662,10 @@ msgid "Export Profile" msgstr "Exportovat profil" msgid "Forced Classes on Detect:" -msgstr "Forced Classed při Objevení:" +msgstr "Vynucené třídy při objevení:" msgid "Edit Compilation Configuration Profile" -msgstr "Úprava Kompilačního Konfiguračního Profilu" +msgstr "Upravit konfigurační profil kompilace" msgid "" "Failed to execute command \"%s\":\n" @@ -2522,26 +2695,32 @@ msgstr "[prázdné]" msgid "[unsaved]" msgstr "[neuloženo]" +msgid "Open the %s dock." +msgstr "Otevřít dok %s." + +msgid "Focus on the %s dock." +msgstr "Zaměřit dok %s." + msgid "%s - Godot Engine" msgstr "%s - Godot Engine" msgid "Move this dock right one tab." -msgstr "Posunout panel o jednu záložku doprava." +msgstr "Posunout dok o jednu záložku doprava." msgid "Move this dock left one tab." -msgstr "Posunout panel o jednu záložku doleva." +msgstr "Posunout dok o jednu záložku doleva." msgid "Dock Position" msgstr "Pozice doku" msgid "Make Floating" -msgstr "Oddokovat" +msgstr "Změnit v plovoucí" msgid "Make this dock floating." msgstr "Otevřít jako plovoucí dok." msgid "Move to Bottom" -msgstr "Posunout dolů" +msgstr "Přesunout dolů" msgid "Move this dock to the bottom panel." msgstr "Přesunout tento dok na spodní panel." @@ -2550,7 +2729,7 @@ msgid "Close this dock." msgstr "Zavřít tento dok." msgid "3D Editor" -msgstr "3D Editor" +msgstr "3D editor" msgid "Script Editor" msgstr "Editor skriptů" @@ -2562,16 +2741,19 @@ msgid "Scene Tree Editing" msgstr "Úpravy stromu scény" msgid "Node Dock" -msgstr "Panel uzlů" +msgstr "Dok uzlů" msgid "FileSystem Dock" -msgstr "Souborový systém" +msgstr "Dok souborového systému" msgid "Import Dock" -msgstr "Importovat panel" +msgstr "Dok importu" msgid "History Dock" -msgstr "Panel historie" +msgstr "Dok historie" + +msgid "Game View" +msgstr "Zobrazení hry" msgid "Allows to view and edit 3D scenes." msgstr "Umožňuje prohlížet a upravovat 3D scény." @@ -2580,7 +2762,7 @@ msgid "Allows to edit scripts using the integrated script editor." msgstr "Umožňuje upravovat skripty pomocí integrovaného editoru skriptů." msgid "Provides built-in access to the Asset Library." -msgstr "Poskytuje integrovaný přístup ke Knihovně balíčků." +msgstr "Poskytuje integrovaný přístup ke knihovně zdrojů." msgid "Allows editing the node hierarchy in the Scene dock." msgstr "Umožňuje upravovat hierarchii uzlů v doku scény." @@ -2597,12 +2779,15 @@ msgid "" "Allows to configure import settings for individual assets. Requires the " "FileSystem dock to function." msgstr "" -"Umožňuje konfigurovat nastavení importu pro jednotlivé zdroje. Pro svou " -"funkci vyžaduje dok Souborový systém." +"Umožňuje konfigurovat nastavení importu pro jednotlivé zdroje. Aby fungoval, " +"vyžaduje dok Souborový systém." msgid "Provides an overview of the editor's and each scene's undo history." msgstr "Poskytuje přehled historie vracení změn editoru a jednotlivých scén." +msgid "Provides tools for selecting and debugging nodes at runtime." +msgstr "Poskytuje nástroje pro výběr a ladění uzlů při běhu programu." + msgid "(current)" msgstr "(aktuální)" @@ -2681,14 +2866,38 @@ msgid "New profile name:" msgstr "Název nového profilu:" msgid "Godot Feature Profile" -msgstr "Godot feature profil" +msgstr "Profil funkcí Godotu" msgid "Import Profile(s)" -msgstr "Importovat profil(y)" +msgstr "Importovat profily" msgid "Manage Editor Feature Profiles" msgstr "Spravovat profily funkcí editoru" +msgid "Project initialization" +msgstr "Inicializace projektu" + +msgid "Scanning file structure..." +msgstr "Prohledávání struktury souborů..." + +msgid "Loading global class names..." +msgstr "Načítání názvů globálních tříd..." + +msgid "Verifying GDExtensions..." +msgstr "Ověřování GDExtension rozšíření..." + +msgid "Creating autoload scripts..." +msgstr "Vytváření autoload skriptů..." + +msgid "Initializing plugins..." +msgstr "Inicializace zásuvných modulů..." + +msgid "Starting file scan..." +msgstr "Spouštení prohledávání souborů..." + +msgid "Scanning actions..." +msgstr "Prohledávání akcí..." + msgid "Some extensions need the editor to restart to take effect." msgstr "Pro projevení změn v některých rozšířeních je nutné restartovat editor." @@ -2699,7 +2908,16 @@ msgid "Save & Restart" msgstr "Uložit a restartovat" msgid "ScanSources" -msgstr "Sken zdrojů" +msgstr "Prohledávání zdrojů" + +msgid "Registering global classes..." +msgstr "Registrace globálních tříd..." + +msgid "Updating scripts documentation" +msgstr "Aktualizace dokumentace skriptů" + +msgid "Updating Scene Groups" +msgstr "Aktualizace skupin scén" msgid "" "There are multiple importers for different types pointing to file %s, import " @@ -2711,17 +2929,32 @@ msgstr "" msgid "(Re)Importing Assets" msgstr "(Re)Importování assetů" +msgid "Preparing files to reimport..." +msgstr "Příprava souborů pro opětovný import..." + +msgid "Executing pre-reimport operations..." +msgstr "Provádění operací před opětovným importem..." + msgid "Import resources of type: %s" -msgstr "Importovat zdroje typu: %s" +msgstr "Import zdrojů typu: %s" + +msgid "Finalizing Asset Import..." +msgstr "Dokončování importu zdrojů..." + +msgid "Executing post-reimport operations..." +msgstr "Provádění operací po opětovném importu..." + +msgid "Copying files..." +msgstr "Kopírování souborů..." msgid "This method supports a variable number of arguments." -msgstr "Tato metoda podporuje proměnný počet argumentů." +msgstr "Tato metoda podporuje proměnlivý počet argumentů." msgid "" "This method is called by the engine.\n" "It can be overridden to customize built-in behavior." msgstr "" -"Tato metoda je volaná enginem.\n" +"Tato metoda je volána enginem.\n" "Lze ji přepsat pro změnu vestavěného chování." msgid "" @@ -2738,11 +2971,15 @@ msgstr "" "Tato metoda nepotřebuje ke svému volání instanci objektu.\n" "Lze ji zavolat přimo použitím jména třídy." +msgid "Code snippet copied to clipboard." +msgstr "Úryvek kódu zkopírován do schránky." + msgid "No return value." msgstr "Žádná návratová hodnota." msgid "This value is an integer composed as a bitmask of the following flags." -msgstr "Tato hodnota je celé číslo složené jako bitmaska následujících vlajek." +msgstr "" +"Tato hodnota je celé číslo složené jako bitmaska následujících příznaků." msgid "Deprecated" msgstr "Zastaralé" @@ -2772,7 +3009,7 @@ msgid "Operator Descriptions" msgstr "Popisy operátorů" msgid "This method may be changed or removed in future versions." -msgstr "Tato metoda může být změněna nebo odstraněna v budoucích verzích." +msgstr "Tato metoda může být v budoucích verzích změněna nebo odstraněna." msgid "This constructor may be changed or removed in future versions." msgstr "Tento konstruktor může být v budoucích verzích změněn nebo odstraněn." @@ -2781,40 +3018,40 @@ msgid "This operator may be changed or removed in future versions." msgstr "Tento operátor může být v budoucích verzích změněn nebo odstraněn." msgid "Error codes returned:" -msgstr "Vráceny chybové kódy:" +msgstr "Návratové chybové kódy:" msgid "There is currently no description for this method." -msgstr "Momentálně zde není žádný popis této metody." +msgstr "Momentálně neexistuje žádný popis této metody." msgid "There is currently no description for this constructor." -msgstr "Momentálně zde není žádný popis tohoto konstruktoru." +msgstr "Momentálně neexistuje žádný popis tohoto konstruktoru." msgid "There is currently no description for this operator." -msgstr "Momentálně neexistuje žádný popis pro tento operátor." +msgstr "Momentálně neexistuje žádný popis tohoto operátoru." msgid "" "There is currently no description for this method. Please help us by " "[color=$color][url=$url]contributing one[/url][/color]!" msgstr "" -"Momentálně neexistuje žádný popis pro tuto metodu. Prosím pomozte nám tím, že " -"ho [color=$color][url=$url]vytvoříte[/url][/color]!" +"Momentálně neexistuje žádný popis této metody. Pomozte nám prosím tím, že ho " +"[color=$color][url=$url]vytvoříte[/url][/color]!" msgid "" "There is currently no description for this constructor. Please help us by " "[color=$color][url=$url]contributing one[/url][/color]!" msgstr "" -"Momentálně neexistuje žádný popis pro tento konstruktor. Prosím pomozte nám " +"Momentálně neexistuje žádný popis tohoto konstruktoru. Pomozte nám prosím " "tím, že ho [color=$color][url=$url]vytvoříte[/url][/color]!" msgid "" "There is currently no description for this operator. Please help us by " "[color=$color][url=$url]contributing one[/url][/color]!" msgstr "" -"Momentálně neexistuje žádný popis pro tento operátor. Prosím pomozte nám tím, " -"že ho[color=$color][url=$url]vytvoříte[/url][/color]!" +"Momentálně neexistuje žádný popis tohoto operátoru. Pomozte nám prosím tím, " +"že ho [color=$color][url=$url]vytvoříte[/url][/color]!" msgid "Top" -msgstr "Horní" +msgstr "Začátek" msgid "Class:" msgstr "Třída:" @@ -2832,14 +3069,14 @@ msgid "Description" msgstr "Popis" msgid "There is currently no description for this class." -msgstr "Momentálně neexistuje popis pro tuto třídu." +msgstr "Momentálně neexistuje žádný popis této třídy." msgid "" "There is currently no description for this class. Please help us by " "[color=$color][url=$url]contributing one[/url][/color]!" msgstr "" -"Momentálně neexistuje žádný popis pro tuto třídu. Prosím pomozte nám tím, že " -"ho [color=$color][url=$url]vytvoříte[/url][/color]!" +"Momentálně neexistuje žádný popis této třídy. Pomozte nám prosím tím, že ho " +"[color=$color][url=$url]vytvoříte[/url][/color]!" msgid "Note:" msgstr "Poznámka:" @@ -2887,51 +3124,54 @@ msgstr "Ikony" msgid "Styles" msgstr "Styly" +msgid "This theme property may be changed or removed in future versions." +msgstr "" +"Tato vlastnost motivu může být v budoucích verzích změněna nebo odstraněna." + msgid "There is currently no description for this theme property." -msgstr "Momentálně zde není žádný popis pro tuto vlastnost motivu." +msgstr "Momentálně neexistuje žádný popis této vlastnosti motivu." msgid "" "There is currently no description for this theme property. Please help us by " "[color=$color][url=$url]contributing one[/url][/color]!" msgstr "" -"V současné době neexistuje žádný popis pro tuto vlastnost motivu. Prosím " -"pomozte nám tím, že ho[color=$color][url=$url]vytvoříte[/url][/color]!" +"Momentálně neexistuje žádný popis této vlastnosti motivu. Pomozte nám prosím " +"tím, že ho [color=$color][url=$url]vytvoříte[/url][/color]!" msgid "This signal may be changed or removed in future versions." -msgstr "Tento signál může být změněn nebo odstraněn v budoucích verzích." +msgstr "Tento signál může být v budoucích verzích změněn nebo odstraněn." msgid "There is currently no description for this signal." -msgstr "Momentálně neexistuje popis pro tento signál." +msgstr "Momentálně neexistuje žádný popis tohoto signálu." msgid "" "There is currently no description for this signal. Please help us by " "[color=$color][url=$url]contributing one[/url][/color]!" msgstr "" -"Momentálně neexistuje žádný popis pro tento signál. Prosím pomozte nám tím, " -"že ho [color=$color][url=$url]vytvoříte[/url][/color]!" +"Momentálně neexistuje žádný popis tohoto signálu. Pomozte nám prosím tím, že " +"ho [color=$color][url=$url]vytvoříte[/url][/color]!" msgid "Enumerations" msgstr "Výčty" msgid "This enumeration may be changed or removed in future versions." -msgstr "Výčet je označen jako zastaralý. Bude odebrán v budoucích verzích." +msgstr "Tento výčet může být v budoucích verzích změněn nebo odstraněn." msgid "This constant may be changed or removed in future versions." -msgstr "" -"Konstanta je označena jako zastaralá. Bude odebrána v budoucích verzích." +msgstr "Tato konstanta může být v budoucích verzích změněna nebo odstraněna." msgid "Annotations" msgstr "Anotace" msgid "There is currently no description for this annotation." -msgstr "Momentálně neexistuje popis pro tuto anotaci." +msgstr "Momentálně neexistuje žádný popis této anotace." msgid "" "There is currently no description for this annotation. Please help us by " "[color=$color][url=$url]contributing one[/url][/color]!" msgstr "" -"Momentálně neexistuje žádný popis pro tuto anotaci. Prosím pomozte nám tím, " -"že ho [color=$color][url=$url]vytvoříte[/url][/color]!" +"Momentálně neexistuje žádný popis této anotace. Pomozte nám prosím tím, že ho " +"[color=$color][url=$url]vytvoříte[/url][/color]!" msgid "Property Descriptions" msgstr "Popisy vlastností" @@ -2940,36 +3180,40 @@ msgid "(value)" msgstr "(hodnota)" msgid "This property may be changed or removed in future versions." -msgstr "" -"Vlastnost je označena jako zastaralá. Může být změněna nebo odebrána v " -"budoucích verzích." +msgstr "Tato vlastnost může být v budoucích verzích změněna nebo odstraněna." msgid "There is currently no description for this property." -msgstr "Momentálně zde není žádný popis pro tuto vlastnost." +msgstr "Momentálně neexistuje žádný popis této vlastnosti." msgid "" "There is currently no description for this property. Please help us by " "[color=$color][url=$url]contributing one[/url][/color]!" msgstr "" -"V současné době neexistuje žádný popis pro tuto vlastnost. Prosím pomozte nám " -"tím, že ho[color=$color][url=$url]vytvoříte[/url][/color]!" +"Momentálně neexistuje žádný popis této vlastnosti. Pomozte nám prosím tím, že " +"ho [color=$color][url=$url]vytvoříte[/url][/color]!" msgid "" "[b]Note:[/b] The returned array is [i]copied[/i] and any changes to it will " "not update the original property value. See [%s] for more details." msgstr "" "[b]Poznámka:[/b] Navracené pole je [i]kopírováno[/i], jeho změny tudíž " -"neovlivní původní hodnotu vlastnosti. Viz [%s] pro více informací." +"neovlivní původní hodnotu vlastnosti. Pro více informací viz [%s]." msgid "Editor" msgstr "Editor" msgid "Click to copy." -msgstr "Klikněte pro zkopírování." +msgstr "Kliknutím zkopírujete." + +msgid "Click to open in browser." +msgstr "Kliknutím otevřete v prohlížeci." msgid "No description available." msgstr "Není dostupný popis." +msgid "This annotation may be changed or removed in future versions." +msgstr "Tato anotace může být v budoucích verzích změněna nebo odstraněna." + msgid "Show in FileSystem" msgstr "Zobrazit v souborovém systému" @@ -2979,12 +3223,24 @@ msgstr "Otevřít ve správci souborů" msgid "Class" msgstr "Třída" +msgid "Enumeration" +msgstr "Výčet" + msgid "Constant" msgstr "Konstanta" +msgid "Metadata" +msgstr "Metadata" + +msgid "Setting" +msgstr "Nastavení" + msgid "Property" msgstr "Vlastnost" +msgid "Internal Property" +msgstr "Vnitřní vlastnost" + msgid "This property can only be set in the Inspector." msgstr "Tato vlastnost může být nastavena pouze v inspektoru." @@ -3000,14 +3256,41 @@ msgstr "Signál" msgid "Annotation" msgstr "Anotace" +msgid "Local Constant" +msgstr "Místní konstanta" + +msgid "Local Variable" +msgstr "Místní proměnná" + +msgid "This variable may be changed or removed in future versions." +msgstr "Tato proměnná může být v budoucích verzích změněna nebo odstraněna." + +msgid "TextFile" +msgstr "Textový soubor" + msgid "File" msgstr "Soubor" +msgid "Directory" +msgstr "Adresář" + +msgid "Invalid UID" +msgstr "Neplatné UID" + +msgid "This UID does not point to any valid Resource." +msgstr "Toto UID neukazuje na žádný platný zdroj." + +msgid "Invalid path" +msgstr "Neplatná cesta" + +msgid "This path does not exist." +msgstr "Tato cesta neexistuje." + msgid "%d match." msgstr "%d shoda." msgid "%d matches." -msgstr "%d shody." +msgstr "%d shod." msgid "Constructor" msgstr "Konstruktor" @@ -3025,7 +3308,7 @@ msgid "Show Hierarchy" msgstr "Zobrazit hierarchii" msgid "Display All" -msgstr "Zobrazit všechny" +msgstr "Zobrazit vše" msgid "Classes Only" msgstr "Pouze třídy" @@ -3060,22 +3343,40 @@ msgstr "Typ člena" msgid "Keywords" msgstr "Klíčová slova" +msgid "Matches the \"%s\" keyword." +msgstr "Odpovídá klíčovému slovu \"%s\"." + msgid "This member is marked as deprecated." msgstr "Tento člen je označen jako zastaralý." msgid "This member is marked as experimental." msgstr "Tento člen je označen jako experimentální." +msgid "Unfavorite Property" +msgstr "Odebrat vlastnost z oblíbených" + +msgid "Make this property be put back at its original place." +msgstr "Vrátit tuto vlastnost na původní místo." + +msgid "Favorite Property" +msgstr "Přidat vlastnost k oblíbeným" + +msgid "Make this property be placed at the top for all objects of this class." +msgstr "Umístit tuto vlastnost na začátek pro všechny objekty této třídy." + msgid "Pin Value" msgstr "Připnout hodnotu" msgid "Pin Value [Disabled because '%s' is editor-only]" -msgstr "Připnout hodnotu [zakázáno, '%s' je pouze pro editor]" +msgstr "Připnout hodnotu [Zakázáno, '%s' je pouze pro editor]" msgid "Pinning a value forces it to be saved even if it's equal to the default." msgstr "" "Připnutí hodnoty vynutí její uložení, i když bude shodná s výchozí hodnotou." +msgid "Unfavorite All" +msgstr "Odebrat vše z oblíbených" + msgid "(%d change)" msgid_plural "(%d changes)" msgstr[0] "(%d změna)" @@ -3092,7 +3393,7 @@ msgid "Move element %d to position %d in property array with prefix %s." msgstr "Přesunout prvek %d na pozici %d v poli vlastností s prefixem %s." msgid "Clear Property Array with Prefix %s" -msgstr "Vymazat pole vlastností s prefixem %s" +msgstr "Promazat pole vlastností s prefixem %s" msgid "Resize Property Array with Prefix %s" msgstr "Změnit velikost pole vlastností s prefixem %s" @@ -3113,7 +3414,7 @@ msgid "Insert New After" msgstr "Vložit nový za" msgid "Clear Array" -msgstr "Vyprázdnit pole" +msgstr "Promazat pole" msgid "Resize Array..." msgstr "Změnit velikost pole..." @@ -3143,10 +3444,10 @@ msgid "Remove metadata %s" msgstr "Odstranit metadata %s" msgid "Pinned %s" -msgstr "Připnuté %s" +msgstr "Připnuto %s" msgid "Unpinned %s" -msgstr "Nepřipnuté %s" +msgstr "Odepnuto %s" msgid "Add metadata %s" msgstr "Přidat metadata %s" @@ -3155,37 +3456,37 @@ msgid "Favorites" msgstr "Oblíbené" msgid "Copy Value" -msgstr "Zkopírovat hodnotu" +msgstr "Kopírovat hodnotu" msgid "Paste Value" msgstr "Vložit hodnotu" msgid "Copy Property Path" -msgstr "Zkopírovat cestu k vlastnosti" +msgstr "Kopírovat cestu k vlastnosti" msgid "Creating Mesh Previews" -msgstr "Vytváření náhledu modelu" +msgstr "Vytváření náhledů sítí" msgid "Thumbnail..." msgstr "Náhled..." msgid "Select existing layout:" -msgstr "Vybrat existující rozložení:" +msgstr "Vyberte existující rozvržení:" msgid "Or enter new layout name" -msgstr "Nebo zadejte nový název rozložení" +msgstr "Nebo zadejte nový název rozvržení" msgid "Changed Locale Language Filter" -msgstr "Upravený filtr lokalizace jazyka" +msgstr "Změněn filtr jazyka lokalizace" msgid "Changed Locale Script Filter" -msgstr "Upravený filtr lokalizace skriptu" +msgstr "Změněn filtr písma lokalizace" msgid "Changed Locale Country Filter" -msgstr "Upravený filtr lokalizace státu" +msgstr "Změněn filtr státu lokalizace" msgid "Changed Locale Filter Mode" -msgstr "Změněn režim filtru pro nastavení jazyka" +msgstr "Změněn režim filtru lokalizace" msgid "[Default]" msgstr "[Výchozí]" @@ -3200,7 +3501,7 @@ msgid "Show Selected Locales Only" msgstr "Zobrazit pouze vybrané jazyky" msgid "Edit Filters" -msgstr "Editovat filtry" +msgstr "Upravit filtry" msgid "Language:" msgstr "Jazyk:" @@ -3229,7 +3530,7 @@ msgid "Filter Messages" msgstr "Filtrovat zprávy" msgid "Clear Output" -msgstr "Vymazat výstup" +msgstr "Promazat výstup" msgid "Copy Selection" msgstr "Kopírovat výběr" @@ -3239,37 +3540,40 @@ msgid "" msgstr "Sloučit duplicitní zprávy do jednoho záznamu. Zobrazuje počet výskytů." msgid "Focus Search/Filter Bar" -msgstr "Zaostřit na pole vyhledávání/filtrování" +msgstr "Zaměřit pole vyhledávání/filtrování" msgid "Toggle visibility of standard output messages." -msgstr "Změnit viditelnost standardních výstupních zpráv." +msgstr "Přepnout viditelnost standardních výstupních zpráv." msgid "Toggle visibility of errors." -msgstr "Změnit viditelnost chyb." +msgstr "Přepnout viditelnost chyb." msgid "Toggle visibility of warnings." -msgstr "Změnit viditelnost varování." +msgstr "Přepnout viditelnost varování." msgid "Toggle visibility of editor messages." -msgstr "Změnit viditelnost zpráv z editoru." +msgstr "Přepnout viditelnost zpráv editoru." msgid "Native Shader Source Inspector" -msgstr "Nativní prohlížeč zdrojových kódů shaderů" +msgstr "Inspektor zdrojového kódu nativních shaderů" msgid "Unnamed Project" msgstr "Nepojmenovaný projekt" +msgid "Recovery Mode is enabled. Editor functionality has been restricted." +msgstr "Režim obnovy je aktivní. Funkčnost editoru byla omezena." + msgid "" "Spins when the editor window redraws.\n" "Update Continuously is enabled, which can increase power usage. Click to " "disable it." msgstr "" "Otáčí se při překreslování okna editoru.\n" -"Je zapnuta funkce Aktualizovat průběžně, která může zvýšit spotřebu energie. " -"Kliknutím ji zakážete." +"Je povolena možnost Aktualizovat průběžně, která může zvýšit spotřebu " +"energie. Kliknutím ji zakážete." msgid "Spins when the editor window redraws." -msgstr "Točí se, když se okno editoru překresluje." +msgstr "Otáčí se při překreslování okna editoru." msgid "Imported resources can't be saved." msgstr "Importované zdroje nelze uložit." @@ -3284,15 +3588,15 @@ msgid "" "This resource can't be saved because it does not belong to the edited scene. " "Make it unique first." msgstr "" -"Tento zdroj nemůže být uložen, protože nenáleží editované scéně. Nejdříve z " -"něj udělejte unikátní zdroj." +"Tento zdroj nelze uložit, protože nenáleží upravované scéně. Nejprve jej " +"udělejte jedinečný." msgid "" "This resource can't be saved because it was imported from another file. Make " "it unique first." msgstr "" -"Tento zdroj nemůže být uložen, protože je importován z jiného souboru. " -"Nejdříve z něj udělejte unikátní zdroj." +"Tento zdroj nelze uložit, protože byl importován z jiného souboru. Nejprve " +"jej udělejte jedinečný." msgid "Save Resource As..." msgstr "Uložit zdroj jako..." @@ -3301,7 +3605,7 @@ msgid "Can't open file for writing:" msgstr "Nelze otevřít soubor pro zápis:" msgid "Requested file format unknown:" -msgstr "Neznámý formát požadovaného souboru:" +msgstr "Požadovaný formát souboru je neznámý:" msgid "Error while saving." msgstr "Chyba při ukládání." @@ -3310,32 +3614,32 @@ msgid "Can't open file '%s'. The file could have been moved or deleted." msgstr "Nelze otevřít soubor '%s'. Soubor mohl být přesunut nebo smazán." msgid "Error while parsing file '%s'." -msgstr "Chyba při rozboru souboru: '%s'." +msgstr "Chyba při rozboru souboru '%s'." msgid "Scene file '%s' appears to be invalid/corrupt." -msgstr "Zdá se, že soubor scény '%s' je chybný nebo poškozený." +msgstr "Soubor scény '%s' se zdá být neplatný nebo poškozený." msgid "Missing file '%s' or one of its dependencies." -msgstr "Chybějící soubor '%s' nebo jeho závislosti." +msgstr "Chybí soubor '%s' nebo některá z jeho závislostí." msgid "" "File '%s' is saved in a format that is newer than the formats supported by " "this version of Godot, so it can't be opened." msgstr "" -"Soubor '%s' je uložen ve formátu novějším než formáty podporované touto verzí " -"Godotu, a proto není možné ho otevřít." +"Soubor '%s' nelze otevřít, protože je uložen v novějším formátu, než který " +"podporuje tato verze Godotu." msgid "Error while loading file '%s'." -msgstr "Chyba při načítání souboru %s." +msgstr "Chyba při načítání souboru '%s'." msgid "Saving Scene" msgstr "Ukládání scény" msgid "Analyzing" -msgstr "Analyzuji" +msgstr "Probíhá analýza" msgid "Creating Thumbnail" -msgstr "Vytvářím náhled" +msgstr "Vytváření miniatury" msgid "This operation can't be done without a tree root." msgstr "Tuto operaci nelze provést bez kořenového uzlu stromu." @@ -3344,15 +3648,15 @@ msgid "" "This scene can't be saved because there is a cyclic instance inclusion.\n" "Please resolve it and then attempt to save again." msgstr "" -"Tato scéna nemůže být uložena kvůli cyklickému vložení instancí.\n" -"Vyřešte ho a zkuste znovu." +"Tuto scénu nelze uložit, protože obsahuje cyklické vložení instancí.\n" +"Vyřešte ho prosím a zkuste scénu uložit znovu." msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" -"Scénu se nepodařilo uložit. Některé závislosti (instance nebo dědičnost) " -"pravděpodobně nemusí být splněny." +"Scénu se nepodařilo uložit. Pravděpodobně nelze splnit závislosti (instance " +"nebo dědičnost)." msgid "Save scene before running..." msgstr "Uložit scénu před spuštěním..." @@ -3373,7 +3677,7 @@ msgid "Apply MeshInstance Transforms" msgstr "Použít transformace MeshInstance" msgid "Can't load MeshLibrary for merging!" -msgstr "Není možné načíst MeshLibrary pro sloučení!" +msgstr "Nelze načíst MeshLibrary pro sloučení!" msgid "Error saving MeshLibrary!" msgstr "Chyba při ukládání MeshLibrary!" @@ -3382,49 +3686,49 @@ msgid "" "An error occurred while trying to save the editor layout.\n" "Make sure the editor's user data path is writable." msgstr "" -"Při pokusu o uložení rozložení editoru došlo k chybě.\n" -"Ujistěte se, že cesta k uživatelským datům editoru je zapisovatelná." +"Při pokusu o uložení rozvržení editoru došlo k chybě.\n" +"Ujistěte se, že je cesta k uživatelským datům editoru zapisovatelná." msgid "" "Default editor layout overridden.\n" "To restore the Default layout to its base settings, use the Delete Layout " "option and delete the Default layout." msgstr "" -"Výchozí rozložení editoru bylo přepsáno.\n" -"Chcete-li obnovit výchozí rozložení do výchozího nastavení, použijte možnost " -"Odstranit rozložení a odstraňte výchozí rozložení." +"Výchozí rozvržení editoru bylo přepsáno.\n" +"Chcete-li obnovit původní nastavení výchozího rozvržení, použijte možnost " +"Smazat rozvržení a odstraňte výchozí rozvržení." msgid "Layout name not found!" -msgstr "Název rozložení nebyl nalezen!" +msgstr "Název rozvržení nebyl nalezen!" msgid "Restored the Default layout to its base settings." -msgstr "Obnoveno výchozí rozložení na základní nastavení." +msgstr "Obnoveno původní nastavení výchozího rozvržení." msgid "This object is marked as read-only, so it's not editable." -msgstr "Tento objekt slouží pouze pro čtení, proto ho nelze upravit." +msgstr "Tento objekt slouží pouze pro čtení, takže jej nelze upravovat." msgid "" "This resource belongs to a scene that was imported, so it's not editable.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." msgstr "" -"Tento zdroj patří scéně, která byla importována, takže ho nelze upravit.\n" -"Přečtěte si, prosím, dokumentaci týkající se importování scén, abyste lépe " -"pochopili tento proces." +"Tento zdroj patří scéně, která byla importována, takže jej nelze upravovat.\n" +"Pro lepší porozumění tomuto procesu si prosím přečtěte dokumentaci o importu " +"scén." msgid "" "This resource belongs to a scene that was instantiated or inherited.\n" "Changes to it must be made inside the original scene." msgstr "" -"Tento zdroj patří scéně, která byla instancovaná nebo poděděná.\n" -"Jeho změny musí být provedeny v originální scéně." +"Tento zdroj patří scéně, která byla instancována nebo zděděna.\n" +"Jeho změny musí být provedeny v původní scéně." msgid "" "This resource was imported, so it's not editable. Change its settings in the " "import panel and then re-import." msgstr "" -"Tento zdroj byl importován, takže jej nelze měnit. Změňte jeho nastavení v " -"panelu Import a znovu ho importujte." +"Tento zdroj byl importován, takže jej nelze upravovat. Změňte jeho nastavení " +"v panelu Import a poté jej znovu importujte." msgid "" "This scene was imported, so changes to it won't be kept.\n" @@ -3433,9 +3737,9 @@ msgid "" "understand this workflow." msgstr "" "Tato scéna byla importována, takže její změny nebudou zachovány.\n" -"Instancování nebo zdědění umožní provádět její změny.\n" -"Přečtěte si, prosím, dokumentaci týkající se importování scén, abyste lépe " -"pochopili tento proces." +"Instancování nebo dědění scény vám umožní provádět změny.\n" +"Pro lepší porozumění tomuto procesu si prosím přečtěte dokumentaci o importu " +"scén." msgid "Changes may be lost!" msgstr "Změny mohou být ztraceny!" @@ -3447,30 +3751,33 @@ msgid "Open Base Scene" msgstr "Otevřít základní scénu" msgid "%s no longer exists! Please specify a new save location." -msgstr "%s již neexistuje! Použijte jinou cestu pro uložení." +msgstr "%s již neexistuje! Zadejte nové umístění pro uložení." msgid "" "The current scene has no root node, but %d modified external resource(s) and/" "or plugin data were saved anyway." msgstr "" "Aktuální scéna nemá kořenový uzel, ale přesto bylo uloženo %d upravených " -"externích zdrojů nebo pluginů." +"externích zdrojů nebo zásuvných modulů." msgid "" "A root node is required to save the scene. You can add a root node using the " "Scene tree dock." msgstr "" -"Pro uložení scény je nutný kořenový uzel. Kořenový uzel můžete přidat pomocí " -"doku Strom scény." +"Pro uložení scény je vyžadován kořenový uzel. Kořenový uzel můžete přidat " +"pomocí doku Strom scény." msgid "Save Scene As..." msgstr "Uložit scénu jako..." +msgid "Pack Project as ZIP..." +msgstr "Zabalit projekt jako ZIP..." + msgid "Can't undo while mouse buttons are pressed." msgstr "Nelze vrátit zpět, když jsou stisknuta tlačítka myši." msgid "Nothing to undo." -msgstr "Není co vracet." +msgstr "Není co vrátit zpět." msgid "Global Undo: %s" msgstr "Globální zpět: %s" @@ -3488,16 +3795,16 @@ msgid "Nothing to redo." msgstr "Není co opakovat." msgid "Global Redo: %s" -msgstr "Globálně opakovat: %s" +msgstr "Globální znovu: %s" msgid "Remote Redo: %s" -msgstr "Vzdáleně opakovat: %s" +msgstr "Vzdálené znovu: %s" msgid "Scene Redo: %s" -msgstr "Opakovat ve scéně: %s" +msgstr "Znovu ve scéně: %s" msgid "Can't reload a scene that was never saved." -msgstr "Nelze načíst scénu, která nebyla nikdy uložena." +msgstr "Nelze znovu načíst scénu, která nebyla nikdy uložena." msgid "Reload Saved Scene" msgstr "Znovu načíst uloženou scénu" @@ -3522,7 +3829,7 @@ msgid "Save modified resources before closing?" msgstr "Uložit změněné zdroje před zavřením?" msgid "Save changes to the following scene(s) before reloading?" -msgstr "Uložit změny následujících scén před znovunačtením scény?" +msgstr "Uložit změny následujících scén před opětovným načtením?" msgid "Save changes to the following scene(s) before quitting?" msgstr "Uložit změny následujících scén před ukončením?" @@ -3534,112 +3841,159 @@ msgid "" "This option is deprecated. Situations where refresh must be forced are now " "considered a bug. Please report." msgstr "" -"Tato opce je označená jako deprecated. Stavy kdy obnovení musí být nuceno " -"jsou již považovány za chyby enginu. Prosíme nahláste toto jako bug." +"Tato možnost je zastaralá. Situace, kdy musí být obnovení vynuceno, jsou nyní " +"považovány za chybu. Prosím nahlaste toto jako bug." msgid "Pick a Main Scene" -msgstr "Vybrat hlavní scénu" +msgstr "Zvolit hlavní scénu" msgid "This operation can't be done without a scene." msgstr "Tuto operaci nelze provést bez scény." msgid "Export Mesh Library" -msgstr "Exportovat Mesh Library" +msgstr "Exportovat knihovnu sítí" + +msgid "Quick Open Color Palette..." +msgstr "Rychle otevřít paletu barev..." msgid "Unable to enable addon plugin at: '%s' parsing of config failed." msgstr "" -"Nelze povolit rozšiřující plugin: '%s' parsování konfigurace se nezdařilo." +"Nelze povolit doplňkový zásuvný modul na: '%s', rozbor konfigurace selhal." 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: '%s'." +msgstr "Nelze najít pole skriptu pro doplňkový zásuvný modul na: '%s'." msgid "Unable to load addon script from path: '%s'." -msgstr "Nelze načíst skript rozšíření z cesty: '%s'." +msgstr "Nelze načíst doplňkový skript z cesty: '%s'." msgid "" "Unable to load addon script from path: '%s'. This might be due to a code " "error in that script.\n" "Disabling the addon at '%s' to prevent further errors." msgstr "" -"Nelze načíst skript rozšíření z cesty: '%s'. Zdá se, že se v kódu nachází " -"chyba.\n" -"Deaktivujte rozšíření '%s' abyste předešli dalším chybám." +"Nelze načíst doplňkový skript z cesty: '%s'. To může být způsobeno chybou v " +"jeho kódu.\n" +"Doplněk na '%s' byl deaktivován, aby se zabránilo dalším chybám." msgid "" "Unable to load addon script from path: '%s'. Base type is not 'EditorPlugin'." msgstr "" -"Nepodařilo se načíst addon skript z cesty: '%s'. Základní typ není " -"'EditorPlugin'." +"Nelze načíst doplňkový skript z cesty: '%s'. Základní typ není 'EditorPlugin'." msgid "Unable to load addon script from path: '%s'. Script is not in tool mode." msgstr "" -"Nelze načíst skript rozšíření z cesty: '%s'. Skript není v režimu nástroje." +"Nelze načíst doplňkový skript z cesty: '%s'. Skript není v režimu nástroje." msgid "" "Scene '%s' was automatically imported, so it can't be modified.\n" "To make changes to it, a new inherited scene can be created." msgstr "" -"Scéna '%s' byla automaticky importována, takže nemůže být modifikována.\n" -"Abyste ji mohli změnit, je možné vytvořit novou zděděnou scénu." +"Scéna '%s' byla automaticky importována, takže ji nelze měnit.\n" +"Chcete-li v ní provádět úpravy, můžete vytvořit novou zděděnou scénu." msgid "" "Error loading scene, it must be inside the project path. Use 'Import' to open " "the scene, then save it inside the project path." msgstr "" -"Chyba načtení scény, scéna musí být v adresáři projektu. Použijte 'Import' " -"pro otevření scény a uložte ji v adresáři projektu." +"Chyba při načítání scény, scéna musí být v adresáři projektu. Pro otevřený " +"scény použijte 'Import' uložte ji v adresáři projektu." msgid "Scene '%s' has broken dependencies:" -msgstr "Scéna '%s' má rozbité závislosti:" +msgstr "Scéna '%s' má poškozené závislosti:" msgid "" "Multi-window support is not available because the `--single-window` command " "line argument was used to start the editor." msgstr "" -"Podpora více oken není dostupná, protože editor byl spuštěn s parametrem " +"Podpora více oken není dostupná, protože editor byl spuštěn s argumentem " "příkazového řádku `--single-window`." msgid "" "Multi-window support is not available because the current platform doesn't " "support multiple windows." msgstr "" -"Podpora více oken není dostupná, protože stávající platforma nepodporuje více " +"Podpora více oken není dostupná, protože aktuální platforma nepodporuje více " "oken." msgid "" "Multi-window support is not available because Interface > Editor > Single " "Window Mode is enabled in the editor settings." msgstr "" -"Podpora více oken není dostupná, protože Rozhraní > Editor > Mód jednoho okna " -"je zapnut v nastaveních editoru." +"Podpora více oken není dostupná, protože je v Nastavení editoru povoleno: " +"Rozhraní > Editor > Režim jednoho okna." msgid "" "Multi-window support is not available because Interface > Multi Window > " "Enable is disabled in the editor settings." msgstr "" -"Podpora více oken není dostupná, jelikož je v Nastavení editoru zakázáno " +"Podpora více oken není dostupná, protože je v Nastavení editoru zakázáno " "Rozhraní > Více oken > Povolit." msgid "Clear Recent Scenes" -msgstr "Vymazat nedávné scény" +msgstr "Promazat nedávné scény" msgid "There is no defined scene to run." msgstr "Není určena žádná scéna ke spuštění." +msgid "Loading editor" +msgstr "Načítání editoru" + +msgid "Loading editor layout..." +msgstr "Načítání rozvržení editoru..." + +msgid "Loading docks..." +msgstr "Načítání doků..." + +msgid "Reopening scenes..." +msgstr "Opětovné otevírání scén..." + +msgid "Loading central editor layout..." +msgstr "Načítání rozvržení středu editoru..." + +msgid "Loading plugin window layout..." +msgstr "Načítání rozvržení okna zásuvných modulů..." + +msgid "Editor layout ready." +msgstr "Rozvržení editoru připraveno." + +msgid "" +"No main scene has ever been defined. Select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Žádná hlavní scéna nebyla definována. Chcete ji vybrat?\n" +"Můžete ji později změnit v \"Nastavení projektu\", v kategorii 'Aplikace'." + +msgid "" +"Selected scene '%s' does not exist. Select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Vybraná scéna '%s' neexistuje. Vybrat platnou?\n" +"Můžete ji později změnit v \"Nastavení projektu\", v kategorii 'Aplikace'." + +msgid "" +"Selected scene '%s' is not a scene file. Select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Vybraná scéna '%s' není soubor scény. Vybrat platnou?\n" +"Můžete ji později změnit v \"Nastavení projektu\", v kategorii 'Aplikace'." + msgid "Save Layout..." -msgstr "Uložit rozložení..." +msgstr "Uložit rozvržení..." msgid "Delete Layout..." -msgstr "Odstranit rozložení..." +msgstr "Smazat rozvržení..." msgid "Default" msgstr "Výchozí" msgid "Save Layout" -msgstr "Uložit rozložení" +msgstr "Uložit rozvržení" msgid "Delete Layout" -msgstr "Odstranit rozložení" +msgstr "Smazat rozvržení" msgid "This scene was never saved." msgstr "Tato scéna nebyla nikdy uložena." @@ -3687,26 +4041,26 @@ msgstr "dalších %d souborů" msgid "" "Unable to write to file '%s', file in use, locked or lacking permissions." msgstr "" -"Není možné zapisovat do souboru '%s', soubor je používán, uzamčen nebo chybí " -"oprávnění." +"Nelze zapisovat do souboru '%s', protože je používán, uzamčen nebo chybí " +"potřebná oprávnění." msgid "Preparing scenes for reload" -msgstr "Připráva scén k opětovnému načtení" +msgstr "Příprava scén pro opětovné načtení" msgid "Analyzing scene %s" -msgstr "Analyzuji scénu %s" +msgstr "Probíhá analýza scény %s" msgid "Preparation done." -msgstr "Příprava provedena." +msgstr "Příprava dokončena." msgid "Scenes reloading" -msgstr "Opětovné načtení scén" +msgstr "Opětovné načítání scén" msgid "Reloading..." msgstr "Opětovné načítání..." msgid "Reloading done." -msgstr "Opětovné načtení dokončeno." +msgstr "Opětovné načítání dokončeno." msgid "" "Changing the renderer requires restarting the editor.\n" @@ -3716,24 +4070,24 @@ msgid "" "- Mobile platforms: %s\n" "- Web platform: gl_compatibility" msgstr "" -"Změna používaného renderovacího modulu vyžaduje restartování editoru.\n" +"Změna vykreslovacího nástroje vyžaduje restart editoru.\n" "\n" -"Zvolení Uložit a restartovat změní způsob vykreslování na:\n" +"Volbou Uložit a restartovat změníte způsob vykreslování na:\n" "- Desktopové platformy: %s\n" "- Mobilní platformy: %s\n" -"- Webové platformy: gl_compatibility" +"- Webová platforma: gl_compatibility" msgid "Forward+" msgstr "Forward+" msgid "Mobile" -msgstr "Mobilní" +msgstr "Mobile" msgid "Compatibility" -msgstr "Kompatibilita" +msgstr "Compatibility" msgid "(Overridden)" -msgstr "(přepsáno)" +msgstr "(Přepsáno)" msgid "Lock Selected Node(s)" msgstr "Uzamknout vybrané uzly" @@ -3745,7 +4099,7 @@ msgid "Group Selected Node(s)" msgstr "Seskupit vybrané uzly" msgid "Ungroup Selected Node(s)" -msgstr "Zrušit seskupení vybraných uzlů" +msgstr "Oddělit vybrané uzlů" msgid "Pan View" msgstr "Přesunout pohled" @@ -3769,16 +4123,16 @@ msgid "Copy Text" msgstr "Kopírovat text" msgid "Next Scene Tab" -msgstr "Další karta scény" +msgstr "Další záložka scény" msgid "Previous Scene Tab" -msgstr "Předchozí karta scény" +msgstr "Předchozí záložka scény" msgid "Focus FileSystem Filter" msgstr "Zaměřit filtr souborového systému" msgid "Command Palette" -msgstr "Příkazová paleta" +msgstr "Paleta příkazů" msgid "New Scene" msgstr "Nová scéna" @@ -3811,7 +4165,7 @@ msgid "Export As..." msgstr "Exportovat jako..." msgid "MeshLibrary..." -msgstr "Knihovna modelů..." +msgstr "Knihovna sítí..." msgid "Close Scene" msgstr "Zavřít scénu" @@ -3838,7 +4192,7 @@ msgid "Export..." msgstr "Exportovat..." msgid "Install Android Build Template..." -msgstr "Nainstalovat kompilační šablonu pro Android..." +msgstr "Nainstalovat šablonu sestavení pro Android..." msgid "Open User Data Folder" msgstr "Otevřít složku s daty uživatele" @@ -3853,7 +4207,10 @@ msgid "Engine Compilation Configuration Editor..." msgstr "Editor konfigurace kompilace enginu..." msgid "Upgrade Mesh Surfaces..." -msgstr "Vylepšit povrchy modelů..." +msgstr "Aktualizovat povrchy sítí..." + +msgid "Upgrade UIDs..." +msgstr "Aktualizovat UID..." msgid "Reload Current Project" msgstr "Znovu načíst aktuální projekt" @@ -3865,16 +4222,16 @@ msgid "Command Palette..." msgstr "Paleta příkazů..." msgid "Editor Docks" -msgstr "Panely editoru" +msgstr "Doky editoru" msgid "Editor Layout" -msgstr "Rozložení editoru" +msgstr "Rozvržení editoru" msgid "Take Screenshot" -msgstr "Vytvořit snímek obrazovky" +msgstr "Pořídit snímek obrazovky" msgid "Screenshots are stored in the user data folder (\"user://\")." -msgstr "Snímky obrazovky jsou uložené ve složce uživatele (\"user://\")." +msgstr "Snímky obrazovky jsou uloženy ve složce dat uživatele (\"user://\")." msgid "Toggle Fullscreen" msgstr "Přepnout režim celé obrazovky" @@ -3892,7 +4249,7 @@ msgid "Manage Editor Features..." msgstr "Spravovat funkce editoru..." msgid "Manage Export Templates..." -msgstr "Spravovat šablony exportu..." +msgstr "Spravovat exportní šablony..." msgid "Configure FBX Importer..." msgstr "Konfigurovat importér FBX..." @@ -3901,7 +4258,7 @@ msgid "Help" msgstr "Nápověda" msgid "Search Help..." -msgstr "Vyhledat pomoc..." +msgstr "Hledat v dokumentaci..." msgid "Online Documentation" msgstr "Online dokumentace" @@ -3913,10 +4270,10 @@ msgid "Community" msgstr "Komunita" msgid "Copy System Info" -msgstr "Zkopírovat informace o systému" +msgstr "Kopírovat informace o systému" msgid "Copies the system info as a single-line text into the clipboard." -msgstr "Kopíruje informace o systému jako jeden řádek textu do schránky." +msgstr "Zkopíruje informace o systému do schránky jako jeden řádek textu." msgid "Report a Bug" msgstr "Nahlásit chybu" @@ -3925,13 +4282,13 @@ msgid "Suggest a Feature" msgstr "Navrhnout funkci" msgid "Send Docs Feedback" -msgstr "Odeslat zpětnou vazbu dokumentace" +msgstr "Odeslat zpětnou vazbu k dokumentaci" msgid "About Godot..." msgstr "O aplikaci Godot..." msgid "Support Godot Development" -msgstr "Podpořte projekt Godot" +msgstr "Podpořit projekt Godot" msgid "" "Choose a rendering method.\n" @@ -3941,12 +4298,12 @@ msgid "" "selected here.\n" "- On the web platform, the Compatibility rendering method is always used." msgstr "" -"Zvolte renderovací modul.\n" +"Zvolte metodu vykreslování.\n" "\n" "Poznámky:\n" -"- Na mobilních platformách se zapnutou metodou Forward+ je použita " -"renderovací metoda Mobile.\n" -"- Na webových platformách se vždy používá metoda Compatibility." +"- Zvolíte-li zde Forward+, bude na mobilních platformách použita metoda " +"Mobile.\n" +"- Na webové platformě se vždy použije metoda Compatibility." msgid "Update Continuously" msgstr "Aktualizovat průběžně" @@ -3955,13 +4312,13 @@ msgid "Update When Changed" msgstr "Akualizovat při změně" msgid "Hide Update Spinner" -msgstr "Schovat aktualizační kolečko" +msgstr "Skrýt indikátor aktualizace" msgid "FileSystem" msgstr "Souborový systém" msgid "Toggle FileSystem Bottom Panel" -msgstr "Přepnout spodní panel souborového systému" +msgstr "Přepnout spodní panel Souborový systém" msgid "Inspector" msgstr "Inspektor" @@ -3976,14 +4333,15 @@ msgid "Output" msgstr "Výstup" msgid "Toggle Output Bottom Panel" -msgstr "Přepnout spodní panel výstupu" +msgstr "Přepnout spodní panel Výstup" msgid "Don't Save" msgstr "Neukládat" msgid "Android build template is missing, please install relevant templates." msgstr "" -"Chybí kompilační šablona pro Android, prosím nainstalujte vhodnou šablonu." +"Chybějící šablona sestavení pro Android, nainstalujte prosím příslušné " +"šablony." msgid "Manage Templates" msgstr "Spravovat šablony" @@ -4009,6 +4367,21 @@ msgstr "Exportovat knihovnu" msgid "Open & Run a Script" msgstr "Otevřít a spustit skript" +msgid "Files have been modified outside Godot" +msgstr "Soubory byly změněny mimo Godot" + +msgid "The following files are newer on disk:" +msgstr "Následující soubory jsou na disku novější:" + +msgid "What action should be taken?" +msgstr "Jaká akce by měla být provedena?" + +msgid "Reload from disk" +msgstr "Znovu načíst z disku" + +msgid "Ignore external changes" +msgstr "Ignorovat externí změny" + msgid "Create/Override Version Control Metadata..." msgstr "Vytvořit/Přepsat metadata pro správu verzí..." @@ -4016,25 +4389,28 @@ msgid "Version Control Settings..." msgstr "Nastavení správy verzí..." msgid "New Inherited" -msgstr "Nové zděděné" +msgstr "Nová zděděná" msgid "Load Errors" -msgstr "Načíst chyby" +msgstr "Chyby načítání" msgid "Select Current" msgstr "Vybrat aktuální" msgid "Open 2D Editor" -msgstr "Otevřít 2D Editor" +msgstr "Otevřít 2D editor" msgid "Open 3D Editor" -msgstr "Otevřít 3D Editor" +msgstr "Otevřít 3D editor" msgid "Open Script Editor" -msgstr "Otevřít Editor skriptů" +msgstr "Otevřít editor skriptů" + +msgid "Open Game View" +msgstr "Otevřít zobrazení hry" msgid "Open Asset Library" -msgstr "Otevřít knihovnu assetů" +msgstr "Otevřít knihovnu zdrojů" msgid "Open the next Editor" msgstr "Otevřít další editor" @@ -4049,7 +4425,7 @@ msgid "Warning!" msgstr "Varování!" msgid "Edit Text:" -msgstr "Editovat text:" +msgstr "Upravit text:" msgid "On" msgstr "Zapnout" @@ -4058,7 +4434,7 @@ msgid "Renaming layer %d:" msgstr "Přejmenování vrstvy %d:" msgid "No name provided." -msgstr "Nebyl poskytnut žádný název." +msgstr "Nebyl zadán žádný název." msgid "Name contains invalid characters." msgstr "Název obsahuje neplatné znaky." @@ -4094,10 +4470,10 @@ msgid "" "determined uniquely, but the result of Quaternion->Euler can be multi-" "existent." msgstr "" -"Dočasné Eulerovy úhly nebudou uloženy v objektu s výchozí hodnotou. Namísto " -"toho bude uložen jako Kvaternion s nevratnou konverzí.\n" -"Důvodem je, že výsledek konverze Euler->Kvaternion je jednoznačný, ale " -"možných výsledků konverze Kvaternion->Euler může být několik." +"Dočasné Eulerovy úhly nebudou uloženy v objektu s původní hodnotou. Namísto " +"toho budou uloženy jako Quaternion s nevratnou konverzí.\n" +"Důvodem je, že výsledek konverze Euler->Quaternion je jednoznačný, ale " +"možných výsledků konverze Quaternion->Euler může být několik." msgid "Temporary Euler" msgstr "Dočasný Euler" @@ -4126,7 +4502,7 @@ msgstr "" "Nelze vytvořit ViewportTexture v uzlu Texture2D, protože textura nebude " "vázána na scénu.\n" "Použijte namísto něj uzel Texture2DParameter a nastavte texturu v záložce " -"\"Vlastnosti shaderu\"." +"\"Parametry shaderu\"." msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" @@ -4143,7 +4519,7 @@ msgid "" msgstr "" "Na tomto zdroji nelze vytvořit ViewportTexture, protože není pro scénu " "lokální.\n" -"Upravte jeho vlastnost \"lokální pro scénu\" (i všech zdrojů, které jej " +"Upravte jeho vlastnost 'místní pro scénu' (a také všech zdrojů, které jej " "obsahují, až po uzel)." msgid "Pick a Viewport" @@ -4161,14 +4537,20 @@ msgstr "Nová hodnota:" msgid "(Nil) %s" msgstr "(Nic) %s" +msgid "%s%s (size %d)" +msgstr "%s%s (velikost %d)" + +msgid "%s (size %d)" +msgstr "%s (velikost %d)" + msgid "Size:" msgstr "Velikost:" msgid "Remove Item" -msgstr "Odstranit položku" +msgstr "Odebrat položku" msgid "Add Key/Value Pair" -msgstr "Vložte pár klíč/hodnota" +msgstr "Vložit dvojici klíč/hodnota" msgid "Localizable String (Nil)" msgstr "Lokalizovatelný řetězec (Nic)" @@ -4190,16 +4572,16 @@ msgstr "" "(%s)." msgid "Quick Load..." -msgstr "Rychlé načtení..." +msgstr "Načíst rychle..." msgid "Opens a quick menu to select from a list of allowed Resource files." -msgstr "Otevře rychlou nabídku pro výběr ze seznamu povolených souborů Zdrojů." +msgstr "Otevře rychlou nabídku pro výběr ze seznamu povolených souborů zdrojů." msgid "Load..." msgstr "Načíst..." msgid "Inspect" -msgstr "Zkontrolovat" +msgstr "Prozkoumat" msgid "Make Unique" msgstr "Udělat unikátní" @@ -4228,24 +4610,55 @@ msgstr "Rozšířit skript..." msgid "New Shader..." msgstr "Nový shader..." +msgid "No Remote Deploy export presets configured." +msgstr "Nejsou nastaveny žádné exportní profily pro vzdálené nasazení." + +msgid "Remote Deploy" +msgstr "Vzdálené nasazení" + 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 "" -"Nebyla nalezena žádná spustilená předloha pro exportování na tuto platformu.\n" -"Přidejte prosím spustitelnou předlohu v nabídce Export, nebo definujte " -"existující předlohu jako spustitelnou." +"Nebyl nalezen žádný spustitelný exportní profil pro tuto platformu.\n" +"Přidejte prosím spustitelný profil v nabídce Export nebo definujte existující " +"profil jako spustitelný." + +msgid "" +"Warning: The CPU architecture \"%s\" is not active in your export preset.\n" +"\n" +msgstr "" +"Varování: Architektura CPU \"%s\" není ve vašem profilu exportu aktivní.\n" +"\n" + +msgid "Run \"Remote Deploy\" anyway?" +msgstr "Přesto spustit \"Vzdálené nasazení\"?" + +msgid "Deploy to First Device in List" +msgstr "Nasadit na první zařízení v seznamu" + +msgid "Deploy to Second Device in List" +msgstr "Nasadit na druhé zařízení v seznamu" + +msgid "Deploy to Third Device in List" +msgstr "Nasadit na třetí zařízení v seznamu" + +msgid "Deploy to Fourth Device in List" +msgstr "Nasadit na čtvrté zařízení v seznamu" msgid "Project Run" msgstr "Běh projektu" msgid "Write your logic in the _run() method." -msgstr "Napište svůj kód v _run() metodě." +msgstr "Napište svůj kód do metody _run()." msgid "The current scene already has a root node." msgstr "Aktuální scéna již má kořenový uzel." +msgid "Advanced settings are always shown when searching." +msgstr "Pokročilá nastavení jsou při hledání vždy zobrazena." + msgid "Edit Built-in Action: %s" msgstr "Upravit vestavěnou akci: %s" @@ -4255,9 +4668,15 @@ msgstr "Upravit zkratku: %s" msgid "None" msgstr "Žádné" +msgid "Primary" +msgstr "Hlavní" + msgid "Common" msgstr "Společné" +msgid "Event %d" +msgstr "Událost %d" + msgid "Editor Settings" msgstr "Nastavení editoru" @@ -4286,7 +4705,7 @@ msgid "Failed to check for updates. Response code: %d." msgstr "Selhala kontrola aktualizací. Kód odpovědi: %d." msgid "Failed to parse version JSON." -msgstr "Selhalo parsování JSONu verzí." +msgstr "Selhal rozbor JSONu verzí." msgid "Received JSON data is not a valid version array." msgstr "Přijatá data JSONu nejsou platným polem verzí." @@ -4295,22 +4714,22 @@ msgid "Update available: %s." msgstr "Dostupná aktualizace: %s." msgid "Offline mode, update checks disabled." -msgstr "Offline mód, kontrola aktualizací zakázána." +msgstr "Režim offline, kontrola aktualizací zakázána." msgid "Update checks disabled." msgstr "Kontrola aktualizací zakázána." msgid "An error has occurred. Click to try again." -msgstr "Došlo k chybě. Klikněte a zkuste to znovu." +msgstr "Došlo k chybě. Kliknutím zkusíte znovu." msgid "Click to open download page." msgstr "Kliknutím otevřete stránku pro stažení." msgid "Left Stick Left, Joystick 0 Left" -msgstr "Levá páčka doleva, Joystick 0 doleva" +msgstr "Levá páčka doleva, joystick 0 doleva" msgid "Left Stick Right, Joystick 0 Right" -msgstr "Levá páčka doprava, Joystick 0 doprava" +msgstr "Levá páčka doprava, joystick 0 doprava" msgid "Left Stick Up, Joystick 0 Up" msgstr "Levá páčka nahoru, joystick 0 nahoru" @@ -4382,7 +4801,7 @@ msgid "Device" msgstr "Zařízení" msgid "Listening for Input" -msgstr "Naslouchání vstupu" +msgstr "Poslouchání vstupu" msgid "Filter by Event" msgstr "Filtrovat podle události" @@ -4391,7 +4810,7 @@ msgid "Can't get filesystem access." msgstr "Nelze získat přístup k souborovému systému." msgid "Failed to get Info.plist hash." -msgstr "Nezdařilo se získat hash pro Info.plist." +msgstr "Nepodařilo se získat hash pro Info.plist." msgid "Invalid Info.plist, no exe name." msgstr "Neplatný Info.plist, žádný název exe." @@ -4403,10 +4822,10 @@ msgid "Invalid Info.plist, can't load." msgstr "Neplatný Info.plist, nelze načíst." msgid "Failed to create \"%s\" subfolder." -msgstr "Nelze vytvořit podsložku \"%s\"." +msgstr "Nepodařilo se vytvořit podsložku \"%s\"." msgid "Failed to extract thin binary." -msgstr "Extrakce plytkého binárního souboru se nezdařila." +msgstr "Extrakce tenkého binárního souboru se nezdařila." msgid "Invalid binary format." msgstr "Neplatný formát binárního souboru." @@ -4415,7 +4834,7 @@ msgid "Already signed!" msgstr "Již podepsáno!" msgid "Failed to process nested resources." -msgstr "Selhalo zpracování vnořených zdrojů." +msgstr "Zpracování vnořených zdrojů se nezdařilo." msgid "Failed to create _CodeSignature subfolder." msgstr "Tvorba podsložky _CodeSignature se nezdařila." @@ -4457,16 +4876,45 @@ msgid "Unknown Error" msgstr "Neznámá chyba" msgid "Export failed with error code %d." -msgstr "Exportování selhalo s chybovým kódem %d." +msgstr "Export selhal s chybovým kódem %d." + +msgid "Patch Creation" +msgstr "Vytváření záplaty (patche)" + +msgid "Could not load patch pack with path \"%s\"." +msgstr "Nepodařilo se načíst balíček záplat z cesty \"%s\"." msgid "Storing File: %s" -msgstr "Ukládám soubor: %s" +msgstr "Ukládání souboru: %s" msgid "Storing File:" -msgstr "Ukládám soubor:" +msgstr "Ukládání souboru:" msgid "No export template found at the expected path:" -msgstr "Na očekávané cestě nebyla nalezena žádná šablona exportu:" +msgstr "Na očekávané cestě nebyla nalezena žádná šablona pro export:" + +msgid "" +"Using user provided text server data, text display in the exported project " +"might be broken if export template was built with different ICU version!" +msgstr "" +"Používají se uživatelem dodaná data textového serveru. Zobrazení textu nemusí " +"v exportovaném projektu fungovat správně, pokud byla šablona exportu " +"vytvořena s jinou verzí ICU!" + +msgid "" +"Using editor embedded text server data, text display in the exported project " +"might be broken if export template was built with different ICU version!" +msgstr "" +"Používají se editorem vložená data textového serveru. Zobrazení textu nemusí " +"v exportovaném projektu fungovat správně, pokud byla šablona exportu " +"vytvořena s jinou verzí ICU!" + +msgid "" +"Missing text server data, text display in the exported project might be " +"broken!" +msgstr "" +"Chybějící data textového serveru, zobrazení textu nemusí v exportovaném " +"projektu fungovat správně!" msgid "ZIP Creation" msgstr "Vyvtoření ZIP" @@ -4475,7 +4923,7 @@ msgid "Could not open file to read from path \"%s\"." msgstr "Nelze otevřít soubor pro čtení z cesty \"%s\"." msgid "Packing" -msgstr "Balím" +msgstr "Vytváření balíčku" msgid "Save PCK" msgstr "Uložit PCK" @@ -4486,6 +4934,9 @@ msgstr "Nelze vytvořit soubor \"%s\"." msgid "Failed to export project files." msgstr "Export souborů projektu selhal." +msgid "No files or changes to export." +msgstr "Žádné soubory nebo změny pro export." + msgid "Can't open file for writing at path \"%s\"." msgstr "Nelze otevřít soubor pro zápis: \"%s\"." @@ -4504,18 +4955,21 @@ msgstr "Nelze otevřít soubor pro čtení: \"%s\"." msgid "Save ZIP" msgstr "Uložit ZIP" +msgid "Failed to move temporary file \"%s\" to \"%s\"." +msgstr "Nepodařilo se přesunout dočasný soubor \"%s\" do \"%s\"." + msgid "Custom debug template not found." -msgstr "Vlastní ladící šablona nebyla nalezena." +msgstr "Vlastní šablona pro ladění nebyla nalezena." msgid "Custom release template not found." -msgstr "Vlastní šablona k vydání nebyla nalezena." +msgstr "Vlastní šablona pro vydání nebyla nalezena." msgid "" "A texture format must be selected to export the project. Please select at " "least one texture format." msgstr "" -"Formát textury musí být vybrán před exportem projektu. Prosím vyberte alespoň " -"jeden formát textury." +"Formát textur musí být vybrán před exportem projektu. Prosím vyberte alespoň " +"jeden formát textur." msgid "Prepare Template" msgstr "Připravit šablonu" @@ -4535,6 +4989,12 @@ msgstr "Vložení PCK" msgid "On 32-bit exports the embedded PCK cannot be bigger than 4 GiB." msgstr "Při 32-bitovém exportu nemůže být vložené PCK větší než 4 GiB." +msgid "GDExtension" +msgstr "GDExtension" + +msgid "Failed to copy shared object \"%s\"." +msgstr "Nepodařilo se zkopírovat sdílený objekt \"%s\"." + msgid "Plugin \"%s\" is not supported on \"%s\"" msgstr "Plugin \"%s\" není podporován pro \"%s\"" @@ -4595,7 +5055,7 @@ msgstr "Chyba při získávání seznamu zrcadlových serverů." msgid "Error parsing JSON with the list of mirrors. Please report this issue!" msgstr "" -"Chyba při parsování JSONu se seznamem zrcadlových serverů. Nahlaste prosím " +"Chyba při rozboru JSONu se seznamem zrcadlových serverů. Nahlaste prosím " "tento problém!" msgid "Best available mirror" @@ -4618,7 +5078,7 @@ msgid "Can't Resolve" msgstr "Nelze dohledat" msgid "Connecting..." -msgstr "Připojuji..." +msgstr "Připojování..." msgid "Can't Connect" msgstr "Nelze se připojit" @@ -4636,7 +5096,7 @@ msgid "Connection Error" msgstr "Chyba připojení" msgid "TLS Handshake Error" -msgstr "Chyba TLS Handshake" +msgstr "Chyba TLS inicializace (Handshake)" msgid "Can't open the export templates file." msgstr "Nelze otevřít soubor exportních šablon." @@ -4666,6 +5126,15 @@ msgstr "" msgid "Export templates are missing. Install them from a file." msgstr "Chybí šablony pro export. Nainstalujte je ze souboru." +msgid "Not available in offline mode" +msgstr "Není dostupné v offline režimu" + +msgid "Template downloading is disabled in offline mode." +msgstr "Stahování šablon je v offline režimu zakázáno." + +msgid "No templates for development builds" +msgstr "Žádné šablony pro vývojová sestavení" + msgid "Official export templates aren't available for development builds." msgstr "Oficiální šablony exportu nejsou k dispozici pro vývojová sestavení." @@ -4685,13 +5154,13 @@ msgid "Open Folder" msgstr "Otevřít složku" msgid "Open the folder containing installed templates for the current version." -msgstr "Otevře složku obsahující nainstalované šablony pro aktuální verzi." +msgstr "Otevřít složku obsahující nainstalované šablony pro aktuální verzi." msgid "Uninstall" msgstr "Odinstalovat" msgid "Uninstall templates for the current version." -msgstr "Odinstalování šablon pro aktuální verzi." +msgstr "Odinstalovat šablony pro aktuální verzi." msgid "Download from:" msgstr "Stáhnout z:" @@ -4703,20 +5172,20 @@ msgid "Copy Mirror URL" msgstr "Kopírovat URL zrcadlového serveru" msgid "Download and Install" -msgstr "Stáhnout a instalovat" +msgstr "Stáhnout a nainstalovat" msgid "" "Download and install templates for the current version from the best possible " "mirror." msgstr "" -"Stáhnutí a instalace šablon pro aktuální verzi z nejlepšího možného " +"Stáhnout a nainstalovat šablony pro aktuální verzi z nejlepšího možného " "zrcadlového serveru." msgid "Install from File" msgstr "Instalovat ze souboru" msgid "Install templates from a local file." -msgstr "Instalace šablon z místního souboru." +msgstr "Instalovat šablony z místního souboru." msgid "Cancel the download of the templates." msgstr "Zrušit stahování šablon." @@ -4731,7 +5200,7 @@ msgid "Select Template File" msgstr "Vybrat soubor šablony" msgid "Godot Export Templates" -msgstr "Šablony exportu Godotu" +msgstr "Exportní šablony Godotu" msgid "" "The templates will continue to download.\n" @@ -4743,8 +5212,8 @@ msgstr "" msgid "" "Target platform requires '%s' texture compression. Enable 'Import %s' to fix." msgstr "" -"Cílová platforma vyžaduje kompresi textur '%s'. Povolte 'Import %s' v " -"nastaveních projektu." +"Cílová platforma vyžaduje kompresi textur '%s'. Abyste toto opravili, povolte " +"'Import %s'." msgid "Fix Import" msgstr "Opravit import" @@ -4753,15 +5222,15 @@ msgid "Runnable" msgstr "Spustitelný" msgid "Export the project for all the presets defined." -msgstr "Exportovat projekt pro všechny definované předvolby." +msgstr "Exportovat projekt pro všechny definované profily." msgid "All presets must have an export path defined for Export All to work." msgstr "" -"Pro fungování \"Exportovat vše\" musí mít všechny předvolby definovanou cestu " -"pro export." +"Pro správné fungování \"Exportovat vše\" musí mít všechny profily definovanou " +"cestu pro export." msgid "Delete preset '%s'?" -msgstr "Odstranit předvolbu '%s'?" +msgstr "Odstranit profil '%s'?" msgid "Resources to exclude:" msgstr "Vyloučené zdroje:" @@ -4773,11 +5242,17 @@ msgid "Resources to export:" msgstr "Zdroje k exportu:" msgid "(Inherited)" -msgstr "(zděděno)" +msgstr "(Zděděno)" + +msgid "Delete patch '%s' from list?" +msgstr "Smazat ze seznamu záplatu '%s'?" msgid "Export With Debug" msgstr "Exportovat s laděním" +msgid "Export As Patch" +msgstr "Exportovat jako záplatu" + msgid "%s Export" msgstr "Export pro %s" @@ -4788,7 +5263,7 @@ msgid "Exporting All" msgstr "Exportování všeho" msgid "Presets" -msgstr "Předvolby" +msgstr "Profily" msgid "Add..." msgstr "Přidat..." @@ -4800,9 +5275,8 @@ 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 "" -"Když je zaškrtnuté, bude předvolba k dispozici pro nasazení jedním " -"kliknutím.\n" -"Pouze jedna předvolba na platformě může být označena jako spustitelná." +"Je-li vybráno, bude profil k dispozici pro nasazení jedním kliknutím.\n" +"Pouze jeden profil může být označen jako spustitelný pro danou platformu." msgid "Advanced Options" msgstr "Pokročilé možnosti" @@ -4829,13 +5303,13 @@ msgid "Export selected resources (and dependencies)" msgstr "Exportovat vybrané zdroje (a závislosti)" msgid "Export all resources in the project except resources checked below" -msgstr "Exportovat včechny zdroje projektu, kromě zdrojů zaškrtnutých níže" +msgstr "Exportovat všechny zdroje projektu, kromě zdrojů zaškrtnutých níže" msgid "Export as dedicated server" msgstr "Exportovat jako dedikovaný server" msgid "Export Mode:" -msgstr "Exportní režim:" +msgstr "Režim exportu:" msgid "" "\"Strip Visuals\" will replace the following resources with placeholders:" @@ -4861,9 +5335,18 @@ msgstr "" "Filtry pro vynechání souborů/složek z projektu\n" "(oddělené čárkou, např. *.json, *.txt, docs/*)" +msgid "Patches" +msgstr "Záplaty" + +msgid "Base Packs:" +msgstr "Základní balíčky:" + msgid "Godot Project Pack" msgstr "Balíček projektu Godot" +msgid "Add Pack" +msgstr "Přidat balíček" + msgid "Features" msgstr "Vlastnosti" @@ -4877,10 +5360,10 @@ msgid "Encryption" msgstr "Šifrování" msgid "Encrypt Exported PCK" -msgstr "Zašifrovat exportované PCK soubory" +msgstr "Zašifrovat exportované PCK" msgid "Encrypt Index (File Names and Info)" -msgstr "Zašifrovat index (názvy a informace o souborech)" +msgstr "Zašifrovat rejstřík (názvy a informace o souborech)" msgid "" "Filters to include files/folders\n" @@ -4902,12 +5385,15 @@ msgstr "Neplatný šifrovací klíč (musí být dlouhý 64 hexadecimálních zn msgid "Encryption Key (256-bits as hexadecimal):" msgstr "Šifrovací klíč (256 bitový hexadecimální):" +msgid "Initialization vector seed" +msgstr "Seed vektoru inicializace" + msgid "" "Note: Encryption key needs to be stored in the binary,\n" "you need to build the export templates from source." msgstr "" -"Poznámka: Šifrovací klíč musí být uložený v binárním souboru,\n" -"je nutné vytvořit exportovací šablony ze zdrojového kódu." +"Poznámka: Šifrovací klíč musí být uložený v binárním souboru.\n" +"Musíte sestavit exportní šablony ze zdrojového kódu." msgid "More Info..." msgstr "Více informací..." @@ -4916,7 +5402,7 @@ msgid "Scripts" msgstr "Skripty" msgid "GDScript Export Mode:" -msgstr "Exportní režim GDScript:" +msgstr "Režim exportu GDScriptu:" msgid "Text (easier debugging)" msgstr "Text (jednodušší lazení)" @@ -4944,8 +5430,8 @@ msgid "" "Export the project as a playable build (Godot executable and project data) " "for the selected preset." msgstr "" -"Exportovat projekt jako hratelný soubor (spustitelný soubor a data projektu) " -"pro vybranou předvolbu." +"Exportovat projekt jako hratelný soubor (spustitelný soubor Godotu a data " +"projektu) pro vybraný profil." msgid "Export All" msgstr "Exportovat vše" @@ -4960,13 +5446,13 @@ msgid "ZIP File" msgstr "Soubor ZIP" msgid "Export templates for this platform are missing:" -msgstr "Šablony exportu pro tuto platformu chybí:" +msgstr "Exportní šablony pro tuto platformu chybí:" msgid "Project Export" msgstr "Export projektu" msgid "Manage Export Templates" -msgstr "Spravovat šablony exportu" +msgstr "Spravovat exportní šablony" msgid "Disable FBX2glTF & Restart" msgstr "Deaktivovat FBX2glTF a restartovat" @@ -4981,10 +5467,10 @@ msgid "" msgstr "" "Zrušení tohoto dialogového okna deaktivuje importér FBX2glTF a použije " "importér ufbx.\n" -"FBX2glTF můžete znovu aktivovat v Nastavení Projektu, pod Souborový systém > " +"FBX2glTF můžete znovu aktivovat v Nastavení projektu, pod Souborový systém > " "Import > FBX > Povoleno.\n" "\n" -"Editor bude restartován, jelikož importéry se registrují při spuštění editoru." +"Editor bude restartován, jelikož importéry se registrují při jeho spuštění." msgid "Path to FBX2glTF executable is empty." msgstr "Cesta ke spustitelnému souboru FBX2glTF je prázdná." @@ -4993,7 +5479,9 @@ msgid "Path to FBX2glTF executable is invalid." msgstr "Cesta ke spustitelnému souboru FBX2glTF je neplatná." msgid "Error executing this file (wrong version or architecture)." -msgstr "Chyba při spouštění tohoto souboru (nesprávná verze nebo architektura)." +msgstr "" +"Při spouštění tohoto souboru došlo k chybě (nesprávná verze nebo " +"architektura)." msgid "FBX2glTF executable is valid." msgstr "Spustitelný soubor FBX2glTF je platný." @@ -5007,12 +5495,12 @@ msgid "" "Please download the necessary tool and provide a valid path to the binary:" msgstr "" "FBX2glTF je vyžadováno pro import souborů FBX, pokud používáte FBX2glTF.\n" -"Případně můžete použít ufbx, když vypnete FBX2glTF.\n" +"Když vypnete FBX2glTF, můžete alternativně použít ufbx.\n" "Stáhněte si prosím potřebný nástroj a uveďte platnou cestu k binárnímu " "souboru:" msgid "Click this link to download FBX2glTF" -msgstr "Pro stáhnutí FBX2glTF klikněte na tento odkaz" +msgstr "Kliknutím na tento odkaz FBX2glTF stáhnete" msgid "Browse" msgstr "Procházet" @@ -5020,6 +5508,9 @@ msgstr "Procházet" msgid "Confirm Path" msgstr "Potvrdit cestu" +msgid "Link to: %s" +msgstr "Odkaz na: %s" + msgid "View items as a grid of thumbnails." msgstr "Zobrazit položky jako mřížku náhledů." @@ -5028,7 +5519,7 @@ msgstr "Zobrazit položky jako seznam." msgid "Status: Import of file failed. Please fix file and reimport manually." msgstr "" -"Stav: import souboru selhal. Opravte, prosím, soubor a naimportujte ho znovu " +"Stav: Import souboru selhal. Soubor prosím opravte a naimportujte ho znovu " "ručně." msgid "" @@ -5042,10 +5533,13 @@ msgid "Cannot move a folder into itself." msgstr "Nelze přesunout složku do sebe samé." msgid "Error moving:" -msgstr "Chyba přesouvání:" +msgstr "Chyba při přesouvání:" msgid "Error duplicating:" -msgstr "Chyba duplikování:" +msgstr "Chyba při duplikování:" + +msgid "Error duplicating directory:" +msgstr "Chyba při duplikování adresáře:" msgid "Unable to update dependencies for:" msgstr "Nepodařilo se aktualizovat závislosti pro:" @@ -5055,8 +5549,8 @@ msgid "" "If you want to rename it anyway, use your operating system's file manager." msgstr "" "Tento název souboru začíná tečkou a není tedy pro editor viditelný.\n" -"Pokud ho přece jen chcete přejmenovat, použijte průzkumník souborů svého " -"operačního systému." +"Chcete-li ho přesto přejmenovat, použijte průzkumník souborů operačního " +"systému." msgid "" "This file extension is not recognized by the editor.\n" @@ -5065,13 +5559,16 @@ msgid "" "anymore." msgstr "" "Tato přípona není editorem rozpoznána.\n" -"Pokud chcete soubor přejmenovat, použijte průzkumník souborů vašeho " -"operačního systému.\n" -"Po přejmenování na neznámou příponu, soubor už nebude vidět v editoru." +"Chcete-lit soubor přesto přejmenovat, použijte průzkumník souborů operačního " +"systému.\n" +"Po přejmenování na neznámou příponu nebude soubor nadále zobrazen v editoru." msgid "A file or folder with this name already exists." msgstr "Soubor nebo složka s tímto názvem již existuje." +msgid "Could not create base directory: %s" +msgstr "Nepodařilo se vytvořit základní adresář: %s" + msgid "" "The following files or folders conflict with items in the target location " "'%s':" @@ -5102,14 +5599,21 @@ msgstr "" "external_programs/terminal_emulator_flags` v Nastavení editoru." msgid "Duplicating file:" -msgstr "Duplikace souboru:" +msgstr "Duplikování souboru:" msgid "Duplicating folder:" -msgstr "Duplikace složky:" +msgstr "Duplikování složky:" msgid "Create Folder" msgstr "Vytvořit složku" +msgid "" +"Do you wish to convert these files to %s? (This operation cannot be undone!)" +msgstr "Přejete si tyto soubory převést na %s? (Tuto operaci nelze vzít zpět!)" + +msgid "Could not create folder: %s" +msgstr "Nepodařilo se vytvořit složku: %s" + msgid "New Inherited Scene" msgstr "Nová zděděná scéna" @@ -5170,12 +5674,18 @@ msgstr "Přidat do oblíbených" msgid "Remove from Favorites" msgstr "Odebrat z oblíbených" +msgid "Convert to..." +msgstr "Převést na..." + msgid "Reimport" msgstr "Znovu importovat" msgid "Open in Terminal" msgstr "Otevřít v terminálu" +msgid "Open Folder in Terminal" +msgstr "Otevřít složku v terminálu" + msgid "New Folder..." msgstr "Nová složka..." @@ -5204,10 +5714,10 @@ msgid "Sort by Type (Descending)" msgstr "Seřadit podle typu (sestupně)" msgid "Sort by Last Modified" -msgstr "Seřadit podle poslední změny" +msgstr "Seřadit od naposledy změněných" msgid "Sort by First Modified" -msgstr "Seřadit podle první změny" +msgstr "Seřadit od nejdříve změných" msgid "Copy Path" msgstr "Kopírovat cestu" @@ -5255,16 +5765,16 @@ msgid "Gray" msgstr "Šedá" msgid "Go to previous selected folder/file." -msgstr "Přejít do předchozí složky/souboru." +msgstr "Přejít do předchozí vybrané složky/souboru." msgid "Go to next selected folder/file." msgstr "Přejít do další vybrané složky/souboru." msgid "Re-Scan Filesystem" -msgstr "Znovu skenovat souborový systém" +msgstr "Znovu prohledat souborový systém" msgid "Change Split Mode" -msgstr "Přepnout režim rozdělení" +msgstr "Změnit režim rozdělení" msgid "Filter Files" msgstr "Filtrovat soubory" @@ -5273,8 +5783,8 @@ msgid "" "Scanning Files,\n" "Please Wait..." msgstr "" -"Skenování souborů,\n" -"Prosím, čekejte..." +"Prohledávání souborů,\n" +"Čekejte prosím..." msgid "Overwrite" msgstr "Přepsat" @@ -5285,6 +5795,9 @@ msgstr "Zachovat oba" msgid "Create Script" msgstr "Vytvořit skript" +msgid "Convert" +msgstr "Převést" + msgid "Find in Files" msgstr "Najít v souborech" @@ -5317,10 +5830,13 @@ msgid "Replace in Files" msgstr "Nahradit v souborech" msgid "Replace all (no undo)" -msgstr "Nahradit všechny (nelze vrátit zpět)" +msgstr "Nahradit vše (nelze vrátit zpět)" msgid "Searching..." -msgstr "Hledám..." +msgstr "Hledání..." + +msgid "Remove result" +msgstr "Odstranit výsledek" msgid "%d match in %d file" msgstr "%d shoda v %d souboru" @@ -5338,7 +5854,7 @@ msgid "Invalid group name. It cannot be empty." msgstr "Neplatný název skupiny. Nemůže být prázdný." msgid "A group with the name '%s' already exists." -msgstr "Skupina s názvem \"%s\" již existuje." +msgstr "Skupina s názvem '%s' již existuje." msgid "Group can't be empty." msgstr "Skupina nemůže být prázdná." @@ -5353,7 +5869,7 @@ msgid "Renaming Group References" msgstr "Přejmenování odkazů skupin" msgid "Removing Group References" -msgstr "Odstranění odkazů skupin" +msgstr "Odstraňování odkazů skupin" msgid "Rename Group" msgstr "Přejmenovat skupinu" @@ -5377,10 +5893,10 @@ msgid "Scene Groups" msgstr "Skupiny scény" msgid "This group belongs to another scene and can't be edited." -msgstr "Tato skupina patří jiné scéně a není ji možné editovat." +msgstr "Tato skupina patří jiné scéně a není ji možné upravit." msgid "Copy group name to clipboard." -msgstr "Zkopírovat název skupiny do schránky." +msgstr "Kopírovat název skupiny do schránky." msgid "Global Groups" msgstr "Globální skupiny" @@ -5412,6 +5928,27 @@ msgstr "Přidat novou skupinu." msgid "Filter Groups" msgstr "Filtrovat skupiny" +msgid "" +"Scroll Left\n" +"Hold Ctrl to scroll to the begin.\n" +"Hold Shift to scroll one page." +msgstr "" +"Posunout doleva\n" +"Pro posunutí na začátek podržte Ctrl.\n" +"Pro posunutí o jednu stránku podržte Shift." + +msgid "" +"Scroll Right\n" +"Hold Ctrl to scroll to the end.\n" +"Hold Shift to scroll one page." +msgstr "" +"Posunout doprava\n" +"Pro posunutí na konec podržte Ctrl.\n" +"Pro posunutí o jednu stránku podržte Shift." + +msgid "Pin Bottom Panel Switching" +msgstr "Připnout přepínání spodního panelu" + msgid "Expand Bottom Panel" msgstr "Rozšířit spodní panel" @@ -5452,6 +5989,9 @@ msgstr "" msgid "Select This Folder" msgstr "Vybrat tuto složku" +msgid "Show Package Contents" +msgstr "Zobrazit obsah balíčku" + msgid "All Files" msgstr "Všechny soubory" @@ -5459,7 +5999,7 @@ msgid "Open a File" msgstr "Otevřít soubor" msgid "Open File(s)" -msgstr "Otevřít soubor(y)" +msgstr "Otevřít soubory" msgid "Open a Directory" msgstr "Otevřít složku" @@ -5489,19 +6029,22 @@ msgid "Go Forward" msgstr "Jit dopředu" msgid "Go Up" -msgstr "Jít o úroveň výš" +msgstr "Jít o úroveň výše" msgid "Toggle Hidden Files" -msgstr "Zobrazit skryté soubory" +msgstr "Přepnout skryté soubory" msgid "Toggle Favorite" -msgstr "Zobrazit oblíbené" +msgstr "Přepnout oblíbené" msgid "Toggle Mode" msgstr "Přepnout režim" msgid "Focus Path" -msgstr "Zvýraznit cestu" +msgstr "Zaměřit cestu" + +msgid "Focus Filter" +msgstr "Zaměřit filtr" msgid "Move Favorite Up" msgstr "Přesunout oblíbenou položku nahoru" @@ -5531,11 +6074,20 @@ msgid "Directories & Files:" msgstr "Složky a soubory:" msgid "Toggle the visibility of hidden files." -msgstr "Změnit viditelnost skrytých souborů." +msgstr "Přepnout viditelnost skrytých souborů." + +msgid "Sort files" +msgstr "Seřadit soubory" + +msgid "Toggle the visibility of the filter for file names." +msgstr "Přepnout viditelnost filtru názvů souborů." msgid "Preview:" msgstr "Náhled:" +msgid "Filter:" +msgstr "Filtr:" + msgid "Filter" msgstr "Filtr" @@ -5548,7 +6100,7 @@ msgid "" "Depending on your filesystem configuration, the files will either be moved to " "the system trash or deleted permanently." msgstr "" -"Odebrat vybrané soubory? Z bezpečnostních důvodů lze odtud mazat pouze " +"Odstranit vybrané soubory? Z bezpečnostních důvodů lze odtud mazat pouze " "soubory a prázdné adresáře. (Nelze vrátit zpět.)\n" "V závislosti na konfiguraci souborového systému budou soubory buď přesunuty " "do systémového koše, nebo trvale odstraněny." @@ -5557,13 +6109,52 @@ msgid "No sub-resources found." msgstr "Nebyly nalezeny žádné dílčí zdroje." msgid "Open a list of sub-resources." -msgstr "Otevřete seznam dílčích zdrojů." +msgstr "Otevřít seznam dílčích zdrojů." + +msgid "Search files..." +msgstr "Hledat v souborech..." + +msgid "Select Resource" +msgstr "Vybrat zdroj" + +msgid "Select Scene" +msgstr "Vybrat scénu" + +msgid "Fuzzy Search" +msgstr "Přibližné vyhledávání" + +msgid "Enable fuzzy matching" +msgstr "Povolit přibližnou shodu" + +msgid "Addons" +msgstr "Doplňky" + +msgid "Include files from addons" +msgstr "Zahrnout soubory z doplňků" + +msgid "No files found for this type" +msgstr "Nenalezeny žádné soubory tohoto typu" + +msgid "Start searching to find files..." +msgstr "Začněte hledat soubory..." + +msgid "No results found" +msgstr "Nebyly nalezeny žádné výsledky" + +msgid " (recently opened)" +msgstr " (nedávno otevřené)" + +msgid "Grid view" +msgstr "Mřížka" + +msgid "List view" +msgstr "Seznam" msgid "Play the project." msgstr "Spustit projekt." msgid "Play the edited scene." -msgstr "Spustit upravenou scénu." +msgstr "Spustit upravovanou scénu." msgid "Play a custom scene." msgstr "Přehrát vlastní scénu." @@ -5583,17 +6174,80 @@ msgstr "" "Režim Tvorby filmů je aktivní, ale nebyla zadána žádná cesta k souboru " "filmu.\n" "Výchozí cestu k souboru filmu lze zadat v nastavení projektu v kategorii " -"Editor > Movie Writer.\n" +"Editor > Zapisovač filmů.\n" "Alternativně lze pro spouštění jednotlivých scén přidat do kořenového uzlu " -"metadata řetězec `movie_file`,\n" -"obsahující cestu k souboru filmu, který bude použit pro záznam dané scény." +"metadata řetězec `movie_file`.\n" +"Ten by měl obsahovat cestu k filmovému souboru, který bude použit pro záznam " +"dané scény." msgid "Could not start subprocess(es)!" -msgstr "Nelze spustit subproces(y)!" +msgstr "Nepodařilo se spustit podprocesy!" + +msgid "Recovery Mode is enabled. Disable it to run the project." +msgstr "Je aktivován režim obnovy. Pro spuštění projektu jej deaktivuje." + +msgid "" +"Autostart is enabled for the following profilers, which can have a " +"performance impact:" +msgstr "" +"Pro následující profilery je povolen automatický start, což může mít dopad na " +"výkon:" msgid "Network Profiler" msgstr "Síťový profiler" +msgid "Click to open the first profiler for which autostart is enabled." +msgstr "Kliknutím otevřete první profiler s povoleným automatickým startem." + +msgid "Recovery Mode" +msgstr "Režim obnovy" + +msgid "" +"Godot opened the project in Recovery Mode, which is a special mode that can " +"help recover projects that crash the engine upon initialization. The " +"following features have been temporarily disabled:" +msgstr "" +"Godot otevřel projekt v režimu obnovy, což je speciální režim pro pomoc s " +"obnovou projektů, které při inicializaci způsobují pád enginu. Následující " +"funkce byly dočasně zakázány:" + +msgid "Tool scripts" +msgstr "Nástrojové skripty" + +msgid "Editor plugins" +msgstr "Zásuvné moduly editoru" + +msgid "GDExtension addons" +msgstr "Doplňky GDExtension" + +msgid "Automatic scene restoring" +msgstr "Automatická obnova scén" + +msgid "" +"If the project cannot be opened outside of this mode, then it's very likely " +"any of these components is preventing this project from launching. This mode " +"is intended only for basic editing to troubleshoot such issues, and therefore " +"it is not possible to run a project in this mode." +msgstr "" +"Pokud projekt není možné otevřít mimo tento režim, je velmi pravděpodobné, že " +"jeho spuštění brání některá z těchto komponent. Tento režim je určen pouze " +"pro základní úpravy při odstraňování takových problémů, proto v něm nelze " +"projekt spustit." + +msgid "" +"To disable Recovery Mode, reload the project by pressing the Reload button " +"next to the Recovery Mode banner, or by reopening the project normally." +msgstr "" +"Chcete-li režim obnovy zakázat, načtěte projekt znovu stisknutím tlačítka " +"Znovu načíst vedle pruhu Režim obnovy nebo znovu otevřete projekt běžným " +"způsobem." + +msgid "Disable recovery mode and reload the project." +msgstr "Deaktivujte režim obnovy a znovu načtěte projekt." + +msgid "Recovery Mode is enabled. Click for more details." +msgstr "Je aktivován režim obnovy. Klikněte pro více informací." + msgid "Run the project's default scene." msgstr "Spustit výchozí scénu projektu." @@ -5612,17 +6266,29 @@ msgstr "Zastavit právě běžící projekt." msgid "Stop Running Project" msgstr "Zastavit běžící projekt" +msgid "Run Scene in Regular Mode" +msgstr "Spustit scénu v běžném režimu" + +msgid "Run Scene in XR Mode" +msgstr "Spustit scénu v režimu XR" + msgid "Run the currently edited scene." msgstr "Spustit právě upravovanou scénu." msgid "Run Current Scene" msgstr "Spustit aktuální scénu" +msgid "Run in Regular Mode" +msgstr "Spustit v běžném režimu" + +msgid "Run in XR Mode" +msgstr "Spustit v režimu XR" + msgid "Run a specific scene." -msgstr "Spustit specifickou scénu." +msgstr "Spustit konkrétní scénu." msgid "Run Specific Scene" -msgstr "Spustit specifickou scénu" +msgstr "Spustit konkrétní scénu" msgid "" "Enable Movie Maker mode.\n" @@ -5665,16 +6331,16 @@ msgstr "" "Pro přesnější změny podržte Shift." msgid "No notifications." -msgstr "Žádné notifikace." +msgstr "Žádná oznámení." msgid "Show notifications." -msgstr "Zobrazit notifikace." +msgstr "Zobrazit oznámení." msgid "Silence the notifications." -msgstr "Ztišit notifikace." +msgstr "Ztišit oznámení." msgid "(unknown)" -msgstr "(neznámý)" +msgstr "(neznámé)" msgid "" "Git commit date: %s\n" @@ -5683,6 +6349,15 @@ msgstr "" "Datum Git commitu: %s\n" "Kliknutím zkopírujete informace o verzi." +msgid "" +"The root node of a scene is recommended to not be transformed, since " +"instances of the scene will usually override this. Reset the transform and " +"reload the scene to remove this warning." +msgstr "" +"Doporučuje se kořenový uzel scény netransformovat, protože instance scény " +"tyto změny obvykle přepíší. Chcete-li toto varování odstranit, obnovte " +"transformaci a scénu načtěte znovu." + msgid "Toggle Visible" msgstr "Přepnout viditelnost" @@ -5692,8 +6367,11 @@ msgstr "Odemknout uzel" msgid "Ungroup Children" msgstr "Odskupit potomky" +msgid "Revoke unique name for node \"%s\"?" +msgstr "Odebrat unikátní název uzlu \"%s:\"?" + msgid "Disable Scene Unique Name" -msgstr "Deaktivovat unikátní názvy ve scéně" +msgstr "Deaktivovat unikátní nazev ve scéně" msgid "(Connecting From)" msgstr "(Připojování z)" @@ -5701,6 +6379,16 @@ msgstr "(Připojování z)" msgid "Node configuration warning:" msgstr "Varování konfigurace uzlu:" +msgid "" +"This node can be accessed from anywhere within the scene it belongs to by " +"using the '%s' prefix in the node path." +msgstr "" +"K tomuto uzlu lze přistupovat z libovolného místa ve scéně tak, že v cestě " +"uzlu uvedete předponu '%s'." + +msgid "Click to disable this." +msgstr "Kliknutím toto zakážete." + msgid "Node has one connection." msgid_plural "Node has {num} connections." msgstr[0] "Uzel má jedno připojení." @@ -5714,7 +6402,17 @@ msgstr[1] "Uzly je v těchto skupinách:" msgstr[2] "Uzel je v těchto skupinách:" msgid "Click to show signals dock." -msgstr "Kliknutím zobrazíte panel signálů." +msgstr "Kliknutím zobrazíte dok signálů." + +msgid "Click to show groups dock." +msgstr "Kliknutím zobrazíte dok skupin." + +msgid "" +"This script can run in the editor.\n" +"It is currently disabled due to recovery mode." +msgstr "" +"Tento skript může běžet v editoru.\n" +"Momentálně je deaktivován kvůli režimu obnovy." msgid "This script is currently running in the editor." msgstr "Tento skript aktuálně běží v editoru." @@ -5729,8 +6427,8 @@ msgid "" "Node is locked.\n" "Click to unlock it." msgstr "" -"Uzel je zamčený.\n" -"Klikněte pro odemčení." +"Uzel je uzamčený.\n" +"Kliknutím ho odemknete." msgid "" "Children are not selectable.\n" @@ -5752,6 +6450,13 @@ msgstr "Otevřít v editoru" msgid "\"%s\" is not a known filter." msgstr "\"%s\" není známý filtr." +msgid "" +"Root nodes cannot be accessed as unique names in their own scene. Instantiate " +"in another scene and set as unique name there." +msgstr "" +"Ke kořenovým uzlům nelze přistupovat pomocí unikátních názvů v jejich vlastní " +"scéně. Instancujte jej v jiné scéně a unikátní název nastavte tam." + msgid "Invalid node name, the following characters are not allowed:" msgstr "Neplatný název uzlu, následující znaky nejsou povoleny:" @@ -5759,7 +6464,7 @@ msgid "A node with the unique name %s already exists in this scene." msgstr "Uzel s unikátním názvem \"%s\" již v této scéně existuje." msgid "Enable Scene Unique Name(s)" -msgstr "Aktivovat unikátní názvy ve scéně" +msgstr "Povolit unikátní názvy ve scéně" msgid "Rename Node" msgstr "Přejmenovat uzel" @@ -5773,6 +6478,19 @@ msgstr "Strom scény (uzly):" msgid "Node Configuration Warning!" msgstr "Varování konfigurace uzlu!" +msgid "Revoke" +msgstr "Odebrat" + +msgid "Don't Ask Again" +msgstr "Znovu se neptat" + +msgid "" +"This dialog can also be enabled/disabled in the Editor Settings: Docks > " +"Scene Tree > Ask Before Revoking Unique Name." +msgstr "" +"Tento dialog lze také povolit/zakázat v Nastavení editoru: Doky > Strom scén " +"> Zeptat se před odebráním unikátního názvu." + msgid "Allowed:" msgstr "Povoleno:" @@ -5789,25 +6507,25 @@ msgid "Pre-Import Scene" msgstr "Předimportovat scénu" msgid "Importing Scene..." -msgstr "Importuji scénu..." +msgstr "Import scény..." msgid "Import Scene" msgstr "Importovat scénu" msgid "Running Custom Script..." -msgstr "Spouštím vlastní skript..." +msgstr "Spuštění vlastního skriptu..." msgid "Couldn't load post-import script:" -msgstr "Nepodařilo se načíst post-import skript:" +msgstr "Nepodařilo se načíst skript pro post-import:" msgid "Invalid/broken script for post-import (check console):" -msgstr "Neplatný/rozbitý skript pro post-import (viz konzole):" +msgstr "Neplatný/nefunkční skript pro post-import (viz konzole):" msgid "Error running post-import script:" -msgstr "Chyba při spuštění post-import skriptu:" +msgstr "Chyba při spuštění skriptu pro post-import:" msgid "Did you return a Node-derived object in the `_post_import()` method?" -msgstr "Vrátili jste objekt, který dědí z Node, metodou `_post_import()`?" +msgstr "Vracíte v metodě `_post_import()` objekt odvozený z Node?" msgid "Saving..." msgstr "Ukládání..." @@ -5832,13 +6550,13 @@ msgid "Advanced Import Settings for AnimationLibrary '%s'" msgstr "Pokročilá nastavení importu pro AnimationLibrary '%s'" msgid "Advanced Import Settings for Scene '%s'" -msgstr "Pokročilá nastavení importu pro Scénu '%s'" +msgstr "Pokročilá nastavení importu pro scénu '%s'" msgid "Select folder to extract material resources" -msgstr "Vybrat složku pro extrakci zdrojů materiálu" +msgstr "Vybrat složku pro extrakci materiálových zdrojů" msgid "Select folder where mesh resources will save on import" -msgstr "Vybrat složku, do které se při importu uloží zdroje modelů" +msgstr "Vybrat složku, do které se při importu uloží zdroje sítí" msgid "Select folder where animations will save on import" msgstr "Vybrat složku, do které se při importu uloží animace" @@ -5863,7 +6581,7 @@ msgstr "" "Deaktivujte vlastnost \"externí\", aby byl znovu extrahován." msgid "No import ID" -msgstr "Žádné import ID" +msgstr "Žádné ID importu" msgid "" "Material has no name nor any other way to identify on re-import.\n" @@ -5873,7 +6591,7 @@ msgstr "" "Pojmenujte jej nebo zajistěte, aby byl exportován s jedinečným ID." msgid "Extract Materials to Resource Files" -msgstr "Extrahovat Materiály do souborů Zdrojů" +msgstr "Extrahovat materiály do souborů zdrojů" msgid "Extract" msgstr "Extrahovat" @@ -5884,7 +6602,7 @@ msgstr "Již se ukládá" msgid "" "This mesh already saves to an external resource, no action will be taken." msgstr "" -"Tento model je již ukládán do externího zdroje, nebude provedena žádná akce." +"Tato síť je již ukládána do externího zdroje, nebude provedena žádná akce." msgid "Existing file with the same name will be replaced on import." msgstr "Existující soubor se stejným názvem bude nahrazen při importování." @@ -5896,12 +6614,11 @@ msgid "" "Mesh has no name nor any other way to identify on re-import.\n" "Please name it or ensure it is exported with an unique ID." msgstr "" -"Model nemá žádný název ani jiný způsob identifikace pro reimportování.\n" -"Pojmenujte jej nebo zajistěte, aby byl exportován s jedinečným ID." +"Síť nemá žádný název ani jiný způsob identifikace pro reimportování.\n" +"Pojmenujte ji nebo zajistěte, aby byla exportována s jedinečným ID." msgid "Set paths to save meshes as resource files on Reimport" -msgstr "" -"Nastavit cesty pro ukládání mesh modelů jako souborů zdrojů při reimportu" +msgstr "Nastavit cesty pro ukládání sítí jako souborů zdrojů při reimportu" msgid "Set Paths" msgstr "Nastavit cesty" @@ -5924,13 +6641,13 @@ msgid "Extract Materials" msgstr "Extrahovat materiály" msgid "Set Animation Save Paths" -msgstr "Nastavit cesty pro ukládání animace" +msgstr "Nastavit cesty pro ukládání animací" msgid "Set Mesh Save Paths" -msgstr "Nastavit cesty pro ukládání mesh modelů" +msgstr "Nastavit cesty pro ukládání sítí" msgid "Meshes" -msgstr "Modely (Mesh)" +msgstr "Sítě" msgid "Materials" msgstr "Materiály" @@ -5938,6 +6655,12 @@ msgstr "Materiály" msgid "Selected Animation Play/Pause" msgstr "Přehrát/Pozastavit vybranou animaci" +msgid "Selected Animation Stop" +msgstr "Zastavit vybranou animaci" + +msgid "Toggle Animation Skeleton Visibility" +msgstr "Přepnout viditelnost kostry animace" + msgid "Rotate Lights With Model" msgstr "Otáčet světla s modelem" @@ -5972,7 +6695,7 @@ msgid "Enable looping." msgstr "Povolit opakování." msgid "Offset:" -msgstr "Offset(Posun):" +msgstr "Offset:" msgid "" "Loop offset (from beginning). Note that if BPM is set, this setting will be " @@ -5991,8 +6714,8 @@ msgid "" "Configure the Beats Per Measure (tempo) used for the interactive streams.\n" "This is required in order to configure beat information." msgstr "" -"Nakonfigurujte doby v taktu (tempo) používaný v interaktivních tocích.\n" -"Toto je potřeba pro nakonfigurování informací o tempu." +"Konfigurovat doby v taktu (tempo) používaný v interaktivních tocích.\n" +"Toto je potřeba pro nastavení informací o tempu." msgid "Beat Count:" msgstr "Počet dob:" @@ -6003,8 +6726,8 @@ msgid "" "It is recommended to set this value (either manually or by clicking on a beat " "number in the preview) to ensure looping works properly." msgstr "" -"Nakonfigurovat počet dob použitý pro smyčky vedené hudbou. Pokud ponecháte " -"nulu, bude automaticky detekován z délky.\n" +"Nakonfigurovat počet dob použitý pro smyčky vedené hudbou. Ponecháte-li " +"nulový, bude automaticky detekován z délky.\n" "Doporučuje se tuto hodnotu nastavit (buď manuálně, nebo kliknutím na počet " "dob v náhledu) pro zajištění správné fungování smyčky." @@ -6047,24 +6770,24 @@ msgid "" "Note: LCD Subpixel antialiasing is selected, each of the glyphs will be pre-" "rendered for all supported subpixel layouts (5x)." msgstr "" -"Poznámka: Je vybráno vyhlazování subpixelů LCD; každý z glyfů bude předem " -"vykreslen pro všechna podporovaná rozložení subpixelů (5x)." +"Poznámka: Je vybráno vyhlazování LCD subpixelů; každý z glyfů bude předem " +"vykreslen pro všechna podporovaná rozvržení subpixelů (5x)." msgid "" "Note: Subpixel positioning is selected, each of the glyphs might be pre-" "rendered for multiple subpixel offsets (up to 4x)." msgstr "" -"Poznámka: Je vybráno umístění subpixelů, každý z glyfů může být předem " +"Poznámka: Je vybráno umisťování subpixelů, každý z glyfů může být předem " "vykreslen pro více subpixelových offsetů (až 4x)." msgid "Advanced Import Settings for '%s'" -msgstr "Pokročilé nastavení importu pro '%s'" +msgstr "Pokročilá nastavení importu pro '%s'" msgid "Rendering Options" msgstr "Možnosti vykreslení" msgid "Select font rendering options, fallback font, and metadata override:" -msgstr "Vybrat možnosti vykreslování fontů, záložní font a přepsání metadat:" +msgstr "Vyberte možnosti vykreslování fontů, záložní font a přepis metadat:" msgid "Pre-render Configurations" msgstr "Konfigurace předběžného vykreslení" @@ -6072,7 +6795,7 @@ msgstr "Konfigurace předběžného vykreslení" msgid "" "Add font size, and variation coordinates, and select glyphs to pre-render:" msgstr "" -"Přidat velikost fontu a souřadnice variací, vybrat glyfy pro předběžné " +"Přidejte velikost fontu a souřadnice variací a zvolte glyfy pro předběžné " "vykreslení:" msgid "Configuration:" @@ -6082,7 +6805,7 @@ msgid "Add configuration" msgstr "Přidat konfiguraci" msgid "Clear Glyph List" -msgstr "Vymazat seznam glyfů" +msgstr "Promazat seznam glyfů" msgid "Glyphs from the Translations" msgstr "Glyfy z překladů" @@ -6102,8 +6825,8 @@ msgid "" "Enter a text and select OpenType features to shape and add all required " "glyphs to pre-render list:" msgstr "" -"Zadat text, vybrat funkce OpenType pro úpravu a přidat všechny požadované " -"glyfy do seznamu předběžného vykreslení:" +"Zadejte text a vyberte funkce OpenType pro úpravu a přidání všechn " +"požadovaných glyfů do seznamu předběžného vykreslení:" msgid "Shape Text and Add Glyphs" msgstr "Upravit text a přidat glyfy" @@ -6117,7 +6840,8 @@ msgid "" "correspondence to character, and not shown in this map, use \"Glyphs from the " "text\" tab to add these." msgstr "" -"Přidat nebo odebrat glyfy z mapy znaků do seznamu předběžného vykreslení:\n" +"Přidejte nebo odeberte glyfy z mapy znaků do seznamu pro předběžné " +"vykreslení:\n" "Poznámka: Některé stylistické alternativy a varianty glyfů nemají jednoznačný " "vztah ke znaku a nejsou v této mapě zobrazeny. Pro jejich přidání použijte " "záložku \"Glyfy z textu\"." @@ -6170,9 +6894,9 @@ msgid "" "the `editor/import/atlas_max_width` Project Setting to allow a wider texture, " "making the result more even in size." msgstr "" -"%s: Atlasová textura je výrazně větší v jednom rozměru (%d). Zvažte změnu " -"Nastavení projektu `editor/import/atlas_max_width` pro povolení širší " -"textury, čímž dosáhnete vyrovnanějšího výsledku." +"%s: Atlasová textura je podél jedné osy (%d) výrazně větší. Chcete-li " +"dosáhnout vyrovnanějšího výsledku, zvažte změnu Nastavení projektu `editor/" +"import/atlas_max_width` pro povolení širší textury." msgid "Importer:" msgstr "Importér:" @@ -6190,7 +6914,7 @@ msgid "Set as Default for '%s'" msgstr "Nastavit jako výchozí pro '%s'" msgid "Clear Default for '%s'" -msgstr "Vyčistit výchozí pro '%s'" +msgstr "Promazat výchozí pro '%s'" msgid "" "You have pending changes that haven't been applied yet. Click Reimport to " @@ -6207,7 +6931,7 @@ msgid "Import As:" msgstr "Importovat jako:" msgid "Preset" -msgstr "Předvolba" +msgstr "Profil" msgid "Advanced..." msgstr "Pokročilé..." @@ -6217,7 +6941,7 @@ msgid "" "undo history will be cleared." msgstr "" "Importovaný zdroj je aktuálně načten. Všechny instance budou nahrazeny a " -"historie vrácení zpět bude vymazána." +"historie vrácení zpět bude promazána." msgid "" "WARNING: Assets exist that use this resource. They may stop loading properly " @@ -6230,8 +6954,8 @@ msgid "" "Select a resource file in the filesystem or in the inspector to adjust import " "settings." msgstr "" -"Pro úpravu nastavení importu vyberte zdrojový soubor v prohlížeči souborů " -"nebo v inspektoru." +"Pro úpravu nastavení importu vyberte soubor zdroje v prohlížeči souborů nebo " +"v inspektoru." msgid "No Event Configured" msgstr "Žádná událost nebyla nakonfigurována" @@ -6283,7 +7007,7 @@ msgid "Physical Keycode (Position on US QWERTY Keyboard)" msgstr "Kód fyzické klávesy (Pozice na US QWERTY klávesnici)" msgid "Key Label (Unicode, Case-Insensitive)" -msgstr "Popisek klávesy (Unicode, nerozlišuje malá a velká písmena)" +msgstr "Popisek klávesy (Unicode, nerozlišuje velká a malá písmena)" msgid "Physical location" msgstr "Pozice fyzické klávesy" @@ -6304,7 +7028,7 @@ msgid "Failed to load resource." msgstr "Selhalo nahrání zdroje." msgid "(Current)" -msgstr "(aktuální)" +msgstr "(Aktuální)" msgid "Expand Non-Default" msgstr "Rozbalit jiné než výchozí" @@ -6322,7 +7046,7 @@ msgid "Localized (e.g. \"Z Index\")" msgstr "Přeložit (např. \"Z-Index\")" msgid "Localization not available for current language." -msgstr "Lokalizace pro aktuální jazyk dostupná." +msgstr "Překlad pro aktuální jazyk není dostupný." msgid "Copy Properties" msgstr "Kopírovat vlastnosti" @@ -6334,13 +7058,13 @@ msgid "Make Sub-Resources Unique" msgstr "Udělat dílčí zdroje unikátní" msgid "Create a new resource in memory and edit it." -msgstr "Vytvořit nový zdroj v paměti a editovat ho." +msgstr "Vytvořit nový zdroj v paměti a upravit ho." msgid "Load an existing resource from disk and edit it." -msgstr "Nahrát existující zdroj z disku a editovat ho." +msgstr "Nahrát existující zdroj z disku a upravit ho." msgid "Save the currently edited resource." -msgstr "Uložit právě editovaný zdroj." +msgstr "Uložit právě upravovaný zdroj." msgid "Extra resource options." msgstr "Další možnosti zdrojů." @@ -6352,13 +7076,13 @@ msgid "Copy Resource" msgstr "Kopírovat zdroj" msgid "Make Resource Built-In" -msgstr "Učinit zdroj vestavěným" +msgstr "Učinit zdroj vestavěný" msgid "Go to previous edited object in history." -msgstr "Jít na předešlý editovaný objekt v historii." +msgstr "Jít na předešlý upravený objekt v historii." msgid "Go to next edited object in history." -msgstr "Jít na následující editovaný objekt v historii." +msgstr "Jít na následující upravený objekt v historii." msgid "History of recently edited objects." msgstr "Historie naposledy upravených objektů." @@ -6375,11 +7099,29 @@ msgstr "Spravovat vlastnosti objektu." msgid "This cannot be undone. Are you sure?" msgstr "Toto nelze vrátit zpět. Přejete si pokračovat?" +msgid "Add %d Translation" +msgid_plural "Add %d Translations" +msgstr[0] "Přidat %d překlad" +msgstr[1] "Přidat %d překlady" +msgstr[2] "Přidat %d překladů" + msgid "Remove Translation" msgstr "Odstranit překlad" +msgid "Translation Resource Remap: Add %d Path" +msgid_plural "Translation Resource Remap: Add %d Paths" +msgstr[0] "Přemapování zdroje překladu: Přidat %d cestu" +msgstr[1] "Přemapování zdroje překladu: Přidat %d cesty" +msgstr[2] "Přemapování zdroje překladu: Přidat %d cest" + +msgid "Translation Resource Remap: Add %d Remap" +msgid_plural "Translation Resource Remap: Add %d Remaps" +msgstr[0] "Přemapování zdroje překladu: Přidat %d přemapování" +msgstr[1] "Přemapování zdroje překladu: Přidat %d přemapování" +msgstr[2] "Přemapování zdroje překladu: Přidat %d přemapování" + msgid "Change Resource Remap Language" -msgstr "Změnit jazyk přemapování zdrojů" +msgstr "Změnit jazyk přemapování zdrojů" msgid "Remove Resource Remap" msgstr "Odebrat přemapování zdroje" @@ -6387,6 +7129,12 @@ msgstr "Odebrat přemapování zdroje" msgid "Remove Resource Remap Option" msgstr "Odebrat možnost přemapování zdroje" +msgid "Add %d file for POT generation" +msgid_plural "Add %d files for POT generation" +msgstr[0] "Přidat %d soubor pro generování POT" +msgstr[1] "Přidat %d soubory pro generování POT" +msgstr[2] "Přidat %d souborů pro generování POT" + msgid "Remove file from POT generation" msgstr "Odebrat soubor z generování POT" @@ -6409,10 +7157,10 @@ msgid "Resources:" msgstr "Zdroje:" msgid "Remaps by Locale:" -msgstr "Mapování na základě jazyka:" +msgstr "Přemapování podle jazyka:" msgid "Locale" -msgstr "Jazyky" +msgstr "Jazyk" msgid "POT Generation" msgstr "Generování POT" @@ -6440,7 +7188,7 @@ msgid "Groups" msgstr "Skupiny" msgid "Select a single node to edit its signals and groups." -msgstr "Zvolte vybraný uzel pro editaci jeho signálů a skupin." +msgstr "Pro úpravu signálů a skupin vyberte jeden uzel." msgid "Create Polygon" msgstr "Vytvořit polygon" @@ -6524,7 +7272,7 @@ msgid "Enable snap and show grid." msgstr "Aktivovat přichytávání a zobrazit mřížku." msgid "Sync:" -msgstr "Synchronizovat:" +msgstr "Synchronizace:" msgid "Blend:" msgstr "Prolínání:" @@ -6560,7 +7308,7 @@ msgid "No triangles exist, so no blending can take place." msgstr "Neexistují žádné trojúhelníky, takže nemůže dojít k prolnutí." msgid "Toggle Auto Triangles" -msgstr "Zapnout/Vypnout automatické trojúhelníky" +msgstr "Přepnout automatické trojúhelníky" msgid "Create triangles by connecting points." msgstr "Vytvořit trojúhelníky spojováním bodů." @@ -6572,7 +7320,7 @@ msgid "Generate blend triangles automatically (instead of manually)" msgstr "Vygenerovat prolínací trojúhelníky automaticky (namísto manuálně)" msgid "Parameter Changed: %s" -msgstr "Změněný parametr: %s" +msgstr "Parametr změněn: %s" msgid "Inspect Filters" msgstr "Prozkoumat filtry" @@ -6605,7 +7353,7 @@ msgid "Delete Node(s)" msgstr "Smazat uzly" msgid "Toggle Filter On/Off" -msgstr "Aktivovat/Deaktivovat filtr" +msgstr "Přepnout filtr aktivní/neaktivní" msgid "Change Filter" msgstr "Změnit filtr" @@ -6617,7 +7365,7 @@ msgid "Invert Filter Selection" msgstr "Invertovat výběr filtru" msgid "Clear Filter Selection" -msgstr "Vymazat výběr filtru" +msgstr "Promazat výběr filtru" msgid "" "Animation player has no valid root node path, so unable to retrieve track " @@ -6627,7 +7375,7 @@ msgstr "" "jména stop." msgid "Anim Clips" -msgstr "Animační klipy" +msgstr "Klipy animace" msgid "Audio Clips" msgstr "Zvukové klipy" @@ -6656,11 +7404,29 @@ msgstr "Vyplnit vybrané potomky" msgid "Invert" msgstr "Invertovat" +msgid "Start of Animation" +msgstr "Začátek animace" + +msgid "End of Animation" +msgstr "Konec animace" + +msgid "Set Custom Timeline from Marker" +msgstr "Nastavit vlastní časovou osu ze značky" + +msgid "Select Markers" +msgstr "Vybrat značky" + +msgid "Start Marker" +msgstr "Značka počátku" + +msgid "End Marker" +msgstr "Značka konce" + msgid "Library Name:" msgstr "Název knihovny:" msgid "Animation name can't be empty." -msgstr "Název animace nemůže být prázdný." +msgstr "Název animace nesmí být prázdný." msgid "Animation name contains invalid characters: '/', ':', ',' or '['." msgstr "Název animace obsahuje neplatné znaky: '/', ':', ',' nebo '['." @@ -6713,7 +7479,7 @@ msgid "Save Library" msgstr "Uložit knihovnu" msgid "Make Animation Library Unique: %s" -msgstr "Zunikátnit knihovnu animace: %s" +msgstr "Zunikátnit knihovnu animací: %s" msgid "" "This animation can't be saved because it does not belong to the edited scene. " @@ -6736,7 +7502,7 @@ msgid "Make Animation Unique: %s" msgstr "Zunikátnit animaci: '%s'" msgid "Save Animation library to File: %s" -msgstr "Uložit knihovnu animace do souboru: %s" +msgstr "Uložit knihovnu animací do souboru: %s" msgid "Save Animation to File: %s" msgstr "Uložit animaci do souboru: %s" @@ -6814,7 +7580,7 @@ msgid "Remove animation library." msgstr "Odstranit knihovnu animací." msgid "Copy animation to clipboard." -msgstr "Zkopírovat animaci do schránky." +msgstr "Kopírovat animaci do schránky." msgid "Save animation to resource on disk." msgstr "Uložit animaci do zdroje na disku." @@ -6871,7 +7637,7 @@ msgid "Duplicate Animation" msgstr "Duplikovat animaci" msgid "Blend Next Changed" -msgstr "Upraveno prolnutí na další" +msgstr "Změněno prolnutí na další" msgid "Change Blend Time" msgstr "Změnit trvání prolnutí" @@ -6885,6 +7651,21 @@ msgstr "Název duplikované animace:" msgid "Onion skinning requires a RESET animation." msgstr "Průhledné vrstvení vyžaduje RESET animaci." +msgid "Play Animation Backwards" +msgstr "Přehrát animaci pozpátku" + +msgid "Play Animation Backwards from End" +msgstr "Přehrát animaci pozpátku od konce" + +msgid "Pause/Stop Animation" +msgstr "Zastavit animaci" + +msgid "Play Animation from Start" +msgstr "Přehrát animaci od začátku" + +msgid "Play Animation" +msgstr "Přehrát animaci" + msgid "Animation position (in seconds)." msgstr "Pozice animace (v sekundách)." @@ -6892,13 +7673,13 @@ msgid "Scale animation playback globally for the node." msgstr "Škálovat přehrávání animace globálně pro uzel." msgid "Animation Tools" -msgstr "Nástroje pro animaci" +msgstr "Nástroje animace" msgid "Animation" msgstr "Animace" msgid "New..." -msgstr "Nový..." +msgstr "Nová..." msgid "Manage Animations..." msgstr "Spravovat animace..." @@ -6910,7 +7691,7 @@ msgid "Display list of animations in player." msgstr "Zobrazit seznam animací v přehrávači." msgid "Autoplay on Load" -msgstr "Automatické přehrání při načtení" +msgstr "Automaticky přehrávat při načtení" msgid "Enable Onion Skinning" msgstr "Povolit průhledné vrstvení" @@ -6958,10 +7739,16 @@ msgid "Blend Times:" msgstr "Časy prolnutí:" msgid "Next (Auto Queue):" -msgstr "Další (Automatická fronta):" +msgstr "Další (Automaticky přidat do fronty):" + +msgid "Go to Next Keyframe" +msgstr "Přejít k dalšímu klíčovému snímku" + +msgid "Go to Previous Keyframe" +msgstr "Přejít k předchozímu klíčovému snímku" msgid "Toggle Animation Bottom Panel" -msgstr "Přepnout spodní panel animace" +msgstr "Přepnout spodní panel Animace" msgid "Move Node" msgstr "Přesunout uzel" @@ -7041,10 +7828,10 @@ msgid "Root" msgstr "Kořen" msgid "AnimationTree" -msgstr "AnimationTree" +msgstr "Strom animace" msgid "Toggle AnimationTree Bottom Panel" -msgstr "Přepnout spodní panel AnimationTree" +msgstr "Přepnout spodní panel Strom animace" msgid "Author" msgstr "Autor" @@ -7080,7 +7867,7 @@ msgid "Can't resolve hostname:" msgstr "Nelze přeložit název hostitele:" msgid "Can't resolve." -msgstr "Nelze vyhodnotit." +msgstr "Nelze přeložit." msgid "Request failed, return code:" msgstr "Požadavek se nezdařil, návratový kód:" @@ -7119,19 +7906,19 @@ msgid "Failed SHA-256 hash check" msgstr "Neúspěšná kontrola SHA-256 hashe" msgid "Asset Download Error:" -msgstr "Chyba při stahování assetu:" +msgstr "Chyba při stahování zdroje:" msgid "Ready to install!" msgstr "Připraveno k instalaci!" msgid "Downloading (%s / %s)..." -msgstr "Stahuji (%s / %s)..." +msgstr "Stahování (%s / %s)..." msgid "Downloading..." -msgstr "Stahuji..." +msgstr "Stahování..." msgid "Resolving..." -msgstr "Zjišťování..." +msgstr "Překládání..." msgid "Error making request" msgstr "Chyba při vytváření požadavku" @@ -7143,10 +7930,10 @@ msgid "Install..." msgstr "Nainstalovat..." msgid "Retry" -msgstr "Opakovat" +msgstr "Zkusit znovu" msgid "Download Error" -msgstr "Chyba při stahování" +msgstr "Chyba stahování" msgid "Recently Updated" msgstr "Nedávno aktualizované" @@ -7244,7 +8031,7 @@ msgid "Support" msgstr "Podpora" msgid "Assets ZIP File" -msgstr "ZIP soubor zdrojů" +msgstr "Soubor zdrojů ZIP" msgid "Audio Preview Play/Pause" msgstr "Náhled zvuku Přehrát/Pozastavit" @@ -7253,7 +8040,7 @@ msgid "Bone Picker:" msgstr "Výběr kostí:" msgid "Clear mappings in current group." -msgstr "Vyčistit mapování současné skupiny." +msgstr "Promazat mapování současné skupiny." msgid "Preview" msgstr "Náhled" @@ -7313,13 +8100,13 @@ msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)" msgstr "Nastavit offset pivotu pro CanvasItem \"%s\" na (%d, %d)" msgid "Rotate %d CanvasItems" -msgstr "Rotovat %d CanvasItemů" +msgstr "Otočit %d CanvasItemů" msgid "Rotate CanvasItem \"%s\" to %d degrees" -msgstr "Rotovat CanvasItem \"%s\" na %d stupňů" +msgstr "Otočit CanvasItem \"%s\" na %d stupňů" msgid "Move CanvasItem \"%s\" Anchor" -msgstr "Přesunout kotvu CanvasItemu \"%s\"" +msgstr "Přesunout ukotvení CanvasItemu \"%s\"" msgid "Scale Node2D \"%s\" to (%s, %s)" msgstr "Škálovat Node2D \"%s\" na (%s, %s)" @@ -7343,13 +8130,13 @@ msgid "Locked" msgstr "Zamčeno" msgid "Grouped" -msgstr "Seskupené" +msgstr "Seskupeno" msgid "Add Node Here..." msgstr "Přidat uzel sem..." msgid "Instantiate Scene Here..." -msgstr "Instanciovat scénu sem..." +msgstr "Instancovat scénu sem..." msgid "Paste Node(s) Here" msgstr "Vložit uzly sem" @@ -7373,10 +8160,10 @@ msgid "Scaling:" msgstr "Škálování:" msgid "Lock Selected" -msgstr "Uzamknout vybraný" +msgstr "Uzamknout vybrané" msgid "Unlock Selected" -msgstr "Odemknout vybraný" +msgstr "Odemknout vybrané" msgid "Group Selected" msgstr "Seskupit vybrané" @@ -7449,6 +8236,9 @@ msgstr "" "Alt+Pravé tl. myši: Zobrazit seznam všech uzlů na kliknuté pozici, včetně " "uzamčených." +msgid "(Available in all modes.)" +msgstr "(Dostupné ve všech režimech.)" + msgid "RMB: Add node at position clicked." msgstr "Pravé tl. myši: Přidat uzel na pozici kliknutí." @@ -7462,11 +8252,24 @@ msgid "Scale Mode" msgstr "Režim škálování" msgid "Shift: Scale proportionally." -msgstr "Shift: Zvětšovat proporčně." +msgstr "Shift: Škálovat proporčně." msgid "Show list of selectable nodes at position clicked." msgstr "Zobrazit seznam uzlů na kliknuté pozici, jež je možno označit." +msgid "Click to change object's pivot." +msgstr "Kliknutím změníte pivot objektu." + +msgid "Shift: Set temporary pivot." +msgstr "Shift: Nastavit dočasný pivot." + +msgid "" +"Click this button while holding Shift to put the temporary pivot in the " +"center of the selected nodes." +msgstr "" +"Pro umístění dočasného pivotu do středu vybraných uzlů držte při kliknutí na " +"toto tlačítko Shift." + msgid "Pan Mode" msgstr "Režim posouvání" @@ -7489,7 +8292,7 @@ msgid "Toggle grid snapping." msgstr "Přepnout přichytávání ke mřížce." msgid "Use Grid Snap" -msgstr "Použít přichytávání ke mřížce" +msgstr "Použít přichytávání k mřížce" msgid "Snapping Options" msgstr "Možnosti přichytávání" @@ -7498,7 +8301,7 @@ msgid "Use Rotation Snap" msgstr "Použít rotační přichytávání" msgid "Use Scale Snap" -msgstr "Použít škálovací přichytávání" +msgstr "Použít přichytávání měřítka" msgid "Snap Relative" msgstr "Přichytávat relativně" @@ -7507,34 +8310,34 @@ msgid "Use Pixel Snap" msgstr "Přichytávat na pixely" msgid "Snap to Parent" -msgstr "Přichytit k rodičovi" +msgstr "Přichytávat k rodičovi" msgid "Snap to Node Anchor" -msgstr "Přichytit k ukotvení uzlu" +msgstr "Přichytávat k ukotvení uzlu" msgid "Snap to Node Sides" -msgstr "Přichytit ke stranám uzlu" +msgstr "Přichytávat ke stranám uzlu" msgid "Snap to Node Center" -msgstr "Přichytit ke středu uzlu" +msgstr "Přichytávat ke středu uzlu" msgid "Snap to Other Nodes" -msgstr "Přichytit k jiným uzlům" +msgstr "Přichytávat k jiným uzlům" msgid "Snap to Guides" -msgstr "Přichytit k vodítkům" +msgstr "Přichytávat k vodítkům" msgid "Smart Snapping" msgstr "Chytré přichytávání" msgid "Configure Snap..." -msgstr "Nastavení přichytávání..." +msgstr "Nastavit přichytávání..." msgid "Lock selected node, preventing selection and movement." -msgstr "Uzamknout vybraný uzel; zabrání výběru a přesouvání." +msgstr "Uzamknout vybraný uzel. Zabrání výběru a přesouvání." msgid "Unlock selected node, allowing selection and movement." -msgstr "Odemknout vybraný objekt; umožní výběr a přesouvání." +msgstr "Odemknout vybraný uzel. Umožní výběr a přesouvání." msgid "" "Groups the selected node with its children. This causes the parent to be " @@ -7575,7 +8378,7 @@ msgid "Grid" msgstr "Mřížka" msgid "Show Helpers" -msgstr "Zobrazit pomocníky" +msgstr "Zobrazit pomůcky" msgid "Show Rulers" msgstr "Zobrazit pravítka" @@ -7593,7 +8396,7 @@ msgid "Lock" msgstr "Zámek" msgid "Group" -msgstr "Skupiny" +msgstr "Skupina" msgid "Transformation" msgstr "Transformace" @@ -7605,10 +8408,10 @@ msgid "Center Selection" msgstr "Vycentrovat výběr" msgid "Frame Selection" -msgstr "Výběr snímku" +msgstr "Orámovat výběr" msgid "Preview Canvas Scale" -msgstr "Náhled měřítka plátna" +msgstr "Měřítko náhledu plátna" msgid "Project theme" msgstr "Motiv projektu" @@ -7629,10 +8432,10 @@ msgid "Rotation mask for inserting keys." msgstr "Maska rotace pro vkládání klíčů." msgid "Scale mask for inserting keys." -msgstr "Škálovací maska pro vkládání klíčů." +msgstr "Maska měřítka pro vkládání klíčů." msgid "Insert keys (based on mask)." -msgstr "Vložit klíč (založený na masce)." +msgstr "Vložit klíče (založené na masce)." msgid "Insert Key" msgstr "Vložit klíč" @@ -7645,15 +8448,15 @@ msgid "" msgstr "" "Automaticky vkládat klíče, když je objekt přesunut, otočen nebo škálován (na " "základě masky).\n" -"Klíče se přidávají pouze ke stávajícím stopám, žádné nové stopy se " -"nevytvoří.\n" +"Klíče se přidávají pouze ke stávajícím stopám, nebudou vytvořeny žádné nové " +"stopy.\n" "Poprvé musí být klíče vloženy ručně." msgid "Auto Insert Key" msgstr "Automaticky vložit klíč" msgid "Animation Key and Pose Options" -msgstr "Animační klíč a možnosti pózy" +msgstr "Možnosti klíče animace a pózy" msgid "Insert Key (Existing Tracks)" msgstr "Vložit klíč (existující stopy)" @@ -7671,7 +8474,7 @@ msgid "Divide grid step by 2" msgstr "Vydělit krok mřížky dvěma" msgid "Adding %s..." -msgstr "Přidávám %s..." +msgstr "Přidávání %s..." msgid "Error instantiating scene from %s." msgstr "Chyba instancování scény z %s." @@ -7695,7 +8498,7 @@ msgid "Instantiating: " msgstr "Instancování: " msgid "Adding %s and %s..." -msgstr "Přidávám %s a %s..." +msgstr "Přidávání %s a %s..." msgid "" "Drag and drop to add as sibling of selected node (except when root is " @@ -7733,13 +8536,13 @@ msgid "Set Handle" msgstr "Nastavit úchyt" msgid "This node doesn't have a control parent." -msgstr "Tento uzel nemá kontrolního rodiče." +msgstr "Tento uzel nemá za rodiče ovládací prvek." msgid "" "Use the appropriate layout properties depending on where you are going to put " "it." msgstr "" -"Použijte vhodné vlastnosti rozložení v závislosti na tom, kam jej chcete " +"Použijte vhodné vlastnosti rozvržení v závislosti na tom, kam jej chcete " "umístit." msgid "This node is a child of a container." @@ -7875,8 +8678,7 @@ msgid "" "When active, moving Control nodes changes their anchors instead of their " "offsets." msgstr "" -"Když je aktivní, pohybující se Control uzly namísto svých offsetů mění svá " -"ukotvení." +"Když je aktivní, přesouvání uzlů Control mění jejich ukotvení namísto offsetů." msgid "Sizing settings for children of a Container node." msgstr "Nastavení velikosti pro potomky uzlu Container." @@ -7888,7 +8690,7 @@ msgid "Vertical alignment" msgstr "Svislé zarovnání" msgid "Load Curve Preset" -msgstr "Načíst předvolbu křivky" +msgstr "Načíst profil křivky" msgid "Add Curve Point" msgstr "Přidat bod křivky" @@ -7900,7 +8702,7 @@ msgid "Modify Curve Point" msgstr "Upravit bod křivky" msgid "Modify Curve Point's Tangents" -msgstr "Upravit tečnu bodu křivky" +msgstr "Upravit tečny bodu křivky" msgid "Modify Curve Point's Left Tangent" msgstr "Upravit levou tečnu bodu křivky" @@ -7912,25 +8714,25 @@ msgid "Toggle Linear Curve Point's Tangent" msgstr "Přepnout lineární tečnu bodu křivky" msgid "Hold Shift to edit tangents individually" -msgstr "Podržením Shift změníte tečny jednotlivě" +msgstr "Podržením Shift upravíte tečny jednotlivě" msgid "Ease In" -msgstr "Pozvolný vchod" +msgstr "Pozvolný vstup" msgid "Ease Out" -msgstr "Pozvolný odchod" +msgstr "Pozvolný výstup" msgid "Smoothstep" -msgstr "Plynulý krok" +msgstr "Pozvolný krok (smoothstep)" msgid "Toggle Grid Snap" -msgstr "Přepnout přichytávání k mřížce" +msgstr "Přepnout přichytávání ke mřížce" msgid "Debug with External Editor" -msgstr "Debugovat v externím editoru" +msgstr "Ladit v externím editoru" msgid "Toggle Debugger Bottom Panel" -msgstr "Přepnout spodní panel ladění" +msgstr "Přepnout spodní panel Ladění" msgid "Deploy with Remote Debug" msgstr "Nasadit se vzdáleným laděním" @@ -7972,8 +8774,8 @@ msgid "" "When this option is enabled, collision shapes and raycast nodes (for 2D and " "3D) will be visible in the running project." msgstr "" -"Když je povolena tato volba, jsou v běžícím projektu vidět kolizní tvary a " -"raycast uzly (pro 2D a 3D)." +"Když je tato volba povolena, jsou v běžícím projektu viditelné kolizní tvary " +"a uzly vrhající paprsky (pro 2D a 3D)." msgid "Visible Paths" msgstr "Viditelné cesty" @@ -7992,7 +8794,7 @@ msgid "" "When this option is enabled, navigation meshes, and polygons will be visible " "in the running project." msgstr "" -"Když je tato volba povolena, jsou v běžícím projektu vidět navigační modely a " +"Když je tato volba povolena, jsou v běžícím projektu vidět navigační sítě a " "polygony." msgid "Visible Avoidance" @@ -8002,7 +8804,7 @@ msgid "" "When this option is enabled, avoidance object shapes, radiuses, and " "velocities will be visible in the running project." msgstr "" -"Když je povolena tato volba, jsou v běžícím projektu viditelné tvary, " +"Když je tato volba povolena, jsou v běžícím projektu viditelné tvary, " "poloměry a rychlosti objektů vyhýbání." msgid "Debug CanvasItem Redraws" @@ -8013,12 +8815,12 @@ msgid "" "visible (as a short flash) in the running project.\n" "This is useful to troubleshoot low processor mode." msgstr "" -"Když je tato volba povolena, požadavky 2D objektů pro překreslení jsou v " -"běžícím projektu viditelné (jako krátký záblesk).\n" -"To je užitečné při odstraňování problémů v režimu nízkého výkonu procesoru." +"Když je tato volba povolena, jsou v běžícím projektu viditelné požadavky 2D " +"objektů pro překreslení (jako krátký záblesk).\n" +"Užitečné při odstraňování problémů v režimu nízkého výkonu procesoru." msgid "Synchronize Scene Changes" -msgstr "Synchronizovat změny scény" +msgstr "Synchronizovat změny scén" msgid "" "When this option is enabled, any changes made to the scene in the editor will " @@ -8026,13 +8828,13 @@ msgid "" "When used remotely on a device, this is more efficient when the network " "filesystem option is enabled." msgstr "" -"Je-li tato možnost vybrána, budou všechny změny scény v editoru replikovány v " -"běžícím projektu.\n" -"Při vzdáleném použití na zařízení je tato možnost efektivnější, když je " +"Když je tato volba povolena, jsou v běžícím projektu replikovány všechny " +"změny scény provedené v editoru.\n" +"Při vzdáleném použití na jiném zařízení je tato možnost efektivnější, když je " "povolen síťový souborový systém." msgid "Synchronize Script Changes" -msgstr "Synchronizovat změny skriptu" +msgstr "Synchronizovat změny skriptů" msgid "" "When this option is enabled, any script that is saved will be reloaded in the " @@ -8040,20 +8842,20 @@ msgid "" "When used remotely on a device, this is more efficient when the network " "filesystem option is enabled." msgstr "" -"Pokud je tato možnost povolena, jakýkoli skript při uložení znovu načte v " -"běžícím projektu.\n" -"Při vzdáleném použití na zařízení je tato možnost efektivnější, když je " +"Když je tato volba povolena, je v běžícím projektu znovu načten jakýkoli " +"skript, který byl uložen.\n" +"Při vzdáleném použití na jiném zařízení je tato možnost efektivnější, když je " "povolen síťový souborový systém." msgid "Keep Debug Server Open" -msgstr "Nechat ladící server otevřený" +msgstr "Nechat ladicí server otevřený" msgid "" "When this option is enabled, the editor debug server will stay open and " "listen for new sessions started outside of the editor itself." msgstr "" -"Pokud je tato možnost povolena, ladící server zůstane běžet a poslouchá " -"jestli nezačalo nové ladící sezení mimo editor." +"Když je tato volba povolena, ladicí server editoru zůstane běžet a poslouchá, " +"jestli nezačalo nové sezení mimo editor." msgid "Customize Run Instances..." msgstr "Přizpůsobit instance běhu..." @@ -8072,13 +8874,20 @@ msgstr "" "%s" msgid "Edit Plugin" -msgstr "Upravit plugin" +msgstr "Upravit zásuvný modul" + +msgid "" +"Recovery mode is enabled. Enabled plugins will not run while this mode is " +"active." +msgstr "" +"Je aktivní režim obnovy. Povolené zásuvné moduly v tomto režimu nebudou " +"spuštěny." msgid "Installed Plugins:" -msgstr "Nainstalované pluginy:" +msgstr "Nainstalované zásuvné moduly:" msgid "Create New Plugin" -msgstr "Vytvořit nový plugin" +msgstr "Vytvořit nový zásuvný modul" msgid "Enabled" msgstr "Povoleno" @@ -8150,9 +8959,170 @@ msgstr "Východoasijské šířky" msgid "Numeral Alignment" msgstr "Zarovnání číslic" +msgid "Variation" +msgstr "Variace" + msgid "Unable to preview font" msgstr "Není možné zobrazit náhled fontu" +msgid "Connection impossible to the game process." +msgstr "Připojení k hernímu procesu není možné." + +msgid "Game starting..." +msgstr "Spouštění hry..." + +msgid "Game running not embedded." +msgstr "Hra běží nevložená." + +msgid "Press play to start the game." +msgstr "Pro spuštění hry stiskněte hrát." + +msgid "Embedding is disabled." +msgstr "Vkládání je zakázáno." + +msgid "" +"Game embedding not available on Wayland.\n" +"Wayland can be disabled in the Editor Settings (Run > Platforms > Linux/*BSD " +"> Prefer Wayland)." +msgstr "" +"Vložení hry není pro Wayland dostupné.\n" +"Wayland můžete deaktivovat v Nastavení editoru (Běh > Platformz > Linux/*BSD " +"> Preferovat Wayland)." + +msgid "Game embedding not available on your OS." +msgstr "Na vašem OS není vložení hry dostupné." + +msgid "" +"Game embedding not available for the Display Server: '%s'.\n" +"Display Server can be modified in the Project Settings (Display > Display " +"Server > Driver)." +msgstr "" +"Vložení hry není dostupné pro správce oken: '%s'.\n" +"Správce oken můžete změnit v Nastavení projektu (Zobrazení > Správce oken > " +"Ovladač)." + +msgid "" +"Game embedding not available when the game starts minimized.\n" +"Consider overriding the window mode project setting with the editor feature " +"tag to Windowed to use game embedding while leaving the exported project " +"intact." +msgstr "" +"Vložení hry není dostupné, když hra začíná minimalizována.\n" +"Pro vložení hry při zachování minimalizace v exportovaném projektu můžete " +"přepsat nastavení režimu okna pouze pro projekt pomocí štítku funkcí editoru " +"V okně." + +msgid "" +"Game embedding not available when the game starts maximized.\n" +"Consider overriding the window mode project setting with the editor feature " +"tag to Windowed to use game embedding while leaving the exported project " +"intact." +msgstr "" +"Vložení hry není dostupné, když hra začíná maximalizována.\n" +"Pro vložení hry při zachování maximalizace v exportovaném projektu můžete " +"přepsat nastavení režimu okna pouze pro projekt pomocí štítku funkcí editoru " +"V okně." + +msgid "" +"Game embedding not available when the game starts in fullscreen.\n" +"Consider overriding the window mode project setting with the editor feature " +"tag to Windowed to use game embedding while leaving the exported project " +"intact." +msgstr "" +"Vložení hry není dostupné, když hra začíná v režimu celé obrazovky.\n" +"Pro vložení hry při zachování režimu celé obrazovky v exportovaném projektu " +"můžete přepsat nastavení režimu okna pouze pro projekt pomocí štítku funkcí " +"editoru V okně." + +msgid "Game embedding not available in single window mode." +msgstr "Vložení hry není dostupné v režimu jednoho okna." + +msgid "Suspend" +msgstr "Pozastavit" + +msgid "Next Frame" +msgstr "Další snímek" + +msgid "Input" +msgstr "Vstup" + +msgid "Allow game input." +msgstr "Povolit herní vstup." + +msgid "" +"Disable game input and allow to select Node2Ds, Controls, and manipulate the " +"2D camera." +msgstr "" +"Zakázat herní vstup a povolit výběr uzlů Node2D a Control a manipulaci s 2D " +"kamerou." + +msgid "" +"Disable game input and allow to select Node3Ds and manipulate the 3D camera." +msgstr "" +"Zakázat herní vstup a povolit výběr uzlů Node3D a manipulaci s 3D kamerou." + +msgid "Toggle Selection Visibility" +msgstr "Přepnout viditelnost vybraného" + +msgid "Alt+RMB: Show list of all nodes at position clicked." +msgstr "Alt+Pravé tl. myši: Zobrazit seznam všech uzlů na kliknuté pozici." + +msgid "Override the in-game camera." +msgstr "Přepsat kameru hry." + +msgid "Camera Override Options" +msgstr "Možnosti přepsání kamery" + +msgid "Reset 2D Camera" +msgstr "Obnovit 2D kameru" + +msgid "Reset 3D Camera" +msgstr "Obnovit 3D kameru" + +msgid "Manipulate In-Game" +msgstr "Manipulovat ve hře" + +msgid "Manipulate From Editors" +msgstr "Manipulovat z editorů" + +msgid "" +"Embedded game size is based on project settings.\n" +"The 'Keep Aspect' mode is used when the Game Workspace is smaller than the " +"desired size." +msgstr "" +"Rozměry vložené hry jsou odvozeny z nastavení projektu.\n" +"Když je Pracovní prostor hry menší než požadovaná velikost, je použit režim " +"'Zachovat poměr stran'." + +msgid "Keep the aspect ratio of the embedded game." +msgstr "Zachovat poměr stran vložené hry." + +msgid "Embedded game size stretches to fit the Game Workspace." +msgstr "Vložená hra je roztažena, aby se vešla do Pracovního prostoru hry." + +msgid "Embedding Options" +msgstr "Možnosti vložení" + +msgid "Embed Game on Next Play" +msgstr "Vložit hru při dalším spuštění" + +msgid "Make Game Workspace Floating on Next Play" +msgstr "Při příštím spuštění otevřít Pracovní prostor hry v plovoucím doku" + +msgid "Game Workspace" +msgstr "Pracovní prostor hry" + +msgid "" +"No \"%s\" library found for GDExtension: \"%s\". Possible feature flags for " +"your platform: %s" +msgstr "" +"Nebyla nalezena žádná knihovna \"%s\" pro GDExtension doplněk: \"%s\". " +"Potenciální příznaky funkcí pro vaši platformu: %s" + +msgid "Multiple \"%s\" libraries found for GDExtension: \"%s\": \"%s\"." +msgstr "" +"Bylo nalezeno více knihoven \"%s\" pro GDExtension doplněk: \"%s\": \"%s\"." + msgid "Change AudioStreamPlayer3D Emission Angle" msgstr "Změnit úhel vysílání uzlu AudioStreamPlayer3D" @@ -8163,28 +9133,28 @@ msgid "Change Camera Size" msgstr "Změnit velikost kamery" msgid "Change Sphere Shape Radius" -msgstr "Změnit poloměr Sphere Shape" +msgstr "Změnit poloměr tvaru sféry" msgid "Change Box Shape Size" -msgstr "Změnit velikost Box Shape" +msgstr "Změnit velikost tvaru kvádru" msgid "Change Capsule Shape Radius" -msgstr "Změnit poloměr Capsule Shape" +msgstr "Změnit poloměr tvaru kapsle" msgid "Change Capsule Shape Height" -msgstr "Změnit výšku Capsule Shape" +msgstr "Změnit výšku tvaru kapsle" msgid "Change Cylinder Shape Radius" -msgstr "Změnit poloměr Cylinder Shape" +msgstr "Změnit poloměr tvaru válce" msgid "Change Cylinder Shape Height" -msgstr "Změnit výšku Cylinder Shape" +msgstr "Změnit výšku tvaru válce" msgid "Change Separation Ray Shape Length" -msgstr "Změnit délku Separation Ray Shape" +msgstr "Změnit délku tvaru paprsku oddělení" msgid "Change Decal Size" -msgstr "Změnit velikost Decal" +msgstr "Změnit velikost nálepky" msgid "Change FogVolume Size" msgstr "Změnit velikost FogVolume" @@ -8196,10 +9166,10 @@ msgid "Change Light Radius" msgstr "Změnit poloměr světla" msgid "Start Location" -msgstr "Počáteční lokace" +msgstr "Počáteční umístění" msgid "End Location" -msgstr "Konečná lokace" +msgstr "Konečné umístění" msgid "Change Start Position" msgstr "Změnit počáteční pozici" @@ -8208,13 +9178,13 @@ msgid "Change End Position" msgstr "Změnit konečnou pozici" msgid "Change Probe Size" -msgstr "Změnit rozsahy sondy" +msgstr "Změnit velikost sondy" msgid "Change Probe Origin Offset" msgstr "Změnit offset počátku sondy" msgid "Change Notifier AABB" -msgstr "Změnit AABB Notifier" +msgstr "Změnit notifikační AABB" msgid "Low" msgstr "Nízká" @@ -8270,7 +9240,7 @@ msgid "Move GradientTexture2D Fill Point" msgstr "Přesunout bod výplně GradientTexture2D" msgid "Swap GradientTexture2D Fill Points" -msgstr "Vyměnit body fýplně GradientTexture2D" +msgstr "Vyměnit body výplně GradientTexture2D" msgid "Swap Gradient Fill Points" msgstr "Vyměnit body výplně gradientu" @@ -8279,7 +9249,7 @@ msgid "Configure" msgstr "Konfigurovat" msgid "Create Occluder Polygon" -msgstr "Vytvořit Occluder Polygon" +msgstr "Vytvořit stínící polygon" msgid "" "Can't determine a save path for lightmap images.\n" @@ -8288,11 +9258,51 @@ msgstr "" "Nelze určit cestu pro uložení obrázků světelné mapy.\n" "Uložte scénu a zkuste to znovu." +msgid "" +"No meshes with lightmapping support to bake. Make sure they contain UV2 data " +"and their Global Illumination property is set to Static." +msgstr "" +"Neexistují žádné sítě s podporou světelného mapování pro vypálění. Ujistěte " +"se, že obsahují UV2 data a jejich vlastnost Globální osvětlení je nastavena " +"na Statické." + +msgid "" +"To import a scene with lightmapping support, set Meshes > Light Baking to " +"Static Lightmaps in the Import dock." +msgstr "" +"Chcete-li importovat scénu s podporou světelného mapování, nastavte Sítě > " +"Vypalování světla v doku Import na Statické světelné mapy." + +msgid "" +"To enable lightmapping support on a primitive mesh, edit the PrimitiveMesh " +"resource in the inspector and check Add UV2." +msgstr "" +"Pro povolení podpory světelného mapování na primitivní síti upravte zdroj " +"PrimitiveMesh v inspektoru a zaškrtněte Přidat UV2." + +msgid "" +"To enable lightmapping support on a CSG mesh, select the root CSG node and " +"choose CSG > Bake Mesh Instance at the top of the 3D editor viewport.\n" +"Select the generated MeshInstance3D node and choose Mesh > Unwrap UV2 for " +"Lightmap/AO at the top of the 3D editor viewport." +msgstr "" +"Pro povolení podpory světelného mapování na CSG síti vyberte kořenový CSG " +"uzel a v horní části průzoru 3D editoru vyberte CSG > Vypálit instanci sítě.\n" +"Poté zvolte vygenerovaný uzel MeshInstance3D a v horní části průzoru 3D " +"editoru vyberte Síť > Rozbalit UV2 pro světelnou mapu/AO." + +msgid "" +"Failed creating lightmap images. Make sure the lightmap destination path is " +"writable." +msgstr "" +"Vytváření obrázků světelné mapy selhalo. Ujistěte se, že cílová cesta není " +"pouze pro čtení." + msgid "No editor scene root found." msgstr "Nenalezen žádný kořen scény editoru." msgid "Lightmap data is not local to the scene." -msgstr "Data světelné mapy nejsou lokalní vůči scéně." +msgstr "Data světelné mapy nejsou pro scénu místní." msgid "" "Maximum texture size is too small for the lightmap images.\n" @@ -8300,27 +9310,52 @@ msgid "" "recommended you split the scene into more objects instead." msgstr "" "Maximální velikost textur je pro obrázky světelné mapy příliš malá.\n" -"Přestože toto lze opravit zvýšením maximální velikosti textury, doporučuje se " -"místo toho rozdělit scénu na více objektů." +"Přestože je možné tento problém opravit zvýšením maximální velikosti textury, " +"doporučuje se raději rozdělit scénu na více objektů." + +msgid "" +"Failed creating lightmap images. Make sure all meshes to bake have the " +"Lightmap Size Hint property set high enough, and the LightmapGI's Texel Scale " +"value is not too low." +msgstr "" +"Vytvoření obrázků světelné mapy se nezdařilo. Ujistěte se, že všechny sítě " +"vybrané k vypálení mají vlastnost Určení velikosti světelné mapy nastavenou " +"dostatečně vysoko a hodnota Měřítko texelů LightmapGI není příliš nízká." msgid "" "Failed fitting a lightmap image into an atlas. This should never happen and " "should be reported." msgstr "" "Nepodařilo se vložit obrázek světelné mapy do atlasu. To by se nikdy nemělo " -"stát, prosím nahlašte to." +"stát, prosím nahlaste to." msgid "Bake Lightmaps" msgstr "Vypálit světelné mapy" +msgid "Lightmap baking is not supported on this GPU (%s)." +msgstr "Vypalování světelných map není na této GPU (%s) podporováno." + +msgid "Lightmaps cannot be baked on %s." +msgstr "Světelné mapy nelze vypálit na %s." + +msgid "" +"Lightmaps cannot be baked, as the `lightmapper_rd` module was disabled at " +"compile-time." +msgstr "" +"Světelné mapy nelze vypálit, protože modul `lightmapper_rd` byl při kompilaci " +"deaktivován." + msgid "LightMap Bake" msgstr "Vypálit světelnou mapu" msgid "Select lightmap bake file:" msgstr "Vybrat soubor pro vypálení světelných map:" +msgid "Preview is not available for this shader mode." +msgstr "Náhled není v tomto režimu shaderu dostupný." + msgid "Couldn't create a Trimesh collision shape." -msgstr "Vytvoření kolizního tvaru Trimesh se nezdařilo." +msgstr "Vytvoření kolizního tvaru z trojúhelníkové sítě se nezdařilo." msgid "Couldn't create a single collision shape." msgstr "Vytvoření jediného kolizního tvaru se nezdařilo." @@ -8335,43 +9370,43 @@ msgid "Can't create a collision shape as sibling for the scene root." msgstr "Nelze vytvořit kolizní tvar jako sourozence kořenového uzlu scény." msgid "Mesh is empty!" -msgstr "Mesh je prázdný!" +msgstr "Síť je prázdná!" msgid "Create Debug Tangents" msgstr "Vytvořit ladící tečny" msgid "No mesh to unwrap." -msgstr "Žádná mesh pro rozbalení." +msgstr "Žádná síť pro rozbalení." msgid "" "Mesh cannot unwrap UVs because it does not belong to the edited scene. Make " "it unique first." msgstr "" -"Model mesh nemůže rozbalit UV, protože nepatří do upravované scény. Udělejte " -"z něj nejprve unikátní zdroj." +"Síť nemůže rozbalit UV, protože nepatří do upravované scény. Udělejte z ní " +"nejprve unikátní zdroj." msgid "" "Mesh cannot unwrap UVs because it belongs to another resource which was " "imported from another file type. Make it unique first." msgstr "" -"Model mesh nemůže rozbalit UV, protože patří jinému zdroji, který byl " -"importován z jiného typu souboru. Udělejte z něj nejprve unikátní zdroj." +"Síť nemůže rozbalit UV, protože patří jinému zdroji, který byl importován z " +"jiného typu souboru. Udělejte z ní nejprve unikátní zdroj." msgid "" "Mesh cannot unwrap UVs because it was imported from another file type. Make " "it unique first." msgstr "" -"Mesh nemůže rozbalit UV, protože byl importován z jiného typu souboru. " -"Udělejte z něj nejprve unikátní zdroj." +"Síť nemůže rozbalit UV, protože byla importována z jiného typu souboru. " +"Udělejte z ní nejprve unikátní zdroj." msgid "Unwrap UV2" msgstr "Rozbalit UV2" msgid "Contained Mesh is not of type ArrayMesh." -msgstr "Obsažená mesh není typu ArrayMesh." +msgstr "Obsažená síť není typu ArrayMesh." msgid "Can't unwrap mesh with blend shapes." -msgstr "Nelze rozbalit mesh model s tvary prolnutí." +msgstr "Nelze rozbalit síť s tvary prolnutí." msgid "Only triangles are supported for lightmap unwrap." msgstr "Pro rozbalení světelné mapy jsou podporovány pouze trojúhelníky." @@ -8380,22 +9415,22 @@ msgid "Normals are required for lightmap unwrap." msgstr "Pro rozbalení světelné mapy jsou vyžadovány normály." msgid "UV Unwrap failed, mesh may not be manifold?" -msgstr "Rozbalení UV se nezdařilo, možná síť není manifold?" +msgstr "Rozbalení UV se nezdařilo, možná síť není varietní?" msgid "No mesh to debug." -msgstr "Žádná mesh pro ladění." +msgstr "Žádná síť pro ladění." msgid "Mesh has no UV in layer %d." -msgstr "Model nemá ve vrstvě %d žádné UV." +msgstr "Síť nemá ve vrstvě %d žádné UV." msgid "Create Navigation Mesh" -msgstr "Vytvořit Navigation Mesh" +msgstr "Vytvořit navigační síť" msgid "MeshInstance3D lacks a Mesh." msgstr "MeshInstance3D nemá Mesh." msgid "Mesh has no surface to create outlines from." -msgstr "Mesh nemá povrch, ze kterého lze vytvořit obrysy." +msgstr "Síť nemá povrch, ze kterého lze vytvořit obrysy." msgid "Mesh primitive type is not PRIMITIVE_TRIANGLES." msgstr "Typ primitivní sítě není PRIMITIVE_TRIANGLES." @@ -8407,7 +9442,7 @@ msgid "Create Outline" msgstr "Vytvořit obrys" msgid "Mesh" -msgstr "Sítě (Mesh)" +msgstr "Síť" msgid "Create Collision Shape..." msgstr "Vytvořit kolizní tvar..." @@ -8421,10 +9456,10 @@ msgid "" "This can be used instead of the StandardMaterial Grow property when using " "that property isn't possible." msgstr "" -"Vytvoří statickou obrysovou síť. Obrysové síti se automaticky převrátí " +"Vytvoří statickou obrysovou síť. Obrysové síti se automaticky překlopí " "normály.\n" -"Toto lze použít namísto vlastnosti Grow ve StandardMaterial, když vlastnost " -"Grow nelze použít." +"Toto lze použít namísto vlastnosti Růst ve StandardMaterial, když vlastnost " +"Růst nelze použít." msgid "View UV1" msgstr "Zobrazit UV1" @@ -8436,7 +9471,7 @@ msgid "Unwrap UV2 for Lightmap/AO" msgstr "Rozbalit UV2 pro světelnou mapu/AO" msgid "Create Outline Mesh" -msgstr "Vytvoření obrysového modelu" +msgstr "Vytvoření obrysové sítě" msgid "Outline Size:" msgstr "Velikost obrysu:" @@ -8454,7 +9489,7 @@ msgid "Creates collision shapes as Sibling." msgstr "Vytvoří kolizní tvary jako sourozence." msgid "Static Body Child" -msgstr "Static Body jako potomek" +msgstr "Statické těleso jako potomek" msgid "Creates a StaticBody3D as child and assigns collision shapes to it." msgstr "Vytvoří StaticBody3D jako potomka a přiřadí mu kolizní tvary." @@ -8463,7 +9498,7 @@ msgid "Collision Shape Type" msgstr "Typ kolizního tvaru" msgid "Trimesh" -msgstr "Trimesh" +msgstr "Trojúhelníková síť" msgid "" "Creates a polygon-based collision shape.\n" @@ -8491,8 +9526,8 @@ msgid "" "geometry in some cases, at the cost of accuracy." msgstr "" "Vytvoří zjednodušený konvexní kolizní tvar.\n" -"Je podobný jednoduchému koliznímu tvaru, ale v některých případech může vést " -"k jednodušší geometrii na úkor přesnosti." +"Je podobný jedinému koliznímu tvaru, ale v některých případech může vést k " +"jednodušší geometrii na úkor přesnosti." msgid "Multiple Convex" msgstr "Více konvexních tvarů" @@ -8503,11 +9538,35 @@ msgid "" "polygon-based collision." msgstr "" "Vytvoří polygonový kolizní tvar.\n" -"Toto je kompromis výkonu a přesnosti ze dvou možností uvedených výše." +"Toto je kompromis výkonu a přesnosti mezi jediným a trojúhelníkovým kolizním " +"tvarem." msgid "UV Channel Debug" msgstr "Ladění UV kanálu" +msgid "Create NavigationMesh" +msgstr "Vytvořit NavigationMesh" + +msgid "" +"Before converting a rendering mesh to a navigation mesh, please verify:\n" +"\n" +"- The mesh is two-dimensional.\n" +"- The mesh has no surface overlap.\n" +"- The mesh has no self-intersection.\n" +"- The mesh surfaces have indices.\n" +"\n" +"If the mesh does not fulfill these requirements, the pathfinding will be " +"broken." +msgstr "" +"Než převedete vykreslovací síť na navigační, prosím ověřte:\n" +"\n" +"- Sít je dvojrozměrná.\n" +"- Síť nemá žádný povrchový překryv.\n" +"- Síť sama sebe neprotíná.\n" +"- Povrchy sítě mají indexy.\n" +"\n" +"Pokud síť nesplňuje tyto požadavky, nebude hledání cest fungovat." + msgid "Remove item %d?" msgstr "Odstranit položku %d?" @@ -8543,20 +9602,19 @@ msgid "Apply with Transforms" msgstr "Aplikovat s transformacemi" msgid "No mesh source specified (and no MultiMesh set in node)." -msgstr "" -"Zdroj meshe není specifikován (a žádná MultiMesh není nastavena v uzlu)." +msgstr "Zdroj sítě není specifikován (a v uzlu není nastavena žádná MultiMesh)." msgid "No mesh source specified (and MultiMesh contains no Mesh)." -msgstr "Zdroj meshe není specifikován (a MultiMesh neobsahuje žádnou Mesh)." +msgstr "Zdroj síťe není specifikován (a MultiMesh neobsahuje žádnou síť)." msgid "Mesh source is invalid (invalid path)." -msgstr "Zdroj meshe je neplatný (neplatná cesta)." +msgstr "Zdroj sítě je neplatný (neplatná cesta)." msgid "Mesh source is invalid (not a MeshInstance3D)." -msgstr "Zdroj meshe je neplatný (není MeshInstance3D)." +msgstr "Zdroj sítě je neplatný (nejedná se o MeshInstance3D)." msgid "Mesh source is invalid (contains no Mesh resource)." -msgstr "Zdroj meshe je neplatný (neobsahuje žádný Mesh zdroj)." +msgstr "Zdroj sítě je neplatný (neobsahuje žádný Mesh zdroj)." msgid "No surface source specified." msgstr "Zdroj povrchu není nastaven." @@ -8568,10 +9626,10 @@ msgid "Surface source is invalid (no geometry)." msgstr "Zdroj povrchu je neplatný (žádná geometrie)." msgid "Surface source is invalid (no faces)." -msgstr "Povrch je neplatný (žádné stěny)." +msgstr "Zdroj povrchu je neplatný (žádné stěny)." msgid "Select a Source Mesh:" -msgstr "Vyberte zdrojový model:" +msgstr "Vyberte zdrojovou síť:" msgid "Select a Target Surface:" msgstr "Vyberte cílový povrch:" @@ -8580,13 +9638,13 @@ msgid "Populate Surface" msgstr "Zaplnit povrch" msgid "Populate MultiMesh" -msgstr "Naplnit MultiMesh" +msgstr "Zaplnit MultiMesh" msgid "Target Surface:" msgstr "Cílový povrch:" msgid "Source Mesh:" -msgstr "Zdrojová mesh:" +msgstr "Zdrojová síť:" msgid "X-Axis" msgstr "Osa X" @@ -8598,13 +9656,13 @@ msgid "Z-Axis" msgstr "Osa Z" msgid "Mesh Up Axis:" -msgstr "Osa mřížky nahoru:" +msgstr "Osa sítě nahoru:" msgid "Random Rotation:" msgstr "Náhodná rotace:" msgid "Random Tilt:" -msgstr "Náhodné naklonění:" +msgstr "Náhodný náklon:" msgid "Random Scale:" msgstr "Náhodné měřítko:" @@ -8613,7 +9671,7 @@ msgid "Amount:" msgstr "Množství:" msgid "Populate" -msgstr "Naplnit" +msgstr "Zaplnit" msgid "Set start_position" msgstr "Nastavit start_position" @@ -8621,9 +9679,45 @@ msgstr "Nastavit start_position" msgid "Set end_position" msgstr "Nastavit end_position" +msgid "Set Obstacle Vertices" +msgstr "Nastavit vrcholy překážky" + +msgid "Edit Obstacle (Flip Winding)" +msgstr "Upravit překážku (překlopit navíjení)" + +msgid "Edit Obstacle (Clear Vertices)" +msgstr "Upravit překážku (promazat vrcholy)" + +msgid "Add Vertex" +msgstr "Přidat vrchol" + +msgid "Edit Vertex" +msgstr "Upravit vrchol" + +msgid "Delete Vertex" +msgstr "Odstranit vrchol" + +msgid "Flip Winding" +msgstr "Překlopit navíjení" + +msgid "Clear Vertices" +msgstr "Promazat vrcholy" + +msgid "Edit Obstacle (Add Vertex)" +msgstr "Upravit překážku (přidat vrchol)" + +msgid "Edit Obstacle (Move Vertex)" +msgstr "Upravit překážku (přesunout vrchol)" + +msgid "Edit Obstacle (Remove Vertex)" +msgstr "Upravit překážku (odstranit vrchol)" + msgid "Please Confirm..." msgstr "Potvrďte prosím..." +msgid "Remove all vertices?" +msgstr "Odstranit všechny vrcholy?" + msgid "Create Navigation Polygon" msgstr "Vytvořit navigační polygon" @@ -8638,10 +9732,10 @@ msgstr "" "geometrii a poté vytvoří vrcholy a polygony navigačního polygonu." msgid "Clear NavigationPolygon" -msgstr "Vymazat navigační polygon" +msgstr "Promazat navigační polygon" msgid "Clears the internal NavigationPolygon outlines, vertices and polygons." -msgstr "Vymaže vnitřní obrysy, vrcholy a polygony NavigationPolygonu." +msgstr "Promaže vnitřní obrysy, vrcholy a polygony NavigationPolygonu." msgid "" "A NavigationPolygon resource must be set or created for this node to work." @@ -8697,23 +9791,26 @@ msgstr "Zadní ortogonální" msgid "Rear Perspective" msgstr "Zadní perspektivní" +msgid "[auto]" +msgstr "[automatické]" + msgid "X-Axis Transform." -msgstr "Změnit osu X." +msgstr "Transformace osy X." msgid "Y-Axis Transform." -msgstr "Změnit osu Y." +msgstr "Transformace osy Y." msgid "Z-Axis Transform." -msgstr "Změnit osu Z." +msgstr "Transformace osy Z." msgid "View Plane Transform." msgstr "Zobrazit transformaci roviny." msgid "Keying is disabled (no key inserted)." -msgstr "Klíčování je deaktivováno (není vložen žádný klíč)." +msgstr "Klíčování je deaktivováno (nebyl vložen žádný klíč)." msgid "Animation Key Inserted." -msgstr "Animační klíč vložen." +msgstr "Klíč animace vložen." msgid "X: %s\n" msgstr "X: %s\n" @@ -8746,7 +9843,7 @@ msgid "FPS: %d" msgstr "FPS: %d" msgid "Translating:" -msgstr "Posun:" +msgstr "Posouvání:" msgid "Instantiating:" msgstr "Instancování:" @@ -8794,19 +9891,19 @@ msgid "Translate" msgstr "Posunout" msgid "Rotating %s degrees." -msgstr "Rotuji %s stupňů." +msgstr "Otočení o %s stupňů." msgid "Translating %s." -msgstr "Posun %s." +msgstr "Posouvání %s." msgid "Rotating %f degrees." -msgstr "Rotace o %f stupňů." +msgstr "Otočení o %f stupňů." msgid "Scaling %s." msgstr "Škálování %s." msgid "Auto Orthogonal Enabled" -msgstr "Auto-ortogonalizace zapnutá" +msgstr "Automatická ortogonalizace zapnutá" msgid "Lock View Rotation" msgstr "Uzamknout rotaci pohledu" @@ -8818,7 +9915,7 @@ msgid "Display Wireframe" msgstr "Drátový pohled" msgid "Display Overdraw" -msgstr "Rentgen pohled" +msgstr "Rentgenový pohled" msgid "Display Lighting" msgstr "Zobrazit osvětlení" @@ -8833,25 +9930,25 @@ msgid "Normal Buffer" msgstr "Normální vyrovnávací paměť" msgid "Shadow Atlas" -msgstr "Stínový atlas" +msgstr "Atlas stínů" msgid "Directional Shadow Map" msgstr "Směrová mapa stínů" msgid "Decal Atlas" -msgstr "Decal atlas" +msgstr "Atlas nálepek" msgid "VoxelGI Lighting" msgstr "VoxelGI osvětlení" msgid "VoxelGI Albedo" -msgstr "VoxelGI Albedo" +msgstr "VoxelGI albedo" msgid "VoxelGI Emission" msgstr "VoxelGI emise" msgid "SDFGI Cascades" -msgstr "Kaskády SDFGI" +msgstr "SDFGI kaskády" msgid "SDFGI Probes" msgstr "SDFGI sondy" @@ -8860,10 +9957,10 @@ msgid "Scene Luminance" msgstr "Světelnost scény" msgid "SSAO" -msgstr "SSAO" +msgstr "Zastínění okolím prostoru obrazovky (SSAO)" msgid "SSIL" -msgstr "SSIL" +msgstr "Nepřímé osvětlení prostoru obrazovky (SSIL)" msgid "VoxelGI/SDFGI Buffer" msgstr "Vyrovnávací paměť VoxelGI/SDFGI" @@ -8878,7 +9975,7 @@ msgid "SpotLight3D Cluster" msgstr "Shluk SpotLight3D" msgid "Decal Cluster" -msgstr "Shluk Decal" +msgstr "Shluk nálepek" msgid "ReflectionProbe Cluster" msgstr "Shluk ReflectionProbe" @@ -8901,6 +9998,9 @@ msgstr "Zobrazit prostředí" msgid "View Gizmos" msgstr "Zobrazit gizma" +msgid "View Transform Gizmo" +msgstr "Zobrazit gizmo transformace" + msgid "View Grid" msgstr "Zobrazit mřížku" @@ -8923,7 +10023,25 @@ msgid "Cinematic Preview" msgstr "Filmový náhled" msgid "Not available when using the OpenGL renderer." -msgstr "Není k dispozici při použití vykreslovacího modulu OpenGL." +msgstr "Není k dispozici při použití vykreslovacího nástroje OpenGL." + +msgid "Viewport Orbit Modifier 1" +msgstr "Modifikátor obkroužení průzoru 1" + +msgid "Viewport Orbit Modifier 2" +msgstr "Modifikátor obkroužení průzoru 2" + +msgid "Viewport Pan Modifier 1" +msgstr "Modifikátor posunu průzoru 1" + +msgid "Viewport Pan Modifier 2" +msgstr "Modifikátor posunu průzoru 2" + +msgid "Viewport Zoom Modifier 1" +msgstr "Modifikátor přiblížení průzoru 1" + +msgid "Viewport Zoom Modifier 2" +msgstr "Modifikátor přiblížení průzoru 2" msgid "Freelook Left" msgstr "Levý volný pohled" @@ -8976,6 +10094,9 @@ msgstr "Začít transformaci otáčení" msgid "Begin Scale Transformation" msgstr "Začít transformaci škálování" +msgid "Reposition Using Collisions" +msgstr "Přemístit za pomoci kolizí" + msgid "Toggle Camera Preview" msgstr "Přepnout náhled kamery" @@ -9018,7 +10139,7 @@ msgid "Snap Nodes to Floor" msgstr "Přichytit uzly k podlaze" msgid "Couldn't find a solid floor to snap the selection to." -msgstr "Nelze najít pevnou podlahu, na kterou by se přichytil výběr." +msgstr "Nepodařilo se najít pevnou podlahu, na kterou by se přichytil výběr." msgid "Add Preview Sun to Scene" msgstr "Přidat náhled slunce do scény" @@ -9057,11 +10178,14 @@ msgstr "" "Seskupí vybraný uzel s jeho potomky. Když poté kliknete na libovolný " "podřízený uzek ve 2D a 3D zobrazení, bude vybrán rodič." +msgid "LMB+Drag: Measure the distance between two points in 3D space." +msgstr "Levé tl. myši+Táhnutí: Měřit vzdálenost mezi dvěma body v 3D prostoru." + msgid "Use Local Space" msgstr "Použít místní prostor" msgid "Use Snap" -msgstr "Použít přichycení" +msgstr "Použít přichytávání" msgid "" "Toggle preview sunlight.\n" @@ -9069,7 +10193,7 @@ msgid "" "disabled." msgstr "" "Přepnout náhled slunečního světla.\n" -"Pokud je do scény přidán uzel DirectionalLight3D, náhled slunečního světla je " +"Je-li do scény přidán uzel DirectionalLight3D, náhled slunečního světla je " "deaktivován." msgid "" @@ -9078,8 +10202,7 @@ msgid "" "disabled." msgstr "" "Přepnout náhled prostředí.\n" -"Pokud je do scény přidán uzel WorldEnvironment, náhled prostředí je " -"deaktivován." +"Je-li do scény přidán uzel WorldEnvironment, náhled prostředí je deaktivován." msgid "Edit Sun and Environment settings." msgstr "Upravit nastavení slunce a prostředí." @@ -9121,7 +10244,7 @@ msgid "Switch Perspective/Orthogonal View" msgstr "Přepnout perspektivní/ortogonální pohled" msgid "Insert Animation Key" -msgstr "Vložit animační klíč" +msgstr "Vložit klíč animace" msgid "Focus Origin" msgstr "Zaměřit počátek" @@ -9148,7 +10271,7 @@ msgid "Snap Object to Floor" msgstr "Přichytit objekt k podlaze" msgid "Transform Dialog..." -msgstr "Transformační dialog..." +msgstr "Dialog transformace..." msgid "1 Viewport" msgstr "1 průzor" @@ -9157,13 +10280,13 @@ msgid "2 Viewports" msgstr "2 průzory" msgid "2 Viewports (Alt)" -msgstr "2 průzory (Alt)" +msgstr "2 průzory (alt)" msgid "3 Viewports" msgstr "3 průzory" msgid "3 Viewports (Alt)" -msgstr "3 průzory (Alt)" +msgstr "3 průzory (alt)" msgid "4 Viewports" msgstr "4 průzory" @@ -9184,7 +10307,7 @@ msgid "Rotate Snap (deg.):" msgstr "Přichycení rotace (stupně):" msgid "Scale Snap (%):" -msgstr "Škálovací přichytávání (%):" +msgstr "Přichycení měřítka (%):" msgid "Viewport Settings" msgstr "Nastavení průzoru" @@ -9194,10 +10317,10 @@ msgid "" "Height aspect mode." msgstr "" "Zorné pole je definované jako vertikální hodnota, jelikož kamera editoru vždy " -"používá režim poměru stran Zachovat Výšku." +"používá režim poměru stran Zachovat výšku." msgid "Perspective VFOV (deg.):" -msgstr "Perspektivní VFOV (stupně):" +msgstr "Perspektivní vertikální zorné pole VFOV (stupně):" msgid "View Z-Near:" msgstr "Pohled Z-blízko:" @@ -9215,7 +10338,7 @@ msgid "Rotate (deg.):" msgstr "Otočit (stupně):" msgid "Scale (ratio):" -msgstr "Změnit měřítko (poměr):" +msgstr "Škálovat (poměr):" msgid "Transform Type" msgstr "Typ transformace" @@ -9258,7 +10381,7 @@ msgid "" msgstr "" "Přidá uzel DirectionalLight3D odpovídající nastavení slunce z náhledu k " "aktuální scéně.\n" -"Přidržením Shift při kliknutí také přidáte do aktuální scény prostředí z " +"Podržením Shift při kliknutí také přidáte do aktuální scény prostředí z " "náhledu ." msgid "Preview Environment" @@ -9274,13 +10397,13 @@ msgid "Sky Energy" msgstr "Energie nebe" msgid "AO" -msgstr "Ambientní okluze (AO)" +msgstr "Zastínění okolím (AO)" msgid "Glow" msgstr "Záře" msgid "Tonemap" -msgstr "Tonemapa" +msgstr "Mapa tónování" msgid "GI" msgstr "Globální iluminace (GI)" @@ -9312,9 +10435,9 @@ msgid "" "Make sure there is at least one MeshInstance3D node in the scene whose visual " "layers are part of the OccluderInstance3D's Bake Mask property." msgstr "" -"Žádné meshe pro vypálení.\n" +"Žádné sítě pro vypálení.\n" "Ujistěte se, že ve scéně existuje alespoň jeden uzel MeshInstance3D, jehož " -"vizuální vrstvy jsou součástí vlastnosti Bake Mask (maska vypálení) uzlu " +"vizuální vrstvy jsou součástí vlastnosti Maska vypálení uzlu " "OccluderInstance3D." msgid "Could not save the new occluder at the specified path:" @@ -9333,7 +10456,8 @@ msgid "ParallaxBackground" msgstr "ParallaxBackground" msgid "Hold Shift to scale around midpoint instead of moving." -msgstr "Podržte Shift pro škálovaní kolem středního bodu namísto pohybu." +msgstr "" +"Podržením Shift můžete namísto pohybu použít škálování kolem středového bodu." msgid "Toggle between minimum/maximum and base value/spread modes." msgstr "" @@ -9343,7 +10467,7 @@ msgid "Restart Emission" msgstr "Restartovat vysílání" msgid "Generate Visibility Rect" -msgstr "Vygenerovat obdélník viditelnosti" +msgstr "Generovat obdélník viditelnosti" msgid "Load Emission Mask" msgstr "Načíst emisní masku" @@ -9372,6 +10496,9 @@ msgstr "Generování obdélníku viditelnosti (čekání na simulaci částic)" msgid "Generating..." msgstr "Generování..." +msgid "Loading emission mask requires ParticleProcessMaterial." +msgstr "Načtení emisní masky vyžaduje ParticleProcessMaterial." + msgid "GPUParticles2D" msgstr "GPUParticles2D" @@ -9379,7 +10506,7 @@ msgid "Convert to CPUParticles2D" msgstr "Převést na CPUParticles2D" msgid "Generation Time (sec):" -msgstr "Čas generování (sek):" +msgstr "Čas generování (s):" msgid "CPUParticles2D" msgstr "CPUParticles2D" @@ -9388,10 +10515,10 @@ msgid "Convert to GPUParticles2D" msgstr "Převést na GPUParticles2D" msgid "Generating Visibility AABB (Waiting for Particle Simulation)" -msgstr "Generování AABB pro viditelnost (čekání na simulaci částic)" +msgstr "Generování AABB viditelnosti (čekání na simulaci částic)" msgid "Generate Visibility AABB" -msgstr "Generovat viditelnostní AABB" +msgstr "Generovat AABB viditelnosti" msgid "\"%s\" doesn't inherit from Node3D." msgstr "\"%s\" nedědí z Node3D." @@ -9409,13 +10536,13 @@ msgid "Create Emission Points From Node" msgstr "Vytvořit emisní body z uzlu" msgid "The geometry's faces don't contain any area." -msgstr "Stěny geometrie neobsahují žádnou oblast." +msgstr "Stěny geometrie neobsahují žádnou plochu." msgid "The geometry doesn't contain any faces." msgstr "Geometrie neobsahuje žádné stěny." msgid "Create Emitter" -msgstr "Vytvořit Emitter" +msgstr "Vytvořit emitor" msgid "Emission Points:" msgstr "Emisní body:" @@ -9430,10 +10557,13 @@ msgid "Volume" msgstr "Objem" msgid "Emission Source:" -msgstr "Zdroj emisí:" +msgstr "Zdroj emise:" msgid "A processor material of type 'ParticleProcessMaterial' is required." -msgstr "Je vyžadován procesní materiál typu \"ParticlesProcessMaterial\"." +msgstr "Je vyžadován procesní materiál typu 'ParticlesProcessMaterial'." + +msgid "Create Emission Points" +msgstr "Vytvořit emisní body" msgid "GPUParticles3D" msgstr "GPUParticles3D" @@ -9445,16 +10575,16 @@ msgid "CPUParticles3D" msgstr "CPUParticles3D" msgid "Convert to GPUParticles3D" -msgstr "Převést na CPUParticles3D" +msgstr "Převést na GPUParticles3D" msgid "Remove Point from Curve" msgstr "Odstranit bod z křivky" msgid "Remove Out-Control from Curve" -msgstr "Odstranit odchozí kontrolní bod křivky" +msgstr "Odstranit výstupní kontrolní bod křivky" msgid "Remove In-Control from Curve" -msgstr "Odstranit příchozí kontrolní bod křivky" +msgstr "Odstranit vstupní kontrolní bod křivky" msgid "Move Point in Curve" msgstr "Přesunout bod v křivce" @@ -9466,16 +10596,19 @@ msgid "Split Curve" msgstr "Rozdělit křivku" msgid "Move In-Control in Curve" -msgstr "Odstranit vstupní kontrolní bod křivky" +msgstr "Přesunout vstupní kontrolní bod křivky" msgid "Move Out-Control in Curve" -msgstr "Přesunout odchozí kontrolní bod křivky" +msgstr "Přesunout výstupní kontrolní bod křivky" msgid "Close the Curve" msgstr "Uzavřít křivku" msgid "Clear Curve Points" -msgstr "Vymazat body křivky" +msgstr "Promazat body křivky" + +msgid "Create Curve in Path2D" +msgstr "Vytvořit křivku v Path2D" msgid "Select Points" msgstr "Vybrat body" @@ -9505,7 +10638,7 @@ msgid "Close Curve" msgstr "Uzavřít křivku" msgid "Clear Points" -msgstr "Vymazat body" +msgstr "Promazat body" msgid "Remove all curve points?" msgstr "Odstranit všechny body křivky?" @@ -9516,17 +10649,20 @@ msgstr "Zrcadlit úhly úchytů" msgid "Mirror Handle Lengths" msgstr "Zrcadlit délku úchytů" +msgid "Create Curve" +msgstr "Vytvořit křivku" + msgid "Curve Point #" -msgstr "Bod křivky #" +msgstr "Bod křivky číslo" msgid "Handle In #" -msgstr "Úchyt vstupu #" +msgstr "Úchyt vstupu číslo" msgid "Handle Out #" -msgstr "Úchyt výstupu #" +msgstr "Úchyt výstupu číslo" msgid "Handle Tilt #" -msgstr "Úchyt náklonu #" +msgstr "Úchyt náklonu číslo" msgid "Set Curve Point Position" msgstr "Nastavit pozici bodu křivky" @@ -9547,7 +10683,7 @@ msgid "Remove Path Point" msgstr "Odstranit bod cesty" msgid "Reset Out-Control Point" -msgstr "Obnovit odchozí kontrolní bod" +msgstr "Obnovit výstupní kontrolní bod" msgid "Reset In-Control Point" msgstr "Obnovit vstupní kontrolní bod" @@ -9555,6 +10691,12 @@ msgstr "Obnovit vstupní kontrolní bod" msgid "Reset Point Tilt" msgstr "Obnovit náklon bodu" +msgid "Toggle Open/Closed Curve" +msgstr "Přepnout mezi otevřenou a uzavřenou křivkou" + +msgid "Create Curve in Path3D" +msgstr "Vytvořit křivku v Path3D" + msgid "Shift+Click: Select multiple Points" msgstr "Shift+Klik: Vybrat více bodů" @@ -9574,7 +10716,7 @@ msgid "Move Joint" msgstr "Přesunout kloub" msgid "Plugin name cannot be blank." -msgstr "Název pluginu nesmí být prázdný." +msgstr "Název zásuvného modulu nesmí být prázdný." msgid "Subfolder name is not a valid folder name." msgstr "Název podsložky není platný název složky." @@ -9593,19 +10735,19 @@ msgstr "" "být sestaven." msgid "Edit a Plugin" -msgstr "Editovat plugin" +msgstr "Upravit zásuvný modul" msgid "Create a Plugin" -msgstr "Vytvořit plugin" +msgstr "Vytvořit zásuvný modul" msgid "Update" msgstr "Aktualizovat" msgid "Plugin Name:" -msgstr "Název pluginu:" +msgstr "Název zásuvného modulu:" msgid "Required. This name will be displayed in the list of plugins." -msgstr "Povinné. Tento název bude zobrazen v seznamu pluginů." +msgstr "Povinné. Tento název bude zobrazen v seznamu zásuvných modulů." msgid "Subfolder:" msgstr "Podsložka:" @@ -9618,21 +10760,23 @@ msgid "" msgstr "" "Volitelné. Název složky by se měl držet formátu `snake_case` (vyhněte se " "mezerám a speciálním znakům).\n" -"Ponecháte-li prázdné, ponese složka název pluginu ve formátu `snake_case`." +"Ponecháte-li prázdné, ponese složka název zásuvného modulu ve formátu " +"`snake_case`." msgid "" "Optional. This description should be kept relatively short (up to 5 lines).\n" "It will display when hovering the plugin in the list of plugins." msgstr "" "Volitelné. Tento popis by měl být relativně krátký (do 5 řádků).\n" -"Zobrazí se při najetí myší na plugin v seznamu pluginů." +"Zobrazí se při najetí myší na modul v seznamu zásuvných modulů." msgid "Author:" msgstr "Autor:" msgid "Optional. The author's username, full name, or organization name." msgstr "" -"Volitelné. Uživatelské jméno nebo celé jméno autora, nebo název organizace." +"Volitelné. Uživatelské jméno nebo celé jméno autora, případně název " +"organizace." msgid "" "Optional. A human-readable version identifier used for informational purposes " @@ -9646,16 +10790,23 @@ msgid "" "to the plugin." msgstr "" "Povinné. Skriptovací jazyk, který se má použít pro skript.\n" -"Plugin může používat několik jazyků najednou přidáním více skriptů do pluginu." +"Zásuvný modul může používat několik jazyků najednou přidáním více skriptů." msgid "Script Name:" msgstr "Název skriptu:" +msgid "" +"Optional. The name of the script file. If left empty, will default to the " +"subfolder name." +msgstr "" +"Volitelné. Název souboru skriptu. Ponecháte-li prázdné, bude použit název " +"podsložky." + msgid "Activate now?" msgstr "Aktivovat nyní?" msgid "Plugin name is valid." -msgstr "Název pluginu je platný." +msgstr "Název zásuvného modulu je platný." msgid "Script extension is valid." msgstr "Přípona skriptu je platná." @@ -9665,7 +10816,7 @@ msgstr "Název podsložky je platný." msgid "" "The skeleton property of the Polygon2D does not point to a Skeleton2D node" -msgstr "Vlastnost kostry (skeleton) v Polygon2D neodkazuje na uzel Skeleton2D" +msgstr "Vlastnost kostra uzlu Polygon2D neodkazuje na uzel Skeleton2D" msgid "Sync Bones" msgstr "Synchronizovat kosti" @@ -9720,9 +10871,15 @@ msgstr "Kosti" msgid "Move Points" msgstr "Přesunout body" +msgid "%s: Rotate" +msgstr "%s: Otáčet" + msgid "Shift: Move All" msgstr "Shift: Přesunout vše" +msgid "%s + Shift: Scale" +msgstr "%s + Shift: Škálovat" + msgid "Move Polygon" msgstr "Přesunout polygon" @@ -9733,19 +10890,19 @@ msgid "Scale Polygon" msgstr "Změnit měřítko polygonu" msgid "Create a custom polygon. Enables custom polygon rendering." -msgstr "Vytvořit vlastní polygon. Aktivuje renderování vlastních polygonů." +msgstr "Vytvořit vlastní polygon. Aktivuje vykreslování vlastních polygonů." msgid "" "Remove a custom polygon. If none remain, custom polygon rendering is disabled." msgstr "" -"Odstranit vlastní polygon. Pokud žádný nezbývá, je renderování vlastních " +"Odstranit vlastní polygon. Pokud žádný nezbývá, je vykreslování vlastních " "polygonů deaktivováno." msgid "Paint weights with specified intensity." msgstr "Kreslit váhy se zadanou intenzitou." msgid "Unpaint weights with specified intensity." -msgstr "Odebrat hmotnosti se zadanou intnzitou." +msgstr "Odebrat váhy se zadanou intnzitou." msgid "Radius:" msgstr "Poloměr:" @@ -9757,13 +10914,13 @@ msgid "Copy UV to Polygon" msgstr "Kopírovat UV do polygonu" msgid "Clear UV" -msgstr "Vymazat UV" +msgstr "Promazat UV" msgid "Grid Settings" msgstr "Nastavení mřížky" msgid "Snap" -msgstr "Přichytit" +msgstr "Přichytávat" msgid "Enable Snap" msgstr "Povolit přichytávání" @@ -9789,6 +10946,12 @@ msgstr "Krok mřížky Y:" msgid "Sync Bones to Polygon" msgstr "Synchronizovat kosti do polygonu" +msgid "Polygon" +msgstr "Polygon" + +msgid "Toggle Polygon Bottom Panel" +msgstr "Přepnout spodní panel Polygon" + msgid "Create Polygon3D" msgstr "Vytvořit Polygon3D" @@ -9820,7 +10983,7 @@ msgid "Load Resource" msgstr "Načíst zdroj" msgid "Toggle ResourcePreloader Bottom Panel" -msgstr "Přepnout spodní panel ResourcePreloader" +msgstr "Přepnout spodní panel Přednačtení zdrojů" msgid "Path to AnimationMixer is invalid" msgstr "Cesta k AnimationMixer je neplatná" @@ -9831,6 +10994,12 @@ msgstr "" "AnimationMixer nemá platnou cestu ke kořenovému uzlu, takže nelze získat " "jména stop." +msgid "(truncated)" +msgstr "(zkráceno)" + +msgid "Current value: " +msgstr "Aktuální hodnota: " + msgid "Can't open '%s'. The file could have been moved or deleted." msgstr "Nelze otevřít '%s'. Soubor mohl být přesunut nebo smazán." @@ -9838,7 +11007,7 @@ msgid "Close and save changes?" msgstr "Zavřít a uložit změny?" msgid "Error writing TextFile:" -msgstr "Chyba při ukládání TextFile souboru:" +msgstr "Chyba při zapisování do textového souboru:" msgid "Error saving file!" msgstr "Chyba při ukládání souboru!" @@ -9862,7 +11031,7 @@ msgid "Open File" msgstr "Otevřít soubor" msgid "Could not load file at:" -msgstr "Nelze načíst soubor:" +msgstr "Nepodařilo se načíst soubor:" msgid "Save File As..." msgstr "Uložit soubor jako..." @@ -9877,10 +11046,11 @@ msgid "Cannot run the edited file because it's not a script." msgstr "Nelze spustit upravovaný soubor, protože se nejedná o skript." msgid "Cannot run the script because it contains errors, check the output log." -msgstr "Nelze spustit skript protože obsahuje chyby. Zkontrolujte výstupní log." +msgstr "" +"Skript nelze spustit, protože obsahuje chyby. Zkontrolujte výstupní log." msgid "Cannot run the script because it doesn't extend EditorScript." -msgstr "Nelze spustit skript protože není rozšířením EditorScript." +msgstr "Skript nelze spustit, protože není rozšířením EditorScript." msgid "" "Cannot run the script because it's not a tool script (add the @tool " @@ -9953,7 +11123,10 @@ msgid "Soft Reload Tool Script" msgstr "Lehký restart nástrojového skriptu" msgid "Copy Script Path" -msgstr "Zkopírovat cestu ke skriptu" +msgstr "Kopírovat cestu ke skriptu" + +msgid "Copy Script UID" +msgstr "Kopírovat UID skriptu" msgid "History Previous" msgstr "Historie předchozí" @@ -9994,14 +11167,21 @@ msgstr "Přejít na předchozí upravovaný dokument." msgid "Go to next edited document." msgstr "Přejít na další upravovaný dokument." +msgid "" +"Make the script editor floating.\n" +"Right-click to open the screen selector." +msgstr "" +"Otevřít editor skriptů v plovoucím doku.\n" +"Pravé tlačíko otevře výběr obrazovky." + msgid "Discard" msgstr "Zahodit" msgid "Search Results" -msgstr "Výsledky prohledávání" +msgstr "Výsledky vyhledávání" msgid "Toggle Search Results Bottom Panel" -msgstr "Přepnout spodní panel výsledků prohledávání" +msgstr "Přepnout spodní panel Výsledky vyhledávání" msgid "There are unsaved changes in the following built-in script(s):" msgstr "V následujících vestavěných skriptech jsou neuložené změny:" @@ -10013,7 +11193,7 @@ msgid "Reopen Closed Script" msgstr "Znovu otevřít zavřený skript" msgid "Clear Recent Scripts" -msgstr "Vymazat nedávné skripty" +msgstr "Promazat nedávné skripty" msgid "Uppercase" msgstr "Velká písmena" @@ -10025,7 +11205,7 @@ msgid "Capitalize" msgstr "První písmena velká" msgid "Standard" -msgstr "Standard" +msgstr "Standardní" msgid "Plain Text" msgstr "Prostý text" @@ -10033,6 +11213,9 @@ msgstr "Prostý text" msgid "JSON" msgstr "JSON" +msgid "Markdown" +msgstr "Markdown" + msgid "Connections to method:" msgstr "Připojení k metodě:" @@ -10047,7 +11230,8 @@ msgstr "Chyba na (%d. %d):" msgid "" "Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." -msgstr "Chybí metoda '%s' napojená na signál '%s' z uzlu '%s' do uzlu '%s'." +msgstr "" +"Chybějící připojená metoda '%s' pro signál '%s' z uzlu '%s' do uzlu '%s'." msgid "[Ignore]" msgstr "[Ignorovat]" @@ -10075,7 +11259,10 @@ msgid "Can't drop nodes without an open scene." msgstr "Nelze zahodit uzly bez otevřené scény." msgid "Can't drop nodes because script '%s' does not inherit Node." -msgstr "Nelze zahodit uzly, protože skript \"%s\" nedědí z Node." +msgstr "Nelze zahodit uzly, protože skript '%s' nedědí z Node." + +msgid "Emoji & Symbols" +msgstr "Emoji a symboly" msgid "Pick Color" msgstr "Vybrat barvu" @@ -10144,7 +11331,7 @@ msgid "Convert Indent to Tabs" msgstr "Převést odsazení na tabulátory" msgid "Auto Indent" -msgstr "Automatické odsazení" +msgstr "Automatické odsazování" msgid "Find in Files..." msgstr "Najít v souborech..." @@ -10156,7 +11343,7 @@ msgid "Contextual Help" msgstr "Kontextová nápověda" msgid "Toggle Bookmark" -msgstr "Vypnout/Zapnout záložku" +msgstr "Přepnout záložku" msgid "Go to Next Bookmark" msgstr "Přejít na další záložku" @@ -10209,14 +11396,24 @@ msgstr "Uložit soubor" msgid "Open File in Inspector" msgstr "Otevřít soubor v inspektoru" +msgid "Inspect Native Shader Code..." +msgstr "Prozkoumat nativní kód shaderu..." + msgid "Close File" msgstr "Zavřít soubor" msgid "Shader Editor" msgstr "Editor shaderů" +msgid "" +"Make the shader editor floating.\n" +"Right-click to open the screen selector." +msgstr "" +"Otevřít editor shaderů v plovoucím doku.\n" +"Pravé tlačíko otevře výběr obrazovky." + msgid "Toggle Shader Editor Bottom Panel" -msgstr "Přepnout spodní panel editoru shaderů" +msgstr "Přepnout spodní panel Editor shaderů" msgid "No valid shader stages found." msgstr "Nebyly nalezeny žádné platné fáze shaderu." @@ -10232,10 +11429,10 @@ msgstr "" "\n" msgid "ShaderFile" -msgstr "ShaderFile" +msgstr "Soubor shaderu" msgid "Toggle ShaderFile Bottom Panel" -msgstr "Přepnout spodní panel ShaderFile" +msgstr "Přepnout spodní panel Soubor shaderu" msgid "This skeleton has no bones, create some children Bone2D nodes." msgstr "Kostra nemá žádné kosti, vytvořte nějaké uzly Bone2D jako potomky." @@ -10247,7 +11444,7 @@ msgid "Create Rest Pose from Bones" msgstr "Vytvořit klidovou pózu z kostí" msgid "Skeleton2D" -msgstr "Skeleton2D (Kostra 2D)" +msgstr "Skeleton2D" msgid "Reset to Rest Pose" msgstr "Obnovit klidovou pózu" @@ -10255,9 +11452,24 @@ msgstr "Obnovit klidovou pózu" msgid "Overwrite Rest Pose" msgstr "Přepsat klidovou pózu" +msgid "Bone Metadata" +msgstr "Metadata kosti" + +msgid "Add Bone Metadata" +msgstr "Přidat metadata kosti" + msgid "Set Bone Transform" msgstr "Nastavit transformaci kosti" +msgid "Modify metadata '%s' for bone '%s'" +msgstr "Upravit metadata '%s' pro kost '%s'" + +msgid "Remove metadata '%s' from bone '%s'" +msgstr "Odstranit metadata '%s' z kosti %s" + +msgid "Add metadata '%s' to bone '%s'" +msgstr "Přidat metadata '%s' ke kosti '%s'" + msgid "Set Bone Rest" msgstr "Nastavit klid kosti" @@ -10276,6 +11488,12 @@ msgstr "Exportovat profil kostry jako..." msgid "Set Bone Parentage" msgstr "Přichytit kost k rodičovi" +msgid "Revert Bone" +msgstr "Vrátit kost zpět" + +msgid "Revert" +msgstr "Vrátit zpět" + msgid "Skeleton3D" msgstr "Skeleton3D" @@ -10401,7 +11619,7 @@ msgid "Add Frame" msgstr "Přidat snímek" msgid "Unable to load images" -msgstr "Selhalo nahrání obrázků" +msgstr "Nepodařilo se nahrát obrázky" msgid "ERROR: Couldn't load frame resource!" msgstr "CHYBA: Nelze načíst zdroj snímku!" @@ -10464,10 +11682,10 @@ msgid "Play selected animation from current pos. (D)" msgstr "Přehrát vybranou animaci od vybrané pozice. (D)" msgid "Frame Duration:" -msgstr "Délka snímku:" +msgstr "Trvání snímku:" msgid "Zoom Reset" -msgstr "Obnovení lupy" +msgstr "Obnovení přiblížení" msgid "Add frame from file" msgstr "Přidat snímek ze souboru" @@ -10500,7 +11718,7 @@ msgid "Frame Order" msgstr "Pořadí snímků" msgid "As Selected" -msgstr "Jako vybraný" +msgstr "Podle výběru" msgid "By Row" msgstr "Podle řádků" @@ -10533,10 +11751,10 @@ msgid "Bottom to Top, Right to Left" msgstr "Zdola nahoru, zprava doleva" msgid "Select None" -msgstr "Vybrat nic" +msgstr "Vybrat žádné" msgid "Toggle Settings Panel" -msgstr "Přepnout panel nastavení" +msgstr "Přepnout panel Nastavení" msgid "Horizontal" msgstr "Horizontální" @@ -10551,19 +11769,19 @@ msgid "Separation" msgstr "Oddělení" msgid "Offset" -msgstr "Offset(Posun)" +msgstr "Offset" msgid "Auto Slice" msgstr "Automatický řez" msgid "Create Frames from Sprite Sheet" -msgstr "Vytvořit rámečky ze Sprite Sheet" +msgstr "Vytvořit snímky z archu spritů" msgid "SpriteFrames" -msgstr "SpriteFrames" +msgstr "Snímky spritu" msgid "Toggle SpriteFrames Bottom Panel" -msgstr "Přepnout spodní panel SpriteFrames" +msgstr "Přepnout spodní panel Snímky spritu" msgid "Warnings should be fixed to prevent errors." msgstr "Varování by měla být opravena, aby se předešlo chybám." @@ -10573,7 +11791,7 @@ msgid "" "What action should be taken?" msgstr "" "Tento shader byl na disku upraven.\n" -"Jaká akce se má vykonat?" +"Jaká akce by měla být provedena?" msgid "Reload" msgstr "Znovu načíst" @@ -10676,9 +11894,9 @@ msgstr "Nebyly nalezeny žádné styleboxy." msgid "{num} currently selected" msgid_plural "{num} currently selected" -msgstr[0] "právě vybrán {num}" -msgstr[1] "právě vybrány {num}" -msgstr[2] "právě vybráno {num}" +msgstr[0] "aktuálně vybrán {num}" +msgstr[1] "aktuálně vybrány {num}" +msgstr[2] "aktuálně vybráno {num}" msgid "Nothing was selected for the import." msgstr "Pro import nebylo nic vybráno." @@ -10705,25 +11923,25 @@ msgid "With Data" msgstr "S daty" msgid "Select by data type:" -msgstr "Výběr podle typu dat:" +msgstr "Vybrat podle datového typu:" msgid "Select all visible color items." -msgstr "Vybrat všechny viditelné barevné položky." +msgstr "Vybrat všechny viditelné položky barev." msgid "Select all visible color items and their data." -msgstr "Vybrat všechny viditelné barevné položky a jejich data." +msgstr "Vybrat všechny viditelné položky barev a jejich data." msgid "Deselect all visible color items." -msgstr "Zrušit výběr všech viditelných barevných položek." +msgstr "Zrušit výběr všech viditelných položek barev." msgid "Select all visible constant items." -msgstr "Vybrat všechny viditelné konstantní položky." +msgstr "Vybrat všechny viditelné položky konstant." msgid "Select all visible constant items and their data." msgstr "Vybrat všechny viditelné položky konstant a jejich data." msgid "Deselect all visible constant items." -msgstr "Zrušit výběr všech viditelných konstantních položek." +msgstr "Zrušit výběr všech viditelných položek konstant." msgid "Select all visible font items." msgstr "Vybrat všechny viditelné položky fontů." @@ -10787,7 +12005,7 @@ msgid "Select all Theme items with item data." msgstr "Vybrat všechny položky motivu s daty." msgid "Deselect All" -msgstr "Zrušit všechen výběr" +msgstr "Zrušit výběr všeho" msgid "Deselect all Theme items." msgstr "Zrušit výběr všech položek motivu." @@ -10805,7 +12023,7 @@ msgstr "" "Přesto zavřít?" msgid "Remove Type" -msgstr "Odstranit typ" +msgstr "Odebrat typ" msgid "" "Select a theme type from the list to edit its items.\n" @@ -10816,7 +12034,7 @@ msgstr "" "motivu." msgid "Remove All Color Items" -msgstr "Odebrat všechny položky barvy" +msgstr "Odebrat všechny položky barev" msgid "Rename Item" msgstr "Přejmenovat položku" @@ -10828,23 +12046,23 @@ msgid "Remove All Font Items" msgstr "Odebrat všechny položky fontů" msgid "Remove All Font Size Items" -msgstr "Odstranit všechny položky velikosti fontu" +msgstr "Odebrat všechny položky velikosti fontu" msgid "Remove All Icon Items" -msgstr "Odstranit všechny položky ikon" +msgstr "Odebrat všechny položky ikon" msgid "Remove All StyleBox Items" -msgstr "Odstranit všechny položky styleboxů" +msgstr "Odebrat všechny položky styleboxů" msgid "" "This theme type is empty.\n" "Add more items to it manually or by importing from another theme." msgstr "" "Tento typ motivu je prázdný.\n" -"Přidejte do něj více položek manuálně, nebo importováním z jiného motivu." +"Přidejte do něj více položek ručně nebo importováním z jiného motivu." msgid "Remove Theme Item" -msgstr "Odstranit položku motivu" +msgstr "Odebrat položku motivu" msgid "Add Theme Type" msgstr "Přidat typ motivu" @@ -10853,19 +12071,19 @@ msgid "Create Theme Item" msgstr "Vytvořit položku motivu" msgid "Remove Theme Type" -msgstr "Odstranit typ položky" +msgstr "Odebrat typ motivu" msgid "Remove Data Type Items From Theme" -msgstr "Odstranit položky datových typů z motivu" +msgstr "Odebrat položky datových typů z motivu" msgid "Remove Class Items From Theme" -msgstr "Odstranit položky třídy z motivu" +msgstr "Odebrat položky tříd z motivu" msgid "Remove Custom Items From Theme" -msgstr "Odstranit vlastní položky z motivu" +msgstr "Odebrat vlastní položky z motivu" msgid "Remove All Items From Theme" -msgstr "Odstranit všechny položky z motivu" +msgstr "Odebrat všechny položky z motivu" msgid "Add Color Item" msgstr "Přidat položku barvy" @@ -10925,22 +12143,22 @@ msgid "Add Type:" msgstr "Přidat typ:" msgid "Add Item:" -msgstr "Přidat prvek:" +msgstr "Přidat položku:" msgid "Add StyleBox Item" msgstr "Přiidat položku styleboxu" msgid "Remove Items:" -msgstr "Odstranit položky:" +msgstr "Odebrat položky:" msgid "Remove Class Items" -msgstr "Odstranit položky třídy" +msgstr "Odebrat položky tříd" msgid "Remove Custom Items" -msgstr "Odstranit vlastní položky" +msgstr "Odebrat vlastní položky" msgid "Remove All Items" -msgstr "Odstranit všechny položky" +msgstr "Odebrat všechny položky" msgid "Add Theme Item" msgstr "Přidat položku motivu" @@ -10958,13 +12176,13 @@ msgid "Editor Theme" msgstr "Motiv editoru" msgid "Select Another Theme Resource:" -msgstr "Vybrerte jiný zdroj motivu:" +msgstr "Vybrat jiný zdroj motivu:" msgid "Theme Resource" msgstr "Zdroj motivu" msgid "Another Theme" -msgstr "Další motiv" +msgstr "Jiný motiv" msgid "Filter the list of types or create a new custom type:" msgstr "Filtrovat seznam typů nebo vytvořit nový vlastní typ:" @@ -11086,15 +12304,15 @@ msgid "Default Preview" msgstr "Výchozí náhled" msgid "Select UI Scene:" -msgstr "Vyberte scénu uživatelského rozhraní:" +msgstr "Vybrat scénu uživatelského rozhraní:" msgid "Toggle Theme Bottom Panel" -msgstr "Přepnout spodní panel motivů" +msgstr "Přepnout spodní panel Motiv" msgid "" "Toggle the control picker, allowing to visually select control types for edit." msgstr "" -"Přepnout výběr ovládacích prvků, umožňující vizuálně vybrat typy ovládacích " +"Přepnout výběr ovládacích prvků umožňující vizuálně vybrat typ ovládacích " "prvků pro úpravu." msgid "Toggle Button" @@ -11180,7 +12398,7 @@ msgid "%s (ID: %d)" msgstr "%s (ID: %d)" msgid "Atlas Merging" -msgstr "Sloučení atlasu" +msgstr "Sloučení atlasů" msgid "Merge (Keep original Atlases)" msgstr "Sloučit (zachovat původní atlasy)" @@ -11229,7 +12447,7 @@ msgid "Reset Polygons" msgstr "Obnovit polygony" msgid "Clear Polygons" -msgstr "Vymazat polygony" +msgstr "Promazat polygony" msgid "Rotate Polygons Right" msgstr "Otočit polygony doprava" @@ -11238,10 +12456,10 @@ msgid "Rotate Polygons Left" msgstr "Otočit polygony doleva" msgid "Flip Polygons Horizontally" -msgstr "Převrátit polygony horizontálně" +msgstr "Překlopit polygony horizontálně" msgid "Flip Polygons Vertically" -msgstr "Převrátit polygony vertikálně" +msgstr "Překlopit polygony vertikálně" msgid "Edit Polygons" msgstr "Upravit polygony" @@ -11268,16 +12486,16 @@ msgid "Rotate Left" msgstr "Otočit doleva" msgid "Flip Horizontally" -msgstr "Převrátit horizontálně" +msgstr "Překlopit horizontálně" msgid "Flip Vertically" -msgstr "Převrátit vertikálně" +msgstr "Překlopit vertikálně" msgid "Disable Snap" msgstr "Zakázat přichytávání" msgid "Half-Pixel Snap" -msgstr "Přichycení na půlpixely" +msgstr "Přichytávání na půlpixely" msgid "Painting Tiles Property" msgstr "Kreslení vlastnosti dlaždic" @@ -11319,7 +12537,7 @@ msgid "Add TileSet pattern" msgstr "Přidat vzor TileSet" msgid "Remove TileSet patterns" -msgstr "Odstranit vzory TileSet" +msgstr "Odstranit vzory sady dlaždic" msgid "Index: %d" msgstr "Index: %d" @@ -11352,8 +12570,11 @@ msgstr "Kreslit dlaždice" msgid "Paste tiles" msgstr "Vložit dlaždice" +msgid "Selection Tool" +msgstr "Nástroj výběru" + msgid "Shift: Draw line." -msgstr "Shift: Kreslit čáru." +msgstr "Shift: Kreslit linku." msgid "Shift: Draw rectangle." msgstr "Shift: Kreslit obdélník." @@ -11392,6 +12613,13 @@ msgstr "Rozptyl:" msgid "Tiles" msgstr "Dlaždice" +msgid "" +"This TileMap's TileSet has no Tile Source configured. Go to the TileSet " +"bottom panel to add one." +msgstr "" +"Sada dlaždic této mapy nemá nakonfigurovaný žádný Zdroj dlaždic. Pro jeho " +"přidání využijte spodní panel Sada dlažic." + msgid "Sort sources" msgstr "Seřadit zdroje" @@ -11408,8 +12636,7 @@ msgid "Patterns" msgstr "Vzory" msgid "Drag and drop or paste a TileMap selection here to store a pattern." -msgstr "" -"Přetáhněte sem nebo vložte výběr dlaždicové mapy (TileMap) pro uložení vzoru." +msgstr "Přetáhněte sem nebo vložte výběr mapy dlaždic pro uložení vzoru." msgid "Paint terrain" msgstr "Kreslit terén" @@ -11466,8 +12693,7 @@ msgid "" "Create or load a TileSet resource in the Tile Set property in the inspector." msgstr "" "Upravovaný uzel TileMap nebo TileMapLayer nemá nastavený zdroj TileSet.\n" -"Vytvořte nebo načtěte zdroj TileSet ve vlastnosti Dlaždicová sada v " -"inspektoru." +"Vytvořte nebo načtěte zdroj TileSet ve vlastnosti Sada dlaždic v inspektoru." msgid "Select Next Tile Map Layer" msgstr "Vybrat další vrstvu mapy dlaždic" @@ -11476,7 +12702,7 @@ msgid "Select Previous Tile Map Layer" msgstr "Vybrat předchozí vrstvu mapy dlaždic" msgid "TileMap Layers" -msgstr "Vrstvy TileMapy" +msgstr "Vrstvy mapy dlaždic" msgid "Select previous layer" msgstr "Vybrat předchozí vrstvu" @@ -11488,7 +12714,7 @@ msgid "Select all layers" msgstr "Vybrat všechny vrstvy" msgid "Select all TileMapLayers in scene" -msgstr "Vybrat všechny vrstvy TileMapLayer ve scéně" +msgstr "Vybrat všechny uzly TileMapLayer ve scéně" msgid "Highlight Selected TileMap Layer" msgstr "Zvýraznit zvolenou vrstvu mapy dlaždic" @@ -11509,7 +12735,7 @@ msgid "Create Coords-level Tile Proxy" msgstr "Vytvořit dlaždicovou proxy souřadnicové úrovně" msgid "Create source-level Tile Proxy" -msgstr "Vytvořit dlaždicovou proxy úrovně zdroje" +msgstr "Vytvořit dlaždicovou proxy zdrojové úrovně" msgid "Delete All Invalid Tile Proxies" msgstr "Smazat všechny neplatné proxy dlaždic" @@ -11527,7 +12753,7 @@ msgid "Coords-level proxies" msgstr "Proxy na úrovni souřadnic" msgid "Alternative-level proxies" -msgstr "Proxy na úrovni alternativy" +msgstr "Proxy na úrovni alternativ" msgid "Add a new tile proxy:" msgstr "Přidat novou proxy dlaždice:" @@ -11592,7 +12818,7 @@ msgid "Y Sort Origin" msgstr "Počátek řazení podle Y" msgid "Occlusion Layer %d" -msgstr "Okluzní vrstva %d" +msgstr "Krycí vrstva %d" msgid "Probability" msgstr "Pravděpodobnost" @@ -11609,7 +12835,8 @@ msgstr "Žádné fyzikální vrstvy" msgid "" "Create and customize physics layers in the inspector of the TileSet resource." msgstr "" -"Vytvářejte a přizpůsobujte fyzikální vrstvy v inspektoru zdroje TileSet." +"Fyzikální vrstvy vytvoříte a přizpůsobíte v inspektoru zdroje sady dlaždic " +"TileSet." msgid "Navigation Layer %d" msgstr "Navigační vrstva %d" @@ -11621,7 +12848,8 @@ msgid "" "Create and customize navigation layers in the inspector of the TileSet " "resource." msgstr "" -"Vytvářejte a přizpůsobujte navigační vrstvy v inspektoru zdroje TileSet." +"Navigační vrstvy vytvoříte a přizpůsobíte v inspektoru zdroje sady dlaždic " +"TileSet." msgid "Custom Data" msgstr "Vlastní data" @@ -11636,17 +12864,18 @@ msgid "" "Create and customize custom data layers in the inspector of the TileSet " "resource." msgstr "" -"Vytvářejte a přizpůsobujte vrstvy vlastních dat v inspektoru zdroje TileSet." +"Vrstvy vlastních dat vytvoříte a přizpůsobíte v inspektoru zdroje sady " +"dlaždic TileSet." msgid "Select a property editor" -msgstr "Vybrat editor vlastnosti" +msgstr "Vybrat editor vlastností" msgid "" "TileSet is in read-only mode. Make the resource unique to edit TileSet " "properties." msgstr "" -"TileSet je v režimu pouze pro čtení. Udělejte z něj unikátní zdroj, abyste " -"mohli upravovat jeho vlastnosti." +"Sada dlaždic je v režimu pouze pro čtení. Chcete-li upravovat její " +"vlastnosti, udělejte ji jedinečnou." msgid "Paint properties." msgstr "Vlastnosti kreslení." @@ -11682,52 +12911,52 @@ msgid "Create tiles in non-transparent texture regions" msgstr "Vytvořit dlaždice v neprůhledných oblastech textury" msgid "Remove tiles in fully transparent texture regions" -msgstr "Odstranic dlaždice ve zcela průhledných oblastech textury" +msgstr "Odstranit dlaždice ve zcela průhledných oblastech textury" msgid "" "The tile's unique identifier within this TileSet. Each tile stores its source " "ID, so changing one may make tiles invalid." msgstr "" -"Jedinečný identifikátor dlaždice v tomto TileSetu. Každá dlaždice si uchovává " -"své zdrojové ID, takže změna jednoho může dlaždice zneplatnit." +"Jedinečný identifikátor dlaždice v této sadě dlaždic. Každá dlaždice si " +"uchovává své zdrojové ID, takže jeho změna může dlaždice zneplatnit." msgid "" "The human-readable name for the atlas. Use a descriptive name here for " "organizational purposes (such as \"terrain\", \"decoration\", etc.)." msgstr "" -"Lidsky čitelný název atlasu. Pro organizační účely zde použijte popisný název " +"Lidsky čitelný název atlasu. Pro lepší organizaci zde použijte popisný název " "(např. \"terén\", \"dekorace\" atd.)." msgid "The image from which the tiles will be created." -msgstr "Obrázek, ze kterého budou dlaždice vytvořeny." +msgstr "Obrázek, ze kterého budou vytvořeny dlaždice." msgid "" "The margins on the image's edges that should not be selectable as tiles (in " "pixels). Increasing this can be useful if you download a tilesheet image that " "has margins on the edges (e.g. for attribution)." msgstr "" -"Vnitřní odsazení (v pixelech) po okrajích obrázku, které by nemělo být možné " -"vybrat jako dlaždice. Zvýšení této hodnoty může být užitečné, pokud si " -"stáhnete obrázek dlaždicového seznamu, který má po okrajích prázdné místo " -"(např. pro uvedení zdroje)." +"Odsazení (v pixelech) po okrajích obrázku, které by nemělo být možné vybrat " +"jako dlaždice. Zvýšení této hodnoty může být užitečné, pokud si stáhnete " +"obrázek s archem dlaždic, který má po okrajích prázdné místo (např. pro " +"uvedení autorství)." msgid "" "The separation between each tile on the atlas in pixels. Increasing this can " "be useful if the tilesheet image you're using contains guides (such as " "outlines between every tile)." msgstr "" -"Oddělení mezi jednotlivými dlaždicemi v atlasu v pixelech. Zvýšení této " -"hodnoty může být užitečné, pokud obrázek dlaždicové desky, který používáte, " -"obsahuje vodítka (například obrysy mezi každou dlaždicí)." +"Vzdálenost mezi jednotlivými dlaždicemi atlasu v pixelech. Zvýšení této " +"hodnoty může být užitečné, pokud obrázek s dlaždicovým archem, který " +"používáte, obsahuje vodítka (například obrysy mezi dlaždicemi)." msgid "" "The size of each tile on the atlas in pixels. In most cases, this should " "match the tile size defined in the TileMap property (although this is not " "strictly necessary)." msgstr "" -"Velikost každé dlaždice v atlasu v pixelech. Ve většině případů by to mělo " -"odpovídat velikosti dlaždice definované ve vlastnosti TileMap (nicméně to " -"není nezbytně nutné)." +"Velikost každé dlaždice atlasu v pixelech. Ve většině případů by toto mělo " +"odpovídat velikosti dlaždice definované ve vlastnosti mapy dlaždic (nicméně " +"to není nezbytně nutné)." msgid "" "If checked, adds a 1-pixel transparent edge around each tile to prevent " @@ -11771,15 +13000,15 @@ msgid "" "animating at the same frame. In \"Random Start Times\" mode, each tile starts " "animation with a random offset." msgstr "" -"Určuje, jak se animace spustí. Ve režimu \"Výchozí\" se všechny dlaždice " +"Určuje, jak se animace spustí. V režimu \"Výchozí\" se všechny dlaždice " "začnou animovat ve stejném snímku. V režimu „Náhodné časy spuštění“ každá " "dlaždice spustí animaci s náhodným posunem." msgid "If [code]true[/code], the tile is horizontally flipped." -msgstr "Pokud je [code]true[/code], je dlaždice horizontálně převrácená." +msgstr "Je-li [code]true[/code], dlaždice je horizontálně překlopena." msgid "If [code]true[/code], the tile is vertically flipped." -msgstr "Pokud je [code]true[/code], je dlaždice vertikálně převrácená." +msgstr "Je-li [code]true[/code], dlaždice je vertikálně překlopena." msgid "" "If [code]true[/code], the tile is rotated 90 degrees [i]counter-clockwise[/i] " @@ -11789,13 +13018,13 @@ msgid "" "H[/b] and [b]Flip V[/b]. To rotate a tile by 270 degrees clockwise, enable " "[b]Flip V[/b] and [b]Transpose[/b]." msgstr "" -"Pokud je [code]true[/code], dlaždice se otočí o 90 stupňů [i]proti směru " -"hodinových ručiček[/i] a poté svisle převrácena. V praxi to znamená, že " +"Je-li [code]true[/code], je dlaždice otočena o 90 stupňů [i]proti směru " +"hodinových ručiček[/i] a poté vertikálně překlopena. V praxi to znamená, že " "chcete-li dlaždici otočit o 90 stupňů ve směru hodinových ručiček, aniž byste " -"ji převrátili, měli byste povolit [b]Převrátit H[/b] a [b]Transponovat[/b]. " +"ji překlopili, měli byste povolit [b]Překlopit H[/b] a [b]Transponovat[/b]. " "Chcete-li dlaždici otočit o 180 stupňů po směru hodinových ručiček, povolte " -"[b]Převrátit H[/b] a [b]Převrátit V[/b]. Chcete-li dlaždici otočit o 270 " -"stupňů po směru hodinových ručiček, povolte [b]Převrátit V[/b] a " +"[b]Překlopit H[/b] a [b]Překlopit V[/b]. Chcete-li dlaždici otočit o 270 " +"stupňů po směru hodinových ručiček, povolte [b]Překlopit V[/b] a " "[b]Transponovat[/b]." msgid "" @@ -11803,10 +13032,10 @@ msgid "" "the tile compared to the base tile." msgstr "" "Počátek, který se má použít pro kreslení dlaždice. Lze použít k vizuálnímu " -"odsazení dlaždice ve srovnání se základní dlaždicí." +"odsazení dlaždice oproti základní dlaždici." msgid "The color multiplier to use when rendering the tile." -msgstr "Multiplikátor barvy pro použití při vykreslování dlaždice." +msgstr "Multiplikátor barvy, který se má použít při vykreslování dlaždice." msgid "" "The material to use for this tile. This can be used to apply a different " @@ -11821,7 +13050,8 @@ msgid "" "Z index." msgstr "" "Pořadí dlaždice. Vyšší hodnoty způsobí, že se dlaždice vykreslí před " -"ostatními ve stejné vrstvě. Index je relativní k vlastnímu Z-indexu TileMap." +"ostatními ve stejné vrstvě. Index je relativní k Z-indexu mapy dlaždic " +"samotné." msgid "" "The vertical offset to use for tile sorting based on its Y coordinate (in " @@ -11830,25 +13060,25 @@ msgid "" "tiles. Only effective if Y Sort Enabled is true on the TileMap layer the tile " "is placed on." msgstr "" -"Vertikální posun (v pixelech), který se má použít při určení pořadí dlaždice " -"na základě její souřadnice Y. Umožňuje pracovat s vrstvami, jako by byly v " -"jiné výšce pro hry s pohledem seshora. Úprava může pomoci zmírnit problémy s " -"řazením určitých dlaždic. Účinné pouze v případě, že \"Povolit řazení podle " -"Y\" je v TileMap vrstvě, ve které je dlaždice umístěna, true." +"Vertikální posun (v pixelech), který se má použít při řazení dlaždic podle " +"souřadnice Y. Umožňuje ve hrách s pohledem seshora pracovat s vrstvami, jako " +"by byly v různých výškách. Jeho úprava může pomoci zmírnit problémy s řazením " +"určitých dlaždic. Účinné pouze v případě, že \"Povolit řazení podle Y\" je ve " +"vrstvě dlaždicové mapy, ve které je tato dlaždice umístěna, true." msgid "" "The index of the terrain set this tile belongs to. [code]-1[/code] means it " "will not be used in terrains." msgstr "" "Index sady terénů, do které tato dlaždice patří. [code]-1[/code] znamená, že " -"v terénech nebude použit." +"v terénech nebude použita." msgid "" "The index of the terrain inside the terrain set this tile belongs to. " "[code]-1[/code] means it will not be used in terrains." msgstr "" "Index terénu uvnitř sady terénů, do které tato dlaždice patří. [code]-1[/" -"code] znamená, že v terénech nebude použit." +"code] znamená, že v terénech nebude použita." msgid "" "The relative probability of this tile appearing when painting with \"Place " @@ -11858,14 +13088,14 @@ msgstr "" "aktivovanou možností \"Umístit náhodnou dlaždici\"." msgid "Setup" -msgstr "Nastavení" +msgstr "Příprava" msgid "" "Atlas setup. Add/Remove tiles tool (use the shift key to create big tiles, " "control for rectangle editing)." msgstr "" "Příprava atlasu. Nástroj přidání/odebrání dlaždic (pro tvorbu velkých dlaždic " -"podržte Shift, pro úpravu obdélníků Ctrl)." +"podržte klávesu Shift, pro úpravu obdélníků Ctrl)." msgid "Select tiles." msgstr "Vybrat dlaždice." @@ -11878,7 +13108,8 @@ msgid "" "Select one or more tiles from the palette to edit its properties." msgstr "" "Není vybrána žádná dlaždice.\n" -"Vyberte jednu nebo více dlaždic, abyste mohli upravit jejich vlastnosti." +"Chcete-li upravovat vlastnosti dlaždic, nejprve jednu nebo více dlaždic z " +"palety vyberte." msgid "Paint Properties:" msgstr "Vlastnosti kresby:" @@ -11897,10 +13128,10 @@ msgstr "" "Můžete ho pročistit vybráním možnosti \"%s\" v nabídce se 3 tečkami." msgid "Hold Ctrl to create multiple tiles." -msgstr "Držte Ctrl pro vytvoření více dlaždic." +msgstr "Pro vytváření více dlaždic držte Ctrl." msgid "Hold Shift to create big tiles." -msgstr "Držte Shift pro vytvoření velikých dlaždic." +msgstr "Pro vytváření velikých dlaždic držte Shift." msgid "Create an Alternative Tile" msgstr "Vytvořit alternativní dlaždici" @@ -11936,6 +13167,9 @@ msgstr "Odebrat zdroj" msgid "Add atlas source" msgstr "Přidat zdroj atlasu" +msgid "Tile Sources" +msgstr "Zdroje dlaždic" + msgid "Sort Sources" msgstr "Seřadit zdroje" @@ -11959,19 +13193,20 @@ msgid "" "You can create a new source by using the Add button on the left or by " "dropping a tileset texture onto the source list." msgstr "" -"Není vybrán žádný zdroj pro TileSet. Vyberte nebo vytvořte zdroj TileSetu.\n" +"Není vybrán žádný zdroj pro sadu dlaždic. Vyberte nebo vytvořte zdroj " +"TileSetu.\n" "Nový zdroj můžete vytvořit za pomoci tlačítka Přidat na levé straně, nebo " "přetažením textury na seznam zdrojů." msgid "Add new patterns in the TileMap editing mode." -msgstr "Přidat nové vzory v režimu úprav TileMapy." +msgstr "Přidat nové vzory v režimu úprav mapy dlaždic." msgid "" "Warning: Modifying a source ID will result in all TileMaps using that source " "to reference an invalid source instead. This may result in unexpected data " "loss. Change this ID carefully." msgstr "" -"Varování: Změna ID zdroje povede k tomu, že všechny TileMapy, které zdroj " +"Varování: Změna ID zdroje povede k tomu, že všechny mapy dlaždic, které zdroj " "používají, budou odkazovat na neplatný zdroj. To může vést k neočekávané " "ztrátě dat. Buďte při změně opatrní." @@ -11996,7 +13231,7 @@ msgid "" "so changing this property may cause your TileMaps to not display properly." msgstr "" "ID dlaždice scény v kolekci. Každá nakreslená dlaždice má přiřazené ID, takže " -"změna této vlastnosti může způsobit, že se vaše dlaždicové mapy nebudou " +"změna této vlastnosti může způsobit, že se vaše mapy dlaždic nebudou " "zobrazovat správně." msgid "Absolute path to the scene associated with this tile." @@ -12016,24 +13251,42 @@ msgstr "Vlastnosti kolekce scén:" msgid "Tile properties:" msgstr "Vlastnosti dlaždice:" +msgid "Paint Tool" +msgstr "Nástroj kreslení" + +msgid "Line Tool" +msgstr "Nástroj linky" + +msgid "Rect Tool" +msgstr "Nástroj obdélník" + +msgid "Bucket Tool" +msgstr "Nástroj výplně" + +msgid "Eraser Tool" +msgstr "Nástroj mazání" + +msgid "Picker Tool" +msgstr "Nástroj výběru" + msgid "TileMap" -msgstr "Mapa dlaždic (TileMap)" +msgstr "Mapa dlaždic" msgid "Toggle TileMap Bottom Panel" -msgstr "Přepnout spodní panel mapy dlaždic" +msgstr "Přepnout spodní panel Mapa dlaždic" msgid "TileSet" -msgstr "Sada dlaždic (TileSet)" +msgstr "Sada dlaždic" msgid "Toggle TileSet Bottom Panel" -msgstr "Přepnout spodní panel sady dlaždic" +msgstr "Přepnout spodní panel Sada dlaždic" msgid "" "No VCS plugins are available in the project. Install a VCS plugin to use VCS " "integration features." msgstr "" -"V tomto projektu nejsou dostupné žádné pluginy systémů správy verzí (VCS). " -"Pro využití funkcí integrace správy verzí nainstalujte VCS plugin." +"V tomto projektu nejsou dostupné žádné zásuvné moduly systémů správy verzí " +"(VCS). Pro využití funkcí integrace správy verzí nějaký nainstalujte." msgid "Error" msgstr "Chyba" @@ -12042,7 +13295,7 @@ msgid "" "Remote settings are empty. VCS features that use the network may not work." msgstr "" "Nastavení vzdáleného repozitáře jsou prázdná. Funkce systému správy verzí, " -"které vyžadují připojení přes sít, nemusí fungovat." +"které vyžadují síťové připojení, nemusí fungovat." msgid "Commit" msgstr "Commit" @@ -12072,10 +13325,10 @@ msgid "Do you want to remove the %s branch?" msgstr "Přejete si odstranit větev %s?" msgid "Do you want to remove the %s remote?" -msgstr "Přejete si odebrat vzdálený %s?" +msgstr "Přejete si odebrat vzdálený repozitář %s?" msgid "Toggle Version Control Bottom Panel" -msgstr "Přepnout spodní panel správy verzí" +msgstr "Přepnout spodní panel Správa verzí" msgid "Create Version Control Metadata" msgstr "Vytvořit metadata správy verzí" @@ -12093,13 +13346,13 @@ msgid "Apply" msgstr "Aplikovat" msgid "VCS Provider" -msgstr "Poskytovatel systému správy verzí (VCS)" +msgstr "Poskytovatel systému správy verzí" msgid "Connect to VCS" msgstr "Připojit k systému správy verzí" msgid "Remote Login" -msgstr "Vzdálené přihlášení" +msgstr "Přihlášení ke vzdálenému repozitáři" msgid "Username" msgstr "Uživatelské jméno" @@ -12126,7 +13379,7 @@ msgid "Detect new changes" msgstr "Detekovat nové změny" msgid "Discard all changes" -msgstr "Zrušit všechny změny" +msgstr "Zahodit všechny změny" msgid "This operation is IRREVERSIBLE. Your changes will be deleted FOREVER." msgstr "Tato operace je NEVRATNÁ. Vaše změny budou NAVŽDY smazány." @@ -12135,7 +13388,7 @@ msgid "Permanentally delete my changes" msgstr "Permanentně smazat mé změny" msgid "Stage all changes" -msgstr "Připravit všechny změny" +msgstr "Přidat všechny změny do připravených" msgid "Unstage all changes" msgstr "Odebrat všechny změny z připravených" @@ -12171,7 +13424,7 @@ msgid "Create New Remote" msgstr "Vytvořit nový vzdálený repozitář" msgid "Remove Remote" -msgstr "Odstranit vzdálený repozitář" +msgstr "Odebrat vzdálený repozitář" msgid "Remote Name" msgstr "Název vzdáleného repozitáře" @@ -12213,7 +13466,7 @@ msgid "View:" msgstr "Zobrazení:" msgid "Split" -msgstr "Rozdělit" +msgstr "Rozdělené" msgid "Unified" msgstr "Sjednocené" @@ -12231,7 +13484,7 @@ msgid "Pi/4 constant (0.785398) or 45 degrees." msgstr "Konstanta pi/4 (0.785398), neboli 45 stupňů." msgid "Pi/2 constant (1.570796) or 90 degrees." -msgstr "Konstanta pi/2 (1.570796) neboli 90 stupňů." +msgstr "Konstanta pi/2 (1.570796), neboli 90 stupňů." msgid "Pi constant (3.141593) or 180 degrees." msgstr "Konstanta pi (3.141593), neboli 180 stupňů." @@ -12284,6 +13537,12 @@ msgid "" msgstr "" "2D náhled nedokáže správně zobrazit výsledek načtený z parametru instance." +msgid "Copy Preview Shader Parameters From Material" +msgstr "Kopírovat parametry náhledového shaderu z materiálu" + +msgid "Paste Preview Shader Parameters To Material" +msgstr "Vložit parametry náhledového shaderu do materiálu" + msgid "Add Input Port" msgstr "Přidat vstupní port" @@ -12351,19 +13610,19 @@ msgid "Set Custom Node Option" msgstr "Nastavit vlastní možnost uzlu" msgid "Add Node to Visual Shader" -msgstr "Přidat uzel do VisualShader" +msgstr "Přidat uzel do vizuálního shaderu" msgid "Add Varying to Visual Shader: %s" -msgstr "Přidat interpolovanou proměnnou do Visual Shaderu: %s" +msgstr "Přidat interpolovanou proměnnou do vizuálního shaderu: %s" msgid "Remove Varying from Visual Shader: %s" -msgstr "Odstranit interpolovanou proměnnou z visual shaderu: %s" +msgstr "Odstranit interpolovanou proměnnou z vizuálního shaderu: %s" msgid "Move VisualShader Node(s)" -msgstr "Přesunout VisualShader uzly" +msgstr "Přesunout uzly VisualShader" msgid "Move and Attach VisualShader Node(s) to parent frame" -msgstr "Přesunout VisualShader uzly a připojit k rodičovskému snímku" +msgstr "Přesunout uzly VisualShader a připojit k rodičovskému snímku" msgid "Insert node" msgstr "Vložit uzel" @@ -12375,13 +13634,13 @@ msgid "Convert Parameter Node(s) To Constant(s)" msgstr "Převést parametrické uzly na konstantní" msgid "Detach VisualShader Node(s) from Frame" -msgstr "Odpojit VisualShader uzel od snímku" +msgstr "Odpojit uzel VisualShader od snímku" msgid "Delete VisualShader Node" -msgstr "Odstranit VisualShader uzel" +msgstr "Odstranit uzel VisualShader" msgid "Delete VisualShader Node(s)" -msgstr "Odstranit VisualShader uzly" +msgstr "Odstranit uzly VisualShader" msgid "Float Constants" msgstr "Konstanty s plovoucí desetinnou čárkou" @@ -12401,17 +13660,20 @@ msgstr "Povolit automatické zmenšení" msgid "Enable Tint Color" msgstr "Povolit barvu odstínu" +msgid "Edit Preview Parameter: %s" +msgstr "Upravit parametr náhledu: %s" + msgid "Duplicate VisualShader Node(s)" -msgstr "Duplikovat VisualShader uzly" +msgstr "Duplikovat uzly VisualShader" msgid "Paste VisualShader Node(s)" -msgstr "Vložit VisualShader uzly" +msgstr "Vložit uzly VisualShader" msgid "Cut VisualShader Node(s)" -msgstr "Vyjmout VisualShader uzly" +msgstr "Vyjmout uzly VisualShader" msgid "Visual Shader Input Type Changed" -msgstr "Typ vstupu Visual Shader změněn" +msgstr "Typ vstupu vizuálního shaderu změněn" msgid "ParameterRef Name Changed" msgstr "Změněn název ParameterRef" @@ -12428,14 +13690,20 @@ msgstr "Neplatný název pro interpolovanou proměnnou." msgid "Varying with that name is already exist." msgstr "Interpolovaná proměnná s tímto názvem již existuje." +msgid "Boolean type cannot be used with `%s` varying mode." +msgstr "Booleovský typ nelze použít s režimem interpolované proměnné `%s`." + msgid "Add Node(s) to Visual Shader" -msgstr "Přidat uzly do VisualShaderu" +msgstr "Přidat uzly do vizuálního shaderu" + +msgid "Hold %s Key To Swap Connections" +msgstr "Pro výměnu spojení držte klávesu %s" msgid "Vertex" -msgstr "Vrchol" +msgstr "Vrcholy" msgid "Fragment" -msgstr "Fragment" +msgstr "Fragmenty" msgid "Light" msgstr "Světlo" @@ -12444,7 +13712,7 @@ msgid "Process" msgstr "Zpracování" msgid "Collide" -msgstr "Kolidovat" +msgstr "Kolize" msgid "Sky" msgstr "Obloha" @@ -12464,6 +13732,9 @@ msgstr "Odstranit interpolovanou proměnnou" msgid "Show generated shader code." msgstr "Zobrazit výsledný kód shaderu." +msgid "Toggle shader preview." +msgstr "Přepnout náhled shaderu." + msgid "Generated Shader Code" msgstr "Výsledný kód shaderu" @@ -12471,7 +13742,7 @@ msgid "Add Node" msgstr "Přidat uzel" msgid "Clear Copy Buffer" -msgstr "Promazat vytovnávací paměť kopírování" +msgstr "Promazat vyrovnávací paměť kopie" msgid "Insert New Node" msgstr "Vložit nový uzel" @@ -12479,6 +13750,15 @@ msgstr "Vložit nový uzel" msgid "Insert New Reroute" msgstr "Vložit nové přesměrování" +msgid "Filter Parameters" +msgstr "Filtrovat parametry" + +msgid "Copy Parameters From Material" +msgstr "Kopírovat parametry z materiálu" + +msgid "Paste Parameters To Material" +msgstr "Vložit parametry do materiálu" + msgid "High-end node" msgstr "Vysoce výkonný uzel" @@ -12492,7 +13772,7 @@ msgid "Delete Shader Varying" msgstr "Odstranit interpolovanou proměnnou shaderu" msgid "Color function." -msgstr "Funkce obarvení." +msgstr "Funkce barvy." msgid "Color operator." msgstr "Operátor barvy." @@ -12503,14 +13783,20 @@ msgstr "Funkce stupně šedi." msgid "Converts HSV vector to RGB equivalent." msgstr "Převede vektor HSV na ekvivalentní RGB." +msgid "Converts color from linear to sRGB color space." +msgstr "Převede barvu z lineárního na sRGB prostor." + msgid "Converts RGB vector to HSV equivalent." msgstr "Převede vektor RGB na ekvivalentní HSV." msgid "Sepia function." msgstr "Funkce sépie." +msgid "Converts color from sRGB to linear color space." +msgstr "Převede barvu z sRGB na lineární prostor." + msgid "Burn operator." -msgstr "Operátor vypálení." +msgstr "Operátor hoření." msgid "Darken operator." msgstr "Operátor ztmavení." @@ -12543,7 +13829,10 @@ msgid "Color parameter." msgstr "Parametr barvy." msgid "(Fragment/Light mode only) Derivative function." -msgstr "(Pouze pro režim Fragment/Light) Derivace funkce." +msgstr "(Pouze pro režim fragmentů/světla) Derivace funkce." + +msgid "Derivative function." +msgstr "Derivace funkce." msgid "Returns the boolean result of the %s comparison between two parameters." msgstr "Vrátí booleovský výsledek %s porovnání mezi dvěma parametry." @@ -12561,7 +13850,7 @@ msgid "" "Returns an associated vector if the provided scalars are equal, greater or " "less." msgstr "" -"Vrátí přidružený vektor, pokud jsou dané skaláry stejné, větší nebo menší." +"Vrátí přidružený vektor, pokud jsou dané skaláry rovny, větší nebo menší." msgid "" "Returns the boolean result of the comparison between INF and a scalar " @@ -12577,7 +13866,7 @@ msgid "Less Than (<)" msgstr "Menší než (<)" msgid "Less Than or Equal (<=)" -msgstr "Menší nebo rovno (<=)" +msgstr "Menší nebo rovno (<=)" msgid "Not Equal (!=)" msgstr "Není rovno (!=)" @@ -12653,19 +13942,19 @@ msgid "Translated to '%s' in Godot Shading Language." msgstr "Do jazyka Godot Shading Language přeloženo jako '%s'." msgid "'%s' input parameter for all shader modes." -msgstr "Vstupní parametr \"%s\" pro všechny režimy shaderu." +msgstr "Vstupní parametr '%s' pro všechny režimy shaderu." msgid "Input parameter." msgstr "Vstupní parametr." msgid "'%s' input parameter for vertex and fragment shader modes." -msgstr "Vstupní parametr \"%s\" pro režimy shaderu vrcholů a fragmentů." +msgstr "Vstupní parametr '%s' pro režimy shaderu vrcholů a fragmentů." msgid "'%s' input parameter for fragment and light shader modes." -msgstr "Zadejte parametr \"%s\" pro fragmentový a světelný shader." +msgstr "Zadejte parametr '%s' pro režimy shaderů fragmentů a světla." msgid "'%s' input parameter for fragment shader mode." -msgstr "Vstupní parametr \"%s\" pro režim shaderu fragmentu." +msgstr "Vstupní parametr '%s' pro režim shaderu fragmentů." msgid "'%s' input parameter for sky shader mode." msgstr "Vstupní parametr '%s' pro režim shaderu oblohy." @@ -12674,10 +13963,10 @@ msgid "'%s' input parameter for fog shader mode." msgstr "Vstupní parametr '%s' pro režim shaderu mlhy." msgid "'%s' input parameter for light shader mode." -msgstr "\"%s\" vstupní parametr pro mód světelného shaderu." +msgstr "'%s' vstupní parametr pro režim shaderu světla." msgid "'%s' input parameter for vertex shader mode." -msgstr "\"%s\" vstupní parametr pro mód vertexového shaderu." +msgstr "\"%s\" vstupní parametr pro režim shaderu vertexů." msgid "'%s' input parameter for start shader mode." msgstr "Vstupní parametr '%s' pro režim shaderu začátku." @@ -12696,7 +13985,7 @@ msgid "" "specific axis. Intended to work with emitters." msgstr "" "Uzel pro pomoc s vynásobením vstupního vektoru polohy rotací kolem konkrétní " -"osy. Určeno pro práci s emitory." +"osy. Určen pro práci s emitory." msgid "Float function." msgstr "Funkce čísla s plovoucí desetinnou čárkou." @@ -12723,13 +14012,13 @@ msgid "Returns the arc-cosine of the parameter." msgstr "Vrátí arkus kosinus parametru." msgid "Returns the inverse hyperbolic cosine of the parameter." -msgstr "Vrátí inverzní hyperbolický kosinus parametru." +msgstr "Vrátí argument hyperbolického kosinu parametru." msgid "Returns the arc-sine of the parameter." msgstr "Vrátí arkus sinus parametru." msgid "Returns the inverse hyperbolic sine of the parameter." -msgstr "Vrátí inverzní hyperbolický sinus parametru." +msgstr "Vrátí argument hyperbolického sinu parametru." msgid "Returns the arc-tangent of the parameter." msgstr "Vrátí arkus tangens parametru." @@ -12741,13 +14030,11 @@ msgid "Returns the inverse hyperbolic tangent of the parameter." msgstr "Vrátí argument hyperbolického tangens parametru." msgid "Returns the result of bitwise NOT (~a) operation on the integer." -msgstr "Vrátí výsledek bitové operace NOT (~a) na celém čísle (integeru)." +msgstr "Vrátí výsledek bitové operace NOT (~a) na celém čísle." msgid "" "Returns the result of bitwise NOT (~a) operation on the unsigned integer." -msgstr "" -"Vrátí výsledek bitové operace NOT (~a) na celém čísle bez znaménka (unsigned " -"integeru)." +msgstr "Vrátí výsledek bitové operace NOT (~a) na celém čísle bez znaménka." msgid "" "Finds the nearest integer that is greater than or equal to the parameter." @@ -12769,16 +14056,22 @@ msgid "" "(Fragment/Light mode only) (Scalar) Derivative in 'x' using local " "differencing." msgstr "" -"(Pouze pro režim Fragment/Light) (Skalární) Derivace podle \"x\" pomocí " +"(Pouze pro režim fragmentů/světla) (Skalární) Derivace podle \"x\" pomocí " "místní variace." msgid "" "(Fragment/Light mode only) (Scalar) Derivative in 'y' using local " "differencing." msgstr "" -"(Pouze pro režim Fragment/Light) (Skalární) Derivace podle \"y\" pomocí " +"(Pouze pro režim fragmentů/světla) (Skalární) Derivace podle \"y\" pomocí " "místní variace." +msgid "(Scalar) Derivative in 'x' using local differencing." +msgstr "(Skalární) Derivace podle 'x' pomocí místní variace." + +msgid "(Scalar) Derivative in 'y' using local differencing." +msgstr "(Skalární) Derivace podle 'y' pomocí místní variace." + msgid "Base-e Exponential." msgstr "Exponenciál o základu e." @@ -12810,7 +14103,7 @@ msgid "Linear interpolation between two scalars." msgstr "Lineární interpolace mezi dvěma skaláry." msgid "Performs a fused multiply-add operation (a * b + c) on scalars." -msgstr "Provede sloučenou operaci násobení a sečtení skalárů (a * b + c)." +msgstr "Provede sloučenou operaci multiply-add (a * b + c) na skalárech." msgid "Returns the opposite value of the parameter." msgstr "Vrátí opačnou hodnotu parametru." @@ -12828,6 +14121,9 @@ msgstr "Převede hodnotu ve stupních na radiány." msgid "1.0 / scalar" msgstr "1.0 / skalár" +msgid "Remaps a value from the input range to the output range." +msgstr "Převede hodnotu ze vstupního rozsahu na výstupní." + msgid "Finds the nearest integer to the parameter." msgstr "Nalezne nejbližší celé číslo k parametru." @@ -12838,7 +14134,7 @@ msgid "Clamps the value between 0.0 and 1.0." msgstr "Sevře hodnotu mezi 0.0 a 1.0." msgid "Extracts the sign of the parameter." -msgstr "Získá znaménko z parametru." +msgstr "Získá znaménko parametru." msgid "Returns the sine of the parameter." msgstr "Vrátí sinus parametru." @@ -12856,26 +14152,30 @@ msgid "" "'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 using " "Hermite polynomials." msgstr "" -"Funkce plynulého přechodu( skalár(okraj0), skalár(okraj1), skalár(x) ).\n" +"Funkce plynulého přechodu smoothstep( skalár(okraj0), skalár(okraj1), " +"skalár(x) ).\n" "\n" -"Vrátí 0.0, pokud je \"x\" menší než \"okraj0\" a 1.0, pokud je \"x\" je větší " -"než \"okra1j\". Jinak vrátí interpolovanou hodnotu mezi 0.0 a 1.0 vypočtenou " -"pomocí Hermitových polynomů." +"Vrátí 0.0, když je 'x' menší než 'okraj0' a 1.0, když je 'x' je větší než " +"'okraj1' Jinak vrátí interpolovanou hodnotu mezi 0.0 a 1.0 vypočtenou pomocí " +"Hermitových polynomů." msgid "" "Step function( scalar(edge), scalar(x) ).\n" "\n" "Returns 0.0 if 'x' is smaller than 'edge' and otherwise 1.0." msgstr "" -"Skoková funkce( skalár(okraj), skalár(x) ).\n" +"Skoková funkce step( skalár(okraj), skalár(x) ).\n" "\n" -"Vrátí 0.0, pokud je \"x\" menší než okraj, jinak vrátí 1.0." +"Vrátí 0.0, když je 'x' menší než okraj, jinak vrátí 1.0." msgid "" "(Fragment/Light mode only) (Scalar) Sum of absolute derivative in 'x' and 'y'." msgstr "" -"(Pouze pro režim Fragment/Light) (Skalár) Součet absolutní derivace podle " -"\"x\" a \"y\"." +"(Pouze pro režim fragmentů/světla) (Skalární) Součet absolutních derivací " +"podle 'x' a 'y'." + +msgid "(Scalar) Sum of absolute derivative in 'x' and 'y'." +msgstr "(Skalární) Součet absolutních derivací podle 'x' a 'y'." msgid "Returns the tangent of the parameter." msgstr "Vrátí tangens parametru." @@ -12896,47 +14196,41 @@ msgid "Sums two unsigned integer scalars." msgstr "Sečte dva celočíselné skaláry bez znaménka." msgid "Returns the result of bitwise AND (a & b) operation for two integers." -msgstr "" -"Vrátí výsledek bitové operace AND (a & b) mezi dvěma celými čísly (integery)." +msgstr "Vrátí výsledek bitové operace AND (a & b) mezi dvěma celými čísly." msgid "" "Returns the result of bitwise AND (a & b) operation for two unsigned integers." msgstr "" "Vrátí výsledek bitové operace AND (a & b) mezi dvěma celými čísly bez " -"znaménka (unsigned integery)." +"znaménka." msgid "" "Returns the result of bitwise left shift (a << b) operation on the integer." -msgstr "Vrátí výsledek levého bitového posunu (a << b) celého čísla (integeru)." +msgstr "Vrátí výsledek levého bitového posunu (a << b) celého čísla." msgid "" "Returns the result of bitwise left shift (a << b) operation on the unsigned " "integer." msgstr "" -"Vrátí výsledek levého bitového posunu (a << b) celého čísla bez znaménka " -"(unsigned integeru)." +"Vrátí výsledek levého bitového posunu (a << b) celého čísla bez znaménka." msgid "Returns the result of bitwise OR (a | b) operation for two integers." -msgstr "" -"Vrátí výsledek bitové operace OR (a | b) mezi dvěma celými čísly (integery)." +msgstr "Vrátí výsledek bitové operace OR (a | b) mezi dvěma celými čísly." msgid "" "Returns the result of bitwise OR (a | b) operation for two unsigned integers." msgstr "" -"Vrátí výsledek bitové operace OR (a | b) mezi dvěma celými čísly bez znaménka " -"(unsigned integery)." +"Vrátí výsledek bitové operace OR (a | b) mezi dvěma celými čísly bez znaménka." msgid "" "Returns the result of bitwise right shift (a >> b) operation on the integer." -msgstr "" -"Vrátí výsledek pravého bitového posunu (a >> b) celého čísla (integeru)." +msgstr "Vrátí výsledek pravého bitového posunu (a >> b) celého čísla." msgid "" "Returns the result of bitwise right shift (a >> b) operation on the unsigned " "integer." msgstr "" -"Vrátí výsledek pravého bitového posunu (a >> b) celého čísla bez znaménka " -"(unsigned integeru)." +"Vrátí výsledek pravého bitového posunu (a >> b) celého čísla bez znaménka." msgid "Returns the result of bitwise XOR (a ^ b) operation on the integer." msgstr "Vrátí výsledek bitové operace XOR (a ^ b) nad celým číslem." @@ -12947,13 +14241,13 @@ msgstr "" "Vrátí výsledek bitové operace XOR (a ^ b) nad celým číslem bez znaménka." msgid "Divides two floating-point scalars." -msgstr "Podělí dva skaláry s plovoucí desetinnou čárkou." +msgstr "Vydělí dva skaláry s plovoucí desetinnou čárkou." msgid "Divides two integer scalars." -msgstr "Podělí dva celočíselné skaláry." +msgstr "Vydělí dva celočíselné skaláry." msgid "Divides two unsigned integer scalars." -msgstr "Podělí dva celočíselné skaláry bez znaménka." +msgstr "Vydělí dva celočíselné skaláry bez znaménka." msgid "Multiplies two floating-point scalars." msgstr "Vynásobí dva skaláry s plovoucí desetinnou čárkou." @@ -13063,7 +14357,7 @@ msgid "2D texture parameter lookup." msgstr "Vyhledání parametru 2D textury." msgid "2D texture parameter lookup with triplanar." -msgstr "Vyhledání parametru 2D textury s triplanar mapováním." +msgstr "Vyhledání parametru 2D textury s triplanárním mapováním." msgid "2D array of textures parameter lookup." msgstr "Vyhledání parametru 2D pole textur." @@ -13086,12 +14380,12 @@ msgid "" "whose number of rows is the number of components in 'c' and whose number of " "columns is the number of components in 'r'." msgstr "" -"Vypočte dyadický součin dvojice vektorů.\n" +"Vypočítat dyadický součin dvojice vektorů.\n" "\n" -"OuterProduct vezme první parametr \"c\" jako sloupcový vektor (matice s " -"jedním sloupcem) a druhý parametr \"r\" jako řádkový vektor (matice s jedním " -"řádkem) a provede násobení matice \"c * r\", což má za výsledek matici s " -"počtem řádků stejný jako v \"c\" a počet sloupců stejný jako v \"r\"." +"OuterProduct vezme první parametr 'c' jako sloupcový vektor (matici s jedním " +"sloupcem) a druhý parametr 'r' jako řádkový vektor (matici s jedním řádkem) a " +"provede násobení matice maticové násobení 'c * r'. To vrátí matici s počtem " +"řádků rovném počtu komponent 'c' a počtem sloupců rovném počtu komponent 'r'." msgid "Composes transform from four vectors." msgstr "Složí transformaci ze čtyř vektorů." @@ -13110,10 +14404,10 @@ msgstr "" "port matice zobrazení modelu pro 3D objekty." msgid "Calculates the inverse of a transform." -msgstr "Spočítá inverzní transformaci." +msgstr "Vypočítá inverzní transformaci." msgid "Calculates the transpose of a transform." -msgstr "Vypočítá transpozici tranformace." +msgstr "Vypočítá transpozici transformace." msgid "Sums two transforms." msgstr "Sečte dvě transformace." @@ -13131,7 +14425,7 @@ msgid "Subtracts two transforms." msgstr "Odečte dvě transformace." msgid "Multiplies vector by transform." -msgstr "Pronásobí vektor transformací." +msgstr "Vynásobí vektor transformací." msgid "Transform constant." msgstr "Transformační konstanta." @@ -13160,7 +14454,7 @@ msgid "" "Builds a rotation matrix from the given axis and angle, multiply the input " "vector by it and returns both this vector and a matrix." msgstr "" -"Sestaví rotační matici z dané osy a úhlu, vynásobí jím vstupní vektor a vrátí " +"Sestaví rotační matici z dané osy a úhlu, vynásobí jí vstupní vektor a vrátí " "tento vektor i matici." msgid "Vector function." @@ -13200,16 +14494,22 @@ msgid "" "(Fragment/Light mode only) (Vector) Derivative in 'x' using local " "differencing." msgstr "" -"(Pouze pro režim Fragment/Light) (Vektor) Derivace podle \"x\" pomocí místní " -"variace." +"(Pouze pro režim fragmentů/světla) (Vektorová) Derivace podle 'x' pomocí " +"místní variace." msgid "" "(Fragment/Light mode only) (Vector) Derivative in 'y' using local " "differencing." msgstr "" -"(Pouze pro režim Fragment/Light) (Vektor) Derivace podle \"y\" pomocí místní " +"(Pouze pro režim Fragment/Light) (Vektorová) Derivace podle 'y' pomocí místní " "variace." +msgid "(Vector) Derivative in 'x' using local differencing." +msgstr "(Vektorová) Derivace podle 'x' pomocí místní variace." + +msgid "(Vector) Derivative in 'y' using local differencing." +msgstr "(Vektorová) Derivace podle 'y' pomocí místní variace." + msgid "Returns the distance between two points." msgstr "Vrátí vzdálenost mezi dvěma body." @@ -13232,7 +14532,7 @@ msgid "" "of camera (pass associated inputs to it)." msgstr "" "Vrátí sklon na základě skalárního součinu normály povrchu a směru pohledu " -"kamery (zde zadejte vstup)." +"kamery (předejte související vstupy)." msgid "Calculates the length of a vector." msgstr "Spočítá délku vektoru." @@ -13244,7 +14544,7 @@ msgid "Linear interpolation between two vectors using scalar." msgstr "Lineární interpolace mezi dvěma vektory pomocí skaláru." msgid "Performs a fused multiply-add operation (a * b + c) on vectors." -msgstr "Provede sloučenou operaci násobení a součtu na vektorech (a * b + c)." +msgstr "Provede sloučenou operaci multiply-add (a * b + c) na vektorech." msgid "Calculates the normalize product of vector." msgstr "Spočítá normalizovaný vektor." @@ -13265,6 +14565,16 @@ msgstr "" msgid "Returns the vector that points in the direction of refraction." msgstr "Vrátí vektor ve směru lomu světla." +msgid "Remaps a vector from the input range to the output range." +msgstr "Převede vektor ze vstupního rozsahu na výstupní." + +msgid "" +"Remaps a vector from the input range to the output range. Ranges defined with " +"scalars." +msgstr "" +"Převede vektor ze vstupního rozsahu na výstupní. Rozsahy jsou definované " +"skaláry." + msgid "" "SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" "\n" @@ -13272,11 +14582,12 @@ msgid "" "'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 using " "Hermite polynomials." msgstr "" -"Funkce plynulého přechodu ( vektor(okraj0), vektor(okraj1), vektor(x) ).\n" +"Funkce plynulého přechodu smoothstep( vektor(okraj0), vektor(okraj1), " +"vektor(x) ).\n" "\n" -"Vrátí 0.0, pokud je \"x\" menší než \"okraj0\" a 1.0, pokud je \"x\" větší " -"než \"okraj1\". Jinak vrátí interpolovanou hodnotu mezi 0.0 a 1.0 vypočtenou " -"pomocí Hermitových polynomů." +"Vrátí 0.0, když je 'x' menší než 'okraj0' a 1.0, když je 'x' větší než " +"'okraj1'. Jinak vrátí interpolovanou hodnotu mezi 0.0 a 1.0 vypočtenou pomocí " +"Hermitových polynomů." msgid "" "SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" @@ -13285,35 +14596,39 @@ msgid "" "'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 using " "Hermite polynomials." msgstr "" -"Funkce plynulého přechodu( skalár(okraj0), skalár(okraj1), vektor(x) ).\n" +"Funkce plynulého přechodu smoothstep( skalár(okraj0), skalár(okraj1), " +"vektor(x) ).\n" "\n" -"Vrátí 0.0, pokud je \"x\" menší než \"okraj0\" a 1.0, pokud je \"x\" větší " -"než \"okraj1\". Jinak vrátí interpolovanou hodnotu mezi 0.0 a 1.0 vypočtenou " -"pomocí Hermitových polynomů." +"Vrátí 0.0, když je 'x' menší než 'okraj0' a 1.0, když je 'x' větší než " +"'okraj1'. Jinak vrátí interpolovanou hodnotu mezi 0.0 a 1.0 vypočtenou pomocí " +"Hermitových polynomů." msgid "" "Step function( vector(edge), vector(x) ).\n" "\n" "Returns 0.0 if 'x' is smaller than 'edge' and otherwise 1.0." msgstr "" -"Skoková funkce( vektor(okraj), vektor(x) ).\n" +"Skoková funkce step( vektor(okraj), vektor(x) ).\n" "\n" -"Vrátí 0.0, pokud je \"x\" menší než \"okraj\", jinak vrátí 1.0." +"Vrátí 0.0, když je 'x' menší než 'okraj', jinak vrátí 1.0." msgid "" "Step function( scalar(edge), vector(x) ).\n" "\n" "Returns 0.0 if 'x' is smaller than 'edge' and otherwise 1.0." msgstr "" -"Skoková funkce( skalár(okraj), vektor(x) ).\n" +"Skoková funkce step( skalár(okraj), vektor(x) ).\n" "\n" -"Vrátí 0.0, pokud je \"x\" menší než \"okraj\", jinak vrátí 1.0." +"Vrátí 0.0, když je 'x' menší než 'okraj', jinak vrátí 1.0." msgid "" "(Fragment/Light mode only) (Vector) Sum of absolute derivative in 'x' and 'y'." msgstr "" -"(Pouze pro režim Fragment/Light) (Vektor) Součet absolutní derivace podle " -"\"x\" a \"y\"." +"(Pouze pro režim fragmentů/světla) (Vektorový) Součet absolutních derivací " +"podle 'x' a 'y'." + +msgid "(Vector) Sum of absolute derivative in 'x' and 'y'." +msgstr "(Vektorový) Součet absolutních derivací podle 'x' a 'y'." msgid "Adds 2D vector to 2D vector." msgstr "Přičte 2D vektor ke 2D vektoru." @@ -13334,13 +14649,13 @@ msgid "Divides 4D vector by 4D vector." msgstr "Vydělí 4D vektor 4D vektorem." msgid "Multiplies 2D vector by 2D vector." -msgstr "Pronásobí 2D vektor 2D vektorem." +msgstr "Vynásobí 2D vektor 2D vektorem." msgid "Multiplies 3D vector by 3D vector." -msgstr "Pronásobí 3D vektor 3D vektorem." +msgstr "Vynásobí 3D vektor 3D vektorem." msgid "Multiplies 4D vector by 4D vector." -msgstr "Pronásobí 4D vektor 4D vektorem." +msgstr "Vynásobí 4D vektor 4D vektorem." msgid "Returns the remainder of the two 2D vectors." msgstr "Vrátí zbytek po dělení dvou 2D vektorů." @@ -13387,9 +14702,9 @@ msgid "" "output ports. This is a direct injection of code into the vertex/fragment/" "light function, do not use it to write the function declarations inside." msgstr "" -"Vlastní výraz v jazyce shaderu Godot s vlastním počtem vstupních a výstupních " -"portů. Toto je přímé vkládání kódu do funkcí vrcholů/fragmentů/osvětlení, " -"nepoužívat k deklaraci funkcí." +"Vlastní výraz v jazyce Godot Shader Language s vlastním počtem vstupních a " +"výstupních portů. Toto je přímé vkládání kódu do funkcí vertex/fragment/" +"light, nepoužívat k deklaraci funkcí." msgid "" "Custom Godot Shader Language expression, which is placed on top of the " @@ -13397,10 +14712,10 @@ msgid "" "it later in the Expressions. You can also declare varyings, parameters and " "constants." msgstr "" -"Vlastní výraz v jazyce shaderu Godot, který bude umístěn nad výsledek " -"shaderu. Uvnitř můžete vytvořit různé definice funkcí a později je volat " -"pomocí Expressions. Můžete také deklarovat interpolované i uniformní proměnné " -"a konstanty." +"Vlastní výraz v jazyce Godot Shader Language, který bude umístěn na začátek " +"výsledného shaderu. Dovnitř můžete umístit různé definice funkcí a později je " +"volat pomocí Expressions. Můžete také deklarovat interpolované i uniformní " +"proměnné a konstanty." msgid "A reference to an existing parameter." msgstr "Odkaz na existující parametr." @@ -13440,7 +14755,7 @@ msgid "Select path for VoxelGI Data File" msgstr "Vybrat cestu pro soubor VoxelGI dat" msgid "Go Online and Open Asset Library" -msgstr "Jít online a otevřít knihovnu assetů" +msgstr "Jít online a otevřít knihovnu zdrojů" msgid "Are you sure to run %d projects at once?" msgstr "Jste si jisti, že chcete spustit %d projektů najednou?" @@ -13459,7 +14774,7 @@ msgid "" "Please edit the project to trigger the initial import." msgstr "" "Nelze spustit projekt: Nejprve musí být importovány zdroje.\n" -"Otevřete projekt, aby se spustilo prvotní importování." +"Pro spuštění prvotního importu prosím projekt upravte." msgid "" "Can't open project at '%s'.\n" @@ -13494,15 +14809,15 @@ msgid "" "Warning: You won't be able to open the project with previous versions of the " "engine anymore." msgstr "" -"Zvolený projekt \"%s\" nespecifikuje podporovanou verzi enginu Godot ve svém " -"konfiguračním souboru (\"project.godot\").\n" +"Zvolený projekt \"%s\" ve svém konfiguračním souboru (\"project.godot\") " +"nespecifikuje podporovanou verzi Godotu.\n" "\n" -"Cesta projektu: %s\n" +"Cesta k projektu: %s\n" "\n" -"Pokud se rozhodnete ho otevřít, tak bude převeden do aktuálního formátu " -"konfiguračního souboru Godot.\n" +"Pokud se rozhodnete ho otevřít, bude převeden do aktuálního formátu " +"konfiguračního souboru Godotu.\n" "\n" -"Varování: Nebude možné otevřít projekt v dřívějších verzích enginu." +"Varování: Nebude dále možné projekt otevřít v dřívějších verzích enginu." msgid "" "The selected project \"%s\" was generated by Godot 3.x, and needs to be " @@ -13523,18 +14838,18 @@ msgstr "" "Vybraný projekt \"%s\" byl vygenerován v Godotu 3.x a je třeba jej převést na " "Godot 4.x.\n" "\n" -"Cesta projektu: %s\n" +"Cesta k projektu: %s\n" "\n" "Máte tři možnosti:\n" "- Převést pouze konfigurační soubor (\"project.godot\"). Toto použijte pro " "otevření projektu, aniž byste se pokoušeli převádět jeho scény, zdroje a " "skripty.\n" "- Převést celý projekt včetně jeho scén, zdrojů a skriptů (doporučeno, pokud " -"provádíte upgrade).\n" +"provádíte celkovou aktualizaci).\n" "- Nedělat nic a vrátit se.\n" "\n" -"Varování: Pokud vyberete možnost převodu, nebudete již moci otevřít projekt " -"se starími verzemi enginu." +"Varování: Pokud vyberete možnost převodu, nebude dále možné projekt otevřít " +"ve dřívějších verzích enginu." msgid "Convert project.godot Only" msgstr "Převést pouze project.godot" @@ -13550,14 +14865,14 @@ msgid "" "Warning: You won't be able to open the project with previous versions of the " "engine anymore." msgstr "" -"Vybraný projekt \"%s\" byl vytvořen starší verzí enginu a potřebuje být " -"konvertován pro aktuální verzi.\n" +"Vybraný projekt \"%s\" byl vytvořen ve starší verzi enginu a muší být " +"převeden na aktuální verzi.\n" "\n" "Cesta k projektu: %s\n" "\n" -"Přejete si ho konvertovat?\n" +"Přejete si ho převést?\n" "\n" -"Varování: Nebude možné otevřít projekt v předchozích verzích enginu." +"Varování: Nebude dále možné projekt otevřít v předchozích verzích enginu." msgid "Convert project.godot" msgstr "Převést project.godot" @@ -13574,8 +14889,8 @@ msgstr "" "\n" "%s\n" "\n" -"Nastavení projektu byla vytvořena novější verzí enginu, jejíž nastavení není " -"kompatibilní s touto verzí." +"Nastavení projektu byla vytvořena v novější verzi enginu, jejíž nastavení " +"nejsou kompatibilní s aktuální verzí." msgid "" "Warning: This project uses double precision floats, but this version of\n" @@ -13636,6 +14951,36 @@ msgstr "" "Odstranit všechny chybějící projekty ze seznamu?\n" "Obsah složek projektů zůstane nedotčen." +msgid "" +"It looks like Godot crashed when opening this project the last time. If " +"you're having problems editing this project, you can try to open it in " +"Recovery Mode." +msgstr "" +"Zdá se, že Godot během posledního otevírání tohoto projektu přestal fungovat. " +"Máte-li problémy s úpravami tohoto projektu, můžete ho zkusit otevřít v " +"Režimu obnovy." + +msgid "" +"Recovery Mode is a special mode that may help to recover projects that crash " +"the engine during initialization. This mode temporarily disables the " +"following features:" +msgstr "" +"Režim obnovy je speciální režim pro pomoc s obnovou projektů, které při " +"inicializaci způsobují pád enginu. V tomto režimu jsou následující funkce " +"dočasně zakázány:" + +msgid "" +"This mode is intended only for basic editing to troubleshoot such issues, and " +"therefore it will not be possible to run the project during this mode. It is " +"also a good idea to make a backup of your project before proceeding." +msgstr "" +"Tento režim je určen pouze pro základní úpravy při odstraňování takových " +"problémů, proto v něm nelze projekt spustit. Před pokračováním je také dobré " +"projekt zálohovat." + +msgid "Edit the project in Recovery Mode?" +msgstr "Upravit projekt v Režimu obnovy?" + msgid "Couldn't load project at '%s'. It may be missing or corrupted." msgstr "Nelze načíst projekt z '%s'. Může chybět nebo být poškozený." @@ -13671,13 +15016,13 @@ msgid "Import Project" msgstr "Importovat projekt" msgid "Scan" -msgstr "Skenovat" +msgstr "Prohledat" msgid "Scan Projects" -msgstr "Skenovat projekty" +msgstr "Prohledat projekty" msgid "Loading, please wait..." -msgstr "Načítání, prosím čekejte..." +msgstr "Načítání, čekejte prosím..." msgid "Filter Projects" msgstr "Filtrovat projekty" @@ -13705,7 +15050,7 @@ msgid "" "importing one that exists, or by downloading a project template from the " "Asset Library!" msgstr "" -"Začněte vytvořením nového,\n" +"Začněte vytvořením nového projektu,\n" "importováním již existujícího, nebo stažením projektové šablony z knihovny " "zdrojů (AssetLib)!" @@ -13725,6 +15070,9 @@ msgstr "" msgid "Edit Project" msgstr "Upravit projekt" +msgid "Edit in recovery mode" +msgstr "Upravit v režimu obnovy" + msgid "Rename Project" msgstr "Přejmenovat projekt" @@ -13745,11 +15093,17 @@ msgstr "" "podpora SSL)." msgid "Select a Folder to Scan" -msgstr "Vyberte složku pro skenování" +msgstr "Vyberte složku pro prohledání" msgid "Remove All" msgstr "Odebrat vše" +msgid "Edit normally" +msgstr "Upravovat normálně" + +msgid "Edit in Recovery Mode" +msgstr "Upravit v Režimu obnovy" + msgid "Convert Full Project" msgstr "Převést celý projekt" @@ -13767,8 +15121,8 @@ msgstr "" "Tato možnost provede úplnou konverzi projektu; aktualizuje scény, zdroje a " "skripty z Godotu 3, aby fungovaly v Godotu 4.\n" "\n" -"Jedná o konverzi s nejvyšší snahou, která usnadňuje aktualizaci projektu, ale " -"nebude fungovat okamžitě a bude stále vyžadovat manuální úpravy.\n" +"Jde o konverzi s nejvyšší snahou, která usnadňuje aktualizaci projektu, ten " +"ale nebude fungovat okamžitě a bude stále vyžadovat manuální úpravy.\n" "\n" "DŮLEŽITÉ: Před převodem si nezapomeňte projekt zálohovat, protože tato " "operace znemožňuje jeho otevření ve starších verzích Godotu." @@ -13780,22 +15134,22 @@ msgid "Project Tags" msgstr "Štítky projektu" msgid "Click tag to remove it from the project." -msgstr "Klikněte na štítek, abyste ho odebrali z projektu." +msgstr "Kliknutím na štítek jej z projektu odeberete." msgid "All Tags" msgstr "Všechny štítky" msgid "Click tag to add it to the project." -msgstr "Klikněte na štítek, abyste ho přidali k projektu." +msgstr "Kliknutím na štítek jej přidáte k projektu." msgid "Create New Tag" msgstr "Vytvořit nový štítek" msgid "Tags are capitalized automatically when displayed." -msgstr "Štítky jsou automaticky zobrazeny s kapitalizovaným prvním písmenem." +msgstr "Štítky jsou automaticky zobrazeny s velkým prvním písmenem." msgid "It would be a good idea to name your project." -msgstr "Bylo by dobré pojmenovat váš projekt." +msgstr "Bylo by dobré váš projekt pojmenovat." msgid "Invalid \".zip\" project file; it is not in ZIP format." msgstr "Neplatný soubor projektu \".zip\"; není ve formátu ZIP." @@ -13805,7 +15159,7 @@ msgid "" msgstr "Neplatný soubor projektu \".zip\"; neobsahuje soubor \"project.godot\"." msgid "Valid project found at path." -msgstr "Na cestě nalezen platný projekt." +msgstr "Na cestě byl nalezen platný projekt." msgid "" "Please choose a \"project.godot\", a directory with one, or a \".zip\" file." @@ -13816,7 +15170,7 @@ msgstr "" msgid "" "The directory name specified contains invalid characters or trailing " "whitespace." -msgstr "Poskytnutý název složky obsahuje neplatné znaky nebo koncové mezery." +msgstr "Zadaný název složky obsahuje neplatné znaky nebo koncové mezery." msgid "" "Creating a project at the engine's working directory or executable directory " @@ -13885,6 +15239,9 @@ msgstr "Rychlé vykreslování jednoduchých scén." msgid "Supports desktop, mobile + web platforms." msgstr "Podporuje desktopové, mobilní i webové platformy." +msgid "Least advanced 3D graphics." +msgstr "Nejméně pokročilá 3D grafika." + msgid "Intended for low-end/older devices." msgstr "Určeno pro málo výkonná/starší zařízení." @@ -13909,10 +15266,10 @@ msgstr "" "Opravdu chcete pokračovat?" msgid "Couldn't create project directory, check permissions." -msgstr "Nelze vytvořit adresář projektu, zkontrolujte oprávnění." +msgstr "Nepodařilo se vytvořit adresář projektu, zkontrolujte oprávnění." msgid "Couldn't create project.godot in project path." -msgstr "Nelze vytvořit project.godot v umístění projektu." +msgstr "Nepodařilo se vytvořit project.godot v cestě projektu." msgid "Couldn't create icon.svg in project path." msgstr "Nepodařilo se vytvořit icon.svg v cestě projektu." @@ -13925,10 +15282,12 @@ msgstr "Selhala extrakce následujících souborů z balíčku:" msgid "" "Couldn't load project at '%s' (error %d). It may be missing or corrupted." -msgstr "Nelze načíst projekt z '%s' (chyba %d). Může chybět nebo být poškozený." +msgstr "" +"Nepodařilo se načíst projekt z '%s' (chyba %d). Může chybět nebo být " +"poškozený." msgid "Install Project:" -msgstr "Instalovat projekt:" +msgstr "Nainstalovat projekt:" msgid "Project Name:" msgstr "Název projektu:" @@ -13937,13 +15296,24 @@ msgid "Project Path:" msgstr "Cesta k projektu:" msgid "Project Installation Path:" -msgstr "Instalační cesta k projektu:" +msgstr "Cesta k instalaci projektu:" msgid "Renderer:" -msgstr "Vykreslovač:" +msgstr "Vykreslovací nástroj:" + +msgid "" +"RenderingDevice-based methods not available on this GPU:\n" +"%s\n" +"Please use the Compatibility renderer." +msgstr "" +"Metody založené na RenderingDevice na této GPU nejsou dostpuné:\n" +"%s\n" +"Použijte prosím vykreslovací nástroj Compatibility." msgid "The renderer can be changed later, but scenes may need to be adjusted." -msgstr "Vykreslovač je možné změnit později, ale scény mohou vyžadovat úpravy." +msgstr "" +"Vykraslovací nástroj je možné změnit později, ale scény mohou vyžadovat " +"úpravy." msgid "Version Control Metadata:" msgstr "Metadata správy verzí:" @@ -13951,6 +15321,9 @@ msgstr "Metadata správy verzí:" msgid "Git" msgstr "Git" +msgid "Edit Now" +msgstr "Upravovat nyní" + msgid "This project was last edited in a different Godot version: " msgstr "Tento projekt byl naposledy upraven v jiné verzi Godotu: " @@ -13964,6 +15337,12 @@ msgstr "Chyba: Projekt se nevyskytuje v souborovém systému." msgid "Last edited timestamp" msgstr "Datum poslední modifikace" +msgid "Scanning" +msgstr "Prohledávání" + +msgid "Scanning for projects..." +msgstr "Prohledávání projektů..." + msgid "Missing Project" msgstr "Chybějící projekt" @@ -13980,7 +15359,7 @@ msgid "Interface Theme" msgstr "Motiv uživatelského rozhraní" msgid "Custom preset can be further configured in the editor." -msgstr "Vlastní předvolbu lze dále konfigurovat v editoru." +msgstr "Vlastní předvolby lze dále konfigurovat v editoru." msgid "Display Scale" msgstr "Měřítko zobrazení" @@ -14013,7 +15392,7 @@ msgid "Change Action deadzone" msgstr "Změnit mrtvou zónu akce" msgid "Change Input Action Event(s)" -msgstr "Změnit událost vstupních akcí" +msgstr "Změnit události vstupních akcí" msgid "Erase Input Action" msgstr "Smazat vstupní akci" @@ -14040,16 +15419,16 @@ msgid "Localization" msgstr "Lokalizace" msgid "Globals" -msgstr "Globální nastavení" +msgstr "Globální" msgid "Autoload" msgstr "Autoload" msgid "Shader Globals" -msgstr "Globální nastavení shaderů" +msgstr "Globální proměnné shaderů" msgid "Plugins" -msgstr "Pluginy" +msgstr "Zásuvné moduly" msgid "Import Defaults" msgstr "Výchozí nastavení importu" @@ -14061,7 +15440,7 @@ msgid "Select Virtual Method" msgstr "Vybrat virtuální metodu" msgid "Batch Rename" -msgstr "Dávkové přejmenování" +msgstr "Hromadné přejmenování" msgid "Prefix:" msgstr "Prefix:" @@ -14094,14 +15473,14 @@ msgid "" "Sequential integer counter.\n" "Compare counter options." msgstr "" -"Sekvenční počítadlo celých čísel.\n" +"Sekvenční celočíselné počítadlo.\n" "Porovnat možnosti počítadla." msgid "Per-level Counter" msgstr "Samostatné počítadlo pro každou úroveň" msgid "If set, the counter restarts for each group of child nodes." -msgstr "Když je zapnuté, počítadlo se resetuje pro každou skupinu potomků." +msgstr "Je-li nastaveno, počítadlo se resetuje pro každou skupinu potomků." msgid "Initial value for the counter." msgstr "Počáteční hodnota počítadla." @@ -14120,7 +15499,7 @@ msgid "" "Missing digits are padded with leading zeros." msgstr "" "Minimální počet číslic počítadla.\n" -"Chybějící číslice budou nahrazeny nulami." +"Chybějící řády budou vyplněny nulami." msgid "Post-Process" msgstr "Následné zpracování" @@ -14243,8 +15622,8 @@ msgid "" "When empty, the root node name is derived from the scene name based on the " "\"editor/naming/node_name_casing\" project setting." msgstr "" -"Když je prázdný, bude název kořenového uzlu odvozen od názvu scény na základě " -"nastavení projektu \"editor/naming/node_name_casing\"." +"Ponecháte-li prázdné, bude název kořenového uzlu odvozen od názvu scény na " +"základě nastavení projektu \"editor/naming/node_name_casing\"." msgid "Scene name is valid." msgstr "Název scény je platný." @@ -14256,22 +15635,22 @@ msgid "Create New Scene" msgstr "Vytvořit novou scénu" msgid "No parent to instantiate a child at." -msgstr "Neexistuje žádný rodič, u kterého by se vytvořila instance potomka." +msgstr "Chybí rodič pro instancování potomka." msgid "No parent to instantiate the scenes at." -msgstr "Chybí rodič pro instancování scény." +msgstr "Chybí rodič pro instancování scén." msgid "Error loading scene from %s" msgstr "Chyba při načítání scény z %s" msgid "Error instantiating scene from %s" -msgstr "Chyba instancování scény z %s" +msgstr "Chyba při instancování scény z %s" msgid "" "Cannot instantiate the scene '%s' because the current scene exists within one " "of its nodes." msgstr "" -"Scénu \"%s\" nelze vytvořit, protože aktuální scéna je jedním z jejích uzlů." +"Scénu '%s' nelze vytvořit, protože aktuální scéna je jedním z jejích uzlů." msgid "Instantiate Scene" msgid_plural "Instantiate Scenes" @@ -14307,13 +15686,14 @@ msgid "Duplicate Node(s)" msgstr "Duplikovat uzly" msgid "Can't reparent nodes in inherited scenes, order of nodes can't change." -msgstr "Nadřazené uzly ve zděděné scéně nelze změnit. Pořadí uzlů nelze změnit." +msgstr "" +"Rodičovské uzly ve zděděné scéně nelze změnit. Pořadí uzlů nelze změnit." msgid "Node must belong to the edited scene to become root." -msgstr "Uzel musí patřit do editované scény, aby se stal kořenem." +msgstr "Aby se stal kořenovým uzlem, musí uzel patřit k upravované scéně." msgid "Instantiated scenes can't become root" -msgstr "Instance scény se nemohou stát kořenem" +msgstr "Instancované scény se nemohou stát kořenovým uzlem" msgid "Make node as Root" msgstr "Nastavit uzel jako kořenový" @@ -14337,14 +15717,14 @@ msgid "Some nodes are referenced by animation tracks." msgstr "Na některé uzly odkazují stopy animace." msgid "Saving the branch as a scene requires having a scene open in the editor." -msgstr "Uložení větve jako scény vyžaduje mít scénu otevřenou v editoru." +msgstr "Pro uložení větve jako scény musíte mít v editoru otevřenou scénu." msgid "" "Saving the branch as a scene requires selecting only one node, but you have " "selected %d nodes." msgstr "" -"Uložení větve jako scény vyžaduje vybrání jednoho uzlu, vy ale máte vybraných " -"%d uzlů." +"Pro uložení větve jako scény musíte vybrat právě jeden uzel, vy jich ale máte " +"vybraných více: %d ." msgid "" "Can't save the root node branch as an instantiated scene.\n" @@ -14352,9 +15732,9 @@ msgid "" "FileSystem dock context menu\n" "or create an inherited scene using Scene > New Inherited Scene... instead." msgstr "" -"Není možné uložit větev kořenového uzlu jako instancovanou scénu.\n" -"Pro vytvoření upravitelné kopie současné scéni ji duplikujte za pomoci " -"kontextové nabídky doku Souborového systému,\n" +"Nelze uložit větev kořenového uzlu jako instancovanou scénu.\n" +"Chcete-li vytvořit upravovatelnou kopii současné scény ji duplikujte za " +"pomoci kontextové nabídky doku Souborového systému,\n" "nebo vytvořte zděděnou scénu ve Scéna > Nová zděděná scéna..." msgid "" @@ -14402,13 +15782,13 @@ msgstr "" "hodnoty." msgid "Make Local" -msgstr "Změnit na lokální" +msgstr "Změnit na místní" msgid "Can't toggle unique name for nodes in subscene!" msgstr "Není možné přepnout unikátní název pro uzly v podscéně!" msgid "Unique names already used by another node in the scene:" -msgstr "Jedinečné názvy jsou už použity jiným uzlem ve scéně:" +msgstr "Jedinečné názvy jsou již použity jiným uzlem ve scéně:" msgid "Disable Scene Unique Name(s)" msgstr "Deaktivovat unikátní názvy ve scéně" @@ -14420,7 +15800,7 @@ msgid "Create Root Node:" msgstr "Vytvořit kořenový uzel:" msgid "Toggle the display of favorite nodes." -msgstr "Změnit viditelnost oblíbených uzlů." +msgstr "Přepnout zobrazení oblíbených uzlů." msgid "Other Node" msgstr "Jiný uzel" @@ -14438,7 +15818,7 @@ msgid "Can't operate on nodes the current scene inherits from!" msgstr "Nelze manipulovat s uzly, ze kterých dědí aktuální scéna!" msgid "This operation can't be done on instantiated scenes." -msgstr "Tuto operaci nelze provést na instanci scény." +msgstr "Tuto operaci nelze provést na instancované scéně." msgid "Attach Script" msgstr "Připojit skript" @@ -14464,29 +15844,42 @@ msgstr "Změnit rodiče na nový uzel" msgid "This operation requires a single selected node." msgstr "Tato operace vyžaduje jeden vybraný uzel." +msgid "Reset Position" +msgstr "Obnovit pozici" + +msgid "Reset Scale" +msgstr "Obnovit měřítko" + +msgid "Reset Rotation" +msgstr "Obnovit rotaci" + msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." msgstr "" -"Scénu se nepodařilo uložit. Některé závislosti pravděpodobně nejsou splněny." +"Scénu se nepodařilo uložit. Některé závislosti (instance) pravděpodobně " +"nejsou splněny." msgid "Error saving scene." msgstr "Chyba při ukládání scény." msgid "Error duplicating scene to save it." -msgstr "Chyba ukládání duplikace scény." +msgstr "Chyba při duplikaci scény pro její uložení." msgid "Instantiate Script" msgstr "Instancovat skript" +msgid "<unknown>" +msgstr "<neznámý>" + msgid "Sub-Resources" msgstr "Dílčí zdroje" msgid "Revoke Unique Name" -msgstr "Zrušit unikátní název" +msgstr "Odebrat unikátní název" msgid "Access as Unique Name" -msgstr "Přistupovat jako unikátní název" +msgstr "Přistupovat přes unikátní název" msgid "Clear Inheritance" msgstr "Vymazat dědičnost" @@ -14510,6 +15903,9 @@ msgstr "" "Je-li aktivováno, Změnit rodiče na nový uzel vytvoří nový uzel ve středu " "vybraných uzlů, pokud je to možné." +msgid "Hide Filtered Out Parents" +msgstr "Skrýt vyfiltrované rodičovské uzly" + msgid "All Scene Sub-Resources" msgstr "Všechny dílčí zdroje scény" @@ -14521,14 +15917,14 @@ msgid "" msgstr "" "Filtrovat uzly zadáním části jejich názvu, typu (při použití prefixu \"type:" "\" nebo \"t:\")\n" -"nebo skupiny (při použití prefixu \"group:\" nebo \"g:\"). Nezáleží na " -"velikosti písmen." +"nebo skupiny (při použití prefixu \"group:\" nebo \"g:\"). Nerozlišuje velká " +"a malá písmena." msgid "Filter by Type" -msgstr "Filtrovat dle typu" +msgstr "Filtrovat podle typu" msgid "Filter by Group" -msgstr "Filtrovat dle skupiny" +msgstr "Filtrovat podle skupiny" msgid "Selects all Nodes of the given type." msgstr "Vybere všechny uzly daného typu." @@ -14538,7 +15934,7 @@ msgid "" "If empty, selects any Node belonging to any group." msgstr "" "Vybere všechny uzly patřící do dané skupiny.\n" -"Pokud je prázdné, vybere jakýkoli uzel patřící do jakékoli skupiny." +"Ponecháte-li prázdné, vybere jakýkoli uzel patřící do jakékoli skupiny." msgid "" "Cannot attach a script: there are no languages registered.\n" @@ -14622,6 +16018,9 @@ msgstr "Připojit nový nebo existující skript k vybranému uzlu." msgid "Detach the script from the selected node." msgstr "Odpojit skript od vybraného uzlu." +msgid "Extend the script of the selected node." +msgstr "Rozšířit skript vybraného uzlu." + msgid "Extra scene options." msgstr "Další možnosti scény." @@ -14633,9 +16032,9 @@ msgid "" "every time it updates.\n" "Switch back to the Local scene tree dock to improve performance." msgstr "" -"Pokud je vybrán, Vzdálený panel stromu scén způsobí, že se projekt při každé " -"jeho aktualizaci zasekne.\n" -"Pro zlepšení výkonu přepněte zpět na Místní panel stromu scén." +"Když je vybrán, projekt při každé aktualizaci doku Vzdálený strom scén krátce " +"zamrzne.\n" +"Pro zlepšení výkonu přepněte zpět na dok Místní strom scén." msgid "Local" msgstr "Místní" @@ -14683,7 +16082,7 @@ msgid "Error - Could not create script in filesystem." msgstr "Chyba - Nelze vytvořit skript v souborovém systému." msgid "Error loading script from %s" -msgstr "Chyba nahrávání skriptu z %s" +msgstr "Chyba načítání skriptu z %s" msgid "Open Script / Choose Location" msgstr "Otevřít skript / Vybrat umístění" @@ -14695,7 +16094,7 @@ msgid "Inherit %s" msgstr "Dědit z %s" msgid "Inherit" -msgstr "Dědit z" +msgstr "Zdědit" msgid "Invalid path." msgstr "Neplatná cesta." @@ -14710,8 +16109,8 @@ msgid "" "Note: Built-in scripts have some limitations and can't be edited using an " "external editor." msgstr "" -"Poznámka: Vestavěné skripty mají určitá omezení a nelze je upravovat pomocí " -"externího editoru." +"Poznámka: Vestavěné skripty mají určitá omezení a nelze je upravovat v " +"externím editoru." msgid "" "Warning: Having the script name be the same as a built-in type is usually not " @@ -14804,13 +16203,13 @@ msgid "Name must be a valid identifier." msgstr "Název musí být platný identifikátor." msgid "Global shader parameter '%s' already exists." -msgstr "Globální parametr shaderu '%s' již existuje." +msgstr "Globální shaderový parametr '%s' již existuje." msgid "Name '%s' is a reserved shader language keyword." -msgstr "Název '%s' je rezervované slovo shaderového jazyka." +msgstr "Název '%s' je rezervované klíčové slovo shaderového jazyka." msgid "Add Shader Global Parameter" -msgstr "Přidat globální parametr shaderu" +msgstr "Přidat globální shaderový parametr" msgid "" "This project uses meshes with an outdated mesh format from previous Godot " @@ -14820,11 +16219,11 @@ msgid "" "that this leads to increased load times every time you load the project." msgstr "" "Tento projekt používá sítě se zastaralým formátem sítí z předchozích verzí " -"Godotu. Aby engine mohl tyto sítě používat, musí aktualizovat formát. " -"Použijte prosím nástroj 'Aktualizovat povrchy sítí' z nabídky 'Projekt > " -"Nástroje'. Tuto zprávu můžete ignorovat a nadále používat zastaralé sítě, ale " -"mějte na paměti, že to povede ke zvýšení doby načítání pokaždé, když načtete " -"projekt." +"Godotu. Aby engine mohl tyto sítě používat, musí nejprve jejich aktualizovat " +"formát. Použijte prosím nástroj 'Aktualizovat povrchy sítí' z nabídky " +"'Projekt > Nástroje'. Tuto zprávu můžete ignorovat a nadále používat " +"zastaralé sítě, ale mějte na paměti, že to povede ke zvýšení doby načítání " +"pokaždé, když otevřete projekt." msgid "" "This project uses meshes with an outdated mesh format. Check the output log." @@ -14862,15 +16261,56 @@ msgstr "" "Pokud je váš projekt starší než Godot 4.2 a obsahuje sítě, doporučujeme vám " "spustit tento jednorázový nástroj pro převod. Tato aktualizace restartuje " "editor a může trvat několik minut. Aktualizace způsobí, že sítě nebudou " -"kompatibilní s předchozími verzemi Godota.\n" +"kompatibilní s předchozími verzemi Godotu.\n" "\n" "Své stávající sítě můžete stále používat tak, jak jsou. Engine aktualizuje " -"každou síť v paměti, ale aktualizace se neuloží. Výběr této možnosti povede k " -"pomalejšímu načítání při každém načtení tohoto projektu." +"každou síť v paměti, ale tyto aktualizace se neuloží. Výběr této možnosti " +"povede k pomalejšímu načítání při každém otevření tohoto projektu." msgid "Restart & Upgrade" msgstr "Restartovat a aktualizovat" +msgid "Updating Script UIDs" +msgstr "Aktualizace UID skriptů" + +msgid "" +"As of Godot 4.4, scenes and resources use UIDs to reference scripts and " +"shaders.\n" +"\n" +"Normally, this update is applied to a single scene or resource once you save " +"it in Godot 4.4 for the first time. If you have a lot of scenes and/or " +"resources, doing this manually may be time-consuming. This tool will update " +"all of the project's scenes and resources at once.\n" +"\n" +"Click \"Restart & Upgrade\" to restart the editor and update all of the " +"scenes and resources in this project. Depending on the project size, it may " +"take several minutes.\n" +"\n" +"Note: Please make sure you have your project backed up before running the " +"tool, to avoid the possibility of data loss. Additionally, make sure to " +"commit all .uid files into version control (and do not add them to ignore-" +"lists like .gitignore)." +msgstr "" +"Od verze Godotu 4.4 používají scény a zdroje pro odkazování na skripty a " +"shadery UID.\n" +"\n" +"Běžně se tato aktualizace aplikuje na jednu scénu nebo zdroj, jakmile je " +"poprvé uložíte v Godotu 4.4. Máte-li mnoho scén a/nebo zdrojů, může být ruční " +"aktualizace časově náročná. Tento nástroj aktualizuje všechny scény a zdroje " +"projektu najednou.\n" +"\n" +"Kliknutím na \"Restartovat a aktualizovat\" restartujete editor a " +"aktualizujete všechny scén a zdrojů v tomto projektu. Tato operace může v " +"závislosti na velikosti projektu trvat až několik minut.\n" +"\n" +"Poznámka: Před spuštěním nástroje se ujistěte, že máte svůj projekt " +"zálohovaný, abyste předešli potenciálně ztrátě dat. Také se ujistěte, že jste " +"všechny .uid soubory commitovali do systému správy verzí (a nepřidávejte je " +"do seznamů ignorovaných souborů jako .gitignore)." + +msgid "Learn More" +msgstr "Zjistit více" + msgid "Make this panel floating in the screen %d." msgstr "Otevřít tento panel jako plovoucí dok na obrazovce %d." @@ -14884,6 +16324,64 @@ msgstr "" msgid "Select Screen" msgstr "Vybrat obrazovku" +msgid "" +"The CSGShape3D has an empty shape.\n" +"CSGShape3D empty shapes typically occur because the mesh is not manifold.\n" +"A manifold mesh forms a solid object without gaps, holes, or loose edges.\n" +"Each edge must be a member of exactly two faces." +msgstr "" +"CSGShape3D má prázdný tvar.\n" +"Prázdné tvary CSGShape3D se obvykle vyskytují, když síť není varietní.\n" +"Varietní síť utváří pevný objekt bez mezer, děr nebo uvolněných okrajů.\n" +"Každá její hrana musí být součástí právě dvou stran." + +msgid "CSG operation returned an empty array." +msgstr "CSG operace vrátila prázdné pole." + +msgid "" +"Can not add a baked mesh as sibling for the scene root.\n" +"Move the CSG root node below a parent node." +msgstr "" +"Nelze přidat vypálenou síť jako sourozence kořenového uzlu scény.\n" +"Přesuňte kořenový CSG uzel pod rodičovský uzel." + +msgid "CSG operation returned an empty mesh." +msgstr "CSG operace vrátila prázdnou síť." + +msgid "Create baked CSGShape3D Mesh Instance" +msgstr "Vytvořit vypálenou instanci CSGShape3D sítě" + +msgid "" +"Can not add a baked collision shape as sibling for the scene root.\n" +"Move the CSG root node below a parent node." +msgstr "" +"Nelze přidat vypálený kolizní tvar jako sourozence kořenového uzlu scény.\n" +"Přesuňte kořenový CSG uzel pod rodičovský uzel." + +msgid "CSG operation returned an empty shape." +msgstr "CSG operace vrátila prázdný tvar." + +msgid "Create baked CSGShape3D Collision Shape" +msgstr "Vytvořit vypálený kolizní tvar CSGShape3d" + +msgid "CSG" +msgstr "CSG (konstruktivní geometrie těles)" + +msgid "Bake Mesh Instance" +msgstr "Vypálit instanci sítě" + +msgid "Bake Collision Shape" +msgstr "Vypálit kolizní tvar" + +msgid "Change CSG Box Size" +msgstr "Změnit velikost CSG boxu" + +msgid "Change CSG Cylinder Radius" +msgstr "Změnit poloměr CSG válce" + +msgid "Change CSG Cylinder Height" +msgstr "Změnit výšku CSG válce" + msgid "Change Torus Inner Radius" msgstr "Změnit vnitřní poloměr toru" @@ -14899,6 +16397,27 @@ msgstr "Nelze změnit velikost pole." msgid "Step argument is zero!" msgstr "Argument kroku je nulový!" +msgid "Not a script with an instance." +msgstr "Nejedná se o skript s instancí." + +msgid "Not based on a script." +msgstr "Není založeno na skriptu." + +msgid "Not based on a resource file." +msgstr "Není založeno na souboru zdroje." + +msgid "Invalid instance dictionary format (missing @path)." +msgstr "Neplatný formát slovníku instance (chybějící @path)." + +msgid "Invalid instance dictionary format (can't load script at @path)." +msgstr "Neplatný formát slovníku instance (nelze načíst skript na @path)." + +msgid "Invalid instance dictionary format (invalid script at @path)." +msgstr "Neplatný formát slovníku instance (neplatný skript na @path)." + +msgid "Invalid instance dictionary (invalid subclasses)." +msgstr "Neplatný formát slovníku instance (neplatné podtřídy)." + msgid "Cannot instantiate GDScript class." msgstr "Nelze instancovat třídu jazyka GDScript." @@ -14992,44 +16511,53 @@ msgid "Disabling '.blend' file import requires restarting the editor." msgstr "Deaktivace importu souborů '.blend' vyžaduje restart editoru." msgid "GridMap Delete Selection" -msgstr "GridMap Smazat výběr" +msgstr "Mřížková mapa: Smazat výběr" msgid "GridMap Fill Selection" -msgstr "GridMap Vyplnit výběr" +msgstr "Mřížková mapa: Vyplnit výběr" msgid "GridMap Paste Selection" -msgstr "GridMap Vložit výběr" +msgstr "Mřížková mapa: Vložit výběr" msgid "GridMap Paint" -msgstr "GridMap Kreslit" +msgstr "Mřížková mapa: Kreslit" msgid "GridMap Selection" -msgstr "GridMap Výběr" +msgstr "Mřížková mapa: Výběr" msgid "Previous Floor" msgstr "Předchozí patro" msgid "Next Floor" -msgstr "Další patro" +msgstr "Další patro" msgid "Edit X Axis" -msgstr "Editovat osu X" +msgstr "Upravit osu X" msgid "Edit Y Axis" -msgstr "Editovat osu Y" +msgstr "Upravit osu Y" msgid "Edit Z Axis" -msgstr "Editovat osu Z" +msgstr "Upravit osu Z" + +msgid "Keep Selection" +msgstr "Ponechat výběr" + +msgid "Clear Rotation" +msgstr "Vymazat rotaci" msgid "GridMap Settings" -msgstr "Nastavení GridMap" +msgstr "Nastavení mřížkové mapy" msgid "Pick Distance:" -msgstr "Výběrová vzdálenost:" +msgstr "Vzdálenost výběru:" msgid "Selection" msgstr "Výběr" +msgid "Erase" +msgstr "Vymazat" + msgid "Cursor Rotate X" msgstr "X otočení kurzoru" @@ -15039,11 +16567,26 @@ msgstr "Y otočení kurzoru" msgid "Cursor Rotate Z" msgstr "Z otočení kurzoru" +msgid "" +"Change Grid Floor:\n" +"Previous Plane (%s)\n" +"Next Plane (%s)" +msgstr "" +"Změnit patro mřížky:\n" +"Předchozí rovina (%s)\n" +"Další rovina (%s)" + msgid "Filter Meshes" -msgstr "Filtrovat meshe" +msgstr "Filtrovat sítě" msgid "Give a MeshLibrary resource to this GridMap to use its meshes." -msgstr "Přiřaďte uzlu GridMap zdroj MeshLibrary k použití jeho sítě." +msgstr "Přiřaďte této mřížkové mapě zdroj MeshLibrary k použití jeho sítě." + +msgid "GridMap" +msgstr "Mřížková mapa" + +msgid "Toggle GridMap Bottom Panel" +msgstr "Přepnout spodní panel Mřížková mapa" msgid "All Clips" msgstr "Všechny klipy" @@ -15171,12 +16714,18 @@ msgstr "Odkrývání geometrie" msgid "Plot direct lighting" msgstr "Zakreslit přímé osvětlení" +msgid "Plot direct lighting %d%%" +msgstr "Zakreslit přímé osvětlení: %d%%" + msgid "Integrate indirect lighting" msgstr "Integrovat nepřímé osvětlení" msgid "Integrate indirect lighting %d%%" msgstr "Integrovat nepřímé osvětlení %d%%" +msgid "Baking light probes" +msgstr "Vypalování světelných sond" + msgid "Integrating light probes %d%%" msgstr "Integrování světelných sond %d%%" @@ -15195,6 +16744,20 @@ msgstr "Název třídy musí být platný identifikátor" msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "Nedostatek bajtů pro dekódování bajtů, nebo neplatný formát." +msgid "" +"Unable to load .NET runtime, no compatible version was found.\n" +"Attempting to create/edit a project will lead to a crash.\n" +"\n" +"Please install the .NET SDK 8.0 or later from https://get.dot.net and restart " +"Godot." +msgstr "" +"Nelze načíst běhové prostředí .NET, nebyla nalezena žádná kompatibilní " +"verze.\n" +"Pokus o vytvoření/úpravu projektu povede k pádu.\n" +"\n" +"Nainstalujte prosím .NET SDK 8.0 nebo novější z https://get.dot.net a " +"restartujte Godot." + msgid "Failed to load .NET runtime" msgstr "Načtení .NET runtime selhalo" @@ -15208,6 +16771,19 @@ msgstr "" msgid ".NET assemblies not found" msgstr "Sestavení .NET nebyla nalezena" +msgid "" +"Unable to load .NET runtime, specifically hostfxr.\n" +"Attempting to create/edit a project will lead to a crash.\n" +"\n" +"Please install the .NET SDK 8.0 or later from https://get.dot.net and restart " +"Godot." +msgstr "" +"Nepodařilo se načíst běhové prostředí .NET, konkrétně hostfxr.\n" +"Pokus o vytvoření/úpravu projektu povede k pádu.\n" +"\n" +"Nainstalujte prosím .NET SDK 8.0 nebo novější z https://get.dot.net a " +"restartujte Godot." + msgid "%d (%s)" msgstr "%d (%s)" @@ -15338,7 +16914,7 @@ msgid "" "MultiplayerSynchronizer to be able to synchronize properties." msgstr "" "Aby MultiplayerSynchronizer mohl synchronizovat vlastnosti, musí být ve " -"vlastnosti \"Kořenová cesta\" nastavena platná NodePath." +"vlastnosti \"Cesta ke kořeni\" nastavena platná NodePath." msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" @@ -15349,8 +16925,8 @@ msgid "" "Cannot generate navigation mesh because it does not belong to the edited " "scene. Make it unique first." msgstr "" -"Nelze vygenerovat navigační síť, protože nepatří upravované scéně. Nejprve z " -"ní udělejte unikátní zdroj." +"Nelze generovat navigační síť, protože nepatří upravované scéně. Nejprve z ní " +"udělejte unikátní zdroj." msgid "" "Cannot generate navigation mesh because it belongs to a resource which was " @@ -15460,21 +17036,47 @@ msgstr "Přidat akci." msgid "Remove action set." msgstr "Odstanit množinu akcí." +msgid "Remove binding modifier." +msgstr "Odstranit modifikátor vazby." + +msgid "Remove binding modifier" +msgstr "Odstranit modifikátor vazby" + +msgid "Add binding modifier" +msgstr "Přidat modifikátor vazby" + +msgid "Note: modifiers will only be applied if supported on the host system." +msgstr "" +"Poznámka: modifikátory budou aplikovány pouze, pokud je hostující systém " +"podporuje." + +msgid "Binding modifiers for:" +msgstr "Modifikátory vazeb pro:" + msgid "OpenXR Action Map" msgstr "Mapa akcí OpenXR" msgid "Toggle OpenXR Action Map Bottom Panel" -msgstr "Přepnout spodní panel mapy akcí OpenXR" +msgstr "Přepnout spodní panel Mapa akcí OpenXR" msgid "Remove action from interaction profile" msgstr "Odstranit akci z profilu interakce" +msgid "Edit binding modifiers" +msgstr "Upravit modifikátory vazeb" + +msgid "Note: This interaction profile requires extension %s support." +msgstr "Poznámka: Tento profil interakce vyžaduje podporu rozšíření %s." + msgid "Add binding" msgstr "Přidat vazbu" msgid "Remove binding" msgstr "Odstranit vazbu" +msgid "Note: This binding path requires extension %s support." +msgstr "Poznámka: Tato cesta vazby vyžaduje podporu rozšíření %s." + msgid "Pose" msgstr "Póza" @@ -15490,8 +17092,11 @@ msgstr "Vybrat akci" msgid "Select an interaction profile" msgstr "Vybrat profil interakce" +msgid "All interaction profiles have been added to the action map." +msgstr "Všechny profily interakcí byly přidány do mapy akcí." + msgid "Choose an XR runtime." -msgstr "Zvolit XR runtime." +msgstr "Zvolit běhové prostředí pro XR." msgid "" "Cannot use the same SubViewport with multiple OpenXR composition layers. " @@ -15500,6 +17105,13 @@ msgstr "" "Nelze použít stejný SubViewport s více vrstvami kompozice OpenXR. Nejprve jej " "vymažte z aktuální vrstvy." +msgid "" +"Cannot set SubViewport on an OpenXR composition layer when using an Android " +"surface." +msgstr "" +"Při použití Android povrchu nelze nastavit SubViewport na kompoziční vrstvě " +"OpenXR." + msgid "OpenXR composition layers must have an XROrigin3D node as their parent." msgstr "Vrstvy kompozice OpenXR musí mít jako rodiče uzel XROrigin3D." @@ -15515,6 +17127,9 @@ msgid "" msgstr "" "Děrování nebude fungovat podle očekávání, pokud není pořadí menší než nula." +msgid "OpenXR visibility mask must have an XRCamera3D node as their parent." +msgstr "Maska viditelnosti OpenXR musí mít jako rodičovský uzel XRCamera3D." + msgid "Package name is missing." msgstr "Chybí název balíčku." @@ -15542,6 +17157,11 @@ msgstr "Neplatný veřejný klíč pro rozšíření APK." msgid "Invalid package name:" msgstr "Neplatný název balíčku:" +msgid "\"Use Gradle Build\" is required to enable \"Swipe to dismiss\"." +msgstr "" +"Pro povolení \"Zavřít přejetím prstu\" musí být povoleno \"Použít Gradle " +"sestavení\"." + msgid "\"Use Gradle Build\" must be enabled to use the plugins." msgstr "" "Chcete-li používat doplňky, musí být povoleno \"Použít Gradle sestavení\"." @@ -15592,6 +17212,21 @@ msgstr "" msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "Verze \"Cílové SDK\" musí být vyšší nebo rovna verzi \"Minimální SDK\"." +msgid "\"Use Gradle Build\" must be enabled to enable \"Show In Android Tv\"." +msgstr "" +"Pro povolení \"Zobrazit v Android Tv\" musí být povoleno \"Použít Gradle " +"sestavení\"." + +msgid "\"Use Gradle Build\" must be enabled to enable \"Show As Launcher App\"." +msgstr "" +"Pro povolení \"Zobrazit jako aplikaci systémového prostředí\" musí být " +"povoleno \"Použít Gradle sestavení\"." + +msgid "\"Use Gradle Build\" must be enabled to disable \"Show In App Library\"." +msgstr "" +"Pro povolení \"Zobrazit v knihovně aplikací\" musí být povoleno \"Použít " +"Gradle sestavení\"." + msgid "Select device from the list" msgstr "Vyberte zařízení ze seznamu" @@ -15619,11 +17254,30 @@ msgstr "Nepodařilo se spustit na zařízení." msgid "Error: There was a problem validating the keystore username and password" msgstr "" "Chyba: Vyskytnul se problém při ověření uživatelského jména a hesla úložiště " -"klíčů (keystore)" +"klíčů" + +msgid "" +"Unable to determine the C# project's TFM, it may be incompatible. The export " +"template only supports '%s'. Make sure the project targets '%s' or consider " +"using gradle builds instead." +msgstr "" +"Nelze určit TFM projektu C#, může být nekompatibilní. Exportní šablona " +"podporuje pouze '%s'. Ujistětese, že projekt cílí na '%s' nebo namísto toho " +"zvažte použití gradle sestavení." + +msgid "" +"C# project targets '%s' but the export template only supports '%s'. Consider " +"using gradle builds instead." +msgstr "" +"Projekt C# cílí na '%s', ale exportní šablona podporuje pouze '%s'. Zvažte " +"namísto toho použití gradle sestavení." msgid "Exporting to Android when using C#/.NET is experimental." msgstr "Export pro Android za použití C#/.NET je experimentální." +msgid "Gradle build is not supported for the Android editor." +msgstr "Gradle sestavení není v Android verzi editoru podporováno." + msgid "Custom Android source template not found." msgstr "Vlastní zdrojová šablona pro Android nebyla nalezena." @@ -15679,7 +17333,7 @@ msgid "Invalid Android SDK path in Editor Settings." msgstr "Neplatná cesta k Android SDK v Nastavení editoru." msgid "Missing 'platform-tools' directory!" -msgstr "Chybí složka \"platform-tools\"!" +msgstr "Chybí složka 'platform-tools'!" msgid "Unable to find Android SDK platform-tools' adb command." msgstr "Nelze najít příkaz adb z nástrojů platform-tools Android SDK." @@ -15688,7 +17342,7 @@ msgid "Please check in the Android SDK directory specified in Editor Settings." msgstr "Zkontrolujte ve složce Android SDK uvedené v Nastavení editoru." msgid "Missing 'build-tools' directory!" -msgstr "Chybí složka \"build-tools\"!" +msgstr "Chybí složka 'build-tools'!" msgid "Unable to find Android SDK build-tools' apksigner command." msgstr "Nelze najít apksigner příkaz nástrojů build-tools Android SDK." @@ -15723,9 +17377,37 @@ msgstr "" msgid "Code Signing" msgstr "Podepisování kódu" +msgid "AAB signing is not supported" +msgstr "Podepisování AAB není podporováno" + +msgid "Signing debug APK..." +msgstr "Podepisování ladicího APK..." + +msgid "Signing release APK..." +msgstr "Podepisování APK vydání..." + msgid "Could not find keystore, unable to export." msgstr "Nepodařilo se najít úložiště klíčů, nelze exportovat." +msgid "Unable to sign apk." +msgstr "Nepodařilo se podepsat apk." + +msgid "" +"All 'apksigner' tools located in Android SDK 'build-tools' directory failed " +"to execute. Please check that you have the correct version installed for your " +"target sdk version. The resulting APK is unsigned." +msgstr "" +"Všechny nástroje 'apksigner' umístěné v adresáři 'build-tools' sady Android " +"SDK selhaly. Zkontrolujte, zda máte nainstalovanou správnou verzi pro vaši " +"cílovou verzi sdk. Výsledné APK nebylo podepsáno." + +msgid "" +"'apksigner' could not be found. Please check that the command is available in " +"the Android SDK build-tools directory. The resulting APK is unsigned." +msgstr "" +"Nepodařilo se nalézt 'apksigner'. Prosím ověřte, že je tento příkaz dostupný " +"v adresáři build-tools sady Android SDK. Výsledné APK nebylo podepsáno." + msgid "Could not start apksigner executable." msgstr "Nelze spustit program apksigner." @@ -15739,6 +17421,15 @@ msgstr "" "výstup:\n" "%s" +msgid "Verifying APK..." +msgstr "Ověřuji APK..." + +msgid "Unable to verify signed apk." +msgstr "Nepodařilo se ověřit podepsané apk." + +msgid "'apksigner' verification of APK failed." +msgstr "Ověření APK pomocí 'apksigner' selhalo." + msgid "Target folder does not exist or is inaccessible: \"%s\"" msgstr "Cílová složka neexistuje, nebo k ní nelze přistoupit: \"%s\"" @@ -15800,6 +17491,12 @@ msgstr "Přesunout výstup" msgid "Unable to copy and rename export file:" msgstr "Nelze kopírovat a přejmenovat exportovaný soubor:" +msgid "Debug export template not found: \"%s\"." +msgstr "Šablona exportu ladění nenalezena: \"%s\"." + +msgid "Release export template not found: \"%s\"." +msgstr "Šablona exportu vydání nenalezena: \"%s\"." + msgid "Creating APK..." msgstr "Vytvářím APK..." @@ -15811,7 +17508,7 @@ msgid "" "Please build a template with all required libraries, or uncheck the missing " "architectures in the export preset." msgstr "" -"Chybějísí knihovny v šabloně exportu pro vybrané architektury: %s. Sestavte " +"Chybějící knihovny v šabloně exportu pro vybrané architektury: %s. Sestavte " "prosím šablonu se všemi požadovanými knihovnami, nebo zrušte výběr " "chybějících architektur v profilu exportu." @@ -15886,12 +17583,12 @@ msgid "Could not create and open the directory: \"%s\"" msgstr "Nepodařilo se vytvořit a otevřít adresář: \"%s\"" msgid "iOS Plugins" -msgstr "Pluginy iOS" +msgstr "Zásuvné moduly iOS" msgid "Failed to export iOS plugins with code %d. Please check the output log." msgstr "" -"Nepodařilo se exportovat iOS pluginy s kódem %d. Zkontrolujte prosím výstupní " -"log." +"Nepodařilo se exportovat zásuvné moduly iOS s kódem %d. Zkontrolujte prosím " +"výstupní log." msgid "Could not create a directory at path \"%s\"." msgstr "Nepodařilo se vytvořit adresář: \"%s\"." @@ -15903,12 +17600,6 @@ msgstr "" "Vyžádaná knihovna šablon '%s' nebyla nalezena. Možná chybí ve vašem archivu " "šablon." -msgid "ARM64 simulator library, generating from device library." -msgstr "Knihovna simulátoru ARM64, generování z knihovny zařízení." - -msgid "Unable to generate ARM64 simulator library." -msgstr "Nepodařilo se vygenerovat knihovnu simulátoru ARM64." - msgid "Could not copy a file at path \"%s\" to \"%s\"." msgstr "Nelze zkopírovat soubor z cesty \"%s\" do \"%s\"." @@ -15950,6 +17641,9 @@ msgstr "Export pro iOS při využití C#/.NET je experimentální." msgid "Invalid additional PList content: " msgstr "Neplatný dodatečný obsah PList: " +msgid "Metal renderer require iOS 14+." +msgstr "Vykreslovací nástroj Metal vyžaduje iOS 14+." + msgid "Identifier is missing." msgstr "Chybí identifikátor." @@ -15980,12 +17674,33 @@ msgstr "Export ladícího skriptu" msgid "Could not open file \"%s\"." msgstr "Nelze otevřít soubor \"%s\"." +msgid "" +"Mismatching custom export template executable architecture, found \"%s\", " +"expected \"%s\"." +msgstr "" +"Neodpovídající architektura spustitelného souboru šablony exportu, nalezena " +"\"%s\", očekávána \"%s\"." + msgid "Debug Console Export" msgstr "Export ladící konzole" msgid "Could not create console wrapper." msgstr "Nepodařilo se vytvořit wrapper konzole." +msgid "" +"Mismatching custom debug export template executable architecture: found " +"\"%s\", expected \"%s\"." +msgstr "" +"Neodpovídající architektura spustitelného souboru šablony exportu ladění: " +"nalezena \"%s\", očekávána \"%s\"." + +msgid "" +"Mismatching custom release export template executable architecture: found " +"\"%s\", expected \"%s\"." +msgstr "" +"Neodpovídající architektura spustitelného souboru šablony exportu vydání: " +"nalezena \"%s\", očekávána \"%s\"." + msgid "Failed to open executable file \"%s\"." msgstr "Nelze otevřít spustitelný soubor \"%s\"." @@ -16011,7 +17726,7 @@ msgid "Run exported project on remote Linux/BSD system" msgstr "Spustit exportovaný projekt na vzdáleném systému Linux/BSD" msgid "Running..." -msgstr "Spouštím..." +msgstr "Spouštění..." msgid "Could not create temp directory:" msgstr "Nepodařilo se vytvořit dočasný adresář:" @@ -16094,7 +17809,7 @@ msgid "Microphone access is enabled, but usage description is not specified." msgstr "Je povolen přístup k mikforonu, ale není uveden popis použití." msgid "Camera access is enabled, but usage description is not specified." -msgstr "Je povolen přístup ke kameře, ale není uveden popis použití." +msgstr "Je povolen přístup k fotoaparátu, ale není uveden popis použití." msgid "" "Location information access is enabled, but usage description is not " @@ -16103,13 +17818,13 @@ msgstr "" "Je povolen přístup ke informaci o pozici, ale není uveden popis použití." msgid "Address book access is enabled, but usage description is not specified." -msgstr "Je povolen přístup ke kontaktům, ale není uveden popis použití." +msgstr "Je povolen přístup k seznamu kontaktů, ale není uveden popis použití." msgid "Calendar access is enabled, but usage description is not specified." msgstr "Je povolen přístup ke kalendáři, ale není uveden popis použití." msgid "Photo library access is enabled, but usage description is not specified." -msgstr "Je povolen přístup k fotkám, ale není uveden popis použití." +msgstr "Je povolen přístup k knihovně fotek, ale není uveden popis použití." msgid "Notarization" msgstr "Notářské ověření" @@ -16233,6 +17948,13 @@ msgstr "" msgid "Could not created symlink \"%s\" -> \"%s\"." msgstr "Nelze vytvořit symbolický odkaz \"%s\" -> \"%s\"." +msgid "" +"Unable to set Unix permissions for executable \"%s\". Use \"chmod +x\" to set " +"it after transferring the exported .app to macOS or Linux." +msgstr "" +"Nelze nastavit unixová oprávnění pro spustitelný soubor \"%s\". Po přenesení " +"exportované .app do macOS nebo Linuxu je nastavte pomocí \"chmod +x\"." + msgid "Could not open \"%s\"." msgstr "Nelze otevřít \"%s\"." @@ -16432,6 +18154,13 @@ msgstr "Změna zdrojů" msgid "Icon size \"%d\" is missing." msgstr "Chybí ikona velikosti \"%d\"." +msgid "" +"Mismatching custom export template executable architecture: found \"%s\", " +"expected \"%s\"." +msgstr "" +"Neodpovídající architektura spustitelného souboru šablony exportu: nalezena " +"\"%s\", očekávána \"%s\"." + msgid "Failed to rename temporary file \"%s\"." msgstr "Nelze přejmenovat dočasný soubor: \"%s\"." @@ -16511,7 +18240,7 @@ msgstr "" "rcedit v Nastavení editoru (Export > Windows > rcedit)." msgid "Windows executables cannot be >= 4 GiB." -msgstr "Spustitelné soubory pro Windows nemohou být >= 4 GiB." +msgstr "Spustitelné soubory pro Windows nesmí být >= 4 GiB." msgid "Run on remote Windows system" msgstr "Spustit na vzdáleném systému Windows" @@ -16523,8 +18252,8 @@ msgid "" "A SpriteFrames resource must be created or set in the \"Sprite Frames\" " "property in order for AnimatedSprite2D to display frames." msgstr "" -"Zdroj SpriteFrames musí být vytvořen nebo nastaven ve vlastnosti \"Sprite " -"Frames\", aby mohl AnimatedSprite3D zobrazit rámečky." +"Zdroj SpriteFrames musí být vytvořen nebo nastaven ve vlastnosti \"Snímky " +"spritu\", aby mohl AnimatedSprite3D zobrazovat snímky." msgid "" "Only one visible CanvasModulate is allowed per canvas.\n" @@ -16554,6 +18283,19 @@ msgstr "" "Animace Particles2D vyžaduje použití CanvasItemMaterial se zapnutou funkcí " "\"Animace částic\"." +msgid "" +"Particle trails are only available when using the Forward+ or Mobile " +"renderers." +msgstr "" +"Stopy částic jsou dostupné pouze při použití vykreslovacích nástrojů Forward+ " +"nebo Mobile." + +msgid "" +"Particle sub-emitters are not available when using the Compatibility renderer." +msgstr "" +"Dílčí emitory částic nejsou při použití vykreslovcího nástroje Compatibility " +"dostupné." + msgid "" "A texture with the shape of the light must be supplied to the \"Texture\" " "property." @@ -16562,7 +18304,7 @@ msgstr "Textura tvaru světla musí být nastavena vlastností 'texture'." msgid "" "An occluder polygon must be set (or drawn) for this occluder to take effect." msgstr "" -"Polygon stínidla musí být nastaven (nebo namalován), aby stínidlo mělo vliv." +"Stínící polygon musí být nastaven (nebo nakreslen), aby stínidlo mělo vliv." msgid "The occluder polygon for this occluder is empty. Please draw a polygon." msgstr "" @@ -16577,8 +18319,23 @@ msgid "" "NavigationLink2D start position should be different than the end position to " "be useful." msgstr "" -"Počáteční pozice NavigationLink2D by se měla lišit od koncové pozice, aby byl " -"uzel užitečný." +"Aby byl NavigationLink2D užitečný, měla by se jeho startovní pozice lišit od " +"koncové." + +msgid "NavigationObstacle2D does not support negative or zero scaling." +msgstr "NavigationObstacle2D nepodporuje záporné nebo nulové škálování." + +msgid "" +"The agent radius can only be scaled uniformly. The largest value along the " +"two axes of the global scale will be used to scale the radius. This value may " +"change in unexpected ways when the node is rotated." +msgstr "" +"Poloměr aktéra lze škálovat pouze jednotně. Pro měřítko poloměru bude použita " +"největší hodnota z obou os globálního měřítka. Tato hodnota se může při " +"otočení uzlu neočekávaným způsobem změnit." + +msgid "Skew has no effect on the agent radius." +msgstr "Zkosení nemá na poloměr aktéra žádný vliv." msgid "" "A NavigationMesh resource must be set or created for this node to work. " @@ -16619,16 +18376,17 @@ msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "Prázdný CollisionPolygon2D nemá při kolizi žádný efekt." msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." -msgstr "Chybný polygon. Alespoň 3 body jsou potřeba v 'Solids' build módu." +msgstr "Chybný polygon. V režimu sestavení 'Solids' jsou třeba alespoň 3 body." msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." -msgstr "Chybný polygon. Alespoň 2 body jsou potřeba v 'Segments' build módu." +msgstr "" +"Chybný polygon. V režimu sestavení 'Segments' jsou třeba alespoň 2 body." msgid "" "The One Way Collision property will be ignored when the collision object is " "an Area2D." msgstr "" -"Vlastnost Jednosměrná kolize bude ignorována, je-li kolizní objekt Area2D." +"Když je kolizní objekt Area2D, bude vlastnost Jednosměrné kolize ignorována." msgid "" "CollisionShape2D only serves to provide a collision shape to a " @@ -16648,6 +18406,13 @@ msgstr "" "CollisionShape2D funkce musí obsahovat tvar. Prosím vytvořte pro něj zdroj " "tvaru!" +msgid "" +"The CollisionShape2D node has limited editing options for polygon-based " +"shapes. Consider using a CollisionPolygon2D node instead." +msgstr "" +"Možnosti úprav uzlů CollisionShape2D jsou pro tvary založené na polygonech " +"omezené. Zvažte místo toho použití uzlu CollisionPolygon2D." + msgid "Node A and Node B must be PhysicsBody2Ds" msgstr "Uzel A a uzel B musí být PhysicsBody2D" @@ -16661,7 +18426,7 @@ msgid "Joint is not connected to two PhysicsBody2Ds" msgstr "Kloub není připojen ke dvěma PhysicsBody2D" msgid "Node A and Node B must be different PhysicsBody2Ds" -msgstr "Uzel A a uzel B musí být různé PhysicsBody2D" +msgstr "Uzel A a uzel B musí být různá PhysicsBody2D" msgid "" "A PhysicalBone2D only works with a Skeleton2D or another PhysicalBone2D as a " @@ -16701,10 +18466,10 @@ msgstr "" msgid "Path property must point to a valid Node2D node to work." msgstr "" -"Pro zajištění funkčnosti musí vlastnost path ukazovat na platný uzel Node2D." +"Pro zajištění funkčnosti musí vlastnost cesta ukazovat na platný uzel Node2D." msgid "This Bone2D chain should end at a Skeleton2D node." -msgstr "Tento Bone2D řetěz by měl končit uzlem Skeleton2D." +msgstr "Tento řetěz Bone2D by měl končit uzlem Skeleton2D." msgid "A Bone2D only works with a Skeleton2D or another Bone2D as parent node." msgstr "" @@ -16726,8 +18491,8 @@ msgstr "" "Uzel TileMap je zastaralý, protože je nahrazen použitím více uzlů " "TileMapLayer.\n" "Chcete-li převést TileMap na sadu uzlů TileMapLayer, otevřete spodní panel " -"TileMap s tímto vybraným uzlem, klikněte na ikonu panelu nástrojů v pravém " -"horním rohu a zvolte \"Extrahovat vrstvy TileMap jako jednotlivé uzly " +"Mapa dlaždic s tímto vybraným uzlem, klikněte na ikonu panelu nástrojů v " +"pravém horním rohu a zvolte \"Extrahovat vrstvy TileMap jako jednotlivé uzly " "TileMapLayer\"." msgid "" @@ -16745,8 +18510,8 @@ msgid "" "A TileMap layer is set as Y-sorted, but Y-sort is not enabled on the TileMap " "node itself." msgstr "" -"Vrstva TileMap je nastavena jako řazená podle Y, ale v samotném uzlu TileMap " -"není řazení podle Y povoleno." +"Vrstva mapy dlaždic je nastavena jako řazená podle Y, ale v samotném uzlu " +"TileMap není řazení podle Y povoleno." msgid "" "The TileMap node is set as Y-sorted, but Y-sort is not enabled on any of the " @@ -16754,8 +18519,8 @@ msgid "" "This may lead to unwanted behaviors, as a layer that is not Y-sorted will be " "Y-sorted as a whole." msgstr "" -"Uzel TileMap je nastaven jako řazený podle Y, ale toto řazení není povolenno " -"na žádné z vrstev TileMap.\n" +"Uzel TileMap je nastaven jako řazený podle Y, ale toto řazení není povoleno " +"na žádné z vrstev mapy dlaždic.\n" "To může vést k nežádoucímu chování, protože vrstva, která není seřazena podle " "Y, bude seřazena podle Y jako celek." @@ -16763,8 +18528,8 @@ msgid "" "Isometric TileSet will likely not look as intended without Y-sort enabled for " "the TileMap and all of its layers." msgstr "" -"Izometrický TileSet pravděpodobně nebude vypadat podle očekávání, pokud není " -"na TileMap a všech jeích vrstvách povoleno řazení podle Y." +"Izometrická sada dlaždic pravděpodobně nebude vypadat podle očekávání, pokud " +"není na mapě dlaždic a všech jejích vrstvách povoleno řazení podle Y." msgid "" "External Skeleton3D node not set! Please set a path to an external Skeleton3D " @@ -16790,14 +18555,19 @@ msgstr "" "připojení tohoto uzlu." msgid "Nothing is visible because no mesh has been assigned." -msgstr "Nic není zobrazeno, protože nebyla přiřazena žádná mřížka." +msgstr "Nic není zobrazeno, protože nebyla přiřazena žádná síť." msgid "" "CPUParticles3D animation requires the usage of a StandardMaterial3D whose " "Billboard Mode is set to \"Particle Billboard\"." msgstr "" "Animace CPUParticles3D vyžaduje použití StandardMaterial3D, jehož režim " -"Billboard je nastaven na \"Částicový Billboard\"." +"Billboard je nastaven na \"Částicový billboard\"." + +msgid "Decals are only available when using the Forward+ or Mobile renderers." +msgstr "" +"Nálepky jsou dostupné pouze při využití vykreslovacích nástrojů Forward+ a " +"Mobile." msgid "" "The decal has no textures loaded into any of its texture properties, and will " @@ -16812,7 +18582,7 @@ msgid "" "maps onto the underlying surface.\n" "If you don't want the Albedo texture to be visible, set Albedo Mix to 0." msgstr "" -"Nálepka má Normálovou a/nebo ORM texturu, ale není nastavena žádná Albedo " +"Nálepka má normálovou a/nebo ORM texturu, ale není nastavena žádná Albedo " "textura.\n" "Albedo textura s alfa kanálem je nutná pro prolnutí normálové/ORM mapy do " "podložní vrstvy.\n" @@ -16827,6 +18597,11 @@ msgstr "" "objekty na žádné vrstvě.\n" "Chcete-li to vyřešit, povolte alespoň jeden bit ve vlastnosti Maska vyřazení." +msgid "Fog Volumes are only visible when using the Forward+ renderer." +msgstr "" +"Mlhové objemy jsou viditelné pouze při použití vykreslovacího nástroje " +"Forward+." + msgid "" "Fog Volumes need volumetric fog to be enabled in the scene's Environment in " "order to be visible." @@ -16835,8 +18610,7 @@ msgstr "" "volumetrickou mlhu." msgid "Nothing is visible because meshes have not been assigned to draw passes." -msgstr "" -"Nic není viditelné, protože mřížky nebyly přiřazeny do vykreslovací fronty." +msgstr "Nic není viditelné, protože sítě nebyly přiřazeny do průchodů kreslení." msgid "" "Particles animation requires the usage of a BaseMaterial3D whose Billboard " @@ -16849,18 +18623,18 @@ msgid "" "Using Trail meshes with a skin causes Skin to override Trail poses. Suggest " "removing the Skin." msgstr "" -"Použití sítí Stop se vzhledem způsobí, že Vzhled přepíše pózy Stopy. " -"Doporučuje se odstranit Vzhled." +"Použití sítí stop se slupkou způsobí, že slupka přepíše pózy stopy. " +"Doporučuje se slupku odstranit." msgid "Trails active, but neither Trail meshes or a Skin were found." -msgstr "Stopy jsou aktivní, ale nebyly nalezeny ani sítě Stop, ani Vzhled." +msgstr "Stopy jsou aktivní, ale nebyly nalezeny ani sítě stop, ani slupka." msgid "" "Only one Trail mesh is supported. If you want to use more than a single mesh, " "a Skin is needed (see documentation)." msgstr "" -"Pouze jedna síť Stopy je podporována. Chcete-li použít více než jednu síť, je " -"nutné použít Vzhled (viz dokumentace)." +"Pouze jedna síť stopy je podporována. Chcete-li použít více než jednu síť, je " +"nutné použít slupku (viz dokumentace)." msgid "" "Trails enabled, but one or more mesh materials are either missing or not set " @@ -16869,6 +18643,13 @@ msgstr "" "Stopy jsou povolené, ale jeden nebo více materiálů sítí buď chybí, nebo " "nejsou nastaveny pro vykreslování stop." +msgid "" +"Particle sub-emitters are only available when using the Forward+ or Mobile " +"renderers." +msgstr "" +"Dílčí emitory částic jsou dostupné pouze při použití vykreslovacích nástrojů " +"Forward+ nebo Mobile." + msgid "" "The Bake Mask has no bits enabled, which means baking will not produce any " "collision for this GPUParticlesCollisionSDF3D.\n" @@ -16883,16 +18664,23 @@ msgid "A light's scale does not affect the visual size of the light." msgstr "Měřítko světla neovlivní vizuální velikost světla." msgid "Projector texture only works with shadows active." -msgstr "Projekční texture funguje pouze, jsou-li aktivní stíny." +msgstr "Projekční textura funguje pouze, jsou-li aktivní stíny." + +msgid "" +"Projector textures are not supported when using the Compatibility renderer " +"yet. Support will be added in a future release." +msgstr "" +"Projekční textury zatím nejsou při využití vykreslovacího nástroje " +"Compatibility podporovány. Podpora bude přidána v budoucím vydání." msgid "A SpotLight3D with an angle wider than 90 degrees cannot cast shadows." msgstr "SpotLight3D s úhlem širším než 90 stupňů nemůže vrhat stíny." msgid "Finding meshes, lights and probes" -msgstr "Vyhledávání meshů, světel a sond" +msgstr "Vyhledávání sítí, světel a sond" msgid "Preparing geometry %d/%d" -msgstr "Připravuji geometrii %d/%d" +msgstr "Příprava geometrie %d/%d" msgid "Creating probes" msgstr "Vytváření sond" @@ -16901,10 +18689,10 @@ msgid "Creating probes from mesh %d/%d" msgstr "Vytváření sond ze sítě %d/%d" msgid "Preparing Lightmapper" -msgstr "Příprava Lightmapperu" +msgstr "Příprava světelného mapovače" msgid "Preparing Environment" -msgstr "Připravuji prostředí" +msgstr "Příprava prostředí" msgid "Generating Probe Volumes" msgstr "Generování objemů sond" @@ -16912,6 +18700,47 @@ msgstr "Generování objemů sond" msgid "Generating Probe Acceleration Structures" msgstr "Generování akceleračních struktur sond" +msgid "" +"Lightmaps can only be baked from a GPU that supports the RenderingDevice " +"backends.\n" +"Your GPU (%s) does not support RenderingDevice, as it does not support " +"Vulkan, Direct3D 12, or Metal.\n" +"Lightmap baking will not be available on this device, although rendering " +"existing baked lightmaps will work." +msgstr "" +"Světelné mapy lze vypálit pouze na GPU, která podporuje backendy " +"RenderingDevice.\n" +"Vaše GPU (%s) RenderingDevice nepodporuje, jelikož nepodporuje Vulkan, " +"Direct3D 12, ani Metal.\n" +"Vypalování světelných map na tomto zařízení nebude dostupné, nicméně " +"vykreslování existujících vypálených světelných map bude fungovat podle " +"očekávání." + +msgid "" +"The lightmap has no baked shadowmask textures. Please rebake with the " +"Shadowmask Mode set to anything other than None." +msgstr "" +"Světelná mapa nemá žádné vypálené textury stínových masek. Vypalte ji prosím " +"znovu s Režimem stínové masky nastaveným na jakoukoli hodnotu jinou než Žádný." + +msgid "" +"Lightmaps cannot be baked on %s. Rendering existing baked lightmaps will " +"still work." +msgstr "" +"Na %s nelze vypálit světelné mapy. Vykreslování existujících světelných map " +"bude stále fungovat podle očekávání." + +msgid "" +"Lightmaps cannot be baked, as the `lightmapper_rd` module was disabled at " +"compile-time. Rendering existing baked lightmaps will still work." +msgstr "" +"Světelné mapy není možné vypálit, protože modul `lightmapper_rd` byl při " +"kompilaci deaktivován. Vykreslování existujících světelných map bude stále " +"fungovat podle očekávání." + +msgid "Forward axis and primary rotation axis must not be parallel." +msgstr "Dopředná osa a primární osa otáčení nesmí být rovnoběžné." + msgid "" "The NavigationAgent3D can be used only under a Node3D inheriting parent node." msgstr "" @@ -16924,6 +18753,24 @@ msgstr "" "Aby byl NavigationLink3D užitečný, měla by se jeho startovní pozice lišit od " "koncové." +msgid "" +"NavigationObstacle3D only takes global rotation around the y-axis into " +"account. Rotations around the x-axis or z-axis might lead to unexpected " +"results." +msgstr "" +"NavigationObstacle3D bere v úvahu pouze globální rotaci kolem osy y. Otáčení " +"kolem osy x nebo osy z může vést k neočekávaným výsledkům." + +msgid "NavigationObstacle3D does not support negative or zero scaling." +msgstr "NavigationObstacle3D nepodporuje záporné nebo nulové škálování." + +msgid "" +"The agent radius can only be scaled uniformly. The largest scale value along " +"the three axes will be used." +msgstr "" +"Poloměr aktéra lze škálovat pouze jednotně. Pro měřítko poloměru bude použita " +"největší hodnota ze všech tří os." + msgid "" "Occlusion culling is disabled in the Project Settings, which means occlusion " "culling won't be performed in the root viewport.\n" @@ -16952,9 +18799,9 @@ msgid "" "types or bake the scene meshes by selecting the OccluderInstance3D and " "pressing the Bake Occluders button at the top of the 3D editor viewport." msgstr "" -"Ve vlastnosti Occluder není definována žádná stínící síť, takže pomocí této " +"Ve vlastnosti Stínidlo není definována žádná stínící síť, takže pomocí této " "OccluderInstance3D nebude provedeno žádné vyřazení zakrytých objektů.\n" -"Chcete-li to vyřešit, nastavte vlastnost Occluder na jeden z primitivních " +"Chcete-li to vyřešit, nastavte vlastnost Stínidlo na jeden z primitivních " "typů stínidel nebo vypalte sítě scény výběrem OccluderInstance3D a stisknutím " "tlačítka Vypálit stínidla v horní části průzoru 3D editoru." @@ -16987,8 +18834,8 @@ msgid "" "PathFollow3D's ROTATION_ORIENTED requires \"Up Vector\" to be enabled in its " "parent Path3D's Curve resource." msgstr "" -"Vlastnost ROTATION_ORIENTED uzlu PathFollow3D vyžaduje povolení \"Up Vector\" " -"ve zdroji křivky nadřazeného uzlu Path3D." +"Vlastnost ROTATION_ORIENTED uzlu PathFollow3D vyžaduje povolení \"Vektor " +"vzhůru\" ve zdroji křivky nadřazeného uzlu Path3D." msgid "" "This node has no shape, so it can't collide or interact with other objects.\n" @@ -17051,7 +18898,7 @@ msgid "" "shape resource for it." msgstr "" "Aby CollisionShape3D mohl fungovat, musí mu být poskytnut tvar. Vytvořte mu " -"prosím zdroj tvar." +"prosím zdroj tvaru." msgid "" "When used for collision, ConcavePolygonShape3D is intended to work with " @@ -17061,8 +18908,8 @@ msgid "" msgstr "" "Při použití pro kolize je ConcavePolygonShape3D určen pro práci se statickými " "uzly CollisionObject3D, jako je StaticBody3D.\n" -"Pro %s pravděpodobně nebude fungovat správně(mimo to, když je frozen a jeho " -"režim freeze_mode je nastavený na FREEZE_MODE_STATIC)." +"Pro %s pravděpodobně nebude fungovat správně(mimo to, když je zmražený a jeho " +"režim zmražení je nastavený na FREEZE_MODE_STATIC)." msgid "" "WorldBoundaryShape3D doesn't support RigidBody3D in another mode than static." @@ -17101,7 +18948,7 @@ msgid "Joint is not connected to any PhysicsBody3Ds" msgstr "Kloub není připojen k žádnému PhysicsBody3D" msgid "Node A and Node B must be different PhysicsBody3Ds" -msgstr "Uzel A a uzel B musí být dvě různé PhysicsBody3D" +msgstr "Uzel A a uzel B musí být dvě různá PhysicsBody3D" msgid "" "Scale changes to RigidBody3D will be overridden by the physics engine when " @@ -17133,8 +18980,11 @@ msgid "" "The \"Remote Path\" property must point to a valid Node3D or Node3D-derived " "node to work." msgstr "" -"Aby vlastnost \"Vzdálená cesta\" fungovala, musí ukazovat na platný Node3D " -"uzel, nebo uzel z Node3D odvozený." +"Aby vlastnost \"Cesta ke vzdálenému uzlu\" fungovala, musí ukazovat na platný " +"Node3D uzel, nebo uzel z Node3D odvozený." + +msgid "There is no child Skeleton3D!" +msgstr "Neexistuje žádný potomek Skeleton3D!" msgid "Skeleton3D node not set! SkeletonModifier3D must be child of Skeleton3D." msgstr "" @@ -17144,6 +18994,9 @@ msgstr "" msgid "This body will be ignored until you set a mesh." msgstr "Toto těleso bude ignorováno, dokud nenastavíte model." +msgid "Parent node should be a SpringBoneSimulator3D node." +msgstr "Rodičovský uzel by měl být uzel SpringBoneSimulator3D." + msgid "" "A SpriteFrames resource must be created or set in the \"Sprite Frames\" " "property in order for AnimatedSprite3D to display frames." @@ -17169,7 +19022,7 @@ msgid "" "the fade transition distance is set to 0.\n" "To resolve this, increase Visibility Range Begin Margin above 0." msgstr "" -"GeometryInstance3D je nakonfigurován tak, aby se plynule objevovala s " +"GeometryInstance3D je nakonfigurována tak, aby se plynule objevovala s " "rostoucí vzdáleností, ale vzdálenost přechodu slábnutí je nastavena na 0.\n" "Chcete-li to vyřešit, zvyšte počáteční odsazení rozsahu viditelnosti nad 0." @@ -17205,6 +19058,13 @@ msgstr "Generování pole vzdáleností" msgid "Finishing Plot" msgstr "Dokončování vykreslení" +msgid "" +"VoxelGI nodes are not supported when using the Compatibility renderer yet. " +"Support will be added in a future release." +msgstr "" +"Uzly VoxelGI zatím nejsou při využití vykreslovacího nástroje Compatibility " +"podporovány. Podpora bude přidána v budoucím vydání." + msgid "" "No VoxelGI data set, so this node is disabled. Bake static objects to enable " "GI." @@ -17283,6 +19143,15 @@ msgstr "" msgid "Copy this constructor in a script." msgstr "Kopírovat tento konstruktor ve skriptu." +msgid "Load Color Palette" +msgstr "Načíst paletu barev" + +msgid "Save Color Palette" +msgstr "Uložit paletu barev" + +msgid "Quick Load" +msgstr "Rychlé načtení" + msgid "Switch between hexadecimal and code values." msgstr "Přepnout mezi hexadecimálními a kódovými hodnotami." @@ -17315,7 +19184,7 @@ msgid "" "Labels with autowrapping enabled must have a custom minimum size configured " "to work correctly inside a container." msgstr "" -"Popisky s povoleným automatickým zabalováním musí mít nakonfigurovanou " +"Popisky s povoleným automatickým zalamováním musí mít nakonfigurovanou " "vlastní minimální velikost, aby správně fungovaly v kontejneru." msgid "" @@ -17324,9 +19193,20 @@ msgid "" msgstr "" "Současný font nepodporuje vykreslování jednoho nebo více znaků v tomto Labelu." +msgid "" +"The current theme style has shadows and/or rounded corners for popups, but " +"those won't display correctly if \"display/window/per_pixel_transparency/" +"allowed\" isn't enabled in the Project Settings, nor if it isn't supported." +msgstr "" +"Aktuální styl motivu má pro vyskakovací okna stíny a/nebo zaoblené rohy. Tyto " +"se nebudou zobrazovat správně, jestliže v Nastavení projektu není povoleno " +"\"display/window/per_pixel_transparency/allowed\" nebo pokud toto nastavení " +"není podporováno." + msgid "If \"Exp Edit\" is enabled, \"Min Value\" must be greater than 0." msgstr "" -"Pokud má \"Exp Edit\" hodnotu true, pak \"Min Value\" musí být větší než 0." +"Pokud má \"Exponenciální upravování\" hodnotu true, pak \"Minimální hodnota\" " +"musí být větší než 0." msgid "" "ScrollContainer is intended to work with a single child control.\n" @@ -17357,7 +19237,7 @@ msgid "" "This node was an instance of scene '%s', which was no longer available when " "this scene was loaded." msgstr "" -"Uzel byl instancí scéne '%s', která ve chvíli načtení této scény již nebyla " +"Uzel byl instancí scény '%s', která ve chvíli načtení této scény již nebyla " "dostupná." msgid "" @@ -17392,7 +19272,7 @@ msgid "" "Please check the Godot documentation for information about migration." msgstr "" "Tento uzel je označen jako zastaralý a v budoucích verzích bude odstraněn.\n" -"Informace o migraci naleznete v dokumentaci Godotu." +"Informace o přechodu na novější variantu naleznete v dokumentaci Godotu." msgid "" "This node is marked as experimental and may be subject to removal or major " @@ -17463,7 +19343,7 @@ msgid "" "The sampler port is connected but not used. Consider changing the source to " "'SamplerPort'." msgstr "" -"Sampler port je připojen, ale není použitý. Zvažte změnu zdroje na " +"Port vzorkovače je připojen, ale není použitý. Zvažte změnu zdroje na " "'SamplerPort'." msgid "Invalid source for preview." @@ -17506,6 +19386,12 @@ msgstr "Použít všechny povrchy" msgid "Surface Index" msgstr "Index povrchu" +msgid "Division by zero error." +msgstr "Chyba dělení nulou." + +msgid "Modulo by zero error." +msgstr "Chyba modulo nulou." + msgid "" "Invalid number of arguments when calling stage function '%s', which expects " "%d arguments." @@ -17578,6 +19464,18 @@ msgstr "Po argumentu se očekává ',' nebo ')'." msgid "Varying may not be assigned in the '%s' function." msgstr "Interpolované proměnné nemohou být přiřazeny ve funkci '%s'." +msgid "Varying with '%s' data type may only be assigned in the '%s' function." +msgstr "" +"Interpolovaná proměnná datového typu '%s' může být přiřazena pouze ve funkci " +"'%s'." + +msgid "" +"Varyings which assigned in '%s' function may not be reassigned in '%s' or " +"'%s'." +msgstr "" +"Interpolované proměnné přiřazené ve funkci '%s' nelze znovu přiřadit v '%s' " +"nebo '%s'." + msgid "'%s' cannot be used within the '%s' processor function." msgstr "'%s' nemůže být použito ve zpracovávající funkci '%s'." @@ -17634,6 +19532,9 @@ msgstr "Očekávána kladná celočíselná konstanta." msgid "Invalid data type for the array." msgstr "Neplatný datový typ pro pole." +msgid "Array size mismatch. Expected %d elements (found %d)." +msgstr "Neodpovídající velikost pole. Očekáváno %d prvků (nalazeno bylo %d)." + msgid "Expected array initialization." msgstr "Očekávána inicializace pole." @@ -17686,6 +19587,14 @@ msgstr "" "Chcete-li pokračovat s minimálními změnami kódu, přidejte 'uniform sampler2D " "%s : hint_%s, filter_linear_mipmap;' v horní části vašeho shaderu." +msgid "Varying with '%s' data type may only be used in the '%s' function." +msgstr "" +"Interpolovaná proměnná datového typu '%s' je možné použít pouze ve funkci " +"'%s'." + +msgid "Varying '%s' must be assigned in the '%s' function first." +msgstr "Interpolovaná proměnná '%s' musí být nejprve přiřazena ve funkci '%s'." + msgid "Can't use function as identifier: '%s'." msgstr "Nelze použít funkci jako identifikátor: '%s'." @@ -17716,9 +19625,6 @@ msgstr "Objekt typu '%s' nelze indexovat." msgid "Invalid base type for increment/decrement operator." msgstr "Neplatný základní typ pro operátor zvýšení/snížení." -msgid "Invalid use of increment/decrement operator in a constant expression." -msgstr "Neplatné použití operátoru zvýšení/snížení v konstantním výrazu." - msgid "Invalid token for the operator: '%s'." msgstr "Neplatný token pro operátor: '%s'." @@ -17770,6 +19676,9 @@ msgstr "Očekáván konstantní výraz pro argument %d volání funkce po '='." msgid "Expected a boolean expression." msgstr "Očekáván booleovský výraz." +msgid "Expected an integer or unsigned integer expression." +msgstr "Očekáván celočíselný výraz nebo celočíselný výraz bez znaménka." + msgid "Cases must be defined before default case." msgstr "Case musí být definovány před default case." @@ -17779,6 +19688,9 @@ msgstr "Default case musí být definován pouze jednou." msgid "'%s' must be placed within a '%s' block." msgstr "'%s' musí být umístěno v bloku '%s'." +msgid "Expected an unsigned integer constant." +msgstr "Očekávána celočíselná konstanta bez znaménka." + msgid "Expected an integer constant." msgstr "Očekávána celočíselná konstanta." @@ -17791,15 +19703,24 @@ msgstr "Použití '%s' ve zpracující funkci '%s' je nesprávné." msgid "Expected '%s' with an expression of type '%s'." msgstr "Očekáváno '%s' s výrazem typu '%s'." +msgid "'%s' function cannot return a value." +msgstr "Funkce '%s' nemůže vracet hodnotu." + msgid "Expected return with an expression of type '%s'." msgstr "Očekávaný návrat s výrazem typu '%s'." +msgid "Use of '%s' is not supported for the '%s' shader type." +msgstr "Využití '%s' není pro typ shaderu '%s' podporováno." + msgid "'%s' is not allowed outside of a loop or '%s' statement." msgstr "'%s' není povoleno mimo smyčku nebo příkaz '%s'." msgid "'%s' is not allowed outside of a loop." msgstr "'%s' není povoleno mimo smyčku." +msgid "The middle expression is expected to have a boolean data type." +msgstr "Očekává se, že prostřední výraz má booleovský datový typ." + msgid "The left expression is expected to be a variable declaration." msgstr "Očekává se, že levý výraz je deklarace proměnné." @@ -17916,6 +19837,15 @@ msgstr "Očekáváno ',' po integer konstantě." msgid "Expected an integer constant after ','." msgstr "Očekávána integer konstanta po ','." +msgid "Enum hint is for '%s' only." +msgstr "Nápověda výčtu je pouze pro '%s'." + +msgid "Expected a string constant." +msgstr "Očekávána řetězcová konstanta." + +msgid "Expected ',' or ')' after string constant." +msgstr "Očekávána ',' nebo ')' po řetězcové konstantě." + msgid "Can only specify '%s' once." msgstr "'%s' lze zadat pouze jednou." @@ -17925,6 +19855,13 @@ msgstr "Instance index nesmí být záporný." msgid "Allowed instance uniform indices must be within [0..%d] range." msgstr "Hodnoty indexů instancí uniformních proměnných musí být mezi [0..%d]." +msgid "" +"'hint_normal_roughness_texture' is only available when using the Forward+ " +"renderer." +msgstr "" +"'hint_normal_roughness_texture' je dostupné pouze při využití vykreslovacího " +"nástroje Forward+." + msgid "'hint_normal_roughness_texture' is not supported in '%s' shaders." msgstr "'hint_normal_roughness_texture' není podporované v '%s' shaderech." @@ -18005,12 +19942,15 @@ msgid "" "Global non-constant variables are not supported. Expected '%s' keyword before " "constant definition." msgstr "" -"Globální non-constant proměnné nejsou podporovány. Očekávané '%s' klíčové " -"slovo před definicí konstanty." +"Globální nekonstantní proměnné nejsou podporovány. Očekáváno klíčové slovo " +"'%s' před definicí konstanty." msgid "Expected an identifier after type." msgstr "Očekáván identifikátor po typu." +msgid "'%s' qualifier cannot be used with a function return type." +msgstr "Kvalifikátor '%s' nelze použít s návratovým typem funkce." + msgid "" "The '%s' qualifier cannot be used within a function parameter declared with " "'%s'." @@ -18042,6 +19982,18 @@ msgstr "Očekávána '{' pro začátek funkce." msgid "Expected at least one '%s' statement in a non-void function." msgstr "Očekáván alespoň jeden výraz '%s' ve funkci, která nevrací void." +msgid "" +"Varying with integer data type must be declared with `%s` interpolation " +"qualifier." +msgstr "" +"Interpolovaná proměnná s celočíselným datovým typem musí být deklarována s " +"interpolačním kvalifikátorem `%s`." + +msgid "Too many varyings used in shader (%d used, maximum supported is %d)." +msgstr "" +"Použito příliš mnoho interpolovaných proměnných v shaderu (použito %d, " +"maximum podporováno %d)." + msgid "uniform buffer" msgstr "vyrovnávací paměť pro uniformní proměnné" @@ -18078,12 +20030,18 @@ msgstr "'##' nesmí být na začátku rozšíření makra." msgid "'##' must not appear at end of macro expansion." msgstr "'##' nesmí být na konci rozšíření makra." +msgid "Unmatched '%s' directive." +msgstr "Nenavazující direktiva '%s'." + msgid "Missing condition." msgstr "Chybějící podmínka." msgid "Condition evaluation error." msgstr "Chyba ve vyhodnocení podmínky." +msgid "Invalid '%s' directive." +msgstr "Neplatná direktiva '%s'." + msgid "Shader include file does not exist:" msgstr "ShaderInclude soubor neexistuje:" @@ -18103,6 +20061,9 @@ msgstr "Cyclický include nalezen" msgid "Shader max include depth exceeded." msgstr "Maximální hloubka Shader include překročena." +msgid "Cannot use '%s' on built-in define." +msgstr "Nelze použít '%s' na vestavěný define." + msgid "Macro expansion limit exceeded." msgstr "Limit rozšíření maker překročen." @@ -18134,22 +20095,22 @@ msgstr "" "0.0001` pro přibližné, ale předvídatelné srovnání." msgid "The const '%s' is declared but never used." -msgstr "Konstanta '%s' je deklarovaná, ale není nikdy použitá." +msgstr "Konstanta '%s' je deklarována, ale není nikdy použita." msgid "The function '%s' is declared but never used." -msgstr "Funkce '%s' je deklarována, ale není nikdy použitá." +msgstr "Funkce '%s' je deklarována, ale není nikdy použita." msgid "The struct '%s' is declared but never used." -msgstr "Struktura '%s' je deklarována, ale není nikdy použitá." +msgstr "Struktura '%s' je deklarována, ale není nikdy použita." msgid "The uniform '%s' is declared but never used." -msgstr "Uniform '%s' je deklarován, ale není nikdy použit." +msgstr "Uniformní proměnná '%s' je deklarována, ale není nikdy použita." msgid "The varying '%s' is declared but never used." -msgstr "Varying '%s' je deklarováno, ale není nikdy použito." +msgstr "Interpolovaná proměnná '%s' je deklarována, ale není nikdy použita." msgid "The local variable '%s' is declared but never used." -msgstr "Místní proměnná '%s' je deklarována, ale nebyla použita." +msgstr "Místní proměnná '%s' je deklarována, ale není nikdy použita." msgid "" "The total size of the %s for this shader on this device has been exceeded (%d/" diff --git a/engine/editor/translations/editor/de.po b/engine/editor/translations/editor/de.po index d7486efc..29f876ce 100644 --- a/engine/editor/translations/editor/de.po +++ b/engine/editor/translations/editor/de.po @@ -101,7 +101,7 @@ # Janosch Lion <janorico@posteo.de>, 2023. # aligator <johannes.hoermann@t-online.de>, 2023. # Benedikt Wicklein <benedikt.wicklein@gmail.com>, 2023. -# Wuzzy <Wuzzy@disroot.org>, 2023, 2024. +# Wuzzy <Wuzzy@disroot.org>, 2023, 2024, 2025. # marv1nb <marvin_baumann@outlook.com>, 2023. # Joshiy13 <weidanzjoshua@gmail.com>, 2023. # Emil Krebs <emil.krebs@typefox.io>, 2023. @@ -116,13 +116,14 @@ # jl <jl-friesen@gmx.de>, 2024. # Leona 'leo' Gottfried <s6573328@stud.uni-frankfurt.de>, 2024. # Deleted User <noreply+102345@weblate.org>, 2025. +# Silikonmanns Kanal <silvan.goeth@gmail.com>, 2025. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2025-01-09 02:15+0000\n" -"Last-Translator: Deleted User <noreply+102345@weblate.org>\n" +"PO-Revision-Date: 2025-02-27 11:52+0000\n" +"Last-Translator: Silikonmanns Kanal <silvan.goeth@gmail.com>\n" "Language-Team: German <https://hosted.weblate.org/projects/godot-engine/godot/" "de/>\n" "Language: de\n" @@ -130,7 +131,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 5.10-dev\n" +"X-Generator: Weblate 5.10.2-dev\n" msgid "Main Thread" msgstr "Hauptthread" @@ -489,6 +490,9 @@ msgstr "Verstecktes anzeigen" msgid "Swap Input Direction" msgstr "Eingaberichtung umschalten" +msgid "Start Unicode Character Input" +msgstr "Unicodezeicheneingabe starten" + msgid "Invalid input %d (not passed) in expression" msgstr "Ungültige Eingabe %d (nicht übergeben) im Ausdruck" @@ -733,6 +737,40 @@ msgstr "Animationslänge ändern" msgid "Change Animation Loop" msgstr "Animations-Loop ändern" +msgid "" +"Can't change loop mode on animation instanced from an imported scene.\n" +"\n" +"To change this animation's loop mode, navigate to the scene's Advanced Import " +"settings and select the animation.\n" +"You can then change the loop mode from the inspector menu." +msgstr "" +"Der Loop-Modus kann nicht für eine Animation geändert werden, die aus einer " +"importierten Szene instanziiert wurde.\n" +"\n" +"Um den Loop-Modus der Animation zu verändern, gehe zu den Erweiterten " +"Einstellungen der Szene und wähle die Animation aus.\n" +"Dann kannst du den Loop-Modus im Inspektor ändern." + +msgid "Can't change loop mode on animation instanced from an imported resource." +msgstr "" +"Der Loop-Modus kann nicht für eine Animation geändert werden, die aus einer " +"importierten Szene instanziiert wurde." + +msgid "" +"Can't change loop mode on animation embedded in another scene.\n" +"\n" +"You must open this scene and change the animation's loop mode from there." +msgstr "" +"Der Loop-Modus kann nicht für eine Animation geändert werden, die in einer " +"anderen Szene eingebettet wurde.\n" +"\n" +"Du musst diese Szene öffnen und dort den Loop-Modus der Animation ändern." + +msgid "Can't change loop mode on animation embedded in another resource." +msgstr "" +"Der Loop-Modus kann nicht für eine Animation geändert werden, die in einer " +"anderen Szene eingebettet wurde." + msgid "Property Track..." msgstr "Eigenschaften-Track..." @@ -1132,6 +1170,12 @@ msgstr "Nur Tracks der aktuell ausgewählten Nodes anzeigen." msgid "Group tracks by node or display them as plain list." msgstr "Tracks nach Node gruppieren oder nacheinander anzeigen." +msgid "Apply snapping to selected key(s)." +msgstr "Einrasten für ausgewählte(n) Key(s) anwenden." + +msgid "Apply snapping to the nearest integer FPS." +msgstr "Einrasten für die nächstliegende ganzzahlige FPS anwenden." + msgid "Animation step value." msgstr "Animationsschrittwert." @@ -1352,12 +1396,69 @@ msgstr "Alles/Nichts auswählen" msgid "Animation Change Keyframe Time" msgstr "Animations-Keyframe-Zeit ändern" +msgid "Marker name is read-only in the inspector." +msgstr "Der Markername kann im Inspektor nur gelesen werden." + +msgid "" +"A marker's name can only be changed by right-clicking it in the animation " +"editor and selecting \"Rename Marker\", in order to make sure that marker " +"names are all unique." +msgstr "" +"Ein Markername kann nur geändert werden, wenn er im Animationseditor " +"gerechtsklickt wird und dann „Marker umbenennen“ ausgewählt wird, um " +"sicherzustellen, dass alle Markernamen einzigartig sind." + +msgid "Insert Marker..." +msgstr "Marker einfügen …" + +msgid "Rename Marker" +msgstr "Marker umbenennen" + +msgid "Delete Marker(s)" +msgstr "Marker entfernen" + +msgid "Show All Marker Names" +msgstr "Alle Markernamen anzeigen" + +msgid "Marker:" +msgstr "Marker:" + +msgid "Animation Move Markers" +msgstr "Animationsbewegungsmarker" + +msgid "Animation Delete Markers" +msgstr "Animationslöschmarker" + +msgid "Marker '%s' already exists!" +msgstr "Marker „%s“ existiert bereits!" + +msgid "Add Marker Key" +msgstr "Marker-Key hinzufügen" + +msgid "Empty marker names are not allowed." +msgstr "Leere Markernamen sind nicht gestattet." + +msgid "Insert Marker" +msgstr "Marker einfügen" + +msgid "Marker Name" +msgstr "Markername" + +msgid "Marker Color" +msgstr "Markerfarbe" + msgid "Close" msgstr "Schließen" msgid "Error!" msgstr "Fehler!" +msgid "Change Marker Name:" +msgstr "Markername ändern:" + +msgid "Edit Marker Color" +msgstr "Markerfarbe einstellen" + msgid "Add Audio Track Clip" msgstr "Audiotrack-Clip hinzufügen" @@ -1445,6 +1546,13 @@ msgstr "Warnungen" msgid "Zoom factor" msgstr "Zoom-Faktor" +msgid "" +"%sMouse wheel, %s/%s: Finetune\n" +"%s: Reset" +msgstr "" +"%sMausrad, %s/%s: Feinabstimmung\n" +"%s: Zurücksetzen" + msgid "Line and column numbers." msgstr "Zeilen- und Spaltennummern." @@ -1607,6 +1715,12 @@ msgstr "%s erstellen" msgid "No results for \"%s\"." msgstr "Keine Ergebnisse für „%s“." +msgid "Script path: %s" +msgstr "Skriptpfad: %s" + +msgid "The script will run in the editor." +msgstr "Das Skript wird im Editor ausgeführt." + msgid "This class is marked as deprecated." msgstr "Diese Klasse ist als veraltet eingetragen." @@ -1637,6 +1751,9 @@ msgstr "Beschreibung:" msgid "Remote %s:" msgstr "Remote %s:" +msgid "Session %d" +msgstr "Sitzung %d" + msgid "Debugger" msgstr "Debugger" @@ -1667,6 +1784,12 @@ msgstr "" msgid "Toggle Visibility" msgstr "Sichtbarkeit ein-/ausschalten" +msgid "Expression to evaluate" +msgstr "Auszuführender Ausdruck" + +msgid "Evaluate" +msgstr "Auswerten" + msgid "Clear" msgstr "Löschen" @@ -1712,6 +1835,9 @@ msgstr "Stopp" msgid "Start" msgstr "Start" +msgid "Autostart" +msgstr "Autostart" + msgid "Measure:" msgstr "Messung:" @@ -1998,6 +2124,12 @@ msgstr "" msgid "Cannot remove:" msgstr "Kann nicht entfernt werden:" +msgid "Files to be deleted:" +msgstr "Zu löschende Dateien:" + +msgid "Dependencies of files to be deleted:" +msgstr "Abhängigkeiten der zu löschenden Dateien:" + msgid "Error loading:" msgstr "Fehler beim Laden:" @@ -2035,15 +2167,27 @@ msgstr "Ressourcen ohne direkte Zugehörigkeit:" msgid "Name cannot be empty." msgstr "Name darf nicht leer sein." +msgid "File name can't end with /." +msgstr "Dateiname darf nicht mit „/“ enden." + +msgid "File name cannot be empty." +msgstr "Dateiname darf nicht leer sein." + msgid "Folder name cannot be empty." msgstr "Ordnername darf nicht leer sein." +msgid "File name contains invalid characters." +msgstr "Dateiname enthält ungültige Zeichen." + msgid "Folder name contains invalid characters." msgstr "Ordnername enthält ungültige Zeichen." msgid "File name begins with a dot." msgstr "Dateiname beginnt mit einem Punkt." +msgid "Folder name begins with a dot." +msgstr "Ordnername beginnt mit einem Punkt." + msgid "File with that name already exists." msgstr "Datei mit gegebenem Namen existiert bereits." @@ -2053,6 +2197,19 @@ msgstr "Ordner mit gegebenem Namen existiert bereits." msgid "Using slashes in folder names will create subfolders recursively." msgstr "Schrägstriche in Ordnernamen erzeugen automatisch Unterordner." +msgid "" +"Using slashes in path will create the file in subfolder, creating new " +"subfolders if necessary." +msgstr "" +"Schrägstriche im Pfad werden die Datei in einem Unterordner erstellen, wobei " +"bei Bedarf neue Unterordner erstellt werden." + +msgid "File name is valid." +msgstr "Dateiname ist gültig." + +msgid "Base path: %s" +msgstr "Basispfad: %s" + msgid "Folder name is valid." msgstr "Ordnername ist gültig." @@ -2341,6 +2498,9 @@ msgstr "Audiobus-Layout" msgid "Invalid name." msgstr "Ungültiger Name." +msgid "Must be a valid Unicode identifier." +msgstr "Name muss ein gültiger Unicode-Bezeichner sein." + msgid "Must not collide with an existing engine class name." msgstr "Darf nicht mit einem bestehenden Engine-Klassennamen kollidieren." @@ -2611,6 +2771,12 @@ msgstr "[leer]" msgid "[unsaved]" msgstr "[ungespeichert]" +msgid "Open the %s dock." +msgstr "Das „%s“-Dock öffnen." + +msgid "Focus on the %s dock." +msgstr "Fokus auf das „%s“-Dock." + msgid "%s - Godot Engine" msgstr "%s – Godot-Engine" @@ -2662,6 +2828,9 @@ msgstr "Import-Dock" msgid "History Dock" msgstr "Verlaufs-Dock" +msgid "Game View" +msgstr "Spielansicht" + msgid "Allows to view and edit 3D scenes." msgstr "Ermöglicht das Betrachten und Bearbeiten von 3D-Szenen." @@ -2698,6 +2867,10 @@ msgstr "" "Zeigt eine Übersicht über den zeitlichen Verlauf der Bearbeitungsschritte im " "Editor und jeder Szene." +msgid "Provides tools for selecting and debugging nodes at runtime." +msgstr "" +"Bietet Werkzeuge zur Auswahl und zum Debugging von Nodes zur Laufzeit an." + msgid "(current)" msgstr "(ausgewählt)" @@ -2790,6 +2963,24 @@ msgstr "Profil(e) importieren" msgid "Manage Editor Feature Profiles" msgstr "Editor-Feature-Profile verwalten" +msgid "Project initialization" +msgstr "Projektinitialisierung" + +msgid "Scanning file structure..." +msgstr "Lese Dateistrucktur …" + +msgid "Loading global class names..." +msgstr "Globale Klassennamen laden …" + +msgid "Verifying GDExtensions..." +msgstr "GDExtensions verifizieren …" + +msgid "Creating autoload scripts..." +msgstr "Autoload-Skripte erzeugen …" + +msgid "Initializing plugins..." +msgstr "Plugins initialisieren …" + msgid "Some extensions need the editor to restart to take effect." msgstr "" "Bei einigen Erweiterungen muss der Editor neugestartet werden, um wirksam zu " @@ -2804,6 +2995,15 @@ msgstr "Speichern & Neustarten" msgid "ScanSources" msgstr "Quellen scannen" +msgid "Registering global classes..." +msgstr "Globale Klassen registrieren …" + +msgid "Updating scripts documentation" +msgstr "Skriptedokumentation aktualisieren" + +msgid "Updating Scene Groups" +msgstr "Szenengruppen aktualisieren" + msgid "" "There are multiple importers for different types pointing to file %s, import " "aborted" @@ -2814,9 +3014,24 @@ msgstr "" msgid "(Re)Importing Assets" msgstr "Assets (erneut) importieren" +msgid "Preparing files to reimport..." +msgstr "Dateien zum Neuimport vorbereiten …" + +msgid "Executing pre-reimport operations..." +msgstr "Vor-Neuimport-Operationen ausführen …" + msgid "Import resources of type: %s" msgstr "Ressourcen des Typs: %s importieren" +msgid "Finalizing Asset Import..." +msgstr "Asset-Import fertigstellen …" + +msgid "Executing post-reimport operations..." +msgstr "Nach-Neuimport-Operationen ausführen …" + +msgid "Copying files..." +msgstr "Dateien kopieren …" + msgid "This method supports a variable number of arguments." msgstr "Diese Methode akzeptiert eine variable Anzahl an Argumenten." @@ -2996,6 +3211,11 @@ msgstr "Icons" msgid "Styles" msgstr "Stile" +msgid "This theme property may be changed or removed in future versions." +msgstr "" +"Diese Theme-Eigenschaft könnte in zukünftigen Versionen geändert oder " +"entfernt werden." + msgid "There is currently no description for this theme property." msgstr "Es gibt derzeit keine Beschreibung für diese Theme-Eigenschaft." @@ -3078,9 +3298,16 @@ msgstr "Editor" msgid "Click to copy." msgstr "Klicken zum Kopieren." +msgid "Click to open in browser." +msgstr "Anklicken zum Öffnen im Browser." + msgid "No description available." msgstr "Keine Beschreibung verfügbar." +msgid "This annotation may be changed or removed in future versions." +msgstr "" +"Diese Anmerkung könnte in zukünftigen Versionen geändert oder entfernt werden." + msgid "Show in FileSystem" msgstr "Im Dateisystem anzeigen" @@ -3090,12 +3317,24 @@ msgstr "Im Dateimanager öffnen" msgid "Class" msgstr "Klasse" +msgid "Enumeration" +msgstr "Enumeration" + msgid "Constant" msgstr "Konstante" +msgid "Metadata" +msgstr "Metadaten" + +msgid "Setting" +msgstr "Einstellung" + msgid "Property" msgstr "Eigenschaft" +msgid "Internal Property" +msgstr "Interne Eigenschaft" + msgid "This property can only be set in the Inspector." msgstr "Diese Eigenschaft kann nur im Inspektor eingestellt werden." @@ -3111,9 +3350,37 @@ msgstr "Ereignis" msgid "Annotation" msgstr "Anmerkung" +msgid "Local Constant" +msgstr "Lokale Konstante" + +msgid "Local Variable" +msgstr "Lokale Variable" + +msgid "This variable may be changed or removed in future versions." +msgstr "" +"Diese Variable könnte in zukünftigen Versionen geändert oder entfernt werden." + +msgid "TextFile" +msgstr "TextDatei" + msgid "File" msgstr "Datei" +msgid "Directory" +msgstr "Verzeichnis" + +msgid "Invalid UID" +msgstr "Ungültige UID" + +msgid "This UID does not point to any valid Resource." +msgstr "Diese UID zeigt nicht auf eine gültige Ressource." + +msgid "Invalid path" +msgstr "Ungültiger Pfad" + +msgid "This path does not exist." +msgstr "Dieser Pfad existiert nicht." + msgid "%d match." msgstr "%d Übereinstimmung." @@ -3171,12 +3438,27 @@ msgstr "Attribut-Typ" msgid "Keywords" msgstr "Schlüsselwörter" +msgid "Matches the \"%s\" keyword." +msgstr "Stimmt mit den „%s“-Schlüsselwort überein." + msgid "This member is marked as deprecated." msgstr "Dieses Feld ist als veraltet eingetragen." msgid "This member is marked as experimental." msgstr "Dieses Feld ist als experimentell eingetragen." +msgid "Unfavorite Property" +msgstr "Eigenschaft entfavorisieren" + +msgid "Make this property be put back at its original place." +msgstr "Diese Eigenschaft zurück zu ihrem ursprünglichen Ort bringen." + +msgid "Favorite Property" +msgstr "Eigenschaft favorisieren" + +msgid "Make this property be placed at the top for all objects of this class." +msgstr "Diese Eigenschaft nach oben für alle Objekte dieser Klasse bringen." + msgid "Pin Value" msgstr "Wert anheften" @@ -3188,6 +3470,9 @@ msgstr "" "Einen Wert anzuheften bedeutet dass er selbst dann gespeichert wird, wenn er " "sich nicht vom Default unterscheidet." +msgid "Unfavorite All" +msgstr "Alle entfavorisieren" + msgid "(%d change)" msgid_plural "(%d changes)" msgstr[0] "(%d Änderung)" @@ -3373,6 +3658,11 @@ msgstr "Nativer Shaderquelleninspektor" msgid "Unnamed Project" msgstr "Unbenanntes Projekt" +msgid "Recovery Mode is enabled. Editor functionality has been restricted." +msgstr "" +"Der Wiederherstellungsmodus ist aktiviert. Die Editorfunktionalität wurde " +"eingeschränkt." + msgid "" "Spins when the editor window redraws.\n" "Update Continuously is enabled, which can increase power usage. Click to " @@ -3587,6 +3877,9 @@ msgstr "" msgid "Save Scene As..." msgstr "Szene speichern als …" +msgid "Pack Project as ZIP..." +msgstr "Projekt als ZIP verpacken …" + msgid "Can't undo while mouse buttons are pressed." msgstr "Kann nicht rückgängig gemacht werden während Maustasten gedrückt sind." @@ -3671,6 +3964,9 @@ msgstr "Diese Operation kann nicht ohne eine Szene durchgeführt werden." msgid "Export Mesh Library" msgstr "Mesh-Bibliothek exportieren" +msgid "Quick Open Color Palette..." +msgstr "Schnell Farbpalette öffnen …" + msgid "Unable to enable addon plugin at: '%s' parsing of config failed." msgstr "" "Plugin lässt sich nicht aktivieren: ‚%s‘ Parsen der Konfiguration " @@ -3757,6 +4053,56 @@ msgstr "Verlauf leeren" msgid "There is no defined scene to run." msgstr "Es gibt keine definierte Szene zum Abspielen." +msgid "Loading editor" +msgstr "Editor laden" + +msgid "Loading editor layout..." +msgstr "Editor-Layout laden …" + +msgid "Loading docks..." +msgstr "Docks laden …" + +msgid "Reopening scenes..." +msgstr "Szenen neu öffnen …" + +msgid "Loading central editor layout..." +msgstr "Zentrales Editor-Layout laden …" + +msgid "Loading plugin window layout..." +msgstr "Pluginfensterlayout laden …" + +msgid "Editor layout ready." +msgstr "Editorlayout bereit." + +msgid "" +"No main scene has ever been defined. Select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Es wurde keine Hauptszene bestimmt, soll eine ausgewählt werden?\n" +"Dies kann später in den Projekteinstellungen unter der Kategorie „Anwendung“ " +"geändert werden." + +msgid "" +"Selected scene '%s' does not exist. Select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Die ausgewählte Szene „%s“ existiert nicht, soll eine gültige ausgewählt " +"werden?\n" +"Dies kann später in den Projekteinstellungen unter der Kategorie „Anwendung“ " +"geändert werden." + +msgid "" +"Selected scene '%s' is not a scene file. Select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Die ausgewählte Szene „%s“ ist keine Szenendatei, soll eine gültige " +"ausgewählt werden?\n" +"Dies kann später in den Projekteinstellungen unter der Kategorie „Anwendung“ " +"geändert werden." + msgid "Save Layout..." msgstr "Layout speichern..." @@ -3983,6 +4329,9 @@ msgstr "Engine-Kompilierkonfigurations-Editor…" msgid "Upgrade Mesh Surfaces..." msgstr "Mesh-Oberflächen aktualisieren..." +msgid "Upgrade UIDs..." +msgstr "UIDs upgraden …" + msgid "Reload Current Project" msgstr "Aktuelles Projekt neu laden" @@ -4139,6 +4488,21 @@ msgstr "Bibliothek exportieren" msgid "Open & Run a Script" msgstr "Skript öffnen und ausführen" +msgid "Files have been modified outside Godot" +msgstr "Dateien wurden außerhalb von Godot verändert" + +msgid "The following files are newer on disk:" +msgstr "Die folgenden Dateien sind neuer auf der Festplatte:" + +msgid "What action should be taken?" +msgstr "Was soll getan werden?" + +msgid "Reload from disk" +msgstr "Von Festplatte neu laden" + +msgid "Ignore external changes" +msgstr "Externe Änderungen ignorieren" + msgid "Create/Override Version Control Metadata..." msgstr "Metadaten der Versionsverwaltung erstellen/überschreiben..." @@ -4163,6 +4527,9 @@ msgstr "3D-Editor öffnen" msgid "Open Script Editor" msgstr "Skripteditor öffnen" +msgid "Open Game View" +msgstr "Spielansicht öffnen" + msgid "Open Asset Library" msgstr "Öffne Asset-Bibliothek" @@ -4293,6 +4660,12 @@ msgstr "Neuer Wert:" msgid "(Nil) %s" msgstr "(Nil) %s" +msgid "%s%s (size %d)" +msgstr "%s%s (Größe %d)" + +msgid "%s (size %d)" +msgstr "%s (Größe %d)" + msgid "Size:" msgstr "Größe:" @@ -4362,6 +4735,12 @@ msgstr "Skript erweitern..." msgid "New Shader..." msgstr "Neuer Shader..." +msgid "No Remote Deploy export presets configured." +msgstr "Keine Remote-Deploy-Exportvoreinstellungen konfiguriert." + +msgid "Remote Deploy" +msgstr "Remote-Deploy" + msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the Export menu or define an existing preset " @@ -4371,6 +4750,16 @@ msgstr "" "Bitte fügen Sie im Exportmenü ein ausführbares Profil hinzu oder definieren " "Sie ein bestehendes Profil als ausführbar." +msgid "" +"Warning: The CPU architecture \"%s\" is not active in your export preset.\n" +"\n" +msgstr "" +"Warnung: Die CPU-Architektur „%s“ ist in deiner Exportvorgabe nicht aktiv.\n" +"\n" + +msgid "Run \"Remote Deploy\" anyway?" +msgstr "„Remote-Deploy“ trotzdem durchführen?" + msgid "Project Run" msgstr "Projektdurchlauf" @@ -4380,6 +4769,9 @@ msgstr "Spiellogik sollte mit der _run()-Methode beginnen." msgid "The current scene already has a root node." msgstr "Die aktuelle Szene hat bereits einen Root-Node." +msgid "Advanced settings are always shown when searching." +msgstr "Erweiterte Einstellungen werden bei der Suche immer angezeigt." + msgid "Edit Built-in Action: %s" msgstr "Built-in-Aktion bearbeiten: %s" @@ -4389,9 +4781,15 @@ msgstr "Tastenkürzel bearbeiten: %s" msgid "None" msgstr "Nichts" +msgid "Primary" +msgstr "Primär" + msgid "Common" msgstr "Allgemein" +msgid "Event %d" +msgstr "Ereignis %d" + msgid "Editor Settings" msgstr "Editoreinstellungen" @@ -4594,6 +4992,9 @@ msgstr "Unbekannter Fehler" msgid "Export failed with error code %d." msgstr "Der Export ist mit Fehlercode %d fehlgeschlagen." +msgid "Patch Creation" +msgstr "Patch-Erstellung" + msgid "Storing File: %s" msgstr "Speichere Datei: %s" @@ -4603,6 +5004,29 @@ msgstr "Speichere Datei:" msgid "No export template found at the expected path:" msgstr "Keine Exportvorlage unter dem erwarteten Pfad gefunden:" +msgid "" +"Using user provided text server data, text display in the exported project " +"might be broken if export template was built with different ICU version!" +msgstr "" +"Bei Verwendung von Textserverdaten, die von Benutzern angegeben wurden, " +"könnte die Textanzeige im exportieren Projekt kaputt sein, falls die " +"Exportvorlage mit einer anderen ICU-Version gebaut wurde!" + +msgid "" +"Using editor embedded text server data, text display in the exported project " +"might be broken if export template was built with different ICU version!" +msgstr "" +"Bei Verwendung von im Editor eingebetteten Textserverdaten könnte die " +"Textanzeige im exportieren Projekt kaputt sein, falls die Exportvorlage mit " +"einer anderen ICU-Version gebaut wurde!" + +msgid "" +"Missing text server data, text display in the exported project might be " +"broken!" +msgstr "" +"Im Falle von fehlenden Textserverdaten könnte die Textanzeige im exportierten " +"Projekt kaputt sein!" + msgid "ZIP Creation" msgstr "ZIP-Erstellung" @@ -4621,6 +5045,9 @@ msgstr "Datei „%s“ konnte nicht erstellt werden." msgid "Failed to export project files." msgstr "Projektdateien konnten nicht exportiert werden." +msgid "No files or changes to export." +msgstr "Es gibt keine Dateien oder Änderungen zum Exportieren." + msgid "Can't open file for writing at path \"%s\"." msgstr "Datei im Pfad „%s“ kann nicht zum schreiben geöffnet werden." @@ -4639,6 +5066,9 @@ msgstr "Datei im Pfad „%s“kann nicht zum Lesen geöffnet werden." msgid "Save ZIP" msgstr "ZIP speichern" +msgid "Failed to move temporary file \"%s\" to \"%s\"." +msgstr "Fehler beim Verschieben der temporären Datei „%s“ nach „%s“." + msgid "Custom debug template not found." msgstr "Selbst konfigurierte Debug-Exportvorlage nicht gefunden." @@ -4671,6 +5101,12 @@ msgid "On 32-bit exports the embedded PCK cannot be bigger than 4 GiB." msgstr "" "In 32-bit-Exporten kann das eingebettete PCK nicht größer als 4 GiB sein." +msgid "GDExtension" +msgstr "GDExtension" + +msgid "Failed to copy shared object \"%s\"." +msgstr "Fehler beim Kopieren des Shared Objects „%s“." + msgid "Plugin \"%s\" is not supported on \"%s\"" msgstr "Plugin „%s“ wird auf „%s“ nicht unterstützt" @@ -4801,6 +5237,15 @@ msgstr "Exportvorlagen fehlen. Download oder Installation aus Datei nötig." msgid "Export templates are missing. Install them from a file." msgstr "Exportvorlagen fehlen. Installieren Sie sie von einer Datei." +msgid "Not available in offline mode" +msgstr "Nicht im Offline-Modus verfügbar" + +msgid "Template downloading is disabled in offline mode." +msgstr "Herunterladen von Vorlagen ist im Offline-Modus deaktiviert." + +msgid "No templates for development builds" +msgstr "Keine Vorlagen für Entwicklungs-Builds" + msgid "Official export templates aren't available for development builds." msgstr "" "Für Entwicklungsversionen werden keine offizielle Exportvorlagen bereit " @@ -4913,9 +5358,15 @@ msgstr "Zu exportierende Ressourcen:" msgid "(Inherited)" msgstr "(geerbt)" +msgid "Delete patch '%s' from list?" +msgstr "Patch „%s“ aus Liste löschen?" + msgid "Export With Debug" msgstr "Exportiere mit Debuginformationen" +msgid "Export As Patch" +msgstr "Als Patch exportieren" + msgid "%s Export" msgstr "%s-Export" @@ -4999,6 +5450,9 @@ msgstr "" "Filter, um Dateien/Ordner vom Projekt auszuschließen\n" "(durch Kommata getrennt, z.B.: *.json, *.txt, docs/*)" +msgid "Patches" +msgstr "Patches" + msgid "Godot Project Pack" msgstr "Godot-Projekt-Pack" @@ -5042,6 +5496,9 @@ msgstr "" msgid "Encryption Key (256-bits as hexadecimal):" msgstr "Schlüssel (256 bit, hexadezimal):" +msgid "Initialization vector seed" +msgstr "Initialisierungsvektorseed" + msgid "" "Note: Encryption key needs to be stored in the binary,\n" "you need to build the export templates from source." @@ -5163,6 +5620,9 @@ msgstr "Durchsuchen" msgid "Confirm Path" msgstr "Pfad bestätigen" +msgid "Link to: %s" +msgstr "Verknüpfung nach: %s" + msgid "View items as a grid of thumbnails." msgstr "Einträge in Vorschaugitter anzeigen." @@ -5191,6 +5651,9 @@ msgstr "Fehler beim Verschieben:" msgid "Error duplicating:" msgstr "Fehler beim Duplizieren:" +msgid "Error duplicating directory:" +msgstr "Fehler beim Duplizieren des Verzeichnisses:" + msgid "Unable to update dependencies for:" msgstr "Kann Abhängigkeiten nicht aktualisieren:" @@ -5218,6 +5681,9 @@ msgstr "" msgid "A file or folder with this name already exists." msgstr "Es existiert bereits eine Datei oder ein Ordner mit diesem Namen." +msgid "Could not create base directory: %s" +msgstr "Basisverzeichnis konnte nicht erstellt werden: %s" + msgid "" "The following files or folders conflict with items in the target location " "'%s':" @@ -5257,6 +5723,14 @@ msgstr "Dupliziere Ordner:" msgid "Create Folder" msgstr "Ordner erstellen" +msgid "" +"Do you wish to convert these files to %s? (This operation cannot be undone!)" +msgstr "" +"Willst du die Dateien in %s umwandeln? (Kann nicht rückgängig gemacht werden!)" + +msgid "Could not create folder: %s" +msgstr "Ordner konnte nicht erstellt werden: %s" + msgid "New Inherited Scene" msgstr "Neue geerbte Szene" @@ -5317,12 +5791,18 @@ msgstr "Zu Favoriten hinzufügen" msgid "Remove from Favorites" msgstr "Aus Favoriten entfernen" +msgid "Convert to..." +msgstr "Umwandeln zu …" + msgid "Reimport" msgstr "Neuimport" msgid "Open in Terminal" msgstr "Im Terminal öffnen" +msgid "Open Folder in Terminal" +msgstr "Ordner im Terminal öffnen" + msgid "New Folder..." msgstr "Neuer Ordner …" @@ -5432,6 +5912,9 @@ msgstr "Beide behalten" msgid "Create Script" msgstr "Skript erstellen" +msgid "Convert" +msgstr "Umwandeln" + msgid "Find in Files" msgstr "In Dateien suchen" @@ -5469,6 +5952,9 @@ msgstr "Alle ersetzen (kann nicht rückgängig gemacht werden)" msgid "Searching..." msgstr "Suchen …" +msgid "Remove result" +msgstr "Ergebnis entfernen" + msgid "%d match in %d file" msgstr "%d Übereinstimmung in %d Datei" @@ -5560,6 +6046,24 @@ msgstr "Neue Gruppe hinzufügen." msgid "Filter Groups" msgstr "Gruppen filtern" +msgid "" +"Scroll Left\n" +"Hold Ctrl to scroll to the begin.\n" +"Hold Shift to scroll one page." +msgstr "" +"Nach links scrollen\n" +"Strg gedrückt halten, um zum Anfang zu scrollen.\n" +"Shift gedrückt halten, um Seitenweise zu scrollen." + +msgid "" +"Scroll Right\n" +"Hold Ctrl to scroll to the end.\n" +"Hold Shift to scroll one page." +msgstr "" +"Nach rechts scrollen\n" +"Strg gedrückt halten, um zum Ende zu scrollen.\n" +"Shift gedrückt halten, um seitenweise zu scrollen." + msgid "Expand Bottom Panel" msgstr "Unteres Bedienfeld vergrößern" @@ -5601,6 +6105,9 @@ msgstr "" msgid "Select This Folder" msgstr "Diesen Ordner auswählen" +msgid "Show Package Contents" +msgstr "Paketinhalt anzeigen" + msgid "All Files" msgstr "Alle Dateien" @@ -5654,6 +6161,9 @@ msgstr "Modus ein-/ausschalten" msgid "Focus Path" msgstr "Zu Pfad springen" +msgid "Focus Filter" +msgstr "Filter fokussieren" + msgid "Move Favorite Up" msgstr "Favorit nach oben schieben" @@ -5684,9 +6194,18 @@ msgstr "Verzeichnisse und Dateien:" msgid "Toggle the visibility of hidden files." msgstr "Versteckte Dateien ein-/ausblenden." +msgid "Sort files" +msgstr "Dateien sortieren" + +msgid "Toggle the visibility of the filter for file names." +msgstr "Sichtbarkeit des Filters für Dateinamen umschalten." + msgid "Preview:" msgstr "Vorschau:" +msgid "Filter:" +msgstr "Filter:" + msgid "Filter" msgstr "Filter" @@ -5711,6 +6230,39 @@ msgstr "Keine Unterressourcen gefunden." msgid "Open a list of sub-resources." msgstr "Liste der Unterressourcen öffnen." +msgid "Search files..." +msgstr "Dateien durchsuchen …" + +msgid "Select Resource" +msgstr "Ressource auswählen" + +msgid "Select Scene" +msgstr "Szene auswählen" + +msgid "Addons" +msgstr "Add-ons" + +msgid "Include files from addons" +msgstr "Dateien aus Add-ons einbinden" + +msgid "No files found for this type" +msgstr "Keine Dateien für diesen Typ gefunden" + +msgid "Start searching to find files..." +msgstr "Suche nach Dateien starten …" + +msgid "No results found" +msgstr "Keine Ergebnisse gefunden" + +msgid " (recently opened)" +msgstr " (kürzlich geöffnet)" + +msgid "Grid view" +msgstr "Rasteransicht" + +msgid "List view" +msgstr "Listenansicht" + msgid "Play the project." msgstr "Projekt abspielen." @@ -5744,9 +6296,77 @@ msgstr "" msgid "Could not start subprocess(es)!" msgstr "Subprozess(e) konnte(n) nicht gestartet werden!" +msgid "Recovery Mode is enabled. Disable it to run the project." +msgstr "" +"Der Wiederherstellungsmodus ist aktiviert. Deaktiviere ihn, um das Projekt " +"auszuführen." + +msgid "" +"Autostart is enabled for the following profilers, which can have a " +"performance impact:" +msgstr "" +"Autostart ist für die folgenden Profiler aktiviert, was eine Auswirkung auf " +"die Performance hat:" + msgid "Network Profiler" msgstr "Netzwerk-Profiler" +msgid "Click to open the first profiler for which autostart is enabled." +msgstr "" +"Klicken, um den ersten Profiler, für den der Autostart aktiviert ist, zu " +"öffnen." + +msgid "Recovery Mode" +msgstr "Wiederherstellungsmodus" + +msgid "" +"Godot opened the project in Recovery Mode, which is a special mode that can " +"help recover projects that crash the engine upon initialization. The " +"following features have been temporarily disabled:" +msgstr "" +"Godot hat das Projekt im Wiederherstellungsmodus geöffnet, was ein besonderer " +"Modus ist, der dabei helfen kann, Projekte, die die Engine bei der " +"Initialisierung zum Absturz bringen, wiederherzustellen. Die folgenden " +"Features wurden temporär deaktiviert:" + +msgid "Tool scripts" +msgstr "Toolskripte" + +msgid "Editor plugins" +msgstr "Editor-Plugins" + +msgid "GDExtension addons" +msgstr "GDExtension-Add-ons" + +msgid "Automatic scene restoring" +msgstr "Automatische Szenenwiederherstellung" + +msgid "" +"If the project cannot be opened outside of this mode, then it's very likely " +"any of these components is preventing this project from launching. This mode " +"is intended only for basic editing to troubleshoot such issues, and therefore " +"it is not possible to run a project in this mode." +msgstr "" +"Falls das Projekt außerhalb dieses Modus nicht geöffnet werden kann, ist es " +"sehr wahrscheinlich, dass eine dieser Komponenten dieses Projekt vom Starten " +"abhält. Dieser Modus nur für die grundsätzliche Bearbeitung gedacht, um " +"solche Probleme zurückzuverfolgen, und daher ist es nicht möglich, ein " +"Projekt in diesem Modus auszuführen." + +msgid "" +"To disable Recovery Mode, reload the project by pressing the Reload button " +"next to the Recovery Mode banner, or by reopening the project normally." +msgstr "" +"Um den Wiederherstellungsmodus zu deaktivieren, lade das Projekt neu, indem " +"du den Neu-laden-Button neben dem Wiederherstellungsmodusbanner anklickst, " +"oder, indem du das Projekt normal neu öffnest." + +msgid "Disable recovery mode and reload the project." +msgstr "Wiederherstellungsmodus deaktivieren und das Projekt neu laden." + +msgid "Recovery Mode is enabled. Click for more details." +msgstr "Der Wiederherstellungsmodus ist aktiviert. Klicken für mehr Details." + msgid "Run the project's default scene." msgstr "Die Default-Szene des Projekts abspielen." @@ -5765,12 +6385,18 @@ msgstr "Laufendes Projekt stoppen." msgid "Stop Running Project" msgstr "Laufendes Projekt stoppen" +msgid "Run Scene in XR Mode" +msgstr "Szene im XR-Modus ausführen" + msgid "Run the currently edited scene." msgstr "Zur Zeit bearbeitete Szene abspielen." msgid "Run Current Scene" msgstr "Aktuelle Szene abspielen" +msgid "Run in XR Mode" +msgstr "Im XR-Modus ausführen" + msgid "Run a specific scene." msgstr "Eine bestimmte Szene abspielen." @@ -5836,6 +6462,15 @@ msgstr "" "Git-Commit-Datum: %s\n" "Klicken zum Kopieren der Versionsinformationen." +msgid "" +"The root node of a scene is recommended to not be transformed, since " +"instances of the scene will usually override this. Reset the transform and " +"reload the scene to remove this warning." +msgstr "" +"Es wird empfohlen, den Root-Node einer Szene nicht zu transformieren, da " +"Instanzen der Szene dies üblicherweise überschreiben. Setze die " +"Transformation zurück und lade die Szene neu, um diese Warnung zu entfernen." + msgid "Toggle Visible" msgstr "Sichtbarkeit ein-/ausschalten" @@ -5845,6 +6480,9 @@ msgstr "Node entsperren" msgid "Ungroup Children" msgstr "Child-Nodes aus Gruppe entfernen" +msgid "Revoke unique name for node \"%s\"?" +msgstr "Eindeutigen Namen für Node „%s“ widerrufen?" + msgid "Disable Scene Unique Name" msgstr "Szenen-eindeutigen Namen deaktivieren" @@ -5854,6 +6492,16 @@ msgstr "(Verbindung von)" msgid "Node configuration warning:" msgstr "Node-Konfigurationswarnung:" +msgid "" +"This node can be accessed from anywhere within the scene it belongs to by " +"using the '%s' prefix in the node path." +msgstr "" +"Auf diesen Node kann von jeder beliebigen Stelle der Szene, zu der er gehört, " +"zugegriffen werden, indem der „%s“-Präfix im Node-Pfad verwendet wird." + +msgid "Click to disable this." +msgstr "Klicken, um dies zu deaktivieren." + msgid "Node has one connection." msgid_plural "Node has {num} connections." msgstr[0] "Node hat eine Verbindung." @@ -5867,6 +6515,16 @@ msgstr[1] "Node ist in diesen Gruppen:" msgid "Click to show signals dock." msgstr "Hier klicken, um Signal-Dock anzuzeigen." +msgid "Click to show groups dock." +msgstr "Klicken, um Gruppendock anzuzeigen." + +msgid "" +"This script can run in the editor.\n" +"It is currently disabled due to recovery mode." +msgstr "" +"Dieses Skript kann im Editor ausgeführt werden.\n" +"Es ist aufgrund des Wiederherstellungsmodus im Moment deaktiviert." + msgid "This script is currently running in the editor." msgstr "Dieses Skript wird gerade im Editor ausgeführt." @@ -5926,6 +6584,9 @@ msgstr "Szenenbaum (Nodes):" msgid "Node Configuration Warning!" msgstr "Node-Konfigurationswarnung!" +msgid "Don't Ask Again" +msgstr "Nicht mehr fragen" + msgid "Allowed:" msgstr "Erlaubt:" @@ -5961,7 +6622,7 @@ msgstr "Fehler beim ausführen des Post-Import Skripts:" msgid "Did you return a Node-derived object in the `_post_import()` method?" msgstr "" -"Wurde ein von Node abstammendes Objekt in der ‚_post_import()‘-Methode " +"Wurde ein von Node abstammendes Objekt in der `_post_import()`-Methode " "zurückgegeben?" msgid "Saving..." @@ -5984,7 +6645,7 @@ msgid "Error opening scene" msgstr "Fehler beim Öffnen der Szene" msgid "Advanced Import Settings for AnimationLibrary '%s'" -msgstr "Erweiterte Importeinstellungen für die Animation-Bibliothek ‚%s‘" +msgstr "Erweiterte Importeinstellungen für die AnimationLibrary ‚%s‘" msgid "Advanced Import Settings for Scene '%s'" msgstr "Erweiterte Importeinstellungen für Szene ‚%s‘" @@ -16272,12 +16933,6 @@ msgstr "" "Benötigte Vorlagen-Bibliothek „%s“ nicht gefunden. Es könnte im Vorlagen-" "Archiv fehlen." -msgid "ARM64 simulator library, generating from device library." -msgstr "ARM64-Simulatorbibliothek, aus Gerätebibliothek generieren." - -msgid "Unable to generate ARM64 simulator library." -msgstr "ARM64-Simulator-Bibliothek kann nicht generiert werden." - msgid "Could not copy a file at path \"%s\" to \"%s\"." msgstr "Datei im Pfad „%s“ konnte nicht nach \"%s\" kopiert werden." @@ -18157,10 +18812,6 @@ msgstr "Ein Objekt des Typs ‚%s‘ kann nicht indiziert werden." msgid "Invalid base type for increment/decrement operator." msgstr "Ungültiger Basistyp für Inkrement-/Dekrement-Operator." -msgid "Invalid use of increment/decrement operator in a constant expression." -msgstr "" -"Ungültige Verwendung von Inkrement-/Dekrement-Operator in konstantem Ausdruck." - msgid "Invalid token for the operator: '%s'." msgstr "Ungültiges Zeichen für Operator: ‚%s‘." diff --git a/engine/editor/translations/editor/es.po b/engine/editor/translations/editor/es.po index 421df322..05204ff3 100644 --- a/engine/editor/translations/editor/es.po +++ b/engine/editor/translations/editor/es.po @@ -14,7 +14,7 @@ # Diego López <diegodario21@gmail.com>, 2017. # eon-s <emanuel.segretin@gmail.com>, 2018, 2019, 2020. # Gustavo Leon <gleondiaz@gmail.com>, 2017-2018. -# Javier Ocampos <xavier.ocampos@gmail.com>, 2018, 2019, 2020, 2021, 2022, 2023, 2024. +# Javier Ocampos <xavier.ocampos@gmail.com>, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025. # Jose Maria Martinez <josemar1992@hotmail.com>, 2018. # Juan Quiroga <juanquiroga9@gmail.com>, 2017. # Kiji Pixel <raccoon.fella@gmail.com>, 2017. @@ -140,16 +140,18 @@ # José Artigas <squander@users.noreply.hosted.weblate.org>, 2024. # Deleted User <squander@users.noreply.hosted.weblate.org>, 2024. # dvddvd300 <daviddeleon2001@gmail.com>, 2024. -# LuisGFlorez <lgfgcoder@gmail.com>, 2024. +# LuisGFlorez <lgfgcoder@gmail.com>, 2024, 2025. # Juan Matias Olmos <ma7as@protonmail.com>, 2024. # José Andrés Urdaneta <urdaneta7834@gmail.com>, 2025. +# andres valenzuela pacheco <andresmauricio6777@gmail.com>, 2025. +# Marco Antonio Silva Mendoza <n00028146@upn.pe>, 2025. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2025-02-06 23:02+0000\n" -"Last-Translator: José Andrés Urdaneta <urdaneta7834@gmail.com>\n" +"PO-Revision-Date: 2025-02-27 06:54+0000\n" +"Last-Translator: Javier <xavier.ocampos@gmail.com>\n" "Language-Team: Spanish <https://hosted.weblate.org/projects/godot-engine/" "godot/es/>\n" "Language: es\n" @@ -157,16 +159,16 @@ 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 5.10-dev\n" +"X-Generator: Weblate 5.10.2-dev\n" msgid "Main Thread" msgstr "Hilo Principal" msgid "Unset" -msgstr "Desactivado" +msgstr "Sin Establecer" msgid "Physical" -msgstr "Física" +msgstr "Físico" msgid "Left Mouse Button" msgstr "Botón Izquierdo del Ratón" @@ -184,16 +186,16 @@ msgid "Mouse Wheel Down" msgstr "Rueda del Ratón Abajo" msgid "Mouse Wheel Left" -msgstr "Rueda del Ratón A Izquierda" +msgstr "Rueda del Ratón Izquierda" msgid "Mouse Wheel Right" -msgstr "Rueda del Ratón A Derecha" +msgstr "Rueda del Ratón Derecha" msgid "Mouse Thumb Button 1" -msgstr "Botón 1 de Pulgar del Ratón" +msgstr "Botón 1 Pulgar Ratón" msgid "Mouse Thumb Button 2" -msgstr "Botón 2 de Pulgar del Ratón" +msgstr "Botón 2 Pulgar Ratón" msgid "Button" msgstr "Botón" @@ -316,7 +318,7 @@ msgid "touched" msgstr "tocado" msgid "released" -msgstr "liberado" +msgstr "publicado" msgid "Screen %s at (%s) with %s touch points" msgstr "Pantalla %s en (%s) con %s puntos de toque" @@ -516,6 +518,9 @@ msgstr "Mostrar lo Oculto" msgid "Swap Input Direction" msgstr "Cambiar Dirección de Entrada" +msgid "Start Unicode Character Input" +msgstr "Iniciar Entrada de Caracteres Unicode" + msgid "Invalid input %d (not passed) in expression" msgstr "Entrada inválida %d (no aprobada) en la expresión" @@ -759,6 +764,41 @@ msgstr "Cambiar Duración de la Animación" msgid "Change Animation Loop" msgstr "Cambiar Loop de la Animación" +msgid "" +"Can't change loop mode on animation instanced from an imported scene.\n" +"\n" +"To change this animation's loop mode, navigate to the scene's Advanced Import " +"settings and select the animation.\n" +"You can then change the loop mode from the inspector menu." +msgstr "" +"No se puede cambiar el modo bucle en la animación instanciada desde una " +"escena importada.\n" +"\n" +"Para cambiar al modo de bucle de esta animación, vaya a la configuración de " +"importación avanzada de la escena y seleccione la animación.\n" +"Puede cambiar el modo de bucle desde el menú del inspector." + +msgid "Can't change loop mode on animation instanced from an imported resource." +msgstr "" +"No se puede modificar el modo de bucle en una animación creada a partir de " +"una escena importada." + +msgid "" +"Can't change loop mode on animation embedded in another scene.\n" +"\n" +"You must open this scene and change the animation's loop mode from there." +msgstr "" +"No se puede modificar el modo de bucle en una animación incrustada en otra " +"escena.\n" +"\n" +"Debes abrir esta escena y modificar el modo de bucle de la animación desde " +"allí." + +msgid "Can't change loop mode on animation embedded in another resource." +msgstr "" +"No se puede modificar el modo de bucle en la animación incrustada en otro " +"recurso." + msgid "Property Track..." msgstr "Pista de Propiedades..." @@ -1087,7 +1127,7 @@ msgid "Animation Add RESET Keys" msgstr "Añadir Claves de Animación de RESET" msgid "Bake Animation as Linear Keys" -msgstr "Bakear Animación como claves Lineales" +msgstr "Procesar Animación como Claves Lineales" msgid "" "This animation belongs to an imported scene, so changes to imported tracks " @@ -1155,6 +1195,15 @@ msgstr "Mostrar solo las pistas de los nodos seleccionados en el árbol." msgid "Group tracks by node or display them as plain list." msgstr "Agrupar las pistas por nodo o mostrarlas como una lista plana." +msgid "Apply snapping to timeline cursor." +msgstr "Aplicar ajuste al cursor de la línea de tiempo." + +msgid "Apply snapping to selected key(s)." +msgstr "Aplicar ajuste a la(s) tecla(s) seleccionada(s)." + +msgid "Apply snapping to the nearest integer FPS." +msgstr "Aplicar ajuste al entero FPS más cercano." + msgid "Animation step value." msgstr "Valor de step de animación." @@ -1222,7 +1271,7 @@ msgid "Apply Reset" msgstr "Aplicar Reset" msgid "Bake Animation..." -msgstr "Hornear Animación..." +msgstr "Procesar Animación..." msgid "Optimize Animation (no undo)..." msgstr "Optimizar Animación (No se puede deshacer)..." @@ -1355,7 +1404,7 @@ msgid "FPS:" msgstr "FPS:" msgid "Animation Baker" -msgstr "Bakeador de Animaciones" +msgstr "Procesador de Animación" msgid "3D Pos/Rot/Scl Track:" msgstr "Pista de Pos/Rot/Escala 3D:" @@ -1375,12 +1424,75 @@ msgstr "Seleccionar Todo/Ninguno" msgid "Animation Change Keyframe Time" msgstr "Cambiar Tiempo del Fotograma Clave de Animación" +msgid "Marker name is read-only in the inspector." +msgstr "El nombre del marcador es de solo lectura en el inspector." + +msgid "" +"A marker's name can only be changed by right-clicking it in the animation " +"editor and selecting \"Rename Marker\", in order to make sure that marker " +"names are all unique." +msgstr "" +"El nombre de un Marcador solo se puede cambiar haciendo clic derecho sobre él " +"en el editor de animación y seleccionando \"Renombrar Marcador\" para " +"asegurarse de que todos los nombres de los marcadores sean únicos." + +msgid "Insert Marker..." +msgstr "Insertar Marcador..." + +msgid "Rename Marker" +msgstr "Renombrar Marcador" + +msgid "Delete Marker(s)" +msgstr "Eliminar Marcador(es)" + +msgid "Show All Marker Names" +msgstr "Mostrar todos los Nombres de Marcadores" + +msgid "Marker:" +msgstr "Marcador:" + +msgid "Animation Move Markers" +msgstr "Mover Marcadores de Animación" + +msgid "Animation Delete Markers" +msgstr "Eliminar Marcadores de Animación" + +msgid "Marker '%s' already exists!" +msgstr "¡El marcador '%s' ya existe!" + +msgid "Add Marker Key" +msgstr "Agregar Clave de Marcador" + +msgid "Empty marker names are not allowed." +msgstr "No se permiten nombres de marcadores vacíos." + +msgid "Insert Marker" +msgstr "Insertar Marcador" + +msgid "Marker Name" +msgstr "Establecer Nombre de Marcador" + +msgid "Marker Color" +msgstr "Color del Marcador" + msgid "Close" msgstr "Cerrar" msgid "Error!" msgstr "¡Error!" +msgid "Change Marker Name:" +msgstr "Modificar Nombre de Marcador:" + +msgid "Edit Marker Color" +msgstr "Editar Color del Marcador" + +msgid "Multi Edit Marker Color" +msgstr "Marcador de Color de Edición Múltiple" + +msgid "Animation Change Marker Time" +msgstr "Tiempo del Marcador de Cambio de Animación" + msgid "Add Audio Track Clip" msgstr "Añadir Clip de Pista de Audio" @@ -1412,6 +1524,12 @@ msgid_plural "%d of %d matches" msgstr[0] "%d de %d coincidencia" msgstr[1] "%d de %d coincidencias" +msgid "Hide Replace" +msgstr "Ocultar Sustituto" + +msgid "Show Replace" +msgstr "Mostrar Sustituto" + msgid "Find" msgstr "Buscar" @@ -1468,6 +1586,13 @@ msgstr "Advertencias" msgid "Zoom factor" msgstr "Factor de zoom" +msgid "" +"%sMouse wheel, %s/%s: Finetune\n" +"%s: Reset" +msgstr "" +"%sRueda del ratón, %s/%s: Ajuste Fino\n" +"%s: Restablecer" + msgid "Line and column numbers." msgstr "Números de línea y columna." @@ -1632,6 +1757,12 @@ msgstr "Crear Nuevo %s" msgid "No results for \"%s\"." msgstr "No hay resultados para \"%s\"." +msgid "Script path: %s" +msgstr "Ruta del script: %s" + +msgid "The script will run in the editor." +msgstr "El script se ejecutará en el editor." + msgid "This class is marked as deprecated." msgstr "Esta clase está marcada como obsoleta." @@ -1662,6 +1793,9 @@ msgstr "Descripción:" msgid "Remote %s:" msgstr "Remoto %s:" +msgid "Session %d" +msgstr "Sesión %d" + msgid "Debugger" msgstr "Depurador" @@ -1692,6 +1826,15 @@ msgstr "" msgid "Toggle Visibility" msgstr "Cambiar Visibilidad" +msgid "Expression to evaluate" +msgstr "Expresión para evaluar" + +msgid "Clear on Run" +msgstr "Listo para Correr" + +msgid "Evaluate" +msgstr "Evaluar" + msgid "Clear" msgstr "Limpiar" @@ -1737,6 +1880,9 @@ msgstr "Detener" msgid "Start" msgstr "Iniciar" +msgid "Autostart" +msgstr "Inicio Automático" + msgid "Measure:" msgstr "Medida:" @@ -1893,6 +2039,9 @@ msgstr "Expandir Todo" msgid "Collapse All" msgstr "Colapsar Todo" +msgid "Evaluator" +msgstr "Evaluador" + msgid "Profiler" msgstr "Perfilador" @@ -2022,6 +2171,12 @@ msgstr "" msgid "Cannot remove:" msgstr "No se puede eliminar:" +msgid "Files to be deleted:" +msgstr "Archivos a eliminar:" + +msgid "Dependencies of files to be deleted:" +msgstr "Dependencias de los archivos a eliminar:" + msgid "Error loading:" msgstr "Error al cargar:" @@ -2058,15 +2213,27 @@ msgstr "Recursos Sin Propietario Explícito:" msgid "Name cannot be empty." msgstr "El nombre no puede estar vacío." +msgid "File name can't end with /." +msgstr "El nombre del archivo no puede terminar con /." + +msgid "File name cannot be empty." +msgstr "El nombre del archivo no puede estar vacío." + msgid "Folder name cannot be empty." msgstr "El nombre de la carpeta no puede estar vacío." +msgid "File name contains invalid characters." +msgstr "El nombre del archivo contiene caracteres no válidos." + msgid "Folder name contains invalid characters." msgstr "El nombre de la carpeta contiene caracteres inválidos." msgid "File name begins with a dot." msgstr "El nombre del archivo comienza con un punto(.)." +msgid "Folder name begins with a dot." +msgstr "El nombre del archivo comienza con un punto(.)." + msgid "File with that name already exists." msgstr "Ya existe un fichero con ese nombre." @@ -2078,6 +2245,19 @@ msgstr "" "Al usar la barra invertida en el nombre de las carpetas se crearán " "subcarpetas de forma recursiva." +msgid "" +"Using slashes in path will create the file in subfolder, creating new " +"subfolders if necessary." +msgstr "" +"El uso de barras en la ruta creará el archivo en una subcarpeta y creará " +"nuevas subcarpetas si es necesario." + +msgid "File name is valid." +msgstr "El nombre del archivo es válido." + +msgid "Base path: %s" +msgstr "Ruta base: %s" + msgid "Folder name is valid." msgstr "El nombre de la carpeta es válido." @@ -2361,6 +2541,9 @@ msgstr "Layout del Bus de Audio" msgid "Invalid name." msgstr "Nombre inválido." +msgid "Must be a valid Unicode identifier." +msgstr "Debe ser un identificador Unicode válido." + msgid "Must not collide with an existing engine class name." msgstr "No debe coincidir con un nombre de clase existente en el motor." @@ -2636,6 +2819,12 @@ msgstr "[vacío]" msgid "[unsaved]" msgstr "[sin guardar]" +msgid "Open the %s dock." +msgstr "Abra el dock %s." + +msgid "Focus on the %s dock." +msgstr "Enfóquese en el dock %s." + msgid "%s - Godot Engine" msgstr "%s - Godot Engine" @@ -2646,7 +2835,7 @@ msgid "Move this dock left one tab." msgstr "Mueve este dock a la pestaña de la izquierda." msgid "Dock Position" -msgstr "Posición del Dock" +msgstr "Posición del Panel" msgid "Make Floating" msgstr "Hacer Flotante" @@ -2658,10 +2847,10 @@ msgid "Move to Bottom" msgstr "Mover hacia Abajo" msgid "Move this dock to the bottom panel." -msgstr "Mueve este dock al panel del fondo." +msgstr "Mover este panel al panel inferior." msgid "Close this dock." -msgstr "Cierra este dock." +msgstr "Cerrar este panel." msgid "3D Editor" msgstr "3D Editor" @@ -2673,20 +2862,23 @@ msgid "Asset Library" msgstr "Librería de Assets" msgid "Scene Tree Editing" -msgstr "Editor del Árbol de Escenas" +msgstr "Edición del Árbol de Escena" msgid "Node Dock" -msgstr "Nodos" +msgstr "Panel de Nodos" msgid "FileSystem Dock" -msgstr "Sistema de Archivos" +msgstr "Panel del Sistema de Archivos" msgid "Import Dock" -msgstr "Importación" +msgstr "Panel de Importación" msgid "History Dock" msgstr "Panel de Historial" +msgid "Game View" +msgstr "Vista del Juego" + msgid "Allows to view and edit 3D scenes." msgstr "Permite ver y editar escenas 3D." @@ -2697,30 +2889,35 @@ msgid "Provides built-in access to the Asset Library." msgstr "Proporciona acceso integrado a la Librería de Assets." msgid "Allows editing the node hierarchy in the Scene dock." -msgstr "Permite editar la jerarquía de nodos en el dock de Escena." +msgstr "Permite editar la jerarquía de nodos en el panel de Escena." msgid "" "Allows to work with signals and groups of the node selected in the Scene dock." msgstr "" -"Permite trabajar con señales y grupos del nodo seleccionado en el dock de " +"Permite trabajar con señales y grupos del nodo seleccionado en el panel de " "Escena." msgid "Allows to browse the local file system via a dedicated dock." msgstr "" -"Permite navegar por el sistema de archivos local a través de un dock dedicado." +"Permite explorar el sistema de archivos local a través de un panel dedicado." msgid "" "Allows to configure import settings for individual assets. Requires the " "FileSystem dock to function." msgstr "" -"Permite configurar los ajustes de importación para assets individuales. " -"Requiere el dock FileSystem para funcionar." +"Permite configurar las opciones de importación para recursos individuales. " +"Requiere el panel del Sistema de Archivos para funcionar." msgid "Provides an overview of the editor's and each scene's undo history." msgstr "" "Proporciona una visión general del historial de deshacer del editor y de cada " "escena." +msgid "Provides tools for selecting and debugging nodes at runtime." +msgstr "" +"Proporciona herramientas para seleccionar y depurar nodos en tiempo de " +"ejecución." + msgid "(current)" msgstr "(actual)" @@ -2810,6 +3007,30 @@ msgstr "Importar Perfil(es)" msgid "Manage Editor Feature Profiles" msgstr "Administrar Perfiles de Características del Editor" +msgid "Project initialization" +msgstr "Inicialización del proyecto" + +msgid "Scanning file structure..." +msgstr "Escaneando la estructura del archivo..." + +msgid "Loading global class names..." +msgstr "Cargando nombres de clases globales..." + +msgid "Verifying GDExtensions..." +msgstr "Verificando GDExtensions..." + +msgid "Creating autoload scripts..." +msgstr "Creando scripts de carga automática..." + +msgid "Initializing plugins..." +msgstr "Inicializando complementos..." + +msgid "Starting file scan..." +msgstr "Iniciando escaneo de archivos..." + +msgid "Scanning actions..." +msgstr "Escaneando acciones..." + msgid "Some extensions need the editor to restart to take effect." msgstr "" "Algunas extensiones requieren el reinicio del editor para surtir efecto." @@ -2823,6 +3044,15 @@ msgstr "Guardar y Reiniciar" msgid "ScanSources" msgstr "Escanear Fuentes" +msgid "Registering global classes..." +msgstr "Registrando clases globales..." + +msgid "Updating scripts documentation" +msgstr "Actualizando documentación de scripts" + +msgid "Updating Scene Groups" +msgstr "Actualizando Grupos de Escenas" + msgid "" "There are multiple importers for different types pointing to file %s, import " "aborted" @@ -2833,9 +3063,24 @@ msgstr "" msgid "(Re)Importing Assets" msgstr "(Re)Importación de Assets" +msgid "Preparing files to reimport..." +msgstr "Preparando archivos para reimportarlos..." + +msgid "Executing pre-reimport operations..." +msgstr "Ejecutando operaciones de pre-reimportación..." + msgid "Import resources of type: %s" msgstr "Importar recursos del tipo: %s" +msgid "Finalizing Asset Import..." +msgstr "Finalizando la importación de recursos..." + +msgid "Executing post-reimport operations..." +msgstr "Ejecutando operaciones post-reimportación..." + +msgid "Copying files..." +msgstr "Copiando archivos..." + msgid "This method supports a variable number of arguments." msgstr "Este método soporta un número variable de argumentos." @@ -2860,6 +3105,9 @@ msgstr "" "Este método no requiere una instancia para ser llamado.\n" "Puede ser llamado directamente utilizando el nombre de la clase." +msgid "Code snippet copied to clipboard." +msgstr "Fragmento de código copiado al portapapeles." + msgid "No return value." msgstr "No retorna ningún valor." @@ -3012,6 +3260,10 @@ msgstr "Iconos" msgid "Styles" msgstr "Estilos" +msgid "This theme property may be changed or removed in future versions." +msgstr "" +"Esta propiedad del tema puede modificarse o eliminarse en futuras versiones." + msgid "There is currently no description for this theme property." msgstr "Actualmente, no hay ninguna descripción para esta propiedad del theme." @@ -3090,9 +3342,15 @@ msgstr "Editor" msgid "Click to copy." msgstr "Haz clic para copiar." +msgid "Click to open in browser." +msgstr "Haga clic para abrir en el navegador." + msgid "No description available." msgstr "No hay descripción disponible." +msgid "This annotation may be changed or removed in future versions." +msgstr "Esta anotación puede modificarse o eliminarse en futuras versiones." + msgid "Show in FileSystem" msgstr "Mostrar en Sistema de Archivos" @@ -3102,12 +3360,24 @@ msgstr "Abrir en el Explorador de Archivos" msgid "Class" msgstr "Clase" +msgid "Enumeration" +msgstr "Enumeración" + msgid "Constant" msgstr "Constante" +msgid "Metadata" +msgstr "Metadatos" + +msgid "Setting" +msgstr "Configuración" + msgid "Property" msgstr "Propiedad" +msgid "Internal Property" +msgstr "Propiedad Interna" + msgid "This property can only be set in the Inspector." msgstr "Esta propiedad solo puede ser establecida a través del Inspector." @@ -3123,9 +3393,36 @@ msgstr "Señal" msgid "Annotation" msgstr "Anotación" +msgid "Local Constant" +msgstr "Constante Local" + +msgid "Local Variable" +msgstr "Variable Local" + +msgid "This variable may be changed or removed in future versions." +msgstr "Esta variable puede modificarse o eliminarse en futuras versiones." + +msgid "TextFile" +msgstr "Archivo de Texto" + msgid "File" msgstr "Archivo" +msgid "Directory" +msgstr "Directorio" + +msgid "Invalid UID" +msgstr "UID Inválido" + +msgid "This UID does not point to any valid Resource." +msgstr "Este UID no apunta a ningún recurso válido." + +msgid "Invalid path" +msgstr "Ruta inválida" + +msgid "This path does not exist." +msgstr "Esta ruta no existe." + msgid "%d match." msgstr "%d coincidencia." @@ -3183,12 +3480,29 @@ msgstr "Tipo de Miembro" msgid "Keywords" msgstr "Palabras Clave" +msgid "Matches the \"%s\" keyword." +msgstr "Coincide con la palabra clave \"%s\"." + msgid "This member is marked as deprecated." msgstr "Este miembro está marcado como obsoleto." msgid "This member is marked as experimental." msgstr "Este miembro está marcado como experimental." +msgid "Unfavorite Property" +msgstr "Propiedad no favorita" + +msgid "Make this property be put back at its original place." +msgstr "Hagan que esta propiedad vuelva a su lugar original." + +msgid "Favorite Property" +msgstr "Propiedad favorita" + +msgid "Make this property be placed at the top for all objects of this class." +msgstr "" +"Haga que esta propiedad se coloque en la parte superior para todos los " +"objetos de esta clase." + msgid "Pin Value" msgstr "Asignar Valor a un Pin" @@ -3198,6 +3512,9 @@ msgstr "Valor del Pin [Desactivado porque '%s' es solo para el editor]" msgid "Pinning a value forces it to be saved even if it's equal to the default." msgstr "Fijar un valor obliga a guardarlo aunque sea igual al predeterminado." +msgid "Unfavorite All" +msgstr "Quitar todo de favoritos" + msgid "(%d change)" msgid_plural "(%d changes)" msgstr[0] "(%d cambio)" @@ -3384,6 +3701,11 @@ msgstr "Inspector de Código Fuente del Shader Nativo" msgid "Unnamed Project" msgstr "Proyecto Sin Nombre" +msgid "Recovery Mode is enabled. Editor functionality has been restricted." +msgstr "" +"El modo de recuperación está habilitado. La funcionalidad del editor se ha " +"restringido." + msgid "" "Spins when the editor window redraws.\n" "Update Continuously is enabled, which can increase power usage. Click to " @@ -3590,12 +3912,15 @@ msgid "" "A root node is required to save the scene. You can add a root node using the " "Scene tree dock." msgstr "" -"Se requiere un nodo raíz para guardar la escena. Puede agregar un nodo raíz " -"utilizando el muelle de árbol de escenas." +"Se requiere un nodo raíz para guardar la escena. Puedes agregar un nodo raíz " +"usando el panel del árbol de Escena." msgid "Save Scene As..." msgstr "Guardar Escena Como..." +msgid "Pack Project as ZIP..." +msgstr "Empaquetar proyecto como ZIP..." + msgid "Can't undo while mouse buttons are pressed." msgstr "No se puede deshacer mientras se pulsan los botones del mouse." @@ -3679,36 +4004,40 @@ msgstr "Esta operación no puede realizarse sin una escena." msgid "Export Mesh Library" msgstr "Exportar Librería de Mallas" +msgid "Quick Open Color Palette..." +msgstr "Apertura Rápida de Paleta de Colores..." + msgid "Unable to enable addon plugin at: '%s' parsing of config failed." msgstr "" -"No se pudo activar el plugin addon: Ha fallado el análisis de la " -"configuración de '%s'." +"Imposible habilitar plugin de complemento en: '%s'. Falló análisis de " +"configuración." 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: '%s'." +msgstr "" +"Imposible encontrar campo de script para plugin de complemento en: '%s'." msgid "Unable to load addon script from path: '%s'." -msgstr "No se pudo cargar el script addon desde la ruta: '%s'." +msgstr "Imposible cargar script de complemento desde: '%s'." msgid "" "Unable to load addon script from path: '%s'. This might be due to a code " "error in that script.\n" "Disabling the addon at '%s' to prevent further errors." msgstr "" -"No se puede cargar el script de addon desde la ruta: '%s' Parece que hay un " -"error en el código, por favor compruebe la sintaxis.\n" -"Desactivar el addon en '%s' para prevenir mas errores." +"Imposible cargar script de complemento desde: '%s'. Esto podría deberse a un " +"error de código en ese script.\n" +"Deshabilitando el complemento en '%s' para prevenir errores adicionales." msgid "" "Unable to load addon script from path: '%s'. Base type is not 'EditorPlugin'." msgstr "" -"No se puede cargar el script de complemento desde la ruta: '%s'. El tipo base " -"no es 'EditorPlugin'." +"Imposible cargar script de complemento desde: '%s'. Su tipo base no es " +"'EditorPlugin'." msgid "Unable to load addon script from path: '%s'. Script is not in tool mode." msgstr "" -"No se ha podido cargar el script del complemento desde la ruta: '%s'. El " -"script no está en modo herramienta." +"Imposible cargar script de complemento desde: '%s'. Script no está en modo " +"herramienta." msgid "" "Scene '%s' was automatically imported, so it can't be modified.\n" @@ -3763,6 +4092,55 @@ msgstr "Limpiar escenas recientes" msgid "There is no defined scene to run." msgstr "No hay una escena definida para executar." +msgid "Loading editor" +msgstr "Cargando editor" + +msgid "Loading editor layout..." +msgstr "Cargando diseño del editor..." + +msgid "Loading docks..." +msgstr "Cargando paneles..." + +msgid "Reopening scenes..." +msgstr "Reabriendo escenas..." + +msgid "Loading central editor layout..." +msgstr "Cargando el diseño del editor central..." + +msgid "Loading plugin window layout..." +msgstr "Cargando complemento del diseño de la ventana..." + +msgid "Editor layout ready." +msgstr "Diseño del editor listo." + +msgid "" +"No main scene has ever been defined. Select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"No se ha definido ninguna escena principal, ¿Seleccionar una?\n" +"Es posible cambiarla más tarde en \"Configuración del Proyecto\" bajo la " +"categoría 'Aplicación'." + +msgid "" +"Selected scene '%s' does not exist. Select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"La escena seleccionada '%s' no existe, ¿seleccionar una válida?\n" +"Es posible modificarla más tarde en \"Configuración del Proyecto\" bajo la " +"categoría 'aplicación'." + +msgid "" +"Selected scene '%s' is not a scene file. Select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"La escena '%s' seleccionada no es un archivo de escena, ¿Seleccionar uno " +"válido?\n" +"Es posible modificarlo más tarde en \"Configuración del Proyecto\" bajo la " +"categoría 'aplicación'." + msgid "Save Layout..." msgstr "Guardar Layout..." @@ -3990,6 +4368,9 @@ msgstr "Configuración del Editor del Motor de Compilación..." msgid "Upgrade Mesh Surfaces..." msgstr "Actualizar Superficies de Malla..." +msgid "Upgrade UIDs..." +msgstr "Actualizar UIDs..." + msgid "Reload Current Project" msgstr "Recargar proyecto actual" @@ -4000,7 +4381,7 @@ msgid "Command Palette..." msgstr "Paleta de Comandos..." msgid "Editor Docks" -msgstr "Editor de Docks" +msgstr "Paneles del Editor" msgid "Editor Layout" msgstr "Layout del Editor" @@ -4150,6 +4531,21 @@ msgstr "Exportar Librería" msgid "Open & Run a Script" msgstr "Abrir y Ejecutar un Script" +msgid "Files have been modified outside Godot" +msgstr "Los archivos han sido modificados fuera de Godot" + +msgid "The following files are newer on disk:" +msgstr "Los siguientes archivos son más nuevos en el disco:" + +msgid "What action should be taken?" +msgstr "¿Qué acción se debe tomar?" + +msgid "Reload from disk" +msgstr "Recargar desde el disco" + +msgid "Ignore external changes" +msgstr "Ignorar los cambios externos" + msgid "Create/Override Version Control Metadata..." msgstr "Crear/Sobrescribir Metadatos de Control de Versiones..." @@ -4174,6 +4570,9 @@ msgstr "Abrir Editor 3D" msgid "Open Script Editor" msgstr "Abrir Editor de Script" +msgid "Open Game View" +msgstr "Abrir vista del juego" + msgid "Open Asset Library" msgstr "Abrir Librería de Assets" @@ -4303,6 +4702,12 @@ msgstr "Nuevo Valor:" msgid "(Nil) %s" msgstr "(Nulo) %s" +msgid "%s%s (size %d)" +msgstr "%s%s (tamaño %d)" + +msgid "%s (size %d)" +msgstr "%s (Tamaño %d)" + msgid "Size:" msgstr "Tamaño:" @@ -4372,15 +4777,43 @@ msgstr "Extender Script..." msgid "New Shader..." msgstr "Nuevo Shader..." +msgid "No Remote Deploy export presets configured." +msgstr "No hay configurados ajustes de exportación para Despliegue Remoto." + +msgid "Remote Deploy" +msgstr "Despliegue Remoto" + 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 "" -"No se ha encontrado ningún preset de exportación ejecutable para esta " -"plataforma.\n" -"Por favor, añade un preset ejecutable en el menú de exportación o define un " -"preset existente como ejecutable." +"No se encontró un ajuste de exportación ejecutable para esta plataforma.\n" +"Agrega un ajuste ejecutable en el menú Exportar o define un ajuste existente " +"como ejecutable." + +msgid "" +"Warning: The CPU architecture \"%s\" is not active in your export preset.\n" +"\n" +msgstr "" +"Advertencia: La arquitectura de CPU \"%s\" no está activa en tu ajuste de " +"exportación.\n" +"\n" + +msgid "Run \"Remote Deploy\" anyway?" +msgstr "¿Ejecutar Despliegue Remoto igualmente?" + +msgid "Deploy to First Device in List" +msgstr "Desplegar en el primer dispositivo de la lista" + +msgid "Deploy to Second Device in List" +msgstr "Desplegar en el segundo dispositivo de la lista" + +msgid "Deploy to Third Device in List" +msgstr "Desplegar en el tercer dispositivo de la lista" + +msgid "Deploy to Fourth Device in List" +msgstr "Desplegar en el cuarto dispositivo de la lista" msgid "Project Run" msgstr "Ejecutar Proyecto" @@ -4391,6 +4824,9 @@ msgstr "Escribe tu lógica en el método _run()." msgid "The current scene already has a root node." msgstr "La escena actual ya tiene un nodo raíz." +msgid "Advanced settings are always shown when searching." +msgstr "La configuración avanzada siempre se muestra al buscar." + msgid "Edit Built-in Action: %s" msgstr "Editar Acción Integrada: %s" @@ -4400,9 +4836,15 @@ msgstr "Editar Acceso Directo: %s" msgid "None" msgstr "Ninguno" +msgid "Primary" +msgstr "Primario" + msgid "Common" msgstr "Más información" +msgid "Event %d" +msgstr "Evento %d" + msgid "Editor Settings" msgstr "Configuración del Editor" @@ -4604,6 +5046,12 @@ msgstr "Error desconocido" msgid "Export failed with error code %d." msgstr "Exportación fallida con código de error %d." +msgid "Patch Creation" +msgstr "Creación de Parche" + +msgid "Could not load patch pack with path \"%s\"." +msgstr "No se pudo cargar el paquete de parche con la ruta \"%s\"." + msgid "Storing File: %s" msgstr "Almacenando Archivo: %s" @@ -4613,6 +5061,29 @@ msgstr "Archivo de Almacenamiento:" msgid "No export template found at the expected path:" msgstr "No se encontró una plantilla de exportación en la ruta:" +msgid "" +"Using user provided text server data, text display in the exported project " +"might be broken if export template was built with different ICU version!" +msgstr "" +"¡Usando datos de servidor de texto proporcionados por el usuario, la " +"visualización de texto en el proyecto exportado podría fallar si la plantilla " +"de exportación se creó con una versión diferente de ICU!" + +msgid "" +"Using editor embedded text server data, text display in the exported project " +"might be broken if export template was built with different ICU version!" +msgstr "" +"¡Usando los datos del servidor de texto integrado en el editor, la " +"visualización de texto en el proyecto exportado podría fallar si la plantilla " +"de exportación se creó con una versión diferente de ICU!" + +msgid "" +"Missing text server data, text display in the exported project might be " +"broken!" +msgstr "" +"Faltan datos del servidor de texto ¡La visualización de texto en el proyecto " +"exportado podría fallar!" + msgid "ZIP Creation" msgstr "Creación de ZIP" @@ -4631,6 +5102,9 @@ msgstr "No se pudo crear el archivo \"%s\"." msgid "Failed to export project files." msgstr "Fallo en la exportación de los archivos del proyecto." +msgid "No files or changes to export." +msgstr "No hay archivos ni cambios para exportar." + msgid "Can't open file for writing at path \"%s\"." msgstr "No se pudo abrir el archivo para escritura en la ruta \"%s\"." @@ -4649,11 +5123,14 @@ msgstr "No se puede abrir el archivo a leer de la ruta \"%s\"." msgid "Save ZIP" msgstr "Guardar ZIP" +msgid "Failed to move temporary file \"%s\" to \"%s\"." +msgstr "No se pudo mover el archivo temporal \"%s\" a \"%s\"." + msgid "Custom debug template not found." msgstr "No se encontró la plantilla de depuración personalizada." msgid "Custom release template not found." -msgstr "Plantilla release personalizada no encontrada." +msgstr "No se encontró la plantilla de publicación personalizada." msgid "" "A texture format must be selected to export the project. Please select at " @@ -4681,6 +5158,12 @@ msgid "On 32-bit exports the embedded PCK cannot be bigger than 4 GiB." msgstr "" "En la exportación de 32 bits el PCK embebido no puede ser mayor de 4 GiB." +msgid "GDExtension" +msgstr "GDExtensión" + +msgid "Failed to copy shared object \"%s\"." +msgstr "Error al copiar el objeto compartido \"%s\"." + msgid "Plugin \"%s\" is not supported on \"%s\"" msgstr "Plugin \"%s\" no es compatible con \"%s\"" @@ -4751,8 +5234,8 @@ msgid "" "No download links found for this version. Direct download is only available " "for official releases." msgstr "" -"No se han encontrado enlaces de descarga para esta versión. La descarga " -"directa solo está disponible para las versiones oficiales." +"No se encontraron enlaces de descarga para esta versión. La descarga directa " +"solo está disponible para lanzamientos oficiales." msgid "Disconnected" msgstr "Desconectado" @@ -4813,6 +5296,15 @@ msgstr "" msgid "Export templates are missing. Install them from a file." msgstr "Faltan las plantillas de exportación. Instalar desde un archivo." +msgid "Not available in offline mode" +msgstr "No disponible en modo offline" + +msgid "Template downloading is disabled in offline mode." +msgstr "La descarga de plantillas está deshabilitada en modo offline." + +msgid "No templates for development builds" +msgstr "No hay plantillas para las compilaciones de desarrollo" + msgid "Official export templates aren't available for development builds." msgstr "" "Las plantillas de exportación oficiales no están disponibles para las " @@ -4904,15 +5396,15 @@ msgid "Runnable" msgstr "Ejecutable" msgid "Export the project for all the presets defined." -msgstr "Exportar el proyecto para todos los presets definidos." +msgstr "Exportar el proyecto para todos los ajustes definidos." msgid "All presets must have an export path defined for Export All to work." msgstr "" -"Todos los presets deben tener una ruta de exportación definida para que " -"Exportar Todo funcione." +"Todos los ajustes deben tener una ruta de exportación definida para que " +"funcione Exportar Todo." msgid "Delete preset '%s'?" -msgstr "¿Eliminar preajuste '%s'?" +msgstr "¿Eliminar el ajuste '%s'?" msgid "Resources to exclude:" msgstr "Recursos a excluir:" @@ -4926,20 +5418,26 @@ msgstr "Recursos a exportar:" msgid "(Inherited)" msgstr "(Heredado)" +msgid "Delete patch '%s' from list?" +msgstr "¿Eliminar el parche '%s' de la lista?" + msgid "Export With Debug" msgstr "Exportar Con Depuración" +msgid "Export As Patch" +msgstr "Exportar como Parche" + msgid "%s Export" msgstr "Exportar %s" msgid "Release" -msgstr "Release" +msgstr "Versión de Publicación" msgid "Exporting All" msgstr "Exportar Todo" msgid "Presets" -msgstr "Ajustes preestablecidos" +msgstr "Ajustes Preestablecidos" msgid "Add..." msgstr "Añadir..." @@ -4951,9 +5449,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 está activado, el preset estará disponible para su uso en el despliegue " -"con un clic.\n" -"Sólo se puede marcar un preset por plataforma como ejecutable." +"Si está marcado, el ajuste estará disponible para usar en despliegue de un " +"clic.\n" +"Solo un ajuste por plataforma puede marcarse como ejecutable." msgid "Advanced Options" msgstr "Opciones Avanzadas" @@ -5015,9 +5513,18 @@ msgstr "" "Filtros para excluir archivos/carpetas del proyecto\n" "(separados por comas, por ejemplo: *.json, *.txt, docs/*)" +msgid "Patches" +msgstr "Parches" + +msgid "Base Packs:" +msgstr "Paquetes Bases:" + msgid "Godot Project Pack" msgstr "Paquete de Proyectos de Godot" +msgid "Add Pack" +msgstr "Añadir Paquete" + msgid "Features" msgstr "Características" @@ -5056,6 +5563,9 @@ msgstr "Llave de Encriptación Inválida (debe tener 64 caracteres hexadecimales msgid "Encryption Key (256-bits as hexadecimal):" msgstr "Clave de Cifrado (256-bits en hexadecimal):" +msgid "Initialization vector seed" +msgstr "Semilla del vector de inicialización" + msgid "" "Note: Encryption key needs to be stored in the binary,\n" "you need to build the export templates from source." @@ -5073,7 +5583,7 @@ msgid "GDScript Export Mode:" msgstr "Modo de Exportación de GDScript:" msgid "Text (easier debugging)" -msgstr "Texto (depuración más sencilla)" +msgstr "Texto (depuración más fácil)" msgid "Binary tokens (faster loading)" msgstr "Tokens binarios (carga más rápida)" @@ -5099,7 +5609,7 @@ msgid "" "for the selected preset." msgstr "" "Exportar el proyecto como una compilación jugable (ejecutable de Godot y " -"datos del proyecto) para el preset seleccionado." +"datos del proyecto) para el ajuste seleccionado." msgid "Export All" msgstr "Exportar Todo" @@ -5175,6 +5685,9 @@ msgstr "Examinar" msgid "Confirm Path" msgstr "Confirmar Ruta" +msgid "Link to: %s" +msgstr "Enlace a: %s" + msgid "View items as a grid of thumbnails." msgstr "Sesgo del nivel de división de la cuadrícula." @@ -5204,6 +5717,9 @@ msgstr "Error al mover:" msgid "Error duplicating:" msgstr "Error al duplicar:" +msgid "Error duplicating directory:" +msgstr "Error duplicando directorio:" + msgid "Unable to update dependencies for:" msgstr "No se han podido actualizar las dependencias para:" @@ -5231,6 +5747,9 @@ msgstr "" msgid "A file or folder with this name already exists." msgstr "Ya existe un archivo o carpeta con este nombre." +msgid "Could not create base directory: %s" +msgstr "No se pudo crear el directorio base: %s" + msgid "" "The following files or folders conflict with items in the target location " "'%s':" @@ -5270,6 +5789,14 @@ msgstr "Duplicando carpeta:" msgid "Create Folder" msgstr "Crear Carpeta" +msgid "" +"Do you wish to convert these files to %s? (This operation cannot be undone!)" +msgstr "" +"¿Deseas convertir estos archivos a %s? (¡Esta operación no se puede deshacer!)" + +msgid "Could not create folder: %s" +msgstr "No se pudo crear la carpeta: %s" + msgid "New Inherited Scene" msgstr "Nueva Escena Heredada" @@ -5330,12 +5857,18 @@ msgstr "Agregar a Favoritos" msgid "Remove from Favorites" msgstr "Eliminar de Favoritos" +msgid "Convert to..." +msgstr "Convertir a..." + msgid "Reimport" msgstr "Reimportar" msgid "Open in Terminal" msgstr "Abrir en la Terminal" +msgid "Open Folder in Terminal" +msgstr "Abrir Carpeta en Terminal" + msgid "New Folder..." msgstr "Nueva Carpeta..." @@ -5445,6 +5978,9 @@ msgstr "Mantener Ambos" msgid "Create Script" msgstr "Crear Script" +msgid "Convert" +msgstr "Convertir" + msgid "Find in Files" msgstr "Buscar en Archivos" @@ -5482,6 +6018,9 @@ msgstr "Reemplazar todo (no se puede deshacer)" msgid "Searching..." msgstr "Buscando..." +msgid "Remove result" +msgstr "Eliminar resultado" + msgid "%d match in %d file" msgstr "%d coincidencia en el archivo %d" @@ -5572,6 +6111,27 @@ msgstr "Añadir un nuevo grupo." msgid "Filter Groups" msgstr "Filtrar Grupos" +msgid "" +"Scroll Left\n" +"Hold Ctrl to scroll to the begin.\n" +"Hold Shift to scroll one page." +msgstr "" +"Desplazar a la Izquierda\n" +"Mantén Ctrl para desplazarte al inicio.\n" +"Mantén Shift para desplazarte una página." + +msgid "" +"Scroll Right\n" +"Hold Ctrl to scroll to the end.\n" +"Hold Shift to scroll one page." +msgstr "" +"Desplazar a la Derecha\n" +"Mantén Ctrl para desplazarte al final.\n" +"Mantén Shift para desplazarte una página." + +msgid "Pin Bottom Panel Switching" +msgstr "Fijar Cambio de Panel Inferior" + msgid "Expand Bottom Panel" msgstr "Expandir Panel Inferior" @@ -5611,6 +6171,9 @@ msgstr "" msgid "Select This Folder" msgstr "Seleccionar Esta Carpeta" +msgid "Show Package Contents" +msgstr "Mostrar el contenido del paquete" + msgid "All Files" msgstr "Todos los Archivos" @@ -5660,7 +6223,10 @@ msgid "Toggle Mode" msgstr "Cambiar Modo" msgid "Focus Path" -msgstr "Foco en Ruta" +msgstr "Ruta de Enfoque" + +msgid "Focus Filter" +msgstr "Filtro de Enfoque" msgid "Move Favorite Up" msgstr "Subir Favorito" @@ -5692,9 +6258,18 @@ msgstr "Directorios y Archivos:" msgid "Toggle the visibility of hidden files." msgstr "Mostrar/Ocultar archivos ocultos." +msgid "Sort files" +msgstr "Ordenar archivos" + +msgid "Toggle the visibility of the filter for file names." +msgstr "Alternar visibilidad del filtro para nombres de archivo." + msgid "Preview:" msgstr "Vista Previa:" +msgid "Filter:" +msgstr "Filtro:" + msgid "Filter" msgstr "Filtro" @@ -5718,6 +6293,45 @@ msgstr "No se encontró ningún sub-recurso." msgid "Open a list of sub-resources." msgstr "Abra una lista de sub-recursos." +msgid "Search files..." +msgstr "Buscar archivos..." + +msgid "Select Resource" +msgstr "Seleccionar Recurso" + +msgid "Select Scene" +msgstr "Seleccionar Escena" + +msgid "Fuzzy Search" +msgstr "Búsqueda Flexible" + +msgid "Enable fuzzy matching" +msgstr "Activar coincidencia flexible" + +msgid "Addons" +msgstr "Complementos" + +msgid "Include files from addons" +msgstr "Incluir archivos de complementos" + +msgid "No files found for this type" +msgstr "No se encontraron archivos para este tipo" + +msgid "Start searching to find files..." +msgstr "Comienza a buscar para encontrar archivos..." + +msgid "No results found" +msgstr "No se encontraron resultados" + +msgid " (recently opened)" +msgstr " (recientemente abierto)" + +msgid "Grid view" +msgstr "Vista de Cuadrícula" + +msgid "List view" +msgstr "Vista de Lista" + msgid "Play the project." msgstr "Reproducir el proyecto." @@ -5751,9 +6365,76 @@ msgstr "" msgid "Could not start subprocess(es)!" msgstr "¡No se pudo iniciar los subprocesos!" +msgid "Recovery Mode is enabled. Disable it to run the project." +msgstr "" +"El modo de recuperación está habilitado. Desactívalo para ejecutar el " +"proyecto." + +msgid "" +"Autostart is enabled for the following profilers, which can have a " +"performance impact:" +msgstr "" +"La opción de inicio automático está habilitada para los siguientes perfiles, " +"lo que puede tener un impacto en el rendimiento:" + msgid "Network Profiler" msgstr "Profiler de Red" +msgid "Click to open the first profiler for which autostart is enabled." +msgstr "" +"Haz clic para abrir el primer perfilador para el cual el inicio automático " +"está habilitado." + +msgid "Recovery Mode" +msgstr "Modo de Recuperación" + +msgid "" +"Godot opened the project in Recovery Mode, which is a special mode that can " +"help recover projects that crash the engine upon initialization. The " +"following features have been temporarily disabled:" +msgstr "" +"Godot abrió el proyecto en modo de recuperación, que es un modo especial que " +"puede ayudar a recuperar proyectos que hacen que el motor se bloquee al " +"inicializarse. Las siguientes características han sido deshabilitadas " +"temporalmente:" + +msgid "Tool scripts" +msgstr "Scripts de Herramienta" + +msgid "Editor plugins" +msgstr "Plugins del Editor" + +msgid "GDExtension addons" +msgstr "Complementos GDExtension" + +msgid "Automatic scene restoring" +msgstr "Restauración automática de escenas" + +msgid "" +"If the project cannot be opened outside of this mode, then it's very likely " +"any of these components is preventing this project from launching. This mode " +"is intended only for basic editing to troubleshoot such issues, and therefore " +"it is not possible to run a project in this mode." +msgstr "" +"Si el proyecto no se puede abrir fuera de este modo, es muy probable que " +"alguno de estos componentes esté impidiendo que el proyecto se inicie. Este " +"modo está destinado solo para edición básica con el fin de solucionar " +"problemas, por lo que no es posible ejecutar un proyecto en este modo." + +msgid "" +"To disable Recovery Mode, reload the project by pressing the Reload button " +"next to the Recovery Mode banner, or by reopening the project normally." +msgstr "" +"Para deshabilitar el modo de recuperación, recarga el proyecto presionando el " +"botón de recarga junto al banner de Modo de Recuperación, o vuelve a abrir el " +"proyecto normalmente." + +msgid "Disable recovery mode and reload the project." +msgstr "Deshabilita el modo de recuperación y recarga el proyecto." + +msgid "Recovery Mode is enabled. Click for more details." +msgstr "El modo de recuperación está habilitado. Haz clic para más detalles." + msgid "Run the project's default scene." msgstr "Ejecutar la escena predeterminada del proyecto." @@ -5772,12 +6453,24 @@ msgstr "Detener el proyecto actualmente en ejecución." msgid "Stop Running Project" msgstr "Detener Proyecto en Ejecución" +msgid "Run Scene in Regular Mode" +msgstr "Ejecutar escena en modo regular" + +msgid "Run Scene in XR Mode" +msgstr "Ejecutar escena en modo XR" + msgid "Run the currently edited scene." msgstr "Ejecutar la escena actualmente editada." msgid "Run Current Scene" msgstr "Ejecutar Escena Actual" +msgid "Run in Regular Mode" +msgstr "Ejecutar en Modo Normal" + +msgid "Run in XR Mode" +msgstr "Ejecutar en Modo XR" + msgid "Run a specific scene." msgstr "Ejecutar una escena específica." @@ -5843,6 +6536,15 @@ msgstr "" "Fecha de confirmación de Git: %s\n" "Haz clic para copiar la información de la versión." +msgid "" +"The root node of a scene is recommended to not be transformed, since " +"instances of the scene will usually override this. Reset the transform and " +"reload the scene to remove this warning." +msgstr "" +"Se recomienda que el nodo raíz de una escena no esté transformado, ya que las " +"instancias de la escena generalmente sobrescribirán esto. Restablece la " +"transformación y recarga la escena para eliminar esta advertencia." + msgid "Toggle Visible" msgstr "Act./Desact. Visible" @@ -5852,6 +6554,9 @@ msgstr "Desbloquear Nodo" msgid "Ungroup Children" msgstr "Desagrupar Hijos" +msgid "Revoke unique name for node \"%s\"?" +msgstr "¿Revocar nombre único para el nodo \"%s\"?" + msgid "Disable Scene Unique Name" msgstr "Desactivar Nombre Único de Escena" @@ -5861,6 +6566,16 @@ msgstr "(Conectando Desde)" msgid "Node configuration warning:" msgstr "Alerta de configuración de nodos:" +msgid "" +"This node can be accessed from anywhere within the scene it belongs to by " +"using the '%s' prefix in the node path." +msgstr "" +"Este nodo puede accederse desde cualquier lugar de la escena a la que " +"pertenece usando el prefijo '%s' en la ruta del nodo." + +msgid "Click to disable this." +msgstr "Haz clic para deshabilitar esto." + msgid "Node has one connection." msgid_plural "Node has {num} connections." msgstr[0] "El nodo tiene una conexión." @@ -5872,7 +6587,17 @@ msgstr[0] "El nodo está en este grupo:" msgstr[1] "El nodo está en los siguientes grupos:" msgid "Click to show signals dock." -msgstr "Haz clic para mostrar el dock de señales." +msgstr "Haz clic para mostrar el panel de señales." + +msgid "Click to show groups dock." +msgstr "Haz clic para mostrar el panel de grupos." + +msgid "" +"This script can run in the editor.\n" +"It is currently disabled due to recovery mode." +msgstr "" +"Este script puede ejecutarse en el editor.\n" +"Actualmente está deshabilitado debido al modo de recuperación." msgid "This script is currently running in the editor." msgstr "Este script se está ejecutando actualmente en el editor." @@ -5910,6 +6635,13 @@ msgstr "Abrir en el Editor" msgid "\"%s\" is not a known filter." msgstr "\"%s\" no es un filtro conocido." +msgid "" +"Root nodes cannot be accessed as unique names in their own scene. Instantiate " +"in another scene and set as unique name there." +msgstr "" +"Los nodos raíz no pueden ser accedidos como nombres únicos en su propia " +"escena. Instancia en otra escena y configúralo como nombre único allí." + msgid "Invalid node name, the following characters are not allowed:" msgstr "" "El nombre del nodo no es correcto, las siguientes letras no están permitidas:" @@ -5927,11 +6659,24 @@ msgid "Rename Nodes" msgstr "Renombrar Nodos" msgid "Scene Tree (Nodes):" -msgstr "Árbol de Escenas (Nodos):" +msgstr "Árbol de Escena (Nodos):" msgid "Node Configuration Warning!" msgstr "¡Alerta de configuración de nodos!" +msgid "Revoke" +msgstr "Revocar" + +msgid "Don't Ask Again" +msgstr "No Volver a Preguntar" + +msgid "" +"This dialog can also be enabled/disabled in the Editor Settings: Docks > " +"Scene Tree > Ask Before Revoking Unique Name." +msgstr "" +"Este diálogo también se puede activar/desactivar en la Configuración del " +"Editor: Paneles > Árbol de Escena > Preguntar Antes de Revocar Nombre Único." + msgid "Allowed:" msgstr "Permitido:" @@ -6109,7 +6854,13 @@ msgid "Materials" msgstr "Materiales" msgid "Selected Animation Play/Pause" -msgstr "Animación seleccionada Reproducir/Pausar" +msgstr "Reproducir/Pausar Animación Seleccionada" + +msgid "Selected Animation Stop" +msgstr "Detener Animación Seleccionada" + +msgid "Toggle Animation Skeleton Visibility" +msgstr "Act./Desact. Visibilidad del Esqueleto de Animación" msgid "Rotate Lights With Model" msgstr "Rotar Luces con el Modelo" @@ -6314,8 +7065,8 @@ msgid "" "Error importing GLSL shader file: '%s'. Open the file in the filesystem dock " "in order to see the reason." msgstr "" -"Error al importar archivo de shader GLSL: '%s'. Abre el archivo en el panel " -"del sistema de archivos para ver la razón." +"Error al importar el archivo de shader GLSL: '%s'. Abre el archivo en el " +"panel del sistema de archivos para ver la causa." msgid "" "%s: Texture detected as used as a normal map in 3D. Enabling red-green " @@ -6384,14 +7135,15 @@ msgid "" msgstr "" "Tienes cambios pendientes que aún no se han aplicado. Haz clic en Reimportar " "para aplicar los cambios realizados en las opciones de importación.\n" -"Si seleccionas otro recurso en el dock Sistema de Archivos sin hacer clic en " -"Reimportar primero, se descartarán los cambios realizados en el dock Importar." +"Seleccionar otro recurso en el panel del Sistema de Archivos sin hacer clic " +"primero en Reimportar descartará los cambios realizados en el panel de " +"Importación." msgid "Import As:" msgstr "Importar como:" msgid "Preset" -msgstr "Preset" +msgstr "Ajuste Preestablecido" msgid "Advanced..." msgstr "Avanzado..." @@ -6560,9 +7312,24 @@ msgstr "Administrar propiedades de los objetos." msgid "This cannot be undone. Are you sure?" msgstr "Esto no se puede deshacer. ¿Estás seguro?" +msgid "Add %d Translation" +msgid_plural "Add %d Translations" +msgstr[0] "Añadir %d Traducción" +msgstr[1] "Añadir %d Traducciones" + msgid "Remove Translation" msgstr "Eliminar Traducción" +msgid "Translation Resource Remap: Add %d Path" +msgid_plural "Translation Resource Remap: Add %d Paths" +msgstr[0] "Remapeo de Recursos de Traducción: Añadir %d Ruta" +msgstr[1] "Remapeo de Recursos de Traducción: Añadir %d Rutas" + +msgid "Translation Resource Remap: Add %d Remap" +msgid_plural "Translation Resource Remap: Add %d Remaps" +msgstr[0] "Remapeo de Recursos de Traducción: Añadir %d Remapeo" +msgstr[1] "Remapeo de Recursos de Traducción: Añadir %d Remapeos" + msgid "Change Resource Remap Language" msgstr "Cambiar Idioma de Remapeo de Recursos" @@ -6572,6 +7339,11 @@ msgstr "Eliminar Remapeo de Recursos" msgid "Remove Resource Remap Option" msgstr "Eliminar Opción de Remapeo de Recursos" +msgid "Add %d file for POT generation" +msgid_plural "Add %d files for POT generation" +msgstr[0] "Añadir %d archivo para la generación de POT" +msgstr[1] "Añadir %d archivos para la generación de POT" + msgid "Remove file from POT generation" msgstr "Eliminar archivo de la generación POT" @@ -6843,6 +7615,24 @@ msgstr "Rellenar Hijos Seleccionados" msgid "Invert" msgstr "Invertir" +msgid "Start of Animation" +msgstr "Inicio de la Animación" + +msgid "End of Animation" +msgstr "Fin de la Animación" + +msgid "Set Custom Timeline from Marker" +msgstr "Establecer Línea de Tiempo Personalizada desde Marcador" + +msgid "Select Markers" +msgstr "Seleccionar Marcadores" + +msgid "Start Marker" +msgstr "Marcador de Inicio" + +msgid "End Marker" +msgstr "Marcador de Fin" + msgid "Library Name:" msgstr "Nombre de la Librería:" @@ -7076,6 +7866,21 @@ msgstr "Nombre de Animación Duplicado:" msgid "Onion skinning requires a RESET animation." msgstr "Onion skinning requiere una animación RESET." +msgid "Play Animation Backwards" +msgstr "Reproducir Animación en Reversa" + +msgid "Play Animation Backwards from End" +msgstr "Reproducir Animación en Reversa desde el Final" + +msgid "Pause/Stop Animation" +msgstr "Pausar/Detener Animación" + +msgid "Play Animation from Start" +msgstr "Reproducir Animación desde el Inicio" + +msgid "Play Animation" +msgstr "Reproducir Animación" + msgid "Animation position (in seconds)." msgstr "Posición de animación (en segundos)." @@ -7151,6 +7956,12 @@ msgstr "Tiempos de Mezcla:" msgid "Next (Auto Queue):" msgstr "Siguiente (Cola Automática):" +msgid "Go to Next Keyframe" +msgstr "Ir al Siguiente Fotograma Clave" + +msgid "Go to Previous Keyframe" +msgstr "Ir al Fotograma Clave Anterior" + msgid "Toggle Animation Bottom Panel" msgstr "Act./Desact. Panel Inferior de Animación" @@ -7643,6 +8454,9 @@ msgstr "" "Alt + RMB: Muestra la lista de todos los nodos en la posición en la que se " "hizo clic, incluido el bloqueado." +msgid "(Available in all modes.)" +msgstr "(Disponible en todos los modos.)" + msgid "RMB: Add node at position clicked." msgstr "RMB: Añade un nodo en la posición seleccionada." @@ -7656,11 +8470,24 @@ msgid "Scale Mode" msgstr "Modo de Escala" msgid "Shift: Scale proportionally." -msgstr "Shift: Escala proporcional." +msgstr "Shift: Escalar proporcionalmente." msgid "Show list of selectable nodes at position clicked." msgstr "Mostrar lista de nodos seleccionables en la posición pulsada." +msgid "Click to change object's pivot." +msgstr "Haz clic para cambiar el pivote del objeto." + +msgid "Shift: Set temporary pivot." +msgstr "Shift: Establecer pivote temporal." + +msgid "" +"Click this button while holding Shift to put the temporary pivot in the " +"center of the selected nodes." +msgstr "" +"Mantén Shift al hacer clic en este botón para colocar el pivote temporal en " +"el centro de los nodos seleccionados." + msgid "Pan Mode" msgstr "Modo desplazamiento lateral" @@ -8056,10 +8883,12 @@ msgid "Change Horizontal Expand Flag" msgstr "Cambiar Marcador de Expansión Horizontal" msgid "Presets for the anchor and offset values of a Control node." -msgstr "Presets para los valores de ancla y desplazamiento de un nodo Control." +msgstr "" +"Ajustes preestablecidos para los valores de anclaje y desplazamiento de un " +"nodo Control." msgid "Anchor preset" -msgstr "Configuración preestablecida de anclaje" +msgstr "Ajuste de Anclaje" msgid "Set to Current Ratio" msgstr "Establecer a Proporción Actual" @@ -8086,7 +8915,7 @@ msgid "Vertical alignment" msgstr "Alineación Vertical" msgid "Load Curve Preset" -msgstr "Cargar Preset de Curva" +msgstr "Cargar Ajuste de Curva" msgid "Add Curve Point" msgstr "Añadir Punto de Curva" @@ -8128,10 +8957,10 @@ msgid "Debug with External Editor" msgstr "Depurar con Editor Externo" msgid "Toggle Debugger Bottom Panel" -msgstr "Act./Desact. Panel Inferior de Depuración" +msgstr "Act./Desact. Panel Inferior del Depurador" msgid "Deploy with Remote Debug" -msgstr "Exportar con Depuración Remota" +msgstr "Desplegar con Depuración Remota" msgid "" "When this option is enabled, using one-click deploy will make the executable " @@ -8141,12 +8970,12 @@ msgid "" "mobile device).\n" "You don't need to enable it to use the GDScript debugger locally." msgstr "" -"Cuando esta opción está activada, al utilizar el despliegue con un clic, el " -"ejecutable intentará conectarse a la IP de este equipo para que el proyecto " -"en ejecución pueda ser depurado.\n" -"Esta opción está pensada para ser usada en la depuración remota (normalmente " -"con un dispositivo móvil).\n" -"No es necesario habilitarla para usar el depurador GDScript localmente." +"Cuando esta opción está activada, usar el despliegue de un clic hará que el " +"ejecutable intente conectarse a la IP de esta computadora para depurar el " +"proyecto en ejecución.\n" +"Esta opción está pensada para depuración remota (típicamente con un " +"dispositivo móvil).\n" +"No es necesario activarla para usar el depurador de GDScript localmente." msgid "Small Deploy with Network Filesystem" msgstr "Despliegue Reducido con el Sistema de Archivos en Red" @@ -8247,15 +9076,14 @@ msgstr "" "cuando la opción de sistema de archivos en red está activada." msgid "Keep Debug Server Open" -msgstr "Mantener Abierto el Servidor de Depuración" +msgstr "Mantener Servidor de Depuración Abierto" msgid "" "When this option is enabled, the editor debug server will stay open and " "listen for new sessions started outside of the editor itself." msgstr "" -"Cuando esta opción está habilitada, el servidor de depuración del editor " -"permanecerá abierto y escuchará las nuevas sesiones iniciadas fuera del " -"propio editor." +"Cuando esta opción está activada, el servidor de depuración del editor " +"permanecerá abierto y escuchará nuevas sesiones iniciadas fuera del editor." msgid "Customize Run Instances..." msgstr "Personalizar instancias de ejecucción..." @@ -8276,6 +9104,13 @@ msgstr "" msgid "Edit Plugin" msgstr "Editar Plugin" +msgid "" +"Recovery mode is enabled. Enabled plugins will not run while this mode is " +"active." +msgstr "" +"El modo de recuperación está habilitado. Los complementos habilitados no se " +"ejecutarán mientras este modo esté activo." + msgid "Installed Plugins:" msgstr "Plugins Instalados:" @@ -8352,9 +9187,181 @@ msgstr "Anchos Orientales" msgid "Numeral Alignment" msgstr "Alineación de Números" +msgid "Variation" +msgstr "Variación" + msgid "Unable to preview font" msgstr "No se puede obtener una vista previa de la fuente" +msgid "Connection impossible to the game process." +msgstr "Conexión imposible al proceso del juego." + +msgid "Game starting..." +msgstr "Comenzar el Juego ..." + +msgid "Game running not embedded." +msgstr "El juego no se está ejecutando integrado." + +msgid "Press play to start the game." +msgstr "Presiona reproducir para iniciar el juego." + +msgid "Embedding is disabled." +msgstr "La incrustación está desactivada." + +msgid "" +"Game embedding not available on Wayland.\n" +"Wayland can be disabled in the Editor Settings (Run > Platforms > Linux/*BSD " +"> Prefer Wayland)." +msgstr "" +"La incrustación del juego no está disponible en Wayland.\n" +"Wayland se puede desactivar en la Configuración del Editor (Ejecutar > " +"Plataformas > Linux/BSD > Preferir Wayland)." + +msgid "Game embedding not available on your OS." +msgstr "La incrustación del juego no está disponible en tu SO." + +msgid "" +"Game embedding not available for the Display Server: '%s'.\n" +"Display Server can be modified in the Project Settings (Display > Display " +"Server > Driver)." +msgstr "" +"La incrustación del juego no está disponible para el Servidor de Pantalla: " +"'%s'.\n" +"El Servidor de Pantalla se puede modificar en la Configuración del Proyecto " +"(Pantalla > Servidor de Pantalla > Controlador)." + +msgid "" +"Game embedding not available when the game starts minimized.\n" +"Consider overriding the window mode project setting with the editor feature " +"tag to Windowed to use game embedding while leaving the exported project " +"intact." +msgstr "" +"La incrustación del juego no está disponible cuando el juego comienza " +"minimizado. \n" +"Considere anular la configuración del proyecto en modo ventana con la " +"etiqueta de función del editor en Ventana para usar la incrustación del juego " +"y dejar intacto el proyecto exportado." + +msgid "" +"Game embedding not available when the game starts maximized.\n" +"Consider overriding the window mode project setting with the editor feature " +"tag to Windowed to use game embedding while leaving the exported project " +"intact." +msgstr "" +"La incrustación del juego no está disponible cuando el juego comienza " +"maximizado.\n" +"Considere anular la configuración del proyecto en modo ventana con la " +"etiqueta de función del editor en Ventana para usar la incrustación del juego " +"y dejar intacto el proyecto exportado." + +msgid "" +"Game embedding not available when the game starts in fullscreen.\n" +"Consider overriding the window mode project setting with the editor feature " +"tag to Windowed to use game embedding while leaving the exported project " +"intact." +msgstr "" +"La incrustación del juego no está disponible cuando el juego se inicia en " +"pantalla completa.\n" +"Considere anular la configuración del proyecto en modo ventana con la " +"etiqueta de función del editor en Ventana para usar la incrustación del juego " +"y dejar intacto el proyecto exportado." + +msgid "Game embedding not available in single window mode." +msgstr "" +"La incrustación de juegos no está disponible en el modo de ventana única." + +msgid "Suspend" +msgstr "Suspender" + +msgid "Next Frame" +msgstr "Siguiente Frame" + +msgid "Input" +msgstr "Entrada" + +msgid "Allow game input." +msgstr "Permitir la entrada de juego." + +msgid "" +"Disable game input and allow to select Node2Ds, Controls, and manipulate the " +"2D camera." +msgstr "" +"Deshabilitar la entrada del juego y permitir seleccionar Node2Ds, controles y " +"manipular la cámara 2D." + +msgid "" +"Disable game input and allow to select Node3Ds and manipulate the 3D camera." +msgstr "" +"Deshabilitar la entrada del juego y permitir seleccionar Node3Ds y manipular " +"la cámara 3D." + +msgid "Toggle Selection Visibility" +msgstr "Palanca de Selección de Visibilidad" + +msgid "Alt+RMB: Show list of all nodes at position clicked." +msgstr "" +"Alt+RMB: Muestra la lista de todos los nodos en la posición en la que se hizo " +"clic." + +msgid "Override the in-game camera." +msgstr "Anular la cámara del juego." + +msgid "Camera Override Options" +msgstr "Opciones de anulación de cámara" + +msgid "Reset 2D Camera" +msgstr "Restablecer cámara 2D" + +msgid "Reset 3D Camera" +msgstr "Restablecer cámara 3D" + +msgid "Manipulate In-Game" +msgstr "Manipular en Juego" + +msgid "Manipulate From Editors" +msgstr "Manipular desde Editores" + +msgid "" +"Embedded game size is based on project settings.\n" +"The 'Keep Aspect' mode is used when the Game Workspace is smaller than the " +"desired size." +msgstr "" +"El tamaño del juego integrado se basa en la configuración del proyecto.\n" +"El modo \"Mantener aspecto\" se utiliza cuando el espacio de trabajo del " +"juego es más pequeño que el tamaño deseado." + +msgid "Keep the aspect ratio of the embedded game." +msgstr "Mantenga la relación de aspecto del juego integrado." + +msgid "Embedded game size stretches to fit the Game Workspace." +msgstr "" +"El tamaño del juego integrado se extiende para adaptarse al espacio de " +"trabajo del juego." + +msgid "Embedding Options" +msgstr "Opciones de Incrustación" + +msgid "Embed Game on Next Play" +msgstr "Incrustar Juego en la Próxima Reproducción" + +msgid "Make Game Workspace Floating on Next Play" +msgstr "" +"Hacer que el Espacio de Trabajo del Juego Flote en la Próxima Reproducción" + +msgid "Game Workspace" +msgstr "Espacio de Trabajo del Juego" + +msgid "" +"No \"%s\" library found for GDExtension: \"%s\". Possible feature flags for " +"your platform: %s" +msgstr "" +"No se encontró la biblioteca \"%s\" para GDExtension: \"%s\". Posibles " +"indicadores de características para tu plataforma: %s" + +msgid "Multiple \"%s\" libraries found for GDExtension: \"%s\": \"%s\"." +msgstr "" +"Se encontraron múltiples bibliotecas \"%s\" para GDExtension: \"%s\": \"%s\"." + msgid "Change AudioStreamPlayer3D Emission Angle" msgstr "Cambiar Ángulo de Emisión de AudioStreamPlayer3D" @@ -8386,7 +9393,7 @@ msgid "Change Separation Ray Shape Length" msgstr "Cambiar Longitud de la Forma del Rayo de Separación" msgid "Change Decal Size" -msgstr "Cambiar tamaño de Decal" +msgstr "Cambiar Tamaño de Decal" msgid "Change FogVolume Size" msgstr "Cambiar tamaño del volumen de niebla" @@ -8437,16 +9444,17 @@ msgid "Video RAM size: %s MB (%s)" msgstr "Tamaño de RAM de video: %s MB (%s)" msgid "Bake SDF" -msgstr "Bakear SDF" +msgstr "Procesar SDF" msgid "" "No faces detected during GPUParticlesCollisionSDF3D bake.\n" "Check whether there are visible meshes matching the bake mask within its " "extents." msgstr "" -"No se han detectado caras durante el bakeado de GPUParticlesCollisionSDF3D.\n" -"Comprueba si hay mallas visibles que coincidan con la máscara de bakeo dentro " -"de sus extensiones." +"No se detectaron caras durante el procesamiento de " +"GPUParticlesCollisionSDF3D.\n" +"Verifica si hay mallas visibles que coincidan con la máscara de procesamiento " +"dentro de sus límites." msgid "Select path for SDF Texture" msgstr "Seleccione la ruta para la textura SDF" @@ -8492,6 +9500,47 @@ msgstr "" "lightmaps.\n" "Guarda tu escena e inténtalo de nuevo." +msgid "" +"No meshes with lightmapping support to bake. Make sure they contain UV2 data " +"and their Global Illumination property is set to Static." +msgstr "" +"No hay mallas con soporte para lightmapping para procesar. Asegúrate de que " +"contengan datos UV2 y que su propiedad Iluminación Global esté configurada " +"como Estática." + +msgid "" +"To import a scene with lightmapping support, set Meshes > Light Baking to " +"Static Lightmaps in the Import dock." +msgstr "" +"Para importar una escena con soporte para lightmapping, establece Mallas > " +"Light Baking en Lightmaps Estáticos en el panel de Importación." + +msgid "" +"To enable lightmapping support on a primitive mesh, edit the PrimitiveMesh " +"resource in the inspector and check Add UV2." +msgstr "" +"Para habilitar el soporte de lightmapping en una malla primitiva, edita el " +"recurso PrimitiveMesh en el inspector y marca la opción Añadir UV2." + +msgid "" +"To enable lightmapping support on a CSG mesh, select the root CSG node and " +"choose CSG > Bake Mesh Instance at the top of the 3D editor viewport.\n" +"Select the generated MeshInstance3D node and choose Mesh > Unwrap UV2 for " +"Lightmap/AO at the top of the 3D editor viewport." +msgstr "" +"Para habilitar el soporte de lightmapping en una malla CSG, selecciona el " +"nodo raíz CSG y elige CSG > Procesar Instancia de Malla en la parte superior " +"del viewport del editor 3D.\n" +"Selecciona el nodo MeshInstance3D generado y elige Malla > Desenvolver UV2 " +"para Lightmap/AO en la parte superior del viewport del editor 3D." + +msgid "" +"Failed creating lightmap images. Make sure the lightmap destination path is " +"writable." +msgstr "" +"Error al crear las imágenes de lightmap. Asegúrate de que la ruta de destino " +"del lightmap tenga permisos de escritura." + msgid "No editor scene root found." msgstr "No se encontró la raíz de la escena del editor." @@ -8508,6 +9557,16 @@ msgstr "" "Aunque esto puede solucionarse aumentando el tamaño máximo de la textura, se " "recomienda dividir la escena en más objetos." +msgid "" +"Failed creating lightmap images. Make sure all meshes to bake have the " +"Lightmap Size Hint property set high enough, and the LightmapGI's Texel Scale " +"value is not too low." +msgstr "" +"Error al crear las imágenes de lightmap. Asegúrate de que todas las mallas a " +"procesar tengan la propiedad Tamaño Sugerido de Lightmap configurada lo " +"suficientemente alta, y que el valor de Escala de Texel del LightmapGI no sea " +"demasiado bajo." + msgid "" "Failed fitting a lightmap image into an atlas. This should never happen and " "should be reported." @@ -8518,11 +9577,27 @@ msgstr "" msgid "Bake Lightmaps" msgstr "Bakear Lightmaps" +msgid "Lightmap baking is not supported on this GPU (%s)." +msgstr "El procesamiento de lightmap no está soportado en esta GPU (%s)." + +msgid "Lightmaps cannot be baked on %s." +msgstr "Los lightmaps no pueden ser procesados en %s." + +msgid "" +"Lightmaps cannot be baked, as the `lightmapper_rd` module was disabled at " +"compile-time." +msgstr "" +"Los lightmaps no pueden ser procesados, ya que el módulo `lightmapper_rd` fue " +"desactivado en tiempo de compilación." + msgid "LightMap Bake" -msgstr "Bake de LightMap" +msgstr "Procesar Lightmap" msgid "Select lightmap bake file:" -msgstr "Selecciona un archivo lightmap bakeado:" +msgstr "Seleccionar archivo de procesamiento de lightmap:" + +msgid "Preview is not available for this shader mode." +msgstr "La vista previa no está disponible para este modo de shader." msgid "Couldn't create a Trimesh collision shape." msgstr "No se pudo crear una forma de colisión Triangular." @@ -8589,7 +9664,7 @@ msgid "UV Unwrap failed, mesh may not be manifold?" msgstr "Fallo del UV Unwrap ¿la malla podría no ser múltiple?" msgid "No mesh to debug." -msgstr "No hay mallas para depurar." +msgstr "No hay malla para depurar." msgid "Mesh has no UV in layer %d." msgstr "La malla no tiene UV en la capa %d." @@ -8715,6 +9790,31 @@ msgstr "" msgid "UV Channel Debug" msgstr "Depuración del Canal UV" +msgid "Create NavigationMesh" +msgstr "Crear NavigationMesh" + +msgid "" +"Before converting a rendering mesh to a navigation mesh, please verify:\n" +"\n" +"- The mesh is two-dimensional.\n" +"- The mesh has no surface overlap.\n" +"- The mesh has no self-intersection.\n" +"- The mesh surfaces have indices.\n" +"\n" +"If the mesh does not fulfill these requirements, the pathfinding will be " +"broken." +msgstr "" +"Antes de convertir una malla de renderizado en una malla de navegación, " +"verifica lo siguiente:\n" +"\n" +"- La malla es bidimensional.\n" +"- La malla no tiene superposición de superficies.\n" +"- La malla no tiene autointersecciones.\n" +"- Las superficies de la malla tienen índices.\n" +"\n" +"Si la malla no cumple con estos requisitos, el sistema de búsqueda de rutas " +"se romperá." + msgid "Remove item %d?" msgstr "¿Eliminar el elemento %d?" @@ -8832,21 +9932,57 @@ msgstr "Establecer posición inicial" msgid "Set end_position" msgstr "Establecer posición final" +msgid "Set Obstacle Vertices" +msgstr "Establecer Vértices del Obstáculo" + +msgid "Edit Obstacle (Flip Winding)" +msgstr "Editar Obstáculo (Invertir Orientación)" + +msgid "Edit Obstacle (Clear Vertices)" +msgstr "Editar Obstáculo (Limpiar Vértices)" + +msgid "Add Vertex" +msgstr "Añadir Vértice" + +msgid "Edit Vertex" +msgstr "Editar Vértice" + +msgid "Delete Vertex" +msgstr "Eliminar Vértice" + +msgid "Flip Winding" +msgstr "Invertir Orientación" + +msgid "Clear Vertices" +msgstr "Limpiar Vértices" + +msgid "Edit Obstacle (Add Vertex)" +msgstr "Editar Obstáculo (Añadir Vértice)" + +msgid "Edit Obstacle (Move Vertex)" +msgstr "Editar Obstáculo (Mover Vértice)" + +msgid "Edit Obstacle (Remove Vertex)" +msgstr "Editar Obstáculo (Eliminar Vértice)" + msgid "Please Confirm..." msgstr "Por favor, Confirma..." +msgid "Remove all vertices?" +msgstr "¿Eliminar todos los vértices?" + msgid "Create Navigation Polygon" -msgstr "Crear polígono de navegación" +msgstr "Crear Polígono de Navegación" msgid "Bake NavigationPolygon" -msgstr "Crear Polígono de Navegación" +msgstr "Procesar NavigationPolygon" msgid "" "Bakes the NavigationPolygon by first parsing the scene for source geometry " "and then creating the navigation polygon vertices and polygons." msgstr "" -"Crea NavigationPolygon analizando primero la escena en busca de geometría de " -"origen y luego creando los vértices y polígonos del polígono de navegación." +"Procesa el NavigationPolygon analizando primero la escena para obtener la " +"geometría fuente y luego crea los vértices y polígonos de navegación." msgid "Clear NavigationPolygon" msgstr "Limpiar Polígono de Navegación" @@ -8909,6 +10045,9 @@ msgstr "Ortogonal Trasera" msgid "Rear Perspective" msgstr "Perspectiva Trasera" +msgid "[auto]" +msgstr "[auto]" + msgid "X-Axis Transform." msgstr "Transformación en Eje-X." @@ -9090,7 +10229,7 @@ msgid "SpotLight3D Cluster" msgstr "Grupo de SpotLight3D" msgid "Decal Cluster" -msgstr "Grupo de Calcomanías" +msgstr "Grupo de Decals" msgid "ReflectionProbe Cluster" msgstr "Grupo de ReflectionProbe" @@ -9113,6 +10252,9 @@ msgstr "Ver Entorno" msgid "View Gizmos" msgstr "Ver Gizmos" +msgid "View Transform Gizmo" +msgstr "Ver Transformar Gizmo" + msgid "View Grid" msgstr "Ver Cuadrícula" @@ -9137,6 +10279,24 @@ msgstr "Vista Previa Cinemática" msgid "Not available when using the OpenGL renderer." msgstr "No disponible al utilizar el renderizador OpenGL." +msgid "Viewport Orbit Modifier 1" +msgstr "Modificador de Órbita del Viewport 1" + +msgid "Viewport Orbit Modifier 2" +msgstr "Modificador de Órbita del Viewport 2" + +msgid "Viewport Pan Modifier 1" +msgstr "Modificador de Desplazamiento del Viewport 1" + +msgid "Viewport Pan Modifier 2" +msgstr "Modificador de Desplazamiento del Viewport 2" + +msgid "Viewport Zoom Modifier 1" +msgstr "Modificador de Zoom del Viewport 1" + +msgid "Viewport Zoom Modifier 2" +msgstr "Modificador de Zoom del Viewport 2" + msgid "Freelook Left" msgstr "Vista Libre Izquierda" @@ -9188,6 +10348,9 @@ msgstr "Iniciar Transformación de Rotación" msgid "Begin Scale Transformation" msgstr "Iniciar Transformación de Escala" +msgid "Reposition Using Collisions" +msgstr "Reposicionar Usando Colisiones" + msgid "Toggle Camera Preview" msgstr "Alternar Vista Previa de la Cámara" @@ -9271,6 +10434,10 @@ msgstr "" "Agrupa el nodo seleccionado con sus hijos. Esto selecciona al padre cuando se " "hace clic en cualquier nodo hijo en las vistas 2D y 3D." +msgid "LMB+Drag: Measure the distance between two points in 3D space." +msgstr "" +"Clic Izq + Arrastrar: Mide la distancia entre dos puntos en el espacio 3D." + msgid "Use Local Space" msgstr "Usar Espacio Local" @@ -9527,19 +10694,19 @@ msgid "" "Make sure there is at least one MeshInstance3D node in the scene whose visual " "layers are part of the OccluderInstance3D's Bake Mask property." msgstr "" -"No hay mallas para bakear.\n" +"No hay mallas para procesar.\n" "Asegúrate de que haya al menos un nodo MeshInstance3D en la escena cuyas " -"capas visuales formen parte de la propiedad Máscara de Bakeo de " +"capas visuales formen parte de la propiedad Máscara de Procesamiento del " "OccluderInstance3D." msgid "Could not save the new occluder at the specified path:" msgstr "No se ha podido guardar el nuevo oclusor en la ruta especificada:" msgid "Bake Occluders" -msgstr "Bakear Occluders" +msgstr "Procesar Occluders" msgid "Select occluder bake file:" -msgstr "Selecciona archivo de bakeo oclusor:" +msgstr "Seleccionar archivo de procesamiento de occluders:" msgid "Convert to Parallax2D" msgstr "Convertir a Parallax2D" @@ -9589,6 +10756,9 @@ msgstr "" msgid "Generating..." msgstr "Generando..." +msgid "Loading emission mask requires ParticleProcessMaterial." +msgstr "Cargar máscara de emisión requiere ParticleProcessMaterial." + msgid "GPUParticles2D" msgstr "GPUParticles2D" @@ -9652,6 +10822,9 @@ msgstr "Fuente de Emisión:" msgid "A processor material of type 'ParticleProcessMaterial' is required." msgstr "Se requiere un material procesador de tipo 'ParticleProcessMaterial'." +msgid "Create Emission Points" +msgstr "Crear Puntos de Emisión" + msgid "GPUParticles3D" msgstr "GPUParticles3D" @@ -9694,6 +10867,9 @@ msgstr "Cerrar la Curva" msgid "Clear Curve Points" msgstr "Borrar Puntos de Curva" +msgid "Create Curve in Path2D" +msgstr "Crear Curva en Path2D" + msgid "Select Points" msgstr "Seleccionar Puntos" @@ -9733,6 +10909,9 @@ msgstr "Manipulador de Ángulos de Espejo" msgid "Mirror Handle Lengths" msgstr "Manipulador de Tamaño de Espejo" +msgid "Create Curve" +msgstr "Crear Curva" + msgid "Curve Point #" msgstr "Punto de Curva #" @@ -9772,6 +10951,12 @@ msgstr "Restablecer Punto In-Control" msgid "Reset Point Tilt" msgstr "Restablecer punto" +msgid "Toggle Open/Closed Curve" +msgstr "Alternar Curva Abierta/Cerrada" + +msgid "Create Curve in Path3D" +msgstr "Crear Curva en Path3D" + msgid "Shift+Click: Select multiple Points" msgstr "Shift + Clic: Seleccionar Múltiples Puntos" @@ -9874,6 +11059,13 @@ msgstr "" msgid "Script Name:" msgstr "Nombre del Script:" +msgid "" +"Optional. The name of the script file. If left empty, will default to the " +"subfolder name." +msgstr "" +"Opcional. El nombre del archivo de script. Si se deja vacío, se usará el " +"nombre de la subcarpeta." + msgid "Activate now?" msgstr "¿Activar ahora?" @@ -9945,9 +11137,15 @@ msgstr "Huesos" msgid "Move Points" msgstr "Mover Puntos" +msgid "%s: Rotate" +msgstr "%s: Girar" + msgid "Shift: Move All" msgstr "Shift: Mover Todo" +msgid "%s + Shift: Scale" +msgstr "%s + Shift: Escala" + msgid "Move Polygon" msgstr "Mover Polígono" @@ -10016,6 +11214,12 @@ msgstr "Paso de Cuadrícula en Y:" msgid "Sync Bones to Polygon" msgstr "Sincronizar Huesos con el Polígono" +msgid "Polygon" +msgstr "Polígono" + +msgid "Toggle Polygon Bottom Panel" +msgstr "Activar/desactivar Panel Inferior de Polígono" + msgid "Create Polygon3D" msgstr "Crear Polygon3D" @@ -10058,6 +11262,12 @@ msgstr "" "El AnimationMixer no tiene una ruta válida a un nodo raíz, así que no se " "pudieron obtener los nombres de las pistas." +msgid "(truncated)" +msgstr "(truncado)" + +msgid "Current value: " +msgstr "Valor actual: " + msgid "Can't open '%s'. The file could have been moved or deleted." msgstr "No se puede abrir '%s'. El archivo puede haber sido movido o eliminado." @@ -10184,6 +11394,9 @@ msgstr "Herramienta de Recarga Suave de Script" msgid "Copy Script Path" msgstr "Copiar Ruta del Script" +msgid "Copy Script UID" +msgstr "Copiar UID de Script" + msgid "History Previous" msgstr "Historial Anterior" @@ -10223,6 +11436,13 @@ msgstr "Ir a anterior documento editado." msgid "Go to next edited document." msgstr "Ir a siguiente documento editado." +msgid "" +"Make the script editor floating.\n" +"Right-click to open the screen selector." +msgstr "" +"Hacer que el editor de scripts flote.\n" +"Haz clic derecho para abrir el selector de pantalla." + msgid "Discard" msgstr "Descartar" @@ -10262,6 +11482,9 @@ msgstr "Texto Sin Formato" msgid "JSON" msgstr "JSON" +msgid "Markdown" +msgstr "Markdown" + msgid "Connections to method:" msgstr "Conexiones al método:" @@ -10308,6 +11531,9 @@ msgstr "No se pueden soltar nodos sin una escena abierta." msgid "Can't drop nodes because script '%s' does not inherit Node." msgstr "No se pueden soltar nodos porque el script '%s' no hereda del Nodo." +msgid "Emoji & Symbols" +msgstr "Emoji y Símbolos" + msgid "Pick Color" msgstr "Seleccionar Color" @@ -10440,12 +11666,22 @@ msgstr "Guardar Archivo" msgid "Open File in Inspector" msgstr "Abrir Archivo en el Inspector" +msgid "Inspect Native Shader Code..." +msgstr "Inspeccionar el código de sombreado nativo..." + msgid "Close File" msgstr "Cerrar Archivo" msgid "Shader Editor" msgstr "Editor de Shader" +msgid "" +"Make the shader editor floating.\n" +"Right-click to open the screen selector." +msgstr "" +"Hacer que el editor de shaders flote.\n" +"Haz clic derecho para abrir el selector de pantalla." + msgid "Toggle Shader Editor Bottom Panel" msgstr "Act./Desact. Panel Inferior del Editor de Shaders" @@ -10486,9 +11722,24 @@ msgstr "Reiniciar a la Pose de Reposo" msgid "Overwrite Rest Pose" msgstr "Sobrescribir la Pose de Reposo" +msgid "Bone Metadata" +msgstr "Metadatos de Huesos" + +msgid "Add Bone Metadata" +msgstr "Añadir Metadatos de Hueso" + msgid "Set Bone Transform" msgstr "Establecer Transformación de Hueso" +msgid "Modify metadata '%s' for bone '%s'" +msgstr "Modificar metadatos '%s' para el hueso '%s'" + +msgid "Remove metadata '%s' from bone '%s'" +msgstr "Eliminar metadatos '%s' del hueso '%s'" + +msgid "Add metadata '%s' to bone '%s'" +msgstr "Añadir metadatos '%s' al hueso '%s'" + msgid "Set Bone Rest" msgstr "Establecer Pose de Descanso de los Huesos" @@ -10508,6 +11759,12 @@ msgstr "Exportar Perfil de Esqueleto Como..." msgid "Set Bone Parentage" msgstr "Establecer Parentesco de Huesos" +msgid "Revert Bone" +msgstr "Revertir Hueso" + +msgid "Revert" +msgstr "Revertir" + msgid "Skeleton3D" msgstr "Esqueleto 3D" @@ -11588,6 +12845,9 @@ msgstr "Pintar tiles" msgid "Paste tiles" msgstr "Pegar tiles" +msgid "Selection Tool" +msgstr "Herramienta de Selección" + msgid "Shift: Draw line." msgstr "Shift: Dibujar línea." @@ -11632,6 +12892,13 @@ msgstr "Dispersión:" msgid "Tiles" msgstr "Tiles" +msgid "" +"This TileMap's TileSet has no Tile Source configured. Go to the TileSet " +"bottom panel to add one." +msgstr "" +"El TileSet de este TileMap no tiene configurada ninguna Fuente de Azulejos. " +"Ve al panel inferior de TileSet para añadir una." + msgid "Sort sources" msgstr "Ordenar recursos" @@ -12179,6 +13446,9 @@ msgstr "Eliminar fuente" msgid "Add atlas source" msgstr "Añadir fuente de atlas" +msgid "Tile Sources" +msgstr "Fuentes de Tile" + msgid "Sort Sources" msgstr "Ordenar Fuentes" @@ -12262,6 +13532,24 @@ msgstr "Propiedades de la Colección de Escenas:" msgid "Tile properties:" msgstr "Propiedades del Tile:" +msgid "Paint Tool" +msgstr "Herramienta de Pintura" + +msgid "Line Tool" +msgstr "Herramienta de Línea" + +msgid "Rect Tool" +msgstr "Herramienta de Rectángulo" + +msgid "Bucket Tool" +msgstr "Herramienta de Bote" + +msgid "Eraser Tool" +msgstr "Herramienta de Borrador" + +msgid "Picker Tool" +msgstr "Herramienta de Selección" + msgid "TileMap" msgstr "TileMap" @@ -12533,6 +13821,12 @@ msgstr "" "La vista previa 2D no puede mostrar el resultado obtenido del parámetro de " "instancia." +msgid "Copy Preview Shader Parameters From Material" +msgstr "Copiar Parámetros de Vista Previa del Shader desde el Material" + +msgid "Paste Preview Shader Parameters To Material" +msgstr "Pegar Parámetros de Vista Previa del Shader al Material" + msgid "Add Input Port" msgstr "Añadir Puerto de Entrada" @@ -12603,10 +13897,10 @@ msgid "Add Node to Visual Shader" msgstr "Añadir Nodo a Visual Shader" msgid "Add Varying to Visual Shader: %s" -msgstr "Añadir Varición al Visual Shader: %s" +msgstr "Añadir Varying al Shader Visual: %s" msgid "Remove Varying from Visual Shader: %s" -msgstr "Eliminar Variación al Visual Shader: %s" +msgstr "Eliminar Varying del Shader Visual: %s" msgid "Move VisualShader Node(s)" msgstr "Mover Nodo(s) de VisualShader" @@ -12650,6 +13944,9 @@ msgstr "Activar Reducción Automática" msgid "Enable Tint Color" msgstr "Activar Color de Tinte" +msgid "Edit Preview Parameter: %s" +msgstr "Editar Parámetro de Vista Previa: %s" + msgid "Duplicate VisualShader Node(s)" msgstr "Duplicar Nodo(s) VisualShader" @@ -12666,20 +13963,26 @@ msgid "ParameterRef Name Changed" msgstr "Nombre de ParameterRef Cambiado" msgid "Varying Name Changed" -msgstr "Cambiar Nombre de la Variación" +msgstr "Nombre de Varying Cambiado" msgid "Set Constant: %s" msgstr "Establecer Constante: %s" msgid "Invalid name for varying." -msgstr "Nombre inválido para la variación." +msgstr "Nombre inválido para el varying." msgid "Varying with that name is already exist." -msgstr "Ya existen variaciones con ese nombre." +msgstr "Ya existe un varying con ese nombre." + +msgid "Boolean type cannot be used with `%s` varying mode." +msgstr "El tipo booleano no puede usarse con el modo de varying `%s." msgid "Add Node(s) to Visual Shader" msgstr "Añadir Nodo(s) a Visual Shader" +msgid "Hold %s Key To Swap Connections" +msgstr "Mantén presionada la tecla %s para intercambiar conexiones" + msgid "Vertex" msgstr "Vértice" @@ -12702,17 +14005,20 @@ msgid "Fog" msgstr "Niebla" msgid "Manage Varyings" -msgstr "Administrar Variaciones" +msgstr "Administrar Varyings" msgid "Add Varying" -msgstr "Añadir Variación" +msgstr "Añadir Varying" msgid "Remove Varying" -msgstr "Eliminar Variación" +msgstr "Eliminar Varying" msgid "Show generated shader code." msgstr "Mostrar el código del shader generado." +msgid "Toggle shader preview." +msgstr "Alternar vista previa del shader." + msgid "Generated Shader Code" msgstr "Generar Código de Shader" @@ -12728,6 +14034,15 @@ msgstr "Insertar Nuevo Nodo" msgid "Insert New Reroute" msgstr "Insertar Nueva Redirección" +msgid "Filter Parameters" +msgstr "Filtrar Parámetros" + +msgid "Copy Parameters From Material" +msgstr "Copiar Parámetros desde el Material" + +msgid "Paste Parameters To Material" +msgstr "Pegar Parámetros al Material" + msgid "High-end node" msgstr "Nodo de gama alta" @@ -12735,10 +14050,10 @@ msgid "Create Shader Node" msgstr "Crear Nodo de Shader" msgid "Create Shader Varying" -msgstr "Crear Variación de Shader" +msgstr "Crear Varying de Shader" msgid "Delete Shader Varying" -msgstr "Eliminar Variación de Shader" +msgstr "Eliminar Varying de Shader" msgid "Color function." msgstr "Función Color." @@ -12752,12 +14067,18 @@ msgstr "Función Grayscale." msgid "Converts HSV vector to RGB equivalent." msgstr "Convierte el vector HSV a su equivalente RGB." +msgid "Converts color from linear to sRGB color space." +msgstr "Convierte el color del espacio lineal a sRGB." + msgid "Converts RGB vector to HSV equivalent." msgstr "Convierte el vector RGB en el equivalente del HSV." msgid "Sepia function." msgstr "Función Sepia." +msgid "Converts color from sRGB to linear color space." +msgstr "Convierte el color del espacio sRGB a lineal." + msgid "Burn operator." msgstr "Operador Burn." @@ -12794,6 +14115,9 @@ msgstr "Parámetro de Color." msgid "(Fragment/Light mode only) Derivative function." msgstr "(Solo modo Fragmento/Luz) Función derivativa." +msgid "Derivative function." +msgstr "Función derivada." + msgid "Returns the boolean result of the %s comparison between two parameters." msgstr "" "Devuelve el resultado booleano de la comparación de %s entre dos parámetros." @@ -12912,49 +14236,47 @@ msgid "Translated to '%s' in Godot Shading Language." msgstr "Traducido a '%s' en Godot Shading Language." msgid "'%s' input parameter for all shader modes." -msgstr "Parámetro de entrada '%s' para todos los modos de sombreado." +msgstr "Parámetro de entrada '%s' para todos los modos de shader." msgid "Input parameter." msgstr "Parámetro de entrada." msgid "'%s' input parameter for vertex and fragment shader modes." msgstr "" -"Parámetro de entrada '%s' para los modos de sombreado de vértices y " -"fragmentos." +"Parámetro de entrada '%s' para los modos de shader de vértice y fragmento." msgid "'%s' input parameter for fragment and light shader modes." msgstr "" -"Parámetro de entrada '%s' para los modos de sombreado de fragmentos y luces." +"Parámetro de entrada '%s' para los modos de shader de fragmento e iluminación." msgid "'%s' input parameter for fragment shader mode." -msgstr "Parámetro de entrada '%s' para los fragmentos en modo de sombreado." +msgstr "Parámetro de entrada '%s' para el modo de shader de fragmento." msgid "'%s' input parameter for sky shader mode." -msgstr "Parámetro de entrada '%s' para el cielo en modo de sombreado." +msgstr "Parámetro de entrada '%s' para el modo de shader de cielo." msgid "'%s' input parameter for fog shader mode." -msgstr "Parámetro de entrada '%s' para la niebla en modo de sombreado." +msgstr "Parámetro de entrada '%s' para el modo de shader de niebla." msgid "'%s' input parameter for light shader mode." -msgstr "Parámetro de entrada '%s' para luces en modo de sombreado." +msgstr "Parámetro de entrada '%s' para el modo de shader de iluminación." msgid "'%s' input parameter for vertex shader mode." -msgstr "Parámetro de entrada '%s' para vértices en modo de sombreado." +msgstr "Parámetro de entrada '%s' para el modo de shader de vértice." msgid "'%s' input parameter for start shader mode." -msgstr "Parámetro de entrada '%s' para vértices en modo de sombreado de inicio." +msgstr "Parámetro de entrada '%s' para el modo de shader inicial." msgid "'%s' input parameter for process shader mode." -msgstr "Parámetro de entrada '%s' de procesamiento del modo de sombreado." +msgstr "Parámetro de entrada '%s' para el modo de shader de proceso." msgid "'%s' input parameter for start and process shader modes." msgstr "" -"Parámetro de entrada '%s' de inicio y procesamiento de los modos de sombreado." +"Parámetro de entrada '%s' para los modos de shader inicial y de proceso." msgid "'%s' input parameter for process and collide shader modes." msgstr "" -"Parámetro de entrada %s' de procesamiento y colisión de los modos de " -"sombreado." +"Parámetro de entrada '%s' para los modos de shader de proceso y colisión." msgid "" "A node for help to multiply a position input vector by rotation using " @@ -12964,63 +14286,63 @@ msgstr "" "rotación utilizando un eje específico. Diseñado para funcionar con emisores." msgid "Float function." -msgstr "Función de coma flotante." +msgstr "Función flotante." msgid "Float operator." -msgstr "Operador de coma flotante." +msgstr "Operador flotante." msgid "Integer function." -msgstr "Función de número entero." +msgstr "Función entera." msgid "Integer operator." -msgstr "Operador de número entero." +msgstr "Operador entero." msgid "Unsigned integer function." -msgstr "Función de número entero sin signo." +msgstr "Función entera sin signo." msgid "Unsigned integer operator." -msgstr "Operador de número entero sin signo." +msgstr "Operador entero sin signo." msgid "Returns the absolute value of the parameter." msgstr "Devuelve el valor absoluto del parámetro." msgid "Returns the arc-cosine of the parameter." -msgstr "Devuelve el arco-coseno del parámetro." +msgstr "Devuelve el arcocoseno del parámetro." msgid "Returns the inverse hyperbolic cosine of the parameter." msgstr "Devuelve el coseno hiperbólico inverso del parámetro." msgid "Returns the arc-sine of the parameter." -msgstr "Devuelve el arco-seno del parámetro." +msgstr "Devuelve el arcoseno del parámetro." msgid "Returns the inverse hyperbolic sine of the parameter." msgstr "Devuelve el seno hiperbólico inverso del parámetro." msgid "Returns the arc-tangent of the parameter." -msgstr "Devuelve el arco-tangente del parámetro." +msgstr "Devuelve el arcotangente del parámetro." msgid "Returns the arc-tangent of the parameters." -msgstr "Devuelve la arcotangente de los parámetros." +msgstr "Devuelve el arcotangente de los parámetros." msgid "Returns the inverse hyperbolic tangent of the parameter." msgstr "Devuelve la tangente hiperbólica inversa del parámetro." msgid "Returns the result of bitwise NOT (~a) operation on the integer." msgstr "" -"Devuelve el resultado de la operación bitwise NOT (~a) sobre el número entero." +"Devuelve el resultado de la operación NOT a nivel de bits (~a) en el entero." msgid "" "Returns the result of bitwise NOT (~a) operation on the unsigned integer." msgstr "" -"Devuelve el resultado de la operación bitwise NOT (~a) sobre el entero sin " -"signo." +"Devuelve el resultado de la operación NOT a nivel de bits (~a) en el entero " +"sin signo." msgid "" "Finds the nearest integer that is greater than or equal to the parameter." -msgstr "Encuentra el entero más cercano que es mayor o igual al parámetro." +msgstr "Encuentra el entero más cercano que sea mayor o igual al parámetro." msgid "Constrains a value to lie between two further values." -msgstr "Limita un valor a estar entre dos valores más." +msgstr "Restringe un valor para que esté entre otros dos valores." msgid "Returns the cosine of the parameter." msgstr "Devuelve el coseno del parámetro." @@ -13035,21 +14357,27 @@ msgid "" "(Fragment/Light mode only) (Scalar) Derivative in 'x' using local " "differencing." msgstr "" -"(Solo modo Fragmento/Luz) (Escalar) Derivada en 'x' usando diferenciación " -"local." +"(Modo Fragmento/Iluminación solo) (Escalar) Derivada en 'x' usando " +"diferenciación local." msgid "" "(Fragment/Light mode only) (Scalar) Derivative in 'y' using local " "differencing." msgstr "" -"(Solo modo Fragmento/Luz) (Escalar) Derivada en 'y' usando diferenciación " -"local." +"(Modo Fragmento/Iluminación solo) (Escalar) Derivada en 'y' usando " +"diferenciación local." + +msgid "(Scalar) Derivative in 'x' using local differencing." +msgstr "(Escalar) Derivada en 'x' usando diferenciación local." + +msgid "(Scalar) Derivative in 'y' using local differencing." +msgstr "(Escalar) Derivada en 'y' usando diferenciación local." msgid "Base-e Exponential." -msgstr "Exponencial con base e." +msgstr "Exponencial Base-e." msgid "Base-2 Exponential." -msgstr "Exponencial en base 2." +msgstr "Exponencial Base-2." msgid "Finds the nearest integer less than or equal to the parameter." msgstr "Encuentra el entero más cercano menor o igual al parámetro." @@ -13064,7 +14392,7 @@ msgid "Natural logarithm." msgstr "Logaritmo natural." msgid "Base-2 logarithm." -msgstr "Logaritmo en base 2." +msgstr "Logaritmo base-2." msgid "Returns the greater of two values." msgstr "Devuelve el mayor de dos valores." @@ -13073,11 +14401,11 @@ msgid "Returns the lesser of two values." msgstr "Devuelve el menor de dos valores." msgid "Linear interpolation between two scalars." -msgstr "Interpolación lineal entre dos productos escalares." +msgstr "Interpolación lineal entre dos escalares." msgid "Performs a fused multiply-add operation (a * b + c) on scalars." msgstr "" -"Realiza una operación de multiplicación y suma fusionada (a * b + c) en " +"Realiza una operación de multiplicación-suma fusionada (a * b + c) en " "escalares." msgid "Returns the opposite value of the parameter." @@ -13097,6 +14425,9 @@ msgstr "Convierte una cantidad en grados a radianes." msgid "1.0 / scalar" msgstr "1.0 / escalar" +msgid "Remaps a value from the input range to the output range." +msgstr "Remapea un valor del rango de entrada al rango de salida." + msgid "Finds the nearest integer to the parameter." msgstr "Encuentra el número entero más cercano al parámetro." @@ -13145,6 +14476,9 @@ msgid "" msgstr "" "(Solo modo Fragmento/Luz) (Escalar) Suma de la derivada absoluta en 'x' e 'y'." +msgid "(Scalar) Sum of absolute derivative in 'x' and 'y'." +msgstr "(Escalar) Suma de la derivada absoluta en 'x' e 'y'." + msgid "Returns the tangent of the parameter." msgstr "Devuelve la tangente del parámetro." @@ -13488,6 +14822,12 @@ msgstr "" "( Solo modo Fragmento/Luz) (Vector) Derivada en 'y' usando diferenciación " "local." +msgid "(Vector) Derivative in 'x' using local differencing." +msgstr "(Vector) Derivada en 'x' usando diferenciación local." + +msgid "(Vector) Derivative in 'y' using local differencing." +msgstr "(Vector) Derivada en 'y' usando diferenciación local." + msgid "Returns the distance between two points." msgstr "Devuelve la distancia entre dos puntos." @@ -13547,6 +14887,16 @@ msgstr "" msgid "Returns the vector that points in the direction of refraction." msgstr "Devuelve el vector que apunta en la dirección de refracción." +msgid "Remaps a vector from the input range to the output range." +msgstr "Remapea un vector del rango de entrada al rango de salida." + +msgid "" +"Remaps a vector from the input range to the output range. Ranges defined with " +"scalars." +msgstr "" +"Remapea un vector del rango de entrada al rango de salida. Los rangos están " +"definidos con escalares." + msgid "" "SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" "\n" @@ -13596,6 +14946,9 @@ msgid "" msgstr "" "(Solo modo Fragmento/Luz) (Vector) Suma de la derivada absoluta en 'x' e 'y'." +msgid "(Vector) Sum of absolute derivative in 'x' and 'y'." +msgstr "(Vector) Suma de la derivada absoluta en 'x' e 'y'." + msgid "Adds 2D vector to 2D vector." msgstr "Añade un vector 2D a otro vector 2D." @@ -13681,19 +15034,19 @@ msgid "" "it later in the Expressions. You can also declare varyings, parameters and " "constants." msgstr "" -"Expresión personalizada del lenguaje de sombreador de Godot, que se coloca " -"encima del sombreador resultante. Puedes colocar varias definiciones de " -"funciones dentro y llamarlas más tarde en las Expresiones. También puedes " -"declarar variaciones, uniformes y constantes." +"Expresión personalizada en el Lenguaje de Shaders de Godot, que se coloca al " +"inicio del shader resultante. Puedes definir varias funciones dentro y " +"llamarlas más tarde en las Expresiones. También puedes declarar varyings, " +"parámetros y constantes." msgid "A reference to an existing parameter." msgstr "Una referencia a un parámetro existente." msgid "Get varying parameter." -msgstr "Obtener parámetro de variación." +msgstr "Obtener parámetro varying." msgid "Set varying parameter." -msgstr "Establecer parámetro de variación." +msgstr "Establecer parámetro varying." msgid "" "Reroute connections freely, can be used to connect multiple input ports to " @@ -13718,7 +15071,7 @@ msgid "Voxel GI data is an imported resource." msgstr "Los datos de GI de vóxel son un recurso importado." msgid "Bake VoxelGI" -msgstr "Bakear VoxelGI" +msgstr "Procesar VoxelGI" msgid "Select path for VoxelGI Data File" msgstr "Seleccionar ruta para el archivo de datos VoxelGI" @@ -13924,6 +15277,37 @@ msgstr "" "¿Eliminar todos los proyectos faltantes de la lista?\n" "El contenido de las carpetas del proyecto no se modificará." +msgid "" +"It looks like Godot crashed when opening this project the last time. If " +"you're having problems editing this project, you can try to open it in " +"Recovery Mode." +msgstr "" +"Parece que Godot se cerró inesperadamente al abrir este proyecto la última " +"vez. Si tienes problemas para editar este proyecto, puedes intentar abrirlo " +"en Modo de Recuperación." + +msgid "" +"Recovery Mode is a special mode that may help to recover projects that crash " +"the engine during initialization. This mode temporarily disables the " +"following features:" +msgstr "" +"El Modo de Recuperación es un modo especial que puede ayudar a recuperar " +"proyectos que hacen que el motor falle durante la inicialización. Este modo " +"desactiva temporalmente las siguientes características:" + +msgid "" +"This mode is intended only for basic editing to troubleshoot such issues, and " +"therefore it will not be possible to run the project during this mode. It is " +"also a good idea to make a backup of your project before proceeding." +msgstr "" +"Este modo está pensado solo para edición básica para solucionar dichos " +"problemas, y por lo tanto no será posible ejecutar el proyecto durante este " +"modo. También es recomendable hacer una copia de seguridad de tu proyecto " +"antes de continuar." + +msgid "Edit the project in Recovery Mode?" +msgstr "¿Editar el proyecto en Modo de Recuperación?" + msgid "Couldn't load project at '%s'. It may be missing or corrupted." msgstr "No se pudo cargar el proyecto en '%s'. Podría estar faltando o dañado." @@ -14014,6 +15398,9 @@ msgstr "" msgid "Edit Project" msgstr "Editar Proyecto" +msgid "Edit in recovery mode" +msgstr "Editar en modo de recuperación" + msgid "Rename Project" msgstr "Renombrar Proyecto" @@ -14039,6 +15426,12 @@ msgstr "Selecciona una carpeta para escanear" msgid "Remove All" msgstr "Eliminar Todos" +msgid "Edit normally" +msgstr "Editar normalmente" + +msgid "Edit in Recovery Mode" +msgstr "Editar en Modo de Recuperación" + msgid "Convert Full Project" msgstr "Convertir Proyecto Completo" @@ -14183,6 +15576,9 @@ msgstr "Renderizado rápido de escenas simples." msgid "Supports desktop, mobile + web platforms." msgstr "Compatible con plataformas de escritorio, móviles y web." +msgid "Least advanced 3D graphics." +msgstr "Gráficos 3D mínimos." + msgid "Intended for low-end/older devices." msgstr "Destinado para dispositivos de gama baja/antiguos." @@ -14244,6 +15640,15 @@ msgstr "Ruta de Instalación del Proyecto:" msgid "Renderer:" msgstr "Renderizador:" +msgid "" +"RenderingDevice-based methods not available on this GPU:\n" +"%s\n" +"Please use the Compatibility renderer." +msgstr "" +"Los métodos basados en RenderingDevice no están disponibles en esta GPU:\n" +"%s\n" +"Por favor, usa el renderizador de Compatibilidad." + msgid "The renderer can be changed later, but scenes may need to be adjusted." msgstr "" "El renderizador puede ser cambiado posteriormente, pero las escenas pueden " @@ -14255,6 +15660,9 @@ msgstr "Metadatos de Control de Versión:" msgid "Git" msgstr "Git" +msgid "Edit Now" +msgstr "Editar Ahora" + msgid "This project was last edited in a different Godot version: " msgstr "" "Este proyecto fue editado por última vez en una versión diferente de Godot: " @@ -14269,6 +15677,12 @@ msgstr "Error: Proyecto faltante en el sistema de archivos." msgid "Last edited timestamp" msgstr "Marca de tiempo de la última edición" +msgid "Scanning" +msgstr "Escaneando" + +msgid "Scanning for projects..." +msgstr "Escaneando proyectos…" + msgid "Missing Project" msgstr "Proyecto Faltante" @@ -14285,7 +15699,7 @@ msgid "Interface Theme" msgstr "Tema de la Interfaz" msgid "Custom preset can be further configured in the editor." -msgstr "El preset personalizado puede ser configurado aún más en el editor." +msgstr "El ajuste personalizado puede configurarse más en el editor." msgid "Display Scale" msgstr "Escala de Visualización" @@ -14666,8 +16080,8 @@ msgid "" "or create an inherited scene using Scene > New Inherited Scene... instead." msgstr "" "No se puede guardar la rama del nodo raíz como una escena instanciada.\n" -"Para crear una copia editable de la escena actual, duplícala usando el " -"sistema de archivos del menú contextual del panel\n" +"Para crear una copia editable de la escena actual, duplícala usando el menú " +"contextual del panel del Sistema de Archivos\n" "o crea una escena heredada usando Escena > Nueva Escena Heredada... en su " "lugar." @@ -14780,6 +16194,15 @@ msgstr "Reasignar a Nuevo Nodo" msgid "This operation requires a single selected node." msgstr "Esta operación requiere un solo nodo seleccionado." +msgid "Reset Position" +msgstr "Restablecer Posición" + +msgid "Reset Scale" +msgstr "Restablecer Escala" + +msgid "Reset Rotation" +msgstr "Restablecer Rotación" + msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." @@ -14796,6 +16219,9 @@ msgstr "Error al duplicar escena para guardarla." msgid "Instantiate Script" msgstr "Instanciar Script" +msgid "<unknown>" +msgstr "<desconocido>" + msgid "Sub-Resources" msgstr "Sub-Recursos" @@ -14827,8 +16253,11 @@ msgstr "" "Si está habilitado, Reemparentar a Nuevo Nodo creará el nuevo nodo en el " "centro de los nodos seleccionados, si es posible." +msgid "Hide Filtered Out Parents" +msgstr "Ocultar Padres Filtrados" + msgid "All Scene Sub-Resources" -msgstr "Todos los Subrecursos de Escena" +msgstr "Todos los Subrecursos de la Escena" msgid "" "Filter nodes by entering a part of their name, type (if prefixed with \"type:" @@ -14939,6 +16368,9 @@ msgstr "Añadir un nuevo script o ya existente al nodo seleccionado." msgid "Detach the script from the selected node." msgstr "Sustraer script del nodo seleccionado." +msgid "Extend the script of the selected node." +msgstr "Extender el script del nodo seleccionado." + msgid "Extra scene options." msgstr "Opciones de escena adicionales." @@ -14950,9 +16382,9 @@ msgid "" "every time it updates.\n" "Switch back to the Local scene tree dock to improve performance." msgstr "" -"Si está seleccionado, el panel de árbol de escena Remota provocará saltos de " -"framerate en el proyecto cada vez que se actualice.\n" -"Vuelve a seleccionar el árbol de escena Local para mejorar el rendimiento." +"Si está seleccionado, el panel del árbol de escena remoto puede causar " +"tartamudeos en el proyecto cada vez que se actualiza.\n" +"Cambia al panel del árbol de escena local para mejorar el rendimiento." msgid "Local" msgstr "Local" @@ -15190,6 +16622,47 @@ msgstr "" msgid "Restart & Upgrade" msgstr "Reiniciar y Actualizar" +msgid "Updating Script UIDs" +msgstr "Actualizando UIDs de Script" + +msgid "" +"As of Godot 4.4, scenes and resources use UIDs to reference scripts and " +"shaders.\n" +"\n" +"Normally, this update is applied to a single scene or resource once you save " +"it in Godot 4.4 for the first time. If you have a lot of scenes and/or " +"resources, doing this manually may be time-consuming. This tool will update " +"all of the project's scenes and resources at once.\n" +"\n" +"Click \"Restart & Upgrade\" to restart the editor and update all of the " +"scenes and resources in this project. Depending on the project size, it may " +"take several minutes.\n" +"\n" +"Note: Please make sure you have your project backed up before running the " +"tool, to avoid the possibility of data loss. Additionally, make sure to " +"commit all .uid files into version control (and do not add them to ignore-" +"lists like .gitignore)." +msgstr "" +"A partir de Godot 4.4, las escenas y recursos usan UIDs para referenciar " +"scripts y shaders.\n" +"\n" +"Normalmente, esta actualización se aplica a una sola escena o recurso la " +"primera vez que lo guardas en Godot 4.4. Si tienes muchas escenas y/o " +"recursos, hacerlo manualmente puede llevar mucho tiempo. Esta herramienta " +"actualizará todas las escenas y recursos del proyecto a la vez.\n" +"\n" +"Haz clic en \"Restart & Upgrade\" para reiniciar el editor y actualizar todas " +"las escenas y recursos de este proyecto. Dependiendo del tamaño del proyecto, " +"puede tardar varios minutos.\n" +"\n" +"Nota: Por favor, asegúrate de tener una copia de seguridad de tu proyecto " +"antes de ejecutar la herramienta, para evitar la posibilidad de pérdida de " +"datos. Además, asegúrate de confirmar todos los archivos .uid en el control " +"de versiones (y no los añadas a listas de ignorados como .gitignore)." + +msgid "Learn More" +msgstr "Más Información" + msgid "Make this panel floating in the screen %d." msgstr "Haz que este panel flote en pantalla %d." @@ -15203,6 +16676,67 @@ msgstr "" msgid "Select Screen" msgstr "Seleccionar Pantalla" +msgid "" +"The CSGShape3D has an empty shape.\n" +"CSGShape3D empty shapes typically occur because the mesh is not manifold.\n" +"A manifold mesh forms a solid object without gaps, holes, or loose edges.\n" +"Each edge must be a member of exactly two faces." +msgstr "" +"El CSGShape3D tiene una forma vacía.\n" +"Las formas vacías de CSGShape3D suelen ocurrir porque la malla no es " +"múltiple.\n" +"Una malla múltiple forma un objeto sólido sin huecos, agujeros o bordes " +"sueltos.\n" +"Cada arista debe ser miembro de exactamente dos caras." + +msgid "CSG operation returned an empty array." +msgstr "Operación CSG ha devuelto un array vacío." + +msgid "" +"Can not add a baked mesh as sibling for the scene root.\n" +"Move the CSG root node below a parent node." +msgstr "" +"No se puede añadir una malla procesada como hermana de la raíz de la escena.\n" +"Mueve el nodo raíz CSG bajo un nodo padre." + +msgid "CSG operation returned an empty mesh." +msgstr "Operación CSG ha devuelto una malla vacía." + +msgid "Create baked CSGShape3D Mesh Instance" +msgstr "Crear Instancia de Malla CSGShape3D Procesada" + +msgid "" +"Can not add a baked collision shape as sibling for the scene root.\n" +"Move the CSG root node below a parent node." +msgstr "" +"No se puede añadir una forma de colisión procesada como hermana de la raíz de " +"la escena.\n" +"Mueve el nodo raíz CSG bajo un nodo padre." + +msgid "CSG operation returned an empty shape." +msgstr "Operación CSG ha devuelto una forma vacía." + +msgid "Create baked CSGShape3D Collision Shape" +msgstr "Crear Forma de Colisión CSGShape3D Procesada" + +msgid "CSG" +msgstr "CSG" + +msgid "Bake Mesh Instance" +msgstr "Procesar Instancia de Malla" + +msgid "Bake Collision Shape" +msgstr "Procesar Forma de Colisión" + +msgid "Change CSG Box Size" +msgstr "Cambiar Tamaño Caja CSG" + +msgid "Change CSG Cylinder Radius" +msgstr "Cambiar Radio Cilindro CSG" + +msgid "Change CSG Cylinder Height" +msgstr "Cambiar Altura Cilindro CSG" + msgid "Change Torus Inner Radius" msgstr "Cambiar Radio Interno de Torus" @@ -15218,6 +16752,31 @@ msgstr "No se puede cambiar el tamaño del array." msgid "Step argument is zero!" msgstr "El argumento de paso es cero!" +msgid "Not a script with an instance." +msgstr "No es un script con una instancia." + +msgid "Not based on a script." +msgstr "No está basado en un script." + +msgid "Not based on a resource file." +msgstr "No está basado en un archivo de recurso." + +msgid "Invalid instance dictionary format (missing @path)." +msgstr "Formato de diccionario de instancia no válido (falta @ruta)." + +msgid "Invalid instance dictionary format (can't load script at @path)." +msgstr "" +"Formato de diccionario de instancia no válido (no se puede cargar el script " +"en @ruta)." + +msgid "Invalid instance dictionary format (invalid script at @path)." +msgstr "" +"Formato de diccionario de instancia no válido (secuencia de comandos no " +"válida en @ruta)." + +msgid "Invalid instance dictionary (invalid subclasses)." +msgstr "Diccionario de instancia inválido (subclases inválidas)." + msgid "Cannot instantiate GDScript class." msgstr "No se puede instanciar la clase GDScript." @@ -15345,6 +16904,12 @@ msgstr "Editar Eje Y" msgid "Edit Z Axis" msgstr "Editar Eje Z" +msgid "Keep Selection" +msgstr "Mantener Selección" + +msgid "Clear Rotation" +msgstr "Limpiar Rotación" + msgid "GridMap Settings" msgstr "Configuración de GridMap" @@ -15354,6 +16919,9 @@ msgstr "Seleccionar Distancia:" msgid "Selection" msgstr "Selección" +msgid "Erase" +msgstr "Borrador" + msgid "Cursor Rotate X" msgstr "Rotar Cursor X" @@ -15363,12 +16931,27 @@ msgstr "Rotar Cursor Y" msgid "Cursor Rotate Z" msgstr "Rotar Cursor Z" +msgid "" +"Change Grid Floor:\n" +"Previous Plane (%s)\n" +"Next Plane (%s)" +msgstr "" +"Cambiar el piso de la cuadrícula:\n" +"Plano anterior (%s)\n" +"Plano siguiente (%s)" + msgid "Filter Meshes" msgstr "Filtrar Mallas" msgid "Give a MeshLibrary resource to this GridMap to use its meshes." msgstr "Añade un recurso MeshLibrary a este GridMap para usar sus mallas." +msgid "GridMap" +msgstr "Mapa de Cuadrícula" + +msgid "Toggle GridMap Bottom Panel" +msgstr "Act./Desact. el panel inferior de GridMap" + msgid "All Clips" msgstr "Todos los clips" @@ -15484,7 +17067,7 @@ msgid "Denoising %d%%" msgstr "Reducción de Ruido %d%%" msgid "Begin Bake" -msgstr "Iniciar Bake" +msgstr "Iniciar Procesamiento" msgid "Preparing shaders" msgstr "Preparando shaders" @@ -15495,12 +17078,18 @@ msgstr "Desocultando geometría" msgid "Plot direct lighting" msgstr "Trazar iluminación directa" +msgid "Plot direct lighting %d%%" +msgstr "Iluminación directa de la parcela %d%%" + msgid "Integrate indirect lighting" msgstr "Integrar iluminación indirecta" msgid "Integrate indirect lighting %d%%" msgstr "Integrar iluminación indirecta %d%%" +msgid "Baking light probes" +msgstr "Procesando sondas de luz" + msgid "Integrating light probes %d%%" msgstr "Integrando sondas de luz %d%%" @@ -15520,6 +17109,20 @@ msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "" "No hay suficientes bytes para decodificar los bytes, o el formato es inválido." +msgid "" +"Unable to load .NET runtime, no compatible version was found.\n" +"Attempting to create/edit a project will lead to a crash.\n" +"\n" +"Please install the .NET SDK 8.0 or later from https://get.dot.net and restart " +"Godot." +msgstr "" +"No se puede cargar el entorno de ejecución de .NET, no se encontró ninguna " +"versión compatible.\n" +"Intentar crear o editar un proyecto provocará un bloqueo.\n" +"\n" +"Instale el SDK de .NET 8.0 o posterior desde https://get.dot.net y reinicie " +"Godot." + msgid "Failed to load .NET runtime" msgstr "Error al cargar el tiempo de ejecución .NET" @@ -15533,6 +17136,19 @@ msgstr "" msgid ".NET assemblies not found" msgstr "Ensamblados .NET no encontrados" +msgid "" +"Unable to load .NET runtime, specifically hostfxr.\n" +"Attempting to create/edit a project will lead to a crash.\n" +"\n" +"Please install the .NET SDK 8.0 or later from https://get.dot.net and restart " +"Godot." +msgstr "" +"No se puede cargar el entorno de ejecución de .NET, específicamente hostfxr.\n" +"Intentar crear o editar un proyecto provocará un bloqueo.\n" +"\n" +"Instale el SDK de .NET 8.0 o posterior desde https://get.dot.net y reinicie " +"Godot." + msgid "%d (%s)" msgstr "%d (%s)" @@ -15690,14 +17306,14 @@ msgstr "" "otro tipo." msgid "Bake NavigationMesh" -msgstr "Bake NavigationMesh" +msgstr "Procesar NavigationMesh" msgid "" "Bakes the NavigationMesh by first parsing the scene for source geometry and " "then creating the navigation mesh vertices and polygons." msgstr "" -"Cocina una malla de Navegación, primeramente tomando datos de la geometría de " -"la escena y luego creando los vértices y polígonos." +"Procesa el NavigationMesh analizando primero la escena para obtener la " +"geometría fuente y luego crea los vértices y polígonos de navegación." msgid "Clear NavigationMesh" msgstr "Limpiar Malla de Navegación" @@ -15787,6 +17403,23 @@ msgstr "Añadir acción." msgid "Remove action set." msgstr "Eliminar conjunto de acciones." +msgid "Remove binding modifier." +msgstr "Eliminar modificador de enlace." + +msgid "Remove binding modifier" +msgstr "Eliminar modificador de enlace" + +msgid "Add binding modifier" +msgstr "Añadir modificador de enlace" + +msgid "Note: modifiers will only be applied if supported on the host system." +msgstr "" +"Nota: los modificadores solo se aplicarán si son compatibles con el sistema " +"host." + +msgid "Binding modifiers for:" +msgstr "Modificadores de enlace para:" + msgid "OpenXR Action Map" msgstr "Mapa de Acción OpenXR" @@ -15796,12 +17429,21 @@ msgstr "Act./Desact. Panel Inferior de Mapa de Acción OpenXR" msgid "Remove action from interaction profile" msgstr "Eliminar acción del perfil de interacción" +msgid "Edit binding modifiers" +msgstr "Modificadores de enlaces de edición" + +msgid "Note: This interaction profile requires extension %s support." +msgstr "Nota: Este perfil de interacción requiere soporte para la extensión %s." + msgid "Add binding" msgstr "Añadir enlace" msgid "Remove binding" msgstr "Eliminar enlace" +msgid "Note: This binding path requires extension %s support." +msgstr "Nota: Esta ruta de enlace requiere soporte de la extensión %s." + msgid "Pose" msgstr "Pose" @@ -15817,6 +17459,9 @@ msgstr "Selecciona una acción" msgid "Select an interaction profile" msgstr "Seleccionar un perfil de interacción" +msgid "All interaction profiles have been added to the action map." +msgstr "Todos los perfiles de interacción se han añadido al mapa de acciones." + msgid "Choose an XR runtime." msgstr "Elige un runtime XR." @@ -15827,6 +17472,13 @@ msgstr "" "No se puede utilizar el mismo SubViewport con varias capas de composición " "OpenXR. Primero límpielo de su capa actual." +msgid "" +"Cannot set SubViewport on an OpenXR composition layer when using an Android " +"surface." +msgstr "" +"No se puede establecer SubViewport en una capa de composición de OpenXR al " +"usar una superficie de Android." + msgid "OpenXR composition layers must have an XROrigin3D node as their parent." msgstr "" "Las capas de composición de OpenXR deben tener un nodo XROrigin3D como padre." @@ -15844,6 +17496,11 @@ msgstr "" "La perforación no funcionará como se esperaba a menos que el orden de " "clasificación sea menor a cero." +msgid "OpenXR visibility mask must have an XRCamera3D node as their parent." +msgstr "" +"La máscara de visibilidad de OpenXR debe tener un nodo XRCamera3D como su " +"padre." + msgid "Package name is missing." msgstr "Falta el nombre del paquete." @@ -15874,26 +17531,30 @@ msgstr "Clave pública inválida para la expansión de APK." msgid "Invalid package name:" msgstr "Nombre de paquete inválido:" +msgid "\"Use Gradle Build\" is required to enable \"Swipe to dismiss\"." +msgstr "" +"Se requiere \"Usar Gradle Build\" para habilitar \"Deslizar para descartar\"." + msgid "\"Use Gradle Build\" must be enabled to use the plugins." msgstr "\"Use Gradle Build\" debe estar habilitado para utilizar los plugins." msgid "OpenXR requires \"Use Gradle Build\" to be enabled" -msgstr "OpenXR requiere que \"Use Gradle Build\" esté habilitado" +msgstr "OpenXR requiere que \"Usar Gradle Build\" esté habilitado" msgid "" "\"Compress Native Libraries\" is only valid when \"Use Gradle Build\" is " "enabled." msgstr "" -"\"Comprimir Librerías Nativas\" solo es válido cuando \"Usar Compilación con " -"Gradle\" está habilitado." +"\"Comprimir Librerías Nativas\" solo es válido cuando \"Usar Gradle Build\" " +"está habilitado." msgid "\"Export AAB\" is only valid when \"Use Gradle Build\" is enabled." msgstr "" -"\"Exportar AAB\" solo es válido cuando \"Use Gradle Build\" está habilitado." +"\"Exportar AAB\" solo es válido cuando \"Usar Gradle Build\" está habilitado." msgid "\"Min SDK\" can only be overridden when \"Use Gradle Build\" is enabled." msgstr "" -"\"Min SDK\" solo puede sobrescribirse cuando está activada la opción \"Use " +"\"Min SDK\" solo puede sobrescribirse cuando está activada la opción \"Usar " "Gradle Build\"." msgid "\"Min SDK\" should be a valid integer, but got \"%s\" which is invalid." @@ -15910,7 +17571,7 @@ msgstr "" msgid "" "\"Target SDK\" can only be overridden when \"Use Gradle Build\" is enabled." msgstr "" -"\"Target SDK\" solo se puede anular cuando \"Use Gradle Build\" está " +"\"Target SDK\" solo se puede anular cuando \"Usar Gradle Build\" está " "habilitado." msgid "" @@ -15922,6 +17583,21 @@ msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" "La versión \"SDK de Destino\" debe ser mayor o igual a la versión \"Min SDK\"." +msgid "\"Use Gradle Build\" must be enabled to enable \"Show In Android Tv\"." +msgstr "" +"\"Usar Gradle Build\" debe estar habilitado para activar \"Mostrar en Android " +"TV\"." + +msgid "\"Use Gradle Build\" must be enabled to enable \"Show As Launcher App\"." +msgstr "" +"\"Usar Gradle Build\" debe estar habilitado para activar \"Mostrar como " +"Aplicación de Inicio\"." + +msgid "\"Use Gradle Build\" must be enabled to disable \"Show In App Library\"." +msgstr "" +"\"Usar Gradle Build\" debe estar habilitado para desactivar \"Mostrar en la " +"Librería de Aplicaciones\"." + msgid "Select device from the list" msgstr "Seleccionar dispositivo de la lista" @@ -15951,8 +17627,27 @@ msgstr "" "Error: Hubo un problema al validar el nombre de usuario y la contraseña del " "keystore" +msgid "" +"Unable to determine the C# project's TFM, it may be incompatible. The export " +"template only supports '%s'. Make sure the project targets '%s' or consider " +"using gradle builds instead." +msgstr "" +"No se puede determinar el TFM del proyecto de C#, puede que sea incompatible. " +"La plantilla de exportación solo admite '%s'. Asegúrate de que el proyecto " +"esté dirigido a '%s' o considera usar gradle builds en su lugar." + +msgid "" +"C# project targets '%s' but the export template only supports '%s'. Consider " +"using gradle builds instead." +msgstr "" +"Proyecto de C# se dirige a '%s' pero la plantilla de exportación solo admite " +"'%s'. Considera usar gradle builds en su lugar." + msgid "Exporting to Android when using C#/.NET is experimental." -msgstr "Exportar a Android usando C#/.NET es una opción experimental." +msgstr "Exportar a Android al usar C#/.NET es experimental." + +msgid "Gradle build is not supported for the Android editor." +msgstr "Gradle build no es compatible con el editor de Android." msgid "Custom Android source template not found." msgstr "Plantilla de origen personalizada para Android no encontrada." @@ -15968,24 +17663,24 @@ msgid "" "Either Debug Keystore, Debug User AND Debug Password settings must be " "configured OR none of them." msgstr "" -"Deben configurarse los ajustes de Depuración de Claves, Depuración de " -"Usuarios Y Depuración de Contraseñas O ninguno de ellos." +"Deben configurarse el Almacén de Claves, Usuario y Contraseña de Depuración, " +"o ninguno de ellos." msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" -"Debug keystore no configurada en Configuración del Editor ni en el preset." +"Almacén de claves de depuración no configurado en la Configuración del Editor " +"ni en el ajuste preestablecido." msgid "" "Either Release Keystore, Release User AND Release Password settings must be " "configured OR none of them." msgstr "" -"Deben configurarse los ajustes de Liberación del Almacén de Claves, " -"Liberación del Usuario Y Liberación de la Contraseña O ninguno de ellos." +"Deben configurarse el Almacén de Claves, Usuario y Contraseña de Publicación, " +"o ninguno de ellos." msgid "Release keystore incorrectly configured in the export preset." msgstr "" -"Release keystore no está configurado correctamente en el preset de " -"exportación." +"Almacén de claves de publicación mal configurado en el ajuste de exportación." msgid "A valid Java SDK path is required in Editor Settings." msgstr "" @@ -16064,9 +17759,39 @@ msgstr "" msgid "Code Signing" msgstr "Firma de Código" +msgid "AAB signing is not supported" +msgstr "No se admite la firma AAB" + +msgid "Signing debug APK..." +msgstr "Firmando APK de depuración..." + +msgid "Signing release APK..." +msgstr "Firmando APK de publicación..." + msgid "Could not find keystore, unable to export." msgstr "No se pudo encontrar la keystore, no se puedo exportar." +msgid "Unable to sign apk." +msgstr "No se pudo firmar el apk." + +msgid "" +"All 'apksigner' tools located in Android SDK 'build-tools' directory failed " +"to execute. Please check that you have the correct version installed for your " +"target sdk version. The resulting APK is unsigned." +msgstr "" +"Todas las herramientas 'apksigner' ubicadas en el directorio 'build-tools' " +"del SDK de Android fallaron al ejecutarse. Verifica que tengas instalada la " +"versión correcta para tu versión de SDK objetivo. El APK resultante no está " +"firmado." + +msgid "" +"'apksigner' could not be found. Please check that the command is available in " +"the Android SDK build-tools directory. The resulting APK is unsigned." +msgstr "" +"No se pudo encontrar 'apksigner'. Verifica que el comando esté disponible en " +"el directorio build-tools del SDK de Android. El APK resultante no está " +"firmado." + msgid "Could not start apksigner executable." msgstr "No se ha podido iniciar el ejecutable apksigner." @@ -16080,6 +17805,15 @@ msgstr "" "salida: \n" "%s" +msgid "Verifying APK..." +msgstr "Verificando APK..." + +msgid "Unable to verify signed apk." +msgstr "No se puede verificar el apk firmado." + +msgid "'apksigner' verification of APK failed." +msgstr "La verificación de APK con 'apksigner' falló." + msgid "Target folder does not exist or is inaccessible: \"%s\"" msgstr "La carpeta de destino no existe o no es accesible: \"%s\"" @@ -16144,6 +17878,12 @@ msgstr "Moviendo salida" msgid "Unable to copy and rename export file:" msgstr "No se puede copiar y renombrar el archivo de exportación:" +msgid "Debug export template not found: \"%s\"." +msgstr "No se encontró la plantilla de exportación de depuración: \"%s\"." + +msgid "Release export template not found: \"%s\"." +msgstr "No se encontró la plantilla de exportación de publicación: \"%s\"." + msgid "Creating APK..." msgstr "Creando APK..." @@ -16156,9 +17896,8 @@ msgid "" "architectures in the export preset." msgstr "" "Faltan librerías en la plantilla de exportación para las arquitecturas " -"seleccionadas: %s. Por favor, crea una plantilla con todas las librerías " -"necesarias, o desmarca las arquitecturas que faltan en el preset de " -"exportación." +"seleccionadas: %s. Construye una plantilla con todas las librerías necesarias " +"o desmarca las arquitecturas faltantes en el ajuste de exportación." msgid "Adding files..." msgstr "Añadiendo archivos ..." @@ -16250,13 +17989,6 @@ msgstr "" "La librería de plantillas solicitada %s no se encontró. Podría estar ausente " "en tu archivo de plantillas." -msgid "ARM64 simulator library, generating from device library." -msgstr "" -"Biblioteca del simulador ARM64, generada desde la biblioteca del dispositivo." - -msgid "Unable to generate ARM64 simulator library." -msgstr "No se pudo generar la biblioteca del simulador ARM64." - msgid "Could not copy a file at path \"%s\" to \"%s\"." msgstr "No se pudo copiar el archivo en la ruta \"%s\" a la ruta \"%s\"." @@ -16301,6 +18033,9 @@ msgstr "La exportación a iOS con C#/.NET es experimental." msgid "Invalid additional PList content: " msgstr "Contenido adicional de PList no válido: " +msgid "Metal renderer require iOS 14+." +msgstr "El renderizador de metal requiere iOS 14+." + msgid "Identifier is missing." msgstr "Identificador faltante." @@ -16330,17 +18065,38 @@ msgid "Running failed, see editor log for details." msgstr "La ejecución falló, vea el registro del editor para más detalles." msgid "Debug Script Export" -msgstr "Exportación de Script de Depuración" +msgstr "Exportar Script de Depuración" msgid "Could not open file \"%s\"." msgstr "No se ha podido abrir el archivo \"%s\"." +msgid "" +"Mismatching custom export template executable architecture, found \"%s\", " +"expected \"%s\"." +msgstr "" +"No coincide la arquitectura del ejecutable de la plantilla de exportación " +"personalizada, se encontró \"%s\", se esperaba \"%s\"." + msgid "Debug Console Export" -msgstr "Exportación de consola de depuración" +msgstr "Exportar Consola de Depuración" msgid "Could not create console wrapper." msgstr "No se pudo crear el envoltorio de la consola." +msgid "" +"Mismatching custom debug export template executable architecture: found " +"\"%s\", expected \"%s\"." +msgstr "" +"Incompatibilidad en la arquitectura del ejecutable de la plantilla de " +"exportación personalizada de depuración: encontrado \"%s\", esperado \"%s\"." + +msgid "" +"Mismatching custom release export template executable architecture: found " +"\"%s\", expected \"%s\"." +msgstr "" +"Incompatibilidad en la arquitectura del ejecutable de la plantilla de " +"exportación personalizada: encontrado \"%s\", esperado \"%s\"." + msgid "Failed to open executable file \"%s\"." msgstr "Fallo al abrir el archivo ejecutable \"%s\"." @@ -16610,6 +18366,14 @@ msgstr "" msgid "Could not created symlink \"%s\" -> \"%s\"." msgstr "No se pudo crear el enlace simbólico \"%s\" -> \"%s\"." +msgid "" +"Unable to set Unix permissions for executable \"%s\". Use \"chmod +x\" to set " +"it after transferring the exported .app to macOS or Linux." +msgstr "" +"No se pueden establecer permisos Unix para el ejecutable \"%s\". Use \"chmod " +"+x\" para establecerlo después de transferir la aplicación exportada a macOS " +"o Linux." + msgid "Could not open \"%s\"." msgstr "No se pudo abrir \"%s\"." @@ -16812,6 +18576,13 @@ msgstr "Modificación de Recursos" msgid "Icon size \"%d\" is missing." msgstr "Falta el tamaño del icono \"%d\"." +msgid "" +"Mismatching custom export template executable architecture: found \"%s\", " +"expected \"%s\"." +msgstr "" +"Arquitectura ejecutable de plantilla de exportación personalizada no " +"coincidente: se encontró \"%s\", se esperaba \"%s\"." + msgid "Failed to rename temporary file \"%s\"." msgstr "Fallo al renombrar el archivo temporal \"%s\"." @@ -16839,8 +18610,8 @@ msgid "" "Resources\" in the export preset." msgstr "" "No se pudo iniciar el ejecutable rcedit. Configura la ruta de rcedit en la " -"Configuración del Editor (Exportar > Windows > rcedit), o deshabilita " -"\"Aplicación > Modificar Recursos\" en la configuración de exportación." +"Configuración del Editor (Exportar > Windows > rcedit), o desactiva " +"\"Aplicación > Modificar Recursos\" en el ajuste de exportación." msgid "rcedit failed to modify executable: %s." msgstr "rcedit falló al modificar el ejecutable: %s." @@ -16866,8 +18637,8 @@ msgid "" "preset." msgstr "" "No se pudo iniciar el ejecutable signtool. Configura la ruta de signtool en " -"la Configuración del Editor (Exportar > Windows > signtool), o deshabilita " -"\"Codesign\" en la configuración de exportación." +"la Configuración del Editor (Exportar > Windows > signtool), o desactiva " +"\"Firma de Código\" en el ajuste de exportación." msgid "" "Could not start osslsigncode executable. Configure signtool path in the " @@ -16875,8 +18646,8 @@ msgid "" "the export preset." msgstr "" "No se pudo iniciar el ejecutable osslsigncode. Configura la ruta de signtool " -"en la configuración del Editor (Exportar > Windows > osslsigncode), o " -"desactiva \"Codesign\" en la configuración de exportación." +"en la Configuración del Editor (Exportar > Windows > osslsigncode), o " +"desactiva \"Firma de Código\" en el ajuste de exportación." msgid "Signtool failed to sign executable: %s." msgstr "Signtool no pudo firmar el ejecutable: %s." @@ -16938,6 +18709,19 @@ msgstr "" "La animación Particles2D requiere el uso de un CanvasItemMaterial con " "\"Particles Animation\" activado." +msgid "" +"Particle trails are only available when using the Forward+ or Mobile " +"renderers." +msgstr "" +"Los rastros de partículas solo están disponibles cuando se utilizan los " +"renderizadores Forward+ o Mobile." + +msgid "" +"Particle sub-emitters are not available when using the Compatibility renderer." +msgstr "" +"Los subemisores de partículas no están disponibles cuando se utiliza el " +"renderizador de compatibilidad." + msgid "" "A texture with the shape of the light must be supplied to the \"Texture\" " "property." @@ -16968,6 +18752,22 @@ msgstr "" "La posición de inicio de NavigationLink2D debe ser diferente a la posición " "final para que sea útil." +msgid "NavigationObstacle2D does not support negative or zero scaling." +msgstr "NavigationObstacle2D no admite escala negativa o cero." + +msgid "" +"The agent radius can only be scaled uniformly. The largest value along the " +"two axes of the global scale will be used to scale the radius. This value may " +"change in unexpected ways when the node is rotated." +msgstr "" +"El radio del agente solo se puede escalar de manera uniforme. Se utilizará el " +"valor más grande a lo largo de los dos ejes de la escala global para escalar " +"el radio. Este valor puede cambiar de manera inesperada cuando se gira el " +"nodo." + +msgid "Skew has no effect on the agent radius." +msgstr "La inclinación no tiene ningún efecto sobre el radio del agente." + msgid "" "A NavigationMesh resource must be set or created for this node to work. " "Please set a property or draw a polygon." @@ -17042,6 +18842,14 @@ msgstr "" "Para que funcione CollisionShape2D se debe proporcionar una forma. Por favor, " "¡crea un recurso de forma para ello!" +msgid "" +"The CollisionShape2D node has limited editing options for polygon-based " +"shapes. Consider using a CollisionPolygon2D node instead." +msgstr "" +"El nodo CollisionShape2D tiene opciones de edición limitadas para formas " +"basadas en polígonos. Considere utilizar un nodo CollisionPolygon2D en su " +"lugar." + msgid "Node A and Node B must be PhysicsBody2Ds" msgstr "El nodo A y el nodo B deben ser PhysicsBody2D" @@ -17193,6 +19001,9 @@ msgstr "" "La animación de CPUParticles3D requiere el uso de un StandardMaterial3D cuyo " "modo Billboard esté configurado en \"Particle Billboard\"." +msgid "Decals are only available when using the Forward+ or Mobile renderers." +msgstr "Decals solo están disponibles cuando se usa Forward+ o Mobile." + msgid "" "The decal has no textures loaded into any of its texture properties, and will " "therefore not be visible." @@ -17216,10 +19027,14 @@ msgid "" "paint objects on any layer.\n" "To resolve this, enable at least one bit in the Cull Mask property." msgstr "" -"La máscara de ocultación del decal no tiene ningún bit activado, lo que " -"significa que el decal no pintará objetos en ninguna capa.\n" -"Para solucionarlo, active al menos un bit en la propiedad Máscara de " -"ocultación." +"La Cull Mask del decal no tiene bits habilitados, lo que significa que el " +"decal no pintará objetos en ninguna capa.\n" +"Para resolver esto, activa al menos un bit en la propiedad Cull Mask." + +msgid "Fog Volumes are only visible when using the Forward+ renderer." +msgstr "" +"Los volúmenes de niebla solo son visibles cuando se utiliza el renderizador " +"Forward+." msgid "" "Fog Volumes need volumetric fog to be enabled in the scene's Environment in " @@ -17263,14 +19078,23 @@ msgstr "" "Trails activadas, pero faltan uno o más materiales de malla o no están " "configurados para el renderizado de rutas." +msgid "" +"Particle sub-emitters are only available when using the Forward+ or Mobile " +"renderers." +msgstr "" +"Los sub-emisores de partículas solo están disponibles cuando se utilizan los " +"renderizadores Forward+ o Mobile." + msgid "" "The Bake Mask has no bits enabled, which means baking will not produce any " "collision for this GPUParticlesCollisionSDF3D.\n" "To resolve this, enable at least one bit in the Bake Mask property." msgstr "" -"La Máscara de Bakeo no tiene bits habilitados, lo que significa que el " -"bakeado no producirá ninguna colisión para este GPUParticlesCollisionSDF3D.\n" -"Para resolver esto, habilita al menos un bit en la propiedad Máscara de Bakeo." +"La Máscara de Procesamiento no tiene ningún bit activado, lo que significa " +"que el procesamiento no generará ninguna colisión para este " +"GPUParticlesCollisionSDF3D.\n" +"Para resolver esto, activa al menos un bit en la propiedad Máscara de " +"Procesamiento." msgid "A light's scale does not affect the visual size of the light." msgstr "La escala de una luz no afecta a su tamaño visual." @@ -17278,6 +19102,13 @@ msgstr "La escala de una luz no afecta a su tamaño visual." msgid "Projector texture only works with shadows active." msgstr "La textura del proyector sólo funciona con las sombras activas." +msgid "" +"Projector textures are not supported when using the Compatibility renderer " +"yet. Support will be added in a future release." +msgstr "" +"Las texturas de proyector no son compatibles aún con el renderizador de " +"Compatibilidad. Se añadirá soporte en una futura versión." + msgid "A SpotLight3D with an angle wider than 90 degrees cannot cast shadows." msgstr "" "Un SpotLight3D con un ángulo mayor a 90 grados no puede proyectar sombras." @@ -17306,6 +19137,47 @@ msgstr "Generando Volúmenes de Sonda" msgid "Generating Probe Acceleration Structures" msgstr "Generando estructuras de aceleración de la sonda" +msgid "" +"Lightmaps can only be baked from a GPU that supports the RenderingDevice " +"backends.\n" +"Your GPU (%s) does not support RenderingDevice, as it does not support " +"Vulkan, Direct3D 12, or Metal.\n" +"Lightmap baking will not be available on this device, although rendering " +"existing baked lightmaps will work." +msgstr "" +"Los lightmaps solo pueden procesarse desde una GPU que admita los backends de " +"RenderingDevice.\n" +"Tu GPU (%s) no admite RenderingDevice, ya que no es compatible con Vulkan, " +"Direct3D 12 o Metal.\n" +"El procesamiento de lightmaps no estará disponible en este dispositivo, " +"aunque la representación de lightmaps previamente procesados funcionará." + +msgid "" +"The lightmap has no baked shadowmask textures. Please rebake with the " +"Shadowmask Mode set to anything other than None." +msgstr "" +"El lightmap no tiene texturas de shadowmask procesadas. Por favor, vuelve a " +"procesarlo con el Modo Shadowmask configurado en cualquier opción distinta de " +"Ninguno." + +msgid "" +"Lightmaps cannot be baked on %s. Rendering existing baked lightmaps will " +"still work." +msgstr "" +"Los lightmaps no pueden procesarse en %s. La representación de lightmaps " +"previamente procesados seguirá funcionando." + +msgid "" +"Lightmaps cannot be baked, as the `lightmapper_rd` module was disabled at " +"compile-time. Rendering existing baked lightmaps will still work." +msgstr "" +"Los lightmaps no pueden procesarse, ya que el módulo `lightmapper_rd fue " +"desactivado en tiempo de compilación. La representación de lightmaps " +"previamente procesados seguirá funcionando." + +msgid "Forward axis and primary rotation axis must not be parallel." +msgstr "El eje de avance y el eje de rotación principal no deben ser paralelos." + msgid "" "The NavigationAgent3D can be used only under a Node3D inheriting parent node." msgstr "" @@ -17319,15 +19191,35 @@ msgstr "" "La posición inicial de NavigationLink3D debe ser diferente de la posición " "final para ser útil." +msgid "" +"NavigationObstacle3D only takes global rotation around the y-axis into " +"account. Rotations around the x-axis or z-axis might lead to unexpected " +"results." +msgstr "" +"NavigationObstacle3D solo tiene en cuenta la rotación global alrededor del " +"eje y. Las rotaciones alrededor del eje x o del eje z pueden generar " +"resultados inesperados." + +msgid "NavigationObstacle3D does not support negative or zero scaling." +msgstr "NavigationObstacle3D no admite escala negativa o cero." + +msgid "" +"The agent radius can only be scaled uniformly. The largest scale value along " +"the three axes will be used." +msgstr "" +"El radio del agente solo se puede escalar uniformemente. Se utilizará el " +"valor de escala más grande a lo largo de los tres ejes." + msgid "" "Occlusion culling is disabled in the Project Settings, which means occlusion " "culling won't be performed in the root viewport.\n" "To resolve this, open the Project Settings and enable Rendering > Occlusion " "Culling > Use Occlusion Culling." msgstr "" -"Occlusion Culling está desactivada en la configuración del proyecto, lo que " -"significa que la ocultación de oclusiones no se realizará en la vista raíz.\n" -"Para solucionarlo, abra la Configuración del proyecto y active Renderizado > " +"Occlusion Culling está desactivada en la Configuración del Proyecto, lo que " +"significa que la Occlusion Culling no se realizará en la ventana gráfica " +"raíz.\n" +"Para resolver esto, abre la Configuración del Proyecto y activa Renderizado > " "Occlusion Culling > Use Occlusion Culling." msgid "" @@ -17335,9 +19227,11 @@ msgid "" "occluder meshes for this OccluderInstance3D.\n" "To resolve this, enable at least one bit in the Bake Mask property." msgstr "" -"La Máscara de Bakeo no tiene bits habilitados, lo que significa que el " -"bakeado no producirá ninguna malla de oclusión para este OccluderInstance3D.\n" -"Para resolver esto, habilita al menos un bit en la propiedad Máscara de Bakeo." +"La Máscara de Procesamiento no tiene ningún bit activado, lo que significa " +"que el procesamiento no generará mallas de occlusiones para este " +"OccluderInstance3D.\n" +"Para resolver esto, activa al menos un bit en la propiedad Máscara de " +"Procesamiento." msgid "" "No occluder mesh is defined in the Occluder property, so no occlusion culling " @@ -17346,12 +19240,13 @@ msgid "" "types or bake the scene meshes by selecting the OccluderInstance3D and " "pressing the Bake Occluders button at the top of the 3D editor viewport." msgstr "" -"No se ha definido ninguna malla oclusora en la propiedad Occluder, por lo que " -"no se realizará ninguna oclusión utilizando esta OccluderInstance3D.\n" -"Para resolver esto, establezca la propiedad Occluder a uno de los tipos de " -"oclusores primitivos o precalcúle las mallas de la escena seleccionando el " -"OccluderInstance3D y pulsando el botón Bake Occluders en la parte superior de " -"la ventana del editor 3D." +"No se ha definido ninguna malla de occlusiones en la propiedad Occluder, por " +"lo que no se realizará ningún culling de occlusiones con este " +"OccluderInstance3D.\n" +"Para resolver esto, establece la propiedad Occluder en uno de los tipos " +"primitivos de occlusiones o procesa las mallas de la escena seleccionando el " +"OccluderInstance3D y presionando el botón Procesar Occluders en la parte " +"superior del viewport del editor 3D." msgid "" "The occluder mesh has less than 3 vertices, so no occlusion culling will be " @@ -17359,11 +19254,11 @@ msgid "" "To generate a proper occluder mesh, select the OccluderInstance3D then use " "the Bake Occluders button at the top of the 3D editor viewport." msgstr "" -"La malla oclusora tiene menos de 3 vértices, por lo que no se realizará " -"ninguna oclusión utilizando esta OccluderInstance3D.\n" -"Para generar una malla oclusora adecuada, seleccione la OccluderInstance3D y " -"utilice el botón Bake Occluders en la parte superior de la ventana del editor " -"3D." +"La malla del occluder tiene menos de 3 vértices, por lo que no se realizará " +"ningún culling de occlusiones con este OccluderInstance3D.\n" +"Para generar una malla de occluder adecuada, selecciona el OccluderInstance3D " +"y luego usa el botón Procesar Occluders en la parte superior del viewport del " +"editor 3D." msgid "" "The polygon occluder has less than 3 vertices, so no occlusion culling will " @@ -17538,6 +19433,9 @@ msgstr "" "La propiedad \"Remote Path\" debe apuntar a un Node3D valido o un Node3D " "derivado para que funcione." +msgid "There is no child Skeleton3D!" +msgstr "¡No hay un nodo hijo Skeleton3D!" + msgid "Skeleton3D node not set! SkeletonModifier3D must be child of Skeleton3D." msgstr "" "¡Nodo Skeleton3D no establecido! SkeletonModifier3D debe ser hijo de " @@ -17546,6 +19444,9 @@ msgstr "" msgid "This body will be ignored until you set a mesh." msgstr "Este cuerpo será ignorado hasta que se establezca una malla." +msgid "Parent node should be a SpringBoneSimulator3D node." +msgstr "El nodo padre debe ser un nodo SpringBoneSimulator3D." + msgid "" "A SpriteFrames resource must be created or set in the \"Sprite Frames\" " "property in order for AnimatedSprite3D to display frames." @@ -17612,12 +19513,19 @@ msgstr "Generando Campo de Distancia" msgid "Finishing Plot" msgstr "Finalizar Trazado" +msgid "" +"VoxelGI nodes are not supported when using the Compatibility renderer yet. " +"Support will be added in a future release." +msgstr "" +"Los nodos VoxelGI no son compatibles aún con el renderizador de " +"Compatibilidad. Se añadirá soporte en una futura versión." + msgid "" "No VoxelGI data set, so this node is disabled. Bake static objects to enable " "GI." msgstr "" -"No hay conjunto de datos VoxelGI, por lo que este nodo está deshabilitado. " -"Hornea objetos estáticos para habilitar GI." +"No hay datos de VoxelGI configurados, por lo que este nodo está desactivado. " +"Procesa objetos estáticos para habilitar GI." msgid "" "To have any visible effect, WorldEnvironment requires its \"Environment\" " @@ -17693,6 +19601,15 @@ msgstr "" msgid "Copy this constructor in a script." msgstr "Copia este constructor en un script." +msgid "Load Color Palette" +msgstr "Cargar Paleta de Color" + +msgid "Save Color Palette" +msgstr "Guardar Paleta de Color" + +msgid "Quick Load" +msgstr "Carga Rápida" + msgid "Switch between hexadecimal and code values." msgstr "Cambiar entre valores hexadecimales y de código." @@ -17738,6 +19655,16 @@ msgstr "" "La fuente actual no admite la representación de uno o más caracteres " "utilizados en el texto de esta etiqueta." +msgid "" +"The current theme style has shadows and/or rounded corners for popups, but " +"those won't display correctly if \"display/window/per_pixel_transparency/" +"allowed\" isn't enabled in the Project Settings, nor if it isn't supported." +msgstr "" +"El estilo de tema actual tiene sombras y/o esquinas redondeadas para ventanas " +"emergentes, pero no se mostrarán correctamente si \"display/window/" +"per_pixel_transparency/allowed\" no está activado en los Ajustes del " +"Proyecto, ni si no es compatible." + msgid "If \"Exp Edit\" is enabled, \"Min Value\" must be greater than 0." msgstr "Si \"Exp Edit\" está activado, \"Min Value\" debe ser mayor que 0." @@ -17925,6 +19852,12 @@ msgstr "Usar Todas las Superficies" msgid "Surface Index" msgstr "Índice de Superficie" +msgid "Division by zero error." +msgstr "Error de división por cero." + +msgid "Modulo by zero error." +msgstr "Módulo por error cero." + msgid "" "Invalid number of arguments when calling stage function '%s', which expects " "%d arguments." @@ -17946,7 +19879,7 @@ msgstr "" "El argumento %d de la función '%s' no es una variable, matriz o miembro." msgid "Varyings cannot be passed for the '%s' parameter." -msgstr "No se pueden pasar variaciones para el parámetro '%s'." +msgstr "Los varyings no pueden pasarse para el parámetro '%s'." msgid "A constant value cannot be passed for the '%s' parameter." msgstr "No se puede pasar un valor constante para el parámetro '%s'." @@ -17999,7 +19932,18 @@ msgid "Expected ',' or ')' after argument." msgstr "Se esperaba ',' o ')' después del argumento." msgid "Varying may not be assigned in the '%s' function." -msgstr "No se pueden asignar variaciones en la función '%s'." +msgstr "El varying no puede asignarse en la función '%s'." + +msgid "Varying with '%s' data type may only be assigned in the '%s' function." +msgstr "" +"El varying con tipo de dato '%s' solo puede asignarse en la función '%s'." + +msgid "" +"Varyings which assigned in '%s' function may not be reassigned in '%s' or " +"'%s'." +msgstr "" +"Los varyings asignados en la función '%s' no pueden reasignarse en '%s' o " +"'%s'." msgid "'%s' cannot be used within the '%s' processor function." msgstr "'%s' no puede ser usado dentro de la función de procesador '%s'." @@ -18059,6 +20003,11 @@ msgstr "Se espera una constante entera positiva." msgid "Invalid data type for the array." msgstr "Tipo de dato inválido para el array." +msgid "Array size mismatch. Expected %d elements (found %d)." +msgstr "" +"El tamaño de la matriz no coincide. Se esperaban %d elementos (se encontraron " +"%d)." + msgid "Expected array initialization." msgstr "Se esperaba Inicialización de array." @@ -18089,8 +20038,7 @@ msgstr "No se ha encontrado ninguna función que coincida con: '%s'." msgid "Varying '%s' cannot be passed for the '%s' parameter in that context." msgstr "" -"No se puede pasar una variación de '%s' para el parámetro '%s' en ese " -"contexto." +"El varying '%s' no puede pasarse para el parámetro '%s' en ese contexto." msgid "" "Unable to pass a multiview texture sampler as a parameter to custom function. " @@ -18113,6 +20061,12 @@ msgstr "" "Para continuar con cambios mínimos en el código añade 'uniform sampler2D %s: " "hint_%s, filter_linear_mipmap;' cerca de la parte superior de tu shader." +msgid "Varying with '%s' data type may only be used in the '%s' function." +msgstr "El varying con tipo de dato '%s' solo puede usarse en la función '%s'." + +msgid "Varying '%s' must be assigned in the '%s' function first." +msgstr "El varying '%s' debe asignarse primero en la función '%s'." + msgid "Can't use function as identifier: '%s'." msgstr "No se puede utilizar la función como identificador: '%s'." @@ -18144,11 +20098,6 @@ msgstr "Un objeto de tipo '%s' no puede ser indexado." msgid "Invalid base type for increment/decrement operator." msgstr "Tipo base no válido para el operador de incremento/decremento." -msgid "Invalid use of increment/decrement operator in a constant expression." -msgstr "" -"Uso no válido del operador de incremento/decremento en una expresión " -"constante." - msgid "Invalid token for the operator: '%s'." msgstr "Token inválido para el operador: '%s'." @@ -18202,6 +20151,9 @@ msgstr "" msgid "Expected a boolean expression." msgstr "Se esperaba una expresión booleana." +msgid "Expected an integer or unsigned integer expression." +msgstr "Se esperaba una expresión entera o entera sin signo." + msgid "Cases must be defined before default case." msgstr "Los casos deben definirse antes que el caso por defecto." @@ -18211,6 +20163,9 @@ msgstr "El caso por defecto debe definirse una sola vez." msgid "'%s' must be placed within a '%s' block." msgstr "%s' debe colocarse dentro de un bloque '%s'." +msgid "Expected an unsigned integer constant." +msgstr "Se esperaba una constante entera sin signo." + msgid "Expected an integer constant." msgstr "Se esperaba un entero constante." @@ -18223,15 +20178,24 @@ msgstr "El uso de '%s' en la función de procesador '%s' es incorrecto." msgid "Expected '%s' with an expression of type '%s'." msgstr "Se esperaba '%s' con una expresión de tipo '%s'." +msgid "'%s' function cannot return a value." +msgstr "La función '%s' no puede devolver un valor." + msgid "Expected return with an expression of type '%s'." msgstr "Se esperaba retorno con una expresión de tipo '%s'." +msgid "Use of '%s' is not supported for the '%s' shader type." +msgstr "Uso de '%s' no es compatible con el tipo de shader '%s'." + msgid "'%s' is not allowed outside of a loop or '%s' statement." msgstr "'%s' no está permitido fuera de un bucle o de una sentencia '%s'." msgid "'%s' is not allowed outside of a loop." msgstr "'%s' no está permitido fuera de un bucle." +msgid "The middle expression is expected to have a boolean data type." +msgstr "Se espera que la expresión del medio tenga un tipo de datos booleano." + msgid "The left expression is expected to be a variable declaration." msgstr "" "Se espera que la expresión de la izquierda sea una declaración de variable." @@ -18296,7 +20260,7 @@ msgstr "" "Las instancias uniforms aún no están implementadas para los shaders '%s'." msgid "Varyings cannot be used in '%s' shaders." -msgstr "Las variaciones no se pueden utilizar en los shaders '%s'." +msgstr "Los varyings no pueden usarse en los shaders '%s'." msgid "Interpolation qualifiers are not supported for uniforms." msgstr "Los parámetros de interpolación no son compatibles con los uniforms." @@ -18312,7 +20276,7 @@ msgstr "" "El modificador de interpolación '%s' no puede utilizarse con tipos booleanos." msgid "Invalid data type for varying." -msgstr "Tipo de datos inválido para la variación." +msgstr "Tipo de dato inválido para el varying." msgid "Global uniform '%s' does not exist. Create it in Project Settings." msgstr "El uniform global '%s' no existe. Créalo en Configuración del Proyecto." @@ -18351,6 +20315,15 @@ msgstr "Se esperaba ',' después de una constante entera." msgid "Expected an integer constant after ','." msgstr "Se esperaba un entero constante después de ','." +msgid "Enum hint is for '%s' only." +msgstr "La sugerencia de enumeración es solo para '%s'." + +msgid "Expected a string constant." +msgstr "Se esperaba una constante de cadena." + +msgid "Expected ',' or ')' after string constant." +msgstr "Se esperaba ',' o ')' después de la constante de cadena." + msgid "Can only specify '%s' once." msgstr "Solo se puede especificar '%s' una vez." @@ -18362,6 +20335,13 @@ msgstr "" "Los índices permitidos para las instancias de uniforms deben estar dentro del " "rango [0..%d]." +msgid "" +"'hint_normal_roughness_texture' is only available when using the Forward+ " +"renderer." +msgstr "" +"'hint_normal_roughness_texture' solo está disponible cuando se usa el " +"renderizador Forward+." + msgid "'hint_normal_roughness_texture' is not supported in '%s' shaders." msgstr "'hint_normal_roughness_texture' no está soportado en '%s' shaders." @@ -18424,7 +20404,7 @@ msgid "Shader type is already defined." msgstr "El tipo de shader ya está definido." msgid "Expected constant, function, uniform or varying." -msgstr "Constante esperada, función, uniforme o variante." +msgstr "Se esperaba una constante, función, uniform o varying." msgid "Invalid constant type (samplers are not allowed)." msgstr "Tipo de constante inválido (los samplers no están permitidos)." @@ -18448,6 +20428,9 @@ msgstr "" msgid "Expected an identifier after type." msgstr "Se esperaba un identificador después del tipo." +msgid "'%s' qualifier cannot be used with a function return type." +msgstr "El calificador '%s' no puede usarse con un tipo de retorno de función." + msgid "" "The '%s' qualifier cannot be used within a function parameter declared with " "'%s'." @@ -18479,6 +20462,18 @@ msgstr "Se esperaba un '{' al inicio de la función." msgid "Expected at least one '%s' statement in a non-void function." msgstr "Se esperaba al menos una sentencia '%s' en una función no vacía." +msgid "" +"Varying with integer data type must be declared with `%s` interpolation " +"qualifier." +msgstr "" +"El varying con tipo de dato entero debe declararse con el calificador de " +"interpolación `%s`." + +msgid "Too many varyings used in shader (%d used, maximum supported is %d)." +msgstr "" +"Demasiados varyings usados en el shader (%d usados, el máximo soportado es " +"%d)." + msgid "uniform buffer" msgstr "Buffer uniforme" @@ -18515,12 +20510,18 @@ msgstr "'##' no puede aparecer al comienzo de un macros." msgid "'##' must not appear at end of macro expansion." msgstr "'##' no puede aparecer al final de un macros." +msgid "Unmatched '%s' directive." +msgstr "Directiva '%s' no coincidente." + msgid "Missing condition." msgstr "Condición perdida." msgid "Condition evaluation error." msgstr "Error de evaluación de la condición." +msgid "Invalid '%s' directive." +msgstr "Directiva '%s' inválida." + msgid "Shader include file does not exist:" msgstr "El archivo de inclusión del shader no existe:" @@ -18540,6 +20541,9 @@ msgstr "Inclusión cíclica encontrada" msgid "Shader max include depth exceeded." msgstr "Se superó la profundidad máxima de inclusión de shaders." +msgid "Cannot use '%s' on built-in define." +msgstr "No se puede usar '%s' en una definición predefinida." + msgid "Macro expansion limit exceeded." msgstr "Se superó el límite de expansión de macros." @@ -18583,7 +20587,7 @@ msgid "The uniform '%s' is declared but never used." msgstr "El uniforme '%s' está declarado, pero no se ha usado." msgid "The varying '%s' is declared but never used." -msgstr "La variación '%s' está declarada, pero no se ha usado." +msgstr "El varying '%s' está declarado, pero nunca se usa." msgid "The local variable '%s' is declared but never used." msgstr "La variable local '%s' está declarada, pero nunca se ha usado." diff --git a/engine/editor/translations/editor/fa.po b/engine/editor/translations/editor/fa.po index 5bf593e2..fefc7f5b 100644 --- a/engine/editor/translations/editor/fa.po +++ b/engine/editor/translations/editor/fa.po @@ -57,8 +57,8 @@ msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2025-02-06 23:02+0000\n" -"Last-Translator: Ilia <iliaabbasi@outlook.com>\n" +"PO-Revision-Date: 2025-02-27 22:41+0000\n" +"Last-Translator: Atur <aturaseman9@gmail.com>\n" "Language-Team: Persian <https://hosted.weblate.org/projects/godot-engine/" "godot/fa/>\n" "Language: fa\n" @@ -66,7 +66,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 5.10-dev\n" +"X-Generator: Weblate 5.10.2-rc\n" msgid "Main Thread" msgstr "ریسهٔ اصلی" @@ -319,22 +319,22 @@ msgid "Dedent" msgstr "دندانه" msgid "Backspace" -msgstr "بک اسپیس" +msgstr "پسروب" msgid "Backspace Word" -msgstr "واژه بکاسپیس" +msgstr "پسروبش واژه" msgid "Backspace all to Left" -msgstr "بکاسپیس همه به چپ" +msgstr "پسروبش همه به چپ" msgid "Delete" msgstr "زدایش" msgid "Delete Word" -msgstr "حذف کلمه" +msgstr "زدایش واژه" msgid "Delete all to Right" -msgstr "حذف همه از راست" +msgstr "زدایش همه از راست" msgid "Caret Left" msgstr "نشان چپ" @@ -409,7 +409,7 @@ msgid "Duplicate Nodes" msgstr "گرههای تکراری" msgid "Delete Nodes" -msgstr "حذف گرهها" +msgstr "زدایش گرهها" msgid "Go Up One Level" msgstr "یک سطح بالا رفتن" @@ -423,6 +423,9 @@ msgstr "نمایش پنهانشده" msgid "Swap Input Direction" msgstr "تغییر جهت ورودی" +msgid "Start Unicode Character Input" +msgstr "آغاز درونداد نویسهٔ یونیکُد" + msgid "Invalid input %d (not passed) in expression" msgstr "ورودی نامعتبر %d (تایید نشده) در عبارت" @@ -491,16 +494,16 @@ msgid "Add Event" msgstr "افزودن رویداد" msgid "Remove Action" -msgstr "حذف عمل" +msgstr "برچیدن کنش" msgid "Cannot Remove Action" -msgstr "نمیتوان کنش را حذف کرد" +msgstr "نمیتوان کنش را برچید" msgid "Edit Event" msgstr "ویرایش رویداد" msgid "Remove Event" -msgstr "حذف رویداد" +msgstr "برچیدن رویداد" msgid "Filter by Name" msgstr "پالایش بر پایهٔ نام" @@ -575,7 +578,7 @@ msgid "Paste Key(s)" msgstr "چسباندن کلید(ها)" msgid "Delete Selected Key(s)" -msgstr "حذف کلید(های) منتخب" +msgstr "زدایش کلید(های) برگزیده" msgid "Make Handles Free" msgstr "آزاد سازی هندلها" @@ -641,22 +644,22 @@ msgid "Animation Change Call" msgstr "دگرش فراخوان پویانمایی" msgid "Animation Multi Change Transition" -msgstr "گذار چندین دگرشی پویانمایی" +msgstr "چنددگرش گذار پویانمایی" msgid "Animation Multi Change Position3D" -msgstr "نهشت سهبعدی چندین دگرشی پویانمایی" +msgstr "چنددگرش Position3D پویانمایی" msgid "Animation Multi Change Rotation3D" -msgstr "چرخش سهبعدی چندین دگرشی پویانمایی" +msgstr "چنددگرش Rotation3D پویانمایی" msgid "Animation Multi Change Scale3D" msgstr "چنددگرش Scale3D پویانمایی" msgid "Animation Multi Change Keyframe Value" -msgstr "ارزش چندین دگرشی فریم کلیدی پویانمایی" +msgstr "چنددگرش ارزش فریم کلیدی پویانمایی" msgid "Animation Multi Change Call" -msgstr "فراخوان چندین دگرشی پویانمایی" +msgstr "چنددگرش فراخوان پویانمایی" msgid "Change Animation Length" msgstr "دگرش درازای پویانمایی" @@ -664,6 +667,36 @@ msgstr "دگرش درازای پویانمایی" msgid "Change Animation Loop" msgstr "دگرش چرخهٔ پویانمایی" +msgid "" +"Can't change loop mode on animation instanced from an imported scene.\n" +"\n" +"To change this animation's loop mode, navigate to the scene's Advanced Import " +"settings and select the animation.\n" +"You can then change the loop mode from the inspector menu." +msgstr "" +"نمیتوان حالت چرخهٔ روی پویانمایی نمونهشده از صحنهٔ درونبردشده را دگرگون کرد.\n" +"\n" +"برای دگرگون کردن حالت چرخهٔ این پویانمایی، به تنظیمات درونبرد پیشرفتهٔ صحنه " +"رفته و پویانمایی را برگزینید.\n" +"آنگاه میتوانید حالت چرخه را از گزینگان بازرس دگرگون کنید." + +msgid "Can't change loop mode on animation instanced from an imported resource." +msgstr "" +"نمیتوان حالت چرخهٔ روی پویانمایی نمونهشده از بنمایهٔ درونبردشده را دگرگون کرد." + +msgid "" +"Can't change loop mode on animation embedded in another scene.\n" +"\n" +"You must open this scene and change the animation's loop mode from there." +msgstr "" +"نمیتوان حالت چرخهٔ روی پویانمایی نهادینهشده در صحنهٔ دیگری را دگرگون کرد.\n" +"\n" +"باید این صحنه را گشوده و حالت چرخهٔ پویانمایی را از آنجا دگرگون کنید." + +msgid "Can't change loop mode on animation embedded in another resource." +msgstr "" +"نمیتوان حالت چرخهٔ روی پویانمایی نهادینهشده در بنمایهٔ دیگری را دگرگون کرد." + msgid "Property Track..." msgstr "نوار ویژگی..." @@ -671,7 +704,7 @@ msgid "3D Position Track..." msgstr "نوار نهشت سهبعدی..." msgid "3D Rotation Track..." -msgstr "نوار چرخش ۳بعدی..." +msgstr "نوار چرخش سهبعدی..." msgid "3D Scale Track..." msgstr "نوار مقیاس سهبعدی..." @@ -719,7 +752,7 @@ msgid "Toggle this track on/off." msgstr "این نوار را روشن/خاموش کنید." msgid "Use Blend" -msgstr "استفاده از درآمیختن" +msgstr "بهکارگیری درآمیزی" msgid "Update Mode (How this property is set)" msgstr "حالت بهروزرسانی (نحوه تنظیم این ویژگی)" @@ -731,7 +764,7 @@ msgid "Loop Wrap Mode (Interpolate end with beginning on loop)" msgstr "حالت پوشش چرخه (میانیابی پایان با آغاز هنگام چرخه)" msgid "Remove this track." -msgstr "این نوار را بزدا." +msgstr "این نوار را برچین." msgid "Time (s):" msgstr "زمان:" @@ -785,10 +818,10 @@ msgid "Animation Clip:" msgstr "کلیپ پویانمایی:" msgid "Toggle Track Enabled" -msgstr "بکاراندازی نوار" +msgstr "بهکاراندازی نوار" msgid "Don't Use Blend" -msgstr "از Blend استفاده نکنید" +msgstr "درآمیزی را به کار نبرید" msgid "Continuous" msgstr "مستمر" @@ -836,7 +869,7 @@ msgid "Add RESET Value(s)" msgstr "اضافه کردن مقدار(های) ریست" msgid "Delete Key(s)" -msgstr "حذف کلید(ها)" +msgstr "زدایش کلید(ها)" msgid "Change Animation Update Mode" msgstr "دگرش حالت بروزرسانی پویانمایی" @@ -848,17 +881,17 @@ msgid "Change Animation Loop Mode" msgstr "دگرش حالت چرخهٔ پویانمایی" msgid "Change Animation Use Blend" -msgstr "دگرش حالت درآمیختن پویانمایی" +msgstr "دگرش حالت درآمیزی پویانمایی" msgid "" "Compressed tracks can't be edited or removed. Re-import the animation with " "compression disabled in order to edit." msgstr "" -"نوارهای فشرده را نمی توان ویرایش کرد یا زدود. پویانمایی را با ازکارانداختن " -"فشردهسازی برای ویرایش دوباره، درونبرد کنید." +"نوارهای فشرده را نمیتوان ویراست یا برچید. پویانمایی را با ازکاراندازی " +"فشردهسازی برای ویرایش، دوباره درونبرد کنید." msgid "Remove Anim Track" -msgstr "زدایش نوار پویانمایی" +msgstr "برچیدن نوار پویانمایی" msgid "Create new track for %s and insert key?" msgstr "ساخت یک نوار نو برای %s و جایگذاری کلید؟" @@ -895,7 +928,7 @@ msgid "Rearrange Tracks" msgstr "بازآرایی نوارها" msgid "Blend Shape tracks only apply to MeshInstance3D nodes." -msgstr "نوارهای درآمیزی شکل تنها برای گرههای MeshInstance3D بکار میروند." +msgstr "نوارهای درآمیزی شکل تنها برای گرههای MeshInstance3D به کار میروند." msgid "Position/Rotation/Scale 3D tracks only apply to 3D-based nodes." msgstr "" @@ -956,7 +989,7 @@ msgid "Scale" msgstr "مقیاس" msgid "BlendShape" -msgstr "بِلِندشِیپ" +msgstr "BlendShape (شکل درآمیزی)" msgid "Methods" msgstr "روشها" @@ -1001,14 +1034,14 @@ msgid "" "enable \"Save To File\" and\n" "\"Keep Custom Tracks\"." msgstr "" -"این پویانمایی متعلق به یک پردهٔ درونبرده است، بنابراین دگرشهای نوارهای " +"این پویانمایی متعلق به یک صحنهٔ درونبرده است، بنابراین دگرشهای نوارهای " "درونبرده ذخیره نخواهند شد.\n" "\n" -"برای دگرگون کردن این پویانمایی، به تنظیمات پیشرفتهٔ درونبرد پرده رفته و " +"برای دگرگون کردن این پویانمایی، به تنظیمات پیشرفتهٔ درونبرد صحنه رفته و " "پویانمایی را برگزینید.\n" "برخی گزینهها، مانند جنبش چرخهای، اینجا در دسترساند. برای افزودن نوارهای " "سفارشی، \"ذخیره در پرونده\"\n" -"و \"نگهداشتن نوارهای سفارشی\" را بکاراندازید." +"و \"نگهداشتن نوارهای سفارشی\" را بهکاراندازید." msgid "" "Some AnimationPlayerEditor's options are disabled since this is the dummy " @@ -1030,7 +1063,7 @@ msgid "Select an AnimationPlayer node to create and edit animations." msgstr "گزینش یک گرهٔ AnimationPlayer برای ساخت و ویرایش پویانماییها." msgid "Imported Scene" -msgstr "پردهٔ درونبرد شده" +msgstr "صحنهٔ درونبرد شده" msgid "Warning: Editing imported animation" msgstr "هشدار: در حال ویرایش پویانمایی درونبرد شده" @@ -1055,7 +1088,16 @@ msgstr "تنها نوارهای گرههای برگزیدهٔ درون درخ msgid "Group tracks by node or display them as plain list." msgstr "" -"نوارها را بر پایهٔ گره گروهبندی کنید یا آنها را بعنوان فهرست ساده نمایش دهید." +"نوارها را بر پایهٔ گره گروهبندی کنید یا آنها را بهعنوان فهرست ساده نمایش دهید." + +msgid "Apply snapping to timeline cursor." +msgstr "بهکاربندی چفت به خط زمانی نشانگر." + +msgid "Apply snapping to selected key(s)." +msgstr "بهکاربندی چفت به کلید(های) برگزیده." + +msgid "Apply snapping to the nearest integer FPS." +msgstr "بهکاربندی چفت به نزدیکترین شمارهٔ صحیح فریمبرثانیه." msgid "Animation step value." msgstr "ارزش گام پویانمایی." @@ -1064,7 +1106,7 @@ msgid "Seconds" msgstr "ثانیه ها" msgid "FPS" -msgstr "لحظه بر ثانیه" +msgstr "فریم بر ثانیه" msgid "Fit to panel" msgstr "جا دادن به تصویر" @@ -1112,7 +1154,7 @@ msgid "Move Last Selected Key to Cursor" msgstr "آخرین کلید انتخاب شده را به نشانگر ببر" msgid "Delete Selection" -msgstr "حذف برگزیده" +msgstr "زدایش برگزیده" msgid "Go to Next Step" msgstr "برو به گام بعد" @@ -1133,10 +1175,10 @@ msgid "Clean-Up Animation (no undo)..." msgstr "پاکسازی پویانمایی (بازگردانی نمیشود)..." msgid "Pick a node to animate:" -msgstr "گره را برای انیمیت کردن انتخاب کنید:" +msgstr "گرهای برای پویانماییدن برگزینید:" msgid "Use Bezier Curves" -msgstr "بکارگیری منحنی بِزیِر" +msgstr "بهکارگیری منحنی بِزیِر" msgid "Create RESET Track(s)" msgstr "ساخت نوار(های) بازنشانی" @@ -1163,10 +1205,10 @@ msgid "Trim keys placed exceed the animation length" msgstr "تراشیدن کلیدهایی که فراتر از درازای پویانمایی هستند" msgid "Remove invalid keys" -msgstr "زدایش کلیدهای نامعتبر" +msgstr "برچیدن کلیدهای نامعتبر" msgid "Remove unresolved and empty tracks" -msgstr "زدایش نوارهای تهی و حل نشده" +msgstr "برچیدن نوارهای تهی و حلنشده" msgid "Clean-up all animations" msgstr "پاکسازی همهٔ پویانماییها" @@ -1260,7 +1302,7 @@ msgid "Animation Baker" msgstr "پزندهٔ پویانمایی" msgid "3D Pos/Rot/Scl Track:" -msgstr "نوار نهشت/چرخش/اندازه ۳بعدی:" +msgstr "نوار نهشت/چرخش/اندازه سهبعدی:" msgid "Blendshape Track:" msgstr "نوار BlendShape:" @@ -1277,12 +1319,75 @@ msgstr "انتخاب همه/هیچ" msgid "Animation Change Keyframe Time" msgstr "دگرش زمان فریم کلیدی پویانمایی" +msgid "Marker name is read-only in the inspector." +msgstr "نام نشانگذار در بازرس تنها خواندنی است." + +msgid "" +"A marker's name can only be changed by right-clicking it in the animation " +"editor and selecting \"Rename Marker\", in order to make sure that marker " +"names are all unique." +msgstr "" +"تنها راه برای دگرگون کردن نام نشانگذارها راستکلیک کردن روی آنها در ویراستار " +"پویانمایی و گزینش «بازنامگذاری نشانگذار» است، تا از یکتا بودن همهٔ نامهایشان " +"مطمئن باشیم." + +msgid "Insert Marker..." +msgstr "جایگذاری نشانگذار..." + +msgid "Rename Marker" +msgstr "بازنامگذاری نشانگذار" + +msgid "Delete Marker(s)" +msgstr "زدایش نشانگذار(ها)" + +msgid "Show All Marker Names" +msgstr "نمایش نام همهٔ نشانگذارها" + +msgid "Marker:" +msgstr "نشانگذار:" + +msgid "Animation Move Markers" +msgstr "نشانگذارهای جابهجایی پویانمایی" + +msgid "Animation Delete Markers" +msgstr "نشانگذارهای زدایش پویانمایی" + +msgid "Marker '%s' already exists!" +msgstr "نشانگذار «%s» هماکنون وجود دارد!" + +msgid "Add Marker Key" +msgstr "افزودن کلید نشانگذار" + +msgid "Empty marker names are not allowed." +msgstr "نامهای تهی برای نشانگذارها مجاز نیستند." + +msgid "Insert Marker" +msgstr "جایگذاری نشانگذار" + +msgid "Marker Name" +msgstr "نام نشانگذار" + +msgid "Marker Color" +msgstr "رنگ نشانگذار" + msgid "Close" msgstr "بستن" msgid "Error!" msgstr "خطا!" +msgid "Change Marker Name:" +msgstr "دگرش نام نشانگذار:" + +msgid "Edit Marker Color" +msgstr "ویرایش رنگ نشانگذار" + +msgid "Multi Edit Marker Color" +msgstr "چندویرایش رنگ نشانگذار" + +msgid "Animation Change Marker Time" +msgstr "دگرش زمان نشانگذار پویانمایی" + msgid "Add Audio Track Clip" msgstr "افزودن تکهنوار شنیداری" @@ -1314,6 +1419,12 @@ msgid_plural "%d of %d matches" msgstr[0] "%d از %d مطابقت" msgstr[1] "%d از %d مطابقت ها" +msgid "Hide Replace" +msgstr "پنهان کردن جایگزین" + +msgid "Show Replace" +msgstr "نمایش جایگزین" + msgid "Find" msgstr "پیدا کردن" @@ -1339,7 +1450,7 @@ msgid "Selection Only" msgstr "تنها در قسمت انتخاب شده" msgid "Hide" -msgstr "مخفی کردن" +msgstr "پنهان کردن" msgctxt "Indentation" msgid "Spaces" @@ -1370,6 +1481,13 @@ msgstr "هشدارها" msgid "Zoom factor" msgstr "مقدار بزرگنمایی" +msgid "" +"%sMouse wheel, %s/%s: Finetune\n" +"%s: Reset" +msgstr "" +"%s: غلتک موشی، %s/%s: میزان کردن\n" +"%s: بازنشانی" + msgid "Line and column numbers." msgstr "شماره های خط و ستون." @@ -1393,7 +1511,7 @@ msgid "Attached Script" msgstr "اسکریپت پیوست شده" msgid "%s: Callback code won't be generated, please add it manually." -msgstr "%s: کد برگشتی ساخته نمیشود, لطفا خودتان اضافهاش کنید." +msgstr "%s: کد بازخوانی زایش نمیشود، خواهشمندیم آن را دستی بیفزایید." msgid "Connect to Node:" msgstr "اتصال به گره:" @@ -1411,7 +1529,7 @@ msgid "Go to Source" msgstr "برو به منبع" msgid "Scene does not contain any script." -msgstr "پرده دارای هیچ اسکریپتی نیست." +msgstr "صحنه دارای هیچ اسکریپتی نیست." msgid "Select Method" msgstr "روش انتخاب" @@ -1429,7 +1547,7 @@ msgid "Compatible Methods Only" msgstr "تنها روشهای سازگار" msgid "Remove" -msgstr "زدایش" +msgstr "برچیدن" msgid "Add Extra Call Argument:" msgstr "آرگومان اضافی فراخوانی را اضافه کن:" @@ -1492,7 +1610,7 @@ msgid "Edit Connection: '%s'" msgstr "ویرایش اتصال: '%s'" msgid "Are you sure you want to remove all connections from the \"%s\" signal?" -msgstr "آیا مطمئنید که میخواهید همهٔ اتصالات را از سیگنال \"%s\" بزدایید؟" +msgstr "آیا مطمئنید که میخواهید همهٔ اتصالها را از سیگنال «%s» برچینید؟" msgid "Signals" msgstr "سیگنالها" @@ -1501,7 +1619,7 @@ msgid "Filter Signals" msgstr "پالایش سیگنالها" msgid "Are you sure you want to remove all connections from this signal?" -msgstr "آیا مطمئنید که میخواهید همهٔ اتصالات را از این سیگنال بزدایید؟" +msgstr "آیا مطمئنید که میخواهید همهٔ اتصالها را از این سیگنال برچینید؟" msgid "Open Documentation" msgstr "باز کردن مستندات" @@ -1530,11 +1648,17 @@ msgstr "ساختن %s جدید" msgid "No results for \"%s\"." msgstr "هیچ نتیجه ای برای \"%s\" وجود ندارد." +msgid "Script path: %s" +msgstr "مسیر اسکریپت: %s" + +msgid "The script will run in the editor." +msgstr "اسکریپت درون ویراستار اجرا خواهد شد." + msgid "This class is marked as deprecated." msgstr "این کلاس به عنوان منسوخ علامت گذاری شده است." msgid "This class is marked as experimental." -msgstr "این کلاس بعنوان آزمایشی علامت گذاری شده است." +msgstr "این کلاس بهعنوان آزمایشی علامت گذاری شده است." msgid "The selected class can't be instantiated." msgstr "کلاس برگزیده نمیتواند نمونهسازی شود." @@ -1560,6 +1684,9 @@ msgstr "شرح:" msgid "Remote %s:" msgstr "ریموت%s:" +msgid "Session %d" +msgstr "نشست %d" + msgid "Debugger" msgstr "اشکال زدا" @@ -1567,7 +1694,7 @@ msgid "Debug" msgstr "اشکال زدایی" msgid "Save Branch as Scene" -msgstr "ذخیرهٔ شاخه بعنوان پرده" +msgstr "ذخیرهٔ شاخه بهعنوان صحنه" msgid "Copy Node Path" msgstr "کپی کردن مسیر node" @@ -1583,13 +1710,22 @@ msgid "" "%s\n" "Click to open the original file in the Editor." msgstr "" -"این گره از یک پرونده پردهٔ بستهبندی شده(PackedScene) نمونهسازی شده است:\n" +"این گره از یک پرونده صحنهٔ بستهبندی شده(PackedScene) نمونهسازی شده است:\n" "%s\n" "کلیک کنید تا پرونده اصلی در ویراستار باز شود." msgid "Toggle Visibility" msgstr "روشن/خاموش کردن پدیداری" +msgid "Expression to evaluate" +msgstr "عبارت برای ارزیابی" + +msgid "Clear on Run" +msgstr "پاک کردن هنگام اجرا" + +msgid "Evaluate" +msgstr "ارزیابی" + msgid "Clear" msgstr "پاک کردن" @@ -1600,7 +1736,7 @@ msgid "Syncing headers" msgstr "همگامسازی سرصفحهها" msgid "Getting remote file system" -msgstr "دریافت سیستم فایل از راه دور" +msgstr "در حال گرفتن سامانهٔ پروندهٔ از راه دور" msgid "Decompressing remote file system" msgstr "در حال باز کردن(Decompress)سیستم فایل ریموت" @@ -1609,10 +1745,10 @@ msgid "Scanning for local changes" msgstr "پوییدن برای دگرشهای بومی" msgid "Sending list of changed files:" -msgstr "ارسال فهرست فایلهای تغییر یافته:" +msgstr "در حال فرستادن فهرست پروندههای دگرگونشده:" msgid "Sending file:" -msgstr "ارسال فایل:" +msgstr "در حال فرستادن پرونده:" msgid "ms" msgstr "میلی ثانیه" @@ -1627,7 +1763,7 @@ msgid "Value" msgstr "ارزش" msgid "Pick one or more items from the list to display the graph." -msgstr "یک یا بیشتر مورد را از لیست انتخاب کنید تا نمودار نشان داده شود." +msgstr "یک یا چند مورد از فهرست برگزینید تا نمودار نشان داده شود." msgid "Stop" msgstr "توقف" @@ -1635,6 +1771,9 @@ msgstr "توقف" msgid "Start" msgstr "شروع" +msgid "Autostart" +msgstr "راهاندازی خودکار" + msgid "Measure:" msgstr "اندازه گیری:" @@ -1651,7 +1790,7 @@ msgid "Physics Frame %" msgstr "فریم % فیزیک" msgid "Inclusive" -msgstr "تمام وقت" +msgstr "تماموقت" msgid "Self" msgstr "خود" @@ -1792,11 +1931,14 @@ msgstr "گسترش همه" msgid "Collapse All" msgstr "بستن همه" +msgid "Evaluator" +msgstr "ارزیاب" + msgid "Profiler" -msgstr "پروفایلر" +msgstr "واکاو" msgid "Visual Profiler" -msgstr "پروفایلر دیداری" +msgstr "واکاو دیداری" msgid "List of Video Memory Usage by Resource:" msgstr "فهرست میزان کارکرد حافظهٔ ویدیویی بر پایهٔ بنمایه:" @@ -1835,7 +1977,7 @@ msgid "Set From Tree" msgstr "تنظیم از Tree" msgid "Export measures as CSV" -msgstr "برونبرد اندازهها بعنوان CSV" +msgstr "برونبرد اندازهها بهعنوان CSV" msgid "Search Replacement For:" msgstr "جستجوی جایگزین برای:" @@ -1847,7 +1989,7 @@ msgid "" "Scene '%s' is currently being edited.\n" "Changes will only take effect when reloaded." msgstr "" -"پردهٔ '%s' در حال ویرایش است.\n" +"صحنهٔ '%s' در حال ویرایش است.\n" "دگرشها تنها پس از بازبارکنش(reload) انجام خواهند شد." msgid "" @@ -1880,8 +2022,8 @@ msgstr "جستجو برای جایگزین بنمایه:" msgid "Open Scene" msgid_plural "Open Scenes" -msgstr[0] "گشودن پرده" -msgstr[1] "گشودن پردهها" +msgstr[0] "گشودن صحنهگشودن صحنهها" +msgstr[1] "" msgid "Open" msgstr "گشودن" @@ -1900,9 +2042,9 @@ msgid "" "Depending on your filesystem configuration, the files will either be moved to " "the system trash or deleted permanently." msgstr "" -"فایلهای انتخابی از پروژه حذف شوند؟ (قابل برگشت نیست.)\n" -"بسته به پیکربندی سیستم فایل شما، فایلها یا به سطل زباله سیستم منتقل میشوند و " -"یا برای همیشه حذف میشوند." +"پروندههای برگزیده از پروژه برچیده شوند؟ (برگشتناپذیر)\n" +"بسته به پیکربندی سامانهٔ پروندهٔ شما، پروندهها یا به زبالهدان سامانه فرستاده " +"میشوند و یا برای همیشه زدوده میشوند." msgid "" "The files being removed are required by other resources in order for them to " @@ -1911,14 +2053,20 @@ msgid "" "Depending on your filesystem configuration, the files will either be moved to " "the system trash or deleted permanently." msgstr "" -"دیگر بنمایهها برای کار کردن به پرونده هایی که در حال زدایش اند نیازمند " +"دیگر بنمایهها برای کار کردن به پروندههایی که در حال برچیده شدناند نیازمند " "هستند.\n" -"با این همه زدوده شوند؟ (برگشتناپذیر.)\n" +"با این همه برچیده شوند؟ (برگشتناپذیر.)\n" "بسته به پیکربندی سامانهٔ پروندهٔ شما، پروندهها یا به زبالهدان سامانه فرستاده " "میشوند و یا برای همیشه زدوده میشوند." msgid "Cannot remove:" -msgstr "امکان حذف وجود ندارد :" +msgstr "نمیتوان برچید:" + +msgid "Files to be deleted:" +msgstr "پروندهها برای زدوده شدن:" + +msgid "Dependencies of files to be deleted:" +msgstr "وابستگیهای پروندهها برای زدوده شدن:" msgid "Error loading:" msgstr "خطا در بارگذاری:" @@ -1956,17 +2104,29 @@ msgstr "بنمایههای بدون مالکیت آشکار:" msgid "Name cannot be empty." msgstr "نام نمیتواند تهی باشد." +msgid "File name can't end with /." +msgstr "نام پرونده نمیتواند با / پایان یابد." + +msgid "File name cannot be empty." +msgstr "نام پرونده نمیتواند تهی باشد." + msgid "Folder name cannot be empty." msgstr "نام پوشه نمیتواند خالی باشد." +msgid "File name contains invalid characters." +msgstr "نام پرونده دارای نویسههای نامعتبر است." + msgid "Folder name contains invalid characters." msgstr "نام پوشه شامل کاراکترهای نامعتبر است." msgid "File name begins with a dot." msgstr "نام پرونده با یک نقطه آغاز میشود." +msgid "Folder name begins with a dot." +msgstr "نام پوشه با یک نقطه آغاز میشود." + msgid "File with that name already exists." -msgstr "فایل با این نام در حال حاضر وجود دارد." +msgstr "پرونده با این نام هماکنون وجود دارد." msgid "Folder with that name already exists." msgstr "پوشه با این نام در حال حاضر وجود دارد." @@ -1975,6 +2135,19 @@ msgid "Using slashes in folder names will create subfolders recursively." msgstr "" "استفاده از خط مورب در نام پوشهها، زیرپوشهها را به صورت بازگشتی ایجاد میکند." +msgid "" +"Using slashes in path will create the file in subfolder, creating new " +"subfolders if necessary." +msgstr "" +"بهکارگیری اریبخط (/) در مسیر پرونده را در زیرپوشه خواهد ساخت، اگر نیاز بود " +"زیرپوشههای نو ساخته خواهند شد." + +msgid "File name is valid." +msgstr "نام پرونده معتبر است." + +msgid "Base path: %s" +msgstr "مسیر پایه: %s" + msgid "Folder name is valid." msgstr "نام پوشه معتبر است." @@ -2064,8 +2237,8 @@ msgstr "\"%s\" (در حال حاضر موجود است)" msgid "%d file conflicts with your project and won't be installed" msgid_plural "%d files conflict with your project and won't be installed" -msgstr[0] "فایل %d با پروژه شما در مغایرت است و نصب نمی شود" -msgstr[1] "فایل های %d با پروژه شما در مغایرت است و نصب نمی شود" +msgstr[0] "%d پرونده با پروژهٔ شما ناسازگار است و نصب نخواهد شد" +msgstr[1] "%d پرونده با پروژهٔ شما ناسازگار هستند و نصب نخواهند شد" msgid "This asset doesn't have a root directory, so it can't be ignored." msgstr "این دارایی پوشهدان ریشهای ندارد، پس نمیتواند نادیده گرفته شود." @@ -2083,7 +2256,7 @@ msgid "The following files failed extraction from asset \"%s\":" msgstr "ناکامی در استخراج پروندههای زیر از دارایی \"%s\":" msgid "(and %s more files)" -msgstr "(و %s دیگر فایل ها)" +msgstr "(و %s پروندهٔ بیشتر)" msgid "Asset \"%s\" installed successfully!" msgstr "دارایی \"%s\" با موفقیت نصب شد!" @@ -2095,7 +2268,8 @@ msgid "Asset:" msgstr "Asset:" msgid "Open the list of the asset contents and select which files to install." -msgstr "باز کردنه لیست محتوا Asset ها و انتخاب فایل ها را برای نصب." +msgstr "" +"فهرست محتواهای دارایی را گشوده و پروندههایی که میخواهید نصب کنید را برگزینید." msgid "Change Install Folder" msgstr "تغییر پوشه نصب" @@ -2108,10 +2282,10 @@ msgid "Ignore asset root" msgstr "نادیده گرفتن Root ه Asset" msgid "No files conflict with your project" -msgstr "هیچ فایلی با پروژه شما در مغایرت نیست" +msgstr "هیچ پروندهای با پروژهٔ شما ناسازگار نیست" msgid "Show contents of the asset and conflicting files." -msgstr "نشان دادن محتوای Asset و فایل های در مغایرت." +msgstr "نمایش محتواهای دارایی و پروندههای ناسازگار." msgid "Contents of the asset:" msgstr "محتوای Asset:" @@ -2183,7 +2357,7 @@ msgid "Reset Volume" msgstr "بازنشاندن گنجایش" msgid "Delete Effect" -msgstr "حذف جلوه" +msgstr "زدایش جلوه" msgid "Toggle Audio Bottom Panel" msgstr "خاموش/روشن کردن پنل صدای پایین" @@ -2192,7 +2366,7 @@ msgid "Add Audio Bus" msgstr "افزودن Bus صدا" msgid "Master bus can't be deleted!" -msgstr "Bus اصلی قابل حذف نیست!" +msgstr "گذرگاه اصلی زدودنی نیست!" msgid "Delete Audio Bus" msgstr "حذف Bus صدا" @@ -2207,7 +2381,7 @@ msgid "Move Audio Bus" msgstr "انتقال Bus صدا" msgid "Save Audio Bus Layout As..." -msgstr "ذخیره چیدمان باس شنیداری بعنوان..." +msgstr "ذخیره چیدمان باس شنیداری بهعنوان..." msgid "Location for New Layout..." msgstr "مکان برای چیدمان نو..." @@ -2254,6 +2428,9 @@ msgstr "چیدمان باس شنیداری" msgid "Invalid name." msgstr "نام نامعتبر." +msgid "Must be a valid Unicode identifier." +msgstr "باید شناسهٔ یونیکد معتبری باشد." + msgid "Must not collide with an existing engine class name." msgstr "نباید با نام یک کلاس وجود در موتور برخورد داشته باشد." @@ -2282,10 +2459,10 @@ msgid "Move Autoload" msgstr "جابهجایی خودبارشده" msgid "Remove Autoload" -msgstr "زدایش خودبارشده" +msgstr "برچیدن خودبارشده" msgid "Enable" -msgstr "بکاراندازی" +msgstr "بهکاراندازی" msgid "Rearrange Autoloads" msgstr "بازآراستن خودبارشدهها" @@ -2294,7 +2471,7 @@ msgid "Can't add Autoload:" msgstr "نمیتوان خودبارشده را افزود:" msgid "%s is an invalid path. File does not exist." -msgstr "%s یک مسیر نامعتبر است. فایل موجود نمیباشد." +msgstr "%s مسیری نامعتبر است. پرونده وجود ندارد." msgid "%s is an invalid path. Not in resource path (res://)." msgstr "%s مسیری نامعتبر است. در مسیر بنمایه نیست (//:res)." @@ -2315,16 +2492,16 @@ msgid "Global Variable" msgstr "متغیر عمومی" msgid "3D Engine" -msgstr "موتور ۳بعدی" +msgstr "موتور سهبعدی" msgid "2D Physics" -msgstr "فیزیک ۲بعدی" +msgstr "فیزیک دوبعدی" msgid "3D Physics" -msgstr "فیزیک ۳بعدی" +msgstr "فیزیک سهبعدی" msgid "Navigation" -msgstr "رهیابی" +msgstr "ناوبری" msgid "XR" msgstr "اکسآر" @@ -2357,7 +2534,7 @@ msgid "Multi-channel Signed Distance Field Font Rendering" msgstr "نماپردازش قلم میدان بازهٔ نشانگذاری شدهٔ چندکاناله" msgid "3D Nodes as well as RenderingServer access to 3D features." -msgstr "دسترسی گرههای ۳بعدی و همچنین RenderingServer به ویژگیهای ۳بعدی." +msgstr "دسترسی گرههای سهبعدی و همچنین RenderingServer به ویژگیهای سهبعدی." msgid "2D Physics nodes and PhysicsServer2D." msgstr "گرههای دوبعدی فیزیک و PhysicsServer2D." @@ -2366,7 +2543,7 @@ msgid "3D Physics nodes and PhysicsServer3D." msgstr "گرههای سهبعدی فیزیک و PhysicsServer3D." msgid "Navigation, both 2D and 3D." -msgstr "رهیابی، هم ۲بعدی هم ۳بعدی." +msgstr "ناوبری، هم دوبعدی هم سهبعدی." msgid "XR (AR and VR)." msgstr "اکسآر (ایآر و ویآر)." @@ -2403,12 +2580,12 @@ msgid "" "TrueType, OpenType, Type 1, and WOFF1 font format support using FreeType " "library (if disabled, WOFF2 support is also disabled)." msgstr "" -"چارچوبهای فونت TrueType، OpenType،Type ۱و WOFF ۱ بکارگیری کتابخانهٔ FreeType " +"چارچوبهای فونت TrueType، OpenType،Type ۱و WOFF ۱ بهکارگیری کتابخانهٔ FreeType " "(اگر ازکارافتاده باشد، WOFF ۲ نیز ازکارمیافتد) را پشتیبانی میکنند." msgid "WOFF2 font format support using FreeType and Brotli libraries." msgstr "" -"چارچوب فونت WOFF۲ از بکارگیری کتابخانههای Brotli و FreeType پشتیبانی میکند." +"چارچوب فونت WOFF۲ از بهکارگیری کتابخانههای Brotli و FreeType پشتیبانی میکند." msgid "" "SIL Graphite smart font technology support (supported by Advanced Text Server " @@ -2421,7 +2598,7 @@ msgid "" "Multi-channel signed distance field font rendering support using msdfgen " "library (pre-rendered MSDF fonts can be used even if this option disabled)." msgstr "" -"پشتیبانی از نماپردازش قلم میدان بازهٔ نشانگذاری شدهٔ چندکاناله با بکارگیری از " +"پشتیبانی از نماپردازش قلم میدان بازهٔ نشانگذاری شدهٔ چندکاناله با بهکارگیری از " "کتابخانهٔ msdfgen (حتا اگر این گزینه ازکارافتاده باشد، قلمهای MSDF از پیش " "نماپرداخته را میتوان بکار برد)." @@ -2482,7 +2659,7 @@ msgid "Engine Compilation Profile" msgstr "نمایه کامپایل موتور" msgid "Load Profile" -msgstr "بارگزاری پروفایل" +msgstr "بار کردن نمایه" msgid "Export Profile" msgstr "برونبرد نمایه" @@ -2504,13 +2681,13 @@ msgid "Paste Params" msgstr "چسباندن پارام ها" msgid "Updating Scene" -msgstr "بهروزرسانی پرده" +msgstr "بهروزرسانی صحنه" msgid "Storing local changes..." msgstr "ذخیره تغییرات محلی ..." msgid "Updating scene..." -msgstr "بهروزرسانی پرده..." +msgstr "بهروزرسانی صحنه..." msgid "[empty]" msgstr "[پوچ]" @@ -2518,6 +2695,12 @@ msgstr "[پوچ]" msgid "[unsaved]" msgstr "[ذخیره نشده]" +msgid "Open the %s dock." +msgstr "گشودن لنگرگاه %s." + +msgid "Focus on the %s dock." +msgstr "تمرکز روی لنگرگاه %s." + msgid "%s - Godot Engine" msgstr "%s - موتور گودوت" @@ -2555,7 +2738,7 @@ msgid "Asset Library" msgstr "کتابخانهٔ دارایی" msgid "Scene Tree Editing" -msgstr "ویرایش درخت پرده" +msgstr "ویرایش درخت صحنه" msgid "Node Dock" msgstr "داک گره" @@ -2569,21 +2752,24 @@ msgstr "درونبرد لنگرگاه" msgid "History Dock" msgstr "داک تاریخچه" +msgid "Game View" +msgstr "نمای بازی" + msgid "Allows to view and edit 3D scenes." -msgstr "اجازه دیدن و ویرایش پردههای سهبعدی را میدهد." +msgstr "اجازه دیدن و ویرایش صحنههای سهبعدی را میدهد." msgid "Allows to edit scripts using the integrated script editor." -msgstr "اجازهٔ ویرایش اسکریپتها با استفاده از ویرایشگر اسکریپت داخلی را میدهد." +msgstr "اجازهٔ ویرایش اسکریپتها با ویراستار اسکریپت درونی را میدهد." msgid "Provides built-in access to the Asset Library." msgstr "دسترسی تعبیه شده به کتابخانه دارایی را فراهم میکند." msgid "Allows editing the node hierarchy in the Scene dock." -msgstr "اجازه ویرایش سلسله مراتب گره در داک پرده را میدهد." +msgstr "اجازه ویرایش سلسله مراتب گره در داک صحنه را میدهد." msgid "" "Allows to work with signals and groups of the node selected in the Scene dock." -msgstr "اجازه کار کردن با سیگنالها و گروههای گره برگزیده در داک پرده را میدهد." +msgstr "اجازه کار کردن با سیگنالها و گروههای گره برگزیده در داک صحنه را میدهد." msgid "Allows to browse the local file system via a dedicated dock." msgstr "به مرور سیستم فایل محلی از طریق یک داک اختصاصی اجازه می دهد." @@ -2596,7 +2782,10 @@ msgstr "" "به لنگرگاه سامانهٔ پرونده نیاز دارد." msgid "Provides an overview of the editor's and each scene's undo history." -msgstr "یک دیدگاه کلی از تاریخچهٔ بازگردانی هر پرده و ویراستار را فراهم میکند." +msgstr "یک دیدگاه کلی از تاریخچهٔ بازگردانی هر صحنه و ویراستار را فراهم میکند." + +msgid "Provides tools for selecting and debugging nodes at runtime." +msgstr "برای گزینش و اشکالزدایی گرهها هنگام زمان اجرا ابزار فراهم میکند." msgid "(current)" msgstr "(کنونی)" @@ -2605,7 +2794,7 @@ msgid "(none)" msgstr "(هیچ)" msgid "Remove currently selected profile, '%s'? Cannot be undone." -msgstr "نمایه برگزیدهٔ کنونی، '%s' زدوده شود؟ نمیتوان بازگردانید." +msgstr "نمایهٔ برگزیدهٔ کنونی، «%s» برچیده شود؟ برگشتناپذیر است." msgid "Profile must be a valid filename and must not contain '.'" msgstr "پروفایل باید یک نام فایل معتبر باشد و نباید حاوی «.» باشد" @@ -2626,7 +2815,7 @@ msgid "Class Options:" msgstr "گزینههای کلاس:" msgid "Enable Contextual Editor" -msgstr "بکاراندازی ویراستار بافتاری" +msgstr "بهکاراندازی ویراستار بافتاری" msgid "Class Properties:" msgstr "داراییهای کلاس:" @@ -2637,7 +2826,7 @@ msgstr "ویژگیهای اصلی:" msgid "" "Profile '%s' already exists. Remove it first before importing, import aborted." msgstr "" -"نمایهٔ '%s' از پیش وجود دارد. پیش از درونبرد آن را بزدایید، درونبرد نافرجام " +"نمایهٔ «%s» از پیش وجود دارد. پیش از درونبرد آن را برچینید، درونبرد نافرجام " "ماند." msgid "Reset to Default" @@ -2650,7 +2839,7 @@ msgid "Create Profile" msgstr "ایجاد پروفایل" msgid "Remove Profile" -msgstr "حذف پروفایل" +msgstr "برچیدن نمایه" msgid "Available Profiles:" msgstr "نمایههای موجود:" @@ -2684,7 +2873,31 @@ msgid "Import Profile(s)" msgstr "درونبرد نمایه(ها)" msgid "Manage Editor Feature Profiles" -msgstr "مدیریت ویژگی نمایههای ویرایشگر" +msgstr "مدیریت ویژگی نمایههای ویراستار" + +msgid "Project initialization" +msgstr "راهاندازی آغازین پروژه" + +msgid "Scanning file structure..." +msgstr "در حال پوییدن ساختار پرونده..." + +msgid "Loading global class names..." +msgstr "در حال بار کردن نام کلاسهای جهانی..." + +msgid "Verifying GDExtensions..." +msgstr "در حال تایید جی.دی.اِکستِنشِنها..." + +msgid "Creating autoload scripts..." +msgstr "در حال ساخت اسکریپتهای خودبارشده..." + +msgid "Initializing plugins..." +msgstr "در حال راهاندازی آغازین افزایهها..." + +msgid "Starting file scan..." +msgstr "در حال آغاز پویش پرونده..." + +msgid "Scanning actions..." +msgstr "در حال پویش کنشها..." msgid "Some extensions need the editor to restart to take effect." msgstr "برخی افزونهها برای اثرگذاری به بازراهاندازی ویراستار نیاز دارند." @@ -2698,6 +2911,15 @@ msgstr "ذخیره و راهاندازی مجدد" msgid "ScanSources" msgstr "سرچشمههای پویش" +msgid "Registering global classes..." +msgstr "در حال ثبت کلاسهای جهانی..." + +msgid "Updating scripts documentation" +msgstr "در حال بهروزرسانی اسکریپتهای مستندات" + +msgid "Updating Scene Groups" +msgstr "در حال بهروزرسانی گروههای صحنه..." + msgid "" "There are multiple importers for different types pointing to file %s, import " "aborted" @@ -2708,9 +2930,24 @@ msgstr "" msgid "(Re)Importing Assets" msgstr "(باز)درونبرد داراییها" +msgid "Preparing files to reimport..." +msgstr "در حال آمادهسازی پروندهها برای بازدرونبرد..." + +msgid "Executing pre-reimport operations..." +msgstr "در حال اجرای عملیاتهای پیشبازدرونبرد..." + msgid "Import resources of type: %s" msgstr "درونبرد بنمایهها از گونهٔ: %s" +msgid "Finalizing Asset Import..." +msgstr "در حال پایانیسازی درونبرد دارایی..." + +msgid "Executing post-reimport operations..." +msgstr "در حال اجرای عملیاتهای پسابازدرونبرد..." + +msgid "Copying files..." +msgstr "در حال روگرفت پروندهها..." + msgid "This method supports a variable number of arguments." msgstr "این روش از تعداد متغیری از آرگومان ها پشتیبانی میکند." @@ -2735,12 +2972,15 @@ msgstr "" "این متد برای خوانده شدن نیازی به یک نمونه نیاز ندارد.\n" "میتوان به طور مستقیم از نام کلاس آن را خواند." +msgid "Code snippet copied to clipboard." +msgstr "تکهٔ کوچک کد در بریدهدان روگرفت شد." + msgid "No return value." msgstr "بدون مقدار بازگشتی." msgid "This value is an integer composed as a bitmask of the following flags." msgstr "" -"این مقدار یک عدد صحیح ساخته شده بعنوان یک بت ماسک از پرچم های دنباله است." +"این مقدار یک عدد صحیح ساخته شده بهعنوان یک بت ماسک از پرچم های دنباله است." msgid "Deprecated" msgstr "منسوخ" @@ -2770,13 +3010,13 @@ msgid "Operator Descriptions" msgstr "شرحهای عملگر" msgid "This method may be changed or removed in future versions." -msgstr "این روش شاید در نسخههای آینده دگرگون یا زدوده شود." +msgstr "این روش شاید در نسخههای آینده برچیده یا دگرگون شود." msgid "This constructor may be changed or removed in future versions." -msgstr "این سازنده شاید در نسخههای آینده دگرگون یا زدوده شود." +msgstr "این سازنده شاید در نسخههای آینده برچیده یا دگرگون شود." msgid "This operator may be changed or removed in future versions." -msgstr "این عملگر شاید در نسخههای آینده دگرگون یا زدوده شود." +msgstr "این عملگر شاید در نسخههای آینده برچیده یا دگرگون شود." msgid "Error codes returned:" msgstr "کدهای خطاهای برگردانده شده:" @@ -2818,7 +3058,7 @@ msgid "Class:" msgstr "کلاس:" msgid "This class may be changed or removed in future versions." -msgstr "این کلاس شاید در نسخههای آینده زدوده یا دگرگون شود." +msgstr "این کلاس شاید در نسخههای آینده برچیده یا دگرگون شود." msgid "Inherits:" msgstr "ارث میبرد از:" @@ -2885,6 +3125,9 @@ msgstr "آیکونها" msgid "Styles" msgstr "استایلها" +msgid "This theme property may be changed or removed in future versions." +msgstr "این ویژگی زمینه شاید در نسخههای آینده برچیده یا دگرگون شود." + msgid "There is currently no description for this theme property." msgstr "هماکنون شرحی برای این ویژگی زمینه نیست." @@ -2896,7 +3139,7 @@ msgstr "" "[url=$url]مشارکت در یک [/url][/color] کمک کنید!" msgid "This signal may be changed or removed in future versions." -msgstr "این سیگنال شاید در نسخههای آینده زدوده یا دگرگون شود." +msgstr "این سیگنال شاید در نسخههای آینده برچیده یا دگرگون شود." msgid "There is currently no description for this signal." msgstr "هماکنون شرحی برای این سیگنال نیست." @@ -2912,10 +3155,10 @@ msgid "Enumerations" msgstr "شمارشها" msgid "This enumeration may be changed or removed in future versions." -msgstr "این شمارش شاید در نسخههای آینده زدوده یا دگرگون شود." +msgstr "این شمارش شاید در نسخههای آینده برچیده یا دگرگون شود." msgid "This constant may be changed or removed in future versions." -msgstr "این ثابت شاید در نسخههای آینده زدوده یا دگرگون شود." +msgstr "این ثابت شاید در نسخههای آینده برچیده یا دگرگون شود." msgid "Annotations" msgstr "پانویسها" @@ -2937,7 +3180,7 @@ msgid "(value)" msgstr "(مقدار)" msgid "This property may be changed or removed in future versions." -msgstr "این ویژگی شاید در نسخههای آینده زدوده یا دگرگون شود." +msgstr "این ویژگی شاید در نسخههای آینده برچیده یا دگرگون شود." msgid "There is currently no description for this property." msgstr "هماکنون شرحی برای این ویژگی نیست." @@ -2962,11 +3205,17 @@ msgstr "ویراستار" msgid "Click to copy." msgstr "برای کپی کردن کلیک کنید." +msgid "Click to open in browser." +msgstr "برای گشودن در مرورگر کلیک کنید." + msgid "No description available." msgstr "هیچ شرحی در دسترس نیست." +msgid "This annotation may be changed or removed in future versions." +msgstr "این پانویس شاید در نسخههای آینده برچیده یا دگرگون شود." + msgid "Show in FileSystem" -msgstr "نمایش در فایلسیستم" +msgstr "نمایش در سامانهٔ پرونده" msgid "Open in File Manager" msgstr "گشودن در مدیر پرونده" @@ -2974,12 +3223,24 @@ msgstr "گشودن در مدیر پرونده" msgid "Class" msgstr "کلاس" +msgid "Enumeration" +msgstr "شمارش" + msgid "Constant" msgstr "ثابت" +msgid "Metadata" +msgstr "فراداده" + +msgid "Setting" +msgstr "تنظیمات" + msgid "Property" msgstr "ویژگی" +msgid "Internal Property" +msgstr "ویژگی درونی" + msgid "This property can only be set in the Inspector." msgstr "این ویژگی را تنها در بازرس(inspector) میتوان نشاند." @@ -2995,9 +3256,36 @@ msgstr "نشانه" msgid "Annotation" msgstr "پانویس" +msgid "Local Constant" +msgstr "ثابت بومی" + +msgid "Local Variable" +msgstr "متغیر بومی" + +msgid "This variable may be changed or removed in future versions." +msgstr "این متغیر شاید در نسخههای آینده برچیده یا دگرگون شود." + +msgid "TextFile" +msgstr "پروندهٔ نوشتاری" + msgid "File" msgstr "پرونده" +msgid "Directory" +msgstr "پوشهدان" + +msgid "Invalid UID" +msgstr "یو.آی.دی نامعتبر است" + +msgid "This UID does not point to any valid Resource." +msgstr "این یو.آی.دی به هیچ بنمایهٔ معتبری اشاره نمیکند." + +msgid "Invalid path" +msgstr "مسیر نامعتبر است" + +msgid "This path does not exist." +msgstr "این مسیر وجود ندارد." + msgid "%d match." msgstr "%d همانند." @@ -3020,7 +3308,7 @@ msgid "Show Hierarchy" msgstr "نمایش سلسلهمراتب" msgid "Display All" -msgstr "نشان دادن همه" +msgstr "نمایش همه" msgid "Classes Only" msgstr "تنها کلاسها" @@ -3055,11 +3343,26 @@ msgstr "نوع عضو" msgid "Keywords" msgstr "کلید واژه ها" +msgid "Matches the \"%s\" keyword." +msgstr "با کلیدواژهٔ «%s» مطابقت دارد." + msgid "This member is marked as deprecated." -msgstr "این عضو بعنوان منسوخ علامت گذاری شده است." +msgstr "این عضو بهعنوان منسوخ علامت گذاری شده است." msgid "This member is marked as experimental." -msgstr "این عضو بعنوان آزمایشی علامت گذاری شده است." +msgstr "این عضو بهعنوان آزمایشی علامت گذاری شده است." + +msgid "Unfavorite Property" +msgstr "نادلخواه کردن ویژگی" + +msgid "Make this property be put back at its original place." +msgstr "این ویژگی را به جای آغازینش برگردانید." + +msgid "Favorite Property" +msgstr "دلخواه کردن ویژگی" + +msgid "Make this property be placed at the top for all objects of this class." +msgstr "این ویژگی را در بالا برای همهٔ شیءهای این کلاس بگذارید." msgid "Pin Value" msgstr "سنجاق کردن ارزش" @@ -3072,6 +3375,9 @@ msgstr "" "پین کردن یک مقدار آن را مجبور می کند حتی اگر برابر با مقدار پیش فرض باشد " "ذخیره شود." +msgid "Unfavorite All" +msgstr "نادلخواه کردن همه" + msgid "(%d change)" msgid_plural "(%d changes)" msgstr[0] "%dتغییر" @@ -3081,7 +3387,7 @@ msgid "Add element to property array with prefix %s." msgstr "برای اضافه کردن یک المان به array از پیشوند %s استفاده کنید." msgid "Remove element %d from property array with prefix %s." -msgstr "برای حذف کردن المان %d از array از پیشوند %s استفاده کنید." +msgstr "برای برچیدن المان %d از آرایهٔ ویژگی پیشوند %s را به کار بگیرید." msgid "Move element %d to position %d in property array with prefix %s." msgstr "المان %d را در آرایهٔ ویژگی با پیشوند %s به نهشت %d بفرست." @@ -3135,7 +3441,7 @@ msgid "Set Multiple: %s" msgstr "نشاندن چندگانه: %s" msgid "Remove metadata %s" -msgstr "زدایش فراداده %s" +msgstr "برچیدن فرادادهٔ %s" msgid "Pinned %s" msgstr "%s سنجاق شد" @@ -3191,6 +3497,9 @@ msgstr "گزینش یک بوم" msgid "Show All Locales" msgstr "نمایش همهٔ بومها" +msgid "Show Selected Locales Only" +msgstr "تنها نمایش بومهای برگزیده" + msgid "Edit Filters" msgstr "ویرایش پالایهها" @@ -3237,7 +3546,7 @@ msgid "Toggle visibility of standard output messages." msgstr "روشن/خاموش کردن پدیداری پیامهای استاندارد برونداد." msgid "Toggle visibility of errors." -msgstr "تغییر پدیداری فایلهای مخفی شده." +msgstr "روشن/خاموش کردن پدیداری خطاها." msgid "Toggle visibility of warnings." msgstr "روشن/خاموش کردن پدیداری هشدارها." @@ -3251,6 +3560,9 @@ msgstr "بازرس سرچشمهٔ سایهزن بومی" msgid "Unnamed Project" msgstr "پروژه بینام" +msgid "Recovery Mode is enabled. Editor functionality has been restricted." +msgstr "حالت بازیابی بهکارافتاده است. کارایی ویراستار محدود شد." + msgid "" "Spins when the editor window redraws.\n" "Update Continuously is enabled, which can increase power usage. Click to " @@ -3258,10 +3570,10 @@ msgid "" msgstr "" "هنگام نوگردانی پنجرهٔ ویراستار میچرخد.\n" "بهروزرسانی پیوسته بکارافتاده است، که میتواند مصرف برق را بیفزاید. برای " -"ازکارانداختن کلیک کنید." +"ازکاراندازی کلیک کنید." msgid "Spins when the editor window redraws." -msgstr "هنگامی که پنجره ویرایشگر دوباره ترسیم می شود می چرخد." +msgstr "هنگامی که پنجرهٔ ویراستار دوباره کشیده میشود میچرخد." msgid "Imported resources can't be saved." msgstr "بنمایههای درونبرد شده نمیتوانند ذخیره شوند." @@ -3276,18 +3588,18 @@ msgid "" "This resource can't be saved because it does not belong to the edited scene. " "Make it unique first." msgstr "" -"این بنمایه نمیتواند ذخیره شود زیرا به پردهٔ ویراسته تعلق ندارد. نخست آن را " -"بیهمتا کنید." +"این بنمایه نمیتواند ذخیره شود زیرا به صحنهٔ ویراسته تعلق ندارد. نخست آن را " +"یکتا کنید." msgid "" "This resource can't be saved because it was imported from another file. Make " "it unique first." msgstr "" "این بنمایه نمیتواند ذخیره شود زیرا از پروندهٔ دیگری درونبرد شده است. نخست آن " -"را بیهمتا کنید." +"را یکتا کنید." msgid "Save Resource As..." -msgstr "ذخیرهسازی بنمایه بعنوان..." +msgstr "ذخیرهسازی بنمایه بهعنوان..." msgid "Can't open file for writing:" msgstr "نمیتوان پرونده را برای نوشتن گشود:" @@ -3305,7 +3617,7 @@ msgid "Error while parsing file '%s'." msgstr "خطا هنگام تجزیهٔ پروندهٔ «%s»." msgid "Scene file '%s' appears to be invalid/corrupt." -msgstr "به نظر میرسد پروندهٔ پردهٔ «%s» نامعتبر/فاسد است." +msgstr "به نظر میرسد پروندهٔ صحنهٔ «%s» نامعتبر/فاسد است." msgid "Missing file '%s' or one of its dependencies." msgstr "پروندهٔ '%s' یا یکی از وابستگیهایش گمشدهاند." @@ -3321,7 +3633,7 @@ msgid "Error while loading file '%s'." msgstr "خطا به هنگام بارکردن پرونده '%s'." msgid "Saving Scene" -msgstr "ذخیرهسازی پرده" +msgstr "ذخیرهسازی صحنه" msgid "Analyzing" msgstr "در حال واکاوی" @@ -3336,27 +3648,27 @@ msgid "" "This scene can't be saved because there is a cyclic instance inclusion.\n" "Please resolve it and then attempt to save again." msgstr "" -"این پرده نمیتواند ذخیره شود، زیرا دارای یک بازبرد چرخهای میباشد.\n" +"این صحنه نمیتواند ذخیره شود، زیرا دارای یک بازبرد چرخهای میباشد.\n" "لطفا آن را حل کرده و سپس دوباره برای ذخیرهسازی بکوشید." msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" -"ناتوانی در ذخیرهسازی پرده. احتمالا وابستگیها (نمونهها یا وراثت) نمیتوانستند " +"ناتوانی در ذخیرهسازی صحنه. احتمالا وابستگیها (نمونهها یا وراثت) نمیتوانستند " "راضی شوند." msgid "Save scene before running..." -msgstr "ذخیره پرده پیش از اجرا..." +msgstr "ذخیره صحنه پیش از اجرا..." msgid "Could not save one or more scenes!" -msgstr "نمیشد یک یا چند پرده را ذخیره کرد!" +msgstr "نمیشد یک یا چند صحنه را ذخیره کرد!" msgid "Save All Scenes" -msgstr "ذخیره همهٔ پردهها" +msgstr "ذخیره همهٔ صحنهها" msgid "Can't overwrite scene that is still open!" -msgstr "نمیتوان پردهای که هنوز گشوده است را بازنویسی کرد!" +msgstr "نمیتوان صحنهای که هنوز گشوده است را بازنویسی کرد!" msgid "Merge With Existing" msgstr "یکی کردن با نمونهٔ موجود" @@ -3393,23 +3705,23 @@ msgid "Restored the Default layout to its base settings." msgstr "چیدمان پیشفرض به تنظیمات پایهاش بازیابی شد." msgid "This object is marked as read-only, so it's not editable." -msgstr "این شی بعنوان تنها خواندنی نشانگذاری شده است، پس ويرايشناپذیر است." +msgstr "این شی بهعنوان تنها خواندنی نشانگذاری شده است، پس ويرايشناپذیر است." msgid "" "This resource belongs to a scene that was imported, so it's not editable.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." msgstr "" -"این بنمایه متعلق به پردهای درونبرده است، بنابراین ویرایشپذیر نیست.\n" -"لطفا اسناد مربوط به درونبردن پردهها را بخوانید تا این گردش کار را بهتر درک " +"این بنمایه متعلق به صحنهای درونبرده است، بنابراین ویرایشپذیر نیست.\n" +"لطفا اسناد مربوط به درونبردن صحنهها را بخوانید تا این گردش کار را بهتر درک " "کنید." msgid "" "This resource belongs to a scene that was instantiated or inherited.\n" "Changes to it must be made inside the original scene." msgstr "" -"این بنمایه به یک پردهٔ نمونهساخته یا وارث تعلق دارد.\n" -"دگرشهای آن باید درون پردهٔ آغازین انجام شود." +"این بنمایه به یک صحنهٔ نمونهساخته یا وارث تعلق دارد.\n" +"دگرشهای آن باید درون صحنهٔ آغازین انجام شود." msgid "" "This resource was imported, so it's not editable. Change its settings in the " @@ -3424,9 +3736,9 @@ msgid "" "Please read the documentation relevant to importing scenes to better " "understand this workflow." msgstr "" -"این پرده درونبرد شده است، بنابراین دگرشهای آن نگهداشته نخواهند شد.\n" +"این صحنه درونبرد شده است، بنابراین دگرشهای آن نگهداشته نخواهند شد.\n" "نمونهسازی یا به ارث بردن از آن اجازه میدهد تا آن را دگرگون کنید.\n" -"لطفا اسناد مربوط به درونبردن پردهها را بخوانید تا این گردش کار را بهتر درک " +"لطفا اسناد مربوط به درونبردن صحنهها را بخوانید تا این گردش کار را بهتر درک " "کنید." msgid "Changes may be lost!" @@ -3436,7 +3748,7 @@ msgid "This object is read-only." msgstr "این شی فقط خواندنی است." msgid "Open Base Scene" -msgstr "گشودن پرده پایه" +msgstr "گشودن صحنه پایه" msgid "%s no longer exists! Please specify a new save location." msgstr "%s دیگر وجود ندارد! لطفا یک جایگاه ذخیرهٔ نو مشخص کنید." @@ -3445,18 +3757,21 @@ msgid "" "The current scene has no root node, but %d modified external resource(s) and/" "or plugin data were saved anyway." msgstr "" -"پردهٔ کنونی گره ریشهای ندارد، ولی با این همه، دادهٔ افزایه و/یا بنمایه(ها)ی " +"صحنهٔ کنونی گره ریشهای ندارد، ولی با این همه، دادهٔ افزایه و/یا بنمایه(ها)ی " "بیرونی دگرگون شده به دست %d ذخیره شدند." msgid "" "A root node is required to save the scene. You can add a root node using the " "Scene tree dock." msgstr "" -"برای ذخیرهٔ پرده، یک گرهٔ ریشه نیاز است. شما میتوانید با بکار بردن لنگرگاه درخت " -"پرده یک گرهٔ ریشه بیفزایید." +"برای ذخیرهٔ صحنه، یک گرهٔ ریشه نیاز است. شما میتوانید با بکار بردن لنگرگاه درخت " +"صحنه یک گرهٔ ریشه بیفزایید." msgid "Save Scene As..." -msgstr "ذخیره پرده بعنوان..." +msgstr "ذخیره صحنه بهعنوان..." + +msgid "Pack Project as ZIP..." +msgstr "بستهبندی پروژه بهعنوان زیپ..." msgid "Can't undo while mouse buttons are pressed." msgstr "نمیتوان هنگامی که دکمههای موس فشرده اند بازگردانید." @@ -3471,7 +3786,7 @@ msgid "Remote Undo: %s" msgstr "بازگردانی از دور: %s" msgid "Scene Undo: %s" -msgstr "بازگردانی پرده: %s" +msgstr "بازگردانی صحنه: %s" msgid "Can't redo while mouse buttons are pressed." msgstr "نمیتوان هنگامی که دکمههای موس فشرده اند بازانجامید." @@ -3486,20 +3801,20 @@ msgid "Remote Redo: %s" msgstr "بازانجامیدن از دور: %s" msgid "Scene Redo: %s" -msgstr "انجام دوبارهٔ پرده: %s" +msgstr "انجام دوبارهٔ صحنه: %s" msgid "Can't reload a scene that was never saved." -msgstr "نمیتوان پردهای که هرگز ذخیره نشده است را دوباره بارکرد." +msgstr "نمیتوان صحنهای که هرگز ذخیره نشده است را دوباره بارکرد." msgid "Reload Saved Scene" -msgstr "بازبارکنش(reload) پردهٔ ذخیره شده" +msgstr "بازبارکنش(reload) صحنهٔ ذخیره شده" msgid "" "The current scene has unsaved changes.\n" "Reload the saved scene anyway? This action cannot be undone." msgstr "" -"پردهٔ کنونی دگرشهای ذخیره نشده دارد.\n" -"به هرحال پردهٔ ذخیره شده بازبارکرد(reload) شود؟ این کنش قابل لغو نیست." +"صحنهٔ کنونی دگرشهای ذخیره نشده دارد.\n" +"به هرحال صحنهٔ ذخیره شده بازبارکرد(reload) شود؟ این کنش قابل لغو نیست." msgid "Save & Reload" msgstr "ذخیره و بازبارکردن" @@ -3514,13 +3829,13 @@ msgid "Save modified resources before closing?" msgstr "بنمایههای دگرگون شده پیش از بسته شدن ذخیره شوند؟" msgid "Save changes to the following scene(s) before reloading?" -msgstr "پیش از بازبارکردن، دگرشهای پرده(ها)ی زیر ذخیره شوند؟" +msgstr "پیش از بازبارکردن، دگرشهای صحنه(ها)ی زیر ذخیره شوند؟" msgid "Save changes to the following scene(s) before quitting?" -msgstr "پیش از بیرون رفتن دگرشها را در پرده(های) زیر ذخیره میکنید؟" +msgstr "پیش از بیرون رفتن دگرشها را در صحنه(های) زیر ذخیره میکنید؟" msgid "Save changes to the following scene(s) before opening Project Manager?" -msgstr "پیش از گشودن مدیر پروژه دگرشها را در پرده(های) زیر ذخیره میکنید؟" +msgstr "پیش از گشودن مدیر پروژه دگرشها را در صحنه(های) زیر ذخیره میکنید؟" msgid "" "This option is deprecated. Situations where refresh must be forced are now " @@ -3530,16 +3845,22 @@ msgstr "" "اشکال در نظر گرفته میشوند. لطفا آن را گزارش دهید." msgid "Pick a Main Scene" -msgstr "یک پردهٔ اصلی برگزینید" +msgstr "یک صحنهٔ اصلی برگزینید" msgid "This operation can't be done without a scene." -msgstr "این عملیات بدون پرده نمی انجامد." +msgstr "این عملیات بدون صحنه نمی انجامد." msgid "Export Mesh Library" msgstr "برونبرد کتابخانهٔ مش" +msgid "Quick Open Color Palette..." +msgstr "تند گشودن تختهرنگ..." + msgid "Unable to enable addon plugin at: '%s' parsing of config failed." -msgstr "ناتوانی در بکاراندازی افزایهٔ برافزا در: «%s» ناکامی در تجزیهٔ پیکربندی." +msgstr "ناتوانی در بهکاراندازی افزایهٔ برافزا در: «%s» ناکامی در تجزیهٔ پیکربندی." + +msgid "Unable to find script field for addon plugin at: '%s'." +msgstr "ناتوانی در یافتن میدان اسکریپت برای افزایهٔ برافزا در: «%s»." msgid "Unable to load addon script from path: '%s'." msgstr "ناتوانی در بار کردن برافزای اسکریپت از مسیر: '%s'." @@ -3551,7 +3872,7 @@ msgid "" msgstr "" "ناتوانی در بار کردن اسکریپت برافزا از مسیر: '%s'. شاید بخاطر خطای کد در آن " "اسکریپت باشد.\n" -"در حال ازکارانداختن برافزا در '%s' برای پیشگیری از خطاهای بیشتر." +"در حال ازکاراندازی برافزا در '%s' برای پیشگیری از خطاهای بیشتر." msgid "" "Unable to load addon script from path: '%s'. Base type is not 'EditorPlugin'." @@ -3566,18 +3887,18 @@ msgid "" "Scene '%s' was automatically imported, so it can't be modified.\n" "To make changes to it, a new inherited scene can be created." msgstr "" -"پردهٔ '%s' خودکار درونبرد شده است، پس نمیتواند دگرگون شود.\n" -"برای دگرگون کردن آن، میتوان یک پردهٔ وارث نو ساخت." +"صحنهٔ '%s' خودکار درونبرد شده است، پس نمیتواند دگرگون شود.\n" +"برای دگرگون کردن آن، میتوان یک صحنهٔ وارث نو ساخت." msgid "" "Error loading scene, it must be inside the project path. Use 'Import' to open " "the scene, then save it inside the project path." msgstr "" -"خطا در بارکردن پرده، باید درون مسیر پروژه باشد. برای گشودن پرده 'درونبرد' را " +"خطا در بارکردن صحنه، باید درون مسیر پروژه باشد. برای گشودن صحنه 'درونبرد' را " "بکارببرید، سپس درون مسیر پروژه ذخیرهاش کنید." msgid "Scene '%s' has broken dependencies:" -msgstr "پردهٔ %s وابستگیهای شکسته دارد:" +msgstr "صحنهٔ %s وابستگیهای شکسته دارد:" msgid "" "Multi-window support is not available because the `--single-window` command " @@ -3597,21 +3918,69 @@ msgid "" "Multi-window support is not available because Interface > Editor > Single " "Window Mode is enabled in the editor settings." msgstr "" -"پشتیبانی از چند پنجره در دسترس نیست زیرا رابط > ویرایشگر > حالت پنجره واحد در " -"تنظیمات ویرایشگر فعال است." +"پشتیبانی از چندپنجرگی در دسترس نیست زیرا در تنظیمات ویراستار «میانا > " +"ویراستار > حالت تکپنجره» بهکارافتاده است." msgid "" "Multi-window support is not available because Interface > Multi Window > " "Enable is disabled in the editor settings." msgstr "" -"پشتیبانی از چندپنجرگی در دسترس نیست زیرا میانا > چندپنجرگی > بکاراندازی در " +"پشتیبانی از چندپنجرگی در دسترس نیست زیرا میانا > چندپنجرگی > بهکاراندازی در " "تنظیمات ویراستار ازکارافتاده است." msgid "Clear Recent Scenes" -msgstr "پاک کردن پردههای اخیر" +msgstr "پاک کردن صحنههای اخیر" msgid "There is no defined scene to run." -msgstr "پردهٔ تعریف شدهای برای اجرا نیست." +msgstr "صحنهٔ تعریف شدهای برای اجرا نیست." + +msgid "Loading editor" +msgstr "در حال بار کردن ویراستار" + +msgid "Loading editor layout..." +msgstr "در حال بار کردن چیدمان ویراستار..." + +msgid "Loading docks..." +msgstr "در حال بار کردن لنگرگاهها..." + +msgid "Reopening scenes..." +msgstr "در حال بازگشودن صحنهها..." + +msgid "Loading central editor layout..." +msgstr "در حال بار کردن چیدمان مرکزی ویراستار..." + +msgid "Loading plugin window layout..." +msgstr "در حال بار کردن افزایهٔ چیدمان پنجره..." + +msgid "Editor layout ready." +msgstr "چیدمان ویراستار آماده است." + +msgid "" +"No main scene has ever been defined. Select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"هیچ صحنهٔ اصلیای هرگز تعریف نشده است، آیا میخواهید یکی برگزینید؟\n" +"میتوانید در زمانی دیگر آن را در «تنظیمات پروژه» زیر دستهبندی «برنامه» دگرگون " +"کنید." + +msgid "" +"Selected scene '%s' does not exist. Select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"صحنهٔ برگزیدهٔ «%s» وجود ندارد، یک صحنهٔ معتبر برگزینید؟\n" +"میتوانید در زمانی دیگر آن را در «تنظیمات پروژه» زیر دستهبندی «برنامه» دگرگون " +"کنید." + +msgid "" +"Selected scene '%s' is not a scene file. Select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"صحنهٔ برگزیده «%s» یک پروندهٔ صحنه نیست، یک پروندهٔ معتبر برگزینید.\n" +"میتوانید در زمانی دیگر آن را در «تنظیمات پروژه» زیر دستهبندی «برنامه» دگرگون " +"کنید." msgid "Save Layout..." msgstr "ذخیرهٔ چیدمان..." @@ -3629,7 +3998,7 @@ msgid "Delete Layout" msgstr "زدایش چیدمان" msgid "This scene was never saved." -msgstr "این پرده هرگز ذخیره نشده بود." +msgstr "این صحنه هرگز ذخیره نشده بود." msgid "%d second ago" msgid_plural "%d seconds ago" @@ -3650,7 +4019,7 @@ msgid "" "Scene \"%s\" has unsaved changes.\n" "Last saved: %s." msgstr "" -"پردهٔ \"%s\" دگرشهای ذخیره نشده دارد.\n" +"صحنهٔ \"%s\" دگرشهای ذخیره نشده دارد.\n" "زمان آخرین ذخیرهسازی: %s." msgid "Save & Close" @@ -3675,16 +4044,16 @@ msgstr "" "ندارد." msgid "Preparing scenes for reload" -msgstr "آمادهسازی پردهها برای بازبارکردن" +msgstr "آمادهسازی صحنهها برای بازبارکردن" msgid "Analyzing scene %s" -msgstr "در حال واکاوی پرده %s" +msgstr "در حال واکاوی صحنه %s" msgid "Preparation done." msgstr "آمادهسازی انجامید." msgid "Scenes reloading" -msgstr "دوباره بارکردن پردهها" +msgstr "دوباره بارکردن صحنهها" msgid "Reloading..." msgstr "دوباره بارکردن..." @@ -3731,6 +4100,9 @@ msgstr "گروه کردن گره(ها)ی برگزیده" msgid "Ungroup Selected Node(s)" msgstr "از گروه درآوردن گره(ها)ی برگزیده" +msgid "Pan View" +msgstr "نمای سراسرنمایی" + msgid "Distraction Free Mode" msgstr "حالت بدون حواسپرتی" @@ -3741,19 +4113,19 @@ msgid "Toggle distraction-free mode." msgstr "روشن/خاموش کردن حالت بیحواسپرتی." msgid "Scene" -msgstr "پرده" +msgstr "صحنه" msgid "Operations with scene files." -msgstr "عملیات با پروندهٔ پردهها." +msgstr "عملیات با پروندهٔ صحنهها." msgid "Copy Text" msgstr "کپی متن" msgid "Next Scene Tab" -msgstr "زبانهٔ بعدی پرده" +msgstr "زبانهٔ بعدی صحنه" msgid "Previous Scene Tab" -msgstr "زبانهٔ پیشین پرده" +msgstr "زبانهٔ پیشین صحنه" msgid "Focus FileSystem Filter" msgstr "تمرکز پالایهٔ سامانهٔ پرونده" @@ -3762,40 +4134,40 @@ msgid "Command Palette" msgstr "میانبر فرمانها" msgid "New Scene" -msgstr "پرده نو" +msgstr "صحنه نو" msgid "New Inherited Scene..." -msgstr "پرده وارث نو..." +msgstr "صحنه وارث نو..." msgid "Open Scene..." -msgstr "گشودن پرده..." +msgstr "گشودن صحنه..." msgid "Reopen Closed Scene" -msgstr "بازگشودن پردهٔ بسته شده" +msgstr "بازگشودن صحنهٔ بسته شده" msgid "Open Recent" -msgstr "باز کردن فایل اخیر" +msgstr "گشودن اخیر" msgid "Save Scene" -msgstr "ذخیره پرده" +msgstr "ذخیره صحنه" msgid "Quick Open..." msgstr "تند گشودن..." msgid "Quick Open Scene..." -msgstr "تند گشودن پرده..." +msgstr "تند گشودن صحنه..." msgid "Quick Open Script..." msgstr "تند گشودن اسکریپت..." msgid "Export As..." -msgstr "برونبرد بعنوان..." +msgstr "برونبرد بهعنوان..." msgid "MeshLibrary..." msgstr "کتابخانهٔ مش..." msgid "Close Scene" -msgstr "بستن پرده" +msgstr "بستن صحنه" msgid "Quit" msgstr "برونرفت" @@ -3836,6 +4208,9 @@ msgstr "ویراستار پیکربندی کامپایل موتور..." msgid "Upgrade Mesh Surfaces..." msgstr "ارتقای سطحهای مش..." +msgid "Upgrade UIDs..." +msgstr "ارتقای یو.آی.دیها..." + msgid "Reload Current Project" msgstr "دوباره بار کردن پروژهٔ کنونی" @@ -3870,7 +4245,7 @@ msgid "Open Editor Settings Folder" msgstr "گشودن پوشهٔ تنظیمات ویراستار" msgid "Manage Editor Features..." -msgstr "مدیریت ویژگیهای ویرایشگر..." +msgstr "مدیریت ویژگیهای ویراستار..." msgid "Manage Export Templates..." msgstr "مدیریت برونبرد قالبها..." @@ -3897,7 +4272,7 @@ msgid "Copy System Info" msgstr "کپی اطلاعات سیستم" msgid "Copies the system info as a single-line text into the clipboard." -msgstr "اطلاعات رایانه را بعنوان یک نوشتهٔ تکخطی درون بریدهدان روگرفت میکند." +msgstr "اطلاعات رایانه را بهعنوان یک نوشتهٔ تکخطی درون بریدهدان روگرفت میکند." msgid "Report a Bug" msgstr "گزارش یک مشکل" @@ -3975,7 +4350,7 @@ msgid "Select Android sources file" msgstr "گزینش پروندهٔ منبعهای اندروید" msgid "Show in File Manager" -msgstr "نمایش فایل داخلی مرجع" +msgstr "نمایش در مدیر پرونده" msgid "Import Templates From ZIP File" msgstr "درونبرد قالبها از یک پروندهٔ زیپ" @@ -3989,6 +4364,21 @@ msgstr "برونبرد کتابخانه" msgid "Open & Run a Script" msgstr "گشودن و اجرای یک اسکریپت" +msgid "Files have been modified outside Godot" +msgstr "پروندهها بیرون از گودوت دگرگون شدهاند" + +msgid "The following files are newer on disk:" +msgstr "پروندههای زیر روی دیسک نوتر هستند:" + +msgid "What action should be taken?" +msgstr "چه کنشی باید انجام گیرد؟" + +msgid "Reload from disk" +msgstr "بازبار کردن از دیسک" + +msgid "Ignore external changes" +msgstr "نادیدهگیری دگرشهای بیرونی" + msgid "Create/Override Version Control Metadata..." msgstr "ساخت/بازنویسی فرادادهٔ کنترل نسخه..." @@ -4005,14 +4395,17 @@ msgid "Select Current" msgstr "انتخاب کنونی" msgid "Open 2D Editor" -msgstr "گشودن ویراستار ۲بعدی" +msgstr "گشودن ویراستار دوبعدی" msgid "Open 3D Editor" -msgstr "گشودن ویراستار ۳بعدی" +msgstr "گشودن ویراستار سهبعدی" msgid "Open Script Editor" msgstr "گشودن ویراستار اسکریپت" +msgid "Open Game View" +msgstr "گشودن نمای بازی" + msgid "Open Asset Library" msgstr "گشودن کتابخانهٔ دارایی" @@ -4086,7 +4479,7 @@ msgid "Assign..." msgstr "واگذاری..." msgid "Copy as Text" -msgstr "روگرفت بعنوان نوشتار" +msgstr "روگرفت بهعنوان نوشتار" msgid "Show Node in Tree" msgstr "نمایش گره در درخت" @@ -4104,7 +4497,7 @@ msgid "" "Parameters\" tab." msgstr "" "نمیتوان در یک گرهٔ Texture2D، یک ViewportTexture ساخت، چون بافت محدود به یک " -"پرده نخواهد بود.\n" +"صحنه نخواهد بود.\n" "به جای آن گرهٔ Texture2DParameter را بکارببرید و بافت را درون زبانهٔ " "\"پارامترهای سایهزن\" بنشانید." @@ -4112,8 +4505,8 @@ msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" -"نمیتوان روی بنمایههای ذخیره شده بعنوان یک پرونده، یک ViewportTexture ساخت.\n" -"بنمایه باید متعلق به یک پرده باشد." +"نمیتوان روی بنمایههای ذخیره شده بهعنوان یک پرونده، یک ViewportTexture ساخت.\n" +"بنمایه باید متعلق به یک صحنه باشد." msgid "" "Can't create a ViewportTexture on this resource because it's not set as local " @@ -4121,9 +4514,9 @@ msgid "" "Please switch on the 'local to scene' property on it (and all resources " "containing it up to a node)." msgstr "" -"نمیتوان یک ViewportTexture روی این بنمایه ساخت چون بعنوان بومی پرده نشانده " +"نمیتوان یک ViewportTexture روی این بنمایه ساخت چون بهعنوان بومی صحنه نشانده " "نشده است.\n" -"لطفا ویژگی 'بومی پرده' را روی آن بگذارید (و همهٔ بنمایههای دربردارندهٔ آن تا یک " +"لطفا ویژگی 'بومی صحنه' را روی آن بگذارید (و همهٔ بنمایههای دربردارندهٔ آن تا یک " "گره)." msgid "Pick a Viewport" @@ -4138,11 +4531,20 @@ msgstr "کلید نو:" msgid "New Value:" msgstr "ارزش نو:" +msgid "(Nil) %s" +msgstr "(هیچ) %s" + +msgid "%s%s (size %d)" +msgstr "%s%s (اندازه %d)" + +msgid "%s (size %d)" +msgstr "%s (اندازه %d)" + msgid "Size:" msgstr "اندازه:" msgid "Remove Item" -msgstr "حذف مورد" +msgstr "برچیدن مورد" msgid "Add Key/Value Pair" msgstr "افزودن جفتِ کلید/ارزش" @@ -4178,10 +4580,10 @@ msgid "Inspect" msgstr "بازرسی" msgid "Make Unique" -msgstr "بیهمتا سازی" +msgstr "یکتا سازی" msgid "Make Unique (Recursive)" -msgstr "بیهمتا سازی (بازگشتی)" +msgstr "یکتا سازی (بازگشتی)" msgid "Save As..." msgstr "ذخیره در..." @@ -4190,7 +4592,7 @@ msgid "Convert to %s" msgstr "تبدیل به %s" msgid "Select resources to make unique:" -msgstr "گزینش بنمایهها برای بیهمتاسازی:" +msgstr "گزینش بنمایهها برای یکتاسازی:" msgid "New %s" msgstr "%s نو" @@ -4204,6 +4606,12 @@ msgstr "ارثبری از اسکریپت..." msgid "New Shader..." msgstr "سایهزن نو..." +msgid "No Remote Deploy export presets configured." +msgstr "هیچ پیشنشاندهای برای برونبرد بهکارگیری از راه دور پیکربندی نشده است." + +msgid "Remote Deploy" +msgstr "بهکارگیری از راه دور" + msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the Export menu or define an existing preset " @@ -4211,7 +4619,29 @@ msgid "" msgstr "" "هیچ پیشنشاندهٔ برونبرد اجراشدنیای برای این سکو یافت نشد.\n" "لطفا یک پیشنشاندهٔ اجراشدنی را در فهرست برونبرد بیفزایید یا یک پیشنشاندهٔ موجود " -"را بعنوان اجراشدنی تعریف کنید." +"را بهعنوان اجراشدنی تعریف کنید." + +msgid "" +"Warning: The CPU architecture \"%s\" is not active in your export preset.\n" +"\n" +msgstr "" +"هشدار: معماری پردازندهٔ «%s» در پیشنشاندهٔ برونبردتان فعال نیست.\n" +"\n" + +msgid "Run \"Remote Deploy\" anyway?" +msgstr "با این همه، «بهکارگیری از راه دور» اجرا شود؟" + +msgid "Deploy to First Device in List" +msgstr "بهکارگیری در نخستین دستگاه درون فهرست" + +msgid "Deploy to Second Device in List" +msgstr "بهکارگیری در دومین دستگاه درون فهرست" + +msgid "Deploy to Third Device in List" +msgstr "بهکارگیری در سومین دستگاه درون فهرست" + +msgid "Deploy to Fourth Device in List" +msgstr "بهکارگیری در چهارمین دستگاه درون فهرست" msgid "Project Run" msgstr "اجرای پروژه" @@ -4220,7 +4650,10 @@ msgid "Write your logic in the _run() method." msgstr "منطق خود را در روش _run() بنویسید." msgid "The current scene already has a root node." -msgstr "پردهٔ کنونی هماکنون گرهٔ ریشه دارد." +msgstr "صحنهٔ کنونی هماکنون گرهٔ ریشه دارد." + +msgid "Advanced settings are always shown when searching." +msgstr "تنظیمات پیشرفته همیشه هنگام پویش نمایاندهاند." msgid "Edit Built-in Action: %s" msgstr "ویرایش کنش درونساخته: %s" @@ -4231,9 +4664,15 @@ msgstr "ویرایش میانبر: %s" msgid "None" msgstr "هیچکدام" +msgid "Primary" +msgstr "اصلی" + msgid "Common" msgstr "معمولی" +msgid "Event %d" +msgstr "رویداد %d" + msgid "Editor Settings" msgstr "تنظیمات ویراستار" @@ -4435,15 +4874,37 @@ msgstr "خطای ناشناخته" msgid "Export failed with error code %d." msgstr "ناکامی در برونبرد با کد خطای %d." +msgid "Patch Creation" +msgstr "ساخت پَچ" + +msgid "Could not load patch pack with path \"%s\"." +msgstr "ناتوانی در بار کردن بستهٔ پَچ با مسیر «%s»." + msgid "Storing File: %s" -msgstr "ذخیره فایل: %s" +msgstr "ذخیرهسازی پرونده: %s" msgid "Storing File:" -msgstr "ذخیره فایل:" +msgstr "ذخیرهسازی پرونده:" msgid "No export template found at the expected path:" msgstr "هیچ قالب برونبردی در مسیر مورد انتظار یافت نشد:" +msgid "" +"Using user provided text server data, text display in the exported project " +"might be broken if export template was built with different ICU version!" +msgstr "" +"با بهکارگیری دادهٔ سِرور نوشتاری فراهمشده به دست کاربران، اگر قالب برونبرد با " +"نسخهٔ آی.سی.یوی متفاوتی ساخته شده باشد، ممکن است نمایش نوشتار در پروژهٔ " +"برونبردشده خراب باشد!" + +msgid "" +"Using editor embedded text server data, text display in the exported project " +"might be broken if export template was built with different ICU version!" +msgstr "" +"با بهکارگیری دادهٔ سِرور نوشتار ویراستار نهادینهشده، اگر قالب برونبرد با نسخهٔ " +"آی.سی.یوی متفاوتی ساخته شده باشد، ممکن است نمایش نوشتار در پروژهٔ برونبردشده " +"خراب باشد!" + msgid "ZIP Creation" msgstr "ساخت ZIP" @@ -4457,11 +4918,14 @@ msgid "Save PCK" msgstr "ذخیرهسازی PCK" msgid "Cannot create file \"%s\"." -msgstr "نمیتوان فایل \"%s\" راساخت." +msgstr "نمیتوان پروندهٔ «%s» را ساخت." msgid "Failed to export project files." msgstr "ناکامی در برونبردن پروندههای پروژه." +msgid "No files or changes to export." +msgstr "هیچ دگرش یا پروندهای برای برونبرد نیست." + msgid "Can't open file for writing at path \"%s\"." msgstr "نمیتوان پرونده را برای نوشتن در مسیر \"%s\" گشود." @@ -4475,11 +4939,14 @@ msgid "Can't open encrypted file to write." msgstr "نمیتوان پروندهٔ رمزبندی شده را برای نوشتن گشود." msgid "Can't open file to read from path \"%s\"." -msgstr "نمیتوان فایل را از مسیر \"%s\" برای خواندن بازکرد." +msgstr "نمیتوان پرونده را از مسیر «%s» برای خواندن گشود." msgid "Save ZIP" msgstr "ذخیرهسازی ZIP" +msgid "Failed to move temporary file \"%s\" to \"%s\"." +msgstr "ناکامی در جابهجایی پروندهٔ موقت «%s» به «%s»." + msgid "Custom debug template not found." msgstr "قالب اشکال زدایی سفارشی یافت نشد." @@ -4500,16 +4967,23 @@ msgid "The given export path doesn't exist." msgstr "مسیر داده شدهٔ برونبرد وجود ندارد." msgid "Template file not found: \"%s\"." -msgstr "فایل قالب پیدا نشد: \"%s\"." +msgstr "پروندهٔ قالب یافت نشد: «%s»." msgid "Failed to copy export template." msgstr "ناکامی در روگرفتن قالب برونبرد." msgid "PCK Embedding" -msgstr "نهادینه کردن PCK" +msgstr "نهادینهسازی پی.سی.کی" msgid "On 32-bit exports the embedded PCK cannot be bigger than 4 GiB." -msgstr "در برونبردهای ۳۲ بیتی PCK نهادینه نمیتواند بزرگتر از ۴ گیبیبایت باشد." +msgstr "" +"در برونبردهای ۳۲ بیتی پی.سی.کی نهادینهشده نمیتواند بزرگتر از ۴ گیبیبایت باشد." + +msgid "GDExtension" +msgstr "جی.دی.اِکستِنشِن" + +msgid "Failed to copy shared object \"%s\"." +msgstr "ناکامی در روگرفت شیء همرسانیشدهٔ «%s»." msgid "Plugin \"%s\" is not supported on \"%s\"" msgstr "افزایهٔ \"%s\" روی \"%s\" پشتیبانیشده نیست" @@ -4557,7 +5031,7 @@ msgid "Download complete; extracting templates..." msgstr "بارگیری انجامید؛ در حال استخراج قالبها..." msgid "Cannot remove temporary file:" -msgstr "امکان حذف فایل موقت وجود ندارد:" +msgstr "نمیتوان پروندهٔ موقت را برچید::" msgid "" "Templates installation failed.\n" @@ -4632,7 +5106,7 @@ msgid "Importing:" msgstr "در حال درونبرد:" msgid "Remove templates for the version '%s'?" -msgstr "زدایش قالبها برای نسخهٔ '%s'؟" +msgstr "برچیدن قالبها برای نسخهٔ «%s»؟" msgid "Export templates are missing. Download them or install from a file." msgstr "" @@ -4642,6 +5116,15 @@ msgstr "" msgid "Export templates are missing. Install them from a file." msgstr "قالبهای برونبرد از جا افتادهاند. آنها را از یک پرونده نصب کنید." +msgid "Not available in offline mode" +msgstr "در حالت آفلاین دردسترس نیست" + +msgid "Template downloading is disabled in offline mode." +msgstr "بارگیری قالب در حالت آفلاین ازکارافتاده است." + +msgid "No templates for development builds" +msgstr "هیچ قالبی برای ساختهای توسعه نیست" + msgid "Official export templates aren't available for development builds." msgstr "قالبهای برونبرد رسمی برای ساختهای توسعه در دسترس نیستند." @@ -4655,7 +5138,7 @@ msgid "Current Version:" msgstr "نسخه اخیر:" msgid "Export templates are installed and ready to be used." -msgstr "قالبهای برونبرد نصبشده و آمادهٔ بکارگیریاند." +msgstr "قالبهای برونبرد نصبشده و آمادهٔ بهکارگیریاند." msgid "Open Folder" msgstr "گشودن پوشه" @@ -4687,10 +5170,10 @@ msgid "" msgstr "قالبهای نسخهٔ کنونی را از بهترین آینهٔ ممکن بارگیری و نصب کنید." msgid "Install from File" -msgstr "نصب از فایل" +msgstr "نصب از پرونده" msgid "Install templates from a local file." -msgstr "قالبها را از یک فایل محلی نصب کن." +msgstr "قالبها را از پروندهای بومی نصب کنید." msgid "Cancel the download of the templates." msgstr "بارگیری قالبها را لغو کن." @@ -4711,8 +5194,17 @@ msgid "" "The templates will continue to download.\n" "You may experience a short editor freeze when they finish." msgstr "" -"قالبها به دانلود شدن ادامه می دهند.\n" -"ممکن است بعد از تمام شدن ویراستار برای مدت کوتاهی هنگ کند." +"قالبها به بارگیری شدن ادامه خواهند داد.\n" +"شاید پس از پایان یافتن، ویراستار برای مدت کوتاهی هنگ کند." + +msgid "" +"Target platform requires '%s' texture compression. Enable 'Import %s' to fix." +msgstr "" +"سکوی هدف به فشردهسازی بافت «%s» نیازمند است. برای درست کردن «درونبرد %s» را " +"به کار بیندازید." + +msgid "Fix Import" +msgstr "درست کردن درونبرد" msgid "Runnable" msgstr "قابل اجرا" @@ -4728,15 +5220,27 @@ msgstr "" msgid "Delete preset '%s'?" msgstr "زدایش پیشنشانده '%s'؟" +msgid "Resources to exclude:" +msgstr "بنمایهها برای استثناشده کردن:" + +msgid "Resources to override export behavior:" +msgstr "بنمایهها برای بازنویسی رفتار برونبرد:" + msgid "Resources to export:" msgstr "بنمایههای برای برونبرد:" msgid "(Inherited)" msgstr "(وارث)" +msgid "Delete patch '%s' from list?" +msgstr "زدایش پَچ «%s» از فهرست؟" + msgid "Export With Debug" msgstr "برونبرد با اشکالزدا" +msgid "Export As Patch" +msgstr "برونبرد بهعنوان پَچ" + msgid "%s Export" msgstr "برونبرد %s" @@ -4782,7 +5286,7 @@ msgid "Export all resources in the project" msgstr "برونبرد همهٔ بنمایههای درون پروژه" msgid "Export selected scenes (and dependencies)" -msgstr "برونبرد پردههای برگزیده (و وابستگیها)" +msgstr "برونبرد صحنههای برگزیده (و وابستگیها)" msgid "Export selected resources (and dependencies)" msgstr "برونبرد بنمایههای برگزیده (و وابستگیها)" @@ -4796,19 +5300,42 @@ msgstr "برونبرد به عنوان سرور اختصاصی" msgid "Export Mode:" msgstr "حالت برونبرد:" +msgid "" +"\"Strip Visuals\" will replace the following resources with placeholders:" +msgstr "«کندن عنصرهای دیداری» بنمایههای زیر را با جانگهدارها جایگزین خواهد کرد:" + +msgid "Strip Visuals" +msgstr "کندن عنصرهای دیداری" + msgid "Keep" msgstr "نگهداری" +msgid "" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" +msgstr "" +"پالایهها برای برونبرد پروندهها/پوشههای نابنمایه\n" +"(جداشده با کاما، برای نمونه: *.json, *.txt, docs/*)" + msgid "" "Filters to exclude files/folders from project\n" "(comma-separated, e.g: *.json, *.txt, docs/*)" msgstr "" -"فیلترهایی برای حذف فایلها/پوشهها از پروژه\n" -"(با کاما از هم جدا شدهاند، به عنوان مثال: *.json، *.txt، docs/*)" +"پالایهها برای استثناشده کردن پروندهها/پوشهها از پروژه\n" +"(جداشده با کاما، برای نمونه: *.json, *.txt, docs/*)" + +msgid "Patches" +msgstr "پَچها" + +msgid "Base Packs:" +msgstr "بستههای پایه:" msgid "Godot Project Pack" msgstr "بستهٔ پروژهٔ گودوت" +msgid "Add Pack" +msgstr "افزودن بسته" + msgid "Features" msgstr "ویژگیها" @@ -4827,11 +5354,32 @@ msgstr "رمزبندی PCK برونبرد شده" msgid "Encrypt Index (File Names and Info)" msgstr "اندیس رمزبندی (نام پروندهها و اطلاعات)" +msgid "" +"Filters to include files/folders\n" +"(comma-separated, e.g: *.tscn, *.tres, scenes/*)" +msgstr "" +"پالایهها برای دربرگیری پروندهها/پوشهها\n" +"(جداشده با کاما، برای نمونه: *.tscn, *.tres, scenes/*)" + +msgid "" +"Filters to exclude files/folders\n" +"(comma-separated, e.g: *.ctex, *.import, music/*)" +msgstr "" +"پالایهها برای استثناشده کردن پروندهها/پوشهها\n" +"(جداشده با کاما، برای نمونه: *.ctex, *.import, music/*)" + msgid "Invalid Encryption Key (must be 64 hexadecimal characters long)" msgstr "کلید رمزبندی نامعتبر است (باید به بلندی ۶۴ نویسهٔ شانزدهی باشد)" msgid "Encryption Key (256-bits as hexadecimal):" -msgstr "کلید رمزبندی (۲۵۶ بیت بعنوان شانزدهی):" +msgstr "کلید رمزبندی (۲۵۶ بیت بهعنوان شانزدهی):" + +msgid "" +"Note: Encryption key needs to be stored in the binary,\n" +"you need to build the export templates from source." +msgstr "" +"بدانید: کلید رمزبندی باید در باینری انبار شود،\n" +"نیاز دارید قالب برونبرد را از منبع بسازید." msgid "More Info..." msgstr "اطلاعات بیشتر..." @@ -4858,8 +5406,8 @@ msgid "" "Export the project resources as a PCK or ZIP package. This is not a playable " "build, only the project data without a Godot executable." msgstr "" -"برونبرد بنمایههای پروژه بعنوان بستهٔ PCK یا ZIP. این ساخت تنها دادهٔ پروژه بدون " -"پروندهٔ اجراپذیر گودوت میباشد و بازیشدنی نیست." +"برونبرد بنمایههای پروژه بهعنوان بستهٔ PCK یا ZIP. این ساخت تنها دادهٔ پروژه " +"بدون پروندهٔ اجراپذیر گودوت میباشد و بازیشدنی نیست." msgid "Export Project..." msgstr "برونبرد پروژه..." @@ -4868,7 +5416,7 @@ msgid "" "Export the project as a playable build (Godot executable and project data) " "for the selected preset." msgstr "" -"پروژه را بعنوان یک ساخت بازیشدنی (اجراپذیر گودوت و دادهٔ پروژه) برای " +"پروژه را بهعنوان یک ساخت بازیشدنی (اجراپذیر گودوت و دادهٔ پروژه) برای " "پیشنشاندههای برگزیده برونبرد کن." msgid "Export All" @@ -4893,7 +5441,23 @@ msgid "Manage Export Templates" msgstr "مدیریت قالبهای برونبرد" msgid "Disable FBX2glTF & Restart" -msgstr "ازکارانداختن FBX2glTF و بازراهاندازی" +msgstr "ازکاراندازی FBX2glTF و بازراهاندازی" + +msgid "" +"Canceling this dialog will disable the FBX2glTF importer and use the ufbx " +"importer.\n" +"You can re-enable FBX2glTF in the Project Settings under Filesystem > Import " +"> FBX > Enabled.\n" +"\n" +"The editor will restart as importers are registered when the editor starts." +msgstr "" +"لغو کردن این گفتار درونبردگر FBX2glTF را از کار انداخته و درونبردگر یو.اف.بی." +"ایکس را به کار خواهد برد.\n" +"میتوانید FBX2glTF را در تنظیمات پروژه زیر «سامانهٔ پرونده > درونبرد > اف.بی." +"ایکس > بهکارافتاده» دوباره به کار بیندازید.\n" +"\n" +"از جایی که درونبردگرها هنگام راهاندازی ویراستار ثبت میشوند ویراستار " +"بازراهاندازی خواهد شد." msgid "Path to FBX2glTF executable is empty." msgstr "مسیر به اجراپذیر FBX2glTF تهی است." @@ -4910,6 +5474,18 @@ msgstr "اجراپذیر FBX2glTF معتبر است." msgid "Configure FBX Importer" msgstr "پیکربندی درونبردگر FBX" +msgid "" +"FBX2glTF is required for importing FBX files if using FBX2glTF.\n" +"Alternatively, you can use ufbx by disabling FBX2glTF.\n" +"Please download the necessary tool and provide a valid path to the binary:" +msgstr "" +"در صورت بهکارگیری ابزار «FBX2glTF»، برای درونبرد پروندههای اف.بی.ایکس " +"«FBX2glTF» نیاز است.\n" +"دگرگزینانه، میتوانید با ازکاراندازی «FBX2glTF» از ابزار یو.اف.بی.ایکس بهره " +"ببرید.\n" +"خواهشمندیم ابزار لازم را [از گیتهاب] بارگیری کرده و مسیری معتبر به باینری " +"فراهم کنید:" + msgid "Click this link to download FBX2glTF" msgstr "برای بارگیری FBX2glTF روی این پیوند کلیک کنید" @@ -4919,8 +5495,11 @@ msgstr "مرور" msgid "Confirm Path" msgstr "تایید مسیر" +msgid "Link to: %s" +msgstr "پیوند به: %s" + msgid "View items as a grid of thumbnails." -msgstr "دیدن موارد بعنوان یک توری از پیشنمایشها." +msgstr "دیدن موارد بهعنوان یک توری از پیشنمایشها." msgid "View items as a list." msgstr "مشاهده موارد به عنوان فهرست." @@ -4948,6 +5527,9 @@ msgstr "خطا در جابهجا کردن:" msgid "Error duplicating:" msgstr "خطا در دوتاساختن:" +msgid "Error duplicating directory:" +msgstr "خطا در دوتاسازی پوشهدان:" + msgid "Unable to update dependencies for:" msgstr "ناتوانی در بهروزرسانی وابستگیهای:" @@ -4960,9 +5542,24 @@ msgstr "" "با این همه، اگر میخواهید آن را بازنامگذارید، مدیر پروندهٔ سامانهٔ عامل خود را " "به کار ببرید." +msgid "" +"This file extension is not recognized by the editor.\n" +"If you want to rename it anyway, use your operating system's file manager.\n" +"After renaming to an unknown extension, the file won't be shown in the editor " +"anymore." +msgstr "" +"ویراستار این پسوند پرونده را نمیشناسد.\n" +"با این همه، اگر میخواهید آن را بازنامگذارید مدیر پروندهٔ سامانهٔ عامل خود را به " +"کار بگیرید.\n" +"پس از بازنامگذاری به پسوندی ناشناخته، پرونده دیگر درون ویراستار نمایش داده " +"نخواهد شد." + msgid "A file or folder with this name already exists." msgstr "یک پوشه یا پرونده هماکنون با این نام وجود دارد." +msgid "Could not create base directory: %s" +msgstr "ناتوانی در ساخت پوشهدان پایه: «%s»" + msgid "" "The following files or folders conflict with items in the target location " "'%s':" @@ -4989,14 +5586,22 @@ msgstr "دوتاسازی پوشه:" msgid "Create Folder" msgstr "ساخت پوشه" +msgid "" +"Do you wish to convert these files to %s? (This operation cannot be undone!)" +msgstr "" +"آیا میخواهید این پروندهها را به %s تبدیل کنید؟ (این عملیات برگشتناپذیر است!)" + +msgid "Could not create folder: %s" +msgstr "ناتوانی در ساخت پوشه: %s" + msgid "New Inherited Scene" -msgstr "پردهٔ وارث نو" +msgstr "صحنهٔ وارث نو" msgid "Set as Main Scene" -msgstr "نشاندن بعنوان پردهٔ اصلی" +msgstr "نشاندن بهعنوان صحنهٔ اصلی" msgid "Open Scenes" -msgstr "گشودن پردهها" +msgstr "گشودن صحنهها" msgid "Instantiate" msgstr "نمونهسازی" @@ -5014,7 +5619,7 @@ msgid "Folder..." msgstr "پوشه..." msgid "Scene..." -msgstr "پرده..." +msgstr "صحنه..." msgid "Script..." msgstr "اسکریپت..." @@ -5047,7 +5652,10 @@ msgid "Add to Favorites" msgstr "اضافه به علاقمندیها" msgid "Remove from Favorites" -msgstr "حذف از علاقمندیها" +msgstr "برچیدن از دلخواهها" + +msgid "Convert to..." +msgstr "تبدیل به..." msgid "Reimport" msgstr "بازدرونبرد" @@ -5055,11 +5663,14 @@ msgstr "بازدرونبرد" msgid "Open in Terminal" msgstr "گشودن در پایانه" +msgid "Open Folder in Terminal" +msgstr "گشودن پوشه در پایانه" + msgid "New Folder..." msgstr "ساختن پوشه..." msgid "New Scene..." -msgstr "پردهٔ نو..." +msgstr "صحنهٔ نو..." msgid "New Resource..." msgstr "بنمایهٔ نو..." @@ -5139,6 +5750,9 @@ msgstr "برو به پرونده/پوشهٔ برگزیدهٔ بعدی." msgid "Re-Scan Filesystem" msgstr "بازپویش سامانهٔ پرونده" +msgid "Change Split Mode" +msgstr "دگرش حالت شکافتگی" + msgid "Filter Files" msgstr "پالایش پروندهها" @@ -5158,8 +5772,11 @@ msgstr "نگهداشتن هردو" msgid "Create Script" msgstr "ساخت اسکریپت" +msgid "Convert" +msgstr "تبدیل کردن" + msgid "Find in Files" -msgstr "یافتن در فایلها" +msgstr "یافتن در پروندهها" msgid "Find:" msgstr "یافتن:" @@ -5173,6 +5790,13 @@ msgstr "پوشه:" msgid "Filters:" msgstr "پالایهها:" +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" +"پروندههای دارای پسوندهای زیر را در بر بگیرید. آنها را در تنظیمات پروژه " +"برچینید یا بیفزایید." + msgid "Find..." msgstr "جستجو..." @@ -5188,6 +5812,9 @@ msgstr "جایگزینی همه (بیبازگردانی)" msgid "Searching..." msgstr "در حال جستجو..." +msgid "Remove result" +msgstr "برچیدن نتیجه" + msgid "%d match in %d file" msgstr "%d نظیر در %d فایل" @@ -5203,6 +5830,9 @@ msgstr "نشاندن شرح گروه" msgid "Invalid group name. It cannot be empty." msgstr "نام گروه نامعتبر است. نمیتواند تهی باشد." +msgid "A group with the name '%s' already exists." +msgstr "گروهی با نام «%s» هماکنون وجود دارد." + msgid "Group can't be empty." msgstr "گروه نمیتواند تهی باشد." @@ -5222,10 +5852,10 @@ msgid "Rename Group" msgstr "تغییر نام گروه" msgid "Remove Group" -msgstr "زدایش گروه" +msgstr "برچیدن گروه" msgid "Delete references from all scenes" -msgstr "زدایش بازبردها از همهٔ پردهها" +msgstr "زدایش بازبردها از همهٔ صحنهها" msgid "Delete group \"%s\"?" msgstr "زدایش گروه \"%s\"؟" @@ -5234,13 +5864,13 @@ msgid "Group name is valid." msgstr "نام گروه معتبر است." msgid "Rename references in all scenes" -msgstr "بازنامگذاری بازبردها در همهٔ پردهها" +msgstr "بازنامگذاری بازبردها در همهٔ صحنهها" msgid "Scene Groups" -msgstr "گروههای پرده" +msgstr "گروههای صحنه" msgid "This group belongs to another scene and can't be edited." -msgstr "این گروه متعلق به پردهٔ دیگری بوده و نمیتواند ویرایش شود." +msgstr "این گروه متعلق به صحنهٔ دیگری بوده و نمیتواند ویرایش شود." msgid "Copy group name to clipboard." msgstr "روگرفت نام گروه در بریدهدان(clipboard)." @@ -5252,13 +5882,13 @@ msgid "Add to Group" msgstr "اضافه به گروه" msgid "Remove from Group" -msgstr "حذف از گروه" +msgstr "برچیدن از گروه" msgid "Convert to Global Group" msgstr "تبدیل به گروه جهانی" msgid "Convert to Scene Group" -msgstr "تبدیل به گروه پرده" +msgstr "تبدیل به گروه صحنه" msgid "Create New Group" msgstr "ساختن گروه نو" @@ -5275,6 +5905,24 @@ msgstr "افزودن یک گروه نو." msgid "Filter Groups" msgstr "پالایش گروهها" +msgid "" +"Scroll Left\n" +"Hold Ctrl to scroll to the begin.\n" +"Hold Shift to scroll one page." +msgstr "" +"پیمایش به چپ\n" +"برای آغاز کردن پیمایش کنترل را نگه دارید.\n" +"برای پیمودن یک برگه شیفت را نگه دارید." + +msgid "" +"Scroll Right\n" +"Hold Ctrl to scroll to the end.\n" +"Hold Shift to scroll one page." +msgstr "" +"پیمایش به راست\n" +"برای پایان دادن به پیمایش کنترل را نگه دارید.\n" +"برای پیمودن یک برگه شیفت را نگه دارید." + msgid "Expand Bottom Panel" msgstr "گسترش پهنهٔ پایینی" @@ -5314,6 +5962,9 @@ msgstr "" msgid "Select This Folder" msgstr "برگزیدن این پوشه" +msgid "Show Package Contents" +msgstr "نمایش محتواهای بسته" + msgid "All Files" msgstr "همهٔ پروندهها" @@ -5332,6 +5983,9 @@ msgstr "گشودن یک پرونده یا پوشهدان" msgid "Save a File" msgstr "یک پرونده را ذخیره کن" +msgid "The path specified is invalid." +msgstr "مسیر تعیینشده نامعتبر است." + msgid "Could not create folder. File with that name already exists." msgstr "ناتوانی در ساخت پوشه. پروندهای با این نام هماکنون وجود دارد." @@ -5339,7 +5993,7 @@ msgid "Could not create folder." msgstr "ناتوان در ساختن پوشه." msgid "Favorited folder does not exist anymore and will be removed." -msgstr "پوشهٔ دلخواهشده دیگر وجود ندارد و زدوده خواهد شد." +msgstr "پوشهٔ دلخواهشده دیگر وجود ندارد و برچیده خواهد شد." msgid "Go Back" msgstr "به عقب بازگردید" @@ -5351,7 +6005,7 @@ msgid "Go Up" msgstr "بالا بروید" msgid "Toggle Hidden Files" -msgstr "تغییر فایلهای پنهان" +msgstr "روشن/خاموش کردن پروندههای پنهانشده" msgid "Toggle Favorite" msgstr "تغییر موارد دلخواه" @@ -5362,6 +6016,9 @@ msgstr "تغییر حالت" msgid "Focus Path" msgstr "مسیر تمرکز" +msgid "Focus Filter" +msgstr "پالایهٔ تمرکز" + msgid "Move Favorite Up" msgstr "انتقال موارد دلخواه به بالا" @@ -5390,11 +6047,20 @@ msgid "Directories & Files:" msgstr "پوشهها و پروندهها:" msgid "Toggle the visibility of hidden files." -msgstr "تغییر پدیدار بودن فایلهای مخفی شده." +msgstr "روشن/خاموش کردن پدیداری پروندههای پنهانشده." + +msgid "Sort files" +msgstr "چینش پروندهها" + +msgid "Toggle the visibility of the filter for file names." +msgstr "روشن/خاموش کردن پدیداری پالایه برای نام پروندهها." msgid "Preview:" msgstr "پیشنمایش:" +msgid "Filter:" +msgstr "پالایه:" + msgid "Filter" msgstr "پالایه" @@ -5407,8 +6073,8 @@ msgid "" "Depending on your filesystem configuration, the files will either be moved to " "the system trash or deleted permanently." msgstr "" -"پروندههای برگزیده زدوده شوند؟ برای ایمنی بیشتر تنها پروندهها و پوشهدانهای تهی " -"میتوانند زدوده شوند. (بازگشتناپذیر)\n" +"پروندههای برگزیده برچیده شوند؟ برای ایمنی بیشتر تنها پروندهها و پوشهدانهای " +"تهی میتوانند زدوده شوند. (بازگشتناپذیر)\n" "بسته به پیکربندی سامانهٔ پروندهٔ شما، پروندهها یا به زبالهدان رایانه فرستاده " "خواهند شد یا برای همیشه زدوده خواهند شد." @@ -5418,62 +6084,176 @@ msgstr "زیربنمایهای پیدا نشد." msgid "Open a list of sub-resources." msgstr "فهرستی از زیربنمایهها بگشا." +msgid "Search files..." +msgstr "جستجوی پروندهها..." + +msgid "Select Resource" +msgstr "گزینش بنمایه" + +msgid "Select Scene" +msgstr "گزینش صحنه" + +msgid "Fuzzy Search" +msgstr "جستجوی گُنگ" + +msgid "Enable fuzzy matching" +msgstr "بهکاراندازی تطبیق گُنگ" + +msgid "Addons" +msgstr "برافزاها" + +msgid "Include files from addons" +msgstr "دربرگیری پروندهها از برافزاها" + +msgid "No files found for this type" +msgstr "هیچ پروندهای برای این گونه یافت نشد" + +msgid "Start searching to find files..." +msgstr "آغاز جستجو برای یافتن پروندهها..." + +msgid "No results found" +msgstr "نتیجهای یافت نشد" + +msgid " (recently opened)" +msgstr " (اخیرا گشودهشده)" + +msgid "Grid view" +msgstr "نمای توری" + +msgid "List view" +msgstr "نمای فهرست" + msgid "Play the project." -msgstr "اجرای پروژه." +msgstr "پروژه را اجرا میکند." msgid "Play the edited scene." -msgstr "پردهٔ ویراسته را اجرا کن." +msgstr "صحنهٔ ویراسته را اجرا میکند." msgid "Play a custom scene." -msgstr "یک پردهٔ سفارشی پخش کن." +msgstr "یک صحنهٔ سفارشی پخش میکند." msgid "Reload the played scene." -msgstr "پردهٔ پخششده را دوباره بارکن." +msgstr "صحنهٔ پخششده را دوباره بارکن." + +msgid "" +"Movie Maker mode is enabled, but no movie file path has been specified.\n" +"A default movie file path can be specified in the project settings under the " +"Editor > Movie Writer category.\n" +"Alternatively, for running single scenes, a `movie_file` string metadata can " +"be added to the root node,\n" +"specifying the path to a movie file that will be used when recording that " +"scene." +msgstr "" +"حالت فیلمساز بهکارافتاده است، ولی مسیر پروندهٔ فیلم تعیین نشده است.\n" +"مسیر پروندهٔ فیلم پیشفرض میتواند در تنظیمات پروژه زیر دستهبندی «ویراستار > " +"فیلمنویس» تعیین شود.\n" +"دگرگزینانه، برای اجرای تنها یک صحنه، فرادادهٔ رشتهٔ `movie_file` میتواند به گرهٔ " +"ریشه افزوده شود،\n" +"که مسیر را به پروندهٔ فیلمی که هنگام ضبط آن صحنه به کار خواهد رفت تعیین میکند." msgid "Could not start subprocess(es)!" msgstr "ناتوانی در آغاز کردن زیرفرآیند(ها)!" +msgid "Recovery Mode is enabled. Disable it to run the project." +msgstr "حالت بازیابی بهکارافتاده است. برای اجرای پروژه آن را از کار بیندازید." + +msgid "" +"Autostart is enabled for the following profilers, which can have a " +"performance impact:" +msgstr "" +"خودراهاندازی برای واکاوهای زیر بهکارافتاده است، که میتواند روی کارایی اثر " +"بگذارد:" + msgid "Network Profiler" msgstr "واکاو شبکه" +msgid "Click to open the first profiler for which autostart is enabled." +msgstr "" +"برای گشودن نخستین واکاوی که خودراهاندازی برای آن بهکارافتاده است کلیک کنید." + +msgid "Recovery Mode" +msgstr "حالت بازیابی" + +msgid "" +"Godot opened the project in Recovery Mode, which is a special mode that can " +"help recover projects that crash the engine upon initialization. The " +"following features have been temporarily disabled:" +msgstr "" +"گودوت پروژه را در حالت بازیابی گشود، که حالت ویژهای است که میتواند به بازیابی " +"پروژههایی که هنگام آغاز شدنشان باعث سرنگونی موتور میشوند کمک کند. ویژگیهای " +"زیر به صورت موقت از کار انداخته شدهاند:" + +msgid "Tool scripts" +msgstr "اسکریپتهای ابزار" + +msgid "Editor plugins" +msgstr "افزایههای ویراستار" + +msgid "GDExtension addons" +msgstr "برافزاهای جی.دی.اکستنشن" + +msgid "Automatic scene restoring" +msgstr "بازگردانی خودکار صحنه" + +msgid "Disable recovery mode and reload the project." +msgstr "حالت بازیابی را از کار انداخته و پروژه را دوباره بار کنید." + +msgid "Recovery Mode is enabled. Click for more details." +msgstr "حالت بازیابی بهکارافتاده است. برای جزئیات بیشتر کلیک کنید." + msgid "Run the project's default scene." -msgstr "اجرای پردهٔ پیشفرض پروژه." +msgstr "اجرای صحنهٔ پیشفرض پروژه." msgid "Run Project" msgstr "اجرای پروژه" +msgid "Pause the running project's execution for debugging." +msgstr "اجرای پروژهٔ در حال اجرا را برای اشکالزدایی میدرنگاند." + msgid "Pause Running Project" -msgstr "توقف پروژه درحال اجرا" +msgstr "درنگاندن پروژهٔ در حال اجرا" msgid "Stop the currently running project." -msgstr "توقف پروژه ای که در حال اجرا است." +msgstr "پروژهٔ در حال اجرای کنونی را میایستاند." msgid "Stop Running Project" -msgstr "توقف پروژه در حال اجرا" +msgstr "ایستاندن پروژهٔ در حال اجرا" + +msgid "Run Scene in Regular Mode" +msgstr "اجرای صحنه در حالت عادی" + +msgid "Run Scene in XR Mode" +msgstr "اجرای صحنه در حالت ایکس.آر" msgid "Run the currently edited scene." -msgstr "پردهٔ ویراستهٔ کنونی را اجرا کن." +msgstr "صحنهٔ ویراستهٔ کنونی را اجرا کن." msgid "Run Current Scene" -msgstr "اجرای پردهٔ کنونی" +msgstr "اجرای صحنهٔ کنونی" + +msgid "Run in Regular Mode" +msgstr "اجرا در حالت عادی" + +msgid "Run in XR Mode" +msgstr "اجرا در حالت ایکس.آر" msgid "Run a specific scene." -msgstr "یک پردهٔ ویژه را اجرا کن." +msgstr "یک صحنهٔ ویژه را اجرا کن." msgid "Run Specific Scene" -msgstr "اجرای پردهٔ ویژه" +msgstr "اجرای صحنهای ویژه" msgid "" "Enable Movie Maker mode.\n" "The project will run at stable FPS and the visual and audio output will be " "recorded to a video file." msgstr "" -"فعال سازی حالت فیلمساز.\n" -"پروژه با فریمبرثانیه ثابت اجرا شده و خروجی بصری و صوتی در یک فایل ویدئویی ظبط " -"خواهد شد." +"حالت فیلمساز را به کار میاندازد.\n" +"پروژه با فریمبرثانیهای پایدار اجرا شده و برونداد دیداری و شنیداری در پروندهای " +"ویدیویی ضبط خواهد شد." msgid "Play This Scene" -msgstr "اجرای این پرده" +msgstr "اجرای این صحنه" msgid "Close Tab" msgstr "بستن زبانه" @@ -5494,7 +6274,7 @@ msgid "New Window" msgstr "چارچوب جدید" msgid "Add a new scene." -msgstr "افزودن پرده نو." +msgstr "افزودن صحنه نو." msgid "" "Hold %s to round to integers.\n" @@ -5520,7 +6300,16 @@ msgid "" "Click to copy the version information." msgstr "" "تاریخ کامیت گیت: %s\n" -"برای کپی کردن اطلاعات نسخه کلیک کنید." +"برای روگرفت اطلاعات نسخه کلیک کنید." + +msgid "" +"The root node of a scene is recommended to not be transformed, since " +"instances of the scene will usually override this. Reset the transform and " +"reload the scene to remove this warning." +msgstr "" +"از جایی که نمونههای صحنه بیشتر زمانها آن را بازنویسی میکنند، ترادیسیدن گرهٔ " +"ریشهٔ صحنهها پیشنهاد نمیشود. ترادیسی را بازگردانید و صحنه را دوباره بار کنید " +"تا این هشدار برچیده شود." msgid "Toggle Visible" msgstr "روشن/خاموش کردن پدیداری" @@ -5531,8 +6320,11 @@ msgstr "بازکردن قفل گره" msgid "Ungroup Children" msgstr "واگروهیدن فرزندها" +msgid "Revoke unique name for node \"%s\"?" +msgstr "نام یکتا برای گرهٔ «%s» ریوانده شود (معزول شود)؟" + msgid "Disable Scene Unique Name" -msgstr "ازکارانداختن نام بیهمتای پرده" +msgstr "ازکاراندازی نام یکتای صحنه" msgid "(Connecting From)" msgstr "(در حال اتصال از)" @@ -5540,6 +6332,16 @@ msgstr "(در حال اتصال از)" msgid "Node configuration warning:" msgstr "هشدار پیکربندی گره:" +msgid "" +"This node can be accessed from anywhere within the scene it belongs to by " +"using the '%s' prefix in the node path." +msgstr "" +"این گره میتواند از هر جایی درون صحنهای که به آن تعلق دارد با بهکارگیری پیشوند " +"«%s» در مسیر گره در دسترس باشد." + +msgid "Click to disable this." +msgstr "برای از کار انداختن این کلیک کنید." + msgid "Node has one connection." msgid_plural "Node has {num} connections." msgstr[0] "گره یک اتصال دارد." @@ -5553,6 +6355,16 @@ msgstr[1] "گره در گروههای زیر است:" msgid "Click to show signals dock." msgstr "برای نمایش لنگرگاه سیگنالها کلیک کنید." +msgid "Click to show groups dock." +msgstr "برای نمایش لنگرگاه گروهها کلیک کنید." + +msgid "" +"This script can run in the editor.\n" +"It is currently disabled due to recovery mode." +msgstr "" +"این اسکریپت میتواند درون ویراستار اجرا شود.\n" +"هماکنون بهخاطر حالت بازیابی ازکارافتاده است." + msgid "This script is currently running in the editor." msgstr "این اسکریپت هماکنون در حال اجرا درون ویراستار است." @@ -5589,14 +6401,21 @@ msgstr "گشودن در ویراستار" msgid "\"%s\" is not a known filter." msgstr "\"%s\" یک پالایهٔ شناخته شده نیست." +msgid "" +"Root nodes cannot be accessed as unique names in their own scene. Instantiate " +"in another scene and set as unique name there." +msgstr "" +"گرههای ریشه نمیتوانند در صحنهٔ خود بهعنوان نام یکتا در دسترس قرار بگیرند. در " +"صحنهٔ دیگری نمونهسازی کرده و در آنجا آن را بهعنوان نام یکتا بنشانید." + msgid "Invalid node name, the following characters are not allowed:" msgstr "نام گره نامعتبر است، نویسههای زیر مجاز نیستند:" msgid "A node with the unique name %s already exists in this scene." -msgstr "گرهای با نام بیهمتای %s همین الانشم وجود دارد." +msgstr "گرهای با نام یکتای %s همین الانشم وجود دارد." msgid "Enable Scene Unique Name(s)" -msgstr "بکاراندازی نام بیهمتای پرده(ها)" +msgstr "بهکاراندازی نام یکتای صحنه(ها)" msgid "Rename Node" msgstr "بازنامگذاری گره" @@ -5605,11 +6424,24 @@ msgid "Rename Nodes" msgstr "بازنامگذاری گرهها" msgid "Scene Tree (Nodes):" -msgstr "درخت پرده (گرهها):" +msgstr "درخت صحنه (گرهها):" msgid "Node Configuration Warning!" msgstr "هشدار پیکربندی گره!" +msgid "Revoke" +msgstr "ریواندن (معزول کردن)" + +msgid "Don't Ask Again" +msgstr "دوباره نپرسید" + +msgid "" +"This dialog can also be enabled/disabled in the Editor Settings: Docks > " +"Scene Tree > Ask Before Revoking Unique Name." +msgstr "" +"این گفتار هم میتواند در تنظیمات ویراستار بهکاراندازی/ازکاراندازی شود: " +"لنگرگاهها > درخت صحنه > پیش از ریواندن (معزول کردن) نام یکتا بپرس." + msgid "Allowed:" msgstr "مجاز:" @@ -5623,13 +6455,13 @@ msgid "The Beginning" msgstr "شروع" msgid "Pre-Import Scene" -msgstr "پیشدرونبرد پرده" +msgstr "پیشدرونبرد صحنه" msgid "Importing Scene..." -msgstr "درونبردن پرده..." +msgstr "درونبردن صحنه..." msgid "Import Scene" -msgstr "درونبرد پرده" +msgstr "درونبرد صحنه" msgid "Running Custom Script..." msgstr "در حال اجرای اسکریپت سفارشی..." @@ -5649,6 +6481,9 @@ msgstr "آیا شیء مشتق از Node (گره) را در روش «_post_impor msgid "Saving..." msgstr "در حال ذخیره..." +msgid "<Unnamed Material>" +msgstr "<جنس نامگذارینشده>" + msgid "Import ID: %s" msgstr "درونبرد شناسه: %s" @@ -5660,13 +6495,13 @@ msgstr "" "درونبرد شناسه:%s" msgid "Error opening scene" -msgstr "خطا در گشودن پرده" +msgstr "خطا در گشودن صحنه" msgid "Advanced Import Settings for AnimationLibrary '%s'" msgstr "تنظیمات پیشرفتهٔ درونبرد برای کتابخانهٔ پویانمایی '%s'" msgid "Advanced Import Settings for Scene '%s'" -msgstr "تنظیمات پیشرفتهٔ درونبرد برای پرده '%s'" +msgstr "تنظیمات پیشرفتهٔ درونبرد برای صحنه '%s'" msgid "Select folder to extract material resources" msgstr "گزینش پوشه برای استخراج بنمایههای جنس" @@ -5697,7 +6532,7 @@ msgid "" "Please name it or ensure it is exported with an unique ID." msgstr "" "جنس هیچ گونه نام یا راهی برای شناسایی پس از درونبرد دوباره ندارد.\n" -"لطفا آن را نامگذاری کنید یا مطمعن شوید که با یک شناسهٔ بیهمتا برونبرد میشود." +"لطفا آن را نامگذاری کنید یا مطمعن شوید که با یک شناسهٔ یکتا برونبرد میشود." msgid "Extract Materials to Resource Files" msgstr "استخراج جنسها به پروندههای بنمایه" @@ -5705,6 +6540,9 @@ msgstr "استخراج جنسها به پروندههای بنمایه" msgid "Extract" msgstr "استخراج" +msgid "Already Saving" +msgstr "هماکنون در حال ذخیرهسازی" + msgid "" "This mesh already saves to an external resource, no action will be taken." msgstr "" @@ -5721,11 +6559,11 @@ msgid "" "Please name it or ensure it is exported with an unique ID." msgstr "" "مش هیچ گونه نام یا راهی برای شناسایی پس از درونبرد دوباره ندارد.\n" -"لطفا آن را نامگذاری کنید یا مطمعن شوید که با یک شناسهٔ بیهمتا برونبرد میشود." +"لطفا آن را نامگذاری کنید یا مطمعن شوید که با یک شناسهٔ یکتا برونبرد میشود." msgid "Set paths to save meshes as resource files on Reimport" msgstr "" -"مسیرهایی را برای ذخیرهسازی مشها بعنوان پروندههای بنمایه در بازدرونبرد بنشانید" +"مسیرهایی را برای ذخیرهسازی مشها بهعنوان پروندههای بنمایه در بازدرونبرد بنشانید" msgid "Set Paths" msgstr "نشاندن مسیرها" @@ -5736,6 +6574,11 @@ msgstr "" "این پویانمایی هماکنون هم در یک بنمایهٔ بیرونی ذخیره می شود، هیچ کنشی انجام " "نخواهد شد." +msgid "Set paths to save animations as resource files on Reimport" +msgstr "" +"برای ذخیرهسازی پویانماییها بهعنوان پروندههای بنمایه هنگام بازدرونبرد مسیرها " +"را بنشانید" + msgid "Can't make material external to file, write error:" msgstr "نمی توان جنس را بیرون از پرونده ساخت، خطای نوشتن:" @@ -5760,6 +6603,15 @@ msgstr "جنس" msgid "Selected Animation Play/Pause" msgstr "پخش/درنگ پویانمایی برگزیده" +msgid "Selected Animation Stop" +msgstr "ایستاندن پویانمایی برگزیده" + +msgid "Toggle Animation Skeleton Visibility" +msgstr "روشن/خاموش کردن پدیداری استخوانبندی پویانمایی" + +msgid "Rotate Lights With Model" +msgstr "چرخاندن نورها همراه با مُدِل" + msgid "Primary Light" msgstr "نور اصلی" @@ -5784,6 +6636,9 @@ msgstr "بنمایهٔ نوشتاری" msgid "Binary Resource" msgstr "بنمایهٔ باینری" +msgid "Audio Stream Importer: %s" +msgstr "درونبردگر شارش صوت: %s" + msgid "Enable looping." msgstr "جنبش چرخهای را بکار بیندازید." @@ -5800,6 +6655,9 @@ msgstr "" msgid "Loop:" msgstr "چرخه:" +msgid "BPM:" +msgstr "ضرب در دقیقه (بی.پی.ام):" + msgid "Beat Count:" msgstr "شمار ضرب:" @@ -5813,7 +6671,7 @@ msgid "New Configuration" msgstr "پیکربندی تازه" msgid "Remove Variation" -msgstr "زدایش گوناگونی" +msgstr "برچیدن گوناگونی" msgid "Preloaded glyphs: %d" msgstr "گلیفهای پیشبارشده: %d" @@ -5878,6 +6736,9 @@ msgstr "گلیفها از ترجمهها" msgid "Select translations to add all required glyphs to pre-render list:" msgstr "ترجمهها را برگزینید تا گلیفهای نیاز به فهرست پیشنماپردازش افزوده شوند:" +msgid "Shape all Strings in the Translations and Add Glyphs" +msgstr "شکل دادن به همهٔ رشتههای درون ترجمهها و افزودن گلیفها" + msgid "Glyphs from the Text" msgstr "گلیفها از نوشتار" @@ -5888,6 +6749,9 @@ msgstr "" "یک نوشتار را وارد کنید و ویژگیهای OpenType را برای شکل دادن و افزودن همهٔ " "گلیفهای مورد نیاز به فهرست پیشنماپردازش برگزینید:" +msgid "Shape Text and Add Glyphs" +msgstr "شکل دادن به نوشتار و افزودن گلیفها" + msgid "Glyphs from the Character Map" msgstr "گلیفهای نقشهٔ نویسه" @@ -5905,31 +6769,31 @@ msgid "" "%s: Texture detected as used as a normal map in 3D. Enabling red-green " "texture compression to reduce memory usage (blue channel is discarded)." msgstr "" -"%s: بافت بعنوان یک نقشهٔ بهنجار در سهبعدی بکار میرود. بکاراندازی فشردهسازی " +"%s: بافت بهعنوان یک نقشهٔ بهنجار در سهبعدی بکار میرود. بهکاراندازی فشردهسازی " "بافت قرمز-سبز برای کاهش مصرف حافظه (کانال آبی دور انداخته میشود)." msgid "" "%s: Texture detected as used as a roughness map in 3D. Enabling roughness " "limiter based on the detected associated normal map at %s." msgstr "" -"%s: بافت بعنوان نقشهٔ زبری در سهبعدی بکار میرود. بکاراندازی محدودکنندهٔ زبری بر " -"پایهٔ نقشهٔ بهنجار مرتبط شناساییشده در %s." +"%s: بافت بهعنوان نقشهٔ زبری در سهبعدی بکار میرود. بهکاراندازی محدودکنندهٔ زبری " +"بر پایهٔ نقشهٔ بهنجار مرتبط شناساییشده در %s." msgid "" "%s: Texture detected as used in 3D. Enabling mipmap generation and setting " "the texture compression mode to %s." msgstr "" -"%s: بافت بعنوان بکاررفته در سهبعدی شناسایی شد. بکاراندازی زایش میپمَپ و نشاندن " -"حالت فشردهسازی بافت روی %s." +"%s: بافت بهعنوان بکاررفته در سهبعدی شناسایی شد. بهکاراندازی زایش میپمَپ و " +"نشاندن حالت فشردهسازی بافت روی %s." msgid "2D/3D (Auto-Detect)" -msgstr "۲بعدی/۳بعدی (شناسایی خودکار)" +msgstr "دوبعدی/سهبعدی (شناسایی خودکار)" msgid "2D" -msgstr "۲بعدی" +msgstr "دوبعدی" msgid "3D" -msgstr "۳بعدی" +msgstr "سهبعدی" msgid "" "%s: Atlas texture significantly larger on one axis (%d), consider changing " @@ -5953,7 +6817,7 @@ msgid "%d Files" msgstr "پروندههای %d" msgid "Set as Default for '%s'" -msgstr "نشاندن بعنوان پیشفرض برای '%s'" +msgstr "نشاندن بهعنوان پیشفرض برای '%s'" msgid "Clear Default for '%s'" msgstr "پاک کردن پیشفرض برای '%s'" @@ -5970,7 +6834,7 @@ msgstr "" "بازدرونبرد» دگرشهای انجام شده در لنگرگاه درونبرد را دور میاندازد." msgid "Import As:" -msgstr "درونبرد بعنوان:" +msgstr "درونبرد بهعنوان:" msgid "Preset" msgstr "پیشنشانده" @@ -5985,6 +6849,13 @@ msgstr "" "بنمایهٔ درونبردشده هماکنون بار شده است. همهٔ نمونهها جایگزین میشوند و تاریخچهٔ " "بازگردانی پاک خواهد شد." +msgid "" +"WARNING: Assets exist that use this resource. They may stop loading properly " +"after changing type." +msgstr "" +"هشدار: داراییهایی هستند که این بنمایه را به کار میبرند. شاید پس از دگرگون " +"کردن گونه دیگر بهدرستی بار نشوند." + msgid "" "Select a resource file in the filesystem or in the inspector to adjust import " "settings." @@ -6028,11 +6899,25 @@ msgstr "دستگاه:" msgid "Command / Control (auto)" msgstr "فرمان / کنترل (خودکار)" +msgid "Keycode (Latin Equivalent)" +msgstr "کد کلید (همارز لاتین)" + +msgid "Physical Keycode (Position on US QWERTY Keyboard)" +msgstr "کد کلید فیزیکی (نهشت در تختهکلید کوئرتی آمریکایی)" + +msgid "Physical location" +msgstr "جایگاه فیزیکی" + msgid "Any" msgstr "هر" +msgid "" +"The following resources will be duplicated and embedded within this resource/" +"object." +msgstr "بنمایههای زیر درون این بنمایه/شیء دوتاسازی و نهادینه خواهند شد." + msgid "This object has no resources." -msgstr "این شیء هیچ بنمایه ای ندارد." +msgstr "این شیء هیچ بنمایهای ندارد." msgid "Failed to load resource." msgstr "ناکامی در بارکردن بنمایه." @@ -6044,10 +6929,16 @@ msgid "Expand Non-Default" msgstr "گسترش ناپیشفرض" msgid "Property Name Style" -msgstr "سبک نام ویژگی" +msgstr "حالت نام ویژگی" msgid "Raw (e.g. \"%s\")" -msgstr "خام (مثلا \"%s\")" +msgstr "خام (برای نمونه: «%s»)" + +msgid "Capitalized (e.g. \"%s\")" +msgstr "حرفهای بزرگ (برای نمونه: «%s»)" + +msgid "Localized (e.g. \"Z Index\")" +msgstr "بومیساخته (برای نمونه: «اندیس Z»)" msgid "Localization not available for current language." msgstr "بومیسازی برای زبان کنونی در دسترس نیست." @@ -6059,7 +6950,7 @@ msgid "Paste Properties" msgstr "چسباندن ویژگیها" msgid "Make Sub-Resources Unique" -msgstr "بیهمتا کردن زیربنمایهها" +msgstr "یکتا کردن زیربنمایهها" msgid "Create a new resource in memory and edit it." msgstr "ساخت یک بنمایهٔ نو در حافظه و ویرایش آن." @@ -6103,17 +6994,43 @@ msgstr "مدیریت ویژگیهای شی." msgid "This cannot be undone. Are you sure?" msgstr "برگشتناپذیر است. آیا مطمئناید؟" +msgid "Add %d Translation" +msgid_plural "Add %d Translations" +msgstr[0] "افزودن %d ترجمه" +msgstr[1] "افزودن %d ترجمه" + msgid "Remove Translation" -msgstr "زدایش ترجمه" +msgstr "برچیدن ترجمه" + +msgid "Translation Resource Remap: Add %d Path" +msgid_plural "Translation Resource Remap: Add %d Paths" +msgstr[0] "بازنهادن بنمایهٔ ترجمه: افزودن %d مسیر" +msgstr[1] "بازنهادن بنمایهٔ ترجمه: افزودن %d مسیر" + +msgid "Translation Resource Remap: Add %d Remap" +msgid_plural "Translation Resource Remap: Add %d Remaps" +msgstr[0] "بازنهادن بنمایهٔ ترجمه: افزودن %d بازنهانی" +msgstr[1] "بازنهادن بنمایهٔ ترجمه: افزودن %d بازنهانی" msgid "Change Resource Remap Language" msgstr "زبان بازنهادن بنمایه را دگرگون کنید" +msgid "Remove Resource Remap" +msgstr "برچیدن بازنهانی بنمایه" + +msgid "Remove Resource Remap Option" +msgstr "برچیدن گزینهٔ بازنهانی بنمایه" + +msgid "Add %d file for POT generation" +msgid_plural "Add %d files for POT generation" +msgstr[0] "افزودن %d پرونده برای زایش پی.اُ.تی" +msgstr[1] "افزودن %d پرونده برای زایش پی.اُ.تی" + msgid "Remove file from POT generation" -msgstr "زدایش پرونده از زایش POT" +msgstr "برچیدن پرونده از زایش پی.اُ.تی" msgid "Removed" -msgstr "زدوده" +msgstr "برچیده" msgid "%s cannot be found." msgstr "%s را نمیتوان پیدا کرد." @@ -6136,9 +7053,18 @@ msgstr "بازنهادهها بر پایهٔ بومیسازی:" msgid "Locale" msgstr "بومی" +msgid "POT Generation" +msgstr "زایش پی.اُ.تی" + msgid "Files with translation strings:" msgstr "پروندههای دارای رشتهٔ ترجمه:" +msgid "Generate POT" +msgstr "زایش پی.اُ.تی" + +msgid "Add Built-in Strings to POT" +msgstr "افزودن رشتههای درونساخته به پی.اُ.تی" + msgid "Add strings from built-in components such as certain Control nodes." msgstr "رشتههایی از مولفههای درونساختهای مانند گرههای کنترل معینی را بیفزایید." @@ -6179,10 +7105,10 @@ msgid "Insert Point" msgstr "جایگذاری نقطه" msgid "Edit Polygon (Remove Point)" -msgstr "ویرایش چندضلعی (زدایش نقطه)" +msgstr "ویرایش چندضلعی (برچیدن نقطه)" msgid "Remove Polygon And Point" -msgstr "زدایش چندضلعی و نقطه" +msgstr "برچیدن چندضلعی و نقطه" msgid "Add Animation" msgstr "افزودن پویانمایی" @@ -6212,11 +7138,22 @@ msgid "Add Animation Point" msgstr "افزودن نقطه پویانمایی" msgid "Remove BlendSpace1D Point" -msgstr "زدایش نقطهٔ BlendSpace1D" +msgstr "برچیدن نقطهٔ BlendSpace1D" msgid "Move BlendSpace1D Node Point" msgstr "جابهجایی نقطهٔ گرهٔ BlendSpace1D" +msgid "" +"AnimationTree is inactive.\n" +"Activate to enable playback, check node warnings if activation fails." +msgstr "" +"AnimationTree نافعال است.\n" +"برای بهکاراندازی بازنواخت آن را فعال کنید، در صورت ناکامی در فعالسازی " +"هشدارهای گره را بررسی کنید." + +msgid "Set the blending position within the space" +msgstr "نشاندن نهشت درآمیزی درون فضا" + msgid "Select and move points, create points with RMB." msgstr "نقطهها را گزینش و جابهجا کنید، نقطهها را با راستکلیک بسازید." @@ -6251,10 +7188,10 @@ msgid "Change BlendSpace2D Labels" msgstr "دگرش برچسبهای BlendSpace2D" msgid "Remove BlendSpace2D Point" -msgstr "زدایش نقطهٔ BlendSpace2D" +msgstr "برچیدن نقطهٔ BlendSpace2D" msgid "Remove BlendSpace2D Triangle" -msgstr "زدایش مثلث BlendSpace2D" +msgstr "برچیدن مثلث BlendSpace2D" msgid "No triangles exist, so no blending can take place." msgstr "هیچ مثلثی وجود ندارد، بنابراین هیچ درآمیزشی نمیتواند انجام شود." @@ -6278,7 +7215,7 @@ msgid "Output node can't be added to the blend tree." msgstr "گرهٔ بروندادی را نمیتوان به درخت درآمیزش افزود." msgid "Add Node to BlendTree" -msgstr "افزودن گره به درخت درآمیزی" +msgstr "افزودن گره به BlendTree" msgid "Node Moved" msgstr "گره حرکت کرد" @@ -6296,10 +7233,10 @@ msgid "Set Animation" msgstr "نشاندن پویانمایی" msgid "Delete Node" -msgstr "حذف گره" +msgstr "زدایش گره" msgid "Delete Node(s)" -msgstr "حذف گره(ها)" +msgstr "زدایش گره(ها)" msgid "Toggle Filter On/Off" msgstr "روشن/خاموش کردن پالایه" @@ -6326,6 +7263,9 @@ msgstr "" msgid "Anim Clips" msgstr "کلیپهای پویانمایی" +msgid "Audio Clips" +msgstr "تکههای شنیداری" + msgid "Functions" msgstr "تابعها" @@ -6342,7 +7282,7 @@ msgid "Add Node..." msgstr "افزودن گره..." msgid "Enable Filtering" -msgstr "بکاراندازی پالایش" +msgstr "بهکاراندازی پالایش" msgid "Fill Selected Children" msgstr "پر کردن فرزندان برگزیده" @@ -6350,6 +7290,24 @@ msgstr "پر کردن فرزندان برگزیده" msgid "Invert" msgstr "وارونه کردن" +msgid "Start of Animation" +msgstr "آغاز پویانمایی" + +msgid "End of Animation" +msgstr "پایان پویانمایی" + +msgid "Set Custom Timeline from Marker" +msgstr "نشاندن خط زمانی سفارشی از نشانگذار" + +msgid "Select Markers" +msgstr "گزینش نشانگذارها" + +msgid "Start Marker" +msgstr "نشانگذار آغاز" + +msgid "End Marker" +msgstr "نشانگذار پایان" + msgid "Library Name:" msgstr "نام کتابخانه:" @@ -6393,41 +7351,41 @@ msgid "" "This animation library can't be saved because it does not belong to the " "edited scene. Make it unique first." msgstr "" -"این کتابخانهٔ پویانمایی نمیتواند ذخیره شود زیرا به یک پردهٔ ویراسته تعلق ندارد. " -"نخست آن را بیهمتا کنید." +"این کتابخانهٔ پویانمایی نمیتواند ذخیره شود زیرا به یک صحنهٔ ویراسته تعلق ندارد. " +"نخست آن را یکتا کنید." msgid "" "This animation library can't be saved because it was imported from another " "file. Make it unique first." msgstr "" "این کتابخانهٔ پویانمایی نمیتواند ذخیره شود زیرا از پروندهٔ دیگری درونبرد شده " -"است. نخست آن را بیهمتا کنید." +"است. نخست آن را یکتا کنید." msgid "Save Library" msgstr "ذخیره کتابخانه" msgid "Make Animation Library Unique: %s" -msgstr "بیهمتاسازی کتابخانهٔ پویانمایی: %s" +msgstr "یکتاسازی کتابخانهٔ پویانمایی: %s" msgid "" "This animation can't be saved because it does not belong to the edited scene. " "Make it unique first." msgstr "" -"این پویانمایی نمیتواند ذخیره شود زیرا به یک پردهٔ ویراسته تعلق ندارد. نخست آن " -"را بیهمتا کنید." +"این پویانمایی نمیتواند ذخیره شود زیرا به یک صحنهٔ ویراسته تعلق ندارد. نخست آن " +"را یکتا کنید." msgid "" "This animation can't be saved because it was imported from another file. Make " "it unique first." msgstr "" "این پویانمایی نمیتواند ذخیره شود زیرا از پروندهٔ دیگری درونبرد شده است. نخست " -"آن را بیهمتا کنید." +"آن را یکتا کنید." msgid "Save Animation" msgstr "ذخیره پویانمایی" msgid "Make Animation Unique: %s" -msgstr "بیهمتاسازی پویانمایی: %s" +msgstr "یکتاسازی پویانمایی: %s" msgid "Save Animation library to File: %s" msgstr "ذخیرهٔ کتابخانهٔ پویانمایی در پروندهٔ: %s" @@ -6478,10 +7436,10 @@ msgid "Open in Inspector" msgstr "گشودن در بازرس" msgid "Remove Animation Library: %s" -msgstr "زدایش کتابخانه پویانمایی: %s" +msgstr "برچیدن کتابخانهٔ پویانمایی: %s" msgid "Remove Animation from Library: %s" -msgstr "زدایش پویانمایی از کتابخانه: %s" +msgstr "برچیدن پویانمایی از کتابخانه: %s" msgid "[built-in]" msgstr "[تعبیه شده]" @@ -6505,7 +7463,7 @@ msgid "Save animation library to resource on disk." msgstr "کتابخانهٔ پویانمایی را روی بنمایهٔ درون دیسک ذخیره کن." msgid "Remove animation library." -msgstr "زدایش کتابخانهٔ پویانمایی." +msgstr "برچیدن کتابخانهٔ پویانمایی." msgid "Copy animation to clipboard." msgstr "روگرفت پویانمایی در بریدهدان(clipboard)." @@ -6514,7 +7472,7 @@ msgid "Save animation to resource on disk." msgstr "پویانمایی را روی بنمایهٔ درون دیسک ذخیره کن." msgid "Remove animation from Library." -msgstr "زدایش پویانمایی از کتابخانه." +msgstr "برچیدن پویانمایی از کتابخانه." msgid "Edit Animation Libraries" msgstr "ویرایش کتابخانههای پویانمایی" @@ -6553,7 +7511,7 @@ msgid "Delete Animation '%s'?" msgstr "زدایش پویانمایی %s ؟" msgid "Remove Animation" -msgstr "زدایش پویانمایی" +msgstr "برچیدن پویانمایی" msgid "Invalid animation name!" msgstr "نام پویانمایی نامعتبر است!" @@ -6576,6 +7534,21 @@ msgstr "نام پویانمایی دوتاشده:" msgid "Onion skinning requires a RESET animation." msgstr "پوستپیازی به یک پویانمایی RESET نیاز دارد." +msgid "Play Animation Backwards" +msgstr "پخش وارونهوار پویانمایی" + +msgid "Play Animation Backwards from End" +msgstr "پخش وارونهوار پویانمایی از پایان" + +msgid "Pause/Stop Animation" +msgstr "درنگ/ایستاندن پویانمایی" + +msgid "Play Animation from Start" +msgstr "پخش پویانمایی از آغاز" + +msgid "Play Animation" +msgstr "پخش پویانمایی" + msgid "Animation position (in seconds)." msgstr "نهشت پویانمایی (به ثانیه)." @@ -6604,7 +7577,7 @@ msgid "Autoplay on Load" msgstr "پخش خودکار پس از بارگذاری" msgid "Enable Onion Skinning" -msgstr "بکاراندازی پوستپیازی" +msgstr "بهکاراندازی پوستپیازی" msgid "Onion Skinning Options" msgstr "گزینههای پوستپیازی" @@ -6634,7 +7607,7 @@ msgid "Differences Only" msgstr "تنها تفاوتها" msgid "Include Gizmos (3D)" -msgstr "دربرگرفتن گیزموها (۳بعدی)" +msgstr "دربرگیری گیزموها (سهبعدی)" msgid "Pin AnimationPlayer" msgstr "سنجاق کردن AnimationPlayer" @@ -6645,6 +7618,12 @@ msgstr "زمان درآمیزی:" msgid "Next (Auto Queue):" msgstr "بعدی (صف خودکار):" +msgid "Go to Next Keyframe" +msgstr "رفتن به فریم کلیدی بعدی" + +msgid "Go to Previous Keyframe" +msgstr "رفتن به فریم کلیدی پیشین" + msgid "Toggle Animation Bottom Panel" msgstr "روشن/خاموش کردن پهنهٔ پایینی پویانمایی" @@ -6679,10 +7658,21 @@ msgid "No playback resource set at path: %s." msgstr "هیچ بنمایهٔ بازنواختی در مسیر نشانده نیست: %s." msgid "Node Removed" -msgstr "گره حذف شد" +msgstr "گره برچیده شد" msgid "Transition Removed" -msgstr "گذار زدوده شد" +msgstr "گذار برچیده شد" + +msgid "" +"Select and move nodes.\n" +"RMB: Add node at position clicked.\n" +"Shift+LMB+Drag: Connects the selected node with another node or creates a new " +"node if you select an area without nodes." +msgstr "" +"گزینش و جابهجایی گرهها.\n" +"راستکلیک: افزودن گره در نهشت کلیکشده.\n" +"شیفت+چپکلیک+کشاندن: گرهٔ برگزیده را به گرهای دیگر اتصال میدهد یا اگر دامنهای " +"بیگره را برگزینید گرهای نو میسازد." msgid "Create new nodes." msgstr "ساخت گرههای جدید." @@ -6691,7 +7681,7 @@ msgid "Connect nodes." msgstr "اتصال گرهها." msgid "Remove selected node or transition." -msgstr "گرهٔ برگزیده را گذار کن یا بزدا." +msgstr "گرهٔ برگزیده را گذار کن یا برچین." msgid "Transition:" msgstr "گذار:" @@ -6703,7 +7693,7 @@ msgid "Play Mode:" msgstr "حالت پخش:" msgid "Delete Selected" -msgstr "حذف انتخاب شده" +msgstr "زدایش برگزیده" msgid "Delete All" msgstr "زدایش همه" @@ -6714,6 +7704,9 @@ msgstr "ریشه" msgid "AnimationTree" msgstr "درخت پویانمایی" +msgid "Toggle AnimationTree Bottom Panel" +msgstr "روشن/خاموش کردن پهنهٔ پایینی AnimationTree" + msgid "Author" msgstr "نویسنده" @@ -6894,11 +7887,14 @@ msgid "Assets ZIP File" msgstr "پروندهٔ ZIP داراییها" msgid "Audio Preview Play/Pause" -msgstr "پیشنمایش شنیداری پخش/درنگ" +msgstr "پخش/درنگ پیشنمایش صوت" msgid "Bone Picker:" msgstr "برگزینندهٔ استخوان:" +msgid "Clear mappings in current group." +msgstr "نهانیهای گروه کنونی را پاک کنید." + msgid "Preview" msgstr "پیش نمایش" @@ -6911,6 +7907,9 @@ msgstr "بازه از مبدا توری:" msgid "Grid Step:" msgstr "گام توری:" +msgid "Primary Line Every:" +msgstr "خط اصلی هر:" + msgid "Rotation Offset:" msgstr "بازه از مبدا چرخش:" @@ -6935,7 +7934,7 @@ msgid "Create Vertical Guide" msgstr "ساخت راهنمای عمودی" msgid "Remove Vertical Guide" -msgstr "زدایش راهنمای عمودی" +msgstr "برچیدن راهنمای عمودی" msgid "Move Horizontal Guide" msgstr "جابهجایی راهنمای افقی" @@ -6944,7 +7943,7 @@ msgid "Create Horizontal Guide" msgstr "ساخت راهنمای افقی" msgid "Remove Horizontal Guide" -msgstr "زدایش راهنمای افقی" +msgstr "برچیدن راهنمای افقی" msgid "Create Horizontal and Vertical Guides" msgstr "ساخت راهنمای عمودی و افقی" @@ -6971,7 +7970,7 @@ msgid "Add Node Here..." msgstr "افزودن گره در اینجا..." msgid "Instantiate Scene Here..." -msgstr "نمونهسازی پرده در اینجا..." +msgstr "نمونهسازی صحنه در اینجا..." msgid "Paste Node(s) Here" msgstr "چسباندن گره(ها) در اینجا" @@ -7043,7 +8042,7 @@ msgid "Zoom to 1600%" msgstr "بزرگنمایی به ۱۶۰۰%" msgid "Center View" -msgstr "نمای کانونی" +msgstr "نمای مرکزی" msgid "Select Mode" msgstr "انتخاب حالت" @@ -7061,6 +8060,9 @@ msgid "Alt+RMB: Show list of all nodes at position clicked, including locked." msgstr "" "Alt+کلید راست موس: نمایش فهرست همهٔ گرهها در نهشت کلیکشده، شامل قفلیدهها." +msgid "(Available in all modes.)" +msgstr "(دردسترس در همهٔ حالتها.)" + msgid "RMB: Add node at position clicked." msgstr "کلید راست موس: افزودن گره به نهشت کلیکشده." @@ -7076,6 +8078,28 @@ msgstr "حالت مقیاس" msgid "Show list of selectable nodes at position clicked." msgstr "نشان دادن فهرستی از گیرههای قابل انتخاب در موقعیت کلیک شده." +msgid "Click to change object's pivot." +msgstr "برای دگرگون کردن لولای شیء کلیک کنید." + +msgid "Shift: Set temporary pivot." +msgstr "شیفت: نشاندن لولای موقت." + +msgid "" +"Click this button while holding Shift to put the temporary pivot in the " +"center of the selected nodes." +msgstr "" +"برای گذاشتن لولای موقت در مرکز گرههای برگزیده هنگام نگه داشتن شیفت روی این " +"دکمه کلیک کنید." + +msgid "Pan Mode" +msgstr "حالت سراسرنمایی" + +msgid "" +"You can also use Pan View shortcut (Space by default) to pan in any mode." +msgstr "" +"همچنین میتوانید میانبر نمای سراسرنمایی (پیشفرضانه کلید فاصله) را برای " +"سراسرنمایی در هر حالتی به کار ببرید." + msgid "Ruler Mode" msgstr "حالت خطکش" @@ -7083,25 +8107,25 @@ msgid "Toggle smart snapping." msgstr "روشن/خاموش کردن چفت هوشمند." msgid "Use Smart Snap" -msgstr "بکارگیری چفت هوشمند" +msgstr "بهکارگیری چفت هوشمند" msgid "Toggle grid snapping." msgstr "روشن/خاموش کردن چفت توری." msgid "Use Grid Snap" -msgstr "بکارگیری چفت توری" +msgstr "بهکارگیری چفت توری" msgid "Snapping Options" msgstr "گزینههای چفت" msgid "Use Rotation Snap" -msgstr "بکارگیری چفت چرخش" +msgstr "بهکارگیری چفت چرخش" msgid "Use Scale Snap" msgstr "بهکارگیری چفت مقیاس" msgid "Use Pixel Snap" -msgstr "بکارگیری چفت پیکسلی" +msgstr "بهکارگیری چفت پیکسلی" msgid "Snap to Parent" msgstr "چفت به سرپرست" @@ -7113,11 +8137,14 @@ msgid "Snap to Node Sides" msgstr "چفتاندن به پهلوهای گره" msgid "Snap to Node Center" -msgstr "چفتاندن به کانون گره" +msgstr "چفتاندن به مرکز گره" msgid "Snap to Other Nodes" msgstr "چفتاندن به دیگر گرهها" +msgid "Snap to Guides" +msgstr "چفتاندن به راهنماها" + msgid "Smart Snapping" msgstr "چفت هوشمند" @@ -7136,6 +8163,9 @@ msgstr "گزینههای اسکلت" msgid "Show Bones" msgstr "نشان دادن استخوانها" +msgid "Make Bone2D Node(s) from Node(s)" +msgstr "ساخت گره(های) Bone2D از گره(ها)" + msgid "View" msgstr "دیدن" @@ -7164,7 +8194,7 @@ msgid "Show Origin" msgstr "نمایش خاستگاه" msgid "Show Viewport" -msgstr "نشان دادن دیدگستره" +msgstr "نمایش دیدگستره" msgid "Lock" msgstr "قفل" @@ -7236,16 +8266,19 @@ msgid "Adding %s..." msgstr "در حال اضافه کردن %s..." msgid "Error instantiating scene from %s." -msgstr "خطا در نمونهسازی پرده از %s." +msgstr "خطا در نمونهسازی صحنه از %s." msgid "Create Node" msgstr "ساخت گره" +msgid "Can't instantiate multiple nodes without root." +msgstr "نمیتوان چندین گره را بیریشه نمونهسازی کرد." + msgid "Can't instantiate: %s" msgstr "نمیتوان نمونهساخت: %s" msgid "Creating inherited scene from: %s" -msgstr "در حال ساخت پردهٔ ارثبرده از: %s" +msgstr "در حال ساخت صحنهٔ ارثبرده از: %s" msgid "Instantiating: " msgstr "نمونهسازی: " @@ -7253,9 +8286,23 @@ msgstr "نمونهسازی: " msgid "Adding %s and %s..." msgstr "در حال افزودن %s و %s..." +msgid "" +"Drag and drop to add as sibling of selected node (except when root is " +"selected)." +msgstr "" +"برای افزودن بهعنوان همنیای گرهٔ برگزیده (بهجز زمانی که ریشه برگزیده باشد) " +"بکشانید و بیندازید." + msgid "Hold Shift when dropping to add as child of selected node." msgstr "" -"هنگام انداختن شیفت را نگه دارید تا بعنوان فرزند گره انتخاب شده افزوده شود." +"هنگام انداختن شیفت را نگه دارید تا بهعنوان فرزند گرهٔ برگزیده افزوده شود." + +msgid "Hold Alt when dropping to add as child of root node." +msgstr "هنگام انداختن آلْت را نگه دارید تا بهعنوان فرزند گرهٔ ریشه افزوده شود." + +msgid "Hold Alt + Shift when dropping to add as different node type." +msgstr "" +"هنگام انداختن آلْت + شیفت را نگه دارید تا بهعنوان گونهٔ گرهٔ متفاوتی افزوده شود." msgid "Change Default Type" msgstr "دگرش گونهٔ پیشفرض" @@ -7285,6 +8332,9 @@ msgstr "این گره فرزند یک کنترل معمولی است." msgid "Use anchors and the rectangle for positioning." msgstr "لنگرها و مستطیل را برای جایگذاری بکار ببرید." +msgid "Container Default" +msgstr "پیشفرض گنجایه" + msgid "Fill" msgstr "پر کردن" @@ -7292,7 +8342,7 @@ msgid "Shrink Begin" msgstr "آغاز تنجش" msgid "Shrink Center" -msgstr "کانون تنجش" +msgstr "مرکز تنجش" msgid "Shrink End" msgstr "پایان تنجش" @@ -7307,25 +8357,25 @@ msgid "Top Left" msgstr "چپ بالا" msgid "Center Top" -msgstr "کانون بالا" +msgstr "مرکز بالا" msgid "Top Right" msgstr "راست بالا" msgid "Center Left" -msgstr "کانون چپ" +msgstr "مرکز چپ" msgid "Center" -msgstr "کانون" +msgstr "مرکز" msgid "Center Right" -msgstr "کانون راست" +msgstr "مرکز راست" msgid "Bottom Left" msgstr "چپ پایین" msgid "Center Bottom" -msgstr "کانون پایین" +msgstr "مرکز پایین" msgid "Bottom Right" msgstr "راست پایین" @@ -7355,7 +8405,7 @@ msgid "Add Curve Point" msgstr "اضافه کردن نقطه منحنی" msgid "Remove Curve Point" -msgstr "حذف نقطهٔ منحنی" +msgstr "برچیدن نقطهٔ کمانه" msgid "Modify Curve Point" msgstr "ویرایش نقطهٔ منحنی" @@ -7373,7 +8423,7 @@ msgid "Toggle Debugger Bottom Panel" msgstr "روشن/خاموش کردن پهنهٔ پایینی اشکالزدا" msgid "Deploy with Remote Debug" -msgstr "استقرار با اشکال یابی از راه دور" +msgstr "بهکارگیری با اشکالزدایی از راه دور" msgid "Visible Collision Shapes" msgstr "شکلهای پدیدار برخوردگاه" @@ -7382,10 +8432,13 @@ msgid "Visible Paths" msgstr "مسیرهای پدیدار" msgid "Visible Navigation" -msgstr "رهیابی پدیدار" +msgstr "ناوبری پدیدار" + +msgid "Visible Avoidance" +msgstr "پرهیز پدیدار" msgid "Synchronize Scene Changes" -msgstr "همگامسازی دگرشهای پرده" +msgstr "همگامسازی دگرشهای صحنه" msgid "Synchronize Script Changes" msgstr "همگام سازی تغییرات اسکریپت" @@ -7449,8 +8502,11 @@ msgctxt "Locale" msgid "Add Script" msgstr "افزودن اسکریپت" +msgid "Add Locale" +msgstr "افزودن بوم" + msgid "No supported features" -msgstr "بدون ویژگی پشتیبانی شده" +msgstr "بدون ویژگی پشتیبانیشده" msgid "Features (%d of %d set)" msgstr "ویژگیها (%d از %d ست)" @@ -7464,9 +8520,102 @@ msgstr "زبان آسیای شرقی" msgid "Numeral Alignment" msgstr "تراز شمارهای" +msgid "Variation" +msgstr "گوناگونی" + msgid "Unable to preview font" msgstr "ناتوانی در پیشنمایش قلم" +msgid "Game starting..." +msgstr "بازی در حال راهاندازی..." + +msgid "Game running not embedded." +msgstr "اجرای بازی نهادینهشده نیست." + +msgid "Press play to start the game." +msgstr "برای راهاندازی بازی پخش را بفشارید." + +msgid "Embedding is disabled." +msgstr "نهادینهسازی ازکارافتاده است." + +msgid "" +"Game embedding not available on Wayland.\n" +"Wayland can be disabled in the Editor Settings (Run > Platforms > Linux/*BSD " +"> Prefer Wayland)." +msgstr "" +"نهادینهسازی بازی در وِیلَند (Wayland) در دسترس نیست.\n" +"ویلند میتواند در تنظیمات ویراستار (اجرا > سکوها > لینوکس/*بی.اس.دی > ترجیح " +"دادن ویلند) از کار بیفتد." + +msgid "Game embedding not available on your OS." +msgstr "نهادینهسازی بازی در سامانهٔ عامل شما در دسترس نیست." + +msgid "" +"Game embedding not available for the Display Server: '%s'.\n" +"Display Server can be modified in the Project Settings (Display > Display " +"Server > Driver)." +msgstr "" +"نهادینهسازی بازی برای سِرور نمایشگر در دسترس نیست: «%s».\n" +"سرور نمایشگر میتواند در تنظیمات ویراستار (نمایش > سرور نمایشگر > دِرایوِر) " +"دگرگون شود." + +msgid "Game embedding not available in single window mode." +msgstr "نهادینهسازی بازی در حالت تکپنجرگی در دسترس نیست." + +msgid "Next Frame" +msgstr "فریم بعدی" + +msgid "Input" +msgstr "درونداد" + +msgid "Toggle Selection Visibility" +msgstr "روشن/خاموش کردن پدیداری برگزیده" + +msgid "Alt+RMB: Show list of all nodes at position clicked." +msgstr "Alt+کلید راست موس: نمایش فهرست همهٔ گرهها در نهشت کلیکشده." + +msgid "Override the in-game camera." +msgstr "بازنویسی دوربین درون بازی." + +msgid "Camera Override Options" +msgstr "گزینههای بازنویسی دوربین" + +msgid "Reset 2D Camera" +msgstr "بازنشاندن دوربین دوبعدی" + +msgid "Reset 3D Camera" +msgstr "بازنشاندن دوربین سهبعدی" + +msgid "Manipulate In-Game" +msgstr "دستکاری درون بازی" + +msgid "Manipulate From Editors" +msgstr "دستکاری از ویراستارها" + +msgid "" +"Embedded game size is based on project settings.\n" +"The 'Keep Aspect' mode is used when the Game Workspace is smaller than the " +"desired size." +msgstr "" +"اندازهٔ بازی نهادینهشده به تنظیمات پروژه بستگی دارد.\n" +"هنگامی که محیط کاری کوچکتر از اندازهٔ مطلوب باشد حالت «نگهداری نسبت» به کار " +"میرود." + +msgid "Keep the aspect ratio of the embedded game." +msgstr "نسبت نمای بازی نهادینهشده را نگه دارید." + +msgid "Embedded game size stretches to fit the Game Workspace." +msgstr "اندازهٔ بازی نهادینهشده کشش مییابد تا در محیط کاری بازی بگنجد." + +msgid "Embedding Options" +msgstr "گزینههای نهادینهسازی" + +msgid "Make Game Workspace Floating on Next Play" +msgstr "شناورسازی محیط کاری بازی در اجرای بعدی" + +msgid "Game Workspace" +msgstr "محیط کاری بازی" + msgid "Change Camera Size" msgstr "تغییر اندازه دوربین" @@ -7527,11 +8676,14 @@ msgstr "اندازه ویدئو رم: %s مگابایت ( %s)" msgid "Bake SDF" msgstr "پخت SDF" +msgid "Select path for SDF Texture" +msgstr "گزینش مسیر برای بافت اس.دی.اف" + msgid "Add Gradient Point" msgstr "افزودن نقطهٔ گرادیان" msgid "Remove Gradient Point" -msgstr "زدایش نقطهٔ گرادیان" +msgstr "برچیدن نقطهٔ گرادیان" msgid "Move Gradient Point" msgstr "جابهجایی نقطهٔ گرادیان" @@ -7543,7 +8695,7 @@ msgid "Create Occluder Polygon" msgstr "ساخت چندضلعی بندآور" msgid "No editor scene root found." -msgstr "ریشهٔ پردهٔ هیچ ویراستاری پیدا نشد." +msgstr "ریشهٔ صحنهٔ هیچ ویراستاری پیدا نشد." msgid "Couldn't create a Trimesh collision shape." msgstr "ناتوانی در ساخت یک شکل برخوردگاه Trimesh." @@ -7557,38 +8709,47 @@ msgstr "ناتوانی در ساخت یک شکل برخوردگاه ساده msgid "Couldn't create any collision shapes." msgstr "ناتوانی در ساخت هرگونه شکل برخوردگاه." +msgid "Can't create a collision shape as sibling for the scene root." +msgstr "نمیتوان شکل برخوردگاهی را بهعنوان همنیا برای ریشهٔ صحنه ساخت." + msgid "Mesh is empty!" msgstr "مش تهی است!" +msgid "No mesh to unwrap." +msgstr "هیچ مِشی برای بیپوشش کردن نیست." + msgid "" "Mesh cannot unwrap UVs because it does not belong to the edited scene. Make " "it unique first." msgstr "" -"مش نمیتواند فرابنفشها را بیپوشش کند زیرا به پردهٔ ویراسته تعلق ندارد. نخست آن " -"را بیهمتا کنید." +"مش نمیتواند فرابنفشها را بیپوشش کند زیرا به صحنهٔ ویراسته تعلق ندارد. نخست آن " +"را یکتا کنید." msgid "" "Mesh cannot unwrap UVs because it belongs to another resource which was " "imported from another file type. Make it unique first." msgstr "" "مش نمیتواند فرابنفشها را بیپوشش کند زیرا به بنمایهٔ دیگری که از گونه پروندهٔ " -"دیگری درونبرد شده است تعلق دارد. نخست آن را بیهمتا کنید." +"دیگری درونبرد شده است تعلق دارد. نخست آن را یکتا کنید." msgid "" "Mesh cannot unwrap UVs because it was imported from another file type. Make " "it unique first." msgstr "" "مش نمیتواند فرابنفشها را بیپوشش کند زیرا از گونه پروندهٔ دیگری درونبرد شده " -"است. نخست آن را بیهمتا کنید." +"است. نخست آن را یکتا کنید." msgid "Unwrap UV2" msgstr "بیپوشش کردن فرابنفش ۲" +msgid "Can't unwrap mesh with blend shapes." +msgstr "نمیتوان مِش دارای شکلهای درآمیزی را بیپوشش کرد." + msgid "No mesh to debug." msgstr "مشی برای اشکالزدایی نیست." msgid "Create Navigation Mesh" -msgstr "ساخت مش رهیابی" +msgstr "ساخت مش ناوبری" msgid "Mesh has no surface to create outlines from." msgstr "مش هیچ سطحی برای ساخت پیراخط از آن ندارد." @@ -7615,7 +8776,7 @@ msgid "" "that property isn't possible." msgstr "" "یک مش پیراخط میسازد. بهنجارهای مش پیراخط خودکارانه وارونه میشوند.\n" -"میتواند هنگامی که بکارگیری ویژگی رشد (grow) StandardMaterial نشدنیست بجای آن " +"میتواند هنگامی که بهکارگیری ویژگی رشد (grow) StandardMaterial نشدنیست بجای آن " "بکار برود." msgid "View UV1" @@ -7636,33 +8797,42 @@ msgstr "ساخت شکل برخوردگاه" msgid "Collision Shape placement" msgstr "جایگاه شکل برخوردگاه" +msgid "Sibling" +msgstr "همنیا" + +msgid "Creates collision shapes as Sibling." +msgstr "شکل برخوردگاهها را بهعنوان همنیا میسازد." + msgid "Collision Shape Type" msgstr "گونهٔ شکل برخوردگاه" +msgid "Create NavigationMesh" +msgstr "ساخت NavigationMesh" + msgid "Remove item %d?" -msgstr "زدایش %d مورد؟" +msgstr "برچیدن %d مورد؟" msgid "" "Update from existing scene?:\n" "%s" msgstr "" -"بهروزرسانی از پردهٔ موجود؟:\n" +"بهروزرسانی از صحنهٔ موجود؟:\n" "%s" msgid "Add Item" msgstr "افزودن مورد" msgid "Remove Selected Item" -msgstr "حذف مورد انتخابشده" +msgstr "برچیدن مورد برگزیده" msgid "Import from Scene (Ignore Transforms)" -msgstr "درونبردن از پرده (نادیده گرفتن ترادیسیها)" +msgstr "درونبردن از صحنه (نادیده گرفتن ترادیسیها)" msgid "Import from Scene (Apply Transforms)" -msgstr "درونبردن از پرده (بکاربستن ترادیسیها)" +msgstr "درونبردن از صحنه (بکاربستن ترادیسیها)" msgid "Update from Scene" -msgstr "بهروزرسانی از پرده" +msgstr "بهروزرسانی از صحنه" msgid "Apply without Transforms" msgstr "بکاربستن بدون ترادیسی" @@ -7706,11 +8876,26 @@ msgstr "نشاندن start_position" msgid "Set end_position" msgstr "نشاندن نهشت پایانی" +msgid "Add Vertex" +msgstr "افزودن رأس" + +msgid "Edit Vertex" +msgstr "ویرایش رأس" + +msgid "Delete Vertex" +msgstr "زدایش رأس" + +msgid "Clear Vertices" +msgstr "پاک کردن رأسها" + msgid "Please Confirm..." msgstr "لطفاً تأیید کنید…" +msgid "Remove all vertices?" +msgstr "برچیدن همهٔ رأسها؟" + msgid "Create Navigation Polygon" -msgstr "ساخت چندضلعی رهیابی" +msgstr "ساخت چندضلعی ناوبری" msgid "Bake NavigationPolygon" msgstr "پخت NavigationPolygon" @@ -7732,6 +8917,9 @@ msgstr "قائم" msgid "Perspective" msgstr "دیدانداز" +msgid "[auto]" +msgstr "[خودکار]" + msgid "X-Axis Transform." msgstr "ترادیسی محور X." @@ -7753,6 +8941,9 @@ msgstr "Y: %s\n" msgid "Z: %s\n" msgstr "Z: %s\n" +msgid "Size: %s (%.1fMP)\n" +msgstr "اندازه: %s (%.1f مگاپیکسل)\n" + msgid "Objects: %d\n" msgstr "اشیا: %d\n" @@ -7826,7 +9017,7 @@ msgid "SDFGI Probes" msgstr "کاوَندهای SDFGI" msgid "Scene Luminance" -msgstr "روشنایی پرده" +msgstr "روشنایی صحنه" msgid "OmniLight3D Cluster" msgstr "خوشهٔ OmniLight3D" @@ -7865,7 +9056,7 @@ msgid "Cinematic Preview" msgstr "پیشنمایش سینمایی" msgid "Not available when using the OpenGL renderer." -msgstr "هنگام بکارگیری نماپرداز OpenGL در دسترس نیست." +msgstr "هنگام بهکارگیری نماپرداز OpenGL در دسترس نیست." msgid "Lock Transformation to X axis" msgstr "قفلیدن ترادیسی به محور X" @@ -7886,19 +9077,25 @@ msgid "Snap Nodes to Floor" msgstr "چفتاندن گرهها به زمین" msgid "Add Preview Sun to Scene" -msgstr "افزودن خورشید پیشنمایش به پرده" +msgstr "افزودن خورشید پیشنمایش به صحنه" msgid "Add Preview Environment to Scene" -msgstr "افزودن محیط پیشنمایش به پرده" +msgstr "افزودن محیط پیشنمایش به صحنه" msgid "Preview disabled." msgstr "پیشنمایش غیرفعال شد." +msgid "Drag: Use snap." +msgstr "کشاندن: بهکارگیری چفت." + +msgid "LMB+Drag: Measure the distance between two points in 3D space." +msgstr "راستکلیک+کشاندن: اندازهگیری فاصلهٔ میان دو نقطه در فضای سهبعدی." + msgid "Use Local Space" msgstr "استفاده از فضای محلی" msgid "Use Snap" -msgstr "بکارگیری چفت" +msgstr "بهکارگیری چفت" msgid "Edit Sun and Environment settings." msgstr "ویرایش تنظیمات خورشید و محیط." @@ -8015,7 +9212,7 @@ msgid "Sun Energy" msgstr "انرژی خورشید" msgid "Add Sun to Scene" -msgstr "افزودن خورشید به پرده" +msgstr "افزودن خورشید به صحنه" msgid "Preview Environment" msgstr "محیط پیشنمایش" @@ -8042,7 +9239,7 @@ msgid "Post Process" msgstr "پساپردازش" msgid "Add Environment to Scene" -msgstr "افزودن محیط به پرده" +msgstr "افزودن محیط به صحنه" msgid "Bake Occluders" msgstr "پخت بندآورها" @@ -8053,6 +9250,9 @@ msgstr "گزینش پروندهٔ پخت بندآور:" msgid "Convert to Parallax2D" msgstr "تبدیل به Parallax2D" +msgid "ParallaxBackground" +msgstr "ParallaxBackground" + msgid "Restart Emission" msgstr "راهاندازی دوبارهٔ برونپاشی" @@ -8071,6 +9271,9 @@ msgstr "پیکسلهای مرزی" msgid "Emission Mask" msgstr "ماسک برونپاشی" +msgid "Centered" +msgstr "مرکزیشده" + msgid "Generating Visibility Rect (Waiting for Particle Simulation)" msgstr "ایجاد مستطیل دید (در انتظار شبیهسازی پارتیکلها)" @@ -8092,11 +9295,14 @@ msgstr "تبدیل به GPUParticles2D" msgid "\"%s\" doesn't inherit from Node3D." msgstr "«%s» از گرهٔ سهبعدی ارث نمیبرد." +msgid "\"%s\" doesn't contain geometry." +msgstr "«%s» دارای هندسه نیست." + msgid "Create Emission Points From Node" msgstr "ساخت نقطههای برونپاشی از گره" msgid "Create Emitter" -msgstr "ساخت ساطعکننده" +msgstr "ساخت گسیلنده" msgid "Emission Points:" msgstr "نقطههای برونپاشی:" @@ -8110,6 +9316,9 @@ msgstr "گنجایش" msgid "Emission Source:" msgstr "سرچشمهٔ برونپاشی:" +msgid "Create Emission Points" +msgstr "ساخت نقطههای گسیل" + msgid "GPUParticles3D" msgstr "GPUParticles3D" @@ -8123,7 +9332,7 @@ msgid "Convert to GPUParticles3D" msgstr "تبدیل به GPUParticles3D" msgid "Remove Point from Curve" -msgstr "زدایش نقطه از کمانه" +msgstr "برچیدن نقطه از کمانه" msgid "Move Point in Curve" msgstr "جابهجایی نقطه در کمانه" @@ -8131,23 +9340,41 @@ msgstr "جابهجایی نقطه در کمانه" msgid "Add Point to Curve" msgstr "افزودن نقطه به کمانه" +msgid "Split Curve" +msgstr "شکافتن کمانه" + msgid "Close the Curve" msgstr "بستن کمانه" msgid "Clear Curve Points" msgstr "پاک کردن نقطههای کمانه" +msgid "Create Curve in Path2D" +msgstr "ساخت کمانه درPath2D" + msgid "Select Points" msgstr "گزینش نقطهها" +msgid "Shift+Drag: Select Control Points" +msgstr "شیفت+کشاندن: گزینش نقطههای کنترل" + +msgid "Click: Add Point" +msgstr "کلیک: افزودن نقطه" + +msgid "Left Click: Split Segment (in curve)" +msgstr "چپکلیک: شکافتن بخش (در کمانه)" + msgid "Right Click: Delete Point" -msgstr "کلیک راست: حذف نقطه" +msgstr "راستکلیک: زدایش نقطه" msgid "Select Control Points (Shift+Drag)" msgstr "گزینش نقطههای کنترل (شیفت+کشیدن)" +msgid "Add Point (in empty space)" +msgstr "افزودن نقطه (در فضای تهی)" + msgid "Delete Point" -msgstr "حذف نقطه" +msgstr "زدایش نقطه" msgid "Close Curve" msgstr "بستن کمانه" @@ -8156,13 +9383,31 @@ msgid "Clear Points" msgstr "پاک کردن نقطهها" msgid "Remove all curve points?" -msgstr "زدایش همهٔ نقطههای کمانه؟" +msgstr "برچیدن همهٔ نقطههای کمانه؟" + +msgid "Create Curve" +msgstr "ساخت کمانه" msgid "Set Curve Point Position" msgstr "نشاندن نهشت نقطهٔ کمانه" +msgid "Split Path" +msgstr "مسیر شکافتن" + msgid "Remove Path Point" -msgstr "زدایش نقطهٔ مسیر" +msgstr "برچیدن نقطهٔ مسیر" + +msgid "Create Curve in Path3D" +msgstr "ساخت کمانه در Path3D" + +msgid "Shift+Click: Select multiple Points" +msgstr "شیفت+کلیک: گزینش چندین نقطه" + +msgid "Shift+Click: Drag out Control Points" +msgstr "شیفت+کلیک: بیرون کشاندن نقطههای کنترل" + +msgid "Split Segment (in curve)" +msgstr "شکافتن بخش (در کمانه)" msgid "Move Joint" msgstr "حرکت مفصل" @@ -8222,7 +9467,7 @@ msgid "Create Internal Vertex" msgstr "ساخت رأس درونی" msgid "Remove Internal Vertex" -msgstr "زدایش رأس درونی" +msgstr "برچیدن رأس درونی" msgid "Invalid Polygon (need 3 different vertices)" msgstr "چندضلعی نامعتبر است (به ۳ رأس متفاوت نیاز دارد)" @@ -8231,7 +9476,7 @@ msgid "Add Custom Polygon" msgstr "افزودن چندضلعی سفارشی" msgid "Remove Custom Polygon" -msgstr "زدایش چندضلعی سفارشی" +msgstr "برچیدن چندضلعی سفارشی" msgid "Transform Polygon" msgstr "ترادیسی چندضلعی" @@ -8251,6 +9496,9 @@ msgstr "استخوانها" msgid "Move Points" msgstr "جابهجایی نقطهها" +msgid "Shift: Move All" +msgstr "شیفت: جابهجایی همه" + msgid "Move Polygon" msgstr "جابهجایی چندضلعی" @@ -8266,7 +9514,7 @@ msgstr "یک چندضلعی سفارشی بسازید. نماپردازش چند msgid "" "Remove a custom polygon. If none remain, custom polygon rendering is disabled." msgstr "" -"یک چندضلعی سفارشی را بزدایید. اگر هیچ یک به جا نمانده، نماپردازش چندضلعی " +"یک چندضلعی سفارشی را برچینید. اگر هیچ یک بهجا نمانده، نماپردازش چندضلعی " "سفارشی از کار میافتد." msgid "Radius:" @@ -8285,7 +9533,7 @@ msgid "Snap" msgstr "چفت" msgid "Enable Snap" -msgstr "بکاراندازی چفت" +msgstr "بهکاراندازی چفت" msgid "Show Grid" msgstr "نمایش توری" @@ -8308,6 +9556,9 @@ msgstr "گام Y توری:" msgid "Sync Bones to Polygon" msgstr "همگامسازی استخوانها به چندضلعی" +msgid "Polygon" +msgstr "چندضلعی" + msgid "Create Polygon3D" msgstr "ساخت Polygon3D" @@ -8315,7 +9566,7 @@ msgid "Edit Poly" msgstr "ویرایش چندضلعی" msgid "Edit Poly (Remove Point)" -msgstr "ویرایش چندضلعی (زدایش نقطه)" +msgstr "ویرایش چندضلعی (برچیدن نقطه)" msgid "ERROR: Couldn't load resource!" msgstr "خطا: ناتوانی در بارکردن بنمایه!" @@ -8341,8 +9592,11 @@ msgstr "بارکردن بنمایه" msgid "Path to AnimationMixer is invalid" msgstr "مسیر AnimationMixer نامعتبر است" +msgid "Current value: " +msgstr "ارزش کنونی: " + msgid "Can't open '%s'. The file could have been moved or deleted." -msgstr "نمیتوان %s را باز کرد. این فایل میتواند انتقال یافته یا حذف شده باشد." +msgstr "نمیتوان «%s» را گشود. شاید پرونده جابهجا یا زدوده شده باشد." msgid "Close and save changes?" msgstr "بستن و ذخیره دگرشها؟" @@ -8363,16 +9617,19 @@ msgid "Error Importing" msgstr "خطا در درونبرد" msgid "New Text File..." -msgstr "فایل متنی جدید..." +msgstr "پروندهٔ نوشتاری نو..." msgid "Open File" -msgstr "باز کردن فایل" +msgstr "گشودن پرونده" msgid "Could not load file at:" msgstr "ناتوانی در بارکردن پرونده در:" msgid "Save File As..." -msgstr "ذخیره فایل به عنوان..." +msgstr "ذخیرهسازی پرونده بهعنوان..." + +msgid "Cannot run the edited file because it's not a script." +msgstr "نمیتوان پروندهٔ ویراسته را اجرا کرد چون اسکریپت نیست." msgid "Import Theme" msgstr "درونبرد زمینه" @@ -8384,7 +9641,7 @@ msgid "Error saving" msgstr "خطا در ذخیرهسازی" msgid "Save Theme As..." -msgstr "ذخیره زمینه بعنوان..." +msgstr "ذخیره زمینه بهعنوان..." msgid "Open '%s' in Godot online documentation." msgstr "گشودن '%s' در مستندات آنلاین گودوت." @@ -8470,6 +9727,9 @@ msgstr "رفتن به سند ویراستهٔ بعدی." msgid "Discard" msgstr "دور انداختن" +msgid "Search Results" +msgstr "نتیجههای جستجو" + msgid "Save changes to the following script(s) before quitting?" msgstr "پیش از بیرون رفتن دگرشها را در اسکریپت(ها)ی زیر ذخیره میکنید؟" @@ -8519,7 +9779,7 @@ msgid "Go to Function" msgstr "رفتن به تابع" msgid "Can't drop nodes without an open scene." -msgstr "نمیتوان بدون یک پردهٔ گشوده گرهها را انداخت." +msgstr "نمیتوان بدون یک صحنهٔ گشوده گرهها را انداخت." msgid "Pick Color" msgstr "انتخاب رنگ" @@ -8537,7 +9797,7 @@ msgid "Go To" msgstr "برو به" msgid "Delete Line" -msgstr "حذف خط" +msgstr "زدایش خط" msgid "Create Code Region" msgstr "ساخت دامنهٔ کد" @@ -8548,6 +9808,9 @@ msgstr "دوتاسازی برگزیده" msgid "Duplicate Lines" msgstr "دوتاسازی خطها" +msgid "Evaluate Selection" +msgstr "ارزیابی برگزیده" + msgid "Convert Indent to Spaces" msgstr "تبدیل تورفتگی به فاصلهها" @@ -8573,7 +9836,7 @@ msgid "Go to Previous Bookmark" msgstr "رفتن به نشانک قبلی" msgid "Remove All Bookmarks" -msgstr "حذف تمام نشانکها" +msgstr "برچیدن همهٔ نشانکها" msgid "Go to Function..." msgstr "رفتن به تابع..." @@ -8587,17 +9850,23 @@ msgstr "یک Breakpoint درج کن" msgid "Save changes to the following shaders(s) before quitting?" msgstr "پیش از بیرون رفتن دگرشها را در سایهزن(ها)ی زیر ذخیره میکنید؟" +msgid "New Shader Include..." +msgstr "دربرگیری سایهزن نو..." + msgid "Load Shader File..." msgstr "بار کردن پروندهٔ سایهزن..." +msgid "Load Shader Include File..." +msgstr "بار کردن پروندهٔ دربرگیری سایهزن..." + msgid "Save File" -msgstr "ذخیره فایل" +msgstr "ذخیرهسازی پرونده" msgid "Open File in Inspector" msgstr "گشودن پرونده در بازرس" msgid "Close File" -msgstr "بستن فایل" +msgstr "بستن پرونده" msgid "Shader Editor" msgstr "ویراستار سایهزن" @@ -8611,6 +9880,9 @@ msgstr "ساختن ژست استراحت از استخوانها" msgid "Skeleton2D" msgstr "استخوانبندی دوبعدی" +msgid "Add Bone Metadata" +msgstr "افزودن فرادادهٔ استخوان" + msgid "Set Bone Transform" msgstr "نشاندن ترادیسی استخوان" @@ -8618,7 +9890,7 @@ msgid "Create physical bones" msgstr "ساخت استخوانهای فیزیکی" msgid "Export Skeleton Profile As..." -msgstr "برونبرد نمایهٔ استخوانبندی بعنوان..." +msgstr "برونبرد نمایهٔ استخوانبندی بهعنوان..." msgid "Set Bone Parentage" msgstr "نشاندن درصد استخوان" @@ -8676,7 +9948,7 @@ msgid "LightOccluder2D Preview" msgstr "پیشنمایش LightOccluder2D" msgid "Can't convert a sprite from a foreign scene." -msgstr "نمیتوان یک اسپرایت از یک پردهٔ بیگانه را تبدیل کرد." +msgstr "نمیتوان یک اسپرایت از یک صحنهٔ بیگانه را تبدیل کرد." msgid "Can't convert an empty sprite to mesh." msgstr "نمیتوان یک اسپرایت تهی را به مش تبدیل کرد." @@ -8696,9 +9968,15 @@ msgstr "تبدیل به چندضلعی دوبعدی" msgid "Invalid geometry, can't create collision polygon." msgstr "هندسه نامعتبر است، نمیتوان چندضلعی برخوردگاه ساخت." +msgid "Create CollisionPolygon2D Sibling" +msgstr "ساخت همنیای CollisionPolygon2D" + msgid "Invalid geometry, can't create light occluder." msgstr "هندسه نامعتبر است، نمیتوان بندآور نور ساخت." +msgid "Create LightOccluder2D Sibling" +msgstr "ساخت همنیای LightOccluder2D" + msgid "Sprite2D" msgstr "اسپرایتدوبعدی" @@ -8796,13 +10074,13 @@ msgid "Zoom Reset" msgstr "تنظیم مجدد بزرگنمایی" msgid "Add frame from file" -msgstr "افزودن فریم از فایل" +msgstr "افزودن فریم از پرونده" msgid "Add frames from sprite sheet" msgstr "افزودن فریمها از ورقه اسپرایت" msgid "Delete Frame" -msgstr "حذف فریم" +msgstr "زدایش فریم" msgid "Copy Frame(s)" msgstr "روگرفت فریم(ها)" @@ -8828,9 +10106,36 @@ msgstr "ترتیب فریم" msgid "By Row" msgstr "بر پایهٔ ردیف" +msgid "Left to Right, Top to Bottom" +msgstr "چپ به راست، بالا به پایین" + +msgid "Left to Right, Bottom to Top" +msgstr "چپ به راست، پایین به بالا" + +msgid "Right to Left, Top to Bottom" +msgstr "راست به چپ، بالا به پایین" + +msgid "Right to Left, Bottom to Top" +msgstr "راست به چپ، پایین به بالا" + msgid "By Column" msgstr "بر پایهٔ ستون" +msgid "Top to Bottom, Left to Right" +msgstr "بالا به پایین، چپ به راست" + +msgid "Top to Bottom, Right to Left" +msgstr "بالا به پایین، راست به چپ" + +msgid "Bottom to Top, Left to Right" +msgstr "پایین به بالا، چپ به راست" + +msgid "Bottom to Top, Right to Left" +msgstr "پایین به بالا، راست به چپ" + +msgid "Select None" +msgstr "گزینش هیچکدام" + msgid "Toggle Settings Panel" msgstr "تغییر وضعیت تنظیمات پنل" @@ -8858,6 +10163,9 @@ msgstr "ساخت فریمها از ورقه اسپرایت" msgid "SpriteFrames" msgstr "فریمهای اسپرایت" +msgid "Warnings should be fixed to prevent errors." +msgstr "برای پیشگیری از خطاها هشدارها باید درست شوند." + msgid "" "This shader has been modified on disk.\n" "What action should be taken?" @@ -9018,7 +10326,7 @@ msgid "Import Selected" msgstr "درونبرد برگزیده" msgid "Remove Type" -msgstr "زدایش گونه" +msgstr "برچیدن گونه" msgid "" "Select a theme type from the list to edit its items.\n" @@ -9029,19 +10337,19 @@ msgstr "" "درونبرد کنید." msgid "Remove All Color Items" -msgstr "زدایش همهٔ موارد رنگ" +msgstr "برچیدن همهٔ موارد رنگ" msgid "Rename Item" msgstr "بازنامگذاری مورد" msgid "Remove All Constant Items" -msgstr "حذف همه موارد ثابت" +msgstr "برچیدن همهٔ موارد ثابت" msgid "Remove All Font Items" -msgstr "زدایش همهٔ موارد قلم" +msgstr "برچیدن همهٔ موارد قلم" msgid "Remove All Icon Items" -msgstr "زدایش همهٔ موارد آیکن" +msgstr "برچیدن همهٔ موارد آیکن" msgid "" "This theme type is empty.\n" @@ -9051,7 +10359,7 @@ msgstr "" "موارد بیشتری را دستی به آن بیفزایید یا از زمینهٔ دیگری درونبرد کنید." msgid "Remove Theme Item" -msgstr "زدایش مورد زمینه" +msgstr "برچیدن مورد زمینه" msgid "Add Theme Type" msgstr "افزودن گونهٔ زمینه" @@ -9060,19 +10368,19 @@ msgid "Create Theme Item" msgstr "ساخت مورد زمینه" msgid "Remove Theme Type" -msgstr "زدایش گونهٔ زمینه" +msgstr "برچیدن گونهٔ زمینه" msgid "Remove Data Type Items From Theme" -msgstr "زدایش موارد گونهٔ داده از زمینه" +msgstr "برچیدن موارد گونهٔ داده از زمینه" msgid "Remove Class Items From Theme" -msgstr "زدایش موارد کلاس از زمینه" +msgstr "برچیدن موارد کلاس از زمینه" msgid "Remove Custom Items From Theme" -msgstr "زدایش موارد سفارشی از زمینه" +msgstr "برچیدن موارد سفارشی از زمینه" msgid "Remove All Items From Theme" -msgstr "زدایش همهٔ موارد از زمینه" +msgstr "برچیدن همهٔ موارد از زمینه" msgid "Add Color Item" msgstr "افزودن مورد رنگ" @@ -9123,16 +10431,16 @@ msgid "Add Item:" msgstr "افزودن مورد:" msgid "Remove Items:" -msgstr "زدایش موارد:" +msgstr "برچیدن موارد:" msgid "Remove Class Items" -msgstr "برداشتن موارد کلاس" +msgstr "برچیدن موارد کلاس" msgid "Remove Custom Items" -msgstr "زدایش موارد سفارشی" +msgstr "برچیدن موارد سفارشی" msgid "Remove All Items" -msgstr "حذف تمام موارد" +msgstr "برچیدن همهٔ موارد" msgid "Add Theme Item" msgstr "افزودن مورد زمینه" @@ -9225,7 +10533,7 @@ msgid "Manage Items..." msgstr "مدیریت موارد..." msgid "Add, remove, organize and import Theme items." -msgstr "افزودن، زدایش، ساماندهی و درونبرد موارد زمینه." +msgstr "افزودن، برچیدن، ساماندهی و درونبرد موارد زمینه." msgid "Add Preview" msgstr "افزودن پیشنمایش" @@ -9234,7 +10542,7 @@ msgid "Default Preview" msgstr "پیشنمایش پیشفرض" msgid "Select UI Scene:" -msgstr "گزینش پردهٔ میانای کاربری:" +msgstr "گزینش صحنهٔ میانای کاربری:" msgid "Toggle Button" msgstr "دکمهٔ تغییر" @@ -9285,7 +10593,7 @@ msgid "Has,Many,Options" msgstr "دارد،بسیار،گزینهها" msgid "Invalid file, not a PackedScene resource." -msgstr "پرونده نامعتبر است، بنمایهٔ پردهٔ بستهبندی شده نیست." +msgstr "پرونده نامعتبر است، بنمایهٔ صحنهٔ بستهبندی شده نیست." msgid "Merge TileSetAtlasSource" msgstr "یکی کردن TileSetAtlasSource" @@ -9339,7 +10647,7 @@ msgid "Add polygon tool" msgstr "افزودن ابزار چندضلعی" msgid "Delete points tool" -msgstr "ابزار حذف نقاط" +msgstr "ابزار زدایش نقطهها" msgid "Rotate Right" msgstr "چرخش به راست" @@ -9357,22 +10665,22 @@ msgid "Disable Snap" msgstr "ازکاراندازی چفت" msgid "Can't transform scene tiles." -msgstr "نمیتوان کاشیهای پرده را ترادیسید." +msgstr "نمیتوان کاشیهای صحنه را ترادیسید." msgid "Can't rotate patterns when using non-square tile grid." -msgstr "نمیتوان هنگام بکارگیری کاشی نامربعی توری الگوها را چرخاند." +msgstr "نمیتوان هنگام بهکارگیری کاشی نامربعی توری الگوها را چرخاند." msgid "Add TileSet pattern" msgstr "افزودن الگوی دستهکاشی" msgid "Remove TileSet patterns" -msgstr "زدایش الگوهای دستهکاشی" +msgstr "برچیدن الگوهای دستهکاشی" msgid "Tile with Invalid Scene" -msgstr "کاشی با پردهٔ نامعتبر" +msgstr "کاشی با صحنهٔ نامعتبر" msgid "Delete tiles" -msgstr "حذف کاشیها" +msgstr "زدایش کاشیها" msgid "Change selection" msgstr "تغییر برگزیده" @@ -9433,7 +10741,7 @@ msgid "Select all layers" msgstr "گزینش همهٔ لایهها" msgid "Select all TileMapLayers in scene" -msgstr "گزینش همهٔ TileMapLayer های درون پرده" +msgstr "گزینش همهٔ TileMapLayer های درون صحنه" msgid "Highlight Selected TileMap Layer" msgstr "برجستهسازی لایهٔ نقشهکاشی برگزیده" @@ -9491,15 +10799,15 @@ msgid "" msgstr "درون بازرس، بنمایهٔ دستهکاشی لایههای فیزیک را بساز و سفارشی کن." msgid "Navigation Layer %d" -msgstr "لایهٔ رهیابی %d" +msgstr "لایهٔ ناوبری %d" msgid "No navigation layers" -msgstr "بدون لایهٔ رهیابی" +msgstr "بدون لایهٔ ناوبری" msgid "" "Create and customize navigation layers in the inspector of the TileSet " "resource." -msgstr "درون بازرس، بنمایهٔ دستهکاشی لایههای رهیابی را بساز و سفارشی کن." +msgstr "درون بازرس، بنمایهٔ دستهکاشی لایههای ناوبری را بساز و سفارشی کن." msgid "Custom Data" msgstr "داده سفارشی" @@ -9522,7 +10830,7 @@ msgid "" "TileSet is in read-only mode. Make the resource unique to edit TileSet " "properties." msgstr "" -"دستهکاشی در حالت تنها خواندنی است. برای ویرایش ویژگیها بنمایه را بیهمتا کنید." +"دستهکاشی در حالت تنها خواندنی است. برای ویرایش ویژگیها بنمایه را یکتا کنید." msgid "Create tiles" msgstr "ساخت کاشیها" @@ -9531,7 +10839,7 @@ msgid "Create a tile" msgstr "ساخت یک کاشی" msgid "Remove tiles" -msgstr "زدایش کاشیها" +msgstr "برچیدن کاشیها" msgid "Move a tile" msgstr "جابهجایی یک کاشی" @@ -9543,13 +10851,13 @@ msgid "Resize a tile" msgstr "دگرش اندازهٔ یک کاشی" msgid "Remove tile" -msgstr "زدایش کاشی" +msgstr "برچیدن کاشی" msgid "" "The tile's unique identifier within this TileSet. Each tile stores its source " "ID, so changing one may make tiles invalid." msgstr "" -"شناسهٔ بیهمتای کاشی درون این دستهکاشی است. هر کاشی آیدی سرچشمهٔ خود را ذخیره " +"شناسهٔ یکتای کاشی درون این دستهکاشی است. هر کاشی آیدی سرچشمهٔ خود را ذخیره " "میکند، پس دگرگون کردن یکی از آنها شاید کاشیها را نامعتبر سازد." msgid "" @@ -9600,13 +10908,13 @@ msgid "Add new patterns in the TileMap editing mode." msgstr "افزودن الگوهای نو در حالت ویرایش نقشهکاشی." msgid "Add a Scene Tile" -msgstr "افزودن یک کاشی پرده" +msgstr "افزودن یک کاشی صحنه" msgid "Remove a Scene Tile" -msgstr "زدایش یک کاشی پرده" +msgstr "برچیدن یک کاشی صحنه" msgid "Scenes collection properties:" -msgstr "ویژگیهای مجموعه پردهها:" +msgstr "ویژگیهای مجموعه صحنهها:" msgid "Tile properties:" msgstr "ویژگیهای کاشی:" @@ -9681,7 +10989,7 @@ msgid "Create New Branch" msgstr "ساخت شاخهٔ نو" msgid "Remove Branch" -msgstr "زدایش شاخه" +msgstr "برچیدن شاخه" msgid "Branch Name" msgstr "نام شاخه" @@ -9693,7 +11001,7 @@ msgid "Create New Remote" msgstr "ساخت از دور نو" msgid "Remove Remote" -msgstr "زدایش از دور" +msgstr "برچیدنِ از دور" msgid "Remote Name" msgstr "نام ریموت" @@ -9717,7 +11025,7 @@ msgid "Renamed" msgstr "نام تغییر یافت" msgid "Deleted" -msgstr "حذف شد" +msgstr "زدودهشده" msgid "Unmerged" msgstr "یکی نشده" @@ -9725,6 +11033,9 @@ msgstr "یکی نشده" msgid "View:" msgstr "دیدگاه:" +msgid "Split" +msgstr "شکافتن" + msgid "Unified" msgstr "متحد شده" @@ -9780,10 +11091,10 @@ msgid "Shrink Output Port" msgstr "تنجش درگاه برونداد" msgid "Remove Input Port" -msgstr "زدایش درگاه درونداد" +msgstr "برچیدن درگاه درونداد" msgid "Remove Output Port" -msgstr "زدایش درگاه برونداد" +msgstr "برچیدن درگاه برونداد" msgid "Set Frame Title" msgstr "قرار دادن نام فریم" @@ -9807,7 +11118,7 @@ msgid "Insert node" msgstr "جایگذاری گره" msgid "Enable Auto Shrink" -msgstr "بکاراندازی تنجش خودکار" +msgstr "بهکاراندازی تنجش خودکار" msgid "Set Constant: %s" msgstr "نشاندن ثابت: %s" @@ -9932,6 +11243,9 @@ msgstr "ریشهٔ دوم پارامتر را برمیگرداند." msgid "Returns the tangent of the parameter." msgstr "تانژانت پارامتر را برمیگرداند." +msgid "Apply panning function on texture coordinates." +msgstr "تابع سراسرنمایی را روی بافت مختصات به کار ببندید." + msgid "Transform function." msgstr "تابع ترادیسی." @@ -9965,6 +11279,9 @@ msgstr "۱.۰ / برداری" msgid "2D vector constant." msgstr "ثابت بردار دوبعدی." +msgid "2D vector parameter." +msgstr "پارامتر بردار دوبعدی." + msgid "3D vector constant." msgstr "ثابت بردار سهبعدی." @@ -9988,8 +11305,8 @@ msgid "" "Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" -"نمیتوان پروژه را اجرا کرد: پردهٔ اصلی تعریف نشده است.\n" -"لطفا پروژه را ویرایش کنید و پردهٔ اصلی را در تنظیمات پروژه زیر دستهٔ «برنامه» " +"نمیتوان پروژه را اجرا کرد: صحنهٔ اصلی تعریف نشده است.\n" +"لطفا پروژه را ویرایش کنید و صحنهٔ اصلی را در تنظیمات پروژه زیر دستهٔ «برنامه» " "بنشانید." msgid "" @@ -10043,8 +11360,8 @@ msgstr "" "\n" "شما سه گزینه دارید:\n" "- تنها پروندهٔ پیکربندی (\"project.godot\") را تبدیل کنید. این را برای گشودن " -"پروژه بدون کوشیدن برای تبدیل پردهها، بنمایهها و اسکریپتهای آن بکار ببرید.\n" -"- همهٔ پروژه از جمله پردهها، بنمایهها و اسکریپتهای آن را تبدیل کنید (اگر در " +"پروژه بدون کوشیدن برای تبدیل صحنهها، بنمایهها و اسکریپتهای آن بکار ببرید.\n" +"- همهٔ پروژه از جمله صحنهها، بنمایهها و اسکریپتهای آن را تبدیل کنید (اگر در " "حال ارتقا هستید پیشنهاد میشود).\n" "- کاری نکن و برگرد.\n" "\n" @@ -10127,17 +11444,17 @@ msgid "Open anyway? Project will be modified." msgstr "با این حال گشوده شود؟ پروژه دگرگون خواهد شد." msgid "Remove %d projects from the list?" -msgstr "%d پروژه از فهرست حذف شود؟" +msgstr "%d پروژه از فهرست برچیده شود؟" msgid "Remove this project from the list?" -msgstr "این پروژه از فهرست خارج شود؟" +msgstr "این پروژه از فهرست برچیده شود؟" msgid "" "Remove all missing projects from the list?\n" "The project folders' contents won't be modified." msgstr "" -"همهٔ پروژههای از دست رفته از فهرست حذف شوند؟\n" -" محتویات پوشههای پروژه تغییر نخواهد کرد." +"همهٔ پروژههای از دست رفته از فهرست برچیده شوند؟\n" +" محتواهای پوشههای پروژه تغییر نخواهد کرد." msgid "Tag name can't be empty." msgstr "نام برچسب نمیتواند تهی باشد." @@ -10207,16 +11524,16 @@ msgid "Manage Tags" msgstr "مدیریت برچسبها" msgid "Remove Project" -msgstr "زدایش پروژه" +msgstr "برچیدن پروژه" msgid "Remove Missing" -msgstr "حذف از دست رفتهها" +msgstr "برچیدن ازدسترفتهها" msgid "Select a Folder to Scan" msgstr "گزینش یک پوشه برای پویش" msgid "Remove All" -msgstr "حذف همه" +msgstr "برچیدن همه" msgid "Convert Full Project" msgstr "تبدیل کردن کل پروژه" @@ -10232,7 +11549,7 @@ msgid "" "IMPORTANT: Make sure to backup your project before converting, as this " "operation makes it impossible to open it in older versions of Godot." msgstr "" -"این گزینه تبدیل کامل پروژه، بهروزرسانی پردهها، بنمایهها و اسکریپت ها را از " +"این گزینه تبدیل کامل پروژه، بهروزرسانی صحنهها، بنمایهها و اسکریپت ها را از " "گودوت ۳ برای کار در گودوت ۴ می انجامد.\n" "\n" "توجه داشته باشید که این بهترین کوشش برای تبدیل است، یعنی ارتقای پروژه را " @@ -10249,7 +11566,7 @@ msgid "Project Tags" msgstr "برچسبهای پروژه" msgid "Click tag to remove it from the project." -msgstr "برروی برچسب کلیک کنید تا از پروژه حذف شود." +msgstr "برای برچیدن آن از پروژه روی برچسب کلیک کنید." msgid "All Tags" msgstr "همه برچسبها" @@ -10298,13 +11615,13 @@ msgid "Advanced 3D graphics available." msgstr "گرافیک سهبعدی پیشرفته در دسترس است." msgid "Can scale to large complex scenes." -msgstr "میتواند به اندازهٔ پردههای بزرگ پیچیده برسد." +msgstr "میتواند به اندازهٔ صحنههای بزرگ پیچیده برسد." msgid "Uses RenderingDevice backend." msgstr "بَکاِند RenderingDevice را بکار میگیرد." msgid "Slower rendering of simple scenes." -msgstr "نماپردازش کندتر پردههای ساده." +msgstr "نماپردازش کندتر صحنههای ساده." msgid "Supports desktop + mobile platforms." msgstr "از سکوهای رایانه و گوشی پشتیبانی میکند." @@ -10313,10 +11630,10 @@ msgid "Less advanced 3D graphics." msgstr "گرافیک سهبعدی پیشرفتگی کمتری دارد." msgid "Less scalable for complex scenes." -msgstr "توانایی کمتری برای رسیدن به اندازهٔ پردههای پیشرفته دارد." +msgstr "توانایی کمتری برای رسیدن به اندازهٔ صحنههای پیشرفته دارد." msgid "Fast rendering of simple scenes." -msgstr "نماپردازش تند پردههای ساده." +msgstr "نماپردازش تند صحنههای ساده." msgid "Supports desktop, mobile + web platforms." msgstr "از سکوهای رایانه، وب و گوشی پشتیبانی میکند." @@ -10328,7 +11645,10 @@ msgid "Uses OpenGL 3 backend (OpenGL 3.3/ES 3.0/WebGL2)." msgstr "بَکاِند OpenGL ۳ را بکار میگیرد (OpenGL ۳.۳ یا ES ۳.۰ یا WebGL۲)." msgid "Fastest rendering of simple scenes." -msgstr "تندترین نماپردازش برای پردههای ساده." +msgstr "تندترین نماپردازش برای صحنههای ساده." + +msgid "Warning: This folder is not empty" +msgstr "هشدار: این پوشه تهی نیست" msgid "" "You are about to create a Godot project in a non-empty folder.\n" @@ -10337,7 +11657,7 @@ msgid "" "Are you sure you wish to continue?" msgstr "" "شما درحال ساخت یک پروژهٔ گودوت در پوشهای ناتهی هستید.\n" -"همهٔ محتویات این پوشه بعنوان بنمایههای پروژه درونبرد خواهند شد!\n" +"همهٔ محتویات این پوشه بهعنوان بنمایههای پروژه درونبرد خواهند شد!\n" "\n" "آیا از ادامه دادن مطمئن هستید؟" @@ -10367,7 +11687,7 @@ msgstr "نماپرداز:" msgid "The renderer can be changed later, but scenes may need to be adjusted." msgstr "" -"نماپرداز میتواند بعدا دگرگون شود، ولی پردهها شاید نیاز به میزان شدن داشته " +"نماپرداز میتواند بعدا دگرگون شود، ولی صحنهها شاید نیاز به میزان شدن داشته " "باشند." msgid "Version Control Metadata:" @@ -10407,7 +11727,7 @@ msgid "Add Project Setting" msgstr "افزودن تنظیمات پروژه" msgid "Delete Item" -msgstr "حذف مورد" +msgstr "زدایش مورد" msgid "(All)" msgstr "(همه)" @@ -10452,7 +11772,7 @@ msgid "Suffix:" msgstr "پسوند:" msgid "Use Regular Expressions" -msgstr "بکاربردن زبانزدهای(expressions) ساده" +msgstr "بهکارگیری عبارتهای ساده" msgid "Substitute" msgstr "جایگزین" @@ -10464,7 +11784,7 @@ msgid "Node type." msgstr "نوع گره." msgid "Current scene name." -msgstr "نام پردهٔ کنونی." +msgstr "نام صحنهٔ کنونی." msgid "Root node name." msgstr "نام گره ریشه." @@ -10488,7 +11808,7 @@ msgid "Reset" msgstr "بازنشانی" msgid "Regular Expression Error:" -msgstr "خطای زبانزد(expression) ساده:" +msgstr "خطای عبارت ساده:" msgid "At character %s" msgstr "در نویسهٔ %s" @@ -10503,7 +11823,7 @@ msgid "Pick" msgstr "برداشتن" msgid "Scene name is empty." -msgstr "نام پرده تهی است." +msgstr "نام صحنه تهی است." msgid "File name invalid." msgstr "نام فایل نامعتبر است." @@ -10518,39 +11838,39 @@ msgid "Root Type:" msgstr "گونهٔ ریشه:" msgid "2D Scene" -msgstr "پرده ۲بعدی" +msgstr "صحنهٔ دوبعدی" msgid "3D Scene" -msgstr "پرده ۳بعدی" +msgstr "صحنهٔ سهبعدی" msgid "User Interface" msgstr "میانای کاربری" msgid "Scene Name:" -msgstr "نام پرده:" +msgstr "نام صحنه:" msgid "Root Name:" msgstr "نام ریشه:" msgid "Scene name is valid." -msgstr "نام پرده معتبر است." +msgstr "نام صحنه معتبر است." msgid "Root node valid." msgstr "گرهٔ ریشه معتبر است." msgid "Create New Scene" -msgstr "ساخت پردهٔ نو" +msgstr "ساخت صحنهٔ نو" msgid "Error loading scene from %s" -msgstr "خطا در بارکردن پرده از %s" +msgstr "خطا در بارکردن صحنه از %s" msgid "Error instantiating scene from %s" -msgstr "خطای نمونهسازی پرده از %s" +msgstr "خطای نمونهسازی صحنه از %s" msgid "Instantiate Scene" msgid_plural "Instantiate Scenes" -msgstr[0] "نمونهسازی پرده" -msgstr[1] "نمونهسازی پردهها" +msgstr[0] "نمونهسازی صحنهنمونهسازی صحنهها" +msgstr[1] "" msgid "Create AudioStreamPlayer" msgid_plural "Create AudioStreamPlayers" @@ -10558,7 +11878,7 @@ msgstr[0] "ساخت AudioStreamPlayer" msgstr[1] "ساخت AudioStreamPlayer ها" msgid "Replace with Branch Scene" -msgstr "جایگزینی با پردهٔ شاخه" +msgstr "جایگزینی با صحنهٔ شاخه" msgid "Detach Script" msgstr "جدا کردن اسکریپت" @@ -10570,10 +11890,10 @@ msgid "Duplicate Node(s)" msgstr "تکثیر گره(ها)" msgid "Node must belong to the edited scene to become root." -msgstr "گره باید متعلق به یک پردهٔ ویراسته باشد تا ریشه شود." +msgstr "گره باید متعلق به یک صحنهٔ ویراسته باشد تا ریشه شود." msgid "Instantiated scenes can't become root" -msgstr "پردههای نمونهساخته نمیتوانند ریشه شوند" +msgstr "صحنههای نمونهساخته نمیتوانند ریشه شوند" msgid "Make node as Root" msgstr "ریشه کردن گره" @@ -10582,7 +11902,7 @@ msgid "Delete %d nodes and any children?" msgstr "زدایش %d گره و همهٔ فرزندان؟" msgid "Delete %d nodes?" -msgstr "حذف %d گره؟" +msgstr "زدایش %d گره؟" msgid "Delete the root node \"%s\"?" msgstr "زدایش گرهٔ ریشهٔ \"%s\"؟" @@ -10597,22 +11917,22 @@ msgid "Some nodes are referenced by animation tracks." msgstr "برخی گرهها به دست نوارهای پویانمایی بازبرد شدهاند." msgid "Save New Scene As..." -msgstr "ذخیره پردهٔ نو بعنوان..." +msgstr "ذخیره صحنهٔ نو بهعنوان..." msgid "Make Local" msgstr "بومی کردن" msgid "Can't toggle unique name for nodes in subscene!" -msgstr "نام بیهمتا را نمیتوان برای گرههای درون زیرپرده(subscene) دگرگون کرد!" +msgstr "نام یکتا را نمیتوان برای گرههای درون زیرصحنه(subscene) دگرگون کرد!" msgid "Unique names already used by another node in the scene:" -msgstr "نامهای بیهمتا پیش از این برای گرهٔ دیگری در پرده بکاررفته اند:" +msgstr "نامهای یکتا پیش از این برای گرهٔ دیگری در صحنه بکاررفته اند:" msgid "Disable Scene Unique Name(s)" -msgstr "ازکارانداختن نام بیهمتای پرده(ها)" +msgstr "ازکاراندازی نام یکتای صحنه(ها)" msgid "New Scene Root" -msgstr "ریشهٔ پردهٔ نو" +msgstr "ریشهٔ صحنهٔ نو" msgid "Create Root Node:" msgstr "ساخت گره ریشه:" @@ -10627,10 +11947,10 @@ msgid "Filters" msgstr "پالایهها" msgid "Can't operate on nodes the current scene inherits from!" -msgstr "نمیتوان روی گرههایی که پردهٔ کنونی از آنها ارث میبرد عمل کرد!" +msgstr "نمیتوان روی گرههایی که صحنهٔ کنونی از آنها ارث میبرد عمل کرد!" msgid "This operation can't be done on instantiated scenes." -msgstr "این عملیات نمیتواند روی پردههای نمونهساخته شده انجام گیرد." +msgstr "این عملیات نمیتواند روی صحنههای نمونهساخته شده انجام گیرد." msgid "Attach Script" msgstr "پیوست کردن اسکریپت" @@ -10645,7 +11965,7 @@ msgid "Cut Node(s)" msgstr "برش گره(ها)" msgid "Remove Node(s)" -msgstr "حذف گره(ها)" +msgstr "برچیدن گره(ها)" msgid "Change type of node(s)" msgstr "دگرش گونهٔ گره(ها)" @@ -10654,10 +11974,10 @@ msgid "This operation requires a single selected node." msgstr "این عملیات به یک گره انتخاب شده نیاز دارد." msgid "Error saving scene." -msgstr "خطا در ذخیرهسازی پرده." +msgstr "خطا در ذخیرهسازی صحنه." msgid "Error duplicating scene to save it." -msgstr "خطا در دوتاسازی پرده برای ذخیرهساختن آن." +msgstr "خطا در دوتاسازی صحنه برای ذخیرهساختن آن." msgid "Instantiate Script" msgstr "نمونهسازی اسکریپت" @@ -10666,10 +11986,10 @@ msgid "Sub-Resources" msgstr "زیربنمایهها" msgid "Revoke Unique Name" -msgstr "برگرداندن نام بیهمتا" +msgstr "ریواندن (معزول کردن) نام یکتا" msgid "Access as Unique Name" -msgstr "دسترسی بعنوان نام بیهمتا" +msgstr "دسترسی بهعنوان نام یکتا" msgid "Clear Inheritance" msgstr "پاک کردن ارثبری" @@ -10678,10 +11998,10 @@ msgid "Editable Children" msgstr "فرزند ويرايشپذیر" msgid "Load as Placeholder" -msgstr "بارکردن بعنوان جانگهدار" +msgstr "بارکردن بهعنوان جانگهدار" msgid "All Scene Sub-Resources" -msgstr "همهٔ زیربنمایههای پرده" +msgstr "همهٔ زیربنمایههای صحنه" msgid "Filter by Type" msgstr "پالایش بر پایهٔ گونه" @@ -10689,6 +12009,9 @@ msgstr "پالایش بر پایهٔ گونه" msgid "Filter by Group" msgstr "پالایش بر پایهٔ گروه" +msgid "Paste Node(s) as Sibling of %s" +msgstr "چسباندن گره(ها) بهعنوان همنیای %s" + msgid "<Unnamed> at %s" msgstr "<بینام> در %s" @@ -10696,22 +12019,25 @@ msgid "Add Child Node..." msgstr "افزودن گرهٔ فرزند..." msgid "Instantiate Child Scene..." -msgstr "نمونهسازی پردهٔ فرزند..." +msgstr "نمونهسازی صحنهٔ فرزند..." + +msgid "Paste as Sibling" +msgstr "چسباندن بهعنوان همنیا" msgid "Change Type..." msgstr "دگرش گونه..." msgid "Make Scene Root" -msgstr "ریشه کردن پرده" +msgstr "ریشه کردن صحنه" msgid "Save Branch as Scene..." -msgstr "ذخیرهی شاخه بعنوان پرده..." +msgstr "ذخیرهی شاخه بهعنوان صحنه..." msgid "Toggle Access as Unique Name" -msgstr "دگرگونی دسترسی بعنوان نام بیهمتا" +msgstr "دگرگونی دسترسی بهعنوان نام یکتا" msgid "Delete (No Confirm)" -msgstr "حذف (بدون تأیید)" +msgstr "زدایش (بیتایید)" msgid "Add/Create a New Node." msgstr "افزودن/ساختن یک گره جدید." @@ -10723,7 +12049,7 @@ msgid "Detach the script from the selected node." msgstr "اسکریپت را از گرهٔ برگزیده جدا کنید." msgid "Extra scene options." -msgstr "گزینههای بیشتر برای پرده." +msgstr "گزینههای بیشتر برای صحنه." msgid "Remote" msgstr "از راه دور" @@ -10789,8 +12115,13 @@ msgid "" "Note: Built-in scripts have some limitations and can't be edited using an " "external editor." msgstr "" -"توجه: اسکریپتهای داخلی محدودهایی دارند و نمیتوانند با استفاده از ویرایشگر " -"خارجی ویرایش شوند." +"بدانید: اسکریپتهای درونساخته محدودیتهایی دارند و نمیتوانند با ویراستارهای " +"بیرونی ویراسته شوند." + +msgid "" +"Warning: Having the script name be the same as a built-in type is usually not " +"desired." +msgstr "هشدار: نام یکسان داشتن با گونهٔ درونساخته بیشتر زمانها مطلوب نیست." msgid "Will load an existing script file." msgstr "یک پروندهٔ اسکریپت موجود را بار میکند." @@ -10810,6 +12141,9 @@ msgstr "اسکریپت درونساخته:" msgid "Attach Node Script" msgstr "پیوست کردن اسکریپت گره" +msgid "Error - Could not create shader include in filesystem." +msgstr "خطا - نمیتوان در سامانهٔ پرونده دربرگیری سایهزن ساخت." + msgid "Error - Could not create shader in filesystem." msgstr "خطا - ناتوانی در ساخت سایهزن در سامانهٔ پرونده." @@ -10827,7 +12161,7 @@ msgstr "پسوند نادرستی را برگزیدید." msgid "Note: Built-in shaders can't be edited using an external editor." msgstr "" -"توجه: شیدرهای تعبیه شده نمیتوانند با استفاده از ویرایشگر خارجی ویرایش شوند." +"بدانید: سایهزنهای درونساخته نمیتوانند با ویراستارهای بیرونی ویراسته شوند." msgid "Will load an existing shader file." msgstr "یک پروندهٔ سایهزن موجود را بار خواهد کرد." @@ -10850,27 +12184,84 @@ msgstr "نام باید یک شناسهٔ معتبر باشد." msgid "Restart & Upgrade" msgstr "بازراهاندازی و ارتقا" +msgid "" +"As of Godot 4.4, scenes and resources use UIDs to reference scripts and " +"shaders.\n" +"\n" +"Normally, this update is applied to a single scene or resource once you save " +"it in Godot 4.4 for the first time. If you have a lot of scenes and/or " +"resources, doing this manually may be time-consuming. This tool will update " +"all of the project's scenes and resources at once.\n" +"\n" +"Click \"Restart & Upgrade\" to restart the editor and update all of the " +"scenes and resources in this project. Depending on the project size, it may " +"take several minutes.\n" +"\n" +"Note: Please make sure you have your project backed up before running the " +"tool, to avoid the possibility of data loss. Additionally, make sure to " +"commit all .uid files into version control (and do not add them to ignore-" +"lists like .gitignore)." +msgstr "" +"از گودوت ۴.۴ به بعد، صحنهها و بنمایهها برای بازبرد کردن اسکریپتها و سایهزنها " +"شناسههای یکتا (یو.آی.دی) را به کار میبرند.\n" +"\n" +"بهنجارانه، این بهروزرسانی برای تنها یک صحنه یا بنمایه هنگامی که آن را برای " +"نخستین بار در گودوت ۴.۴ ذخیره کنید به کار بسته میشود. اگر صحنه یا بنمایههای " +"بسیاری دارید، دستی انجامیدن این کار شاید زمانگیر باشد. این ابزار همهٔ صحنهها و " +"بنمایههای پروژه را در یک آن بهروز خواهد کرد.\n" +"\n" +"برای بازراهاندازی ویراستار و بهروزرسانی همهٔ صحنهها و بنمایههای این پروژه روی " +"«بازراهاندازی و ارتقا» کلیک کنید. بسته به اندازهٔ پروژه، شاید چند دقیقه زمان " +"ببرد.\n" +"\n" +"بدانید: خواهشمندیم پیش از اجرای ابزار از داشتن نسخهٔ پشتیبان از پروژهٔ خود " +"مطمئن شوید تا از احتمال از دست دادن داده پیشگیری شود. همچنین، مطمئن شوید همهٔ " +"پروندههای .uid را در کنترل نسخه کامیت کردهاید (و آنها را به فهرستهای " +"نادیدهگیری همچون .gitignore نیفزودهاید)." + msgid "Export Scene to glTF 2.0 File" -msgstr "برونبرد پرده به پروندهٔ glTF 2.0" +msgstr "برونبرد صحنه به پروندهٔ glTF 2.0" msgid "Export Settings:" msgstr "تنظیمات برونبرد:" msgid "glTF 2.0 Scene..." -msgstr "پردهٔ glTF 2.0..." +msgstr "صحنهٔ glTF 2.0..." msgid "Path does not point to a valid executable." msgstr "مسیر به یک اجراپذیر معتبر اشاره نمی کند." +msgid "Couldn't run Blender executable." +msgstr "ناتوانی در اجرای پروندهٔ اجراپذیر بلندر." + +msgid "Couldn't extract version information from Blender executable at: %s." +msgstr "ناتوانی در استخراج اطلاعات نسخه از اجراپذیر بلندر در: %s." + +msgid "" +"Found Blender version %d.x, which is too old for this importer (3.0+ is " +"required)." +msgstr "" +"نسخهٔ «%d.x» بلندر یافت شد، که بیش از اندازه برای این درونبردگر کهنه است (۳.۰+ " +"نیاز است)." + +msgid "Path to Blender executable is valid (Autodetected)." +msgstr "مسیر اجراپذیر بلندر معتبر است (شناسایی خودکار)." + msgid "Path to Blender executable is valid." -msgstr "مسیر اجراپذیر Blender معتبر است." +msgstr "مسیر اجراپذیر بلندر معتبر است." + +msgid "Configure Blender Importer" +msgstr "پیکربندی درونبردگر بلندر" msgid "" "Blender 3.0+ is required to import '.blend' files.\n" "Please provide a valid path to a Blender executable." msgstr "" -"برای درونبرد پروندههای '.blend' به Blender ۳.۰ یا بالاتر نیاز است.\n" -"لطفا برای پروندهٔ اجراپذیر Blender مسیری معتبر فراهم کنید." +"برای درونبرد پروندههای '.blend' به بلندر ۳.۰ یا بالاتر نیاز است.\n" +"لطفا برای پروندهٔ اجراپذیر بلندر مسیری معتبر فراهم کنید." + +msgid "Disable '.blend' Import" +msgstr "ازکاراندازی درونبرد «.blend»" msgid "GridMap Selection" msgstr "GridMap برگزیده" @@ -10936,7 +12327,7 @@ msgid "From / To" msgstr "از / به" msgid "Use Transition:" -msgstr "بکارگیری گذار:" +msgstr "بهکارگیری گذار:" msgid "Transition From:" msgstr "گذار از:" @@ -10956,6 +12347,9 @@ msgstr "آغاز پخت" msgid "Preparing shaders" msgstr "آمادهسازی سایهزنها" +msgid "Baking light probes" +msgstr "در حال پخت کاوَندهای نور" + msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "شمار بایتها برای رمزگشایی بس نیستند، یا چارچوب نامعتبر است." @@ -10993,7 +12387,7 @@ msgid "" "Add properties using the options above, or\n" "drag them from the inspector and drop them here." msgstr "" -"ویژگیها را با بکارگیری گزینههای بالا بیفزایید، یا\n" +"ویژگیها را با بهکارگیری گزینههای بالا بیفزایید، یا\n" "آنها را از بازرس بکشانید و اینجا بیندازید." msgid "Property/path must not be empty." @@ -11006,7 +12400,7 @@ msgid "Delete Property?" msgstr "زدایش ویژگی؟" msgid "Remove Property" -msgstr "زدایش ویژگی" +msgstr "برچیدن ویژگی" msgctxt "Replication Mode" msgid "Never" @@ -11025,8 +12419,8 @@ msgid "" "Cannot generate navigation mesh because it does not belong to the edited " "scene. Make it unique first." msgstr "" -"نمیتوان مش رهیابی تولید کرد زیرا به پردهٔ ویراسته تعلق ندارد. نخست آن را " -"بیهمتا کنید." +"نمیتوان مش ناوبری تولید کرد زیرا به صحنهٔ ویراسته تعلق ندارد. نخست آن را یکتا " +"کنید." msgid "Bake NavigationMesh" msgstr "پخت NavigationMesh" @@ -11041,7 +12435,7 @@ msgid "Change Action Type" msgstr "دگرش گونهٔ کنش" msgid "Remove action" -msgstr "زدایش کنش" +msgstr "برچیدن کنش" msgid "Error loading %s: %s." msgstr "خطا در بارکردن %s : %s." @@ -11068,7 +12462,7 @@ msgid "Add binding" msgstr "افزودن کلیدها" msgid "Remove binding" -msgstr "زدایش کلیدها" +msgstr "برچیدن کلیدها" msgid "Pose" msgstr "ژست" @@ -11104,6 +12498,13 @@ msgstr "در حال نصب در دستگاه، لطفا صبر کنید..." msgid "Could not install to device: %s" msgstr "در دستگاه نصب نشد: %s" +msgid "" +"C# project targets '%s' but the export template only supports '%s'. Consider " +"using gradle builds instead." +msgstr "" +"پروژهٔ سی.شارپ «%s» را هدف میگیرد ولی قالب برونبرد تنها از «%s» پشتیبانی " +"میکند. بهجای آن بهکارگیری ساختهای گِرِیدِل را در نظر بگیرید." + msgid "" "The \"%s\" renderer is designed for Desktop devices, and is not suitable for " "Android devices." @@ -11201,6 +12602,10 @@ msgstr "نمیتوان پروندهٔ \"%s\" را گشود." msgid "Failed to open executable file \"%s\"." msgstr "ناکامی در گشودن پروندهٔ اجراپذیر \"%s\"." +msgid "32-bit executables cannot have embedded data >= 4 GiB." +msgstr "" +"اجراپذیرهای ۳۲ بیتی نمیتوانند دادهٔ نهادینهشدهٔ >= ۴ گیبیبایت داشته باشند." + msgid "Running..." msgstr "در حال اجرا..." @@ -11318,7 +12723,7 @@ msgid "Invalid identity type." msgstr "گونهٔ هویت نامعتبر است." msgid "Failed to remove temporary file \"%s\"." -msgstr "ناکامی در زدایش پروندهٔ موقت «%s»." +msgstr "ناکامی در برچیدن پروندهٔ موقت «%s»." msgid "Run exported project on remote Windows system" msgstr "اجرای پروژهٔ برونبرد شده روی دستگاه ویندوز از دور" @@ -11361,7 +12766,7 @@ msgstr "" "این گره هیچ شکلی ندارد، پس نمیتواند با دیگر شیءها برخورد یا تعامل داشته " "باشد.\n" "برای تعریف کردن شکل آن، میتوانید یک (CollisionShape2D) یا (CollisionShape2D) " -"را بعنوان فرزند به آن بیفزایید." +"را بهعنوان فرزند به آن بیفزایید." msgid "An empty CollisionPolygon2D has no effect on collision." msgstr "یک CollisionPolygon2D تهی بر برخوردگاه تاثیری ندارد." @@ -11422,9 +12827,9 @@ msgid "" "Vertices can be added in the inspector or using the polygon editing tools at " "the top of the 3D editor viewport." msgstr "" -"بندآور چندضلعی کمتر از ۳ رأس دارد، بنابراین هیچ گردآوری بندآمدگی با بکارگیری " +"بندآور چندضلعی کمتر از ۳ رأس دارد، بنابراین هیچ گردآوری بندآمدگی با بهکارگیری " "این OccluderInstance3D انجام نخواهد گرفت.\n" -"رئوس میتوانند از درون بازرس یا با بکارگیری ابزار ویرایش چندضلعی در بالای " +"رئوس میتوانند از درون بازرس یا با بهکارگیری ابزار ویرایش چندضلعی در بالای " "ویراستار ۳بعدی دیدگستره افزوده شوند." msgid "" @@ -11435,7 +12840,7 @@ msgstr "" "این گره هیچ شکلی ندارد، پس نمیتواند با دیگر شیءها برخورد یا تعامل داشته " "باشد.\n" "برای تعریف کردن شکل آن، میتوانید یک (CollisionShape3D) یا " -"(CollisionPolygon3D) را بعنوان فرزند به آن بیفزایید." +"(CollisionPolygon3D) را بهعنوان فرزند به آن بیفزایید." msgid "An empty CollisionPolygon3D has no effect on collision." msgstr "یک CollisionPolygon3D تهی بر برخوردگاه تاثیری ندارد." @@ -11476,7 +12881,7 @@ msgid "" "Only one WorldEnvironment is allowed per scene (or set of instantiated " "scenes)." msgstr "" -"تنها یک WorldEnvironment در هر پرده (یا گروهی از پردههای نمونهساخته) مجاز است." +"تنها یک WorldEnvironment در هر صحنه (یا گروهی از صحنههای نمونهساخته) مجاز است." msgid "No pose is set." msgstr "ژستی نشانده نشده است." @@ -11495,23 +12900,23 @@ msgid "" "intended content.\n" "Consider adding a SubViewport as a child to provide something displayable." msgstr "" -"این گره زیردیدگسترهای بعنوان فرزند ندارد، پس نمیتواند محتوای مورد نظر را " +"این گره زیردیدگسترهای بهعنوان فرزند ندارد، پس نمیتواند محتوای مورد نظر را " "نمایش دهد.\n" -"برای فراهم کردن چیزی نمایشپذیر، افزودن زیردیدگسترهای بعنوان فرزند را در نظر " +"برای فراهم کردن چیزی نمایشپذیر، افزودن زیردیدگسترهای بهعنوان فرزند را در نظر " "بگیرید." msgid "" "This node is marked as deprecated and will be removed in future versions.\n" "Please check the Godot documentation for information about migration." msgstr "" -"این گره به عنوان منسوخ علامت گذاری شدهاست و در نسخههای بعدی حذف خواهد شد.\n" -"لطفاً اسناد گودو را برای اطلاعات در مورد مهاجرت بررسی کنید." +"این گره بهعنوان منسوخ نشانهگذاری شده است و در نسخههای آینده برچیده خواهد شد.\n" +"خواهشمندیم مستندات گودوت را برای اطلاعات دربارهٔ مهاجرت بررسی کنید." msgid "" "Shader keywords cannot be used as parameter names.\n" "Choose another name." msgstr "" -"کلیدواژههای سایهزن نمیتوانند بعنوان نام پارامترها بکارروند.\n" +"کلیدواژههای سایهزن نمیتوانند بهعنوان نام پارامترها بکارروند.\n" "نام دیگری برگزینید." msgid "Invalid source for preview." @@ -11530,7 +12935,7 @@ msgid "Invalid comparison function for that type." msgstr "تابع همسنجی برای آن گونه نامعتبر است." msgid "2D Mode" -msgstr "حالت ۲بعدی" +msgstr "حالت دوبعدی" msgid "Constants cannot be modified." msgstr "ثوابت قابل تغییر نیستند." diff --git a/engine/editor/translations/editor/fi.po b/engine/editor/translations/editor/fi.po index d3261165..15eefff1 100644 --- a/engine/editor/translations/editor/fi.po +++ b/engine/editor/translations/editor/fi.po @@ -24,13 +24,14 @@ # Hideri <foreheadchann@googlemail.com>, 2024. # Emil Hakala <emil.hakala44@gmail.com>, 2024. # Ricky Tigg <ricky.tigg@gmail.com>, 2025. +# V Lo <vil.lokasaari@gmail.com>, 2025. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2025-01-14 16:52+0000\n" -"Last-Translator: Ricky Tigg <ricky.tigg@gmail.com>\n" +"PO-Revision-Date: 2025-02-24 06:34+0000\n" +"Last-Translator: V Lo <vil.lokasaari@gmail.com>\n" "Language-Team: Finnish <https://hosted.weblate.org/projects/godot-engine/" "godot/fi/>\n" "Language: fi\n" @@ -38,7 +39,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 5.10-dev\n" +"X-Generator: Weblate 5.10.1-dev\n" msgid "Main Thread" msgstr "Pääsäie" @@ -190,6 +191,9 @@ msgstr "Ohjaimen painike %d" msgid "Pressure:" msgstr "Paine:" +msgid "canceled" +msgstr "peruutettu" + msgid "touched" msgstr "koskettu" @@ -362,6 +366,9 @@ msgstr "Valitse Sana Sirkumfleksin alta" msgid "Add Selection for Next Occurrence" msgstr "Lisää Valinta Seuraavalle Tapahtumalle" +msgid "Skip Selection for Next Occurrence" +msgstr "Ohita Valinta Seuraavalle Tapahtumalle" + msgid "Clear Carets and Selection" msgstr "Poista Karetit ja Valinta" @@ -389,6 +396,9 @@ msgstr "Näytä Piilotetut" msgid "Swap Input Direction" msgstr "Vaihda Syötteen Suunta" +msgid "Start Unicode Character Input" +msgstr "Aloita Unicode Syöttö" + msgid "Invalid input %d (not passed) in expression" msgstr "Virheellinen syöte %d (ei välitetty) lausekkeessa" diff --git a/engine/editor/translations/editor/fr.po b/engine/editor/translations/editor/fr.po index 3c50e6ac..f6fef7dc 100644 --- a/engine/editor/translations/editor/fr.po +++ b/engine/editor/translations/editor/fr.po @@ -121,7 +121,7 @@ # Dricom Dragon <dev@jovian-hersemeule.eu>, 2023. # t8y <contact@t3y.eu>, 2023. # Jean-Michel Bernard <jmb462@gmail.com>, 2023. -# Paul Cordellier <cordellierp@gmail.com>, 2023. +# Paul Cordellier <cordellierp@gmail.com>, 2023, 2025. # Hugo cartier <hugo.toticartier@gmail.com>, 2023. # Rémy Lapointe <remy-lapointe@hotmail.ca>, 2023. # "Dimitri A." <dimitripilot3@gmail.com>, 2023. @@ -180,13 +180,18 @@ # Florian Echelard <florian.echelard@gmail.com>, 2024. # paul-arg <paul.arguillere@gmail.com>, 2024, 2025. # Patrice Ferlet <metal3d@gmail.com>, 2025. +# vitawrap <thevitawrap@gmail.com>, 2025. +# Alexandre Demers-Roberge <rotmgiobsidian@gmail.com>, 2025. +# aioshiro <aioshiro57@proton.me>, 2025. +# Valentin Pecatte <v.pecatte@gmail.com>, 2025. +# xpeuvr327 <phucbaodomi@gmail.com>, 2025. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2025-01-28 15:53+0000\n" -"Last-Translator: Patrice Ferlet <metal3d@gmail.com>\n" +"PO-Revision-Date: 2025-03-02 03:07+0000\n" +"Last-Translator: xpeuvr327 <phucbaodomi@gmail.com>\n" "Language-Team: French <https://hosted.weblate.org/projects/godot-engine/godot/" "fr/>\n" "Language: fr\n" @@ -194,7 +199,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 5.10-dev\n" +"X-Generator: Weblate 5.10.3-dev\n" msgid "Main Thread" msgstr "Fil principal" @@ -260,16 +265,16 @@ msgid "Joystick 2 Y-Axis, Right Trigger, Sony R2, Xbox RT" msgstr "Axe Y Joystick 2, Gâchette droite, R2 Sony, RT Xbox" msgid "Joystick 3 X-Axis" -msgstr "Axe X du Joystick 3" +msgstr "Axe X Joystick 3" msgid "Joystick 3 Y-Axis" -msgstr "Axe Y du Joystick 3" +msgstr "Axe Y Joystick 3" msgid "Joystick 4 X-Axis" -msgstr "Axe X du Joystick 4" +msgstr "Axe X Joystick 4" msgid "Joystick 4 Y-Axis" -msgstr "Axe Y du Joystick 4" +msgstr "Axe Y Joystick 4" msgid "Unknown Joypad Axis" msgstr "Axe de contrôleur inconnu" @@ -553,6 +558,9 @@ msgstr "Afficher les fichiers cachés" msgid "Swap Input Direction" msgstr "Échanger les Directions d'Entrée" +msgid "Start Unicode Character Input" +msgstr "Entrer des caractères Unicode" + msgid "Invalid input %d (not passed) in expression" msgstr "Entrée non valide %d (non transmise) dans l’expression" @@ -797,6 +805,41 @@ msgstr "Modifier la durée de l’animation" msgid "Change Animation Loop" msgstr "Changer la boucle d’animation" +msgid "" +"Can't change loop mode on animation instanced from an imported scene.\n" +"\n" +"To change this animation's loop mode, navigate to the scene's Advanced Import " +"settings and select the animation.\n" +"You can then change the loop mode from the inspector menu." +msgstr "" +"Le mode de répétition d'une animation instanciée depuis une scène importée ne " +"peut pas être changé.\n" +"\n" +"Pour changer ce mode, naviguez vers les réglages avancés d'importation et " +"sélectionnez l'animation.\n" +"Vous pourrez ensuite changer le mode de répétition depuis l'inspecteur." + +msgid "Can't change loop mode on animation instanced from an imported resource." +msgstr "" +"Impossible de changer le mode de répétition d'animations instanciées depuis " +"une ressource importée." + +msgid "" +"Can't change loop mode on animation embedded in another scene.\n" +"\n" +"You must open this scene and change the animation's loop mode from there." +msgstr "" +"Impossible de changer le mode de répétition d'animations intégrées dans une " +"autre scène.\n" +"\n" +"Vous devez ouvrir cette scène et ensuite y changer le mode de répétition de " +"l'animation." + +msgid "Can't change loop mode on animation embedded in another resource." +msgstr "" +"Impossible de changer le mode de répétition d'animations intégrées dans une " +"autre ressource." + msgid "Property Track..." msgstr "Piste de propriétés..." @@ -1200,6 +1243,12 @@ msgstr "" msgid "Group tracks by node or display them as plain list." msgstr "Grouper les pistes par nœuds ou les afficher dans une liste simple." +msgid "Apply snapping to timeline cursor." +msgstr "Appliquer la magnétisation sur le curseur chronologique." + +msgid "Apply snapping to selected key(s)." +msgstr "Appliquer magnétisation sur la(les) clé(s) sélectionnée(s)." + msgid "Animation step value." msgstr "Valeur du pas d'animation." @@ -1420,12 +1469,54 @@ msgstr "Tout Sélectionner/Désélectionner" msgid "Animation Change Keyframe Time" msgstr "Modifier le temps de la clé d'animation" +msgid "Marker name is read-only in the inspector." +msgstr "Cette propriété est en lecture seule dans l'inspecteur." + +msgid "" +"A marker's name can only be changed by right-clicking it in the animation " +"editor and selecting \"Rename Marker\", in order to make sure that marker " +"names are all unique." +msgstr "" +"Le nom d’une clé ne peut être modifié qu’en faisant un clic droit dessus dans " +"l’éditeur d’animation et en sélectionnant « Renommer la clé », afin de " +"garantir que tous les noms de clés soient uniques." + +msgid "Rename Marker" +msgstr "Renommer le calque" + +msgid "Delete Marker(s)" +msgstr "Supprimer les clé(s)" + +msgid "Show All Marker Names" +msgstr "Afficher tous les noms des clés" + +msgid "Marker:" +msgstr "Marqueur :" + +msgid "Insert Marker" +msgstr "Insérer une clé" + +msgid "Marker Name" +msgstr "Modifier le nom de la clé" + +msgid "Marker Color" +msgstr "Couleur de la clé" + msgid "Close" msgstr "Fermer" msgid "Error!" msgstr "Erreur !" +msgid "Change Marker Name:" +msgstr "Modifier le nom de la clé :" + +msgid "Edit Marker Color" +msgstr "Définir la couleur de la clé" + +msgid "Multi Edit Marker Color" +msgstr "Édition multiple de couleur de marqueur" + msgid "Add Audio Track Clip" msgstr "Ajouter un clip audio" @@ -1674,6 +1765,9 @@ msgstr "Créer un nouveau %s" msgid "No results for \"%s\"." msgstr "Aucun résultats pour \"%s\"." +msgid "Script path: %s" +msgstr "Nom du script : %s" + msgid "This class is marked as deprecated." msgstr "Cette classe a été annotée comme étant obsolète." @@ -1704,6 +1798,9 @@ msgstr "Description :" msgid "Remote %s:" msgstr "%s distant :" +msgid "Session %d" +msgstr "Session %d" + msgid "Debugger" msgstr "Débogueur" @@ -1734,6 +1831,9 @@ msgstr "" msgid "Toggle Visibility" msgstr "Basculer la visibilité" +msgid "Expression to evaluate" +msgstr "Expression à évaluer" + msgid "Clear" msgstr "Vider" @@ -2065,6 +2165,12 @@ msgstr "" msgid "Cannot remove:" msgstr "Impossible à enlever :" +msgid "Files to be deleted:" +msgstr "Fichiers à supprimer :" + +msgid "Dependencies of files to be deleted:" +msgstr "Dépendances des fichiers à supprimer :" + msgid "Error loading:" msgstr "Erreur au chargement :" @@ -2121,6 +2227,9 @@ msgstr "" "Utiliser des barres obliques (slash) dans les noms de dossiers créera des " "sous-dossiers de manière récursive." +msgid "Base path: %s" +msgstr "Chemin de base : %s" + msgid "Folder name is valid." msgstr "Le nom du dossier est valide." @@ -2679,6 +2788,12 @@ msgstr "[vide]" msgid "[unsaved]" msgstr "[non enregistré]" +msgid "Open the %s dock." +msgstr "Ouvrir le dock %s." + +msgid "Focus on the %s dock." +msgstr "Focus sur le dock %s." + msgid "%s - Godot Engine" msgstr "%s - Godot Engine" @@ -2856,6 +2971,24 @@ msgstr "Profil(s) d'importation" msgid "Manage Editor Feature Profiles" msgstr "Gérer les profils de fonctionnalités de l'éditeur" +msgid "Project initialization" +msgstr "Initialisation du projet" + +msgid "Scanning file structure..." +msgstr "Analyse de la structure des fichiers..." + +msgid "Verifying GDExtensions..." +msgstr "Vérification des GDExtensions..." + +msgid "Creating autoload scripts..." +msgstr "Création des scripts de chargement automatique…" + +msgid "Initializing plugins..." +msgstr "Initialisation des extensions..." + +msgid "Starting file scan..." +msgstr "Démarrage du scan de fichiers..." + msgid "Some extensions need the editor to restart to take effect." msgstr "" "Certaines extensions nécessitent un redémarrage de l'éditeur pour prendre " @@ -2870,6 +3003,9 @@ msgstr "Enregistrer et redémarrer" msgid "ScanSources" msgstr "Scanner les sources" +msgid "Updating Scene Groups" +msgstr "Mise à jour des groupes de la scène" + msgid "" "There are multiple importers for different types pointing to file %s, import " "aborted" @@ -2880,9 +3016,24 @@ msgstr "" msgid "(Re)Importing Assets" msgstr "Ré-importation des assets" +msgid "Preparing files to reimport..." +msgstr "Préparation des fichiers pour la réimportation..." + +msgid "Executing pre-reimport operations..." +msgstr "Exécution des opérations de pré-réimportation..." + msgid "Import resources of type: %s" msgstr "Importer les ressources de type : %s" +msgid "Finalizing Asset Import..." +msgstr "Finalisation des importations de ressources..." + +msgid "Executing post-reimport operations..." +msgstr "Exécution des opérations post-réimportation..." + +msgid "Copying files..." +msgstr "Copie des fichiers..." + msgid "This method supports a variable number of arguments." msgstr "Cette méthode peut prendre un nombre variable d'arguments." @@ -2907,6 +3058,9 @@ msgstr "" "Cette méthode n'a pas besoin d'instanciation afin d'être appelée.\n" "Elle peut être appelée en utilisant directement son nom de classe." +msgid "Code snippet copied to clipboard." +msgstr "Extrait de code copié dans le presse-papiers." + msgid "No return value." msgstr "Pas de valeur retournée." @@ -3062,6 +3216,11 @@ msgstr "Icônes" msgid "Styles" msgstr "Styles" +msgid "This theme property may be changed or removed in future versions." +msgstr "" +"Cette propriété de thème pourra être modifiée ou supprimée dans les versions " +"futures." + msgid "There is currently no description for this theme property." msgstr "Il n'y a actuellement pas de description pour cette propriété du thème." @@ -3146,6 +3305,10 @@ msgstr "Cliquez pour copier." msgid "No description available." msgstr "Aucune description disponible." +msgid "This annotation may be changed or removed in future versions." +msgstr "" +"Cette annotation pourra être modifiée ou supprimée dans les versions futures." + msgid "Show in FileSystem" msgstr "Montrer dans le système de fichiers" @@ -3155,12 +3318,24 @@ msgstr "Ouvrir dans le gestionnaire de fichiers" msgid "Class" msgstr "Classe" +msgid "Enumeration" +msgstr "Énumération" + msgid "Constant" msgstr "Constante" +msgid "Metadata" +msgstr "Métadonnées" + +msgid "Setting" +msgstr "Réglage" + msgid "Property" msgstr "Propriété" +msgid "Internal Property" +msgstr "Propriété Interne" + msgid "This property can only be set in the Inspector." msgstr "Cette propriété ne peut être établie que dans l'Inspecteur." @@ -3176,9 +3351,18 @@ msgstr "Signaux" msgid "Annotation" msgstr "Annotation" +msgid "Local Constant" +msgstr "Constante Locale" + msgid "File" msgstr "Fichier" +msgid "Invalid path" +msgstr "Chemin invalide" + +msgid "This path does not exist." +msgstr "Ce chemin n'existe pas." + msgid "%d match." msgstr "%d correspondance trouvée." @@ -3242,6 +3426,12 @@ msgstr "Ce membre est signalé comme obsolète." msgid "This member is marked as experimental." msgstr "Ce membre est signalé comme expérimental." +msgid "Favorite Property" +msgstr "Propriétés Favorites" + +msgid "Make this property be placed at the top for all objects of this class." +msgstr "Placer cette propriété en haut de tous les objets de cette classe." + msgid "Pin Value" msgstr "Épingler la valeur" @@ -3439,6 +3629,11 @@ msgstr "Inspecteur de source de Shader Natif" msgid "Unnamed Project" msgstr "Projet sans titre" +msgid "Recovery Mode is enabled. Editor functionality has been restricted." +msgstr "" +"Le mode de récupération est activé. Les fonctionnalités de l'éditeur ont été " +"limitées." + msgid "" "Spins when the editor window redraws.\n" "Update Continuously is enabled, which can increase power usage. Click to " @@ -3653,6 +3848,9 @@ msgstr "" msgid "Save Scene As..." msgstr "Enregistrer la scène sous…" +msgid "Pack Project as ZIP..." +msgstr "Compresser le projet en ZIP..." + msgid "Can't undo while mouse buttons are pressed." msgstr "Impossible d'annuler quand les boutons de la souris sont pressés." @@ -4209,6 +4407,18 @@ msgstr "Bibliothèque d'exportation" msgid "Open & Run a Script" msgstr "Ouvrir et exécuter un script" +msgid "The following files are newer on disk:" +msgstr "Les fichiers suivants sont plus récents sur le disque :" + +msgid "What action should be taken?" +msgstr "Quelle action doit être prise ?" + +msgid "Reload from disk" +msgstr "Recharger depuis le disque dur" + +msgid "Ignore external changes" +msgstr "Ignore les changements externes" + msgid "Create/Override Version Control Metadata..." msgstr "Créer/Remplacer les métadonnées de contrôle de version..." @@ -4363,6 +4573,12 @@ msgstr "Nouvelle Valeur :" msgid "(Nil) %s" msgstr "(Nul) %s" +msgid "%s%s (size %d)" +msgstr "%s%s (taille %d)" + +msgid "%s (size %d)" +msgstr "%s (taille %d)" + msgid "Size:" msgstr "Taille :" @@ -4440,6 +4656,18 @@ msgstr "" "Aucun préréglage d'exportation exécutable trouvé pour cette plate-forme. \n" "Ajoutez un préréglage exécutable dans le menu d'exportation." +msgid "Deploy to First Device in List" +msgstr "Déployer sur le premier appareil de la liste" + +msgid "Deploy to Second Device in List" +msgstr "Déployer sur le deuxième appareil de la liste" + +msgid "Deploy to Third Device in List" +msgstr "Déployer sur le troisième appareil de la liste" + +msgid "Deploy to Fourth Device in List" +msgstr "Déployer sur le quatrième appareil de la liste" + msgid "Project Run" msgstr "Exécution du projet" @@ -4449,6 +4677,9 @@ msgstr "Écrivez votre code dans la méthode _run()." msgid "The current scene already has a root node." msgstr "La scène actuelle a déjà un nœud racine." +msgid "Advanced settings are always shown when searching." +msgstr "Les paramètres avancés sont toujours affichés lors d'une recherche." + msgid "Edit Built-in Action: %s" msgstr "Éditer l'action intégrée : %s" @@ -4461,6 +4692,9 @@ msgstr "Aucun" msgid "Common" msgstr "Commun" +msgid "Event %d" +msgstr "Évènement %d" + msgid "Editor Settings" msgstr "Paramètres de l'éditeur" @@ -4689,6 +4923,9 @@ msgstr "Impossible de créer le fichier \"%s\"." msgid "Failed to export project files." msgstr "Impossible d'exporter les fichiers du projet." +msgid "No files or changes to export." +msgstr "Aucun fichier ou changement à exporter." + msgid "Can't open file for writing at path \"%s\"." msgstr "Impossible d'ouvrir le fichier pour écriture au chemin \"%s\"." @@ -4708,6 +4945,9 @@ msgstr "Impossible d'ouvrir le fichier en lecture depuis le chemin \"%s\"." msgid "Save ZIP" msgstr "Enregistrer ZIP" +msgid "Failed to move temporary file \"%s\" to \"%s\"." +msgstr "Échec du déplacement du fichier temporaire \"%s\" à \"%s\"." + msgid "Custom debug template not found." msgstr "Modèle de débogage personnalisé introuvable." @@ -4739,6 +4979,12 @@ msgstr "Intégration du PCK" msgid "On 32-bit exports the embedded PCK cannot be bigger than 4 GiB." msgstr "Le PCK inclus dans un export 32-bits ne peut dépasser 4 Go." +msgid "GDExtension" +msgstr "GDExtension" + +msgid "Failed to copy shared object \"%s\"." +msgstr "Échec de copie de l'objet partagé \"%s\"." + msgid "Plugin \"%s\" is not supported on \"%s\"" msgstr "L'extension \"%s\" n'est pas prise en charge sur la plateforme \"%s\"" @@ -4872,6 +5118,12 @@ msgid "Export templates are missing. Install them from a file." msgstr "" "Les modèles d'export sont manquants. Installez-les à partir d'un fichier." +msgid "Not available in offline mode" +msgstr "Non disponible en mode hors ligne" + +msgid "Template downloading is disabled in offline mode." +msgstr "Le téléchargement de modèles est désactivé en mode hors ligne." + msgid "Official export templates aren't available for development builds." msgstr "" "Les modèles d'exportation officiels ne sont pas disponibles pour les versions " @@ -5075,6 +5327,9 @@ msgstr "" "Filtres pour exclure les fichiers/dossiers du projet\n" "(séparés par des virgules, par exemple : *.json, *.txt, docs/*)" +msgid "Patches" +msgstr "Patchs" + msgid "Godot Project Pack" msgstr "Pack de Projet Godot" @@ -5235,6 +5490,9 @@ msgstr "Parcourir" msgid "Confirm Path" msgstr "Confirmer le chemin" +msgid "Link to: %s" +msgstr "Liée à : %s" + msgid "View items as a grid of thumbnails." msgstr "Afficher les éléments sous forme de grille de vignettes." @@ -5291,6 +5549,9 @@ msgstr "" msgid "A file or folder with this name already exists." msgstr "Un fichier ou un dossier avec ce nom existe déjà." +msgid "Could not create base directory: %s" +msgstr "Impossible de créer le répertoire de base : %s" + msgid "" "The following files or folders conflict with items in the target location " "'%s':" @@ -5330,6 +5591,15 @@ msgstr "Duplication du dossier :" msgid "Create Folder" msgstr "Créer un dossier" +msgid "" +"Do you wish to convert these files to %s? (This operation cannot be undone!)" +msgstr "" +"Voulez-vous convertir ces fichiers en %s ? (Cette opération ne peut être " +"annulée !)" + +msgid "Could not create folder: %s" +msgstr "Impossible de créer le dossier : %s" + msgid "New Inherited Scene" msgstr "Nouvelle scène héritée" @@ -5390,6 +5660,9 @@ msgstr "Ajouter aux favoris" msgid "Remove from Favorites" msgstr "Supprimer des favoris" +msgid "Convert to..." +msgstr "Convertir en..." + msgid "Reimport" msgstr "Réimporter" @@ -5780,6 +6053,27 @@ msgstr "Aucune sous-ressource n'a été trouvée." msgid "Open a list of sub-resources." msgstr "Ouvrir une liste de sous-ressources." +msgid "Addons" +msgstr "Extensions" + +msgid "Include files from addons" +msgstr "Inclure les fichiers d'extensions" + +msgid "Start searching to find files..." +msgstr "Commence à rechercher des fichiers..." + +msgid "No results found" +msgstr "Aucun résultat trouvé" + +msgid " (recently opened)" +msgstr " (ouvert récemment)" + +msgid "Grid view" +msgstr "Affichage en grille" + +msgid "List view" +msgstr "Affichage en liste" + msgid "Play the project." msgstr "Lancer le projet." @@ -5813,9 +6107,57 @@ msgstr "" msgid "Could not start subprocess(es)!" msgstr "Impossible de démarrer le(s) sous-processus !" +msgid "Recovery Mode is enabled. Disable it to run the project." +msgstr "Le mode de récupération est activé. Désacivez le pour lancer le projet." + +msgid "" +"Autostart is enabled for the following profilers, which can have a " +"performance impact:" +msgstr "" +"Le démarrage automatique est activé pour les profileurs suivants, ce qui peut " +"avoir un impact sur la performance:" + msgid "Network Profiler" msgstr "Profileur réseau" +msgid "" +"Godot opened the project in Recovery Mode, which is a special mode that can " +"help recover projects that crash the engine upon initialization. The " +"following features have been temporarily disabled:" +msgstr "" +"Godot a ouvert le projet en Mode Récupération, qui est un mode spécial qui " +"peut aider à récupérer des projets qui plantent le moteur lors de " +"l'initialisation. Les fonctionnalités suivantes ont été temporairements " +"désactivées:" + +msgid "Automatic scene restoring" +msgstr "Récupération de scène automatique" + +msgid "" +"If the project cannot be opened outside of this mode, then it's very likely " +"any of these components is preventing this project from launching. This mode " +"is intended only for basic editing to troubleshoot such issues, and therefore " +"it is not possible to run a project in this mode." +msgstr "" +"Si le projet ne peut être ouvert en dehors de ce mode, alors il est très " +"probable que l'un de ces composants empêche ce projet de se lancer. Ce mode " +"n'est destiné qu'à l'édition de base pour résoudre ces problèmes, et il n'est " +"donc pas possible d'exécuter un projet dans ce mode." + +msgid "" +"To disable Recovery Mode, reload the project by pressing the Reload button " +"next to the Recovery Mode banner, or by reopening the project normally." +msgstr "" +"Pour désactiver le mode de récupération, rechargez le projet en appuyant sur " +"le bouton Recharger à côté de la bannière du mode de récupération, ou en " +"réouvrant le projet normalement." + +msgid "Disable recovery mode and reload the project." +msgstr "Désactiver le mode de récupération et recharger le projet." + +msgid "Recovery Mode is enabled. Click for more details." +msgstr "Le mode de récupération est activé. Cliquez pour plus de détails." + msgid "Run the project's default scene." msgstr "Exécuter la scène par défaut du projet." @@ -5834,6 +6176,12 @@ msgstr "Arrêter le projet en cours." msgid "Stop Running Project" msgstr "Arrêter l'exécution du projet" +msgid "Run Scene in Regular Mode" +msgstr "Démarrer la Scène en mode normal" + +msgid "Run Scene in XR Mode" +msgstr "Exécuter la scène en mode XR" + msgid "Run the currently edited scene." msgstr "Exécuter la scène en cours d'édition." @@ -5914,6 +6262,9 @@ msgstr "Déverrouiller le nœud" msgid "Ungroup Children" msgstr "Dégrouper les enfants" +msgid "Revoke unique name for node \"%s\"?" +msgstr "Révoquer nom unique pour le nœud \"%s\" ?" + msgid "Disable Scene Unique Name" msgstr "Désactiver le nom unique de la scène" @@ -5923,6 +6274,16 @@ msgstr "(Connexion à partir de)" msgid "Node configuration warning:" msgstr "Avertissement de configuration de nœud :" +msgid "" +"This node can be accessed from anywhere within the scene it belongs to by " +"using the '%s' prefix in the node path." +msgstr "" +"Ce nœud peut être accédé de n'importe où dans la scène à laquelle il " +"appartient en utilisant le préfixe '%s' dans le chemin de nœud." + +msgid "Click to disable this." +msgstr "Cliquz pour désactiver." + msgid "Node has one connection." msgid_plural "Node has {num} connections." msgstr[0] "Le nœud a une connexion." @@ -5936,6 +6297,13 @@ msgstr[1] "Le nœud fait partie des groupes :" msgid "Click to show signals dock." msgstr "Cliquez pour afficher le dock des signaux." +msgid "" +"This script can run in the editor.\n" +"It is currently disabled due to recovery mode." +msgstr "" +"Ce script peut s'exécuter dans l'éditeur.\n" +"Cela a été désactivé à cause du mode de récupération." + msgid "This script is currently running in the editor." msgstr "Ce script est en cours d'exécution dans l'éditeur." @@ -5972,6 +6340,14 @@ msgstr "Ouvrir dans l'éditeur" msgid "\"%s\" is not a known filter." msgstr "\"%s\" n'est pas un filtre connu." +msgid "" +"Root nodes cannot be accessed as unique names in their own scene. Instantiate " +"in another scene and set as unique name there." +msgstr "" +"Les nœuds racines ne peuvent pas être accédés en tant que noms uniques dans " +"leur propre scène. Créez une instance dans une autre scène et définissez-y un " +"nom unique." + msgid "Invalid node name, the following characters are not allowed:" msgstr "Nom de nœud invalide, les caractères suivants ne sont pas autorisés :" @@ -5993,6 +6369,9 @@ msgstr "Arbre de scène (nœuds) :" msgid "Node Configuration Warning!" msgstr "Avertissement de configuration de nœud !" +msgid "Revoke" +msgstr "Révoquer" + msgid "Allowed:" msgstr "Autorisé :" @@ -6622,9 +7001,29 @@ msgstr "Gérer les propriétés de l'objet." msgid "This cannot be undone. Are you sure?" msgstr "Cette action est irréversible. Voulez-vous continuer ?" +msgid "Add %d Translation" +msgid_plural "Add %d Translations" +msgstr[0] "Ajouter %d traduction" +msgstr[1] "Ajouter %d traductions" + msgid "Remove Translation" msgstr "Supprimer la traduction" +msgid "Translation Resource Remap: Add %d Path" +msgid_plural "Translation Resource Remap: Add %d Paths" +msgstr[0] "" +"Réaffectation (remap) des ressources par traduction : Ajouter %d chemin" +msgstr[1] "" +"Réaffectation (remap) des ressources par traduction : Ajouter %d chemins" + +msgid "Translation Resource Remap: Add %d Remap" +msgid_plural "Translation Resource Remap: Add %d Remaps" +msgstr[0] "" +"Réaffectation (remap) des ressources par traduction : Ajouter %d réaffectation" +msgstr[1] "" +"Réaffectation (remap) des ressources par traduction : Ajouter %d " +"réaffectations" + msgid "Change Resource Remap Language" msgstr "Modifier le langage de réaffectation (remap) des ressources" @@ -6634,6 +7033,11 @@ msgstr "Supprimer la réaffectation (remap) des ressources" msgid "Remove Resource Remap Option" msgstr "Supprimer l'option de réaffectation (remap) de ressource" +msgid "Add %d file for POT generation" +msgid_plural "Add %d files for POT generation" +msgstr[0] "Ajouter %d fichier pour la génération POT" +msgstr[1] "Ajouter %d fichiers pour la génération POT" + msgid "Remove file from POT generation" msgstr "Retirer le fichier de la génération POT" @@ -7709,6 +8113,9 @@ msgstr "" "Alt + Clic droit : Afficher une liste de tous les nœuds à la position " "cliquée, y compris les nœuds verrouillés." +msgid "(Available in all modes.)" +msgstr "(Disponible dans tous les modes.)" + msgid "RMB: Add node at position clicked." msgstr "Clic droit : Ajouter un nœud à la position cliquée." @@ -8341,6 +8748,13 @@ msgstr "" msgid "Edit Plugin" msgstr "Modifier le Plugin" +msgid "" +"Recovery mode is enabled. Enabled plugins will not run while this mode is " +"active." +msgstr "" +"Le mode de récupération est activé. Les extensions ne seront pas actives tant " +"que ce mode est actif." + msgid "Installed Plugins:" msgstr "Extensions installées :" @@ -8417,9 +8831,18 @@ msgstr "Largeurs d'Asie de l'est" msgid "Numeral Alignment" msgstr "Alignement numéral" +msgid "Variation" +msgstr "Variation" + msgid "Unable to preview font" msgstr "Impossible de prévisualiser la police" +msgid "Press play to start the game." +msgstr "Appuyez sur jouer pour démarrer le jeu." + +msgid "Game embedding not available on your OS." +msgstr "La prévisualisation du jeu n'est pas disponible sur votre OS." + msgid "Change AudioStreamPlayer3D Emission Angle" msgstr "Changer l'angle d'émission AudioStreamPlayer3D" @@ -8582,12 +9005,18 @@ msgstr "" msgid "Bake Lightmaps" msgstr "Précalculer les lightmaps" +msgid "Lightmap baking is not supported on this GPU (%s)." +msgstr "Le pré-calcul des lumières n'est pas pris en charge sur ce GPU (%s)." + msgid "LightMap Bake" msgstr "Précalcul du lightmap" msgid "Select lightmap bake file:" msgstr "Sélectionnez le fichier de précalcul de lightmap :" +msgid "Preview is not available for this shader mode." +msgstr "La prévisualisation n'est pas disponible pour ce mode de shader." + msgid "Couldn't create a Trimesh collision shape." msgstr "Impossible de créer une forme de collision Trimesh." @@ -8975,6 +9404,9 @@ msgstr "Orthogonale arrière" msgid "Rear Perspective" msgstr "Perspective arrière" +msgid "[auto]" +msgstr "[auto]" + msgid "X-Axis Transform." msgstr "Transformation sur l'axe X." @@ -10017,9 +10449,15 @@ msgstr "Os" msgid "Move Points" msgstr "Déplacer des points" +msgid "%s: Rotate" +msgstr "%s : Tourner" + msgid "Shift: Move All" msgstr "Maj : Tout déplacer" +msgid "%s + Shift: Scale" +msgstr "%s + Maj : Mettre à l'échelle" + msgid "Move Polygon" msgstr "Déplacer le polygone" @@ -10129,6 +10567,9 @@ msgstr "" "AnimationMixer n'a pas de chemin de nœud racine valide, il est donc " "impossible de récupérer les noms de piste." +msgid "Current value: " +msgstr "Profil actuel : " + msgid "Can't open '%s'. The file could have been moved or deleted." msgstr "Impossible d'ouvrir « %s ». Le fichier a pu être déplacé ou supprimé." @@ -10382,6 +10823,9 @@ msgid "Can't drop nodes because script '%s' does not inherit Node." msgstr "" "Impossible de déposer les nœuds car le script '%s' n’hérite pas de Node." +msgid "Emoji & Symbols" +msgstr "Émojis & Symboles" + msgid "Pick Color" msgstr "Prélever une couleur" @@ -10563,9 +11007,21 @@ msgstr "Remettre à la position de repos" msgid "Overwrite Rest Pose" msgstr "Écraser la position de repos" +msgid "Bone Metadata" +msgstr "Métadonnées de l'os" + msgid "Set Bone Transform" msgstr "Définir transformation de l'os" +msgid "Modify metadata '%s' for bone '%s'" +msgstr "Modifie les métadonnées « %s » pour l'os « %s »" + +msgid "Remove metadata '%s' from bone '%s'" +msgstr "Supprimer métadonnées '%s' de l'os '%s'" + +msgid "Add metadata '%s' to bone '%s'" +msgstr "Ajouter métadonnée '%s' à l'os '%s'" + msgid "Set Bone Rest" msgstr "Définir pose au repos de l'os" @@ -15304,6 +15760,42 @@ msgstr "" msgid "Restart & Upgrade" msgstr "Redémarrer et mettre à jour" +msgid "" +"As of Godot 4.4, scenes and resources use UIDs to reference scripts and " +"shaders.\n" +"\n" +"Normally, this update is applied to a single scene or resource once you save " +"it in Godot 4.4 for the first time. If you have a lot of scenes and/or " +"resources, doing this manually may be time-consuming. This tool will update " +"all of the project's scenes and resources at once.\n" +"\n" +"Click \"Restart & Upgrade\" to restart the editor and update all of the " +"scenes and resources in this project. Depending on the project size, it may " +"take several minutes.\n" +"\n" +"Note: Please make sure you have your project backed up before running the " +"tool, to avoid the possibility of data loss. Additionally, make sure to " +"commit all .uid files into version control (and do not add them to ignore-" +"lists like .gitignore)." +msgstr "" +"Avec la version 4.4 de Godot, les scènes et les ressources utilisent des UIDs " +"pour référencer les scripts et les shaders.\n" +"\n" +"Normalement, cette mise à jour est appliquée à une scène ou à une ressource " +"une fois sauvegardée avec Godot 4.4 pour la première fois. Si vous avez " +"beaucoup de scènes et/ou de ressources, faire cela manuellement peut être " +"chronophage. Cet outil va mettre à jour chaque scène et ressource du projet.\n" +"\n" +"Cliquez sur « Redémarrer et mettre à jour » pour redémarrer l'éditeur et " +"mettre à jour toutes les scènes et ressources de ce projet. Cela peut prendre " +"plusieurs minutes en fonction de la taille de votre projet.\n" +"\n" +"Note : Veuillez vous assurer qu'une copie de votre projet est sauvegardée " +"avant de lancer cet outil, pour éviter la possibilité de perte de données. De " +"plus, veuillez commit tous les fichiers .uid dans les logiciels de gestion de " +"versions (et ne les ajoutez pas dans les listes pour ignorer les fichiers " +"comme .gitignore)." + msgid "Make this panel floating in the screen %d." msgstr "Rendre ce panneau flottant sur l'écran %d." @@ -15333,6 +15825,30 @@ msgstr "Impossible de redimensionner le tableau." msgid "Step argument is zero!" msgstr "L'argument d'incrémentation est zéro !" +msgid "Not a script with an instance." +msgstr "Pas un script avec une instance." + +msgid "Not based on a script." +msgstr "Non basé sur un script." + +msgid "Not based on a resource file." +msgstr "Non basé sur un fichier ressource." + +msgid "Invalid instance dictionary format (missing @path)." +msgstr "Format du dictionnaire d'instance non valide (@path manquant)." + +msgid "Invalid instance dictionary format (can't load script at @path)." +msgstr "" +"Format du dictionnaire d'instance non valide (impossible de charger le script " +"à @path)." + +msgid "Invalid instance dictionary format (invalid script at @path)." +msgstr "" +"Format du dictionnaire d'instance non valide (script non valide à @path)." + +msgid "Invalid instance dictionary (invalid subclasses)." +msgstr "Dictionnaire d'instance non valide (sous-classes non valides)." + msgid "Cannot instantiate GDScript class." msgstr "Impossible d'instancier la classe GDScript." @@ -15903,6 +16419,9 @@ msgstr "Ajouter une action." msgid "Remove action set." msgstr "Supprimer l'ensemble d'actions." +msgid "Remove binding modifier." +msgstr "Supprimer un modificateur de liaison." + msgid "OpenXR Action Map" msgstr "Tableau des actions OpenXR" @@ -16190,6 +16709,9 @@ msgstr "Signature de code" msgid "Could not find keystore, unable to export." msgstr "Impossible de trouver le keystore, impossible d'exporter." +msgid "Unable to sign apk." +msgstr "Impossible de signer l'apk." + msgid "Could not start apksigner executable." msgstr "Impossible de le programme apksigner." @@ -16377,14 +16899,6 @@ msgstr "" "La bibliothèque de modèle '%s' requise n'est pas trouvée. Elle peut être " "manquante de votre archive de modèle." -msgid "ARM64 simulator library, generating from device library." -msgstr "" -"Bibliothèque de simulateur ARM64, générée à partir de la bibliothèque pour " -"appareil." - -msgid "Unable to generate ARM64 simulator library." -msgstr "Impossible de générer la bibliothèque de simulateur ARM64." - msgid "Could not copy a file at path \"%s\" to \"%s\"." msgstr "Impossible de copier un fichier sur le chemin \"%s\" vers \"%s\"." @@ -17685,6 +18199,9 @@ msgstr "" "La propriété \"Remote Path\" doit pointer vers un nœud 3D valide ou un nœud " "3D dérivé d'un nœud pour fonctionner." +msgid "There is no child Skeleton3D!" +msgstr "Il n'y a pas d'enfant Skeleton3D !" + msgid "Skeleton3D node not set! SkeletonModifier3D must be child of Skeleton3D." msgstr "" "Nœud Skeleton3D non défini ! SkeletonModifier3D doit être un enfant de " @@ -17693,6 +18210,9 @@ msgstr "" msgid "This body will be ignored until you set a mesh." msgstr "Ce corps sera ignoré jusqu'à ce que vous définissiez un maillage." +msgid "Parent node should be a SpringBoneSimulator3D node." +msgstr "Le nœud parent devrait être un nœud SpringBoneSimulator3D." + msgid "" "A SpriteFrames resource must be created or set in the \"Sprite Frames\" " "property in order for AnimatedSprite3D to display frames." @@ -17837,6 +18357,9 @@ msgstr "" msgid "Copy this constructor in a script." msgstr "Copier ce constructeur dans un script." +msgid "Quick Load" +msgstr "Chargement Rapide" + msgid "Switch between hexadecimal and code values." msgstr "Alterner entre les valeurs hexadécimales ou brutes." @@ -17881,6 +18404,16 @@ msgstr "" "La police actuelle ne prend pas en charge un ou plusieurs caractères utilisés " "dans le texte de ce Label." +msgid "" +"The current theme style has shadows and/or rounded corners for popups, but " +"those won't display correctly if \"display/window/per_pixel_transparency/" +"allowed\" isn't enabled in the Project Settings, nor if it isn't supported." +msgstr "" +"Le style du thème actuel a des ombres et/ou des coins arrondis pour des " +"fenêtres contextuelles, mais celles-ci ne s'afficheront pas correctement si " +"« display/window/per_pixel_transparency/allowed » n'est pas activé dans les " +"réglages du projet, ou si ce n'est pas supporté." + msgid "If \"Exp Edit\" is enabled, \"Min Value\" must be greater than 0." msgstr "" "Si \"Édition Exponentielle\" est activée, \"Valeur Minimale\" doit être " @@ -18072,6 +18605,9 @@ msgstr "Utiliser toutes les surfaces" msgid "Surface Index" msgstr "Indexe de surface" +msgid "Division by zero error." +msgstr "Erreur de division par zéro." + msgid "" "Invalid number of arguments when calling stage function '%s', which expects " "%d arguments." @@ -18293,11 +18829,6 @@ msgstr "Un objet de type « %s » ne peut pas être indexé." msgid "Invalid base type for increment/decrement operator." msgstr "Type de base invalide pour incrémenter/décrémenter l'opérateur." -msgid "Invalid use of increment/decrement operator in a constant expression." -msgstr "" -"Utilisation invalide d'un opérateur d'incrémentation / de décrémentation dans " -"une expression constante." - msgid "Invalid token for the operator: '%s'." msgstr "Token invalide pour l'opérateur : '%s'." @@ -18373,6 +18904,9 @@ msgstr "Utiliser '%s' dans la fonction du processeur '%s' est incorrect." msgid "Expected '%s' with an expression of type '%s'." msgstr "'%s' est attendu dans une expression de type '%s'." +msgid "'%s' function cannot return a value." +msgstr "La fonction « %s » ne peut par retourner de valeur." + msgid "Expected return with an expression of type '%s'." msgstr "Une valeur retournée est attendue avec une expression de type '%s'." diff --git a/engine/editor/translations/editor/ga.po b/engine/editor/translations/editor/ga.po index 3d25a44d..77f2e2d2 100644 --- a/engine/editor/translations/editor/ga.po +++ b/engine/editor/translations/editor/ga.po @@ -16142,12 +16142,6 @@ msgstr "" "Níor aimsíodh leabharlann teimpléid '%s' iarrtha. D'fhéadfadh sé a bheith ar " "iarraidh ó do chartlann teimpléad." -msgid "ARM64 simulator library, generating from device library." -msgstr "Leabharlann Insamhlóir ARM64, a ghineann ó leabharlann gléas." - -msgid "Unable to generate ARM64 simulator library." -msgstr "Ní féidir leabharlann Insamhlóir ARM64 a ghiniúint." - msgid "Could not copy a file at path \"%s\" to \"%s\"." msgstr "Níorbh fhéidir comhad a chóipeáil ag conair \"%s\" go \"%s\"." @@ -17999,9 +17993,6 @@ msgstr "Ní féidir réad den chineál '%s' a innéacsú." msgid "Invalid base type for increment/decrement operator." msgstr "Cineál bonn neamhbhailí le haghaidh oibreora incrimint/laghdaithe." -msgid "Invalid use of increment/decrement operator in a constant expression." -msgstr "Úsáid neamhbhailí oibritheora incrimint/laghdaithe i slonn tairiseach." - msgid "Invalid token for the operator: '%s'." msgstr "Comhartha neamhbhailí don oibreoir: '%s'." diff --git a/engine/editor/translations/editor/gl.po b/engine/editor/translations/editor/gl.po index 5154e3a6..e02367c1 100644 --- a/engine/editor/translations/editor/gl.po +++ b/engine/editor/translations/editor/gl.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" -"PO-Revision-Date: 2025-02-06 23:02+0000\n" +"PO-Revision-Date: 2025-02-11 01:02+0000\n" "Last-Translator: \"Miguel A. Bouzada\" <mbouzada@gmail.com>\n" "Language-Team: Galician <https://hosted.weblate.org/projects/godot-engine/" "godot/gl/>\n" @@ -61,10 +61,10 @@ msgid "Mouse Wheel Right" msgstr "Roda do rato cara a dereita" msgid "Mouse Thumb Button 1" -msgstr "Botón de Polgar do Rato 1" +msgstr "Botón de polgar do rato 1" msgid "Mouse Thumb Button 2" -msgstr "Botón de Polgar do Rato 2" +msgstr "Botón de polgar do rato 2" msgid "Button" msgstr "Botón" diff --git a/engine/editor/translations/editor/it.po b/engine/editor/translations/editor/it.po index 04499e57..25f019b6 100644 --- a/engine/editor/translations/editor/it.po +++ b/engine/editor/translations/editor/it.po @@ -109,13 +109,16 @@ # Lorenzo Tilli <lorenzo.tilli@students.uniroma2.eu>, 2024. # norax Nnx <norax.noxx@gmail.com>, 2024. # ali elmoutaouakil <elmoutaouakil.ali08@gmail.com>, 2024. +# SG <s.gallerini@users.noreply.hosted.weblate.org>, 2025. +# BloodyBlade05 <giacomo.alfano@studenti.unipg.it>, 2025. +# Davide Rinarelli <rinarellidavide@gmail.com>, 2025. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2024-12-28 01:45+0000\n" -"Last-Translator: Micky <micheledevita2@gmail.com>\n" +"PO-Revision-Date: 2025-02-28 19:26+0000\n" +"Last-Translator: Davide Rinarelli <rinarellidavide@gmail.com>\n" "Language-Team: Italian <https://hosted.weblate.org/projects/godot-engine/" "godot/it/>\n" "Language: it\n" @@ -123,7 +126,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 5.10-dev\n" +"X-Generator: Weblate 5.10.3-dev\n" msgid "Main Thread" msgstr "Thread principale" @@ -481,6 +484,9 @@ msgstr "Mostra i file nascosti" msgid "Swap Input Direction" msgstr "Inverti la direzione di input" +msgid "Start Unicode Character Input" +msgstr "Avviare l'immissione dei caratteri Unicode" + msgid "Invalid input %d (not passed) in expression" msgstr "Input %d non valido (assente) nell'espressione" @@ -724,6 +730,40 @@ msgstr "Cambia la durata di un'animazione" msgid "Change Animation Loop" msgstr "Cambia ciclo di animazione" +msgid "" +"Can't change loop mode on animation instanced from an imported scene.\n" +"\n" +"To change this animation's loop mode, navigate to the scene's Advanced Import " +"settings and select the animation.\n" +"You can then change the loop mode from the inspector menu." +msgstr "" +"Non è possibile cambiare la modalità di ripetizione sulla animazione " +"istanziata da una scena importata.\n" +"\n" +"Per cambiare questa modalità di ripetizione, navigare alle impostazioni di " +"importo avanzate della scena e selezionare la animazione.\n" +"Puoi cambiare la modalità di ripetizione dal menu ispettore." + +msgid "Can't change loop mode on animation instanced from an imported resource." +msgstr "" +"Impossibile cambiare la modalità di ripetizione di un'animazione istanziata " +"da una scena importata." + +msgid "" +"Can't change loop mode on animation embedded in another scene.\n" +"\n" +"You must open this scene and change the animation's loop mode from there." +msgstr "" +"Impossibile cambiare la modalità di ripetizione di un'animazione integrata in " +"un'altra scena.\n" +"\n" +"Devi aprire quella scena e cambiare la modalità di ripetizione da li." + +msgid "Can't change loop mode on animation embedded in another resource." +msgstr "" +"Impossibile cambiare la modalità di ripetizione di un'animazione integrata in " +"un'altra risorsa." + msgid "Property Track..." msgstr "Traccia di proprietà..." @@ -1126,6 +1166,9 @@ msgstr "Mostra solo le tracce dei nodi selezionati nell'albero." msgid "Group tracks by node or display them as plain list." msgstr "Raggruppa le tracce per nodo o le visualizza in una lista semplice." +msgid "Apply snapping to the nearest integer FPS." +msgstr "Applicare lo snapping al valore FPS intero più vicino." + msgid "Animation step value." msgstr "Valore del passo dell'animazione." @@ -1346,6 +1389,22 @@ msgstr "Seleziona/Deseleziona tutto" msgid "Animation Change Keyframe Time" msgstr "Cambia il tempo di un fotogramma chiave di un'animazione" +msgid "" +"A marker's name can only be changed by right-clicking it in the animation " +"editor and selecting \"Rename Marker\", in order to make sure that marker " +"names are all unique." +msgstr "" +"Il nome di un marcatore può essere cambiato solo facendo clic con il pulsante " +"destro del mouse nell'editor di animazione e selezionando \"Rinomina " +"Marcatore\", al fine di assicurarsi che i nomi dei marcatori siano tutti " +"unici." + +msgid "Rename Marker" +msgstr "Rinomina Marcatore" + +msgid "Marker:" +msgstr "Marcatore:" + msgid "Close" msgstr "Chiudi" @@ -1439,6 +1498,13 @@ msgstr "Avvisi" msgid "Zoom factor" msgstr "Fattore di ingrandimento" +msgid "" +"%sMouse wheel, %s/%s: Finetune\n" +"%s: Reset" +msgstr "" +"%sRotella del mouse, %s/%s: Sintonizzare\n" +"%s: Ripristino" + msgid "Line and column numbers." msgstr "Numeri di riga e di colonna." @@ -1631,6 +1697,9 @@ msgstr "Descrizione:" msgid "Remote %s:" msgstr "%s Remoto:" +msgid "Session %d" +msgstr "Sessione %d" + msgid "Debugger" msgstr "Debugger" @@ -1661,6 +1730,9 @@ msgstr "" msgid "Toggle Visibility" msgstr "Commuta visibilità" +msgid "Expression to evaluate" +msgstr "Espressione da valutare" + msgid "Clear" msgstr "Rimuovi tutto" @@ -1862,6 +1934,9 @@ msgstr "Espandi tutto" msgid "Collapse All" msgstr "Comprimi tutto" +msgid "Evaluator" +msgstr "Valutatore" + msgid "Profiler" msgstr "Profilatore" @@ -1991,6 +2066,9 @@ msgstr "" msgid "Cannot remove:" msgstr "Impossibile rimuovere:" +msgid "Dependencies of files to be deleted:" +msgstr "Dipendenze dei file da eliminare:" + msgid "Error loading:" msgstr "Errore di caricamento:" @@ -2684,6 +2762,11 @@ msgstr "" "Offre una panoramica della cronologia di annullamento dell'editor e di ogni " "scena." +msgid "Provides tools for selecting and debugging nodes at runtime." +msgstr "" +"Fornisce strumenti per selezionare ed eseguire il debug dei nodi in fase di " +"runtime." + msgid "(current)" msgstr "(Attuale)" @@ -2775,6 +2858,9 @@ msgstr "Importa i profili" msgid "Manage Editor Feature Profiles" msgstr "Gestisci i profili di funzionalità dell'editor" +msgid "Initializing plugins..." +msgstr "Inizializzazione dei plugin..." + msgid "Some extensions need the editor to restart to take effect." msgstr "" "Alcune estensioni hanno bisogno di un riavvio dell'editor per avere effetto." @@ -2798,9 +2884,18 @@ msgstr "" msgid "(Re)Importing Assets" msgstr "Reimportando i contenuti" +msgid "Executing pre-reimport operations..." +msgstr "Esecuzione delle operazioni pre-reimportazione..." + msgid "Import resources of type: %s" msgstr "Importa risorse di tipo: %s" +msgid "Finalizing Asset Import..." +msgstr "Finalizzazione importazione degli Asset..." + +msgid "Executing post-reimport operations..." +msgstr "Esecuzione delle operazioni post-reimportazione..." + msgid "This method supports a variable number of arguments." msgstr "Questo metodo supporta un numero variabile di argomenti." @@ -3148,12 +3243,22 @@ msgstr "Tipo di membro" msgid "Keywords" msgstr "Parole chiave" +msgid "Matches the \"%s\" keyword." +msgstr "Corrisponde alla parola chiave \"%s\"." + msgid "This member is marked as deprecated." msgstr "Questo membro è segnato come deprecato." msgid "This member is marked as experimental." msgstr "Questo membro è segnato come sperimentale." +msgid "Make this property be put back at its original place." +msgstr "Fai tornare questa proprietà al suo posto originale." + +msgid "Make this property be placed at the top for all objects of this class." +msgstr "" +"Fai piazzare questa proprietà in cima per tutti gli oggetti di questa classe." + msgid "Pin Value" msgstr "Fissa il valore" @@ -3351,6 +3456,11 @@ msgstr "Ispettore delle sorgenti native degli shader" msgid "Unnamed Project" msgstr "Progetto senza nome" +msgid "Recovery Mode is enabled. Editor functionality has been restricted." +msgstr "" +"La modalità di recupero è abilitata. Le funzionalità dell'editor sono state " +"limitate." + msgid "" "Spins when the editor window redraws.\n" "Update Continuously is enabled, which can increase power usage. Click to " @@ -3566,6 +3676,9 @@ msgstr "" msgid "Save Scene As..." msgstr "Salva la scena come…" +msgid "Pack Project as ZIP..." +msgstr "Impacchetta il Progetto come ZIP..." + msgid "Can't undo while mouse buttons are pressed." msgstr "Impossibile tornare indietro mentre i tasti del mouse sono premuti." @@ -4352,6 +4465,18 @@ msgstr "" "Per favore, aggiungerne una nel menù di esportazione o impostarne una già " "esistente come eseguibile." +msgid "Deploy to First Device in List" +msgstr "Distribuisci al primo Dispositivo nella lista" + +msgid "Deploy to Second Device in List" +msgstr "Distribuisci al secondo Dispositivo nella lista" + +msgid "Deploy to Third Device in List" +msgstr "Distribuisci al terzo Dispositivo nella lista" + +msgid "Deploy to Fourth Device in List" +msgstr "Distribuisci al quarto Dispositivo nella lista" + msgid "Project Run" msgstr "Esecuzione di progetto" @@ -4361,6 +4486,9 @@ msgstr "Scrivi il codice dello script nel metodo _run()." msgid "The current scene already has a root node." msgstr "La scena attuale ha già un nodo radice." +msgid "Advanced settings are always shown when searching." +msgstr "Le impostazioni avanzate vengono sempre mostrate durante la ricerca." + msgid "Edit Built-in Action: %s" msgstr "Modifica l'azione integrata: %s" @@ -5146,6 +5274,9 @@ msgstr "Sfoglia" msgid "Confirm Path" msgstr "Conferma il percorso" +msgid "Link to: %s" +msgstr "Link a: %s" + msgid "View items as a grid of thumbnails." msgstr "Visualizza gli elementi in una griglia di miniature." @@ -5241,6 +5372,12 @@ msgstr "Duplicazione di cartella:" msgid "Create Folder" msgstr "Crea una cartella" +msgid "" +"Do you wish to convert these files to %s? (This operation cannot be undone!)" +msgstr "" +"Vuoi convertire questi file in %s? (Questa operazione non può essere " +"annullata!)" + msgid "New Inherited Scene" msgstr "Nuova scena ereditata" @@ -5582,6 +5719,9 @@ msgstr "" msgid "Select This Folder" msgstr "Seleziona questa cartella" +msgid "Show Package Contents" +msgstr "Mostra i contenuti del pacchetto" + msgid "All Files" msgstr "Tutti i file" @@ -5688,6 +5828,18 @@ msgstr "Nessuna sotto-risorsa trovata." msgid "Open a list of sub-resources." msgstr "Apri una lista di sotto-risorse." +msgid "Addons" +msgstr "Componenti Aggiuntivi" + +msgid "Include files from addons" +msgstr "Includere i file dai Componenti Aggiuntivi" + +msgid "Start searching to find files..." +msgstr "Inizia a cercare per trovare i file..." + +msgid "List view" +msgstr "Visualizzazione ad elenco" + msgid "Play the project." msgstr "Esegui il progetto." @@ -5721,9 +5873,43 @@ msgstr "" msgid "Could not start subprocess(es)!" msgstr "Impossibile avviare il processo(i) secondario(i)!" +msgid "Recovery Mode is enabled. Disable it to run the project." +msgstr "" +"La modalità di recupero è abilitata. Disattivarla per eseguire il progetto." + msgid "Network Profiler" msgstr "Profiler di rete" +msgid "" +"Godot opened the project in Recovery Mode, which is a special mode that can " +"help recover projects that crash the engine upon initialization. The " +"following features have been temporarily disabled:" +msgstr "" +"Godot ha aperto il progetto in modalità Recupero. Questa è una modalità " +"speciale che può aiutarti a recuperare i progetti che hanno arrestato in modo " +"anomalo (crash) Godot dopo l'inizializzazione. Le seguenti funzionalità sono " +"state temporaneamente disabilitate:" + +msgid "GDExtension addons" +msgstr "Componenti aggiuntivi GDExtension" + +msgid "Automatic scene restoring" +msgstr "Ripristino automatico della scena" + +msgid "" +"To disable Recovery Mode, reload the project by pressing the Reload button " +"next to the Recovery Mode banner, or by reopening the project normally." +msgstr "" +"Per disabilitare la modalità di recupero, ricaricare il progetto premendo il " +"pulsante Ricarica accanto al banner Modalità di ripristino, o riaprendo " +"normalmente il progetto." + +msgid "Disable recovery mode and reload the project." +msgstr "Disattivare la modalità di recupero e ricaricare il progetto." + +msgid "Recovery Mode is enabled. Click for more details." +msgstr "La modalità di recupero è abilitata. Clicca per maggiori informazioni." + msgid "Run the project's default scene." msgstr "Esegui la scena predefinita del progetto." @@ -5742,6 +5928,12 @@ msgstr "Ferma progetto in esecuzione." msgid "Stop Running Project" msgstr "Arresta progetto in esecuzione" +msgid "Run Scene in Regular Mode" +msgstr "Esegui la scena in Modalità Regolare" + +msgid "Run Scene in XR Mode" +msgstr "Esegui la scena in Modalità XR" + msgid "Run the currently edited scene." msgstr "Esegui la scena attualmente in fase di modifica." @@ -5831,6 +6023,9 @@ msgstr "(Collegamento da)" msgid "Node configuration warning:" msgstr "Avviso sulla configurazione del nodo:" +msgid "Click to disable this." +msgstr "Fare click per disabilitare." + msgid "Node has one connection." msgid_plural "Node has {num} connections." msgstr[0] "Il nodo ha una connessione." @@ -5844,6 +6039,13 @@ msgstr[1] "I nodi sono nei gruppi seguenti:" msgid "Click to show signals dock." msgstr "Clicca per mostrare il pannello dei segnali." +msgid "" +"This script can run in the editor.\n" +"It is currently disabled due to recovery mode." +msgstr "" +"Questo script può essere eseguito nell'editor.\n" +"Attualmente è disabilitato a causa della modalità di recupero." + msgid "This script is currently running in the editor." msgstr "Questo script è attualmente in esecuzione nell'editor." @@ -5901,6 +6103,9 @@ msgstr "Albero di scena (nodi):" msgid "Node Configuration Warning!" msgstr "Avviso sulla configurazione del nodo!" +msgid "Revoke" +msgstr "Revocare" + msgid "Allowed:" msgstr "Consentiti:" @@ -16260,12 +16465,6 @@ msgstr "" "La libreria di modelli '%s' richiesta non è stata trovata. Potrebbe essere " "mancante dall'archivio dei modelli." -msgid "ARM64 simulator library, generating from device library." -msgstr "Libreria di simulatore ARM64, generata dalle librerie del dispositivo." - -msgid "Unable to generate ARM64 simulator library." -msgstr "Impossibile generare la libreria del simulatore ARM64." - msgid "Could not copy a file at path \"%s\" to \"%s\"." msgstr "Impossibile copiare un file dal percorso \"%s\" a \"%s\"." @@ -18157,11 +18356,6 @@ msgstr "Un oggetto di tipo \"%s\" non può essere indicizzato." msgid "Invalid base type for increment/decrement operator." msgstr "Tipo di base invalido per l'operatore d'incremento/decremento." -msgid "Invalid use of increment/decrement operator in a constant expression." -msgstr "" -"Uso non valido dell'operatore d'incremento/decremento in un'espressione " -"costante." - msgid "Invalid token for the operator: '%s'." msgstr "Token invalido per l'operatore: '%s'." diff --git a/engine/editor/translations/editor/ja.po b/engine/editor/translations/editor/ja.po index c83aa33a..0c86f209 100644 --- a/engine/editor/translations/editor/ja.po +++ b/engine/editor/translations/editor/ja.po @@ -50,7 +50,7 @@ # MizunagiKB <mizukb@live.jp>, 2023. # Saitos <purifyzombie@gmail.com>, 2023. # UENO Masahiro <ueno.mshr@gmail.com>, 2023. -# ueshita <nalto32@gmail.com>, 2023, 2024. +# ueshita <nalto32@gmail.com>, 2023, 2024, 2025. # a-ori-a <ma_hiro25@outlook.jp>, 2023. # Usamiki <amarantus0499@gmail.com>, 2023. # "Takefumi \"abell\" Ota" <taketakegogo@gmail.com>, 2023. @@ -85,8 +85,8 @@ msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2025-01-20 18:26+0000\n" -"Last-Translator: Binnaga <polycharacter@gmail.com>\n" +"PO-Revision-Date: 2025-03-01 22:41+0000\n" +"Last-Translator: ueshita <nalto32@gmail.com>\n" "Language-Team: Japanese <https://hosted.weblate.org/projects/godot-engine/" "godot/ja/>\n" "Language: ja\n" @@ -94,7 +94,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 5.10-dev\n" +"X-Generator: Weblate 5.10.3-dev\n" msgid "Main Thread" msgstr "メインスレッド" @@ -115,16 +115,16 @@ msgid "Middle Mouse Button" msgstr "マウス中央ボタン" msgid "Mouse Wheel Up" -msgstr "マウス上ホイール" +msgstr "マウスホイール上" msgid "Mouse Wheel Down" -msgstr "マウス下ホイール" +msgstr "マウスホイール下" msgid "Mouse Wheel Left" -msgstr "マウス左ホイール" +msgstr "マウスホイール左" msgid "Mouse Wheel Right" -msgstr "マウス右ホイール" +msgstr "マウスホイール右" msgid "Mouse Thumb Button 1" msgstr "マウスボタン1" @@ -451,6 +451,9 @@ msgstr "非表示を表示" msgid "Swap Input Direction" msgstr "入力方向の入れ替え" +msgid "Start Unicode Character Input" +msgstr "Unicode文字の入力を開始" + msgid "Invalid input %d (not passed) in expression" msgstr "式に無効入力 %d (渡されていません)" @@ -692,6 +695,41 @@ msgstr "アニメーションの長さを変更" msgid "Change Animation Loop" msgstr "アニメーションのループを変更" +msgid "" +"Can't change loop mode on animation instanced from an imported scene.\n" +"\n" +"To change this animation's loop mode, navigate to the scene's Advanced Import " +"settings and select the animation.\n" +"You can then change the loop mode from the inspector menu." +msgstr "" +"アニメーションはインポートされたシーンからインスタンス化されているため、ループ" +"モードを変更できません。\n" +"\n" +"このアニメーションのループモードを変更するには、シーンの\"高度なインポート設定" +"\"に移動して、アニメーションを選択してください。\n" +"その後、インスペクターメニューからループモードを変更できます。" + +msgid "Can't change loop mode on animation instanced from an imported resource." +msgstr "" +"アニメーションはインポートされたリソースからインスタンス化されているため、ルー" +"プモードを変更できません。" + +msgid "" +"Can't change loop mode on animation embedded in another scene.\n" +"\n" +"You must open this scene and change the animation's loop mode from there." +msgstr "" +"アニメーションが別のシーンに埋め込まれているため、ループモードを変更できませ" +"ん。\n" +"\n" +"そのシーンを開き、そこからアニメーションのループモードを変更する必要がありま" +"す。" + +msgid "Can't change loop mode on animation embedded in another resource." +msgstr "" +"アニメーションは別のシーンに埋め込まれているため、ループモードを変更できませ" +"ん。" + msgid "Property Track..." msgstr "プロパティトラック…" @@ -1089,6 +1127,15 @@ msgid "Group tracks by node or display them as plain list." msgstr "" "ノードごとにトラックをグループ化するか、プレーンなリストとして表示します。" +msgid "Apply snapping to timeline cursor." +msgstr "タイムラインカーソルにスナップする。" + +msgid "Apply snapping to selected key(s)." +msgstr "選択したキーにスナップする。" + +msgid "Apply snapping to the nearest integer FPS." +msgstr "最も近い整数フレームにスナップする。" + msgid "Animation step value." msgstr "アニメーションステップの値。" @@ -1309,12 +1356,75 @@ msgstr "すべてを選択/解除" msgid "Animation Change Keyframe Time" msgstr "アニメーションキーフレームの時間を変更" +msgid "Marker name is read-only in the inspector." +msgstr "マーカー名はインスペクターでは読み取り専用です。" + +msgid "" +"A marker's name can only be changed by right-clicking it in the animation " +"editor and selecting \"Rename Marker\", in order to make sure that marker " +"names are all unique." +msgstr "" +"マーカーの名前を変更するには、アニメーションエディターでマーカーを右クリック" +"し、\"マーカー名を変更\" を選択します。マーカー名はすべてユニークである必要が" +"あります。" + +msgid "Insert Marker..." +msgstr "マーカーを挿入…" + +msgid "Rename Marker" +msgstr "マーカー名を変更" + +msgid "Delete Marker(s)" +msgstr "マーカーを削除" + +msgid "Show All Marker Names" +msgstr "すべてのマーカー名を表示" + +msgid "Marker:" +msgstr "マーカー:" + +msgid "Animation Move Markers" +msgstr "アニメーションマーカーの移動" + +msgid "Animation Delete Markers" +msgstr "アニメーションマーカーの削除" + +msgid "Marker '%s' already exists!" +msgstr "マーカー '%s' はすでに存在します!" + +msgid "Add Marker Key" +msgstr "マーカーキーの追加" + +msgid "Empty marker names are not allowed." +msgstr "マーカー名は空にできません。" + +msgid "Insert Marker" +msgstr "マーカーを挿入" + +msgid "Marker Name" +msgstr "マーカー名" + +msgid "Marker Color" +msgstr "マーカーの色" + msgid "Close" msgstr "閉じる" msgid "Error!" msgstr "エラー!" +msgid "Change Marker Name:" +msgstr "マーカー名を変更:" + +msgid "Edit Marker Color" +msgstr "マーカーの色の設定" + +msgid "Multi Edit Marker Color" +msgstr "マーカーカラーのマルチ編集" + +msgid "Animation Change Marker Time" +msgstr "アニメーションマーカーの時間を変更" + msgid "Add Audio Track Clip" msgstr "オーディオトラッククリップの追加" @@ -1344,6 +1454,12 @@ msgid "%d of %d match" msgid_plural "%d of %d matches" msgstr[0] "%d / %d 件の一致が見つかりました" +msgid "Hide Replace" +msgstr "置換を隠す" + +msgid "Show Replace" +msgstr "置換を表示" + msgid "Find" msgstr "検索" @@ -1400,6 +1516,13 @@ msgstr "警告" msgid "Zoom factor" msgstr "ズーム倍率" +msgid "" +"%sMouse wheel, %s/%s: Finetune\n" +"%s: Reset" +msgstr "" +"%sマウスホイール, %s/%s: 微調整\n" +"%s: リセット" + msgid "Line and column numbers." msgstr "行番号と列番号。" @@ -1558,6 +1681,12 @@ msgstr "%s を新規作成" msgid "No results for \"%s\"." msgstr "\"%s\" の結果はありません。" +msgid "Script path: %s" +msgstr "スクリプトパス: %s" + +msgid "The script will run in the editor." +msgstr "このスクリプトはエディターで実行されます。" + msgid "This class is marked as deprecated." msgstr "このクラスは非推奨としてマークされています。" @@ -1588,6 +1717,9 @@ msgstr "説明:" msgid "Remote %s:" msgstr "リモート %s:" +msgid "Session %d" +msgstr "セッション %d" + msgid "Debugger" msgstr "デバッガー" @@ -1618,6 +1750,15 @@ msgstr "" msgid "Toggle Visibility" msgstr "可視性の切り替え" +msgid "Expression to evaluate" +msgstr "評価する式" + +msgid "Clear on Run" +msgstr "実行時にクリア" + +msgid "Evaluate" +msgstr "評価" + msgid "Clear" msgstr "クリア" @@ -1663,6 +1804,9 @@ msgstr "停止" msgid "Start" msgstr "開始" +msgid "Autostart" +msgstr "自動起動" + msgid "Measure:" msgstr "測定:" @@ -1819,6 +1963,9 @@ msgstr "すべて展開" msgid "Collapse All" msgstr "すべて折りたたむ" +msgid "Evaluator" +msgstr "式の評価" + msgid "Profiler" msgstr "プロファイラー" @@ -1945,6 +2092,12 @@ msgstr "" msgid "Cannot remove:" msgstr "除去不可:" +msgid "Files to be deleted:" +msgstr "削除されるファイル:" + +msgid "Dependencies of files to be deleted:" +msgstr "削除されるファイルの依存関係:" + msgid "Error loading:" msgstr "読み込みエラー:" @@ -1981,15 +2134,27 @@ msgstr "所有権が明示的でないリソース:" msgid "Name cannot be empty." msgstr "名前を空にすることはできません。" +msgid "File name can't end with /." +msgstr "ファイル名の末尾を /. にすることはできません。" + +msgid "File name cannot be empty." +msgstr "ファイル名を空にすることはできません。" + msgid "Folder name cannot be empty." msgstr "フォルダ名を空にすることはできません。" +msgid "File name contains invalid characters." +msgstr "ファイル名に無効な文字が含まれています。" + msgid "Folder name contains invalid characters." msgstr "フォルダ名に無効な文字が含まれています。" msgid "File name begins with a dot." msgstr "ファイル名がドットから始まっています。" +msgid "Folder name begins with a dot." +msgstr "フォルダ名がドットから始まっています。" + msgid "File with that name already exists." msgstr "同名のファイルがすでに存在します。" @@ -2000,6 +2165,19 @@ msgid "Using slashes in folder names will create subfolders recursively." msgstr "" "フォルダ名にスラッシュを使用すると、サブフォルダが再帰的に作成されます。" +msgid "" +"Using slashes in path will create the file in subfolder, creating new " +"subfolders if necessary." +msgstr "" +"パスにスラッシュを使用すると、サブフォルダーにファイルが作成されます。必要に応" +"じて新しいサブフォルダーも作成されます。" + +msgid "File name is valid." +msgstr "ファイル名は有効です。" + +msgid "Base path: %s" +msgstr "ベースパス: %s" + msgid "Folder name is valid." msgstr "フォルダ名は有効です。" @@ -2281,6 +2459,9 @@ msgstr "オーディオバスのレイアウト" msgid "Invalid name." msgstr "無効な名前です。" +msgid "Must be a valid Unicode identifier." +msgstr "有効なUnicode識別子である必要があります。" + msgid "Must not collide with an existing engine class name." msgstr "既存のエンジンのクラス名と衝突してはいけません。" @@ -2548,6 +2729,12 @@ msgstr "[空]" msgid "[unsaved]" msgstr "[未保存]" +msgid "Open the %s dock." +msgstr "%sドックを開く。" + +msgid "Focus on the %s dock." +msgstr "%sドックにフォーカスする。" + msgid "%s - Godot Engine" msgstr "%s - Godot エンジン" @@ -2599,6 +2786,9 @@ msgstr "インポートドック" msgid "History Dock" msgstr "履歴ドック" +msgid "Game View" +msgstr "ゲームビュー" + msgid "Allows to view and edit 3D scenes." msgstr "3Dシーンの表示と編集ができます。" @@ -2628,6 +2818,9 @@ msgstr "" msgid "Provides an overview of the editor's and each scene's undo history." msgstr "エディターと各シーンのアンドゥ履歴の概要を提供します。" +msgid "Provides tools for selecting and debugging nodes at runtime." +msgstr "実行時にノードを選択およびデバッグするためのツールを提供します。" + msgid "(current)" msgstr "(現在)" @@ -2718,6 +2911,30 @@ msgstr "プロファイルをインポート" msgid "Manage Editor Feature Profiles" msgstr "エディター機能のプロファイルの管理" +msgid "Project initialization" +msgstr "プロジェクトの初期化" + +msgid "Scanning file structure..." +msgstr "ファイル構造をスキャン中..." + +msgid "Loading global class names..." +msgstr "グローバルクラス名を読み込み中..." + +msgid "Verifying GDExtensions..." +msgstr "GDExtensionを検証中..." + +msgid "Creating autoload scripts..." +msgstr "自動読み込みスクリプトを作成中..." + +msgid "Initializing plugins..." +msgstr "プラグインを初期化中..." + +msgid "Starting file scan..." +msgstr "ファイルスキャンを開始..." + +msgid "Scanning actions..." +msgstr "アクションをスキャン中..." + msgid "Some extensions need the editor to restart to take effect." msgstr "" "いくつかの拡張機能を有効にするには、エディタを再起動する必要があります。" @@ -2731,12 +2948,43 @@ msgstr "保存して再起動" msgid "ScanSources" msgstr "スキャンソース" +msgid "Registering global classes..." +msgstr "グローバルクラスを登録中..." + +msgid "Updating scripts documentation" +msgstr "スクリプトドキュメントを更新中" + +msgid "Updating Scene Groups" +msgstr "シーングループを更新中" + +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" +"ファイル %s を指す異なるタイプの複数のインポーターがあります。インポートは中断" +"されました" + msgid "(Re)Importing Assets" msgstr "アセットを(再)インポート中" +msgid "Preparing files to reimport..." +msgstr "再インポートするファイルを準備中..." + +msgid "Executing pre-reimport operations..." +msgstr "再インポート前の操作を実行中..." + msgid "Import resources of type: %s" msgstr "次のタイプのリソースをインポート: %s" +msgid "Finalizing Asset Import..." +msgstr "アセットインポートを終了しています..." + +msgid "Executing post-reimport operations..." +msgstr "再インポート後の操作を実行中..." + +msgid "Copying files..." +msgstr "ファイルをコピー中..." + msgid "This method supports a variable number of arguments." msgstr "このメソッドは、可変数の引数をサポートしています。" @@ -2761,6 +3009,9 @@ msgstr "" "このメソッドは、呼び出すためにインスタンスを必要としません。\n" "クラス名を使って直接呼び出すことができます。" +msgid "Code snippet copied to clipboard." +msgstr "クリップボードにコードスニペットをコピー。" + msgid "No return value." msgstr "戻り値はありません。" @@ -2915,6 +3166,11 @@ msgstr "アイコン" msgid "Styles" msgstr "スタイル" +msgid "This theme property may be changed or removed in future versions." +msgstr "" +"このテーマのプロパティは、将来のバージョンで変更または削除される可能性がありま" +"す。" + msgid "There is currently no description for this theme property." msgstr "現在、このテーマプロパティの説明はありません。" @@ -2995,9 +3251,16 @@ msgstr "エディター" msgid "Click to copy." msgstr "クリックでコピーする。" +msgid "Click to open in browser." +msgstr "クリックでブラウザを開く。" + msgid "No description available." msgstr "説明はありません。" +msgid "This annotation may be changed or removed in future versions." +msgstr "" +"このアノテーションは将来のバージョンで変更または削除される可能性があります。" + msgid "Show in FileSystem" msgstr "ファイルシステム上で表示" @@ -3007,12 +3270,24 @@ msgstr "ファイルマネージャーで開く" msgid "Class" msgstr "クラス" +msgid "Enumeration" +msgstr "列挙体" + msgid "Constant" msgstr "コンスタント" +msgid "Metadata" +msgstr "メタデータ" + +msgid "Setting" +msgstr "設定" + msgid "Property" msgstr "プロパティ" +msgid "Internal Property" +msgstr "内部プロパティ" + msgid "This property can only be set in the Inspector." msgstr "このプロパティはインスペクターでのみ設定できます。" @@ -3028,9 +3303,36 @@ msgstr "シグナル" msgid "Annotation" msgstr "アノテーション" +msgid "Local Constant" +msgstr "ローカル定数" + +msgid "Local Variable" +msgstr "ローカル変数" + +msgid "This variable may be changed or removed in future versions." +msgstr "この変数は将来のバージョンで変更または削除される可能性があります。" + +msgid "TextFile" +msgstr "テキストファイル" + msgid "File" msgstr "ファイル" +msgid "Directory" +msgstr "ディレクトリ" + +msgid "Invalid UID" +msgstr "無効なUID" + +msgid "This UID does not point to any valid Resource." +msgstr "このUIDは有効なリソースを指していません。" + +msgid "Invalid path" +msgstr "無効なパス" + +msgid "This path does not exist." +msgstr "このパスは存在しません。" + msgid "%d match." msgstr "%d件の一致が見つかりました。" @@ -3088,12 +3390,27 @@ msgstr "メンバータイプ" msgid "Keywords" msgstr "キーワード" +msgid "Matches the \"%s\" keyword." +msgstr "\"%s\" キーワードと一致します。" + msgid "This member is marked as deprecated." msgstr "このメンバーは非推奨としてマークされています。" msgid "This member is marked as experimental." msgstr "このメンバーは実験用としてマークされています。" +msgid "Unfavorite Property" +msgstr "お気に入りを解除" + +msgid "Make this property be put back at its original place." +msgstr "このプロパティを元の場所に戻します。" + +msgid "Favorite Property" +msgstr "お気に入りに追加" + +msgid "Make this property be placed at the top for all objects of this class." +msgstr "このプロパティをすべてのオブジェクトの一番上に配置します。" + msgid "Pin Value" msgstr "値をピン留めする" @@ -3104,6 +3421,9 @@ msgid "Pinning a value forces it to be saved even if it's equal to the default." msgstr "" "値をピン留めすると、値がデフォルトと等しい場合でも強制的に保存されます。" +msgid "Unfavorite All" +msgstr "すべてのお気に入りを解除" + msgid "(%d change)" msgid_plural "(%d changes)" msgstr[0] "(%d個の変更)" @@ -3277,6 +3597,9 @@ msgstr "ネイティブ シェーダー ソース インスペクター" msgid "Unnamed Project" msgstr "名無しのプロジェクト" +msgid "Recovery Mode is enabled. Editor functionality has been restricted." +msgstr "リカバリーモードが有効です。エディターの機能は制限されています。" + msgid "" "Spins when the editor window redraws.\n" "Update Continuously is enabled, which can increase power usage. Click to " @@ -3334,6 +3657,9 @@ msgstr "ファイル '%s' の解析中にエラーが発生しました。" msgid "Scene file '%s' appears to be invalid/corrupt." msgstr "シーンファイル '%s' は無効、もしくは壊れているようです。" +msgid "Missing file '%s' or one of its dependencies." +msgstr "ファイル '%s' またはその依存関係が見つかりません。" + msgid "" "File '%s' is saved in a format that is newer than the formats supported by " "this version of Godot, so it can't be opened." @@ -3429,6 +3755,13 @@ msgstr "" "このワークフローをよりよく理解するために、シーンの読み込みに関連するドキュメン" "トをお読みください。" +msgid "" +"This resource belongs to a scene that was instantiated or inherited.\n" +"Changes to it must be made inside the original scene." +msgstr "" +"このリソースはインスタンス化または継承されたシーンに属しています。\n" +"リソースの変更は元のシーン内で行う必要があります。" + msgid "" "This resource was imported, so it's not editable. Change its settings in the " "import panel and then re-import." @@ -3459,6 +3792,13 @@ msgstr "ベースのシーンを開く" msgid "%s no longer exists! Please specify a new save location." msgstr "%s はもう存在しません!新しい保存場所を指定してください。" +msgid "" +"The current scene has no root node, but %d modified external resource(s) and/" +"or plugin data were saved anyway." +msgstr "" +"現行シーンにはルートノードがありませんが、%d 個の変更された外部リソースとプラ" +"グイン データが保存されました。" + msgid "" "A root node is required to save the scene. You can add a root node using the " "Scene tree dock." @@ -3469,6 +3809,9 @@ msgstr "" msgid "Save Scene As..." msgstr "名前を付けてシーンを保存..." +msgid "Pack Project as ZIP..." +msgstr "プロジェクトをZIPにパック..." + msgid "Can't undo while mouse buttons are pressed." msgstr "マウスボタンが押されている間は元に戻せません。" @@ -3499,21 +3842,24 @@ msgstr "リモートやり直す: %s" msgid "Scene Redo: %s" msgstr "シーンやり直す: %s" +msgid "Can't reload a scene that was never saved." +msgstr "保存されていないシーンを再ロードすることはできません。" + msgid "Reload Saved Scene" -msgstr "保存済みシーンをリロード" +msgstr "保存済みシーンを再読み込み" msgid "" "The current scene has unsaved changes.\n" "Reload the saved scene anyway? This action cannot be undone." msgstr "" "現在のシーンには未保存の変更があります。\n" -"それでも保存済みシーンをリロードしますか? この動作は取り消せません。" +"それでも保存済みシーンを再読み込みしますか? この動作は取り消せません。" msgid "Save & Reload" msgstr "保存して再読み込み" msgid "Save modified resources before reloading?" -msgstr "リロードする前に変更したリソースを保存しますか?" +msgstr "再読み込みする前に変更したリソースを保存しますか?" msgid "Save & Quit" msgstr "保存して終了" @@ -3547,6 +3893,9 @@ msgstr "この操作はシーンがないと実行できません。" msgid "Export Mesh Library" msgstr "メッシュライブラリのエクスポート" +msgid "Quick Open Color Palette..." +msgstr "カラーパレットをクイックオープン..." + msgid "Unable to enable addon plugin at: '%s' parsing of config failed." msgstr "アドオンプラグインを有効にできません: '%s' 設定の解析に失敗しました。" @@ -3628,6 +3977,52 @@ msgstr "最近開いたシーンの履歴をクリア" msgid "There is no defined scene to run." msgstr "実行するシーンはありません。" +msgid "Loading editor" +msgstr "エディターの読み込み" + +msgid "Loading editor layout..." +msgstr "エディターレイアウトを読み込み中..." + +msgid "Loading docks..." +msgstr "ドックを読み込み中..." + +msgid "Reopening scenes..." +msgstr "シーンを再オープン中..." + +msgid "Loading central editor layout..." +msgstr "中央エディターを読み込み中..." + +msgid "Loading plugin window layout..." +msgstr "プラグインのウィンドウレイアウトを読み込み中..." + +msgid "Editor layout ready." +msgstr "エディターレイアウトの準備完了。" + +msgid "" +"No main scene has ever been defined. Select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"メインシーンが定義されていません。選択しますか?\n" +"'アプリケーション' カテゴリの下の \"プロジェクト設定\" で後から変更できます。" + +msgid "" +"Selected scene '%s' does not exist. Select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"選択したシーン '%s' は存在しません。有効なシーンを選択しますか?\n" +"'アプリケーション' カテゴリの下の \"プロジェクト設定\" で後から変更できます。" + +msgid "" +"Selected scene '%s' is not a scene file. Select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"選択したシーン '%s' はシーンファイルではありません。有効なシーンを選択します" +"か?\n" +"'アプリケーション' カテゴリの下の \"プロジェクト設定\" で後から変更できます。" + msgid "Save Layout..." msgstr "レイアウトを保存…" @@ -3687,7 +4082,7 @@ msgstr "" "ありません。" msgid "Preparing scenes for reload" -msgstr "再読込のためのシーンの準備" +msgstr "再読み込みのためのシーンの準備" msgid "Analyzing scene %s" msgstr "シーン %s を分析中" @@ -3702,7 +4097,7 @@ msgid "Reloading..." msgstr "再読み込み中..." msgid "Reloading done." -msgstr "リロード完了。" +msgstr "再読み込み完了。" msgid "" "Changing the renderer requires restarting the editor.\n" @@ -3789,6 +4184,9 @@ msgstr "シーンを開く..." msgid "Reopen Closed Scene" msgstr "閉じたシーンを再び開く" +msgid "Open Recent" +msgstr "最近開いたシーンを開く" + msgid "Save Scene" msgstr "シーンを保存" @@ -3849,8 +4247,11 @@ msgstr "エンジンのコンパイル構成エディタ..." msgid "Upgrade Mesh Surfaces..." msgstr "メッシュサーフェスをアップグレード..." +msgid "Upgrade UIDs..." +msgstr "UIDをアップグレード..." + msgid "Reload Current Project" -msgstr "現在のプロジェクトをリロード" +msgstr "現在のプロジェクトを再読み込み" msgid "Quit to Project List" msgstr "終了してプロジェクト一覧を開く" @@ -4006,6 +4407,21 @@ msgstr "ライブラリのエクスポート" msgid "Open & Run a Script" msgstr "スクリプトを開いて実行" +msgid "Files have been modified outside Godot" +msgstr "ファイルはGodotの外部で変更されました" + +msgid "The following files are newer on disk:" +msgstr "以下のファイルはより新しいものがディスク上に存在します。" + +msgid "What action should be taken?" +msgstr "どのアクションを実行しますか?" + +msgid "Reload from disk" +msgstr "ディスクから再読み込み" + +msgid "Ignore external changes" +msgstr "外部の変更を無視" + msgid "Create/Override Version Control Metadata..." msgstr "バージョン管理用メタデータの作成/上書き..." @@ -4030,6 +4446,9 @@ msgstr "3Dエディターを開く" msgid "Open Script Editor" msgstr "スクリプトエディターを開く" +msgid "Open Game View" +msgstr "ゲームビューを開く" + msgid "Open Asset Library" msgstr "アセットライブラリを開く" @@ -4159,6 +4578,12 @@ msgstr "新規の値:" msgid "(Nil) %s" msgstr "(Nil) %s" +msgid "%s%s (size %d)" +msgstr "%s%s (サイズ %d)" + +msgid "%s (size %d)" +msgstr "%s (サイズ %d)" + msgid "Size:" msgstr "サイズ:" @@ -4210,6 +4635,9 @@ msgstr "名前を付けて保存..." msgid "Convert to %s" msgstr "%s に変換" +msgid "Select resources to make unique:" +msgstr "ユニークにするリソースを選択する:" + msgid "New %s" msgstr "新規 %s" @@ -4222,6 +4650,12 @@ msgstr "スクリプトを拡張..." msgid "New Shader..." msgstr "新規シェーダー…" +msgid "No Remote Deploy export presets configured." +msgstr "リモートデプロイのエクスポートプリセットが設定されていません。" + +msgid "Remote Deploy" +msgstr "リモートデプロイ" + msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the Export menu or define an existing preset " @@ -4231,6 +4665,29 @@ msgstr "" "エクスポートメニューに実行可能なプリセットを追加するか、既存のプリセットを実行" "可能にしてください。" +msgid "" +"Warning: The CPU architecture \"%s\" is not active in your export preset.\n" +"\n" +msgstr "" +"警告: このCPUアーキテクチャ '%s' は、使用しているエクスポートプリセットでは有" +"効になっていません\n" +"\n" + +msgid "Run \"Remote Deploy\" anyway?" +msgstr "無視してリモートデプロイを実行しますか?" + +msgid "Deploy to First Device in List" +msgstr "リストの1番目のデバイスにデプロイ" + +msgid "Deploy to Second Device in List" +msgstr "リストの2番目のデバイスにデプロイ" + +msgid "Deploy to Third Device in List" +msgstr "リストの3番目のデバイスにデプロイ" + +msgid "Deploy to Fourth Device in List" +msgstr "リストの4番目のデバイスにデプロイ" + msgid "Project Run" msgstr "プロジェクトの実行" @@ -4240,6 +4697,9 @@ msgstr "ロジックを _run() メソッドに記述する。" msgid "The current scene already has a root node." msgstr "現在のシーンには既にルートノードがあります。" +msgid "Advanced settings are always shown when searching." +msgstr "検索時には常に詳細設定が表示されます。" + msgid "Edit Built-in Action: %s" msgstr "組み込みアクションの編集: %s" @@ -4252,6 +4712,9 @@ msgstr "None" msgid "Common" msgstr "一般" +msgid "Event %d" +msgstr "イベント %d" + msgid "Editor Settings" msgstr "エディター設定" @@ -4453,6 +4916,12 @@ msgstr "不明なエラー" msgid "Export failed with error code %d." msgstr "出力にエラーコード %d で失敗しました。" +msgid "Patch Creation" +msgstr "パッチ生成" + +msgid "Could not load patch pack with path \"%s\"." +msgstr "パス \"%s\" のパッチパックを読み込めませんでした。" + msgid "Storing File: %s" msgstr "ファイルの保存: %s" @@ -4462,6 +4931,29 @@ msgstr "ファイルの保存:" msgid "No export template found at the expected path:" msgstr "想定されたパスにエクスポートテンプレートが見つかりません:" +msgid "" +"Using user provided text server data, text display in the exported project " +"might be broken if export template was built with different ICU version!" +msgstr "" +"ユーザーが指定したテキストサーバーのデータを使用する場合、異なるICUバージョン" +"でエクスポートテンプレートが作成された場合にエクスポートしたプロジェクトのテキ" +"スト表示が破損する可能性があります!" + +msgid "" +"Using editor embedded text server data, text display in the exported project " +"might be broken if export template was built with different ICU version!" +msgstr "" +"エディター組み込みのテキストサーバーのデータを使用する場合、異なるICUバージョ" +"ンでエクスポートテンプレートが作成された場合にエクスポートしたプロジェクトのテ" +"キスト表示が破損する可能性があります!" + +msgid "" +"Missing text server data, text display in the exported project might be " +"broken!" +msgstr "" +"テキストサーバーのデータが見つかりません。エクスポートするプロジェクトのテキス" +"ト表示が破損する可能性があります!" + msgid "ZIP Creation" msgstr "ZIPの作成" @@ -4480,6 +4972,9 @@ msgstr "ファイル \"%s\" を作成できませんでした。" msgid "Failed to export project files." msgstr "プロジェクトファイルをエクスポートできませんでした。" +msgid "No files or changes to export." +msgstr "エクスポートするファイルや変更がありません。" + msgid "Can't open file for writing at path \"%s\"." msgstr "パス \"%s\" に書き込み用のファイルを開くことができません。" @@ -4498,6 +4993,9 @@ msgstr "読み込むファイルをパス \"%s\" から開けません。" msgid "Save ZIP" msgstr "ZIPを保存" +msgid "Failed to move temporary file \"%s\" to \"%s\"." +msgstr "一時ファイル \"%s\" を\"%s\" に移動できませんでした。" + msgid "Custom debug template not found." msgstr "カスタム デバッグテンプレートが見つかりません。" @@ -4529,6 +5027,12 @@ msgstr "PCKの埋め込み" msgid "On 32-bit exports the embedded PCK cannot be bigger than 4 GiB." msgstr "32ビットのエクスポートでは、組み込みPCKは4GiBを超えることはできません。" +msgid "GDExtension" +msgstr "GDExtension" + +msgid "Failed to copy shared object \"%s\"." +msgstr "共有オブジェクト \"%s\" をコピーできませんでした。" + msgid "Plugin \"%s\" is not supported on \"%s\"" msgstr "プラグイン \"%s\" は \"%s\" ではサポートされていません" @@ -4661,6 +5165,15 @@ msgstr "" "エクスポート テンプレートが見つかりません。ファイルからインストールしてくださ" "い。" +msgid "Not available in offline mode" +msgstr "オフラインモードでは利用不可" + +msgid "Template downloading is disabled in offline mode." +msgstr "オフラインモードでは、テンプレートのダウンロードは無効です。" + +msgid "No templates for development builds" +msgstr "開発用ビルドのテンプレートはありません" + msgid "Official export templates aren't available for development builds." msgstr "公式のエクスポートテンプレートは開発用ビルドの場合は使用できません。" @@ -4771,9 +5284,15 @@ msgstr "エクスポートするリソース:" msgid "(Inherited)" msgstr "(継承)" +msgid "Delete patch '%s' from list?" +msgstr "パッチ '%s' をリストから削除しますか?" + msgid "Export With Debug" msgstr "デバッグ付きエクスポート" +msgid "Export As Patch" +msgstr "パッチとしてエクスポート" + msgid "%s Export" msgstr "%s エクスポート" @@ -4861,9 +5380,18 @@ msgstr "" "プロジェクトからファイル/フォルダーを除外するフィルター\n" "(コンマ区切り、 例: *.json, *.txt, docs/*)" +msgid "Patches" +msgstr "パッチ" + +msgid "Base Packs:" +msgstr "ベースパック:" + msgid "Godot Project Pack" msgstr "Godotプロジェクトパック" +msgid "Add Pack" +msgstr "パックを追加" + msgid "Features" msgstr "機能" @@ -5023,6 +5551,9 @@ msgstr "参照" msgid "Confirm Path" msgstr "パスの確認" +msgid "Link to: %s" +msgstr "リンク先: %s" + msgid "View items as a grid of thumbnails." msgstr "アイテムをサムネイルでグリッド表示する。" @@ -5052,9 +5583,20 @@ msgstr "移動中のエラー:" msgid "Error duplicating:" msgstr "複製エラー:" +msgid "Error duplicating directory:" +msgstr "ディレクトリの複製エラー:" + msgid "Unable to update dependencies for:" msgstr "依存関係を更新できません:" +msgid "" +"This filename begins with a dot rendering the file invisible to the editor.\n" +"If you want to rename it anyway, use your operating system's file manager." +msgstr "" +"このファイル名はドットで始まっているため、エディターによって認識されません。\n" +"それでも名前を変更したい場合は、オペレーティングシステムのファイルマネージャー" +"を使用してください。" + msgid "" "This file extension is not recognized by the editor.\n" "If you want to rename it anyway, use your operating system's file manager.\n" @@ -5070,6 +5612,9 @@ msgstr "" msgid "A file or folder with this name already exists." msgstr "同名のファイルまたはフォルダーがあります。" +msgid "Could not create base directory: %s" +msgstr "ベースディレクトリ \"%s\" を作成できませんでした" + msgid "" "The following files or folders conflict with items in the target location " "'%s':" @@ -5108,6 +5653,14 @@ msgstr "フォルダーを複製:" msgid "Create Folder" msgstr "フォルダーを作成" +msgid "" +"Do you wish to convert these files to %s? (This operation cannot be undone!)" +msgstr "" +"これらのファイルを %s に変換しますか?(この操作は取り消しできません!)" + +msgid "Could not create folder: %s" +msgstr "フォルダーを作成できませんでした: %s" + msgid "New Inherited Scene" msgstr "新しい継承シーン" @@ -5168,12 +5721,18 @@ msgstr "お気に入りに追加" msgid "Remove from Favorites" msgstr "お気に入りから削除" +msgid "Convert to..." +msgstr "変換..." + msgid "Reimport" msgstr "再インポート" msgid "Open in Terminal" msgstr "ターミナルで開く" +msgid "Open Folder in Terminal" +msgstr "フォルダをターミナルで開く" + msgid "New Folder..." msgstr "新規フォルダー..." @@ -5283,6 +5842,9 @@ msgstr "両方を保持する" msgid "Create Script" msgstr "スクリプト作成" +msgid "Convert" +msgstr "変換" + msgid "Find in Files" msgstr "複数ファイル内を検索" @@ -5319,6 +5881,9 @@ msgstr "すべて置換(アンドゥ不可)" msgid "Searching..." msgstr "検索中..." +msgid "Remove result" +msgstr "結果を削除" + msgid "%d match in %d file" msgstr "%d 件の一致が見つかりました (%d 個のファイル内)" @@ -5447,6 +6012,9 @@ msgstr "" msgid "Select This Folder" msgstr "このフォルダーを選択" +msgid "Show Package Contents" +msgstr "パッケージの内容を表示" + msgid "All Files" msgstr "すべてのファイル" @@ -5499,6 +6067,9 @@ msgstr "モード切り替え" msgid "Focus Path" msgstr "パスにフォーカス" +msgid "Focus Filter" +msgstr "フィルタにフォーカス" + msgid "Move Favorite Up" msgstr "お気に入りを上へ" @@ -5529,9 +6100,18 @@ msgstr "ディレクトリとファイル:" msgid "Toggle the visibility of hidden files." msgstr "隠しファイルの表示 / 非表示を切り替えます。" +msgid "Sort files" +msgstr "ファイルの並び替え" + +msgid "Toggle the visibility of the filter for file names." +msgstr "ファイル名のフィルターの表示 / 非表示を切り替えます。" + msgid "Preview:" msgstr "プレビュー:" +msgid "Filter:" +msgstr "フィルター:" + msgid "Filter" msgstr "フィルター" @@ -5555,6 +6135,45 @@ msgstr "サブリソースが見つかりませんでした。" msgid "Open a list of sub-resources." msgstr "サブリソースのリストを開く。" +msgid "Search files..." +msgstr "ファイルを検索…" + +msgid "Select Resource" +msgstr "リソースを選択" + +msgid "Select Scene" +msgstr "シーンを選択" + +msgid "Fuzzy Search" +msgstr "あいまい検索" + +msgid "Enable fuzzy matching" +msgstr "あいまいマッチを有効化" + +msgid "Addons" +msgstr "アドオン" + +msgid "Include files from addons" +msgstr "アドオンのファイルを含める" + +msgid "No files found for this type" +msgstr "このタイプのファイルは見つかりません" + +msgid "Start searching to find files..." +msgstr "ファイルの検索を開始..." + +msgid "No results found" +msgstr "結果はありません" + +msgid " (recently opened)" +msgstr " (最近開いた)" + +msgid "Grid view" +msgstr "グリッド表示" + +msgid "List view" +msgstr "リスト表示" + msgid "Play the project." msgstr "プロジェクトを実行。" @@ -5565,7 +6184,7 @@ msgid "Play a custom scene." msgstr "カスタムシーンを実行" msgid "Reload the played scene." -msgstr "再生されたシーンをリロード" +msgstr "再生されたシーンを再読み込み" msgid "" "Movie Maker mode is enabled, but no movie file path has been specified.\n" @@ -5587,9 +6206,72 @@ msgstr "" msgid "Could not start subprocess(es)!" msgstr "サブプロセスを開始できませんでした!" +msgid "Recovery Mode is enabled. Disable it to run the project." +msgstr "" +"リカバリーモードが有効です。プロジェクトを実行するには無効にしてください。" + +msgid "" +"Autostart is enabled for the following profilers, which can have a " +"performance impact:" +msgstr "" +"自動起動が次のプロファイラーで有効になっており、パフォーマンスに影響を与える可" +"能性があります:" + msgid "Network Profiler" msgstr "ネットワークプロファイラー" +msgid "Click to open the first profiler for which autostart is enabled." +msgstr "クリックで自動起動が有効な最初のプロファイラーを開きます。" + +msgid "Recovery Mode" +msgstr "リカバリーモード" + +msgid "" +"Godot opened the project in Recovery Mode, which is a special mode that can " +"help recover projects that crash the engine upon initialization. The " +"following features have been temporarily disabled:" +msgstr "" +"Godotはプロジェクトをリカバリーモードで開きました。これは、初期化時にエンジン" +"がクラッシュするプロジェクトを回復するのに役立つ可能性がある特殊なモードです。" +"次の機能が一時的に無効になりました:" + +msgid "Tool scripts" +msgstr "ツールスクリプト" + +msgid "Editor plugins" +msgstr "エディタープラグイン" + +msgid "GDExtension addons" +msgstr "GDExtensionアドオン" + +msgid "Automatic scene restoring" +msgstr "シーンの自動復元" + +msgid "" +"If the project cannot be opened outside of this mode, then it's very likely " +"any of these components is preventing this project from launching. This mode " +"is intended only for basic editing to troubleshoot such issues, and therefore " +"it is not possible to run a project in this mode." +msgstr "" +"プロジェクトがこのモード以外で開けない場合、これらのコンポーネントのいずれかが" +"プロジェクトの起動を妨げている可能性が非常に高いです。このモードは、このような" +"問題のトラブルシューティングのための基本的な編集のみを目的としているため、この" +"モード中にプロジェクトを実行することはできません。" + +msgid "" +"To disable Recovery Mode, reload the project by pressing the Reload button " +"next to the Recovery Mode banner, or by reopening the project normally." +msgstr "" +"リカバリーモードを無効にするには、\"リカバリーモード\"バナーの横にある再読み込" +"みボタンを押すか、プロジェクトを通常通り開き直してプロジェクトを再読み込みしま" +"す。" + +msgid "Disable recovery mode and reload the project." +msgstr "リカバリーモードを無効化し、プロジェクトを再読み込みします。" + +msgid "Recovery Mode is enabled. Click for more details." +msgstr "リカバリーモードが有効です。クリックで詳細を表示。" + msgid "Run the project's default scene." msgstr "プロジェクトのデフォルトシーンを実行します。" @@ -5608,12 +6290,24 @@ msgstr "現在実行中のプロジェクトを停止します。" msgid "Stop Running Project" msgstr "プロジェクトの実行を停止" +msgid "Run Scene in Regular Mode" +msgstr "シーンを通常モードで実行" + +msgid "Run Scene in XR Mode" +msgstr "シーンをXRモードで実行" + msgid "Run the currently edited scene." msgstr "現在編集中のシーンを実行します。" msgid "Run Current Scene" msgstr "現在のシーンを実行" +msgid "Run in Regular Mode" +msgstr "通常モードで実行" + +msgid "Run in XR Mode" +msgstr "XRモードで実行" + msgid "Run a specific scene." msgstr "特定のシーンを実行します。" @@ -5708,6 +6402,13 @@ msgstr[0] "ノードは次のグループ内にあります:" msgid "Click to show signals dock." msgstr "クリックでシグナルのドックを表示します。" +msgid "" +"This script can run in the editor.\n" +"It is currently disabled due to recovery mode." +msgstr "" +"このスクリプトはエディターで実行可能です。\n" +"リカバリーモードのため現在は無効です。" + msgid "This script is currently running in the editor." msgstr "このスクリプトはエディターで実行されています。" @@ -5765,6 +6466,12 @@ msgstr "シーンツリー(ノード):" msgid "Node Configuration Warning!" msgstr "ノードの設定に関する警告!" +msgid "Revoke" +msgstr "取り消す" + +msgid "Don't Ask Again" +msgstr "次回から確認しない" + msgid "Allowed:" msgstr "許可:" @@ -5933,6 +6640,12 @@ msgstr "マテリアル" msgid "Selected Animation Play/Pause" msgstr "選択アニメーションの再生/一時停止" +msgid "Selected Animation Stop" +msgstr "選択アニメーションの停止" + +msgid "Toggle Animation Skeleton Visibility" +msgstr "アニメーションスケルトンの表示の切り替え" + msgid "Rotate Lights With Model" msgstr "モデルと共に光源を回転" @@ -5945,6 +6658,9 @@ msgstr "副光源" msgid "Status" msgstr "ステータス" +msgid "Save Extension:" +msgstr "拡張子の保存:" + msgid "Text: *.tres" msgstr "テキスト: *.tres" @@ -6049,7 +6765,7 @@ msgstr "" "セット(最大 4 倍)に対して事前にレンダリングされる場合があります。" msgid "Advanced Import Settings for '%s'" -msgstr "'%s' のインポートの詳細設定" +msgstr "'%s' の高度なインポート設定" msgid "Rendering Options" msgstr "レンダリング オプション" @@ -6366,9 +7082,21 @@ msgstr "オブジェクトのプロパティを管理。" msgid "This cannot be undone. Are you sure?" msgstr "これは元に戻せません。本当によろしいですか?" +msgid "Add %d Translation" +msgid_plural "Add %d Translations" +msgstr[0] "%d個の翻訳を追加" + msgid "Remove Translation" msgstr "翻訳を除去" +msgid "Translation Resource Remap: Add %d Path" +msgid_plural "Translation Resource Remap: Add %d Paths" +msgstr[0] "翻訳リソースの再マップ: %d個のパスを追加" + +msgid "Translation Resource Remap: Add %d Remap" +msgid_plural "Translation Resource Remap: Add %d Remaps" +msgstr[0] "翻訳リソースの再マップ: %d個の再マップを追加" + msgid "Change Resource Remap Language" msgstr "リソースの再マップ言語を変更" @@ -6378,6 +7106,10 @@ msgstr "リソースの再マップを削除" msgid "Remove Resource Remap Option" msgstr "リソース再マップオプションを削除" +msgid "Add %d file for POT generation" +msgid_plural "Add %d files for POT generation" +msgstr[0] "POT生成用に%d個のファイルを追加" + msgid "Remove file from POT generation" msgstr "POT生成からファイルを削除" @@ -6420,6 +7152,9 @@ msgstr "組み込み文字列をPOTに追加" msgid "Add strings from built-in components such as certain Control nodes." msgstr "特定のControlノードなどの組み込みコンポーネントから文字列を追加する。" +msgid "Set %s on %d nodes" +msgstr "%s を%d個のノードに設定" + msgid "%s (%d Selected)" msgstr "%s (%d 個選択済み)" @@ -6643,6 +7378,24 @@ msgstr "選択した子の塗り潰し" msgid "Invert" msgstr "反転" +msgid "Start of Animation" +msgstr "アニメーションの開始" + +msgid "End of Animation" +msgstr "アニメーションの終了" + +msgid "Set Custom Timeline from Marker" +msgstr "マーカーからカスタムタイムラインを設定" + +msgid "Select Markers" +msgstr "マーカーの選択" + +msgid "Start Marker" +msgstr "開始マーカー" + +msgid "End Marker" +msgstr "終了マーカー" + msgid "Library Name:" msgstr "ライブラリ名:" @@ -8059,6 +8812,13 @@ msgstr "" msgid "Edit Plugin" msgstr "プラグインの編集" +msgid "" +"Recovery mode is enabled. Enabled plugins will not run while this mode is " +"active." +msgstr "" +"リカバリーモードが有効です。このモードが有効な間は、有効化されたプラグインは実" +"行されません。" + msgid "Installed Plugins:" msgstr "インストール済プラグイン:" @@ -8135,9 +8895,150 @@ msgstr "東アジア言語の横幅" msgid "Numeral Alignment" msgstr "数字の配置" +msgid "Variation" +msgstr "バリエーション" + msgid "Unable to preview font" msgstr "フォントをプレビューできません" +msgid "Connection impossible to the game process." +msgstr "ゲームプロセスに接続できません。" + +msgid "Game starting..." +msgstr "ゲーム起動中..." + +msgid "Game running not embedded." +msgstr "ゲームが埋め込みなしで実行中。" + +msgid "Press play to start the game." +msgstr "ゲームを開始するには再生ボタンを押します。" + +msgid "Embedding is disabled." +msgstr "埋め込みは無効です。" + +msgid "Game embedding not available on your OS." +msgstr "ゲームの埋め込みは現在のOSでは利用できません。" + +msgid "" +"Game embedding not available when the game starts minimized.\n" +"Consider overriding the window mode project setting with the editor feature " +"tag to Windowed to use game embedding while leaving the exported project " +"intact." +msgstr "" +"ゲームが最小化の状態で起動する場合、ゲームの埋め込みは利用できません。\n" +"エクスポートするプロジェクトに影響を与えずゲーム埋め込みを利用するために、プロ" +"ジェクト設定のエディター機能タグを利用してウィンドウモードをWindowedにすること" +"を検討してください。" + +msgid "" +"Game embedding not available when the game starts maximized.\n" +"Consider overriding the window mode project setting with the editor feature " +"tag to Windowed to use game embedding while leaving the exported project " +"intact." +msgstr "" +"ゲームが最大化の状態で起動する場合、ゲームの埋め込みは利用できません。\n" +"エクスポートするプロジェクトに影響を与えずゲーム埋め込みを利用するために、プロ" +"ジェクト設定のエディター機能タグを利用してウィンドウモードをWindowedにすること" +"を検討してください。" + +msgid "" +"Game embedding not available when the game starts in fullscreen.\n" +"Consider overriding the window mode project setting with the editor feature " +"tag to Windowed to use game embedding while leaving the exported project " +"intact." +msgstr "" +"ゲームがフルスクリーンで起動する場合、ゲームの埋め込みは利用できません。\n" +"エクスポートするプロジェクトに影響を与えずゲーム埋め込みを利用するために、プロ" +"ジェクト設定のエディター機能タグを利用してウィンドウモードをWindowedにすること" +"を検討してください。" + +msgid "Game embedding not available in single window mode." +msgstr "シングルウィンドウモードではゲームの埋め込みは利用できません。" + +msgid "Suspend" +msgstr "中断" + +msgid "Next Frame" +msgstr "次フレーム" + +msgid "Input" +msgstr "入力" + +msgid "Allow game input." +msgstr "ゲームの入力を許可します。" + +msgid "" +"Disable game input and allow to select Node2Ds, Controls, and manipulate the " +"2D camera." +msgstr "" +"ゲームの入力を無効化し、Node2DやControlの選択、2Dカメラの操作を可能にします。" + +msgid "" +"Disable game input and allow to select Node3Ds and manipulate the 3D camera." +msgstr "ゲームの入力を無効化し、Node3Dの選択、3Dカメラの操作を可能にします。" + +msgid "Toggle Selection Visibility" +msgstr "選択範囲の表示を切り替え" + +msgid "Alt+RMB: Show list of all nodes at position clicked." +msgstr "Alt+右クリック: クリックした位置のすべてのノードを一覧で表示。" + +msgid "Override the in-game camera." +msgstr "ゲーム内のカメラをオーバーライドします。" + +msgid "Camera Override Options" +msgstr "カメラのオーバーライドオプション" + +msgid "Reset 2D Camera" +msgstr "2Dカメラをリセット" + +msgid "Reset 3D Camera" +msgstr "3Dカメラをリセット" + +msgid "Manipulate In-Game" +msgstr "ゲーム内で操作" + +msgid "Manipulate From Editors" +msgstr "エディターから操作" + +msgid "" +"Embedded game size is based on project settings.\n" +"The 'Keep Aspect' mode is used when the Game Workspace is smaller than the " +"desired size." +msgstr "" +"ゲームの埋め込みのサイズは、プロジェクト設定に依存します。\n" +"ゲームのワークスペースが目的のサイズより小さい場合、 'Keep Aspect' モードが使" +"用されます。" + +msgid "Keep the aspect ratio of the embedded game." +msgstr "ゲームの埋め込みのアスペクト比を維持します。" + +msgid "Embedded game size stretches to fit the Game Workspace." +msgstr "" +"ゲームのワークスペースに合わせて、ゲームの埋め込みのサイズが拡大します。" + +msgid "Embedding Options" +msgstr "埋め込みオプション" + +msgid "Embed Game on Next Play" +msgstr "次の実行時にゲームを埋め込む" + +msgid "Make Game Workspace Floating on Next Play" +msgstr "次の実行時にゲームのワークスペースをフローティング化する" + +msgid "Game Workspace" +msgstr "ゲームのワークスペース" + +msgid "" +"No \"%s\" library found for GDExtension: \"%s\". Possible feature flags for " +"your platform: %s" +msgstr "" +"GDExtension用のライブラリ \"%s\" が見つかりません: \"%s\"。このプラットフォー" +"ムで可能な機能フラグ: %s" + +msgid "Multiple \"%s\" libraries found for GDExtension: \"%s\": \"%s\"." +msgstr "GDExtension用のライブラリ \"%s\" が複数見つかりました: \"%s\":\"%s\"。" + msgid "Change AudioStreamPlayer3D Emission Angle" msgstr "AudioStreamPlayer3Dの放射角度を変更する" @@ -8677,6 +9578,9 @@ msgstr "後面 平行投影" msgid "Rear Perspective" msgstr "後面 透視投影" +msgid "[auto]" +msgstr "[自動]" + msgid "X-Axis Transform." msgstr "X軸トランスフォーム。" @@ -9812,6 +10716,9 @@ msgstr "" "アニメーションミキサーに有効なルートノードのパスがないため、トラック名を取得で" "きません。" +msgid "Current value: " +msgstr "現在の値: " + msgid "Can't open '%s'. The file could have been moved or deleted." msgstr "" "'%s' を開くことができません。ファイルが移動または削除された可能性があります。" @@ -9939,6 +10846,9 @@ msgstr "ツールスクリプトをソフトリロード" msgid "Copy Script Path" msgstr "スクリプトのパスをコピー" +msgid "Copy Script UID" +msgstr "スクリプトのUIDをコピー" + msgid "History Previous" msgstr "前の履歴" @@ -13590,6 +14500,35 @@ msgstr "" "見つからないすべてのプロジェクトを一覧から削除しますか?\n" "プロジェクトフォルダーの内容は変更されません。" +msgid "" +"It looks like Godot crashed when opening this project the last time. If " +"you're having problems editing this project, you can try to open it in " +"Recovery Mode." +msgstr "" +"前回このプロジェクトを開いたときにGodotがクラッシュしたようです。このプロジェ" +"クトの編集に問題がある場合は、リカバリーモードで開くことができます。" + +msgid "" +"Recovery Mode is a special mode that may help to recover projects that crash " +"the engine during initialization. This mode temporarily disables the " +"following features:" +msgstr "" +"リカバリーモードは、初期化中にエンジンがクラッシュするプロジェクトを回復するの" +"に役立つ可能性がある特殊なモードです。このモードでは、以下の機能が一時的に無効" +"になります:" + +msgid "" +"This mode is intended only for basic editing to troubleshoot such issues, and " +"therefore it will not be possible to run the project during this mode. It is " +"also a good idea to make a backup of your project before proceeding." +msgstr "" +"このモードは、このような問題のトラブルシューティングのための基本的な編集のみを" +"目的としているため、このモード中にプロジェクトを実行することはできません。ま" +"た、実行する前にプロジェクトのバックアップを取ることを推奨します。" + +msgid "Edit the project in Recovery Mode?" +msgstr "プロジェクトをリカバリーモードで編集しますか?" + msgid "Couldn't load project at '%s'. It may be missing or corrupted." msgstr "" "%s のプロジェクトを読み込めませんでした。見つからないか破損している可能性があ" @@ -13662,9 +14601,9 @@ msgid "" "importing one that exists, or by downloading a project template from the " "Asset Library!" msgstr "" -"まずは新規作成するか既存のプロジェクトをインポート、\n" -"またはアセットライブラリからプロジェクトテンプレートをダウンロードして始めま" -"しょう!" +"まずは新規作成から始めましょう。\n" +"もしくは既存のプロジェクトをインポートするか、アセットライブラリからプロジェク" +"トテンプレートをダウンロードしましょう!" msgid "Create New Project" msgstr "新規プロジェクトを作成" @@ -13682,6 +14621,9 @@ msgstr "" msgid "Edit Project" msgstr "プロジェクトを編集" +msgid "Edit in recovery mode" +msgstr "リカバリーモードで編集" + msgid "Rename Project" msgstr "プロジェクト名の変更" @@ -13707,6 +14649,9 @@ msgstr "スキャンするフォルダーを選択" msgid "Remove All" msgstr "すべて除去" +msgid "Edit in Recovery Mode" +msgstr "リカバリーモードで編集" + msgid "Convert Full Project" msgstr "プロジェクト全体を変換" @@ -13917,6 +14862,9 @@ msgstr "バージョン管理メタデータ:" msgid "Git" msgstr "Git" +msgid "Edit Now" +msgstr "今すぐ編集を始める" + msgid "This project was last edited in a different Godot version: " msgstr "このプロジェクトはGodotの別バージョンで最終変更されました: " @@ -14842,6 +15790,46 @@ msgstr "" msgid "Restart & Upgrade" msgstr "再起動してアップグレード" +msgid "Updating Script UIDs" +msgstr "スクリプトのUIDをアップデート中" + +msgid "" +"As of Godot 4.4, scenes and resources use UIDs to reference scripts and " +"shaders.\n" +"\n" +"Normally, this update is applied to a single scene or resource once you save " +"it in Godot 4.4 for the first time. If you have a lot of scenes and/or " +"resources, doing this manually may be time-consuming. This tool will update " +"all of the project's scenes and resources at once.\n" +"\n" +"Click \"Restart & Upgrade\" to restart the editor and update all of the " +"scenes and resources in this project. Depending on the project size, it may " +"take several minutes.\n" +"\n" +"Note: Please make sure you have your project backed up before running the " +"tool, to avoid the possibility of data loss. Additionally, make sure to " +"commit all .uid files into version control (and do not add them to ignore-" +"lists like .gitignore)." +msgstr "" +"Godot 4.4以降、シーンとリソースはスクリプトやシェーダーの参照にUIDを使用しま" +"す。\n" +"\n" +"通常このアップデートは、シーンやリソースごとにGodot 4.4で初めて保存した時点で" +"適用されます。しかし、シーンやリソースが多数存在する場合、手動でこれを行うのは" +"時間がかかる可能性があります。このツールは、プロジェクトの全てのシーンとリソー" +"スを一度にアップデートします。\n" +"\n" +"\"再起動してアップグレード\"をクリックすることで、エディタを再起動してこのプロ" +"ジェクトのすべてのシーンとリソースをアップデートします。プロジェクトのサイズに" +"よっては数分かかる場合があります。\n" +"\n" +"注意: データ損失の可能性を避けるため、ツールを実行する前にプロジェクトをバック" +"アップしてください。また、すべての.uidファイルはバージョン管理にコミットしてく" +"ださい(.gitignoreのような無視リストに追加しないでください)。" + +msgid "Learn More" +msgstr "詳細を表示" + msgid "Make this panel floating in the screen %d." msgstr "このパネルを画面%dにフローティングさせます。" @@ -15167,6 +16155,20 @@ msgstr "クラス名は有効な識別子である必要があります" msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "デコードするにはバイトが足りないか、または無効な形式です。" +msgid "" +"Unable to load .NET runtime, no compatible version was found.\n" +"Attempting to create/edit a project will lead to a crash.\n" +"\n" +"Please install the .NET SDK 8.0 or later from https://get.dot.net and restart " +"Godot." +msgstr "" +".NETランタイムの読み込みに失敗しました。互換性のあるバージョンが見つかりませ" +"ん。\n" +"プロジェクトの作成・編集を行うとクラッシュする可能性があります。\n" +"\n" +".NET SDK 8.0またはそれ以降のバージョンを https://get.dot.net よりインストール" +"し、Godotを再起動してください。" + msgid "Failed to load .NET runtime" msgstr ".NETランタイムの読み込みに失敗しました" @@ -15864,12 +16866,6 @@ msgstr "" "要求されたテンプレートライブラリ \"%s\" が見つかりません。あなたのテンプレート" "アーカイブから欠落している可能性があります。" -msgid "ARM64 simulator library, generating from device library." -msgstr "ARM64 シミュレータライブラリ、デバイスライブラリから生成します。" - -msgid "Unable to generate ARM64 simulator library." -msgstr "ARM64 シミュレータライブラリを生成できません。" - msgid "Could not copy a file at path \"%s\" to \"%s\"." msgstr "パス \"%s\" から \"%s\" へファイルをコピーできませんでした。" @@ -17257,6 +18253,9 @@ msgstr "" msgid "Copy this constructor in a script." msgstr "このコンストラクターをスクリプトにコピーします。" +msgid "Quick Load" +msgstr "クイックロード" + msgid "Switch between hexadecimal and code values." msgstr "16進数とコード値を切り替えます。" @@ -17697,9 +18696,6 @@ msgstr "型「%s」のオブジェクトはインデックスできません。" msgid "Invalid base type for increment/decrement operator." msgstr "インクリメント/デクリメント演算子が無効な基本タイプです。" -msgid "Invalid use of increment/decrement operator in a constant expression." -msgstr "インクリメント/デクリメント演算子の使用が無効な定数式です。" - msgid "Invalid token for the operator: '%s'." msgstr "オペレータのトークンが無効です: '%s'。" diff --git a/engine/editor/translations/editor/ka.po b/engine/editor/translations/editor/ka.po index c46e9f31..a74c4e7b 100644 --- a/engine/editor/translations/editor/ka.po +++ b/engine/editor/translations/editor/ka.po @@ -6,13 +6,13 @@ # George Dzavashvili <dzavashviligeorge@gmail.com>, 2018. # დემეტრე შონია <blender.animation.maker@gmail.com>, 2019. # Rati Nikolaishvili <rati.nikolaishvili@gmail.com>, 2019. -# Temuri Doghonadze <temuri.doghonadze@gmail.com>, 2023, 2024. +# Temuri Doghonadze <temuri.doghonadze@gmail.com>, 2023, 2024, 2025. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2024-11-21 08:24+0000\n" +"PO-Revision-Date: 2025-02-11 01:02+0000\n" "Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n" "Language-Team: Georgian <https://hosted.weblate.org/projects/godot-engine/" "godot/ka/>\n" @@ -21,7 +21,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.9-dev\n" +"X-Generator: Weblate 5.10-dev\n" msgid "Main Thread" msgstr "მთავარი ნაკადი" @@ -546,6 +546,9 @@ msgstr "მხოლოდ აჩვენე ჩანაწერები კ msgid "Group tracks by node or display them as plain list." msgstr "დააჯგუფე ჩანაწერები კვანძების მიხედვით ან აჩვენე როგორც უბრალო სია." +msgid "Apply snapping to selected key(s)." +msgstr "მიმაგრების გამოყენება მონიშნულ გასაღებებზე." + msgid "Animation step value." msgstr "ანიმაციის ნაბიჯის ღირებულება." @@ -656,9 +659,15 @@ msgstr "მნიშვნელობის ბილიკი:" msgid "Select Tracks to Copy" msgstr "აირჩიეთ დასაკოპირებელი ბილიკები" +msgid "Marker '%s' already exists!" +msgstr "მარკერი '%s' უკვე არსებობს!" + msgid "Close" msgstr "დახურვა" +msgid "Change Marker Name:" +msgstr "მარკერის სახელის შეცვლა:" + msgid "Add Audio Track Clip" msgstr "აუდიობილიკის დამატება" @@ -816,6 +825,9 @@ msgstr "შეცვლა" msgid "Create New %s" msgstr "ახალი %s-ის შექმნა" +msgid "Script path: %s" +msgstr "სკრიპტის ბილიკი: %s" + msgid "Favorites:" msgstr "სანიშნები:" @@ -1052,6 +1064,9 @@ msgstr "" msgid "Cannot remove:" msgstr "წაშლის შეცდომა:" +msgid "Files to be deleted:" +msgstr "წაიშლება ფაილები:" + msgid "Error loading:" msgstr "ჩატვირთვის შეცდომა:" @@ -1285,6 +1300,12 @@ msgstr "[ცარიელი]" msgid "[unsaved]" msgstr "[შეუნახავი]" +msgid "Open the %s dock." +msgstr "%s დოკის გახსნა." + +msgid "Focus on the %s dock." +msgstr "ფოკუსი %s დოკზე." + msgid "Make Floating" msgstr "მცურავად გადაკეთება" @@ -1327,6 +1348,9 @@ msgstr "გატანა" msgid "Restart" msgstr "რესტარტ" +msgid "Updating Scene Groups" +msgstr "სცენის ჯგუფების განახლება" + msgid "No return value." msgstr "დასაბრუნებელი მნიშვნელობის გარეშე." @@ -1402,6 +1426,9 @@ msgstr "თვისების აღწერები" msgid "Editor" msgstr "რედაქტორი" +msgid "Click to open in browser." +msgstr "დააწკაპუნეთ ბრაუზერში გასახსნელად." + msgid "Open in File Manager" msgstr "ფაილთა მმართველში გახსნა" @@ -1411,15 +1438,27 @@ msgstr "კლასი" msgid "Constant" msgstr "მუდმივა" +msgid "Setting" +msgstr "პარამეტრი" + msgid "Property" msgstr "პარამეტრი" +msgid "Internal Property" +msgstr "შიდა თვისება" + msgid "Signal" msgstr "სიგნალი" msgid "Annotation" msgstr "ანოტაცია" +msgid "TextFile" +msgstr "ტექსტური ფაილი" + +msgid "Invalid path" +msgstr "არასწორი ბილიკი" + msgid "%d match." msgstr "%d დამთხვევა." @@ -1429,6 +1468,9 @@ msgstr "%d დამთხვევა." msgid "Case Sensitive" msgstr "რეგისტრზე-დამოკიდებული" +msgid "Unfavorite Property" +msgstr "თვისების წაშლა სანიშნეებიდან" + msgid "(%d change)" msgid_plural "(%d changes)" msgstr[0] "(%d ცვლილება)" @@ -1529,6 +1571,9 @@ msgstr "გლობალური გამეორება: %s" msgid "Remote Redo: %s" msgstr "დაშორებული გამეორება: %s" +msgid "Reopening scenes..." +msgstr "მიმდინარეობს სცენების თავიდან გახსნა..." + msgid "Save Layout..." msgstr "განლაგების შენახვა..." @@ -1646,6 +1691,9 @@ msgstr "ფაილების მმართველში ჩვენე msgid "Export Library" msgstr "ბიბლიოთეკის გატანა" +msgid "What action should be taken?" +msgstr "რა ქმედება უნდა შესრულდეს?" + msgid "Version Control Settings..." msgstr "ვერსიის კონტროლის მორგება..." @@ -1673,6 +1721,12 @@ msgstr "ახალი პარამეტრი:" msgid "New Value:" msgstr "ახალი მნიშვნელობა:" +msgid "%s%s (size %d)" +msgstr "%s%s (ზომა %d)" + +msgid "%s (size %d)" +msgstr "%s (ზომა %d)" + msgid "Size:" msgstr "ზომა:" @@ -1778,9 +1832,18 @@ msgstr "ბილიკზე \"%s\" ფაილის ჩაწერა/წ msgid "Can't create encrypted file." msgstr "დაშიფრული ფაილის შექმნის შეცდომა." +msgid "Failed to move temporary file \"%s\" to \"%s\"." +msgstr "დროებითი ფაილის \"%s\" \"%s\"-ში გადატანა ჩავარდა." + msgid "Template file not found: \"%s\"." msgstr "ნიმუში ვერ ვიპოვე: \"%s\"." +msgid "GDExtension" +msgstr "GDExtension" + +msgid "Failed to copy shared object \"%s\"." +msgstr "გაზიარებული ობიექტის \"%s\" კოპირება ჩავარდა." + msgid "Connecting to the mirror..." msgstr "სარკესთან დაკავშირება..." @@ -1805,6 +1868,9 @@ msgstr "აირჩიეთ ნიმუშის ფაილი" msgid "Delete preset '%s'?" msgstr "წავშალო პრესეტი '%s' ?" +msgid "Export As Patch" +msgstr "გატანა პაჩის სახით" + msgid "%s Export" msgstr "%s გატანა" @@ -1832,6 +1898,9 @@ msgstr "რესურსები" msgid "Keep" msgstr "დატოვება" +msgid "Patches" +msgstr "პაჩები" + msgid "Features" msgstr "თვისებები" @@ -1853,9 +1922,18 @@ msgstr "ყველაფრის გატანა" msgid "Browse" msgstr "დათვალიერება" +msgid "Error duplicating directory:" +msgstr "დუბლირების შეცდომა საქაღალდისთვის:" + +msgid "Could not create base directory: %s" +msgstr "ვერ შევქმენი საბაზისო საქაღალდე: %s" + msgid "Create Folder" msgstr "საქაღალდის შექმნა" +msgid "Could not create folder: %s" +msgstr "ვერ შევქმენი საქაღალდე: %s" + msgid "Create New" msgstr "ახლის შექმნა" @@ -1880,6 +1958,9 @@ msgstr "რჩეულებში დამატება" msgid "Remove from Favorites" msgstr "რჩეულებიდან წაშლა" +msgid "Convert to..." +msgstr "გადაყვანა..." + msgid "New Scene..." msgstr "ახალი სცენა..." @@ -1913,6 +1994,9 @@ msgstr "ფილტრის ფაილები" msgid "Overwrite" msgstr "თავზე გადაწერა" +msgid "Convert" +msgstr "გადაყვანა" + msgid "Find in Files" msgstr "ფაილებში ძებნა" @@ -2028,6 +2112,15 @@ msgstr "" "ფაილური სისტემის კონფიგურაციაზე დამოკიდებულებით, ფაილები შეიძლება ნაგვის " "ყუთში იქნეს გადატანილი, ან სამუდამოდ წაიშლება." +msgid "Fuzzy Search" +msgstr "ბუნდოვანი ძებნა" + +msgid "No results found" +msgstr "შედეგების გარეშე" + +msgid " (recently opened)" +msgstr " (ახლახანს გახსნილი)" + msgid "Reload the played scene." msgstr "დაკრული სცენის თავიდან ჩატვირთვა." @@ -2067,6 +2160,9 @@ msgstr "გაფრთხილებების ჩვენება." msgid "Silence the notifications." msgstr "გაფრთხილებების დადუმება." +msgid "Revoke unique name for node \"%s\"?" +msgstr "გავაუქმო უნიკალური სახელი კვანძისთვის \"%s\"?" + msgid "(Connecting From)" msgstr "(წყარო)" @@ -2180,6 +2276,11 @@ msgstr "ისტორიაში წინა ჩასწორებულ msgid "Filter Properties" msgstr "ფილტრის თვისებები" +msgid "Add %d Translation" +msgid_plural "Add %d Translations" +msgstr[0] "%d თარგმანის დამატება" +msgstr[1] "%d თარგმანის დამატება" + msgid "Removed" msgstr "ამოღებულია" @@ -2312,6 +2413,9 @@ msgstr "წავშალო ანიმაცია '%s'?" msgid "Duplicated Animation Name:" msgstr "დუბლირებული ანიმაციის სახელი:" +msgid "Play Animation Backwards from End" +msgstr "ანიმაციის უკუღმა დაკვრა ბოლოდან" + msgid "Animation" msgstr "ანიმაცია" @@ -2490,6 +2594,9 @@ msgstr "400%-ზე გადიდება" msgid "Zoom to 800%" msgstr "800%-ზე გადიდება" +msgid "(Available in all modes.)" +msgstr "(ხელმისაწვდომია ყველა რეჟიმში.)" + msgid "Scale Mode" msgstr "გადიდების რეჟიმი" @@ -2601,6 +2708,12 @@ msgstr "გადაფარავს (%d)" msgid "Variation Coordinates (%d)" msgstr "ვარიაციის კოორდინატები (%d)" +msgid "Variation" +msgstr "ვარიაცია" + +msgid "Override the in-game camera." +msgstr "თამაშის კამერის გადაფარვა." + msgid "Change Box Shape Size" msgstr "მართკუთხედის მოხაზულობის ზომის შეცვლა" @@ -2751,6 +2864,9 @@ msgstr "ხმის სიმაღლე" msgid "Emission Source:" msgstr "გამოსხივების წყარო:" +msgid "Create Emission Points" +msgstr "გამოსხივების წერტილების შექმნა" + msgid "Delete Point" msgstr "წერტილის წაშლა" @@ -2787,6 +2903,9 @@ msgstr "ულტრაიისფერი გამოსხივება" msgid "Bones" msgstr "ძვლები" +msgid "%s: Rotate" +msgstr "%s: შემობრუნება" + msgid "Radius:" msgstr "რადიუსი:" @@ -2808,6 +2927,9 @@ msgstr "რესურსის წაშლა" msgid "Path to AnimationMixer is invalid" msgstr "ბილიკი AnimationMixer-მდე არასწორია" +msgid "Current value: " +msgstr "მიმდინარე მნიშვნელობა: " + msgid "Error writing TextFile:" msgstr "ტექსტური ფაილის შენახვის შეცდომა:" @@ -2972,6 +3094,9 @@ msgstr "შეიდერის ფაილის ჩატვირთვა. msgid "Load Shader Include File..." msgstr "შეიდერის ჩასასმელი ფაილის ჩატვირთვა..." +msgid "Inspect Native Shader Code..." +msgstr "ადგილობრივი შეიდერის კოდის შემოწმება..." + msgid "Close File" msgstr "ფაილის დახურვა" @@ -3318,6 +3443,9 @@ msgstr "სცენების კოლექციის თვისებ msgid "Tile properties:" msgstr "ფილის თვისებები:" +msgid "Line Tool" +msgstr "ხაზის ხელსაწყო" + msgid "Commit" msgstr "კომიტი" @@ -3489,6 +3617,9 @@ msgstr "ნისლი" msgid "Show generated shader code." msgstr "გენერირებული შეიდერის კოდის ჩვენება." +msgid "Toggle shader preview." +msgstr "შეიდერის მინიატურის გადართვა." + msgid "Generated Shader Code" msgstr "გენერირებული შეიდერის კოდი" @@ -3831,6 +3962,9 @@ msgstr "შეიდერის შექმნა" msgid "Global shader parameter '%s' already exists." msgstr "გლობალური შეიდერის პარამეტრი '%s' უკვე არსებობს." +msgid "Updating Script UIDs" +msgstr "სკრიპტის UID-ების განახლება" + msgid "Cannot instantiate GDScript class." msgstr "GDScript-ს კლასის ინსტანცირება შეუძლებელია." @@ -3922,6 +4056,9 @@ msgstr "ქმედების დამატება." msgid "Remove action set." msgstr "ქმედებების ნაკრების წაშლა." +msgid "Remove binding modifier." +msgstr "მიმაგრების მოდიფიკატორის წაშლა." + msgid "OpenXR Action Map" msgstr "OpenXR ქმედების რუკა" @@ -3940,6 +4077,9 @@ msgstr "მოწყობილობაზე დაყენება. მო msgid "Missing 'bin' directory!" msgstr "საქაღალდე 'bin' არ არსებობს!" +msgid "Unable to sign apk." +msgstr "APK-ის ხელმოწერის შეცდომა." + msgid "Unable to copy and rename export file:" msgstr "გატანის ფაილის კოპირება და სახელის გადარქმევა შეუძლებელია:" @@ -4057,6 +4197,9 @@ msgstr "ანიმაცია ვერ ვიპოვე: '%s'" msgid "Nothing connected to input '%s' of node '%s'." msgstr "არაფერია შეერთებული შეყვანაში '%s' კვანძისთვის '%s'." +msgid "Quick Load" +msgstr "სწრაფი ჩატვირთვა" + msgid "Default Color" msgstr "ნაგულისხმები ფერი" @@ -4108,6 +4251,9 @@ msgstr "არასწორი რენდერის რეჟიმი: '% msgid "Unexpected token: '%s'." msgstr "მოულოდნელი კოდი: '%s'." +msgid "Expected ',' or ')' after string constant." +msgstr "მოველოდი ','-ს, ან ')'-ს სტრიქონი კონსტანტის შემდეგ." + msgid "Duplicated filter mode: '%s'." msgstr "დუბლირებული ფილტრაციის რჟიმი: '%s'." @@ -4126,5 +4272,11 @@ msgstr "მოველოდი '%s'-ს '%s'-ის შემდეგ." msgid "Redefinition of '%s'." msgstr "%s მეორედაა აღწერილი." +msgid "Unmatched '%s' directive." +msgstr "'%s' დირექტივას არაფერი ემთხვევა." + msgid "Missing condition." msgstr "პირობა მითითებული არაა." + +msgid "Invalid '%s' directive." +msgstr "არასწორი დირექტორივა '%s'." diff --git a/engine/editor/translations/editor/ko.po b/engine/editor/translations/editor/ko.po index e272958e..1e39c63a 100644 --- a/engine/editor/translations/editor/ko.po +++ b/engine/editor/translations/editor/ko.po @@ -73,13 +73,15 @@ # haha <pilsang0512@gmail.com>, 2024. # diswib <diswib@gmail.com>, 2024. # KyungHyungSo <valentine92exp@gmail.com>, 2025. +# 백치현 <bagjob@gmail.com>, 2025. +# Ji Yong Jeung <thomasjeung@gmail.com>, 2025. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2025-01-05 13:01+0000\n" -"Last-Translator: KyungHyungSo <valentine92exp@gmail.com>\n" +"PO-Revision-Date: 2025-02-17 06:44+0000\n" +"Last-Translator: Ji Yong Jeung <thomasjeung@gmail.com>\n" "Language-Team: Korean <https://hosted.weblate.org/projects/godot-engine/godot/" "ko/>\n" "Language: ko\n" @@ -87,7 +89,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 5.10-dev\n" +"X-Generator: Weblate 5.10\n" msgid "Main Thread" msgstr "메인 스레드" @@ -445,6 +447,9 @@ msgstr "숨긴 항목" msgid "Swap Input Direction" msgstr "입력 방향 변환" +msgid "Start Unicode Character Input" +msgstr "유니코드 입력 시작" + msgid "Invalid input %d (not passed) in expression" msgstr "표현식의 입력 %d (전달되지 않음) 이(가) 올바르지 않습니다" @@ -685,6 +690,34 @@ msgstr "애니메이션 길이 바꾸기" msgid "Change Animation Loop" msgstr "애니메이션 루프 바꾸기" +msgid "" +"Can't change loop mode on animation instanced from an imported scene.\n" +"\n" +"To change this animation's loop mode, navigate to the scene's Advanced Import " +"settings and select the animation.\n" +"You can then change the loop mode from the inspector menu." +msgstr "" +"가져온 장면에서 인스턴스화된 애니메이션의 루프 모드는 변경할 수 없습니다.\n" +"\n" +"이 애니메이션의 루프 모드를 수정하려면, 해당 장면의 고급 가져오기 메뉴에서 애" +"니메이션을 선택하세요.\n" +"그런 다음 인스펙터 메뉴에서 루프 모드를 원하는 대로 변경할 수 있습니다." + +msgid "Can't change loop mode on animation instanced from an imported resource." +msgstr "" +"가져온 리소스에서 인스턴스화된 애니메이션의 루프 모드를 변경할 수 없습니다." + +msgid "" +"Can't change loop mode on animation embedded in another scene.\n" +"\n" +"You must open this scene and change the animation's loop mode from there." +msgstr "" +"다른 씬에 임베드된 애니메이션의 루프 모드를 변경할 수 없습니다.\n" +"이 씬을 열어 애니메이션의 루프 모드를 거기서 변경해야 합니다." + +msgid "Can't change loop mode on animation embedded in another resource." +msgstr "다른 리소스에 임베드된 애니메이션의 루프 모드를 변경할 수 없습니다." + msgid "Property Track..." msgstr "속성 트랙..." @@ -1078,6 +1111,15 @@ msgstr "트리에서 선택한 노드만 트랙에 표시됩니다." msgid "Group tracks by node or display them as plain list." msgstr "노드 별로 트랙을 묶어서 보거나, 묶지 않고 나열해서 볼 수 있습니다." +msgid "Apply snapping to timeline cursor." +msgstr "타임라인 커서에 스냅 적용." + +msgid "Apply snapping to selected key(s)." +msgstr "선택된 키에 스냅 적용." + +msgid "Apply snapping to the nearest integer FPS." +msgstr "가장 가까운 정수 FPS에 스냅 적용." + msgid "Animation step value." msgstr "애니메이션 단계 값입니다." @@ -1298,12 +1340,74 @@ msgstr "모두 선택/해제" msgid "Animation Change Keyframe Time" msgstr "애니메이션 키 프레임 시간 바꾸기" +msgid "Marker name is read-only in the inspector." +msgstr "인스펙터에서 마커 이름은 읽기 전용입니다." + +msgid "" +"A marker's name can only be changed by right-clicking it in the animation " +"editor and selecting \"Rename Marker\", in order to make sure that marker " +"names are all unique." +msgstr "" +"모든 마커 이름들을 서로 다르게 하기 위해, 마커 이름은 애니메이션 편집기에서 오" +"른쪽 클릭 후 \"마커 이름 변경\" 으로만 변경할 수 있다." + +msgid "Insert Marker..." +msgstr "마커 삽입..." + +msgid "Rename Marker" +msgstr "마커 이름 변경" + +msgid "Delete Marker(s)" +msgstr "마커 삭제" + +msgid "Show All Marker Names" +msgstr "모든 마커 이름 보이기" + +msgid "Marker:" +msgstr "마커:" + +msgid "Animation Move Markers" +msgstr "애니메이션 이동 마커" + +msgid "Animation Delete Markers" +msgstr "애니메이션 삭제 마커" + +msgid "Marker '%s' already exists!" +msgstr "'%s' 마커가 이미 있습니다!" + +msgid "Add Marker Key" +msgstr "마커 키 추가" + +msgid "Empty marker names are not allowed." +msgstr "빈 마커 이름은 허용되지 않습니다." + +msgid "Insert Marker" +msgstr "마커 삽입" + +msgid "Marker Name" +msgstr "마커 이름" + +msgid "Marker Color" +msgstr "마커 색상" + msgid "Close" msgstr "닫기" msgid "Error!" msgstr "오류!" +msgid "Change Marker Name:" +msgstr "마커 이름 변경:" + +msgid "Edit Marker Color" +msgstr "마커 색상 변경" + +msgid "Multi Edit Marker Color" +msgstr "여러 마커 색상 변경" + +msgid "Animation Change Marker Time" +msgstr "애니메이션 변경 마커 시간" + msgid "Add Audio Track Clip" msgstr "오디오 트랙 클립 추가" @@ -1333,6 +1437,12 @@ msgid "%d of %d match" msgid_plural "%d of %d matches" msgstr[0] "%d 중 %d 일치" +msgid "Hide Replace" +msgstr "바꾸기 숨기기" + +msgid "Show Replace" +msgstr "변화를 표시" + msgid "Find" msgstr "찾기" @@ -1389,6 +1499,13 @@ msgstr "경고" msgid "Zoom factor" msgstr "줌 배율" +msgid "" +"%sMouse wheel, %s/%s: Finetune\n" +"%s: Reset" +msgstr "" +"%s마우스 휠,%s/%s: 세부 조정\n" +"%s: 초기화" + msgid "Line and column numbers." msgstr "행 및 열 번호." @@ -1549,6 +1666,12 @@ msgstr "새 %s 만들기" msgid "No results for \"%s\"." msgstr "\"%s\"에 대한 결과가 없습니다." +msgid "Script path: %s" +msgstr "스크립트 경로: %s" + +msgid "The script will run in the editor." +msgstr "이 스크립트는 에디터에서 실행됩니다." + msgid "This class is marked as deprecated." msgstr "이 클래스는 더 이상 사용되지 않는 것으로 표시되어 있습니다." @@ -1579,6 +1702,9 @@ msgstr "설명:" msgid "Remote %s:" msgstr "원격 %s:" +msgid "Session %d" +msgstr "세션 %d" + msgid "Debugger" msgstr "디버거" @@ -1609,6 +1735,15 @@ msgstr "" msgid "Toggle Visibility" msgstr "가시성 토글" +msgid "Expression to evaluate" +msgstr "평가할 수식" + +msgid "Clear on Run" +msgstr "실행시 지우기" + +msgid "Evaluate" +msgstr "평가" + msgid "Clear" msgstr "지우기" @@ -1654,6 +1789,9 @@ msgstr "정지" msgid "Start" msgstr "시작" +msgid "Autostart" +msgstr "자동 시작" + msgid "Measure:" msgstr "측정:" @@ -1810,6 +1948,9 @@ msgstr "모두 펼치기" msgid "Collapse All" msgstr "모두 접기" +msgid "Evaluator" +msgstr "식의 평가" + msgid "Profiler" msgstr "프로파일러" @@ -1934,6 +2075,9 @@ msgstr "" msgid "Cannot remove:" msgstr "제거할 수 없음:" +msgid "Dependencies of files to be deleted:" +msgstr "삭제될 파일의 의존성:" + msgid "Error loading:" msgstr "불러오기 오류:" @@ -1970,6 +2114,9 @@ msgstr "명확한 소유 관계가 없는 리소스:" msgid "Name cannot be empty." msgstr "이름은 비워둘 수 없습니다." +msgid "File name cannot be empty." +msgstr "파일 이름은 비어있을 수 없습니다." + msgid "Folder name cannot be empty." msgstr "폴더 이름은 비워둘 수 없습니다." @@ -2606,6 +2753,9 @@ msgstr "" msgid "Provides an overview of the editor's and each scene's undo history." msgstr "편집기 및 각 씬의 실행 취소 기록에 대한 개요를 제공합니다." +msgid "Provides tools for selecting and debugging nodes at runtime." +msgstr "런타임 시 노드를 선택하고 디버깅하는 데 필요한 도구를 제공합니다." + msgid "(current)" msgstr "(현재)" @@ -2693,6 +2843,9 @@ msgstr "프로필 가져오기" msgid "Manage Editor Feature Profiles" msgstr "에디터 기능 프로필 관리" +msgid "Initializing plugins..." +msgstr "플러그인을 초기화중..." + msgid "Some extensions need the editor to restart to take effect." msgstr "변경사항을 반영하려면 에디터를 다시 시작해야 합니다." @@ -2715,9 +2868,15 @@ msgstr "" msgid "(Re)Importing Assets" msgstr "애셋 (다시) 가져오는 중" +msgid "Executing pre-reimport operations..." +msgstr "다시 가져오기 전 작업을 실행 중..." + msgid "Import resources of type: %s" msgstr "가져올 리소스의 타입: %s" +msgid "Finalizing Asset Import..." +msgstr "에셋 불러오기 마무리 중..." + msgid "This method supports a variable number of arguments." msgstr "이 메서드는 다양한 인수를 지원합니다." @@ -12959,6 +13118,22 @@ msgstr "온라인 기능 활성화 및 에셋 라이브러리 열기" msgid "Are you sure to run %d projects at once?" msgstr "%d개의 프로젝트를 동시에 실행할까요?" +msgid "" +"Can't run project: Project has no main scene defined.\n" +"Please edit the project and set the main scene in the Project Settings under " +"the \"Application\" category." +msgstr "" +"프로젝트를 실행할 수 없음: 메인 씬을 정의하지 않았습니다.\n" +"프로젝트를 편집하여 프로젝트 설정의 \"애플리케이션\" 카테고리에서 메인 씬을 지" +"정해주세요." + +msgid "" +"Can't run project: Assets need to be imported first.\n" +"Please edit the project to trigger the initial import." +msgstr "" +"프로젝트를 실행할 수 없음: 애셋을 먼저 가져와야 합니다.\n" +"최초 가져오기가 수행되도록 프로젝트를 편집하세요." + msgid "" "Can't open project at '%s'.\n" "Project file doesn't exist or is inaccessible." @@ -13451,6 +13626,13 @@ msgstr "네트워크 모드" msgid "Directory Naming Convention" msgstr "디렉토리 명명 규정" +msgid "" +"Settings changed! The project manager must be restarted for changes to take " +"effect." +msgstr "" +"설정이 변경되었습니다! 변경 사항들을 적용하려면 프로젝트 매니저를 재시작해야 " +"합니다." + msgid "Add Project Setting" msgstr "프로젝트 설정 추가" @@ -14251,6 +14433,9 @@ msgstr "" "이 프로젝트는 오래된 형식의 메시를 사용합니다. 출력 패널에서 로그를 확인하세" "요." +msgid "Upgrading All Meshes in Project" +msgstr "프로젝트의 모든 매쉬 업그레이드하기" + msgid "Attempting to re-save " msgstr "다시 저장을 시도하고 있습니다. " @@ -14807,6 +14992,13 @@ msgstr "플러그인을 사용하려면 \"Gradle 빌드 사용\"이 활성화되 msgid "OpenXR requires \"Use Gradle Build\" to be enabled" msgstr "OpenXR을 사용하려면 \"Gradle 빌드 사용\"이 활성화되어야 합니다" +msgid "" +"\"Compress Native Libraries\" is only valid when \"Use Gradle Build\" is " +"enabled." +msgstr "" +"\"네이티브 라이브러리 압축하기\"는 \"Gradle 빌드 사용\"이 활성화된 경우에만 유" +"효합니다." + msgid "\"Export AAB\" is only valid when \"Use Gradle Build\" is enabled." msgstr "\"AAB 내보내기\"는 \"Gradle 빌드 사용\"가 활성화된 경우에만 유효합니다." @@ -14895,12 +15087,21 @@ msgstr "" msgid "Release keystore incorrectly configured in the export preset." msgstr "내보내기 프리셋에 출시 keystorke가 잘못 구성되어 있습니다." +msgid "A valid Java SDK path is required in Editor Settings." +msgstr "에디터 설정에서 올바른 Jara SDK 경로가 필요합니다." + +msgid "Invalid Java SDK path in Editor Settings." +msgstr "에디터 설정에서 잘못된 Jav SDK 경로입니다." + msgid "Missing 'bin' directory!" msgstr "'bin' 디렉토리가 누락되어 있습니다!" msgid "Unable to find 'java' command using the Java SDK path." msgstr "Java SDK 경로에서 'java' 명령어를 찾을 수 없습니다." +msgid "Please check the Java SDK directory specified in Editor Settings." +msgstr "에디터 설정에서 지정된 Java SDK 디렉토리를 확인해주세요." + msgid "A valid Android SDK path is required in Editor Settings." msgstr "에디터 설정에서 올바른 Android SDK 경로가 필요합니다." @@ -14939,6 +15140,14 @@ msgstr "" msgid "\"Min SDK\" should be greater or equal to %d for the \"%s\" renderer." msgstr "\"%s\" 렌더러에서 \"최소 SDK\"는 %d보다 크거나 같아야 합니다." +msgid "" +"The project name does not meet the requirement for the package name format " +"and will be updated to \"%s\". Please explicitly specify the package name if " +"needed." +msgstr "" +"프로젝트 이름이 패키지 이름 형식의 요구사항에 맞지 않아 \"%s\"로 업데이트됩니" +"다. 필요하다면 패키지 이름을 명시적으로 지정해 주세요." + msgid "Could not find keystore, unable to export." msgstr "keystore를 찾을 수 없어, 내보낼 수 없었습니다." @@ -14955,6 +15164,9 @@ msgstr "" "출력:\n" "%s" +msgid "Target folder does not exist or is inaccessible: \"%s\"" +msgstr "대상 폴더가 존재하지 않거나 접근할 수 없습니다: \"%s\"" + msgid "Exporting for Android" msgstr "Android로 내보내기" @@ -15057,6 +15269,12 @@ msgstr "최소한 하나의 시스템 부팅 시간 액세스 이유를 선택 msgid "Export Icons" msgstr "아이콘 내보내기" +msgid "Could not open a directory at path \"%s\"." +msgstr "디렉토리를 열 수 없음: \"%s\"." + +msgid "Could not write to a file at path \"%s\"." +msgstr "파일에 쓸 수 없음: \"%s\"." + msgid "Exporting for iOS" msgstr "IOS로 내보내기" @@ -15083,6 +15301,9 @@ msgstr "" msgid "Failed to create the directory: \"%s\"" msgstr "디렉토리를 만들 수 없음: \"%s\"" +msgid "Could not create and open the directory: \"%s\"" +msgstr "디렉토리를 열거나 만들 수 없음: \"%s\"" + msgid "Failed to export iOS plugins with code %d. Please check the output log." msgstr "" "iOS 플러그인을 내보내는 데 실패했습니다. 코드 %d가 반환되었습니다. 출력 로그" @@ -15095,11 +15316,14 @@ msgstr "" "요청한 템플릿 라이브러리 '%s'를 찾을 수 없습니다. 템플릿 아카이브에서 누락되었" "을 수 있습니다." -msgid "ARM64 simulator library, generating from device library." -msgstr "ARM64 시뮬레이터 라이브러리, 디바이스 라이브러리에서 생성 중입니다." +msgid "Could not copy a file at path \"%s\" to \"%s\"." +msgstr "\"%s\"에서 \"%s\"로 파일을 복사할 수 없습니다." -msgid "Unable to generate ARM64 simulator library." -msgstr "ARM64 시뮬레이터 라이브러리를 생성할 수 없습니다." +msgid "Could not access the filesystem." +msgstr "파일 시스템에 접근할 수 없습니다." + +msgid "Failed to create a file at path \"%s\" with code %d." +msgstr "파일을 생성할 수 없습니다(코드 %d, 경로:\"%s\")." msgid "Code signing failed, see editor log for details." msgstr "코드 서명에 실패했습니다. 자세한 사항은 에디터 로그를 참조하세요." @@ -16734,9 +16958,6 @@ msgstr "'%s' 유형의 개체를 인덱싱할 수 없습니다." msgid "Invalid base type for increment/decrement operator." msgstr "증분/감소 연산자에 대한 기본 유형이 잘못되었습니다." -msgid "Invalid use of increment/decrement operator in a constant expression." -msgstr "상수 표현식에 증분/감소 연산자를 사용할 수 없습니다." - msgid "Invalid token for the operator: '%s'." msgstr "연산자에 잘못된 토큰이 있습니다: '%s'." diff --git a/engine/editor/translations/editor/nl.po b/engine/editor/translations/editor/nl.po index 0c461868..5171c3b4 100644 --- a/engine/editor/translations/editor/nl.po +++ b/engine/editor/translations/editor/nl.po @@ -78,7 +78,7 @@ # Philip Goto <philip.goto@gmail.com>, 2024. # Tycho <tychoschurink@outlook.com>, 2024. # Leroy <Leroyvanraaij@gmail.com>, 2024. -# pim wagemans <pimwagemans09@gmail.com>, 2024. +# pim wagemans <pimwagemans09@gmail.com>, 2024, 2025. # Yannick Kartodikromo <yannickkartodikromo0001@gmail.com>, 2024. # NicolasDed <nicolas-dedoyard@outlook.com>, 2024. # "Julian F." <info@julianfitzpatrick.nl>, 2024. @@ -90,8 +90,8 @@ msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2025-02-03 04:50+0000\n" -"Last-Translator: tristanvong <tristan.vong@student.ehb.be>\n" +"PO-Revision-Date: 2025-02-26 08:20+0000\n" +"Last-Translator: pim wagemans <pimwagemans09@gmail.com>\n" "Language-Team: Dutch <https://hosted.weblate.org/projects/godot-engine/godot/" "nl/>\n" "Language: nl\n" @@ -99,7 +99,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 5.10-dev\n" +"X-Generator: Weblate 5.10.2-dev\n" msgid "Main Thread" msgstr "Hoofd Thread" @@ -458,6 +458,9 @@ msgstr "Verborgen tonen" msgid "Swap Input Direction" msgstr "Invoerrichting wisselen" +msgid "Start Unicode Character Input" +msgstr "Start invoegen van Unicode karakters" + msgid "Invalid input %d (not passed) in expression" msgstr "Ongeldige invoer %d (niet doorgegeven) in uitdrukking" @@ -700,6 +703,15 @@ msgstr "Animatielengte wijzigen" msgid "Change Animation Loop" msgstr "Animatielus wijzigen" +msgid "Can't change loop mode on animation instanced from an imported resource." +msgstr "" +"Kan lusmodus niet wijzigen voor animatie die geïnstantieerd is vanuit een " +"geïmporteerde bron." + +msgid "Can't change loop mode on animation embedded in another resource." +msgstr "" +"Kan lusmodus niet wijzigen voor animatie die ingebed is in een andere bron." + msgid "Property Track..." msgstr "Eigenschap Track..." @@ -1315,12 +1327,63 @@ msgstr "Alles/niets selecteren" msgid "Animation Change Keyframe Time" msgstr "Animatie sleutelframe-tijd wijzigen" +msgid "Marker name is read-only in the inspector." +msgstr "Naam van de markering kan niet bewerkt worden in de inspecteur." + +msgid "" +"A marker's name can only be changed by right-clicking it in the animation " +"editor and selecting \"Rename Marker\", in order to make sure that marker " +"names are all unique." +msgstr "" +"De naam van een markering kan aleen aangepast worden door er op te " +"rechtsklikken in de animatie editor en \"Markering hernoemen\" te selecteren " +"om ervoor te zorgen dat alle markering namen allemaal uniek zijn." + +msgid "Insert Marker..." +msgstr "Voeg markering in..." + +msgid "Rename Marker" +msgstr "Hernoem markering" + +msgid "Delete Marker(s)" +msgstr "Markeringen(s) verwijderen" + +msgid "Show All Marker Names" +msgstr "Laat alle markering namen zien" + +msgid "Marker:" +msgstr "Markering:" + +msgid "Marker '%s' already exists!" +msgstr "Markering '%s' bestaat al!" + +msgid "Add Marker Key" +msgstr "Markeringssleutel toevoegen" + +msgid "Empty marker names are not allowed." +msgstr "Lege markerings namen zijn niet toegestaan." + +msgid "Insert Marker" +msgstr "Markering invoegen" + +msgid "Marker Name" +msgstr "Naam van markering" + +msgid "Marker Color" +msgstr "Kleur van markering" + msgid "Close" msgstr "Sluiten" msgid "Error!" msgstr "Fout!" +msgid "Change Marker Name:" +msgstr "Markering hernoemen:" + +msgid "Edit Marker Color" +msgstr "Kleur van markering aanpassen" + msgid "Add Audio Track Clip" msgstr "Audiotrack-clip toevoegen" @@ -1600,6 +1663,9 @@ msgstr "Omschrijving:" msgid "Remote %s:" msgstr "Remote %s:" +msgid "Session %d" +msgstr "Sessie %d" + msgid "Debugger" msgstr "Foutopspoorder" @@ -1627,6 +1693,9 @@ msgstr "" msgid "Toggle Visibility" msgstr "Zichtbaarheid omschakelen" +msgid "Expression to evaluate" +msgstr "Expressie om te evalueren" + msgid "Clear" msgstr "Wissen" @@ -2736,6 +2805,9 @@ msgstr "Profiel(en) importeren" msgid "Manage Editor Feature Profiles" msgstr "Eigenschapsprofielen Editor beheren" +msgid "Initializing plugins..." +msgstr "Plugins initialiseren..." + msgid "Some extensions need the editor to restart to take effect." msgstr "" "Sommige extensies vereisen dat de editor opnieuw wordt opgestart om effect te " @@ -2760,6 +2832,9 @@ msgstr "" msgid "(Re)Importing Assets" msgstr "Bronnen (her)importeren" +msgid "Executing pre-reimport operations..." +msgstr "Pre-import operaties aan het uitvoeren..." + msgid "Import resources of type: %s" msgstr "Resources van type %s importeren" @@ -3120,6 +3195,11 @@ msgstr "Dit lid is gemarkeerd als verouderd." msgid "This member is marked as experimental." msgstr "Dit lid is gemarkeerd als experimenteel." +msgid "Make this property be placed at the top for all objects of this class." +msgstr "" +"Zorg ervoor dat deze eigenschap boven alle andere objecten in deze klasse " +"word geplaatst." + msgid "Pin Value" msgstr "Waarde vastzetten" @@ -4860,6 +4940,12 @@ msgstr "Folder dupliceren:" msgid "Create Folder" msgstr "Map maken" +msgid "" +"Do you wish to convert these files to %s? (This operation cannot be undone!)" +msgstr "" +"Will je deze bestanden omzetten naar %s? (Deze operatie kan niet ongedaan " +"worden gemaakt!)" + msgid "New Inherited Scene" msgstr "Nieuwe geërfde scène" @@ -5182,6 +5268,9 @@ msgstr "" "Het is daarbij vereist om een pad naar het filmbestand dat gebruikt zal " "worden voor het opnemen van de scène op te geven." +msgid "Recovery Mode is enabled. Disable it to run the project." +msgstr "Herstelmodus staat aan. Zet het uit om het project uit te voeren." + msgid "Network Profiler" msgstr "Netwerk Profiler" @@ -6195,6 +6284,9 @@ msgstr "Plak Houding" msgid "Clear Guides" msgstr "Wis hulplijnen" +msgid "Zoom to 1600%" +msgstr "Zoom naar 1600%" + msgid "Select Mode" msgstr "Selecteermodus" @@ -9408,6 +9500,9 @@ msgstr "Controleer de opgegeven Android SDK map in de Editor instellingen." msgid "Missing 'build-tools' directory!" msgstr "'build tools' map ontbreekt!" +msgid "Unable to find Android SDK build-tools' apksigner command." +msgstr "Kon Android sdk build-tools apksigner commando niet vinden." + msgid "Invalid filename! Android App Bundle requires the *.aab extension." msgstr "" "Bestandsnaam niet toegestaan! Android App Bundle vereist een *.aab extensie." diff --git a/engine/editor/translations/editor/pl.po b/engine/editor/translations/editor/pl.po index a40823b6..1102d309 100644 --- a/engine/editor/translations/editor/pl.po +++ b/engine/editor/translations/editor/pl.po @@ -24,7 +24,7 @@ # Sebastian Pasich <sebastian.pasich@gmail.com>, 2017, 2019, 2020, 2022, 2023. # siatek papieros <sbigneu@gmail.com>, 2016. # Zatherz <zatherz@linux.pl>, 2017, 2020, 2021. -# Tomek <kobewi4e@gmail.com>, 2018, 2019, 2020, 2021, 2022, 2023, 2024. +# Tomek <kobewi4e@gmail.com>, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025. # Wojcieh Er Zet <wojcieh.rzepecki@gmail.com>, 2018. # Dariusz Siek <dariuszynski@gmail.com>, 2018, 2019, 2020, 2021. # Szymon Nowakowski <smnbdg13@gmail.com>, 2019. @@ -95,7 +95,7 @@ msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2024-10-23 08:26+0000\n" +"PO-Revision-Date: 2025-02-21 19:26+0000\n" "Last-Translator: Tomek <kobewi4e@gmail.com>\n" "Language-Team: Polish <https://hosted.weblate.org/projects/godot-engine/godot/" "pl/>\n" @@ -105,7 +105,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" -"X-Generator: Weblate 5.8.2-dev\n" +"X-Generator: Weblate 5.10.1-dev\n" msgid "Main Thread" msgstr "Główny Wątek" @@ -463,6 +463,9 @@ msgstr "Pokaż ukryte" msgid "Swap Input Direction" msgstr "Zamień kierunek wejścia" +msgid "Start Unicode Character Input" +msgstr "Zacznij wpisywanie znaków Unicode" + msgid "Invalid input %d (not passed) in expression" msgstr "Niewłaściwe dane %d (nie przekazane) w wyrażeniu" @@ -705,6 +708,37 @@ msgstr "Zmień długość animacji" msgid "Change Animation Loop" msgstr "Zmień pętle animacji" +msgid "" +"Can't change loop mode on animation instanced from an imported scene.\n" +"\n" +"To change this animation's loop mode, navigate to the scene's Advanced Import " +"settings and select the animation.\n" +"You can then change the loop mode from the inspector menu." +msgstr "" +"Nie można zmienić trybu zapętlenia w animacji wczytanej z importowanej " +"sceny.\n" +"\n" +"By zmienić tryb zapętlenia animacji, przejdź do Zaawansowanych Ustawień " +"Importu sceny i wybierz animacj.e\n" +"Możesz zmienić tryb zapętlenia z menu w inspektorze." + +msgid "Can't change loop mode on animation instanced from an imported resource." +msgstr "" +"Nie można zmienić trybu zapętlania w animacji wczytanej z importowanej sceny." + +msgid "" +"Can't change loop mode on animation embedded in another scene.\n" +"\n" +"You must open this scene and change the animation's loop mode from there." +msgstr "" +"Nie można zmienić trybu zapętlania w animacji zagnieżdżonej w innej scenie.\n" +"\n" +"Musisz otworzyć tę scenę i zmienić tryb zapętlenia animacji stamtąd." + +msgid "Can't change loop mode on animation embedded in another resource." +msgstr "" +"Nie można zmienić trybu zapętlania w animacji zagnieżdżonej w innym zasobie." + msgid "Property Track..." msgstr "Ścieżka właściwości..." @@ -1032,7 +1066,7 @@ msgid "Animation Add RESET Keys" msgstr "Animacja dodaj klatki kluczowe RESET" msgid "Bake Animation as Linear Keys" -msgstr "Wypiecz animację jako liniowe klucze" +msgstr "Wypal animację jako liniowe klucze" msgid "" "This animation belongs to an imported scene, so changes to imported tracks " @@ -1099,6 +1133,15 @@ msgstr "Pokaż tylko ścieżki z węzłów zaznaczonych w drzewie." msgid "Group tracks by node or display them as plain list." msgstr "Grupuj ścieżki po węzłach lub wyświetl je jako prostą listę." +msgid "Apply snapping to timeline cursor." +msgstr "Zastosuj przyciąganie do kursora linii czasu." + +msgid "Apply snapping to selected key(s)." +msgstr "Zastosuj przyciąganie do wybranych kluczy." + +msgid "Apply snapping to the nearest integer FPS." +msgstr "Zastosuj przyciąganie do najbliższego całkowitego FPS." + msgid "Animation step value." msgstr "Wartość kroku animacji." @@ -1166,7 +1209,7 @@ msgid "Apply Reset" msgstr "Zastosuj reset" msgid "Bake Animation..." -msgstr "Wypiecz animację..." +msgstr "Wypal animację..." msgid "Optimize Animation (no undo)..." msgstr "Optymalizuj animację (nie można cofnąć)..." @@ -1299,7 +1342,7 @@ msgid "FPS:" msgstr "FPS:" msgid "Animation Baker" -msgstr "Wypiekacz animacji" +msgstr "Wypalacz animacji" msgid "3D Pos/Rot/Scl Track:" msgstr "Ścieżka Poz/Obr/Skl 3D:" @@ -1319,12 +1362,75 @@ msgstr "Wybierz wszystkie/żadne" msgid "Animation Change Keyframe Time" msgstr "Animacja zmień czas klatki kluczowej" +msgid "Marker name is read-only in the inspector." +msgstr "Nazwa znacznika w inspektorze jest tylko do odczytu." + +msgid "" +"A marker's name can only be changed by right-clicking it in the animation " +"editor and selecting \"Rename Marker\", in order to make sure that marker " +"names are all unique." +msgstr "" +"Nazwa znacznika może być zmieniona tylko przez prawy klik na niego w edytorze " +"animacji i wybór \"Zmień nazwę znacznika\", by zapewnić, że wszystkie nazwy " +"znaczników są unikalne." + +msgid "Insert Marker..." +msgstr "Wstaw znacznik..." + +msgid "Rename Marker" +msgstr "Zmień nazwę znacznika" + +msgid "Delete Marker(s)" +msgstr "Usuń znacznik(i)" + +msgid "Show All Marker Names" +msgstr "Pokaż wszystkie nazwy znaczników" + +msgid "Marker:" +msgstr "Znacznik:" + +msgid "Animation Move Markers" +msgstr "Animacja przesuń znaczniki" + +msgid "Animation Delete Markers" +msgstr "Animacja usuń znaczniki" + +msgid "Marker '%s' already exists!" +msgstr "Znacznik \"%s\" już istnieje!" + +msgid "Add Marker Key" +msgstr "Dodaj klucz znacznika" + +msgid "Empty marker names are not allowed." +msgstr "Puste nazwy znaczników są niedozwolone." + +msgid "Insert Marker" +msgstr "Wstaw znacznik" + +msgid "Marker Name" +msgstr "Nazwa znacznika" + +msgid "Marker Color" +msgstr "Kolor znacznika" + msgid "Close" msgstr "Zamknij" msgid "Error!" msgstr "Błąd!" +msgid "Change Marker Name:" +msgstr "Zmień nazwę znacznika:" + +msgid "Edit Marker Color" +msgstr "Edytuj kolor znacznika" + +msgid "Multi Edit Marker Color" +msgstr "Edytuj kolor wielu znaczników" + +msgid "Animation Change Marker Time" +msgstr "Animacja zmień czas znacznika" + msgid "Add Audio Track Clip" msgstr "Dodaj klip ścieżki audio" @@ -1358,6 +1464,12 @@ msgstr[0] "%d z %d dopasowania" msgstr[1] "%d z %d dopasowań" msgstr[2] "%d z %d dopasowań" +msgid "Hide Replace" +msgstr "Ukryj podmianę" + +msgid "Show Replace" +msgstr "Pokaż podmianę" + msgid "Find" msgstr "Znajdź" @@ -1414,6 +1526,13 @@ msgstr "Ostrzeżenia" msgid "Zoom factor" msgstr "Przybliżenie" +msgid "" +"%sMouse wheel, %s/%s: Finetune\n" +"%s: Reset" +msgstr "" +"%skółko myszki, %s/%s: Dostosuj\n" +"%s: Zresetuj" + msgid "Line and column numbers." msgstr "Numery linii i kolumn." @@ -1574,6 +1693,12 @@ msgstr "Utwórz nowy %s" msgid "No results for \"%s\"." msgstr "Brak wyników dla \"%s\"." +msgid "Script path: %s" +msgstr "Ścieżka skryptu: %s" + +msgid "The script will run in the editor." +msgstr "Ten skrypt będzie działał w edytorze." + msgid "This class is marked as deprecated." msgstr "Ta klasa jest oznaczona jako przestarzała." @@ -1604,6 +1729,9 @@ msgstr "Opis:" msgid "Remote %s:" msgstr "Zdalny %s:" +msgid "Session %d" +msgstr "Sesja %d" + msgid "Debugger" msgstr "Debugger" @@ -1634,6 +1762,15 @@ msgstr "" msgid "Toggle Visibility" msgstr "Przełącz widoczność" +msgid "Expression to evaluate" +msgstr "Wyrażenie do wyliczenia" + +msgid "Clear on Run" +msgstr "Wyczyść przy uruchomieniu" + +msgid "Evaluate" +msgstr "Wylicz" + msgid "Clear" msgstr "Wyczyść" @@ -1679,6 +1816,9 @@ msgstr "Stop" msgid "Start" msgstr "Start" +msgid "Autostart" +msgstr "Autostart" + msgid "Measure:" msgstr "Pomiar:" @@ -1835,6 +1975,9 @@ msgstr "Rozwiń wszystko" msgid "Collapse All" msgstr "Zwiń wszystko" +msgid "Evaluator" +msgstr "Ewaluator" + msgid "Profiler" msgstr "Profiler" @@ -1963,6 +2106,12 @@ msgstr "" msgid "Cannot remove:" msgstr "Nie można usunąć:" +msgid "Files to be deleted:" +msgstr "Pliki do usunięcia:" + +msgid "Dependencies of files to be deleted:" +msgstr "Zależności plików do usunięcia:" + msgid "Error loading:" msgstr "Błąd ładowania:" @@ -1999,15 +2148,27 @@ msgstr "Zasoby bez jawnych właścicieli:" msgid "Name cannot be empty." msgstr "Nazwa nie może być pusta." +msgid "File name can't end with /." +msgstr "Nazwa pliku nie może kończyć się na /." + +msgid "File name cannot be empty." +msgstr "Nazwa pliku nie może być pusta." + msgid "Folder name cannot be empty." msgstr "Nazwa folderu nie może być pusta." +msgid "File name contains invalid characters." +msgstr "Nazwa pliku zawiera niedozwolone znaki." + msgid "Folder name contains invalid characters." msgstr "Nazwa folderu zawiera niedozwolone znaki." msgid "File name begins with a dot." msgstr "Nazwa pliku zaczyna się od kropki." +msgid "Folder name begins with a dot." +msgstr "Nazwa folderu zaczyna się od kropki." + msgid "File with that name already exists." msgstr "Plik o tej nazwie już istnieje." @@ -2017,6 +2178,19 @@ msgstr "Folder o tej nazwie już istnieje." msgid "Using slashes in folder names will create subfolders recursively." msgstr "Użycie ukośników w nazwach folderów automatycznie utworzy podfoldery." +msgid "" +"Using slashes in path will create the file in subfolder, creating new " +"subfolders if necessary." +msgstr "" +"Użycie ukośników w ścieżce utworzy plik w podfolderze, automatycznie tworząc " +"podfoldery gdy potrzeba." + +msgid "File name is valid." +msgstr "Nazwa pliku jest prawidłowa." + +msgid "Base path: %s" +msgstr "Ścieżka bazowa: %s" + msgid "Folder name is valid." msgstr "Nazwa folderu jest prawidłowa." @@ -2297,6 +2471,9 @@ msgstr "Układ magistrali audio" msgid "Invalid name." msgstr "Nieprawidłowa nazwa." +msgid "Must be a valid Unicode identifier." +msgstr "Musi być prawidłowym identyfikatorem Unicode." + msgid "Must not collide with an existing engine class name." msgstr "Należy unikać kolizji z istniejącą nazwą klasy silnika." @@ -2564,6 +2741,12 @@ msgstr "[pusty]" msgid "[unsaved]" msgstr "[niezapisany]" +msgid "Open the %s dock." +msgstr "Otwórz dok %s." + +msgid "Focus on the %s dock." +msgstr "Przełącz na dok %s." + msgid "%s - Godot Engine" msgstr "%s - Silnik Godot" @@ -2615,6 +2798,9 @@ msgstr "Dok importowania" msgid "History Dock" msgstr "Dok historii" +msgid "Game View" +msgstr "Widok gry" + msgid "Allows to view and edit 3D scenes." msgstr "Pozwala wyświetlać i edytować sceny 3D." @@ -2645,6 +2831,9 @@ msgstr "" msgid "Provides an overview of the editor's and each scene's undo history." msgstr "Zapewnia przegląd historii cofania edytora i każdej ze scen." +msgid "Provides tools for selecting and debugging nodes at runtime." +msgstr "Zapewnia narzędzia do wybierania i debugowania węzłów podczas gry." + msgid "(current)" msgstr "(bieżący)" @@ -2731,6 +2920,30 @@ msgstr "Importuj profil(e)" msgid "Manage Editor Feature Profiles" msgstr "Zarządzaj profilami funkcjonalności edytora" +msgid "Project initialization" +msgstr "Inicjalizacja projektu" + +msgid "Scanning file structure..." +msgstr "Skanowanie struktury plików..." + +msgid "Loading global class names..." +msgstr "Wczytywanie globalnych nazw klas..." + +msgid "Verifying GDExtensions..." +msgstr "Weryfikowanie GDExtension..." + +msgid "Creating autoload scripts..." +msgstr "Tworzenie skryptów autoładowania..." + +msgid "Initializing plugins..." +msgstr "Inicjalizacja wtyczek..." + +msgid "Starting file scan..." +msgstr "Uruchamianie skanu systemu plików..." + +msgid "Scanning actions..." +msgstr "Akcje skanowania..." + msgid "Some extensions need the editor to restart to take effect." msgstr "Niektóre rozszerzenia wymagają restartu edytora, by zaczęły działać." @@ -2743,6 +2956,15 @@ msgstr "Zapisz i zrestartuj" msgid "ScanSources" msgstr "Przeszukaj źródła" +msgid "Registering global classes..." +msgstr "Rejestrowanie globalnych klas..." + +msgid "Updating scripts documentation" +msgstr "Aktualizacja dokumentacji skryptów" + +msgid "Updating Scene Groups" +msgstr "Aktualizacja grup scen" + msgid "" "There are multiple importers for different types pointing to file %s, import " "aborted" @@ -2751,9 +2973,24 @@ msgstr "Istnieje wiele importerów różnych typów dla pliku %s, import przerwa msgid "(Re)Importing Assets" msgstr "(Ponowne) importowanie zasobów" +msgid "Preparing files to reimport..." +msgstr "Przygotowywanie plików do ponownego importu..." + +msgid "Executing pre-reimport operations..." +msgstr "Wykonywanie operacji przed importem..." + msgid "Import resources of type: %s" msgstr "Zaimportuj zasoby typu: %s" +msgid "Finalizing Asset Import..." +msgstr "Finalizowanie importu zasobów..." + +msgid "Executing post-reimport operations..." +msgstr "Wykonywanie operacji po imporcie..." + +msgid "Copying files..." +msgstr "Kopiowanie plików..." + msgid "This method supports a variable number of arguments." msgstr "Ta metoda wspiera zmienną liczbę argumentów." @@ -2778,6 +3015,9 @@ msgstr "" "Ta metoda nie wymaga instancji, by zostać wywołana.\n" "Może być wywołana bezpośrednio na nazwie klasy." +msgid "Code snippet copied to clipboard." +msgstr "Fragment kodu skopiowany do schowka." + msgid "No return value." msgstr "Brak zwracanego typu." @@ -2929,6 +3169,10 @@ msgstr "Ikony" msgid "Styles" msgstr "Style" +msgid "This theme property may be changed or removed in future versions." +msgstr "" +"Ta właściwość motywu może zostać zmieniona lub usunięta w przyszłych wersjach." + msgid "There is currently no description for this theme property." msgstr "Obecnie nie ma opisu tej właściwości motywu." @@ -3007,9 +3251,15 @@ msgstr "Edytor" msgid "Click to copy." msgstr "Kliknij, aby skopiować." +msgid "Click to open in browser." +msgstr "Kliknij, aby otworzyć w przeglądarce." + msgid "No description available." msgstr "Brak dostępnego opisu." +msgid "This annotation may be changed or removed in future versions." +msgstr "Ta adnotacja może zostać zmieniona lub usunięta w przyszłych wersjach." + msgid "Show in FileSystem" msgstr "Pokaż w systemie plików" @@ -3019,12 +3269,24 @@ msgstr "Otwórz w menedżerze plików" msgid "Class" msgstr "Klasa" +msgid "Enumeration" +msgstr "Wyliczenie" + msgid "Constant" msgstr "Stała" +msgid "Metadata" +msgstr "Metadane" + +msgid "Setting" +msgstr "Ustawienie" + msgid "Property" msgstr "Właściwość" +msgid "Internal Property" +msgstr "Właściwość wewnętrzna" + msgid "This property can only be set in the Inspector." msgstr "Tę właściwość można ustawić tylko w Inspektorze." @@ -3040,9 +3302,36 @@ msgstr "Sygnał" msgid "Annotation" msgstr "Adnotacja" +msgid "Local Constant" +msgstr "Lokalna stała" + +msgid "Local Variable" +msgstr "Lokalna zmienna" + +msgid "This variable may be changed or removed in future versions." +msgstr "Ta zmienna może zostać zmieniona lub usunięta w przyszłych wersjach." + +msgid "TextFile" +msgstr "Plik tekstowy" + msgid "File" msgstr "Plik" +msgid "Directory" +msgstr "Katalog" + +msgid "Invalid UID" +msgstr "Niepoprawny UID" + +msgid "This UID does not point to any valid Resource." +msgstr "Ten UID nie wskazuje na żaden poprawny zasób." + +msgid "Invalid path" +msgstr "Niepoprawna ścieżka" + +msgid "This path does not exist." +msgstr "Ta ścieżka nie istnieje." + msgid "%d match." msgstr "%d dopasowanie." @@ -3100,12 +3389,29 @@ msgstr "Typ członka" msgid "Keywords" msgstr "Słowa kluczowe" +msgid "Matches the \"%s\" keyword." +msgstr "Pasuje do słowa kluczowego \"%s\"." + msgid "This member is marked as deprecated." msgstr "Ten członek jest oznaczony jako przestarzały." msgid "This member is marked as experimental." msgstr "Ten członek jest oznaczony jako eksperymentalny." +msgid "Unfavorite Property" +msgstr "Nie lub właściwości" + +msgid "Make this property be put back at its original place." +msgstr "Spraw, że ta właściwość zostanie odłożona na jej pierwotne miejsce." + +msgid "Favorite Property" +msgstr "Polub właściwość" + +msgid "Make this property be placed at the top for all objects of this class." +msgstr "" +"Spraw, że ta właściwość zostanie położona na górze wszystkich obiektów tej " +"klasy." + msgid "Pin Value" msgstr "Przypnij wartość" @@ -3116,6 +3422,9 @@ msgid "Pinning a value forces it to be saved even if it's equal to the default." msgstr "" "Przypięcie wartości wymusza zapisanie jej, nawet jeśli jest równa domyślniej." +msgid "Unfavorite All" +msgstr "Nie lub wszystkich" + msgid "(%d change)" msgid_plural "(%d changes)" msgstr[0] "(%d zmiana)" @@ -3302,6 +3611,9 @@ msgstr "Inspektor źródła natywnego shadera" msgid "Unnamed Project" msgstr "Projekt bez nazwy" +msgid "Recovery Mode is enabled. Editor functionality has been restricted." +msgstr "Tryb awaryjny jest włączony. Funkcjonalność edytora jest ograniczona." + msgid "" "Spins when the editor window redraws.\n" "Update Continuously is enabled, which can increase power usage. Click to " @@ -3514,6 +3826,9 @@ msgstr "" msgid "Save Scene As..." msgstr "Zapisz scenę jako..." +msgid "Pack Project as ZIP..." +msgstr "Spakuj projekt jako ZIP..." + msgid "Can't undo while mouse buttons are pressed." msgstr "Nie można cofnąć akcji kiedy przyciski myszy są wciśnięte." @@ -3595,6 +3910,9 @@ msgstr "Ta operacja nie może zostać wykonana bez sceny." msgid "Export Mesh Library" msgstr "Eksportuj bibliotekę Meshów" +msgid "Quick Open Color Palette..." +msgstr "Szybkie otwarcie palety kolorów..." + msgid "Unable to enable addon plugin at: '%s' parsing of config failed." msgstr "" "Nie można włączyć dodatku: \"%s\" - parsowanie konfiguracji nie powiodło się." @@ -3677,6 +3995,51 @@ msgstr "Wyczyść listę ostatnio otwieranych scen" msgid "There is no defined scene to run." msgstr "Nie ma zdefiniowanej sceny do uruchomienia." +msgid "Loading editor" +msgstr "Wczytywanie edytora" + +msgid "Loading editor layout..." +msgstr "Wczytywanie układu edytora..." + +msgid "Loading docks..." +msgstr "Wczytywanie doków..." + +msgid "Reopening scenes..." +msgstr "Przywracanie scen..." + +msgid "Loading central editor layout..." +msgstr "Wczytywanie centralnego układu edytora..." + +msgid "Loading plugin window layout..." +msgstr "Wczytywanie układu okien wtyczek..." + +msgid "Editor layout ready." +msgstr "Układ edytora gotowy." + +msgid "" +"No main scene has ever been defined. Select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Nie zdefiniowano nigdy głównej sceny. Wybrać jakąś?\n" +"Można to później zmienić w \"Ustawienia projektu\" w kategorii \"aplikacja\"." + +msgid "" +"Selected scene '%s' does not exist. Select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Wybrana scena \"%s\" nie istnieje. Wybrać poprawną? \n" +"Można to później zmienić w \"Ustawienia projektu\" w kategorii \"aplikacja\"." + +msgid "" +"Selected scene '%s' is not a scene file. Select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Wybrany plik \"%s\" nie jest sceną. Wybrać poprawny?\n" +"Można to później zmienić w \"Ustawienia projektu\" w kategorii \"aplikacja\"." + msgid "Save Layout..." msgstr "Zapisz układ..." @@ -3906,6 +4269,9 @@ msgstr "Edytor konfiguracji kompilacji silnika..." msgid "Upgrade Mesh Surfaces..." msgstr "Aktualizuj powierzchnie siatek..." +msgid "Upgrade UIDs..." +msgstr "Aktualizuj UID..." + msgid "Reload Current Project" msgstr "Wczytaj ponownie aktualny projekt" @@ -4061,6 +4427,21 @@ msgstr "Wyeksportuj bibliotekę" msgid "Open & Run a Script" msgstr "Otwórz i Uruchom Skrypt" +msgid "Files have been modified outside Godot" +msgstr "Pliki zostały zmodyfikowane poza Godotem" + +msgid "The following files are newer on disk:" +msgstr "Następujące pliki są nowsze na dysku:" + +msgid "What action should be taken?" +msgstr "Jakie działanie powinno zostać podjęte?" + +msgid "Reload from disk" +msgstr "Wczytaj ponownie z dysku" + +msgid "Ignore external changes" +msgstr "Ignoruj zewnętrzne zmiany" + msgid "Create/Override Version Control Metadata..." msgstr "Utwórz/nadpisz metadane kontroli wersji..." @@ -4085,6 +4466,9 @@ msgstr "Otwórz edytor 3D" msgid "Open Script Editor" msgstr "Otwórz edytor skryptów" +msgid "Open Game View" +msgstr "Otwórz widok gry" + msgid "Open Asset Library" msgstr "Otwórz Bibliotekę Zasobów" @@ -4177,7 +4561,7 @@ msgid "" msgstr "" "Nie można utworzyć ViewportTexture w węźle Texture2D, ponieważ tekstura nie " "zostanie powiązana ze sceną.\n" -" Zamiast tego użyj węzła Texture2DParametr i ustaw teksturę w zakładce " +"Zamiast tego użyj węzła Texture2DParametr i ustaw teksturę w zakładce " "„Parametry modułu cieniującego”." msgid "" @@ -4213,6 +4597,12 @@ msgstr "Nowa wartość:" msgid "(Nil) %s" msgstr "(Nic) %s" +msgid "%s%s (size %d)" +msgstr "%s%s (rozmiar %d)" + +msgid "%s (size %d)" +msgstr "%s (rozmiar %d)" + msgid "Size:" msgstr "Rozmiar:" @@ -4281,6 +4671,12 @@ msgstr "Rozszerz skrypt..." msgid "New Shader..." msgstr "Nowy Shader..." +msgid "No Remote Deploy export presets configured." +msgstr "Brak skonfigurowanych profili zdalnego wdrażania." + +msgid "Remote Deploy" +msgstr "Zdalne wdrażanie" + msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the Export menu or define an existing preset " @@ -4290,6 +4686,28 @@ msgstr "" "Dodaj uruchamialny profil w menu eksportu lub zdefiniuj istniejący profil " "jako uruchamialny." +msgid "" +"Warning: The CPU architecture \"%s\" is not active in your export preset.\n" +"\n" +msgstr "" +"Uwaga: architektura CPU \"%s\" nie jest aktywna w twoim profilu eksportu.\n" +"\n" + +msgid "Run \"Remote Deploy\" anyway?" +msgstr "Uruchomić \"Zdalne wdrażanie\" tak czy inaczej?" + +msgid "Deploy to First Device in List" +msgstr "Wdróż na pierwsze urządzenie na liście" + +msgid "Deploy to Second Device in List" +msgstr "Wdróż na drugie urządzenie na liście" + +msgid "Deploy to Third Device in List" +msgstr "Wdróż na trzecie urządzenie na liście" + +msgid "Deploy to Fourth Device in List" +msgstr "Wdróż na czwarte urządzenie na liście" + msgid "Project Run" msgstr "Uruchom projekt" @@ -4299,6 +4717,9 @@ msgstr "Wpisz swoją logikę w metodzie _run()." msgid "The current scene already has a root node." msgstr "Aktualna scena ma już węzeł główny." +msgid "Advanced settings are always shown when searching." +msgstr "Zaawansowane ustawienia są zawsze widoczne podczas wyszukiwania." + msgid "Edit Built-in Action: %s" msgstr "Edytuj wbudowaną akcję: %s" @@ -4308,9 +4729,15 @@ msgstr "Edytuj skrót: %s" msgid "None" msgstr "Brak" +msgid "Primary" +msgstr "Główny" + msgid "Common" msgstr "Pospolite" +msgid "Event %d" +msgstr "Zdarzenie %d" + msgid "Editor Settings" msgstr "Ustawienia edytora" @@ -4512,6 +4939,12 @@ msgstr "Nieznany błąd" msgid "Export failed with error code %d." msgstr "Eksport nie powiódł się z powodu kodu błędu %d." +msgid "Patch Creation" +msgstr "Tworzenie łatki" + +msgid "Could not load patch pack with path \"%s\"." +msgstr "Nie udało się wczytać paczki łatki ze ścieżki \"%s\"." + msgid "Storing File: %s" msgstr "Przechowywanie pliku: %s" @@ -4521,6 +4954,29 @@ msgstr "Zapisywanie pliku:" msgid "No export template found at the expected path:" msgstr "Nie znaleziono szablonów eksportu w oczekiwanej ścieżce:" +msgid "" +"Using user provided text server data, text display in the exported project " +"might be broken if export template was built with different ICU version!" +msgstr "" +"Używanie danych serwera tekstu zapewnionych przez użytkownika, wyświetlanie " +"tekstu w eksportowanym projekcie może być zepsute, jeśli szablon eksportu " +"został zbudowany z inną wersją ICU!" + +msgid "" +"Using editor embedded text server data, text display in the exported project " +"might be broken if export template was built with different ICU version!" +msgstr "" +"Używanie danych serwera tekstu wbudowanych w edytor, wyświetlanie tekstu w " +"eksportowanym projekcie może być zepsute, jeśli szablon eksportu został " +"zbudowany z inną wersją ICU!" + +msgid "" +"Missing text server data, text display in the exported project might be " +"broken!" +msgstr "" +"Brakuje danych serwera tekstu, wyświetlanie tekstu w eksportowanym projekcie " +"może być zepsute!" + msgid "ZIP Creation" msgstr "Tworzenie ZIP" @@ -4539,6 +4995,9 @@ msgstr "Nie można utworzyć pliku \"%s\"." msgid "Failed to export project files." msgstr "Eksportowanie plików projektu nie powiodło się." +msgid "No files or changes to export." +msgstr "Brak plików lub zmian do eksportu." + msgid "Can't open file for writing at path \"%s\"." msgstr "Nie można otworzyć pliku do zapisu pod ścieżką \"%s\"." @@ -4557,6 +5016,9 @@ msgstr "Nie można otworzyć pliku do odczytu ze ścieżki \"%s\"." msgid "Save ZIP" msgstr "Zapisz ZIP" +msgid "Failed to move temporary file \"%s\" to \"%s\"." +msgstr "Nie udało się przenieść pliku tymczasowego \"%s\" do \"%s\"." + msgid "Custom debug template not found." msgstr "Nie znaleziono własnego szablonu debugowania." @@ -4588,6 +5050,12 @@ msgstr "Osadzanie PCK" msgid "On 32-bit exports the embedded PCK cannot be bigger than 4 GiB." msgstr "W eksportach 32-bitowych dołączony PCK nie może być większy niż 4 GiB." +msgid "GDExtension" +msgstr "GDExtension" + +msgid "Failed to copy shared object \"%s\"." +msgstr "Nie udało się przenieść dzielonego obiektu \"%s\"." + msgid "Plugin \"%s\" is not supported on \"%s\"" msgstr "Plugin \"%s\" nie jest obsługiwany na \"%s\"" @@ -4716,6 +5184,15 @@ msgstr "Brakuje szablonów eksportu. Pobierz je lub zainstaluj z pliku." msgid "Export templates are missing. Install them from a file." msgstr "Brakuje szablonów eksportu. Zainstaluj je z pliku." +msgid "Not available in offline mode" +msgstr "Nie dostępne w trybie offline" + +msgid "Template downloading is disabled in offline mode." +msgstr "Pobieranie szablonów jest wyłączone w trybie offline." + +msgid "No templates for development builds" +msgstr "Brak szablonów dla kompilacji rozwojowych" + msgid "Official export templates aren't available for development builds." msgstr "" "Oficjalne szablony eksportowe nie są dostępne dla kompilacji " @@ -4827,9 +5304,15 @@ msgstr "Zasoby do eksportu:" msgid "(Inherited)" msgstr "(dziedziczone)" +msgid "Delete patch '%s' from list?" +msgstr "Usunąć łatkę \"%s\" z listy?" + msgid "Export With Debug" msgstr "Eksport z debugowaniem" +msgid "Export As Patch" +msgstr "Eksportuj jako łatkę" + msgid "%s Export" msgstr "Eksport %s" @@ -4913,9 +5396,18 @@ msgstr "" "Filtry do wykluczenia plików/folderów z projektu\n" "(oddzielone przecinkami, np. *.json, *.txt, docs/*)" +msgid "Patches" +msgstr "Łatki" + +msgid "Base Packs:" +msgstr "Łatki bazowe:" + msgid "Godot Project Pack" msgstr "Paczka projektu Godota" +msgid "Add Pack" +msgstr "Dodaj łatkę" + msgid "Features" msgstr "Funkcje" @@ -4955,6 +5447,9 @@ msgstr "" msgid "Encryption Key (256-bits as hexadecimal):" msgstr "Klucz szyfrujący (256 bitów szesnastkowo):" +msgid "Initialization vector seed" +msgstr "Ziarno wektora inicjalizacji" + msgid "" "Note: Encryption key needs to be stored in the binary,\n" "you need to build the export templates from source." @@ -5074,6 +5569,9 @@ msgstr "Przeglądaj" msgid "Confirm Path" msgstr "Potwierdź ścieżkę" +msgid "Link to: %s" +msgstr "Dowiązanie do: %s" + msgid "View items as a grid of thumbnails." msgstr "Wyświetl elementy jako siatkę miniatur." @@ -5103,6 +5601,9 @@ msgstr "Błąd przenoszenia:" msgid "Error duplicating:" msgstr "Błąd duplikacji:" +msgid "Error duplicating directory:" +msgstr "Błąd duplikowania katalogu:" + msgid "Unable to update dependencies for:" msgstr "Nie można zaktualizować zależności dla:" @@ -5129,6 +5630,9 @@ msgstr "" msgid "A file or folder with this name already exists." msgstr "Plik lub katalog o tej nazwie już istnieje." +msgid "Could not create base directory: %s" +msgstr "Nie można utworzyć katalogu bazowego: \"%s\"" + msgid "" "The following files or folders conflict with items in the target location " "'%s':" @@ -5167,6 +5671,14 @@ msgstr "Duplikowanie Folderu:" msgid "Create Folder" msgstr "Utwórz katalog" +msgid "" +"Do you wish to convert these files to %s? (This operation cannot be undone!)" +msgstr "" +"Chcesz przekonwertować te pliki na %s? (Ta operacja nie może być cofnięta!)" + +msgid "Could not create folder: %s" +msgstr "Nie można utworzyć folderu: %s" + msgid "New Inherited Scene" msgstr "Nowa scena dziedzicząca" @@ -5227,12 +5739,18 @@ msgstr "Dodaj do ulubionych" msgid "Remove from Favorites" msgstr "Usuń z ulubionych" +msgid "Convert to..." +msgstr "Konwertuj na..." + msgid "Reimport" msgstr "Importuj ponownie" msgid "Open in Terminal" msgstr "Otwórz w terminalu" +msgid "Open Folder in Terminal" +msgstr "Otwórz folder w terminalu" + msgid "New Folder..." msgstr "Utwórz katalog..." @@ -5342,6 +5860,9 @@ msgstr "Zachowaj oba" msgid "Create Script" msgstr "Utwórz Skrypt" +msgid "Convert" +msgstr "Konwertuj" + msgid "Find in Files" msgstr "Znajdź w plikach" @@ -5379,6 +5900,9 @@ msgstr "Zastąp wszystkie (nie można cofnąć)" msgid "Searching..." msgstr "Wyszukiwanie..." +msgid "Remove result" +msgstr "Usuń wynik" + msgid "%d match in %d file" msgstr "%d dopasowanie w %d pliku" @@ -5469,6 +5993,27 @@ msgstr "Dodaj nową grupę." msgid "Filter Groups" msgstr "Filtruj grupy" +msgid "" +"Scroll Left\n" +"Hold Ctrl to scroll to the begin.\n" +"Hold Shift to scroll one page." +msgstr "" +"Przewiń w lewo\n" +"Przytrzymaj Ctrl, by przewinąć na początek.\n" +"Przytrzymaj Shift, by przewinąć jedną stronę." + +msgid "" +"Scroll Right\n" +"Hold Ctrl to scroll to the end.\n" +"Hold Shift to scroll one page." +msgstr "" +"Przewiń w prawo\n" +"Przytrzymaj Ctrl, by przewinąć na koniec.\n" +"Przytrzymaj Shift, by przewinąć jedną stronę." + +msgid "Pin Bottom Panel Switching" +msgstr "Przypnij zmianę panelu dolnego" + msgid "Expand Bottom Panel" msgstr "Rozwiń panel dolny" @@ -5509,6 +6054,9 @@ msgstr "" msgid "Select This Folder" msgstr "Wybierz ten folder" +msgid "Show Package Contents" +msgstr "Pokaż zawartość paczki" + msgid "All Files" msgstr "Wszystkie pliki" @@ -5560,6 +6108,9 @@ msgstr "Przełącz tryb" msgid "Focus Path" msgstr "Przejdź do wprowadzania ścieżki" +msgid "Focus Filter" +msgstr "Przejdź do filtru" + msgid "Move Favorite Up" msgstr "Przesuń ulubiony w górę" @@ -5590,9 +6141,18 @@ msgstr "Katalogi i pliki:" msgid "Toggle the visibility of hidden files." msgstr "Przełącz widoczność ukrytych plików." +msgid "Sort files" +msgstr "Sortuj pliki" + +msgid "Toggle the visibility of the filter for file names." +msgstr "Przełącz widoczność filtra dla nazw plików." + msgid "Preview:" msgstr "Podgląd:" +msgid "Filter:" +msgstr "Filtr:" + msgid "Filter" msgstr "Filtr" @@ -5616,6 +6176,45 @@ msgstr "Nie znaleziono podzasobów." msgid "Open a list of sub-resources." msgstr "Otwórz listę pod-zasobów." +msgid "Search files..." +msgstr "Szukaj plików..." + +msgid "Select Resource" +msgstr "Wybierz zasób" + +msgid "Select Scene" +msgstr "Wybierz scenę" + +msgid "Fuzzy Search" +msgstr "Szukanie rozmyte" + +msgid "Enable fuzzy matching" +msgstr "Włącz dopasowanie rozmyte" + +msgid "Addons" +msgstr "Dodatki" + +msgid "Include files from addons" +msgstr "Uwzględnij pliki z dodatków" + +msgid "No files found for this type" +msgstr "Nie znaleziono plików dla tego typu" + +msgid "Start searching to find files..." +msgstr "Zacznij szukać, by znaleźć pliki..." + +msgid "No results found" +msgstr "Nie znaleziono wyników" + +msgid " (recently opened)" +msgstr " (ostatnio otwarte)" + +msgid "Grid view" +msgstr "Widok siatki" + +msgid "List view" +msgstr "Widok listy" + msgid "Play the project." msgstr "Uruchom projekt." @@ -5647,9 +6246,73 @@ msgstr "" msgid "Could not start subprocess(es)!" msgstr "Nie udało się uruchomić podprocesu/ów!" +msgid "Recovery Mode is enabled. Disable it to run the project." +msgstr "Tryb awaryjny jest włączony. Wyłącz go, by uruchomić projekt." + +msgid "" +"Autostart is enabled for the following profilers, which can have a " +"performance impact:" +msgstr "" +"Autostart jest włączony dla następujących profilerów, co może mieć wpływ na " +"wydajność:" + msgid "Network Profiler" msgstr "Profiler sieci" +msgid "Click to open the first profiler for which autostart is enabled." +msgstr "" +"Kliknij, by otworzyć pierwszy profiler, dla którego jest włączony autostart." + +msgid "Recovery Mode" +msgstr "Tryb awaryjny" + +msgid "" +"Godot opened the project in Recovery Mode, which is a special mode that can " +"help recover projects that crash the engine upon initialization. The " +"following features have been temporarily disabled:" +msgstr "" +"Godot otworzył projekt w Trybie Awaryjnym, który jest specjalnym trybem " +"mogącym pomóc w odzyskaniu projektów, które crashują silnik podczas " +"inicjalizacji. Następujące funkcjonalności zostały tymczasowo wyłączone:" + +msgid "Tool scripts" +msgstr "Skrypty narzędziowe" + +msgid "Editor plugins" +msgstr "Wtyczki edytora" + +msgid "GDExtension addons" +msgstr "Dodatki GDExtension" + +msgid "Automatic scene restoring" +msgstr "Automatyczne przywracanie scen" + +msgid "" +"If the project cannot be opened outside of this mode, then it's very likely " +"any of these components is preventing this project from launching. This mode " +"is intended only for basic editing to troubleshoot such issues, and therefore " +"it is not possible to run a project in this mode." +msgstr "" +"Jeśli projekt nie może zostać otwarty poza tym trybem, bardzo prawdopodobne, " +"że którykolwiek z tych komponentów uniemożliwia uruchomienie projektu. Ten " +"tryb jest przeznaczony tylko do podstawowego edytowania, by zdiagnozować " +"takie problemy, w związku z czym nie jest możliwe uruchomienie projektu w tym " +"trybie." + +msgid "" +"To disable Recovery Mode, reload the project by pressing the Reload button " +"next to the Recovery Mode banner, or by reopening the project normally." +msgstr "" +"By wyłączyć Tryb Awaryjny, wczytaj ponownie projekt używając przycisku " +"ponownego wczytania obok banera Trybu Awaryjnego lub normalnie otwierając " +"projekt jeszcze raz." + +msgid "Disable recovery mode and reload the project." +msgstr "Wyłącz tryb awaryjny i wczytaj ponownie projekt." + +msgid "Recovery Mode is enabled. Click for more details." +msgstr "Tryb awaryjny jest włączony. Kliknij po więcej informacji." + msgid "Run the project's default scene." msgstr "Uruchom domyślną scenę projektu." @@ -5668,12 +6331,24 @@ msgstr "Zatrzymaj obecnie uruchomiony projekt." msgid "Stop Running Project" msgstr "Zatrzymaj uruchomiony projekt" +msgid "Run Scene in Regular Mode" +msgstr "Uruchom scenę w trybie zwykłym" + +msgid "Run Scene in XR Mode" +msgstr "Uruchom scenę w trybie XR" + msgid "Run the currently edited scene." msgstr "Uruchom obecnie edytowaną scenę." msgid "Run Current Scene" msgstr "Uruchom obecną scenę" +msgid "Run in Regular Mode" +msgstr "Uruchom w trybie zwykłym" + +msgid "Run in XR Mode" +msgstr "Uruchom w trybie XR" + msgid "Run a specific scene." msgstr "Uruchom konkretną scenę." @@ -5739,6 +6414,15 @@ msgstr "" "Data zatwierdzenia git: %s\n" "Kliknij, aby skopiować informacje o wersji." +msgid "" +"The root node of a scene is recommended to not be transformed, since " +"instances of the scene will usually override this. Reset the transform and " +"reload the scene to remove this warning." +msgstr "" +"Zalecane jest, by korzeń sceny nie był przekształcony, ponieważ instancje " +"sceny zwykle to nadpiszą. Zresetuj przekształcenie i wczytaj ponownie scenę, " +"by usunąć to ostrzeżenie." + msgid "Toggle Visible" msgstr "Przełącz widoczność" @@ -5748,6 +6432,9 @@ msgstr "Odblokuj węzeł" msgid "Ungroup Children" msgstr "Rozgrupuj dzieci" +msgid "Revoke unique name for node \"%s\"?" +msgstr "Unieważnić unikalną nazwę dla węzła \"%s\"?" + msgid "Disable Scene Unique Name" msgstr "Wyłącz unikalną w scenie nazwę" @@ -5757,6 +6444,16 @@ msgstr "(łączony teraz)" msgid "Node configuration warning:" msgstr "Ostrzeżenie konfiguracji węzła:" +msgid "" +"This node can be accessed from anywhere within the scene it belongs to by " +"using the '%s' prefix in the node path." +msgstr "" +"Dostęp do tego węzła można uzyskać z dowolnego miejsca w scenie, do której " +"należy, poprzez użycie przedrostka \"%s\" w ścieżce węzła." + +msgid "Click to disable this." +msgstr "Kliknij, aby to wyłączyć." + msgid "Node has one connection." msgid_plural "Node has {num} connections." msgstr[0] "Węzeł ma jedno połączenie." @@ -5770,7 +6467,17 @@ msgstr[1] "Węzeł jest w następujących grupach:" msgstr[2] "Węzeł jest w następujących grupach:" msgid "Click to show signals dock." -msgstr "Kliknij, aby wyświetlić panel sygnałów." +msgstr "Kliknij, aby wyświetlić dok sygnałów." + +msgid "Click to show groups dock." +msgstr "Kliknij, aby wyświetlić dok grup." + +msgid "" +"This script can run in the editor.\n" +"It is currently disabled due to recovery mode." +msgstr "" +"Ten skrypt może działać w edytorze.\n" +"Jest aktualnie wyłączony z powodu trybu awaryjnego." msgid "This script is currently running in the editor." msgstr "Ten skrypt jest obecnie uruchomiony w edytorze." @@ -5808,6 +6515,13 @@ msgstr "Otwórz w edytorze" msgid "\"%s\" is not a known filter." msgstr "\"%s\" nie jest znanym filtrem." +msgid "" +"Root nodes cannot be accessed as unique names in their own scene. Instantiate " +"in another scene and set as unique name there." +msgstr "" +"Do korzenia sceny nie można uzyskać dostępu poprzez unikalną nazwę w jego " +"własnej scenie. Utwórz instancję w innej scenie i tam ustaw unikalną nazwę." + msgid "Invalid node name, the following characters are not allowed:" msgstr "Nieprawidłowa nazwa węzła, następujące znaki są niedozwolone:" @@ -5829,6 +6543,19 @@ msgstr "Drzewo sceny (węzły):" msgid "Node Configuration Warning!" msgstr "Ostrzeżenie konfiguracji węzła!" +msgid "Revoke" +msgstr "Unieważnij" + +msgid "Don't Ask Again" +msgstr "Nie pytaj ponownie" + +msgid "" +"This dialog can also be enabled/disabled in the Editor Settings: Docks > " +"Scene Tree > Ask Before Revoking Unique Name." +msgstr "" +"Ten dialog może być również włączony/wyłączony w ustawieniach edytora: Doki > " +"Drzewo sceny > Pytaj przed unieważnieniem unikalnej nazwy." + msgid "Allowed:" msgstr "Dozwolone:" @@ -6001,6 +6728,12 @@ msgstr "Materiały" msgid "Selected Animation Play/Pause" msgstr "Odtwórz/zapauzuj wybraną animację" +msgid "Selected Animation Stop" +msgstr "Zatrzymaj wybraną animację" + +msgid "Toggle Animation Skeleton Visibility" +msgstr "Przełącz widoczność szkieletu animacji" + msgid "Rotate Lights With Model" msgstr "Obracaj światła z modelem" @@ -6444,9 +7177,27 @@ msgstr "Zarządzaj właściwościami obiektu." msgid "This cannot be undone. Are you sure?" msgstr "Nie można tego cofnąć. Czy jesteś pewien?" +msgid "Add %d Translation" +msgid_plural "Add %d Translations" +msgstr[0] "Dodaj %d tłumaczenie" +msgstr[1] "Dodaj %d tłumaczenia" +msgstr[2] "Dodaj %d tłumaczeń" + msgid "Remove Translation" msgstr "Usuń tłumaczenie" +msgid "Translation Resource Remap: Add %d Path" +msgid_plural "Translation Resource Remap: Add %d Paths" +msgstr[0] "Przemapowanie tłumaczenia zasobu: Dodaj %d ścieżkę" +msgstr[1] "Przemapowanie tłumaczenia zasobu: Dodaj %d ścieżki" +msgstr[2] "Przemapowanie tłumaczenia zasobu: Dodaj %d ścieżek" + +msgid "Translation Resource Remap: Add %d Remap" +msgid_plural "Translation Resource Remap: Add %d Remaps" +msgstr[0] "Przemapowanie tłumaczenia zasobu: Dodaj %d przemapowanie" +msgstr[1] "Przemapowanie tłumaczenia zasobu: Dodaj %d przemapowania" +msgstr[2] "Przemapowanie tłumaczenia zasobu: Dodaj %d przemapowań" + msgid "Change Resource Remap Language" msgstr "Zmień język mapowania zasobu" @@ -6456,6 +7207,12 @@ msgstr "Usuń mapowanie zasobu" msgid "Remove Resource Remap Option" msgstr "Usuń opcję mapowania zasobu" +msgid "Add %d file for POT generation" +msgid_plural "Add %d files for POT generation" +msgstr[0] "Dodaj %d plik do generowania POT" +msgstr[1] "Dodaj %d pliki do generowania POT" +msgstr[2] "Dodaj %d plików do generowania POT" + msgid "Remove file from POT generation" msgstr "Usuń plik z generowania POT" @@ -6726,6 +7483,24 @@ msgstr "Wypełnij wybrane podrzędne elementy" msgid "Invert" msgstr "Odwróć" +msgid "Start of Animation" +msgstr "Początek animacji" + +msgid "End of Animation" +msgstr "Koniec animacji" + +msgid "Set Custom Timeline from Marker" +msgstr "Ustaw niestandardową linię czasu ze znacznika" + +msgid "Select Markers" +msgstr "Wybierz znaczniki" + +msgid "Start Marker" +msgstr "Początkowy znacznik" + +msgid "End Marker" +msgstr "Końcowy znacznik" + msgid "Library Name:" msgstr "Nazwa biblioteki:" @@ -6955,6 +7730,21 @@ msgstr "Nazwa duplikowanej animacji:" msgid "Onion skinning requires a RESET animation." msgstr "Tryb warstw cebuli wymaga animacji RESET." +msgid "Play Animation Backwards" +msgstr "Odtwórz animację do tyłu" + +msgid "Play Animation Backwards from End" +msgstr "Odtwórz animację od końca" + +msgid "Pause/Stop Animation" +msgstr "Zapauzuj/zatrzymaj animację" + +msgid "Play Animation from Start" +msgstr "Odtwórz animację od początku" + +msgid "Play Animation" +msgstr "Odtwórz animację" + msgid "Animation position (in seconds)." msgstr "Pozycja animacji (sekundy)." @@ -7030,6 +7820,12 @@ msgstr "Czasy Blendowania:" msgid "Next (Auto Queue):" msgstr "Następny (automatyczna kolejka):" +msgid "Go to Next Keyframe" +msgstr "Przejdź do następnej klatki kluczowej" + +msgid "Go to Previous Keyframe" +msgstr "Przejdź do poprzedniej klatki kluczowej" + msgid "Toggle Animation Bottom Panel" msgstr "Przełącz dolny panel animacji" @@ -7521,6 +8317,9 @@ msgstr "" "Alt+PPM: Pokaż listę wszystkich węzłów na klikniętej pozycji, wliczając " "zablokowane." +msgid "(Available in all modes.)" +msgstr "(Dostępne w każdym trybie.)" + msgid "RMB: Add node at position clicked." msgstr "PPM: Dodaj węzeł na klikniętej pozycji." @@ -7539,6 +8338,19 @@ msgstr "Shift: Skaluj proporcjonalnie." msgid "Show list of selectable nodes at position clicked." msgstr "Pokaż listę wybieralnych węzłów na klikniętej pozycji." +msgid "Click to change object's pivot." +msgstr "Kliknij, by zmienić oś obrotu obiektu." + +msgid "Shift: Set temporary pivot." +msgstr "Shift: Ustaw tymczasową oś obrotu." + +msgid "" +"Click this button while holding Shift to put the temporary pivot in the " +"center of the selected nodes." +msgstr "" +"Kliknij ten przycisk trzymając Shift, aby umieścić tymczasową oś obrotu w " +"środku wybranych węzłów." + msgid "Pan Mode" msgstr "Tryb przemieszczania" @@ -8150,6 +8962,13 @@ msgstr "" msgid "Edit Plugin" msgstr "Edytuj wtyczkę" +msgid "" +"Recovery mode is enabled. Enabled plugins will not run while this mode is " +"active." +msgstr "" +"Tryb awaryjny jest włączony. Włączone wtyczki nie będą działać kiedy ten tryb " +"jest aktywny." + msgid "Installed Plugins:" msgstr "Zainstalowane wtyczki:" @@ -8226,9 +9045,172 @@ msgstr "Wschodnio azjatyckie szerokości" msgid "Numeral Alignment" msgstr "Wyrównanie numeryczne" +msgid "Variation" +msgstr "Wariant" + msgid "Unable to preview font" msgstr "Nie można podejrzeć czcionki" +msgid "Connection impossible to the game process." +msgstr "Połączenie z procesem gry niemożliwe." + +msgid "Game starting..." +msgstr "Startowanie gry..." + +msgid "Game running not embedded." +msgstr "Gra działa nieosadzona." + +msgid "Press play to start the game." +msgstr "Kliknij uruchom, by rozpocząć grę." + +msgid "Embedding is disabled." +msgstr "Osadzanie jest wyłączone." + +msgid "" +"Game embedding not available on Wayland.\n" +"Wayland can be disabled in the Editor Settings (Run > Platforms > Linux/*BSD " +"> Prefer Wayland)." +msgstr "" +"Osadzanie gry nie jest dostępne na Wayland.\n" +"Wayland może być wyłączony w ustawieniach edytora (Uruchom > Platformy > " +"Linux/*BSD > Preferuj Wayland)." + +msgid "Game embedding not available on your OS." +msgstr "Osadzanie gry niedostępne w twoim systemie." + +msgid "" +"Game embedding not available for the Display Server: '%s'.\n" +"Display Server can be modified in the Project Settings (Display > Display " +"Server > Driver)." +msgstr "" +"Osadzanie gry nie jest dostępne dla tego serwera wyświetlania: \"%s\".\n" +"Serwer wyświetlania może być zmieniony w ustawieniach projektu (Wyświetlanie " +"> Serwer wyświetlania > Sterownik)." + +msgid "" +"Game embedding not available when the game starts minimized.\n" +"Consider overriding the window mode project setting with the editor feature " +"tag to Windowed to use game embedding while leaving the exported project " +"intact." +msgstr "" +"Osadzanie gry niedostępne, gdy gra startuje zminimalizowana.\n" +"Rozważ nadpisanie ustawienia trybu okna z tagiem funkcjonalności \"editor\" " +"wartością Windowed, by używać osadzania gry, zostawiając wyeksportowany " +"projekt bez zmian." + +msgid "" +"Game embedding not available when the game starts maximized.\n" +"Consider overriding the window mode project setting with the editor feature " +"tag to Windowed to use game embedding while leaving the exported project " +"intact." +msgstr "" +"Osadzanie gry niedostępne, gdy gra startuje zmaksymalizowana.\n" +"Rozważ nadpisanie ustawienia trybu okna z tagiem funkcjonalności \"editor\" " +"wartością Windowed, by używać osadzania gry, zostawiając wyeksportowany " +"projekt bez zmian." + +msgid "" +"Game embedding not available when the game starts in fullscreen.\n" +"Consider overriding the window mode project setting with the editor feature " +"tag to Windowed to use game embedding while leaving the exported project " +"intact." +msgstr "" +"Osadzanie gry niedostępne, gdy gra startuje na pełnym ekranie.\n" +"Rozważ nadpisanie ustawienia trybu okna z tagiem funkcjonalności \"editor\" " +"wartością Windowed, by używać osadzania gry, zostawiając wyeksportowany " +"projekt bez zmian." + +msgid "Game embedding not available in single window mode." +msgstr "Osadzanie gry niedostępne w trybie jednego okna." + +msgid "Suspend" +msgstr "Zawieś" + +msgid "Next Frame" +msgstr "Następna klatka" + +msgid "Input" +msgstr "Sterowanie" + +msgid "Allow game input." +msgstr "Zezwól na sterowanie w grze." + +msgid "" +"Disable game input and allow to select Node2Ds, Controls, and manipulate the " +"2D camera." +msgstr "" +"Wyłącz sterowanie w grze i zezwól na wybieranie węzłów Node2D, Control oraz " +"manipulację kamerą 2D." + +msgid "" +"Disable game input and allow to select Node3Ds and manipulate the 3D camera." +msgstr "" +"Wyłącz sterowanie w grze i zezwól na wybieranie węzłów Node3D oraz " +"manipulację kamerą 3D." + +msgid "Toggle Selection Visibility" +msgstr "Przełącz widoczność zaznaczenia" + +msgid "Alt+RMB: Show list of all nodes at position clicked." +msgstr "Alt+PPM: Pokaż listę wszystkich węzłów na klikniętej pozycji." + +msgid "Override the in-game camera." +msgstr "Zastąp kamerę gry." + +msgid "Camera Override Options" +msgstr "Opcje zastąpienia kamery" + +msgid "Reset 2D Camera" +msgstr "Zresetuj kamerę 2D" + +msgid "Reset 3D Camera" +msgstr "Zresetuj kamerę 3D" + +msgid "Manipulate In-Game" +msgstr "Manipuluj w grze" + +msgid "Manipulate From Editors" +msgstr "Manipuluj z edytorów" + +msgid "" +"Embedded game size is based on project settings.\n" +"The 'Keep Aspect' mode is used when the Game Workspace is smaller than the " +"desired size." +msgstr "" +"Rozmiar osadzonej gry jest bazowany na ustawieniach projektu.\n" +"Tryb \"Keep Aspect\" jest używany, gdy Przestrzeń robocza gry jest mniejsza " +"od pożądanego rozmiaru." + +msgid "Keep the aspect ratio of the embedded game." +msgstr "Zachowaj współczynnik proporcji osadzonej gry." + +msgid "Embedded game size stretches to fit the Game Workspace." +msgstr "" +"Rozmiar osadzonej gry rozciąga się, by dopasować się do Przestrzeni roboczej " +"gry." + +msgid "Embedding Options" +msgstr "Opcje osadzania" + +msgid "Embed Game on Next Play" +msgstr "Osadź grę przy następnym uruchomieniu" + +msgid "Make Game Workspace Floating on Next Play" +msgstr "Uczyń Przestrzeń roboczą gry pływającą przy następnym uruchomieniu" + +msgid "Game Workspace" +msgstr "Przestrzeń robocza gry" + +msgid "" +"No \"%s\" library found for GDExtension: \"%s\". Possible feature flags for " +"your platform: %s" +msgstr "" +"Nie znaleziono biblioteki \"%s\" dla GDExtension: \"%s\". Możliwe flagi " +"funkcjonalności dla twojej platformy: %s" + +msgid "Multiple \"%s\" libraries found for GDExtension: \"%s\": \"%s\"." +msgstr "Wiele bibliotek \"%s\" znalezione dla GDExtension: \"%s\": \"%s\"." + msgid "Change AudioStreamPlayer3D Emission Angle" msgstr "Zmień kąt emisji węzła AudioStreamPlayer3D" @@ -8311,15 +9293,15 @@ msgid "Video RAM size: %s MB (%s)" msgstr "Rozmiar Video RAM: %s MB (%s)" msgid "Bake SDF" -msgstr "Wypiecz SDF" +msgstr "Wypal SDF" msgid "" "No faces detected during GPUParticlesCollisionSDF3D bake.\n" "Check whether there are visible meshes matching the bake mask within its " "extents." msgstr "" -"Nie wykryto powierzchni podczas wypiekania GPUParticlesCollisionSDF3D.\n" -"Sprawdź, czy są widoczne siatki wewnątrz obszaru pasujące do maski wypiekania." +"Nie wykryto powierzchni podczas wypalania GPUParticlesCollisionSDF3D.\n" +"Sprawdź, czy są widoczne siatki wewnątrz obszaru pasujące do maski wypalania." msgid "Select path for SDF Texture" msgstr "Wybierz ścieżkę dla tekstury SDF" @@ -8364,6 +9346,46 @@ msgstr "" "Nie można określić ścieżki zapisu dla obrazów mapy światła.\n" "Zapisz scenę i spróbuj ponownie." +msgid "" +"No meshes with lightmapping support to bake. Make sure they contain UV2 data " +"and their Global Illumination property is set to Static." +msgstr "" +"Brak siatek ze wsparciem dla mapy światła do wypalenia. Upewnij się, że " +"zawierają dane UV2 i ich właściwość Globalne oświetlenie jest ustawione na " +"Static." + +msgid "" +"To import a scene with lightmapping support, set Meshes > Light Baking to " +"Static Lightmaps in the Import dock." +msgstr "" +"By zaimportować scenę ze wsparciem map światła, w doku importu ustaw Siatki > " +"Wypalanie światła na Static Lightmaps." + +msgid "" +"To enable lightmapping support on a primitive mesh, edit the PrimitiveMesh " +"resource in the inspector and check Add UV2." +msgstr "" +"By włączyć wsparcie dla wypalania światła na podstawowej siatce, edytuj w " +"inspektorze zasób PrimitiveMesh i zaznacz Dodaj UV2." + +msgid "" +"To enable lightmapping support on a CSG mesh, select the root CSG node and " +"choose CSG > Bake Mesh Instance at the top of the 3D editor viewport.\n" +"Select the generated MeshInstance3D node and choose Mesh > Unwrap UV2 for " +"Lightmap/AO at the top of the 3D editor viewport." +msgstr "" +"By włączyć wsparcie map światła w siatce CSG, zaznacz korzeń węzła CSG i " +"wybierz CSG > Wypal instancję siatki na górze widoku edytora 3D.\n" +"Zaznacz wygenerowany węzeł MeshInstance3D i wybierz Siatka > Rozwiń UV2 dla " +"mapy światła/AO na górze widoku edytora 3D." + +msgid "" +"Failed creating lightmap images. Make sure the lightmap destination path is " +"writable." +msgstr "" +"Nie udało się utworzyć obrazków mapy światła. Upewnij się, że do docelowej " +"ścieżki mapy światła da się pisać." + msgid "No editor scene root found." msgstr "Nie znaleziono korzenia sceny edytora." @@ -8379,6 +9401,15 @@ msgstr "" "Mimo że to może być naprawione przez zwiększenie maksymalnego rozmiaru " "tekstury, zalecane jest zamiast tego rozdzielenie sceny na więcej obiektów." +msgid "" +"Failed creating lightmap images. Make sure all meshes to bake have the " +"Lightmap Size Hint property set high enough, and the LightmapGI's Texel Scale " +"value is not too low." +msgstr "" +"Nie udało się utworzyć obrazków mapy światła. Upewnij się, że wszystkie " +"siatki do wypalenia mają właściwość Lightmap Size Hint ustawioną na " +"wystarczająco wysoką i wartość Texel Scale dla węzła nie jest za niska." + msgid "" "Failed fitting a lightmap image into an atlas. This should never happen and " "should be reported." @@ -8389,12 +9420,28 @@ msgstr "" msgid "Bake Lightmaps" msgstr "Stwórz Lightmaps" +msgid "Lightmap baking is not supported on this GPU (%s)." +msgstr "Wypalanie mapy światła nie jest wspierane na tym GPU (%s)." + +msgid "Lightmaps cannot be baked on %s." +msgstr "Mapy światła nie mogą być wypalane na %s." + +msgid "" +"Lightmaps cannot be baked, as the `lightmapper_rd` module was disabled at " +"compile-time." +msgstr "" +"Mapy światła nie mogą być wypalone, gdyż moduł \"lightmapper_rd\" został " +"wyłączony podczas kompilacji." + msgid "LightMap Bake" msgstr "Stwórz mapę światła" msgid "Select lightmap bake file:" msgstr "Wybierz plik wypalenia mapy światła:" +msgid "Preview is not available for this shader mode." +msgstr "Podgląd nie jest dostępny dla tego trybu shadera." + msgid "Couldn't create a Trimesh collision shape." msgstr "Nie udało się utworzyć kształtu trójsiatki." @@ -8509,7 +9556,7 @@ msgid "View UV2" msgstr "Widok UV2" msgid "Unwrap UV2 for Lightmap/AO" -msgstr "Rozwiń siatkę UV2 dla Lightmapy/AO" +msgstr "Rozwiń UV2 dla mapy światła/AO" msgid "Create Outline Mesh" msgstr "Utwórz siatkę zarysu" @@ -8585,6 +9632,30 @@ msgstr "" msgid "UV Channel Debug" msgstr "Debug kanału UV" +msgid "Create NavigationMesh" +msgstr "Utwórz siatkę nawigacyjną (NavigationMesh)" + +msgid "" +"Before converting a rendering mesh to a navigation mesh, please verify:\n" +"\n" +"- The mesh is two-dimensional.\n" +"- The mesh has no surface overlap.\n" +"- The mesh has no self-intersection.\n" +"- The mesh surfaces have indices.\n" +"\n" +"If the mesh does not fulfill these requirements, the pathfinding will be " +"broken." +msgstr "" +"Przed konwertowaniem siatki renderowania do siatki nawigacji, proszę " +"zweryfikować:\n" +"\n" +"- Siatka jest dwuwymiarowa.\n" +"- Siatka nie ma nachodzących się powierzchni.\n" +"- Siatka nie ma samoprzecięcia.\n" +"- Powierzchnie siatki mają indeksy.\n" +"\n" +"Jeśli siatka nie spełnia tych wymogów, szukanie ścieżek będzie popsute." + msgid "Remove item %d?" msgstr "Usuń element %d?" @@ -8698,20 +9769,56 @@ msgstr "Ustaw start_position" msgid "Set end_position" msgstr "Ustaw end_position" +msgid "Set Obstacle Vertices" +msgstr "Ustaw wierzchołki przeszkody" + +msgid "Edit Obstacle (Flip Winding)" +msgstr "Edytuj przeszkodę (odwróć uzwojenie)" + +msgid "Edit Obstacle (Clear Vertices)" +msgstr "Edytuj przeszkodę (wyczyść wierzchołki)" + +msgid "Add Vertex" +msgstr "Dodaj wierzchołek" + +msgid "Edit Vertex" +msgstr "Edytuj wierzchołek" + +msgid "Delete Vertex" +msgstr "Usuń wierzchołek" + +msgid "Flip Winding" +msgstr "Odwróć uzwojenie" + +msgid "Clear Vertices" +msgstr "Wyczyść wierzchołki" + +msgid "Edit Obstacle (Add Vertex)" +msgstr "Edytuj przeszkodę (dodaj wierzchołek)" + +msgid "Edit Obstacle (Move Vertex)" +msgstr "Edytuj przeszkodę (przesuń wierzchołek)" + +msgid "Edit Obstacle (Remove Vertex)" +msgstr "Edytuj przeszkodę (usuń wierzchołek)" + msgid "Please Confirm..." msgstr "Proszę potwierdzić..." +msgid "Remove all vertices?" +msgstr "Usunąć wszystkie wierzchołki?" + msgid "Create Navigation Polygon" msgstr "Utwórz wielokąt nawigacyjny" msgid "Bake NavigationPolygon" -msgstr "Wypiecz NavigationPolygon" +msgstr "Wypal NavigationPolygon" msgid "" "Bakes the NavigationPolygon by first parsing the scene for source geometry " "and then creating the navigation polygon vertices and polygons." msgstr "" -"Wypieka NavigationPolygon poprzez analizowanie sceny w poszukiwaniu geometrii " +"Wypala NavigationPolygon poprzez analizowanie sceny w poszukiwaniu geometrii " "źródłowej, a następnie tworzenie wielokątów i wierzchołków wielokąta " "nawigacji." @@ -8777,6 +9884,9 @@ msgstr "Tył ortogonalnie" msgid "Rear Perspective" msgstr "Tył perspektywicznie" +msgid "[auto]" +msgstr "[auto]" + msgid "X-Axis Transform." msgstr "Transformacja osi X." @@ -8981,6 +10091,9 @@ msgstr "Wyświetlaj środowisko" msgid "View Gizmos" msgstr "Pokaż uchwyty" +msgid "View Transform Gizmo" +msgstr "Pokaż uchwyt transformacji" + msgid "View Grid" msgstr "Pokaż siatkę" @@ -9005,6 +10118,24 @@ msgstr "Podgląd kinowy" msgid "Not available when using the OpenGL renderer." msgstr "Niedostępne podczas używania renderera OpenGL." +msgid "Viewport Orbit Modifier 1" +msgstr "Modyfikator orbity widoku 1" + +msgid "Viewport Orbit Modifier 2" +msgstr "Modyfikator orbity widoku 2" + +msgid "Viewport Pan Modifier 1" +msgstr "Modyfikator przesuwania widoku 1" + +msgid "Viewport Pan Modifier 2" +msgstr "Modyfikator przesuwania widoku 2" + +msgid "Viewport Zoom Modifier 1" +msgstr "Modyfikator przybliżenia widoku 1" + +msgid "Viewport Zoom Modifier 2" +msgstr "Modyfikator przybliżenia widoku 2" + msgid "Freelook Left" msgstr "\"Wolny widok\" w lewo" @@ -9056,6 +10187,9 @@ msgstr "Zacznij obracanie transformacji" msgid "Begin Scale Transformation" msgstr "Zacznij skalowanie transformacji" +msgid "Reposition Using Collisions" +msgstr "Zmień pozycję używając kolizji" + msgid "Toggle Camera Preview" msgstr "Przełącz podgląd kamery" @@ -9139,6 +10273,10 @@ msgstr "" "zostanie kliknięty w widoku 2D lub 3D, ta opcja powoduje zaznaczenie węzła " "nadrzędnego." +msgid "LMB+Drag: Measure the distance between two points in 3D space." +msgstr "" +"LPM+Przeciągnij: Zmierz dystans pomiędzy dwoma punktami w przestrzeni 3D." + msgid "Use Local Space" msgstr "Użyj przestrzeni lokalnej" @@ -9404,10 +10542,10 @@ msgid "Could not save the new occluder at the specified path:" msgstr "Nie udało się zapisać zasłony pod określoną ścieżką:" msgid "Bake Occluders" -msgstr "Wypiecz zasłony" +msgstr "Wypal zasłony" msgid "Select occluder bake file:" -msgstr "Wybierz plik wypiekania zasłon:" +msgstr "Wybierz plik wypalania zasłon:" msgid "Convert to Parallax2D" msgstr "Przekonwertuj na Parallax2D" @@ -9455,6 +10593,9 @@ msgstr "" msgid "Generating..." msgstr "Generowanie..." +msgid "Loading emission mask requires ParticleProcessMaterial." +msgstr "Wczytywanie maski emisji wymaga ParticleProcessMaterial." + msgid "GPUParticles2D" msgstr "Cząsteczki GPU 2D" @@ -9518,6 +10659,9 @@ msgstr "Źródło emisji:" msgid "A processor material of type 'ParticleProcessMaterial' is required." msgstr "Wymagany jest materiał przetwarzający typu \"ParticleProcessMaterial\"." +msgid "Create Emission Points" +msgstr "Utwórz punkty emisji" + msgid "GPUParticles3D" msgstr "Cząsteczki GPU 3D" @@ -9560,6 +10704,9 @@ msgstr "Zamknij krzywą" msgid "Clear Curve Points" msgstr "Wyczyść punkty krzywej" +msgid "Create Curve in Path2D" +msgstr "Utwórz krzywą w Path2D" + msgid "Select Points" msgstr "Zaznacz punkty" @@ -9599,6 +10746,9 @@ msgstr "Odbij kąty uchwytów" msgid "Mirror Handle Lengths" msgstr "Odbij długość uchwytów" +msgid "Create Curve" +msgstr "Utwórz krzywą" + msgid "Curve Point #" msgstr "Punkt Krzywej #" @@ -9638,6 +10788,12 @@ msgstr "Zresetuj punkt kontrolny wchodzący" msgid "Reset Point Tilt" msgstr "Zresetuj nachylenie punktu" +msgid "Toggle Open/Closed Curve" +msgstr "Przełącz zamknięcie/otwarcie krzywej" + +msgid "Create Curve in Path3D" +msgstr "Utwórz krzywą w Path3D" + msgid "Shift+Click: Select multiple Points" msgstr "Shift+Klik: Zaznacz wiele punktów" @@ -9737,6 +10893,13 @@ msgstr "" msgid "Script Name:" msgstr "Nazwa skryptu:" +msgid "" +"Optional. The name of the script file. If left empty, will default to the " +"subfolder name." +msgstr "" +"Opcjonalne. Nazwa pliku skryptu. Jeśli zostawiono puste, domyślnie użyje " +"nazwy podfolderu." + msgid "Activate now?" msgstr "Aktywować teraz?" @@ -9808,9 +10971,15 @@ msgstr "Kości" msgid "Move Points" msgstr "Przesuń punkty" +msgid "%s: Rotate" +msgstr "%s: Obróć" + msgid "Shift: Move All" msgstr "Shift: Przesuń wszystko" +msgid "%s + Shift: Scale" +msgstr "%s + Shift: Skaluj" + msgid "Move Polygon" msgstr "Przesuń Wielokąt" @@ -9877,6 +11046,12 @@ msgstr "Krok Y siatki:" msgid "Sync Bones to Polygon" msgstr "Synchronizuj kości z wielokątem" +msgid "Polygon" +msgstr "Wielokąt" + +msgid "Toggle Polygon Bottom Panel" +msgstr "Przełącz dolny panel wielokąta" + msgid "Create Polygon3D" msgstr "Utwórz Wielokąt3D" @@ -9919,6 +11094,12 @@ msgstr "" "AnimationMixer nie ma prawidłowej ścieżki korzenia, więc nie można uzyskać " "nazw ścieżek." +msgid "(truncated)" +msgstr "(obcięty)" + +msgid "Current value: " +msgstr "Aktualna wartość: " + msgid "Can't open '%s'. The file could have been moved or deleted." msgstr "Nie można otworzyć \"%s\". Plik mógł zostać przeniesiony lub usunięty." @@ -10043,6 +11224,9 @@ msgstr "Miękkie przeładowania skryptu narzędzi" msgid "Copy Script Path" msgstr "Skopiuj ścieżkę skryptu" +msgid "Copy Script UID" +msgstr "Skopiuj UID skryptu" + msgid "History Previous" msgstr "Poprzedni plik" @@ -10082,6 +11266,13 @@ msgstr "Przejdź do poprzednio edytowanego dokumentu." msgid "Go to next edited document." msgstr "Przejdź do następnego edytowanego dokumentu." +msgid "" +"Make the script editor floating.\n" +"Right-click to open the screen selector." +msgstr "" +"Uczyń edytor skryptów pływającym.\n" +"Kliknij prawym, by otworzyć wybór ekranu." + msgid "Discard" msgstr "Odrzucić" @@ -10121,6 +11312,9 @@ msgstr "Zwykły tekst" msgid "JSON" msgstr "JSON" +msgid "Markdown" +msgstr "Markdown" + msgid "Connections to method:" msgstr "Połączenia do metody:" @@ -10168,6 +11362,9 @@ msgid "Can't drop nodes because script '%s' does not inherit Node." msgstr "" "Nie można upuścić węzłów, ponieważ skrypt \"%s\" nie dziedziczy po Node." +msgid "Emoji & Symbols" +msgstr "Emoji i symbole" + msgid "Pick Color" msgstr "Wybierz Kolor" @@ -10300,12 +11497,22 @@ msgstr "Zapisz plik" msgid "Open File in Inspector" msgstr "Otwórz plik w inspektorze" +msgid "Inspect Native Shader Code..." +msgstr "Inspekcjonuj natywny kod shadera..." + msgid "Close File" msgstr "Zamknij plik" msgid "Shader Editor" msgstr "Edytor shaderów" +msgid "" +"Make the shader editor floating.\n" +"Right-click to open the screen selector." +msgstr "" +"Uczyń edytor shaderów pływającym.\n" +"Kliknij prawym, by otworzyć wybór ekranu." + msgid "Toggle Shader Editor Bottom Panel" msgstr "Przełącz dolny panel edytora shaderów" @@ -10346,9 +11553,24 @@ msgstr "Resetuj do pozy spoczynkowej" msgid "Overwrite Rest Pose" msgstr "Nadpisz pozę spoczynkową" +msgid "Bone Metadata" +msgstr "Metadane kości" + +msgid "Add Bone Metadata" +msgstr "Dodaj metadane kości" + msgid "Set Bone Transform" msgstr "Ustaw transformację kości" +msgid "Modify metadata '%s' for bone '%s'" +msgstr "Modyfikuj metadaną \"%s\" dla kości \"%s\"" + +msgid "Remove metadata '%s' from bone '%s'" +msgstr "Modyfikuj metadaną \"%s\" z kości \"%s\"" + +msgid "Add metadata '%s' to bone '%s'" +msgstr "Dodaj metadaną \"%s\" do kości \"%s\"" + msgid "Set Bone Rest" msgstr "Ustaw spoczynek kości" @@ -10367,6 +11589,12 @@ msgstr "Eksportuj profil szkieletu jako..." msgid "Set Bone Parentage" msgstr "Ustaw rodzicielstwo kości" +msgid "Revert Bone" +msgstr "Przywróć kość" + +msgid "Revert" +msgstr "Przywróć" + msgid "Skeleton3D" msgstr "Szkielet 3D" @@ -11446,6 +12674,9 @@ msgstr "Maluj kafelki" msgid "Paste tiles" msgstr "Wklej kafelki" +msgid "Selection Tool" +msgstr "Narzędzie zaznaczenia" + msgid "Shift: Draw line." msgstr "Shift: Rysuj linię." @@ -11487,6 +12718,13 @@ msgstr "Rozrzucanie:" msgid "Tiles" msgstr "Kafelki" +msgid "" +"This TileMap's TileSet has no Tile Source configured. Go to the TileSet " +"bottom panel to add one." +msgstr "" +"TileSet tej TileMapy nie ma skonfigurowanego źródła kafelków. Przejdź do " +"dolnego panelu TileSet, by jakieś dodać." + msgid "Sort sources" msgstr "Sortuj źródła" @@ -12029,6 +13267,9 @@ msgstr "Usuń źródło" msgid "Add atlas source" msgstr "Dodaj źródło atlasowe" +msgid "Tile Sources" +msgstr "Źródła kafelków" + msgid "Sort Sources" msgstr "Sortuj źródła" @@ -12110,6 +13351,24 @@ msgstr "Właściwości kolekcji scen:" msgid "Tile properties:" msgstr "Właściwości kafelka:" +msgid "Paint Tool" +msgstr "Narzędzie malowania" + +msgid "Line Tool" +msgstr "Narzędzie linii" + +msgid "Rect Tool" +msgstr "Narzędzie prostokąta" + +msgid "Bucket Tool" +msgstr "Narzędzie wiadra" + +msgid "Eraser Tool" +msgstr "Narzędzie gumki" + +msgid "Picker Tool" +msgstr "Narzędzie próbnika" + msgid "TileMap" msgstr "TileMap" @@ -12380,6 +13639,12 @@ msgstr "" "Podgląd 2D nie może poprawnie pokazać rezultatu uzyskanego z parametru " "instancji." +msgid "Copy Preview Shader Parameters From Material" +msgstr "Skopiuj parametry podglądu shadera z materiału" + +msgid "Paste Preview Shader Parameters To Material" +msgstr "Wklej parametry podglądu shadera do materiału" + msgid "Add Input Port" msgstr "Dodaj port wejściowy" @@ -12497,6 +13762,9 @@ msgstr "Włącz autokurczenie" msgid "Enable Tint Color" msgstr "Włącz zabarwienie" +msgid "Edit Preview Parameter: %s" +msgstr "Edytuj parametr podglądu: %s" + msgid "Duplicate VisualShader Node(s)" msgstr "Duplikuj węzeł(y) VisualShader" @@ -12524,9 +13792,15 @@ msgstr "Niewłaściwa nazwa dla varying." msgid "Varying with that name is already exist." msgstr "Varying o tej nazwie już istnieje." +msgid "Boolean type cannot be used with `%s` varying mode." +msgstr "Typ boolowski nie może być użyty z trybem varying `%s`." + msgid "Add Node(s) to Visual Shader" msgstr "Dodaj węzeł(y) do shadera wizualnego" +msgid "Hold %s Key To Swap Connections" +msgstr "Przytrzymaj przycisk %s by zamienić połączenia" + msgid "Vertex" msgstr "Wierzchołki" @@ -12560,6 +13834,9 @@ msgstr "Usuń varying" msgid "Show generated shader code." msgstr "Pokaż wygenerowany kod shadera." +msgid "Toggle shader preview." +msgstr "Przełącz podgląd shadera." + msgid "Generated Shader Code" msgstr "Wygenerowany kod shadera" @@ -12575,6 +13852,15 @@ msgstr "Wstaw nowy węzeł" msgid "Insert New Reroute" msgstr "Wstaw nowe przekierowanie" +msgid "Filter Parameters" +msgstr "Filtruj parametry" + +msgid "Copy Parameters From Material" +msgstr "Kopiuj parametry z materiału" + +msgid "Paste Parameters To Material" +msgstr "Wklej parametry do materiału" + msgid "High-end node" msgstr "Węzeł wysokiej klasy" @@ -12599,12 +13885,18 @@ msgstr "Funkcja odcieni szarości." msgid "Converts HSV vector to RGB equivalent." msgstr "Konwertuje wektor HSV do odpowiednika RGB." +msgid "Converts color from linear to sRGB color space." +msgstr "Konwertuje kolor z przestrzeni kolorów liniowej do sRGB." + msgid "Converts RGB vector to HSV equivalent." msgstr "Konwertuje wektor RGB do odpowiednika HSV." msgid "Sepia function." msgstr "Funkcja sepii." +msgid "Converts color from sRGB to linear color space." +msgstr "Konwertuje kolor z przestrzeni kolorów sRGB do liniowej." + msgid "Burn operator." msgstr "Operator wypalenia." @@ -12641,6 +13933,9 @@ msgstr "Parametr koloru." msgid "(Fragment/Light mode only) Derivative function." msgstr "(Tylko tryb fragmentów/światła) Pochodna funkcji." +msgid "Derivative function." +msgstr "Funkcja pochodna." + msgid "Returns the boolean result of the %s comparison between two parameters." msgstr "Zwraca wynik boolowski porównania %s pomiędzy dwoma parametrami." @@ -12880,6 +14175,12 @@ msgstr "" "(Tylko tryb fragmentów/światła) (Skalar) Pochodna po \"y\" używając lokalnej " "zmienności." +msgid "(Scalar) Derivative in 'x' using local differencing." +msgstr "(Skalar) Pochodna po \"x\" używając lokalnej zmienności." + +msgid "(Scalar) Derivative in 'y' using local differencing." +msgstr "(Skalar) Pochodna po \"y\" używając lokalnej zmienności." + msgid "Base-e Exponential." msgstr "Eksponenta o podstawie e." @@ -12929,6 +14230,9 @@ msgstr "Konwertuje wartość ze stopni na radiany." msgid "1.0 / scalar" msgstr "1.0 / skalar" +msgid "Remaps a value from the input range to the output range." +msgstr "Przemapowuje wartość z wejściowego zakresu na wyjściowy zakres." + msgid "Finds the nearest integer to the parameter." msgstr "Znajduje najbliższą parametrowi liczbę całkowitą." @@ -12979,6 +14283,9 @@ msgstr "" "(Tylko tryb fragmentów/światła) (Skalar) Suma bezwzględnej pochodnej po \"x\" " "i \"y\"." +msgid "(Scalar) Sum of absolute derivative in 'x' and 'y'." +msgstr "(Skalar) Suma bezwzględnej pochodnej po \"x\" i \"y\"." + msgid "Returns the tangent of the parameter." msgstr "Zwraca tangens parametru." @@ -13319,6 +14626,12 @@ msgstr "" "(Tylko tryb fragmentów/światła) (Wektor) Pochodna po \"y\" używając lokalnej " "zmienności." +msgid "(Vector) Derivative in 'x' using local differencing." +msgstr "(Wektor) Pochodna po \"x\" używając lokalnej zmienności." + +msgid "(Vector) Derivative in 'y' using local differencing." +msgstr "(Wektor) Pochodna po \"y\" używając lokalnej zmienności." + msgid "Returns the distance between two points." msgstr "Zwraca dystans pomiędzy dwoma punktami." @@ -13375,6 +14688,16 @@ msgstr "" msgid "Returns the vector that points in the direction of refraction." msgstr "Zwraca wektor skierowany w kierunku załamania." +msgid "Remaps a vector from the input range to the output range." +msgstr "Przemapowuje wektor z wejściowego zakresu na wyjściowy zakres." + +msgid "" +"Remaps a vector from the input range to the output range. Ranges defined with " +"scalars." +msgstr "" +"Przemapowuje wektor z wejściowego zakresu na wyjściowy zakres. Zakresy są " +"zdefiniowane skalarami." + msgid "" "SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" "\n" @@ -13427,6 +14750,9 @@ msgstr "" "(Tylko tryb fragmentów/światła) (Wektor) Suma bezwzględnej pochodnej po \"x\" " "i \"y\"." +msgid "(Vector) Sum of absolute derivative in 'x' and 'y'." +msgstr "(Wektor) Suma bezwzględnej pochodnej po \"x\" i \"y\"." + msgid "Adds 2D vector to 2D vector." msgstr "Dodaje wektor 2D do wektora 2D." @@ -13751,6 +15077,37 @@ msgstr "" "Usunąć wszystkie brakujące projekty z listy?\n" "Zawartość folderów projektów nie zostanie zmodyfikowana." +msgid "" +"It looks like Godot crashed when opening this project the last time. If " +"you're having problems editing this project, you can try to open it in " +"Recovery Mode." +msgstr "" +"Wygląda na to, że Godot zaliczył crash podczas otwierania tego projektu " +"ostatnim razem. Jeśli masz problem z edytowaniem tego projektu, możesz " +"spróbować otworzyć go w Trybie awaryjnym." + +msgid "" +"Recovery Mode is a special mode that may help to recover projects that crash " +"the engine during initialization. This mode temporarily disables the " +"following features:" +msgstr "" +"Tryb awaryjny jest specjalnym trybem, który może pomóc odzyskać projekty, " +"które crashują silnik podczas inicjalizacji. Tryb ten tymczasowo wyłącza " +"następujące funkcjonalności:" + +msgid "" +"This mode is intended only for basic editing to troubleshoot such issues, and " +"therefore it will not be possible to run the project during this mode. It is " +"also a good idea to make a backup of your project before proceeding." +msgstr "" +"Ten tryb jest przeznaczony tylko do podstawowego edytowania, by zdiagnozować " +"takie problemy, w związku z czym nie jest możliwe uruchomienie projektu w tym " +"trybie. Jest też dobrym pomysłem zrobienie kopii zapasowej twojego projektu " +"zanim kontynuujesz." + +msgid "Edit the project in Recovery Mode?" +msgstr "Edytować ten projekt w Trybie awaryjnym?" + msgid "Couldn't load project at '%s'. It may be missing or corrupted." msgstr "" "Nie udało się wczytać projektu z \"%s\". Może być brakujący lub uszkodzony." @@ -13841,6 +15198,9 @@ msgstr "" msgid "Edit Project" msgstr "Edytuj projekt" +msgid "Edit in recovery mode" +msgstr "Edytuj w trybie awaryjnym" + msgid "Rename Project" msgstr "Zmień nazwę projektu" @@ -13866,6 +15226,12 @@ msgstr "Wybierz folder do skanowania" msgid "Remove All" msgstr "Usuń wszystkie" +msgid "Edit normally" +msgstr "Edytuj normalnie" + +msgid "Edit in Recovery Mode" +msgstr "Edytuj w Trybie awaryjnym" + msgid "Convert Full Project" msgstr "Przekonwertuj cały projekt" @@ -14004,6 +15370,9 @@ msgstr "Szybkie renderowanie prostych scen." msgid "Supports desktop, mobile + web platforms." msgstr "Wspiera platformy desktopowe, mobilne i webowe." +msgid "Least advanced 3D graphics." +msgstr "Najmniej zaawansowana grafika 3D." + msgid "Intended for low-end/older devices." msgstr "Przeznaczone dla słabszych/starszych urządzeń." @@ -14063,6 +15432,15 @@ msgstr "Ścieżka instalacji projektu:" msgid "Renderer:" msgstr "Silnik rendereujący:" +msgid "" +"RenderingDevice-based methods not available on this GPU:\n" +"%s\n" +"Please use the Compatibility renderer." +msgstr "" +"Metody bazowane na RenderingDevice nie są dostępne na tym GPU.\n" +"%s\n" +"Proszę użyć renderera Kompatybilnego." + msgid "The renderer can be changed later, but scenes may need to be adjusted." msgstr "" "Renderer może zostać później zmieniony, ale sceny mogą potrzebować " @@ -14074,6 +15452,9 @@ msgstr "Metadane kontroli wersji:" msgid "Git" msgstr "Git" +msgid "Edit Now" +msgstr "Edytuj teraz" + msgid "This project was last edited in a different Godot version: " msgstr "Ten projekt był ostatnio edytowany w innej wersji Godota: " @@ -14088,6 +15469,12 @@ msgstr "Błąd: Projekt nieobecny w systemie plików." msgid "Last edited timestamp" msgstr "Sygnatura czasowa ostatniej edycji" +msgid "Scanning" +msgstr "Skanowanie" + +msgid "Scanning for projects..." +msgstr "Skanowanie w poszukiwaniu projektów..." + msgid "Missing Project" msgstr "Brakujący projekt" @@ -14593,6 +15980,15 @@ msgstr "Zmień nadrzędny węzeł na nowy" msgid "This operation requires a single selected node." msgstr "Ta operacja wymaga pojedynczego wybranego węzła." +msgid "Reset Position" +msgstr "Resetuj pozycję" + +msgid "Reset Scale" +msgstr "Resetuj skalę" + +msgid "Reset Rotation" +msgstr "Resetuj obrót" + msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." @@ -14609,6 +16005,9 @@ msgstr "Błąd duplikowania sceny przy zapisywaniu." msgid "Instantiate Script" msgstr "Instancjonuj skrypt" +msgid "<unknown>" +msgstr "<nieznany>" + msgid "Sub-Resources" msgstr "Podzasoby" @@ -14640,6 +16039,9 @@ msgstr "" "Gdy włączone, \"Zmień nadrzędny węzeł na nowy\" utworzy nowy węzeł pośrodku " "zaznaczonych węzłów, jeśli możliwe." +msgid "Hide Filtered Out Parents" +msgstr "Ukryj odfiltrowane węzły nadrzędne" + msgid "All Scene Sub-Resources" msgstr "Wszystkie podzasoby sceny" @@ -14752,6 +16154,9 @@ msgstr "Dołącz nowy lub istniejący skrypt do zaznaczonego węzła." msgid "Detach the script from the selected node." msgstr "Odłącz skrypt z zaznaczonego węzła." +msgid "Extend the script of the selected node." +msgstr "Rozszerz skrypt zaznaczonego węzła." + msgid "Extra scene options." msgstr "Dodatkowe opcje sceny." @@ -15003,6 +16408,47 @@ msgstr "" msgid "Restart & Upgrade" msgstr "Zrestartuj i zaktualizuj" +msgid "Updating Script UIDs" +msgstr "Aktualizowanie UID skryptów" + +msgid "" +"As of Godot 4.4, scenes and resources use UIDs to reference scripts and " +"shaders.\n" +"\n" +"Normally, this update is applied to a single scene or resource once you save " +"it in Godot 4.4 for the first time. If you have a lot of scenes and/or " +"resources, doing this manually may be time-consuming. This tool will update " +"all of the project's scenes and resources at once.\n" +"\n" +"Click \"Restart & Upgrade\" to restart the editor and update all of the " +"scenes and resources in this project. Depending on the project size, it may " +"take several minutes.\n" +"\n" +"Note: Please make sure you have your project backed up before running the " +"tool, to avoid the possibility of data loss. Additionally, make sure to " +"commit all .uid files into version control (and do not add them to ignore-" +"lists like .gitignore)." +msgstr "" +"Od Godota 4.4, sceny i zasoby używają UID, żeby odwołać się do skryptów i " +"shaderów.\n" +"\n" +"Normalnie ta aktualizacja jest stosowana do pojedynczej sceny lub zasobu, " +"kiedy zapiszesz je w Godocie 4.4 za pierwszym razem. Jeśli masz dużo scen i/" +"lub zasobów, robienie tego ręcznie może być czasochłonne. To narzędzie " +"zaktualizuje wszystkie sceny i zasoby projektu za jednym razem.\n" +"\n" +"Kliknij \"Zrestartuj i zaktualizuj\", by zrestartować edytor i zaktualizować " +"wszystkie sceny i zasoby w tym projekcie. W zależności od rozmiaru projektu " +"może to zająć kilka minut.\n" +"\n" +"Uwaga: upewnij się, że twój projekt ma kopię zapasową zanim uruchomisz to " +"narzędzie, by uniknąć możliwości utraty danych. Dodatkowo upewnij się, że " +"zatwierdzasz wszystkie pliki .uid w kontroli wersji (i nie dodawaj ich do " +"list ignorowania typu .gitignore)." + +msgid "Learn More" +msgstr "Dowiedz się więcej" + msgid "Make this panel floating in the screen %d." msgstr "Uczyń ten panel pływającym na ekranie %d." @@ -15016,6 +16462,66 @@ msgstr "" msgid "Select Screen" msgstr "Wybierz ekran" +msgid "" +"The CSGShape3D has an empty shape.\n" +"CSGShape3D empty shapes typically occur because the mesh is not manifold.\n" +"A manifold mesh forms a solid object without gaps, holes, or loose edges.\n" +"Each edge must be a member of exactly two faces." +msgstr "" +"Węzeł CSGShape3D ma pusty kształt.\n" +"Puste kształty CSGShape3D typowo występują, ponieważ siatka nie jest " +"różnorodna.\n" +"Różnorodna siatka formuje lity obiekt bez luk, dziur oraz luźnych krawędzi.\n" +"Każda krawędź musi być członkiem dokładnie dwóch powierzchni." + +msgid "CSG operation returned an empty array." +msgstr "Operacja CSG zwróciła pustą tablicę." + +msgid "" +"Can not add a baked mesh as sibling for the scene root.\n" +"Move the CSG root node below a parent node." +msgstr "" +"Nie można dodać wypalonej siatki jako węzła równorzędnego do korzenia sceny.\n" +"Przenieś korzeń CSG pod węzeł nadrzędny." + +msgid "CSG operation returned an empty mesh." +msgstr "Operacja CSG zwróciła pustą siatkę." + +msgid "Create baked CSGShape3D Mesh Instance" +msgstr "Utwórz wypaloną instancję siatki CSGShape3D" + +msgid "" +"Can not add a baked collision shape as sibling for the scene root.\n" +"Move the CSG root node below a parent node." +msgstr "" +"Nie można dodać wypalonego kształtu kolizji jako równorzędnego korzeniu " +"sceny.\n" +"Przenieś korzeń CSG pod węzeł nadrzędny." + +msgid "CSG operation returned an empty shape." +msgstr "Operacja CSG zwróciła pusty kształt." + +msgid "Create baked CSGShape3D Collision Shape" +msgstr "Utwórz wypalony kształt kolizji CSGShape3D" + +msgid "CSG" +msgstr "CSG" + +msgid "Bake Mesh Instance" +msgstr "Wypal instancję siatki" + +msgid "Bake Collision Shape" +msgstr "Wypal kształt kolizji" + +msgid "Change CSG Box Size" +msgstr "Zmień rozmiar pudełka CSG" + +msgid "Change CSG Cylinder Radius" +msgstr "Zmień promień cylindra CSG" + +msgid "Change CSG Cylinder Height" +msgstr "Zmień wysokość cylindra CSG" + msgid "Change Torus Inner Radius" msgstr "Zmień wewnętrzny promień torusa" @@ -15031,6 +16537,28 @@ msgstr "Nie można zmienić rozmiaru tablicy." msgid "Step argument is zero!" msgstr "Argument kroku jest zerowy!" +msgid "Not a script with an instance." +msgstr "Nie jest skryptem z instancją." + +msgid "Not based on a script." +msgstr "Nie bazowany na skrypcie." + +msgid "Not based on a resource file." +msgstr "Nie bazowany na pliku zasobów." + +msgid "Invalid instance dictionary format (missing @path)." +msgstr "Nieprawidłowy format słownika instancji (brakuje @path)." + +msgid "Invalid instance dictionary format (can't load script at @path)." +msgstr "" +"Nieprawidłowy format słownika instancji (nie można wczytać skryptu w @path)." + +msgid "Invalid instance dictionary format (invalid script at @path)." +msgstr "Nieprawidłowy format słownika instancji (nieprawidłowy skrypt w @path)." + +msgid "Invalid instance dictionary (invalid subclasses)." +msgstr "Nieprawidłowy słownik instancji (nieprawidłowe podklasy)." + msgid "Cannot instantiate GDScript class." msgstr "Nie można instancjonować klasy GDScript." @@ -15155,6 +16683,12 @@ msgstr "Edytuj oś Y" msgid "Edit Z Axis" msgstr "Edytuj oś Z" +msgid "Keep Selection" +msgstr "Zachowaj zaznaczenie" + +msgid "Clear Rotation" +msgstr "Wyczyść obrót" + msgid "GridMap Settings" msgstr "Ustawienia GridMap" @@ -15164,6 +16698,9 @@ msgstr "Wybierz odległość:" msgid "Selection" msgstr "Wybór" +msgid "Erase" +msgstr "Usuń" + msgid "Cursor Rotate X" msgstr "Kursor Obróć X" @@ -15173,6 +16710,15 @@ msgstr "Kursor Obróć Y" msgid "Cursor Rotate Z" msgstr "Kursor Obróć Z" +msgid "" +"Change Grid Floor:\n" +"Previous Plane (%s)\n" +"Next Plane (%s)" +msgstr "" +"Zmień podłogę siatki:\n" +"Poprzednia płaszczyzna (%s)\n" +"Następna płaszczyzna (%s)" + msgid "Filter Meshes" msgstr "Filtruj siatki" @@ -15180,6 +16726,12 @@ msgid "Give a MeshLibrary resource to this GridMap to use its meshes." msgstr "" "Przypisz temu węzłowi GridMap zasób MeshLibrary, aby korzystać z jego siatek." +msgid "GridMap" +msgstr "GridMap" + +msgid "Toggle GridMap Bottom Panel" +msgstr "Przełącz dolny panel GridMap" + msgid "All Clips" msgstr "Wszystkie klipy" @@ -15306,12 +16858,18 @@ msgstr "Odsłanianie geometrii" msgid "Plot direct lighting" msgstr "Wykreśl bezpośrednie oświetlenie" +msgid "Plot direct lighting %d%%" +msgstr "Wykreśl bezpośrednie oświetlenie %d%%" + msgid "Integrate indirect lighting" msgstr "Integruj pośrednie oświetlenie" msgid "Integrate indirect lighting %d%%" msgstr "Integruj pośrednie oświetlenie %d%%" +msgid "Baking light probes" +msgstr "Wypalanie sond światła" + msgid "Integrating light probes %d%%" msgstr "Integrowanie sond światła %d%%" @@ -15330,6 +16888,20 @@ msgstr "Nazwa klasy musi być poprawnym identyfikatorem" msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "Niewystarczająca ilość bajtów dla bajtów dekodujących lub zły format." +msgid "" +"Unable to load .NET runtime, no compatible version was found.\n" +"Attempting to create/edit a project will lead to a crash.\n" +"\n" +"Please install the .NET SDK 8.0 or later from https://get.dot.net and restart " +"Godot." +msgstr "" +"Nie można wczytać środowiska uruchomieniowego .NET, nie znaleziono " +"kompatybilnej wersji.\n" +"Próba utworzenia/edytowania projektu skończy się awarią.\n" +"\n" +"Zainstaluj .NET SDK 8.0 lub nowsze z https://dotnet.microsoft.com/en-us/" +"download i zrestartuj Godota." + msgid "Failed to load .NET runtime" msgstr "Nie udało się załadować środowiska uruchomieniowego .NET" @@ -15343,6 +16915,19 @@ msgstr "" msgid ".NET assemblies not found" msgstr "Nie znaleziono zestawów .NET" +msgid "" +"Unable to load .NET runtime, specifically hostfxr.\n" +"Attempting to create/edit a project will lead to a crash.\n" +"\n" +"Please install the .NET SDK 8.0 or later from https://get.dot.net and restart " +"Godot." +msgstr "" +"Nie można wczytać środowiska uruchomieniowego .NET, a dokładnie hostfxr.\n" +"Próba utworzenia/edytowania projektu skończy się awarią.\n" +"\n" +"Zainstaluj .NET SDK 8.0 lub nowsze z https://dotnet.microsoft.com/en-us/" +"download i zrestartuj Godota." + msgid "%d (%s)" msgstr "%d (%s)" @@ -15502,13 +17087,13 @@ msgstr "" "innego typu." msgid "Bake NavigationMesh" -msgstr "Wypiecz NavigationMesh" +msgstr "Wypal NavigationMesh" msgid "" "Bakes the NavigationMesh by first parsing the scene for source geometry and " "then creating the navigation mesh vertices and polygons." msgstr "" -"Wypieka NavigationMesh poprzez analizowanie sceny w poszukiwaniu geometrii " +"Wypala NavigationMesh poprzez analizowanie sceny w poszukiwaniu geometrii " "źródłowej, a następnie tworzenie wielokątów i wierzchołków siatki nawigacji." msgid "Clear NavigationMesh" @@ -15599,6 +17184,22 @@ msgstr "Dodaj akcję." msgid "Remove action set." msgstr "Usuń zestaw akcji." +msgid "Remove binding modifier." +msgstr "Usuń modyfikator wiązania." + +msgid "Remove binding modifier" +msgstr "Usuń modyfikator wiązania" + +msgid "Add binding modifier" +msgstr "Dodaj modyfikator wiązania" + +msgid "Note: modifiers will only be applied if supported on the host system." +msgstr "" +"Uwaga: modyfikatory będą zastosowane jedynie kiedy system hosta je wspiera." + +msgid "Binding modifiers for:" +msgstr "Modyfikator wiązania dla:" + msgid "OpenXR Action Map" msgstr "Mapa akcji OpenXR" @@ -15608,12 +17209,21 @@ msgstr "Mapa dolny panel akcji OpenXR" msgid "Remove action from interaction profile" msgstr "Usuń akcję z profilu interakcji" +msgid "Edit binding modifiers" +msgstr "Edytuj modyfikatory wiązania" + +msgid "Note: This interaction profile requires extension %s support." +msgstr "Uwaga: ten profil interakcji wymaga wsparcia rozszerzenia %s." + msgid "Add binding" msgstr "Dodaj wiązanie" msgid "Remove binding" msgstr "Usuń wiązanie" +msgid "Note: This binding path requires extension %s support." +msgstr "Uwaga: ta ścieżka wiązania wymaga wsparcia rozszerzenia %s." + msgid "Pose" msgstr "Poza" @@ -15629,6 +17239,9 @@ msgstr "Wybierz akcję" msgid "Select an interaction profile" msgstr "Wybierz profil interakcji" +msgid "All interaction profiles have been added to the action map." +msgstr "Wszystkie profile interakcji zostały dodane do mapy akcji." + msgid "Choose an XR runtime." msgstr "Wybierz środowisko uruchomieniowe XR." @@ -15639,6 +17252,13 @@ msgstr "" "Nie można użyć tego samego SubViewport z wieloma warstwami kompozycji OpenXR. " "Wyczyść go najpierw z bieżącej warstwy." +msgid "" +"Cannot set SubViewport on an OpenXR composition layer when using an Android " +"surface." +msgstr "" +"Nie można ustawić węzła SubViewport na warstwie kompozycji OpenXR, kiedy " +"używana jest powierzchnia Androida." + msgid "OpenXR composition layers must have an XROrigin3D node as their parent." msgstr "Warstwy kompozycji OpenXR muszą mieć węzeł XROrigin3D jako nadrzędny." @@ -15655,6 +17275,9 @@ msgstr "" "Dziurkowanie nie zadziała zgodnie z oczekiwaniami kiedy kolejność sortowania " "nie jest mniejsza niż zero." +msgid "OpenXR visibility mask must have an XRCamera3D node as their parent." +msgstr "Maska widoczności OpenXR musi mieć węzeł XRCamera3D jako nadrzędny." + msgid "Package name is missing." msgstr "Brakuje nazwy pakietu." @@ -15682,6 +17305,11 @@ msgstr "Niepoprawny klucz publiczny dla ekspansji APK." msgid "Invalid package name:" msgstr "Niepoprawna nazwa paczki:" +msgid "\"Use Gradle Build\" is required to enable \"Swipe to dismiss\"." +msgstr "" +"\"Użyj kompilacji Gradle\" jest wymagane, aby włączyć \"Przesuń, aby " +"odrzucić\"." + msgid "\"Use Gradle Build\" must be enabled to use the plugins." msgstr "Aby korzystać z wtyczek, należy włączyć opcję „Użyj kompilacji Gradle”." @@ -15732,6 +17360,20 @@ msgstr "" msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "Wersja \"Target SDK\" musi być większa lub równa wersji \"Min SDK\"." +msgid "\"Use Gradle Build\" must be enabled to enable \"Show In Android Tv\"." +msgstr "" +"\"Użyj kompilacji Gradle\" jest wymagane, aby włączyć \"Pokaż w Android TV\"." + +msgid "\"Use Gradle Build\" must be enabled to enable \"Show As Launcher App\"." +msgstr "" +"\"Użyj kompilacji Gradle\" jest wymagane, aby włączyć \"Pokaż jako aplikację " +"uruchamiającą\"." + +msgid "\"Use Gradle Build\" must be enabled to disable \"Show In App Library\"." +msgstr "" +"\"Użyj kompilacji Gradle\" jest wymagane, aby wyłączyć \"Pokaż w bibliotece " +"aplikacji\"." + msgid "Select device from the list" msgstr "Wybierz urządzenie z listy" @@ -15760,9 +17402,28 @@ msgid "Error: There was a problem validating the keystore username and password" msgstr "" "Błąd: Wystąpił problem podczas sprawdzania nazwy użytkownika i hasła keystore" +msgid "" +"Unable to determine the C# project's TFM, it may be incompatible. The export " +"template only supports '%s'. Make sure the project targets '%s' or consider " +"using gradle builds instead." +msgstr "" +"Nie udało się określić TFM projektu C#, może być niekompatybilny. Szablon " +"eksportu wspiera tylko \"%s\". Upewnij się, że projekt docelowa wersja " +"projektu to \"%s\" lub zamiast tego użyj kompilacji gradle." + +msgid "" +"C# project targets '%s' but the export template only supports '%s'. Consider " +"using gradle builds instead." +msgstr "" +"Wersja docelowa projektu C# to \"%s\", ale szablon eksportu wspiera jedynie " +"\"%s\". Zamiast tego rozważ użycie kompilacji gradle." + msgid "Exporting to Android when using C#/.NET is experimental." msgstr "Eksportowanie na Androida z użyciem C#/.NET jest eksperymentalne." +msgid "Gradle build is not supported for the Android editor." +msgstr "Kompilacja Gradle nie jest dostępna w edytorze na Androida." + msgid "Custom Android source template not found." msgstr "Nie znaleziono własnego szablonu źródłowego Androida." @@ -15861,9 +17522,38 @@ msgstr "" msgid "Code Signing" msgstr "Podpisywanie kodu" +msgid "AAB signing is not supported" +msgstr "Podpisywanie AAB nie jest wspierane" + +msgid "Signing debug APK..." +msgstr "Podpisywanie debugowego APK..." + +msgid "Signing release APK..." +msgstr "Podpisywanie wydaniowego APK..." + msgid "Could not find keystore, unable to export." msgstr "Nie udało się znaleźć keystore, nie można eksportować." +msgid "Unable to sign apk." +msgstr "Nie udało się podpisać APK." + +msgid "" +"All 'apksigner' tools located in Android SDK 'build-tools' directory failed " +"to execute. Please check that you have the correct version installed for your " +"target sdk version. The resulting APK is unsigned." +msgstr "" +"Żadne z narzędzi \"apksigner\" znajdujących się w katalogu \"build-tools\" " +"SDK Androida nie zostało uruchomione. Sprawdź, czy masz zainstalowaną " +"prawidłową wersję dla docelowej wersji zestawu SDK. Wynikowy APK jest " +"niepodpisany." + +msgid "" +"'apksigner' could not be found. Please check that the command is available in " +"the Android SDK build-tools directory. The resulting APK is unsigned." +msgstr "" +"\"apksigner\" nie został znaleziony. Sprawdź, czy komenda jest dostępna w " +"folderze narzędzi SDK Androida. Wynikowy APK jest niepodpisany." + msgid "Could not start apksigner executable." msgstr "Nie można było uruchomić podprocesu apksigner." @@ -15877,6 +17567,15 @@ msgstr "" "wyjście: \n" "%s" +msgid "Verifying APK..." +msgstr "Weryfikowanie APK..." + +msgid "Unable to verify signed apk." +msgstr "Nie udało się zweryfikować podpisanego APK." + +msgid "'apksigner' verification of APK failed." +msgstr "Weryfikacja \"apksigner\" dla APK nieudana." + msgid "Target folder does not exist or is inaccessible: \"%s\"" msgstr "Docelowy folder nie istnieje lub jest niedostępny: \"%s\"" @@ -15938,6 +17637,12 @@ msgstr "Przesuwam wyjście" msgid "Unable to copy and rename export file:" msgstr "Nie udało się skopiować i zmienić nazwy pliku eksportu:" +msgid "Debug export template not found: \"%s\"." +msgstr "Nie znaleziono debugowego szablonu eksportu: \"%s\"." + +msgid "Release export template not found: \"%s\"." +msgstr "Nie znaleziono wydaniowego szablonu eksportu: \"%s\"." + msgid "Creating APK..." msgstr "Tworzenie APK..." @@ -16044,12 +17749,6 @@ msgstr "" "Żądana biblioteka szablonu \"%s\" nie została znaleziona. Może jej brakować w " "twoim archiwum szablonu." -msgid "ARM64 simulator library, generating from device library." -msgstr "Biblioteka symulatora ARM64, generowana z biblioteki urządzenia." - -msgid "Unable to generate ARM64 simulator library." -msgstr "Nie udało się wygenerować biblioteki symulatora ARM64." - msgid "Could not copy a file at path \"%s\" to \"%s\"." msgstr "Nie udało się skopiować pliku ze ścieżki \"%s\" do \"%s\"." @@ -16097,6 +17796,9 @@ msgstr "Eksportowanie na iOS z użyciem C#/.NET jest eksperymentalne." msgid "Invalid additional PList content: " msgstr "Nie prawidłowa dodatkowa zawartość PList: " +msgid "Metal renderer require iOS 14+." +msgstr "Renderer Metal wymaga iOS 14+." + msgid "Identifier is missing." msgstr "Brakuje identyfikatora." @@ -16133,12 +17835,33 @@ msgstr "Eksportowanie skryptu debugowego" msgid "Could not open file \"%s\"." msgstr "Nie można otworzyć pliku \"%s\"." +msgid "" +"Mismatching custom export template executable architecture, found \"%s\", " +"expected \"%s\"." +msgstr "" +"Niepasująca architektura własnego pliku wykonywalnego szablonu eksportu, " +"znaleziono \"%s\", oczekiwano \"%s\"." + msgid "Debug Console Export" msgstr "Eksportowanie konsoli debugowej" msgid "Could not create console wrapper." msgstr "Nie udało się utworzyć pliku konsoli." +msgid "" +"Mismatching custom debug export template executable architecture: found " +"\"%s\", expected \"%s\"." +msgstr "" +"Niepasująca architektura własnego debugowego pliku wykonywalnego szablonu " +"eksportu, znaleziono \"%s\", oczekiwano \"%s\"." + +msgid "" +"Mismatching custom release export template executable architecture: found " +"\"%s\", expected \"%s\"." +msgstr "" +"Niepasująca architektura własnego wydaniowego pliku wykonywalnego szablonu " +"eksportu, znaleziono \"%s\", oczekiwano \"%s\"." + msgid "Failed to open executable file \"%s\"." msgstr "Nie udało się otworzyć pliku wykonywalnego \"%s\"." @@ -16396,6 +18119,14 @@ msgstr "" msgid "Could not created symlink \"%s\" -> \"%s\"." msgstr "Nie można utworzyć dowiązania symbolicznego \"%s\" -> \"%s\"." +msgid "" +"Unable to set Unix permissions for executable \"%s\". Use \"chmod +x\" to set " +"it after transferring the exported .app to macOS or Linux." +msgstr "" +"Nie udało się ustawić Unixowych uprawnień dla pliku wykonywalnego \"%s\". " +"Użyj \"chmod +x\", by ustawić je po przeniesieniu wyeksportowanego .app na " +"macOS albo Linux." + msgid "Could not open \"%s\"." msgstr "Nie można otworzyć \"%s\"." @@ -16595,6 +18326,13 @@ msgstr "Modyfikacja zasobów" msgid "Icon size \"%d\" is missing." msgstr "Brak rozmiaru ikony \"%d\"." +msgid "" +"Mismatching custom export template executable architecture: found \"%s\", " +"expected \"%s\"." +msgstr "" +"Niepasująca architektura własnego pliku wykonywalnego szablonu eksportu: " +"znaleziono \"%s\", oczekiwano \"%s\"." + msgid "Failed to rename temporary file \"%s\"." msgstr "Nie udało się zmienić nazwy pliku tymczasowego \"%s\"." @@ -16720,6 +18458,19 @@ msgstr "" "Animacja Particles2D wymaga użycia CanvasItemMaterial z włączonym \"Particles " "Animation\"." +msgid "" +"Particle trails are only available when using the Forward+ or Mobile " +"renderers." +msgstr "" +"Ścieżki cząstek są dostępne tylko w przypadku korzystania z renderera " +"Przedni+ lub Mobilny." + +msgid "" +"Particle sub-emitters are not available when using the Compatibility renderer." +msgstr "" +"Podemitery cząstek nie są dostępne w przypadku korzystania z renderera " +"Kompatybilnego." + msgid "" "A texture with the shape of the light must be supplied to the \"Texture\" " "property." @@ -16750,6 +18501,21 @@ msgstr "" "Pozycja początkowa NavigationLink2D powinna być inna niż pozycja końcowa, aby " "była użyteczna." +msgid "NavigationObstacle2D does not support negative or zero scaling." +msgstr "NavigationObstacle2D nie wspiera negatywnego lub zerowego skalowania." + +msgid "" +"The agent radius can only be scaled uniformly. The largest value along the " +"two axes of the global scale will be used to scale the radius. This value may " +"change in unexpected ways when the node is rotated." +msgstr "" +"Promień agenta może być skalowany tylko równomiernie. Największa wartość " +"wzdłuż dwóch osi globalnej skali będzie używana do skalowania promienia. Ta " +"wartość może się zmienić w nieoczekiwany sposób kiedy węzeł jest obracany." + +msgid "Skew has no effect on the agent radius." +msgstr "Skośność nie ma wpływu na promień agenta." + msgid "" "A NavigationMesh resource must be set or created for this node to work. " "Please set a property or draw a polygon." @@ -16823,6 +18589,13 @@ msgstr "" "Kształt jest niezbędny do działania CollisionShape2D. Proszę utworzyć zasób " "Shape!" +msgid "" +"The CollisionShape2D node has limited editing options for polygon-based " +"shapes. Consider using a CollisionPolygon2D node instead." +msgstr "" +"Węzeł CollisionShape2D ma ograniczone opcje edycji dla kształtów opartych na " +"wielokątach. Rozważ zamiast tego użycie węzła CollisionPolygon2D." + msgid "Node A and Node B must be PhysicsBody2Ds" msgstr "Node A i Node B muszą być węzłami PhysicsBody2D" @@ -16974,6 +18747,10 @@ msgstr "" "Animacja CPUParticles3D wymaga użycia StandardMaterial3D, którego tryb " "Billboard jest ustawiony na \"Particle Billboard\"." +msgid "Decals are only available when using the Forward+ or Mobile renderers." +msgstr "" +"Naklejki są dostępne tylko, gdy używany jest renderer Przedni+ lub Mobilny." + msgid "" "The decal has no textures loaded into any of its texture properties, and will " "therefore not be visible." @@ -17003,6 +18780,9 @@ msgstr "" "będzie malować obiektów na żadnej warstwie.\n" "By to rozwiązać, włącz co najmniej jeden bit we właściwości Maska usuwania." +msgid "Fog Volumes are only visible when using the Forward+ renderer." +msgstr "Obszary mgły są widoczne tylko, gdy użyty jest renderer Przedni+." + msgid "" "Fog Volumes need volumetric fog to be enabled in the scene's Environment in " "order to be visible." @@ -17046,6 +18826,13 @@ msgstr "" "Ślady włączone, ale jeden lub więcej materiałów siatek jest brakujące albo " "nie ustawione na renderowanie śladów." +msgid "" +"Particle sub-emitters are only available when using the Forward+ or Mobile " +"renderers." +msgstr "" +"Podemitery cząstek są dostępne tylko w przypadku korzystania z renderera " +"Przedni+ lub Mobilny." + msgid "" "The Bake Mask has no bits enabled, which means baking will not produce any " "collision for this GPUParticlesCollisionSDF3D.\n" @@ -17062,6 +18849,13 @@ msgstr "Skala światła nie wpływa na jego wizualny rozmiar." msgid "Projector texture only works with shadows active." msgstr "Tekstura projektora działa tylko z aktywnymi cieniami." +msgid "" +"Projector textures are not supported when using the Compatibility renderer " +"yet. Support will be added in a future release." +msgstr "" +"Tekstury projektora nie są jeszcze obsługiwane podczas korzystania z " +"renderera Kompatybilnego. Wsparcie zostanie dodane w przyszłym wydaniu." + msgid "A SpotLight3D with an angle wider than 90 degrees cannot cast shadows." msgstr "SpotLight3D o kącie szerszym niż 90 stopni nie może rzucać cieni." @@ -17089,6 +18883,46 @@ msgstr "Generowanie obszarów sond" msgid "Generating Probe Acceleration Structures" msgstr "Generowanie struktur przyspieszenia sond" +msgid "" +"Lightmaps can only be baked from a GPU that supports the RenderingDevice " +"backends.\n" +"Your GPU (%s) does not support RenderingDevice, as it does not support " +"Vulkan, Direct3D 12, or Metal.\n" +"Lightmap baking will not be available on this device, although rendering " +"existing baked lightmaps will work." +msgstr "" +"Mapy światła mogą być wypalone tylko na GPU, które wspiera zaplecza " +"RenderingDevice.\n" +"Twoje GPU (%s) nie wspiera RenderingDevice, gdyż nie wspiera Vulkana, " +"Direct3D 12 lub Metal.\n" +"Wypalanie map światła nie będzie dostępne na tym urządzeniu, aczkolwiek " +"renderowanie istniejących wypalonych map światła będzie działać." + +msgid "" +"The lightmap has no baked shadowmask textures. Please rebake with the " +"Shadowmask Mode set to anything other than None." +msgstr "" +"Mapa światła nie ma wypalonych tekstur maski cieni. Wypal ponownie z Trybem " +"maski cieni ustawionym na coś innego niż None." + +msgid "" +"Lightmaps cannot be baked on %s. Rendering existing baked lightmaps will " +"still work." +msgstr "" +"Mapy światła nie mogą być wypalone na %s. Renderowanie istniejących " +"wypalonych map światła nadal będzie działać." + +msgid "" +"Lightmaps cannot be baked, as the `lightmapper_rd` module was disabled at " +"compile-time. Rendering existing baked lightmaps will still work." +msgstr "" +"Mapy światła nie mogą być wypalone, gdyż moduł `lightmapper_rd` został " +"wyłączony podczas kompilacji. Renderowanie istniejących wypalonych map " +"światła nadal będzie działać." + +msgid "Forward axis and primary rotation axis must not be parallel." +msgstr "Oś przodu i główna oś obrotu nie mogą być równoległe." + msgid "" "The NavigationAgent3D can be used only under a Node3D inheriting parent node." msgstr "NavigationAgent3D może być użyty tylko pod węzłem dziedziczącym Node3D." @@ -17100,6 +18934,24 @@ msgstr "" "Pozycja początkowa NavigationLink3D powinna być inna niż pozycja końcowa, aby " "była użyteczna." +msgid "" +"NavigationObstacle3D only takes global rotation around the y-axis into " +"account. Rotations around the x-axis or z-axis might lead to unexpected " +"results." +msgstr "" +"NavigationObstacle3D bierze pod uwagę tylko globalny obrót wokół osi Y. " +"Obroty wokół osi X i Z mogą prowadzić do niespodziewanych wyników." + +msgid "NavigationObstacle3D does not support negative or zero scaling." +msgstr "NavigationObstacle3D nie wspiera negatywnego ani zerowego skalowania." + +msgid "" +"The agent radius can only be scaled uniformly. The largest scale value along " +"the three axes will be used." +msgstr "" +"Promień agenta może być skalowany tylko jednolicie. Będzie użyta największa " +"wartość skali wzdłuż trzech osi." + msgid "" "Occlusion culling is disabled in the Project Settings, which means occlusion " "culling won't be performed in the root viewport.\n" @@ -17132,7 +18984,7 @@ msgstr "" "będzie wykonywane żadne usuwanie powierzchni używając tego " "OccluderInstance3D.\n" "By to rozwiązać, ustaw właściwość Occluder na jeden z prymitywnych typów " -"zasłon lub wypiecz siatki sceny zaznaczając OccluderInstance3D i wciskając " +"zasłon lub wypal siatki sceny zaznaczając OccluderInstance3D i wciskając " "przycisk Wypiecz zasłony na górze widoku edytora 3D." msgid "" @@ -17144,7 +18996,7 @@ msgstr "" "Siatka zasłony ma mniej niż 3 wierzchołki, więc nie będzie wykonywane żadne " "usuwanie powierzchni używając tego OccluderInstance3D.\n" "By wygenerować właściwą siatkę zasłony, wybierz OccluderInstance3D i użyj " -"przycisku Wypiecz zasłony na górze widoku edytora 3D." +"przycisku Wypal zasłony na górze widoku edytora 3D." msgid "" "The polygon occluder has less than 3 vertices, so no occlusion culling will " @@ -17318,6 +19170,9 @@ msgstr "" "Właściwość \"Remote Path\" musi wskazywać na poprawny węzeł Node3D lub " "pochodny Node3D, aby działał." +msgid "There is no child Skeleton3D!" +msgstr "Nie ma potomnego węzła Skeleton3D!" + msgid "Skeleton3D node not set! SkeletonModifier3D must be child of Skeleton3D." msgstr "" "Węzeł Skeleton3D nie jest ustawiony! SkeletonModifier3D musi być węzłem " @@ -17326,6 +19181,9 @@ msgstr "" msgid "This body will be ignored until you set a mesh." msgstr "To ciało będzie ignorowane, dopóki nie ustawisz siatki." +msgid "Parent node should be a SpringBoneSimulator3D node." +msgstr "Węzłem nadrzędnym powinien być SpringBoneSimulator3D." + msgid "" "A SpriteFrames resource must be created or set in the \"Sprite Frames\" " "property in order for AnimatedSprite3D to display frames." @@ -17369,14 +19227,14 @@ msgid "" "rendering method." msgstr "" "Przezroczystość GeometryInstance3D jest dostępna tylko w przypadku " -"korzystania z zaplecza renderowania Forward+." +"korzystania z metody renderowania Przedni+." msgid "" "GeometryInstance3D visibility range transparency fade is only available when " "using the Forward+ rendering method." msgstr "" "Zanik przezroczystości w widocznym zakresie GeometryInstance3D jest dostępna " -"tylko w przypadku korzystania z zaplecza renderowania Forward+." +"tylko w przypadku korzystania z metody renderowania Przedni+." msgid "Plotting Meshes" msgstr "Kreślenie siatek" @@ -17387,6 +19245,13 @@ msgstr "Generowanie pola odległości" msgid "Finishing Plot" msgstr "Kończenie kreślenia" +msgid "" +"VoxelGI nodes are not supported when using the Compatibility renderer yet. " +"Support will be added in a future release." +msgstr "" +"Węzły VoxelGI nie są jeszcze obsługiwane podczas używania renderera " +"Kompatybilnego. Wsparcie zostanie dodane w przyszłym wydaniu." + msgid "" "No VoxelGI data set, so this node is disabled. Bake static objects to enable " "GI." @@ -17467,6 +19332,15 @@ msgstr "" msgid "Copy this constructor in a script." msgstr "Skopiuj ten konstruktor w skrypcie." +msgid "Load Color Palette" +msgstr "Wczytaj paletę kolorów" + +msgid "Save Color Palette" +msgstr "Zapisz paletę kolorów" + +msgid "Quick Load" +msgstr "Szybkie wczytywanie" + msgid "Switch between hexadecimal and code values." msgstr "Przełącz między szesnastkowymi i kodowymi wartościami." @@ -17508,6 +19382,16 @@ msgstr "" "Aktualna czcionka nie wspiera renderowania jednego lub więcej znaków użytych " "w tekście tego węzła Label." +msgid "" +"The current theme style has shadows and/or rounded corners for popups, but " +"those won't display correctly if \"display/window/per_pixel_transparency/" +"allowed\" isn't enabled in the Project Settings, nor if it isn't supported." +msgstr "" +"Aktualny styl motywu ma cienie i/lub zaokrąglone rogi dla wyskakujących " +"okienek, ale nie będą się wyświetlać poprawnie jeśli \"display/window/" +"per_pixel_transparency/allowed\" nie jest włączone w Ustawieniach Projektu, " +"ani kiedy nie jest wspierane." + msgid "If \"Exp Edit\" is enabled, \"Min Value\" must be greater than 0." msgstr "Jeśli \"Exp Edit\" jest włączone, \"Min Value\" musi być większe od 0." @@ -17691,6 +19575,12 @@ msgstr "Użyj wszystkich powierzchni" msgid "Surface Index" msgstr "Indeks powierzchni" +msgid "Division by zero error." +msgstr "Błąd dzielenia przez zero." + +msgid "Modulo by zero error." +msgstr "Błąd reszty z dzielenia przez zero." + msgid "" "Invalid number of arguments when calling stage function '%s', which expects " "%d arguments." @@ -17766,6 +19656,18 @@ msgstr "Oczekiwano znaku \",\" lub \")\" po argumencie." msgid "Varying may not be assigned in the '%s' function." msgstr "Zmienna varying nie może być przypisana w funkcji \"%s\"." +msgid "Varying with '%s' data type may only be assigned in the '%s' function." +msgstr "" +"Zmienna varying z typem danych \"%s\" może być przypisana tylko w funkcji " +"\"%s\"." + +msgid "" +"Varyings which assigned in '%s' function may not be reassigned in '%s' or " +"'%s'." +msgstr "" +"Zmienne varying przypisane w funkcji \"%s\" nie mogą zostać ponownie " +"przypisane w \"%s\" lub \"%s\"." + msgid "'%s' cannot be used within the '%s' processor function." msgstr "\"%s\" nie może być użyte wewnątrz funkcji procesora \"%s\"." @@ -17824,6 +19726,9 @@ msgstr "Oczekiwano dodatniej stałej całkowitej." msgid "Invalid data type for the array." msgstr "Nieprawidłowy typ danych dla tablicy." +msgid "Array size mismatch. Expected %d elements (found %d)." +msgstr "Niezgodność rozmiaru tablicy. Oczekiwano %d elementów (znaleziono %d)." + msgid "Expected array initialization." msgstr "Oczekiwano inicjalizacji tablicy." @@ -17877,6 +19782,13 @@ msgstr "" "By kontynuować z minimalnymi zmianami kodu, dodaj \"uniform sampler2D %s : " "hint_%s, filter_linear_mipmap\" w okolicy góry swojego shadera." +msgid "Varying with '%s' data type may only be used in the '%s' function." +msgstr "Varying z typem danych \"%s\" może być użyty tylko w funkcji \"%s\"." + +msgid "Varying '%s' must be assigned in the '%s' function first." +msgstr "" +"Zmienna varying \"%s\" musi najpierw zostać przypisana w funkcji \"%s\"." + msgid "Can't use function as identifier: '%s'." msgstr "Nie można użyć funkcji jako identyfikatora: \"%s\"." @@ -17907,10 +19819,6 @@ msgstr "Obiekt typu \"%s\" nie może być indeksowany." msgid "Invalid base type for increment/decrement operator." msgstr "Nieprawidłowy typ bazowy dla operatora inkrementacji/dekrementacji." -msgid "Invalid use of increment/decrement operator in a constant expression." -msgstr "" -"Nieprawidłowe użycie operatora inkrementacji/dekrementacji w wyrażeniu stałym." - msgid "Invalid token for the operator: '%s'." msgstr "Nieprawidłowy token dla operatora: \"%s\"." @@ -17964,6 +19872,9 @@ msgstr "" msgid "Expected a boolean expression." msgstr "Oczekiwano wyrażenia logicznego." +msgid "Expected an integer or unsigned integer expression." +msgstr "Oczekiwano wyrażenia całkowitego lub całkowitego bez znaku." + msgid "Cases must be defined before default case." msgstr "Przypadki case muszą być zdefiniowane przed przypadkiem domyślnym." @@ -17973,6 +19884,9 @@ msgstr "Przypadek domyślny musi być zdefiniowany tylko raz." msgid "'%s' must be placed within a '%s' block." msgstr "\"%s\" musi być umieszczony w bloku \"%s\"." +msgid "Expected an unsigned integer constant." +msgstr "Oczekiwano stałej całkowitej bez znaku." + msgid "Expected an integer constant." msgstr "Oczekiwano stałej całkowitej." @@ -17985,15 +19899,24 @@ msgstr "Użycie \"%s\" w funkcji procesora \"%s\" jest nieprawidłowe." msgid "Expected '%s' with an expression of type '%s'." msgstr "Oczekiwano \"%s\" z wyrażeniem typu \"%s\"." +msgid "'%s' function cannot return a value." +msgstr "Funkcja \"%s\" nie może zwracać wartości." + msgid "Expected return with an expression of type '%s'." msgstr "Oczekiwano wartości zwrotnej z wyrażeniem typu \"%s\"." +msgid "Use of '%s' is not supported for the '%s' shader type." +msgstr "Użycie \"%s\" nie jest wspierane dla typu shadera \"%s\"." + msgid "'%s' is not allowed outside of a loop or '%s' statement." msgstr "\"%s\" nie jest dozwolone poza pętlą lub deklaracją \"%s\"." msgid "'%s' is not allowed outside of a loop." msgstr "\"%s\" nie jest dozwolone poza pętlą." +msgid "The middle expression is expected to have a boolean data type." +msgstr "Środkowe wyrażenie powinno mieć boolowski typ danych." + msgid "The left expression is expected to be a variable declaration." msgstr "Oczekuje się, że lewe wyrażenie będzie deklaracją zmiennej." @@ -18112,6 +20035,15 @@ msgstr "Oczekiwano znaku \",\" po stałej całkowitej." msgid "Expected an integer constant after ','." msgstr "Oczekiwano stałej całkowitej po znaku \",\"." +msgid "Enum hint is for '%s' only." +msgstr "Podpowiedź wyliczenia dotyczy tylko \"%s\"." + +msgid "Expected a string constant." +msgstr "Oczekiwano stałej tekstowej." + +msgid "Expected ',' or ')' after string constant." +msgstr "Oczekiwano \",\" lub \")\" po stałej tekstowej." + msgid "Can only specify '%s' once." msgstr "Można określić \"%s\" tylko raz." @@ -18121,6 +20053,13 @@ msgstr "Indeks instancji nie może być ujemny." msgid "Allowed instance uniform indices must be within [0..%d] range." msgstr "Dozwolone indeksy uniformów instancji muszą być w zakresie [0..%d]." +msgid "" +"'hint_normal_roughness_texture' is only available when using the Forward+ " +"renderer." +msgstr "" +"\"hint_normal_roughness_texture\" jest dostępne tylko, gdy używany jest " +"renderer Przedni+." + msgid "'hint_normal_roughness_texture' is not supported in '%s' shaders." msgstr "'hint_normal_roughness_texture' nie jest obsługiwany w shaderach '%s'." @@ -18208,6 +20147,9 @@ msgstr "" msgid "Expected an identifier after type." msgstr "Oczekiwano identyfikatora po typie." +msgid "'%s' qualifier cannot be used with a function return type." +msgstr "Kwalifikator \"%s\" nie może być użyty z typem zwracanym funkcji." + msgid "" "The '%s' qualifier cannot be used within a function parameter declared with " "'%s'." @@ -18240,6 +20182,18 @@ msgid "Expected at least one '%s' statement in a non-void function." msgstr "" "Oczekiwano co najmniej jednej deklaracji '%s' w funkcji nie będącej typu void." +msgid "" +"Varying with integer data type must be declared with `%s` interpolation " +"qualifier." +msgstr "" +"Zmienna varying z całkowitym typem danych musi być zadeklarowana z " +"kwalifikatorem interpolacji `%s`." + +msgid "Too many varyings used in shader (%d used, maximum supported is %d)." +msgstr "" +"Zbyt wiele varying używanych w shaderze (używane %d, wspierane jest " +"maksymalnie %d)." + msgid "uniform buffer" msgstr "bufor uniformu" @@ -18276,12 +20230,18 @@ msgstr "\"##\" nie może występować na początku rozwinięcia makra." msgid "'##' must not appear at end of macro expansion." msgstr "\"##\" nie może występować na końcu rozwinięcia makra." +msgid "Unmatched '%s' directive." +msgstr "Niedopasowana dyrektywa \"%s\"." + msgid "Missing condition." msgstr "Brakujący warunek." msgid "Condition evaluation error." msgstr "Błąd oceny warunku." +msgid "Invalid '%s' directive." +msgstr "Nieprawidłowa dyrektywa \"%s\"." + msgid "Shader include file does not exist:" msgstr "Plik include shadera nie istnieje:" @@ -18301,6 +20261,9 @@ msgstr "Znaleziono cykliczne załączenie" msgid "Shader max include depth exceeded." msgstr "Przekroczona maksymalna głębokość załączenia shadera." +msgid "Cannot use '%s' on built-in define." +msgstr "Nie można użyć \"%s\" na wbudowanej definicji." + msgid "Macro expansion limit exceeded." msgstr "Przekroczony limit rozszerzenia makra." diff --git a/engine/editor/translations/editor/pt.po b/engine/editor/translations/editor/pt.po index e88c4e98..9a925812 100644 --- a/engine/editor/translations/editor/pt.po +++ b/engine/editor/translations/editor/pt.po @@ -72,13 +72,15 @@ # Moises Braz <moisesbroz1@gmail.com>, 2024. # Saulo de Freitas <saulodefreitas0@gmail.com>, 2025. # jk yano <jkyano397@gmail.com>, 2025. +# rtvr5656 <rtvr5656@gmail.com>, 2025. +# Bryam Sidoly <bsidoly123@gmail.com>, 2025. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2025-02-06 23:02+0000\n" -"Last-Translator: jk yano <jkyano397@gmail.com>\n" +"PO-Revision-Date: 2025-02-26 15:06+0000\n" +"Last-Translator: Bryam Sidoly <bsidoly123@gmail.com>\n" "Language-Team: Portuguese <https://hosted.weblate.org/projects/godot-engine/" "godot/pt/>\n" "Language: pt\n" @@ -86,7 +88,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 5.10-dev\n" +"X-Generator: Weblate 5.10.2-dev\n" msgid "Main Thread" msgstr "Thread Principal" @@ -444,6 +446,9 @@ msgstr "Mostrar Ocultos" msgid "Swap Input Direction" msgstr "Trocar Direção da Entrada" +msgid "Start Unicode Character Input" +msgstr "Começa Unicode Character Input" + msgid "Invalid input %d (not passed) in expression" msgstr "Entrada inválida %d (não passada) na expressão" @@ -685,6 +690,39 @@ msgstr "Mudar Duração da Animação" msgid "Change Animation Loop" msgstr "Mudar Ciclo da Animação" +msgid "" +"Can't change loop mode on animation instanced from an imported scene.\n" +"\n" +"To change this animation's loop mode, navigate to the scene's Advanced Import " +"settings and select the animation.\n" +"You can then change the loop mode from the inspector menu." +msgstr "" +"Não é possível alterar o modo de loop na animação instanciada de uma cena " +"importada.\n" +"\n" +"Para alterar o modo de loop desta animação, navegue até as configurações de " +"importação avançada da cena e selecione a animação.\n" +"Você pode então alterar o modo de loop no menu do inspetor." + +msgid "Can't change loop mode on animation instanced from an imported resource." +msgstr "" +"Não é possível alterar o modo de loop na animação instanciada de um recurso " +"importado." + +msgid "" +"Can't change loop mode on animation embedded in another scene.\n" +"\n" +"You must open this scene and change the animation's loop mode from there." +msgstr "" +"Não é possível alterar o modo loop na animação incorporada em outra cena.\n" +"\n" +"Você deve abrir esta cena e alterar o modo de loop da animação a partir daí." + +msgid "Can't change loop mode on animation embedded in another resource." +msgstr "" +"Não é possível alterar o modo de loop na animação incorporada em outro " +"recurso." + msgid "Property Track..." msgstr "Faixa de Propriedades..." @@ -778,6 +816,9 @@ msgstr "Flexibilização:" msgid "In-Handle:" msgstr "Manipulador-Interno:" +msgid "Out-Handle:" +msgstr "Alça externa:" + msgid "Handle mode: Free\n" msgstr "Modo manipular: Livre\n" @@ -1079,6 +1120,15 @@ msgstr "Apenas mostrar faixas de nós selecionados na árvore." msgid "Group tracks by node or display them as plain list." msgstr "Agrupar faixas por nó ou exibi-las como lista simples." +msgid "Apply snapping to timeline cursor." +msgstr "Aplique o ajuste ao cursor da linha do tempo." + +msgid "Apply snapping to selected key(s)." +msgstr "Aplique o ajuste às teclas selecionada(s)." + +msgid "Apply snapping to the nearest integer FPS." +msgstr "Aplique o ajuste ao FPS inteiro mais próximo." + msgid "Animation step value." msgstr "Valor passo da Animação." @@ -1299,12 +1349,75 @@ msgstr "Selecionar Tudo/Nada" msgid "Animation Change Keyframe Time" msgstr "Alterar Tempo do Quadro-Chave da Animação" +msgid "Marker name is read-only in the inspector." +msgstr "O nome do marcador é somente leitura no inspetor." + +msgid "" +"A marker's name can only be changed by right-clicking it in the animation " +"editor and selecting \"Rename Marker\", in order to make sure that marker " +"names are all unique." +msgstr "" +"O nome de um marcador só pode ser alterado clicando com o botão direito no " +"editor de animação e selecionando \"Renomear marcador\", para garantir que os " +"nomes dos marcadores sejam todos únicos." + +msgid "Insert Marker..." +msgstr "Inserir Marcador..." + +msgid "Rename Marker" +msgstr "Renomear Marcador" + +msgid "Delete Marker(s)" +msgstr "Deletar Marcador(es)" + +msgid "Show All Marker Names" +msgstr "Mostrar Todos os Nomes de Marcadores" + +msgid "Marker:" +msgstr "Marcador:" + +msgid "Animation Move Markers" +msgstr "Marcadores de Movimento de Animação" + +msgid "Animation Delete Markers" +msgstr "Apagar Marcadores da Animação" + +msgid "Marker '%s' already exists!" +msgstr "Marcador '%s' já existe!" + +msgid "Add Marker Key" +msgstr "Adicionar Chave de Marcador" + +msgid "Empty marker names are not allowed." +msgstr "Marcadores vazios não são permitidos." + +msgid "Insert Marker" +msgstr "Inserir Marcador" + +msgid "Marker Name" +msgstr "Definir Nome do Marcador" + +msgid "Marker Color" +msgstr "Cor do Marcador" + msgid "Close" msgstr "Fechar" msgid "Error!" msgstr "Erro!" +msgid "Change Marker Name:" +msgstr "Mudar o Nome do Marcador:" + +msgid "Edit Marker Color" +msgstr "Editar Cor do Marcador" + +msgid "Multi Edit Marker Color" +msgstr "Cor do Marcador de Edição Múltipla" + +msgid "Animation Change Marker Time" +msgstr "Tempo do Marcador de Mudança de Animação" + msgid "Add Audio Track Clip" msgstr "Adicionar Clip da Pista Áudio" @@ -1336,6 +1449,9 @@ msgid_plural "%d of %d matches" msgstr[0] "%d de %d correspondência" msgstr[1] "%d de %d correspondências" +msgid "Show Replace" +msgstr "Mostrar Substituição" + msgid "Find" msgstr "Localizar" @@ -1392,6 +1508,13 @@ msgstr "Avisos" msgid "Zoom factor" msgstr "Quantidade de zoom" +msgid "" +"%sMouse wheel, %s/%s: Finetune\n" +"%s: Reset" +msgstr "" +"%sRoda do mouse, %s/%s: Ajuste fino\n" +"%s: Redefinir" + msgid "Line and column numbers." msgstr "Números de Linha e Coluna." @@ -1552,6 +1675,12 @@ msgstr "Criar Novo %s" msgid "No results for \"%s\"." msgstr "Nenhum resultado para \"%s\"." +msgid "Script path: %s" +msgstr "Caminho do script: %s" + +msgid "The script will run in the editor." +msgstr "O script será executado no editor." + msgid "This class is marked as deprecated." msgstr "Esta classe está marcada como obsoleta." @@ -1582,6 +1711,9 @@ msgstr "Descrição:" msgid "Remote %s:" msgstr "%s remoto:" +msgid "Session %d" +msgstr "Sessão %d" + msgid "Debugger" msgstr "Depurador" @@ -1612,6 +1744,15 @@ msgstr "" msgid "Toggle Visibility" msgstr "Alternar visibilidade" +msgid "Expression to evaluate" +msgstr "Expressão para avaliar" + +msgid "Clear on Run" +msgstr "Limpar ao Executar" + +msgid "Evaluate" +msgstr "Avaliar" + msgid "Clear" msgstr "Limpar" @@ -1657,6 +1798,9 @@ msgstr "Parar" msgid "Start" msgstr "Início" +msgid "Autostart" +msgstr "Início automático" + msgid "Measure:" msgstr "Medida:" @@ -1666,6 +1810,9 @@ msgstr "Tempo do Frame (ms)" msgid "Average Time (ms)" msgstr "Tempo Médio (ms)" +msgid "Frame %" +msgstr "Quadro%" + msgid "Physics Frame %" msgstr "Frame de Física %" @@ -1693,6 +1840,9 @@ msgstr "" msgid "Display internal functions" msgstr "Mostrar funções internas" +msgid "Frame #:" +msgstr "Quadro #:" + msgid "Name" msgstr "Nome" @@ -1807,6 +1957,9 @@ msgstr "Expandir Tudo" msgid "Collapse All" msgstr "Colapsar Tudo" +msgid "Evaluator" +msgstr "Avaliador" + msgid "Profiler" msgstr "Analisador" @@ -1935,6 +2088,12 @@ msgstr "" msgid "Cannot remove:" msgstr "Incapaz de remover:" +msgid "Files to be deleted:" +msgstr "Arquivos a serem excluídos:" + +msgid "Dependencies of files to be deleted:" +msgstr "Dependências dos arquivos a serem excluídos:" + msgid "Error loading:" msgstr "Erro ao carregar:" @@ -1971,15 +2130,27 @@ msgstr "Recursos sem posse explícita:" msgid "Name cannot be empty." msgstr "O nome não pode estar vazio." +msgid "File name can't end with /." +msgstr "O nome do arquivo não pode terminar com /." + +msgid "File name cannot be empty." +msgstr "O nome do arquvo não pode ser vazio." + msgid "Folder name cannot be empty." msgstr "O nome da pasta não pode ser vazio." +msgid "File name contains invalid characters." +msgstr "O nome do arquivo contém caracteres inválidos." + msgid "Folder name contains invalid characters." msgstr "O nome da pasta contém caracteres inválidos." msgid "File name begins with a dot." msgstr "Nome do Arquivo começa com um ponto." +msgid "Folder name begins with a dot." +msgstr "O nome da pasta começa com um ponto." + msgid "File with that name already exists." msgstr "Já existe um arquivo com este nome." @@ -1990,6 +2161,19 @@ msgid "Using slashes in folder names will create subfolders recursively." msgstr "" "Usando barras em nomes de arquivos irá criar sub-arquivos recursivamente." +msgid "" +"Using slashes in path will create the file in subfolder, creating new " +"subfolders if necessary." +msgstr "" +"Usar barras no caminho criará o arquivo na subpasta, criando novas subpastas " +"se necessário." + +msgid "File name is valid." +msgstr "O nome do arquivo é inválido." + +msgid "Base path: %s" +msgstr "Caminho base: %s" + msgid "Folder name is valid." msgstr "O nome da pasta é válido." @@ -2272,6 +2456,9 @@ msgstr "Modelo de barramento de áudio" msgid "Invalid name." msgstr "Nome inválido." +msgid "Must be a valid Unicode identifier." +msgstr "Deve ser um identificador Unicode válido." + msgid "Must not collide with an existing engine class name." msgstr "Não se pode colidir com uma nome de classe de engine existente." @@ -2542,6 +2729,12 @@ msgstr "[vazio]" msgid "[unsaved]" msgstr "[não guardado]" +msgid "Open the %s dock." +msgstr "Abra o encaixe %s." + +msgid "Focus on the %s dock." +msgstr "Concentre-se no painel %s." + msgid "%s - Godot Engine" msgstr "%s - Godot Engine" @@ -2593,6 +2786,9 @@ msgstr "Importar Doca" msgid "History Dock" msgstr "Painel Histórico" +msgid "Game View" +msgstr "Visualização do jogo" + msgid "Allows to view and edit 3D scenes." msgstr "Permite ver e editar cenas 3D." @@ -2624,6 +2820,9 @@ msgid "Provides an overview of the editor's and each scene's undo history." msgstr "" "Fornece uma visão geral do editor e do histórico de desfazer de cada cena." +msgid "Provides tools for selecting and debugging nodes at runtime." +msgstr "Fornece ferramentas para selecionar e depurar nós em tempo de execução." + msgid "(current)" msgstr "(atual)" @@ -2711,6 +2910,30 @@ msgstr "Importar Perfil/Perfis" msgid "Manage Editor Feature Profiles" msgstr "Gerir Perfis de Funcionalidades do Editor" +msgid "Project initialization" +msgstr "Inicialização do projeto" + +msgid "Scanning file structure..." +msgstr "Verificando a estrutura do arquivo..." + +msgid "Loading global class names..." +msgstr "Carregando nomes de classes globais..." + +msgid "Verifying GDExtensions..." +msgstr "Verificando extensões GD..." + +msgid "Creating autoload scripts..." +msgstr "Criando scripts de carregamento automático..." + +msgid "Initializing plugins..." +msgstr "Inicializando plug-ins..." + +msgid "Starting file scan..." +msgstr "Iniciando a verificação de arquivos..." + +msgid "Scanning actions..." +msgstr "Ações de verificação..." + msgid "Some extensions need the editor to restart to take effect." msgstr "O editor deve ser reiniciado para que as alterações entrem em vigor." @@ -2723,6 +2946,15 @@ msgstr "Guardar & Reiniciar" msgid "ScanSources" msgstr "PesquisarFontes" +msgid "Registering global classes..." +msgstr "Registrando classes globais..." + +msgid "Updating scripts documentation" +msgstr "Atualizando documentação de scripts" + +msgid "Updating Scene Groups" +msgstr "Atualizando grupos de cenas" + msgid "" "There are multiple importers for different types pointing to file %s, import " "aborted" @@ -2733,9 +2965,24 @@ msgstr "" msgid "(Re)Importing Assets" msgstr "A (Re)Importar Recursos" +msgid "Preparing files to reimport..." +msgstr "Preparando arquivos para reimportação..." + +msgid "Executing pre-reimport operations..." +msgstr "Executando operações de pré-reimportação..." + msgid "Import resources of type: %s" msgstr "Importar recursos do tipo: %s" +msgid "Finalizing Asset Import..." +msgstr "Finalizando importação de Asset..." + +msgid "Executing post-reimport operations..." +msgstr "Executando operações pós-reimportação..." + +msgid "Copying files..." +msgstr "Copiando arquivos..." + msgid "This method supports a variable number of arguments." msgstr "Este método suporta uma quantidade variável de argumentos." @@ -2760,6 +3007,9 @@ msgstr "" "Este método não precisa de uma instância para ser chamado.\n" "Ele pode ser chamado diretamente usando o nome da classe." +msgid "Code snippet copied to clipboard." +msgstr "Trecho de código copiado para a área de transferência." + msgid "No return value." msgstr "Sem valor de retorno." @@ -2911,6 +3161,10 @@ msgstr "Ícones" msgid "Styles" msgstr "Estilos" +msgid "This theme property may be changed or removed in future versions." +msgstr "" +"Esta propriedade do tema pode ser alterada ou removida em versões futuras." + msgid "There is currently no description for this theme property." msgstr "Atualmente não há descrição para esta propriedade do tema." @@ -2988,9 +3242,15 @@ msgstr "Editor" msgid "Click to copy." msgstr "Clique para copiar." +msgid "Click to open in browser." +msgstr "Clique para abrir no navegador." + msgid "No description available." msgstr "Nenhuma descrição disponível." +msgid "This annotation may be changed or removed in future versions." +msgstr "Esta anotação pode ser alterada ou removida em versões futuras." + msgid "Show in FileSystem" msgstr "Mostrar no Sistema de Ficheiros" @@ -3000,12 +3260,24 @@ msgstr "Abrir no Gestor de Ficheiros" msgid "Class" msgstr "Classe" +msgid "Enumeration" +msgstr "Enumeração" + msgid "Constant" msgstr "Constante" +msgid "Metadata" +msgstr "Metadados" + +msgid "Setting" +msgstr "Configurações:" + msgid "Property" msgstr "Propriedade" +msgid "Internal Property" +msgstr "Propriedade Interna" + msgid "This property can only be set in the Inspector." msgstr "Esta propriedade só pode ser definida no Inspetor." @@ -3021,9 +3293,36 @@ msgstr "Sinal" msgid "Annotation" msgstr "Anotações" +msgid "Local Constant" +msgstr "Constante Local" + +msgid "Local Variable" +msgstr "Variável Local" + +msgid "This variable may be changed or removed in future versions." +msgstr "Esta variável pode ser alterada ou removida em versões futuras." + +msgid "TextFile" +msgstr "Arquivo de texto" + msgid "File" msgstr "Ficheiro" +msgid "Directory" +msgstr "Diretório" + +msgid "Invalid UID" +msgstr "UID inválido" + +msgid "This UID does not point to any valid Resource." +msgstr "Este UID não aponta para nenhum recurso válido." + +msgid "Invalid path" +msgstr "Caminho inválido" + +msgid "This path does not exist." +msgstr "Este caminho não existe." + msgid "%d match." msgstr "%d correspondência." @@ -3081,12 +3380,29 @@ msgstr "Tipo do Membro" msgid "Keywords" msgstr "Palavras-chave" +msgid "Matches the \"%s\" keyword." +msgstr "Corresponde à palavra-chave \"%s\"." + msgid "This member is marked as deprecated." msgstr "Este membro esta marcado como obsoleto." msgid "This member is marked as experimental." msgstr "Este membro está marcado como experimental." +msgid "Unfavorite Property" +msgstr "Propriedade não favorita" + +msgid "Make this property be put back at its original place." +msgstr "Faça com que esta propriedade seja devolvida ao seu local original." + +msgid "Favorite Property" +msgstr "Propriedade Favorita" + +msgid "Make this property be placed at the top for all objects of this class." +msgstr "" +"Faça com que esta propriedade seja colocada no topo de todos os objetos desta " +"classe." + msgid "Pin Value" msgstr "Fixar valor" @@ -3096,6 +3412,9 @@ msgstr "Fixar Valor [Desativado porque '%s' é restrito(a) ao editor]" msgid "Pinning a value forces it to be saved even if it's equal to the default." msgstr "Fixar um valor força-o a ser guardado mesmo que seja igual ao padrão." +msgid "Unfavorite All" +msgstr "Desfavoritar Tudo" + msgid "(%d change)" msgid_plural "(%d changes)" msgstr[0] "(%d alteração)" @@ -3281,6 +3600,10 @@ msgstr "Inspetor Nativo de Shader" msgid "Unnamed Project" msgstr "Projeto sem nome" +msgid "Recovery Mode is enabled. Editor functionality has been restricted." +msgstr "" +"O modo de recuperação está ativado. A funcionalidade do editor foi restrita." + msgid "" "Spins when the editor window redraws.\n" "Update Continuously is enabled, which can increase power usage. Click to " @@ -3489,6 +3812,9 @@ msgstr "" msgid "Save Scene As..." msgstr "Guardar Cena Como..." +msgid "Pack Project as ZIP..." +msgstr "Empacotar o projeto como ZIP..." + msgid "Can't undo while mouse buttons are pressed." msgstr "Incapaz de desfazer enquanto os botões do ‘mouse’ estão pressionados." @@ -3571,6 +3897,9 @@ msgstr "Esta operação não pode ser feita sem uma cena." msgid "Export Mesh Library" msgstr "Exportar Biblioteca de Malhas" +msgid "Quick Open Color Palette..." +msgstr "Paleta de Cores de Abertura Rápida..." + msgid "Unable to enable addon plugin at: '%s' parsing of config failed." msgstr "" "Incapaz de ativar plugin adicional em: '%s' análise da configuração falhou." @@ -3652,6 +3981,54 @@ msgstr "Limpar Cenas Recentes" msgid "There is no defined scene to run." msgstr "Não há cena definida para rodar." +msgid "Loading editor" +msgstr "Carregando editor" + +msgid "Loading editor layout..." +msgstr "Carregando layout do editor..." + +msgid "Loading docks..." +msgstr "Carregando docks..." + +msgid "Reopening scenes..." +msgstr "Reabrindo cenas..." + +msgid "Loading central editor layout..." +msgstr "Carregando layout do editor central..." + +msgid "Loading plugin window layout..." +msgstr "Carregando o layout da janela do plugin..." + +msgid "Editor layout ready." +msgstr "Layout do editor pronto." + +msgid "" +"No main scene has ever been defined. Select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Nenhuma cena principal foi definida. Selecione uma?\n" +"Você pode alterá-lo posteriormente em \"Configurações do projeto\" na " +"categoria 'aplicativo'." + +msgid "" +"Selected scene '%s' does not exist. Select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"A cena selecionada '%s' não existe. Selecione um válido?\n" +"Você pode alterá-lo posteriormente em \"Configurações do projeto\" na " +"categoria 'aplicativo'." + +msgid "" +"Selected scene '%s' is not a scene file. Select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"A cena selecionada '%s' não é um arquivo de cena. Selecione um válido?\n" +"Você pode alterá-lo posteriormente em \"Configurações do projeto\" na " +"categoria 'aplicativo'." + msgid "Save Layout..." msgstr "Gravar Layout..." @@ -3878,6 +4255,9 @@ msgstr "Editor de Configuração de Compilação da Engine..." msgid "Upgrade Mesh Surfaces..." msgstr "Atualizar Superfícies de forma..." +msgid "Upgrade UIDs..." +msgstr "Atualizar UIDs..." + msgid "Reload Current Project" msgstr "Recarregar Projeto Atual" @@ -4036,6 +4416,21 @@ msgstr "Exportar Biblioteca" msgid "Open & Run a Script" msgstr "Abrir & Executar um Script" +msgid "Files have been modified outside Godot" +msgstr "Os arquivos foram modificados fora do Godot" + +msgid "The following files are newer on disk:" +msgstr "Os seguintes arquivos são mais recentes no disco:" + +msgid "What action should be taken?" +msgstr "Que medidas devem ser tomadas?" + +msgid "Reload from disk" +msgstr "Recarregar do disco" + +msgid "Ignore external changes" +msgstr "Ignorar mudanças externas" + msgid "Create/Override Version Control Metadata..." msgstr "Criar/Sobrescrever Metadados de Controlo de Versão..." @@ -4060,6 +4455,9 @@ msgstr "Abrir Editor 3D" msgid "Open Script Editor" msgstr "Abrir Editor de Script" +msgid "Open Game View" +msgstr "Abra a visualização do jogo" + msgid "Open Asset Library" msgstr "Abrir Biblioteca de Recursos" @@ -4189,6 +4587,12 @@ msgstr "Novo Valor:" msgid "(Nil) %s" msgstr "(Nulo) %s" +msgid "%s%s (size %d)" +msgstr "%s%s (tamanho %d)" + +msgid "%s (size %d)" +msgstr "%s (tamanho %d)" + msgid "Size:" msgstr "Tamanho:" @@ -4258,6 +4662,12 @@ msgstr "Estender Script..." msgid "New Shader..." msgstr "Novo Shader..." +msgid "No Remote Deploy export presets configured." +msgstr "Nenhuma predefinição de exportação do Remote Deploy configurada." + +msgid "Remote Deploy" +msgstr "Implantação Remota" + msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the Export menu or define an existing preset " @@ -4268,6 +4678,29 @@ msgstr "" "Adicione um executável pré-definido no menu de exportação ou defina um pré-" "definido existente como executável." +msgid "" +"Warning: The CPU architecture \"%s\" is not active in your export preset.\n" +"\n" +msgstr "" +"Aviso: A arquitetura da CPU \"%s\" não está ativa na sua predefinição de " +"exportação.\n" +"\n" + +msgid "Run \"Remote Deploy\" anyway?" +msgstr "Executar \"Implantação Remota\" mesmo assim?" + +msgid "Deploy to First Device in List" +msgstr "Implantar no primeiro dispositivo da lista" + +msgid "Deploy to Second Device in List" +msgstr "Implantar no Segundo Dispositivo da Lista" + +msgid "Deploy to Third Device in List" +msgstr "Implantar no Terceiro Dispositivo da Lista" + +msgid "Deploy to Fourth Device in List" +msgstr "Implantar no Quarto Dispositivo da Lista" + msgid "Project Run" msgstr "Projeto" @@ -4277,6 +4710,9 @@ msgstr "Escreva a sua lógica no Método _run()." msgid "The current scene already has a root node." msgstr "A cena atual já tem um nó raiz." +msgid "Advanced settings are always shown when searching." +msgstr "As configurações avançadas são sempre mostradas durante a pesquisa." + msgid "Edit Built-in Action: %s" msgstr "Editar Ações Integradas: %s" @@ -4286,9 +4722,15 @@ msgstr "Editar Atalhos: %s" msgid "None" msgstr "Nenhum" +msgid "Primary" +msgstr "Primária" + msgid "Common" msgstr "Comum" +msgid "Event %d" +msgstr "Evento %d" + msgid "Editor Settings" msgstr "Configurações do Editor" @@ -4490,6 +4932,12 @@ msgstr "Erro Desconhecido" msgid "Export failed with error code %d." msgstr "Falha ao exportar com código de erro %d." +msgid "Patch Creation" +msgstr "Criação de patch" + +msgid "Could not load patch pack with path \"%s\"." +msgstr "Não foi possível carregar o patch pack com caminho \"%s\"." + msgid "Storing File: %s" msgstr "A armazenar ficheiro: %s" @@ -4499,6 +4947,29 @@ msgstr "Armazenar o Ficheiro:" msgid "No export template found at the expected path:" msgstr "Sem modelo de exportação encontrado no caminho esperado:" +msgid "" +"Using user provided text server data, text display in the exported project " +"might be broken if export template was built with different ICU version!" +msgstr "" +"Usando dados do servidor de texto fornecidos pelo usuário, a exibição do " +"texto no projeto exportado pode ser interrompida se o modelo de exportação " +"for criado com uma versão ICU diferente!" + +msgid "" +"Using editor embedded text server data, text display in the exported project " +"might be broken if export template was built with different ICU version!" +msgstr "" +"Usando dados do servidor de texto incorporados no editor, a exibição do texto " +"no projeto exportado pode ser interrompida se o modelo de exportação for " +"construído com uma versão ICU diferente!" + +msgid "" +"Missing text server data, text display in the exported project might be " +"broken!" +msgstr "" +"Dados do servidor de texto ausentes, a exibição do texto no projeto exportado " +"pode estar quebrada!" + msgid "ZIP Creation" msgstr "Geração de ZIP" @@ -4517,6 +4988,9 @@ msgstr "Não pôde criar arquivo \"%s\"." msgid "Failed to export project files." msgstr "Falha ao exportar arquivos do projeto." +msgid "No files or changes to export." +msgstr "Nenhum arquivo ou alteração para exportar." + msgid "Can't open file for writing at path \"%s\"." msgstr "Não foi possível abrir o ficheiro para gravação no caminho \"%s\"." @@ -4536,6 +5010,9 @@ msgstr "Incapaz de abrir o arquivo pelo caminho \"%s\"." msgid "Save ZIP" msgstr "Salvar ZIP" +msgid "Failed to move temporary file \"%s\" to \"%s\"." +msgstr "Falha ao mover o arquivo temporário \"%s\" para \"%s\"." + msgid "Custom debug template not found." msgstr "Modelo de depuração personalizado não encontrado." @@ -4568,6 +5045,12 @@ msgid "On 32-bit exports the embedded PCK cannot be bigger than 4 GiB." msgstr "" "Em exportações de 32 bits o PCK incorporado não pode ser maior do que 4 GiB." +msgid "GDExtension" +msgstr "Extensão GD" + +msgid "Failed to copy shared object \"%s\"." +msgstr "Falha ao copiar o objeto compartilhado \"%s\"." + msgid "Plugin \"%s\" is not supported on \"%s\"" msgstr "Plugin \"%s\" não é suportado em \"%s\"" @@ -4701,6 +5184,15 @@ msgstr "" msgid "Export templates are missing. Install them from a file." msgstr "Modelos de exportação ausentes. Instale-os de um ficheiro." +msgid "Not available in offline mode" +msgstr "Não disponível no modo off-line" + +msgid "Template downloading is disabled in offline mode." +msgstr "O download de Modelos está desativado no modo offline." + +msgid "No templates for development builds" +msgstr "Não há modelos para compilações de desenvolvimento" + msgid "Official export templates aren't available for development builds." msgstr "" "Modelos de exportação oficiais não estão disponíveis para compilações de " @@ -4812,9 +5304,15 @@ msgstr "Recursos a exportar:" msgid "(Inherited)" msgstr "(Herdado)" +msgid "Delete patch '%s' from list?" +msgstr "Excluir patch '%s' da lista?" + msgid "Export With Debug" msgstr "Exportar com Depuração" +msgid "Export As Patch" +msgstr "Exportar Como Correção" + msgid "%s Export" msgstr "Exportar %s" @@ -4900,9 +5398,18 @@ msgstr "" "Filtros para excluir ficheiros/pastas do projeto\n" "(separados por vírgula, ex: *.json, *.txt, docs/*)" +msgid "Patches" +msgstr "Correções:" + +msgid "Base Packs:" +msgstr "Pacotes básicos:" + msgid "Godot Project Pack" msgstr "Pacote do Projeto Godot" +msgid "Add Pack" +msgstr "Adicionar Pacote" + msgid "Features" msgstr "Funcionalidades" @@ -4941,6 +5448,9 @@ msgstr "Chave de Encriptação Inválida (tem de ter 64 caracteres hexadecimais) msgid "Encryption Key (256-bits as hexadecimal):" msgstr "Chave de Criptografia (256 bits como hexadecimal):" +msgid "Initialization vector seed" +msgstr "Semente do vetor de inicialização" + msgid "" "Note: Encryption key needs to be stored in the binary,\n" "you need to build the export templates from source." @@ -5060,6 +5570,9 @@ msgstr "Navegar" msgid "Confirm Path" msgstr "Confirmar Caminho" +msgid "Link to: %s" +msgstr "Link para: %s" + msgid "View items as a grid of thumbnails." msgstr "Visualizar itens como grelha de miniaturas." @@ -5089,6 +5602,9 @@ msgstr "Erro ao mover:" msgid "Error duplicating:" msgstr "Erro ao duplicar:" +msgid "Error duplicating directory:" +msgstr "Erro ao duplicar diretório:" + msgid "Unable to update dependencies for:" msgstr "Não é possível atualizar dependências para:" @@ -5116,6 +5632,9 @@ msgstr "" msgid "A file or folder with this name already exists." msgstr "Um Ficheiro ou diretoria já existe com este nome." +msgid "Could not create base directory: %s" +msgstr "Não foi possível criar o diretório base: %s" + msgid "" "The following files or folders conflict with items in the target location " "'%s':" @@ -5154,6 +5673,15 @@ msgstr "A duplicar Diretoria:" msgid "Create Folder" msgstr "Criar Pasta" +msgid "" +"Do you wish to convert these files to %s? (This operation cannot be undone!)" +msgstr "" +"Deseja converter estes arquivos para %s? (Esta operação não pode ser " +"desfeita!)" + +msgid "Could not create folder: %s" +msgstr "Não foi possível criar a pasta: %s" + msgid "New Inherited Scene" msgstr "Nova Cena Herdada" @@ -5214,12 +5742,18 @@ msgstr "Adicionar aos Favoritos" msgid "Remove from Favorites" msgstr "Remover dos Favoritos" +msgid "Convert to..." +msgstr "Converter para..." + msgid "Reimport" msgstr "Reimportar" msgid "Open in Terminal" msgstr "Abrir no Terminal" +msgid "Open Folder in Terminal" +msgstr "Abra a Pasta no Terminal" + msgid "New Folder..." msgstr "Nova Diretoria..." @@ -5329,6 +5863,9 @@ msgstr "Manter ambos" msgid "Create Script" msgstr "Criar Script" +msgid "Convert" +msgstr "Converter" + msgid "Find in Files" msgstr "Localizar em Ficheiros" @@ -5366,6 +5903,9 @@ msgstr "Substituir tudo (irreversível)" msgid "Searching..." msgstr "A procurar..." +msgid "Remove result" +msgstr "Remover resultado" + msgid "%d match in %d file" msgstr "%d correspondência no ficheiro %d" @@ -5456,6 +5996,27 @@ msgstr "Adicionar um novo grupo." msgid "Filter Groups" msgstr "Filtrar Grupos" +msgid "" +"Scroll Left\n" +"Hold Ctrl to scroll to the begin.\n" +"Hold Shift to scroll one page." +msgstr "" +"Rolar para a esquerda\n" +"Segure Ctrl para rolar até o início.\n" +"Segure Shift para rolar uma página." + +msgid "" +"Scroll Right\n" +"Hold Ctrl to scroll to the end.\n" +"Hold Shift to scroll one page." +msgstr "" +"Rolar para a direita\n" +"Segure Ctrl para rolar até o final.\n" +"Segure Shift para rolar uma página." + +msgid "Pin Bottom Panel Switching" +msgstr "Comutação do Painel Inferior do Pino" + msgid "Expand Bottom Panel" msgstr "Expandir Painel do Fundo" @@ -5495,6 +6056,9 @@ msgstr "" msgid "Select This Folder" msgstr "Selecionar esta Pasta" +msgid "Show Package Contents" +msgstr "Mostrar conteúdo do pacote" + msgid "All Files" msgstr "Todos os Ficheiros" @@ -5513,6 +6077,9 @@ msgstr "Abrir um Ficheiro ou Diretoria" msgid "Save a File" msgstr "Guardar um Ficheiro" +msgid "The path specified is invalid." +msgstr "O caminho especificado é inválido." + msgid "Could not create folder. File with that name already exists." msgstr "Não foi possível criar a pasta. Já existe uma com esse nome." @@ -5543,6 +6110,9 @@ msgstr "Alternar Modo" msgid "Focus Path" msgstr "Caminho de Foco" +msgid "Focus Filter" +msgstr "Filtro de foco" + msgid "Move Favorite Up" msgstr "Mover Favorito para Cima" @@ -5573,9 +6143,18 @@ msgstr "Diretorias e Ficheiros:" msgid "Toggle the visibility of hidden files." msgstr "Alternar a visibilidade de ficheiros escondidos." +msgid "Sort files" +msgstr "Classificar arquivos" + +msgid "Toggle the visibility of the filter for file names." +msgstr "Alterne a visibilidade do filtro para nomes de arquivos." + msgid "Preview:" msgstr "Pré-visualização:" +msgid "Filter:" +msgstr "Filtro:" + msgid "Filter" msgstr "Filtro" @@ -5599,6 +6178,45 @@ msgstr "Sub-recurso não encontrado." msgid "Open a list of sub-resources." msgstr "Abrir a lista de sub-recursos." +msgid "Search files..." +msgstr "Buscar arquivos..." + +msgid "Select Resource" +msgstr "Selecionar Recurso" + +msgid "Select Scene" +msgstr "Selecione a Cena" + +msgid "Fuzzy Search" +msgstr "Pesquisa Difusa" + +msgid "Enable fuzzy matching" +msgstr "Ativar correspondência difusa" + +msgid "Addons" +msgstr "Complementos" + +msgid "Include files from addons" +msgstr "Incluir arquivos de complementos" + +msgid "No files found for this type" +msgstr "Nenhum arquivo encontrado para este tipo" + +msgid "Start searching to find files..." +msgstr "Comece a pesquisar para encontrar arquivos..." + +msgid "No results found" +msgstr "Nenhum resultado encontrado" + +msgid " (recently opened)" +msgstr " .(recently opened)" + +msgid "Grid view" +msgstr "Visualização em grade" + +msgid "List view" +msgstr "Visualização de lista" + msgid "Play the project." msgstr "Executa o projeto." @@ -5632,9 +6250,73 @@ msgstr "" msgid "Could not start subprocess(es)!" msgstr "Incapaz de iniciar subprocesso(s)!" +msgid "Recovery Mode is enabled. Disable it to run the project." +msgstr "O modo de recuperação está ativado. Desative-o para executar o projeto." + +msgid "" +"Autostart is enabled for the following profilers, which can have a " +"performance impact:" +msgstr "" +"A inicialização automática está habilitada para os seguintes criadores de " +"perfil, o que pode afetar o desempenho:" + msgid "Network Profiler" msgstr "Analisador de Rede" +msgid "Click to open the first profiler for which autostart is enabled." +msgstr "" +"Clique para abrir o primeiro criador de perfil para o qual a inicialização " +"automática está habilitada." + +msgid "Recovery Mode" +msgstr "Modo de Recuperação" + +msgid "" +"Godot opened the project in Recovery Mode, which is a special mode that can " +"help recover projects that crash the engine upon initialization. The " +"following features have been temporarily disabled:" +msgstr "" +"Godot abriu o projeto no Modo de Recuperação, que é um modo especial que pode " +"ajudar a recuperar projetos que travam o mecanismo na inicialização. Os " +"seguintes recursos foram temporariamente desativados:" + +msgid "Tool scripts" +msgstr "Scripts de ferramentas" + +msgid "Editor plugins" +msgstr "Plug-ins do Editor" + +msgid "GDExtension addons" +msgstr "Complementos GDExtension" + +msgid "Automatic scene restoring" +msgstr "Restauração automática de cena" + +msgid "" +"If the project cannot be opened outside of this mode, then it's very likely " +"any of these components is preventing this project from launching. This mode " +"is intended only for basic editing to troubleshoot such issues, and therefore " +"it is not possible to run a project in this mode." +msgstr "" +"Se o projeto não puder ser aberto fora desse modo, é muito provável que algum " +"desses componentes esteja impedindo o lançamento do projeto. Este modo " +"destina-se apenas à edição básica para solucionar tais problemas e, portanto, " +"não é possível executar um projeto neste modo." + +msgid "" +"To disable Recovery Mode, reload the project by pressing the Reload button " +"next to the Recovery Mode banner, or by reopening the project normally." +msgstr "" +"Para desativar o Modo de Recuperação, recarregue o projeto pressionando o " +"botão Recarregar próximo ao banner do Modo de Recuperação ou reabrindo o " +"projeto normalmente." + +msgid "Disable recovery mode and reload the project." +msgstr "Desative o modo de recuperação e recarregue o projeto." + +msgid "Recovery Mode is enabled. Click for more details." +msgstr "O Modo de Recuperação está ativado. Clique para mais detalhes." + msgid "Run the project's default scene." msgstr "Execute a cena padrão do projeto." @@ -5653,12 +6335,24 @@ msgstr "Para o projeto atualmente em execução." msgid "Stop Running Project" msgstr "Parar de Executar o Projeto" +msgid "Run Scene in Regular Mode" +msgstr "Executar Cena no Modo Normal" + +msgid "Run Scene in XR Mode" +msgstr "Executar cena no modo XR" + msgid "Run the currently edited scene." msgstr "Execute a cena atual editada." msgid "Run Current Scene" msgstr "Executar Cena Atual" +msgid "Run in Regular Mode" +msgstr "Execute no modo normal" + +msgid "Run in XR Mode" +msgstr "Execute no modo XR" + msgid "Run a specific scene." msgstr "Execute uma cena específica." @@ -5724,6 +6418,15 @@ msgstr "" "Data do commit git:%s\n" "Clique para copiar a informação da versão." +msgid "" +"The root node of a scene is recommended to not be transformed, since " +"instances of the scene will usually override this. Reset the transform and " +"reload the scene to remove this warning." +msgstr "" +"Recomenda-se que o nó raiz de uma cena não seja transformado, pois as " +"instâncias da cena geralmente substituirão isso. Redefina a transformação e " +"recarregue a cena para remover esse aviso." + msgid "Toggle Visible" msgstr "Alternar Visibilidade" @@ -5733,6 +6436,9 @@ msgstr "Desbloquear Nó" msgid "Ungroup Children" msgstr "Desagrupar Filhos" +msgid "Revoke unique name for node \"%s\"?" +msgstr "Revogar o nome exclusivo do nó \"%s\"?" + msgid "Disable Scene Unique Name" msgstr "Desativar Nome Único de Cena" @@ -5742,6 +6448,16 @@ msgstr "(A Ligar de)" msgid "Node configuration warning:" msgstr "Aviso de configuração do nó:" +msgid "" +"This node can be accessed from anywhere within the scene it belongs to by " +"using the '%s' prefix in the node path." +msgstr "" +"Este nó pode ser acessado de qualquer lugar na cena a que pertence usando o " +"prefixo '%s' no caminho do nó." + +msgid "Click to disable this." +msgstr "Clique para desativar isso." + msgid "Node has one connection." msgid_plural "Node has {num} connections." msgstr[0] "O nó tem uma conexão." @@ -5755,6 +6471,16 @@ msgstr[1] "O nó está nos seguintes grupos:" msgid "Click to show signals dock." msgstr "Clique para mostrar o painel de sinais." +msgid "Click to show groups dock." +msgstr "Clique para mostrar o encaixe dos grupos." + +msgid "" +"This script can run in the editor.\n" +"It is currently disabled due to recovery mode." +msgstr "" +"Este script pode ser executado no editor.\n" +"Atualmente está desativado devido ao modo de recuperação." + msgid "This script is currently running in the editor." msgstr "Este script é executado no editor." @@ -5791,6 +6517,13 @@ msgstr "Abrir no Editor" msgid "\"%s\" is not a known filter." msgstr "\"%s\" não é um filtro conhecido." +msgid "" +"Root nodes cannot be accessed as unique names in their own scene. Instantiate " +"in another scene and set as unique name there." +msgstr "" +"Os nós raiz não podem ser acessados como nomes exclusivos em sua própria " +"cena. Instancie em outra cena e defina um nome exclusivo lá." + msgid "Invalid node name, the following characters are not allowed:" msgstr "Nome de nó inválido, os caracteres seguintes não são permitidos:" @@ -5812,6 +6545,19 @@ msgstr "Árvore de Cena (Nós):" msgid "Node Configuration Warning!" msgstr "Aviso de Configuração de Nó!" +msgid "Revoke" +msgstr "Revogar" + +msgid "Don't Ask Again" +msgstr "Não Pergunte Novamente" + +msgid "" +"This dialog can also be enabled/disabled in the Editor Settings: Docks > " +"Scene Tree > Ask Before Revoking Unique Name." +msgstr "" +"Esta caixa de diálogo também pode ser ativada/desativada nas Configurações do " +"Editor: Docks > Scene Tree > Ask Before Revoking Unique Name." + msgid "Allowed:" msgstr "Permitido:" @@ -5976,6 +6722,12 @@ msgstr "Materiais" msgid "Selected Animation Play/Pause" msgstr "Reproduzir/Pausar Animação Selecionada" +msgid "Selected Animation Stop" +msgstr "Parada de Animação Selecionada" + +msgid "Toggle Animation Skeleton Visibility" +msgstr "Alternar Visibilidade do Esqueleto da Animação" + msgid "Rotate Lights With Model" msgstr "Rotacionar Luzes com Modelo" @@ -6418,9 +7170,24 @@ msgstr "Gerir propriedades do objeto." msgid "This cannot be undone. Are you sure?" msgstr "Isto não pode ser desfeito. Tem certeza?" +msgid "Add %d Translation" +msgid_plural "Add %d Translations" +msgstr[0] "Adicionar %d Tradução" +msgstr[1] "Adicionar %d Traduções" + msgid "Remove Translation" msgstr "Remover tradução" +msgid "Translation Resource Remap: Add %d Path" +msgid_plural "Translation Resource Remap: Add %d Paths" +msgstr[0] "Remapear Recurso Tradução: Adicionar %d Caminho" +msgstr[1] "Remapear Recurso Tradução: Adicionar %d Caminhos" + +msgid "Translation Resource Remap: Add %d Remap" +msgid_plural "Translation Resource Remap: Add %d Remaps" +msgstr[0] "Remapear Recurso Tradução: Adicionar %d Remap" +msgstr[1] "Remapear Recurso Tradução: Adicionar %d Remaps" + msgid "Change Resource Remap Language" msgstr "Mudar Recurso Linguagem Remap" @@ -6430,6 +7197,11 @@ msgstr "Remover remapeamento de recurso" msgid "Remove Resource Remap Option" msgstr "Remover Recurso Opção Remap" +msgid "Add %d file for POT generation" +msgid_plural "Add %d files for POT generation" +msgstr[0] "Adicionar %d ficheiro(s) para geração de POT" +msgstr[1] "Adicionar %d ficheiro(s) para gerações de POTs" + msgid "Remove file from POT generation" msgstr "Remover ficheiro da geração de POTs" @@ -6699,6 +7471,24 @@ msgstr "Preencher Filhos Selecionados" msgid "Invert" msgstr "Inverter" +msgid "Start of Animation" +msgstr "Início da Animação" + +msgid "End of Animation" +msgstr "Fim da Animação" + +msgid "Set Custom Timeline from Marker" +msgstr "Definir Linha do Tempo Personalizada do Marcador" + +msgid "Select Markers" +msgstr "Selecionar Marcadores" + +msgid "Start Marker" +msgstr "Marcador Incial" + +msgid "End Marker" +msgstr "Marcador Final" + msgid "Library Name:" msgstr "Nome da Biblioteca:" @@ -6930,6 +7720,21 @@ msgstr "Nome da Animação Duplicada:" msgid "Onion skinning requires a RESET animation." msgstr "Onion skinning requer uma animação RESET." +msgid "Play Animation Backwards" +msgstr "Reproduzir Animação ao Contrário" + +msgid "Play Animation Backwards from End" +msgstr "Reproduzir Animação de Trás para Frente a partir do Final" + +msgid "Pause/Stop Animation" +msgstr "Pausar/Parar Animação" + +msgid "Play Animation from Start" +msgstr "Reproduzir animação desde o Início" + +msgid "Play Animation" +msgstr "Reproduzir Animação" + msgid "Animation position (in seconds)." msgstr "Posição da Animação (em segundos)." @@ -7005,6 +7810,12 @@ msgstr "Tempos de Mistura:" msgid "Next (Auto Queue):" msgstr "Próximo (Auto-Fila):" +msgid "Go to Next Keyframe" +msgstr "Vá para o Próximo Quadro-chave" + +msgid "Go to Previous Keyframe" +msgstr "Ir para o Quadro-chave Anterior" + msgid "Toggle Animation Bottom Panel" msgstr "Alternar exibição do Painel Inferior de Animação" @@ -7495,6 +8306,9 @@ msgstr "" "Alt+RMB: Mostra lista de todos os nós na posição clicada, incluindo os " "trancados." +msgid "(Available in all modes.)" +msgstr "(Disponível em todos os modos.)" + msgid "RMB: Add node at position clicked." msgstr "RMB: Adicionar nó na posição clicada." @@ -7513,6 +8327,19 @@ msgstr "Shift: Escalar proporcionalmente." msgid "Show list of selectable nodes at position clicked." msgstr "Mostra lista de nós selecionáveis na posição clicada." +msgid "Click to change object's pivot." +msgstr "Clique para alterar o pivô do objeto." + +msgid "Shift: Set temporary pivot." +msgstr "Shift: Defina o pivô temporário." + +msgid "" +"Click this button while holding Shift to put the temporary pivot in the " +"center of the selected nodes." +msgstr "" +"Clique neste botão enquanto segura Shift para colocar o pivô temporário no " +"centro dos nós selecionados." + msgid "Pan Mode" msgstr "Modo deslocamento" @@ -8119,6 +8946,13 @@ msgstr "" msgid "Edit Plugin" msgstr "Editar Plugin" +msgid "" +"Recovery mode is enabled. Enabled plugins will not run while this mode is " +"active." +msgstr "" +"O Modo de Recuperação está ativado. Os plug-ins habilitados não serão " +"executados enquanto este modo estiver ativo." + msgid "Installed Plugins:" msgstr "Plugins Instalados:" @@ -8195,9 +9029,173 @@ msgstr "Larguras do Leste Asiático" msgid "Numeral Alignment" msgstr "Alinhamento Numeral" +msgid "Variation" +msgstr "Variação" + msgid "Unable to preview font" msgstr "Incapaz de visualizar a fonte" +msgid "Connection impossible to the game process." +msgstr "Conexão impossível ao processo do jogo." + +msgid "Game starting..." +msgstr "Inciando Jogo..." + +msgid "Game running not embedded." +msgstr "Jogo em execução não incorporado." + +msgid "Press play to start the game." +msgstr "Pressione play para iniciar o jogo." + +msgid "Embedding is disabled." +msgstr "A incorporação está desativada." + +msgid "" +"Game embedding not available on Wayland.\n" +"Wayland can be disabled in the Editor Settings (Run > Platforms > Linux/*BSD " +"> Prefer Wayland)." +msgstr "" +"Incorporação de jogos não disponível no Wayland.\n" +"O Wayland pode ser desabilitado nas configurações do editor (Executar > " +"Plataformas > Linux/*BSD > Preferir Wayland)." + +msgid "Game embedding not available on your OS." +msgstr "A incorporação de jogos não está disponível no seu Sistema Operacional." + +msgid "" +"Game embedding not available for the Display Server: '%s'.\n" +"Display Server can be modified in the Project Settings (Display > Display " +"Server > Driver)." +msgstr "" +"Incorporação de jogo não disponível para o Display Server: '%s'.\n" +"O Display Server pode ser modificado nas Configurações do Projeto (Display > " +"Display Server > Driver)." + +msgid "" +"Game embedding not available when the game starts minimized.\n" +"Consider overriding the window mode project setting with the editor feature " +"tag to Windowed to use game embedding while leaving the exported project " +"intact." +msgstr "" +"A incorporação do jogo não está disponível quando o jogo começa minimizado.\n" +"Considere substituir a configuração do projeto no modo de janela com a tag de " +"recurso do editor para Windowed para usar a incorporação do jogo, deixando o " +"projeto exportado intacto." + +msgid "" +"Game embedding not available when the game starts maximized.\n" +"Consider overriding the window mode project setting with the editor feature " +"tag to Windowed to use game embedding while leaving the exported project " +"intact." +msgstr "" +"A incorporação do jogo não está disponível quando o jogo começa maximizado.\n" +"Considere substituir a configuração do projeto no modo de janela com a tag de " +"recurso do editor para Windowed para usar a incorporação do jogo, deixando o " +"projeto exportado intacto." + +msgid "" +"Game embedding not available when the game starts in fullscreen.\n" +"Consider overriding the window mode project setting with the editor feature " +"tag to Windowed to use game embedding while leaving the exported project " +"intact." +msgstr "" +"A incorporação do jogo não está disponível quando o jogo inicia em tela " +"cheia.\n" +"Considere substituir a configuração do projeto no modo de janela com a tag de " +"recurso do editor para Windowed para usar a incorporação do jogo, deixando o " +"projeto exportado intacto." + +msgid "Game embedding not available in single window mode." +msgstr "A incorporação de jogos não está disponível no modo de janela única." + +msgid "Suspend" +msgstr "Suspender" + +msgid "Next Frame" +msgstr "Próximo quadro" + +msgid "Input" +msgstr "Entrada" + +msgid "Allow game input." +msgstr "Permitir entrada do jogo." + +msgid "" +"Disable game input and allow to select Node2Ds, Controls, and manipulate the " +"2D camera." +msgstr "" +"Desative a entrada do jogo e permita selecionar Node2Ds, controles e " +"manipular a câmera 2D." + +msgid "" +"Disable game input and allow to select Node3Ds and manipulate the 3D camera." +msgstr "" +"Desative a entrada do jogo e permita selecionar Node3Ds e manipular a câmera " +"3D." + +msgid "Toggle Selection Visibility" +msgstr "Alternar visibilidade da seleção" + +msgid "Alt+RMB: Show list of all nodes at position clicked." +msgstr "Alt+RMB: Mostra a lista de todos os nós na posição clicada." + +msgid "Override the in-game camera." +msgstr "Substitua a câmera do jogo." + +msgid "Camera Override Options" +msgstr "Opções de Substituição da Câmera" + +msgid "Reset 2D Camera" +msgstr "Redefinir Câmera 2D" + +msgid "Reset 3D Camera" +msgstr "Redefinir Câmera 3D" + +msgid "Manipulate In-Game" +msgstr "Manipular no jogo" + +msgid "Manipulate From Editors" +msgstr "Manipular dos editores" + +msgid "" +"Embedded game size is based on project settings.\n" +"The 'Keep Aspect' mode is used when the Game Workspace is smaller than the " +"desired size." +msgstr "" +"O tamanho do jogo incorporado é baseado nas configurações do projeto.\n" +"O modo 'Keep Aspect' é usado quando o espaço de trabalho do jogo é menor que " +"o tamanho desejado." + +msgid "Keep the aspect ratio of the embedded game." +msgstr "Mantenha a proporção do jogo incorporado." + +msgid "Embedded game size stretches to fit the Game Workspace." +msgstr "" +"O tamanho do jogo incorporado se estende para caber no espaço de trabalho do " +"jogo." + +msgid "Embedding Options" +msgstr "Opções de Incorporação" + +msgid "Embed Game on Next Play" +msgstr "Incorporar Jogo na Próxima Jogada" + +msgid "Make Game Workspace Floating on Next Play" +msgstr "Faça o Espaço de Trabalho do Jogo Flutuar na Próxima Jogada" + +msgid "Game Workspace" +msgstr "Espaço de trabalho do jogo" + +msgid "" +"No \"%s\" library found for GDExtension: \"%s\". Possible feature flags for " +"your platform: %s" +msgstr "" +"Nenhuma biblioteca \"%s\" encontrada para Extensão GD: \"%s\". Possíveis " +"sinalizadores de recursos para sua plataforma: %s" + +msgid "Multiple \"%s\" libraries found for GDExtension: \"%s\": \"%s\"." +msgstr "Várias bibliotecas \"%s\" encontradas para GDExtension: \"%s\": \"%s\"." + msgid "Change AudioStreamPlayer3D Emission Angle" msgstr "Mudar ângulo de emissão de AudioStreamPlayer3D" @@ -8334,6 +9332,47 @@ msgstr "" "Incapaz de determinar um caminho para guardar imagens lightmap.\n" "Guarde a sua cena e tente novamente." +msgid "" +"No meshes with lightmapping support to bake. Make sure they contain UV2 data " +"and their Global Illumination property is set to Static." +msgstr "" +"Sem malhas com suporte de mapeamento de luz para assar. Certifique-se de que " +"eles contenham dados UV2 e que sua propriedade \"Iluminação Global\" esteja " +"definida como \"Estática\"." + +msgid "" +"To import a scene with lightmapping support, set Meshes > Light Baking to " +"Static Lightmaps in the Import dock." +msgstr "" +"Para importar uma cena com suporte para lightmapping, defina Meshes > Light " +"Baking como Static Lightmaps no Dock Import." + +msgid "" +"To enable lightmapping support on a primitive mesh, edit the PrimitiveMesh " +"resource in the inspector and check Add UV2." +msgstr "" +"Para ativar o suporte ao lightmapping em uma malha primitiva, edite o recurso " +"PrimitiveMesh no inspetor e marque Adicionar UV2." + +msgid "" +"To enable lightmapping support on a CSG mesh, select the root CSG node and " +"choose CSG > Bake Mesh Instance at the top of the 3D editor viewport.\n" +"Select the generated MeshInstance3D node and choose Mesh > Unwrap UV2 for " +"Lightmap/AO at the top of the 3D editor viewport." +msgstr "" +"Para ativar o suporte ao lightmapping em uma malha CSG, selecione o nó CSG " +"raiz e escolha CSG > Bake Mesh Instance na parte superior da janela de " +"visualização do editor 3D.Assar(Pré-calcular)\n" +"Selecione o nó MeshInstance3D gerado e escolha Mesh > Unwrap UV2 for Lightmap/" +"AO na parte superior da janela de visualização do editor 3D." + +msgid "" +"Failed creating lightmap images. Make sure the lightmap destination path is " +"writable." +msgstr "" +"Falha ao criar imagens de lightmap. Certifique-se de que o caminho de destino " +"do lightmap seja gravável." + msgid "No editor scene root found." msgstr "Nenhuma cena raiz do editor encontrada." @@ -8349,6 +9388,15 @@ msgstr "" "Apesar disso poder ser corrigido aumentando o tamanho máximo das texturas, é " "recomendado que divida a cena em mais objetos em vez disso." +msgid "" +"Failed creating lightmap images. Make sure all meshes to bake have the " +"Lightmap Size Hint property set high enough, and the LightmapGI's Texel Scale " +"value is not too low." +msgstr "" +"Falha ao criar imagens de lightmap. Certifique-se de que todas as malhas a " +"serem preparadas tenham a propriedade Lightmap Size Hint definida alta o " +"suficiente e que o valor da escala Texel do LightmapGI não seja muito baixo." + msgid "" "Failed fitting a lightmap image into an atlas. This should never happen and " "should be reported." @@ -8359,12 +9407,28 @@ msgstr "" msgid "Bake Lightmaps" msgstr "Consolidar Lightmaps" +msgid "Lightmap baking is not supported on this GPU (%s)." +msgstr "O cozimento Lightmap não é compatível com esta GPU (%s)." + +msgid "Lightmaps cannot be baked on %s." +msgstr "Lightmaps não podem ser criados em %s." + +msgid "" +"Lightmaps cannot be baked, as the `lightmapper_rd` module was disabled at " +"compile-time." +msgstr "" +"Lightmaps não podem ser criados, pois o módulo `lightmapper_rd` foi " +"desabilitado em tempo de compilação." + msgid "LightMap Bake" msgstr "Bake de Mapa de Luz" msgid "Select lightmap bake file:" msgstr "Selecionar ficheiro de consolidação de lightmap:" +msgid "Preview is not available for this shader mode." +msgstr "A visualização não está disponível para este modo de sombreador." + msgid "Couldn't create a Trimesh collision shape." msgstr "Não consegui criar uma forma de colisão Trimesh." @@ -8555,6 +9619,30 @@ msgstr "" msgid "UV Channel Debug" msgstr "Depuração Canal UV" +msgid "Create NavigationMesh" +msgstr "Criar Malha de Navegação" + +msgid "" +"Before converting a rendering mesh to a navigation mesh, please verify:\n" +"\n" +"- The mesh is two-dimensional.\n" +"- The mesh has no surface overlap.\n" +"- The mesh has no self-intersection.\n" +"- The mesh surfaces have indices.\n" +"\n" +"If the mesh does not fulfill these requirements, the pathfinding will be " +"broken." +msgstr "" +"Antes de converter uma malha de renderização em uma malha de navegação, " +"verifique:\n" +"\n" +"- A malha é bidimensional.\n" +"- A malha não possui sobreposição superficial.\n" +"- A malha não possui autointersecção.\n" +"- As superfícies da malha possuem índices.\n" +"\n" +"Se a malha não atender a esses requisitos, o pathfinding será interrompido." + msgid "Remove item %d?" msgstr "Remover item %d?" @@ -8667,9 +9755,45 @@ msgstr "Definir start_position" msgid "Set end_position" msgstr "Definir end_position" +msgid "Set Obstacle Vertices" +msgstr "Definir Vértices de Obstáculo" + +msgid "Edit Obstacle (Flip Winding)" +msgstr "Editar Obstáculo (Flip Winding)" + +msgid "Edit Obstacle (Clear Vertices)" +msgstr "Editar Obstáculo (Limpar Vértices)" + +msgid "Add Vertex" +msgstr "Adicionar vértice" + +msgid "Edit Vertex" +msgstr "Editar Vértice" + +msgid "Delete Vertex" +msgstr "Excluir Vértice" + +msgid "Flip Winding" +msgstr "Virar Enrolamento" + +msgid "Clear Vertices" +msgstr "Limpar Vértices" + +msgid "Edit Obstacle (Add Vertex)" +msgstr "Editar Obstáculo (Adicionar Vértice)" + +msgid "Edit Obstacle (Move Vertex)" +msgstr "Editar Obstáculo (Mover Vértice)" + +msgid "Edit Obstacle (Remove Vertex)" +msgstr "Editar Obstáculo (Remover Vértice)" + msgid "Please Confirm..." msgstr "Confirme por favor..." +msgid "Remove all vertices?" +msgstr "Remover todas as vértices?" + msgid "Create Navigation Polygon" msgstr "Criar Polígono de navegação" @@ -8744,6 +9868,9 @@ msgstr "Ortogonal Traseira" msgid "Rear Perspective" msgstr "Perspetiva Traseira" +msgid "[auto]" +msgstr "[auto]" + msgid "X-Axis Transform." msgstr "Transformação no Eixo X." @@ -8948,6 +10075,9 @@ msgstr "Ver ambiente" msgid "View Gizmos" msgstr "Ver Bugigangas" +msgid "View Transform Gizmo" +msgstr "Ver Gizmo de Transformação" + msgid "View Grid" msgstr "Ver grelha" @@ -8972,6 +10102,24 @@ msgstr "Pré-visualização Cinemática" msgid "Not available when using the OpenGL renderer." msgstr "Não disponível ao usar o renderizador OpenGL." +msgid "Viewport Orbit Modifier 1" +msgstr "Modificador de Órbita da Viewport 1" + +msgid "Viewport Orbit Modifier 2" +msgstr "Modificador de Órbita da Viewport 2" + +msgid "Viewport Pan Modifier 1" +msgstr "Modificador Panorâmico da Janela de Visualização 1" + +msgid "Viewport Pan Modifier 2" +msgstr "Modificador Panorâmico da Janela de Visualização 2" + +msgid "Viewport Zoom Modifier 1" +msgstr "Modificador de Zoom da Janela de Visualização 1" + +msgid "Viewport Zoom Modifier 2" +msgstr "Modificador de Zoom da Janela de Visualização 2" + msgid "Freelook Left" msgstr "Freelook Esquerda" @@ -9023,6 +10171,9 @@ msgstr "Iniciar Rotação da Transformação" msgid "Begin Scale Transformation" msgstr "Iniciar Escala da Transformação" +msgid "Reposition Using Collisions" +msgstr "Reposicionar Usando Colisões" + msgid "Toggle Camera Preview" msgstr "Alternar Pré-visualização da Câmara" @@ -9105,6 +10256,9 @@ msgstr "" "Agrupa o nó selecionado com os seu(s) Filho(a). Isto seleciona o Pai quando " "qualquer Nó Filho(a) é clicado em 2D e 3D view." +msgid "LMB+Drag: Measure the distance between two points in 3D space." +msgstr "LMB+Arrastar: Mede a distância entre dois pontos no espaço 3D." + msgid "Use Local Space" msgstr "Usar Espaço Local" @@ -9423,6 +10577,9 @@ msgstr "" msgid "Generating..." msgstr "A gerar..." +msgid "Loading emission mask requires ParticleProcessMaterial." +msgstr "Carregar máscara de emissão requer ParticleProcessMaterial." + msgid "GPUParticles2D" msgstr "GPUParticles2D" @@ -9486,6 +10643,9 @@ msgstr "Fonte de emissão:" msgid "A processor material of type 'ParticleProcessMaterial' is required." msgstr "Um material processador do tipo 'ParticleProcessMaterial' é necessário." +msgid "Create Emission Points" +msgstr "Criar Pontos de Emissão" + msgid "GPUParticles3D" msgstr "GPUParticles3D" @@ -9528,6 +10688,9 @@ msgstr "Fechar a Curva" msgid "Clear Curve Points" msgstr "Limpar Pontos de Curva" +msgid "Create Curve in Path2D" +msgstr "Criar Curva no Path2D" + msgid "Select Points" msgstr "Selecionar Pontos" @@ -9567,6 +10730,9 @@ msgstr "Espelhar ângulos do manipulador" msgid "Mirror Handle Lengths" msgstr "Espelhar comprimentos do manipulador" +msgid "Create Curve" +msgstr "Criar Curva" + msgid "Curve Point #" msgstr "Ponto da curva #" @@ -9886,6 +11052,9 @@ msgstr "" "AnimationMixer não possui um caminho de nó raiz válido, portanto, não é " "possível recuperar nomes de faixas." +msgid "(truncated)" +msgstr "(truncado)" + msgid "Can't open '%s'. The file could have been moved or deleted." msgstr "Incapaz de abrir '%s'. O ficheiro pode ter sido movido ou apagado." @@ -10090,6 +11259,9 @@ msgstr "Texto Simples" msgid "JSON" msgstr "JSON" +msgid "Markdown" +msgstr "Remarcação" + msgid "Connections to method:" msgstr "Conexões ao método:" @@ -10130,6 +11302,9 @@ msgstr "Não é possível descartar nós sem uma cena aberta." msgid "Can't drop nodes because script '%s' does not inherit Node." msgstr "Não é possível descartar nós porque o script '%s' não herda o Node." +msgid "Emoji & Symbols" +msgstr "Emoji e Símbolos" + msgid "Pick Color" msgstr "Escolher cor" @@ -10312,6 +11487,9 @@ msgstr "Sobrescrever Pose de Descanso" msgid "Set Bone Transform" msgstr "Definir Transformada de Osso" +msgid "Modify metadata '%s' for bone '%s'" +msgstr "Modifique os metadados '%s' do osso '%s'" + msgid "Set Bone Rest" msgstr "Definir Repouso do Osso" @@ -12328,6 +13506,9 @@ msgstr "" "A visualização 2D não pode mostrar corretamente o resultado recuperado do " "parâmetro de instância." +msgid "Copy Preview Shader Parameters From Material" +msgstr "Copiar parâmetros de Shader de Visualização do material" + msgid "Add Input Port" msgstr "Adicionar Porta de Entrada" @@ -15790,13 +16971,6 @@ msgstr "" "Falha ao exportar plugins do iOS com código %d. Por favor verifique o log de " "saída." -msgid "ARM64 simulator library, generating from device library." -msgstr "" -"Biblioteca de simulador ARM64, gerando a partir da biblioteca do dispositivo." - -msgid "Unable to generate ARM64 simulator library." -msgstr "Não é possível gerar a biblioteca do simulador ARM64." - msgid "Could not copy a file at path \"%s\" to \"%s\"." msgstr "Não foi possível copiar um arquivo do caminho \"%s\" para \"%s\"." @@ -17536,10 +18710,6 @@ msgstr "Um objeto do tipo '%s' não pode ser indexado." msgid "Invalid base type for increment/decrement operator." msgstr "Tipo de base inválido para operador de incremento/decremento." -msgid "Invalid use of increment/decrement operator in a constant expression." -msgstr "" -"Uso inválido do operador de incremento/decremento numa expressão constante." - msgid "Invalid token for the operator: '%s'." msgstr "Token inválido para o operador: '%s'." @@ -17928,6 +19098,9 @@ msgstr "Inclusão cíclica encontrada" msgid "Shader max include depth exceeded." msgstr "Shader max inclui profundidade excedida." +msgid "Cannot use '%s' on built-in define." +msgstr "Não é possível usar '%s' na definição integrada." + msgid "Macro expansion limit exceeded." msgstr "Limite de expansão de macro excedido." diff --git a/engine/editor/translations/editor/pt_BR.po b/engine/editor/translations/editor/pt_BR.po index ee02c9c9..256743df 100644 --- a/engine/editor/translations/editor/pt_BR.po +++ b/engine/editor/translations/editor/pt_BR.po @@ -198,13 +198,14 @@ # GSPAtens <g007sp@gmail.com>, 2024. # dweob <dweob@c0de.wtf>, 2024. # DX_studios1 <biel.escarabichi@gmail.com>, 2025. +# Smiter <friverick321@gmail.com>, 2025. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: 2016-05-30\n" -"PO-Revision-Date: 2025-01-22 04:17+0000\n" -"Last-Translator: DX_studios1 <biel.escarabichi@gmail.com>\n" +"PO-Revision-Date: 2025-02-11 01:02+0000\n" +"Last-Translator: Smiter <friverick321@gmail.com>\n" "Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/godot-" "engine/godot/pt_BR/>\n" "Language: pt_BR\n" @@ -811,6 +812,20 @@ msgstr "Alterar Duração da Animação" msgid "Change Animation Loop" msgstr "Alterar Repetição da Animação" +msgid "" +"Can't change loop mode on animation instanced from an imported scene.\n" +"\n" +"To change this animation's loop mode, navigate to the scene's Advanced Import " +"settings and select the animation.\n" +"You can then change the loop mode from the inspector menu." +msgstr "" +"Não é possível alterar o modo de repetição em uma animação instanciada a " +"partir de uma cena importada.\n" +"\n" +"Para modificar o modo de repetição desta animação, acesse as Configurações " +"Avançadas de Importação da cena e selecione a animação.\n" +"Em seguida você poderá ajustar o modo de repetição diretamente no Inspetor." + msgid "Property Track..." msgstr "Faixa de Propriedades..." @@ -15951,13 +15966,6 @@ msgstr "" msgid "Could not create a directory at path \"%s\"." msgstr "Não foi possível criar o diretório no caminho \"%s\"." -msgid "ARM64 simulator library, generating from device library." -msgstr "" -"Biblioteca de simulador ARM64, gerando a partir da biblioteca do dispositivo." - -msgid "Unable to generate ARM64 simulator library." -msgstr "Não foi possível gerar a biblioteca do simulador ARM64." - msgid "Could not copy a file at path \"%s\" to \"%s\"." msgstr "Não foi possível copiar um arquivo/file no caminho \"%s\" para \"%s\"." @@ -17605,10 +17613,6 @@ msgstr "Um objeto do tipo '%s' não pode ser indexado." msgid "Invalid base type for increment/decrement operator." msgstr "Tipo de base inválido para operador de incremento/decremento." -msgid "Invalid use of increment/decrement operator in a constant expression." -msgstr "" -"Uso inválido do operador de incremento/decremento em uma expressão constante." - msgid "Invalid token for the operator: '%s'." msgstr "Token inválido para o operador: '%s'." diff --git a/engine/editor/translations/editor/ro.po b/engine/editor/translations/editor/ro.po index 90ea2899..2082c4e6 100644 --- a/engine/editor/translations/editor/ro.po +++ b/engine/editor/translations/editor/ro.po @@ -30,14 +30,17 @@ # Alin Andrei Bălașa <alin.andrei.balasa+godotweblate@gmail.com>, 2023. # Cătălin George Feștilă <catalinfest@gmail.com>, 2023. # Vasile Milea <milea.vasile959@gmail.com>, 2023. -# Saft Octavian <saftoctavian@gmail.com>, 2024. +# Saft Octavian <saftoctavian@gmail.com>, 2024, 2025. +# Douper <besinauda@gmail.com>, 2025. +# Cheesymoon Brainstorms <alexsergiuhd@gmail.com>, 2025. +# GREEN MONSTER <racovitavvalentin@gmail.com>, 2025. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2024-10-03 08:15+0000\n" -"Last-Translator: Saft Octavian <saftoctavian@gmail.com>\n" +"PO-Revision-Date: 2025-02-17 23:01+0000\n" +"Last-Translator: GREEN MONSTER <racovitavvalentin@gmail.com>\n" "Language-Team: Romanian <https://hosted.weblate.org/projects/godot-engine/" "godot/ro/>\n" "Language: ro\n" @@ -46,7 +49,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " "20)) ? 1 : 2;\n" -"X-Generator: Weblate 5.8-dev\n" +"X-Generator: Weblate 5.10.1-dev\n" msgid "Main Thread" msgstr "Fir principal" @@ -105,6 +108,9 @@ msgstr "Joystick Dreapta axa X, Joystick 1 axa X" msgid "Right Stick Y-Axis, Joystick 1 Y-Axis" msgstr "Joystick Dreapta axa Y, Joystick 1 axa Y" +msgid "Joystick 2 X-Axis, Left Trigger, Sony L2, Xbox LT" +msgstr "Joystick 2 axa X, declanșare stânga, Sony L2, Xbox LT" + msgid "Joystick 3 X-Axis" msgstr "Joystick 3 axa X" @@ -141,6 +147,18 @@ msgstr "Acțiunea spate, Sony Circle, Xbox B, Nintendo A" msgid "Start, Xbox Menu, Nintendo +" msgstr "Start, Meniu Xbox, Nintendo +" +msgid "Left Stick, Sony L3, Xbox L/LS" +msgstr "maneta stanga, Sony L3, Xbox L&LS" + +msgid "Right Stick, Sony R3, Xbox R/RS" +msgstr "Maneta Dreapta, Sony R3, Xbox R/RS" + +msgid "Left Shoulder, Sony L1, Xbox LB" +msgstr "Stick din stânga, Sony L3, Xbox L/LS" + +msgid "Right Shoulder, Sony R1, Xbox RB" +msgstr "Umăr drept, Sony R1, Xbox RB" + msgid "D-pad Up" msgstr "D-pad sus" @@ -156,6 +174,21 @@ msgstr "D-pad dreapta" msgid "Xbox Share, PS5 Microphone, Nintendo Capture" msgstr "Partajare Xbox, Microfon PS5, Captură Nintendo" +msgid "Xbox Paddle 1" +msgstr "Xbox Paddle-ul 1" + +msgid "Xbox Paddle 2" +msgstr "Xbox Paddle-ul 2" + +msgid "Xbox Paddle 3" +msgstr "Xbox Paddle 3" + +msgid "Xbox Paddle 4" +msgstr "Xbox Paddle-ul 4" + +msgid "PS4/5 Touchpad" +msgstr "Touchpad de PS4/5" + msgid "Joypad Button %d" msgstr "Buton Joypad %d" @@ -238,6 +271,12 @@ msgstr "Copiaza" msgid "Paste" msgstr "Lipește" +msgid "Undo" +msgstr "Revenire" + +msgid "Redo" +msgstr "Reîntoarcere" + msgid "New Line" msgstr "Linie Nouă" @@ -262,8 +301,14 @@ msgstr "Caret Adăugați dedesubt" msgid "Caret Add Above" msgstr "Caret Adăugați deasupara" +msgid "Scroll Up" +msgstr "Derulați În Sus" + +msgid "Scroll Down" +msgstr "Derulați În Jos" + msgid "Select All" -msgstr "Selectați toate" +msgstr "Selectați tot" msgid "Select Word Under Caret" msgstr "Selectați cuvântul de sub Caret" @@ -274,20 +319,35 @@ msgstr "Adăugați Selecția pentru Următoarea Apariție" msgid "Skip Selection for Next Occurrence" msgstr "Omiteți Selecția la Următoarea Apariție" +msgid "Clear Carets and Selection" +msgstr "Ștergeți marcajele și selecția" + msgid "Toggle Insert Mode" msgstr "Comutare Mod Inserare" msgid "Submit Text" msgstr "Trimite text" +msgid "Duplicate Nodes" +msgstr "Duplicare Noduri" + msgid "Delete Nodes" -msgstr "Șterge noduri" +msgstr "Șterge Noduri" + +msgid "Go Up One Level" +msgstr "Urcați Un Nivel" msgid "Refresh" msgstr "Reîmprospătare" -msgid "Invalid input %d (not passed) in expression" -msgstr "Intrarea invalidă %d (nu a fost transmisă) în expresie" +msgid "Show Hidden" +msgstr "Fișiere Ascunse" + +msgid "Swap Input Direction" +msgstr "Schimbați Direcția De Intrare" + +msgid "Start Unicode Character Input" +msgstr "Porniți introducerea caracterelor Unicode" msgid "self can't be used because instance is null (not passed)" msgstr "self nu poate fi folosit deoarece instanța este nulă (nefurnizat)" @@ -307,6 +367,12 @@ msgstr "Argumente invalide pentru a construi '%s'" msgid "On call to '%s':" msgstr "În apelarea lui '%s':" +msgid "Built-in script" +msgstr "Script integrat" + +msgid "Built-in" +msgstr "Integrat" + msgid "B" msgstr "B" @@ -338,9 +404,30 @@ msgstr "" msgid "An action with the name '%s' already exists." msgstr "Există deja o acțiune cu numele '%s'." +msgid "Cannot Revert - Action is same as initial" +msgstr "Nu se poate reveni - Acțiunea este aceeași cu cea inițială" + +msgid "Add Event" +msgstr "Adauga eveniment" + +msgid "Cannot Remove Action" +msgstr "Nu poate fi elimină acțiunea" + +msgid "Edit Event" +msgstr "Editare Eveniment" + +msgid "Filter by Name" +msgstr "Filtrează după nume" + +msgid "Clear all search filters." +msgstr "Ștergeți toate filtrele de căutare." + msgid "Add" msgstr "Adăugați" +msgid "Show Built-in Actions" +msgstr "Arata actiuni pre-construite" + msgid "Action" msgstr "Acțiune" @@ -350,6 +437,15 @@ msgstr "Nume:" msgid "Type:" msgstr "Tip:" +msgid "Add Metadata Property for \"%s\"" +msgstr "Adauga Propietare Metadata pentru \"%s\"" + +msgid "Metadata name can't be empty." +msgstr "Numele Metadatii nu poate fi gol." + +msgid "Names starting with _ are reserved for editor-only metadata." +msgstr "Numele care incept cu _ sunt rezervate doar pentru editoarele metadata." + msgid "Time:" msgstr "Timp:" @@ -365,6 +461,21 @@ msgstr "Duplicați Cheile Selectate" msgid "Delete Selected Key(s)" msgstr "Ştergeți Cheile Selectate" +msgid "Make Handles Linear" +msgstr "Fa Manerele Lineare" + +msgid "Make Handles Balanced" +msgstr "Fa Manerele Balansate" + +msgid "Make Handles Mirrored" +msgstr "Fa Manerele Oglindite" + +msgid "Make Handles Balanced (Auto Tangent)" +msgstr "Fa Manerele Balansate (Auto Tangenta)" + +msgid "Make Handles Mirrored (Auto Tangent)" +msgstr "Fa Manerele Oglindite (Auto Tangenta)" + msgid "Add Bezier Point" msgstr "Adaugă Punct Bezier" @@ -377,6 +488,65 @@ msgstr "Schimbă Durata Animației" msgid "Change Animation Loop" msgstr "Schimbați Bucla Animației" +msgid "" +"Can't change loop mode on animation instanced from an imported scene.\n" +"\n" +"To change this animation's loop mode, navigate to the scene's Advanced Import " +"settings and select the animation.\n" +"You can then change the loop mode from the inspector menu." +msgstr "" +"Nu se poate schimba modul ciclu in animatie instanced dintro scena importata\n" +"\n" +"Pentru a schimba modul ciclu al acestei animatii, navigheaza catre setarile " +"avansate import si selecteaza animatia\n" +"Poti dupa sa schimbi modul ciclului din meniul inspector." + +msgid "Can't change loop mode on animation instanced from an imported resource." +msgstr "" +"Nu se poate schimba modul ciclului in animatia instantiata dintro resursa " +"importata." + +msgid "" +"Can't change loop mode on animation embedded in another scene.\n" +"\n" +"You must open this scene and change the animation's loop mode from there." +msgstr "" +"Nu se poate schimba modul ciclului pe animatia incorporata in alta scena.\n" +"\n" +"Trebuie sa deschizi aceasta scena si sa schimba modul ciclului animatiei de " +"acolo." + +msgid "Can't change loop mode on animation embedded in another resource." +msgstr "" +"Nu se poate schimba modul ciclului pe animatia incorporata in alta resursa." + +msgid "Property Track..." +msgstr "Lista Proprietăți..." + +msgid "3D Position Track..." +msgstr "Pistă Poziție 3D..." + +msgid "3D Rotation Track..." +msgstr "Pistă Rotație 3D..." + +msgid "3D Scale Track..." +msgstr "Pistă Scalare 3D..." + +msgid "Blend Shape Track..." +msgstr "Pistă Îmbinare Formă..." + +msgid "Call Method Track..." +msgstr "Listă Metode de apel..." + +msgid "Bezier Curve Track..." +msgstr "Pistă Curbă Bezier..." + +msgid "Audio Playback Track..." +msgstr "Pistă Redare Audio..." + +msgid "Animation Playback Track..." +msgstr "Pistă Redare Animație..." + msgid "Animation length (frames)" msgstr "Lungime Animație (în frame-uri)" @@ -401,6 +571,9 @@ msgstr "Schimbați Valoarea Pistei" msgid "Toggle this track on/off." msgstr "Comutează această pistă pornit/oprit." +msgid "Use Blend" +msgstr "Folosește Amestec" + msgid "Update Mode (How this property is set)" msgstr "Modul Actualizare (Cum este setată această proprietate)" @@ -423,12 +596,33 @@ msgstr "Poziție:" msgid "Scale:" msgstr "Dimensiune:" +msgid "(Invalid, expected type: %s)" +msgstr "(Invalid, tipul așteptat: %s)" + +msgid "Easing:" +msgstr "Usurand:" + +msgid "Handle mode: Free\n" +msgstr "Modul Maner: Liber\n" + +msgid "Handle mode: Linear\n" +msgstr "Modul Maner: Linear\n" + +msgid "Handle mode: Balanced\n" +msgstr "Modul Maner: Balansat\n" + +msgid "Handle mode: Mirrored\n" +msgstr "Modul Maner: Oglindit\n" + msgid "Stream:" msgstr "Curent:" msgid "Toggle Track Enabled" msgstr "Comută Pista Activată" +msgid "Don't Use Blend" +msgstr "Nu folosi Amestec" + msgid "Continuous" msgstr "Continuu" @@ -453,9 +647,15 @@ msgstr "Limitați intercalarea buclei" msgid "Wrap Loop Interp" msgstr "Înfășurați intercalarea buclei" +msgid "Insert Key..." +msgstr "Introduceți Cheie..." + msgid "Duplicate Key(s)" msgstr "Clonare Chei" +msgid "Add RESET Value(s)" +msgstr "Adauga valoare(i) RESET" + msgid "Delete Key(s)" msgstr "Ștergeți Cheile" @@ -468,9 +668,20 @@ msgstr "Schimbă Modul de Intercalare al Animației" msgid "Change Animation Loop Mode" msgstr "Schimbați Bucla Animației" +msgid "" +"Compressed tracks can't be edited or removed. Re-import the animation with " +"compression disabled in order to edit." +msgstr "" +"Urmele compresate nu pot fi editate sau eliminate. Re-importeaza animatia cu " +"compresarea dezactivata astfel incat sa-l poti edita." + msgid "Remove Anim Track" msgstr "Elimină Pista Anim" +msgid "Hold Shift when clicking the key icon to skip this dialog." +msgstr "" +"Tine apasat Shift cand apasati pe tasta pictograma pentru a sari peste dialog." + msgid "Create" msgstr "Creați" @@ -539,6 +750,9 @@ msgstr "Scară" msgid "Methods" msgstr "Metode" +msgid "Bezier" +msgstr "Bezier" + msgid "Audio" msgstr "Sunet" @@ -548,12 +762,40 @@ msgstr "Clipboardul este gol!" msgid "Paste Tracks" msgstr "Lipiţi Piste" +msgid "Make Easing Keys" +msgstr "Fa Taste Usuratoare" + +msgid "Bake Animation as Linear Keys" +msgstr "Pregătiți animația sub formă de chei liniare" + +msgid "" +"Some AnimationPlayerEditor's options are disabled since this is the dummy " +"AnimationPlayer for preview.\n" +"\n" +"The dummy player is forced active, non-deterministic and doesn't have the " +"root motion track. Furthermore, the original node is inactive temporary." +msgstr "" +"Cateva optiuni ale AnimationPlayerEditor sunt oprite intrucat acesta este " +"dosarul fals AnimationPlayer pentru previzualizare.\n" +"\n" +"Player-ul fals este activat fortat , non-deterministic si nu are root motion " +"track. Pe langa asta, nodul original este temporar inactiv." + +msgid "AnimationPlayer is inactive. The playback will not be processed." +msgstr "AnimationPlayer este inactiv. Playback-ul nu va fi procesat." + msgid "Select an AnimationPlayer node to create and edit animations." msgstr "Selectați un nod Animator pentru a crea și edita animații." msgid "Warning: Editing imported animation" msgstr "Avertisment: Se editează animația încărcată" +msgid "Dummy Player" +msgstr "Player flas" + +msgid "Toggle between the bezier curve editor and track editor." +msgstr "Comutați între editorul de curbe Bezier și editorul de urmărire." + msgid "Only show tracks from nodes selected in tree." msgstr "" "Arată numai pistele ce aparțin nodurilor selectate în managerul de file." @@ -561,6 +803,15 @@ msgstr "" msgid "Group tracks by node or display them as plain list." msgstr "Grupează pistele în funcție de nod sau afișează-le ca o listă simplă." +msgid "Apply snapping to timeline cursor." +msgstr "Aplicați fixarea la cursorul cronologiei." + +msgid "Apply snapping to selected key(s)." +msgstr "Aplicați fixarea la cheia(le) selectată(e)." + +msgid "Apply snapping to the nearest integer FPS." +msgstr "Aplicați snapping la cel mai apropiat FPS întreg." + msgid "Animation step value." msgstr "Pasul Animației." @@ -576,6 +827,27 @@ msgstr "Modificare" msgid "Animation properties." msgstr "Proprietăți animație." +msgid "Copy Tracks..." +msgstr "Copiați Piste..." + +msgid "Scale Selection..." +msgstr "Scalați Selecția..." + +msgid "Scale From Cursor..." +msgstr "Scalați De La Cursor..." + +msgid "Set Start Offset (Audio)" +msgstr "Setați decalajul de pornire (audio)" + +msgid "Set End Offset (Audio)" +msgstr "Setați decalajul final (audio)" + +msgid "Move First Selected Key to Cursor" +msgstr "Mutați prima tastă selectată pe cursor" + +msgid "Move Last Selected Key to Cursor" +msgstr "Mutați ultima tastă selectată pe cursor" + msgid "Delete Selection" msgstr "Șterge Selecția" @@ -588,6 +860,9 @@ msgstr "Mergeți la Pasul Anterior" msgid "Apply Reset" msgstr "Resetați" +msgid "Bake Animation..." +msgstr "Pregătiți Animație" + msgid "Use Bezier Curves" msgstr "Folosește curbe Bezier" @@ -597,6 +872,12 @@ msgstr "Creați o pista RESET" msgid "Optimize" msgstr "Optimizați" +msgid "Trim keys placed in negative time" +msgstr "Tăiați cheile plasate în timp negativ" + +msgid "Trim keys placed exceed the animation length" +msgstr "Tastele de tăiere plasate depășesc lungimea animației" + msgid "Remove invalid keys" msgstr "Ștergeți chei inoperabile" @@ -615,18 +896,80 @@ msgstr "Curățați" msgid "Scale Ratio:" msgstr "Proporție Scalare:" +msgid "Select Transition and Easing" +msgstr "Selectați Tranziție și ușurare" + +msgctxt "Transition Type" +msgid "Sine" +msgstr "sinus" + +msgctxt "Transition Type" +msgid "Quint" +msgstr "Al cincilea" + +msgctxt "Transition Type" +msgid "Quart" +msgstr "Al patrulea" + +msgctxt "Transition Type" +msgid "Quad" +msgstr "Patrime" + +msgctxt "Transition Type" +msgid "Bounce" +msgstr "Sari" + +msgctxt "Transition Type" +msgid "Spring" +msgstr "Arc" + +msgctxt "Ease Type" +msgid "InOut" +msgstr "InAfara" + +msgctxt "Ease Type" +msgid "OutIn" +msgstr "AfaraIn" + +msgid "FPS:" +msgstr "Frame-uri pe secunda:" + +msgid "Animation Baker" +msgstr "Compilator Animații" + msgid "Select Tracks to Copy" msgstr "Selectează Pistele de Copiat" msgid "Select All/None" msgstr "Selectează Tot/Nimic" +msgid "Marker name is read-only in the inspector." +msgstr "Numele markerului este doar pentru citire în inspector." + +msgid "" +"A marker's name can only be changed by right-clicking it in the animation " +"editor and selecting \"Rename Marker\", in order to make sure that marker " +"names are all unique." +msgstr "" +"Numele unui marker poate fi schimbat doar făcând clic dreapta pe el în " +"editorul de animație și selectând „Redenumiți marcatorul”, pentru a vă " +"asigura că numele markerilor sunt toate unice." + +msgid "Marker:" +msgstr "Facator:" + +msgid "Empty marker names are not allowed." +msgstr "Nu sunt permise nume de marcatori goale." + msgid "Close" msgstr "Închide" msgid "Error!" msgstr "Eroare!" +msgid "Multi Edit Marker Color" +msgstr "Editor Facator Multiplu Color" + msgid "Add Audio Track Clip" msgstr "Anim Adăugați Pistă Audio" @@ -675,6 +1018,14 @@ msgstr "Numai Selecția" msgid "Hide" msgstr "Ascunde" +msgctxt "Indentation" +msgid "Spaces" +msgstr "Spatii" + +msgctxt "Indentation" +msgid "Tabs" +msgstr "Filele" + msgid "Toggle Scripts Panel" msgstr "Porniti sau opriti panoul de scripturi" @@ -687,9 +1038,19 @@ msgstr "Departare" msgid "Reset Zoom" msgstr "Resetați zoom-ul" +msgid "Errors" +msgstr "Erori" + msgid "Warnings" msgstr "Avertismente" +msgid "" +"%sMouse wheel, %s/%s: Finetune\n" +"%s: Reset" +msgstr "" +"%sRotița mouse-ului, %s/%s: reglaj fin\n" +"%s: Resetați" + msgid "Line and column numbers." msgstr "Numerele liniilor și coloanelor." @@ -706,6 +1067,10 @@ msgstr "" "Metoda țintă nu există! Specificați o metodă validă sau atașați un script la " "nodul țintă." +msgid "%s: Callback code won't be generated, please add it manually." +msgstr "" +"%s: codul de apel invers nu va fi generat, vă rugăm să îl adăugați manual." + msgid "Connect to Node:" msgstr "Conectați la Nod:" @@ -718,6 +1083,12 @@ msgstr "Semnale:" msgid "Scene does not contain any script." msgstr "Scena nu conține niciun script." +msgid "Select Method" +msgstr "Selectați Metoda" + +msgid "No method found matching given filters." +msgstr "Nu s-a găsit nicio metodă care să se potrivească cu filtrele date." + msgid "Remove" msgstr "Ștergeți" @@ -1200,6 +1571,9 @@ msgstr "Nume Nod:" msgid "Global Variable" msgstr "Variabil Global" +msgid "Navigation, both 2D and 3D." +msgstr "Navigație, atât 2D, cât și 3D." + msgid "Reset the edited profile?" msgstr "Resetați profilul editat?" @@ -1360,6 +1734,9 @@ msgstr "Încarcă Profil(e)" msgid "Manage Editor Feature Profiles" msgstr "Administrează Profilele Ferestrei de Editare" +msgid "Scanning file structure..." +msgstr "Scanare structură fișier..." + msgid "Restart" msgstr "Restart" @@ -1834,6 +2211,9 @@ msgstr "Exportă Librăria" msgid "Open & Run a Script" msgstr "Deschide și Execută un Script" +msgid "What action should be taken?" +msgstr "Ce măsuri ar trebui luate?" + msgid "New Inherited" msgstr "Derivare Nouă" @@ -2220,6 +2600,9 @@ msgstr "Fereastră Nouă" msgid "Add a new scene." msgstr "Adaugă o nouă scenă." +msgid "Revoke unique name for node \"%s\"?" +msgstr "Revocați numelui unic pentru nodul \"%s\"?" + msgid "Node has one connection." msgid_plural "Node has {num} connections." msgstr[0] "Nodul are o singură conexiune." @@ -2304,6 +2687,12 @@ msgstr "Copiați Resursa" msgid "History of recently edited objects." msgstr "Istoricul obiectelor editate recent." +msgid "Add %d Translation" +msgid_plural "Add %d Translations" +msgstr[0] "Adaugă %d Tranziție" +msgstr[1] "Adaugă %d Tranziții" +msgstr[2] "Adaugă %d de tranziții" + msgid "Locale" msgstr "Local" @@ -2574,12 +2963,19 @@ msgstr "Reîncearcă" msgid "Download Error" msgstr "Eroare Descărcare" +msgid "Featured" +msgstr "Caracteristici prezente" + msgid "Testing" msgstr "Se Testează" msgid "Loading..." msgstr "Încărcare..." +msgctxt "Pagination" +msgid "Last" +msgstr "ultima" + msgid "All" msgstr "Toate" @@ -2604,6 +3000,15 @@ msgstr "Suport" msgid "Assets ZIP File" msgstr "Fișier ZIP cu Asset-uri" +msgid "Audio Preview Play/Pause" +msgstr "Previzualizare Audio Pornește/Oprește" + +msgid "Bone Picker:" +msgstr "Caută nod în papură:" + +msgid "Clear mappings in current group." +msgstr "Rute clare în grupul prezent" + msgid "Preview" msgstr "Previzualizare" @@ -2622,6 +3027,42 @@ msgstr "Compensare Rotație:" msgid "Rotation Step:" msgstr "Pas Rotație:" +msgid "Create Horizontal and Vertical Guides" +msgstr "Creează ghizi noi orizontali și verticali" + +msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)" +msgstr "Setează CanvasIme \"%s\" Pivot Offset to (%d, %d)" + +msgid "Rotate %d CanvasItems" +msgstr "Rotește %d CanvasItems" + +msgid "Rotate CanvasItem \"%s\" to %d degrees" +msgstr "Rotește CanvasItems \"%s\" spre %d grade" + +msgid "Move CanvasItem \"%s\" Anchor" +msgstr "Mișcă CanvasItem \"%s\" Ancorează" + +msgid "Scale Node2D \"%s\" to (%s, %s)" +msgstr "Scală Node2D \"%s\" spre (%s, %s)" + +msgid "Resize Control \"%s\" to (%d, %d)" +msgstr "Redimensionează Control \"%s\" spre (%d, %d)" + +msgid "Scale %d CanvasItems" +msgstr "Dimensiune %d CanvasItems" + +msgid "Scale CanvasItem \"%s\" to (%s, %s)" +msgstr "Dimensiune CanvasItem \"%s\" în (%s, %s)" + +msgid "Move %d CanvasItems" +msgstr "Mișcă %d CanvasItems" + +msgid "Moving:" +msgstr "În mișcare:" + +msgid "Rotating:" +msgstr "Se rotește:" + msgid "Lock Selected" msgstr "Blochează Selecția" @@ -2640,6 +3081,12 @@ msgstr "Lipește Postura" msgid "Clear Guides" msgstr "Elimină Ghidurile" +msgid "Create Custom Bone2D(s) from Node(s)" +msgstr "Crează Custom Bone2D din Noduri" + +msgid "Cancel Transformation" +msgstr "anulează transformare" + msgid "Zoom to 3.125%" msgstr "Magnificare la 3.125%" @@ -2670,16 +3117,34 @@ msgstr "Magnificare la 800%" msgid "Zoom to 1600%" msgstr "Magnificare la 1600%" +msgid "Center View" +msgstr "Centrează vederea" + msgid "Select Mode" msgstr "Selectare mod" +msgid "Drag: Rotate selected node around pivot." +msgstr "Trage: Rotește nodul selectat în jurul pivotului." + +msgid "Alt+Drag: Move selected node." +msgstr "Alt+Trage: Mișcă nodul selectat." + +msgid "Alt+Drag: Scale selected node." +msgstr "Alt+Trage: Dimensionează nodul selectat." + +msgid "V: Set selected node's pivot position." +msgstr "V: Setează poziția pivotului nodului selectat." + msgid "Alt+RMB: Show list of all nodes at position clicked, including locked." msgstr "" -"Alt+RMB: Arată o listă a tuturor nodurilor la poziția clickului, inclusiv " -"cele blocate." +"Alt+Butonul drept al mausului: Arată o listă a tuturor nodurilor la poziția " +"clickului, inclusiv cele blocate." + +msgid "(Available in all modes.)" +msgstr "(Disponibile in toate modurile.)" msgid "RMB: Add node at position clicked." -msgstr "RMB: Adaugă nod la poziția clickului." +msgstr "Butonul drept al mausuli: Adaugă nod la poziția clickului." msgid "Move Mode" msgstr "Mod Mutare" @@ -2901,6 +3366,9 @@ msgstr "Pluginuri instalate:" msgid "Version" msgstr "Versiune" +msgid "Variation" +msgstr "Variație" + msgid "Create Occluder Polygon" msgstr "Creează Poligon de Ocluziune" @@ -3244,6 +3712,9 @@ msgstr "Clip-board de resurse gol !" msgid "Paste Resource" msgstr "Lipiți Resursa" +msgid "Current value: " +msgstr "Valoare curentă: " + msgid "Can't open '%s'. The file could have been moved or deleted." msgstr "'%s' nu poate fi deschis. Fișierul ar putea fi modificat sau șters." @@ -3347,6 +3818,18 @@ msgstr[0] "O constantă" msgstr[1] "{num} constante" msgstr[2] "{num} de constante" +msgid "1 font" +msgid_plural "{num} fonts" +msgstr[0] "Un font" +msgstr[1] "{num} fonturi" +msgstr[2] "{num} de fonturi" + +msgid "1 icon" +msgid_plural "{num} icons" +msgstr[0] "O pictogramă" +msgstr[1] "{num} pictograme" +msgstr[2] "{num} de pictograme" + msgid "1 stylebox" msgid_plural "{num} styleboxes" msgstr[0] "O casetă de stil" @@ -3365,6 +3848,9 @@ msgstr "Tip de bază" msgid "Physics" msgstr "Cadru Fizic" +msgid "Navigation Layer %d" +msgstr "Stratul De Navigare %d" + msgid "Yes" msgstr "Da" @@ -3499,6 +3985,14 @@ msgstr "Va crea un nou fișier script." msgid "Built-in Script:" msgstr "Script încorporat:" +msgid "" +"Can not add a baked collision shape as sibling for the scene root.\n" +"Move the CSG root node below a parent node." +msgstr "" +"Nu se poate adăuga o formă de coliziune preparată ca frate pentru rădăcina " +"scenei.\n" +"Mutați nodul rădăcină CSG sub un nod părinte." + msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "Insuficienți bytes pentru decodare bytes, sau format invalid." @@ -3539,6 +4033,16 @@ msgstr "Execută în Browser" msgid "Run exported HTML in the system's default browser." msgstr "Execută HTML-ul exportat în browserul prestabilit al sistemului." +msgid "Failed to remove temporary file \"%s\"." +msgstr "Nu s-a putut elimina fișierul temporar \"%s\"." + +msgid "" +"NavigationLink2D start position should be different than the end position to " +"be useful." +msgstr "" +"Poziția de pornire NavigationLink2D ar trebui să fie diferită de poziția " +"finală pentru a fi utilă." + msgid "Nothing connected to input '%s' of node '%s'." msgstr "Nimic conectat la intrarea '%s' a nodului '%s'." diff --git a/engine/editor/translations/editor/ru.po b/engine/editor/translations/editor/ru.po index 379e3297..ce7f86eb 100644 --- a/engine/editor/translations/editor/ru.po +++ b/engine/editor/translations/editor/ru.po @@ -173,7 +173,7 @@ # Dmitry <www.dimon271296000@gmail.com>, 2024. # John Blacko <sporrershik@gmail.com>, 2024. # G-Shadow <18046412+gshadows@users.noreply.github.com>, 2024. -# Макар Разин <makarrazin14@gmail.com>, 2024. +# Макар Разин <makarrazin14@gmail.com>, 2024, 2025. # Artem <artemka.hvostov@yandex.ru>, 2024. # viktordino <truehorrorwebsite@gmail.com>, 2024. # Marsic112 <gsrsov@gmail.com>, 2024. @@ -204,13 +204,17 @@ # СТАРЫЙ ХЛЕБ <ctapiuxleb1@gmail.com>, 2024. # Kiril Yakymchuk <stbestich@gmail.com>, 2025. # ogyrec <ogyrec.off@gmail.com>, 2025. +# Mister Ky <afanasievsergiy3524@gmail.com>, 2025. +# JekSun97 <jeksun2022@gmail.com>, 2025. +# sqwirex <nikolaev.alex.080706@mail.ru>, 2025. +# Account Rush Royale#1 <ghhh5238unq1@gmail.com>, 2025. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2025-01-26 10:28+0000\n" -"Last-Translator: ogyrec <ogyrec.off@gmail.com>\n" +"PO-Revision-Date: 2025-03-02 19:03+0000\n" +"Last-Translator: Account Rush Royale#1 <ghhh5238unq1@gmail.com>\n" "Language-Team: Russian <https://hosted.weblate.org/projects/godot-engine/" "godot/ru/>\n" "Language: ru\n" @@ -219,7 +223,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: Weblate 5.10-dev\n" +"X-Generator: Weblate 5.10.3-dev\n" msgid "Main Thread" msgstr "Главный поток" @@ -576,6 +580,9 @@ msgstr "Показывать скрытые" msgid "Swap Input Direction" msgstr "Сменить направление ввода" +msgid "Start Unicode Character Input" +msgstr "Запустить ввод символов Unicode" + msgid "Invalid input %d (not passed) in expression" msgstr "Некорректный ввод %d (не передан) в выражении" @@ -820,6 +827,39 @@ msgstr "Изменить длину анимации" msgid "Change Animation Loop" msgstr "Изменить цикл анимации" +msgid "" +"Can't change loop mode on animation instanced from an imported scene.\n" +"\n" +"To change this animation's loop mode, navigate to the scene's Advanced Import " +"settings and select the animation.\n" +"You can then change the loop mode from the inspector menu." +msgstr "" +"Невозможно изменить режим цикла для анимации, созданной из импортированной " +"сцены.\n" +"\n" +"Чтобы изменить режим цикла этой анимации, перейдите к расширенным настройкам " +"импорта сцены и выберите анимацию.\n" +"Затем можно изменить режим цикла из меню инспектора." + +msgid "Can't change loop mode on animation instanced from an imported resource." +msgstr "" +"Невозможно изменить режим цикла для анимации, созданной из импортированного " +"ресурса." + +msgid "" +"Can't change loop mode on animation embedded in another scene.\n" +"\n" +"You must open this scene and change the animation's loop mode from there." +msgstr "" +"Невозможно изменить режим зацикливания для анимации, встроенной в другую " +"сцену.\n" +"\n" +"Вы должны открыть эту сцену и оттуда изменить режим зацикливания анимации." + +msgid "Can't change loop mode on animation embedded in another resource." +msgstr "" +"Невозможно изменить режим цикла для анимации, встроенной в другой ресурс." + msgid "Property Track..." msgstr "Дорожка свойства…" @@ -1212,6 +1252,15 @@ msgstr "Показывать дорожки только выделенных в msgid "Group tracks by node or display them as plain list." msgstr "Группировать дорожки по узлам или показывать их как простой список." +msgid "Apply snapping to timeline cursor." +msgstr "Применить привязку к курсору временной шкалы." + +msgid "Apply snapping to selected key(s)." +msgstr "Дублировать выделенные ключи." + +msgid "Apply snapping to the nearest integer FPS." +msgstr "Применить привязку к ближайшему целому значению FPS." + msgid "Animation step value." msgstr "Значение шага анимации." @@ -1432,12 +1481,72 @@ msgstr "Выбрать всё/Сбросить" msgid "Animation Change Keyframe Time" msgstr "Изменить время ключевого кадра анимации" +msgid "Marker name is read-only in the inspector." +msgstr "Название маркера доступно только для чтения в инспекторе." + +msgid "" +"A marker's name can only be changed by right-clicking it in the animation " +"editor and selecting \"Rename Marker\", in order to make sure that marker " +"names are all unique." +msgstr "" +"Имя маркера можно изменить, щелкнув правой кнопкой мыши в редакторе анимации " +"и выбрав \"Переименовать Маркер\", чтобы убедиться, что все имена маркеров " +"уникальны." + +msgid "Insert Marker..." +msgstr "Вставить Маркер..." + +msgid "Rename Marker" +msgstr "Переименовать Маркер" + +msgid "Delete Marker(s)" +msgstr "Удалить Маркер(ы)" + +msgid "Show All Marker Names" +msgstr "Показать все названия Маркеров" + +msgid "Marker:" +msgstr "Маркер:" + +msgid "Animation Move Markers" +msgstr "Перемещение ключевых точек анимации" + +msgid "Animation Delete Markers" +msgstr "Удалить ключевые точки анимации" + +msgid "Marker '%s' already exists!" +msgstr "Маркер «%s» уже существует!" + +msgid "Add Marker Key" +msgstr "Добавить ключ дорожки для Маркера" + +msgid "Empty marker names are not allowed." +msgstr "Пустые имена маркеров не допускаются." + +msgid "Insert Marker" +msgstr "Вставить Маркер" + +msgid "Marker Name" +msgstr "Задать имя маркера" + +msgid "Marker Color" +msgstr "Цвет Маркера" + msgid "Close" msgstr "Закрыть" msgid "Error!" msgstr "Ошибка!" +msgid "Change Marker Name:" +msgstr "Изменить имя Маркера:" + +msgid "Edit Marker Color" +msgstr "Редактировать цвет Маркера" + +msgid "Multi Edit Marker Color" +msgstr "Цвет маркера для мультиредактирования" + msgid "Add Audio Track Clip" msgstr "Добавить звуковую дорожку" @@ -1471,6 +1580,12 @@ msgstr[0] "%d из %d совпадения" msgstr[1] "%d из %d совпадений" msgstr[2] "%d из %d совпадений" +msgid "Hide Replace" +msgstr "Скрыть Замену" + +msgid "Show Replace" +msgstr "Показать Замену" + msgid "Find" msgstr "Найти" @@ -1527,6 +1642,13 @@ msgstr "Предупреждения" msgid "Zoom factor" msgstr "Коэффициент масштабирования" +msgid "" +"%sMouse wheel, %s/%s: Finetune\n" +"%s: Reset" +msgstr "" +"%s Колесо мыши, %s/%s: Точная настройка\n" +"%s: Сброс" + msgid "Line and column numbers." msgstr "Номера строк и столбцов." @@ -1685,7 +1807,13 @@ msgid "Create New %s" msgstr "Создать %s" msgid "No results for \"%s\"." -msgstr "Нет результатов для «%s»." +msgstr "Нет результатов для \"%s\"." + +msgid "Script path: %s" +msgstr "Путь скрипта: %s" + +msgid "The script will run in the editor." +msgstr "Скрипт будет запущен в редакторе." msgid "This class is marked as deprecated." msgstr "Этот класс помечен как устаревший." @@ -1717,6 +1845,9 @@ msgstr "Описание:" msgid "Remote %s:" msgstr "Удалённый %s:" +msgid "Session %d" +msgstr "Сессия %d" + msgid "Debugger" msgstr "Отладчик" @@ -1747,6 +1878,15 @@ msgstr "" msgid "Toggle Visibility" msgstr "Переключить видимость" +msgid "Expression to evaluate" +msgstr "Выражение для оценки" + +msgid "Clear on Run" +msgstr "Очистить при запуске" + +msgid "Evaluate" +msgstr "Оценивать" + msgid "Clear" msgstr "Очистить" @@ -1793,6 +1933,9 @@ msgstr "Остановить" msgid "Start" msgstr "Запустить" +msgid "Autostart" +msgstr "Автозапуск" + msgid "Measure:" msgstr "Единица измерения:" @@ -1949,6 +2092,9 @@ msgstr "Развернуть все" msgid "Collapse All" msgstr "Свернуть все" +msgid "Evaluator" +msgstr "Оценщик" + msgid "Profiler" msgstr "Профайлер" @@ -2077,6 +2223,12 @@ msgstr "" msgid "Cannot remove:" msgstr "Не удалось удалить:" +msgid "Files to be deleted:" +msgstr "Файлы, которые будут удалены:" + +msgid "Dependencies of files to be deleted:" +msgstr "Зависимости файлов, подлежащих удалению:" + msgid "Error loading:" msgstr "Ошибка при загрузке:" @@ -2113,15 +2265,27 @@ msgstr "Ресурсы без явного владения:" msgid "Name cannot be empty." msgstr "Имя не может быть пустым." +msgid "File name can't end with /." +msgstr "Имя файла не может заканчиваться на /." + +msgid "File name cannot be empty." +msgstr "Имя файла не может быть пустым." + msgid "Folder name cannot be empty." msgstr "Имя папки не может быть пустым." +msgid "File name contains invalid characters." +msgstr "Имя файла содержит недопустимые символы." + msgid "Folder name contains invalid characters." msgstr "Имя папки содержит недопустимые символы." msgid "File name begins with a dot." msgstr "Имя файла начинается с точки." +msgid "Folder name begins with a dot." +msgstr "Имя папки начинается с точки." + msgid "File with that name already exists." msgstr "Файл с таким именем уже существует." @@ -2133,6 +2297,19 @@ msgstr "" "Использование косой черты в именах папок приведет к рекурсивному созданию " "подпапок." +msgid "" +"Using slashes in path will create the file in subfolder, creating new " +"subfolders if necessary." +msgstr "" +"Использование косой черты в именах папок приведет к рекурсивному созданию " +"подпапок." + +msgid "File name is valid." +msgstr "Недопустимое имя файла." + +msgid "Base path: %s" +msgstr "Базовый путь: %s" + msgid "Folder name is valid." msgstr "Имя папки является допустимым." @@ -2414,6 +2591,9 @@ msgstr "Компоновка звуковой шины" msgid "Invalid name." msgstr "Недопустимое имя." +msgid "Must be a valid Unicode identifier." +msgstr "Имя должно быть допустимым идентификатором Unicode." + msgid "Must not collide with an existing engine class name." msgstr "Не должно конфликтовать с существующим именем класса движка." @@ -2682,6 +2862,12 @@ msgstr "[пусто]" msgid "[unsaved]" msgstr "[не сохранено]" +msgid "Open the %s dock." +msgstr "Открыть эту%sпанель" + +msgid "Focus on the %s dock." +msgstr "Сфокусироваться на этой %s панели." + msgid "%s - Godot Engine" msgstr "%s — Godot Engine" @@ -2733,6 +2919,9 @@ msgstr "Панель «Импорт»" msgid "History Dock" msgstr "Панель «История»" +msgid "Game View" +msgstr "Просмотр Игры" + msgid "Allows to view and edit 3D scenes." msgstr "Позволяет просматривать и редактировать 3D-сцены." @@ -2767,6 +2956,10 @@ msgid "Provides an overview of the editor's and each scene's undo history." msgstr "" "Предоставляет обзор истории отмены действий для редактора и для каждой сцены." +msgid "Provides tools for selecting and debugging nodes at runtime." +msgstr "" +"Предоставляет инструменты для выбора и отладки узлов во время выполнения." + msgid "(current)" msgstr "(текущий)" @@ -2856,6 +3049,30 @@ msgstr "Импорт профилей" msgid "Manage Editor Feature Profiles" msgstr "Управление профилями возможностей редактора" +msgid "Project initialization" +msgstr "Инициализация проекта" + +msgid "Scanning file structure..." +msgstr "Сканирование структуры файлов..." + +msgid "Loading global class names..." +msgstr "Загрузка глобальных имен классов..." + +msgid "Verifying GDExtensions..." +msgstr "Проверка GDExtensions..." + +msgid "Creating autoload scripts..." +msgstr "Создание скриптов автозагрузки..." + +msgid "Initializing plugins..." +msgstr "Инициализация плагинов..." + +msgid "Starting file scan..." +msgstr "Начало сканирование файлов..." + +msgid "Scanning actions..." +msgstr "Сканирование действий..." + msgid "Some extensions need the editor to restart to take effect." msgstr "" "Некоторые расширения требуют перезапуска редактора, чтобы изменения вступили " @@ -2870,6 +3087,15 @@ msgstr "Сохранить и перезапустить" msgid "ScanSources" msgstr "Сканировать исходники" +msgid "Registering global classes..." +msgstr "Регистрация глобальных классов..." + +msgid "Updating scripts documentation" +msgstr "Обновление документации скриптов" + +msgid "Updating Scene Groups" +msgstr "Обновление групп сцен" + msgid "" "There are multiple importers for different types pointing to file %s, import " "aborted" @@ -2879,9 +3105,24 @@ msgstr "" msgid "(Re)Importing Assets" msgstr "Импорт или повторный импорт ассетов" +msgid "Preparing files to reimport..." +msgstr "Подготовка файлов к повторному импорту..." + +msgid "Executing pre-reimport operations..." +msgstr "Выполнение предимпортных операций..." + msgid "Import resources of type: %s" msgstr "Импорт ресурсов типа: %s" +msgid "Finalizing Asset Import..." +msgstr "Завершение импорта активов..." + +msgid "Executing post-reimport operations..." +msgstr "Выполнение операций после реимпорта..." + +msgid "Copying files..." +msgstr "Копирование файлов..." + msgid "This method supports a variable number of arguments." msgstr "Этот метод поддерживает переменное количество аргументов." @@ -2906,6 +3147,9 @@ msgstr "" "Для вызова данного метода не требуется экземпляр.\n" "Его можно вызвать напрямую, используя имя класса." +msgid "Code snippet copied to clipboard." +msgstr "Фрагмент кода скопирован в буфер обмена." + msgid "No return value." msgstr "Возвращаемое значение отсутствует." @@ -3057,6 +3301,9 @@ msgstr "Значки" msgid "Styles" msgstr "Стили" +msgid "This theme property may be changed or removed in future versions." +msgstr "Это свойство темы может быть изменено или удалено в будущих версиях." + msgid "There is currently no description for this theme property." msgstr "В настоящее время описание этого свойства темы отсутствует." @@ -3135,9 +3382,15 @@ msgstr "Редактор" msgid "Click to copy." msgstr "Нажмите, чтобы скопировать." +msgid "Click to open in browser." +msgstr "Нажмите, чтобы открыть в браузере." + msgid "No description available." msgstr "Описание недоступно." +msgid "This annotation may be changed or removed in future versions." +msgstr "Данная аннотация может быть изменена или удалена в будущих версиях." + msgid "Show in FileSystem" msgstr "Показать в файловой системе" @@ -3147,12 +3400,24 @@ msgstr "Открыть в проводнике" msgid "Class" msgstr "Класс" +msgid "Enumeration" +msgstr "Перечисление" + msgid "Constant" msgstr "Константа" +msgid "Metadata" +msgstr "Метаданные" + +msgid "Setting" +msgstr "Параметры" + msgid "Property" msgstr "Свойство" +msgid "Internal Property" +msgstr "Внутреннее свойство" + msgid "This property can only be set in the Inspector." msgstr "Эта свойство можно задать только в инспекторе." @@ -3168,9 +3433,36 @@ msgstr "Сигнал" msgid "Annotation" msgstr "Аннотация" +msgid "Local Constant" +msgstr "Локальная Константа" + +msgid "Local Variable" +msgstr "Локальная Переменная" + +msgid "This variable may be changed or removed in future versions." +msgstr "Эта переменная может быть изменена или удалена в будущих версиях." + +msgid "TextFile" +msgstr "Текстовой файл" + msgid "File" msgstr "Файл" +msgid "Directory" +msgstr "Директория" + +msgid "Invalid UID" +msgstr "Неверный UID" + +msgid "This UID does not point to any valid Resource." +msgstr "Этот UID не указывает ни на один действительный ресурс." + +msgid "Invalid path" +msgstr "Неверный путь" + +msgid "This path does not exist." +msgstr "Такого пути не существует." + msgid "%d match." msgstr "%d совпадение." @@ -3228,12 +3520,27 @@ msgstr "Тип участника" msgid "Keywords" msgstr "Ключевые слова" +msgid "Matches the \"%s\" keyword." +msgstr "Соответствует ключевому слову \"%s\"." + msgid "This member is marked as deprecated." msgstr "Этот участник помечен как устаревший." msgid "This member is marked as experimental." msgstr "Этот участник помечен как экспериментальный." +msgid "Unfavorite Property" +msgstr "Удалить свойство из избранных" + +msgid "Make this property be put back at its original place." +msgstr "Вернуть это свойство на его изначальное место." + +msgid "Favorite Property" +msgstr "Добавить свойство в избранные" + +msgid "Make this property be placed at the top for all objects of this class." +msgstr "Сделать это свойство наверху для всех объектов этого класса." + msgid "Pin Value" msgstr "Закрепить значение" @@ -3246,6 +3553,9 @@ msgstr "" "Закрепление значения заставляет его сохраняться, даже если оно равно значению " "по умолчанию." +msgid "Unfavorite All" +msgstr "Удалить все из избранных" + msgid "(%d change)" msgid_plural "(%d changes)" msgstr[0] "(%d изменение)" @@ -3431,6 +3741,9 @@ msgstr "Встроенный инспектор шейдеров" msgid "Unnamed Project" msgstr "Безымянный проект" +msgid "Recovery Mode is enabled. Editor functionality has been restricted." +msgstr "Режим восстановления включен. Функционал редактора ограничен." + msgid "" "Spins when the editor window redraws.\n" "Update Continuously is enabled, which can increase power usage. Click to " @@ -3640,6 +3953,9 @@ msgstr "" msgid "Save Scene As..." msgstr "Сохранить сцену как..." +msgid "Pack Project as ZIP..." +msgstr "Упаковать проект в ZIP..." + msgid "Can't undo while mouse buttons are pressed." msgstr "Невозможно отменить, пока нажаты кнопки мыши." @@ -3721,6 +4037,9 @@ msgstr "Эта операция не может быть выполнена бе msgid "Export Mesh Library" msgstr "Экспортировать библиотеку сеток" +msgid "Quick Open Color Palette..." +msgstr "Быстрое открытие цветовой палитры..." + msgid "Unable to enable addon plugin at: '%s' parsing of config failed." msgstr "" "Не удалось включить модуль дополнения по адресу «%s». Ошибка синтаксического " @@ -3804,6 +4123,51 @@ msgstr "Очистить недавние сцены" msgid "There is no defined scene to run." msgstr "Не назначена сцена для запуска." +msgid "Loading editor" +msgstr "Загрузка редактора" + +msgid "Loading editor layout..." +msgstr "Загрузка макета редактора..." + +msgid "Loading docks..." +msgstr "Загрузка док-панели..." + +msgid "Reopening scenes..." +msgstr "Повторное открытие сцен..." + +msgid "Loading central editor layout..." +msgstr "Загрузка макета центрального редактора..." + +msgid "Loading plugin window layout..." +msgstr "Загрузка макета окна плагина..." + +msgid "Editor layout ready." +msgstr "Макет редактора готов." + +msgid "" +"No main scene has ever been defined. Select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Не назначена главная сцена, выбрать её?\n" +"Вы можете изменить её позже в «Настройках проекта» в категории «Приложение»." + +msgid "" +"Selected scene '%s' does not exist. Select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Выбранная сцена '%s' не существует, выбрать другую?\n" +"Можно изменить её позже в настройках проекта (категория «приложения»)." + +msgid "" +"Selected scene '%s' is not a scene file. Select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Выбранный файл '%s' не является файлом сцены, выбрать другой?\n" +"Можно изменить сцену позже в настройках проекта (категория «приложения»)." + msgid "Save Layout..." msgstr "Сохранить макет…" @@ -4033,6 +4397,9 @@ msgstr "Редактор конфигурации сборки движка..." msgid "Upgrade Mesh Surfaces..." msgstr "Обновить поверхности сетки…" +msgid "Upgrade UIDs..." +msgstr "Обновить UID..." + msgid "Reload Current Project" msgstr "Перезагрузить текущий проект" @@ -4187,6 +4554,21 @@ msgstr "Экспортировать библиотеку" msgid "Open & Run a Script" msgstr "Открыть и запустить скрипт" +msgid "Files have been modified outside Godot" +msgstr "Файлы были изменены вне Godot" + +msgid "The following files are newer on disk:" +msgstr "Следующие файлы изменены на диске:" + +msgid "What action should be taken?" +msgstr "Какие действия следует предпринять?" + +msgid "Reload from disk" +msgstr "Перезагрузить с диска" + +msgid "Ignore external changes" +msgstr "Игнорировать внешние изменения" + msgid "Create/Override Version Control Metadata..." msgstr "Создать/переопределить метаданные управления версиями…" @@ -4211,6 +4593,9 @@ msgstr "Открыть 3D-редактор" msgid "Open Script Editor" msgstr "Открыть редактор скриптов" +msgid "Open Game View" +msgstr "Открыть Просмотр Игры" + msgid "Open Asset Library" msgstr "Открыть библиотеку ассетов" @@ -4340,6 +4725,12 @@ msgstr "Новое значение:" msgid "(Nil) %s" msgstr "(Nil) %s" +msgid "%s%s (size %d)" +msgstr "%s%s (размер %d)" + +msgid "%s (size %d)" +msgstr "%s (размер %d)" + msgid "Size:" msgstr "Размер:" @@ -4408,6 +4799,9 @@ msgstr "Расширить скрипт…" msgid "New Shader..." msgstr "Новый шейдер…" +msgid "No Remote Deploy export presets configured." +msgstr "Нет предустановок экспорта для удалённой отладки." + msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the Export menu or define an existing preset " @@ -4417,6 +4811,28 @@ msgstr "" "Добавьте активную предустановку в меню экспорта или отметьте существующую " "предустановку как активную." +msgid "" +"Warning: The CPU architecture \"%s\" is not active in your export preset.\n" +"\n" +msgstr "" +"Предупреждение: архитектура ЦП \"%s\" неактивна в вашем шаблоне экспорта.\n" +"\n" + +msgid "Run \"Remote Deploy\" anyway?" +msgstr "Всё равно запустить \"Удалённую отладку\"?" + +msgid "Deploy to First Device in List" +msgstr "Развернуть на первом устройстве в списке" + +msgid "Deploy to Second Device in List" +msgstr "Развернуть на втором устройстве в списке" + +msgid "Deploy to Third Device in List" +msgstr "Развернуть на третьем устройстве в списке" + +msgid "Deploy to Fourth Device in List" +msgstr "Развернуть на четвертом устройстве в списке" + msgid "Project Run" msgstr "Запуск проекта" @@ -4426,6 +4842,9 @@ msgstr "Пишите ваш код в методе _run()." msgid "The current scene already has a root node." msgstr "У текущей сцены уже есть корневой узел." +msgid "Advanced settings are always shown when searching." +msgstr "При поиске всегда отображаются расширенные настройки." + msgid "Edit Built-in Action: %s" msgstr "Изменить встроенное действие: %s" @@ -4435,9 +4854,15 @@ msgstr "Изменить горячую клавишу: %s" msgid "None" msgstr "Нет" +msgid "Primary" +msgstr "Основной" + msgid "Common" msgstr "Общие" +msgid "Event %d" +msgstr "Событие %d" + msgid "Editor Settings" msgstr "Настройки редактора" @@ -4639,6 +5064,12 @@ msgstr "Неизвестная ошибка" msgid "Export failed with error code %d." msgstr "Экспорт завершился с кодом ошибки %d." +msgid "Patch Creation" +msgstr "Создание обновления" + +msgid "Could not load patch pack with path \"%s\"." +msgstr "Не удалось загрузить обновление по пути \"%s\"." + msgid "Storing File: %s" msgstr "Сохранение файла: %s" @@ -4648,6 +5079,29 @@ msgstr "Сохранение файла:" msgid "No export template found at the expected path:" msgstr "Шаблоны экспорта не найдены по ожидаемому пути:" +msgid "" +"Using user provided text server data, text display in the exported project " +"might be broken if export template was built with different ICU version!" +msgstr "" +"Использование предоставленных пользователем данных текстового сервера, может " +"нарушить отображение текста в экспортированном проекте, если шаблон экспорта " +"был собран с другой версией ICU!" + +msgid "" +"Using editor embedded text server data, text display in the exported project " +"might be broken if export template was built with different ICU version!" +msgstr "" +"Использование встроенного в редактор текстового сервера, может нарушить " +"отображение текста в экспортированном проекте, если шаблон экспорта был " +"собран с другой версией ICU!" + +msgid "" +"Missing text server data, text display in the exported project might be " +"broken!" +msgstr "" +"Отсутствуют данные текстового сервера, отображение текста в экспортированном " +"проекте может быть нарушено!" + msgid "ZIP Creation" msgstr "Создание ZIP" @@ -4666,6 +5120,9 @@ msgstr "Невозможно создать файл «%s»." msgid "Failed to export project files." msgstr "Не удалось экспортировать файлы проекта." +msgid "No files or changes to export." +msgstr "Нет файлов или изменений для экспорта." + msgid "Can't open file for writing at path \"%s\"." msgstr "Не удалось открыть файл для записи по пути «%s»." @@ -4684,6 +5141,9 @@ msgstr "Не удалось открыть файл для чтения из и msgid "Save ZIP" msgstr "Сохранить ZIP" +msgid "Failed to move temporary file \"%s\" to \"%s\"." +msgstr "Не удалось переместить временный файл \"%s\" в \"%s\"." + msgid "Custom debug template not found." msgstr "Пользовательский отладочный шаблон не найден." @@ -4717,6 +5177,12 @@ msgstr "" "При экспорте в 32-битном режиме встроенный PCK-файл не может быть больше 4 " "ГиБ." +msgid "GDExtension" +msgstr "GDExtension" + +msgid "Failed to copy shared object \"%s\"." +msgstr "Не удалось скопировать общий объект \"%s\"." + msgid "Plugin \"%s\" is not supported on \"%s\"" msgstr "Модуль «%s» не поддерживается на «%s»" @@ -4847,6 +5313,15 @@ msgstr "Шаблоны экспорта отсутствуют. Загрузит msgid "Export templates are missing. Install them from a file." msgstr "Шаблоны экспорта отсутствуют. Установите их из файла." +msgid "Not available in offline mode" +msgstr "Недоступно в режиме оффлайн" + +msgid "Template downloading is disabled in offline mode." +msgstr "Загрузка шаблонов отключена в оффлайн режиме." + +msgid "No templates for development builds" +msgstr "нет шаблонов для сборок разработки" + msgid "Official export templates aren't available for development builds." msgstr "Официальные шаблоны экспорта недоступны для рабочих сборок." @@ -4956,9 +5431,15 @@ msgstr "Ресурсы для экспорта:" msgid "(Inherited)" msgstr "(унаслед.)" +msgid "Delete patch '%s' from list?" +msgstr "Удалить обновление '%s' из списка?" + msgid "Export With Debug" msgstr "Экспорт с отладкой" +msgid "Export As Patch" +msgstr "Экспортировать как патч" + msgid "%s Export" msgstr "Экспорт для %s" @@ -5042,9 +5523,18 @@ msgstr "" "Фильтры для исключения файлов/папок из проекта\n" "(через запятую, например: *.json, *.txt, docs/*)" +msgid "Patches" +msgstr "Патчи" + +msgid "Base Packs:" +msgstr "Базовые пакеты:" + msgid "Godot Project Pack" msgstr "Пакет проекта Godot" +msgid "Add Pack" +msgstr "Добавить пакет" + msgid "Features" msgstr "Возможности" @@ -5084,6 +5574,9 @@ msgstr "" msgid "Encryption Key (256-bits as hexadecimal):" msgstr "Ключ шифрования (256 бит, в шестнадцатеричном виде):" +msgid "Initialization vector seed" +msgstr "инициализация начального значения вектора" + msgid "" "Note: Encryption key needs to be stored in the binary,\n" "you need to build the export templates from source." @@ -5203,6 +5696,9 @@ msgstr "Обзор" msgid "Confirm Path" msgstr "Подтвердить путь" +msgid "Link to: %s" +msgstr "Ссылка на: %s" + msgid "View items as a grid of thumbnails." msgstr "Просмотр элементов в виде миниатюр." @@ -5232,6 +5728,9 @@ msgstr "Ошибка перемещения:" msgid "Error duplicating:" msgstr "Ошибка дублирования:" +msgid "Error duplicating directory:" +msgstr "Ошибка дублирования директории:" + msgid "Unable to update dependencies for:" msgstr "Не удалось обновить зависимости:" @@ -5258,6 +5757,9 @@ msgstr "" msgid "A file or folder with this name already exists." msgstr "Файл или папка с таким именем уже существует." +msgid "Could not create base directory: %s" +msgstr "Не удалось создать базовый каталог: %s" + msgid "" "The following files or folders conflict with items in the target location " "'%s':" @@ -5298,6 +5800,13 @@ msgstr "Дублирование папки:" msgid "Create Folder" msgstr "Создать папку" +msgid "" +"Do you wish to convert these files to %s? (This operation cannot be undone!)" +msgstr "Вы хотите преобразовать эти файлы в %s? (Эту операцию нельзя отменить!)" + +msgid "Could not create folder: %s" +msgstr "Не удалось создать папку: %s" + msgid "New Inherited Scene" msgstr "Новая унаследованная сцена" @@ -5358,12 +5867,18 @@ msgstr "Добавить в избранное" msgid "Remove from Favorites" msgstr "Удалить из избранного" +msgid "Convert to..." +msgstr "Преобразовать в..." + msgid "Reimport" msgstr "Повторить импорт" msgid "Open in Terminal" msgstr "Открыть в терминале" +msgid "Open Folder in Terminal" +msgstr "Открыть папку в терминале" + msgid "New Folder..." msgstr "Новая папка..." @@ -5473,6 +5988,9 @@ msgstr "Оставить оба" msgid "Create Script" msgstr "Создать скрипт" +msgid "Convert" +msgstr "Конвертировать" + msgid "Find in Files" msgstr "Найти в файлах" @@ -5510,6 +6028,9 @@ msgstr "Заменить всё (НЕЛЬЗЯ ОТМЕНИТЬ)" msgid "Searching..." msgstr "Поиск..." +msgid "Remove result" +msgstr "Удалить результат" + msgid "%d match in %d file" msgstr "%d совпадение в %d файле" @@ -5600,6 +6121,27 @@ msgstr "Добавить новую группу." msgid "Filter Groups" msgstr "Фильтр групп" +msgid "" +"Scroll Left\n" +"Hold Ctrl to scroll to the begin.\n" +"Hold Shift to scroll one page." +msgstr "" +"Прокрутка влево\n" +"Удерживайте Ctrl, чтобы прокрутить до начала.\n" +"Удерживайте Shift, чтобы прокрутить одну страницу." + +msgid "" +"Scroll Right\n" +"Hold Ctrl to scroll to the end.\n" +"Hold Shift to scroll one page." +msgstr "" +"Прокрутка вправо\n" +"Удерживайте CTRL, чтобы прокрутить до конца.\n" +"Удерживайте Shift, чтобы прокрутить одну страницу." + +msgid "Pin Bottom Panel Switching" +msgstr "Закрепить переключение нижней панели" + msgid "Expand Bottom Panel" msgstr "Развернуть нижнюю панель" @@ -5691,6 +6233,9 @@ msgstr "Переключение режима" msgid "Focus Path" msgstr "Фокус на пути" +msgid "Focus Filter" +msgstr "Фокус на фильтре" + msgid "Move Favorite Up" msgstr "Поднять избранное" @@ -5721,9 +6266,15 @@ msgstr "Каталоги и файлы:" msgid "Toggle the visibility of hidden files." msgstr "Переключить видимость скрытых файлов." +msgid "Toggle the visibility of the filter for file names." +msgstr "Переключить видимость фильтра для имен файлов." + msgid "Preview:" msgstr "Предпросмотр:" +msgid "Filter:" +msgstr "Фильтр:" + msgid "Filter" msgstr "Фильтр" @@ -5747,6 +6298,45 @@ msgstr "Вложенные ресурсы не найдены." msgid "Open a list of sub-resources." msgstr "Открыть список вложенных ресурсов." +msgid "Search files..." +msgstr "Поиск файлов…" + +msgid "Select Resource" +msgstr "Выбрать ресурс" + +msgid "Select Scene" +msgstr "Выбрать сцену" + +msgid "Fuzzy Search" +msgstr "Нечеткий Поиск" + +msgid "Enable fuzzy matching" +msgstr "Включить нечеткое соответствие" + +msgid "Addons" +msgstr "Дополнения" + +msgid "Include files from addons" +msgstr "Включить файлы из дополнений" + +msgid "No files found for this type" +msgstr "Файлы этого типа не найдены" + +msgid "Start searching to find files..." +msgstr "Начните поиск для нахождения файлов..." + +msgid "No results found" +msgstr "Результатов не найдено" + +msgid " (recently opened)" +msgstr " (недавно открыт)" + +msgid "Grid view" +msgstr "Вид сетки" + +msgid "List view" +msgstr "Вид списка" + msgid "Play the project." msgstr "Запустить проект." @@ -5779,9 +6369,72 @@ msgstr "" msgid "Could not start subprocess(es)!" msgstr "Не удалось запустить подпроцесс(ы)!" +msgid "Recovery Mode is enabled. Disable it to run the project." +msgstr "Режим восстановления включен. Отключите его, чтобы запустить проект." + +msgid "" +"Autostart is enabled for the following profilers, which can have a " +"performance impact:" +msgstr "" +"Автозапуск включен для следующих профилировщиков, что может повлиять на " +"производительность:" + msgid "Network Profiler" msgstr "Сетевой профайлер" +msgid "Click to open the first profiler for which autostart is enabled." +msgstr "" +"Щелкните, чтобы открыть первый профайлер, для которого включен автозапуск." + +msgid "Recovery Mode" +msgstr "Режим Восстановления" + +msgid "" +"Godot opened the project in Recovery Mode, which is a special mode that can " +"help recover projects that crash the engine upon initialization. The " +"following features have been temporarily disabled:" +msgstr "" +"Godot открыл проект в Recovery Mode, который является специальным режимом, " +"помогающим восстанавливать проекты, которые приводят к сбою движка при " +"инициализации. Следующие функции временно отключены:" + +msgid "Tool scripts" +msgstr "Инструменты скриптов" + +msgid "Editor plugins" +msgstr "Плагины редактора" + +msgid "GDExtension addons" +msgstr "GDExtension дополнения" + +msgid "Automatic scene restoring" +msgstr "Автоматическое восстановление сцены" + +msgid "" +"If the project cannot be opened outside of this mode, then it's very likely " +"any of these components is preventing this project from launching. This mode " +"is intended only for basic editing to troubleshoot such issues, and therefore " +"it is not possible to run a project in this mode." +msgstr "" +"Если проект не может быть открыт вне этого режима, то весьма вероятно, что " +"какой-либо из этих компонентов препятствует запуску этого проекта. Этот режим " +"предназначен только для базового редактирования, для устранения таких " +"проблем, и поэтому запустить проект в этом режиме невозможно." + +msgid "" +"To disable Recovery Mode, reload the project by pressing the Reload button " +"next to the Recovery Mode banner, or by reopening the project normally." +msgstr "" +"Чтобы отключить режим восстановления, перезагрузите проект, нажав кнопку " +"«Перезагрузить» рядом с баннером режима восстановления или открыв проект в " +"обычном режиме." + +msgid "Disable recovery mode and reload the project." +msgstr "Отключите режим восстановления и перезагрузите проект." + +msgid "Recovery Mode is enabled. Click for more details." +msgstr "Режим восстановления включен. Нажмите для более подробной информации." + msgid "Run the project's default scene." msgstr "Запустить сцену проекта по умолчанию." @@ -5800,12 +6453,24 @@ msgstr "Остановить текущий запущенный проект." msgid "Stop Running Project" msgstr "Остановить запущенный проект" +msgid "Run Scene in Regular Mode" +msgstr "Запустить сцену в обычном режиме" + +msgid "Run Scene in XR Mode" +msgstr "Запустить cцену в режиме XR" + msgid "Run the currently edited scene." msgstr "Запустить текущую редактируемую сцену." msgid "Run Current Scene" msgstr "Запустить текущую сцену" +msgid "Run in Regular Mode" +msgstr "Запуск в обычном режиме" + +msgid "Run in XR Mode" +msgstr "Запуск в XR-режиме" + msgid "Run a specific scene." msgstr "Запустить конкретную сцену." @@ -5871,6 +6536,15 @@ msgstr "" "Дата коммита в Git: %s\n" "Нажмите, чтобы скопировать информацию о версии." +msgid "" +"The root node of a scene is recommended to not be transformed, since " +"instances of the scene will usually override this. Reset the transform and " +"reload the scene to remove this warning." +msgstr "" +"Корневой узел сцены не рекомендуется преобразовывать, так как экземпляры " +"сцены обычно переопределяют это. Сбросьте преобразование и перезагрузите " +"сцену, чтобы убрать это предупреждение." + msgid "Toggle Visible" msgstr "Переключить видимость" @@ -5880,6 +6554,9 @@ msgstr "Разблокировать узел" msgid "Ungroup Children" msgstr "Разгруппировать дочерние элементы" +msgid "Revoke unique name for node \"%s\"?" +msgstr "Отменить уникальное имя для узла \"%s\"?" + msgid "Disable Scene Unique Name" msgstr "Отключить уникальное имя в сцене" @@ -5889,6 +6566,16 @@ msgstr "(источник соединения)" msgid "Node configuration warning:" msgstr "Предупреждение о конфигурации узла:" +msgid "" +"This node can be accessed from anywhere within the scene it belongs to by " +"using the '%s' prefix in the node path." +msgstr "" +"Доступ к этому узлу можно получить из любого места сцены, используя префикс " +"'%s'в пути узла." + +msgid "Click to disable this." +msgstr "Нажмите, чтобы отключить это." + msgid "Node has one connection." msgid_plural "Node has {num} connections." msgstr[0] "Узел имеет {num} соединение." @@ -5904,6 +6591,16 @@ msgstr[2] "Узел в следующих группах:" msgid "Click to show signals dock." msgstr "Нажмите, чтобы показать панель сигналов." +msgid "Click to show groups dock." +msgstr "Нажмите, чтобы показать панель групп." + +msgid "" +"This script can run in the editor.\n" +"It is currently disabled due to recovery mode." +msgstr "" +"Этот скрипт можно запустить в редакторе.\n" +"В настоящее время он отключен из-за режима восстановления." + msgid "This script is currently running in the editor." msgstr "Этот скрипт сейчас выполняется в редакторе." @@ -5940,6 +6637,13 @@ msgstr "Открыть в редакторе" msgid "\"%s\" is not a known filter." msgstr "«%s» — неизвестный фильтр." +msgid "" +"Root nodes cannot be accessed as unique names in their own scene. Instantiate " +"in another scene and set as unique name there." +msgstr "" +"Корневые узлы не могут быть доступны как уникальные имена в их собственной " +"сцене. Создайте экземпляр в другой сцене и задайте там уникальное имя." + msgid "Invalid node name, the following characters are not allowed:" msgstr "Некорректное имя узла. Следующие символы недопустимы:" @@ -5961,6 +6665,19 @@ msgstr "Дерево сцен (узлы):" msgid "Node Configuration Warning!" msgstr "Предупреждение о конфигурации узла!" +msgid "Revoke" +msgstr "Отозвать" + +msgid "Don't Ask Again" +msgstr "Не спрашивать снова" + +msgid "" +"This dialog can also be enabled/disabled in the Editor Settings: Docks > " +"Scene Tree > Ask Before Revoking Unique Name." +msgstr "" +"Этот диалог также можно включить/отключить в Настройках редактора: Панели > " +"Дерево Сцены > Запросить подтверждение прежде чем отозвать уникальное имя." + msgid "Allowed:" msgstr "Разрешено:" @@ -6134,6 +6851,12 @@ msgstr "Материалы" msgid "Selected Animation Play/Pause" msgstr "Воспроизвести/приостановить выбранную анимацию" +msgid "Selected Animation Stop" +msgstr "Остановка выбранной анимации" + +msgid "Toggle Animation Skeleton Visibility" +msgstr "Переключить видимость анимации скелета" + msgid "Rotate Lights With Model" msgstr "Повернуть источники света с моделью" @@ -6578,9 +7301,27 @@ msgstr "Управление свойствами объекта." msgid "This cannot be undone. Are you sure?" msgstr "Это действие нельзя отменить. Продолжить?" +msgid "Add %d Translation" +msgid_plural "Add %d Translations" +msgstr[0] "Добавить %d перевод" +msgstr[1] "Добавить %d перевода" +msgstr[2] "Добавить %d переводов" + msgid "Remove Translation" msgstr "Удалить перевод" +msgid "Translation Resource Remap: Add %d Path" +msgid_plural "Translation Resource Remap: Add %d Paths" +msgstr[0] "Переназначение ресурсов перевода: добавить %d путь" +msgstr[1] "Переназначение ресурсов перевода: добавить %d пути" +msgstr[2] "Переназначение ресурсов перевода: добавить %d путей" + +msgid "Translation Resource Remap: Add %d Remap" +msgid_plural "Translation Resource Remap: Add %d Remaps" +msgstr[0] "Переназначение ресурсов перевода: добавить %d переназначение" +msgstr[1] "Переназначение ресурсов перевода: добавить %d переназначения" +msgstr[2] "Переназначение ресурсов перевода: добавить %d переназначений" + msgid "Change Resource Remap Language" msgstr "Изменить язык переназначения ресурсов" @@ -6590,6 +7331,12 @@ msgstr "Удалить переназначение ресурсов" msgid "Remove Resource Remap Option" msgstr "Удалить параметр переназначения ресурсов" +msgid "Add %d file for POT generation" +msgid_plural "Add %d files for POT generation" +msgstr[0] "Добавить %d файл для POT-генерации" +msgstr[1] "Добавить %d файла для POT-генерации" +msgstr[2] "Добавить %d файлов для POT-генерации" + msgid "Remove file from POT generation" msgstr "Удалить файл из генерации POT" @@ -6863,6 +7610,24 @@ msgstr "Заполнить выделенные дочерние элемент msgid "Invert" msgstr "Инверсия" +msgid "Start of Animation" +msgstr "Начало анимации" + +msgid "End of Animation" +msgstr "Конец анимации" + +msgid "Set Custom Timeline from Marker" +msgstr "Установить пользовательскую временную шкалу от маркера" + +msgid "Select Markers" +msgstr "Выбрать Маркеры" + +msgid "Start Marker" +msgstr "Начальный маркер" + +msgid "End Marker" +msgstr "Конечный маркер" + msgid "Library Name:" msgstr "Имя библиотеки:" @@ -7093,6 +7858,21 @@ msgid "Onion skinning requires a RESET animation." msgstr "" "Для использования «onion skinning» необходима анимация с сбросом (RESET)." +msgid "Play Animation Backwards" +msgstr "Воспроизвести анимацию в обратном направлении" + +msgid "Play Animation Backwards from End" +msgstr "Воспроизвести анимацию в обратном направлении с конца" + +msgid "Pause/Stop Animation" +msgstr "Пауза/Остановка анимации" + +msgid "Play Animation from Start" +msgstr "Воспроизвести выбранную анимацию с начала" + +msgid "Play Animation" +msgstr "Воспроизвести анимацию" + msgid "Animation position (in seconds)." msgstr "Позиция анимации (в секундах)." @@ -7168,6 +7948,12 @@ msgstr "Время смешивания:" msgid "Next (Auto Queue):" msgstr "Следующая анимация (автоматический переход):" +msgid "Go to Next Keyframe" +msgstr "Перейти к следующему ключевому кадру" + +msgid "Go to Previous Keyframe" +msgstr "Перейти к предыдущему ключевому кадру" + msgid "Toggle Animation Bottom Panel" msgstr "Включить или отключить нижнюю панель «Анимация»" @@ -7658,6 +8444,9 @@ msgstr "" "Alt+ПКМ: показать список всех узлов в выбранной позиции, включая " "заблокированные." +msgid "(Available in all modes.)" +msgstr "(Доступно во всех режимах.)" + msgid "RMB: Add node at position clicked." msgstr "ПКМ: добавить узел в выбранной позиции." @@ -7676,6 +8465,16 @@ msgstr "Shift: масштабировать пропорционально." msgid "Show list of selectable nodes at position clicked." msgstr "Показать список доступных для выбора узлов в выбранной позиции." +msgid "Shift: Set temporary pivot." +msgstr "Shift: Установить временную точку вращения." + +msgid "" +"Click this button while holding Shift to put the temporary pivot in the " +"center of the selected nodes." +msgstr "" +"Нажмите эту кнопку, удерживая Shift, чтобы поместить временную точку вращения " +"в центр выбранных узлов." + msgid "Pan Mode" msgstr "Режим панорамирования" @@ -8289,6 +9088,13 @@ msgstr "" msgid "Edit Plugin" msgstr "Редактировать модуль" +msgid "" +"Recovery mode is enabled. Enabled plugins will not run while this mode is " +"active." +msgstr "" +"Режим восстановления включен. Включенные плагины не будут работать, пока этот " +"режим активен." + msgid "Installed Plugins:" msgstr "Установленные модули:" @@ -8365,9 +9171,90 @@ msgstr "Размер восточноазиатских шрифтов" msgid "Numeral Alignment" msgstr "Выравнивание для чисел" +msgid "Variation" +msgstr "Вариация" + msgid "Unable to preview font" msgstr "Не удалось отобразить шрифт" +msgid "Game starting..." +msgstr "Запуск Игры..." + +msgid "Game running not embedded." +msgstr "Игра запущена, но не встроена." + +msgid "Press play to start the game." +msgstr "Нажмите кнопку воспроизведения, чтобы начать игру." + +msgid "Embedding is disabled." +msgstr "Встраивание отключено." + +msgid "" +"Game embedding not available on Wayland.\n" +"Wayland can be disabled in the Editor Settings (Run > Platforms > Linux/*BSD " +"> Prefer Wayland)." +msgstr "" +"Игровое встраивание не доступно для Wayland.\n" +"Wayland может быть отключен в настройках редактора(Запустить>Платформы>Linux/" +"*BSD>Предпочитать Wayland." + +msgid "Game embedding not available on your OS." +msgstr "Встраивание игры недоступно для вашей ОС." + +msgid "" +"Game embedding not available for the Display Server: '%s'.\n" +"Display Server can be modified in the Project Settings (Display > Display " +"Server > Driver)." +msgstr "" +"Встраивание игры недоступно для Display Server: '%s'.\n" +"Display Server можно изменить в настройках проекта (Display > Display Server " +"> Driver)." + +msgid "Game embedding not available in single window mode." +msgstr "Встраивание игры недоступно в режиме одного окна." + +msgid "Next Frame" +msgstr "Следующий Кадр" + +msgid "Alt+RMB: Show list of all nodes at position clicked." +msgstr "Alt+ПКМ: Показать список всех узлов в позиции щелчка." + +msgid "Override the in-game camera." +msgstr "Переопределить игровую камеру." + +msgid "Camera Override Options" +msgstr "Параметры переопределения камеры" + +msgid "Reset 2D Camera" +msgstr "Сбросить 2D-камеру" + +msgid "Reset 3D Camera" +msgstr "Сбросить 3D-камеру" + +msgid "Keep the aspect ratio of the embedded game." +msgstr "Сохраните соотношение сторон встроенной игры." + +msgid "Embedded game size stretches to fit the Game Workspace." +msgstr "" +"Размер встроенной игры растягивается в соответствии с размером игрового " +"рабочего пространства." + +msgid "Embedding Options" +msgstr "Варианты встраивания" + +msgid "Game Workspace" +msgstr "Игровое рабочее пространство" + +msgid "" +"No \"%s\" library found for GDExtension: \"%s\". Possible feature flags for " +"your platform: %s" +msgstr "" +"Библиотека \"%s\" не найдена для GDExtension: \"%s\". Возможные флаги для " +"вашей платформы: %s" + +msgid "Multiple \"%s\" libraries found for GDExtension: \"%s\": \"%s\"." +msgstr "Найдено несколько библиотек \"%s\" для GDExtension: \"%s\": \"%s\"." + msgid "Change AudioStreamPlayer3D Emission Angle" msgstr "Изменить угол излучения AudioStreamPlayer3D" @@ -8504,6 +9391,13 @@ msgstr "" "Не удалось определить путь для сохранения изображений карты освещения.\n" "Сохраните сцену и попробуйте ещё раз." +msgid "" +"No meshes with lightmapping support to bake. Make sure they contain UV2 data " +"and their Global Illumination property is set to Static." +msgstr "" +"Нет сеток с поддержкой карт освещения для запекания. Убедитесь, что они " +"содержат данные UV2, а их свойство Global Illumination установлено на Static." + msgid "No editor scene root found." msgstr "Не найден корень сцены редактора." @@ -8529,12 +9423,28 @@ msgstr "" msgid "Bake Lightmaps" msgstr "Запекать карты освещения" +msgid "Lightmap baking is not supported on this GPU (%s)." +msgstr "Запекание карты освещения не поддерживается на этом GPU (%s)." + +msgid "Lightmaps cannot be baked on %s." +msgstr "Карты освещения не могут быть запечены \"%s\"." + +msgid "" +"Lightmaps cannot be baked, as the `lightmapper_rd` module was disabled at " +"compile-time." +msgstr "" +"Карты освещения не могут быть запечены, так как модуль `lightmapper_rd` был " +"отключен во время компиляции." + msgid "LightMap Bake" msgstr "Запекание карты освещения" msgid "Select lightmap bake file:" msgstr "Выберите файл запекания карты освещения:" +msgid "Preview is not available for this shader mode." +msgstr "Предварительный просмотр недоступен для этого режима шейдера." + msgid "Couldn't create a Trimesh collision shape." msgstr "Невозможно создать форму столкновений с треугольной сеткой." @@ -8729,6 +9639,29 @@ msgstr "" msgid "UV Channel Debug" msgstr "Отладка UV-канала" +msgid "Create NavigationMesh" +msgstr "Создать NavigationMesh" + +msgid "" +"Before converting a rendering mesh to a navigation mesh, please verify:\n" +"\n" +"- The mesh is two-dimensional.\n" +"- The mesh has no surface overlap.\n" +"- The mesh has no self-intersection.\n" +"- The mesh surfaces have indices.\n" +"\n" +"If the mesh does not fulfill these requirements, the pathfinding will be " +"broken." +msgstr "" +"Перед преобразованием сетки рендеринга в сетку навигации проверьте:\n" +"\n" +"- Сетка двумерная.\n" +"- Сетка не имеет перекрытия поверхностей.\n" +"- Сетка не имеет самопересечений.\n" +"- Сетка поверхности имеет индексы.\n" +"\n" +"Если сетка не соответствует этим требованиям, поиск пути будет нарушен." + msgid "Remove item %d?" msgstr "Удалить элемент %d?" @@ -8841,9 +9774,21 @@ msgstr "Задать start_position" msgid "Set end_position" msgstr "Задать end_position" +msgid "Add Vertex" +msgstr "Добавить Вершину" + +msgid "Delete Vertex" +msgstr "Удалить Вершину" + +msgid "Clear Vertices" +msgstr "Очистить Вершины" + msgid "Please Confirm..." msgstr "Подтверждение..." +msgid "Remove all vertices?" +msgstr "Удалить все точки?" + msgid "Create Navigation Polygon" msgstr "Создать полигон навигации" @@ -8917,6 +9862,9 @@ msgstr "Задний ортогональный" msgid "Rear Perspective" msgstr "Задний перспективный" +msgid "[auto]" +msgstr "[авто]" + msgid "X-Axis Transform." msgstr "Преобразование по X." @@ -9280,6 +10228,11 @@ msgstr "" "Сгруппирует выбранный узел с его дочерними узлами. В этом случае, при клике " "на дочерние узлы во вкладках 2D и 3D будет выбираться родитель." +msgid "LMB+Drag: Measure the distance between two points in 3D space." +msgstr "" +"ЛКМ+Перетащить: Измерьте расстояние между двумя точками в трехмерном " +"пространстве." + msgid "Use Local Space" msgstr "Использовать локальное пространство" @@ -9598,6 +10551,9 @@ msgstr "Создание прям. видимости (ожидание симу msgid "Generating..." msgstr "Генерация..." +msgid "Loading emission mask requires ParticleProcessMaterial." +msgstr "Для загрузки маски эмиссии требуется ParticleProcessMaterial." + msgid "GPUParticles2D" msgstr "GPUParticles2D" @@ -9703,6 +10659,9 @@ msgstr "Замкнуть кривую" msgid "Clear Curve Points" msgstr "Удалить точки кривой" +msgid "Create Curve in Path2D" +msgstr "Создать кривую в Path2D" + msgid "Select Points" msgstr "Выбрать точки" @@ -9742,6 +10701,9 @@ msgstr "Отразить угол маркера" msgid "Mirror Handle Lengths" msgstr "Отразить длину маркера" +msgid "Create Curve" +msgstr "Создать кривую" + msgid "Curve Point #" msgstr "Точка кривой #" @@ -9781,6 +10743,12 @@ msgstr "Сбросить входную точку управления" msgid "Reset Point Tilt" msgstr "Сбросить наклон точки" +msgid "Toggle Open/Closed Curve" +msgstr "Переключить открытую/закрытую кривую" + +msgid "Create Curve in Path3D" +msgstr "Создать кривую в Path3D" + msgid "Shift+Click: Select multiple Points" msgstr "Shift+щелчок: выбрать несколько точек" @@ -10023,6 +10991,12 @@ msgstr "Шаг сетки по Y:" msgid "Sync Bones to Polygon" msgstr "Синхронизировать кости с полигоном" +msgid "Polygon" +msgstr "Полигон" + +msgid "Toggle Polygon Bottom Panel" +msgstr "Переключить нижнюю панель полигона" + msgid "Create Polygon3D" msgstr "Создать Polygon3D" @@ -10065,6 +11039,9 @@ msgstr "" "AnimationMixer не имеет корректного пути к корневому узлу, поэтому невозможно " "получить названия дорожек." +msgid "Current value: " +msgstr "Текущие значение: " + msgid "Can't open '%s'. The file could have been moved or deleted." msgstr "Не удалось открыть «%s». Файл мог быть перемещён или удалён." @@ -10191,6 +11168,9 @@ msgstr "Мягко перезагрузить скрипт инструмент msgid "Copy Script Path" msgstr "Копировать путь к скрипту" +msgid "Copy Script UID" +msgstr "Копировать UID скрипта" + msgid "History Previous" msgstr "Предыдущий в журнале" @@ -10230,6 +11210,13 @@ msgstr "Перейти к предыдущему редактируемому д msgid "Go to next edited document." msgstr "Перейти к следующему редактируемому документу." +msgid "" +"Make the script editor floating.\n" +"Right-click to open the screen selector." +msgstr "" +"Сделайте редактор сценариев плавающим.\n" +"Щёлкните правой кнопкой мыши, чтобы открыть выбор экрана." + msgid "Discard" msgstr "Сброс" @@ -10453,6 +11440,13 @@ msgstr "Закрыть файл" msgid "Shader Editor" msgstr "Редактор шейдеров" +msgid "" +"Make the shader editor floating.\n" +"Right-click to open the screen selector." +msgstr "" +"Сделать редактор шейдеров плавающим.\n" +"Щёлкните правой кнопкой мыши, чтобы открыть выбор экрана." + msgid "Toggle Shader Editor Bottom Panel" msgstr "Включить или отключить нижнюю панель «Редактор шейдеров»" @@ -10493,9 +11487,24 @@ msgstr "Сбросить в позу покоя" msgid "Overwrite Rest Pose" msgstr "Перезаписать позу покоя" +msgid "Bone Metadata" +msgstr "Метаданные кости" + +msgid "Add Bone Metadata" +msgstr "Добавить метаданные кости" + msgid "Set Bone Transform" msgstr "Задать трансформацию кости" +msgid "Modify metadata '%s' for bone '%s'" +msgstr "Изменить метаданные '%s' для кости '%s'" + +msgid "Remove metadata '%s' from bone '%s'" +msgstr "Удалить метаданные '%s' из кости '%s'" + +msgid "Add metadata '%s' to bone '%s'" +msgstr "Добавить метаданные '%s' к кости '%s'" + msgid "Set Bone Rest" msgstr "Задать покой кости" @@ -11638,6 +12647,13 @@ msgstr "Рассеяние:" msgid "Tiles" msgstr "Тайлы" +msgid "" +"This TileMap's TileSet has no Tile Source configured. Go to the TileSet " +"bottom panel to add one." +msgstr "" +"TileSet этого TileMap не имеет настроенного источника плиток. Перейдите на " +"нижнюю панель TileSet, чтобы добавить его." + msgid "Sort sources" msgstr "Сортировать источники" @@ -12184,6 +13200,9 @@ msgstr "Удалить источник" msgid "Add atlas source" msgstr "Добавить источник атласа" +msgid "Tile Sources" +msgstr "Источник плиток" + msgid "Sort Sources" msgstr "Сортировать источники" @@ -12267,6 +13286,21 @@ msgstr "Свойства коллекции сцен:" msgid "Tile properties:" msgstr "Свойства тайла:" +msgid "Paint Tool" +msgstr "Инструмент рисования" + +msgid "Line Tool" +msgstr "Инструмент Линия" + +msgid "Rect Tool" +msgstr "Инструмент Прямоугольник" + +msgid "Bucket Tool" +msgstr "Инструмент Заливка" + +msgid "Eraser Tool" +msgstr "Инструмент Ластик" + msgid "TileMap" msgstr "Карта тайлов" @@ -12718,6 +13752,9 @@ msgstr "Удалить вариацию" msgid "Show generated shader code." msgstr "Показать полученный код шейдера." +msgid "Toggle shader preview." +msgstr "Переключить предварительный просмотр шейдера." + msgid "Generated Shader Code" msgstr "Полученный код шейдера" @@ -12733,6 +13770,15 @@ msgstr "Вставить новый узел" msgid "Insert New Reroute" msgstr "Вставить новое перенаправление" +msgid "Filter Parameters" +msgstr "Параметры фильтра" + +msgid "Copy Parameters From Material" +msgstr "Копировать параметры из материала" + +msgid "Paste Parameters To Material" +msgstr "Вставить параметры в материал" + msgid "High-end node" msgstr "Высокопродуктивный узел" @@ -12757,12 +13803,18 @@ msgstr "Функция оттенков серого." msgid "Converts HSV vector to RGB equivalent." msgstr "Конвертирует вектор HSV в RGB-эквивалент." +msgid "Converts color from linear to sRGB color space." +msgstr "Преобразует цвет из линейного в цветовое пространство sRGB." + msgid "Converts RGB vector to HSV equivalent." msgstr "Конвертирует вектор RGB в HSV-эквивалент." msgid "Sepia function." msgstr "Функция сепии." +msgid "Converts color from sRGB to linear color space." +msgstr "Преобразует цвет из sRGB в линейное цветовое пространство." + msgid "Burn operator." msgstr "Оператор выгорания." @@ -13916,6 +14968,37 @@ msgstr "" "Удалить все отсутствующие проекты из списка?\n" "Содержимое папок проектов не будет изменено." +msgid "" +"It looks like Godot crashed when opening this project the last time. If " +"you're having problems editing this project, you can try to open it in " +"Recovery Mode." +msgstr "" +"Похоже, Godot завис при открытии этого проекта в последний раз. Если у вас " +"возникли проблемы с редактированием этого проекта, попробуйте открыть его в " +"режиме восстановления." + +msgid "" +"Recovery Mode is a special mode that may help to recover projects that crash " +"the engine during initialization. This mode temporarily disables the " +"following features:" +msgstr "" +"Recovery Mode — это специальный режим, который может помочь восстановить " +"проекты, которые приводят к сбою движка во время инициализации. Этот режим " +"временно отключает следующие функции:" + +msgid "" +"This mode is intended only for basic editing to troubleshoot such issues, and " +"therefore it will not be possible to run the project during this mode. It is " +"also a good idea to make a backup of your project before proceeding." +msgstr "" +"Этот режим предназначен только для базового редактирования для устранения " +"таких проблем, и поэтому в этом режиме невозможно будет запустить проект. " +"Также хорошей идеей будет сделать резервную копию вашего проекта перед " +"продолжением." + +msgid "Edit the project in Recovery Mode?" +msgstr "Редактировать проект в режиме восстановления?" + msgid "Couldn't load project at '%s'. It may be missing or corrupted." msgstr "" "Не удалось загрузить проект в «%s». Он может отсутствовать или быть повреждён." @@ -14005,6 +15088,9 @@ msgstr "" msgid "Edit Project" msgstr "Редактировать проект" +msgid "Edit in recovery mode" +msgstr "Редактировать в режиме восстановления" + msgid "Rename Project" msgstr "Переименовать проект" @@ -14030,6 +15116,12 @@ msgstr "Выбрать папку для сканирования" msgid "Remove All" msgstr "Удалить все" +msgid "Edit normally" +msgstr "Редактировать обычно" + +msgid "Edit in Recovery Mode" +msgstr "Редактировать в режиме восстановления" + msgid "Convert Full Project" msgstr "Конвертировать весь проект" @@ -14226,6 +15318,15 @@ msgstr "Путь установки проекта:" msgid "Renderer:" msgstr "Отрисовщик:" +msgid "" +"RenderingDevice-based methods not available on this GPU:\n" +"%s\n" +"Please use the Compatibility renderer." +msgstr "" +"Методы на основе RenderingDevice недоступны на этом GPU:\n" +"%s\n" +"Пожалуйста, используйте средство визуализации Совместимости." + msgid "The renderer can be changed later, but scenes may need to be adjusted." msgstr "" "Отрисовщик можно изменить позже, но сцены могут потребовать корректировки." @@ -14236,6 +15337,9 @@ msgstr "Метаданные управления версиями" msgid "Git" msgstr "Git" +msgid "Edit Now" +msgstr "Редактировать сейчас" + msgid "This project was last edited in a different Godot version: " msgstr "В последний раз проект был изменён в другой версии Godot: " @@ -14760,6 +15864,15 @@ msgstr "Изменить родительский узел на новый" msgid "This operation requires a single selected node." msgstr "Для этой операции требуется один выбранный узел." +msgid "Reset Position" +msgstr "Сбросить позицию" + +msgid "Reset Scale" +msgstr "Сбросить масштаб" + +msgid "Reset Rotation" +msgstr "Сбросить вращение" + msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." @@ -14776,6 +15889,9 @@ msgstr "Ошибка дублирования сцены при её сохра msgid "Instantiate Script" msgstr "Инстанцировать скрипт" +msgid "<unknown>" +msgstr "<неизвестно>" + msgid "Sub-Resources" msgstr "Вложенные ресурсы" @@ -15169,6 +16285,47 @@ msgstr "" msgid "Restart & Upgrade" msgstr "Перезапустить и обновить" +msgid "Updating Script UIDs" +msgstr "Обновление UID скрипта" + +msgid "" +"As of Godot 4.4, scenes and resources use UIDs to reference scripts and " +"shaders.\n" +"\n" +"Normally, this update is applied to a single scene or resource once you save " +"it in Godot 4.4 for the first time. If you have a lot of scenes and/or " +"resources, doing this manually may be time-consuming. This tool will update " +"all of the project's scenes and resources at once.\n" +"\n" +"Click \"Restart & Upgrade\" to restart the editor and update all of the " +"scenes and resources in this project. Depending on the project size, it may " +"take several minutes.\n" +"\n" +"Note: Please make sure you have your project backed up before running the " +"tool, to avoid the possibility of data loss. Additionally, make sure to " +"commit all .uid files into version control (and do not add them to ignore-" +"lists like .gitignore)." +msgstr "" +"Начиная с версии Godot 4.4, сцены и ресурсы используют UID для ссылки на " +"скрипты и шейдеры.\n" +"\n" +"Обычно это обновление применяется к одной сцене или ресурсу, как только вы " +"сохраняете его в Godot 4.4 в первый раз. Если у вас много сцен и/или " +"ресурсов, выполнение этого вручную может занять много времени. Этот " +"инструмент обновит все сцены и ресурсы проекта одновременно.\n" +"\n" +"Нажмите «Перезапустить и обновить», чтобы перезапустить редактор и обновить " +"все сцены и ресурсы в этом проекте. В зависимости от размера проекта это " +"может занять несколько минут.\n" +"\n" +"Примечание: Пожалуйста, убедитесь, что у вас есть резервная копия вашего " +"проекта перед запуском инструмента, чтобы избежать возможной потери данных. " +"Кроме того, убедитесь, что все файлы .uid переданы в систему контроля версий " +"(и не добавляйте их в списки игнорирования, такие как .gitignore)." + +msgid "Learn More" +msgstr "Узнать больше" + msgid "Make this panel floating in the screen %d." msgstr "Сделать эту панель плавающей на экране %d." @@ -15182,6 +16339,26 @@ msgstr "" msgid "Select Screen" msgstr "Выбрать экран" +msgid "CSG operation returned an empty array." +msgstr "Операция CSG вернула пустой массив." + +msgid "CSG operation returned an empty mesh." +msgstr "Операция CSG вернула пустую сетку." + +msgid "" +"Can not add a baked collision shape as sibling for the scene root.\n" +"Move the CSG root node below a parent node." +msgstr "" +"Невозможно добавить запеченную форму столкновения в качестве родственной для " +"корня сцены.\n" +"Переместите корневой узел CSG ниже родительского узла." + +msgid "CSG operation returned an empty shape." +msgstr "Операция CSG вернула пустую форму." + +msgid "CSG" +msgstr "CSG" + msgid "Change Torus Inner Radius" msgstr "Изменить внутренний радиус тора" @@ -15321,6 +16498,9 @@ msgstr "Изменить ось Y" msgid "Edit Z Axis" msgstr "Изменить ось Z" +msgid "Clear Rotation" +msgstr "Очистить вращение" + msgid "GridMap Settings" msgstr "Параметры GridMap" @@ -15330,6 +16510,9 @@ msgstr "Расстояние выбора:" msgid "Selection" msgstr "Выделение" +msgid "Erase" +msgstr "Ластик" + msgid "Cursor Rotate X" msgstr "Поворот курсора по X" @@ -15347,6 +16530,12 @@ msgstr "" "Предоставьте GridMap ресурс MeshLibrary (библиотека сеток), чтобы " "использовать его сетки." +msgid "GridMap" +msgstr "GridMap" + +msgid "Toggle GridMap Bottom Panel" +msgstr "Переключить нижнюю панель GridMap" + msgid "All Clips" msgstr "Все клипы" @@ -15766,6 +16955,11 @@ msgstr "Добавить действие." msgid "Remove action set." msgstr "Удалить набор действий." +msgid "Note: modifiers will only be applied if supported on the host system." +msgstr "" +"Примечание: модификаторы будут применяться только в том случае, если они " +"поддерживаются хост-системой." + msgid "OpenXR Action Map" msgstr "Карта действий OpenXR" @@ -15775,6 +16969,9 @@ msgstr "Включить или отключить нижнюю панель « msgid "Remove action from interaction profile" msgstr "Удалить действие из профиля взаимодействия" +msgid "Note: This interaction profile requires extension %s support." +msgstr "Примечание: для этого профиля требуется поддержка расширения %s." + msgid "Add binding" msgstr "Добавить привязку" @@ -16212,13 +17409,6 @@ msgstr "" "Запрошенная библиотека шаблонов «%s» не найдена. Возможно, она отсутствует в " "вашем архиве шаблонов." -msgid "ARM64 simulator library, generating from device library." -msgstr "" -"Библиотека моделирования ARM64, генерируемая на основе библиотеки устройств." - -msgid "Unable to generate ARM64 simulator library." -msgstr "Не удалось сгенерировать библиотеку моделирования ARM64." - msgid "Could not copy a file at path \"%s\" to \"%s\"." msgstr "Не удалось скопировать файл по пути «%s» в «%s»." @@ -18072,11 +19262,6 @@ msgstr "Объект типа «%s» нельзя проиндексироват msgid "Invalid base type for increment/decrement operator." msgstr "Некорректный базовый тип для оператора инкремента/декремента." -msgid "Invalid use of increment/decrement operator in a constant expression." -msgstr "" -"Некорректное использование оператора инкремента/декремента в константном " -"выражении." - msgid "Invalid token for the operator: '%s'." msgstr "Неверный токен для оператора: «%s»." @@ -18440,6 +19625,9 @@ msgstr "«##» не должно появляться в начале развё msgid "'##' must not appear at end of macro expansion." msgstr "«##» не должно появляться в конце развёртывания макроса." +msgid "Unmatched '%s' directive." +msgstr "Несоответствующая директива \"%s\"." + msgid "Missing condition." msgstr "Пропущено условие." diff --git a/engine/editor/translations/editor/sk.po b/engine/editor/translations/editor/sk.po index 25a15544..0893a128 100644 --- a/engine/editor/translations/editor/sk.po +++ b/engine/editor/translations/editor/sk.po @@ -7,7 +7,7 @@ # Zuzana Palenikova <sousana.is@gmail.com>, 2019. # MineGame159 <petulko08@gmail.com>, 2019, 2020. # Michal <alladinsiffon@gmail.com>, 2019. -# Richard <rgarlik@gmail.com>, 2019. +# Richard <rgarlik@gmail.com>, 2019, 2025. # Richard Urban <redasuio1@gmail.com>, 2020. # Anonymous <noreply@weblate.org>, 2020. # Mario-projects-dev <m.vitek.mv@gmail.com>, 2021. @@ -28,8 +28,8 @@ msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2024-10-28 14:43+0000\n" -"Last-Translator: David Chorváth <dadulo33@gmail.com>\n" +"PO-Revision-Date: 2025-02-22 12:18+0000\n" +"Last-Translator: Richard <rgarlik@gmail.com>\n" "Language-Team: Slovak <https://hosted.weblate.org/projects/godot-engine/godot/" "sk/>\n" "Language: sk\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 5.8.2-dev\n" +"X-Generator: Weblate 5.10.1-dev\n" msgid "Main Thread" msgstr "Hlavné vlákno" @@ -395,6 +395,9 @@ msgstr "Zobraziť Skryté" msgid "Swap Input Direction" msgstr "Prevrátiť smer vstupu" +msgid "Start Unicode Character Input" +msgstr "Začať vstup znaku Unicode" + msgid "Invalid input %d (not passed) in expression" msgstr "Nesprávny vstup %d (neprešiel) vo výraze" @@ -603,6 +606,9 @@ msgstr "Animácia Zmeniť Pozíciu3D" msgid "Animation Change Rotation3D" msgstr "Animácia: Zmena 3D Rotácie" +msgid "Animation Change Scale3D" +msgstr "Animácia: Zmeniť 3D Zväčšenie" + msgid "Change Animation Length" msgstr "Zmeniť Dĺžku Animácie (Change Animation Length)" diff --git a/engine/editor/translations/editor/th.po b/engine/editor/translations/editor/th.po index 6271f116..2bda70e4 100644 --- a/engine/editor/translations/editor/th.po +++ b/engine/editor/translations/editor/th.po @@ -21,13 +21,14 @@ # Donte <donte5405@outlook.com>, 2024. # Mineis Meee <simsfashion694@gmail.com>, 2024. # Suvijak Nopparatcharoensuk <guy.suvijak@hotmail.com>, 2025. +# J Iamsamang <nodtem66@gmail.com>, 2025. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2025-01-29 20:50+0000\n" -"Last-Translator: Suvijak Nopparatcharoensuk <guy.suvijak@hotmail.com>\n" +"PO-Revision-Date: 2025-02-27 00:43+0000\n" +"Last-Translator: J Iamsamang <nodtem66@gmail.com>\n" "Language-Team: Thai <https://hosted.weblate.org/projects/godot-engine/godot/" "th/>\n" "Language: th\n" @@ -35,7 +36,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 5.10-dev\n" +"X-Generator: Weblate 5.10.2-dev\n" msgid "Main Thread" msgstr "เธรดหลัก" @@ -386,6 +387,9 @@ msgstr "แสดงที่ซ่อนอยู่" msgid "Swap Input Direction" msgstr "สลับทิศทางอินพุต" +msgid "Start Unicode Character Input" +msgstr "เริ่มป้อนตัวอักขระแบบ Unicode" + msgid "Invalid input %d (not passed) in expression" msgstr "อินพุต %d (ไม่ส่งผ่าน) ใน expression ไม่ถูกต้อง" @@ -486,6 +490,12 @@ msgstr "ชื่อ:" msgid "Type:" msgstr "ชนิด:" +msgid "Metadata name can't be empty." +msgstr "ชื่อไม่สามารถปล่อยว่างได้" + +msgid "Names starting with _ are reserved for editor-only metadata." +msgstr "ชื่อที่ขึ้นต้นด้วย _ สงวนไว้ใช้กับ metadata ของ editor" + msgid "Time:" msgstr "เวลา:" @@ -6792,9 +6802,6 @@ msgstr "Object ของประเภท '%s' ไม่สามารถ Inde msgid "Invalid base type for increment/decrement operator." msgstr "Base Type ของ Increment/Decrement Operator ไม่ถูกต้อง" -msgid "Invalid use of increment/decrement operator in a constant expression." -msgstr "การใช้ Increment/Decrement Operator สำหรับ Constant Expression ไม่ถูกต้อง" - msgid "Invalid token for the operator: '%s'." msgstr "Token สำหรับ Operator ไม่ถูกต้อง: '%s'" diff --git a/engine/editor/translations/editor/tr.po b/engine/editor/translations/editor/tr.po index bec76dc9..19043474 100644 --- a/engine/editor/translations/editor/tr.po +++ b/engine/editor/translations/editor/tr.po @@ -96,7 +96,7 @@ # atahanacar <atahanacar@gmx.com>, 2023. # efella <furkanefe911@gmail.com>, 2023. # Black <ebubekir23atalay@gmail.com>, 2023. -# Yılmaz Durmaz <yilmaz_durmaz@hotmail.com>, 2023, 2024. +# Yılmaz Durmaz <yilmaz_durmaz@hotmail.com>, 2023, 2024, 2025. # ErcanPasha <dayanomerercan@gmail.com>, 2023. # Yoldaş Ulaş <yutalas@gmail.com>, 2023. # Mertcan YILDIRIM <mertcanyildirim463@gmail.com>, 2023. @@ -112,13 +112,14 @@ # Makro <23makro@gmail.com>, 2024. # Emre Kadir Karagöz <emrekadir197@gmail.com>, 2024. # ulk <ulk.info@gmail.com>, 2024, 2025. +# Murateba <robloxmurat5@gmail.com>, 2025. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2025-01-01 13:01+0000\n" -"Last-Translator: ulk <ulk.info@gmail.com>\n" +"PO-Revision-Date: 2025-03-02 14:20+0000\n" +"Last-Translator: Yılmaz Durmaz <yilmaz_durmaz@hotmail.com>\n" "Language-Team: Turkish <https://hosted.weblate.org/projects/godot-engine/" "godot/tr/>\n" "Language: tr\n" @@ -126,7 +127,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 5.10-dev\n" +"X-Generator: Weblate 5.10.3-dev\n" msgid "Main Thread" msgstr "Ana İş Parçası" @@ -343,7 +344,7 @@ msgid "Home" msgstr "Home" msgid "End" -msgstr "Bitiş" +msgstr "End" msgid "Cut" msgstr "Kes" @@ -483,6 +484,9 @@ msgstr "Gizli Olanı Göster" msgid "Swap Input Direction" msgstr "Giriş Yönünü Değiştir" +msgid "Start Unicode Character Input" +msgstr "Evrensel Kod Karakter Girişini Başlat" + msgid "Invalid input %d (not passed) in expression" msgstr "İfadede geçersiz %d girişi (verilmedi)" @@ -613,7 +617,7 @@ msgstr "" "ayrılmıştır." msgid "Time:" -msgstr "Süre:" +msgstr "Kare:" msgid "Value:" msgstr "Değer:" @@ -664,16 +668,16 @@ msgid "Move Bezier Points" msgstr "Bezier Noktalarını Taşı" msgid "Animation Duplicate Keys" -msgstr "Canlandırmada Kopya Anahtarlar" +msgstr "Canlandırma Anahtarları Çoğalt" msgid "Animation Cut Keys" -msgstr "Canlandırmada Anahtarları Kes" +msgstr "Canlandırma Anahtarları Kes" msgid "Animation Paste Keys" -msgstr "Canlandırmada Anahtarları Yapıştır" +msgstr "Canlandırma Anahtarları Yapıştır" msgid "Animation Delete Keys" -msgstr "Canlandırmada Silinecek Anahtarlar" +msgstr "Canlandırma Anahtarları Sil" msgid "Focus" msgstr "Odak" @@ -688,37 +692,37 @@ msgid "Animation Change Transition" msgstr "Canlandırma Geçişi Değiştir" msgid "Animation Change Position3D" -msgstr "Canlandırma 3B Konum Değiştirme" +msgstr "Canlandırma 3B Konumu Değiştir" msgid "Animation Change Rotation3D" -msgstr "Canlandırma 3B Dönme Değiştirme" +msgstr "Canlandırma 3B Dönmeyi Değiştir" msgid "Animation Change Scale3D" -msgstr "Canlandırma 3B Ölçek Değiştirme" +msgstr "Canlandırma 3B Ölçeği Değiştir" msgid "Animation Change Keyframe Value" msgstr "Canlandırma Anahtar Kare Değerini Değiştir" msgid "Animation Change Call" -msgstr "Canlandırma Değişiklik Çağrısı" +msgstr "Canlandırma Çağrıyı Değiştir" msgid "Animation Multi Change Transition" msgstr "Canlandırma Çoklu Değişim Geçişi" msgid "Animation Multi Change Position3D" -msgstr "Canlandırma Çoklu 3B Konum Değiştirme" +msgstr "Canlandırma Çoklu 3B Konum Değiştir" msgid "Animation Multi Change Rotation3D" -msgstr "Canlandırma Çoklu 3B Dönme Değiştirme" +msgstr "Canlandırma Çoklu 3B Dönme Değiştir" msgid "Animation Multi Change Scale3D" -msgstr "Canlandırma Çoklu 3B Ölçek Değiştirme" +msgstr "Canlandırma Çoklu 3B Ölçek Değiştir" msgid "Animation Multi Change Keyframe Value" -msgstr "Canlandırma Çoklu Anahtar Kare Değer Değişimi" +msgstr "Canlandırma Çoklu Anahtar Kare Değer Değiştir" msgid "Animation Multi Change Call" -msgstr "Canlandırma Çoklu Değişim Çağrısı" +msgstr "Canlandırma Çoklu Çağrı Değiştir" msgid "Change Animation Length" msgstr "Canlandırma Uzunluğunu Değiştir" @@ -726,6 +730,38 @@ msgstr "Canlandırma Uzunluğunu Değiştir" msgid "Change Animation Loop" msgstr "Canlandırma Döngüsünü Değiştir" +msgid "" +"Can't change loop mode on animation instanced from an imported scene.\n" +"\n" +"To change this animation's loop mode, navigate to the scene's Advanced Import " +"settings and select the animation.\n" +"You can then change the loop mode from the inspector menu." +msgstr "" +"İçe aktarılan bir sahneden örneklenen canlandırmanın döngü kipi " +"değiştirilemez.\n" +"\n" +"Bu canlandırmanın döngü kipini değiştirmek için sahnenin Gelişmiş İçe Aktarma " +"ayarlarına gidin ve canlandırmayı seçin.\n" +"Ardından döngü kipini denetleyici menüsünden değiştirebilirsiniz." + +msgid "Can't change loop mode on animation instanced from an imported resource." +msgstr "" +"İçe aktarılan bir kaynaktan örneklenen canlandırmanın döngü kipi " +"değiştirilemez." + +msgid "" +"Can't change loop mode on animation embedded in another scene.\n" +"\n" +"You must open this scene and change the animation's loop mode from there." +msgstr "" +"Başka bir sahnede gömülü olan canlandırmanın döngü kipi değiştirilemez.\n" +"\n" +"O sahneyi açmalı ve canlandırmanın döngü tipini orada değiştirmelisiniz." + +msgid "Can't change loop mode on animation embedded in another resource." +msgstr "" +"Başka bir kaynakta gömülü olan canlandırmanın döngü kipi değiştirilemez." + msgid "Property Track..." msgstr "Özellik İzi..." @@ -817,10 +853,10 @@ msgid "Easing:" msgstr "Yumuşatma:" msgid "In-Handle:" -msgstr "İç-Tutamaç:" +msgstr "Geliş-Tutamacı:" msgid "Out-Handle:" -msgstr "Dış-Tutamaç:" +msgstr "Gidiş-Tutamacı:" msgid "Handle mode: Free\n" msgstr "Tutamaç Kipi: Serbest\n" @@ -844,7 +880,7 @@ msgid "End (s):" msgstr "Bitiş (sn):" msgid "Animation Clip:" -msgstr "Canlandırma Parçası:" +msgstr "Kısa Canlandırma Parçası:" msgid "Toggle Track Enabled" msgstr "İz Dönüştürücü Etkin" @@ -1055,7 +1091,7 @@ msgid "Animation Add RESET Keys" msgstr "Canlandırma RESET Anahtarları Ekle" msgid "Bake Animation as Linear Keys" -msgstr "Canlandırmayı Doğrusal Anahtarlar Olarak Pişir" +msgstr "Canlandırmayı Doğrusal Anahtarlar Olarak Fırınla" msgid "" "This animation belongs to an imported scene, so changes to imported tracks " @@ -1125,6 +1161,15 @@ msgstr "Sadece ağacın seçili düğümlerinden gelen izleri göster." msgid "Group tracks by node or display them as plain list." msgstr "İzleri düğüme göre grupla veya onları düz liste olarak göster." +msgid "Apply snapping to timeline cursor." +msgstr "Kurgu şeridi imlecine tutunma uygula." + +msgid "Apply snapping to selected key(s)." +msgstr "Seçili anahtar(lar)a tutunma uygula." + +msgid "Apply snapping to the nearest integer FPS." +msgstr "En yakın tamsayı FPS'ye tutunma uygula." + msgid "Animation step value." msgstr "Canlandırma adım değeri." @@ -1192,7 +1237,7 @@ msgid "Apply Reset" msgstr "Sıfırlamayı Uygula" msgid "Bake Animation..." -msgstr "Canlandırmayı Pişir..." +msgstr "Canlandırmayı Fırınla..." msgid "Optimize Animation (no undo)..." msgstr "Canlandırmayı Eniyileştir (geri alınamaz)..." @@ -1325,7 +1370,7 @@ msgid "FPS:" msgstr "FPS:" msgid "Animation Baker" -msgstr "Canlandırma Pişirici" +msgstr "Canlandırma Fırınlayıcı" msgid "3D Pos/Rot/Scl Track:" msgstr "3B Kon/Dön/Ölç İzi:" @@ -1345,12 +1390,75 @@ msgstr "Tümünü Seç /Seçimleri Kaldır" msgid "Animation Change Keyframe Time" msgstr "Canlandırma Anahtar Kare Zamanını Değiştir" +msgid "Marker name is read-only in the inspector." +msgstr "İşaretçi adı denetleyicide salt okunurdur." + +msgid "" +"A marker's name can only be changed by right-clicking it in the animation " +"editor and selecting \"Rename Marker\", in order to make sure that marker " +"names are all unique." +msgstr "" +"Bir işaretçinin adı, işaretçi adlarının tümünün benzersiz olduğundan emin " +"olmak için, yalnızca canlandırma düzenleyicisinde sağ tıklanarak ve " +"\"İşaretçiyi Yeniden Adlandır\" seçilerek değiştirilebilir." + +msgid "Insert Marker..." +msgstr "İşaretçi Ekle..." + +msgid "Rename Marker" +msgstr "İşaretçiyi Yeniden Adlandır" + +msgid "Delete Marker(s)" +msgstr "İşaretçi(leri) Sil" + +msgid "Show All Marker Names" +msgstr "Tüm İşaretçi İsimlerini Göster" + +msgid "Marker:" +msgstr "İşaretçi:" + +msgid "Animation Move Markers" +msgstr "Canlandırma İşaretçileri Taşı" + +msgid "Animation Delete Markers" +msgstr "Canlandırma İşaretçileri Sil" + +msgid "Marker '%s' already exists!" +msgstr "'%s' işaretçisi zaten var!" + +msgid "Add Marker Key" +msgstr "İşaretçi Anahtarı Ekle" + +msgid "Empty marker names are not allowed." +msgstr "Boş işaretçi isimlerine izin verilmez." + +msgid "Insert Marker" +msgstr "İşaretçi Ekle" + +msgid "Marker Name" +msgstr "İşaretçi İsmi" + +msgid "Marker Color" +msgstr "İşaretçi Rengi" + msgid "Close" msgstr "Kapat" msgid "Error!" msgstr "Hata!" +msgid "Change Marker Name:" +msgstr "İşaretçi İsmini Değiştir:" + +msgid "Edit Marker Color" +msgstr "İşaretçi Rengini Düzenle" + +msgid "Multi Edit Marker Color" +msgstr "İşaretçi Rengini Çoklu Düzenle" + +msgid "Animation Change Marker Time" +msgstr "Canlandırma İşaretçi Karesini Değiştir" + msgid "Add Audio Track Clip" msgstr "Ses İz Parçası Ekle" @@ -1382,6 +1490,12 @@ msgid_plural "%d of %d matches" msgstr[0] "%d eşleşme (%d içinde)" msgstr[1] "%d eşleşen (%d içinde)" +msgid "Hide Replace" +msgstr "Değiştirmeyi Gizle" + +msgid "Show Replace" +msgstr "Değiştirmeyi Göster" + msgid "Find" msgstr "Bul" @@ -1438,6 +1552,13 @@ msgstr "Uyarılar" msgid "Zoom factor" msgstr "Yakınlaştıma oranı" +msgid "" +"%sMouse wheel, %s/%s: Finetune\n" +"%s: Reset" +msgstr "" +"%sFare Tekeri, %s/%s: İnceayar\n" +"%s: Sıfırla" + msgid "Line and column numbers." msgstr "Satır ve sütun numaraları." @@ -1596,6 +1717,12 @@ msgstr "Yeni %s Oluştur" msgid "No results for \"%s\"." msgstr "\"%s\" için sonuç yok." +msgid "Script path: %s" +msgstr "Betik yolu: %s" + +msgid "The script will run in the editor." +msgstr "Betik, düzenleyicide çalışacak." + msgid "This class is marked as deprecated." msgstr "Bu sınıf, kullanım dışı olarak işaretlenmiştir." @@ -1626,6 +1753,9 @@ msgstr "Tanımlama:" msgid "Remote %s:" msgstr "Uzak %s:" +msgid "Session %d" +msgstr "Oturum %d" + msgid "Debugger" msgstr "Hata Ayıklayıcı" @@ -1656,6 +1786,15 @@ msgstr "" msgid "Toggle Visibility" msgstr "Görünürlüğü Aç/Kapat" +msgid "Expression to evaluate" +msgstr "Değerlendirilecek ifade" + +msgid "Clear on Run" +msgstr "Çalıştırırken Temizle" + +msgid "Evaluate" +msgstr "Değerlendir" + msgid "Clear" msgstr "Temizle" @@ -1701,6 +1840,9 @@ msgstr "Durdur" msgid "Start" msgstr "Başlat" +msgid "Autostart" +msgstr "Otomatik Başla" + msgid "Measure:" msgstr "Ölçü:" @@ -1858,6 +2000,9 @@ msgstr "Hepsini Genişlet" msgid "Collapse All" msgstr "Hepsini Daralt" +msgid "Evaluator" +msgstr "Değerlendirici" + msgid "Profiler" msgstr "Profil Çıkarıcı" @@ -1986,6 +2131,12 @@ msgstr "" msgid "Cannot remove:" msgstr "Kaldırılamıyor:" +msgid "Files to be deleted:" +msgstr "Silinecek dosyalar:" + +msgid "Dependencies of files to be deleted:" +msgstr "Silinecek dosyalara olan bağımlılıklar:" + msgid "Error loading:" msgstr "Yüklerken hata:" @@ -2005,7 +2156,7 @@ msgid "Errors loading!" msgstr "Hatalar yükleniyor!" msgid "Permanently delete %d item(s)? (No undo!)" -msgstr "%d Ögeyi kalıcı olarak silsin mi? (Geri alınamaz!)" +msgstr "%d ögeyi kalıcı olarak silsin mi? (Geri alınamaz!)" msgid "Show Dependencies" msgstr "Bağımlılıkları göster" @@ -2022,15 +2173,27 @@ msgstr "Belirgin Aidiyeti Olmayan Kaynaklar:" msgid "Name cannot be empty." msgstr "İsim boş olamaz." +msgid "File name can't end with /." +msgstr "Dosya adı / ile sonlanamaz." + +msgid "File name cannot be empty." +msgstr "Dosya adı boş olamaz." + msgid "Folder name cannot be empty." msgstr "Klasör adı boş olamaz." +msgid "File name contains invalid characters." +msgstr "Dosya ismi geçersiz karakterler içeriyor." + msgid "Folder name contains invalid characters." msgstr "Klasör adı geçersiz karakterler içeriyor." msgid "File name begins with a dot." msgstr "Dosya adı nokta ile başlıyor." +msgid "Folder name begins with a dot." +msgstr "Klasör adı bir nokta ile başlıyor." + msgid "File with that name already exists." msgstr "Bu isimde bir dosya zaten var." @@ -2042,6 +2205,19 @@ msgstr "" "Klasör adlarında eğik çizgi (/) kullanmak, alt klasörleri özyinelemeli olarak " "oluşturur." +msgid "" +"Using slashes in path will create the file in subfolder, creating new " +"subfolders if necessary." +msgstr "" +"Yol adlarında eğik çizgi (/) kullanmak, dosyayı alt klasörlerde (gerektiğinde " +"yeni alt klasörleri yaratarak) oluşturacak." + +msgid "File name is valid." +msgstr "Dosya ismi geçerlidir." + +msgid "Base path: %s" +msgstr "Temel yol: %s" + msgid "Folder name is valid." msgstr "Klasör adı geçerli." @@ -2323,6 +2499,9 @@ msgstr "Ses Veri Yolu Düzeni" msgid "Invalid name." msgstr "Geçersiz isim." +msgid "Must be a valid Unicode identifier." +msgstr "Geçerli bir Evrensel Kod tanımlayıcı olmalıdır." + msgid "Must not collide with an existing engine class name." msgstr "Var olan bir motor sınıfı adıyla çakışmamalıdır." @@ -2593,6 +2772,12 @@ msgstr "[boş]" msgid "[unsaved]" msgstr "[kaydedilmemiş]" +msgid "Open the %s dock." +msgstr "%s yuvasını aç." + +msgid "Focus on the %s dock." +msgstr "%s yuvasını odakla." + msgid "%s - Godot Engine" msgstr "%s - Godot Motoru" @@ -2644,6 +2829,9 @@ msgstr "İçe Aktarım Yuvası" msgid "History Dock" msgstr "Geçmiş Yuvası" +msgid "Game View" +msgstr "Oyun Görünümü" + msgid "Allows to view and edit 3D scenes." msgstr "3B sahneleri görüntülemeye ve düzenlemeye izin verir." @@ -2680,6 +2868,10 @@ msgid "Provides an overview of the editor's and each scene's undo history." msgstr "" "Düzenleyicinin ve her sahnenin geri alma geçmişine genel bir bakış sağlar." +msgid "Provides tools for selecting and debugging nodes at runtime." +msgstr "" +"Düğümleri çalışma zamanında seçmek ve hata ayıklamak için araçlar sağlar." + msgid "(current)" msgstr "(geçerli olan)" @@ -2769,10 +2961,34 @@ msgstr "Profil(leri) İçe Aktar" msgid "Manage Editor Feature Profiles" msgstr "Düzenleyici Özellik Profillerini Yönet" +msgid "Project initialization" +msgstr "Projenin ilk başlatılması" + +msgid "Scanning file structure..." +msgstr "Dosya yapısı taranıyor..." + +msgid "Loading global class names..." +msgstr "Genel sınıf isimleri yükleniyor..." + +msgid "Verifying GDExtensions..." +msgstr "GDExtension'lar doğrulanıyor..." + +msgid "Creating autoload scripts..." +msgstr "Otomatik yükleme betikleri oluşturuluyor..." + +msgid "Initializing plugins..." +msgstr "Eklentiler başlatılıyor..." + +msgid "Starting file scan..." +msgstr "Dosya taraması başlatılıyor..." + +msgid "Scanning actions..." +msgstr "Eylemler taranıyor..." + msgid "Some extensions need the editor to restart to take effect." msgstr "" -"Bazı uzantılar etkili olabilmeleri için editörün yeniden başlatılmasını " -"gerektirir." +"Bazı uzantılar, etkili olabilmeleri için düzenleyicinin yeniden " +"başlatılmasını gerektirir." msgid "Restart" msgstr "Yeniden Başlat" @@ -2783,19 +2999,43 @@ msgstr "Kaydet ve Yeniden Başlat" msgid "ScanSources" msgstr "TaramaKaynakları" +msgid "Registering global classes..." +msgstr "Genel sınıflar kaydediliyor..." + +msgid "Updating scripts documentation" +msgstr "Betik belgeleri güncelleniyor" + +msgid "Updating Scene Groups" +msgstr "Sahne Grupları Güncelleniyor" + msgid "" "There are multiple importers for different types pointing to file %s, import " "aborted" msgstr "" -"%s dosyasına işaret eden farklı türlerde bir çok içe aktarma ögesi var, içe " -"aktarım iptal edildi" +"%s dosyasına işaret eden farklı türlerde birçok içe aktarıcı var, içe aktarım " +"iptal edildi" msgid "(Re)Importing Assets" msgstr "Varlıklar (Yeniden)İçe Aktarılıyor" +msgid "Preparing files to reimport..." +msgstr "Dosyalar, yeniden içe aktarma için hazırlanıyor..." + +msgid "Executing pre-reimport operations..." +msgstr "Yeniden içe aktarma öncesi işlemler yürütülüyor..." + msgid "Import resources of type: %s" msgstr "Şu tür kaynakları içe aktar: %s" +msgid "Finalizing Asset Import..." +msgstr "Varlık İçe Aktarımı Tamamlanıyor..." + +msgid "Executing post-reimport operations..." +msgstr "Yeniden içe aktarma sonrası işlemler yürütülüyor..." + +msgid "Copying files..." +msgstr "Dosyalar kopyalanıyor..." + msgid "This method supports a variable number of arguments." msgstr "Bu yöntem, değişen sayıda girdi değişkenini destekler." @@ -2820,6 +3060,9 @@ msgstr "" "Bu yöntemin çağrılması için bir kopya oluşum gerekmez.\n" "Sınıf adı kullanılarak doğrudan çağrılabilir." +msgid "Code snippet copied to clipboard." +msgstr "Kod parçacığı panoya kopyalandı." + msgid "No return value." msgstr "Dönüş değeri yok." @@ -2970,6 +3213,10 @@ msgstr "Simgeler" msgid "Styles" msgstr "Tarzlar" +msgid "This theme property may be changed or removed in future versions." +msgstr "" +"Bu tema özelliği, gelecek sürümlerde değiştirilebilir veya kaldırılabilir." + msgid "There is currently no description for this theme property." msgstr "Şu anda bu tema özelliği için herhangi bir tanımlama bulunmamaktadır." @@ -3049,9 +3296,16 @@ msgstr "Düzenleyici" msgid "Click to copy." msgstr "Kopyalamak için tıklayın." +msgid "Click to open in browser." +msgstr "Tarayıcıda açmak için tıklayın." + msgid "No description available." msgstr "Tanımlama mevcut değil." +msgid "This annotation may be changed or removed in future versions." +msgstr "" +"Bu ek-tanımlayıcı, gelecek sürümlerde değiştirilebilir veya kaldırılabilir." + msgid "Show in FileSystem" msgstr "DosyaSistemi'nde Göster" @@ -3061,12 +3315,24 @@ msgstr "Dosya Yöneticisinde Aç" msgid "Class" msgstr "Sınıf" +msgid "Enumeration" +msgstr "Numaralandırma" + msgid "Constant" msgstr "Sabit" +msgid "Metadata" +msgstr "Metaveri" + +msgid "Setting" +msgstr "Ayar" + msgid "Property" msgstr "Özellik" +msgid "Internal Property" +msgstr "Dahili Özellik" + msgid "This property can only be set in the Inspector." msgstr "Bu özellik yalnızca Denetleyici'de ayarlanabilir." @@ -3082,9 +3348,36 @@ msgstr "Sinyal" msgid "Annotation" msgstr "EkTanımlayıcı" +msgid "Local Constant" +msgstr "Yerel Sabit" + +msgid "Local Variable" +msgstr "Yerel Değişken" + +msgid "This variable may be changed or removed in future versions." +msgstr "Bu değişken, gelecek sürümlerde değiştirilebilir veya kaldırılabilir." + +msgid "TextFile" +msgstr "MetinDosyası" + msgid "File" msgstr "Dosya" +msgid "Directory" +msgstr "Dizin" + +msgid "Invalid UID" +msgstr "Geçersiz benzersiz kimlik (UID)" + +msgid "This UID does not point to any valid Resource." +msgstr "Bu benzersiz kimlik (UID) geçerli bir Kaynağa işaret etmemektedir." + +msgid "Invalid path" +msgstr "Geçersiz yol" + +msgid "This path does not exist." +msgstr "Bu yol mevcut değil." + msgid "%d match." msgstr "%d eşleşme." @@ -3142,12 +3435,28 @@ msgstr "Üye Tipi" msgid "Keywords" msgstr "Anahtar Kelimeler" +msgid "Matches the \"%s\" keyword." +msgstr "\"%s\" anahtar sözcüğü ile uyuşuyor." + msgid "This member is marked as deprecated." msgstr "Bu üye kullanım dışı olarak işaretlendi." msgid "This member is marked as experimental." msgstr "Bu üye deneysel olarak işaretlendi." +msgid "Unfavorite Property" +msgstr "Özelliği Sık Kullanılan Olmaktan Çıkar" + +msgid "Make this property be put back at its original place." +msgstr "Bu özelliğin orijinal yerine geri konulmasını sağla." + +msgid "Favorite Property" +msgstr "Özelliği Sık Kullanılan Yap" + +msgid "Make this property be placed at the top for all objects of this class." +msgstr "" +"Bu özelliğin, bu sınıfın tüm nesneleri içinde en üste yerleştirilmesini sağla." + msgid "Pin Value" msgstr "Değeri İğnele" @@ -3160,6 +3469,9 @@ msgstr "" "Bir değeri iğnelemek onu, değeri varsayılana eşit olsa bile, kaydedilmeye " "zorlar." +msgid "Unfavorite All" +msgstr "Tümünü Sık Kullanılan Olmaktan Çıkar" + msgid "(%d change)" msgid_plural "(%d changes)" msgstr[0] "(%d değişme)" @@ -3343,6 +3655,9 @@ msgstr "Özgün Gölgelendirici Kaynak Denetleyicisi" msgid "Unnamed Project" msgstr "İsimsiz Proje" +msgid "Recovery Mode is enabled. Editor functionality has been restricted." +msgstr "Kurtarma Kipi aktif. Düzenleyici yetenekleri kısıtlandı." + msgid "" "Spins when the editor window redraws.\n" "Update Continuously is enabled, which can increase power usage. Click to " @@ -3552,6 +3867,9 @@ msgstr "" msgid "Save Scene As..." msgstr "Sahneyi Farklı Kaydet..." +msgid "Pack Project as ZIP..." +msgstr "Projeyi ZIP Olarak Paketle..." + msgid "Can't undo while mouse buttons are pressed." msgstr "Fare düğmelerine basılıyken geri alma yapılamaz." @@ -3635,6 +3953,9 @@ msgstr "Bu operasyon bir sahne olmadan yapılamaz." msgid "Export Mesh Library" msgstr "Örgü Kütüphanesini Dışa Aktar" +msgid "Quick Open Color Palette..." +msgstr "Renk Paletini Hızlı Aç..." + msgid "Unable to enable addon plugin at: '%s' parsing of config failed." msgstr "" "Şu eklenti etkinleştirilemedi: '%s' yapılandırma ayarlarının ayrıştırılması " @@ -3715,6 +4036,54 @@ msgstr "Yakınlarda Kullanılan Sahneleri Temizle" msgid "There is no defined scene to run." msgstr "Çalıştırmak için tanımlanmış bir sahne yok." +msgid "Loading editor" +msgstr "Düzenleyici yükleniyor" + +msgid "Loading editor layout..." +msgstr "Düzenleyici yerleşim düzeni yükleniyor..." + +msgid "Loading docks..." +msgstr "Yuvalar yükleniyor..." + +msgid "Reopening scenes..." +msgstr "Sahneler yeniden açılıyor..." + +msgid "Loading central editor layout..." +msgstr "Merkezi düzenleyici yerleşim düzeni yükleniyor..." + +msgid "Loading plugin window layout..." +msgstr "Eklenti penceresi yerleşim düzeni yükleniyor..." + +msgid "Editor layout ready." +msgstr "Düzenleyici yerleşim düzeni hazır." + +msgid "" +"No main scene has ever been defined. Select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Hiçbir ana sahne tanımlanmadı. Birini seçin?\n" +"Bunu daha sonra 'Uygulama' kategorisi altındaki \"Proje Ayarları\" 'ndan " +"değiştirebilirsiniz." + +msgid "" +"Selected scene '%s' does not exist. Select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Seçilen '%s' sahnesi mevcut değil. Geçerli bir tane seçin?\n" +"Bunu daha sonra 'Uygulama' kategorisi altındaki \"Proje Ayarları\" 'ndan " +"değiştirebilirsiniz." + +msgid "" +"Selected scene '%s' is not a scene file. Select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Seçilen '%s' sahnesi, bir sahne dosyası değil. Geçerli bir tane seçin?\n" +"Bunu daha sonra 'Uygulama' kategorisi altındaki \"Proje Ayarları\" 'ndan " +"değiştirebilirsiniz." + msgid "Save Layout..." msgstr "Yerleşim Düzenini Kaydet..." @@ -3941,6 +4310,9 @@ msgstr "Motor Derleme Yapılandırması Düzenleyici..." msgid "Upgrade Mesh Surfaces..." msgstr "Örgü Yüzeylerini Güncelle..." +msgid "Upgrade UIDs..." +msgstr "Benzersiz kimlikleri (UID) güncelle..." + msgid "Reload Current Project" msgstr "Bu Projeyi Tekrar Yükle" @@ -4094,6 +4466,21 @@ msgstr "Kütüphaneyi Dışa Aktar" msgid "Open & Run a Script" msgstr "Bir Betik Aç ve Çalıştır" +msgid "Files have been modified outside Godot" +msgstr "Dosyalar, Godot'nun dışından değiştirildi" + +msgid "The following files are newer on disk:" +msgstr "Şu dosyalar, disk üzerinde daha günceldir:" + +msgid "What action should be taken?" +msgstr "Hangi eylem uygulanmalı?" + +msgid "Reload from disk" +msgstr "Diskten yeniden yükle" + +msgid "Ignore external changes" +msgstr "Harici değişiklikleri yoksay" + msgid "Create/Override Version Control Metadata..." msgstr "Sürüm Kontrol Meta Verileri Oluşturma/Üzerine Yazma..." @@ -4118,6 +4505,9 @@ msgstr "3B Düzenleyiciyi Aç" msgid "Open Script Editor" msgstr "Betik Düzenleyiciyi Aç" +msgid "Open Game View" +msgstr "Oyun Görünümünü Aç" + msgid "Open Asset Library" msgstr "Varlık Kütüphanesini Aç" @@ -4249,6 +4639,12 @@ msgstr "Yeni Değer:" msgid "(Nil) %s" msgstr "(Boş) %s" +msgid "%s%s (size %d)" +msgstr "%s%s (boyut %d)" + +msgid "%s (size %d)" +msgstr "%s (boyut %d)" + msgid "Size:" msgstr "Boyut:" @@ -4318,6 +4714,12 @@ msgstr "Betiği Genişlet..." msgid "New Shader..." msgstr "Yeni Gölgelendirici..." +msgid "No Remote Deploy export presets configured." +msgstr "Yapılandırılmış herhangi bir Uzak Dağıtım dışa aktarma ön ayarı yok." + +msgid "Remote Deploy" +msgstr "Uzaktan Dağıtım" + msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the Export menu or define an existing preset " @@ -4327,6 +4729,28 @@ msgstr "" "Lütfen Dışa Aktar menüsüne çalıştırılabilir bir hazıayar ekleyin, veya mevcut " "bir hazırayarı çalıştırılabilir olarak tanımlayın." +msgid "" +"Warning: The CPU architecture \"%s\" is not active in your export preset.\n" +"\n" +msgstr "" +"Uyarı: '%s' CPU mimarisi, dışa aktarma hazır ayarınızda etkin değil.\n" +"\n" + +msgid "Run \"Remote Deploy\" anyway?" +msgstr "\"Uzaktan Dağıtım\" yine de çalıştırılsın mı?" + +msgid "Deploy to First Device in List" +msgstr "Listedeki İlk Cihaza Dağıt" + +msgid "Deploy to Second Device in List" +msgstr "Listedeki İkinci Cihaza Dağıt" + +msgid "Deploy to Third Device in List" +msgstr "Listedeki Üçüncü Cihaza Dağıt" + +msgid "Deploy to Fourth Device in List" +msgstr "Listedeki Dördüncü Cihaza Dağıt" + msgid "Project Run" msgstr "Projeyi Çalıştır" @@ -4336,6 +4760,9 @@ msgstr "Mantığınızı _run() yöntemine yazın." msgid "The current scene already has a root node." msgstr "Geçerli sahnenin zaten bir kök düğümü var." +msgid "Advanced settings are always shown when searching." +msgstr "Gelişmiş ayarlar, arama sırasında her zaman gösterilir." + msgid "Edit Built-in Action: %s" msgstr "Yerleşik Eylemi Düzenle: %s" @@ -4345,9 +4772,15 @@ msgstr "Kısayolu Düzenle: %s" msgid "None" msgstr "Hiçbiri" +msgid "Primary" +msgstr "Birincil" + msgid "Common" msgstr "Ortak" +msgid "Event %d" +msgstr "Olay %d" + msgid "Editor Settings" msgstr "Düzenleyici Ayarları" @@ -4550,6 +4983,12 @@ msgstr "Bilinmeyen Hata" msgid "Export failed with error code %d." msgstr "Dışa aktarma %d hata koduyla başarısız oldu." +msgid "Patch Creation" +msgstr "Yama Oluşturma" + +msgid "Could not load patch pack with path \"%s\"." +msgstr "Yama paketi \"%s\" yoludan yüklenemedi." + msgid "Storing File: %s" msgstr "Dosya Depolanıyor: %s" @@ -4559,6 +4998,29 @@ msgstr "Dosya Depolama:" msgid "No export template found at the expected path:" msgstr "Beklenen yolda herhangi bir dışa aktarma şablonu bulunamadı:" +msgid "" +"Using user provided text server data, text display in the exported project " +"might be broken if export template was built with different ICU version!" +msgstr "" +"Kullanıcı tarafından sağlanan metin sunucusu verileri kullanıldığında, eğer " +"dışa aktarma şablonu farklı ICU sürümü ile oluşturulmuşsa dışa aktarılan " +"projedeki metin görüntüsü bozulabilir!" + +msgid "" +"Using editor embedded text server data, text display in the exported project " +"might be broken if export template was built with different ICU version!" +msgstr "" +"Düzenleyiciye gömülü metin sunucusu verileri kullanıldığında, eğer dışa " +"aktarma şablonu farklı ICU sürümü ile oluşturulmuşsa dışa aktarılan projedeki " +"metin görüntüsü bozulabilir!" + +msgid "" +"Missing text server data, text display in the exported project might be " +"broken!" +msgstr "" +"Metin sunucusu verileri eksik, dışa aktarılan projedeki metin görüntüsü bozuk " +"olabilir!" + msgid "ZIP Creation" msgstr "ZIP Oluşturma" @@ -4577,6 +5039,9 @@ msgstr "\"%s\" dosyası oluşturulamıyor." msgid "Failed to export project files." msgstr "Proje dosyaları dışa aktarılamadı." +msgid "No files or changes to export." +msgstr "Dışa aktarılacak dosyalar veya değişiklikler yok." + msgid "Can't open file for writing at path \"%s\"." msgstr "\"%s\" yolundaki dosya, yazmak için açılamıyor." @@ -4595,6 +5060,9 @@ msgstr "\"%s\" yolundaki dosya okunmak için açılamıyor." msgid "Save ZIP" msgstr "ZIP Kaydet" +msgid "Failed to move temporary file \"%s\" to \"%s\"." +msgstr "Geçici \"%s\" dosyası, \"%s\" konumuna taşınamadı." + msgid "Custom debug template not found." msgstr "Özel hata ayıklama şablonu bulunmadı." @@ -4626,6 +5094,12 @@ msgstr "PCK Yerleştirme" msgid "On 32-bit exports the embedded PCK cannot be bigger than 4 GiB." msgstr "32-bit dışa aktarımlarda, gömülü PCK 4GiB'den büyük olamaz." +msgid "GDExtension" +msgstr "GDExtension" + +msgid "Failed to copy shared object \"%s\"." +msgstr "\"%s\" paylaşılan nesnesi kopyalanamadı." + msgid "Plugin \"%s\" is not supported on \"%s\"" msgstr "\"%s\" eklentisi \"%s\" 'de desteklenmiyor" @@ -4761,6 +5235,15 @@ msgstr "" msgid "Export templates are missing. Install them from a file." msgstr "Dışa aktarma şablonları eksik. Bunları bir dosyadan kurun." +msgid "Not available in offline mode" +msgstr "Çevrim dışı kipte kullanılabilir değil" + +msgid "Template downloading is disabled in offline mode." +msgstr "Şablon indirme, çevrim dışı kipte devre dışı." + +msgid "No templates for development builds" +msgstr "Geliştirme derlemeleri için şablon yok" + msgid "Official export templates aren't available for development builds." msgstr "" "Resmi dışa aktarım şablonları, geliştirme derlemeleri için kullanılabilir " @@ -4871,9 +5354,15 @@ msgstr "Dışa aktarılacak kaynaklar:" msgid "(Inherited)" msgstr "(Miras Alındı)" +msgid "Delete patch '%s' from list?" +msgstr "'%s' yaması listeden silinsin mi?" + msgid "Export With Debug" msgstr "Hata Ayıklama İle Dışa Aktar" +msgid "Export As Patch" +msgstr "Yama Olarak Dışa Aktar" + msgid "%s Export" msgstr "%s Dışa Aktarımı" @@ -4958,9 +5447,18 @@ msgstr "" "Dosyaları/Klasörleri projenin dışında tutmak için filtreler\n" "(virgülle-ayrılmış, örnek: *.json, *.txt, docs/*)" +msgid "Patches" +msgstr "Yamalar" + +msgid "Base Packs:" +msgstr "Temel Paketler:" + msgid "Godot Project Pack" msgstr "Godot Proje Paketi" +msgid "Add Pack" +msgstr "Paket Ekle" + msgid "Features" msgstr "Özellikler" @@ -5000,6 +5498,9 @@ msgstr "" msgid "Encryption Key (256-bits as hexadecimal):" msgstr "Şifreleme Anahtarı (onaltılı sistemle 256-bit):" +msgid "Initialization vector seed" +msgstr "Başlangıç vektörü tohumu" + msgid "" "Note: Encryption key needs to be stored in the binary,\n" "you need to build the export templates from source." @@ -5121,6 +5622,9 @@ msgstr "Gözat" msgid "Confirm Path" msgstr "Yolu Onayla" +msgid "Link to: %s" +msgstr "Şuraya bağlantı: %s" + msgid "View items as a grid of thumbnails." msgstr "Ögeleri küçük resim ızgarası şeklinde göster." @@ -5150,6 +5654,9 @@ msgstr "Taşıma Hatası:" msgid "Error duplicating:" msgstr "Çoğaltırken hata:" +msgid "Error duplicating directory:" +msgstr "Dizin çoğaltılırken hata:" + msgid "Unable to update dependencies for:" msgstr "Şunun için bağımlılıklar güncellenemiyor:" @@ -5177,6 +5684,9 @@ msgstr "" msgid "A file or folder with this name already exists." msgstr "Bu isimde bir dosya veya klasör zaten mevcut." +msgid "Could not create base directory: %s" +msgstr "Temel dizin oluşturulamadı: %s" + msgid "" "The following files or folders conflict with items in the target location " "'%s':" @@ -5218,6 +5728,14 @@ msgstr "Klasör çoğaltılıyor:" msgid "Create Folder" msgstr "Klasör Oluştur" +msgid "" +"Do you wish to convert these files to %s? (This operation cannot be undone!)" +msgstr "" +"Bu dosyaları %s olarak dönüştürmek istiyor musunuz? (Bu işlem geri alınamaz!)" + +msgid "Could not create folder: %s" +msgstr "Klasör oluşturulamadı: %s" + msgid "New Inherited Scene" msgstr "Yeni Miras Alınmış Sahne" @@ -5278,12 +5796,18 @@ msgstr "Sık Kullanılanlara Ekle" msgid "Remove from Favorites" msgstr "Sık Kullanılanlardan kaldır" +msgid "Convert to..." +msgstr "Dönüştür..." + msgid "Reimport" msgstr "Yeniden İçe Aktar" msgid "Open in Terminal" msgstr "Terminal'de Aç" +msgid "Open Folder in Terminal" +msgstr "Klasörü Terminal'de Aç" + msgid "New Folder..." msgstr "Yeni Klasör..." @@ -5348,7 +5872,7 @@ msgid "Green" msgstr "Yeşil" msgid "Teal" -msgstr "Ördekbaşı" +msgstr "Çamurcun Yeşili" msgid "Blue" msgstr "Mavi" @@ -5393,6 +5917,9 @@ msgstr "İkisini de Sakla" msgid "Create Script" msgstr "Betik Oluştur" +msgid "Convert" +msgstr "Dönüştür" + msgid "Find in Files" msgstr "Dosyalarda bul" @@ -5430,6 +5957,9 @@ msgstr "Tümünü Değiştir (geri alınamaz)" msgid "Searching..." msgstr "Aranıyor..." +msgid "Remove result" +msgstr "Sonucu kaldır" + msgid "%d match in %d file" msgstr "%d eşleşme (%d dosyada)" @@ -5520,6 +6050,27 @@ msgstr "Yeni bir grup ekle." msgid "Filter Groups" msgstr "Grupları Filtrele" +msgid "" +"Scroll Left\n" +"Hold Ctrl to scroll to the begin.\n" +"Hold Shift to scroll one page." +msgstr "" +"Sola Kaydırın\n" +"Başa kaydırmak için Ctrl tuşunu basılı tutun\n" +"Bir sayfa kaydırmak için Shift tuşunu basılı tutun." + +msgid "" +"Scroll Right\n" +"Hold Ctrl to scroll to the end.\n" +"Hold Shift to scroll one page." +msgstr "" +"Sağa Kaydırın\n" +"Sona kaydırmak için Ctrl tuşunu basılı tutun.\n" +"Bir sayfa kaydırmak için Shift tuşunu basılı tutun." + +msgid "Pin Bottom Panel Switching" +msgstr "Alt Panel Geçişini Sabitle" + msgid "Expand Bottom Panel" msgstr "Alt Paneli Genişlet" @@ -5528,8 +6079,8 @@ msgstr "Taşı/Çoğalt: %s" msgid "Move/Duplicate %d Item" msgid_plural "Move/Duplicate %d Items" -msgstr[0] "%d Ögeyi Taşı/Çoğalt%d Ögeyi Taşı/Çoğalt" -msgstr[1] "" +msgstr[0] "%d Ögeyi Taşı/Çoğalt" +msgstr[1] "%d Ögeyi Taşı/Çoğalt" msgid "Choose target directory:" msgstr "Hedef dizini seçin:" @@ -5559,6 +6110,9 @@ msgstr "" msgid "Select This Folder" msgstr "Bu Klasörü Seç" +msgid "Show Package Contents" +msgstr "Paket İçeriklerini Göster" + msgid "All Files" msgstr "Tüm Dosyalar" @@ -5610,6 +6164,9 @@ msgstr "Kip Değiştir" msgid "Focus Path" msgstr "Yolu Odakla" +msgid "Focus Filter" +msgstr "Filtreye Odaklan" + msgid "Move Favorite Up" msgstr "Sık Kullanılanı Yukarı Taşı" @@ -5640,9 +6197,18 @@ msgstr "Dizinler ve Dosyalar:" msgid "Toggle the visibility of hidden files." msgstr "Gizli Dosyaların görünürlüğü aç/kapat." +msgid "Sort files" +msgstr "Dosyaları sırala" + +msgid "Toggle the visibility of the filter for file names." +msgstr "Dosya adları için filtrenin görünürlüğünü aç/kapat." + msgid "Preview:" msgstr "Önizleme:" +msgid "Filter:" +msgstr "Filtre:" + msgid "Filter" msgstr "Filtrele" @@ -5666,6 +6232,45 @@ msgstr "Alt-kaynaklar bulunamadı." msgid "Open a list of sub-resources." msgstr "Alt-kaynakların bir listesini aç." +msgid "Search files..." +msgstr "Dosyaları ara..." + +msgid "Select Resource" +msgstr "Kaynak Seç" + +msgid "Select Scene" +msgstr "Sahne Seç" + +msgid "Fuzzy Search" +msgstr "Bulanık Arama" + +msgid "Enable fuzzy matching" +msgstr "Bulanık aramayı etkinleştir" + +msgid "Addons" +msgstr "Eklentiler" + +msgid "Include files from addons" +msgstr "Eklentilerdeki dosyaları dahil et" + +msgid "No files found for this type" +msgstr "Bu tür için dosya bulunamadı" + +msgid "Start searching to find files..." +msgstr "Dosyaları bulmak için aramaya başla..." + +msgid "No results found" +msgstr "Sonuç bulunamadı" + +msgid " (recently opened)" +msgstr " (yakın zamanda açılanlar)" + +msgid "Grid view" +msgstr "Izgara görünümü" + +msgid "List view" +msgstr "Liste görünümü" + msgid "Play the project." msgstr "Projeyi oynat." @@ -5698,9 +6303,73 @@ msgstr "" msgid "Could not start subprocess(es)!" msgstr "Alt-işlem(ler) başlatılamadı!" +msgid "Recovery Mode is enabled. Disable it to run the project." +msgstr "" +"Kurtarma Modu etkin durumda. Projeyi çalıştırmak için bunu devre dışı bırakın." + +msgid "" +"Autostart is enabled for the following profilers, which can have a " +"performance impact:" +msgstr "" +"Aşağıdaki profil çıkarıcılar için otomatik başlatma etkin durumda ve bunun " +"performans üzerinde etkisi olabilir:" + msgid "Network Profiler" msgstr "Ağ Profil Çıkarıcısı" +msgid "Click to open the first profiler for which autostart is enabled." +msgstr "" +"Otomatik başlatmanın etkin olduğu ilk profil çıkarıcıyı açmak için tıklayın." + +msgid "Recovery Mode" +msgstr "Kurtarma Kipi" + +msgid "" +"Godot opened the project in Recovery Mode, which is a special mode that can " +"help recover projects that crash the engine upon initialization. The " +"following features have been temporarily disabled:" +msgstr "" +"Godot bu projeyi Kurtarma Kipi'nde açtı; bu başlatma sırasında motoru " +"çökerten projelerin kurtarılmasına yardımcı olabilecek özel bir moddur. " +"Aşağıdaki özellikler geçici olarak devre dışı bırakılmıştır:" + +msgid "Tool scripts" +msgstr "Araç betikleri" + +msgid "Editor plugins" +msgstr "Düzenleyici eklentileri" + +msgid "GDExtension addons" +msgstr "GDExtension eklentileri" + +msgid "Automatic scene restoring" +msgstr "Otomatik sahne geri yükleme" + +msgid "" +"If the project cannot be opened outside of this mode, then it's very likely " +"any of these components is preventing this project from launching. This mode " +"is intended only for basic editing to troubleshoot such issues, and therefore " +"it is not possible to run a project in this mode." +msgstr "" +"Eğer proje bu modun dışında açılamıyorsa, büyük olasılıkla bu bileşenlerden " +"herhangi biri projenin başlatılmasını engelliyordur. Bu mod, yalnızca bu tür " +"sorunları gidermek için temel düzenleme amaçlıdır ve bu nedenle bu modda bir " +"projeyi çalıştırmak mümkün değildir." + +msgid "" +"To disable Recovery Mode, reload the project by pressing the Reload button " +"next to the Recovery Mode banner, or by reopening the project normally." +msgstr "" +"Kurtarma Kipi'ni devre dışı bırakmak için Kurtarma Kipi başlığının yanındaki " +"Yeniden Yükle düğmesine basarak veya projeyi normal şekilde yeniden açarak " +"projeyi yeniden yükleyin." + +msgid "Disable recovery mode and reload the project." +msgstr "Kurtarma modunu devre dışı bırakın ve projeyi yeniden yükleyin." + +msgid "Recovery Mode is enabled. Click for more details." +msgstr "Kurtarma Kipi etkinleştirildi. Daha fazla ayrıntı için tıklayın." + msgid "Run the project's default scene." msgstr "Projenin varsayılan sahnesini çalıştır." @@ -5719,12 +6388,24 @@ msgstr "Şu an oynatılan projeyi durdur." msgid "Stop Running Project" msgstr "Oynatılan Projeyi Durdur" +msgid "Run Scene in Regular Mode" +msgstr "Sahneyi Düzenli Kipte Çalıştır" + +msgid "Run Scene in XR Mode" +msgstr "Sahneyi XR Kipinde Çalıştır" + msgid "Run the currently edited scene." msgstr "Şu an düzenlenen sahneyi oynat." msgid "Run Current Scene" msgstr "Geçerli Sahneyi Oynat" +msgid "Run in Regular Mode" +msgstr "Düzenli Kipte Çalıştır" + +msgid "Run in XR Mode" +msgstr "XR Kipinde Çalıştır" + msgid "Run a specific scene." msgstr "Belirli bir sahneyi oynat." @@ -5790,6 +6471,15 @@ msgstr "" "Git işleme tarihi: %s\n" "Sürüm bilgisini kopyalamak için tıklayın." +msgid "" +"The root node of a scene is recommended to not be transformed, since " +"instances of the scene will usually override this. Reset the transform and " +"reload the scene to remove this warning." +msgstr "" +"Sahnenin kök düğümünün dönüştürülmemesi önerilir, çünkü bu sahnenin " +"örneklemeleri genellikle bunun üzerine yazacaktır. Bu uyarıyı kaldırmak için " +"dönüşümü sıfırlayın ve sahneyi yeniden yükleyin." + msgid "Toggle Visible" msgstr "Görünürlüğü Aç/Kapat" @@ -5799,6 +6489,9 @@ msgstr "Düğümün Kilidini Aç" msgid "Ungroup Children" msgstr "Alt Ögelerin Grubunu Kaldır" +msgid "Revoke unique name for node \"%s\"?" +msgstr "\"%s\" düğümü için benzersiz ad iptal edilsin mi?" + msgid "Disable Scene Unique Name" msgstr "Sahne Benzersiz İsmini Devre Dışı Bırak" @@ -5808,6 +6501,16 @@ msgstr "(Gelen Bağlantı)" msgid "Node configuration warning:" msgstr "Düğüm yapılandırma uyarısı:" +msgid "" +"This node can be accessed from anywhere within the scene it belongs to by " +"using the '%s' prefix in the node path." +msgstr "" +"Bu düğüme, ait olduğu sahnenin herhangi bir yerinden, düğüm yolundaki '%s' " +"öneki kullanılarak erişilebilir." + +msgid "Click to disable this." +msgstr "Bunu devre dışı bırakmak için tıklayın." + msgid "Node has one connection." msgid_plural "Node has {num} connections." msgstr[0] "Düğümün bir bağlantısı var." @@ -5821,6 +6524,16 @@ msgstr[1] "Düğüm bu gruplarda:" msgid "Click to show signals dock." msgstr "Sinyaller yuvasını göstermek için tıkla." +msgid "Click to show groups dock." +msgstr "Gruplar yuvasını göstermek için tıkla." + +msgid "" +"This script can run in the editor.\n" +"It is currently disabled due to recovery mode." +msgstr "" +"Bu betik düzenleyicide çalışabilir.\n" +"Kurtarma kipi nedeniyle şu anda devre dışıdır." + msgid "This script is currently running in the editor." msgstr "Bu betik, şu anda düzenleyicide çalışıyor." @@ -5857,6 +6570,13 @@ msgstr "Düzenleyicide Aç" msgid "\"%s\" is not a known filter." msgstr "\"%s\" bilinen bir filtre değil." +msgid "" +"Root nodes cannot be accessed as unique names in their own scene. Instantiate " +"in another scene and set as unique name there." +msgstr "" +"Kök düğümlere kendi sahnelerinde benzersiz adlar olarak erişilemez. Başka bir " +"sahnede örnekleyin ve benzersiz ad olarak orada ayarlayın." + msgid "Invalid node name, the following characters are not allowed:" msgstr "Geçersiz düğüm adı, aşağıdaki karakterlere izin verilmez:" @@ -5878,6 +6598,19 @@ msgstr "Sahne Ağacı (Düğümler):" msgid "Node Configuration Warning!" msgstr "Düğüm Yapılandırma Uyarısı!" +msgid "Revoke" +msgstr "İptal Et" + +msgid "Don't Ask Again" +msgstr "Tekrar Sorma" + +msgid "" +"This dialog can also be enabled/disabled in the Editor Settings: Docks > " +"Scene Tree > Ask Before Revoking Unique Name." +msgstr "" +"Bu iletişim kutusu Düzenleyici Ayarları'nda da etkinleştirilebilir/devre dışı " +"bırakılabilir: Yuvalar > Sahne Ağacı > Benzersiz Adı İptal Etmeden Önce Sor." + msgid "Allowed:" msgstr "İzin verildi:" @@ -6053,6 +6786,12 @@ msgstr "Malzemeler" msgid "Selected Animation Play/Pause" msgstr "Seçili Canlandırmayı Oynat/Duraklat" +msgid "Selected Animation Stop" +msgstr "Seçili Canlandırmayı Durdur" + +msgid "Toggle Animation Skeleton Visibility" +msgstr "Canlandırma İskeleti Görünürlüğünü Aç / Kapat" + msgid "Rotate Lights With Model" msgstr "Işıkları Model ile birlikte Döndür" @@ -6398,7 +7137,7 @@ msgstr "" "otomatik olarak yeniden haritalanır." msgid "Keycode (Latin Equivalent)" -msgstr "Tuş kodu (Latin eşdeğeri)" +msgstr "Tuş kodu (Latin Eşdeğeri)" msgid "Physical Keycode (Position on US QWERTY Keyboard)" msgstr "Fiziksel Tuş Kodu (Amerikan US QWERTY Klavyesindeki Konum)" @@ -6495,9 +7234,24 @@ msgstr "Nesne özelliklerini yönet." msgid "This cannot be undone. Are you sure?" msgstr "Bu işlem geri alınamaz. Emin misiniz?" +msgid "Add %d Translation" +msgid_plural "Add %d Translations" +msgstr[0] "%d Çeviri Ekle" +msgstr[1] "%d Çeviri Ekle" + msgid "Remove Translation" msgstr "Çeviriyi Kaldır" +msgid "Translation Resource Remap: Add %d Path" +msgid_plural "Translation Resource Remap: Add %d Paths" +msgstr[0] "Çeviri Kaynağı Yeniden Haritalaması: %d Yol Ekle" +msgstr[1] "Çeviri Kaynağı Yeniden Haritalaması: %d Yol Ekle" + +msgid "Translation Resource Remap: Add %d Remap" +msgid_plural "Translation Resource Remap: Add %d Remaps" +msgstr[0] "Çeviri Kaynağı Yeniden Haritalaması: %d Yeniden Haritalama Ekle" +msgstr[1] "Çeviri Kaynağı Yeniden Haritalaması: %d Yeniden Haritalama Ekle" + msgid "Change Resource Remap Language" msgstr "Kaynak Yeniden Haritalama Dilini Değiştir" @@ -6507,6 +7261,11 @@ msgstr "Kaynak Yeniden Haritalamasını Kaldır" msgid "Remove Resource Remap Option" msgstr "Kaynak Yeniden Haritalama Seçeneğini Kaldır" +msgid "Add %d file for POT generation" +msgid_plural "Add %d files for POT generation" +msgstr[0] "%d dosyayı, POT üretimine ekle" +msgstr[1] "%d dosyayı, POT üretimine ekle" + msgid "Remove file from POT generation" msgstr "Dosyayı, POT üretiminden kaldır" @@ -6776,6 +7535,24 @@ msgstr "Seçilen Alt Ögeleri Doldur" msgid "Invert" msgstr "Ters Çevir" +msgid "Start of Animation" +msgstr "Canlandırma Başı" + +msgid "End of Animation" +msgstr "Canlandırma Sonu" + +msgid "Set Custom Timeline from Marker" +msgstr "İşaretçiden Özel Kurgu Şeridi Ayarlama" + +msgid "Select Markers" +msgstr "İşaretçileri Seç" + +msgid "Start Marker" +msgstr "Başlangıç İşaretçisi" + +msgid "End Marker" +msgstr "Bitiş İşaretçisi" + msgid "Library Name:" msgstr "Kütüphane İsmi:" @@ -6804,7 +7581,7 @@ msgid "Global library will be created." msgstr "Genel kütüphane oluşturulacak." msgid "Library name is valid." -msgstr "Kitaplık ismi geçerlidir." +msgstr "Kütüphane ismi geçerlidir." msgid "Add Animation to Library: %s" msgstr "Kütüphaneye Canlandırma Ekle: %s" @@ -6928,10 +7705,10 @@ msgid "Paste animation to library from clipboard." msgstr "Panodaki canlandırmayı kütüphaneye yapıştırın." msgid "Save animation library to resource on disk." -msgstr "Canlandırma kitaplığını diskteki kaynağa kaydedin." +msgstr "Canlandırma kütüphanesini diskteki kaynağa kaydedin." msgid "Remove animation library." -msgstr "Canlandırma kitaplığını kaldırın." +msgstr "Canlandırma kütüphanesini kaldırın." msgid "Copy animation to clipboard." msgstr "Canlandırmayı panoya kopyalayın." @@ -6940,7 +7717,7 @@ msgid "Save animation to resource on disk." msgstr "Canlandırmayı diskteki kaynağa kaydedin." msgid "Remove animation from Library." -msgstr "Canlandırmayı Kitaplıktan kaldırın." +msgstr "Canlandırmayı Kütüphaneden kaldırın." msgid "Edit Animation Libraries" msgstr "Canlandırma Kütüphanelerini Düzenle" @@ -6949,13 +7726,13 @@ msgid "New Library" msgstr "Yeni Kütüphane" msgid "Create new empty animation library." -msgstr "Yeni boş canlandırma kitaplığı oluşturun." +msgstr "Yeni boş bir canlandırma kütüphanesi oluşturun." msgid "Load Library" msgstr "Kütüphane Yükle" msgid "Load animation library from disk." -msgstr "Canlandırma kitaplığını diskten yükleyin." +msgstr "Canlandırma kütüphanesini diskten yükleyin." msgid "Storage" msgstr "Depolama" @@ -7005,6 +7782,21 @@ msgstr "Yinelenen Canlandırma İsmi:" msgid "Onion skinning requires a RESET animation." msgstr "Onion skinning, bir RESET (Sıfırlama) canlandırması gerektiriyor." +msgid "Play Animation Backwards" +msgstr "Canlandırmayı Geriye Doğru Oynat" + +msgid "Play Animation Backwards from End" +msgstr "Canlandırmayı Sondan Geriye Doğru Oynat" + +msgid "Pause/Stop Animation" +msgstr "Canlandırmayı Duraklat/Durdur" + +msgid "Play Animation from Start" +msgstr "Canlandırmayı Başlangıç Anından Oynat" + +msgid "Play Animation" +msgstr "Canlandırmayı Oynat" + msgid "Animation position (in seconds)." msgstr "Canlandırma konumu (saniye olarak)." @@ -7080,6 +7872,12 @@ msgstr "Harmanla Süreleri:" msgid "Next (Auto Queue):" msgstr "Sonraki (Otomatik Kuyruk):" +msgid "Go to Next Keyframe" +msgstr "Sonraki Anahtar Kareye Git" + +msgid "Go to Previous Keyframe" +msgstr "Önceki Anahtar Kareye Git" + msgid "Toggle Animation Bottom Panel" msgstr "Canlandırma Alt Panelini Aç/Kapat" @@ -7435,13 +8233,13 @@ msgstr "" "CanvasItem (kanvas ögesi) \"%s\" için Eksen Kaymasını (%d, %d) olarak ayarla" msgid "Rotate %d CanvasItems" -msgstr "CanvasItems'ı (kanvas ögeleri) %d döndür" +msgstr "%d CanvasItem'ı (kanvas ögesi) döndür" msgid "Rotate CanvasItem \"%s\" to %d degrees" msgstr "CanvasItem (kanvas ögesi) \"%s\" 'yi, %d dereceye döndür" msgid "Move CanvasItem \"%s\" Anchor" -msgstr "CanvasItem (kanvas ögesi) \"%s\" Çapasını Taşı" +msgstr "\"%s\" CanvasItem (kanvas ögesi) Çapasını Taşı" msgid "Scale Node2D \"%s\" to (%s, %s)" msgstr "Node2D (2B düğüm) \"%s\" 'yi, (%s, %s)'a ölçeklendir" @@ -7450,13 +8248,13 @@ msgid "Resize Control \"%s\" to (%d, %d)" msgstr "Control (denetim) \"%s\" 'yi, (%d, %d)'a boyutlandır" msgid "Scale %d CanvasItems" -msgstr "CanvasItems'ı (kanvas ögeleri) %d ölçeklendir" +msgstr "%d CanvasItem'ı (kanvas ögesi) ölçeklendir" msgid "Scale CanvasItem \"%s\" to (%s, %s)" msgstr "CanvasItem (kanvas ögesi) \"%s\" 'i, (%s,%s) 'ye ölçeklendir" msgid "Move %d CanvasItems" -msgstr "CanvasItems'i (kanvas ögeleri) %d kadar taşı" +msgstr "%d CanvasItem'ı (kanvas ögeleri) taşı" msgid "Move CanvasItem \"%s\" to (%d, %d)" msgstr "CanvasItem (KanvasÖgesi) \"%s\" düğümünü, (%d,%d) konumuna taşı" @@ -7571,6 +8369,9 @@ msgstr "" "Alt + Sağ Fare Düğmesi: Kilitli dahil olmak üzere, tıklanan konumdaki tüm " "düğümlerin listesini göster." +msgid "(Available in all modes.)" +msgstr "(Tüm modlarda kullanılabilir.)" + msgid "RMB: Add node at position clicked." msgstr "Sağ Fare Düğmesi: Tıklanan konuma bir düğüm ekle." @@ -7589,6 +8390,19 @@ msgstr "ÜstKrkt: Orantılı olarak ölçeklendir." msgid "Show list of selectable nodes at position clicked." msgstr "Tıklanan konumdaki, seçilebilir düğümlerin listesini göster." +msgid "Click to change object's pivot." +msgstr "Nesnenin eksenini değiştirmek için tıklayın." + +msgid "Shift: Set temporary pivot." +msgstr "Shift: Geçici eksen ayarlayın." + +msgid "" +"Click this button while holding Shift to put the temporary pivot in the " +"center of the selected nodes." +msgstr "" +"Geçici ekseni seçilen düğümlerin merkezine yerleştirmek için Shift tuşunu " +"basılı tutarken bu düğmeye tıklayın." + msgid "Pan Mode" msgstr "Kaydırma Kipi" @@ -7663,7 +8477,7 @@ msgid "" "selected when any child node is clicked in 2D and 3D view." msgstr "" "Seçili düğümü alt ögeleriyle birlikte gruplar. Bu, 2B ve 3B görünümde " -"herhangi bir alt düğüme tıklandığında ebeveynin seçilmesine sebep olur." +"herhangi bir alt düğüme tıklandığında üst öğenin seçilmesine sebep olur." msgid "" "Ungroups the selected node from its children. Child nodes will be individual " @@ -7700,7 +8514,7 @@ msgid "Show Helpers" msgstr "Yardımcıları Göster" msgid "Show Rulers" -msgstr "Cetvelleri göster" +msgstr "Cetvelleri Göster" msgid "Show Guides" msgstr "Kılavuz Çizgileri Göster" @@ -7733,7 +8547,7 @@ msgid "Preview Canvas Scale" msgstr "Kanvas Ölçeğini Önizle" msgid "Project theme" -msgstr "Proje Teması" +msgstr "Proje teması" msgid "Editor theme" msgstr "Düzenleyici teması" @@ -7765,7 +8579,7 @@ msgid "" "Keys are only added to existing tracks, no new tracks will be created.\n" "Keys must be inserted manually for the first time." msgstr "" -"Eğer nesne hareket ettiyse, döndürüldüyse ya da ölçeklendiyse, anahtarları " +"Eğer nesne ötelendiyse, döndürüldüyse ya da ölçeklendiyse, anahtarları " "otomatik ekle (maskeye göre).\n" "Anahtarlar yalnızca mevcut izlere eklenir, yeni izler oluşturulmayacak.\n" "İlk sefer için, anahtarlar elle girilmeli." @@ -8200,6 +9014,13 @@ msgstr "" msgid "Edit Plugin" msgstr "Eklentiyi Düzenle" +msgid "" +"Recovery mode is enabled. Enabled plugins will not run while this mode is " +"active." +msgstr "" +"Kurtarma modu etkinleştirildi. Bu mod etkinken etkinleştirilmiş eklentiler " +"çalışmaz." + msgid "Installed Plugins:" msgstr "Kurulu Eklentiler:" @@ -8276,9 +9097,173 @@ msgstr "Doğu Asya Genişlikleri" msgid "Numeral Alignment" msgstr "Rakam Hizalama" +msgid "Variation" +msgstr "Çeşitleme" + msgid "Unable to preview font" msgstr "Yazı tipi önizlenemiyor" +msgid "Connection impossible to the game process." +msgstr "Oyun sürecine bağlantı imkansız." + +msgid "Game starting..." +msgstr "Oyun başlatılıyor..." + +msgid "Game running not embedded." +msgstr "Oyun gömülü halde olmadan çalışıyor." + +msgid "Press play to start the game." +msgstr "Oyunu başlatmak için oynat tuşuna basın." + +msgid "Embedding is disabled." +msgstr "Gömülü hal devre dışı." + +msgid "" +"Game embedding not available on Wayland.\n" +"Wayland can be disabled in the Editor Settings (Run > Platforms > Linux/*BSD " +"> Prefer Wayland)." +msgstr "" +"Oyun gömme Wayland'de kullanılamaz.\n" +"Wayland, Düzenleyici Ayarları'nda devre dışı bırakılabilir (Çalıştır > " +"Platformlar > Linux/*BSD > Wayland'i Tercih Et)." + +msgid "Game embedding not available on your OS." +msgstr "Gömülü oyun, işletim sisteminizde kullanılabilir değil." + +msgid "" +"Game embedding not available for the Display Server: '%s'.\n" +"Display Server can be modified in the Project Settings (Display > Display " +"Server > Driver)." +msgstr "" +"Görüntü Sunucusu için oyun gömme mevcut değil: '%s'\n" +"Görüntü Sunucusu Proje Ayarları'nda değiştirilebilir (Ekran > Görüntü " +"Sunucusu > Sürücü)." + +msgid "" +"Game embedding not available when the game starts minimized.\n" +"Consider overriding the window mode project setting with the editor feature " +"tag to Windowed to use game embedding while leaving the exported project " +"intact." +msgstr "" +"Oyun simge durumuna küçültülmüş olarak başladığında oyun gömme kullanılamaz.\n" +"Dışa aktarılan projeyi olduğu gibi bırakırken, oyun gömmeyi kullanmak için " +"düzenleyici özelliği etiketli pencere modu proje ayarını Pencereli olarak " +"üzerine yazmayı düşünün." + +msgid "" +"Game embedding not available when the game starts maximized.\n" +"Consider overriding the window mode project setting with the editor feature " +"tag to Windowed to use game embedding while leaving the exported project " +"intact." +msgstr "" +"Oyun ekranı kaplayacak şekilde başladığında oyun gömme kullanılamaz.\n" +"Dışa aktarılan projeyi olduğu gibi bırakırken, oyun gömmeyi kullanmak için " +"düzenleyici özelliği etiketli pencere modu proje ayarını Pencereli olarak " +"üzerine yazmayı düşünün." + +msgid "" +"Game embedding not available when the game starts in fullscreen.\n" +"Consider overriding the window mode project setting with the editor feature " +"tag to Windowed to use game embedding while leaving the exported project " +"intact." +msgstr "" +"Oyun tam ekranda başladığında oyun gömme kullanılamaz.\n" +"Dışa aktarılan projeyi olduğu gibi bırakırken, oyun gömmeyi kullanmak için " +"düzenleyici özelliği etiketli pencere modu proje ayarını Pencereli olarak " +"üzerine yazmayı düşünün." + +msgid "Game embedding not available in single window mode." +msgstr "Gömülü oyun, tek pencere kipinde kullanılabilir değil." + +msgid "Suspend" +msgstr "Askıya Al" + +msgid "Next Frame" +msgstr "Sonraki Kare" + +msgid "Input" +msgstr "Giriş" + +msgid "Allow game input." +msgstr "Oyun girişine izin ver." + +msgid "" +"Disable game input and allow to select Node2Ds, Controls, and manipulate the " +"2D camera." +msgstr "" +"Oyun girişini devre dışı bırakın ve Node2D'leri, Kontrolleri seçmeye ve 2B " +"kamerayı değiştirmeye izin verin." + +msgid "" +"Disable game input and allow to select Node3Ds and manipulate the 3D camera." +msgstr "" +"Oyun girişini devre dışı bırakın ve Node3D'leri seçmeye ve 3B kamerayı " +"değiştirmeye izin verin." + +msgid "Toggle Selection Visibility" +msgstr "Seçim Görünürlüğünü Aç/Kapat" + +msgid "Alt+RMB: Show list of all nodes at position clicked." +msgstr "" +"Alt + Sağ Fare Düğmesi: Tıklanan konumdaki tüm düğümlerin listesini göster." + +msgid "Override the in-game camera." +msgstr "Oyun içi kameranın üzerine yaz." + +msgid "Camera Override Options" +msgstr "Kamera Üzerine Yazma Seçenekleri" + +msgid "Reset 2D Camera" +msgstr "2B Kamerayı Sıfırla" + +msgid "Reset 3D Camera" +msgstr "3B Kamerayı Sıfırla" + +msgid "Manipulate In-Game" +msgstr "Oyun-İçi Müdahale" + +msgid "Manipulate From Editors" +msgstr "Düzenleyicilerden Değiştir" + +msgid "" +"Embedded game size is based on project settings.\n" +"The 'Keep Aspect' mode is used when the Game Workspace is smaller than the " +"desired size." +msgstr "" +"Gömülü oyun boyutu proje ayarlarını temel alır.\n" +"'En Boy Oranını Koru' modu, Oyun Çalışma Alanı istenilen boyuttan daha küçük " +"olduğunda kullanılır." + +msgid "Keep the aspect ratio of the embedded game." +msgstr "Gömülü oyun görüntü en-boy oranını koru." + +msgid "Embedded game size stretches to fit the Game Workspace." +msgstr "" +"Gömülü oyun pencere ölçeği Oyun Çalışma Alanına uyumlanmak için esnetilir." + +msgid "Embedding Options" +msgstr "Gömülü Hal Seçenekleri" + +msgid "Embed Game on Next Play" +msgstr "Sonraki Oynayışta Gömülü Oyun" + +msgid "Make Game Workspace Floating on Next Play" +msgstr "Sonraki Oynayışta Oyun Çalışma Alanını Serbest Pencere Yap" + +msgid "Game Workspace" +msgstr "Oyun Çalışma Alanı" + +msgid "" +"No \"%s\" library found for GDExtension: \"%s\". Possible feature flags for " +"your platform: %s" +msgstr "" +"Şu GDExtension için \"%s\" kitaplığı bulunamadı: \"%s\". Platformunuz için " +"olası özellik bayrakları: %s" + +msgid "Multiple \"%s\" libraries found for GDExtension: \"%s\": \"%s\"." +msgstr "" +"Şu GDExtension için birden fazla \"%s\" kütüphanesi bulundu: \"%s\": \"%s\"." + msgid "Change AudioStreamPlayer3D Emission Angle" msgstr "AudioStreamPlayer3D Yayılım Açısını Değiştir" @@ -8361,16 +9346,16 @@ msgid "Video RAM size: %s MB (%s)" msgstr "Görüntü RAM boyutu: %s MB (%s)" msgid "Bake SDF" -msgstr "SDF'yi Pişir" +msgstr "SDF'yi Fırınla" msgid "" "No faces detected during GPUParticlesCollisionSDF3D bake.\n" "Check whether there are visible meshes matching the bake mask within its " "extents." msgstr "" -"GPUParticlesCollisionSDF3D pişirmesi sırasında hiçbir yüz algılanmadı.\n" -"Uzanımları içinde pişirme maskesiyle eşleşen görünür örgüler olup olmadığını " -"kontrol edin." +"GPUParticlesCollisionSDF3D fırınlaması sırasında hiçbir yüz algılanmadı.\n" +"Uzanımları içinde fırınlama maskesiyle eşleşen görünür örgüler olup " +"olmadığını kontrol edin." msgid "Select path for SDF Texture" msgstr "SDF Dokusu için yol seçin" @@ -8415,6 +9400,49 @@ msgstr "" "Işık Haritası görselleri için kaydetme yolu belirlenemiyor.\n" "Sahneyi kaydedip tekrar deneyin." +msgid "" +"No meshes with lightmapping support to bake. Make sure they contain UV2 data " +"and their Global Illumination property is set to Static." +msgstr "" +"Fırınlanacak ışık haritalaması desteği olan örgü yok. UV2 verileri " +"içerdiklerinden ve Genel Işıklandırma özelliklerinin Statik olarak " +"ayarlandığından emin olun." + +msgid "" +"To import a scene with lightmapping support, set Meshes > Light Baking to " +"Static Lightmaps in the Import dock." +msgstr "" +"Işık haritalaması desteği olan bir sahneyi içe aktarmak için, İçe Aktarma " +"yuvasında Örgüler > Işık Fırınlama öğesini Statik Işık Haritaları olarak " +"ayarlayın." + +msgid "" +"To enable lightmapping support on a primitive mesh, edit the PrimitiveMesh " +"resource in the inspector and check Add UV2." +msgstr "" +"İlkel bir örgü üzerinde ışık haritalaması desteğini etkinleştirmek için, " +"denetleyicide PrimitiveMesh kaynağını düzenleyin ve UV2 Ekle seçeneğini " +"işaretleyin." + +msgid "" +"To enable lightmapping support on a CSG mesh, select the root CSG node and " +"choose CSG > Bake Mesh Instance at the top of the 3D editor viewport.\n" +"Select the generated MeshInstance3D node and choose Mesh > Unwrap UV2 for " +"Lightmap/AO at the top of the 3D editor viewport." +msgstr "" +"Bir CSG örgüsünde ışık haritalaması desteğini etkinleştirmek için, kök CSG " +"düğümünü seçin ve 3B düzenleyici çerçevesinin üst kısmında CSG > Örgü " +"Örneklemesini Fırınla öğesini seçin.\n" +"Oluşturulan MeshInstance3D düğümünü seçin ve 3B düzenleyici çerçevesinin üst " +"kısmında Örgü > Işık Haritalama/AO için UV2'yi Aç öğesini seçin." + +msgid "" +"Failed creating lightmap images. Make sure the lightmap destination path is " +"writable." +msgstr "" +"Işık-haritası görüntüleri oluşturma başarısız oldu. Işık Haritası hedef " +"yolunun yazılabilir olduğundan emin olun." + msgid "No editor scene root found." msgstr "Hiç bir düzenleyici sahne kökü bulunamadı." @@ -8430,6 +9458,15 @@ msgstr "" "Bu durum en büyük doku boyutunu artırarak giderilebilse de, bunun yerine " "sahneyi daha fazla nesneye bölmeniz önerilir." +msgid "" +"Failed creating lightmap images. Make sure all meshes to bake have the " +"Lightmap Size Hint property set high enough, and the LightmapGI's Texel Scale " +"value is not too low." +msgstr "" +"Işık haritası görüntüleri oluşturulamadı. Fırınlanacak tüm örgülerin Işık " +"Haritası Boyutu İpucu özelliğinin yeterince yüksek ayarlandığından ve " +"LightmapGI'nin Texel Ölçeği değerinin çok düşük olmadığından emin olun." + msgid "" "Failed fitting a lightmap image into an atlas. This should never happen and " "should be reported." @@ -8438,13 +9475,29 @@ msgstr "" "olmaması gerekirdi ve rapor edilmelidir." msgid "Bake Lightmaps" -msgstr "Işık-Haritalarını Pişir" +msgstr "IşıkHaritalarını Fırınla" + +msgid "Lightmap baking is not supported on this GPU (%s)." +msgstr "Işık haritası fırınlama bu GPU'da desteklenmiyor (%s)." + +msgid "Lightmaps cannot be baked on %s." +msgstr "Işık haritaları %s üzerinde fırınlanamaz." + +msgid "" +"Lightmaps cannot be baked, as the `lightmapper_rd` module was disabled at " +"compile-time." +msgstr "" +"`lightmapper_rd` modülü derleme zamanında devre dışı bırakıldığı için ışık " +"haritaları fırınlanamaz." msgid "LightMap Bake" -msgstr "Işık Haritasını Pişir" +msgstr "IşıkHaritası Fırınlama" msgid "Select lightmap bake file:" -msgstr "Işık Haritası pişirme dosyası seç:" +msgstr "IşıkHaritası fırınlama dosyası seç:" + +msgid "Preview is not available for this shader mode." +msgstr "Bu gölgelendirici modu için önizleme kullanılamaz." msgid "Couldn't create a Trimesh collision shape." msgstr "Üçgenörgü çarpışma şekli oluşturulamadı." @@ -8522,7 +9575,7 @@ msgid "MeshInstance3D lacks a Mesh." msgstr "MeshInstance3D 'nin içinde bir Örgü bulunmuyor." msgid "Mesh has no surface to create outlines from." -msgstr "Örgünün anahattı oluşturacağı bir yüzeyi yok." +msgstr "Örgünün anahatları oluşturacak bir yüzeyi yok." msgid "Mesh primitive type is not PRIMITIVE_TRIANGLES." msgstr "Örgünün ilkel kök türü PRIMITIVE_TRIANGLES değil." @@ -8585,7 +9638,8 @@ msgstr "Durağan Cisim Alt Ögesi" msgid "Creates a StaticBody3D as child and assigns collision shapes to it." msgstr "" -"Alt öge olarak bir StaticBody3D oluşturur ve çarpışma şekillerini ona atar." +"Alt öge olarak bir DurağanCisim3B (StaticBody3D) oluşturur ve çarpışma " +"şekillerini ona atar." msgid "Collision Shape Type" msgstr "Çarpışma Şekli Türü" @@ -8637,6 +9691,30 @@ msgstr "" msgid "UV Channel Debug" msgstr "UV Kanalı Hata Ayıkla" +msgid "Create NavigationMesh" +msgstr "GezintiÖrgüsü Oluştur" + +msgid "" +"Before converting a rendering mesh to a navigation mesh, please verify:\n" +"\n" +"- The mesh is two-dimensional.\n" +"- The mesh has no surface overlap.\n" +"- The mesh has no self-intersection.\n" +"- The mesh surfaces have indices.\n" +"\n" +"If the mesh does not fulfill these requirements, the pathfinding will be " +"broken." +msgstr "" +"Bir işleme örgüsünü bir gezinti örgüsüne dönüştürmeden önce lütfen şunları " +"doğrulayın:\n" +"\n" +"- Örgü iki boyutludur.\n" +"- Örgüde yüzey örtüşmesi yoktur.\n" +"- Örgüde kendiyle kesişme yoktur.\n" +"- Örgü yüzeylerinin indeksleri vardır.\n" +"\n" +"Örgü bu gereksinimleri karşılamıyorsa, yol bulma bozulacaktır." + msgid "Remove item %d?" msgstr "%d ögesi kaldırılsın mı?" @@ -8752,21 +9830,57 @@ msgstr "start_position'ı -başlama konumu- ayarla" msgid "Set end_position" msgstr "end_position -bitiş konumu- ayarla" +msgid "Set Obstacle Vertices" +msgstr "Engelin Köşe-Noktalarını Ayarla" + +msgid "Edit Obstacle (Flip Winding)" +msgstr "Engeli Düzenle (Sarım Yönünü Ters Çevir)" + +msgid "Edit Obstacle (Clear Vertices)" +msgstr "Engeli Düzenle (Köşe-Noktalarını Temizle)" + +msgid "Add Vertex" +msgstr "Köşe-Nokta Ekle" + +msgid "Edit Vertex" +msgstr "Köşe-Nokta Düzenle" + +msgid "Delete Vertex" +msgstr "Köşe-Nokta Sil" + +msgid "Flip Winding" +msgstr "Sarım Yönünü Ters Çevir" + +msgid "Clear Vertices" +msgstr "Köşe-noktaları Temizle" + +msgid "Edit Obstacle (Add Vertex)" +msgstr "Engeli Düzenle (Köşe-Nokta Ekle)" + +msgid "Edit Obstacle (Move Vertex)" +msgstr "Engeli Düzenle (Köşe-Noktayı Taşı)" + +msgid "Edit Obstacle (Remove Vertex)" +msgstr "Engeli Düzenle (Köşe-Noktayı Kaldır)" + msgid "Please Confirm..." msgstr "Lütfen Doğrulayın..." +msgid "Remove all vertices?" +msgstr "Tüm köşe-noktalar kaldırılsın mı?" + msgid "Create Navigation Polygon" msgstr "Gezinti Çokgeni Oluştur" msgid "Bake NavigationPolygon" -msgstr "GezintiÇokgenini Pişir" +msgstr "GezintiÇokgeni'ni Fırınla" msgid "" "Bakes the NavigationPolygon by first parsing the scene for source geometry " "and then creating the navigation polygon vertices and polygons." msgstr "" -"İlk olarak kaynak geometrisi için sahneyi ayrıştırarak ve ardından gezinme " -"çokgeni köşelerini ve çokgenlerini oluşturarak GezintiÇokgenini pişirir." +"GezintiÇokgeni'ni, ilk olarak kaynak geometrisi için sahneyi ayrıştırarak ve " +"ardından gezinti çokgeni köşelerini ve çokgenlerini oluşturarak fırınlar." msgid "Clear NavigationPolygon" msgstr "GezintiÇokgenini Temizle" @@ -8791,7 +9905,7 @@ msgid "Orthogonal" msgstr "Dik Açılı" msgid "Perspective" -msgstr "Bakış Açısı" +msgstr "Bakış Açılı" msgid "Top Orthogonal" msgstr "Üst Dikaçılı" @@ -8829,6 +9943,9 @@ msgstr "Arka Dikaçılı" msgid "Rear Perspective" msgstr "Arka Bakış-açılı" +msgid "[auto]" +msgstr "[otomatik]" + msgid "X-Axis Transform." msgstr "X-Ekseni Dönüşümü." @@ -8923,7 +10040,7 @@ msgid "Rotate" msgstr "Döndür" msgid "Translate" -msgstr "Yerini Değiştir" +msgstr "Ötele" msgid "Rotating %s degrees." msgstr "%s derece döndürülüyor." @@ -8941,7 +10058,7 @@ msgid "Auto Orthogonal Enabled" msgstr "Otomatik Dik Açılı Etkin" msgid "Lock View Rotation" -msgstr "Dönüşü Görmeyi Kilitle" +msgstr "Görünüm Döndürmeyi Kilitle" msgid "Display Normal" msgstr "Olağan Görüntüle" @@ -8950,10 +10067,10 @@ msgid "Display Wireframe" msgstr "Telkafes Görüntüle" msgid "Display Overdraw" -msgstr "Abartıçizim Görüntüle" +msgstr "Aşırı-Çizimi Görüntüle" msgid "Display Lighting" -msgstr "Işıklandırmayı Görüntüle" +msgstr "Aydınlatmayı Görüntüle" msgid "Display Unshaded" msgstr "Gölgesiz Görüntüle" @@ -8974,7 +10091,7 @@ msgid "Decal Atlas" msgstr "Çıkartma Atlası" msgid "VoxelGI Lighting" -msgstr "VoxelGI Işıklandırması" +msgstr "VoxelGI Aydınlatması" msgid "VoxelGI Albedo" msgstr "VoxelGI Beyazlığı" @@ -8995,7 +10112,7 @@ msgid "SSAO" msgstr "Ekran-Uzayı Çevresel Perdeleme (SSAO)" msgid "SSIL" -msgstr "Ekran-Uzayı Dolaylı Işıklandırma (SSIL)" +msgstr "Ekran-Uzayı Dolaylı Aydınlatma (SSIL)" msgid "VoxelGI/SDFGI Buffer" msgstr "VoxelGI/SDFGI Arabelleği" @@ -9013,7 +10130,7 @@ msgid "Decal Cluster" msgstr "Çıkartma Kümesi" msgid "ReflectionProbe Cluster" -msgstr "Yansıma Sondası Kümesi" +msgstr "YansımaSondası Kümesi" msgid "Occlusion Culling Buffer" msgstr "Perdeleme Kaldırma Arabelleği" @@ -9025,7 +10142,7 @@ msgid "Internal Buffer" msgstr "Dahili Arabellek" msgid "Display Advanced..." -msgstr "Gelişmiş Görüntüle..." +msgstr "Gelişmiş Görüntüleme..." msgid "View Environment" msgstr "Çevreyi Gör" @@ -9033,6 +10150,9 @@ msgstr "Çevreyi Gör" msgid "View Gizmos" msgstr "Aletleri Gör" +msgid "View Transform Gizmo" +msgstr "Dönüştürme Aletini Görüntüle" + msgid "View Grid" msgstr "Izgarayı Gör" @@ -9057,6 +10177,24 @@ msgstr "Sinema Özellikli Önizleme" msgid "Not available when using the OpenGL renderer." msgstr "OpenGL işleyici kullanılırken kullanım dışıdır." +msgid "Viewport Orbit Modifier 1" +msgstr "Çerçeve Yörünge Değiştirici 1" + +msgid "Viewport Orbit Modifier 2" +msgstr "Çerçeve Yörünge Değiştirici 2" + +msgid "Viewport Pan Modifier 1" +msgstr "Çerçeve Kaydırma Değiştirici 1" + +msgid "Viewport Pan Modifier 2" +msgstr "Çerçeve Kaydırma Değiştirici 2" + +msgid "Viewport Zoom Modifier 1" +msgstr "Çerçeve Yakınlaştırma Değiştirici 1" + +msgid "Viewport Zoom Modifier 2" +msgstr "Çerçeve Yakınlaştırma Değiştirici 2" + msgid "Freelook Left" msgstr "Sola Serbest Bakış" @@ -9100,7 +10238,7 @@ msgid "Lock Transformation to XY plane" msgstr "Dönüşümü XY Düzlemine Kilitle" msgid "Begin Translate Transformation" -msgstr "Taşıma Dönüşümüne Başla" +msgstr "Öteleme Dönüşümüne Başla" msgid "Begin Rotate Transformation" msgstr "Döndürme Dönüşüme Başla" @@ -9108,6 +10246,9 @@ msgstr "Döndürme Dönüşüme Başla" msgid "Begin Scale Transformation" msgstr "Ölçek Dönüşümüne Başla" +msgid "Reposition Using Collisions" +msgstr "Çarpışmaları Kullanarak Yeniden Konumlandır" + msgid "Toggle Camera Preview" msgstr "Kamera Önizlemesini Aç/Kapat" @@ -9190,6 +10331,9 @@ msgstr "" "Seçilen düğümü alt-ögeleriyle birlikte gruplar. Bu, 2B ve 3B görünümde " "herhangi bir alt düğüme tıklandığında üst düğümü seçer." +msgid "LMB+Drag: Measure the distance between two points in 3D space." +msgstr "Sol Fare Tuşu + Sürükle: 3B uzayda iki nokta arasındaki mesafeyi ölçün." + msgid "Use Local Space" msgstr "Yerel Uzayı Kullan" @@ -9311,7 +10455,7 @@ msgid "Snap Settings" msgstr "Tutunma Ayarları" msgid "Translate Snap:" -msgstr "Tutunmayı Taşı:" +msgstr "Tutunmayı Ötele:" msgid "Rotate Snap (deg.):" msgstr "Tutunmayı Döndür (derece):" @@ -9342,7 +10486,7 @@ msgid "Transform Change" msgstr "Değişimi Dönüştür" msgid "Translate:" -msgstr "Taşı:" +msgstr "Ötele:" msgid "Rotate (deg.):" msgstr "Döndür (derece):" @@ -9446,18 +10590,19 @@ msgid "" "Make sure there is at least one MeshInstance3D node in the scene whose visual " "layers are part of the OccluderInstance3D's Bake Mask property." msgstr "" -"Pişirilecek hiç bir örgü yok.\n" -"Sahnede, görsel katmanları OccluderInstance3D'nin Pişirme Maskesi özelliğinin " -"bir parçası olan, en az bir MeshInstance3D düğümü olduğundan emin olun." +"Fırınlanacak hiç bir örgü yok.\n" +"Sahnede, görsel katmanları OccluderInstance3D'nin Fırınlama Maskesi " +"özelliğinin bir parçası olan, en az bir MeshInstance3D düğümü olduğundan emin " +"olun." msgid "Could not save the new occluder at the specified path:" msgstr "Yeni perdeleyici, belirtilen yola kaydedilemedi:" msgid "Bake Occluders" -msgstr "Perdeleyicileri Pişir" +msgstr "Perdeleyicileri Fırınla" msgid "Select occluder bake file:" -msgstr "Perdeleyici pişirme dosyasını seç:" +msgstr "Perdeleyici fırınlama dosyasını seç:" msgid "Convert to Parallax2D" msgstr "Parallax2D'ye dönüştür" @@ -9506,20 +10651,23 @@ msgstr "Görünürlük Dikdörtgeni Oluşturuluyor (Parçacık Benzetimi Bekleni msgid "Generating..." msgstr "Üretiliyor..." +msgid "Loading emission mask requires ParticleProcessMaterial." +msgstr "Yayılım maskesinin yüklenmesi için ParticleProcessMaterial gerekir." + msgid "GPUParticles2D" -msgstr "GPUParçacık2B" +msgstr "GPUParçacıkları2B" msgid "Convert to CPUParticles2D" -msgstr "CPUParçacık2B'ye dönüştür" +msgstr "CPUParçacıkları2B'ye dönüştür" msgid "Generation Time (sec):" msgstr "Üretme Süresi (sn):" msgid "CPUParticles2D" -msgstr "CPUParçacık2B" +msgstr "CPUParçacıkları2B" msgid "Convert to GPUParticles2D" -msgstr "GPUParçacık2B'ye dönüştür" +msgstr "GPUParçacıkları2B'ye dönüştür" msgid "Generating Visibility AABB (Waiting for Particle Simulation)" msgstr "Görünürlük AABB'si Üretiliyor (Parçacık Benzetimi Bekleniyor)" @@ -9569,6 +10717,9 @@ msgstr "Yayılım Kaynağı:" msgid "A processor material of type 'ParticleProcessMaterial' is required." msgstr "Bir işlemci malzeme türü olan 'ParticleProcessMaterial' gereklidir." +msgid "Create Emission Points" +msgstr "Yayılım Noktaları Oluştur" + msgid "GPUParticles3D" msgstr "GPUParticles3D" @@ -9611,6 +10762,9 @@ msgstr "Eğriyi Kapat" msgid "Clear Curve Points" msgstr "Eğri Noktalarını Temizle" +msgid "Create Curve in Path2D" +msgstr "Path2D'de Eğri Oluştur" + msgid "Select Points" msgstr "Noktaları Seç" @@ -9650,14 +10804,17 @@ msgstr "Tutamaç Açılarını Yansıt" msgid "Mirror Handle Lengths" msgstr "Tutamaç Uzunluklarını Yansıt" +msgid "Create Curve" +msgstr "Eğri Oluştur" + msgid "Curve Point #" msgstr "Eğri Noktası #" msgid "Handle In #" -msgstr "İç Tutamaç#" +msgstr "Geliş Tutamacı #" msgid "Handle Out #" -msgstr "Dış Tutamaç #" +msgstr "Gidiş Tutamacı #" msgid "Handle Tilt #" msgstr "Eğme Tutamacı #" @@ -9689,6 +10846,12 @@ msgstr "Giriş-Kontrol Noktasını Sıfırla" msgid "Reset Point Tilt" msgstr "Nokta Eğimini Sıfırla" +msgid "Toggle Open/Closed Curve" +msgstr "Açık/Kapalı Eğriyi Aç/Kapat" + +msgid "Create Curve in Path3D" +msgstr "Path3D'de Eğri Oluştur" + msgid "Shift+Click: Select multiple Points" msgstr "ÜstKrkt+Tıklama: Birden fazla Nokta seçin" @@ -9788,6 +10951,13 @@ msgstr "" msgid "Script Name:" msgstr "Betik İsmi:" +msgid "" +"Optional. The name of the script file. If left empty, will default to the " +"subfolder name." +msgstr "" +"İsteğe bağlı.Betik dosyasının adı. Boş bırakılırsa, varsayılan olarak alt " +"klasörün adı kullanılır." + msgid "Activate now?" msgstr "Şimdi etkinleştirilsin mi?" @@ -9860,9 +11030,15 @@ msgstr "Kemikler" msgid "Move Points" msgstr "Noktaları Taşı" +msgid "%s: Rotate" +msgstr "%s: Döndür" + msgid "Shift: Move All" msgstr "ÜstKrkt: Tümünü taşı" +msgid "%s + Shift: Scale" +msgstr "%s + ÜstKrkt: Ölçekle" + msgid "Move Polygon" msgstr "Çokgeni Taşı" @@ -9928,6 +11104,12 @@ msgstr "Izgara Adımı Y:" msgid "Sync Bones to Polygon" msgstr "Kemikleri Çokgene Eşle" +msgid "Polygon" +msgstr "Çokgen" + +msgid "Toggle Polygon Bottom Panel" +msgstr "Çokgen Alt Paneli Aç/Kapat" + msgid "Create Polygon3D" msgstr "Çokgen3B (Polygon3D) Oluştur" @@ -9970,6 +11152,12 @@ msgstr "" "CanlandırmaKarıştırıcısı (AnimationMixer) geçerli bir kök düğüm yoluna sahip " "değil, bu nedenle iz isimleri alınamadı." +msgid "(truncated)" +msgstr "(kısaltılmış)" + +msgid "Current value: " +msgstr "Geçerli değer: " + msgid "Can't open '%s'. The file could have been moved or deleted." msgstr "'%s' açılamıyor. Dosya taşınmış ya da silinmiş olabilir." @@ -10047,7 +11235,7 @@ msgid "Save Theme As..." msgstr "Temayı Farklı Kaydet..." msgid "Open '%s' in Godot online documentation." -msgstr "'%s' ögesini Godot çevrimiçi belgelerinde açın." +msgstr "'%s' ögesini Godot çevrimiçi belgelerinde aç." msgid "Open in Online Docs" msgstr "Çevrimiçi Dokümanlarda Aç" @@ -10097,6 +11285,9 @@ msgstr "Araç Betiğini Yeniden Hafif Yükle" msgid "Copy Script Path" msgstr "Betik Yolunu Kopyala" +msgid "Copy Script UID" +msgstr "Betiğin UID'sini Kopyala" + msgid "History Previous" msgstr "Geçmiş Önceki" @@ -10136,6 +11327,13 @@ msgstr "Önceki düzenlenmiş belgeye git." msgid "Go to next edited document." msgstr "Sonraki düzenlenmiş belgeye git." +msgid "" +"Make the script editor floating.\n" +"Right-click to open the screen selector." +msgstr "" +"Betik düzenleyiciyi yüzer hale getir.\n" +"Ekran seçiciyi açmak için sağ-tıklayın." + msgid "Discard" msgstr "Yok Say" @@ -10175,6 +11373,9 @@ msgstr "Düz Metin" msgid "JSON" msgstr "JSON" +msgid "Markdown" +msgstr "Markdown" + msgid "Connections to method:" msgstr "Yönteme olan bağlantılar:" @@ -10223,6 +11424,9 @@ msgstr "" "Bu düğümler bırakılamaz, çünkü '%s' betik dosyası Node sınıfından miras " "almıyor." +msgid "Emoji & Symbols" +msgstr "Emoji ve Semboller" + msgid "Pick Color" msgstr "Renk Seç" @@ -10275,7 +11479,7 @@ msgid "Evaluate Selection" msgstr "Seçimi Hesapla" msgid "Toggle Word Wrap" -msgstr "Kelime Sarmayı Aç/Kapat" +msgstr "Sözcük Kaydırmayı Aç/Kapat" msgid "Trim Trailing Whitespace" msgstr "Sondaki Beyaz boşlukları Kırp" @@ -10356,12 +11560,22 @@ msgstr "Dosyayı Kaydet" msgid "Open File in Inspector" msgstr "Dosyayı Denetleyicide Aç" +msgid "Inspect Native Shader Code..." +msgstr "Yerel Gölgelendirici Kodunu İncele..." + msgid "Close File" msgstr "Dosyayı Kapat" msgid "Shader Editor" msgstr "Gölgelendirici Düzenleyicisi" +msgid "" +"Make the shader editor floating.\n" +"Right-click to open the screen selector." +msgstr "" +"Gölgelendirici düzenleyiciyi yüzer hale getir.\n" +"Ekran seçiciyi açmak için sağ-tıklayın." + msgid "Toggle Shader Editor Bottom Panel" msgstr "Gölgelendirici Düzenleyici Alt Panelini Aç/Kapat" @@ -10382,7 +11596,7 @@ msgid "ShaderFile" msgstr "ShaderFile" msgid "Toggle ShaderFile Bottom Panel" -msgstr "ShaderFile Alt Panelini Değiştir" +msgstr "ShaderFile Alt Panelini Aç/Kapat" msgid "This skeleton has no bones, create some children Bone2D nodes." msgstr "" @@ -10404,9 +11618,24 @@ msgstr "Dinlenme Duruşuna Sıfırla" msgid "Overwrite Rest Pose" msgstr "Dinlenme Duruşunun Üzerine Yaz" +msgid "Bone Metadata" +msgstr "Kemik Metaverisi" + +msgid "Add Bone Metadata" +msgstr "Kemik Metaverisi Ekle" + msgid "Set Bone Transform" msgstr "Kemik Dönüşümünü Ayarla" +msgid "Modify metadata '%s' for bone '%s'" +msgstr "'%s' meta verilerini '%s' kemiği için değiştir" + +msgid "Remove metadata '%s' from bone '%s'" +msgstr "'%s' meta verisini '%s' kemiğinden kaldır" + +msgid "Add metadata '%s' to bone '%s'" +msgstr "'%s' meta verisini '%s' kemiğine ekle" + msgid "Set Bone Rest" msgstr "Kemik Dayanağını Ayarla" @@ -10427,6 +11656,12 @@ msgstr "İskelet Profilini Farklı Dışa Aktar..." msgid "Set Bone Parentage" msgstr "Kemiğin Üst-ögeliğini Ayarla" +msgid "Revert Bone" +msgstr "Kemiği Eski Haline Al" + +msgid "Revert" +msgstr "Eski Haline Al" + msgid "Skeleton3D" msgstr "3B İskelet" @@ -10525,7 +11760,7 @@ msgid "Create LightOccluder2D Sibling" msgstr "LightOccluder2D -2B ışık perdeleyici- Alt-Ögesi Oluştur" msgid "Sprite2D" -msgstr "Sprite2D -2B resimcik-" +msgstr "Resimcik2B" msgid "Simplification:" msgstr "Basitleştirme:" @@ -11463,7 +12698,7 @@ msgid "Unknown Type Source (ID: %d)" msgstr "Bilinmeyen Tür Kaynağı (Kimlik: %d)" msgid "Add TileSet pattern" -msgstr "TileSet -karo seti- deseni ekle" +msgstr "KaroSeti (TileSet) deseni ekle" msgid "Remove TileSet patterns" msgstr "KaroSeti desenlerini kaldır" @@ -11499,6 +12734,9 @@ msgstr "Karo boya" msgid "Paste tiles" msgstr "Karoları yapıştır" +msgid "Selection Tool" +msgstr "Seçim Aracı" + msgid "Shift: Draw line." msgstr "ÜstKrkt: Çizgi çiz." @@ -11540,6 +12778,13 @@ msgstr "Saçılma:" msgid "Tiles" msgstr "Karolar" +msgid "" +"This TileMap's TileSet has no Tile Source configured. Go to the TileSet " +"bottom panel to add one." +msgstr "" +"Bu KaroHaritası'nın KaroSet'i için yapılandırılmış bir Karo Kaynağı yok. Bir " +"tane eklemek için alttaki KaroSeti paneline gidin." + msgid "Sort sources" msgstr "Kaynakları sırala" @@ -12088,6 +13333,9 @@ msgstr "Kaynağı kaldır" msgid "Add atlas source" msgstr "Atlas kaynağı ekle" +msgid "Tile Sources" +msgstr "Karo Kaynakları" + msgid "Sort Sources" msgstr "Kaynakları Sırala" @@ -12170,6 +13418,24 @@ msgstr "Sahne derlemesi özellikleri:" msgid "Tile properties:" msgstr "Karo özellikleri:" +msgid "Paint Tool" +msgstr "Boyama Aracı" + +msgid "Line Tool" +msgstr "Çizgi Aracı" + +msgid "Rect Tool" +msgstr "Dikdörtgen Aracı" + +msgid "Bucket Tool" +msgstr "Kova Aracı" + +msgid "Eraser Tool" +msgstr "Silgi Aracı" + +msgid "Picker Tool" +msgstr "Seçici Aracı" + msgid "TileMap" msgstr "TileMap" @@ -12438,6 +13704,12 @@ msgid "" msgstr "" "2B önizleme, örnekleme parametresinden alınan sonucu doğru şekilde gösteremez." +msgid "Copy Preview Shader Parameters From Material" +msgstr "Önizleme Gölgelendirici Parametrelerini Malzemeden Kopyala" + +msgid "Paste Preview Shader Parameters To Material" +msgstr "Önizleme Gölgelendirici Parametrelerini Malzemeye Yapıştır" + msgid "Add Input Port" msgstr "Giriş Portu Ekle" @@ -12555,6 +13827,9 @@ msgstr "Otomatik Daraltmayı Etkinleştir" msgid "Enable Tint Color" msgstr "Ağarma Rengini Etkinleştir" +msgid "Edit Preview Parameter: %s" +msgstr "Önizleme Parametresini Düzenle: %s" + msgid "Duplicate VisualShader Node(s)" msgstr "VisualShader Düğümünü/Düğümlerini Çoğalt (görsel gölgelendirici)" @@ -12582,9 +13857,15 @@ msgstr "Değişen için geçersiz isim." msgid "Varying with that name is already exist." msgstr "Bu isimle bir değişen zaten var." +msgid "Boolean type cannot be used with `%s` varying mode." +msgstr "Mantıksal tip `%s` değişen modu ile kullanılamaz." + msgid "Add Node(s) to Visual Shader" msgstr "Görsel Gölgelendiriciye Düğüm(ler) Ekle" +msgid "Hold %s Key To Swap Connections" +msgstr "Bağlantıları Karşılıklı Değiştirmek İçin %s Tuşunu Basılı Tutun" + msgid "Vertex" msgstr "Köşenokta" @@ -12618,6 +13899,9 @@ msgstr "Değişeni Kaldır" msgid "Show generated shader code." msgstr "Üretilen gölgelendirici kodunu görüntüle." +msgid "Toggle shader preview." +msgstr "Gölgelendirici önizlemesini aç / kapat." + msgid "Generated Shader Code" msgstr "Üretilen Gölgelendirici Kodu" @@ -12633,6 +13917,15 @@ msgstr "Yeni Düğüm Ekle" msgid "Insert New Reroute" msgstr "Yeni Yeniden-Yönlendirme Ekle" +msgid "Filter Parameters" +msgstr "Parametreleri Filtrele" + +msgid "Copy Parameters From Material" +msgstr "Parametreleri Malzemeden Kopyala" + +msgid "Paste Parameters To Material" +msgstr "Parametreleri Malzemeye Yapıştır" + msgid "High-end node" msgstr "Üst-düzey düğüm" @@ -12657,12 +13950,18 @@ msgstr "Gritonlama fonksiyonu." msgid "Converts HSV vector to RGB equivalent." msgstr "HSV vektörünü RGB karşılığına dönüştürür." +msgid "Converts color from linear to sRGB color space." +msgstr "Rengi doğrusaldan sRGB renk uzayına dönüştürür." + msgid "Converts RGB vector to HSV equivalent." msgstr "RGB vektörünü HSV karşılığına dönüştürür." msgid "Sepia function." msgstr "Sepya fonksiyonu." +msgid "Converts color from sRGB to linear color space." +msgstr "Rengi sRGB'den doğrusal renk uzayına dönüştürür." + msgid "Burn operator." msgstr "Yakma işleci." @@ -12699,6 +13998,9 @@ msgstr "Renk parametresi." msgid "(Fragment/Light mode only) Derivative function." msgstr "(Yalnızca Parça/Işık kipi) Türev fonksiyonu." +msgid "Derivative function." +msgstr "Türev fonksiyonu." + msgid "Returns the boolean result of the %s comparison between two parameters." msgstr "" "iki parametre arasındaki %s karşılaştırmasının mantıksal sonucunu döndürür." @@ -12875,7 +14177,7 @@ msgid "Integer operator." msgstr "Tamsayı işleci (Integer)." msgid "Unsigned integer function." -msgstr "İşaretsiz Tamsayı fonksiyonu." +msgstr "İşaretsiz tamsayı fonksiyonu." msgid "Unsigned integer operator." msgstr "İşaretsiz tamsayı işleci." @@ -12945,6 +14247,12 @@ msgstr "" "(Yalnızca Parça/Işık kipi) (Skaler) Yerel farklar kullanılarak 'y' cinsinden " "türev." +msgid "(Scalar) Derivative in 'x' using local differencing." +msgstr "(Skaler) Yerel değişimler kullanılarak 'x' cinsinden türev." + +msgid "(Scalar) Derivative in 'y' using local differencing." +msgstr "(Skaler) Yerel değişimler kullanılarak 'y' cinsinden türev." + msgid "Base-e Exponential." msgstr "e-Tabanlı Üstel." @@ -12994,6 +14302,10 @@ msgstr "Derece cinsinden değeri radyan cinsine dönüştürür." msgid "1.0 / scalar" msgstr "1.0 / skaler_sayı" +msgid "Remaps a value from the input range to the output range." +msgstr "" +"Verilen bir değeri, giriş aralığından çıkış aralığına yeniden haritalar." + msgid "Finds the nearest integer to the parameter." msgstr "Parametreye en yakın tamsayıyı bulur." @@ -13043,6 +14355,9 @@ msgid "" msgstr "" "(Yalnızca Parça/Işık kipi) (Skaler) 'x' ve 'y' de mutlak türevlerin toplamı." +msgid "(Scalar) Sum of absolute derivative in 'x' and 'y'." +msgstr "(Skaler) 'x' ve 'y'deki mutlak türevlerin toplamı." + msgid "Returns the tangent of the parameter." msgstr "Parametrenin tanjantını döndürür." @@ -13064,12 +14379,14 @@ msgid "Sums two unsigned integer scalars." msgstr "İki işaretsiz skaler tamsayıyı toplar." msgid "Returns the result of bitwise AND (a & b) operation for two integers." -msgstr "İki tamsayı için, bitdüzeyi AND (a VE b) işlem sonucunu döndürür." +msgstr "" +"İki tamsayı için, bitdüzeyi AND (a & b, a VE b) işleminin sonucunu döndürür." msgid "" "Returns the result of bitwise AND (a & b) operation for two unsigned integers." msgstr "" -"İki işaretsiz tamsayı için, bitdüzeyi AND (a VE b) işlem sonucunu döndürür." +"İki işaretsiz tamsayı için, bitdüzeyi AND (a & b, a VE b) işleminin sonucunu " +"döndürür." msgid "" "Returns the result of bitwise left shift (a << b) operation on the integer." @@ -13202,7 +14519,7 @@ msgstr "Üç bileşenli eğri dokusu aramasını gerçekleştirin." msgid "" "Returns the depth value obtained from the depth prepass in a linear space." msgstr "" -"Doğrusal bir uzayda, derinlik ön geçişinden elde edilen derinlik değerini " +"Doğrusal bir uzayda, derinlik ön-geçişinden elde edilen derinlik değerini " "döndürür." msgid "Reconstructs the World Position of the Node from the depth texture." @@ -13382,6 +14699,12 @@ msgstr "" "(Yalnızca Parça/Işık kipi) (Vektör) Yerel farklar kullanılarak 'y' cinsinden " "türev." +msgid "(Vector) Derivative in 'x' using local differencing." +msgstr "(Vektör) Yerel değişimler kullanılarak 'x' cinsinden türev." + +msgid "(Vector) Derivative in 'y' using local differencing." +msgstr "(Vektör) Yerel değişimler kullanılarak 'y' cinsinden türev." + msgid "Returns the distance between two points." msgstr "İki nokta arasındaki uzaklığı döndürür." @@ -13438,6 +14761,17 @@ msgstr "" msgid "Returns the vector that points in the direction of refraction." msgstr "Kırılma (ışıksal) yönüne bakan vektör dündürür." +msgid "Remaps a vector from the input range to the output range." +msgstr "" +"Verilen bir vektörü, giriş aralığından çıkış aralığına yeniden haritalar." + +msgid "" +"Remaps a vector from the input range to the output range. Ranges defined with " +"scalars." +msgstr "" +"Verilen bir vektörü, giriş aralığından çıkış aralığına yeniden haritalar. " +"Aralıklar skaler sayılarla tanımlanır." + msgid "" "SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" "\n" @@ -13488,6 +14822,9 @@ msgid "" msgstr "" "(Yalnızca Parça/Işık kipi) (Vektör) 'x' ve 'y' de mutlak türevlerin toplamı." +msgid "(Vector) Sum of absolute derivative in 'x' and 'y'." +msgstr "(Vektör) 'x' ve 'y'deki mutlak türevlerin toplamı." + msgid "Adds 2D vector to 2D vector." msgstr "2B vektörü başka 2B vektöre ekler." @@ -13610,13 +14947,13 @@ msgid "Voxel GI data is an imported resource." msgstr "Voxel GI verisi, içe aktarılmış bir kaynaktır." msgid "Bake VoxelGI" -msgstr "VoxelGI Pişir" +msgstr "VoxelGI Fırınla" msgid "Select path for VoxelGI Data File" msgstr "VoxelGI Veri Dosyası için yol seç" msgid "Go Online and Open Asset Library" -msgstr "Çevrimiçi Olun ve Varlık Kitaplığını Açın" +msgstr "Çevrimiçi Olun ve Varlık Kütüphanesini Açın" msgid "Are you sure to run %d projects at once?" msgstr "%d projenin hepsini tek seferde çalıştırmak istediğinize emin misiniz?" @@ -13814,6 +15151,35 @@ msgstr "" "Tüm eksik projeler listeden kaldırılsın mı?\n" "Proje klasörlerinin içeriği değiştirilmeyecek." +msgid "" +"It looks like Godot crashed when opening this project the last time. If " +"you're having problems editing this project, you can try to open it in " +"Recovery Mode." +msgstr "" +"Görünüşe göre Godot bu projeyi daha önce açmayı denerken çöktü. Bu projeyi " +"düzenlerken sorun yaşıyorsanız, Kurtarma Kipinde açmayı deneyebilirsiniz." + +msgid "" +"Recovery Mode is a special mode that may help to recover projects that crash " +"the engine during initialization. This mode temporarily disables the " +"following features:" +msgstr "" +"Kurtarma Kipi, başlatma sırasında motoru çökerten projeleri kurtarmaya " +"yardımcı olabilecek özel bir moddur. Bu mod aşağıdaki özellikleri geçici " +"olarak devre dışı bırakır:" + +msgid "" +"This mode is intended only for basic editing to troubleshoot such issues, and " +"therefore it will not be possible to run the project during this mode. It is " +"also a good idea to make a backup of your project before proceeding." +msgstr "" +"Bu mod yalnızca bu tür sorunları gidermek için temel düzenleme amaçlıdır ve " +"bu nedenle bu mod sırasında projeyi çalıştırmak mümkün olmayacaktır. Ayrıca " +"devam etmeden önce projenizin yedeğini almanız da iyi olur." + +msgid "Edit the project in Recovery Mode?" +msgstr "Projeyi Kurtarma Kipi'nde düzenleyin?" + msgid "Couldn't load project at '%s'. It may be missing or corrupted." msgstr "'%s' yolundaki proje yüklenemedi. Kayıp veya bozuk olabilir." @@ -13902,6 +15268,9 @@ msgstr "" msgid "Edit Project" msgstr "Projeyi Düzenle" +msgid "Edit in recovery mode" +msgstr "Kurtarma kipinde düzenle" + msgid "Rename Project" msgstr "Projeyi Yeniden Adlandır" @@ -13927,6 +15296,12 @@ msgstr "Tarama İçin Bir Klasör Seç" msgid "Remove All" msgstr "Tümünü Kaldır" +msgid "Edit normally" +msgstr "Normal şekilde düzenle" + +msgid "Edit in Recovery Mode" +msgstr "Kurtarma Kipinde Düzenle" + msgid "Convert Full Project" msgstr "Projeyi Tam Dönüştür" @@ -14068,6 +15443,9 @@ msgstr "Basit sahneler için hızlı işleme." msgid "Supports desktop, mobile + web platforms." msgstr "Masaüstü, mobil + web platformlarını destekler." +msgid "Least advanced 3D graphics." +msgstr "En az gelişmiş 3B grafikler." + msgid "Intended for low-end/older devices." msgstr "Düşük seviyeli / eski cihazlar için kullanımı amaçlanmıştır." @@ -14126,6 +15504,15 @@ msgstr "Proje Yükleme Yolu:" msgid "Renderer:" msgstr "İşleyici:" +msgid "" +"RenderingDevice-based methods not available on this GPU:\n" +"%s\n" +"Please use the Compatibility renderer." +msgstr "" +"RenderingDevice-temelli yöntemler bu GPU'da kullanılamıyor:\n" +"%s\n" +"Lütfen Uyumluluk işleyicisini kullanın." + msgid "The renderer can be changed later, but scenes may need to be adjusted." msgstr "" "İşleyici daha sonra değiştirilebilir, ancak sahnelerin uyumlandırılması " @@ -14137,6 +15524,9 @@ msgstr "Sürüm Denetimi Metaverileri:" msgid "Git" msgstr "Git" +msgid "Edit Now" +msgstr "Şimdi Düzenle" + msgid "This project was last edited in a different Godot version: " msgstr "" "Bu projenin en son düzenlenmesi, Godot'nun farklı bir sürümüyle yapılmış. " @@ -14151,6 +15541,12 @@ msgstr "Hata: Proje, dosya sisteminde mevcut değil." msgid "Last edited timestamp" msgstr "Son düzenlenen zaman damgası" +msgid "Scanning" +msgstr "Taranıyor" + +msgid "Scanning for projects..." +msgstr "Projeler için taranıyor..." + msgid "Missing Project" msgstr "Eksik Proje" @@ -14660,6 +16056,15 @@ msgstr "Yeni Düğüme Üst-öge Yap" msgid "This operation requires a single selected node." msgstr "Bu işlem, seçilmiş tek bir düğüm gerektirir." +msgid "Reset Position" +msgstr "Konumu Sıfırla" + +msgid "Reset Scale" +msgstr "Ölçeği Sıfırla" + +msgid "Reset Rotation" +msgstr "Dönmeyi Sıfırla" + msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." @@ -14674,6 +16079,9 @@ msgstr "Sahne kaydetmek için çoğaltılırken hata." msgid "Instantiate Script" msgstr "Betik Örneği Oluştur" +msgid "<unknown>" +msgstr "<bilinmeyen>" + msgid "Sub-Resources" msgstr "Alt-Kaynaklar" @@ -14705,6 +16113,9 @@ msgstr "" "Etkinleştirilirse, Yeni Düğüme Üst-öge Yap seçimi, mümkünse, yeni düğümü " "seçilen düğümlerin merkezinde oluşturacaktır." +msgid "Hide Filtered Out Parents" +msgstr "Filtrelenmiş Üst Ögeleri Gizle" + msgid "All Scene Sub-Resources" msgstr "Tüm Sahne Alt-Kaynakları" @@ -14772,7 +16183,7 @@ msgid "Instantiate Child Scene..." msgstr "Alt-öge Sahnesini Örneklendir..." msgid "Paste as Sibling" -msgstr "Kardeş öge Olarak Yapıştır" +msgstr "Kardeş-Öge Olarak Yapıştır" msgid "Change Type..." msgstr "Türü Değiştir..." @@ -14817,6 +16228,9 @@ msgstr "Seçili düğüme yeni veya mevcut bir betik iliştir." msgid "Detach the script from the selected node." msgstr "Seçilen düğümden betiği ayır." +msgid "Extend the script of the selected node." +msgstr "Seçilen düğümün betiğini genişlet." + msgid "Extra scene options." msgstr "Sahne ek seçenekleri." @@ -15069,6 +16483,47 @@ msgstr "" msgid "Restart & Upgrade" msgstr "Yeniden Başlat ve Güncelle" +msgid "Updating Script UIDs" +msgstr "Betik Benzersiz Kimlikleri (UID) Güncelleniyor" + +msgid "" +"As of Godot 4.4, scenes and resources use UIDs to reference scripts and " +"shaders.\n" +"\n" +"Normally, this update is applied to a single scene or resource once you save " +"it in Godot 4.4 for the first time. If you have a lot of scenes and/or " +"resources, doing this manually may be time-consuming. This tool will update " +"all of the project's scenes and resources at once.\n" +"\n" +"Click \"Restart & Upgrade\" to restart the editor and update all of the " +"scenes and resources in this project. Depending on the project size, it may " +"take several minutes.\n" +"\n" +"Note: Please make sure you have your project backed up before running the " +"tool, to avoid the possibility of data loss. Additionally, make sure to " +"commit all .uid files into version control (and do not add them to ignore-" +"lists like .gitignore)." +msgstr "" +"Godot 4.4'ten itibaren sahneler ve kaynaklar, betiklere ve gölgelendiricilere " +"başvurmak için benzersiz kimlikler yani UID'leri kullanır.\n" +"\n" +"Normalde bu güncelleme Godot 4.4'te, tek bir sahne veya kaynak üzerinde " +"bunları ilk kez kaydettiğinizde uygulanır. Çok sayıda sahneniz ve/veya " +"kaynağınız varsa, bunu elinizle yapmak zaman alabilir. Bu araç, projenin tüm " +"sahnelerini ve kaynaklarını bir kerede güncelleyecektir.\n" +"\n" +"Düzenleyiciyi yeniden başlatmak ve bu projedeki tüm sahneleri ve kaynakları " +"güncellemek için \"Yeniden Başlat ve Yükselt\" seçeneğine tıklayın. Proje " +"boyutuna bağlı olarak bu işlem birkaç dakika sürebilir.\n" +"\n" +"Not: Olası veri kaybını önlemek için lütfen aracı çalıştırmadan önce " +"projenizi yedeklediğinizden emin olun. Ayrıca, tüm .uid dosyalarını sürüm " +"kontrolüne işlediğinizden emin olun (ve bunları .gitignore gibi yoksayma " +"listelerine eklemeyin)." + +msgid "Learn More" +msgstr "Daha Fazla Bilgi Edin" + msgid "Make this panel floating in the screen %d." msgstr "Bu paneli %d ekranında yüzer hale getir." @@ -15082,6 +16537,67 @@ msgstr "" msgid "Select Screen" msgstr "Ekran Seç" +msgid "" +"The CSGShape3D has an empty shape.\n" +"CSGShape3D empty shapes typically occur because the mesh is not manifold.\n" +"A manifold mesh forms a solid object without gaps, holes, or loose edges.\n" +"Each edge must be a member of exactly two faces." +msgstr "" +"CSGShape3D boş bir şekle sahiptir.\n" +"CSGShape3D boş şekilleri genellikle örgünün çok katmanlı (manifold) olmadığı " +"durumlarda oluşur.\n" +"Bir çok katmanlı örgü boşlukların, deliklerin veya gevşek kenarların olmadığı " +"katı bir nesne oluşturur.\n" +"Her kenar tam olarak iki yüzeyin üyesi olmalıdır." + +msgid "CSG operation returned an empty array." +msgstr "CSG işlemi boş bir dizi döndürdü." + +msgid "" +"Can not add a baked mesh as sibling for the scene root.\n" +"Move the CSG root node below a parent node." +msgstr "" +"Fırınlanmış bir örgü sahne kökü için kardeş öğe olarak eklenemiyor.\n" +"CSG kök düğümünü bir ana düğümün altına taşıyın." + +msgid "CSG operation returned an empty mesh." +msgstr "CSG işlemi boş bir örgü döndürdü." + +msgid "Create baked CSGShape3D Mesh Instance" +msgstr "Fırınlanmış CSGShape3D Örgüsü Örneklemesi Oluştur" + +msgid "" +"Can not add a baked collision shape as sibling for the scene root.\n" +"Move the CSG root node below a parent node." +msgstr "" +"Fırınlanmış bir çarpışma şekli sahne kökü için kardeş öğe olarak " +"eklenemiyor.\n" +"CSG kök düğümünü bir ana düğümün altına taşıyın." + +msgid "CSG operation returned an empty shape." +msgstr "CSG işlemi boş bir şekil döndürdü." + +msgid "Create baked CSGShape3D Collision Shape" +msgstr "Fırınlanmış CSGShape3D Çarpışma Şekli Oluştur" + +msgid "CSG" +msgstr "CSG" + +msgid "Bake Mesh Instance" +msgstr "Örgü Örneklemesini Fırınla" + +msgid "Bake Collision Shape" +msgstr "Çarpışma Şeklini Fırınla" + +msgid "Change CSG Box Size" +msgstr "CSG Kutu Boyutunu Değiştir" + +msgid "Change CSG Cylinder Radius" +msgstr "CSG Silindir Yarıçapını Değiştir" + +msgid "Change CSG Cylinder Height" +msgstr "CSG Silindir Yüksekliğini Değiştir" + msgid "Change Torus Inner Radius" msgstr "Simit Şekli İç Yarıçapını Değiştir" @@ -15098,6 +16614,28 @@ msgstr "Dizi yeniden boyutlandırılamıyor." msgid "Step argument is zero!" msgstr "Adım girdi değişkeni sıfır!" +msgid "Not a script with an instance." +msgstr "Örneklemesi bulunan bir betik değil." + +msgid "Not based on a script." +msgstr "Bir betiği temel almıyor." + +msgid "Not based on a resource file." +msgstr "Bir kaynak dosyasını temel almıyor." + +msgid "Invalid instance dictionary format (missing @path)." +msgstr "Geçersiz örnekleme sözlüğü biçimi (@path eksik)." + +msgid "Invalid instance dictionary format (can't load script at @path)." +msgstr "" +"Geçersiz örnekleme sözlüğü biçimi (@path adresindeki betik yüklenemiyor)." + +msgid "Invalid instance dictionary format (invalid script at @path)." +msgstr "Geçersiz örnekleme sözlüğü biçimi (@path adresinde geçersiz betik)." + +msgid "Invalid instance dictionary (invalid subclasses)." +msgstr "Geçersiz örnekleme sözlüğü (geçersiz alt sınıflar)." + msgid "Cannot instantiate GDScript class." msgstr "GDScript sınıfı örneklenemiyor." @@ -15220,6 +16758,12 @@ msgstr "Y Eksenini Düzenle" msgid "Edit Z Axis" msgstr "Z Eksenini Düzenle" +msgid "Keep Selection" +msgstr "Seçimi Koru" + +msgid "Clear Rotation" +msgstr "Dönmeyi Temizle" + msgid "GridMap Settings" msgstr "IzgaraHaritası Ayarları" @@ -15229,6 +16773,9 @@ msgstr "Uzaklık Seç:" msgid "Selection" msgstr "Seçim" +msgid "Erase" +msgstr "Sil" + msgid "Cursor Rotate X" msgstr "İmleç Döndür X" @@ -15238,6 +16785,15 @@ msgstr "İmleç Döndür Y" msgid "Cursor Rotate Z" msgstr "İmleç Döndür Z" +msgid "" +"Change Grid Floor:\n" +"Previous Plane (%s)\n" +"Next Plane (%s)" +msgstr "" +"Izgara Zeminini Değiştir:\n" +"Önceki Düzlem (%s)\n" +"Sonraki Düzlem (%s)" + msgid "Filter Meshes" msgstr "Örgüleri Filtrele" @@ -15246,6 +16802,12 @@ msgstr "" "Bu IzgaraHaritasına, örgülerini kullanması için bir ÖrgüKütüphanesi kaynağı " "verin." +msgid "GridMap" +msgstr "IzgaraHaritası" + +msgid "Toggle GridMap Bottom Panel" +msgstr "IzgaraHaritası Alt Panelini Aç/Kapat" + msgid "All Clips" msgstr "Tüm Parçalar" @@ -15361,7 +16923,7 @@ msgid "Denoising %d%%" msgstr "Gürültü Giderme %d%%" msgid "Begin Bake" -msgstr "Pişirmeye Başla" +msgstr "Fırınlamaya Başla" msgid "Preparing shaders" msgstr "Gölgelendiriciler hazırlanıyor" @@ -15372,12 +16934,18 @@ msgstr "Geometri perdelemesi kaldırılıyor" msgid "Plot direct lighting" msgstr "Doğrudan aydınlatma çizme" +msgid "Plot direct lighting %d%%" +msgstr "%d%% doğrudan aydınlatma çizdir" + msgid "Integrate indirect lighting" msgstr "Dolaylı aydınlatmayı birleştir" msgid "Integrate indirect lighting %d%%" msgstr "Dolaylı aydınlatmayı birleştir %d%%" +msgid "Baking light probes" +msgstr "Işık sondaları fırınlanıyor" + msgid "Integrating light probes %d%%" msgstr "Işık sondaları birleştiriliyor %d%%" @@ -15396,6 +16964,19 @@ msgstr "Sınıf ismi, geçerli bir tanımlayıcı olmalıdır" msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "Byte'ları çözümlemek için yetersiz byte miktarı, veya geçersiz biçim." +msgid "" +"Unable to load .NET runtime, no compatible version was found.\n" +"Attempting to create/edit a project will lead to a crash.\n" +"\n" +"Please install the .NET SDK 8.0 or later from https://get.dot.net and restart " +"Godot." +msgstr "" +".NET çalışma zamanı yüklenemiyor, uyumlu bir sürüm bulunamadı.\n" +"Bir proje oluşturmaya/düzenlemeye çalışmak çökmeye yol açacaktır.\n" +"\n" +"Lütfen https://get.dot.net adresinden .NET SDK 8.0 veya üst sürümünü yükleyin " +"ve Godot'yu yeniden başlatın." + msgid "Failed to load .NET runtime" msgstr ".NET runtime (çalıştırma kitaplığı) yüklenemedi" @@ -15410,6 +16991,19 @@ msgstr "" msgid ".NET assemblies not found" msgstr ".NET derleme nesneleri bulunamadı" +msgid "" +"Unable to load .NET runtime, specifically hostfxr.\n" +"Attempting to create/edit a project will lead to a crash.\n" +"\n" +"Please install the .NET SDK 8.0 or later from https://get.dot.net and restart " +"Godot." +msgstr "" +".NET çalışma zamanı, özellikle hostfxr, yüklenemiyor.\n" +"Bir proje oluşturmaya/düzenlemeye çalışmak çökmeye yol açacaktır.\n" +"\n" +"Lütfen https://get.dot.net adresinden .NET SDK 8.0 veya üst sürümünü yükleyin " +"ve Godot'u yeniden başlatın." + msgid "%d (%s)" msgstr "%d (%s)" @@ -15543,7 +17137,7 @@ msgstr "" msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" -"Bu düğümün çalışması için, bir GeintiÖrgüsü kaynağı ayarlanmalı veya " +"Bu düğümün çalışması için, bir GezintiÖrgüsü kaynağı ayarlanmalı veya " "oluşturulmalıdır." msgid "" @@ -15556,7 +17150,8 @@ msgstr "" msgid "" "Cannot generate navigation mesh because it belongs to a resource which was " "imported." -msgstr "İçe aktarılmış bir kaynağa ait olduğu için, gezinti örüsü üretilemiyor." +msgstr "" +"İçe aktarılmış bir kaynağa ait olduğu için, gezinti örgüsü üretilemiyor." msgid "" "Cannot generate navigation mesh because the resource was imported from " @@ -15565,14 +17160,14 @@ msgstr "" "Kaynak başka bir türden içe aktarıldığı için, gezinme örgüsü üretilemiyor." msgid "Bake NavigationMesh" -msgstr "GezintiÖrgüsü Pişir" +msgstr "GezintiÖrgüsü Fırınla" msgid "" "Bakes the NavigationMesh by first parsing the scene for source geometry and " "then creating the navigation mesh vertices and polygons." msgstr "" "GezintiÖrgüsü'nü, önce kaynak geometri için sahneyi ayrıştırarak ve ardından " -"gezinti örgüsü köşelerini ve çokgenlerini oluşturarak pişirir." +"gezinti örgüsü köşelerini ve çokgenlerini oluşturarak fırınlar." msgid "Clear NavigationMesh" msgstr "GezintiÖrgüsü'nü temizle" @@ -15662,6 +17257,22 @@ msgstr "Eylem ekle." msgid "Remove action set." msgstr "Eylem kümesini kaldır." +msgid "Remove binding modifier." +msgstr "Bağlayıcı değiştiricisini kaldır." + +msgid "Remove binding modifier" +msgstr "Bağlayıcı değiştiricisini kaldır" + +msgid "Add binding modifier" +msgstr "Bağlayıcı değiştiricisi ekle" + +msgid "Note: modifiers will only be applied if supported on the host system." +msgstr "" +"Not: değiştiriciler yalnızca ana sistemde destekleniyorsa uygulanacaktır." + +msgid "Binding modifiers for:" +msgstr "Şunun için bağlayıcı değiştiricileri:" + msgid "OpenXR Action Map" msgstr "OpenXR Eylem Haritası" @@ -15671,12 +17282,21 @@ msgstr "OpenXR Eylem Haritası Alt Panelini Aç/Kapat" msgid "Remove action from interaction profile" msgstr "Etkileşim profilinden eylemi kaldır" +msgid "Edit binding modifiers" +msgstr "Bağlayıcı değiştiricileri düzenle" + +msgid "Note: This interaction profile requires extension %s support." +msgstr "Not: Bu etkileşim profili %s uzantısı desteği gerektirir." + msgid "Add binding" msgstr "Bağlayıcı ekle" msgid "Remove binding" msgstr "Bağlayıcıyı kaldır" +msgid "Note: This binding path requires extension %s support." +msgstr "Not: Bu bağlayıcı yolu %s uzantısı desteği gerektirir." + msgid "Pose" msgstr "Duruş" @@ -15692,6 +17312,9 @@ msgstr "Bir eylem seçin" msgid "Select an interaction profile" msgstr "Bir etkileşim profili ekle" +msgid "All interaction profiles have been added to the action map." +msgstr "Tüm etkileşim profilleri eylem haritasına eklendi." + msgid "Choose an XR runtime." msgstr "Bir XR çalışma zamanı seçin." @@ -15702,6 +17325,13 @@ msgstr "" "Aynı SubViewport birden fazla OpenXR birleştirme katmanıyla kullanılamaz. " "Bunu önce bulunduğu katmandan temizleyin." +msgid "" +"Cannot set SubViewport on an OpenXR composition layer when using an Android " +"surface." +msgstr "" +"Bir Android Surface kullanılırken OpenXR birleştirme katmanında SubViewport " +"(alt çerçeve) ayarlanamıyor." + msgid "OpenXR composition layers must have an XROrigin3D node as their parent." msgstr "" "OpenXR birleştirme katmanları, üst öge olarak bir XROrigin3D düğümüne sahip " @@ -15720,6 +17350,11 @@ msgstr "" "Sıralama düzeni sıfırdan küçük olmadığı sürece, delgeç işlemi beklendiği gibi " "çalışmayacaktır." +msgid "OpenXR visibility mask must have an XRCamera3D node as their parent." +msgstr "" +"OpenXR görünürlük maskesi, üst öğe olarak bir XRCamera3D düğümüne sahip " +"olmalıdır." + msgid "Package name is missing." msgstr "Paket ismi eksik." @@ -15747,6 +17382,11 @@ msgstr "APK genişletmesi için geçersiz ortak anahtar." msgid "Invalid package name:" msgstr "Geçersiz paket ismi:" +msgid "\"Use Gradle Build\" is required to enable \"Swipe to dismiss\"." +msgstr "" +"\"Kapatmak için kaydır\" seçeneğini etkinleştirmek için \"Gradle Derlemesini " +"Kullan\" seçeneği gereklidir." + msgid "\"Use Gradle Build\" must be enabled to use the plugins." msgstr "" "Eklentileri kullanabilmek için \"Graadle Derlemesi Kullan\" seçeneği aktif " @@ -15761,7 +17401,7 @@ msgid "" "\"Compress Native Libraries\" is only valid when \"Use Gradle Build\" is " "enabled." msgstr "" -"\"Yerel Kitaplıkları Sıkıştır\" seçeneği yalnızca \"Gradle Derlemesini " +"\"Yerel Kütüphaneleri Sıkıştır\" seçeneği yalnızca \"Gradle Derlemesini " "Kullan\" etkinleştirildiğinde geçerlidir." msgid "\"Export AAB\" is only valid when \"Use Gradle Build\" is enabled." @@ -15803,6 +17443,21 @@ msgstr "" "\"Hedef SDK\" sürümü, \"En Küçük SDK\" sürümünden büyük veya ona eşit " "olmalıdır." +msgid "\"Use Gradle Build\" must be enabled to enable \"Show In Android Tv\"." +msgstr "" +"\"Android Tv'de Göster\" 'i etkinleştirmek için \"Gradle Derlemesini Kullan\" " +"etkinleştirilmelidir." + +msgid "\"Use Gradle Build\" must be enabled to enable \"Show As Launcher App\"." +msgstr "" +"\"Başlatıcı Uygulaması Olarak Göster\" 'i etkinleştirmek için \"Gradle " +"Derlemesini Kullan\" etkinleştirilmelidir." + +msgid "\"Use Gradle Build\" must be enabled to disable \"Show In App Library\"." +msgstr "" +"\"Uygulama Kitaplığında Göster\" seçeneğini devre dışı bırakmak için \"Gradle " +"Derlemesini Kullan\" seçeneği etkinleştirilmelidir." + msgid "Select device from the list" msgstr "Listeden aygıt seç" @@ -15831,9 +17486,28 @@ msgid "Error: There was a problem validating the keystore username and password" msgstr "" "Hata: Anahtar deposu kullanıcı adı ve parolasını doğrularken bir sorun oluştu" +msgid "" +"Unable to determine the C# project's TFM, it may be incompatible. The export " +"template only supports '%s'. Make sure the project targets '%s' or consider " +"using gradle builds instead." +msgstr "" +"C# projesinin TFM'si belirlenemiyor, uyumsuz olabilir. Dışa aktarma şablonu " +"yalnızca '%s' 'yi destekler. Projenin '%s' 'yi hedeflediğinden emin olun veya " +"bunun yerine gradle derlemelerini kullanmayı düşünün." + +msgid "" +"C# project targets '%s' but the export template only supports '%s'. Consider " +"using gradle builds instead." +msgstr "" +"C# projesi '%s' 'yi hedefliyor ancak dışa aktarma şablonu yalnızca '%s' 'yi " +"destekliyor. Bunun yerine gradle derlemelerini kullanmayı düşünün." + msgid "Exporting to Android when using C#/.NET is experimental." msgstr "C#/.NET kullanırken Android'e dışa aktarma henüz deneyseldir." +msgid "Gradle build is not supported for the Android editor." +msgstr "Gradle derlemesi Android düzenleyici için desteklenmemektedir." + msgid "Custom Android source template not found." msgstr "Özel Android kaynak şablonu bulunamadı." @@ -15934,9 +17608,37 @@ msgstr "" msgid "Code Signing" msgstr "Kod İmzalama" +msgid "AAB signing is not supported" +msgstr "AAB imzalama desteklenmiyor" + +msgid "Signing debug APK..." +msgstr "APK hata ayıklama sürümü imzalanıyor..." + +msgid "Signing release APK..." +msgstr "APK yayınlama sürümü imzalanıyor..." + msgid "Could not find keystore, unable to export." msgstr "Anahtar deposu bulunamadı, dışa aktarılamadı." +msgid "Unable to sign apk." +msgstr "Apk imzalanamıyor." + +msgid "" +"All 'apksigner' tools located in Android SDK 'build-tools' directory failed " +"to execute. Please check that you have the correct version installed for your " +"target sdk version. The resulting APK is unsigned." +msgstr "" +"Android SDK 'build-tools' klasöründe bulunan tüm 'apksigner' araçlarının " +"çalıştırılması başarısız oldu. Lütfen hedef sdk sürümünüz için doğru sürümün " +"yüklü olup olmadığını kontrol edin. Ortaya çıkan APK imzasızdır." + +msgid "" +"'apksigner' could not be found. Please check that the command is available in " +"the Android SDK build-tools directory. The resulting APK is unsigned." +msgstr "" +"'apksigner' bulunamadı. Lütfen komutun Android SDK build-tools dizininde " +"mevcut olup olmadığını kontrol edin. Ortaya çıkan APK imzasızdır." + msgid "Could not start apksigner executable." msgstr "apksigner uygulaması başlatılamadı." @@ -15950,6 +17652,15 @@ msgstr "" "çıktı:\n" "%s" +msgid "Verifying APK..." +msgstr "APK doğrulanıyor..." + +msgid "Unable to verify signed apk." +msgstr "İmzalı apk doğrulanamıyor." + +msgid "'apksigner' verification of APK failed." +msgstr "APK'nın 'apksigner' doğrulaması başarısız oldu." + msgid "Target folder does not exist or is inaccessible: \"%s\"" msgstr "Hedef klasör mevcut değil veya erişilemiyor: \"%s\"" @@ -16014,6 +17725,12 @@ msgstr "Çıktı taşınıyor" msgid "Unable to copy and rename export file:" msgstr "Dışa aktarma dosyası kopyalanamıyor ve yeniden adlandırılamıyor:" +msgid "Debug export template not found: \"%s\"." +msgstr "Hata ayıklama dışa aktarma şablonu bulunamadı: \"%s\"." + +msgid "Release export template not found: \"%s\"." +msgstr "Yayınlama dışa aktarma şablonu bulunamadı: \"%s\"." + msgid "Creating APK..." msgstr "APK oluşturuluyor..." @@ -16115,12 +17832,6 @@ msgstr "" "İstenilen şablon dosyası, \"%s\", bulunamadı. Şablon arşivinizde eksik " "olabilir." -msgid "ARM64 simulator library, generating from device library." -msgstr "ARM64 simülatör kütüphanesi, cihaz kütüphanesinden üretiliyor." - -msgid "Unable to generate ARM64 simulator library." -msgstr "ARM64 simülatör kütüphanesi üretilemiyor." - msgid "Could not copy a file at path \"%s\" to \"%s\"." msgstr "\"%s\" yolundaki bir dosya \"%s\" konumuna kopyalanamadı." @@ -16166,6 +17877,9 @@ msgstr "C#/.NET kullanırken iOS'a dışa aktarma deneyseldir." msgid "Invalid additional PList content: " msgstr "Geçersiz ek PList içeriği: " +msgid "Metal renderer require iOS 14+." +msgstr "Metal işleyici iOS 14+ gerektirir." + msgid "Identifier is missing." msgstr "Tanımlayıcı eksik." @@ -16198,12 +17912,33 @@ msgstr "Hata Ayıklama Betiği Dışa Aktarma" msgid "Could not open file \"%s\"." msgstr "\"%s\" dosyası açılamadı." +msgid "" +"Mismatching custom export template executable architecture, found \"%s\", " +"expected \"%s\"." +msgstr "" +"Özel dışa aktarma şablonu yürütülebilir mimarisi eşleşmiyor, \"%s\" bulundu, " +"\"%s\" bekleniyor." + msgid "Debug Console Export" msgstr "Hata Ayıklama Uç-birimi Dışa Aktarma" msgid "Could not create console wrapper." msgstr "Uç-birim sarmalayıcısı oluşturulamadı." +msgid "" +"Mismatching custom debug export template executable architecture: found " +"\"%s\", expected \"%s\"." +msgstr "" +"Özel hata ayıklama dışa aktarma şablonu yürütülebilir mimarisi eşleşmiyor: " +"\"%s\" bulundu, \"%s\" bekleniyor." + +msgid "" +"Mismatching custom release export template executable architecture: found " +"\"%s\", expected \"%s\"." +msgstr "" +"Özel yayınlama dışa aktarma şablonu yürütülebilir mimarisi eşleşmiyor: \"%s\" " +"bulundu, \"%s\" bekleniyor." + msgid "Failed to open executable file \"%s\"." msgstr "Çalıştırılabilir dosya açılamadı; \"%s\"." @@ -16455,6 +18190,14 @@ msgstr "" msgid "Could not created symlink \"%s\" -> \"%s\"." msgstr "\"%s\" -> \"%s\" sembolik bağlantısı oluşturulamadı." +msgid "" +"Unable to set Unix permissions for executable \"%s\". Use \"chmod +x\" to set " +"it after transferring the exported .app to macOS or Linux." +msgstr "" +"\"%s\" yürütülebilir dosyası için Unix izinleri ayarlanamıyor. Dışa " +"aktarılan .app dosyasını macOS veya Linux'a aktardıktan sonra ayarlamak için " +"\"chmod +x\" kullanın." + msgid "Could not open \"%s\"." msgstr "\"%s\" açılamadı." @@ -16475,7 +18218,7 @@ msgid "" "Ad-hoc signed applications require the 'Disable Library Validation' " "entitlement to load dynamic libraries." msgstr "" -"Geçici imzalı uygulamalar, dinamik kitaplıkları yüklemek için 'Kitaplık " +"Geçici imzalı uygulamalar, dinamik kütüphaneleri yüklemek için 'Kütüphane " "Doğrulamasını Devre Dışı Bırak' yetkilendirmesini gerektirir." msgid "" @@ -16653,6 +18396,13 @@ msgstr "Kaynakların Değişikliği" msgid "Icon size \"%d\" is missing." msgstr "Simge boyutu \"%d\" eksik." +msgid "" +"Mismatching custom export template executable architecture: found \"%s\", " +"expected \"%s\"." +msgstr "" +"Özel dışa aktarma şablonu yürütülebilir mimarisi eşleşmiyor: \"%s\" bulundu, " +"\"%s\" bekleniyor." + msgid "Failed to rename temporary file \"%s\"." msgstr "\"%s\" geçici dosyasının yeniden adlandırılması başarısız oldu." @@ -16747,9 +18497,9 @@ msgid "" "A SpriteFrames resource must be created or set in the \"Sprite Frames\" " "property in order for AnimatedSprite2D to display frames." msgstr "" -"CanlandırmaResimcik2B'nin kareleri görüntüleyebilmesi için, bir " -"ResimcikKareleri (SpriteFrames) kaynağı oluşturulmalı veya \"Resimcik " -"Kareleri\" (\"Sprite Frames\") özelliğinde ayarlanmalıdır." +"CanlandırmalıResimcik2B'nin (AnimatedSprite2D) kareleri görüntüleyebilmesi " +"için, bir ResimcikKareleri (SpriteFrames) kaynağı oluşturulmalı veya " +"\"Resimcik Kareleri\" (\"Sprite Frames\") özelliğinde ayarlanmalıdır." msgid "" "Only one visible CanvasModulate is allowed per canvas.\n" @@ -16781,6 +18531,18 @@ msgstr "" "Parçacık2B canlandırması, \"Parçacık Canlandırması\" etkinleştirilmiş durumda " "bir CanvasÖgeMalzemesi kullanımını gerektirir." +msgid "" +"Particle trails are only available when using the Forward+ or Mobile " +"renderers." +msgstr "" +"Parçacık izleri yalnızca Forward+ veya Mobile işleyicileri kullanırken " +"kullanılabilir." + +msgid "" +"Particle sub-emitters are not available when using the Compatibility renderer." +msgstr "" +"Uyumluluk işleyicisi kullanılırken parçacık alt yayıcıları kullanılamaz." + msgid "" "A texture with the shape of the light must be supplied to the \"Texture\" " "property." @@ -16808,6 +18570,22 @@ msgstr "" "GezintiBağlantı2B başlangıç konumu, kullanışlı olması için bitiş konumundan " "farklı olmalıdır." +msgid "NavigationObstacle2D does not support negative or zero scaling." +msgstr "NavigationObstacle2D negatif veya sıfır ölçeklendirmeyi desteklemez." + +msgid "" +"The agent radius can only be scaled uniformly. The largest value along the " +"two axes of the global scale will be used to scale the radius. This value may " +"change in unexpected ways when the node is rotated." +msgstr "" +"Vekil yarıçapı yalnızca düzenli olarak ölçeklendirilebilir. Yarıçapı " +"ölçeklendirmek için genel ölçeğin iki ekseni boyunca en büyük değer " +"kullanılacaktır. Düğüm döndürüldüğünde bu değer beklenmedik şekillerde " +"değişebilir." + +msgid "Skew has no effect on the agent radius." +msgstr "Yamultmanın vekil yarıçapı üzerinde bir etkisi yoktur." + msgid "" "A NavigationMesh resource must be set or created for this node to work. " "Please set a property or draw a polygon." @@ -16869,9 +18647,9 @@ msgid "" msgstr "" "CollisionShape2D (ÇarpışmaŞekil2B) yalnızca CollisionObject2D " "(ÇarpışmaŞekil2B) 'den türetilmiş bir düğüme çarpışma şekli vermeye yarar.\n" -"Lütfen bunu sadece Area2D (Alan2B), StaticBody2D (DuranCisim2B), RigidBody2D " -"(KatıCisim2B), CharacterBody2D (HareketliCisim2B), vb. ögelerin alt ögesi " -"olarak ve onlara bir şekil vermek için kullanın." +"Lütfen bunu sadece Area2D (Alan2B), StaticBody2D (DurağanCisim2B), " +"RigidBody2D (KatıCisim2B), CharacterBody2D (HareketliCisim2B), vb. ögelerin " +"alt ögesi olarak ve onlara bir şekil vermek için kullanın." msgid "" "A shape must be provided for CollisionShape2D to function. Please create a " @@ -16880,6 +18658,14 @@ msgstr "" "ÇarpışmaŞekil2B'nin işlevini yerine getirmesi için ona bir şekil verilmesi " "gerekir. Lütfen onun için bir şekil kaynağı oluşturun!" +msgid "" +"The CollisionShape2D node has limited editing options for polygon-based " +"shapes. Consider using a CollisionPolygon2D node instead." +msgstr "" +"CollisionShape2D düğümü, çokgen tabanlı şekiller için sınırlı düzenleme " +"seçeneklerine sahiptir. Bunun yerine CollisionPolygon2D düğümünü kullanmayı " +"düşünün." + msgid "Node A and Node B must be PhysicsBody2Ds" msgstr "Düğüm A ve Düğüm B, birer FizikCisim2B olmalıdır" @@ -17031,10 +18817,15 @@ msgid "" "CPUParticles3D animation requires the usage of a StandardMaterial3D whose " "Billboard Mode is set to \"Particle Billboard\"." msgstr "" -"CPUParçacık3B (CPUParticle3D) canlandırması, Tabela Kipi \"Parçacık " +"CPUParçacığı3B (CPUParticle3D) canlandırması, Tabela Kipi \"Parçacık " "Tabelası\" olarak belirlenmiş bir StandartMalzeme3B (StandardMaterial3D) " "kullanımını gerektirir." +msgid "Decals are only available when using the Forward+ or Mobile renderers." +msgstr "" +"Çıkartmalar yalnızca İleri+ veya Mobil işleyiciler kullanılırsa " +"kullanılabilir olur." + msgid "" "The decal has no textures loaded into any of its texture properties, and will " "therefore not be visible." @@ -17064,6 +18855,9 @@ msgstr "" "çıkartmanın hiçbir katmanda nesneleri boyamayacağı anlamına gelir.\n" "Bunu çözmek için, Kaldırma Maskesi özelliğinde en az bir biti etkinleştirin." +msgid "Fog Volumes are only visible when using the Forward+ renderer." +msgstr "Sis Hacimleri, yalnızca İleri+ işleyici kullanılırken görünür olur." + msgid "" "Fog Volumes need volumetric fog to be enabled in the scene's Environment in " "order to be visible." @@ -17110,15 +18904,22 @@ msgstr "" "Kuyruk izleri (Trail) etkin, ama bir ya da daha fazla örgü malzemesi kayıp, " "veya kuyruk izi işleme içi ayarlanmamış." +msgid "" +"Particle sub-emitters are only available when using the Forward+ or Mobile " +"renderers." +msgstr "" +"Parçacık alt-yayıcıları sadece İleri+ veya Mobil işleyiciler ile çalışırken " +"kullanılabilirler." + msgid "" "The Bake Mask has no bits enabled, which means baking will not produce any " "collision for this GPUParticlesCollisionSDF3D.\n" "To resolve this, enable at least one bit in the Bake Mask property." msgstr "" -"Pişirme Maskesinde hiç bir etkin bit yok, bunun anlami bu pişirme sonucunda, " -"bu GPUParticlesCollisionSDF3D (3B GPU parçacık çarpışması SDF) için herhangi " -"bir çarpışma üretilmeyecektir.\n" -"Bunu çözmek için, Pişirme Maskesi özelliğinde en az bir biti etkinleştirin." +"Fırınlama Maskesinde hiç bir etkin bit yok, bunun anlamı bu fırınlama " +"sonucunda, bu GPUParticlesCollisionSDF3D (3B GPU parçacık çarpışması SDF) " +"için herhangi bir çarpışma üretilmeyecektir.\n" +"Bunu çözmek için, Fırınlama Maskesi özelliğinde en az bir biti etkinleştirin." msgid "A light's scale does not affect the visual size of the light." msgstr "Bir ışığın ölçeği, ışığın görsel boyutunu etkilemez." @@ -17126,6 +18927,13 @@ msgstr "Bir ışığın ölçeği, ışığın görsel boyutunu etkilemez." msgid "Projector texture only works with shadows active." msgstr "Yansıtma dokuları sadece gölgeler etkin ise işe yarar." +msgid "" +"Projector textures are not supported when using the Compatibility renderer " +"yet. Support will be added in a future release." +msgstr "" +"Uyumluluk işleyici kullanılırken, yansıtma dokuları henüz desteklenmiyor. " +"Destek gelecekteki bir sürümde eklenecektir." + msgid "A SpotLight3D with an angle wider than 90 degrees cannot cast shadows." msgstr "" "3B Sahne Işığı (SpotLight3B), 90 dereceden geniş açılı olursa gölge " @@ -17155,6 +18963,46 @@ msgstr "Sonda Hacimleri Üretiliyor" msgid "Generating Probe Acceleration Structures" msgstr "Sonda İvme Yapıları Oluşturuluyor" +msgid "" +"Lightmaps can only be baked from a GPU that supports the RenderingDevice " +"backends.\n" +"Your GPU (%s) does not support RenderingDevice, as it does not support " +"Vulkan, Direct3D 12, or Metal.\n" +"Lightmap baking will not be available on this device, although rendering " +"existing baked lightmaps will work." +msgstr "" +"Işık haritaları yalnızca RenderingDevice arka uçlarını destekleyen bir " +"GPU'dan fırınlanabilir.\n" +"GPU'nuz (%s) Vulkan, Direct3D 12 veya Metal'i desteklemediği için " +"RenderingDevice'ı da desteklemiyor.\n" +"Işık haritası fırınlama bu cihazda kullanılamayacak, ancak mevcut fırınlanmış " +"ışık haritalarının işlenmesi çalışacaktır." + +msgid "" +"The lightmap has no baked shadowmask textures. Please rebake with the " +"Shadowmask Mode set to anything other than None." +msgstr "" +"Işık haritasında fırınlanmış gölge maskesi dokuları yok. Lütfen Gölge Maskesi " +"Modunu, \"Yok\" dışında bir değere ayarlayarak yeniden oluşturun." + +msgid "" +"Lightmaps cannot be baked on %s. Rendering existing baked lightmaps will " +"still work." +msgstr "" +"Işık haritaları %s üzerinde fırınlanamaz. Mevcut fırınlanmış ışık " +"haritalarının işlenmesi yine de çalışacaktır." + +msgid "" +"Lightmaps cannot be baked, as the `lightmapper_rd` module was disabled at " +"compile-time. Rendering existing baked lightmaps will still work." +msgstr "" +"`lightmapper_rd` modülü derleme zamanında devre dışı bırakıldığı için ışık " +"haritaları fırınlanamaz. Mevcut fırınlanmış ışık haritalarının işlenmesi yine " +"de çalışacaktır." + +msgid "Forward axis and primary rotation axis must not be parallel." +msgstr "İleri eksen ile birincil dönüş ekseni paralel olmamalıdır." + msgid "" "The NavigationAgent3D can be used only under a Node3D inheriting parent node." msgstr "" @@ -17168,6 +19016,25 @@ msgstr "" "3B Gezinti Bağlantısı'nın (NavigationLink3D) başlangıç konumu, kullanışlı " "olması için bitiş konumundan farklı olmalıdır." +msgid "" +"NavigationObstacle3D only takes global rotation around the y-axis into " +"account. Rotations around the x-axis or z-axis might lead to unexpected " +"results." +msgstr "" +"NavigationObstacle3D yalnızca y-ekseni etrafındaki genel dönüşü dikkate alır. " +"x-ekseni veya z ekseni etrafındaki dönüşler beklenmedik sonuçlara yol " +"açabilir." + +msgid "NavigationObstacle3D does not support negative or zero scaling." +msgstr "NavigationObstacle3D negatif veya sıfır ölçeklendirmeyi desteklemez." + +msgid "" +"The agent radius can only be scaled uniformly. The largest scale value along " +"the three axes will be used." +msgstr "" +"Vekil yarıçapı yalnızca düzenli olarak ölçeklendirilebilir. Üç eksen " +"üzerinden en büyük ölçek değeri kullanılacaktır." + msgid "" "Occlusion culling is disabled in the Project Settings, which means occlusion " "culling won't be performed in the root viewport.\n" @@ -17184,10 +19051,10 @@ msgid "" "occluder meshes for this OccluderInstance3D.\n" "To resolve this, enable at least one bit in the Bake Mask property." msgstr "" -"Pişirme Maskesinin hiçbir biti etkin değil, bu da fırınlamanın bu 3B " +"Fırınlama Maskesinin hiçbir biti etkin değil, bu da fırınlamanın bu 3B " "Perdeleyici Örneği (OccluderInstance3D) için herhangi bir perdeleme örgüsü " "üretmeyeceği anlamına gelir.\n" -"Bunu çözmek için, Pişirme Maskesi özelliğinde en az bir biti etkinleştirin." +"Bunu çözmek için, Fırınlama Maskesi özelliğinde en az bir biti etkinleştirin." msgid "" "No occluder mesh is defined in the Occluder property, so no occlusion culling " @@ -17200,8 +19067,9 @@ msgstr "" "Perdeleyici Örneği (OccluderInstance3D) kullanılarak hiçbir perdeleme-" "kaldırma yapılmayacaktır.\n" "Bunu çözmek için, Perdeleyici özelliğini ilkel perdeleme türlerinden birine " -"ayarlayın, veya sahnenin örgülerini pişirirken OccluderInstance3D'yi seçin ve " -"3B düzenleyici çereçevesinde üst kısımdaki Perdeleyici Pişir düğmesine basın." +"ayarlayın, veya sahnenin örgülerini fırınlarken OccluderInstance3D'yi seçin " +"ve 3B düzenleyici çereçevesinde üst kısımdaki Perdeleyici Fırınla düğmesine " +"basın." msgid "" "The occluder mesh has less than 3 vertices, so no occlusion culling will be " @@ -17213,7 +19081,7 @@ msgstr "" "(OccluderInstance3D) kullanılarak perdeleme-kaldırma işlemi " "gerçekleştirilmeyecektir.\n" "Uygun bir perdeleme örgüsü üretmek için, OccluderInstance3D'yi seçin ve sonra " -"3B düzenleyici çerçevesinin üst kısmındaki Perdeleyicileri Pişir düğmesini " +"3B düzenleyici çerçevesinin üst kısmındaki Perdeleyicileri Fırınla düğmesini " "kullanın." msgid "" @@ -17270,7 +19138,7 @@ msgid "" msgstr "" "ÇarpışmaÇokgen3B (CollisionPolygon3D), yalnızca ÇarpışmaNesne3B " "(CollisionObject3D)'den türetilmiş bir düğüme çarpışma şekli vermeye yarar.\n" -"Lütfen bunu, yalnızca Alan3B (Area3D), DuranCisim3B (StaticBody3D), " +"Lütfen bunu, yalnızca Alan3B (Area3D), DurağanCisim3B (StaticBody3D), " "KatıCisim3B (RigidBody3D), KarakterCisim3B (CharacterBody3D), vb. düğümlere " "bir şekil vermek amacıyla, onların alt-ögesi olarak kullanın." @@ -17298,7 +19166,7 @@ msgid "" msgstr "" "ÇarpışmaŞekil3B (CollisionShape3D), yalnızca ÇarpışmaNesne3B " "(CollisionObject3D)'den türetilmiş bir düğüme, çarpışma şekli vermeye yarar.\n" -"Lütfen bunu, yalnızca Alan3B (Area3D), DurgunCisim3B (StaticBody3D), " +"Lütfen bunu, yalnızca Alan3B (Area3D), DurağanCisim3B (StaticBody3D), " "KatıCisim3B (RigidBody3D), KarakterCisim3B (CharacterBody3D), vb. düğümlere " "bir şekil vermek amacıyla, onların alt-ögesi olarak kullanın." @@ -17316,8 +19184,8 @@ msgid "" "set to FREEZE_MODE_STATIC)." msgstr "" "Çarpışma için kullanılması halinde, ConcavePolygonShape3D düğümü, " -"StaticBody3D gibi statik CollisionObject3D düğümleriyle çalışmak üzere " -"tasarlanmıştır.\n" +"DurağanCisim3B (StaticBody3D) gibi durağan CollisionObject3D düğümleriyle " +"çalışmak üzere tasarlanmıştır.\n" "Muhtemelen %s'ler için iyi şekilde davranmayacaktır (dondurulup ve " "freeze_mode (donma kipi) değerinin FREEZE_MODE_STATIC olarak ayarlanması " "durumu hariç)." @@ -17334,8 +19202,8 @@ msgid "" "It will likely not behave well for CharacterBody3Ds." msgstr "" "Çarpışma için kullanılması halinde, ConcavePolygonShape3D düğümü, " -"StaticBody3D gibi statik CollisionObject3D düğümleriyle çalışmak üzere " -"tasarlanmıştır.\n" +"DurağanCisim3B (StaticBody3D) gibi durağan CollisionObject3D düğümleriyle " +"çalışmak üzere tasarlanmıştır.\n" "CharacterBody3D'ler için muhtemelen iyi şekilde davranmayacaktır." msgid "" @@ -17401,6 +19269,9 @@ msgstr "" "\"Uzak Yol\" özelliğinin çalışması için, geçerli bir 3B Düğüme (Node3D) veya " "bir 3B düğümden türetilmiş bir ögeye işaret etmelidir." +msgid "There is no child Skeleton3D!" +msgstr "Alt-öge olan bir İskelet3B yok!" + msgid "Skeleton3D node not set! SkeletonModifier3D must be child of Skeleton3D." msgstr "" "Skeleton3D düğümü ayarlanmadı! SkeletonModifier3D, Skeleton3D'nin alt-ögesi " @@ -17409,6 +19280,9 @@ msgstr "" msgid "This body will be ignored until you set a mesh." msgstr "Bu cisim, siz bir örgü ayarlayana kadar yok sayılır." +msgid "Parent node should be a SpringBoneSimulator3D node." +msgstr "Üst düğüm bir SpringBoneSimulator3D düğümü olmalıdır." + msgid "" "A SpriteFrames resource must be created or set in the \"Sprite Frames\" " "property in order for AnimatedSprite3D to display frames." @@ -17476,12 +19350,19 @@ msgstr "Uzaklık Alanı Oluşturuluyor" msgid "Finishing Plot" msgstr "Çizdirme Bitiriliyor" +msgid "" +"VoxelGI nodes are not supported when using the Compatibility renderer yet. " +"Support will be added in a future release." +msgstr "" +"Uyumluluk işleyicisi kullanılırken, VoxelGI düğümleri henüz desteklenmiyor. " +"Destek gelecekteki bir sürümde eklenecektir." + msgid "" "No VoxelGI data set, so this node is disabled. Bake static objects to enable " "GI." msgstr "" "Hiç VoxelGI veri kümesi yok, bu nedenle bu düğüm devre dışı bırakıldı. GI'yi " -"etkinleştirmek için statik nesneleri pişirin." +"etkinleştirmek için durağan nesneleri fırınlayın." msgid "" "To have any visible effect, WorldEnvironment requires its \"Environment\" " @@ -17562,6 +19443,15 @@ msgstr "" msgid "Copy this constructor in a script." msgstr "Bu yapıcı yöntemi, bir betik içinde kopyala." +msgid "Load Color Palette" +msgstr "Renk Paletini Yükle" + +msgid "Save Color Palette" +msgstr "Renk Paletini Kaydet" + +msgid "Quick Load" +msgstr "Hızlı Yükleme" + msgid "Switch between hexadecimal and code values." msgstr "Onaltılık (hexadecimal) ve kod değerleri arasında geçiş yapın." @@ -17608,6 +19498,15 @@ msgstr "" "Geçerli yazı tipi, bu Etiketin (Label) metninde kullanılan bir veya daha " "fazla karakterin işlenmesini desteklemiyor." +msgid "" +"The current theme style has shadows and/or rounded corners for popups, but " +"those won't display correctly if \"display/window/per_pixel_transparency/" +"allowed\" isn't enabled in the Project Settings, nor if it isn't supported." +msgstr "" +"Mevcut tema tarzında açılır pencereler için gölgeler ve/veya yuvarlatılmış " +"köşeler var, ancak Proje Ayarları'nda \"display/window/per_pixel_transparency/" +"allowed\" etkin değilse veya desteklenmiyorsa bunlar düzgün görüntülenmez." + msgid "If \"Exp Edit\" is enabled, \"Min Value\" must be greater than 0." msgstr "\"Üstel Düzenleme\" etkinse, \"En küçük Değer\" 0'dan büyük olmalıdır." @@ -17795,6 +19694,12 @@ msgstr "Tüm Yüzeyleri Kullan" msgid "Surface Index" msgstr "Yüzey İndeksi" +msgid "Division by zero error." +msgstr "Sıfıra bölme hatası." + +msgid "Modulo by zero error." +msgstr "Sıfıra göre mod alma hatası." + msgid "" "Invalid number of arguments when calling stage function '%s', which expects " "%d arguments." @@ -17870,6 +19775,16 @@ msgstr "Girdi değişkeninden sonra ',' veya ')' bekleniyordu." msgid "Varying may not be assigned in the '%s' function." msgstr "Değişen, '%s' fonksiyonunda atanamayabilir." +msgid "Varying with '%s' data type may only be assigned in the '%s' function." +msgstr "'%s' veri tipli değişen, sadece '%s' fonksiyonu içinden atanabilir." + +msgid "" +"Varyings which assigned in '%s' function may not be reassigned in '%s' or " +"'%s'." +msgstr "" +"'%s' fonksiyonu içinde atanan değişenler, '%s' veya '%s' fonksiyonunda " +"yeniden atanamaz." + msgid "'%s' cannot be used within the '%s' processor function." msgstr "'%s', '%s' işlemci fonksiyonu içerisinde kullanılamaz." @@ -17928,6 +19843,9 @@ msgstr "Pozitif bir tamsayı sabiti bekleniyordu." msgid "Invalid data type for the array." msgstr "Dizi için geçersiz veri tipi." +msgid "Array size mismatch. Expected %d elements (found %d)." +msgstr "Dizi boyutu uyuşmazlığı. %d eleman bekleniyordu (bulunan %d)." + msgid "Expected array initialization." msgstr "Dizinin başlatılması bekleniyordu." @@ -17981,6 +19899,12 @@ msgstr "" "kısımlarında bir yerde 'uniform sampler2D %s: hint_%s, filter_linear_mipmap;' " "kodunu aynen ekleyin." +msgid "Varying with '%s' data type may only be used in the '%s' function." +msgstr "'%s' veri tipli değişen, yalnızca '%s' fonksiyonunda kullanılabilir." + +msgid "Varying '%s' must be assigned in the '%s' function first." +msgstr "'%s' değişeni, ilk olarak '%s' fonksiyonu içinden atanmalıdır." + msgid "Can't use function as identifier: '%s'." msgstr "Fonksiyon, bir tanımlayıcı olarak kullanılamaz: '%s'." @@ -18011,9 +19935,6 @@ msgstr "'%s' türündeki bir nesne, dizine eklenemez." msgid "Invalid base type for increment/decrement operator." msgstr "Artırma/azaltma işleci için geçersiz temel tip." -msgid "Invalid use of increment/decrement operator in a constant expression." -msgstr "Sabit bir ifade içindeki artırma/azaltma işlecinin geçersiz kullanımı." - msgid "Invalid token for the operator: '%s'." msgstr "İşleç için geçersiz simge: '%s'." @@ -18068,6 +19989,9 @@ msgstr "" msgid "Expected a boolean expression." msgstr "Bir mantık ifadesi (boolean) bekleniyordu." +msgid "Expected an integer or unsigned integer expression." +msgstr "Bir tamsayı veya işaretsiz tamsayı ifadesi bekleniyordu." + msgid "Cases must be defined before default case." msgstr "" "Varsayılan durumdan, \"default\", önce başka durumlar, \"case\", tanımlanmalı." @@ -18078,6 +20002,9 @@ msgstr "Varsayılan durum, \"default\", yalnızca bir defa tanımlanmalı." msgid "'%s' must be placed within a '%s' block." msgstr "'%s', bir '%s' bloğunun içine yerleştirilmelidir." +msgid "Expected an unsigned integer constant." +msgstr "İşaretsiz bir tamsayı sabiti bekleniyor." + msgid "Expected an integer constant." msgstr "Bir tamsayı sabiti bekleniyor." @@ -18090,15 +20017,24 @@ msgstr "'%s' 'nin, '%s' işlemci fonksiyonunda kullanımı hatalı." msgid "Expected '%s' with an expression of type '%s'." msgstr "'%s' bekleniyordu ('%s' tipinde bir ifade ile)." +msgid "'%s' function cannot return a value." +msgstr "'%s' fonksiyonu bir değer döndüremez." + msgid "Expected return with an expression of type '%s'." msgstr "'%s' tipinde bir ifade ile dönüş bekleniyordu." +msgid "Use of '%s' is not supported for the '%s' shader type." +msgstr "'%s' kullanımı, '%s' gölgelendirici türü için desteklenmiyor." + msgid "'%s' is not allowed outside of a loop or '%s' statement." msgstr "'%s' 'e bir döngünün dışında veya '%s' ifadesinde izin verilmez." msgid "'%s' is not allowed outside of a loop." msgstr "'%s' 'e bir döngü dışında izin verilmez." +msgid "The middle expression is expected to have a boolean data type." +msgstr "Ortadaki ifadenin bir mantıksal veri tipinde olması bekleniyor." + msgid "The left expression is expected to be a variable declaration." msgstr "Sol ifadenin bir değişken bildirimi olması bekleniyor." @@ -18216,6 +20152,15 @@ msgstr "Tamsayı sabitinden sonra ',' bekleniyordu." msgid "Expected an integer constant after ','." msgstr "',' den sonra bir tamsayı sabiti bekleniyor." +msgid "Enum hint is for '%s' only." +msgstr "Numaralandırma ipucu yalnızca '%s' içindir." + +msgid "Expected a string constant." +msgstr "Bir dize sabiti bekleniyordu." + +msgid "Expected ',' or ')' after string constant." +msgstr "Dize sabitinden sonra ',' veya ')' bekleniyordu." + msgid "Can only specify '%s' once." msgstr "'%s' yalnızca bir kez belirtilebilir." @@ -18225,6 +20170,13 @@ msgstr "Örneğin indeksi negatif olamaz." msgid "Allowed instance uniform indices must be within [0..%d] range." msgstr "İzin verilen örnek düzenli dizinleri [0..%d] aralığında olmalıdır." +msgid "" +"'hint_normal_roughness_texture' is only available when using the Forward+ " +"renderer." +msgstr "" +"'hint_normal_roughness_texture' seçeneği sadece İleri+ işleyici kullanırken " +"kullanılabilir olur." + msgid "'hint_normal_roughness_texture' is not supported in '%s' shaders." msgstr "'hint_normal_roughness_texture', '%s' gölgelendiricilerde desteklenmez." @@ -18310,6 +20262,9 @@ msgstr "" msgid "Expected an identifier after type." msgstr "Tipten sonra bir tanımlayıcıyı bekleniyor." +msgid "'%s' qualifier cannot be used with a function return type." +msgstr "'%s' niteleyicisi bir fonksiyon dönüş tipiyle birlikte kullanılamaz." + msgid "" "The '%s' qualifier cannot be used within a function parameter declared with " "'%s'." @@ -18341,6 +20296,18 @@ msgstr "Fonksiyona başlamak için bir '{' bekleniyor." msgid "Expected at least one '%s' statement in a non-void function." msgstr "Boş (void) olmayan bir fonksiyonda, en az bir '%s' ifadesi bekleniyor." +msgid "" +"Varying with integer data type must be declared with `%s` interpolation " +"qualifier." +msgstr "" +"Tamsayı veri tipindeki Değişen `%s` ara değerleme niteleyicisiyle " +"bildirilmelidir." + +msgid "Too many varyings used in shader (%d used, maximum supported is %d)." +msgstr "" +"Gölgelendiricide çok fazla değişen kullanıldı (%d kullanıldı, desteklenen en " +"fazla değer %d)." + msgid "uniform buffer" msgstr "Düzenli (uniform) arabelleği" @@ -18377,12 +20344,18 @@ msgstr "'##' işareti, makro genişletmesinin başında bulunmamalıdır." msgid "'##' must not appear at end of macro expansion." msgstr "'##' işareti, makro genişletmesinin sonunda bulunmamalıdır." +msgid "Unmatched '%s' directive." +msgstr "Eşleşmeyen '%s' yönergesi." + msgid "Missing condition." msgstr "Eksik koşul." msgid "Condition evaluation error." msgstr "Koşul değerlendirme hatası." +msgid "Invalid '%s' directive." +msgstr "Geçersiz '%s' yönergesi." + msgid "Shader include file does not exist:" msgstr "Gölgelendirici içerme dosyası mevcut değil:" @@ -18402,6 +20375,9 @@ msgstr "Döngüsel içerme bulundu" msgid "Shader max include depth exceeded." msgstr "Gölgelendirici en büyük içerme derinliği aşıldı." +msgid "Cannot use '%s' on built-in define." +msgstr "Yerleşik tanımlamada '%s' kullanılamaz." + msgid "Macro expansion limit exceeded." msgstr "Makro genişletme limiti aşıldı." diff --git a/engine/editor/translations/editor/uk.po b/engine/editor/translations/editor/uk.po index d0ff0994..7418559b 100644 --- a/engine/editor/translations/editor/uk.po +++ b/engine/editor/translations/editor/uk.po @@ -54,13 +54,15 @@ # Максим Горпиніч <mgorpinic2005@gmail.com>, 2024. # plsnotascii <john-city-revert@duck.com>, 2025. # ogyrec <ogyrec.off@gmail.com>, 2025. +# Максим Горпиніч <maksimgorpinic2005a@gmail.com>, 2025. +# Mister Ky <afanasievsergiy3524@gmail.com>, 2025. msgid "" msgstr "" "Project-Id-Version: Ukrainian (Godot Engine)\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2025-01-26 10:28+0000\n" -"Last-Translator: ogyrec <ogyrec.off@gmail.com>\n" +"PO-Revision-Date: 2025-02-21 19:26+0000\n" +"Last-Translator: Максим Горпиніч <maksimgorpinic2005a@gmail.com>\n" "Language-Team: Ukrainian <https://hosted.weblate.org/projects/godot-engine/" "godot/uk/>\n" "Language: uk\n" @@ -69,7 +71,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: Weblate 5.10-dev\n" +"X-Generator: Weblate 5.10.1-dev\n" msgid "Main Thread" msgstr "Головний потік" @@ -426,6 +428,9 @@ msgstr "Показувати приховане" msgid "Swap Input Direction" msgstr "Змінити напрям введення" +msgid "Start Unicode Character Input" +msgstr "Розпочніть введення символів Unicode" + msgid "Invalid input %d (not passed) in expression" msgstr "Некоректні вхідні дані %d (не передано) у виразі" @@ -669,6 +674,35 @@ msgstr "Змінити тривалість анімації" msgid "Change Animation Loop" msgstr "Змінити цикл анімації" +msgid "" +"Can't change loop mode on animation instanced from an imported scene.\n" +"\n" +"To change this animation's loop mode, navigate to the scene's Advanced Import " +"settings and select the animation.\n" +"You can then change the loop mode from the inspector menu." +msgstr "" +"Неможливо змінити режим циклу для анімації, створеної з імпортованої сцени. \n" +"\n" +"Щоб змінити режим циклу цієї анімації, перейдіть до розширених налаштувань " +"імпорту сцени та виберіть анімацію. \n" +"Потім ви можете змінити режим циклу з меню інспектора." + +msgid "Can't change loop mode on animation instanced from an imported resource." +msgstr "" +"Неможливо змінити режим циклу для анімації, створеної з імпортованого ресурсу." + +msgid "" +"Can't change loop mode on animation embedded in another scene.\n" +"\n" +"You must open this scene and change the animation's loop mode from there." +msgstr "" +"Неможливо змінити режим циклу для анімації, вбудованої в іншу сцену.\n" +"\n" +"Ви повинні відкрити цю сцену та змінити режим циклу анімації звідти." + +msgid "Can't change loop mode on animation embedded in another resource." +msgstr "Неможливо змінити режим циклу для анімації, вбудованої в інший ресурс." + msgid "Property Track..." msgstr "Доріжка Властивостей..." @@ -1062,6 +1096,15 @@ msgid "Group tracks by node or display them as plain list." msgstr "" "Групувати доріжки за вузлами або показувати їх у форматі простого списку." +msgid "Apply snapping to timeline cursor." +msgstr "Застосувати прив’язку до курсору шкали часу." + +msgid "Apply snapping to selected key(s)." +msgstr "Застосувати прив’язку до вибраних клавіш." + +msgid "Apply snapping to the nearest integer FPS." +msgstr "Застосуйте прив’язку до найближчого цілого числа FPS." + msgid "Animation step value." msgstr "Значення кроку анімації." @@ -1282,12 +1325,75 @@ msgstr "Позначити все/Скасувати позначення" msgid "Animation Change Keyframe Time" msgstr "Змінити час ключового кадру анімації" +msgid "Marker name is read-only in the inspector." +msgstr "Назва маркера доступна лише для читання в інспекторі." + +msgid "" +"A marker's name can only be changed by right-clicking it in the animation " +"editor and selecting \"Rename Marker\", in order to make sure that marker " +"names are all unique." +msgstr "" +"Назву маркера можна змінити, лише клацнувши його правою кнопкою миші в " +"редакторі анімації та вибравши «Перейменувати маркер», щоб переконатися, що " +"всі назви маркерів унікальні." + +msgid "Insert Marker..." +msgstr "Вставити маркер..." + +msgid "Rename Marker" +msgstr "Перейменувати маркер" + +msgid "Delete Marker(s)" +msgstr "Видалити маркер(и)" + +msgid "Show All Marker Names" +msgstr "Показати всі назви маркерів" + +msgid "Marker:" +msgstr "Маркер:" + +msgid "Animation Move Markers" +msgstr "Маркери переміщення анімації" + +msgid "Animation Delete Markers" +msgstr "Маркери видалення анімації" + +msgid "Marker '%s' already exists!" +msgstr "Маркер \"%s\" вже існує!" + +msgid "Add Marker Key" +msgstr "Додати ключ маркера" + +msgid "Empty marker names are not allowed." +msgstr "Порожні назви маркерів не допускаються." + +msgid "Insert Marker" +msgstr "Вставити маркер" + +msgid "Marker Name" +msgstr "Назва маркера" + +msgid "Marker Color" +msgstr "Колір маркера" + msgid "Close" msgstr "Закрити" msgid "Error!" msgstr "Помилка!" +msgid "Change Marker Name:" +msgstr "Змінити назву маркера:" + +msgid "Edit Marker Color" +msgstr "Редагувати колір маркера" + +msgid "Multi Edit Marker Color" +msgstr "Колір маркера мультиредагування" + +msgid "Animation Change Marker Time" +msgstr "Час маркера зміни анімації" + msgid "Add Audio Track Clip" msgstr "Додати кліп звукової доріжки" @@ -1321,6 +1427,12 @@ msgstr[0] "%d з %d збіг" msgstr[1] "%d з %d збіги" msgstr[2] "%d з %d збігів" +msgid "Hide Replace" +msgstr "Сховати Замінити" + +msgid "Show Replace" +msgstr "Показати Замінити" + msgid "Find" msgstr "Знайти" @@ -1354,7 +1466,7 @@ msgstr "Пробіли" msgctxt "Indentation" msgid "Tabs" -msgstr "Tabs" +msgstr "Вкладки" msgid "Toggle Scripts Panel" msgstr "Перемкнути панель скриптів" @@ -1375,7 +1487,14 @@ msgid "Warnings" msgstr "Попередження" msgid "Zoom factor" -msgstr "Зум" +msgstr "Коефіцієнт масштабування" + +msgid "" +"%sMouse wheel, %s/%s: Finetune\n" +"%s: Reset" +msgstr "" +"%sКолесо миші, %s/%s: тонке налаштування\n" +"%s: скинути" msgid "Line and column numbers." msgstr "Номери рядків і позицій." @@ -1537,6 +1656,12 @@ msgstr "Створити новий %s" msgid "No results for \"%s\"." msgstr "Нічого не знайдено для «%s»." +msgid "Script path: %s" +msgstr "Шлях сценарію: %s" + +msgid "The script will run in the editor." +msgstr "Сценарій запуститься в редакторі." + msgid "This class is marked as deprecated." msgstr "Цей клас позначено як застарілий." @@ -1567,6 +1692,9 @@ msgstr "Опис:" msgid "Remote %s:" msgstr "Віддалений %s:" +msgid "Session %d" +msgstr "Сесія %d" + msgid "Debugger" msgstr "Засіб діагностики" @@ -1597,6 +1725,15 @@ msgstr "" msgid "Toggle Visibility" msgstr "Перемкнути видимість" +msgid "Expression to evaluate" +msgstr "Вираз для оцінки" + +msgid "Clear on Run" +msgstr "Очистити під час запуску" + +msgid "Evaluate" +msgstr "Оцініть" + msgid "Clear" msgstr "Очистити" @@ -1642,6 +1779,9 @@ msgstr "Зупинити" msgid "Start" msgstr "Початок" +msgid "Autostart" +msgstr "Автозапуск" + msgid "Measure:" msgstr "Вимірювати:" @@ -1798,6 +1938,9 @@ msgstr "Розгорнути все" msgid "Collapse All" msgstr "Згорнути все" +msgid "Evaluator" +msgstr "Оцінювач" + msgid "Profiler" msgstr "Профайлер" @@ -1927,6 +2070,12 @@ msgstr "" msgid "Cannot remove:" msgstr "Неможливо вилучити:" +msgid "Files to be deleted:" +msgstr "Файли для видалення:" + +msgid "Dependencies of files to be deleted:" +msgstr "Залежності файлів, які потрібно видалити:" + msgid "Error loading:" msgstr "Помилка завантаження:" @@ -1963,15 +2112,27 @@ msgstr "Ресурси без явної власності:" msgid "Name cannot be empty." msgstr "Назва не може бути пустою." +msgid "File name can't end with /." +msgstr "Назва файлу не може закінчуватися на /." + +msgid "File name cannot be empty." +msgstr "Назва файлу не може бути пустою." + msgid "Folder name cannot be empty." msgstr "Ім'я теки не може бути порожнім." +msgid "File name contains invalid characters." +msgstr "Назва файлу містить неприпустимі символи." + msgid "Folder name contains invalid characters." msgstr "Надане ім'я містить некоректні символи." msgid "File name begins with a dot." msgstr "Назва файлу починається з крапки." +msgid "Folder name begins with a dot." +msgstr "Назва папки починається з крапки." + msgid "File with that name already exists." msgstr "Файл із такою назвою вже існує." @@ -1983,6 +2144,19 @@ msgstr "" "Використання похилих рисок у назвах тек призведе до рекурсивного створення " "підтек." +msgid "" +"Using slashes in path will create the file in subfolder, creating new " +"subfolders if necessary." +msgstr "" +"Використання скісної риски в шляху створить файл у підтеці, створюючи нові " +"підтеки, якщо необхідно." + +msgid "File name is valid." +msgstr "Назва файлу дійсна." + +msgid "Base path: %s" +msgstr "Базовий шлях: %s" + msgid "Folder name is valid." msgstr "Некоректна назва теки." @@ -2074,8 +2248,8 @@ msgstr "%s (вже існує)" msgid "%d file conflicts with your project and won't be installed" msgid_plural "%d files conflict with your project and won't be installed" msgstr[0] "Файл %d конфліктує з вашим проектом і не буде інстальований" -msgstr[1] "Файли %d конфліктують з вашим проектом і не будуть встановлені" -msgstr[2] "Файли %d конфліктують з вашим проектом і не будуть встановлені" +msgstr[1] "Файли %d конфліктують з вашим проектом і не будуть інстальовано" +msgstr[2] "Файли %d конфліктують з вашим проектом і не будуть інстальовані" msgid "This asset doesn't have a root directory, so it can't be ignored." msgstr "Цей ресурс не має кореневого каталогу, тому його не можна ігнорувати." @@ -2265,6 +2439,9 @@ msgstr "Компонування звукової шини" msgid "Invalid name." msgstr "Недійсне ім'я." +msgid "Must be a valid Unicode identifier." +msgstr "Має бути дійсний ідентифікатор Unicode." + msgid "Must not collide with an existing engine class name." msgstr "Не повинно конфліктувати з існуючою назвою класу рушія." @@ -2533,6 +2710,12 @@ msgstr "[порожньо]" msgid "[unsaved]" msgstr "[не збережено]" +msgid "Open the %s dock." +msgstr "Відкрийте док-станцію %s." + +msgid "Focus on the %s dock." +msgstr "Зосередьтеся на док-станції %s." + msgid "%s - Godot Engine" msgstr "%s - Godot Engine" @@ -2584,6 +2767,9 @@ msgstr "Бічна панель імпортування" msgid "History Dock" msgstr "Панель Історія" +msgid "Game View" +msgstr "Перегляд гри" + msgid "Allows to view and edit 3D scenes." msgstr "Надає змогу переглядати і редагувати 3D сцени." @@ -2618,6 +2804,9 @@ msgstr "" msgid "Provides an overview of the editor's and each scene's undo history." msgstr "Надає огляд історії скасувань редактора та кожної сцени." +msgid "Provides tools for selecting and debugging nodes at runtime." +msgstr "Надає інструменти для вибору та налагодження вузлів під час виконання." + msgid "(current)" msgstr "(поточний)" @@ -2707,6 +2896,30 @@ msgstr "Імпортувати профілі" msgid "Manage Editor Feature Profiles" msgstr "Керування профілями можливостей редактора" +msgid "Project initialization" +msgstr "Ініціалізація проекту" + +msgid "Scanning file structure..." +msgstr "Сканування структури файлу..." + +msgid "Loading global class names..." +msgstr "Завантаження глобальних назв класів..." + +msgid "Verifying GDExtensions..." +msgstr "Перевірка GDExtensions..." + +msgid "Creating autoload scripts..." +msgstr "Створення сценаріїв автозавантаження..." + +msgid "Initializing plugins..." +msgstr "Ініціалізація плагінів..." + +msgid "Starting file scan..." +msgstr "Початок сканування файлів..." + +msgid "Scanning actions..." +msgstr "Дії сканування..." + msgid "Some extensions need the editor to restart to take effect." msgstr "Щоб деякі розширення вступили в силу, редактор слід перезапустити." @@ -2719,6 +2932,15 @@ msgstr "Зберегти і перезапустити" msgid "ScanSources" msgstr "Сканувати сирці" +msgid "Registering global classes..." +msgstr "Реєстрація глобальних класів..." + +msgid "Updating scripts documentation" +msgstr "Оновлення документації скриптів" + +msgid "Updating Scene Groups" +msgstr "Оновлення груп сцен" + msgid "" "There are multiple importers for different types pointing to file %s, import " "aborted" @@ -2729,9 +2951,24 @@ msgstr "" msgid "(Re)Importing Assets" msgstr "Імпортування ресурсів" +msgid "Preparing files to reimport..." +msgstr "Підготовка файлів до повторного імпорту..." + +msgid "Executing pre-reimport operations..." +msgstr "Виконання операцій перед повторним імпортом..." + msgid "Import resources of type: %s" msgstr "Імпорт ресурсів типу: %s" +msgid "Finalizing Asset Import..." +msgstr "Завершення імпорту активів..." + +msgid "Executing post-reimport operations..." +msgstr "Виконання операцій після повторного імпорту..." + +msgid "Copying files..." +msgstr "Копіювання файлів..." + msgid "This method supports a variable number of arguments." msgstr "Цей метод підтримує змінну кількість аргументів." @@ -2756,6 +2993,9 @@ msgstr "" "Для виклику цього методу не потрібен екземпляр.\n" "Його можна викликати безпосередньо за допомогою назви класу." +msgid "Code snippet copied to clipboard." +msgstr "Фрагмент коду скопійовано в буфер обміну." + msgid "No return value." msgstr "Значення не повертається." @@ -2911,6 +3151,9 @@ msgstr "Піктограми" msgid "Styles" msgstr "Стилі" +msgid "This theme property may be changed or removed in future versions." +msgstr "Ця властивість теми може бути змінена або видалена в наступних версіях." + msgid "There is currently no description for this theme property." msgstr "Наразі немає опису для цієї властивості теми." @@ -2993,9 +3236,15 @@ msgstr "Редактор" msgid "Click to copy." msgstr "Натисніть, щоб скопіювати." +msgid "Click to open in browser." +msgstr "Натисніть, щоб відкрити в браузері." + msgid "No description available." msgstr "Опис відсутній." +msgid "This annotation may be changed or removed in future versions." +msgstr "Ця анотація може бути змінена або видалена в наступних версіях." + msgid "Show in FileSystem" msgstr "Показати у файловій системі" @@ -3005,12 +3254,24 @@ msgstr "Відкрити у менеджері файлів" msgid "Class" msgstr "Клас" +msgid "Enumeration" +msgstr "Перерахування" + msgid "Constant" msgstr "Сталий" +msgid "Metadata" +msgstr "Метадані" + +msgid "Setting" +msgstr "Налаштування" + msgid "Property" msgstr "Властивість" +msgid "Internal Property" +msgstr "Внутрішня власність" + msgid "This property can only be set in the Inspector." msgstr "Цю властивість можна встановити лише в інспекторі." @@ -3026,9 +3287,36 @@ msgstr "Сигнал" msgid "Annotation" msgstr "Анотація" +msgid "Local Constant" +msgstr "Локальна константа" + +msgid "Local Variable" +msgstr "Локальна змінна" + +msgid "This variable may be changed or removed in future versions." +msgstr "Ця змінна може бути змінена або видалена в наступних версіях." + +msgid "TextFile" +msgstr "Текстовий файл" + msgid "File" msgstr "Файл" +msgid "Directory" +msgstr "Довідник" + +msgid "Invalid UID" +msgstr "Недійсний UID" + +msgid "This UID does not point to any valid Resource." +msgstr "Цей UID не вказує на дійсний ресурс." + +msgid "Invalid path" +msgstr "Недійсний шлях" + +msgid "This path does not exist." +msgstr "Цього шляху не існує." + msgid "%d match." msgstr "%d співпадає." @@ -3086,12 +3374,29 @@ msgstr "Тип члена" msgid "Keywords" msgstr "Ключові слова" +msgid "Matches the \"%s\" keyword." +msgstr "Відповідає ключовому слову \"%s\"." + msgid "This member is marked as deprecated." msgstr "Цей член позначено як застарілий." msgid "This member is marked as experimental." msgstr "Цей член позначений як експериментальний." +msgid "Unfavorite Property" +msgstr "Внутрішня власність" + +msgid "Make this property be put back at its original place." +msgstr "Повернути це майно на колишнє місце." + +msgid "Favorite Property" +msgstr "Улюблене майно" + +msgid "Make this property be placed at the top for all objects of this class." +msgstr "" +"Зробіть так, щоб ця властивість розміщувалася вгорі для всіх об’єктів цього " +"класу." + msgid "Pin Value" msgstr "Зафіксувати значення" @@ -3104,6 +3409,9 @@ msgstr "" "Зафіксування значення спричиняє його збереження незалежно від того, чи є воно " "стандартним." +msgid "Unfavorite All" +msgstr "Видалити всі з вибраного" + msgid "(%d change)" msgid_plural "(%d changes)" msgstr[0] "(%d зміна)" @@ -3236,7 +3544,7 @@ msgstr "Мова:" msgctxt "Locale" msgid "Script:" -msgstr "Писемність:" +msgstr "Сценарій:" msgid "Country:" msgstr "Країна:" @@ -3246,7 +3554,7 @@ msgstr "Мова" msgctxt "Locale" msgid "Script" -msgstr "Писемність" +msgstr "Сценарій" msgid "Country" msgstr "Країна" @@ -3290,6 +3598,9 @@ msgstr "Інспектор джерел нативних шейдерів" msgid "Unnamed Project" msgstr "Проєкт без назви" +msgid "Recovery Mode is enabled. Editor functionality has been restricted." +msgstr "Режим відновлення ввімкнено. Функціональність редактора обмежена." + msgid "" "Spins when the editor window redraws.\n" "Update Continuously is enabled, which can increase power usage. Click to " @@ -3502,6 +3813,9 @@ msgstr "" msgid "Save Scene As..." msgstr "Зберегти сцену як..." +msgid "Pack Project as ZIP..." +msgstr "Запакувати проект як ZIP..." + msgid "Can't undo while mouse buttons are pressed." msgstr "Скасування неможливе, доки натиснуто кнопки миші." @@ -3584,6 +3898,9 @@ msgstr "Ця операція не обійдеться без сцени." msgid "Export Mesh Library" msgstr "Експортувати бібліотеку сіті" +msgid "Quick Open Color Palette..." +msgstr "Швидке відкриття палітри кольорів..." + msgid "Unable to enable addon plugin at: '%s' parsing of config failed." msgstr "" "Не вдалося ввімкнути додаток addon: «%s» не вдалося проаналізувати " @@ -3667,6 +3984,51 @@ msgstr "Очистити недавні сцени" msgid "There is no defined scene to run." msgstr "Немає визначеної сцени для запуску." +msgid "Loading editor" +msgstr "Завантаження редактора" + +msgid "Loading editor layout..." +msgstr "Завантаження макета редактора..." + +msgid "Loading docks..." +msgstr "Завантаження доків..." + +msgid "Reopening scenes..." +msgstr "Повторне відкриття сцен..." + +msgid "Loading central editor layout..." +msgstr "Завантаження макета центрального редактора..." + +msgid "Loading plugin window layout..." +msgstr "Завантаження макета вікна плагіна..." + +msgid "Editor layout ready." +msgstr "Макет редактора готовий." + +msgid "" +"No main scene has ever been defined. Select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Жодної головної сцени ніколи не було визначено. Виберіть один?\n" +"Ви можете змінити це пізніше в «Налаштуваннях проекту» в категорії «програма»." + +msgid "" +"Selected scene '%s' does not exist. Select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Вибрана сцена '%s' не існує. Виберіть дійсний?\n" +"Ви можете змінити це пізніше в «Налаштуваннях проекту» в категорії «програма»." + +msgid "" +"Selected scene '%s' is not a scene file. Select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Вибрана сцена '%s' не є файлом сцени. Виберіть дійсний?\n" +"Ви можете змінити це пізніше в «Налаштуваннях проекту» в категорії «програма»." + msgid "Save Layout..." msgstr "Зберегти макет..." @@ -3687,20 +4049,20 @@ msgstr "Ця сцена так і не була збережена." msgid "%d second ago" msgid_plural "%d seconds ago" -msgstr[0] "%d секунду тому" -msgstr[1] "%d секунд тому" -msgstr[2] "%d секунд тому" +msgstr[0] "%d секунд тому" +msgstr[1] "%d секунда тому" +msgstr[2] "%d секунди тому" msgid "%d minute ago" msgid_plural "%d minutes ago" msgstr[0] "%d хвилину тому" -msgstr[1] "%d хвилин тому" +msgstr[1] "%d хвилини тому" msgstr[2] "%d хвилин тому" msgid "%d hour ago" msgid_plural "%d hours ago" msgstr[0] "%d годину тому" -msgstr[1] "%d годин тому" +msgstr[1] "%d години тому" msgstr[2] "%d годин тому" msgid "" @@ -3897,6 +4259,9 @@ msgstr "Редактор конфігурації компіляції двиг msgid "Upgrade Mesh Surfaces..." msgstr "Оновлення сітчастих поверхонь..." +msgid "Upgrade UIDs..." +msgstr "Оновити UID..." + msgid "Reload Current Project" msgstr "Перезавантажити поточний проєкт" @@ -4002,7 +4367,7 @@ msgid "Hide Update Spinner" msgstr "Приховати оновлення лічильника" msgid "FileSystem" -msgstr "файлова система" +msgstr "Файлова система" msgid "Toggle FileSystem Bottom Panel" msgstr "Перемкнути нижню панель FileSystem" @@ -4054,6 +4419,21 @@ msgstr "Експортувати бібліотеку" msgid "Open & Run a Script" msgstr "Відкрити і запустити скрипт" +msgid "Files have been modified outside Godot" +msgstr "Файли були змінені за межами Godot" + +msgid "The following files are newer on disk:" +msgstr "Наступні файли є новішими на диску:" + +msgid "What action should be taken?" +msgstr "Які дії слід вжити?" + +msgid "Reload from disk" +msgstr "Джерело отримання" + +msgid "Ignore external changes" +msgstr "Ігнорувати зовнішні зміни" + msgid "Create/Override Version Control Metadata..." msgstr "Створити/замінити метадані керування версіями..." @@ -4078,6 +4458,9 @@ msgstr "Відкрити 3D редактор" msgid "Open Script Editor" msgstr "Відкрити редактор скриптів" +msgid "Open Game View" +msgstr "Відкрийте вікно гри" + msgid "Open Asset Library" msgstr "Відкрити бібліотеку ресурсів" @@ -4207,6 +4590,12 @@ msgstr "Нове значення:" msgid "(Nil) %s" msgstr "(Ніл) %s" +msgid "%s%s (size %d)" +msgstr "%s%s (розмір %d)" + +msgid "%s (size %d)" +msgstr "%s (розмір %d)" + msgid "Size:" msgstr "Розмір:" @@ -4276,6 +4665,12 @@ msgstr "Розширити сценарій..." msgid "New Shader..." msgstr "Новий шейдер..." +msgid "No Remote Deploy export presets configured." +msgstr "Немає попередніх налаштувань експорту Remote Deploy." + +msgid "Remote Deploy" +msgstr "Віддалене розгортання" + msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the Export menu or define an existing preset " @@ -4286,6 +4681,28 @@ msgstr "" "Будь ласка, додайте придатний до використання набір параметрів за допомогою " "меню «Експорт» або визначне наявний набір як придатний до використання." +msgid "" +"Warning: The CPU architecture \"%s\" is not active in your export preset.\n" +"\n" +msgstr "" +"Попередження: архітектура ЦП \"%s\" не активна у вашому стилі експорту.\n" +"\n" + +msgid "Run \"Remote Deploy\" anyway?" +msgstr "Усе одно запустити \"Віддалене розгортання\"?" + +msgid "Deploy to First Device in List" +msgstr "Розгорнути на першому пристрої в списку" + +msgid "Deploy to Second Device in List" +msgstr "Розгорнути на другому пристрої в списку" + +msgid "Deploy to Third Device in List" +msgstr "Розгорнути на третьому пристрої зі списку" + +msgid "Deploy to Fourth Device in List" +msgstr "Розгорнути на четвертому пристрої в списку" + msgid "Project Run" msgstr "Запуск проєкту" @@ -4295,6 +4712,9 @@ msgstr "Напишіть свою логіку в методі _run ()." msgid "The current scene already has a root node." msgstr "У поточній сцені вже є кореневий вузол." +msgid "Advanced settings are always shown when searching." +msgstr "Розширені налаштування завжди відображаються під час пошуку." + msgid "Edit Built-in Action: %s" msgstr "Редагувати вбудовану дію: %s" @@ -4304,9 +4724,15 @@ msgstr "Ярлик редагування: %s" msgid "None" msgstr "Немає" +msgid "Primary" +msgstr "Первинний" + msgid "Common" msgstr "Загальні" +msgid "Event %d" +msgstr "Елемент %d" + msgid "Editor Settings" msgstr "Параметри редактора" @@ -4508,6 +4934,12 @@ msgstr "Невідома помилка" msgid "Export failed with error code %d." msgstr "Помилка експортування, код: %d." +msgid "Patch Creation" +msgstr "Створення патча" + +msgid "Could not load patch pack with path \"%s\"." +msgstr "Не вдалося завантажити пакет виправлень із шляхом \"%s\"." + msgid "Storing File: %s" msgstr "Збереження файлу: %s" @@ -4517,6 +4949,29 @@ msgstr "Збереження файлу:" msgid "No export template found at the expected path:" msgstr "Не знайдено шаблон експорту на очікуваному шляху:" +msgid "" +"Using user provided text server data, text display in the exported project " +"might be broken if export template was built with different ICU version!" +msgstr "" +"Використовуючи надані користувачем дані текстового сервера, відображення " +"тексту в експортованому проекті може бути порушено, якщо шаблон експорту " +"створено з іншою версією ICU!" + +msgid "" +"Using editor embedded text server data, text display in the exported project " +"might be broken if export template was built with different ICU version!" +msgstr "" +"Використовуючи вбудовані дані текстового сервера редактора, відображення " +"тексту в експортованому проекті може бути порушено, якщо шаблон експорту " +"створено з іншою версією ICU!" + +msgid "" +"Missing text server data, text display in the exported project might be " +"broken!" +msgstr "" +"Відсутні дані текстового сервера, відображення тексту в експортованому " +"проекті може бути порушено!" + msgid "ZIP Creation" msgstr "Створення ZIP" @@ -4535,6 +4990,9 @@ msgstr "Не вдалося створити файл «%s»." msgid "Failed to export project files." msgstr "Не вдалося експортувати файли проєкту." +msgid "No files or changes to export." +msgstr "Немає файлів або змін для експорту." + msgid "Can't open file for writing at path \"%s\"." msgstr "Неможливо відкрити для запису файл по шляху \"%s\"." @@ -4553,6 +5011,9 @@ msgstr "Не вдається відкрити файл для читання з msgid "Save ZIP" msgstr "Зберегти ZIP" +msgid "Failed to move temporary file \"%s\" to \"%s\"." +msgstr "Не вдалося перемістити тимчасовий файл \"%s\" до \"%s\"." + msgid "Custom debug template not found." msgstr "Нетипового шаблону діагностики не знайдено." @@ -4586,6 +5047,12 @@ msgstr "" "При експортуванні у 32-бітовому режимі вбудовані PCK не можуть перевищувати " "за розміром 4 ГіБ." +msgid "GDExtension" +msgstr "GDExtension" + +msgid "Failed to copy shared object \"%s\"." +msgstr "Не вдалося скопіювати спільний об'єкт \"%s\"." + msgid "Plugin \"%s\" is not supported on \"%s\"" msgstr "Плагін \"%s\" не підтримується на \"%s\"" @@ -4717,6 +5184,15 @@ msgstr "" msgid "Export templates are missing. Install them from a file." msgstr "Відсутні шаблони експорту. Встановіть їх із файлу.." +msgid "Not available in offline mode" +msgstr "Недоступно в автономному режимі" + +msgid "Template downloading is disabled in offline mode." +msgstr "Завантаження шаблонів вимкнено в автономному режимі." + +msgid "No templates for development builds" +msgstr "Немає шаблонів для розробки збірок" + msgid "Official export templates aren't available for development builds." msgstr "Для тестових збірок не передбачено офіційних шаблонів експортування." @@ -4826,9 +5302,15 @@ msgstr "Експортовані ресурси:" msgid "(Inherited)" msgstr "(Успадковано)" +msgid "Delete patch '%s' from list?" +msgstr "Видалити патч \"%s\" зі списку?" + msgid "Export With Debug" msgstr "Експортувати із діагностикою" +msgid "Export As Patch" +msgstr "Експорт як патч" + msgid "%s Export" msgstr "Експорт на %s" @@ -4911,9 +5393,18 @@ msgstr "" "Фільтри виключення файлів або тек з проєкту\n" "(з відокремленням комами, приклад: *.json, *.txt, docs/*)" +msgid "Patches" +msgstr "Патчі" + +msgid "Base Packs:" +msgstr "Базові пакети:" + msgid "Godot Project Pack" msgstr "Пакунок проєкту Godot" +msgid "Add Pack" +msgstr "Додати пакет" + msgid "Features" msgstr "Можливості" @@ -4953,6 +5444,9 @@ msgstr "" msgid "Encryption Key (256-bits as hexadecimal):" msgstr "Ключ шифрування (256-біт, як шістнадцяткове число):" +msgid "Initialization vector seed" +msgstr "Насіння вектора ініціалізації" + msgid "" "Note: Encryption key needs to be stored in the binary,\n" "you need to build the export templates from source." @@ -5072,6 +5566,9 @@ msgstr "Вибрати" msgid "Confirm Path" msgstr "Підтвердіть шлях" +msgid "Link to: %s" +msgstr "Посилання на: %s" + msgid "View items as a grid of thumbnails." msgstr "Перегляд елементів у вигляді сітки ескізів." @@ -5101,6 +5598,9 @@ msgstr "Помилка переміщення:" msgid "Error duplicating:" msgstr "Помилка дублювання:" +msgid "Error duplicating directory:" +msgstr "Помилка дублювання каталогу:" + msgid "Unable to update dependencies for:" msgstr "Неможливо оновити залежності для:" @@ -5127,6 +5627,9 @@ msgstr "" msgid "A file or folder with this name already exists." msgstr "Файл або тека з таким іменем вже існує." +msgid "Could not create base directory: %s" +msgstr "Не вдалося створити базовий каталог: %s" + msgid "" "The following files or folders conflict with items in the target location " "'%s':" @@ -5166,6 +5669,14 @@ msgstr "Дублювання теки:" msgid "Create Folder" msgstr "Створити теку" +msgid "" +"Do you wish to convert these files to %s? (This operation cannot be undone!)" +msgstr "" +"Ви бажаєте перетворити ці файли на %s? (Цю операцію неможливо скасувати!)" + +msgid "Could not create folder: %s" +msgstr "Не вдалося створити папку: %s" + msgid "New Inherited Scene" msgstr "Нова успадкована сцена" @@ -5226,12 +5737,18 @@ msgstr "Додати до улюблених" msgid "Remove from Favorites" msgstr "Вилучити з улюблених" +msgid "Convert to..." +msgstr "Перетворити на..." + msgid "Reimport" msgstr "Переімпортувати" msgid "Open in Terminal" msgstr "Відкрийте в терміналі" +msgid "Open Folder in Terminal" +msgstr "Відкрийте папку в терміналі" + msgid "New Folder..." msgstr "Створити теку..." @@ -5341,6 +5858,9 @@ msgstr "Зберегти обидва" msgid "Create Script" msgstr "Створити скрипт" +msgid "Convert" +msgstr "Конвертувати" + msgid "Find in Files" msgstr "Знайти у файлах" @@ -5378,6 +5898,9 @@ msgstr "Замінити всі (без скасування)" msgid "Searching..." msgstr "Шукаємо…" +msgid "Remove result" +msgstr "Видалити результат" + msgid "%d match in %d file" msgstr "%d відповідник у %d файлі" @@ -5468,6 +5991,27 @@ msgstr "Додайте нову групу." msgid "Filter Groups" msgstr "Групи фільтрів" +msgid "" +"Scroll Left\n" +"Hold Ctrl to scroll to the begin.\n" +"Hold Shift to scroll one page." +msgstr "" +"Прокрутіть ліворуч\n" +"Утримуйте Ctrl, щоб перейти до початку.\n" +"Утримуйте Shift, щоб прокрутити одну сторінку." + +msgid "" +"Scroll Right\n" +"Hold Ctrl to scroll to the end.\n" +"Hold Shift to scroll one page." +msgstr "" +"Прокрутити вправо\n" +"Утримуйте Ctrl, щоб прокрутити до кінця.\n" +"Утримуйте Shift, щоб прокрутити одну сторінку." + +msgid "Pin Bottom Panel Switching" +msgstr "Перемикання на нижній панелі" + msgid "Expand Bottom Panel" msgstr "Розгорнути нижню панель" @@ -5508,6 +6052,9 @@ msgstr "" msgid "Select This Folder" msgstr "Вибрати цю теку" +msgid "Show Package Contents" +msgstr "Показати вміст упаковки" + msgid "All Files" msgstr "Усі файли" @@ -5559,6 +6106,9 @@ msgstr "Перемкнути режим" msgid "Focus Path" msgstr "Фокусувати шлях" +msgid "Focus Filter" +msgstr "Фільтр фокусування" + msgid "Move Favorite Up" msgstr "Перемістити вибране вище" @@ -5589,9 +6139,18 @@ msgstr "Каталоги та файли:" msgid "Toggle the visibility of hidden files." msgstr "Увімкнути або вимкнути видимість прихованих файлів." +msgid "Sort files" +msgstr "Сортування файлів" + +msgid "Toggle the visibility of the filter for file names." +msgstr "Увімкніть видимість фільтра для імен файлів." + msgid "Preview:" msgstr "Попередній перегляд:" +msgid "Filter:" +msgstr "Фільтр:" + msgid "Filter" msgstr "Фільтр" @@ -5615,6 +6174,45 @@ msgstr "Підлеглих ресурсів не знайдено." msgid "Open a list of sub-resources." msgstr "Відкрити список підлеглих ресурсів." +msgid "Search files..." +msgstr "Пошук файлів..." + +msgid "Select Resource" +msgstr "Виберіть Ресурс" + +msgid "Select Scene" +msgstr "Виберіть Сцена" + +msgid "Fuzzy Search" +msgstr "Нечіткий пошук" + +msgid "Enable fuzzy matching" +msgstr "Увімкнути нечітку відповідність" + +msgid "Addons" +msgstr "Аддони" + +msgid "Include files from addons" +msgstr "Включати файли з аддонів" + +msgid "No files found for this type" +msgstr "Файли цього типу не знайдено" + +msgid "Start searching to find files..." +msgstr "Почніть пошук, щоб знайти файли..." + +msgid "No results found" +msgstr "Результатів не знайдено" + +msgid " (recently opened)" +msgstr " (нещодавно відкрито)" + +msgid "Grid view" +msgstr "Вигляд сітки" + +msgid "List view" +msgstr "Перегляд списку" + msgid "Play the project." msgstr "Запустити проект." @@ -5647,9 +6245,72 @@ msgstr "" msgid "Could not start subprocess(es)!" msgstr "Не вдалося запустити підпроцес(и)!" +msgid "Recovery Mode is enabled. Disable it to run the project." +msgstr "Режим відновлення ввімкнено. Вимкніть його, щоб запустити проект." + +msgid "" +"Autostart is enabled for the following profilers, which can have a " +"performance impact:" +msgstr "" +"Автозапуск увімкнено для таких профайлерів, що може вплинути на " +"продуктивність:" + msgid "Network Profiler" msgstr "Засіб профілювання мережі" +msgid "Click to open the first profiler for which autostart is enabled." +msgstr "" +"Натисніть, щоб відкрити перший профайлер, для якого ввімкнено автозапуск." + +msgid "Recovery Mode" +msgstr "Режим відновлення" + +msgid "" +"Godot opened the project in Recovery Mode, which is a special mode that can " +"help recover projects that crash the engine upon initialization. The " +"following features have been temporarily disabled:" +msgstr "" +"Годо відкрив проект у режимі відновлення, який є спеціальним режимом, який " +"може допомогти відновити проекти, у яких після ініціалізації відбувається " +"збій двигуна. Наступні функції тимчасово вимкнено:" + +msgid "Tool scripts" +msgstr "Скрипти інструментів" + +msgid "Editor plugins" +msgstr "Плагіни редактора" + +msgid "GDExtension addons" +msgstr "Надбудови GDExtension" + +msgid "Automatic scene restoring" +msgstr "Автоматичне відновлення сцени" + +msgid "" +"If the project cannot be opened outside of this mode, then it's very likely " +"any of these components is preventing this project from launching. This mode " +"is intended only for basic editing to troubleshoot such issues, and therefore " +"it is not possible to run a project in this mode." +msgstr "" +"Якщо проект неможливо відкрити поза цим режимом, то, дуже ймовірно, будь-який " +"із цих компонентів перешкоджає запуску цього проекту. Цей режим призначений " +"лише для базового редагування з метою усунення таких проблем, тому в цьому " +"режимі неможливо запустити проект." + +msgid "" +"To disable Recovery Mode, reload the project by pressing the Reload button " +"next to the Recovery Mode banner, or by reopening the project normally." +msgstr "" +"Щоб вимкнути режим відновлення, перезавантажте проект, натиснувши кнопку " +"«Перезавантажити» поруч із банером «Режим відновлення», або знову відкрийте " +"проект у звичайному режимі." + +msgid "Disable recovery mode and reload the project." +msgstr "Вимкніть режим відновлення та перезавантажте проект." + +msgid "Recovery Mode is enabled. Click for more details." +msgstr "Режим відновлення ввімкнено. Натисніть, щоб дізнатися більше." + msgid "Run the project's default scene." msgstr "Запустити сцену проекту за замовчуванням." @@ -5668,12 +6329,24 @@ msgstr "Зупинити поточний проект." msgid "Stop Running Project" msgstr "Зупинити виконання проекту" +msgid "Run Scene in Regular Mode" +msgstr "Запустіть сцену в звичайному режимі" + +msgid "Run Scene in XR Mode" +msgstr "Запустіть сцену в режимі XR" + msgid "Run the currently edited scene." msgstr "Запустити поточну відредаговану сцену." msgid "Run Current Scene" msgstr "Запустити поточну сцену" +msgid "Run in Regular Mode" +msgstr "Запуск у звичайному режимі" + +msgid "Run in XR Mode" +msgstr "Запуск у режимі XR" + msgid "Run a specific scene." msgstr "Запустити певну сцену." @@ -5739,6 +6412,15 @@ msgstr "" "Дата коміту в Git: %s\n" "Натисніть, щоб скопіювати інформацію про версію." +msgid "" +"The root node of a scene is recommended to not be transformed, since " +"instances of the scene will usually override this. Reset the transform and " +"reload the scene to remove this warning." +msgstr "" +"Рекомендується не перетворювати кореневий вузол сцени, оскільки екземпляри " +"сцени зазвичай замінюють це. Скиньте трансформацію та перезавантажте сцену, " +"щоб видалити це попередження." + msgid "Toggle Visible" msgstr "Перемкнути видимість" @@ -5748,6 +6430,9 @@ msgstr "Розблокувати вузол" msgid "Ungroup Children" msgstr "Розгрупувати дітей" +msgid "Revoke unique name for node \"%s\"?" +msgstr "Скасувати унікальне ім’я для вузла \"%s\"?" + msgid "Disable Scene Unique Name" msgstr "Вимкнути унікальна назва сцени" @@ -5757,6 +6442,16 @@ msgstr "(Джерело з'єднання)" msgid "Node configuration warning:" msgstr "Попередження щодо налаштовування вузла:" +msgid "" +"This node can be accessed from anywhere within the scene it belongs to by " +"using the '%s' prefix in the node path." +msgstr "" +"До цього вузла можна отримати доступ з будь-якої точки сцени, до якої він " +"належить, використовуючи префікс «%s» у шляху вузла." + +msgid "Click to disable this." +msgstr "Натисніть, щоб вимкнути це." + msgid "Node has one connection." msgid_plural "Node has {num} connections." msgstr[0] "Вузол має одне з'єднання." @@ -5766,12 +6461,22 @@ msgstr[2] "Вузол має {num} з'єднань." msgid "Node is in this group:" msgid_plural "Node is in the following groups:" msgstr[0] "Вузол у цій групі:" -msgstr[1] "Вузли у наступних групах:" +msgstr[1] "Вузли у наступного групах:" msgstr[2] "Вузли у наступних групах:" msgid "Click to show signals dock." msgstr "Клацніть, щоб переглянути панель сигналів." +msgid "Click to show groups dock." +msgstr "Натисніть, щоб показати док груп." + +msgid "" +"This script can run in the editor.\n" +"It is currently disabled due to recovery mode." +msgstr "" +"Цей скрипт можна запускати в редакторі.\n" +"Наразі його вимкнено через режим відновлення." + msgid "This script is currently running in the editor." msgstr "Цей скрипт в даний час запущений в редакторі." @@ -5808,6 +6513,13 @@ msgstr "Відкрити в редакторі" msgid "\"%s\" is not a known filter." msgstr "\"%s\" є не відомим фільтром." +msgid "" +"Root nodes cannot be accessed as unique names in their own scene. Instantiate " +"in another scene and set as unique name there." +msgstr "" +"Кореневі вузли не можуть бути доступні як унікальні імена у власній сцені. " +"Створіть екземпляр в іншій сцені та встановіть там унікальне ім’я." + msgid "Invalid node name, the following characters are not allowed:" msgstr "Некоректна назва вузла. Не можна використовувати такі символи:" @@ -5829,6 +6541,19 @@ msgstr "Дерево сцени (вузли):" msgid "Node Configuration Warning!" msgstr "Попередження щодо налаштування вузлів!" +msgid "Revoke" +msgstr "Відкликати" + +msgid "Don't Ask Again" +msgstr "Не питай знову" + +msgid "" +"This dialog can also be enabled/disabled in the Editor Settings: Docks > " +"Scene Tree > Ask Before Revoking Unique Name." +msgstr "" +"Це діалогове вікно також можна ввімкнути/вимкнути в налаштуваннях редактора: " +"Доки > Дерево сцен > Запитувати перед відкликанням унікального імені." + msgid "Allowed:" msgstr "Дозвольте:" @@ -6001,6 +6726,12 @@ msgstr "Матеріали" msgid "Selected Animation Play/Pause" msgstr "Відтворення/пауза вибраної анімації" +msgid "Selected Animation Stop" +msgstr "Вибрана зупинка анімації" + +msgid "Toggle Animation Skeleton Visibility" +msgstr "Перемкнути видимість скелета анімації" + msgid "Rotate Lights With Model" msgstr "Обертання світла з моделлю" @@ -6442,9 +7173,27 @@ msgstr "Керувати властивостями об'єкта." msgid "This cannot be undone. Are you sure?" msgstr "Це не можна скасувати. Ви впевнені?" +msgid "Add %d Translation" +msgid_plural "Add %d Translations" +msgstr[0] "Додати %d переклад" +msgstr[1] "Додати %d переклади" +msgstr[2] "Додати %d перекладів" + msgid "Remove Translation" msgstr "Вилучити переклад" +msgid "Translation Resource Remap: Add %d Path" +msgid_plural "Translation Resource Remap: Add %d Paths" +msgstr[0] "Переналаштування ресурсу перекладу: додайте %d шлях" +msgstr[1] "Переналаштування ресурсів перекладу: додайте %d шляху" +msgstr[2] "Переналаштування ресурсів перекладу: додайте %d шляхів" + +msgid "Translation Resource Remap: Add %d Remap" +msgid_plural "Translation Resource Remap: Add %d Remaps" +msgstr[0] "Перевідображення ресурс переклад: Додайте %d перевідображення" +msgstr[1] "Перевідображення ресурсу перекладу: додайте %d перевідображення" +msgstr[2] "Перевідображення ресурсу перекладів: додайте %d перевідображення" + msgid "Change Resource Remap Language" msgstr "Змінити мову переспрямовування ресурсу" @@ -6454,6 +7203,12 @@ msgstr "Вилучити переспрямування ресурсу" msgid "Remove Resource Remap Option" msgstr "Вилучити параметр переспрямування ресурсу" +msgid "Add %d file for POT generation" +msgid_plural "Add %d files for POT generation" +msgstr[0] "Додайте %d файл для створення POT" +msgstr[1] "Додайте %d файли для створення POT" +msgstr[2] "Додайте %d файлів для POT generationAdd" + msgid "Remove file from POT generation" msgstr "Видалити файл з генерації POT" @@ -6501,7 +7256,7 @@ msgid "Set %s on %d nodes" msgstr "Встановити %s на вузлах %d" msgid "%s (%d Selected)" -msgstr "%s (%d вибрано)" +msgstr "%s (%d Вибрано)" msgid "Groups" msgstr "Групи" @@ -6729,6 +7484,24 @@ msgstr "Заповнити вибрані дочірні елементи" msgid "Invert" msgstr "Інвертувати" +msgid "Start of Animation" +msgstr "Початок анімації" + +msgid "End of Animation" +msgstr "Кінець анімації" + +msgid "Set Custom Timeline from Marker" +msgstr "Встановіть спеціальну часову шкалу з маркера" + +msgid "Select Markers" +msgstr "Виберіть маркери" + +msgid "Start Marker" +msgstr "Почати маркер" + +msgid "End Marker" +msgstr "Кінцевий маркер" + msgid "Library Name:" msgstr "Назва Бібліотеки:" @@ -6958,6 +7731,21 @@ msgstr "Дубльована назва анімації:" msgid "Onion skinning requires a RESET animation." msgstr "Для очищення цибулі від шкірки потрібна анімація RESET." +msgid "Play Animation Backwards" +msgstr "Відтворення анімації назад" + +msgid "Play Animation Backwards from End" +msgstr "Відтворення анімації назад від кінця" + +msgid "Pause/Stop Animation" +msgstr "Пауза/зупинка анімації" + +msgid "Play Animation from Start" +msgstr "Відтворення анімації з початку" + +msgid "Play Animation" +msgstr "Грати в анімацію" + msgid "Animation position (in seconds)." msgstr "Позиція анімації (в секундах)." @@ -7033,6 +7821,12 @@ msgstr "Час змішування:" msgid "Next (Auto Queue):" msgstr "Далі (автоматична черга):" +msgid "Go to Next Keyframe" +msgstr "Перейти до наступного ключового кадру" + +msgid "Go to Previous Keyframe" +msgstr "Перейти до попереднього ключового кадру" + msgid "Toggle Animation Bottom Panel" msgstr "Перемкнути нижню панель анімації" @@ -7523,6 +8317,9 @@ msgstr "" "Alt+ПКМ: показати список усіх вузлів у позиції клацання, включно із " "заблокованими." +msgid "(Available in all modes.)" +msgstr "(Доступний у всіх режимах.)" + msgid "RMB: Add node at position clicked." msgstr "ПКМ: додати вузол у позиції клацання." @@ -7541,6 +8338,19 @@ msgstr "Shift: масштабувати пропорційно." msgid "Show list of selectable nodes at position clicked." msgstr "Показати список виділених вузлів у позиції клацання." +msgid "Click to change object's pivot." +msgstr "Клацніть, щоб змінити опору об'єкта." + +msgid "Shift: Set temporary pivot." +msgstr "Shift: встановити тимчасову опору." + +msgid "" +"Click this button while holding Shift to put the temporary pivot in the " +"center of the selected nodes." +msgstr "" +"Натисніть цю кнопку, утримуючи Shift, щоб розмістити тимчасову опору в центрі " +"вибраних вузлів." + msgid "Pan Mode" msgstr "Режим панорамування" @@ -7638,7 +8448,7 @@ msgid "View" msgstr "Перегляд" msgid "Show" -msgstr "&Показати" +msgstr "Показати" msgid "Show When Snapping" msgstr "Інтелектуальне прилипання" @@ -8155,6 +8965,13 @@ msgstr "" msgid "Edit Plugin" msgstr "Редагування додатка" +msgid "" +"Recovery mode is enabled. Enabled plugins will not run while this mode is " +"active." +msgstr "" +"Режим відновлення ввімкнено. Увімкнені плагіни не працюватимуть, поки цей " +"режим активний." + msgid "Installed Plugins:" msgstr "Встановлені плаґіни:" @@ -8231,9 +9048,170 @@ msgstr "Східноазійські ширини" msgid "Numeral Alignment" msgstr "Вирівнювання чисел" +msgid "Variation" +msgstr "Варіація" + msgid "Unable to preview font" msgstr "Неможливо переглянути шрифт" +msgid "Connection impossible to the game process." +msgstr "Встановлюємо з'єднання із дзеркалом." + +msgid "Game starting..." +msgstr "Початок гри..." + +msgid "Game running not embedded." +msgstr "Гра працює не вбудовано." + +msgid "Press play to start the game." +msgstr "Натисніть кнопку відтворення, щоб почати гру." + +msgid "Embedding is disabled." +msgstr "Вбудовування вимкнено." + +msgid "" +"Game embedding not available on Wayland.\n" +"Wayland can be disabled in the Editor Settings (Run > Platforms > Linux/*BSD " +"> Prefer Wayland)." +msgstr "" +"Вбудовування гри недоступне на Wayland.\n" +"Wayland можна вимкнути в налаштуваннях редактора (Виконати > Платформи > " +"Linux/*BSD > Віддати перевагу Wayland)." + +msgid "Game embedding not available on your OS." +msgstr "Вбудована гра недоступна у вашій ОС." + +msgid "" +"Game embedding not available for the Display Server: '%s'.\n" +"Display Server can be modified in the Project Settings (Display > Display " +"Server > Driver)." +msgstr "" +"Вбудовування гри недоступне для Display Server: '%s'.\n" +"Display Server можна змінити в налаштуваннях проекту (Display > Display " +"Server > Driver)." + +msgid "" +"Game embedding not available when the game starts minimized.\n" +"Consider overriding the window mode project setting with the editor feature " +"tag to Windowed to use game embedding while leaving the exported project " +"intact." +msgstr "" +"Вбудовування гри недоступне, коли гра починається згорнуто. \n" +"Спробуйте замінити налаштування проекту віконного режиму тегом функції " +"редактора на Windowed, щоб використовувати вбудовування гри, залишаючи " +"експортований проект без змін." + +msgid "" +"Game embedding not available when the game starts maximized.\n" +"Consider overriding the window mode project setting with the editor feature " +"tag to Windowed to use game embedding while leaving the exported project " +"intact." +msgstr "" +"Вбудовування гри недоступне, коли гра починається розгорнуто. \n" +"Спробуйте замінити налаштування проекту віконного режиму тегом функції " +"редактора на Windowed, щоб використовувати вбудовування гри, залишаючи " +"експортований проект без змін." + +msgid "" +"Game embedding not available when the game starts in fullscreen.\n" +"Consider overriding the window mode project setting with the editor feature " +"tag to Windowed to use game embedding while leaving the exported project " +"intact." +msgstr "" +"Вбудовування гри недоступне, коли гра запускається в повноекранному режимі. \n" +"Спробуйте замінити налаштування проекту віконного режиму тегом функції " +"редактора на Windowed, щоб використовувати вбудовування гри, залишаючи " +"експортований проект без змін." + +msgid "Game embedding not available in single window mode." +msgstr "Вставлення гри недоступне в режимі одного вікна." + +msgid "Suspend" +msgstr "Призупинити" + +msgid "Next Frame" +msgstr "Наступний кадр" + +msgid "Input" +msgstr "Введення" + +msgid "Allow game input." +msgstr "Дозволити введення в гру." + +msgid "" +"Disable game input and allow to select Node2Ds, Controls, and manipulate the " +"2D camera." +msgstr "" +"Вимкніть ігровий вхід і дозвольте вибирати Node2D, елементи керування та " +"керувати 2D-камерою." + +msgid "" +"Disable game input and allow to select Node3Ds and manipulate the 3D camera." +msgstr "" +"Вимкніть ігровий вхід і дозвольте вибирати Node3D і керувати 3D-камерою." + +msgid "Toggle Selection Visibility" +msgstr "Перемкнути видимість виділеного" + +msgid "Alt+RMB: Show list of all nodes at position clicked." +msgstr "Alt+ПКМ: Показати список усіх вузлів у положенні, яке ви натиснули." + +msgid "Override the in-game camera." +msgstr "Перевизначте камеру в грі." + +msgid "Camera Override Options" +msgstr "Параметри перевизначення камери" + +msgid "Reset 2D Camera" +msgstr "Скинути налаштування 2D-камери" + +msgid "Reset 3D Camera" +msgstr "Скинути 3D-камеру" + +msgid "Manipulate In-Game" +msgstr "Маніпулювання в грі" + +msgid "Manipulate From Editors" +msgstr "Маніпулювання з редакторів" + +msgid "" +"Embedded game size is based on project settings.\n" +"The 'Keep Aspect' mode is used when the Game Workspace is smaller than the " +"desired size." +msgstr "" +"Розмір вбудованої гри залежить від параметрів проекту.\n" +"Режим «Зберігати пропорції» використовується, коли робоча область гри менша " +"за потрібний розмір." + +msgid "Keep the aspect ratio of the embedded game." +msgstr "Зберігайте співвідношення сторін вбудованої гри." + +msgid "Embedded game size stretches to fit the Game Workspace." +msgstr "" +"Розмір вбудованої гри розтягується відповідно до ігрового робочого простору." + +msgid "Embedding Options" +msgstr "Параметри вбудовування" + +msgid "Embed Game on Next Play" +msgstr "Вставити гру під час наступного відтворення" + +msgid "Make Game Workspace Floating on Next Play" +msgstr "Зробіть ігрову робочу область плаваючою під час наступної гри" + +msgid "Game Workspace" +msgstr "Ігровий робочий простір" + +msgid "" +"No \"%s\" library found for GDExtension: \"%s\". Possible feature flags for " +"your platform: %s" +msgstr "" +"Не знайдено бібліотеку \"%s\" для GDExtension: \"%s\". Можливі позначки " +"функції для вашої платформи: %s" + +msgid "Multiple \"%s\" libraries found for GDExtension: \"%s\": \"%s\"." +msgstr "Для GDExtension знайдено кілька бібліотек \"%s\": \"%s\": \"%s\"." + msgid "Change AudioStreamPlayer3D Emission Angle" msgstr "Змінити кут випромінювання AudioStreamPlayer3D" @@ -8369,6 +9347,47 @@ msgstr "" "Не вдається визначити шлях для збереження карт освітлення.\n" "Збережіть вашу сцену і повторіть спробу." +msgid "" +"No meshes with lightmapping support to bake. Make sure they contain UV2 data " +"and their Global Illumination property is set to Static." +msgstr "" +"Немає сіток із підтримкою відображення світла. Переконайтеся, що вони містять " +"дані UV2, а для властивості Global Illumination встановлено значення Static." + +msgid "" +"To import a scene with lightmapping support, set Meshes > Light Baking to " +"Static Lightmaps in the Import dock." +msgstr "" +"Щоб імпортувати сцену з підтримкою відображення світла, установіть для " +"«Сітки» > «Випікання світла» значення «Статичні карти освітлення» в док-" +"станції «Імпорт»." + +msgid "" +"To enable lightmapping support on a primitive mesh, edit the PrimitiveMesh " +"resource in the inspector and check Add UV2." +msgstr "" +"Щоб увімкнути підтримку відображення світла на примітивній сітці, " +"відредагуйте ресурс PrimitiveMesh в інспекторі та позначте «Додати UV2»." + +msgid "" +"To enable lightmapping support on a CSG mesh, select the root CSG node and " +"choose CSG > Bake Mesh Instance at the top of the 3D editor viewport.\n" +"Select the generated MeshInstance3D node and choose Mesh > Unwrap UV2 for " +"Lightmap/AO at the top of the 3D editor viewport." +msgstr "" +"Щоб увімкнути підтримку відображення світла на сітці CSG, виберіть кореневий " +"вузол CSG і виберіть CSG > Випікати екземпляр сіті у верхній частині вікна " +"перегляду 3D-редактора. \n" +"Виберіть згенерований вузол MeshInstance3D і виберіть Mesh > Unwrap UV2 for " +"Lightmap/AO у верхній частині вікна перегляду 3D-редактора." + +msgid "" +"Failed creating lightmap images. Make sure the lightmap destination path is " +"writable." +msgstr "" +"Не вдалося створити зображення карти освітлення. Переконайтеся, що шлях " +"призначення карти освітлення доступний для запису." + msgid "No editor scene root found." msgstr "Коренева сцена редактора не знайдена." @@ -8384,6 +9403,15 @@ msgstr "" "Хоча це можна виправити, збільшивши максимальний розмір текстури, " "рекомендується розбити сцену на більшу кількість об'єктів." +msgid "" +"Failed creating lightmap images. Make sure all meshes to bake have the " +"Lightmap Size Hint property set high enough, and the LightmapGI's Texel Scale " +"value is not too low." +msgstr "" +"Не вдалося створити зображення світлової карти. Переконайтеся, що для всіх " +"мешів вибраних для запікання встановлено достатньо високе значення " +"`lightmap_size_hint`, а значення `texel_scale` у LightmapGI не є занизьким." + msgid "" "Failed fitting a lightmap image into an atlas. This should never happen and " "should be reported." @@ -8394,12 +9422,28 @@ msgstr "" msgid "Bake Lightmaps" msgstr "Запікати карти освітлення" +msgid "Lightmap baking is not supported on this GPU (%s)." +msgstr "Запікання карти освітлення не підтримується на цьому GPU (%s)." + +msgid "Lightmaps cannot be baked on %s." +msgstr "Карти освітлення не можна запікати на %s." + +msgid "" +"Lightmaps cannot be baked, as the `lightmapper_rd` module was disabled at " +"compile-time." +msgstr "" +"Карти освітлення неможливо запекти, оскільки модуль `lightmapper_rd` було " +"вимкнено під час компіляції." + msgid "LightMap Bake" msgstr "Приготування карти освітлення" msgid "Select lightmap bake file:" msgstr "Виберіть файл приготування карти освітлення:" +msgid "Preview is not available for this shader mode." +msgstr "Попередній перегляд недоступний для цього режиму шейдера." + msgid "Couldn't create a Trimesh collision shape." msgstr "Не вдалося створити форму зіткнення Trimesh." @@ -8591,6 +9635,29 @@ msgstr "" msgid "UV Channel Debug" msgstr "Діагностика UV-каналу" +msgid "Create NavigationMesh" +msgstr "Створити NavigationMesh" + +msgid "" +"Before converting a rendering mesh to a navigation mesh, please verify:\n" +"\n" +"- The mesh is two-dimensional.\n" +"- The mesh has no surface overlap.\n" +"- The mesh has no self-intersection.\n" +"- The mesh surfaces have indices.\n" +"\n" +"If the mesh does not fulfill these requirements, the pathfinding will be " +"broken." +msgstr "" +"Перш ніж перетворювати сітку візуалізації на сітку навігації, перевірте: \n" +"\n" +"- Сітка двовимірна. \n" +"- Сітка не має поверхневого перекриття. \n" +"- Сітка не має самоперетину. \n" +"- Сітчасті поверхні мають індекси. \n" +"\n" +"Якщо сітка не відповідає цим вимогам, пошук шляху буде порушено." + msgid "Remove item %d?" msgstr "Видалення елемента %d?" @@ -8703,9 +9770,45 @@ msgstr "Задати start_position" msgid "Set end_position" msgstr "Задати end_position" +msgid "Set Obstacle Vertices" +msgstr "Встановити вершини перешкод" + +msgid "Edit Obstacle (Flip Winding)" +msgstr "Редагувати перешкоду (Flip Winding)" + +msgid "Edit Obstacle (Clear Vertices)" +msgstr "Редагувати перешкоду (очистити вершини)" + +msgid "Add Vertex" +msgstr "Додати вершину" + +msgid "Edit Vertex" +msgstr "Редагувати вершину" + +msgid "Delete Vertex" +msgstr "Видалити вершину" + +msgid "Flip Winding" +msgstr "Фліп вітер" + +msgid "Clear Vertices" +msgstr "Очистити вершини" + +msgid "Edit Obstacle (Add Vertex)" +msgstr "Редагувати перешкоду (Додати вершину)" + +msgid "Edit Obstacle (Move Vertex)" +msgstr "Редагувати перешкоду (перемістити вершину)" + +msgid "Edit Obstacle (Remove Vertex)" +msgstr "Редагувати перешкоду (Видалити вершину)" + msgid "Please Confirm..." msgstr "Будь ласка, підтвердьте..." +msgid "Remove all vertices?" +msgstr "Видалити всі вершини?" + msgid "Create Navigation Polygon" msgstr "Створення навігаційного полігону" @@ -8779,6 +9882,9 @@ msgstr "Задній ортогональний" msgid "Rear Perspective" msgstr "Задній перспективний" +msgid "[auto]" +msgstr "[авто]" + msgid "X-Axis Transform." msgstr "Перетворення за віссю X." @@ -8983,6 +10089,9 @@ msgstr "Перегляд середовища" msgid "View Gizmos" msgstr "Перегляд гаджетів" +msgid "View Transform Gizmo" +msgstr "Переглянути Transform Gizmo" + msgid "View Grid" msgstr "Перегляд ґратки" @@ -9007,6 +10116,24 @@ msgstr "Кінематичний перегляд" msgid "Not available when using the OpenGL renderer." msgstr "Недоступно при використанні рендеринга OpenGL." +msgid "Viewport Orbit Modifier 1" +msgstr "Модифікатор орбіти вікна перегляду 1" + +msgid "Viewport Orbit Modifier 2" +msgstr "Модифікатор орбіти вікна перегляду 2" + +msgid "Viewport Pan Modifier 1" +msgstr "Модифікатор Pan Viewport 1" + +msgid "Viewport Pan Modifier 2" +msgstr "Модифікатор Pan Viewport 2" + +msgid "Viewport Zoom Modifier 1" +msgstr "Модифікатор масштабування вікна перегляду 1" + +msgid "Viewport Zoom Modifier 2" +msgstr "Модифікатор масштабування вікна перегляду 2" + msgid "Freelook Left" msgstr "Огляд ліворуч" @@ -9058,6 +10185,9 @@ msgstr "Почати Перетворення Обертання" msgid "Begin Scale Transformation" msgstr "Почати перетворення Масштабу" +msgid "Reposition Using Collisions" +msgstr "Зміна позиції за допомогою колізій" + msgid "Toggle Camera Preview" msgstr "Перемкнути попередній перегляд камери" @@ -9139,6 +10269,9 @@ msgstr "" "Групує вибраний вузол з його дочірніми вузлами. Вибирає батьківський вузол " "при натисканні будь-якого дочірнього вузла у 2D та 3D відображенні." +msgid "LMB+Drag: Measure the distance between two points in 3D space." +msgstr "LMB+перетягування: Виміряйте відстань між двома точками в 3D-просторі." + msgid "Use Local Space" msgstr "Використати локальний простір" @@ -9453,6 +10586,9 @@ msgstr "Створення області видимості (Очікуванн msgid "Generating..." msgstr "Створення..." +msgid "Loading emission mask requires ParticleProcessMaterial." +msgstr "Для завантаження емісійної маски потрібен ParticleProcessMaterial." + msgid "GPUParticles2D" msgstr "CPUParticles2D" @@ -9516,6 +10652,9 @@ msgstr "Джерело випромінювання:" msgid "A processor material of type 'ParticleProcessMaterial' is required." msgstr "Потрібен матеріал типу 'ParticlesProcessMaterial'." +msgid "Create Emission Points" +msgstr "Створення точок викидів" + msgid "GPUParticles3D" msgstr "GPUParticles3D" @@ -9558,6 +10697,9 @@ msgstr "Закрийте криву" msgid "Clear Curve Points" msgstr "Очистити точки кривої" +msgid "Create Curve in Path2D" +msgstr "Створіть криву в Path2D" + msgid "Select Points" msgstr "Виберіть пункти" @@ -9597,6 +10739,9 @@ msgstr "Віддзеркалити кути елемента керування" msgid "Mirror Handle Lengths" msgstr "Віддзеркалити довжини елемента керування" +msgid "Create Curve" +msgstr "Створити криву" + msgid "Curve Point #" msgstr "Точку кривої #" @@ -9636,6 +10781,12 @@ msgstr "Скинути контрольну точку" msgid "Reset Point Tilt" msgstr "Скинути точку нахилу" +msgid "Toggle Open/Closed Curve" +msgstr "Перемикач відкрита/закрита крива" + +msgid "Create Curve in Path3D" +msgstr "Створіть криву в Path3D" + msgid "Shift+Click: Select multiple Points" msgstr "Shift+клацання: вибір кількох точок" @@ -9735,6 +10886,13 @@ msgstr "" msgid "Script Name:" msgstr "Назва скрипту:" +msgid "" +"Optional. The name of the script file. If left empty, will default to the " +"subfolder name." +msgstr "" +"Необов'язково. Ім'я файлу сценарію. Якщо залишити порожнім, за умовчанням " +"використовуватиметься ім’я вкладеної папки." + msgid "Activate now?" msgstr "Задіяти зараз?" @@ -9806,9 +10964,15 @@ msgstr "Кістки" msgid "Move Points" msgstr "Переміщення очок" +msgid "%s: Rotate" +msgstr "%s: Обертати" + msgid "Shift: Move All" msgstr "Shift: перемістити все" +msgid "%s + Shift: Scale" +msgstr "%s + Shift: Масштаб" + msgid "Move Polygon" msgstr "Перемістити полігон" @@ -9876,6 +11040,12 @@ msgstr "Крок сітки за Y:" msgid "Sync Bones to Polygon" msgstr "Синхронізувати кістки з полігоном" +msgid "Polygon" +msgstr "Багатокутник" + +msgid "Toggle Polygon Bottom Panel" +msgstr "Перемкнути нижню панель багатокутника" + msgid "Create Polygon3D" msgstr "Створити Polygon3D" @@ -9918,6 +11088,12 @@ msgstr "" "AnimationMixer не має дійсного шляху кореневого вузла, тому неможливо " "отримати назви доріжок." +msgid "(truncated)" +msgstr "(усічений)" + +msgid "Current value: " +msgstr "Поточне значення: " + msgid "Can't open '%s'. The file could have been moved or deleted." msgstr "Не вдалося відкрити «%s». Файл могло бути пересунуто або вилучено." @@ -10044,6 +11220,9 @@ msgstr "Скрипт інструменту м'якого перезаванта msgid "Copy Script Path" msgstr "Копіювати шлях до скрипту" +msgid "Copy Script UID" +msgstr "Копіювати UID сценарію" + msgid "History Previous" msgstr "Попередній у журналі" @@ -10083,6 +11262,13 @@ msgstr "Перейти до попереднього редагованого д msgid "Go to next edited document." msgstr "Перейти до наступного редагованого документа." +msgid "" +"Make the script editor floating.\n" +"Right-click to open the screen selector." +msgstr "" +"Зробіть редактор сценаріїв плаваючим.\n" +"Клацніть правою кнопкою миші, щоб відкрити селектор екрана." + msgid "Discard" msgstr "Скинути" @@ -10120,7 +11306,10 @@ msgid "Plain Text" msgstr "Звичайний текст" msgid "JSON" -msgstr "ДЖЕСОН" +msgstr "JSON" + +msgid "Markdown" +msgstr "Markdown" msgid "Connections to method:" msgstr "З'єднання з методом:" @@ -10169,6 +11358,9 @@ msgstr "Неможливо скинути вузли без відкритої msgid "Can't drop nodes because script '%s' does not inherit Node." msgstr "Неможливо видалити вузли, оскільки сценарій «%s» не успадковує вузол." +msgid "Emoji & Symbols" +msgstr "Емодзі та символи" + msgid "Pick Color" msgstr "Вибрати колір" @@ -10301,12 +11493,22 @@ msgstr "Зберегти файл" msgid "Open File in Inspector" msgstr "Відкрити файл в Інспекторі" +msgid "Inspect Native Shader Code..." +msgstr "Перевірте рідний код шейдера..." + msgid "Close File" msgstr "Закрити файл" msgid "Shader Editor" msgstr "Редактор шейдера" +msgid "" +"Make the shader editor floating.\n" +"Right-click to open the screen selector." +msgstr "" +"Зробіть редактор шейдерів плаваючим.\n" +"Клацніть правою кнопкою миші, щоб відкрити селектор екрана." + msgid "Toggle Shader Editor Bottom Panel" msgstr "Перемкнути нижню панель редактора шейдерів" @@ -10339,7 +11541,7 @@ msgid "Create Rest Pose from Bones" msgstr "Створити вільну позу з кісток" msgid "Skeleton2D" -msgstr "Skeleton2D (Скелет 2Д)" +msgstr "Skeleton 2D" msgid "Reset to Rest Pose" msgstr "Відновити вільну позу" @@ -10347,9 +11549,24 @@ msgstr "Відновити вільну позу" msgid "Overwrite Rest Pose" msgstr "Перезаписати вільну позу" +msgid "Bone Metadata" +msgstr "Метадані кістки" + +msgid "Add Bone Metadata" +msgstr "Додайте метадані кістки" + msgid "Set Bone Transform" msgstr "Задати перетворення кістки" +msgid "Modify metadata '%s' for bone '%s'" +msgstr "Змінити метадані \"%s\" для кістки \"%s\"" + +msgid "Remove metadata '%s' from bone '%s'" +msgstr "Видалити метадані \"%s\" з кістки \"%s\"" + +msgid "Add metadata '%s' to bone '%s'" +msgstr "Додайте метадані \"%s\" до кістки \"%s\"" + msgid "Set Bone Rest" msgstr "Перемкнути нижню панель ShaderFile" @@ -10368,8 +11585,14 @@ msgstr "Експортувати профіль скелета як..." msgid "Set Bone Parentage" msgstr "Задати кістці предка" +msgid "Revert Bone" +msgstr "Повернути кістку" + +msgid "Revert" +msgstr "Повернути" + msgid "Skeleton3D" -msgstr "Skeleton3D (Скелет 3Д)" +msgstr "Skeleton 3D" msgid "Reset All Bone Poses" msgstr "Скинути всі пози кісток" @@ -10466,7 +11689,7 @@ msgid "Create LightOccluder2D Sibling" msgstr "Створити близнюка LightOccluder2D" msgid "Sprite2D" -msgstr "Спрайт2Д" +msgstr "Sprite 2D" msgid "Simplification:" msgstr "Спрощення:" @@ -11274,7 +12497,7 @@ msgid "Merge TileSetAtlasSource" msgstr "Об'єднати TileSetAtlasSource" msgid "%s (ID: %d)" -msgstr "%s (АЙДИ: %d)" +msgstr "%s (ID: %d)" msgid "Atlas Merging" msgstr "Об'єднати атласи" @@ -11449,6 +12672,9 @@ msgstr "Малювати плитки" msgid "Paste tiles" msgstr "Вставити плитки" +msgid "Selection Tool" +msgstr "Інструмент виділення" + msgid "Shift: Draw line." msgstr "Shift: малює лінію." @@ -11489,6 +12715,13 @@ msgstr "Розсіювання:" msgid "Tiles" msgstr "Плитки" +msgid "" +"This TileMap's TileSet has no Tile Source configured. Go to the TileSet " +"bottom panel to add one." +msgstr "" +"TileSet цього TileMap не має налаштованого джерела плиток. Перейдіть до " +"нижньої панелі TileSet, щоб додати його." + msgid "Sort sources" msgstr "Сортувати джерела" @@ -12033,6 +13266,9 @@ msgstr "Видалити джерело" msgid "Add atlas source" msgstr "Додати джерело атласу" +msgid "Tile Sources" +msgstr "Джерела плитки" + msgid "Sort Sources" msgstr "Сортувати джерела" @@ -12115,6 +13351,24 @@ msgstr "Властивості колекції сцен:" msgid "Tile properties:" msgstr "Властивості плитки:" +msgid "Paint Tool" +msgstr "Інструмент для малювання" + +msgid "Line Tool" +msgstr "Інструмент «Лінія»" + +msgid "Rect Tool" +msgstr "Інструмент Rect" + +msgid "Bucket Tool" +msgstr "Відро інструмент" + +msgid "Eraser Tool" +msgstr "Гумковий Інструмент" + +msgid "Picker Tool" +msgstr "Інструмент вибору" + msgid "TileMap" msgstr "TileMap" @@ -12385,6 +13639,12 @@ msgstr "" "2D-перегляд не може коректно показати результат, отриманий з параметра " "екземпляра." +msgid "Copy Preview Shader Parameters From Material" +msgstr "Копіювати параметри шейдера попереднього перегляду з матеріалу" + +msgid "Paste Preview Shader Parameters To Material" +msgstr "Вставити параметри шейдера попереднього перегляду в матеріал" + msgid "Add Input Port" msgstr "Додати вхідний порт" @@ -12502,6 +13762,9 @@ msgstr "Увімкніть автоматичне зменшення" msgid "Enable Tint Color" msgstr "Увімкнути колір відтінку" +msgid "Edit Preview Parameter: %s" +msgstr "Редагувати параметр попереднього перегляду: %s" + msgid "Duplicate VisualShader Node(s)" msgstr "Дублювати вузол(и) VisualShader" @@ -12529,9 +13792,15 @@ msgstr "Некоректна назва для варіації." msgid "Varying with that name is already exist." msgstr "Варіація з такою назвою вже існує." +msgid "Boolean type cannot be used with `%s` varying mode." +msgstr "Логічний тип не можна використовувати зі змінним режимом `%s`." + msgid "Add Node(s) to Visual Shader" msgstr "Додати вузол(и) до Visual Shader" +msgid "Hold %s Key To Swap Connections" +msgstr "Утримуйте клавішу %s, щоб поміняти з’єднання" + msgid "Vertex" msgstr "Вершина" @@ -12565,6 +13834,9 @@ msgstr "Видалити варіацію" msgid "Show generated shader code." msgstr "Показати згенерований код шейдера." +msgid "Toggle shader preview." +msgstr "Увімкнути попередній перегляд шейдера." + msgid "Generated Shader Code" msgstr "Згенерований код шейдера" @@ -12580,6 +13852,15 @@ msgstr "Вставте новий вузол" msgid "Insert New Reroute" msgstr "Вставити новий маршрут" +msgid "Filter Parameters" +msgstr "Параметри фільтра" + +msgid "Copy Parameters From Material" +msgstr "Копіювати параметри з матеріалу" + +msgid "Paste Parameters To Material" +msgstr "Вставити параметри в матеріал" + msgid "High-end node" msgstr "Висококласний вузол" @@ -12604,12 +13885,18 @@ msgstr "Функція відтінків сірого." msgid "Converts HSV vector to RGB equivalent." msgstr "Перетворює вектор HSV на еквівалентний колір RGB." +msgid "Converts color from linear to sRGB color space." +msgstr "Перетворює колір із лінійного простору кольорів у sRGB." + msgid "Converts RGB vector to HSV equivalent." msgstr "Перетворює вектор RGB на еквівалентний колір HSV." msgid "Sepia function." msgstr "Функція сепії." +msgid "Converts color from sRGB to linear color space." +msgstr "Перетворює колір із sRGB на лінійний колірний простір." + msgid "Burn operator." msgstr "Оператор вигоряння." @@ -12646,6 +13933,9 @@ msgstr "Параметр кольору." msgid "(Fragment/Light mode only) Derivative function." msgstr "(лише у режимі фрагментів або світла) Похідна функція." +msgid "Derivative function." +msgstr "Похідна функції." + msgid "Returns the boolean result of the %s comparison between two parameters." msgstr "Повертає булевий результат порівняння %s між двома параметрами." @@ -12885,6 +14175,12 @@ msgstr "" "(лише у режимі фрагментів або світла) (скаляр) Похідна у «y» на основі " "локального диференціювання." +msgid "(Scalar) Derivative in 'x' using local differencing." +msgstr "(Scalar) Похідна від 'x' з використанням локальної різниці." + +msgid "(Scalar) Derivative in 'y' using local differencing." +msgstr "(Scalar) Похідна по 'y' з використанням локальної різниці." + msgid "Base-e Exponential." msgstr "Показникова функція із основою e (експонента)." @@ -12938,6 +14234,9 @@ msgstr "Перетворює значення у градусах на знач msgid "1.0 / scalar" msgstr "1.0 / скаляр" +msgid "Remaps a value from the input range to the output range." +msgstr "Переставляє значення з вхідного діапазону на вихідний діапазон." + msgid "Finds the nearest integer to the parameter." msgstr "Знаходить найближче ціле значення до параметра." @@ -12986,6 +14285,9 @@ msgid "" msgstr "" "(лише у режимі фрагментів або світла) Сума похідних за модулем у «x» та «y»." +msgid "(Scalar) Sum of absolute derivative in 'x' and 'y'." +msgstr "(Scalar) Сума абсолютної похідної за «x» і «y»." + msgid "Returns the tangent of the parameter." msgstr "Повертає тангенс параметра." @@ -13323,6 +14625,12 @@ msgstr "" "(лише у режимі фрагментів або світла) (вектор) Похідна у «y» на основі " "локального диференціювання." +msgid "(Vector) Derivative in 'x' using local differencing." +msgstr "(Вектор) Похідна від 'x' за допомогою локальної різниці." + +msgid "(Vector) Derivative in 'y' using local differencing." +msgstr "(Вектор) Похідна за 'y' з використанням локальної різниці." + msgid "Returns the distance between two points." msgstr "Повертає відстань між точками." @@ -13380,6 +14688,16 @@ msgstr "" msgid "Returns the vector that points in the direction of refraction." msgstr "Повертає вектор, який вказує напрямок рефракції." +msgid "Remaps a vector from the input range to the output range." +msgstr "Переставляє вектор із вхідного діапазону на вихідний." + +msgid "" +"Remaps a vector from the input range to the output range. Ranges defined with " +"scalars." +msgstr "" +"Переставляє вектор із вхідного діапазону на вихідний. Діапазони, визначені за " +"допомогою скалярів." + msgid "" "SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" "\n" @@ -13430,6 +14748,9 @@ msgstr "" "(лише у режимі фрагментів або світла) (вектор) Сума похідних за модулем у «x» " "та «y»." +msgid "(Vector) Sum of absolute derivative in 'x' and 'y'." +msgstr "(Вектор) Сума абсолютної похідної за «x» і «y»." + msgid "Adds 2D vector to 2D vector." msgstr "Додає 2D-вектор до 2D-вектора." @@ -13755,6 +15076,36 @@ msgstr "" "Вилучити усі проєкти, яких не знайдено, зі списку?\n" "Вміст тек проєктів змінено не буде." +msgid "" +"It looks like Godot crashed when opening this project the last time. If " +"you're having problems editing this project, you can try to open it in " +"Recovery Mode." +msgstr "" +"Схоже, у Godot стався збій під час відкриття цього проекту востаннє. Якщо у " +"вас виникли проблеми з редагуванням цього проекту, ви можете спробувати " +"відкрити його в режимі відновлення." + +msgid "" +"Recovery Mode is a special mode that may help to recover projects that crash " +"the engine during initialization. This mode temporarily disables the " +"following features:" +msgstr "" +"Режим відновлення — це спеціальний режим, який може допомогти відновити " +"проекти, у яких під час ініціалізації відбувається збій двигуна. Цей режим " +"тимчасово вимикає такі функції:" + +msgid "" +"This mode is intended only for basic editing to troubleshoot such issues, and " +"therefore it will not be possible to run the project during this mode. It is " +"also a good idea to make a backup of your project before proceeding." +msgstr "" +"Цей режим призначений лише для базового редагування з метою усунення подібних " +"проблем, тому запустити проект у цьому режимі буде неможливо. Також доцільно " +"створити резервну копію вашого проекту, перш ніж продовжити." + +msgid "Edit the project in Recovery Mode?" +msgstr "Редагувати проект у режимі відновлення?" + msgid "Couldn't load project at '%s'. It may be missing or corrupted." msgstr "" "Не вдалося завантажити проект на «%s». Він може бути відсутнім або " @@ -13845,6 +15196,9 @@ msgstr "" msgid "Edit Project" msgstr "Редагувати проєкт" +msgid "Edit in recovery mode" +msgstr "Редагувати в режимі відновлення" + msgid "Rename Project" msgstr "Перейменувати проєкт" @@ -13870,6 +15224,12 @@ msgstr "Виберіть теку для сканування" msgid "Remove All" msgstr "Вилучити усі" +msgid "Edit normally" +msgstr "Відредагуйте нормально" + +msgid "Edit in Recovery Mode" +msgstr "Редагувати в режимі відновлення" + msgid "Convert Full Project" msgstr "Перетворити повний проект" @@ -14005,6 +15365,9 @@ msgstr "Швидкий рендеринг простих сцен." msgid "Supports desktop, mobile + web platforms." msgstr "Підтримує настільні, мобільні та веб-платформи." +msgid "Least advanced 3D graphics." +msgstr "Найменш просунута 3D-графіка." + msgid "Intended for low-end/older devices." msgstr "Призначений для бюджетних/старіших пристроїв." @@ -14064,6 +15427,15 @@ msgstr "Шлях встановлення проєкту:" msgid "Renderer:" msgstr "Обробник:" +msgid "" +"RenderingDevice-based methods not available on this GPU:\n" +"%s\n" +"Please use the Compatibility renderer." +msgstr "" +"Методи на основі RenderingDevice недоступні на цьому GPU:\n" +"%s\n" +"Будь ласка, скористайтеся рендерером сумісності." + msgid "The renderer can be changed later, but scenes may need to be adjusted." msgstr "" "Обробник можна змінити пізніше, але, можливо, виникне потреба у коригуванні " @@ -14075,6 +15447,9 @@ msgstr "Метадані керування версіями:" msgid "Git" msgstr "Git" +msgid "Edit Now" +msgstr "Редагувати зараз" + msgid "This project was last edited in a different Godot version: " msgstr "Цей проект востаннє редагувався в іншій версії Godot: " @@ -14087,6 +15462,12 @@ msgstr "Помилка: у файловій системі немає проєк msgid "Last edited timestamp" msgstr "Час останнього редагування" +msgid "Scanning" +msgstr "Сканування" + +msgid "Scanning for projects..." +msgstr "Сканування проектів..." + msgid "Missing Project" msgstr "Проєкт відсутній" @@ -14264,10 +15645,10 @@ msgid "Case" msgstr "Регістр" msgid "To Lowercase" -msgstr "нижній регістр" +msgstr "До малого регістру" msgid "To Uppercase" -msgstr "ВЕРХНІЙ РЕГІСТР" +msgstr "До верхнього регістру" msgid "Reset" msgstr "Скинути" @@ -14404,7 +15785,7 @@ msgid "Instantiate Scene" msgid_plural "Instantiate Scenes" msgstr[0] "Екземпляр сцени" msgstr[1] "Створення екземплярів сцен" -msgstr[2] "Створення екземплярів сцен" +msgstr[2] "Створення екземплярів сцени" msgid "Error loading audio stream from %s" msgstr "Помилка завантаження аудіопотоку з %s" @@ -14595,6 +15976,15 @@ msgstr "Репрезентувати на новий вузол" msgid "This operation requires a single selected node." msgstr "Ця операція вимагає одного обраного вузла." +msgid "Reset Position" +msgstr "Скинути позицію" + +msgid "Reset Scale" +msgstr "Скинути шкалу" + +msgid "Reset Rotation" +msgstr "Скинути обертання" + msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." @@ -14611,6 +16001,9 @@ msgstr "Помилка під час дублювання сцени для її msgid "Instantiate Script" msgstr "Вставити екземпляр скрипту" +msgid "<unknown>" +msgstr "<невідомий>" + msgid "Sub-Resources" msgstr "Підресурси" @@ -14642,6 +16035,9 @@ msgstr "" "Якщо ввімкнено, Reparent to New Node створить новий вузол у центрі вибраних " "вузлів, якщо це можливо." +msgid "Hide Filtered Out Parents" +msgstr "Приховати відфільтровані батьківські елементи" + msgid "All Scene Sub-Resources" msgstr "Усі підресурси сцени" @@ -14754,6 +16150,9 @@ msgstr "Долучити новий або наявний скрипт до по msgid "Detach the script from the selected node." msgstr "Від'єднати скрипт від позначеного вузла." +msgid "Extend the script of the selected node." +msgstr "Розширити сценарій вибраного вузла." + msgid "Extra scene options." msgstr "Додаткові параметри сцени." @@ -15007,6 +16406,47 @@ msgstr "" msgid "Restart & Upgrade" msgstr "Перезапуск и обновление" +msgid "Updating Script UIDs" +msgstr "Оновлення UID сценарію" + +msgid "" +"As of Godot 4.4, scenes and resources use UIDs to reference scripts and " +"shaders.\n" +"\n" +"Normally, this update is applied to a single scene or resource once you save " +"it in Godot 4.4 for the first time. If you have a lot of scenes and/or " +"resources, doing this manually may be time-consuming. This tool will update " +"all of the project's scenes and resources at once.\n" +"\n" +"Click \"Restart & Upgrade\" to restart the editor and update all of the " +"scenes and resources in this project. Depending on the project size, it may " +"take several minutes.\n" +"\n" +"Note: Please make sure you have your project backed up before running the " +"tool, to avoid the possibility of data loss. Additionally, make sure to " +"commit all .uid files into version control (and do not add them to ignore-" +"lists like .gitignore)." +msgstr "" +"Починаючи з Godot 4.4, сцени та ресурси використовують UID для посилань на " +"сценарії та шейдери. \n" +"\n" +"Зазвичай це оновлення застосовується до однієї сцени чи ресурсу, коли ви " +"вперше зберігаєте його в Godot 4.4. Якщо у вас багато сцен і/або ресурсів, " +"виконання цього вручну може зайняти багато часу. Цей інструмент оновить усі " +"сцени та ресурси проекту одночасно. \n" +"\n" +"Натисніть «Перезапустити та оновити», щоб перезапустити редактор і оновити " +"всі сцени та ресурси в цьому проекті. Залежно від розміру проекту це може " +"зайняти кілька хвилин. \n" +"\n" +"Примітка: перед запуском інструменту переконайтеся, що у вас є резервна копія " +"вашого проекту, щоб уникнути можливості втрати даних. Крім того, " +"переконайтеся, що всі файли .uid передано в контроль версій (і не додавайте " +"їх до списків ігнорування, як .gitignore)." + +msgid "Learn More" +msgstr "Дізнайтеся більше" + msgid "Make this panel floating in the screen %d." msgstr "Зробити цю панель плаваючою на екрані %d." @@ -15020,6 +16460,66 @@ msgstr "" msgid "Select Screen" msgstr "Виберіть екран" +msgid "" +"The CSGShape3D has an empty shape.\n" +"CSGShape3D empty shapes typically occur because the mesh is not manifold.\n" +"A manifold mesh forms a solid object without gaps, holes, or loose edges.\n" +"Each edge must be a member of exactly two faces." +msgstr "" +"CSGShape3D має порожню форму. \n" +"Порожні форми CSGShape3D зазвичай виникають через те, що сітка не є " +"колектором. \n" +"Сітка колектора утворює твердий об’єкт без проміжків, отворів або нещільних " +"країв. \n" +"Кожне ребро має бути членом рівно двох граней." + +msgid "CSG operation returned an empty array." +msgstr "Операція CSG повернула порожній масив." + +msgid "" +"Can not add a baked mesh as sibling for the scene root.\n" +"Move the CSG root node below a parent node." +msgstr "" +"Неможливо додати запечену сітку як брата для кореня сцени.\n" +"Перемістіть кореневий вузол CSG нижче батьківського вузла." + +msgid "CSG operation returned an empty mesh." +msgstr "Операція CSG повернула порожню сітку." + +msgid "Create baked CSGShape3D Mesh Instance" +msgstr "Створіть запечений екземпляр сіті CSGShape3D" + +msgid "" +"Can not add a baked collision shape as sibling for the scene root.\n" +"Move the CSG root node below a parent node." +msgstr "" +"Неможливо додати запечену форму зіткнення як рідну для кореня сцени.\n" +"Перемістіть кореневий вузол CSG нижче батьківського вузла." + +msgid "CSG operation returned an empty shape." +msgstr "Операція CSG повернула порожню форму." + +msgid "Create baked CSGShape3D Collision Shape" +msgstr "Створіть запечену форму зіткнення CSGShape3D" + +msgid "CSG" +msgstr "CSG" + +msgid "Bake Mesh Instance" +msgstr "Примірник Bake Mesh" + +msgid "Bake Collision Shape" +msgstr "Випікайте форму зіткнення" + +msgid "Change CSG Box Size" +msgstr "Змінити розмір коробки CSG" + +msgid "Change CSG Cylinder Radius" +msgstr "Змінити радіус циліндра CSG" + +msgid "Change CSG Cylinder Height" +msgstr "Змінити висоту циліндра CSG" + msgid "Change Torus Inner Radius" msgstr "Змінити внутрішній радіус тора" @@ -15035,6 +16535,29 @@ msgstr "Неможливо змінити розмір масиву." msgid "Step argument is zero!" msgstr "Аргумент кроку нуль!" +msgid "Not a script with an instance." +msgstr "Не сценарій з екземпляром." + +msgid "Not based on a script." +msgstr "Не на основі сценарію." + +msgid "Not based on a resource file." +msgstr "Не базується на файлі ресурсів." + +msgid "Invalid instance dictionary format (missing @path)." +msgstr "Недійсний формат словника екземплярів (відсутній @path)." + +msgid "Invalid instance dictionary format (can't load script at @path)." +msgstr "" +"Недійсний формат словника екземпляра (не вдається завантажити сценарій за " +"@path)." + +msgid "Invalid instance dictionary format (invalid script at @path)." +msgstr "Недійсний формат словника екземпляра (недійсний сценарій на @path)." + +msgid "Invalid instance dictionary (invalid subclasses)." +msgstr "Недійсний словник екземплярів (недійсні підкласи)." + msgid "Cannot instantiate GDScript class." msgstr "Не вдається інстанціювати клас GDScript." @@ -15157,6 +16680,12 @@ msgstr "Редагувати вісь Y" msgid "Edit Z Axis" msgstr "Редагувати вісь Z" +msgid "Keep Selection" +msgstr "Зберегти виділення" + +msgid "Clear Rotation" +msgstr "Очистити обертання" + msgid "GridMap Settings" msgstr "Параметри GridMap" @@ -15166,6 +16695,9 @@ msgstr "Відстань вибору:" msgid "Selection" msgstr "Вибір" +msgid "Erase" +msgstr "Стерти" + msgid "Cursor Rotate X" msgstr "Обертання вказівника навколо X" @@ -15175,6 +16707,15 @@ msgstr "Обертання вказівника навколо Y" msgid "Cursor Rotate Z" msgstr "Обертання вказівника навколо Z" +msgid "" +"Change Grid Floor:\n" +"Previous Plane (%s)\n" +"Next Plane (%s)" +msgstr "" +"Змінити підлогу сітки:\n" +"Попередній літак (%s)\n" +"Наступний літак (%s)" + msgid "Filter Meshes" msgstr "Фільтрувати сітки" @@ -15182,6 +16723,12 @@ msgid "Give a MeshLibrary resource to this GridMap to use its meshes." msgstr "" "Додайте ресурс MeshLibrary до цього GridMap, щоб скористатися його сітками." +msgid "GridMap" +msgstr "GridMap" + +msgid "Toggle GridMap Bottom Panel" +msgstr "Перемкнути нижню панель GridMap" + msgid "All Clips" msgstr "Всі кліпи" @@ -15195,10 +16742,10 @@ msgid "Disabled" msgstr "Вимкнено" msgid "Fade-In" -msgstr "поступове посилення" +msgstr "Поступове посилення" msgid "Fade-Out" -msgstr "поступове затухання" +msgstr "Поступове затухання" msgid "Cross-Fade" msgstr "Перехресне зникнення" @@ -15236,11 +16783,11 @@ msgstr "Те саме" msgctxt "Transition Time Position" msgid "Start" -msgstr "старт" +msgstr "Старт" msgctxt "Transition Time Position" msgid "Prev" -msgstr "попередня" +msgstr "Попередня" msgid "From / To" msgstr "Від/До" @@ -15308,12 +16855,18 @@ msgstr "Неоклюзійна геометрія" msgid "Plot direct lighting" msgstr "Пряме освітлення ділянки" +msgid "Plot direct lighting %d%%" +msgstr "Пряме освітлення ділянки %d%%" + msgid "Integrate indirect lighting" msgstr "Інтеграція непрямого освітлення" msgid "Integrate indirect lighting %d%%" msgstr "Інтегрувати непряме освітлення %d%%" +msgid "Baking light probes" +msgstr "Світлові зонди для випічки" + msgid "Integrating light probes %d%%" msgstr "Інтеграція світлових зондів %d%%" @@ -15332,6 +16885,20 @@ msgstr "Ім'я класу має бути дійсним ідентифікат msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "Недостатньо байтів для їх декодування або вказано некоректний формат." +msgid "" +"Unable to load .NET runtime, no compatible version was found.\n" +"Attempting to create/edit a project will lead to a crash.\n" +"\n" +"Please install the .NET SDK 8.0 or later from https://get.dot.net and restart " +"Godot." +msgstr "" +"Не вдалося завантажити середовище виконання .NET, сумісної версії не " +"знайдено. \n" +"Спроба створити/редагувати проект призведе до збою. \n" +"\n" +"Установіть .NET SDK 8.0 або новішої версії з https://get.dot.net і " +"перезапустіть Godot." + msgid "Failed to load .NET runtime" msgstr "Не вдалося завантажити середовище виконання .NET" @@ -15345,6 +16912,19 @@ msgstr "" msgid ".NET assemblies not found" msgstr ".NET збірок не знайдено" +msgid "" +"Unable to load .NET runtime, specifically hostfxr.\n" +"Attempting to create/edit a project will lead to a crash.\n" +"\n" +"Please install the .NET SDK 8.0 or later from https://get.dot.net and restart " +"Godot." +msgstr "" +"Не вдалося завантажити середовище виконання .NET, зокрема hostfxr. \n" +"Спроба створити/редагувати проект призведе до збою. \n" +"\n" +"Установіть .NET SDK 8.0 або новішої версії з https://get.dot.net і " +"перезапустіть Godot." + msgid "%d (%s)" msgstr "%d (%s)" @@ -15375,7 +16955,7 @@ msgid "Count" msgstr "Кількість" msgid "Replication" -msgstr "тиражування" +msgstr "Тиражування" msgid "Toggle Replication Bottom Panel" msgstr "Перемкнути нижню панель реплікації" @@ -15601,6 +17181,23 @@ msgstr "Додати дію." msgid "Remove action set." msgstr "Видалити набір дій." +msgid "Remove binding modifier." +msgstr "Видалити модифікатор прив’язки." + +msgid "Remove binding modifier" +msgstr "Видалити модифікатор прив’язки" + +msgid "Add binding modifier" +msgstr "Додати модифікатор прив’язки" + +msgid "Note: modifiers will only be applied if supported on the host system." +msgstr "" +"Примітка: модифікатори застосовуватимуться, лише якщо вони підтримуються в " +"системі хосту." + +msgid "Binding modifiers for:" +msgstr "Модифікатори прив'язки для:" + msgid "OpenXR Action Map" msgstr "Карта дій OpenXR" @@ -15610,12 +17207,21 @@ msgstr "Перемкнути нижню панель карти дій OpenXR" msgid "Remove action from interaction profile" msgstr "Видалити дію з інтерактивного профілю" +msgid "Edit binding modifiers" +msgstr "Редагувати модифікатори прив’язки" + +msgid "Note: This interaction profile requires extension %s support." +msgstr "Примітка. Цей профіль взаємодії потребує підтримки розширення %s." + msgid "Add binding" msgstr "Додати прив'язку" msgid "Remove binding" msgstr "Вилучити прив'язку" +msgid "Note: This binding path requires extension %s support." +msgstr "Примітка. Цей шлях зв’язування вимагає підтримки розширення %s." + msgid "Pose" msgstr "Поза" @@ -15631,6 +17237,9 @@ msgstr "Вибрати дію" msgid "Select an interaction profile" msgstr "Виберіть профіль взаємодії" +msgid "All interaction profiles have been added to the action map." +msgstr "Усі профілі взаємодії додано до карти дій." + msgid "Choose an XR runtime." msgstr "Виберіть середовище виконання XR." @@ -15641,6 +17250,13 @@ msgstr "" "Неможливо використовувати той самий SubViewport із кількома композиційними " "шарами OpenXR. Спочатку очистіть його від поточного шару." +msgid "" +"Cannot set SubViewport on an OpenXR composition layer when using an Android " +"surface." +msgstr "" +"Неможливо встановити SubViewport на композиційному шарі OpenXR під час " +"використання поверхні Android." + msgid "OpenXR composition layers must have an XROrigin3D node as their parent." msgstr "Композиційні шари OpenXR повинні мати вузол XROrigin3D як батьківський." @@ -15657,6 +17273,9 @@ msgstr "" "Перфорація не працюватиме належним чином, якщо порядок сортування не буде " "меншим за нуль." +msgid "OpenXR visibility mask must have an XRCamera3D node as their parent." +msgstr "Маска видимості OpenXR повинна мати вузол XRCamera3D як батьківський." + msgid "Package name is missing." msgstr "Відсутня назва пакета." @@ -15684,6 +17303,11 @@ msgstr "Некоректний відкритий ключ для розгорт msgid "Invalid package name:" msgstr "Некоректна назва пакунка:" +msgid "\"Use Gradle Build\" is required to enable \"Swipe to dismiss\"." +msgstr "" +"\"Використовувати збірку Gradle\" потрібен, щоб увімкнути \"Проведіть " +"пальцем, щоб відхилити\"." + msgid "\"Use Gradle Build\" must be enabled to use the plugins." msgstr "" "Щоб використовувати плагіни, потрібно ввімкнути «Використовувати збірку " @@ -15735,6 +17359,21 @@ msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "" "Версія \"Цільовий SDK\" має бути більшою або рівною за версію \"Min SDK\"." +msgid "\"Use Gradle Build\" must be enabled to enable \"Show In Android Tv\"." +msgstr "" +"\"Використовувати збірку Gradle\" потрібно ввімкнути, щоб увімкнути функцію " +"\"Показувати в Android Tv\"." + +msgid "\"Use Gradle Build\" must be enabled to enable \"Show As Launcher App\"." +msgstr "" +"\"Використовувати збірку Gradle\" потрібно ввімкнути, щоб увімкнути " +"\"Показати як програму запуску\"." + +msgid "\"Use Gradle Build\" must be enabled to disable \"Show In App Library\"." +msgstr "" +"\"Використовувати збірку Gradle\" потрібно ввімкнути, щоб вимкнути " +"\"Показувати в бібліотеці програм\"." + msgid "Select device from the list" msgstr "Вибрати пристрій зі списку" @@ -15763,9 +17402,28 @@ msgid "Error: There was a problem validating the keystore username and password" msgstr "" "Помилка: виникла проблема перевірки імені користувача та пароля сховища ключів" +msgid "" +"Unable to determine the C# project's TFM, it may be incompatible. The export " +"template only supports '%s'. Make sure the project targets '%s' or consider " +"using gradle builds instead." +msgstr "" +"Неможливо визначити TFM проекту C#, можливо, він несумісний. Шаблон експорту " +"підтримує лише «%s». Переконайтеся, що проект націлений на «%s», або " +"подумайте про використання натомість збірок gradle." + +msgid "" +"C# project targets '%s' but the export template only supports '%s'. Consider " +"using gradle builds instead." +msgstr "" +"Проект C# націлений на «%s», але шаблон експорту підтримує лише «%s». " +"Натомість подумайте про використання збірок gradle." + msgid "Exporting to Android when using C#/.NET is experimental." msgstr "Експортування в Android при використанні C#/.NET є експериментальним." +msgid "Gradle build is not supported for the Android editor." +msgstr "Збірка Gradle не підтримується для редактора Android." + msgid "Custom Android source template not found." msgstr "Користувацький вихідний шаблон Android не знайдено." @@ -15868,9 +17526,37 @@ msgstr "" msgid "Code Signing" msgstr "Підписання коду" +msgid "AAB signing is not supported" +msgstr "Підписання AAB не підтримується" + +msgid "Signing debug APK..." +msgstr "Підписання налагоджувального APK..." + +msgid "Signing release APK..." +msgstr "Підписання випуску APK..." + msgid "Could not find keystore, unable to export." msgstr "Не вдалося знайти сховище ключів. Неможливо виконати експортування." +msgid "Unable to sign apk." +msgstr "Неможливо підписати apk." + +msgid "" +"All 'apksigner' tools located in Android SDK 'build-tools' directory failed " +"to execute. Please check that you have the correct version installed for your " +"target sdk version. The resulting APK is unsigned." +msgstr "" +"Не вдалося виконати всі інструменти «apksigner», розташовані в каталозі " +"«build-tools» Android SDK. Перевірте, чи встановлено правильну версію для " +"цільової версії SDK. Отриманий APK не підписаний." + +msgid "" +"'apksigner' could not be found. Please check that the command is available in " +"the Android SDK build-tools directory. The resulting APK is unsigned." +msgstr "" +"'apksigner' не вдалося знайти. Будь ласка, переконайтеся, що команда доступна " +"в каталозі інструментів збірки Android SDK. Отриманий APK не підписаний." + msgid "Could not start apksigner executable." msgstr "Не вдалося запустити виконуваний файл apksigner." @@ -15884,6 +17570,15 @@ msgstr "" "Вивід: \n" "%s" +msgid "Verifying APK..." +msgstr "Перевірка APK..." + +msgid "Unable to verify signed apk." +msgstr "Не вдалося перевірити підписаний файл apk." + +msgid "'apksigner' verification of APK failed." +msgstr "'apksigner' перевірити APK не вдалося." + msgid "Target folder does not exist or is inaccessible: \"%s\"" msgstr "Цільова папка не існує або недоступна: \"%s\"" @@ -15950,6 +17645,12 @@ msgstr "Пересування виведених даних" msgid "Unable to copy and rename export file:" msgstr "Неможливо скопіювати та перейменувати файл експорту:" +msgid "Debug export template not found: \"%s\"." +msgstr "Шаблон експорту налагодження не знайдено: \"%s\"." + +msgid "Release export template not found: \"%s\"." +msgstr "Шаблон експорту випуску не знайдено: \"%s\"." + msgid "Creating APK..." msgstr "Створення APK…" @@ -16051,12 +17752,6 @@ msgstr "" "Запитану бібліотеку шаблонів \"%s\" не знайдено. Можливо, він відсутній у " "вашому архіві шаблонів." -msgid "ARM64 simulator library, generating from device library." -msgstr "Бібліотека симулятора ARM64, створена з бібліотеки пристроїв." - -msgid "Unable to generate ARM64 simulator library." -msgstr "Не вдалося створити бібліотеку симулятора ARM64." - msgid "Could not copy a file at path \"%s\" to \"%s\"." msgstr "Не вдалося скопіювати файл на шляху \"%s\" до \"%s\"." @@ -16100,6 +17795,9 @@ msgstr "Експорт в iOS при використанні C#/.NET є екс msgid "Invalid additional PList content: " msgstr "Недійсний додатковий вміст PList: " +msgid "Metal renderer require iOS 14+." +msgstr "Metal renderer вимагає iOS 14+." + msgid "Identifier is missing." msgstr "Ідентифікатор відсутній." @@ -16130,12 +17828,33 @@ msgstr "Експорт сценарію налагодження" msgid "Could not open file \"%s\"." msgstr "Не вдалося відкрити файл \"%s\"." +msgid "" +"Mismatching custom export template executable architecture, found \"%s\", " +"expected \"%s\"." +msgstr "" +"Невідповідна архітектура виконуваного шаблону спеціального експорту, знайдено " +"\"%s\", очікується \"%s\"." + msgid "Debug Console Export" msgstr "Експорт консолі налагодження" msgid "Could not create console wrapper." msgstr "Не вдалося створити оболонку консолі." +msgid "" +"Mismatching custom debug export template executable architecture: found " +"\"%s\", expected \"%s\"." +msgstr "" +"Невідповідна архітектура виконуваного файлу спеціального шаблону експорту " +"налагодження: знайдено \"%s\", очікується \"%s\"." + +msgid "" +"Mismatching custom release export template executable architecture: found " +"\"%s\", expected \"%s\"." +msgstr "" +"Невідповідна архітектура шаблону експорту спеціального випуску: знайдено " +"\"%s\", очікується \"%s\"." + msgid "Failed to open executable file \"%s\"." msgstr "Не вдалося відкрити виконуваний файл \"%s\"." @@ -16388,6 +18107,14 @@ msgstr "" msgid "Could not created symlink \"%s\" -> \"%s\"." msgstr "Не вдалося створити символічне посилання \"%s\" -> \"%s\"." +msgid "" +"Unable to set Unix permissions for executable \"%s\". Use \"chmod +x\" to set " +"it after transferring the exported .app to macOS or Linux." +msgstr "" +"Не вдалося встановити дозволи Unix для виконуваного файлу \"%s\". " +"Використовуйте \"chmod +x\", щоб установити його після перенесення " +"експортованого .app до macOS або Linux." + msgid "Could not open \"%s\"." msgstr "Не вдалося відкрити \"%s\"." @@ -16524,7 +18251,7 @@ msgid "Could not write file: \"%s\"." msgstr "Не вдалося записати файл: \"%s\"." msgid "Icon Creation" -msgstr "Ф" +msgstr "Створення значків" msgid "Could not read file: \"%s\"." msgstr "Не вдалося прочитати файл: \"%s\"." @@ -16585,6 +18312,13 @@ msgstr "Модифікація ресурсів" msgid "Icon size \"%d\" is missing." msgstr "Відсутній розмір піктограми \"%d\"." +msgid "" +"Mismatching custom export template executable architecture: found \"%s\", " +"expected \"%s\"." +msgstr "" +"Невідповідна архітектура виконуваного шаблону спеціального експорту: знайдено " +"\"%s\", очікується \"%s\"." + msgid "Failed to rename temporary file \"%s\"." msgstr "Не вдалося перейменувати тимчасовий файл \"%s\"." @@ -16710,6 +18444,19 @@ msgstr "" "Анімація Particles2D потребує використання CanvasItemMaterial із увімкненим " "параметром «Анімація часток»." +msgid "" +"Particle trails are only available when using the Forward+ or Mobile " +"renderers." +msgstr "" +"Сліди частинок доступні лише під час використання засобів візуалізації " +"Forward+ або Mobile." + +msgid "" +"Particle sub-emitters are not available when using the Compatibility renderer." +msgstr "" +"Субвипромінювачі частинок недоступні під час використання рендерера " +"сумісності." + msgid "" "A texture with the shape of the light must be supplied to the \"Texture\" " "property." @@ -16739,6 +18486,21 @@ msgstr "" "Початкова позиція NavigationLink2D повинна відрізнятися від кінцевої, щоб " "бути корисною." +msgid "NavigationObstacle2D does not support negative or zero scaling." +msgstr "NavigationObstacle2D не підтримує негативне або нульове масштабування." + +msgid "" +"The agent radius can only be scaled uniformly. The largest value along the " +"two axes of the global scale will be used to scale the radius. This value may " +"change in unexpected ways when the node is rotated." +msgstr "" +"Радіус агента можна масштабувати лише рівномірно. Найбільше значення по двох " +"осях глобального масштабу буде використано для масштабування радіуса. Це " +"значення може змінитися неочікуваним чином під час обертання вузла." + +msgid "Skew has no effect on the agent radius." +msgstr "Перекіс не впливає на радіус агента." + msgid "" "A NavigationMesh resource must be set or created for this node to work. " "Please set a property or draw a polygon." @@ -16810,6 +18572,13 @@ msgstr "" "Для забезпечення працездатності CollisionShape2D слід надати форму. Будь " "ласка, створіть ресурс форми для цього елемента!" +msgid "" +"The CollisionShape2D node has limited editing options for polygon-based " +"shapes. Consider using a CollisionPolygon2D node instead." +msgstr "" +"Вузол CollisionShape2D має обмежені можливості редагування форм на основі " +"багатокутників. Натомість подумайте про використання вузла CollisionPolygon2D." + msgid "Node A and Node B must be PhysicsBody2Ds" msgstr "Вузол A і вузол B мають бути PhysicsBody2D" @@ -16962,6 +18731,10 @@ msgstr "" "Анімація CPUParticles3D вимагає використання StandardMaterial3D, режим " "Billboard Mode якого встановлено на \"Particle Billboard\"." +msgid "Decals are only available when using the Forward+ or Mobile renderers." +msgstr "" +"Наклейки доступні лише під час використання рендерів Forward+ або Mobile." + msgid "" "The decal has no textures loaded into any of its texture properties, and will " "therefore not be visible." @@ -16991,6 +18764,10 @@ msgstr "" " Щоб вирішити цю проблему, увімкніть принаймні один біт у властивості Cull " "Mask." +msgid "Fog Volumes are only visible when using the Forward+ renderer." +msgstr "" +"Об’єми туману відображаються лише під час використання рендерера Forward+." + msgid "" "Fog Volumes need volumetric fog to be enabled in the scene's Environment in " "order to be visible." @@ -17033,6 +18810,13 @@ msgstr "" "Трейли ввімкнено, але один або кілька матеріалів сітки відсутні або не " "налаштовані для візуалізації трейлів." +msgid "" +"Particle sub-emitters are only available when using the Forward+ or Mobile " +"renderers." +msgstr "" +"Субвипромінювачі частинок доступні лише під час використання засобів " +"візуалізації Forward+ або Mobile." + msgid "" "The Bake Mask has no bits enabled, which means baking will not produce any " "collision for this GPUParticlesCollisionSDF3D.\n" @@ -17048,6 +18832,13 @@ msgstr "Масштаб світильника не впливає на візу msgid "Projector texture only works with shadows active." msgstr "Текстура проектора працює лише з активними тінями." +msgid "" +"Projector textures are not supported when using the Compatibility renderer " +"yet. Support will be added in a future release." +msgstr "" +"Текстури проектора ще не підтримуються під час використання рендерера " +"сумісності. Підтримку буде додано в майбутньому випуску." + msgid "A SpotLight3D with an angle wider than 90 degrees cannot cast shadows." msgstr "" "SpotLight3D з кутом, який є більшим за 90 градусів, не може давати тіні." @@ -17076,6 +18867,46 @@ msgstr "Генерування об'ємів зонда" msgid "Generating Probe Acceleration Structures" msgstr "Генерация ускоряющих структур зонда" +msgid "" +"Lightmaps can only be baked from a GPU that supports the RenderingDevice " +"backends.\n" +"Your GPU (%s) does not support RenderingDevice, as it does not support " +"Vulkan, Direct3D 12, or Metal.\n" +"Lightmap baking will not be available on this device, although rendering " +"existing baked lightmaps will work." +msgstr "" +"Карти освітлення можна створювати лише з графічного процесора, який підтримує " +"серверні модулі RenderingDevice. \n" +"Ваш графічний процесор (%s) не підтримує RenderingDevice, оскільки він не " +"підтримує Vulkan, Direct3D 12 або Metal. \n" +"Запікання карт освітлення не буде доступне на цьому пристрої, хоча рендеринг " +"існуючих запечених карт освітлення працюватиме." + +msgid "" +"The lightmap has no baked shadowmask textures. Please rebake with the " +"Shadowmask Mode set to anything other than None." +msgstr "" +"Карта освітлення не має текстур тіньової маски. Будь ласка, перезапустіть, " +"встановивши для режиму Shadowmask будь-яке значення, крім None." + +msgid "" +"Lightmaps cannot be baked on %s. Rendering existing baked lightmaps will " +"still work." +msgstr "" +"Карти освітлення не можна запікати на %s. Візуалізація існуючих запечених " +"карт світла все одно працюватиме." + +msgid "" +"Lightmaps cannot be baked, as the `lightmapper_rd` module was disabled at " +"compile-time. Rendering existing baked lightmaps will still work." +msgstr "" +"Карти освітлення неможливо запекти, оскільки модуль `lightmapper_rd` було " +"вимкнено під час компіляції. Візуалізація існуючих запечених карт світла все " +"одно працюватиме." + +msgid "Forward axis and primary rotation axis must not be parallel." +msgstr "Передня вісь і основна вісь обертання не повинні бути паралельні." + msgid "" "The NavigationAgent3D can be used only under a Node3D inheriting parent node." msgstr "" @@ -17089,6 +18920,24 @@ msgstr "" "Початкова позиція NavigationLink3D повинна відрізнятися від кінцевої, щоб " "бути корисною." +msgid "" +"NavigationObstacle3D only takes global rotation around the y-axis into " +"account. Rotations around the x-axis or z-axis might lead to unexpected " +"results." +msgstr "" +"NavigationObstacle3D враховує лише глобальне обертання навколо осі y. " +"Обертання навколо осі x або z може призвести до неочікуваних результатів." + +msgid "NavigationObstacle3D does not support negative or zero scaling." +msgstr "NavigationObstacle3D не підтримує негативне або нульове масштабування." + +msgid "" +"The agent radius can only be scaled uniformly. The largest scale value along " +"the three axes will be used." +msgstr "" +"Радіус агента можна масштабувати лише рівномірно. Використовуватиметься " +"найбільше значення масштабу по трьох осях." + msgid "" "Occlusion culling is disabled in the Project Settings, which means occlusion " "culling won't be performed in the root viewport.\n" @@ -17309,6 +19158,9 @@ msgstr "" "Властивість \"Remote Path\" має вказувати на дійсний вузол Node3D або " "похідний вузол Node3D, щоб працювати." +msgid "There is no child Skeleton3D!" +msgstr "Дочірнього Skeleton3D немає!" + msgid "Skeleton3D node not set! SkeletonModifier3D must be child of Skeleton3D." msgstr "" "Вузол Skeleton3D не встановлено! SkeletonModifier3D має бути дочірнім " @@ -17317,6 +19169,9 @@ msgstr "" msgid "This body will be ignored until you set a mesh." msgstr "Це тіло буде проігноровано, аж доки ви не встановите сітку." +msgid "Parent node should be a SpringBoneSimulator3D node." +msgstr "Батьківський вузол має бути вузлом SpringBoneSimulator3D." + msgid "" "A SpriteFrames resource must be created or set in the \"Sprite Frames\" " "property in order for AnimatedSprite3D to display frames." @@ -17379,6 +19234,13 @@ msgstr "Генерування поля відстані" msgid "Finishing Plot" msgstr "Завершальна ділянка" +msgid "" +"VoxelGI nodes are not supported when using the Compatibility renderer yet. " +"Support will be added in a future release." +msgstr "" +"Вузли VoxelGI поки що не підтримуються під час використання інструмента " +"візуалізації сумісності. Підтримку буде додано в майбутньому випуску." + msgid "" "No VoxelGI data set, so this node is disabled. Bake static objects to enable " "GI." @@ -17459,6 +19321,15 @@ msgstr "" msgid "Copy this constructor in a script." msgstr "Скопіюйте цей конструктор у скрипт." +msgid "Load Color Palette" +msgstr "Завантажити палітру кольорів" + +msgid "Save Color Palette" +msgstr "Зберегти палітру кольорів" + +msgid "Quick Load" +msgstr "Швидке завантаження" + msgid "Switch between hexadecimal and code values." msgstr "Перемикання між шістнадцятковими значеннями і кодами." @@ -17503,6 +19374,16 @@ msgstr "" "Поточний шрифт не підтримує відображення одного або декількох символів, що " "використовуються в тексті цієї мітки." +msgid "" +"The current theme style has shadows and/or rounded corners for popups, but " +"those won't display correctly if \"display/window/per_pixel_transparency/" +"allowed\" isn't enabled in the Project Settings, nor if it isn't supported." +msgstr "" +"Поточний стиль теми має тіні та/або закруглені кути для спливаючих вікон, але " +"вони не відображатимуться належним чином, якщо «display/window/" +"per_pixel_transparency/allowed» не ввімкнено в налаштуваннях проекту або якщо " +"він не підтримується." + msgid "If \"Exp Edit\" is enabled, \"Min Value\" must be greater than 0." msgstr "Якщо увімкнено «Exp Edit», «Min Value» має бути > 0." @@ -17688,6 +19569,12 @@ msgstr "Використовувати всі поверхні" msgid "Surface Index" msgstr "Індекс поверхні" +msgid "Division by zero error." +msgstr "Помилка ділення на нуль." + +msgid "Modulo by zero error." +msgstr "Похибка за модулем нуля." + msgid "" "Invalid number of arguments when calling stage function '%s', which expects " "%d arguments." @@ -17761,6 +19648,16 @@ msgstr "Очікується ',' або ')' після аргументу." msgid "Varying may not be assigned in the '%s' function." msgstr "Варіанти не можуть бути призначені у функції '%s'." +msgid "Varying with '%s' data type may only be assigned in the '%s' function." +msgstr "Зміна типу даних \"%s\" може бути призначена лише у функції \"%s\"." + +msgid "" +"Varyings which assigned in '%s' function may not be reassigned in '%s' or " +"'%s'." +msgstr "" +"Варіанти, призначені у функції «%s», не можуть бути перепризначені у «%s» або " +"«%s»." + msgid "'%s' cannot be used within the '%s' processor function." msgstr "'%s' не може бути використаний у функції процесора '%s'." @@ -17819,6 +19716,9 @@ msgstr "Очікується додатна ціла константа." msgid "Invalid data type for the array." msgstr "Некоректний тип даних для масиву." +msgid "Array size mismatch. Expected %d elements (found %d)." +msgstr "Невідповідність розміру масиву. Очікувано %d елементів (знайдено %d)." + msgid "Expected array initialization." msgstr "Очікується ініціалізація масиву." @@ -17871,6 +19771,12 @@ msgstr "" " Щоб продовжити з мінімальними змінами коду, додайте 'uniform sampler2D %s : " "hint_%s, filter_linear_mipmap;' біля верхньої частини шейдера." +msgid "Varying with '%s' data type may only be used in the '%s' function." +msgstr "Варіанти типу даних \"%s\" можна використовувати лише у функції \"%s\"." + +msgid "Varying '%s' must be assigned in the '%s' function first." +msgstr "Змінний '%s' має бути спочатку призначений у функції '%s'." + msgid "Can't use function as identifier: '%s'." msgstr "Не можна використовувати функцію як ідентифікатор: '%s'." @@ -17901,11 +19807,6 @@ msgstr "Об'єкт типу '%s' не може бути проіндексов msgid "Invalid base type for increment/decrement operator." msgstr "Неправильний базовий тип для оператора інкременту/декременту." -msgid "Invalid use of increment/decrement operator in a constant expression." -msgstr "" -"Неправильне використання оператора інкременту/декременту в константному " -"виразі." - msgid "Invalid token for the operator: '%s'." msgstr "Недійсний маркер для оператора: '%s'." @@ -17958,6 +19859,9 @@ msgstr "" msgid "Expected a boolean expression." msgstr "Очікувався логічний вираз." +msgid "Expected an integer or unsigned integer expression." +msgstr "Очікувався цілий або беззнаковий цілий вираз." + msgid "Cases must be defined before default case." msgstr "Регістри повинні бути визначені перед регістром за замовчуванням." @@ -17967,6 +19871,9 @@ msgstr "Регістр за замовчуванням повинен бути msgid "'%s' must be placed within a '%s' block." msgstr "'%s' має бути розміщено всередині блоку '%s'." +msgid "Expected an unsigned integer constant." +msgstr "Очікується ціла константа без знаку." + msgid "Expected an integer constant." msgstr "Очікувалась цілочисельна константа." @@ -17979,15 +19886,24 @@ msgstr "Використання '%s' у функції процесора '%s' msgid "Expected '%s' with an expression of type '%s'." msgstr "Очікувався '%s' з виразом типу '%s'." +msgid "'%s' function cannot return a value." +msgstr "Функція '%s' не може повернути значення." + msgid "Expected return with an expression of type '%s'." msgstr "Очікуваний результат із виразом типу \"%s\"." +msgid "Use of '%s' is not supported for the '%s' shader type." +msgstr "Використання «%s» не підтримується для типу шейдера «%s»." + msgid "'%s' is not allowed outside of a loop or '%s' statement." msgstr "'%s' не допускається поза циклом або оператором '%s'." msgid "'%s' is not allowed outside of a loop." msgstr "'%s' не допускається поза циклом." +msgid "The middle expression is expected to have a boolean data type." +msgstr "Очікується, що середній вираз матиме логічний тип даних." + msgid "The left expression is expected to be a variable declaration." msgstr "Очікується, що лівий вираз буде оголошенням змінної." @@ -18106,6 +20022,15 @@ msgstr "Очікується ',' після цілої константи." msgid "Expected an integer constant after ','." msgstr "Очікується ціла константа після ','." +msgid "Enum hint is for '%s' only." +msgstr "Підказка Enum лише для «%s»." + +msgid "Expected a string constant." +msgstr "Очікується рядкова константа." + +msgid "Expected ',' or ')' after string constant." +msgstr "Очікується \",\" або \")\" після константи рядка." + msgid "Can only specify '%s' once." msgstr "'%s' можна вказати лише один раз." @@ -18117,6 +20042,13 @@ msgstr "" "Допустимі рівномірні індекси екземплярів повинні знаходитися в діапазоні [0.." "%d]." +msgid "" +"'hint_normal_roughness_texture' is only available when using the Forward+ " +"renderer." +msgstr "" +"'hint_normal_roughness_texture' доступний лише під час використання засобу " +"візуалізації Forward+." + msgid "'hint_normal_roughness_texture' is not supported in '%s' shaders." msgstr "'hint_normal_roughness_texture' не підтримується у шейдерах '%s'." @@ -18202,6 +20134,9 @@ msgstr "" msgid "Expected an identifier after type." msgstr "Очікується ідентифікатор після типу." +msgid "'%s' qualifier cannot be used with a function return type." +msgstr "'%s' кваліфікатор не можна використовувати з типом повернення функції." + msgid "" "The '%s' qualifier cannot be used within a function parameter declared with " "'%s'." @@ -18233,6 +20168,18 @@ msgstr "Очікується '{' на початку функції." msgid "Expected at least one '%s' statement in a non-void function." msgstr "Очікується хоча б один оператор '%s' у функції, що не є void." +msgid "" +"Varying with integer data type must be declared with `%s` interpolation " +"qualifier." +msgstr "" +"Варіанти з цілочисельним типом даних повинні бути оголошені за допомогою " +"кваліфікатора інтерполяції `%s`." + +msgid "Too many varyings used in shader (%d used, maximum supported is %d)." +msgstr "" +"У шейдері використовується забагато варіацій (використано %d, максимальна " +"кількість підтримується: %d)." + msgid "uniform buffer" msgstr "рівномірний буфер" @@ -18269,12 +20216,18 @@ msgstr "'##' не має з'являтися на початку розгорт msgid "'##' must not appear at end of macro expansion." msgstr "'##' не має з’являтися в кінці розгортання макросу." +msgid "Unmatched '%s' directive." +msgstr "Невідповідна директива \"%s\"." + msgid "Missing condition." msgstr "Відсутня умова." msgid "Condition evaluation error." msgstr "Помилка при аналізі умови." +msgid "Invalid '%s' directive." +msgstr "Недійсна директива \"%s\"." + msgid "Shader include file does not exist:" msgstr "Файл включення шейдера не існує:" @@ -18293,6 +20246,9 @@ msgstr "Знайдено циклічне включення" msgid "Shader max include depth exceeded." msgstr "Перевищено максимальну глибину включення шейдерів." +msgid "Cannot use '%s' on built-in define." +msgstr "Не можна використовувати '%s' у вбудованому визначенні." + msgid "Macro expansion limit exceeded." msgstr "Перевищено ліміт макророзширення." diff --git a/engine/editor/translations/editor/vi.po b/engine/editor/translations/editor/vi.po index 2b49a5a8..929aec30 100644 --- a/engine/editor/translations/editor/vi.po +++ b/engine/editor/translations/editor/vi.po @@ -44,13 +44,14 @@ # duongmai <flashlight135790@gmail.com>, 2024. # a <anhkietcb2008@gmail.com>, 2024. # Nguyễn Minh Khôi <minhkhoiheovang2007@gmail.com>, 2024. +# IoeCmcomc <IoeCmcomc@users.noreply.hosted.weblate.org>, 2025. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2024-12-20 08:00+0000\n" -"Last-Translator: Nguyễn Minh Khôi <minhkhoiheovang2007@gmail.com>\n" +"PO-Revision-Date: 2025-02-19 13:35+0000\n" +"Last-Translator: IoeCmcomc <IoeCmcomc@users.noreply.hosted.weblate.org>\n" "Language-Team: Vietnamese <https://hosted.weblate.org/projects/godot-engine/" "godot/vi/>\n" "Language: vi\n" @@ -58,7 +59,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 5.9.2-dev\n" +"X-Generator: Weblate 5.10.1-dev\n" msgid "Main Thread" msgstr "Chủ đề chính" @@ -1050,6 +1051,9 @@ msgstr "Tạo %s mới" msgid "No results for \"%s\"." msgstr "Không tìm thấy kết quả cho \"%s\"." +msgid "Script path: %s" +msgstr "Tên tập lệnh: %s" + msgid "This class is marked as deprecated." msgstr "Lớp này được đánh dấu là không dùng nữa." @@ -1336,6 +1340,9 @@ msgstr "Tên thư mục chứa ký tự không hợp lệ." msgid "Folder with that name already exists." msgstr "Thư mục với tên này đã tồn tại." +msgid "Base path: %s" +msgstr "Đường dẫn cơ sở: %s" + msgid "Folder name is valid." msgstr "Tên thư mục hợp lệ." diff --git a/engine/editor/translations/editor/zh_CN.po b/engine/editor/translations/editor/zh_CN.po index b31c5121..3c426aec 100644 --- a/engine/editor/translations/editor/zh_CN.po +++ b/engine/editor/translations/editor/zh_CN.po @@ -84,7 +84,7 @@ # nitenook <admin@alterbaum.net>, 2021. # jker <cxgmfy@163.com>, 2021. # Ankar <1511276198@qq.com>, 2022. -# 风青山 <idleman@yeah.net>, 2022, 2023. +# 风青山 <idleman@yeah.net>, 2022, 2023, 2025. # 1104 EXSPIRAVIT_ <m18621006730@gmail.com>, 2022. # ChairC <974833488@qq.com>, 2022. # 赵不一 <279631638@qq.com>, 2023. @@ -100,12 +100,13 @@ # Ainsley <vhtmscyo@gmail.com>, 2024. # Mike Allen <itsxwz@gmail.com>, 2024. # Mill Xu <2733679597@qq.com>, 2024. +# J_aphasiac <japhasiac@163.com>, 2025. msgid "" msgstr "" "Project-Id-Version: Chinese (Simplified) (Godot Engine)\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: 2018-01-20 12:15+0200\n" -"PO-Revision-Date: 2025-01-09 02:15+0000\n" +"PO-Revision-Date: 2025-02-21 19:26+0000\n" "Last-Translator: Haoyu Qiu <timothyqiu32@gmail.com>\n" "Language-Team: Chinese (Simplified Han script) <https://hosted.weblate.org/" "projects/godot-engine/godot/zh_Hans/>\n" @@ -114,7 +115,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 5.10-dev\n" +"X-Generator: Weblate 5.10.1-dev\n" msgid "Main Thread" msgstr "主线程" @@ -471,6 +472,9 @@ msgstr "显示隐藏文件" msgid "Swap Input Direction" msgstr "交换输入方向" +msgid "Start Unicode Character Input" +msgstr "开始 Unicode 字符输入" + msgid "Invalid input %d (not passed) in expression" msgstr "表达式的输入 %d 无效(未传递)" @@ -710,6 +714,33 @@ msgstr "修改动画长度" msgid "Change Animation Loop" msgstr "修改动画循环" +msgid "" +"Can't change loop mode on animation instanced from an imported scene.\n" +"\n" +"To change this animation's loop mode, navigate to the scene's Advanced Import " +"settings and select the animation.\n" +"You can then change the loop mode from the inspector menu." +msgstr "" +"无法更改循环模式,该动画由导入的场景实例化。\n" +"\n" +"要更改该动画的循环模式,请在该场景的“高级导入”设置中选中该动画。\n" +"然后即可在检查器菜单中更改循环模式。" + +msgid "Can't change loop mode on animation instanced from an imported resource." +msgstr "无法更改循环模式,该动画由导入的资源实例化。" + +msgid "" +"Can't change loop mode on animation embedded in another scene.\n" +"\n" +"You must open this scene and change the animation's loop mode from there." +msgstr "" +"无法更改循环模式,该动画嵌入在另一个场景中。\n" +"\n" +"只能先打开该场景,然后在该场景中更改动画的循环模式。" + +msgid "Can't change loop mode on animation embedded in another resource." +msgstr "无法更改循环模式,该动画嵌入在另一个资源中。" + msgid "Property Track..." msgstr "属性轨道..." @@ -1094,6 +1125,15 @@ msgstr "仅显示在树中选中节点的轨道。" msgid "Group tracks by node or display them as plain list." msgstr "按节点分组或将节点显示为普通列表。" +msgid "Apply snapping to timeline cursor." +msgstr "为时间线光标应用吸附。" + +msgid "Apply snapping to selected key(s)." +msgstr "为所选关键帧应用吸附。" + +msgid "Apply snapping to the nearest integer FPS." +msgstr "吸附至最接近的整数 FPS。" + msgid "Animation step value." msgstr "动画步进值。" @@ -1314,12 +1354,74 @@ msgstr "全选/取消" msgid "Animation Change Keyframe Time" msgstr "修改动画关键帧的时间" +msgid "Marker name is read-only in the inspector." +msgstr "标记名称在检查器中只读。" + +msgid "" +"A marker's name can only be changed by right-clicking it in the animation " +"editor and selecting \"Rename Marker\", in order to make sure that marker " +"names are all unique." +msgstr "" +"更改标记名称的唯一方法是在动画编辑器中右键点击标记并选择“重命名标记”,目的是为" +"了确保标记名称的唯一性。" + +msgid "Insert Marker..." +msgstr "插入标记..." + +msgid "Rename Marker" +msgstr "重命名标记" + +msgid "Delete Marker(s)" +msgstr "删除标记" + +msgid "Show All Marker Names" +msgstr "显示所有标记名称" + +msgid "Marker:" +msgstr "标记:" + +msgid "Animation Move Markers" +msgstr "移动动画标记" + +msgid "Animation Delete Markers" +msgstr "删除动画标记" + +msgid "Marker '%s' already exists!" +msgstr "标记“%s”已存在!" + +msgid "Add Marker Key" +msgstr "添加标记帧" + +msgid "Empty marker names are not allowed." +msgstr "标记名称不允许为空。" + +msgid "Insert Marker" +msgstr "插入标记" + +msgid "Marker Name" +msgstr "标记名称" + +msgid "Marker Color" +msgstr "标记颜色" + msgid "Close" msgstr "关闭" msgid "Error!" msgstr "错误!" +msgid "Change Marker Name:" +msgstr "修改标记名称:" + +msgid "Edit Marker Color" +msgstr "编辑标记颜色" + +msgid "Multi Edit Marker Color" +msgstr "批量编辑标记颜色" + +msgid "Animation Change Marker Time" +msgstr "修改动画标记的时间" + msgid "Add Audio Track Clip" msgstr "添加音频轨道剪辑" @@ -1349,6 +1451,12 @@ msgid "%d of %d match" msgid_plural "%d of %d matches" msgstr[0] "第 %d 个匹配,共 %d 个" +msgid "Hide Replace" +msgstr "隐藏替换" + +msgid "Show Replace" +msgstr "显示替换" + msgid "Find" msgstr "查找" @@ -1405,6 +1513,13 @@ msgstr "警告" msgid "Zoom factor" msgstr "缩放系数" +msgid "" +"%sMouse wheel, %s/%s: Finetune\n" +"%s: Reset" +msgstr "" +"%s滚轮、%s/%s:微调\n" +"%s:重置" + msgid "Line and column numbers." msgstr "行号和列号。" @@ -1561,6 +1676,12 @@ msgstr "创建 %s" msgid "No results for \"%s\"." msgstr "未找到 “%s”。" +msgid "Script path: %s" +msgstr "脚本路径:%s" + +msgid "The script will run in the editor." +msgstr "脚本会在编辑器中运行。" + msgid "This class is marked as deprecated." msgstr "这个类被标记为已弃用。" @@ -1591,6 +1712,9 @@ msgstr "描述:" msgid "Remote %s:" msgstr "远程 %s:" +msgid "Session %d" +msgstr "会话 %d" + msgid "Debugger" msgstr "调试器" @@ -1621,6 +1745,15 @@ msgstr "" msgid "Toggle Visibility" msgstr "切换可见性" +msgid "Expression to evaluate" +msgstr "要求值的表达式" + +msgid "Clear on Run" +msgstr "运行时清屏" + +msgid "Evaluate" +msgstr "求值" + msgid "Clear" msgstr "清除" @@ -1666,6 +1799,9 @@ msgstr "停止" msgid "Start" msgstr "开始" +msgid "Autostart" +msgstr "自动开始" + msgid "Measure:" msgstr "测量:" @@ -1821,6 +1957,9 @@ msgstr "全部展开" msgid "Collapse All" msgstr "全部折叠" +msgid "Evaluator" +msgstr "求值器" + msgid "Profiler" msgstr "分析器" @@ -1945,6 +2084,12 @@ msgstr "" msgid "Cannot remove:" msgstr "无法移除:" +msgid "Files to be deleted:" +msgstr "将要删除的文件:" + +msgid "Dependencies of files to be deleted:" +msgstr "将要删除的文件依赖:" + msgid "Error loading:" msgstr "加载出错:" @@ -1981,15 +2126,27 @@ msgstr "没有显式从属关系的资源:" msgid "Name cannot be empty." msgstr "名称不能为空。" +msgid "File name can't end with /." +msgstr "文件名称不能以 / 结尾。" + +msgid "File name cannot be empty." +msgstr "文件名称不能为空。" + msgid "Folder name cannot be empty." msgstr "文件夹名称不能为空。" +msgid "File name contains invalid characters." +msgstr "文件名称中存在无效字符。" + msgid "Folder name contains invalid characters." msgstr "文件夹名称中存在无效字符。" msgid "File name begins with a dot." msgstr "文件名以英文句点开头。" +msgid "Folder name begins with a dot." +msgstr "文件夹名以英文句点开头。" + msgid "File with that name already exists." msgstr "已经存在同名文件。" @@ -1999,6 +2156,17 @@ msgstr "已经存在同名文件夹。" msgid "Using slashes in folder names will create subfolders recursively." msgstr "在文件夹名称中使用斜杠会递归创建子文件夹。" +msgid "" +"Using slashes in path will create the file in subfolder, creating new " +"subfolders if necessary." +msgstr "在路径中使用斜杠会在必要时新建子文件夹。" + +msgid "File name is valid." +msgstr "文件名有效。" + +msgid "Base path: %s" +msgstr "基础路径:%s" + msgid "Folder name is valid." msgstr "文件夹名称有效。" @@ -2275,6 +2443,9 @@ msgstr "音频总线布局" msgid "Invalid name." msgstr "名称无效。" +msgid "Must be a valid Unicode identifier." +msgstr "必须是有效的 Unicode 标识符。" + msgid "Must not collide with an existing engine class name." msgstr "不能与已有的引擎类名冲突。" @@ -2533,6 +2704,12 @@ msgstr "[空]" msgid "[unsaved]" msgstr "[未保存]" +msgid "Open the %s dock." +msgstr "打开 %s 面板。" + +msgid "Focus on the %s dock." +msgstr "聚焦 %s 面板。" + msgid "%s - Godot Engine" msgstr "%s - Godot Engine" @@ -2584,6 +2761,9 @@ msgstr "导入面板" msgid "History Dock" msgstr "历史面板" +msgid "Game View" +msgstr "游戏视图" + msgid "Allows to view and edit 3D scenes." msgstr "允许查看并编辑 3D 场景。" @@ -2611,6 +2791,9 @@ msgstr "允许为各个资产配置导入设置。文件系统面板需要可用 msgid "Provides an overview of the editor's and each scene's undo history." msgstr "提供编辑器和每个场景的撤消历史记录的概览。" +msgid "Provides tools for selecting and debugging nodes at runtime." +msgstr "提供在运行时选择并调试节点的工具。" + msgid "(current)" msgstr "(当前)" @@ -2696,6 +2879,30 @@ msgstr "导入配置" msgid "Manage Editor Feature Profiles" msgstr "管理编辑器功能配置" +msgid "Project initialization" +msgstr "项目初始化" + +msgid "Scanning file structure..." +msgstr "正在扫描文件结构……" + +msgid "Loading global class names..." +msgstr "正在加载全局类名……" + +msgid "Verifying GDExtensions..." +msgstr "正在校验 GDExtension……" + +msgid "Creating autoload scripts..." +msgstr "正在创建自动加载脚本……" + +msgid "Initializing plugins..." +msgstr "正在初始化插件……" + +msgid "Starting file scan..." +msgstr "正在启动文件扫描……" + +msgid "Scanning actions..." +msgstr "正在扫描动作……" + msgid "Some extensions need the editor to restart to take effect." msgstr "部分扩展需要重启编辑器才能生效。" @@ -2708,6 +2915,15 @@ msgstr "保存并重启" msgid "ScanSources" msgstr "扫描源文件" +msgid "Registering global classes..." +msgstr "正在注册全局类……" + +msgid "Updating scripts documentation" +msgstr "正在更新脚本文档" + +msgid "Updating Scene Groups" +msgstr "正在更新场景分组" + msgid "" "There are multiple importers for different types pointing to file %s, import " "aborted" @@ -2716,9 +2932,24 @@ msgstr "文件 %s 有不同类型的多个导入器,已中止导入" msgid "(Re)Importing Assets" msgstr "正在导入或重新导入资产" +msgid "Preparing files to reimport..." +msgstr "正在准备重新加载文件……" + +msgid "Executing pre-reimport operations..." +msgstr "正在执行重新加载前的操作……" + msgid "Import resources of type: %s" msgstr "导入 %s 类型的资源" +msgid "Finalizing Asset Import..." +msgstr "正在结束资产导入……" + +msgid "Executing post-reimport operations..." +msgstr "正在执行重新加载后的操作……" + +msgid "Copying files..." +msgstr "正在复制文件……" + msgid "This method supports a variable number of arguments." msgstr "本方法所支持的参数数量可变。" @@ -2743,6 +2974,9 @@ msgstr "" "调用本方法无需实例,\n" "可直接使用类名调用。" +msgid "Code snippet copied to clipboard." +msgstr "代码片段已复制到剪贴板。" + msgid "No return value." msgstr "无返回值。" @@ -2890,6 +3124,9 @@ msgstr "图标" msgid "Styles" msgstr "样式" +msgid "This theme property may be changed or removed in future versions." +msgstr "未来版本中可能会修改或移除该主题属性。" + msgid "There is currently no description for this theme property." msgstr "该主题属性目前没有描述。" @@ -2964,9 +3201,15 @@ msgstr "编辑器" msgid "Click to copy." msgstr "点击复制。" +msgid "Click to open in browser." +msgstr "点击在浏览器中打开。" + msgid "No description available." msgstr "无可用描述。" +msgid "This annotation may be changed or removed in future versions." +msgstr "未来版本中可能会修改或移除该注解。" + msgid "Show in FileSystem" msgstr "在文件系统中显示" @@ -2976,12 +3219,24 @@ msgstr "在文件管理器中打开" msgid "Class" msgstr "类" +msgid "Enumeration" +msgstr "枚举" + msgid "Constant" msgstr "常量" +msgid "Metadata" +msgstr "元数据" + +msgid "Setting" +msgstr "设置" + msgid "Property" msgstr "属性" +msgid "Internal Property" +msgstr "内部属性" + msgid "This property can only be set in the Inspector." msgstr "该属性只能在检查器中设置。" @@ -2997,9 +3252,36 @@ msgstr "信号" msgid "Annotation" msgstr "注解" +msgid "Local Constant" +msgstr "局部常量" + +msgid "Local Variable" +msgstr "局部变量" + +msgid "This variable may be changed or removed in future versions." +msgstr "未来版本中可能会修改或移除该变量。" + +msgid "TextFile" +msgstr "TextFile" + msgid "File" msgstr "文件" +msgid "Directory" +msgstr "目录" + +msgid "Invalid UID" +msgstr "无效的 UID" + +msgid "This UID does not point to any valid Resource." +msgstr "UID 未指向有效的 Resource。" + +msgid "Invalid path" +msgstr "路径无效" + +msgid "This path does not exist." +msgstr "路径不存在。" + msgid "%d match." msgstr "%d 个匹配。" @@ -3057,12 +3339,27 @@ msgstr "成员类型" msgid "Keywords" msgstr "关键字" +msgid "Matches the \"%s\" keyword." +msgstr "匹配“%s”关键字。" + msgid "This member is marked as deprecated." msgstr "该成员已被标为已弃用状态。" msgid "This member is marked as experimental." msgstr "该成员已被标为实验性状态。" +msgid "Unfavorite Property" +msgstr "取消收藏属性" + +msgid "Make this property be put back at its original place." +msgstr "将属性放回原位。" + +msgid "Favorite Property" +msgstr "收藏属性" + +msgid "Make this property be placed at the top for all objects of this class." +msgstr "将属性放到顶部,对该类的所有对象均有效。" + msgid "Pin Value" msgstr "固定值" @@ -3072,6 +3369,9 @@ msgstr "固定值 [已禁用,因为“%s”仅适用于编辑器]" msgid "Pinning a value forces it to be saved even if it's equal to the default." msgstr "将数值进行固定时,即便与默认值相等,也会强制保存该值。" +msgid "Unfavorite All" +msgstr "全部取消收藏" + msgid "(%d change)" msgid_plural "(%d changes)" msgstr[0] "(%d 处改动)" @@ -3253,6 +3553,9 @@ msgstr "原生着色器源检查器" msgid "Unnamed Project" msgstr "未命名项目" +msgid "Recovery Mode is enabled. Editor functionality has been restricted." +msgstr "已启用“恢复模式”。编辑器功能受限。" + msgid "" "Spins when the editor window redraws.\n" "Update Continuously is enabled, which can increase power usage. Click to " @@ -3442,6 +3745,9 @@ msgstr "必须有根节点才能保存场景。你可以通过场景面板添加 msgid "Save Scene As..." msgstr "场景另存为..." +msgid "Pack Project as ZIP..." +msgstr "项目打包为 ZIP..." + msgid "Can't undo while mouse buttons are pressed." msgstr "鼠标按下时无法撤销。" @@ -3520,6 +3826,9 @@ msgstr "没有场景时无法进行该操作。" msgid "Export Mesh Library" msgstr "导出网格库" +msgid "Quick Open Color Palette..." +msgstr "快速打开调色板..." + msgid "Unable to enable addon plugin at: '%s' parsing of config failed." msgstr "无法启用位于 “%s” 的附加插件:配置解析失败。" @@ -3587,6 +3896,51 @@ msgstr "清除近期的场景" msgid "There is no defined scene to run." msgstr "尚未定义要运行的场景。" +msgid "Loading editor" +msgstr "正在加载编辑器" + +msgid "Loading editor layout..." +msgstr "正在加载编辑器布局……" + +msgid "Loading docks..." +msgstr "正在加载停靠面板……" + +msgid "Reopening scenes..." +msgstr "正在重新打开场景……" + +msgid "Loading central editor layout..." +msgstr "正在加载中央编辑器布局……" + +msgid "Loading plugin window layout..." +msgstr "正在加载插件窗口布局……" + +msgid "Editor layout ready." +msgstr "编辑器布局就绪。" + +msgid "" +"No main scene has ever been defined. Select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"尚未定义主场景,是否选择一个?\n" +"后续也可在“项目设置”的“应用”分类下修改。" + +msgid "" +"Selected scene '%s' does not exist. Select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"所选场景“%s”不存在,是否选择有效的场景?\n" +"后续也可在“项目设置”的“应用”分类下修改。" + +msgid "" +"Selected scene '%s' is not a scene file. Select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"所选场景“%s”并非场景文件,是否选择有效的场景?\n" +"后续也可在“项目设置”的“应用”分类下修改。" + msgid "Save Layout..." msgstr "保存布局..." @@ -3808,6 +4162,9 @@ msgstr "引擎编译配置编辑器..." msgid "Upgrade Mesh Surfaces..." msgstr "升级网格表面..." +msgid "Upgrade UIDs..." +msgstr "升级 UID..." + msgid "Reload Current Project" msgstr "重新加载当前项目" @@ -3960,6 +4317,21 @@ msgstr "导出库" msgid "Open & Run a Script" msgstr "打开并运行脚本" +msgid "Files have been modified outside Godot" +msgstr "文件已在 Godot 外发生修改" + +msgid "The following files are newer on disk:" +msgstr "磁盘中的下列文件较新:" + +msgid "What action should be taken?" +msgstr "应该执行什么操作?" + +msgid "Reload from disk" +msgstr "从磁盘中重新加载" + +msgid "Ignore external changes" +msgstr "忽略外部修改" + msgid "Create/Override Version Control Metadata..." msgstr "创建/覆盖版本控制元数据..." @@ -3984,6 +4356,9 @@ msgstr "打开 3D 编辑器" msgid "Open Script Editor" msgstr "打开脚本编辑器" +msgid "Open Game View" +msgstr "打开游戏视图" + msgid "Open Asset Library" msgstr "打开资产库" @@ -4106,6 +4481,12 @@ msgstr "新建值:" msgid "(Nil) %s" msgstr "(空)%s" +msgid "%s%s (size %d)" +msgstr "%s%s(大小 %d)" + +msgid "%s (size %d)" +msgstr "%s(大小 %d)" + msgid "Size:" msgstr "大小:" @@ -4171,6 +4552,12 @@ msgstr "扩展脚本..." msgid "New Shader..." msgstr "新建着色器..." +msgid "No Remote Deploy export presets configured." +msgstr "尚未配置远程部署的导出预设。" + +msgid "Remote Deploy" +msgstr "远程部署" + msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the Export menu or define an existing preset " @@ -4179,6 +4566,28 @@ msgstr "" "没有对应该平台的可执行导出预设。\n" "请在导出菜单中添加可执行预设,或将已有预设设为可执行。" +msgid "" +"Warning: The CPU architecture \"%s\" is not active in your export preset.\n" +"\n" +msgstr "" +"警告:导出预设中没有激活 CPU 架构“%s”。\n" +"\n" + +msgid "Run \"Remote Deploy\" anyway?" +msgstr "是否仍然运行“远程部署”?" + +msgid "Deploy to First Device in List" +msgstr "部署至列表中的第一个设备" + +msgid "Deploy to Second Device in List" +msgstr "部署至列表中的第二个设备" + +msgid "Deploy to Third Device in List" +msgstr "部署至列表中的第三个设备" + +msgid "Deploy to Fourth Device in List" +msgstr "部署至列表中的第四个设备" + msgid "Project Run" msgstr "项目运行" @@ -4188,6 +4597,9 @@ msgstr "在 _run() 方法中填写逻辑代码。" msgid "The current scene already has a root node." msgstr "当前场景已存在根节点。" +msgid "Advanced settings are always shown when searching." +msgstr "搜索时始终显示高级设置。" + msgid "Edit Built-in Action: %s" msgstr "编辑内置动作:%s" @@ -4197,9 +4609,15 @@ msgstr "编辑快捷键:%s" msgid "None" msgstr "无" +msgid "Primary" +msgstr "主要" + msgid "Common" msgstr "通用" +msgid "Event %d" +msgstr "事件 %d" + msgid "Editor Settings" msgstr "编辑器设置" @@ -4401,6 +4819,12 @@ msgstr "未知错误" msgid "Export failed with error code %d." msgstr "导出失败,错误码 %d。" +msgid "Patch Creation" +msgstr "创建补丁" + +msgid "Could not load patch pack with path \"%s\"." +msgstr "无法加载位于“%s”的补丁包。" + msgid "Storing File: %s" msgstr "保存文件:%s" @@ -4410,6 +4834,25 @@ msgstr "保存文件:" msgid "No export template found at the expected path:" msgstr "指定路径不存在导出模板:" +msgid "" +"Using user provided text server data, text display in the exported project " +"might be broken if export template was built with different ICU version!" +msgstr "" +"使用用户提供的文本服务器数据,如果与导出模板在构建时所使用的 ICU 版本不同,导" +"出后的项目在显示文本时可能会发生问题!" + +msgid "" +"Using editor embedded text server data, text display in the exported project " +"might be broken if export template was built with different ICU version!" +msgstr "" +"使用编辑器内嵌的文本服务器数据,如果与导出模板在构建时所使用的 ICU 版本不同," +"导出后的项目在显示文本时可能会发生问题!" + +msgid "" +"Missing text server data, text display in the exported project might be " +"broken!" +msgstr "文本服务器数据缺失,导出后的项目在显示文本时可能会发生问题!" + msgid "ZIP Creation" msgstr "创建 ZIP" @@ -4428,6 +4871,9 @@ msgstr "无法创建文件“%s”。" msgid "Failed to export project files." msgstr "导出项目文件失败。" +msgid "No files or changes to export." +msgstr "没有需要导出的文件或改动。" + msgid "Can't open file for writing at path \"%s\"." msgstr "无法以写入模式打开位于“%s”的文件。" @@ -4446,6 +4892,9 @@ msgstr "无法打开位于“%s”的文件用于读取。" msgid "Save ZIP" msgstr "保存 ZIP" +msgid "Failed to move temporary file \"%s\" to \"%s\"." +msgstr "将临时文件“%s”移动至“%s”失败。" + msgid "Custom debug template not found." msgstr "找不到自定义调试模板。" @@ -4475,6 +4924,12 @@ msgstr "PCK 内嵌" msgid "On 32-bit exports the embedded PCK cannot be bigger than 4 GiB." msgstr "以 32 位平台导出时,内嵌的 PCK 不能大于 4GB。" +msgid "GDExtension" +msgstr "GDExtension" + +msgid "Failed to copy shared object \"%s\"." +msgstr "复制共享对象“%s”失败。" + msgid "Plugin \"%s\" is not supported on \"%s\"" msgstr "插件“%s”在“%s”上不支持" @@ -4601,6 +5056,15 @@ msgstr "缺失导出模板。请下载或从文件安装。" msgid "Export templates are missing. Install them from a file." msgstr "缺失导出模板。请从文件安装。" +msgid "Not available in offline mode" +msgstr "离线模式下不可用" + +msgid "Template downloading is disabled in offline mode." +msgstr "离线模式下禁用模板下载功能。" + +msgid "No templates for development builds" +msgstr "开发构建没有模板" + msgid "Official export templates aren't available for development builds." msgstr "开发构建下官方导出模板不可用。" @@ -4704,9 +5168,15 @@ msgstr "导出的资源:" msgid "(Inherited)" msgstr "(继承)" +msgid "Delete patch '%s' from list?" +msgstr "是否从列表中删除补丁“%s”?" + msgid "Export With Debug" msgstr "使用调试导出" +msgid "Export As Patch" +msgstr "导出为补丁" + msgid "%s Export" msgstr "%s 导出" @@ -4789,9 +5259,18 @@ msgstr "" "从项目中排除文件或目录\n" "(以英文逗号分隔,如:*.json, *.txt, docs/*)" +msgid "Patches" +msgstr "补丁" + +msgid "Base Packs:" +msgstr "基础包:" + msgid "Godot Project Pack" msgstr "Godot 项目包" +msgid "Add Pack" +msgstr "添加包" + msgid "Features" msgstr "特性" @@ -4830,6 +5309,9 @@ msgstr "无效的加密密钥(长度必须为 64 个十六进制字符)" msgid "Encryption Key (256-bits as hexadecimal):" msgstr "加密密钥(256 位十六进制码):" +msgid "Initialization vector seed" +msgstr "初始向量种子" + msgid "" "Note: Encryption key needs to be stored in the binary,\n" "you need to build the export templates from source." @@ -4943,6 +5425,9 @@ msgstr "浏览" msgid "Confirm Path" msgstr "确认路径" +msgid "Link to: %s" +msgstr "链接至:%s" + msgid "View items as a grid of thumbnails." msgstr "以栅格缩略图查看项目。" @@ -4968,6 +5453,9 @@ msgstr "移动出错:" msgid "Error duplicating:" msgstr "复制出错:" +msgid "Error duplicating directory:" +msgstr "复制目录时出错:" + msgid "Unable to update dependencies for:" msgstr "无法更新依赖:" @@ -4991,6 +5479,9 @@ msgstr "" msgid "A file or folder with this name already exists." msgstr "已经存在同名的文件或文件夹。" +msgid "Could not create base directory: %s" +msgstr "无法创建基础目录:%s" + msgid "" "The following files or folders conflict with items in the target location " "'%s':" @@ -5025,6 +5516,13 @@ msgstr "复制文件夹:" msgid "Create Folder" msgstr "创建文件夹" +msgid "" +"Do you wish to convert these files to %s? (This operation cannot be undone!)" +msgstr "是否想要将这些文件转换为 %s?(操作无法撤销!)" + +msgid "Could not create folder: %s" +msgstr "无法创建文件夹:%s" + msgid "New Inherited Scene" msgstr "新建继承场景" @@ -5085,12 +5583,18 @@ msgstr "添加到收藏" msgid "Remove from Favorites" msgstr "从收藏中移除" +msgid "Convert to..." +msgstr "转换为..." + msgid "Reimport" msgstr "重新导入" msgid "Open in Terminal" msgstr "在终端中打开" +msgid "Open Folder in Terminal" +msgstr "在终端中打开文件夹" + msgid "New Folder..." msgstr "新建文件夹..." @@ -5200,6 +5704,9 @@ msgstr "保留两者" msgid "Create Script" msgstr "创建脚本" +msgid "Convert" +msgstr "转换" + msgid "Find in Files" msgstr "在文件中查找" @@ -5235,6 +5742,9 @@ msgstr "全部替换(无法撤销)" msgid "Searching..." msgstr "搜索中..." +msgid "Remove result" +msgstr "移除结果" + msgid "%d match in %d file" msgstr "%d 处匹配,共 %d 个文件" @@ -5325,6 +5835,27 @@ msgstr "添加新分组。" msgid "Filter Groups" msgstr "筛选分组" +msgid "" +"Scroll Left\n" +"Hold Ctrl to scroll to the begin.\n" +"Hold Shift to scroll one page." +msgstr "" +"向左滚动\n" +"按住 Ctrl 向开头滚动。\n" +"按住 Shift 滚动一页。" + +msgid "" +"Scroll Right\n" +"Hold Ctrl to scroll to the end.\n" +"Hold Shift to scroll one page." +msgstr "" +"向右滚动\n" +"按住 Ctrl 向结尾滚动。\n" +"按住 Shift 滚动一页。" + +msgid "Pin Bottom Panel Switching" +msgstr "固定底部面板切换" + msgid "Expand Bottom Panel" msgstr "展开底部面板" @@ -5363,6 +5894,9 @@ msgstr "" msgid "Select This Folder" msgstr "选择此文件夹" +msgid "Show Package Contents" +msgstr "显示包内容" + msgid "All Files" msgstr "所有文件" @@ -5414,6 +5948,9 @@ msgstr "切换模式" msgid "Focus Path" msgstr "聚焦路径" +msgid "Focus Filter" +msgstr "聚焦过滤器" + msgid "Move Favorite Up" msgstr "向上移动收藏" @@ -5444,9 +5981,18 @@ msgstr "目录与文件:" msgid "Toggle the visibility of hidden files." msgstr "切换隐藏文件的可见性。" +msgid "Sort files" +msgstr "文件排序" + +msgid "Toggle the visibility of the filter for file names." +msgstr "切换文件名过滤器的可见性。" + msgid "Preview:" msgstr "预览:" +msgid "Filter:" +msgstr "筛选:" + msgid "Filter" msgstr "过滤" @@ -5469,6 +6015,45 @@ msgstr "找不到子资源。" msgid "Open a list of sub-resources." msgstr "打开子资源列表。" +msgid "Search files..." +msgstr "搜索文件..." + +msgid "Select Resource" +msgstr "选择资源" + +msgid "Select Scene" +msgstr "选择场景" + +msgid "Fuzzy Search" +msgstr "模糊搜索" + +msgid "Enable fuzzy matching" +msgstr "启用模糊匹配" + +msgid "Addons" +msgstr "附加组件" + +msgid "Include files from addons" +msgstr "包含附加组件中的文件" + +msgid "No files found for this type" +msgstr "未找到该类型的文件" + +msgid "Start searching to find files..." +msgstr "开始搜索查找文件..." + +msgid "No results found" +msgstr "无搜索结果" + +msgid " (recently opened)" +msgstr " (最近打开)" + +msgid "Grid view" +msgstr "网格视图" + +msgid "List view" +msgstr "列表视图" + msgid "Play the project." msgstr "运行此项目。" @@ -5498,9 +6083,65 @@ msgstr "" msgid "Could not start subprocess(es)!" msgstr "无法启动子进程!" +msgid "Recovery Mode is enabled. Disable it to run the project." +msgstr "已启用“恢复模式”。请先将其禁用再运行项目。" + +msgid "" +"Autostart is enabled for the following profilers, which can have a " +"performance impact:" +msgstr "下列分析器已设为自动开始,可能影响性能:" + msgid "Network Profiler" msgstr "网络分析器" +msgid "Click to open the first profiler for which autostart is enabled." +msgstr "点击打开已启用自动开始的首个分析器。" + +msgid "Recovery Mode" +msgstr "恢复模式" + +msgid "" +"Godot opened the project in Recovery Mode, which is a special mode that can " +"help recover projects that crash the engine upon initialization. The " +"following features have been temporarily disabled:" +msgstr "" +"Godot 在打开项目时使用了“恢复模式”,该模式能够帮助恢复引擎初始化时崩溃的项目。" +"已临时禁用下列功能:" + +msgid "Tool scripts" +msgstr "工具脚本" + +msgid "Editor plugins" +msgstr "编辑器插件" + +msgid "GDExtension addons" +msgstr "GDExtension 附加组件" + +msgid "Automatic scene restoring" +msgstr "场景自动恢复" + +msgid "" +"If the project cannot be opened outside of this mode, then it's very likely " +"any of these components is preventing this project from launching. This mode " +"is intended only for basic editing to troubleshoot such issues, and therefore " +"it is not possible to run a project in this mode." +msgstr "" +"如果项目不使用该模式就无法打开,则很有可能是其中的某个组件导致项目无法启动。该" +"模式仅限进行基础的编辑,对此类问题进行排查,因此无法在该模式下运行项目。" + +msgid "" +"To disable Recovery Mode, reload the project by pressing the Reload button " +"next to the Recovery Mode banner, or by reopening the project normally." +msgstr "" +"要禁用“恢复模式”,请点击“恢复模式”横幅旁的“重新加载”按钮重新加载项目,也可以正" +"常重新打开项目。" + +msgid "Disable recovery mode and reload the project." +msgstr "禁用恢复模式并重新加载项目。" + +msgid "Recovery Mode is enabled. Click for more details." +msgstr "已启用恢复模式,点击查看详情。" + msgid "Run the project's default scene." msgstr "运行项目的默认场景。" @@ -5519,12 +6160,24 @@ msgstr "停止目前运行中的项目。" msgid "Stop Running Project" msgstr "停止运行中的项目" +msgid "Run Scene in Regular Mode" +msgstr "在常规模式下运行场景" + +msgid "Run Scene in XR Mode" +msgstr "在 XR 模式下运行场景" + msgid "Run the currently edited scene." msgstr "运行当前编辑的场景。" msgid "Run Current Scene" msgstr "运行当前场景" +msgid "Run in Regular Mode" +msgstr "在常规模式下运行" + +msgid "Run in XR Mode" +msgstr "在 XR 模式下运行" + msgid "Run a specific scene." msgstr "运行一个特定的场景。" @@ -5589,6 +6242,14 @@ msgstr "" "Git 提交日期:%s\n" "点击复制版本信息。" +msgid "" +"The root node of a scene is recommended to not be transformed, since " +"instances of the scene will usually override this. Reset the transform and " +"reload the scene to remove this warning." +msgstr "" +"建议不要变换场景的根节点,因为场景的实例通常会将其覆盖。要移除本警告,请重置变" +"换并重新加载场景。" + msgid "Toggle Visible" msgstr "切换可见性" @@ -5598,6 +6259,9 @@ msgstr "解锁节点" msgid "Ungroup Children" msgstr "解组子节点" +msgid "Revoke unique name for node \"%s\"?" +msgstr "是否废除“%s”节点的唯一名称?" + msgid "Disable Scene Unique Name" msgstr "禁用场景唯一名称" @@ -5607,6 +6271,14 @@ msgstr "(连接来源)" msgid "Node configuration warning:" msgstr "节点配置警告:" +msgid "" +"This node can be accessed from anywhere within the scene it belongs to by " +"using the '%s' prefix in the node path." +msgstr "在节点路径中使用“%s”前缀即可在所属场景中的任何位置访问该节点。" + +msgid "Click to disable this." +msgstr "点击禁用。" + msgid "Node has one connection." msgid_plural "Node has {num} connections." msgstr[0] "节点有 {num} 个连接。" @@ -5618,6 +6290,16 @@ msgstr[0] "节点属于分组:" msgid "Click to show signals dock." msgstr "点击显示信号面板。" +msgid "Click to show groups dock." +msgstr "点击显示分组面板。" + +msgid "" +"This script can run in the editor.\n" +"It is currently disabled due to recovery mode." +msgstr "" +"这个脚本可以在编辑器中运行。\n" +"由于处于恢复模式,目前已禁用。" + msgid "This script is currently running in the editor." msgstr "这个脚本正在编辑器中运行。" @@ -5654,6 +6336,13 @@ msgstr "在编辑器中打开" msgid "\"%s\" is not a known filter." msgstr "“%s”不是已知筛选器。" +msgid "" +"Root nodes cannot be accessed as unique names in their own scene. Instantiate " +"in another scene and set as unique name there." +msgstr "" +"根节点无法在自身场景中通过唯一名称访问。请在其他场景中实例化,再将其设为唯一名" +"称。" + msgid "Invalid node name, the following characters are not allowed:" msgstr "节点名称无效,不允许包含以下字符:" @@ -5675,6 +6364,18 @@ msgstr "场景树(节点):" msgid "Node Configuration Warning!" msgstr "节点配置警告!" +msgid "Revoke" +msgstr "废除" + +msgid "Don't Ask Again" +msgstr "不再询问" + +msgid "" +"This dialog can also be enabled/disabled in the Editor Settings: Docks > " +"Scene Tree > Ask Before Revoking Unique Name." +msgstr "" +"该对话框也可以在“编辑器设置”中开关:停靠面板 > 场景树 > 废除唯一名称前询问。" + msgid "Allowed:" msgstr "允许:" @@ -5837,6 +6538,12 @@ msgstr "材质" msgid "Selected Animation Play/Pause" msgstr "播放/暂停选中动画" +msgid "Selected Animation Stop" +msgstr "停止选中动画" + +msgid "Toggle Animation Skeleton Visibility" +msgstr "开关动画骨架可见性" + msgid "Rotate Lights With Model" msgstr "灯光随模型旋转" @@ -6246,9 +6953,21 @@ msgstr "管理对象属性。" msgid "This cannot be undone. Are you sure?" msgstr "这个操作无法撤消。你确定吗?" +msgid "Add %d Translation" +msgid_plural "Add %d Translations" +msgstr[0] "添加 %d 个翻译" + msgid "Remove Translation" msgstr "移除翻译" +msgid "Translation Resource Remap: Add %d Path" +msgid_plural "Translation Resource Remap: Add %d Paths" +msgstr[0] "翻译资源重定向:添加 %d 个路径" + +msgid "Translation Resource Remap: Add %d Remap" +msgid_plural "Translation Resource Remap: Add %d Remaps" +msgstr[0] "翻译资源重定向:添加 %d 个重定向" + msgid "Change Resource Remap Language" msgstr "修改资源重定向语言" @@ -6258,6 +6977,10 @@ msgstr "移除资源重定向" msgid "Remove Resource Remap Option" msgstr "移除资源重定向选项" +msgid "Add %d file for POT generation" +msgid_plural "Add %d files for POT generation" +msgstr[0] "向 POT 生成中添加 %d 个文件" + msgid "Remove file from POT generation" msgstr "从 POT 生成中移除文件" @@ -6522,6 +7245,24 @@ msgstr "填充所选项子级" msgid "Invert" msgstr "反选" +msgid "Start of Animation" +msgstr "动画开头" + +msgid "End of Animation" +msgstr "动画结尾" + +msgid "Set Custom Timeline from Marker" +msgstr "使用标记设置自定义时间线" + +msgid "Select Markers" +msgstr "选择标记" + +msgid "Start Marker" +msgstr "开头标记" + +msgid "End Marker" +msgstr "结尾标记" + msgid "Library Name:" msgstr "库名称:" @@ -6743,6 +7484,21 @@ msgstr "副本动画名称:" msgid "Onion skinning requires a RESET animation." msgstr "洋葱皮需要 RESET 动画。" +msgid "Play Animation Backwards" +msgstr "倒放动画" + +msgid "Play Animation Backwards from End" +msgstr "从结尾倒放动画" + +msgid "Pause/Stop Animation" +msgstr "暂停/停止动画" + +msgid "Play Animation from Start" +msgstr "从开头播放动画" + +msgid "Play Animation" +msgstr "播放动画" + msgid "Animation position (in seconds)." msgstr "动画位置(秒)。" @@ -6818,6 +7574,12 @@ msgstr "混合时间:" msgid "Next (Auto Queue):" msgstr "接下来(自动队列):" +msgid "Go to Next Keyframe" +msgstr "前往下一个关键帧" + +msgid "Go to Previous Keyframe" +msgstr "前往上一个关键帧" + msgid "Toggle Animation Bottom Panel" msgstr "开关动画底部面板" @@ -7301,6 +8063,9 @@ msgstr "V:设置选中节点的轴心位置。" msgid "Alt+RMB: Show list of all nodes at position clicked, including locked." msgstr "Alt+右键:显示点击位置的所有节点列表,包含已锁定节点。" +msgid "(Available in all modes.)" +msgstr "(所有模式均可用。)" + msgid "RMB: Add node at position clicked." msgstr "右键:在点击位置添加节点。" @@ -7319,6 +8084,17 @@ msgstr "Shift:按比例缩放。" msgid "Show list of selectable nodes at position clicked." msgstr "在点击的位置显示可选择的节点列表。" +msgid "Click to change object's pivot." +msgstr "点击修改对象的轴心。" + +msgid "Shift: Set temporary pivot." +msgstr "Shift:设置临时轴心。" + +msgid "" +"Click this button while holding Shift to put the temporary pivot in the " +"center of the selected nodes." +msgstr "按住 Shift 点击该按钮可以将临时轴心放置到所选节点的中心。" + msgid "Pan Mode" msgstr "平移模式" @@ -7891,6 +8667,11 @@ msgstr "" msgid "Edit Plugin" msgstr "编辑插件" +msgid "" +"Recovery mode is enabled. Enabled plugins will not run while this mode is " +"active." +msgstr "已启用恢复模式。该模式下不会运行已启用的插件。" + msgid "Installed Plugins:" msgstr "已安装插件:" @@ -7967,9 +8748,158 @@ msgstr "东亚宽度" msgid "Numeral Alignment" msgstr "数字对齐" +msgid "Variation" +msgstr "变体" + msgid "Unable to preview font" msgstr "无法预览字体" +msgid "Connection impossible to the game process." +msgstr "无法连接游戏进程。" + +msgid "Game starting..." +msgstr "正在启动游戏……" + +msgid "Game running not embedded." +msgstr "游戏未嵌入运行。" + +msgid "Press play to start the game." +msgstr "点击运行启动游戏。" + +msgid "Embedding is disabled." +msgstr "嵌入已禁用。" + +msgid "" +"Game embedding not available on Wayland.\n" +"Wayland can be disabled in the Editor Settings (Run > Platforms > Linux/*BSD " +"> Prefer Wayland)." +msgstr "" +"Wayland 不支持游戏嵌入。\n" +"可以在编辑器设置中禁用 Wayland(运行 > 平台 > Linux/*BSD > 首选 Wayland)。" + +msgid "Game embedding not available on your OS." +msgstr "操作系统不支持游戏嵌入。" + +msgid "" +"Game embedding not available for the Display Server: '%s'.\n" +"Display Server can be modified in the Project Settings (Display > Display " +"Server > Driver)." +msgstr "" +"显示服务器不支持游戏嵌入:“%s”。\n" +"可以在项目设置中修改显示服务器(显示 > 显示服务器 > 驱动)。" + +msgid "" +"Game embedding not available when the game starts minimized.\n" +"Consider overriding the window mode project setting with the editor feature " +"tag to Windowed to use game embedding while leaving the exported project " +"intact." +msgstr "" +"游戏以最小化开始运行时不支持游戏嵌入。\n" +"请考虑在项目设置中使用 editor 特性标记将窗口模式覆盖为 Windowed,这样就可以使" +"用游戏嵌入,不影响导出后的项目。" + +msgid "" +"Game embedding not available when the game starts maximized.\n" +"Consider overriding the window mode project setting with the editor feature " +"tag to Windowed to use game embedding while leaving the exported project " +"intact." +msgstr "" +"游戏以最大化开始运行时不支持游戏嵌入。\n" +"请考虑在项目设置中使用 editor 特性标记将窗口模式覆盖为 Windowed,这样就可以使" +"用游戏嵌入,不影响导出后的项目。" + +msgid "" +"Game embedding not available when the game starts in fullscreen.\n" +"Consider overriding the window mode project setting with the editor feature " +"tag to Windowed to use game embedding while leaving the exported project " +"intact." +msgstr "" +"游戏以全屏开始运行时不支持游戏嵌入。\n" +"请考虑在项目设置中使用 editor 特性标记将窗口模式覆盖为 Windowed,这样就可以使" +"用游戏嵌入,不影响导出后的项目。" + +msgid "Game embedding not available in single window mode." +msgstr "但窗口模式下不支持游戏嵌入。" + +msgid "Suspend" +msgstr "挂起" + +msgid "Next Frame" +msgstr "下一帧" + +msgid "Input" +msgstr "输入" + +msgid "Allow game input." +msgstr "允许游戏输入。" + +msgid "" +"Disable game input and allow to select Node2Ds, Controls, and manipulate the " +"2D camera." +msgstr "禁用游戏输入,允许选择 Node2D、Control,允许操控 2D 相机。" + +msgid "" +"Disable game input and allow to select Node3Ds and manipulate the 3D camera." +msgstr "禁用游戏输入,允许选择 Node3D,允许操控 3D 相机。" + +msgid "Toggle Selection Visibility" +msgstr "切换显示选中项" + +msgid "Alt+RMB: Show list of all nodes at position clicked." +msgstr "Alt+右键:显示点击位置的所有节点列表。" + +msgid "Override the in-game camera." +msgstr "覆盖游戏相机。" + +msgid "Camera Override Options" +msgstr "相机覆盖选项" + +msgid "Reset 2D Camera" +msgstr "重置 2D 相机" + +msgid "Reset 3D Camera" +msgstr "重置 3D 相机" + +msgid "Manipulate In-Game" +msgstr "在游戏中操控" + +msgid "Manipulate From Editors" +msgstr "在编辑器中操控" + +msgid "" +"Embedded game size is based on project settings.\n" +"The 'Keep Aspect' mode is used when the Game Workspace is smaller than the " +"desired size." +msgstr "" +"嵌入游戏的大小以项目设置为基础。\n" +"游戏工作区小于所需尺寸时使用“Keep Aspect”模式。" + +msgid "Keep the aspect ratio of the embedded game." +msgstr "保持嵌入游戏的纵横比。" + +msgid "Embedded game size stretches to fit the Game Workspace." +msgstr "嵌入游戏的大小拉伸至符合游戏工作区。" + +msgid "Embedding Options" +msgstr "嵌入选项" + +msgid "Embed Game on Next Play" +msgstr "下次运行时嵌入游戏" + +msgid "Make Game Workspace Floating on Next Play" +msgstr "下次运行时浮动游戏工作区" + +msgid "Game Workspace" +msgstr "游戏工作区" + +msgid "" +"No \"%s\" library found for GDExtension: \"%s\". Possible feature flags for " +"your platform: %s" +msgstr "未找到库“%s”对应 GDExtension:“%s”。当前平台可能的特性标记:%s" + +msgid "Multiple \"%s\" libraries found for GDExtension: \"%s\": \"%s\"." +msgstr "找到多个库“%s”对应 GDExtension:“%s”:“%s”。" + msgid "Change AudioStreamPlayer3D Emission Angle" msgstr "修改 AudioStreamPlayer3D 发射角" @@ -8106,6 +9036,43 @@ msgstr "" "请先保存场景(光照贴图将被存在同一目录下)或从属性面板中手动保存 " "BakedLightmap 属性。" +msgid "" +"No meshes with lightmapping support to bake. Make sure they contain UV2 data " +"and their Global Illumination property is set to Static." +msgstr "" +"没有支持光照贴图烘焙的网格。请确保网格包含 UV2 数据,并且其 Global " +"Illumination 属性已设为 Static。" + +msgid "" +"To import a scene with lightmapping support, set Meshes > Light Baking to " +"Static Lightmaps in the Import dock." +msgstr "" +"要导入支持光照贴图的场景,请在导入面板中将“网格 > 光照烘培”设置为 Static " +"Lightmaps。" + +msgid "" +"To enable lightmapping support on a primitive mesh, edit the PrimitiveMesh " +"resource in the inspector and check Add UV2." +msgstr "" +"要在基本网格上启用光照贴图支持,请在检查器中编辑该 PrimitiveMesh 资源并勾" +"选“Add UV2”。" + +msgid "" +"To enable lightmapping support on a CSG mesh, select the root CSG node and " +"choose CSG > Bake Mesh Instance at the top of the 3D editor viewport.\n" +"Select the generated MeshInstance3D node and choose Mesh > Unwrap UV2 for " +"Lightmap/AO at the top of the 3D editor viewport." +msgstr "" +"要为 CSG 网格启用光照贴图支持,请先选中根 CSG 节点,然后在 3D 编辑器视口顶部选" +"择“CSG > 烘焙网格实例”。\n" +"请选中生成的 MeshInstance3D,然后在 3D 编辑器视口顶部选择“网格 > 为光照映射或" +"环境光遮蔽展开 UV2”。" + +msgid "" +"Failed creating lightmap images. Make sure the lightmap destination path is " +"writable." +msgstr "创建光照贴图失败,请确保光照的目标路径可写。" + msgid "No editor scene root found." msgstr "没有找到编辑器场景根节点。" @@ -8120,6 +9087,14 @@ msgstr "" "光照贴图图像的最大纹理尺寸过小。\n" "虽然将最大纹理尺寸调大也可以解决问题,但是推荐将场景拆分为多个对象。" +msgid "" +"Failed creating lightmap images. Make sure all meshes to bake have the " +"Lightmap Size Hint property set high enough, and the LightmapGI's Texel Scale " +"value is not too low." +msgstr "" +"创建光照贴图图像失败。请确保所选需要烘焙的网格的 `lightmap_size_hint` 属性的值" +"足够大,且 LightmapGI 的 `texel_scale` 没有过低。" + msgid "" "Failed fitting a lightmap image into an atlas. This should never happen and " "should be reported." @@ -8128,12 +9103,26 @@ msgstr "图集中无法容纳光照贴图。该情况不应发生,请汇报这 msgid "Bake Lightmaps" msgstr "烘焙光照贴图" +msgid "Lightmap baking is not supported on this GPU (%s)." +msgstr "该 GPU 不支持烘焙光照贴图(%s)。" + +msgid "Lightmaps cannot be baked on %s." +msgstr "无法在 %s 烘焙光照贴图。" + +msgid "" +"Lightmaps cannot be baked, as the `lightmapper_rd` module was disabled at " +"compile-time." +msgstr "无法烘焙光照贴图,编译时禁用了 `lightmapper_rd` 模块。" + msgid "LightMap Bake" msgstr "LightMap 烘焙" msgid "Select lightmap bake file:" msgstr "选择光照贴图烘焙文件:" +msgid "Preview is not available for this shader mode." +msgstr "该着色器模式下预览不可用。" + msgid "Couldn't create a Trimesh collision shape." msgstr "无法创建三角网格碰撞形状。" @@ -8315,6 +9304,29 @@ msgstr "" msgid "UV Channel Debug" msgstr "调试 UV 通道" +msgid "Create NavigationMesh" +msgstr "创建 NavigationMesh" + +msgid "" +"Before converting a rendering mesh to a navigation mesh, please verify:\n" +"\n" +"- The mesh is two-dimensional.\n" +"- The mesh has no surface overlap.\n" +"- The mesh has no self-intersection.\n" +"- The mesh surfaces have indices.\n" +"\n" +"If the mesh does not fulfill these requirements, the pathfinding will be " +"broken." +msgstr "" +"在将一个渲染网格转为导航网格之前,请确认:\n" +"\n" +"- 网格是二维的。\n" +"- 网格没有表面覆盖。\n" +"- 网格没有自相交。\n" +"- 网格各表面有索引。\n" +"\n" +"若网格没有满足上述条件,寻路将被打断。" + msgid "Remove item %d?" msgstr "确定要移除项目 %d 吗?" @@ -8427,9 +9439,45 @@ msgstr "设置 start_position" msgid "Set end_position" msgstr "设置 end_position" +msgid "Set Obstacle Vertices" +msgstr "设置障碍物顶点" + +msgid "Edit Obstacle (Flip Winding)" +msgstr "编辑障碍物(翻转缠绕方向)" + +msgid "Edit Obstacle (Clear Vertices)" +msgstr "编辑障碍物(清空顶点)" + +msgid "Add Vertex" +msgstr "添加顶点" + +msgid "Edit Vertex" +msgstr "编辑顶点" + +msgid "Delete Vertex" +msgstr "删除顶点" + +msgid "Flip Winding" +msgstr "翻转缠绕方向" + +msgid "Clear Vertices" +msgstr "清空顶点" + +msgid "Edit Obstacle (Add Vertex)" +msgstr "编辑障碍物(添加顶点)" + +msgid "Edit Obstacle (Move Vertex)" +msgstr "编辑障碍物(移动顶点)" + +msgid "Edit Obstacle (Remove Vertex)" +msgstr "编辑障碍物(移除顶点)" + msgid "Please Confirm..." msgstr "请确认..." +msgid "Remove all vertices?" +msgstr "是否移除所有顶点?" + msgid "Create Navigation Polygon" msgstr "创建导航多边形" @@ -8500,6 +9548,9 @@ msgstr "正交后视图" msgid "Rear Perspective" msgstr "透视后视图" +msgid "[auto]" +msgstr "[自动]" + msgid "X-Axis Transform." msgstr "X 轴变换。" @@ -8704,6 +9755,9 @@ msgstr "查看环境" msgid "View Gizmos" msgstr "查看小工具" +msgid "View Transform Gizmo" +msgstr "查看变换小工具" + msgid "View Grid" msgstr "显示栅格" @@ -8728,6 +9782,24 @@ msgstr "效果预览" msgid "Not available when using the OpenGL renderer." msgstr "使用 OpenGL 渲染器时不可用。" +msgid "Viewport Orbit Modifier 1" +msgstr "视口环绕修饰键 1" + +msgid "Viewport Orbit Modifier 2" +msgstr "视口环绕修饰键 2" + +msgid "Viewport Pan Modifier 1" +msgstr "视口平移修饰键 1" + +msgid "Viewport Pan Modifier 2" +msgstr "视口平移修饰键 2" + +msgid "Viewport Zoom Modifier 1" +msgstr "视口缩放修饰键 1" + +msgid "Viewport Zoom Modifier 2" +msgstr "视口缩放修饰键 2" + msgid "Freelook Left" msgstr "自由观看向左" @@ -8779,6 +9851,9 @@ msgstr "开始旋转变换" msgid "Begin Scale Transformation" msgstr "开始缩放变换" +msgid "Reposition Using Collisions" +msgstr "使用碰撞重新放置" + msgid "Toggle Camera Preview" msgstr "开关摄像机预览" @@ -8857,6 +9932,9 @@ msgid "" msgstr "" "将所选节点与其子节点组合。这样在 2D 和 3D 视图中点击子节点就会选中父节点。" +msgid "LMB+Drag: Measure the distance between two points in 3D space." +msgstr "左键+拖动:测量 3D 空间中两点之间的距离。" + msgid "Use Local Space" msgstr "使用本地空间" @@ -9163,6 +10241,9 @@ msgstr "正在生成可视矩形(等待粒子模拟)" msgid "Generating..." msgstr "正在生成..." +msgid "Loading emission mask requires ParticleProcessMaterial." +msgstr "加载自发光遮罩需要粒子过程材质(ParticalProcessMaterial)。" + msgid "GPUParticles2D" msgstr "GPUParticles2D" @@ -9226,6 +10307,9 @@ msgstr "发射源:" msgid "A processor material of type 'ParticleProcessMaterial' is required." msgstr "需要“ParticleProcessMaterial”类型的处理材质。" +msgid "Create Emission Points" +msgstr "创建发射点" + msgid "GPUParticles3D" msgstr "GPUParticles3D" @@ -9268,6 +10352,9 @@ msgstr "闭合曲线" msgid "Clear Curve Points" msgstr "清除曲线顶点" +msgid "Create Curve in Path2D" +msgstr "在 Path2D 中创建 Curve" + msgid "Select Points" msgstr "选择顶点" @@ -9307,6 +10394,9 @@ msgstr "镜像手柄角度" msgid "Mirror Handle Lengths" msgstr "镜像手柄长度" +msgid "Create Curve" +msgstr "创建 Curve" + msgid "Curve Point #" msgstr "曲线顶点 #" @@ -9346,6 +10436,12 @@ msgstr "重置内控点" msgid "Reset Point Tilt" msgstr "重置点倾斜" +msgid "Toggle Open/Closed Curve" +msgstr "切换开放/闭合曲线" + +msgid "Create Curve in Path3D" +msgstr "在 Path3D 中创建 Curve" + msgid "Shift+Click: Select multiple Points" msgstr "Shift+点击:选择多个点" @@ -9437,6 +10533,11 @@ msgstr "" msgid "Script Name:" msgstr "脚本名:" +msgid "" +"Optional. The name of the script file. If left empty, will default to the " +"subfolder name." +msgstr "选填。脚本文件的路径。留空时默认为子文件夹名称。" + msgid "Activate now?" msgstr "现在激活吗?" @@ -9506,9 +10607,15 @@ msgstr "骨骼" msgid "Move Points" msgstr "移动顶点" +msgid "%s: Rotate" +msgstr "%s:旋转" + msgid "Shift: Move All" msgstr "Shift:全部移动" +msgid "%s + Shift: Scale" +msgstr "%s + Shift:缩放" + msgid "Move Polygon" msgstr "移动多边形" @@ -9573,6 +10680,12 @@ msgstr "栅格 Y 步进:" msgid "Sync Bones to Polygon" msgstr "同步骨骼到多边形" +msgid "Polygon" +msgstr "多边形" + +msgid "Toggle Polygon Bottom Panel" +msgstr "开关多边形底部面板" + msgid "Create Polygon3D" msgstr "创建 Polygon3D" @@ -9613,6 +10726,12 @@ msgid "" "AnimationMixer has no valid root node path, so unable to retrieve track names." msgstr "AnimationMixer 没有有效的根节点路径,因此无法获取轨道名称。" +msgid "(truncated)" +msgstr "(已截断)" + +msgid "Current value: " +msgstr "当前值: " + msgid "Can't open '%s'. The file could have been moved or deleted." msgstr "无法打开 “%s”。文件可能已被移动或删除。" @@ -9735,6 +10854,9 @@ msgstr "软重载工具脚本" msgid "Copy Script Path" msgstr "复制脚本路径" +msgid "Copy Script UID" +msgstr "复制脚本 UID" + msgid "History Previous" msgstr "后退" @@ -9774,6 +10896,13 @@ msgstr "前往上一个编辑文档。" msgid "Go to next edited document." msgstr "前往下一个编辑文档。" +msgid "" +"Make the script editor floating.\n" +"Right-click to open the screen selector." +msgstr "" +"浮动脚本编辑器。\n" +"右键点击打开屏幕选择器。" + msgid "Discard" msgstr "忽略" @@ -9813,6 +10942,9 @@ msgstr "纯文本" msgid "JSON" msgstr "JSON" +msgid "Markdown" +msgstr "Markdown" + msgid "Connections to method:" msgstr "与方法的连接:" @@ -9857,6 +10989,9 @@ msgstr "没有打开的场景无法放置节点。" msgid "Can't drop nodes because script '%s' does not inherit Node." msgstr "无法放置该节点,因为脚本“%s”未从 Node 继承。" +msgid "Emoji & Symbols" +msgstr "Emoji & 符号" + msgid "Pick Color" msgstr "拾取颜色" @@ -9989,12 +11124,22 @@ msgstr "保存" msgid "Open File in Inspector" msgstr "在检查器中打开文件" +msgid "Inspect Native Shader Code..." +msgstr "检查原生着色器代码..." + msgid "Close File" msgstr "关闭" msgid "Shader Editor" msgstr "着色器编辑器" +msgid "" +"Make the shader editor floating.\n" +"Right-click to open the screen selector." +msgstr "" +"浮动着色器编辑器。\n" +"右键点击打开屏幕选择器。" + msgid "Toggle Shader Editor Bottom Panel" msgstr "开关着色器编辑器底部面板" @@ -10035,9 +11180,24 @@ msgstr "重置为放松姿势" msgid "Overwrite Rest Pose" msgstr "覆盖放松姿势" +msgid "Bone Metadata" +msgstr "骨骼元数据" + +msgid "Add Bone Metadata" +msgstr "添加骨骼元数据" + msgid "Set Bone Transform" msgstr "设置骨骼变换" +msgid "Modify metadata '%s' for bone '%s'" +msgstr "修改元数据“%s”,骨骼为“%s”" + +msgid "Remove metadata '%s' from bone '%s'" +msgstr "移除元数据“%s”,骨骼为“%s”" + +msgid "Add metadata '%s' to bone '%s'" +msgstr "添加元数据“%s”,骨骼为“%s”" + msgid "Set Bone Rest" msgstr "设置骨骼放松" @@ -10056,6 +11216,12 @@ msgstr "将骨架配置导出为..." msgid "Set Bone Parentage" msgstr "设置骨骼父子关系" +msgid "Revert Bone" +msgstr "还原骨骼" + +msgid "Revert" +msgstr "还原" + msgid "Skeleton3D" msgstr "3D模型骨架" @@ -11104,6 +12270,9 @@ msgstr "绘制图块" msgid "Paste tiles" msgstr "粘贴图块" +msgid "Selection Tool" +msgstr "选择工具" + msgid "Shift: Draw line." msgstr "Shift:绘制直线。" @@ -11144,6 +12313,11 @@ msgstr "散布:" msgid "Tiles" msgstr "图块" +msgid "" +"This TileMap's TileSet has no Tile Source configured. Go to the TileSet " +"bottom panel to add one." +msgstr "这个 TileMap 的 TileSet 中没有配置图块源。请在 TileSet 底部面板中添加。" + msgid "Sort sources" msgstr "源排序" @@ -11650,6 +12824,9 @@ msgstr "移除源" msgid "Add atlas source" msgstr "添加图集源" +msgid "Tile Sources" +msgstr "图块源" + msgid "Sort Sources" msgstr "源排序" @@ -11728,6 +12905,24 @@ msgstr "场景合集属性:" msgid "Tile properties:" msgstr "图块属性:" +msgid "Paint Tool" +msgstr "绘制工具" + +msgid "Line Tool" +msgstr "直线工具" + +msgid "Rect Tool" +msgstr "矩形工具" + +msgid "Bucket Tool" +msgstr "油漆桶工具" + +msgid "Eraser Tool" +msgstr "橡皮工具" + +msgid "Picker Tool" +msgstr "取色工具" + msgid "TileMap" msgstr "TileMap" @@ -11991,6 +13186,12 @@ msgid "" "parameter." msgstr "2D 预览无法正确显示从实例参数中检索到的结果。" +msgid "Copy Preview Shader Parameters From Material" +msgstr "复制材质的预览着色器参数" + +msgid "Paste Preview Shader Parameters To Material" +msgstr "粘贴材质的预览着色器参数" + msgid "Add Input Port" msgstr "添加输入端口" @@ -12108,6 +13309,9 @@ msgstr "启用自动收缩" msgid "Enable Tint Color" msgstr "启用着色" +msgid "Edit Preview Parameter: %s" +msgstr "编辑预览参数:%s" + msgid "Duplicate VisualShader Node(s)" msgstr "复制 VisualScript 节点" @@ -12135,9 +13339,15 @@ msgstr "Varying 名称无效。" msgid "Varying with that name is already exist." msgstr "已存在使用该名称的 Varying。" +msgid "Boolean type cannot be used with `%s` varying mode." +msgstr "`%s` Varying 模式无法使用布尔类型。" + msgid "Add Node(s) to Visual Shader" msgstr "将节点添加到可视着色器" +msgid "Hold %s Key To Swap Connections" +msgstr "按住 %s 键交换连接" + msgid "Vertex" msgstr "顶点" @@ -12171,6 +13381,9 @@ msgstr "移除 Varying" msgid "Show generated shader code." msgstr "显示生成的着色器代码。" +msgid "Toggle shader preview." +msgstr "开关着色器预览。" + msgid "Generated Shader Code" msgstr "生成的着色器代码" @@ -12186,6 +13399,15 @@ msgstr "插入新节点" msgid "Insert New Reroute" msgstr "插入路线调整" +msgid "Filter Parameters" +msgstr "筛选参数" + +msgid "Copy Parameters From Material" +msgstr "复制材质的参数" + +msgid "Paste Parameters To Material" +msgstr "粘贴材质的参数" + msgid "High-end node" msgstr "高端节点" @@ -12210,12 +13432,18 @@ msgstr "灰度函数。" msgid "Converts HSV vector to RGB equivalent." msgstr "将 HSV 向量转换为等效的 RGB 向量。" +msgid "Converts color from linear to sRGB color space." +msgstr "将颜色从线性空间转换至 sRGB 空间。" + msgid "Converts RGB vector to HSV equivalent." msgstr "将 RGB 向量转换为等效的 HSV 向量。" msgid "Sepia function." msgstr "棕褐色函数。" +msgid "Converts color from sRGB to linear color space." +msgstr "将颜色从 sRGB 空间转换至线性空间。" + msgid "Burn operator." msgstr "加深运算符。" @@ -12252,6 +13480,9 @@ msgstr "颜色参数。" msgid "(Fragment/Light mode only) Derivative function." msgstr "(仅限片段/灯光模式)导数函数。" +msgid "Derivative function." +msgstr "求导函数。" + msgid "Returns the boolean result of the %s comparison between two parameters." msgstr "返回两个参数之间 %s 比较的布尔结果。" @@ -12458,12 +13689,18 @@ msgstr "将以弧度为单位的量转换为度。" msgid "" "(Fragment/Light mode only) (Scalar) Derivative in 'x' using local " "differencing." -msgstr "(仅限片段/光照模式)(标量)使用本地差分的“ x”中的导数。" +msgstr "(仅限片段/光照模式)(标量)使用有限差分法得到的关于“x”的导数。" msgid "" "(Fragment/Light mode only) (Scalar) Derivative in 'y' using local " "differencing." -msgstr "(仅限片段/光照模式)(标量)使用局部差分的“y”导数。" +msgstr "(仅限片段/光照模式)(标量)使用有限差分法得到的关于“y”的导数。" + +msgid "(Scalar) Derivative in 'x' using local differencing." +msgstr "(标量)使用有限差分法得到的关于“x”的导数。" + +msgid "(Scalar) Derivative in 'y' using local differencing." +msgstr "(标量)使用有限差分法得到的关于“y”的导数。" msgid "Base-e Exponential." msgstr "以 e 为底的指数。" @@ -12514,6 +13751,9 @@ msgstr "将度数转换为弧度。" msgid "1.0 / scalar" msgstr "1.0 / 标量" +msgid "Remaps a value from the input range to the output range." +msgstr "将值从输入范围重新映射到输出范围。" + msgid "Finds the nearest integer to the parameter." msgstr "查找参数最近的整数。" @@ -12558,7 +13798,10 @@ msgstr "" msgid "" "(Fragment/Light mode only) (Scalar) Sum of absolute derivative in 'x' and 'y'." -msgstr "(仅限片段/光照模式)(标量)“x” 和 “y” 中的绝对导数之和。" +msgstr "(仅限片段/光照模式)(标量)关于“x” 和 “y” 的绝对导数之和。" + +msgid "(Scalar) Sum of absolute derivative in 'x' and 'y'." +msgstr "(标量)关于“x” 和 “y” 的绝对导数之和。" msgid "Returns the tangent of the parameter." msgstr "返回参数的正切值。" @@ -12862,12 +14105,18 @@ msgstr "计算两个向量的叉积。" msgid "" "(Fragment/Light mode only) (Vector) Derivative in 'x' using local " "differencing." -msgstr "(仅限片段/光照模式)(向量)使用局部差分的 “x” 中的导数。" +msgstr "(仅限片段/光照模式)(向量)使用有限差分法得到的关于“x”的导数。" msgid "" "(Fragment/Light mode only) (Vector) Derivative in 'y' using local " "differencing." -msgstr "(仅限片段/光照模式)(向量)使用局部差分的“y”导数。" +msgstr "(仅限片段/光照模式)(向量)使用有限差分法得到的关于“y”的导数。" + +msgid "(Vector) Derivative in 'x' using local differencing." +msgstr "(向量)使用有限差分法得到的关于“x”的导数。" + +msgid "(Vector) Derivative in 'y' using local differencing." +msgstr "(向量)使用有限差分法得到的关于“y”的导数。" msgid "Returns the distance between two points." msgstr "返回两点之间的距离。" @@ -12918,6 +14167,14 @@ msgstr "返回指向反射方向的向量(a:入射向量,b:法向量) msgid "Returns the vector that points in the direction of refraction." msgstr "返回指向折射方向的向量。" +msgid "Remaps a vector from the input range to the output range." +msgstr "将向量从输入范围重新映射到输出范围。" + +msgid "" +"Remaps a vector from the input range to the output range. Ranges defined with " +"scalars." +msgstr "将向量从输入范围重新映射到输出范围。范围使用标量定义。" + msgid "" "SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" "\n" @@ -12964,6 +14221,9 @@ msgid "" "(Fragment/Light mode only) (Vector) Sum of absolute derivative in 'x' and 'y'." msgstr "(仅限片段/光照模式)(向量)“x” 和 “y” 中的绝对导数之和。" +msgid "(Vector) Sum of absolute derivative in 'x' and 'y'." +msgstr "(向量)关于“x” 和 “y” 的绝对导数之和。" + msgid "Adds 2D vector to 2D vector." msgstr "把 2D 向量与 2D 向量相加。" @@ -13267,6 +14527,33 @@ msgstr "" "是否从列表中移除所有缺失的项目?\n" "项目文件夹的内容不会被修改。" +msgid "" +"It looks like Godot crashed when opening this project the last time. If " +"you're having problems editing this project, you can try to open it in " +"Recovery Mode." +msgstr "" +"看起来上次打开该项目时 Godot 崩溃了。如果你在编辑该项目时遇到了问题,可以尝试" +"在“恢复模式”中打开。" + +msgid "" +"Recovery Mode is a special mode that may help to recover projects that crash " +"the engine during initialization. This mode temporarily disables the " +"following features:" +msgstr "" +"恢复模式是一种特殊的模式,它有助于恢复那些在初始化时导致引擎崩溃的工程。此模式" +"会临时禁用如下特性:" + +msgid "" +"This mode is intended only for basic editing to troubleshoot such issues, and " +"therefore it will not be possible to run the project during this mode. It is " +"also a good idea to make a backup of your project before proceeding." +msgstr "" +"该模式仅限进行基础的编辑,对此类问题进行排查,因此无法在该模式下运行项目。同时" +"也建议在继续处理前对项目进行备份。" + +msgid "Edit the project in Recovery Mode?" +msgstr "是否使用“恢复模式”编辑项目?" + msgid "Couldn't load project at '%s'. It may be missing or corrupted." msgstr "无法加载位于“%s”的项目。项目可能缺失或已损坏。" @@ -13352,6 +14639,9 @@ msgstr "注意:资产库需要连接网络,会通过互联网传输数据。 msgid "Edit Project" msgstr "编辑项目" +msgid "Edit in recovery mode" +msgstr "在恢复模式中编辑" + msgid "Rename Project" msgstr "重命名项目" @@ -13375,6 +14665,12 @@ msgstr "选择要扫描的文件夹" msgid "Remove All" msgstr "移除全部" +msgid "Edit normally" +msgstr "正常编辑" + +msgid "Edit in Recovery Mode" +msgstr "使用恢复模式编辑" + msgid "Convert Full Project" msgstr "转换完整项目" @@ -13505,6 +14801,9 @@ msgstr "简单场景的渲染速度较快。" msgid "Supports desktop, mobile + web platforms." msgstr "支持桌面、移动 + 网络平台。" +msgid "Least advanced 3D graphics." +msgstr "最不先进的 3D 图形。" + msgid "Intended for low-end/older devices." msgstr "针对低端/较老的设备。" @@ -13562,6 +14861,15 @@ msgstr "项目安装路径:" msgid "Renderer:" msgstr "渲染器:" +msgid "" +"RenderingDevice-based methods not available on this GPU:\n" +"%s\n" +"Please use the Compatibility renderer." +msgstr "" +"基于渲染设备(RenderingDevice-based)的方法在该GPU上不可用:\n" +"%s\n" +"请使用兼容性渲染器。" + msgid "The renderer can be changed later, but scenes may need to be adjusted." msgstr "渲染器可以稍后更改,但可能需要调整场景。" @@ -13571,6 +14879,9 @@ msgstr "版本控制元数据:" msgid "Git" msgstr "Git" +msgid "Edit Now" +msgstr "立即编辑" + msgid "This project was last edited in a different Godot version: " msgstr "该项目的最近一次编辑使用了不同的 Godot 版本: " @@ -13583,6 +14894,12 @@ msgstr "错误:文件系统上缺失项目。" msgid "Last edited timestamp" msgstr "最近编辑时间戳" +msgid "Scanning" +msgstr "扫描" + +msgid "Scanning for projects..." +msgstr "正在扫描项目..." + msgid "Missing Project" msgstr "缺失项目" @@ -14071,6 +15388,15 @@ msgstr "重设父节点为新节点" msgid "This operation requires a single selected node." msgstr "此操作只能应用于单个选中节点。" +msgid "Reset Position" +msgstr "重置位置" + +msgid "Reset Scale" +msgstr "重置缩放" + +msgid "Reset Rotation" +msgstr "重置旋转" + msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." @@ -14085,6 +15411,9 @@ msgstr "复制场景出错。" msgid "Instantiate Script" msgstr "实例化脚本" +msgid "<unknown>" +msgstr "<未知>" + msgid "Sub-Resources" msgstr "子资源" @@ -14114,6 +15443,9 @@ msgid "" "the selected nodes, if possible." msgstr "如果启用,则“重设父节点为新节点”会优先在选中节点的中心创建新节点。" +msgid "Hide Filtered Out Parents" +msgstr "隐藏被过滤的父级" + msgid "All Scene Sub-Resources" msgstr "场景所有子资源" @@ -14221,6 +15553,9 @@ msgstr "为选中节点创建或设置脚本。" msgid "Detach the script from the selected node." msgstr "从选中节点分离脚本。" +msgid "Extend the script of the selected node." +msgstr "扩展选中节点的脚本。" + msgid "Extra scene options." msgstr "更多场景选项。" @@ -14457,6 +15792,42 @@ msgstr "" msgid "Restart & Upgrade" msgstr "重启并升级" +msgid "Updating Script UIDs" +msgstr "正在更新脚本 UID" + +msgid "" +"As of Godot 4.4, scenes and resources use UIDs to reference scripts and " +"shaders.\n" +"\n" +"Normally, this update is applied to a single scene or resource once you save " +"it in Godot 4.4 for the first time. If you have a lot of scenes and/or " +"resources, doing this manually may be time-consuming. This tool will update " +"all of the project's scenes and resources at once.\n" +"\n" +"Click \"Restart & Upgrade\" to restart the editor and update all of the " +"scenes and resources in this project. Depending on the project size, it may " +"take several minutes.\n" +"\n" +"Note: Please make sure you have your project backed up before running the " +"tool, to avoid the possibility of data loss. Additionally, make sure to " +"commit all .uid files into version control (and do not add them to ignore-" +"lists like .gitignore)." +msgstr "" +"从 Godot 4.4 开始,场景和资源会使用 UID 来引用脚本和着色器。\n" +"\n" +"正常情况下,场景和资源文件只有在第一次使用 Godot 4.4 进行保存时才会发生更新。" +"如果你有很多场景和资源,手动进行此类更新可能非常耗时。这一工具会将项目中的所有" +"场景和资源一起进行更新。\n" +"\n" +"点击“重启并升级”会重启编辑器并更新此项目中的所有场景和资源。这一过程可能持续若" +"干分钟,取决于项目的大小。\n" +"\n" +"注意:在运行工具前,请确认已备份该项目,避免可能的数据丢失。此外,请确保将所" +"有 .uid 文件都提交进版本控制系统(请勿将其加入 .gitignore 等忽略列表)。" + +msgid "Learn More" +msgstr "了解更多" + msgid "Make this panel floating in the screen %d." msgstr "让这个面板在屏幕 %d 中浮动。" @@ -14470,6 +15841,64 @@ msgstr "" msgid "Select Screen" msgstr "选择屏幕" +msgid "" +"The CSGShape3D has an empty shape.\n" +"CSGShape3D empty shapes typically occur because the mesh is not manifold.\n" +"A manifold mesh forms a solid object without gaps, holes, or loose edges.\n" +"Each edge must be a member of exactly two faces." +msgstr "" +"CSGShape3D的形状为空。\n" +"CSGShape3D空形状通常是因为网格不是流形。\n" +"一个流形网格构建出一个没有缝隙、空洞或松散边缘的实心物体。\n" +"每条边必须是正好两个面的成员。" + +msgid "CSG operation returned an empty array." +msgstr "CSG 运算返回了空数组。" + +msgid "" +"Can not add a baked mesh as sibling for the scene root.\n" +"Move the CSG root node below a parent node." +msgstr "" +"无法为场景根节点添加烘焙网格同级。\n" +"请将 CSG 根节点移动至其他节点下。" + +msgid "CSG operation returned an empty mesh." +msgstr "CSG 运算返回了空网格。" + +msgid "Create baked CSGShape3D Mesh Instance" +msgstr "创建烘焙 CSGShape3D 网格实例" + +msgid "" +"Can not add a baked collision shape as sibling for the scene root.\n" +"Move the CSG root node below a parent node." +msgstr "" +"无法为场景根节点创建烘焙碰撞形状同级节点。\n" +"请将 CSG 根节点移动到其他节点下。" + +msgid "CSG operation returned an empty shape." +msgstr "CSG 运算返回了空形状。" + +msgid "Create baked CSGShape3D Collision Shape" +msgstr "创建烘焙 CSGShape3D 碰撞形状" + +msgid "CSG" +msgstr "CSG" + +msgid "Bake Mesh Instance" +msgstr "烘焙网格实例" + +msgid "Bake Collision Shape" +msgstr "烘焙碰撞形状" + +msgid "Change CSG Box Size" +msgstr "修改 CSG 盒大小" + +msgid "Change CSG Cylinder Radius" +msgstr "修改 CSG 圆柱半径" + +msgid "Change CSG Cylinder Height" +msgstr "修改 CSG 圆柱高度" + msgid "Change Torus Inner Radius" msgstr "修改圆环内半径" @@ -14485,6 +15914,27 @@ msgstr "无法调整数组大小。" msgid "Step argument is zero!" msgstr "步长参数为零!" +msgid "Not a script with an instance." +msgstr "不是带有实例的脚本。" + +msgid "Not based on a script." +msgstr "不是基于脚本。" + +msgid "Not based on a resource file." +msgstr "不是基于资源文件。" + +msgid "Invalid instance dictionary format (missing @path)." +msgstr "实例字典格式无效(缺失 @path)。" + +msgid "Invalid instance dictionary format (can't load script at @path)." +msgstr "实例字典格式无效(无法加载位于 @path 的脚本)。" + +msgid "Invalid instance dictionary format (invalid script at @path)." +msgstr "实例字典格式无效(位于 @path 的脚本无效)。" + +msgid "Invalid instance dictionary (invalid subclasses)." +msgstr "实例字典格式无效(子类无效)。" + msgid "Cannot instantiate GDScript class." msgstr "无法实例化 GDScript 类。" @@ -14597,6 +16047,12 @@ msgstr "编辑 Y 轴" msgid "Edit Z Axis" msgstr "编辑 Z 轴" +msgid "Keep Selection" +msgstr "保持选中项" + +msgid "Clear Rotation" +msgstr "清除旋转" + msgid "GridMap Settings" msgstr "GridMap 设置" @@ -14606,6 +16062,9 @@ msgstr "拾取距离:" msgid "Selection" msgstr "选择" +msgid "Erase" +msgstr "擦除" + msgid "Cursor Rotate X" msgstr "光标沿 X 轴旋转" @@ -14615,12 +16074,27 @@ msgstr "光标沿 Y 轴旋转" msgid "Cursor Rotate Z" msgstr "光标沿 Z 轴旋转" +msgid "" +"Change Grid Floor:\n" +"Previous Plane (%s)\n" +"Next Plane (%s)" +msgstr "" +"更改栅格底面:\n" +"上一个平面(%s)\n" +"下一个平面(%s)" + msgid "Filter Meshes" msgstr "筛选网格" msgid "Give a MeshLibrary resource to this GridMap to use its meshes." msgstr "向此 GridMap 提供 MeshLibrary 资源以使用其网格。" +msgid "GridMap" +msgstr "GridMap" + +msgid "Toggle GridMap Bottom Panel" +msgstr "开关 GridMap 底部面板" + msgid "All Clips" msgstr "所有剪辑" @@ -14747,12 +16221,18 @@ msgstr "正在剥离遮挡几何体" msgid "Plot direct lighting" msgstr "构建直接光照" +msgid "Plot direct lighting %d%%" +msgstr "构建直接光照 %d%%" + msgid "Integrate indirect lighting" msgstr "集成间接光照" msgid "Integrate indirect lighting %d%%" msgstr "集成间接光照 %d%%" +msgid "Baking light probes" +msgstr "正在烘焙光照探针" + msgid "Integrating light probes %d%%" msgstr "正在集成光照探针 %d%%" @@ -14771,6 +16251,18 @@ msgstr "类名必须是有效的标识符" msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "解码字节数不够,或格式无效。" +msgid "" +"Unable to load .NET runtime, no compatible version was found.\n" +"Attempting to create/edit a project will lead to a crash.\n" +"\n" +"Please install the .NET SDK 8.0 or later from https://get.dot.net and restart " +"Godot." +msgstr "" +"无法加载 .NET 运行时,未找到兼容的版本。\n" +"尝试创建/编辑项目会导致崩溃。\n" +"\n" +"请从 https://get.dot.net 安装 .NET SDK 8.0 或后续版本,然后重启 Godot。" + msgid "Failed to load .NET runtime" msgstr "加载 .NET 运行时失败" @@ -14784,6 +16276,18 @@ msgstr "" msgid ".NET assemblies not found" msgstr "未找到 .NET 程序集" +msgid "" +"Unable to load .NET runtime, specifically hostfxr.\n" +"Attempting to create/edit a project will lead to a crash.\n" +"\n" +"Please install the .NET SDK 8.0 or later from https://get.dot.net and restart " +"Godot." +msgstr "" +"无法加载 .NET 运行时的 hostfxr。\n" +"尝试创建和编辑项目会导致崩溃。\n" +"\n" +"请从 https://get.dot.net 安装 .NET SDK 8.0 或后续版本,然后重启 Godot。" + msgid "%d (%s)" msgstr "%d(%s)" @@ -15027,6 +16531,21 @@ msgstr "添加动作。" msgid "Remove action set." msgstr "移除动作集。" +msgid "Remove binding modifier." +msgstr "移除绑定修改器。" + +msgid "Remove binding modifier" +msgstr "移除绑定修改器" + +msgid "Add binding modifier" +msgstr "添加绑定修改器" + +msgid "Note: modifiers will only be applied if supported on the host system." +msgstr "提醒:修改器仅在宿主系统支持时生效。" + +msgid "Binding modifiers for:" +msgstr "绑定修改器:" + msgid "OpenXR Action Map" msgstr "OpenXR 动作映射" @@ -15036,12 +16555,21 @@ msgstr "开关 OpenXR 动作映射底部面板" msgid "Remove action from interaction profile" msgstr "从交互配置中移除动作" +msgid "Edit binding modifiers" +msgstr "编辑绑定修改器" + +msgid "Note: This interaction profile requires extension %s support." +msgstr "提醒:本交互预设需要%s扩展的支持。" + msgid "Add binding" msgstr "添加绑定" msgid "Remove binding" msgstr "移除绑定" +msgid "Note: This binding path requires extension %s support." +msgstr "提醒:本绑定路径需要%s扩展的支持。" + msgid "Pose" msgstr "姿势" @@ -15057,6 +16585,9 @@ msgstr "选择动作" msgid "Select an interaction profile" msgstr "选择交互配置" +msgid "All interaction profiles have been added to the action map." +msgstr "所有交互预设已保存到动作映射。" + msgid "Choose an XR runtime." msgstr "请选择 XR 运行时。" @@ -15066,6 +16597,11 @@ msgid "" msgstr "" "无法为多个 OpenXR 合成层使用同一个 SubViewport。请先在当前层中将其清除。" +msgid "" +"Cannot set SubViewport on an OpenXR composition layer when using an Android " +"surface." +msgstr "使用 Android 表面时无法为 OpenXR 合成层设置 SubViewport。" + msgid "OpenXR composition layers must have an XROrigin3D node as their parent." msgstr "OpenXR 合成层的父节点必须为 XROrigin3D。" @@ -15078,6 +16614,9 @@ msgid "" "Hole punching won't work as expected unless the sort order is less than zero." msgstr "排序小于零时打洞功能才能够正常工作。" +msgid "OpenXR visibility mask must have an XRCamera3D node as their parent." +msgstr "OpenXR 可见遮罩的父节点必须为 XRCamera3D。" + msgid "Package name is missing." msgstr "缺失包名。" @@ -15105,6 +16644,9 @@ msgstr "APK 扩展的公钥无效。" msgid "Invalid package name:" msgstr "无效的包名称:" +msgid "\"Use Gradle Build\" is required to enable \"Swipe to dismiss\"." +msgstr "必须启用“使用 Gradle 构建”才能启用“Swipe to dismiss”。" + msgid "\"Use Gradle Build\" must be enabled to use the plugins." msgstr "必须启用“使用 Gradle 构建”才能使用插件。" @@ -15141,6 +16683,15 @@ msgstr "“目标 SDK”应当为有效的整数,但获得了无效的“%s” msgid "\"Target SDK\" version must be greater or equal to \"Min SDK\" version." msgstr "“目标 SDK”版本必须大于等于“最小 SDK”版本。" +msgid "\"Use Gradle Build\" must be enabled to enable \"Show In Android Tv\"." +msgstr "必须启用“使用 Gradle 构建”才能启用“Show In Android Tv”。" + +msgid "\"Use Gradle Build\" must be enabled to enable \"Show As Launcher App\"." +msgstr "必须启用“使用 Gradle 构建”才能启用“Show As Launcher App”。" + +msgid "\"Use Gradle Build\" must be enabled to disable \"Show In App Library\"." +msgstr "必须启用“使用 Gradle 构建”才能禁用“Show In App Library”。" + msgid "Select device from the list" msgstr "从列表中选择设备" @@ -15168,9 +16719,25 @@ msgstr "无法在设备上运行。" msgid "Error: There was a problem validating the keystore username and password" msgstr "错误:校验密钥库用户名密码时出现问题" +msgid "" +"Unable to determine the C# project's TFM, it may be incompatible. The export " +"template only supports '%s'. Make sure the project targets '%s' or consider " +"using gradle builds instead." +msgstr "" +"无法确定 C# 项目的 TFM,可能不兼容。导出模板仅支持“%s”。请确保项目以“%s”为目" +"标,或考虑改用 Gradle 构建。" + +msgid "" +"C# project targets '%s' but the export template only supports '%s'. Consider " +"using gradle builds instead." +msgstr "C# 项目以“%s”为目标,但是导出模板仅支持“%s”。请考虑改用 Gradle 构建。" + msgid "Exporting to Android when using C#/.NET is experimental." msgstr "使用 C#/.NET 时导出到 Android 是实验性的。" +msgid "Gradle build is not supported for the Android editor." +msgstr "Android 编辑器不支持 Gradle 构建。" + msgid "Custom Android source template not found." msgstr "找不到自定义 Android 源码模板。" @@ -15256,9 +16823,36 @@ msgstr "" msgid "Code Signing" msgstr "代码签名" +msgid "AAB signing is not supported" +msgstr "不支持 AAB 签名" + +msgid "Signing debug APK..." +msgstr "正在签名调试 APK……" + +msgid "Signing release APK..." +msgstr "正在签名发布 APK……" + msgid "Could not find keystore, unable to export." msgstr "找不到密钥库,无法导出。" +msgid "Unable to sign apk." +msgstr "无法为 APK 签名。" + +msgid "" +"All 'apksigner' tools located in Android SDK 'build-tools' directory failed " +"to execute. Please check that you have the correct version installed for your " +"target sdk version. The resulting APK is unsigned." +msgstr "" +"位于 Android SDK“build-tools”目录下的所有“apksigner”工具都未能成功执行。请检查" +"你是否为目标 SDK 版本安装了正确的版本。生成的 APK 未签名。" + +msgid "" +"'apksigner' could not be found. Please check that the command is available in " +"the Android SDK build-tools directory. The resulting APK is unsigned." +msgstr "" +"无法找到“apksigner”。请检查 Android SDK 的 build-tools 目录中是否有此命令。生" +"成的 APK 未签名。" + msgid "Could not start apksigner executable." msgstr "无法启动 apksigner 可执行文件。" @@ -15272,6 +16866,15 @@ msgstr "" "输出:\n" "%s" +msgid "Verifying APK..." +msgstr "正在校验 APK……" + +msgid "Unable to verify signed apk." +msgstr "无法校验签名后的 APK。" + +msgid "'apksigner' verification of APK failed." +msgstr "“apksigner”APK 校验失败。" + msgid "Target folder does not exist or is inaccessible: \"%s\"" msgstr "目标文件夹不存在或无法访问:“%s”" @@ -15330,6 +16933,12 @@ msgstr "移动输出" msgid "Unable to copy and rename export file:" msgstr "无法复制并更名导出文件:" +msgid "Debug export template not found: \"%s\"." +msgstr "找不到调试导出模板:“%s”。" + +msgid "Release export template not found: \"%s\"." +msgstr "找不到发布导出模板:“%s”。" + msgid "Creating APK..." msgstr "正在创建 APK……" @@ -15422,12 +17031,6 @@ msgid "" "template archive." msgstr "未找到请求的模板二进制文件“%s”。你的模板包中可能缺失该文件。" -msgid "ARM64 simulator library, generating from device library." -msgstr "ARM64 模拟器库,根据设备库生成。" - -msgid "Unable to generate ARM64 simulator library." -msgstr "无法生成 ARM64 模拟器库。" - msgid "Could not copy a file at path \"%s\" to \"%s\"." msgstr "无法将位于“%s”的文件复制到“%s”。" @@ -15466,6 +17069,9 @@ msgstr "使用 C#/.NET 时导出到 iOS 是实验性的。" msgid "Invalid additional PList content: " msgstr "额外 PList 内容无效: " +msgid "Metal renderer require iOS 14+." +msgstr "金属材质渲染器需要iOS 14+。" + msgid "Identifier is missing." msgstr "缺少标识符。" @@ -15496,12 +17102,27 @@ msgstr "调试脚本导出" msgid "Could not open file \"%s\"." msgstr "无法打开文件“%s”。" +msgid "" +"Mismatching custom export template executable architecture, found \"%s\", " +"expected \"%s\"." +msgstr "自定义导出模板可执行文件架构不匹配,发现了“%s”,预期应为“%s”。" + msgid "Debug Console Export" msgstr "调试控制台导出" msgid "Could not create console wrapper." msgstr "无法创建控制台封装。" +msgid "" +"Mismatching custom debug export template executable architecture: found " +"\"%s\", expected \"%s\"." +msgstr "自定义的调试级导出模板可执行文件架构不匹配,发现了“%s”,预期应为“%s”。" + +msgid "" +"Mismatching custom release export template executable architecture: found " +"\"%s\", expected \"%s\"." +msgstr "自定义release级导出模板可执行文件架构不匹配,发现了“%s”,预期应为“%s”。" + msgid "Failed to open executable file \"%s\"." msgstr "打开可执行文件“%s”失败。" @@ -15735,6 +17356,13 @@ msgstr "该操作系统上不支持相对符号链接,导出的项目可能损 msgid "Could not created symlink \"%s\" -> \"%s\"." msgstr "无法创建符号链接 “%s” -> “%s”。" +msgid "" +"Unable to set Unix permissions for executable \"%s\". Use \"chmod +x\" to set " +"it after transferring the exported .app to macOS or Linux." +msgstr "" +"无法为可执行文件“%s”设置Unix权限。请在将转换的导出.app文件转移至macOS或Linux系" +"统后使用“chmod +x”命令为其重新设置。" + msgid "Could not open \"%s\"." msgstr "无法打开“%s”。" @@ -15917,6 +17545,11 @@ msgstr "资源修改" msgid "Icon size \"%d\" is missing." msgstr "缺少图标尺寸“%d”。" +msgid "" +"Mismatching custom export template executable architecture: found \"%s\", " +"expected \"%s\"." +msgstr "自定义导出模板可执行文件架构不匹配:发现了“%s”,预期为“%s”。" + msgid "Failed to rename temporary file \"%s\"." msgstr "重命名临时文件“%s”失败。" @@ -16035,6 +17668,15 @@ msgid "" msgstr "" "Particles2D 动画需要使用启用了 “Particles Animation” 的 CanvasItemMaterial。" +msgid "" +"Particle trails are only available when using the Forward+ or Mobile " +"renderers." +msgstr "粒子尾迹仅在使用 Forward+ 或 Mobile 渲染器后端时可用。" + +msgid "" +"Particle sub-emitters are not available when using the Compatibility renderer." +msgstr "粒子的子发射器在使用 Compatibility 渲染器时不可用。" + msgid "" "A texture with the shape of the light must be supplied to the \"Texture\" " "property." @@ -16056,6 +17698,20 @@ msgid "" "be useful." msgstr "NavigationLink2D 的开始位置应该与结束位置不同,才能发挥作用。" +msgid "NavigationObstacle2D does not support negative or zero scaling." +msgstr "NavigationObstacle2D不支持负放缩或零放缩。" + +msgid "" +"The agent radius can only be scaled uniformly. The largest value along the " +"two axes of the global scale will be used to scale the radius. This value may " +"change in unexpected ways when the node is rotated." +msgstr "" +"代理半径仅可以被均匀地放缩。全局范围内两条轴线上的最大值将被用于放缩该半径。当" +"节点被旋转,该值可能会以不希望的方式变化。" + +msgid "Skew has no effect on the agent radius." +msgstr "斜角对代理半径没有影响。" + msgid "" "A NavigationMesh resource must be set or created for this node to work. " "Please set a property or draw a polygon." @@ -16116,6 +17772,13 @@ msgid "" "shape resource for it!" msgstr "CollisionShape2D 必须有形状才能工作。请先为其创建形状资源!" +msgid "" +"The CollisionShape2D node has limited editing options for polygon-based " +"shapes. Consider using a CollisionPolygon2D node instead." +msgstr "" +"CollisionShape2D节点对基于多边形的形状仅有有限的编辑选项。请考虑换用" +"CollisionPolygon2D节点。" + msgid "Node A and Node B must be PhysicsBody2Ds" msgstr "Node A 与 Node B 必须为 PhysicsBody2D" @@ -16247,6 +17910,9 @@ msgstr "" "CPUParticles3D 动画需要使用 StandardMaterial3D,其 Billboard Mode 应被设置" "为“Particle Billboard”。" +msgid "Decals are only available when using the Forward+ or Mobile renderers." +msgstr "贴花仅在使用 Forward+ 或 Mobile 渲染器时可用。" + msgid "" "The decal has no textures loaded into any of its texture properties, and will " "therefore not be visible." @@ -16270,6 +17936,9 @@ msgstr "" "该贴花的 Cull Mask 没有启用任何位,这意味着该贴花不会在任何层上绘制对象。\n" "要解决此问题,请在 Cull Mask 属性中至少启用一位。" +msgid "Fog Volumes are only visible when using the Forward+ renderer." +msgstr "体积雾仅在使用 Forward+ 渲染器时可见。" + msgid "" "Fog Volumes need volumetric fog to be enabled in the scene's Environment in " "order to be visible." @@ -16303,6 +17972,11 @@ msgid "" "for trails rendering." msgstr "尾迹已启用,但至少有一个网格材质处于缺失状态,或未设置尾迹渲染。" +msgid "" +"Particle sub-emitters are only available when using the Forward+ or Mobile " +"renderers." +msgstr "粒子的子发射器仅在使用 Forward+ 或 Mobile 渲染器时可用。" + msgid "" "The Bake Mask has no bits enabled, which means baking will not produce any " "collision for this GPUParticlesCollisionSDF3D.\n" @@ -16318,6 +17992,11 @@ msgstr "灯光的缩放不会影响灯光的视觉尺寸。" msgid "Projector texture only works with shadows active." msgstr "投影纹理仅在阴影激活时能够正常工作。" +msgid "" +"Projector textures are not supported when using the Compatibility renderer " +"yet. Support will be added in a future release." +msgstr "使用 Compatibility 渲染器时尚不支持投影器纹理。将在后续版本中加入。" + msgid "A SpotLight3D with an angle wider than 90 degrees cannot cast shadows." msgstr "角度大于 90 度的 SpotLight3D 无法投射阴影。" @@ -16345,6 +18024,41 @@ msgstr "正在生成探针体积" msgid "Generating Probe Acceleration Structures" msgstr "正在生成探针加速结构" +msgid "" +"Lightmaps can only be baked from a GPU that supports the RenderingDevice " +"backends.\n" +"Your GPU (%s) does not support RenderingDevice, as it does not support " +"Vulkan, Direct3D 12, or Metal.\n" +"Lightmap baking will not be available on this device, although rendering " +"existing baked lightmaps will work." +msgstr "" +"光照贴图只能在支持 RenderingDevice 后端的 GPU 上烘培。\n" +"你的GPU(%s)不支持 Vulkan、Direct3D 12 或 Metal,因此不支持 " +"RenderingDevice。\n" +"设备无法烘焙光照贴图,但已烘培过的光照贴图仍可正常渲染。" + +msgid "" +"The lightmap has no baked shadowmask textures. Please rebake with the " +"Shadowmask Mode set to anything other than None." +msgstr "" +"光照贴图没有烘焙阴影遮罩纹理。请将 Shadowmask Mode 设置为非 None 值后重新烘" +"焙。" + +msgid "" +"Lightmaps cannot be baked on %s. Rendering existing baked lightmaps will " +"still work." +msgstr "无法在 %s 上烘焙光照贴图。已烘培过的光照贴图仍可正常渲染。" + +msgid "" +"Lightmaps cannot be baked, as the `lightmapper_rd` module was disabled at " +"compile-time. Rendering existing baked lightmaps will still work." +msgstr "" +"无法烘培光照贴图,因为编译时禁用了 `lightmapper_rd` 模块。已烘培过的光照贴图仍" +"可正常渲染。" + +msgid "Forward axis and primary rotation axis must not be parallel." +msgstr "前向坐标轴和主旋转坐标轴不可平行。" + msgid "" "The NavigationAgent3D can be used only under a Node3D inheriting parent node." msgstr "NavigationAgent3D 只能在继承 Node3D 的父节点下使用。" @@ -16354,6 +18068,22 @@ msgid "" "be useful." msgstr "NavigationLink3D 的开始位置应该与结束位置不同,才能发挥作用。" +msgid "" +"NavigationObstacle3D only takes global rotation around the y-axis into " +"account. Rotations around the x-axis or z-axis might lead to unexpected " +"results." +msgstr "" +"NavigationObstacle3D 仅考虑围绕 Y 轴的全局旋转。围绕 X 轴或 Z 轴的旋转可能导致" +"意外的结果。" + +msgid "NavigationObstacle3D does not support negative or zero scaling." +msgstr "NavigationObstacle3D 不支持负放缩或零放缩。" + +msgid "" +"The agent radius can only be scaled uniformly. The largest scale value along " +"the three axes will be used." +msgstr "代理半径尽可以被均匀放缩。三个轴向上的最大尺度会被使用。" + msgid "" "Occlusion culling is disabled in the Project Settings, which means occlusion " "culling won't be performed in the root viewport.\n" @@ -16545,12 +18275,18 @@ msgid "" msgstr "" "“Remote Path”属性必须指向有效的 Node3D 或从 Node3D 派生的节点才能正常工作。" +msgid "There is no child Skeleton3D!" +msgstr "没有 Skeleton3D 子节点!" + msgid "Skeleton3D node not set! SkeletonModifier3D must be child of Skeleton3D." msgstr "未设置 Skeleton3D 节点!SkeletonModifier3D 必须是 Skeleton3D 的子节点。" msgid "This body will be ignored until you set a mesh." msgstr "在设置网格之前,将忽略该实体。" +msgid "Parent node should be a SpringBoneSimulator3D node." +msgstr "父节点应该是一个 SpringBoneSimulator3D 节点。" + msgid "" "A SpriteFrames resource must be created or set in the \"Sprite Frames\" " "property in order for AnimatedSprite3D to display frames." @@ -16604,6 +18340,11 @@ msgstr "正在生成距离场" msgid "Finishing Plot" msgstr "正在完成绘制" +msgid "" +"VoxelGI nodes are not supported when using the Compatibility renderer yet. " +"Support will be added in a future release." +msgstr "使用 Compatibility 渲染器时暂不支持 VoxelGI 节点。将在后续版本中加入。" + msgid "" "No VoxelGI data set, so this node is disabled. Bake static objects to enable " "GI." @@ -16672,6 +18413,15 @@ msgstr "ButtonGroup 的目的是只用于那些将 toggle_mode 设置为 true msgid "Copy this constructor in a script." msgstr "复制这个脚本中的构造函数。" +msgid "Load Color Palette" +msgstr "加载调色板" + +msgid "Save Color Palette" +msgstr "保存调色板" + +msgid "Quick Load" +msgstr "快速加载" + msgid "Switch between hexadecimal and code values." msgstr "在十六进制值和代码值之间切换。" @@ -16709,6 +18459,14 @@ msgid "" "this Label's text." msgstr "当前字体不支持渲染该标签文本中使用的一个或多个字符。" +msgid "" +"The current theme style has shadows and/or rounded corners for popups, but " +"those won't display correctly if \"display/window/per_pixel_transparency/" +"allowed\" isn't enabled in the Project Settings, nor if it isn't supported." +msgstr "" +"当前主题风格中的弹出框使用了阴影和/或圆角,但如果项目设置中的“display/window/" +"per_pixel_transparency/allowed”没有启用或不被支持,就无法正确显示。" + msgid "If \"Exp Edit\" is enabled, \"Min Value\" must be greater than 0." msgstr "如果启用了 “Exp Edit”,则 “Min Value” 必须大于 0。" @@ -16872,6 +18630,12 @@ msgstr "使用所有表面" msgid "Surface Index" msgstr "表面索引" +msgid "Division by zero error." +msgstr "除数为零错误。" + +msgid "Modulo by zero error." +msgstr "用零取模错误。" + msgid "" "Invalid number of arguments when calling stage function '%s', which expects " "%d arguments." @@ -16933,6 +18697,14 @@ msgstr "参数后期望有“,”或“)”。" msgid "Varying may not be assigned in the '%s' function." msgstr "“%s”函数中不能为 varying 赋值。" +msgid "Varying with '%s' data type may only be assigned in the '%s' function." +msgstr "数据类型为“%s”的 varying 只能在“%s”函数中赋值。" + +msgid "" +"Varyings which assigned in '%s' function may not be reassigned in '%s' or " +"'%s'." +msgstr "在“%s”函数中赋值的 varying 不能在“%s”和“%s”中重新赋值。" + msgid "'%s' cannot be used within the '%s' processor function." msgstr "“%s”无法在“%s”处理器函数中使用。" @@ -16986,6 +18758,9 @@ msgstr "预期为正整数常量。" msgid "Invalid data type for the array." msgstr "数组的数据类型无效。" +msgid "Array size mismatch. Expected %d elements (found %d)." +msgstr "数组大小不匹配。预期为 %d 个元素(发现 %d 个)。" + msgid "Expected array initialization." msgstr "预期为数组初始化。" @@ -17036,6 +18811,12 @@ msgstr "" "为了保持最小的代码改动,你可以在着色器顶部附近添加“uniform sampler2D %s : " "hint_%s, filter_linear_mipmap;”。" +msgid "Varying with '%s' data type may only be used in the '%s' function." +msgstr "数据类型为“%s”的 Varying 不能在“%s”函数中使用。" + +msgid "Varying '%s' must be assigned in the '%s' function first." +msgstr "Varying“%s”必须先在“%s”函数中赋值。" + msgid "Can't use function as identifier: '%s'." msgstr "不能使用函数作为标识符:“%s”。" @@ -17066,9 +18847,6 @@ msgstr "类型为“%s”的对象不能被索引。" msgid "Invalid base type for increment/decrement operator." msgstr "递增/递减运算符的基础类型无效。" -msgid "Invalid use of increment/decrement operator in a constant expression." -msgstr "在常量表达式中使用递增/递减运算符无效。" - msgid "Invalid token for the operator: '%s'." msgstr "运算符标记无效:“%s”。" @@ -17120,6 +18898,9 @@ msgstr "“=”后预期为函数调用参数 %d 的常量表达式。" msgid "Expected a boolean expression." msgstr "预期为布尔表达式。" +msgid "Expected an integer or unsigned integer expression." +msgstr "预期为整数或无符号整数表达式。" + msgid "Cases must be defined before default case." msgstr "必须在默认 case 前定义其他 case。" @@ -17129,6 +18910,9 @@ msgstr "默认 case 必须只定义一次。" msgid "'%s' must be placed within a '%s' block." msgstr "“%s”必须放在“%s”块内。" +msgid "Expected an unsigned integer constant." +msgstr "预期为无符号整数常量。" + msgid "Expected an integer constant." msgstr "预期为整数常量。" @@ -17141,15 +18925,24 @@ msgstr "“%s”在“%s”处理器函数中的使用不正确。" msgid "Expected '%s' with an expression of type '%s'." msgstr "预期为“%s”,是类型为“%s”的表达式。" +msgid "'%s' function cannot return a value." +msgstr "“%s”函数没有返回值。" + msgid "Expected return with an expression of type '%s'." msgstr "预期为返回类型为“%s”的表达式。" +msgid "Use of '%s' is not supported for the '%s' shader type." +msgstr "“%s”不支持用于着色器类型“%s”。" + msgid "'%s' is not allowed outside of a loop or '%s' statement." msgstr "循环和“%s”语句之外不允许“%s”。" msgid "'%s' is not allowed outside of a loop." msgstr "循环之外不允许“%s”。" +msgid "The middle expression is expected to have a boolean data type." +msgstr "中间的表达式预期为布尔数据类型。" + msgid "The left expression is expected to be a variable declaration." msgstr "左侧的表达式预期为变量声明。" @@ -17261,6 +19054,15 @@ msgstr "整数常量后预期为“,”。" msgid "Expected an integer constant after ','." msgstr "“,”后预期为整数常量。" +msgid "Enum hint is for '%s' only." +msgstr "枚举提示仅适用于“%s”。" + +msgid "Expected a string constant." +msgstr "预期为字符串常量。" + +msgid "Expected ',' or ')' after string constant." +msgstr "字符串常量后预期为“,”或“)”。" + msgid "Can only specify '%s' once." msgstr "只能指定一次“%s”。" @@ -17270,6 +19072,11 @@ msgstr "实例索引不能为负。" msgid "Allowed instance uniform indices must be within [0..%d] range." msgstr "实例 uniform 索引必须在 [0...%d] 范围内。" +msgid "" +"'hint_normal_roughness_texture' is only available when using the Forward+ " +"renderer." +msgstr "“hint_normal_roughness_texture”仅在使用 Forward+ 渲染器时可用。" + msgid "'hint_normal_roughness_texture' is not supported in '%s' shaders." msgstr "“%s”着色器尚未支持“hint_normal_roughness_texture”。" @@ -17348,6 +19155,9 @@ msgstr "不支持全局非常量变量。常量定义前预期为“%s”关键 msgid "Expected an identifier after type." msgstr "类型后预期为标识符。" +msgid "'%s' qualifier cannot be used with a function return type." +msgstr "“%s”修饰符不能用于声明函数返回类型。" + msgid "" "The '%s' qualifier cannot be used within a function parameter declared with " "'%s'." @@ -17377,6 +19187,14 @@ msgstr "函数开头预期为“{”。" msgid "Expected at least one '%s' statement in a non-void function." msgstr "非 void 函数中预期至少有一条“%s”语句。" +msgid "" +"Varying with integer data type must be declared with `%s` interpolation " +"qualifier." +msgstr "整数数据类型的 Varying 必须使用 `%s` 插值修饰符声明。" + +msgid "Too many varyings used in shader (%d used, maximum supported is %d)." +msgstr "着色器中使用的 varying 过多(使用了 %d 个,最多支持 %d 个)。" + msgid "uniform buffer" msgstr "uniform 缓冲" @@ -17413,12 +19231,18 @@ msgstr "“##”不能出现在宏展开的开头。" msgid "'##' must not appear at end of macro expansion." msgstr "“##”不能出现在宏展开的末尾。" +msgid "Unmatched '%s' directive." +msgstr "不匹配的“%s”指令。" + msgid "Missing condition." msgstr "缺少条件。" msgid "Condition evaluation error." msgstr "条件评估错误。" +msgid "Invalid '%s' directive." +msgstr "无效的“%s”指令。" + msgid "Shader include file does not exist:" msgstr "着色器头文件的不存在:" @@ -17436,6 +19260,9 @@ msgstr "发现循环包含" msgid "Shader max include depth exceeded." msgstr "超出着色器最大包含深度。" +msgid "Cannot use '%s' on built-in define." +msgstr "不能将“%s”用于内置定义。" + msgid "Macro expansion limit exceeded." msgstr "已超出宏展开限制。" diff --git a/engine/editor/translations/editor/zh_TW.po b/engine/editor/translations/editor/zh_TW.po index c2c430f2..6b8518f0 100644 --- a/engine/editor/translations/editor/zh_TW.po +++ b/engine/editor/translations/editor/zh_TW.po @@ -61,13 +61,14 @@ # SusBon Tan <susbontan@gmail.com>, 2024. # WerewolfwolfyXD <wer.xd@qq.com>, 2025. # Oscar Su <oscar517730@gmail.com>, 2025. +# codetea <codetea@users.noreply.hosted.weblate.org>, 2025. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2025-01-27 21:46+0000\n" -"Last-Translator: Oscar Su <oscar517730@gmail.com>\n" +"PO-Revision-Date: 2025-02-09 14:12+0000\n" +"Last-Translator: codetea <codetea@users.noreply.hosted.weblate.org>\n" "Language-Team: Chinese (Traditional Han script) <https://hosted.weblate.org/" "projects/godot-engine/godot/zh_Hant/>\n" "Language: zh_TW\n" @@ -671,6 +672,15 @@ msgstr "更改動畫長度" msgid "Change Animation Loop" msgstr "更改動畫循環" +msgid "" +"Can't change loop mode on animation embedded in another scene.\n" +"\n" +"You must open this scene and change the animation's loop mode from there." +msgstr "" +"無法更改從其他場景嵌入的動畫的循環播放模式。\n" +"\n" +"您必須開啟該場景,並從該處更改動畫的循環模式。" + msgid "Property Track..." msgstr "屬性軌道…" @@ -15600,7 +15610,7 @@ msgid "" "The rcedit tool must be configured in the Editor Settings (Export > Windows > " "rcedit) to change the icon or app information data." msgstr "" -"必須在編輯器設定中田素 rcedit 工具(匯出 > Windows > Rcedit)才能修改圖示或應" +"必須在編輯器設定中填入 rcedit 工具(匯出 > Windows > Rcedit)才能修改圖示或應" "用程式訊息資料。" msgid "Windows executables cannot be >= 4 GiB." @@ -16550,9 +16560,6 @@ msgstr "型別為”%s“的物件不能被索引。" msgid "Invalid base type for increment/decrement operator." msgstr "遞增/遞減運算子的基礎型別無效。" -msgid "Invalid use of increment/decrement operator in a constant expression." -msgstr "在純量表示式中使用遞增/遞減運算子無效。" - msgid "Invalid token for the operator: '%s'." msgstr "運算子標記無效:”%s\"。" diff --git a/engine/editor/translations/extractable/fr.po b/engine/editor/translations/extractable/fr.po index 12c2be93..6a1f2ab5 100644 --- a/engine/editor/translations/extractable/fr.po +++ b/engine/editor/translations/extractable/fr.po @@ -46,18 +46,50 @@ msgstr "" "Couleur : #%s\n" "Clic gauche : Appliquer la couleur" +msgid "The changes to this palette have not been saved to a file." +msgstr "" +"Les modifications de cette palette n'ont pas été enregistrées dans un fichier." + msgid "Enter a hex code (\"#ff0000\") or named color (\"red\")." msgstr "Entrez un code hexadécimal («#ff0000») ou le nom d'une couleur («red»)." +msgid "Save the current color palette to reuse later." +msgstr "" +"Enregistrer la palette de couleurs actuelle pour la réutiliser ultérieurement." + +msgid "Save the current color palette as a new to reuse later." +msgstr "" +"Enregistrer la palette de couleurs actuelle en tant que nouvelle palette pour " +"la réutiliser ultérieurement." + +msgid "Load existing color palette." +msgstr "Charger une palette de couleurs existante." + +msgid "Clear the currently loaded color palettes in the picker." +msgstr "" +"Effacer les palettes de couleurs actuellement chargées dans le sélecteur." + msgid "Select a picker shape." msgstr "Sélectionnez une forme de sélection." msgid "Select a picker mode." msgstr "Sélectionnez un mode de sélection." +msgid "Colorized Sliders" +msgstr "Curseurs colorés" + +msgid "Hex" +msgstr "Hex" + msgid "Hex code or named color" msgstr "Code hexadécimal ou nom de couleur" +msgid "Show all options available." +msgstr "Voir toutes les options disponibles." + +msgid "Recent Colors" +msgstr "Couleurs récentes" + msgid "Add current color as a preset." msgstr "Ajouter la couleur courante comme préréglage." @@ -95,6 +127,12 @@ msgstr "Enregistrer" msgid "Select This Folder" msgstr "Sélectionner ce dossier" +msgid "Open in File Manager" +msgstr "Ouvrir dans le gestionnaire de fichiers" + +msgid "Show Package Contents" +msgstr "Voir le contenu du paquet" + msgid "You don't have permission to access contents of this folder." msgstr "Vous n'avez pas l'autorisation d'accéder au contenu de ce dossier." @@ -239,6 +277,9 @@ msgstr "Gluon de mots (WJ)" msgid "Soft Hyphen (SHY)" msgstr "Trait d'union conditionnel (SHY)" +msgid "Emoji & Symbols" +msgstr "Émojis et symboles" + msgid "Cut" msgstr "Couper" diff --git a/engine/editor/translations/properties/cs.po b/engine/editor/translations/properties/cs.po index 65dcd6fe..0ea0ef17 100644 --- a/engine/editor/translations/properties/cs.po +++ b/engine/editor/translations/properties/cs.po @@ -40,7 +40,7 @@ # Marek Douběta <mrocklon420@gmail.com>, 2023. # Marek Poustka <noskrat@gmail.com>, 2024. # Dante <jamesbondytc@gmail.com>, 2024. -# michaloM <michalsvoboda2004@gmail.com>, 2024. +# michaloM <michalsvoboda2004@gmail.com>, 2024, 2025. # Pythom1234 <tom.fucik@email.cz>, 2025. # Vojtech Krajnansky <vojtech.krajnansky@gmail.com>, 2025. msgid "" @@ -48,8 +48,8 @@ msgstr "" "Project-Id-Version: Godot Engine properties\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2025-02-06 23:02+0000\n" -"Last-Translator: Vojtech Krajnansky <vojtech.krajnansky@gmail.com>\n" +"PO-Revision-Date: 2025-03-01 17:31+0000\n" +"Last-Translator: Pythom1234 <tom.fucik@email.cz>\n" "Language-Team: Czech <https://hosted.weblate.org/projects/godot-engine/godot-" "properties/cs/>\n" "Language: cs\n" @@ -57,7 +57,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 5.10-dev\n" +"X-Generator: Weblate 5.10.3-dev\n" msgid "Application" msgstr "Aplikace" @@ -161,6 +161,9 @@ msgstr "Rozšířit na název" msgid "No Focus" msgstr "Nelze zaměřit" +msgid "Sharp Corners" +msgstr "Ostré rohy" + msgid "Window Width Override" msgstr "Přepsání šířky okna" @@ -192,7 +195,7 @@ msgid "Buses" msgstr "Sběrnice" msgid "Default Bus Layout" -msgstr "Výchozí rozložení sběrnice" +msgstr "Výchozí rozvržení sběrnice" msgid "General" msgstr "Obecné" @@ -224,9 +227,18 @@ msgstr "Podokna" msgid "Embed Subwindows" msgstr "Vložit podokna" +msgid "Frame Pacing" +msgstr "Tempo snímků" + msgid "Android" msgstr "Android" +msgid "Enable Frame Pacing" +msgstr "Povolit tempo snímků" + +msgid "Swappy Mode" +msgstr "Swappy režim" + msgid "Physics" msgstr "Fyzika" @@ -312,10 +324,10 @@ msgid "Internationalization" msgstr "Internacionalizace" msgid "Force Right to Left Layout Direction" -msgstr "Vynutit směr rozložení zprava doleva" +msgstr "Vynutit směr rozvržení zprava doleva" msgid "Root Node Layout Direction" -msgstr "Směr rozložení kořenového uzlu" +msgstr "Směr rozvržení kořenového uzlu" msgid "Root Node Auto Translate" msgstr "Automatický posun kořenového uzlu" @@ -369,7 +381,10 @@ msgid "Max Size (MB)" msgstr "Maximální velikost (MB)" msgid "Texture Upload Region Size Px" -msgstr "Velikost oblasti pro nahrávání textury (px)" +msgstr "Velikost oblasti pro nahrávání textur (px)" + +msgid "Texture Download Region Size Px" +msgstr "Velikost oblasti pro stahování textur (px)" msgid "Pipeline Cache" msgstr "Pipeline mezipaměť" @@ -422,12 +437,18 @@ msgstr "Použít ambientní světlo" msgid "Input Devices" msgstr "Vstupní zařízení" +msgid "Pointing" +msgstr "Dotyk" + msgid "Enable Long Press as Right Click" msgstr "Povolit pravé kliknutí dlouhým dotykem" msgid "Enable Pan and Scale Gestures" msgstr "Povolit gesta posunutí a škálování" +msgid "Rotary Input Scroll Axis" +msgstr "Osa posování otočného vstupu" + msgid "Low Processor Usage Mode" msgstr "Režim nízkého využití procesoru" @@ -438,7 +459,10 @@ msgid "Delta Smoothing" msgstr "Vyhlazování delty" msgid "Print Error Messages" -msgstr "Vypsat chybové hlášky" +msgstr "Vypisovat chybové hlášky" + +msgid "Print to stdout" +msgstr "Vypisovat do stdout" msgid "Physics Ticks per Second" msgstr "Fyzikální tiky za sekundu" @@ -473,6 +497,21 @@ msgstr "Kompatibilita" msgid "Legacy Just Pressed Behavior" msgstr "Starší chování \"právě stisknuto\"" +msgid "Sensors" +msgstr "Senzory" + +msgid "Enable Accelerometer" +msgstr "Povolit akcelerometr" + +msgid "Enable Gravity" +msgstr "Povolit gravitaci" + +msgid "Enable Gyroscope" +msgstr "Povolit gyroskop" + +msgid "Enable Magnetometer" +msgstr "Povolit magnetometr" + msgid "Device" msgstr "Zařízení" @@ -501,7 +540,7 @@ msgid "Keycode" msgstr "Kód klávesy" msgid "Physical Keycode" -msgstr "Fyzický kód klávesy" +msgstr "Kód fyzické klávesy" msgid "Key Label" msgstr "Popisek klávesy" @@ -513,7 +552,7 @@ msgid "Location" msgstr "Umístění" msgid "Echo" -msgstr "Echo" +msgstr "Ozvěna" msgid "Button Mask" msgstr "Maska tlačítka" @@ -579,7 +618,7 @@ msgid "Event Index" msgstr "Index události" msgid "Delta" -msgstr "Delta" +msgstr "Změna" msgid "Channel" msgstr "Kanál" @@ -609,7 +648,7 @@ msgid "Include Hidden" msgstr "Zobrazit skryté soubory" msgid "Big Endian" -msgstr "Big-Endian" +msgstr "Big-endian" msgid "Blocking Mode Enabled" msgstr "Režim blokování povolen" @@ -621,7 +660,7 @@ msgid "Data" msgstr "Data" msgid "Object ID" -msgstr "ID Objektu" +msgstr "ID objektu" msgid "Encode Buffer Max Size" msgstr "Maximální velikost vyrovnávací paměti kódování" @@ -699,7 +738,7 @@ msgid "Connect Timeout Seconds" msgstr "Časový limit připojení (s)" msgid "Packet Peer Stream" -msgstr "Streamový posel paketů" +msgstr "Stream packet peer" msgid "Max Buffer (Power of 2)" msgstr "Maximální velikost vyrovnávací paměti (mocnina 2)" @@ -792,10 +831,10 @@ msgid "Start Offset" msgstr "Počáteční offset" msgid "End Offset" -msgstr "Konečný offset" +msgstr "Koncový offset" msgid "Easing" -msgstr "Vyhlazení vstupu/výstupu" +msgstr "Vyhlazení" msgid "Debug Adapter" msgstr "Adaptér ladění" @@ -804,20 +843,23 @@ msgid "Remote Port" msgstr "Vzdálený port" msgid "Request Timeout" -msgstr "Požadavek selhal, vypršel časový limit" +msgstr "Čas na požadavek vypršel" msgid "Sync Breakpoints" msgstr "Synchronizovat breakpointy" -msgid "Default Feature Profile" -msgstr "Výchozí profil funkcí" - msgid "Label" msgstr "Popisek" msgid "Read Only" msgstr "Pouze ke čtení" +msgid "Draw Label" +msgstr "Kreslit popisek" + +msgid "Draw Background" +msgstr "Kreslit pozadí" + msgid "Checkable" msgstr "Zaškrtnutelné" @@ -833,6 +875,15 @@ msgstr "Klíčování" msgid "Deletable" msgstr "Odstranitelné" +msgid "Selectable" +msgstr "Zvolitelné" + +msgid "Use Folding" +msgstr "Použít skládání" + +msgid "Name Split Ratio" +msgstr "Poměr rozdělení názvu" + msgid "Distraction Free Mode" msgstr "Nerozptylující režim" @@ -843,7 +894,7 @@ msgid "Base Type" msgstr "Základní typ" msgid "Editable" -msgstr "Upravitelná položka" +msgstr "Upravovatelné" msgid "Toggle Mode" msgstr "Přepnout režim" @@ -867,7 +918,7 @@ msgid "Localize Settings" msgstr "Lokalizovat nastavení" msgid "UI Layout Direction" -msgstr "Směr rozložení UI" +msgstr "Směr rozvržení uživatelského rozhraní" msgid "Display Scale" msgstr "Měřítko zobrazení" @@ -900,11 +951,14 @@ msgid "Code Font Custom Variations" msgstr "Vlastní variace fontu kódu" msgid "Font Subpixel Positioning" -msgstr "Umístění subpixelů fontu" +msgstr "Subpixelové polohování fontů" msgid "Font Disable Embedded Bitmaps" msgstr "Zakázat vložené bitmapy fontu" +msgid "Font Allow MSDF" +msgstr "Povolit MSDF fontu" + msgid "Main Font" msgstr "Hlavní font" @@ -924,7 +978,7 @@ msgid "Single Window Mode" msgstr "Režim jednoho okna" msgid "Mouse Extra Buttons Navigate History" -msgstr "Navigační historie extra tlačítek myši" +msgstr "Navigovat v historii extra tlačítky myši" msgid "Save Each Scene on Quit" msgstr "Uložit všechny scény při vypnutí" @@ -951,7 +1005,10 @@ msgid "Editors" msgstr "Editory" msgid "Show Scene Tree Root Selection" -msgstr "Zobrazit výběr Tree Root ze scény" +msgstr "Zobrazit výběr kořenu stromu scény" + +msgid "Derive Script Globals by Name" +msgstr "Odvodit globální skripty z názvu" msgid "Docks" msgstr "Doky" @@ -959,6 +1016,9 @@ msgstr "Doky" msgid "Scene Tree" msgstr "Strom scény" +msgid "Ask Before Revoking Unique Name" +msgstr "Zeptat se před odebráním unikátního názvu" + msgid "Inspector" msgstr "Inspektor" @@ -1062,7 +1122,7 @@ msgid "Directories" msgstr "Adresáře" msgid "Autoscan Project Path" -msgstr "Cesta pro automatické skenování projektů" +msgstr "Cesta pro automatické prohledávání projektů" msgid "On Save" msgstr "Při uložení" @@ -1094,6 +1154,27 @@ msgstr "Režim zobrazení" msgid "Thumbnail Size" msgstr "Velikost náhledu" +msgid "Quick Open Dialog" +msgstr "Dialog rychlého otevření" + +msgid "Max Results" +msgstr "Maximum výsledků" + +msgid "Show Search Highlight" +msgstr "Zobrazit zvýraznění vyhledávání" + +msgid "Enable Fuzzy Matching" +msgstr "Povolit přibližnou shodu" + +msgid "Max Fuzzy Misses" +msgstr "Maximum neshodných znaků" + +msgid "Include Addons" +msgstr "Zahrnout doplňky" + +msgid "Default Display Mode" +msgstr "Výchozí režim zobrazení" + msgid "Import" msgstr "Import" @@ -1122,7 +1203,10 @@ msgid "OIDN" msgstr "OIDN" msgid "OIDN Denoise Path" -msgstr "Cesta k OIDN Denoise" +msgstr "Cesta k odstraňovači šumu OIDN" + +msgid "Ask Before Deleting Related Animation Tracks" +msgstr "Zeptat se před smazáním souvisejících stop animací" msgid "Start Create Dialog Fully Expanded" msgstr "Spouštět dialog vytváření plně rozbalený" @@ -1133,12 +1217,18 @@ msgstr "Automaticky rozbalit k výběru" msgid "Center Node on Reparent" msgstr "Vycentrovat uzel při změně rodiče" +msgid "Hide Filtered Out Parents" +msgstr "Schovat rodiče vyfiltrovaných" + msgid "Always Show Folders" msgstr "Vždy zobrazit složky" msgid "TextFile Extensions" msgstr "Přípony textových souborů" +msgid "Other File Extensions" +msgstr "Přípony jiných souborů" + msgid "Property Editor" msgstr "Editor vlastností" @@ -1229,6 +1319,9 @@ msgstr "Vykreslit mezery" msgid "Behavior" msgstr "Chování" +msgid "Empty Selection Clipboard" +msgstr "Prázdný výběr do schránky" + msgid "Navigation" msgstr "Navigace" @@ -1266,7 +1359,7 @@ msgid "Indent" msgstr "Odsazení" msgid "Auto Indent" -msgstr "Automatické odsazení" +msgstr "Automatické odsazování" msgid "Indent Wrapped Lines" msgstr "Odsazovat zalomené řádky" @@ -1292,6 +1385,15 @@ msgstr "Převést odsazení při uložení" msgid "Auto Reload Scripts on External Change" msgstr "Automaticky aktualizovat skripty při externí změně" +msgid "Auto Reload and Parse Scripts on Save" +msgstr "Automaticky aktualizovat a provést rozbor skriptů při uložení" + +msgid "Open Dominant Script on Scene Change" +msgstr "Otevřít dominantní skript při změně scény" + +msgid "Documentation" +msgstr "Dokumentace" + msgid "Script List" msgstr "Seznam skriptů" @@ -1307,6 +1409,9 @@ msgstr "Povolit teplotu skriptu" msgid "Script Temperature History Size" msgstr "Velikost historie teploty skriptu" +msgid "Highlight Scene Scripts" +msgstr "Zvýraznit skripty scény" + msgid "Group Help Pages" msgstr "Seskupit stránky s nápovědou" @@ -1320,10 +1425,10 @@ msgid "External" msgstr "Externí" msgid "Exec Path" -msgstr "Cesta k spuštění" +msgstr "Cesta ke spustitelnému souboru" msgid "Exec Flags" -msgstr "Parametry spuštění" +msgstr "Argumenty spustitelného souboru" msgid "Completion" msgstr "Dokončování" @@ -1331,6 +1436,9 @@ msgstr "Dokončování" msgid "Idle Parse Delay" msgstr "Zpoždění rozboru kódu při nečinnosti" +msgid "Idle Parse Delay With Errors Found" +msgstr "Zpoždění rozboru kódu při nečinnosti s nalezenými chybami" + msgid "Auto Brace Complete" msgstr "Automatické doplňování závorek" @@ -1340,12 +1448,21 @@ msgstr "Povolit dokončování kódu" msgid "Code Complete Delay" msgstr "Zpoždění dokončování kódu" +msgid "Put Callhint Tooltip Below Current Line" +msgstr "Umístit nápovědu dokončování pod současný řádek" + msgid "Complete File Paths" msgstr "Dokončovat cesty k souborům" msgid "Add Type Hints" msgstr "Přidat nápovědy typů" +msgid "Add String Name Literals" +msgstr "Přidat StringName literály" + +msgid "Add Node Path Literals" +msgstr "Přidat NodePath literály" + msgid "Use Single Quotes" msgstr "Používat jednoduché závorky" @@ -1392,34 +1509,85 @@ msgid "AABB" msgstr "AABB (Osově rovnoběžný ohraňičující box)" msgid "Stream Player 3D" -msgstr "Stream Player 3D" +msgstr "3D stream přehrávač" msgid "Camera" msgstr "Kamera" +msgid "Decal" +msgstr "Nálepka" + +msgid "Fog Volume" +msgstr "Objem mlhy" + msgid "Particles" msgstr "Částice" +msgid "Particle Attractor" +msgstr "Atraktor částic" + +msgid "Particle Collision" +msgstr "Kolizní tvary pro částice" + msgid "Joint Body A" -msgstr "Kloubové tělo A" +msgstr "Tělo kloubu A" msgid "Joint Body B" -msgstr "Kloubové tělo B" +msgstr "Tělo kloubu B" + +msgid "Lightmap Lines" +msgstr "Linky světelných map" + +msgid "Lightprobe Lines" +msgstr "Linky světelných sond" msgid "Occluder" -msgstr "Okluzor" +msgstr "Stínidlo" msgid "Reflection Probe" -msgstr "Reflexní sonda" +msgstr "Sonda odrazu" msgid "Visibility Notifier" -msgstr "Oznamovatel viditelnosti" +msgstr "Notifikátor viditelnosti" + +msgid "Voxel GI" +msgstr "Voxelové GI" + +msgid "Path Tilt" +msgstr "Náklon cesty" msgid "Skeleton" msgstr "Kostra" +msgid "Selected Bone" +msgstr "Vybraná kost" + msgid "CSG" -msgstr "CSG" +msgstr "CSG (konstruktivní geometrie těles)" + +msgid "GridMap Grid" +msgstr "Mřížka mřižkové mapy" + +msgid "Spring Bone Joint" +msgstr "Kloub pružinové kosti" + +msgid "Spring Bone Collision" +msgstr "Kolize pružinové kosti" + +msgid "Spring Bone Inside Collision" +msgstr "Vnitřní kolize pružinové kosti" + +msgid "Gizmo Settings" +msgstr "Nastavení gizma" + +msgid "Bone Axis Length" +msgstr "Délka osy kosti" + +msgid "Bone Shape" +msgstr "Tvar kosti" + +msgid "Path 3D Tilt Disk Size" +msgstr "Velikost disku náklonu 3D cesty" msgid "Grid Division Level Max" msgstr "Maximální úroveň rozdělení mřížky" @@ -1427,6 +1595,9 @@ msgstr "Maximální úroveň rozdělení mřížky" msgid "Grid Division Level Min" msgstr "Minimální úroveň rozdělení mřížky" +msgid "Grid Division Level Bias" +msgstr "Preference úrovně rozdělení mřížky" + msgid "Grid XZ Plane" msgstr "Rovina XZ mřížky" @@ -1448,12 +1619,18 @@ msgstr "Emulovat numerickou klávesnici" msgid "Emulate 3 Button Mouse" msgstr "Emulovat třítlačítkovou myš" +msgid "Warped Mouse Panning" +msgstr "Nekonečné posouvání myší" + msgid "Navigation Feel" msgstr "Pocit navigace" msgid "Orbit Sensitivity" msgstr "Citlivost obkroužení" +msgid "Translation Sensitivity" +msgstr "Citlivost posunu" + msgid "Orbit Inertia" msgstr "Setrvačnost obkroužení" @@ -1464,7 +1641,10 @@ msgid "Zoom Inertia" msgstr "Setrvačnost přiblížení" msgid "Show Viewport Rotation Gizmo" -msgstr "Zobrazit tlačítko rotace zobrazení" +msgstr "Zobrazit gizmo rotace průzoru" + +msgid "Show Viewport Navigation Gizmo" +msgstr "Zobrazit gizmo navigace průzoru" msgid "Freelook" msgstr "Volný pohled" @@ -1475,11 +1655,14 @@ msgstr "Citlivost volného pohledu" msgid "Freelook Inertia" msgstr "Setrvačnost volného pohledu" +msgid "Freelook Speed Zoom Link" +msgstr "Propojit rychlosti přiblížení a volného pohledu" + msgid "Manipulator Gizmo Size" -msgstr "Nastavení velikosti rukojeti" +msgstr "Velikost manipulačního gizma" msgid "Manipulator Gizmo Opacity" -msgstr "Nastavení průhlednosti rukojeti" +msgstr "Průhlednost manipulačního gizma" msgid "Grid Color" msgstr "Barva mřížky" @@ -1514,11 +1697,23 @@ msgstr "Velikost obrysu kosti" msgid "Viewport Border Color" msgstr "Barva ohraničení průzoru" +msgid "Use Integer Zoom by Default" +msgstr "Použít celočíselné přiblížení jako výchozí" + +msgid "Bone Mapper" +msgstr "Mapovač kostí" + +msgid "Handle Colors" +msgstr "Barvy úchytů" + msgid "Unset" msgstr "Nenastaveno" msgid "Set" -msgstr "Nastav" +msgstr "Nastaveno" + +msgid "Missing" +msgstr "Chybějící" msgid "Error" msgstr "Chyba" @@ -1554,37 +1749,64 @@ msgid "Auto Bake Delay" msgstr "Zpoždění automatického vypalování" msgid "Autorename Animation Tracks" -msgstr "Automaticky přejmenovat animační stopy" +msgstr "Automaticky přejmenovat stopy animací" + +msgid "Confirm Insert Track" +msgstr "Potvrdit vložení stopy" msgid "Default Create Bezier Tracks" -msgstr "Výchozí vytváření beziérových stop" +msgstr "Výchozí vytváření Bézierových stop" msgid "Default Create Reset Tracks" msgstr "Výchozí vytváření resetovacích stop" msgid "Onion Layers Past Color" -msgstr "Barva cibulových vrstev minulosti" +msgstr "Barva minulých vrstev průhledného vrstvení" msgid "Onion Layers Future Color" -msgstr "Barva cibulových vrstev budoucnosti" +msgstr "Barva budoucích vrstev průhledného vrstvení" + +msgid "Shader Editor" +msgstr "Editor shaderů" + +msgid "Restore Shaders on Load" +msgstr "Obnovit shadery při načtení" msgid "Visual Editors" msgstr "Vizuální editory" msgid "Color Theme" -msgstr "Barevnéý motiv" +msgstr "Barevný motiv" msgid "Minimap Opacity" msgstr "Průhlednost minimapy" +msgid "Lines Curvature" +msgstr "Zakřivení linek" + +msgid "Grid Pattern" +msgstr "Vzor mřížky" + +msgid "Visual Shader" +msgstr "Vizuální shader" + +msgid "Port Preview Size" +msgstr "Velikost náhledu portu" + msgid "Export" msgstr "Export" +msgid "SSH" +msgstr "SSH" + +msgid "SCP" +msgstr "SCP" + msgid "Window Placement" msgstr "Umístění okna" msgid "Rect Custom Position" -msgstr "Vlastní pozice okna" +msgstr "Vlastní pozice obdélníku" msgid "Auto Save" msgstr "Automatické ukládání" @@ -1595,8 +1817,29 @@ msgstr "Uložit před spuštěním" msgid "Output" msgstr "Výstup" +msgid "Always Clear Output on Play" +msgstr "Vždy promazat výstup při spuštění" + +msgid "Max Lines" +msgstr "Maximální počet řádků" + +msgid "Platforms" +msgstr "Platformy" + +msgid "Linux/*BSD" +msgstr "Linux/*BSD" + +msgid "Prefer Wayland" +msgstr "Preferovat Wayland" + msgid "HTTP Proxy" -msgstr "HTTP Proxy" +msgstr "HTTP proxy" + +msgid "Host" +msgstr "Host" + +msgid "Editor TLS Certificates" +msgstr "TLS certifikáty editoru" msgid "Remote Host" msgstr "Vzdálený host" @@ -1610,11 +1853,14 @@ msgstr "Velikost historie profilovacího rámce" msgid "Profiler Frame Max Functions" msgstr "Maximální počet funkcí profilovacího rámce" +msgid "Profiler Target FPS" +msgstr "Cílové FPS profileru" + msgid "Remote Scene Tree Refresh Interval" msgstr "Interval obnovení vzdáleného stromu scén" msgid "Remote Inspect Refresh Interval" -msgstr "Interval obnovení vzdálené kontroly" +msgstr "Interval obnovení vzdáleného prozkoumávání" msgid "Version Control" msgstr "Správa verzí" @@ -1628,6 +1874,15 @@ msgstr "Cesta k veřejnému klíči SSH" msgid "SSH Private Key Path" msgstr "Cesta k soukromému klíči SSH" +msgid "Input" +msgstr "Vstup" + +msgid "Buffering" +msgstr "Práce vyrovnávací paměti" + +msgid "Agile Event Flushing" +msgstr "Rychlé vyprazdňování událostí" + msgid "Project Manager" msgstr "Správce projektů" @@ -1643,18 +1898,24 @@ msgstr "Barva znaků" msgid "Keyword Color" msgstr "Barva klíčových slov" +msgid "Control Flow Keyword Color" +msgstr "Barva klíčových slov řídicích struktur" + msgid "Base Type Color" -msgstr "Barva základního typu" +msgstr "Barva základních typů" msgid "Engine Type Color" -msgstr "Barva typu enginu" +msgstr "Barva typů enginu" msgid "User Type Color" -msgstr "Barva typu uživatele" +msgstr "Barva typů uživatele" msgid "Comment Color" msgstr "Barva komentářů" +msgid "Doc Comment Color" +msgstr "Barva dokumentačních komentářů" + msgid "String Color" msgstr "Barva řetězců" @@ -1662,28 +1923,37 @@ msgid "Background Color" msgstr "Barva pozadí" msgid "Completion Background Color" -msgstr "Barva výplně pozadí" +msgstr "Barva pozadí doplňování" msgid "Completion Selected Color" -msgstr "Barva výplně výběru" +msgstr "Barva zvoleného doplnění" + +msgid "Completion Existing Color" +msgstr "Barva existujícího doplnění" msgid "Completion Scroll Color" -msgstr "Barva výplně scrollu" +msgstr "Barva posuvníku doplnění" + +msgid "Completion Scroll Hovered Color" +msgstr "Barva posuvníku doplnění při najetí myší" msgid "Completion Font Color" -msgstr "Barva výplně fontu" +msgstr "Barva fontu doplnění" msgid "Text Color" msgstr "Barva textu" msgid "Line Number Color" -msgstr "Barva čísla řádku" +msgstr "Barva čísel řádků" + +msgid "Safe Line Number Color" +msgstr "Barva čísel bezpečných řádků" msgid "Caret Color" -msgstr "Barva stříšky" +msgstr "Barva kurzoru" msgid "Caret Background Color" -msgstr "Barva pozadí stříšky" +msgstr "Barva pozadí kurzoru" msgid "Text Selected Color" msgstr "Barva vybraného textu" @@ -1698,7 +1968,7 @@ msgid "Current Line Color" msgstr "Barva aktuálního řádku" msgid "Line Length Guideline Color" -msgstr "Barva čáry délky řádku" +msgstr "Barva vodítek délky řádku" msgid "Word Highlighted Color" msgstr "Barva zvýrazněného slova" @@ -1709,110 +1979,990 @@ msgstr "Barva čísel" msgid "Function Color" msgstr "Barva funkcí" +msgid "Member Variable Color" +msgstr "Barva proměnných členů" + msgid "Mark Color" -msgstr "Barva označení" +msgstr "Barva značek" msgid "Bookmark Color" -msgstr "Barva záložky" +msgstr "Barva záložek" msgid "Breakpoint Color" -msgstr "Barva bodu přerušení (Breakpointu)" +msgstr "Barva breakpointů" + +msgid "Executing Line Color" +msgstr "Barva prováděného řádku" msgid "Code Folding Color" msgstr "Barva složení kódu" +msgid "Folded Code Region Color" +msgstr "Barva složené oblasti kódu" + msgid "Search Result Color" msgstr "Barva výsledků hledání" +msgid "Search Result Border Color" +msgstr "Barva ohraničení výsledků hledání" + +msgid "Connection Colors" +msgstr "Barvy spojení" + +msgid "Scalar Color" +msgstr "Barva skalárů" + +msgid "Vector2 Color" +msgstr "Barva Vector2" + +msgid "Vector 3 Color" +msgstr "Barva Vector3" + +msgid "Vector 4 Color" +msgstr "Barva Vector4" + +msgid "Boolean Color" +msgstr "Barva booleanů" + +msgid "Transform Color" +msgstr "Barva transformací" + +msgid "Sampler Color" +msgstr "Barva vzorkovačů" + +msgid "Category Colors" +msgstr "Barvy kategorií" + +msgid "Output Color" +msgstr "Barva výstupu" + +msgid "Color Color" +msgstr "Barva Color" + +msgid "Conditional Color" +msgstr "Barva podmínek" + +msgid "Input Color" +msgstr "Barva vstupu" + +msgid "Textures Color" +msgstr "Barva textur" + +msgid "Utility Color" +msgstr "Barva utilit" + +msgid "Vector Color" +msgstr "Barva vektorů" + +msgid "Special Color" +msgstr "Speciální barva" + +msgid "Particle Color" +msgstr "Barva částic" + +msgid "Custom Template" +msgstr "Vlastní šablona" + msgid "Release" msgstr "Vydání" +msgid "Export Console Wrapper" +msgstr "Exportovat wrapper konzole" + msgid "Binary Format" msgstr "Binární formát" +msgid "Embed PCK" +msgstr "Vložit PCK" + +msgid "Texture Format" +msgstr "Formát textur" + +msgid "S3TC BPTC" +msgstr "S3TC BPTC" + +msgid "ETC2 ASTC" +msgstr "ETC2 ASTC" + msgid "Export Path" -msgstr "Exportovat cestu" +msgstr "Cesta pro export" msgid "Access" msgstr "Přístup" +msgid "File Mode" +msgstr "Režim souborů" + msgid "Filters" msgstr "Filtry" +msgid "Options" +msgstr "Možnosti" + +msgid "Disable Overwrite Warning" +msgstr "Deaktivovat varování při přepsání" + +msgid "Flat" +msgstr "Plochý" + +msgid "Hide Slider" +msgstr "Schovat posuvník" + +msgid "Editing Integer" +msgstr "Upravování celého čísla" + +msgid "Zoom" +msgstr "Přiblížení" + +msgid "Retarget" +msgstr "Přecílení" + +msgid "Bone Renamer" +msgstr "Přejmenovávač kostí" + +msgid "Rename Bones" +msgstr "Přejmenovat kosti" + +msgid "Unique Node" +msgstr "Unikátní uzel" + msgid "Make Unique" -msgstr "Vytvořit unikátní" +msgstr "Udělat unikátní" + +msgid "Skeleton Name" +msgstr "Název kostry" + +msgid "Rest Fixer" +msgstr "Opravení klidu" + +msgid "Apply Node Transforms" +msgstr "Aplikovat transformace uzlu" + +msgid "Normalize Position Tracks" +msgstr "Normalizovat stopy pozic" + +msgid "Reset All Bone Poses After Import" +msgstr "Resetovat všechny pózy kostí po importu" + +msgid "Retarget Method" +msgstr "Metoda přecílení" + +msgid "Keep Global Rest on Leftovers" +msgstr "Ponechat globální klid na zbylých" + +msgid "Use Global Pose" +msgstr "Použít globální pózu" + +msgid "Original Skeleton Name" +msgstr "Původní název kostry" + +msgid "Fix Silhouette" +msgstr "Opravit siluetu" msgid "Filter" msgstr "Filtr" +msgid "Threshold" +msgstr "Práh" + +msgid "Base Height Adjustment" +msgstr "Úprava základní výšky" + +msgid "Remove Tracks" +msgstr "Odstranit stopy" + +msgid "Except Bone Transform" +msgstr "Kromě transformace kosti" + +msgid "Unimportant Positions" +msgstr "Nedůležité pozice" + +msgid "Unmapped Bones" +msgstr "Nemapované kosti" + +msgid "Generate Tangents" +msgstr "Generovat tečny" + +msgid "Generate LODs" +msgstr "Generovat LODy" + +msgid "Generate Shadow Mesh" +msgstr "Generovat stínovou síť" + +msgid "Generate Lightmap UV2" +msgstr "Generovat UV2 světelné mapy" + +msgid "Generate Lightmap UV2 Texel Size" +msgstr "Generovat velikost texelů UV2 světelné mapy" + +msgid "Scale Mesh" +msgstr "Škálovat síť" + +msgid "Offset Mesh" +msgstr "Offset sítě" + +msgid "Force Disable Mesh Compression" +msgstr "Nuceně zakázat kompresi sítě" + +msgid "Skip Import" +msgstr "Přeskočit import" + +msgid "Generate" +msgstr "Generovat" + +msgid "NavMesh" +msgstr "NavMesh" + +msgid "Body Type" +msgstr "Typ tělesa" + +msgid "Shape Type" +msgstr "Typ tvaru" + +msgid "Physics Material Override" +msgstr "Přepsání fyzikálního materiálu" + msgid "Layer" msgstr "Vrstva" +msgid "Mask" +msgstr "Maska" + +msgid "Mesh Instance" +msgstr "Instance sítě" + +msgid "Layers" +msgstr "Vrstvy" + +msgid "Visibility Range Begin" +msgstr "Začátek rozsahu viditelnosti" + +msgid "Visibility Range Begin Margin" +msgstr "Mez začátku rozsahu viditelnosti" + +msgid "Visibility Range End" +msgstr "Konec rozsahu viditelnosti" + +msgid "Visibility Range End Margin" +msgstr "Mez konce rozsahu viditelnosti" + +msgid "Visibility Range Fade Mode" +msgstr "Režim blednutí rozsahu viditelnosti" + +msgid "Cast Shadow" +msgstr "Vržený stín" + +msgid "Decomposition" +msgstr "Dekompozice" + msgid "Advanced" msgstr "Pokročilé" +msgid "Precision" +msgstr "Přesnost" + +msgid "Max Concavity" +msgstr "Maximální konkávnost" + +msgid "Symmetry Planes Clipping Bias" +msgstr "Preference ořezu podél rovin symetrie" + +msgid "Revolution Axes Clipping Bias" +msgstr "Preference ořezu podél os oběhu" + +msgid "Min Volume per Convex Hull" +msgstr "Minimální objem na konvexní obal" + +msgid "Resolution" +msgstr "Rozlišení" + +msgid "Max Num Vertices per Convex Hull" +msgstr "Maximum vrcholů na konvexní obal" + +msgid "Plane Downsampling" +msgstr "Podvzorkování rovinou" + +msgid "Convexhull Downsampling" +msgstr "Podvzorkování konvexním obalem" + +msgid "Normalize Mesh" +msgstr "Normalizovat síť" + +msgid "Convexhull Approximation" +msgstr "Odhad konvexním obalem" + +msgid "Max Convex Hulls" +msgstr "Maximální počet konvexních obalů" + +msgid "Project Hull Vertices" +msgstr "Promítnout vrcholy obalu" + +msgid "Primitive" +msgstr "Primitivum" + msgid "Height" msgstr "Výška" msgid "Radius" msgstr "Poloměr" +msgid "Simplification Distance" +msgstr "Vzdálenost zjednodušení" + +msgid "Save to File" +msgstr "Uložit do souboru" + +msgid "Enabled" +msgstr "Povoleno" + +msgid "Shadow Meshes" +msgstr "Sítě stínů" + +msgid "Lightmap UV" +msgstr "UV světelných map" + +msgid "LODs" +msgstr "LODy" + +msgid "Normal Merge Angle" +msgstr "Normální úhel sloučení" + +msgid "Use External" +msgstr "Použít externí" + +msgid "Loop Mode" +msgstr "Režim smyčky" + +msgid "Keep Custom Tracks" +msgstr "Ponechat vlastní stopy" + +msgid "Slices" +msgstr "Řezy" + +msgid "Amount" +msgstr "Množství" + +msgid "Optimizer" +msgstr "Optimalizátor" + +msgid "Max Velocity Error" +msgstr "Maximální chyba rychlosti" + +msgid "Max Angular Error" +msgstr "Maximální úhlová chyba" + +msgid "Max Precision Error" +msgstr "Maximální chyba přesnosti" + msgid "Page Size" -msgstr "Velikost Stránky" +msgstr "Velikost stránky" + +msgid "Import Tracks" +msgstr "Importovat stopy" + +msgid "Rest Pose" +msgstr "Klidová póza" + +msgid "Load Pose" +msgstr "Načíst pózu" + +msgid "External Animation Library" +msgstr "Externí knihovna animace" + +msgid "Selected Animation" +msgstr "Vybraná animace" + +msgid "Selected Timestamp" +msgstr "Vybrané časové razítko" + +msgid "Bone Map" +msgstr "Mapa kostí" + +msgid "Nodes" +msgstr "Uzly" + +msgid "Root Type" +msgstr "Typ kořenového uzlu" + +msgid "Root Name" +msgstr "Název kořenového uzlu" + +msgid "Apply Root Scale" +msgstr "Použít měřítko kořenového uzlu" + +msgid "Root Scale" +msgstr "Měřítko kořenového uzlu" + +msgid "Import as Skeleton Bones" +msgstr "Importovat jako kosti kostry" + +msgid "Use Node Type Suffixes" +msgstr "Použít sufixy typu uzlu" + +msgid "Meshes" +msgstr "Sítě" + +msgid "Ensure Tangents" +msgstr "Zajistit tečny" + +msgid "Create Shadow Meshes" +msgstr "Vytvořit sítě stínů" + +msgid "Light Baking" +msgstr "Vypalování světla" + +msgid "Lightmap Texel Size" +msgstr "Velikost texelů světelné mapy" + +msgid "Force Disable Compression" +msgstr "Nucená deaktivace komprese" + +msgid "Skins" +msgstr "Slupky" + +msgid "Use Named Skins" +msgstr "Použít pojmenované slupky" msgid "FPS" msgstr "FPS" +msgid "Trimming" +msgstr "Oříznutí" + +msgid "Remove Immutable Tracks" +msgstr "Odstranit neměnné stopy" + +msgid "Import Rest as Reset" +msgstr "Importovat klidovou jako RESET" + +msgid "Import Script" +msgstr "Skript pro import" + +msgid "Antialiasing" +msgstr "Vyhlazování" + +msgid "Generate Mipmaps" +msgstr "Generovat mipmapy" + +msgid "Disable Embedded Bitmaps" +msgstr "Zakázat vložené bitmapy" + +msgid "Multichannel Signed Distance Field" +msgstr "Vícekanálové pole vzdáleností se znaménkem (MSDF)" + +msgid "MSDF Pixel Range" +msgstr "Rozsah pixelů MSDF" + +msgid "MSDF Size" +msgstr "Velikost MSDF" + +msgid "Allow System Fallback" +msgstr "Povolit záložní ze systému" + +msgid "Force Autohinter" +msgstr "Vynutit autohinter" + +msgid "Hinting" +msgstr "Hinting" + +msgid "Subpixel Positioning" +msgstr "Subpixelové polohování" + +msgid "Keep Rounding Remainders" +msgstr "Ponechat zbytky po zaokrouhlení" + +msgid "Oversampling" +msgstr "Převzorkování" + +msgid "Metadata Overrides" +msgstr "Přepisy metadat" + +msgid "Language Support" +msgstr "Jazyková podpora" + +msgid "Script Support" +msgstr "Podpora písem" + +msgid "OpenType Features" +msgstr "Funkce OpenType" + +msgid "Fallbacks" +msgstr "Záložní" + +msgid "Compress" +msgstr "Komprimovat" + msgid "Language" msgstr "Jazyk" +msgid "Outline Size" +msgstr "Velikost obrysu" + +msgid "Variation" +msgstr "Variace" + +msgid "OpenType" +msgstr "OpenType" + +msgid "Embolden" +msgstr "Ztučnit" + +msgid "Face Index" +msgstr "Index řezu" + msgid "Transform" msgstr "Transformace" +msgid "Create From" +msgstr "Vytvořit z" + +msgid "Scaling Mode" +msgstr "Režim škálování" + +msgid "Delimiter" +msgstr "Oddělovač" + +msgid "Character Ranges" +msgstr "Rozsahy znaků" + +msgid "Kerning Pairs" +msgstr "Páry podřezání" + +msgid "Columns" +msgstr "Sloupce" + +msgid "Rows" +msgstr "Řádky" + +msgid "Image Margin" +msgstr "Okraj obrázku" + +msgid "Character Margin" +msgstr "Okraj znaku" + +msgid "Ascent" +msgstr "Výstup" + +msgid "Descent" +msgstr "Sestup" + +msgid "High Quality" +msgstr "Vysoká kvalita" + msgid "Lossy Quality" msgstr "Ztrátová kvalita" +msgid "HDR Compression" +msgstr "Komprese HDR" + +msgid "Channel Pack" +msgstr "Zabalení kanálů" + +msgid "Mipmaps" +msgstr "Mipmapy" + +msgid "Limit" +msgstr "Limit" + +msgid "Horizontal" +msgstr "Horizonální" + +msgid "Vertical" +msgstr "Vertikální" + +msgid "Arrangement" +msgstr "Uspořádání" + msgid "Layout" -msgstr "Rozložení" +msgstr "Rozvržení" msgid "Normal Map" msgstr "Normálová mapa" +msgid "Roughness" +msgstr "Hrubost" + +msgid "Src Normal" +msgstr "Zdroj normál" + +msgid "Process" +msgstr "Zpracování" + +msgid "Fix Alpha Border" +msgstr "Spravit alfa okraj" + +msgid "Premult Alpha" +msgstr "Přednásobit alfa" + +msgid "Normal Map Invert Y" +msgstr "Invertovat Y normálové mapy" + +msgid "HDR as sRGB" +msgstr "HDR jako sRGB" + +msgid "HDR Clamp Exposure" +msgstr "Sevřít expozici HDR" + msgid "Size Limit" msgstr "Limit velikosti" msgid "Detect 3D" msgstr "Detekovat 3D" +msgid "Compress To" +msgstr "Komprese na" + +msgid "SVG" +msgstr "SVG" + +msgid "Scale With Editor Scale" +msgstr "Škálovat měřítkem editoru" + +msgid "Convert Colors With Editor Theme" +msgstr "Převést barvy s motivem editoru" + +msgid "Atlas File" +msgstr "Soubor atlasu" + +msgid "Import Mode" +msgstr "Režim importu" + +msgid "Crop to Region" +msgstr "Oříznout na oblast" + +msgid "Trim Alpha Border From Region" +msgstr "Ořezat alfa okraj z oblasti" + +msgctxt "Enforce" +msgid "Force" +msgstr "Vnutit" + +msgid "8 Bit" +msgstr "8 bitový" + +msgid "Mono" +msgstr "Mono" + +msgid "Max Rate" +msgstr "Maximální frekvence" + +msgid "Max Rate Hz" +msgstr "Maximální frekvence (Hz)" + msgid "Edit" msgstr "Upravit" msgid "Trim" msgstr "Oříznout" +msgid "Normalize" +msgstr "Normalizovat" + +msgid "Loop Begin" +msgstr "Začátek smyčky" + +msgid "Loop End" +msgstr "Konec smyčky" + msgid "Available URLs" msgstr "Dostupné URL" +msgid "Current Group Idx" +msgstr "Index aktuální skupiny" + +msgid "Current Bone Idx" +msgstr "Index aktuální kosti" + +msgid "Particles Emission Shape" +msgstr "Tvar emise částic" + msgid "ID" msgstr "ID" +msgid "Texture" +msgstr "Textura" + +msgid "Margins" +msgstr "Vnější okraje" + +msgid "Separation" +msgstr "Oddělení" + +msgid "Texture Region Size" +msgstr "Velikost oblasti textury" + +msgid "Use Texture Padding" +msgstr "Použít vnitřní okraje textury" + +msgid "Atlas Coords" +msgstr "Souřadnice atlasu" + +msgid "Size in Atlas" +msgstr "Velikost v atlasu" + +msgid "Alternative ID" +msgstr "Alternativní ID" + +msgid "Speed" +msgstr "Rychlost" + +msgid "Frames Count" +msgstr "Počet snímků" + +msgid "Duration" +msgstr "Trvání" + +msgid "Main Run Args" +msgstr "Argumenty hlavního běhu" + msgid "Script" msgstr "Skript" +msgid "Templates Search Path" +msgstr "Cesta pro hledání šablon" + +msgid "Naming" +msgstr "Pojmenovávání" + +msgid "Default Signal Callback Name" +msgstr "Výchozí název funkce zpětného volání pro signál" + +msgid "Default Signal Callback to Self Name" +msgstr "Výchozí název funkce zpětného volání pro signál sebe sama" + +msgid "Scene Name Casing" +msgstr "Velikost písmen názvů scén" + +msgid "Script Name Casing" +msgstr "Velikost písmen názvů skriptů" + +msgid "Reimport Missing Imported Files" +msgstr "Znovu importovat chybějící importované soubory" + +msgid "Use Multiple Threads" +msgstr "Použít více vláken" + +msgid "Atlas Max Width" +msgstr "Maximální šířka atlasu" + +msgid "Convert Text Resources to Binary" +msgstr "Převést textové zdroje na binárnách souborů" + +msgid "Plugin Name" +msgstr "Název zásuvného modulu" + +msgid "Autoload on Startup" +msgstr "Automatické načtení při spuštění" + +msgid "Flush stdout on Print" +msgstr "Vyprázdnit stdout při výpisu" + +msgid "Low Processor Mode" +msgstr "Režim nízkého využití procesoru" + +msgid "stdout" +msgstr "stdout" + +msgid "Print FPS" +msgstr "Vypisovat FPS" + +msgid "Print GPU Profile" +msgstr "Vypisovat GPU profil" + +msgid "Verbose stdout" +msgstr "Podrobný stdout" + +msgid "Physics Interpolation" +msgstr "Fyzikální interpolace" + +msgid "Enable Warnings" +msgstr "Povolit varování" + +msgid "Max Chars per Second" +msgstr "Maximum znaků za sekundu" + +msgid "Max Queued Messages" +msgstr "Maximum zpráv ve frontě" + +msgid "Max Errors per Second" +msgstr "Maximum chyb za sekundu" + +msgid "Max Warnings per Second" +msgstr "Maximum varování za sekundu" + +msgid "File Logging" +msgstr "Logování do souborů" + +msgid "Enable File Logging" +msgstr "Povolit logování do souborů" + +msgid "Log Path" +msgstr "Cesta k logům" + +msgid "Max Log Files" +msgstr "Maximum souborů logů" + +msgid "Driver" +msgstr "Ovladač" + +msgid "Fallback to Vulkan" +msgstr "Záložní Vulkan" + +msgid "Fallback to D3D12" +msgstr "Záložní D3D12" + +msgid "Fallback to OpenGL 3" +msgstr "Záložní OpenGL 3" + +msgid "GL Compatibility" +msgstr "GL Compatibility" + +msgid "Nvidia Disable Threaded Optimization" +msgstr "Nvidia zakázat optimalizaci vláken" + +msgid "Fallback to Angle" +msgstr "Záložní ANGLE" + +msgid "Fallback to Native" +msgstr "Záložní Native" + +msgid "Fallback to GLES" +msgstr "Záložní GLES" + +msgid "Force Angle on Devices" +msgstr "Vynutit ANGLE na zařízeních" + +msgid "Renderer" +msgstr "Vykreslovací nástroj" + +msgid "Rendering Method" +msgstr "Metoda vykreslování" + +msgid "Include Text Server Data" +msgstr "Zahrnout data textového serveru" + +msgid "DPI" +msgstr "DPI" + +msgid "Allow hiDPI" +msgstr "Povolit hiDPI" + +msgid "Per Pixel Transparency" +msgstr "Průhlednost na pixel" + +msgid "Allowed" +msgstr "Povoleno" + +msgid "Threads" +msgstr "Vlákna" + +msgid "Thread Model" +msgstr "Vláknový model" + +msgid "Display Server" +msgstr "Okenní systém" + +msgid "Handheld" +msgstr "Ruční" + +msgid "Orientation" +msgstr "Orientace" + msgid "V-Sync Mode" msgstr "Režim V-Sync" +msgid "Output Latency" +msgstr "Latence výstupu" + +msgid "Frame Delay Msec" +msgstr "Zpoždění snímků (ms)" + +msgid "Allow High Refresh Rate" +msgstr "Povolit vysokou obnovovací frekvenci" + +msgid "Hide Home Indicator" +msgstr "Schovat indikátor Domů" + +msgid "Hide Status Bar" +msgstr "Schovat stavový řádek" + +msgid "Suppress UI Gesture" +msgstr "Potlačit UI gesta" + +msgid "XR" +msgstr "XR" + msgid "OpenXR" msgstr "OpenXR" +msgid "Default Action Map" +msgstr "Výchozí mapa akcí" + +msgid "Form Factor" +msgstr "Tvarový faktor" + +msgid "View Configuration" +msgstr "Konfigurace zobrazení" + msgid "Reference Space" msgstr "Referenční prostor" +msgid "Environment Blend Mode" +msgstr "Režim prolnutí prostoru" + +msgid "Foveation Level" +msgstr "Úroveň foveace" + +msgid "Foveation Dynamic" +msgstr "Dynamická foveace" + +msgid "Submit Depth Buffer" +msgstr "Předat vyrovnávací paměť hloubky" + msgid "Startup Alert" -msgstr "Upozornění Při Spuštění" +msgstr "Upozornění při spuštění" + +msgid "Extensions" +msgstr "Rozšíření" + +msgid "Debug Utils" +msgstr "Utility pro ladění" + +msgid "Debug Message Types" +msgstr "Typy zpráv ladění" msgid "Hand Tracking" -msgstr "Sledování Rukou" +msgstr "Sledování rukou" + +msgid "Hand Tracking Unobstructed Data Source" +msgstr "Datový zdroj sledování rukou bez překážek" + +msgid "Hand Tracking Controller Data Source" +msgstr "Datový zdroj sledování rukou z ovladače" + +msgid "Hand Interaction Profile" +msgstr "Interakční profil rukou" + +msgid "Eye Gaze Interaction" +msgstr "Interakce s pohledem očí" + +msgid "Binding Modifiers" +msgstr "Modifikátory vazby" + +msgid "Analog Threshold" +msgstr "Analogový práh" + +msgid "Dpad Binding" +msgstr "Vazba směrových tlačítek" + +msgid "Boot Splash" +msgstr "Úvodní obrazovka načítání" + +msgid "BG Color" +msgstr "Barva pozadí" + +msgid "Pen Tablet" +msgstr "Grafický tablet" msgid "Environment" msgstr "Prostředí" @@ -1820,30 +2970,84 @@ msgstr "Prostředí" msgid "Defaults" msgstr "Výchozí hodnoty" +msgid "Default Clear Color" +msgstr "Výchozí prázdná barva" + msgid "Icon" msgstr "Ikona" +msgid "macOS Native Icon" +msgstr "Nativní ikona macOS" + +msgid "Windows Native Icon" +msgstr "Nativní ikona Windows" + +msgid "Text Driver" +msgstr "Textový ovladač" + msgid "Search in File Extensions" msgstr "Vyhledávání v příponách souborů" msgid "Mouse Cursor" msgstr "Kurzor myši" -msgid "Show Image" -msgstr "Zobrazit Obrázek" +msgid "Custom Image" +msgstr "Vlastní obrázek" -msgid "Image" -msgstr "Obrázek" +msgid "Custom Image Hotspot" +msgstr "Hotspot vlastního obrázku" + +msgid "Tooltip Position Offset" +msgstr "Offset nápovědy" + +msgid "Show Image" +msgstr "Zobrazit obrázek" msgid "Fullsize" msgstr "Plná velikost" +msgid "Use Filter" +msgstr "Použít filtr" + +msgid "Image" +msgstr "Obrázek" + +msgid "Minimum Display Time" +msgstr "Minimální doba zobrazení" + +msgid "Dotnet" +msgstr "Dotnet" + msgid "Project" msgstr "Projekt" +msgid "Assembly Name" +msgstr "Název assembly" + +msgid "Solution Directory" +msgstr "Adresář řešení" + +msgid "Assembly Reload Attempts" +msgstr "Počet pokusů pro načtení assembly" + msgid "Time" msgstr "Čas" +msgid "Physics Process" +msgstr "Zpracování fyziky" + +msgid "Navigation Process" +msgstr "Zpracování navigace" + +msgid "Static" +msgstr "Statická" + +msgid "Static Max" +msgstr "Maximální statická" + +msgid "Msg Buf Max" +msgstr "Maximum pro vyrovnávací paměť zpráv" + msgid "Object" msgstr "Objekt" @@ -1862,6 +3066,9 @@ msgstr "Rastr" msgid "Total Objects Drawn" msgstr "Celkem nakreslených objektů" +msgid "Total Primitives Drawn" +msgstr "Celkem nakreslených primitiv" + msgid "Total Draw Calls" msgstr "Celkem volání kreslení" @@ -1871,33 +3078,75 @@ msgstr "Video" msgid "Video Mem" msgstr "Video paměť" +msgid "Texture Mem" +msgstr "Paměť textur" + +msgid "Buffer Mem" +msgstr "Vyrovnávací paměť" + msgid "Physics 2D" msgstr "2D fyzika" msgid "Active Objects" msgstr "Aktivní objekty" +msgid "Collision Pairs" +msgstr "Kolizní páry" + msgid "Islands" msgstr "Ostrovy" msgid "Physics 3D" msgstr "3D fyzika" +msgid "Active Maps" +msgstr "Aktivní mapy" + msgid "Regions" msgstr "Oblasti" msgid "Agents" msgstr "Aktéři" +msgid "Links" +msgstr "Propojení" + msgid "Polygons" msgstr "Polygony" msgid "Edges" msgstr "Hrany" +msgid "Edges Merged" +msgstr "Sloučené hrany" + msgid "Edges Connected" msgstr "Spojené hrany" +msgid "Edges Free" +msgstr "Volné hrany" + +msgid "Obstacles" +msgstr "Překážky" + +msgid "Pipeline" +msgstr "Pipeline" + +msgid "Compilations Canvas" +msgstr "Kompilace plátna" + +msgid "Compilations Mesh" +msgstr "Kompilace sítí" + +msgid "Compilations Surface" +msgstr "Kompilace povrchů" + +msgid "Compilations Draw" +msgstr "Kompilace kreslení" + +msgid "Compilations Specialization" +msgstr "Kompilace specializace" + msgid "Operation" msgstr "Operace" @@ -1919,15 +3168,24 @@ msgstr "Kolizní maska" msgid "Collision Priority" msgstr "Priorita kolize" +msgid "Flip Faces" +msgstr "Převrátit stěny" + msgid "Mesh" -msgstr "Sítě (Mesh)" +msgstr "Síť" msgid "Material" msgstr "Materiál" +msgid "Radial Segments" +msgstr "Radiální segmenty" + msgid "Rings" msgstr "Prstence" +msgid "Smooth Faces" +msgstr "Hladké stěny" + msgid "Sides" msgstr "Strany" @@ -1949,12 +3207,51 @@ msgstr "Polygon" msgid "Depth" msgstr "Hloubka" +msgid "Spin Degrees" +msgstr "Úhly točení" + +msgid "Spin Sides" +msgstr "Stěny točení" + +msgid "Path Node" +msgstr "Uzel cesty" + +msgid "Path Interval Type" +msgstr "Typ intervalu cesty" + +msgid "Path Interval" +msgstr "Interval cesty" + +msgid "Path Simplify Angle" +msgstr "Úhel zjednodušení cesty" + +msgid "Path Rotation" +msgstr "Rotace cesty" + +msgid "Path Rotation Accurate" +msgstr "Přesná rotace cesty" + +msgid "Path Local" +msgstr "Místní cesta" + +msgid "Path Continuous U" +msgstr "Kontinuální U křivky" + +msgid "Path U Distance" +msgstr "Vzdálenost U cesty" + +msgid "Path Joined" +msgstr "Spojená cesta" + msgid "Importer" msgstr "Importér" msgid "Allow Geometry Helper Nodes" msgstr "Povolit pomocné uzly geometrie" +msgid "Embedded Image Handling" +msgstr "Zpracování vloženého obrázku" + msgid "FBX2glTF" msgstr "FBX2glTF" @@ -1962,10 +3259,28 @@ msgid "GDScript" msgstr "GDScript" msgid "Function Definition Color" -msgstr "Barva definice funkce" +msgstr "Barva definicí funkcí" + +msgid "Global Function Color" +msgstr "Barva globálních funkcích" + +msgid "Node Path Color" +msgstr "Barva cest k uzlům" + +msgid "Node Reference Color" +msgstr "Barva odkazů na uzly" msgid "Annotation Color" -msgstr "Barva anotace" +msgstr "Barva anotací" + +msgid "String Name Color" +msgstr "Barva StringName řetězců" + +msgid "Comment Markers" +msgstr "Značky komentářů" + +msgid "Critical Color" +msgstr "Barva kritických chyb" msgid "Warning Color" msgstr "Barva varování" @@ -1973,27 +3288,51 @@ msgstr "Barva varování" msgid "Notice Color" msgstr "Barva upozornění" +msgid "Critical List" +msgstr "Seznam kritických chyb" + msgid "Warning List" msgstr "Seznam varování" msgid "Notice List" msgstr "Seznam upozornění" +msgid "Max Call Stack" +msgstr "Maximální velikost zásobníku volání" + +msgid "Exclude Addons" +msgstr "Vyloučit doplňky" + +msgid "Renamed in Godot 4 Hint" +msgstr "Nápověda přejmenování v Godotu 4" + msgid "Language Server" msgstr "Jazykový server" msgid "Enable Smart Resolve" msgstr "Povolit funkci chytrého řešení" +msgid "Show Native Symbols in Editor" +msgstr "Zobrazit nativní symboly v editoru" + msgid "Use Thread" msgstr "Použít vlákno" +msgid "Poll Limit (µsec)" +msgstr "Limit dotazů (µsec)" + msgid "Copyright" msgstr "Copyright" +msgid "Bake FPS" +msgstr "Vypálit FPS" + msgid "glTF" msgstr "glTF" +msgid "Naming Version" +msgstr "Verze pojmenování" + msgid "Color" msgstr "Barva" @@ -2012,6 +3351,21 @@ msgstr "Vnitřní úhel kuželu" msgid "Outer Cone Angle" msgstr "Vnější úhel kuželu" +msgid "Diffuse Img" +msgstr "Obrázek rozptýlení" + +msgid "Diffuse Factor" +msgstr "Faktor rozptýlení" + +msgid "Gloss Factor" +msgstr "Faktor lesku" + +msgid "Specular Factor" +msgstr "Faktor zrcadlení" + +msgid "Spec Gloss Img" +msgstr "Obrázek zrcadleného lesku" + msgid "Mass" msgstr "Hmotnost" @@ -2024,9 +3378,24 @@ msgstr "Úhlová rychlost" msgid "Center of Mass" msgstr "Těžiště" +msgid "Inertia Diagonal" +msgstr "Diagonála setrvačnosti" + +msgid "Inertia Orientation" +msgstr "Orientace setrvačnosti" + +msgid "Inertia Tensor" +msgstr "Tenzor setrvačnosti" + +msgid "Is Trigger" +msgstr "Je spouštěč" + msgid "Mesh Index" msgstr "Index sítě" +msgid "Importer Mesh" +msgstr "Síť importu" + msgid "Image Format" msgstr "Formát obrázku" @@ -2045,9 +3414,36 @@ msgstr "Vedlejší verze" msgid "GLB Data" msgstr "Data GLB" +msgid "Use Named Skin Binds" +msgstr "Použít pojmenované vazby slupek" + msgid "Buffers" msgstr "Vyrovnávací paměti" +msgid "Buffer Views" +msgstr "Okna vyrovnávací paměti" + +msgid "Accessors" +msgstr "Přístupové prvky" + +msgid "Materials" +msgstr "Materiály" + +msgid "Scene Name" +msgstr "Název scény" + +msgid "Base Path" +msgstr "Základní cesta" + +msgid "Filename" +msgstr "Název souboru" + +msgid "Root Nodes" +msgstr "Kořenové uzly" + +msgid "Texture Samplers" +msgstr "Vzorkovače textur" + msgid "Images" msgstr "Obrázky" @@ -2072,60 +3468,1080 @@ msgstr "Vytvořit animace" msgid "Animations" msgstr "Animace" +msgid "Handle Binary Image" +msgstr "Zpracovat binární obrázek" + +msgid "Buffer View" +msgstr "Okno vyrovnávací paměti" + +msgid "Byte Offset" +msgstr "Offset bajtů" + msgid "Component Type" msgstr "Typ komponenty" +msgid "Normalized" +msgstr "Normalizované" + msgid "Count" msgstr "Počet" +msgid "Accessor Type" +msgstr "Typ přístupového prvku" + +msgid "Min" +msgstr "Minimum" + +msgid "Max" +msgstr "Maximum" + +msgid "Sparse Count" +msgstr "Řídký počet" + +msgid "Sparse Indices Buffer View" +msgstr "Okno vyrovnávací paměty s řídkými indexy" + +msgid "Sparse Indices Byte Offset" +msgstr "Offset bajtů s řídkými indexy" + +msgid "Sparse Indices Component Type" +msgstr "Typ komponenty s řídkými komponenty" + +msgid "Sparse Values Buffer View" +msgstr "Okno vyrovnávací paměti s řídkými hodnotami" + +msgid "Sparse Values Byte Offset" +msgstr "Offset bajtů s řídkými hodnotami" + +msgid "Original Name" +msgstr "Původní název" + msgid "Loop" msgstr "Smyčka" +msgid "Buffer" +msgstr "Vyrovnávací paměť" + +msgid "Byte Length" +msgstr "Délka v bajtech" + +msgid "Byte Stride" +msgstr "Krok v bajtech" + +msgid "Indices" +msgstr "Indexy" + +msgid "Vertex Attributes" +msgstr "Atributy vrcholu" + msgid "Perspective" msgstr "Perspektivní" +msgid "FOV" +msgstr "Zorné pole" + +msgid "Size Mag" +msgstr "Velikost mag" + +msgid "Depth Far" +msgstr "Vzdálená hloubka" + +msgid "Depth Near" +msgstr "Blízká hloubka" + +msgid "Blend Weights" +msgstr "Váhy prolnutí" + +msgid "Instance Materials" +msgstr "Materiály instance" + +msgid "Parent" +msgstr "Rodič" + +msgid "Xform" +msgstr "Transformace" + +msgid "Skin" +msgstr "Slupka" + +msgid "Children" +msgstr "Potomci" + msgid "Light" msgstr "Světlo" +msgid "glTF to Godot Expression" +msgstr "glTF na výraz Godotu" + +msgid "Godot to glTF Expression" +msgstr "Godot na výraz glTF" + +msgid "Node Paths" +msgstr "Cesty k uzlům" + +msgid "Object Model Type" +msgstr "Typ modelu objektu" + +msgid "Json Pointers" +msgstr "JSON ukazatele" + +msgid "Variant Type" +msgstr "Variantní typ" + msgid "Joints" -msgstr "Body" +msgstr "Klouby" + +msgid "Roots" +msgstr "Kořeny" + +msgid "Godot Bone Node" +msgstr "Uzel kosti Godotu" + +msgid "Skin Root" +msgstr "Kořen slupky" + +msgid "Joints Original" +msgstr "Původní klouby" + +msgid "Non Joints" +msgstr "Ne klouby" + +msgid "Godot Skin" +msgstr "Slupka Godotu" + +msgid "Src Image" +msgstr "Zdrojový obrázek" msgid "Sampler" msgstr "Vzorkovač" +msgid "Mag Filter" +msgstr "Filtr zvětšení" + +msgid "Min Filter" +msgstr "Filtr zmenšení" + +msgid "Wrap S" +msgstr "Obalení S" + +msgid "Wrap T" +msgstr "Obalení T" + msgid "Mesh Library" -msgstr "Knihovna modelů" +msgstr "Knihovna sítí" msgid "Physics Material" msgstr "Fyzikální materiál" +msgid "Cell" +msgstr "Buňka" + +msgid "Octant Size" +msgstr "Velikost oktantu" + +msgid "Center X" +msgstr "Vycentrovat podle X" + +msgid "Center Y" +msgstr "Vycentrovat podle Y" + +msgid "Center Z" +msgstr "Vycentrovat podle Z" + msgid "Priority" msgstr "Priorita" +msgid "Bake Navigation" +msgstr "Vypálit navigaci" + +msgid "Clip Count" +msgstr "Počet klipů" + +msgid "Initial Clip" +msgstr "Počáteční klip" + +msgid "Shuffle" +msgstr "Náhodně" + +msgid "Fade Time" +msgstr "Čas přechodu hlasitosti" + +msgid "Stream Count" +msgstr "Počet streamů" + +msgid "Jolt Physics 3D" +msgstr "3D fyzika Jolt" + +msgid "Simulation" +msgstr "Simulace" + +msgid "Velocity Steps" +msgstr "Kroky rychlosti" + +msgid "Position Steps" +msgstr "Kroky pozice" + +msgid "Use Enhanced Internal Edge Removal" +msgstr "Použít vylepšené odstraňování vnitřních hran" + +msgid "Areas Detect Static Bodies" +msgstr "Oblasti detekují statická tělesa" + +msgid "Generate All Kinematic Contacts" +msgstr "Generovat všechny kinematické kontakty" + +msgid "Penetration Slop" +msgstr "Přetečení průniků" + +msgid "Speculative Contact Distance" +msgstr "Vzdálenost spekulativních kontaktů" + +msgid "Baumgarte Stabilization Factor" +msgstr "Faktor Baumgartovy stabilizace" + +msgid "Soft Body Point Radius" +msgstr "Poloměr bodů měkkých těles" + +msgid "Bounce Velocity Threshold" +msgstr "Práh rychlosti odrazu" + +msgid "Allow Sleep" +msgstr "Povolit spánek" + +msgid "Sleep Velocity Threshold" +msgstr "Práh rychlosti spánku" + +msgid "Sleep Time Threshold" +msgstr "Práh času spánku" + +msgid "Continuous CD Movement Threshold" +msgstr "Práh pohybu kontinuální detekce kolizí" + +msgid "Continuous CD Max Penetration" +msgstr "Maximální průnik kontinuální detekce kolizí" + +msgid "Body Pair Contact Cache Enabled" +msgstr "Mezipaměť kontaktů párů těles povolena" + +msgid "Body Pair Contact Cache Distance Threshold" +msgstr "Práh vzdálenosti mezipaměti kontaktů párů těles" + +msgid "Body Pair Contact Cache Angle Threshold" +msgstr "Práh úhlu mezipaměti kontaktů párů těles" + +msgid "Queries" +msgstr "Dotazy" + +msgid "Enable Ray Cast Face Index" +msgstr "Povolit index stěn vrhání paprsků" + +msgid "Motion Queries" +msgstr "Dotazy na pohyb" + +msgid "Recovery Iterations" +msgstr "Iterace zotavení" + +msgid "Recovery Amount" +msgstr "Velikost zotavení" + +msgid "Collisions" +msgstr "Kolize" + +msgid "Collision Margin Fraction" +msgstr "Zlomek rozpětí kolize" + +msgid "Active Edge Threshold" +msgstr "Práh aktivních hran" + +msgid "World Node" +msgstr "Uzel světa" + +msgid "Temporary Memory Buffer Size" +msgstr "Velikost dočasné vyrovnávací paměti" + +msgid "World Boundary Shape Size" +msgstr "Velikost tvaru hranice světa" + +msgid "Max Linear Velocity" +msgstr "Maximální lineární rychlost" + +msgid "Max Angular Velocity" +msgstr "Maximální úhlová rychlost" + +msgid "Max Bodies" +msgstr "Maximální počet těles" + +msgid "Max Body Pairs" +msgstr "Maximální počet párů těles" + +msgid "Max Contact Constraints" +msgstr "Maximum omezení kontaktů" + +msgid "Lightmapping" +msgstr "Světelné mapování" + +msgid "Bake Quality" +msgstr "Kvalita vypálení" + +msgid "Low Quality Ray Count" +msgstr "Počet paprsků nízké kvality" + +msgid "Medium Quality Ray Count" +msgstr "Počet paprsků střední kvality" + +msgid "High Quality Ray Count" +msgstr "Počet paprsků vysoké kvality" + +msgid "Ultra Quality Ray Count" +msgstr "Počet paprsků ultra kvality" + +msgid "Bake Performance" +msgstr "Výkon vypálení" + +msgid "Max Rays per Pass" +msgstr "Maximum paprsků na průchod" + +msgid "Region Size" +msgstr "Velikost oblasti" + +msgid "Max Transparency Rays" +msgstr "Maximum paprsků průhlednosti" + +msgid "Low Quality Probe Ray Count" +msgstr "Počet paprsků sond nízké kvality" + +msgid "Medium Quality Probe Ray Count" +msgstr "Počet paprsků sond střední kvality" + +msgid "High Quality Probe Ray Count" +msgstr "Počet paprsků sond vysoké kvality" + +msgid "Ultra Quality Probe Ray Count" +msgstr "Počet paprsků sond ultra kvality" + +msgid "Max Rays per Probe Pass" +msgstr "Maximum paprsků na průchod sondy" + +msgid "Denoising" +msgstr "Odstranění šumu" + +msgid "Denoiser" +msgstr "Odstraňovač šumu" + +msgid "Enable TLS V 1" +msgstr "Povolit TLS V 1" + +msgid "BPM" +msgstr "Tempo (BPM)" + +msgid "Beat Count" +msgstr "Počet dob" + +msgid "Bar Beats" +msgstr "Doby v taktu" + +msgid "Loop Offset" +msgstr "Offset smyčky" + +msgid "Eye Height" +msgstr "Výška očí" + +msgid "IOD" +msgstr "Vzdálenost zornic" + +msgid "Display Width" +msgstr "Šířka zobrazení" + +msgid "Display to Lens" +msgstr "Vzdálenost displeje od čoček" + +msgid "Offset Rect" +msgstr "Offset obdélník" + +msgid "Oversample" +msgstr "Převzorkovat" + +msgid "K1" +msgstr "K1" + +msgid "K2" +msgstr "K2" + +msgid "Vulkan VRS" +msgstr "Vulkan VRS" + +msgid "Min Radius" +msgstr "Minimální poloměr" + +msgid "Spawn Path" +msgstr "Cesta vytvoření" + +msgid "Spawn Limit" +msgstr "Limit vytvoření" + +msgid "Root Path" +msgstr "Cesta ke kořeni" + +msgid "Replication Interval" +msgstr "Interval replikace" + +msgid "Delta Interval" +msgstr "Interval synchronizace delt" + +msgid "Visibility Update Mode" +msgstr "Režim aktualizace viditelnosti" + +msgid "Public Visibility" +msgstr "Veřejná viditelnost" + +msgid "Auth Callback" +msgstr "Metoda zpětného volání pro autentizaci" + +msgid "Auth Timeout" +msgstr "Čas pro autentizaci vypršel" + +msgid "Allow Object Decoding" +msgstr "Povolit dekódování objektů" + msgid "Refuse New Connections" -msgstr "Odmítnout Nová Připojení" +msgstr "Odmítnout nová připojení" + +msgid "Server Relay" +msgstr "Přenos serverem" + +msgid "Max Sync Packet Size" +msgstr "Maximální velikost synchronizačních paketů" + +msgid "Max Delta Packet Size" +msgstr "Maximální velikost delta paketů" + +msgid "Noise Type" +msgstr "Typ šumu" + +msgid "Frequency" +msgstr "Frekcence" + +msgid "Fractal" +msgstr "Fraktálový" + +msgid "Octaves" +msgstr "Oktávy" + +msgid "Lacunarity" +msgstr "Prázdnost" + +msgid "Gain" +msgstr "Zisk" + +msgid "Weighted Strength" +msgstr "Vážená síla" + +msgid "Ping Pong Strength" +msgstr "Síla ping pongu" + +msgid "Cellular" +msgstr "Buněčný" + +msgid "Distance Function" +msgstr "Vzdálenostní funkce" + +msgid "Jitter" +msgstr "Třas" + +msgid "Return Type" +msgstr "Návratový typ" + +msgid "Domain Warp" +msgstr "Deformace domény" + +msgid "Amplitude" +msgstr "Amplituda" + +msgid "Fractal Type" +msgstr "Typ fraktálu" + +msgid "Fractal Octaves" +msgstr "Fraktálové oktávy" + +msgid "Fractal Lacunarity" +msgstr "Prázdnost fraktálu" + +msgid "Fractal Gain" +msgstr "Fraktálový zisk" msgid "Width" msgstr "Šířka" +msgid "Invert" +msgstr "Invertovat" + +msgid "In 3D Space" +msgstr "Ve 3D prostoru" + +msgid "Seamless" +msgstr "Bezešvá" + +msgid "Seamless Blend Skirt" +msgstr "Lem bezešvého prolnutí" + +msgid "As Normal Map" +msgstr "Jako normálová mapa" + +msgid "Bump Strength" +msgstr "Síla nerovností" + +msgid "Color Ramp" +msgstr "Gradient barev" + +msgid "Noise" +msgstr "Šum" + +msgid "Localized Name" +msgstr "Lokalizovaný název" + +msgid "Action Type" +msgstr "Typ akce" + +msgid "Toplevel Paths" +msgstr "Cesty nejvyšší úrovně" + +msgid "Binding Path" +msgstr "Cesta vazby" + +msgid "Interaction Profile Path" +msgstr "Cesta k interakčnímu profilu" + +msgid "Runtime Paths" +msgstr "Cesty k běhovým prostředím" + +msgid "Action Set" +msgstr "Sada akcí" + +msgid "Input Path" +msgstr "Cesta vstupu" + +msgid "Threshold Released" +msgstr "Práh puštěn" + +msgid "Center Region" +msgstr "Střední oblast" + +msgid "Wedge Angle" +msgstr "Úhel klínu" + +msgid "Is Sticky" +msgstr "Jedním prstem" + +msgid "On Haptic" +msgstr "Haptika zapnout" + +msgid "Off Haptic" +msgstr "Haptika vypnout" + +msgid "On Threshold" +msgstr "Práh zapnout" + +msgid "Off Threshold" +msgstr "Práh vypnout" + +msgid "Display Refresh Rate" +msgstr "Obnovovací frekvence displeje" + +msgid "Render Target Size Multiplier" +msgstr "Multiplikátor velikosti cíle vykreslování" + +msgid "Layer Viewport" +msgstr "Průzor vrstev" + +msgid "Use Android Surface" +msgstr "Použít Android Surface" + +msgid "Android Surface Size" +msgstr "Velikost Android Surface" + +msgid "Sort Order" +msgstr "Řazení podle" + +msgid "Alpha Blend" +msgstr "Alfa prolnutí" + +msgid "Enable Hole Punch" +msgstr "Povolit děrování" + +msgid "Aspect Ratio" +msgstr "Poměr stran" + +msgid "Central Angle" +msgstr "Středový úhel" + +msgid "Fallback Segments" +msgstr "Záložní segmenty" + +msgid "Central Horizontal Angle" +msgstr "Středový horizontální úhel" + +msgid "Upper Vertical Angle" +msgstr "Horní vertikální úhel" + +msgid "Lower Vertical Angle" +msgstr "Spodní vertikální úhel" + +msgid "Quad Size" +msgstr "Velikost kvadrantu" + +msgid "Hand" +msgstr "Ruka" + +msgid "Motion Range" +msgstr "Pohyblivost" + +msgid "Hand Skeleton" +msgstr "Kostra ruky" + +msgid "Skeleton Rig" +msgstr "Upevnění kostry" + +msgid "Bone Update" +msgstr "Aktualizace kosti" + +msgid "Subject" +msgstr "Subjekt" + +msgid "Names" +msgstr "Názvy" + +msgid "Strings" +msgstr "Řetězce" + +msgid "Discover Multicast If" +msgstr "Multicast rozhraní pro objevení" + +msgid "Discover Local Port" +msgstr "Místní port pro objevení" + +msgid "Discover IPv6" +msgstr "IPv6 pro objevení" + +msgid "Description URL" +msgstr "URL popisu" + +msgid "Service Type" +msgstr "Typ služby" + +msgid "IGD Control URL" +msgstr "URL řízení IGD" + +msgid "IGD Service Type" +msgstr "Typ služby IGD" + +msgid "IGD Our Addr" +msgstr "Naše adresa IGD" + +msgid "IGD Status" +msgstr "Stav IGD" + msgid "WebRTC" msgstr "WebRTC" +msgid "Max Channel in Buffer (KB)" +msgstr "Maximální kanál ve vyrovnávací paměti (KB)" + +msgid "Write Mode" +msgstr "Režim zápisu" + +msgid "Supported Protocols" +msgstr "Podporované protokoly" + +msgid "Handshake Headers" +msgstr "Inicializační hlavičky" + +msgid "Inbound Buffer Size" +msgstr "Velikost příchozí vyrovnávací paměti" + +msgid "Outbound Buffer Size" +msgstr "Velikost odchozí vyrovnávací paměti" + +msgid "Handshake Timeout" +msgstr "Vypršel čas pro inicializaci" + +msgid "Max Queued Packets" +msgstr "Maximum paketů ve frontě" + +msgid "Heartbeat Interval" +msgstr "Interval synchronizačního signálu" + +msgid "Session Mode" +msgstr "Režim relace" + +msgid "Required Features" +msgstr "Vyžadované funkce" + +msgid "Optional Features" +msgstr "Volitelné funkce" + +msgid "Enabled Features" +msgstr "Povolené funkce" + +msgid "Visibility State" +msgstr "Stav viditelnosti" + msgid "Force System User" msgstr "Vynutit systémového uživatele" +msgid "Shutdown ADB on Exit" +msgstr "Vypnout ADB při ukončení" + +msgid "One Click Deploy Clear Previous Install" +msgstr "Vymazat předchozí instalaci při nasazení jedním kliknutím" + +msgid "Use Wi-Fi for Remote Debug" +msgstr "Použít pro vzdálené ladění Wi-Fi" + +msgid "Wi-Fi Remote Debug Host" +msgstr "Host pro vzdálené ladění přes Wi-Fi" + +msgid "Launcher Icons" +msgstr "Ikony systémového prostředí" + +msgid "Main 192 X 192" +msgstr "Hlavní 192 x 192" + +msgid "Adaptive Foreground 432 X 432" +msgstr "Adaptivní popředí 432 x 432" + +msgid "Adaptive Background 432 X 432" +msgstr "Adaptivní pozadí 432 x 432" + +msgid "Adaptive Monochrome 432 X 432" +msgstr "Adaptivní monochromatické 432 x 432" + +msgid "Gradle Build" +msgstr "Gradle sestavení" + +msgid "Use Gradle Build" +msgstr "Použít Gradle sestavení" + +msgid "Gradle Build Directory" +msgstr "Adresář Gradle sestavení" + +msgid "Android Source Template" +msgstr "Zdrojová Android šablona" + +msgid "Compress Native Libraries" +msgstr "Komprimovat nativní knihovny" + +msgid "Export Format" +msgstr "Formát exportu" + +msgid "Min SDK" +msgstr "Minimální SDK" + +msgid "Target SDK" +msgstr "Cílové SDK" + msgid "Plugins" -msgstr "Pluginy" +msgstr "Zásuvné moduly" + +msgid "Architectures" +msgstr "Architektury" + +msgid "Keystore" +msgstr "Úložiště klíčů" + +msgid "Debug User" +msgstr "Uživatel pro ladění" msgid "Debug Password" -msgstr "Heslo ladění" +msgstr "Heslo pro ladění" + +msgid "Release User" +msgstr "Uživatel pro vydání" + +msgid "Release Password" +msgstr "Heslo pro vydání" + +msgid "Code" +msgstr "Kód" + +msgid "Package" +msgstr "Balíček" + +msgid "Unique Name" +msgstr "Unikátní název" + +msgid "Signed" +msgstr "Podepsaný" + +msgid "App Category" +msgstr "Kategorie aplikace" + +msgid "Retain Data on Uninstall" +msgstr "Zachování dat při odinstalaci" + +msgid "Exclude From Recents" +msgstr "Vyřadit z nedávných" + +msgid "Show in Android TV" +msgstr "Zobrazit v Android TV" + +msgid "Show in App Library" +msgstr "Zobrazit v knihovně aplikací" + +msgid "Show as Launcher App" +msgstr "Zobrazit jako aplikaci systémového prostředí" + +msgid "Graphics" +msgstr "Grafika" + +msgid "OpenGL Debug" +msgstr "OpenGL ladění" + +msgid "XR Features" +msgstr "Funkce XR" + +msgid "XR Mode" +msgstr "Režim XR" + +msgid "Gesture" +msgstr "Gesto" + +msgid "Swipe to Dismiss" +msgstr "Zavřít přejetím prstu" + +msgid "Screen" +msgstr "Obrazovka" + +msgid "Immersive Mode" +msgstr "Imerzivní režim" + +msgid "Support Small" +msgstr "Podpora malých" + +msgid "Support Normal" +msgstr "Podpora normálních" + +msgid "Support Large" +msgstr "Podpora velkých" + +msgid "Support Xlarge" +msgstr "Podpora extra velkých" + +msgid "User Data Backup" +msgstr "Záloha uživatelských dat" + +msgid "Allow" +msgstr "Povolit" + +msgid "Command Line" +msgstr "Příkazový řádek" + +msgid "Extra Args" +msgstr "Další argumenty" + +msgid "APK Expansion" +msgstr "APK rozšíření" + +msgid "Salt" +msgstr "Sůl" + +msgid "Public Key" +msgstr "Veřejný klíč" + +msgid "Permissions" +msgstr "Oprávnění" + +msgid "Custom Permissions" +msgstr "Vlastní oprávnění" msgid "Icons" msgstr "Ikony" +msgid "Settings 58 X 58" +msgstr "Nastavení 58 x 58" + +msgid "Settings 87 X 87" +msgstr "Nastavení 87 x 87" + +msgid "Notification 40 X 40" +msgstr "Notifikace 40 x 40" + +msgid "Notification 60 X 60" +msgstr "Notifikace 60 x 60" + +msgid "Notification 76 X 76" +msgstr "Notifikace 76 x 76" + +msgid "Notification 114 X 114" +msgstr "Notifikace 114 x 114" + +msgid "Spotlight 80 X 80" +msgstr "Spotlight 80 x 80" + +msgid "Spotlight 120 X 120" +msgstr "Spotlight 120 x 120" + +msgid "iPhone 120 X 120" +msgstr "iPhone 120 x 120" + +msgid "iPhone 180 X 180" +msgstr "iPhone 180 x 180" + +msgid "iPad 167 X 167" +msgstr "iPad 167 x 167" + +msgid "iPad 152 X 152" +msgstr "iPad 152 x 152" + +msgid "iOS 128 X 128" +msgstr "iOS 128 x 128" + +msgid "iOS 192 X 192" +msgstr "iOS 192 x 192" + +msgid "iOS 136 X 136" +msgstr "iOS 136 x 136" + +msgid "App Store 1024 X 1024" +msgstr "App Store 1024 x 1024" + +msgid "App Store Team ID" +msgstr "App Store Team ID" + +msgid "Export Method Debug" +msgstr "Metoda exportu ladění" + +msgid "Code Sign Identity Debug" +msgstr "Identita podepisování kódu pro ladění" + +msgid "Code Sign Identity Release" +msgstr "Identita podepisování kódu pro vydání" + +msgid "Provisioning Profile UUID Debug" +msgstr "UUID provisioning profilu pro ladění" + +msgid "Provisioning Profile UUID Release" +msgstr "UUID provisioning profilu pro vydání" + +msgid "Provisioning Profile Specifier Debug" +msgstr "Specifikátor provisioning profilu pro ladění" + +msgid "Provisioning Profile Specifier Release" +msgstr "Specifikátor provisioning profilu pro vydání" + +msgid "Export Method Release" +msgstr "Metoda exportu vydání" + +msgid "Targeted Device Family" +msgstr "Cílená rodina zařízení" + +msgid "Bundle Identifier" +msgstr "Identifikátor balíčku" + +msgid "Signature" +msgstr "Podpis" + +msgid "Short Version" +msgstr "Krátká verze" + +msgid "Min iOS Version" +msgstr "Minimální verze iOS" + +msgid "Additional Plist Content" +msgstr "Dodatečný obsah plist" + +msgid "Icon Interpolation" +msgstr "Interpolace ikon" + +msgid "Export Project Only" +msgstr "Exportovat pouze projekt" + +msgid "Delete Old Export Files Unconditionally" +msgstr "Bezpodmínečně smazat staré soubory exportu" + +msgid "Entitlements" +msgstr "Oprávnění" + +msgid "Increased Memory Limit" +msgstr "Zvýšený limit paměti" + +msgid "Game Center" +msgstr "Herní centrum" + +msgid "Push Notifications" +msgstr "Push notifikace" + +msgid "Additional" +msgstr "Dodatečné" + +msgid "Capabilities" +msgstr "Způsobilosti" + msgid "Access Wi-Fi" msgstr "Přístup k Wi-Fi" +msgid "Performance Gaming Tier" +msgstr "Výkon herní úrovně" + +msgid "Performance A 12" +msgstr "Výkon A12" + +msgid "User Data" +msgstr "Uživatelská data" + +msgid "Accessible From Files App" +msgstr "Přístupné z aplikace Soubory" + +msgid "Accessible From iTunes Sharing" +msgstr "Přístupné z iTunes sdílení" + +msgid "Privacy" +msgstr "Soukromí" + +msgid "Camera Usage Description" +msgstr "Popis použití fotoaparátu" + +msgid "Camera Usage Description Localized" +msgstr "Lokalizovaný popis použití fotoaparátu" + +msgid "Microphone Usage Description" +msgstr "Popis použití mikrofonu" + +msgid "Microphone Usage Description Localized" +msgstr "Lokalizovaný popis použití mikrofonu" + +msgid "Photolibrary Usage Description" +msgstr "Popis použití knihovny fotek" + +msgid "Photolibrary Usage Description Localized" +msgstr "Lokalizovaný popis použití knihovny fotek" + +msgid "Tracking Enabled" +msgstr "Sledování povoleno" + +msgid "Tracking Domains" +msgstr "Oblasti sledování" + +msgid "Icon 1024 X 1024" +msgstr "Ikona 1024 x 1024" + +msgid "Icon 1024 X 1024 Dark" +msgstr "Ikona 1024 x 1024 tmavá" + +msgid "Icon 1024 X 1024 Tinted" +msgstr "Ikona 1024 x 1024 zabarvená" + +msgid "Storyboard" +msgstr "Storyboard" + +msgid "Image Scale Mode" +msgstr "Režim škálování obrázku" + +msgid "Custom Image @2x" +msgstr "Vlastní obrázek @2x" + +msgid "Custom Image @3x" +msgstr "Vlastní obrázek @3x" + msgid "Use Custom BG Color" msgstr "Použít vlastní barvu pozadí" @@ -2135,36 +4551,384 @@ msgstr "Vlastní barva pozadí" msgid "Architecture" msgstr "Architektura" +msgid "SSH Remote Deploy" +msgstr "Vzdálené nasazení přes SSH" + +msgid "Extra Args SSH" +msgstr "Další argumenty pro SSH" + +msgid "Extra Args SCP" +msgstr "Další argumenty pro SCP" + msgid "Run Script" -msgstr "Spustit skript" +msgstr "Skript běhu" + +msgid "Cleanup Script" +msgstr "Skript čištění" + +msgid "Distribution Type" +msgstr "Typ distribuce" + +msgid "Copyright Localized" +msgstr "Lokalizovaný copyright" + +msgid "Min macOS Version x86 64" +msgstr "Minimální verze macOS x86 64" + +msgid "Min macOS Version arm64" +msgstr "Minimální verze macOS arm64" + +msgid "Export Angle" +msgstr "Exportovat ANGLE" + +msgid "High Res" +msgstr "Vysoké rozlišení" + +msgid "Xcode" +msgstr "Xcode" + +msgid "Platform Build" +msgstr "Sestavení pro platformu" msgid "SDK Version" msgstr "Verze SDK" +msgid "SDK Build" +msgstr "Sestavení SDK" + msgid "SDK Name" msgstr "Název SDK" +msgid "Xcode Version" +msgstr "Verze Xcode" + +msgid "Xcode Build" +msgstr "Sestavení Xcode" + +msgid "Codesign" +msgstr "Codesign" + +msgid "Installer Identity" +msgstr "Identita instalátoru" + +msgid "Apple Team ID" +msgstr "Apple Team ID" + +msgid "Identity" +msgstr "Identita" + +msgid "Certificate File" +msgstr "Soubor certifikátu" + +msgid "Certificate Password" +msgstr "Heslo certifikátu" + +msgid "Provisioning Profile" +msgstr "Provisioning profil" + +msgid "Custom File" +msgstr "Vlastní soubor" + +msgid "Allow JIT Code Execution" +msgstr "Povolit JIT běh kódu" + +msgid "Allow Unsigned Executable Memory" +msgstr "Povolit nepodepsanou spustitelnou paměť" + +msgid "Allow Dyld Environment Variables" +msgstr "Povolit proměnné prostředí DYLD" + msgid "Disable Library Validation" msgstr "Zakázat validaci knihoven" +msgid "Audio Input" +msgstr "Zvukový vstup" + +msgid "Address Book" +msgstr "Seznam kontaktů" + +msgid "Calendars" +msgstr "Kalendáře" + +msgid "Photos Library" +msgstr "Knihovna fotek" + +msgid "Apple Events" +msgstr "Apple události" + +msgid "Debugging" +msgstr "Ladění" + +msgid "App Sandbox" +msgstr "Sandbox aplikace" + +msgid "Network Server" +msgstr "Síťový server" + +msgid "Network Client" +msgstr "Síťový klient" + +msgid "Device USB" +msgstr "USB zařízení" + +msgid "Device Bluetooth" +msgstr "Bluetooth zařízení" + +msgid "Files Downloads" +msgstr "Stažené soubory" + +msgid "Files Pictures" +msgstr "Soubory Obrázky" + +msgid "Files Music" +msgstr "Soubory Hudba" + +msgid "Files Movies" +msgstr "Soubory Videa" + +msgid "Files User Selected" +msgstr "Soubory vybrané uživatelem" + +msgid "Helper Executables" +msgstr "Pomocné spustitelné soubory" + +msgid "Custom Options" +msgstr "Vlastní možnosti" + +msgid "Notarization" +msgstr "Notářské ověření" + +msgid "Apple ID Name" +msgstr "Apple ID jméno" + +msgid "Apple ID Password" +msgstr "Apple ID heslo" + +msgid "API UUID" +msgstr "API UUID" + +msgid "API Key" +msgstr "API klíč" + +msgid "API Key ID" +msgstr "ID API klíče" + +msgid "Location Usage Description" +msgstr "Popis použití polohy" + +msgid "Location Usage Description Localized" +msgstr "Lokalizovaný popis použití polohy" + +msgid "Address Book Usage Description" +msgstr "Popis použití seznamu kontaktů" + +msgid "Address Book Usage Description Localized" +msgstr "Lokalizovaný popis použití seznamu kontaktů" + +msgid "Calendar Usage Description" +msgstr "Popis použití kalendáře" + +msgid "Calendar Usage Description Localized" +msgstr "Lokalizovaný popis použití kalendáře" + +msgid "Photos Library Usage Description" +msgstr "Popis použití knihovny fotek" + +msgid "Photos Library Usage Description Localized" +msgstr "Lokalizovaný popis použití knihovny fotek" + +msgid "Desktop Folder Usage Description" +msgstr "Popis použití složky Plocha" + +msgid "Desktop Folder Usage Description Localized" +msgstr "Lokalizovaný popis použití složky Plocha" + +msgid "Documents Folder Usage Description" +msgstr "Popis použití složky Dokumenty" + +msgid "Documents Folder Usage Description Localized" +msgstr "Lokalizovaný popis použití složky Dokumenty" + +msgid "Downloads Folder Usage Description" +msgstr "Popis použití složky Stažené soubory" + +msgid "Downloads Folder Usage Description Localized" +msgstr "Lokalizovaný popis použití složky Stažené soubory" + +msgid "Network Volumes Usage Description" +msgstr "Popis použití síťových svazků" + +msgid "Network Volumes Usage Description Localized" +msgstr "Lokalizovaný popis použití síťových svazků" + +msgid "Removable Volumes Usage Description" +msgstr "Popis použití odebratelných svazků" + +msgid "Removable Volumes Usage Description Localized" +msgstr "Lokalizovaný popis použití odebratelných svazků" + msgid "Web" msgstr "Web" +msgid "HTTP Host" +msgstr "HTTP Host" + +msgid "HTTP Port" +msgstr "HTTP Port" + +msgid "Use TLS" +msgstr "Použít TLS" + +msgid "TLS Key" +msgstr "Klíč TLS" + +msgid "TLS Certificate" +msgstr "Certifikát TLS" + +msgid "Variant" +msgstr "Varianta" + +msgid "Extensions Support" +msgstr "Podpora rozšíření" + +msgid "Thread Support" +msgstr "Podpora vláken" + +msgid "VRAM Texture Compression" +msgstr "VRAM komprese textur" + +msgid "For Desktop" +msgstr "Pro desktopová zařízení" + +msgid "For Mobile" +msgstr "Pro mobilní zařízení" + +msgid "HTML" +msgstr "HTML" + +msgid "Export Icon" +msgstr "Ikona exportu" + +msgid "Custom HTML Shell" +msgstr "Vlastní HTML obálka" + +msgid "Head Include" +msgstr "Zahrnout v head" + +msgid "Canvas Resize Policy" +msgstr "Způsov změny velikosti canvas" + +msgid "Focus Canvas on Start" +msgstr "Zaměřit canvas při startu" + +msgid "Experimental Virtual Keyboard" +msgstr "Experimentální virtuální klávesnice" + +msgid "Progressive Web App" +msgstr "Progresivní webová aplikace" + +msgid "Ensure Cross Origin Isolation Headers" +msgstr "Zajistit hlavičky izolace cross origin" + +msgid "Offline Page" +msgstr "Offline stránka" + +msgid "Icon 144 X 144" +msgstr "Ikona 144 x 144" + +msgid "Icon 180 X 180" +msgstr "Ikona 180 x 180" + +msgid "Icon 512 X 512" +msgstr "Ikona 512 x 512" + +msgid "Identity Type" +msgstr "Typ identity" + +msgid "Timestamp" +msgstr "Časové razítko" + +msgid "Timestamp Server URL" +msgstr "URL serveru časového razítka" + +msgid "Digest Algorithm" +msgstr "Digest algoritmus" + +msgid "Modify Resources" +msgstr "Modifikovat zdroje" + +msgid "Console Wrapper Icon" +msgstr "Ikona wrapperu konzole" + +msgid "File Version" +msgstr "Verze souboru" + msgid "Product Version" msgstr "Verze produktu" +msgid "Company Name" +msgstr "Název společnosti" + +msgid "Product Name" +msgstr "Název produktu" + +msgid "File Description" +msgstr "Popis souboru" + +msgid "Trademarks" +msgstr "Ochranné známky" + +msgid "Export D3D12" +msgstr "Exportovat D3D12" + +msgid "D3D12 Agility SDK Multiarch" +msgstr "Multiarchitekturní D3D12 Agility SDK" + msgid "Sprite Frames" msgstr "Snímky spritů" msgid "Frame" msgstr "Snímek" +msgid "Speed Scale" +msgstr "Měřítko rychlosti" + +msgid "Centered" +msgstr "Vycentrované" + +msgid "Flip H" +msgstr "Překlopit horizontálně" + +msgid "Flip V" +msgstr "Překlopit vertikálně" + +msgid "Current" +msgstr "Aktuální" + +msgid "Max Distance" +msgstr "Maximální vzdálenost" + +msgid "Attenuation" +msgstr "Útlum" + +msgid "Max Polyphony" +msgstr "Maximální polyfonie" + +msgid "Copy Mode" +msgstr "Režim kopírování" + +msgid "Rect" +msgstr "Obdélník" + msgid "Anchor Mode" msgstr "Režim ukotvení" msgid "Ignore Rotation" msgstr "Ignorovat otočení" +msgid "Process Callback" +msgstr "Zpětné volání pro zpracování" + msgid "Left" msgstr "Vlevo" @@ -2174,11 +4938,74 @@ msgstr "Horní" msgid "Right" msgstr "Vpravo" +msgid "Bottom" +msgstr "Spodní" + msgid "Smoothed" msgstr "Vyhlazený" +msgid "Vertical Enabled" +msgstr "Povolit vertikálně" + +msgid "Left Margin" +msgstr "Levý okraj" + +msgid "Top Margin" +msgstr "Horní okraj" + +msgid "Right Margin" +msgstr "Pravý okraj" + +msgid "Bottom Margin" +msgstr "Spodní okraj" + +msgid "Draw Screen" +msgstr "Kreslit obrazovku" + +msgid "Tweaks" +msgstr "Vychytávky" + +msgid "Emitting" +msgstr "Vysílá" + +msgid "Lifetime" +msgstr "Čas života" + +msgid "One Shot" +msgstr "Jednorázový" + +msgid "Preprocess" +msgstr "Předzpracování" + +msgid "Explosiveness" +msgstr "Výbušnost" + +msgid "Randomness" +msgstr "Nahodilost" + +msgid "Use Fixed Seed" +msgstr "Použít fixní seed" + +msgid "Lifetime Randomness" +msgstr "Nahodilost času života" + +msgid "Fixed FPS" +msgstr "Fixní FPS" + +msgid "Fract Delta" +msgstr "Zlomková delta" + +msgid "Drawing" +msgstr "Kreslení" + +msgid "Local Coords" +msgstr "Místní souřadnice" + msgid "Draw Order" -msgstr "Pořadí vykreslování" +msgstr "Pořadí kreslení" + +msgid "Emission Shape" +msgstr "Emisní tvar" msgid "Shape" msgstr "Tvar" @@ -2186,77 +5013,579 @@ msgstr "Tvar" msgid "Sphere Radius" msgstr "Poloměr koule" +msgid "Rect Extents" +msgstr "Rozsahy obdélníku" + msgid "Points" msgstr "Body" +msgid "Normals" +msgstr "Normály" + msgid "Colors" msgstr "Barvy" +msgid "Particle Flags" +msgstr "Příznaky částic" + +msgid "Align Y" +msgstr "Zarovnat Y" + +msgid "Direction" +msgstr "Směr" + msgid "Spread" -msgstr "Rozšířit" +msgstr "Rozpětí" + +msgid "Gravity" +msgstr "Gravitace" + +msgid "Initial Velocity" +msgstr "Počáteční rychlost" + +msgid "Velocity Min" +msgstr "Minimální rychlost" + +msgid "Velocity Max" +msgstr "Maximální rychlost" + +msgid "Velocity Curve" +msgstr "Krivka rychlostí" + +msgid "Orbit Velocity" +msgstr "Oběhová rychlost" + +msgid "Linear Accel" +msgstr "Lineární zrychlení" msgid "Accel Min" -msgstr "Minimální akcelerace" +msgstr "Minimální zrychlení" msgid "Accel Max" -msgstr "Maximální akcelerace" +msgstr "Maximální zrychlení" + +msgid "Accel Curve" +msgstr "Křivka zrychlení" + +msgid "Radial Accel" +msgstr "Radiální zrychlení" + +msgid "Tangential Accel" +msgstr "Tečnové zrychlení" msgid "Damping" msgstr "Tlumení" +msgid "Damping Min" +msgstr "Minimální tlumení" + +msgid "Damping Max" +msgstr "Maximální tlumení" + +msgid "Damping Curve" +msgstr "Křivka tlumení" + msgid "Angle" msgstr "Úhel" +msgid "Angle Min" +msgstr "Minimální úhel" + +msgid "Angle Max" +msgstr "Maximální úhel" + +msgid "Angle Curve" +msgstr "Křivka úhlů" + +msgid "Scale Amount Min" +msgstr "Minimální velikost měřítka" + +msgid "Scale Amount Max" +msgstr "Maximální velikost měřítka" + +msgid "Scale Amount Curve" +msgstr "Křivka velikostí měřítka" + +msgid "Split Scale" +msgstr "Rozdělit měřítko" + +msgid "Scale Curve X" +msgstr "Křivka měřítka podél X" + +msgid "Scale Curve Y" +msgstr "Křivka měřítka podél Y" + +msgid "Color Initial Ramp" +msgstr "Gradient počátečních barev" + +msgid "Hue Variation" +msgstr "Variace odstínu" + +msgid "Variation Min" +msgstr "Minimální variace" + +msgid "Variation Max" +msgstr "Maximální variace" + +msgid "Variation Curve" +msgstr "Křivka variací" + +msgid "Speed Min" +msgstr "Minimální rychlost" + +msgid "Speed Max" +msgstr "Maximální rychlost" + +msgid "Speed Curve" +msgstr "Křivka rychlostí" + +msgid "Offset Min" +msgstr "Minimální offset" + +msgid "Offset Max" +msgstr "Maximální offset" + +msgid "Offset Curve" +msgstr "Křivka offsetů" + +msgid "Amount Ratio" +msgstr "Poměr množství" + +msgid "Sub Emitter" +msgstr "Dílčí emitor" + +msgid "Interp to End" +msgstr "Interpolovat ke konci" + +msgid "Interpolate" +msgstr "Interpolovat" + +msgid "Base Size" +msgstr "Základní velikost" + +msgid "Visibility Rect" +msgstr "Obdélník viditelnosti" + +msgid "Trails" +msgstr "Stopy" + +msgid "Sections" +msgstr "Sekce" + +msgid "Section Subdivisions" +msgstr "Členění sekce" + +msgid "Process Material" +msgstr "Procesní materiál" + +msgid "Editor Only" +msgstr "Pouze pro editor" + msgid "Energy" msgstr "Energie" +msgid "Blend Mode" +msgstr "Režim prolnutí" + msgid "Z Min" -msgstr "Z Min" +msgstr "Miniální Z" msgid "Z Max" -msgstr "Z Max" +msgstr "Maximální Z" + +msgid "Layer Min" +msgstr "Minimální vrstva" + +msgid "Layer Max" +msgstr "Maximální vrstva" + +msgid "Item Cull Mask" +msgstr "Maska vyřazekí předmětů" + +msgid "Shadow" +msgstr "Stín" + +msgid "Filter Smooth" +msgstr "Filtr uhlazení" + +msgid "Texture Scale" +msgstr "Měřítko textury" + +msgid "Closed" +msgstr "Zavřený" + +msgid "Cull Mode" +msgstr "Režim vyřazení" + +msgid "SDF Collision" +msgstr "SDF kolize" + +msgid "Occluder Light Mask" +msgstr "Světelná maska stínidla" msgid "Joint Mode" msgstr "Mód bodu" +msgid "Antialiased" +msgstr "Vyhlazený" + msgid "Multimesh" msgstr "Multimesh" +msgid "Pathfinding" +msgstr "Hledání cest" + +msgid "Path Desired Distance" +msgstr "Požadovaná vzdálenost cesty" + +msgid "Target Desired Distance" +msgstr "Požadovaná vzdálenost cíle" + +msgid "Path Max Distance" +msgstr "Maximální vzdálenost cesty" + +msgid "Navigation Layers" +msgstr "Navigační vrstvy" + +msgid "Pathfinding Algorithm" +msgstr "Algoritmus pro hledání cest" + +msgid "Path Postprocessing" +msgstr "Následné zpracování cesty" + +msgid "Path Metadata Flags" +msgstr "Příznaky metadat cesty" + +msgid "Simplify Path" +msgstr "Zjednodušit cestu" + +msgid "Simplify Epsilon" +msgstr "Epsilon zjednodušení" + +msgid "Avoidance" +msgstr "Vyhýbání" + +msgid "Avoidance Enabled" +msgstr "Vyhýbání povoleno" + +msgid "Neighbor Distance" +msgstr "Vzdálenost sousedů" + +msgid "Max Neighbors" +msgstr "Maximum sousedů" + +msgid "Time Horizon Agents" +msgstr "Časový horizont pro aktéry" + +msgid "Time Horizon Obstacles" +msgstr "Časový horizont pro překážky" + +msgid "Max Speed" +msgstr "Maximální rychlost" + +msgid "Avoidance Layers" +msgstr "Vrstvy vyhýbání" + +msgid "Avoidance Mask" +msgstr "Maska vyhýbání" + +msgid "Avoidance Priority" +msgstr "Priorita vyhýbání" + +msgid "Use Custom" +msgstr "Použít vlastní" + +msgid "Path Custom Color" +msgstr "Vlastní barva cesty" + +msgid "Path Custom Point Size" +msgstr "Vlastní velikost bodů cesty" + +msgid "Path Custom Line Width" +msgstr "Vlastní šířka linky cesty" + +msgid "Bidirectional" +msgstr "Obousměrný" + +msgid "Start Position" +msgstr "Počáteční pozice" + +msgid "End Position" +msgstr "Koncová pozice" + +msgid "Enter Cost" +msgstr "Cena vstupu" + +msgid "Travel Cost" +msgstr "Cena cesty" + +msgid "Vertices" +msgstr "Vrcholy" + +msgid "NavigationMesh" +msgstr "Navigační síť" + +msgid "Affect Navigation Mesh" +msgstr "Ovlivnit navigační síť" + +msgid "Carve Navigation Mesh" +msgstr "Vykrojit navigační síť" + +msgid "Navigation Polygon" +msgstr "Navigační polygon" + +msgid "Use Edge Connections" +msgstr "Použít spojení hran" + +msgid "Scroll Offset" +msgstr "Offset posouvání" + +msgid "Begin" +msgstr "Počátek" + msgid "End" msgstr "End" +msgid "Screen Offset" +msgstr "Offset obrazovky" + +msgid "Scroll" +msgstr "Posouvání" + +msgid "Motion" +msgstr "Pohyb" + +msgid "Mirroring" +msgstr "Zrcadlení" + +msgid "Curve" +msgstr "Křivka" + +msgid "Progress" +msgstr "Pokrok" + +msgid "Progress Ratio" +msgstr "Poměr pokroku" + +msgid "H Offset" +msgstr "Horizontální offset" + +msgid "V Offset" +msgstr "Vertikální offset" + +msgid "Rotates" +msgstr "Otáčí se" + +msgid "Cubic Interp" +msgstr "Kubická interpolace" + msgid "Sync to Physics" msgstr "Synchronizace s fyzikou" msgid "Point" msgstr "Bod" +msgid "Safe Margin" +msgstr "Bezpečné rozpětí" + +msgid "Disable Mode" +msgstr "Režim deaktivace" + +msgid "Pickable" +msgstr "Vybíratelný" + +msgid "Build Mode" +msgstr "Režim sestavení" + +msgid "Disabled" +msgstr "Deaktivovaný" + +msgid "One Way Collision" +msgstr "Jednosměrné kolize" + +msgid "One Way Collision Margin" +msgstr "Rozpětí jednosměrných kolizí" + +msgid "Debug Color" +msgstr "Barva ladění" + msgid "Length" msgstr "Délka" +msgid "Rest Length" +msgstr "Délka klidu" + msgid "Stiffness" msgstr "Tuhost" +msgid "Node A" +msgstr "Uzel A" + +msgid "Node B" +msgstr "Uzel B" + +msgid "Bias" +msgstr "Preference" + +msgid "Disable Collision" +msgstr "Deaktivovat kolize" + msgid "Softness" msgstr "Měkkost" +msgid "Bone 2D Nodepath" +msgstr "Cesta k uzlu Bone 2D" + +msgid "Bone 2D Index" +msgstr "Index Bone 2D" + +msgid "Auto Configure Joint" +msgstr "Automatická konfigurace kloubu" + msgid "Simulate Physics" -msgstr "Simulovat fyzika" +msgstr "Simulovat fyziku" + +msgid "Follow Bone When Simulating" +msgstr "Slewovat kost při simulaci" + +msgid "Exclude Parent" +msgstr "Vyloučit rodiče" + +msgid "Target Position" +msgstr "Cílová pozice" + +msgid "Collide With" +msgstr "Kolidovat s" + +msgid "Areas" +msgstr "Oblasti" + +msgid "Bodies" +msgstr "Tělesa" + +msgid "Gravity Scale" +msgstr "Měřítko gravitace" + +msgid "Mass Distribution" +msgstr "Rozvržení hmotnosti" + +msgid "Center of Mass Mode" +msgstr "Režim těžiště" + +msgid "Inertia" +msgstr "Setrvačnost" + +msgid "Deactivation" +msgstr "Deaktivace" + +msgid "Sleeping" +msgstr "Spící" + +msgid "Can Sleep" +msgstr "Může spát" + +msgid "Lock Rotation" +msgstr "Uzamknout rotaci" + +msgid "Freeze" +msgstr "Zmrazit" + +msgid "Freeze Mode" +msgstr "Režim zmražení" + +msgid "Solver" +msgstr "Řešitel" + +msgid "Custom Integrator" +msgstr "Vlastní integrátor" + +msgid "Continuous CD" +msgstr "Kontinuální detekce kolizí" + +msgid "Contact Monitor" +msgstr "Monitor kontaktů" + +msgid "Max Contacts Reported" +msgstr "Maximum hlášených kontaktů" msgid "Linear" msgstr "Lineární" +msgid "Damp Mode" +msgstr "Režim tlumení" + +msgid "Damp" +msgstr "Tlumení" + +msgid "Angular" +msgstr "Úhlové" + +msgid "Constant Forces" +msgstr "Konstantní síly" + +msgctxt "Physics" +msgid "Force" +msgstr "Síla" + +msgid "Torque" +msgstr "Točivý moment" + +msgid "Margin" +msgstr "Rozpětí" + msgid "UV" msgstr "UV" +msgid "Remote Path" +msgstr "Cesta ke vzdálenému uzlu" + +msgid "Use Global Coordinates" +msgstr "Použít globální souřadnice" + msgid "Update" msgstr "Aktualizovat" +msgid "Auto Calculate Length and Angle" +msgstr "Automaticky spočítat délku a úhel" + msgid "Editor Settings" msgstr "Nastavení editoru" +msgid "Show Bone Gizmo" +msgstr "Zobrazit gizmo kosti" + +msgid "Rest" +msgstr "Klid" + +msgid "Modification Stack" +msgstr "Zásobník modifikací" + +msgid "Hframes" +msgstr "Horizontální snímky" + +msgid "Vframes" +msgstr "Vertikální snímky" + msgid "Frame Coords" -msgstr "Frame Coords" +msgstr "Souřadnice snímku" + +msgid "Filter Clip Enabled" +msgstr "Ořez filtrem povolen" + +msgid "Tile Set" +msgstr "Sada dlaždic" + +msgid "Rendering Quadrant Size" +msgstr "Velukost vykreslovacího kvadrantu" + +msgid "Collision Animatable" +msgstr "Kolize pohyblivé" + +msgid "Collision Visibility Mode" +msgstr "Režim viditelnosti kolizí" + +msgid "Navigation Visibility Mode" +msgstr "Režim viditelnosti navigace" msgid "Bitmask" msgstr "Bitmaska" @@ -2264,27 +5593,337 @@ msgstr "Bitmaska" msgid "Degrees" msgstr "Stupně" +msgid "Tracking" +msgstr "Sledování" + msgid "Bone Name" msgstr "Název kosti" +msgid "Bone Idx" +msgstr "Index kosti" + +msgid "Override Pose" +msgstr "Přepsat pózu" + +msgid "Cull Mask" +msgstr "Maska vyřazení" + +msgid "Doppler Tracking" +msgstr "Dopplerovské sledování" + msgid "Visibility AABB" msgstr "Přepnout viditelnost AABB" +msgid "Box Extents" +msgstr "Rozsahy kvádru" + +msgid "Ring Axis" +msgstr "Osa prstence" + +msgid "Ring Height" +msgstr "Výška prstence" + +msgid "Ring Radius" +msgstr "Poloměr prstence" + +msgid "Ring Inner Radius" +msgstr "Vnitřní poloměr prstence" + +msgid "Ring Cone Angle" +msgstr "Úhel kuželu prstence" + +msgid "Rotate Y" +msgstr "Otočit Y" + +msgid "Disable Z" +msgstr "Zakázat Z" + +msgid "Flatness" +msgstr "Plochost" + +msgid "Scale Curve Z" +msgstr "Křivka měřítka podél Z" + +msgid "Albedo" +msgstr "Albedo" + +msgctxt "Geometry" +msgid "Normal" +msgstr "Normála" + +msgid "Orm" +msgstr "ORM" + +msgid "Emission" +msgstr "Emise" + +msgid "Parameters" +msgstr "Parametry" + +msgid "Emission Energy" +msgstr "Energie emise" + +msgid "Modulate" +msgstr "Modulovat" + +msgid "Albedo Mix" +msgstr "Směs albedo" + +msgid "Normal Fade" +msgstr "Normálové blednutí" + +msgid "Vertical Fade" +msgstr "Vertikální blednutí" + +msgid "Upper Fade" +msgstr "Horní blednutí" + +msgid "Lower Fade" +msgstr "Spodní blednutí" + +msgid "Distance Fade" +msgstr "Blednutí vzdáleností" + +msgid "Transform Align" +msgstr "Zarovnání transformace" + +msgid "Draw Passes" +msgstr "Průchody kreslení" + +msgid "Passes" +msgstr "Průchody" + +msgid "Thickness" +msgstr "Tloušťka" + +msgid "Bake Mask" +msgstr "Vypalovací maska" + +msgid "Update Mode" +msgstr "Režim aktualizace" + +msgid "Follow Camera Enabled" +msgstr "Sledování kamery povoleno" + +msgid "Heightfield Mask" +msgstr "Maska výškové mapy" + +msgid "Directionality" +msgstr "Směrovost" + +msgid "Visibility Range" +msgstr "Rozsah viditelnosti" + +msgid "Begin Margin" +msgstr "Počátek rozpětí" + +msgid "End Margin" +msgstr "Konec rozpětí" + +msgid "Fade Mode" +msgstr "Režim blednutí" + +msgid "Pixel Size" +msgstr "Velikost pixelu" + +msgid "Flags" +msgstr "Příznaky" + +msgid "Billboard" +msgstr "Billboard" + +msgid "Shaded" +msgstr "Stíněný" + +msgid "Double Sided" +msgstr "Dvoustranný" + +msgid "No Depth Test" +msgstr "Žádný test hloubky" + +msgid "Fixed Size" +msgstr "Fixní velikost" + +msgid "Alpha Cut" +msgstr "Alfa řez" + +msgid "Alpha Scissor Threshold" +msgstr "Práh alfa nůžek" + +msgid "Alpha Hash Scale" +msgstr "Měřítko alfa hashe" + +msgid "Alpha Antialiasing Mode" +msgstr "Režim alfa vyhlazování" + +msgid "Alpha Antialiasing Edge" +msgstr "Hrana alfa vyzhlazování" + +msgid "Texture Filter" +msgstr "Filtr textury" + +msgid "Render Priority" +msgstr "Priorita vykreslování" + msgid "Text" msgstr "Text" msgid "Font Size" msgstr "Velikost fontu" +msgid "Horizontal Alignment" +msgstr "Horizontální zarovnání" + +msgid "Vertical Alignment" +msgstr "Vertikální zarovnání" + msgid "Uppercase" msgstr "Velká písmena" +msgid "Justification Flags" +msgstr "Příznaky zarovnání" + +msgid "BiDi" +msgstr "Obousměrný (BiDi)" + +msgid "Text Direction" +msgstr "Směr textu" + +msgid "Structured Text BiDi Override" +msgstr "Přepis obousměřnosti strukturovaného textu" + +msgid "Structured Text BiDi Override Options" +msgstr "Možnosti přepisu obousměrnosti strukturovaného textu" + +msgid "Intensity Lumens" +msgstr "Intenzita lumeny" + +msgid "Intensity Lux" +msgstr "Intenzita luxy" + +msgid "Temperature" +msgstr "Teplota" + +msgid "Indirect Energy" +msgstr "Nepřímá energie" + +msgid "Volumetric Fog Energy" +msgstr "Energie volumetrické mlhy" + +msgid "Projector" +msgstr "Projektor" + +msgid "Angular Distance" +msgstr "Úhlová vzdálenost" + +msgid "Negative" +msgstr "Negativní" + +msgid "Specular" +msgstr "Zrcadlící" + +msgid "Bake Mode" +msgstr "Režim vypálení" + +msgid "Normal Bias" +msgstr "Preference normály" + +msgid "Reverse Cull Face" +msgstr "Obrátit vyřazení stěneami" + +msgid "Transmittance Bias" +msgstr "Preference propustnosti" + +msgid "Opacity" +msgstr "Neprůhlednost" + +msgid "Blur" +msgstr "Rozmazání" + +msgid "Caster Mask" +msgstr "Mask vrhačů" + +msgid "Directional Shadow" +msgstr "Směrový stín" + +msgid "Split 1" +msgstr "Rozdělení 1" + +msgid "Split 2" +msgstr "Rozdělení 2" + +msgid "Split 3" +msgstr "Rozdělení 3" + +msgid "Blend Splits" +msgstr "Rozdělení prolnutí" + +msgid "Fade Start" +msgstr "Začátek blednutí" + +msgid "Pancake Size" +msgstr "Lívancová velikost" + +msgid "Sky Mode" +msgstr "Režim oblohy" + +msgid "Omni" +msgstr "Všesměr" + +msgid "Shadow Mode" +msgstr "Režim stínů" + +msgid "Spot" +msgstr "Bod" + +msgid "Angle Attenuation" +msgstr "Úhlový útlum" + +msgid "Lightmap Textures" +msgstr "Textury světelné mapy" + +msgid "Shadowmask Textures" +msgstr "Textury stínové masky" + msgid "Quality" msgstr "Kvalita" +msgid "Supersampling" +msgstr "Supervzorkování" + +msgid "Supersampling Factor" +msgstr "Faktor supervzorkování" + +msgid "Bounces" +msgstr "Odrazy" + +msgid "Bounce Indirect Energy" +msgstr "Nepřímá energie odrazů" + msgid "Directional" msgstr "Směrové" +msgid "Shadowmask Mode" +msgstr "Režim stínové masky" + +msgid "Use Texture for Bounces" +msgstr "Použít texturu pro odrazy" + +msgid "Interior" +msgstr "Vnitřní" + +msgid "Use Denoiser" +msgstr "Použít odstraňovač šumu" + +msgid "Denoiser Strength" +msgstr "Síla odstraňovače šumu" + +msgid "Denoiser Range" +msgstr "Rozsah odstraňovače šumu" + +msgid "Texel Scale" +msgstr "Měřítko texelů" + msgid "Max Texture Size" msgstr "Maximální velikost textury" @@ -2300,6 +5939,90 @@ msgstr "Vlastní energie" msgid "Camera Attributes" msgstr "Vlastnosti kamery" +msgid "Gen Probes" +msgstr "Generovat sondy" + +msgid "Subdiv" +msgstr "Členění" + +msgid "Light Data" +msgstr "Světelná data" + +msgid "Target Node" +msgstr "Cílový uzel" + +msgid "Forward Axis" +msgstr "Dopředná osa" + +msgid "Primary Rotation Axis" +msgstr "Osa primární rotace" + +msgid "Use Secondary Rotation" +msgstr "Použít sekundární rotaci" + +msgid "Origin Settings" +msgstr "Nastavení počátku" + +msgid "From" +msgstr "Z" + +msgid "External Node" +msgstr "Externí uzel" + +msgid "Time Based Interpolation" +msgstr "Interpolace založená na čase" + +msgid "Transition Type" +msgstr "Typ přechodu" + +msgid "Ease Type" +msgstr "Typ uhlazení" + +msgid "Angle Limitation" +msgstr "Omezení úhlu" + +msgid "Use Angle Limitation" +msgstr "Použít omezení úhlu" + +msgid "Symmetry Limitation" +msgstr "Symetrické omezení" + +msgid "Primary Limit Angle" +msgstr "Primární úhlový limit" + +msgid "Primary Damp Threshold" +msgstr "Primární práh tlumení" + +msgid "Primary Positive Limit Angle" +msgstr "Primární pozitivní úhlový limit" + +msgid "Primary Positive Damp Threshold" +msgstr "Primární pozitivní práh tlumení" + +msgid "Primary Negative Limit Angle" +msgstr "Primární negativní úhlový limit" + +msgid "Primary Negative Damp Threshold" +msgstr "Primární negativní práh tlumení" + +msgid "Secondary Limit Angle" +msgstr "Sekundární úhlový limit" + +msgid "Secondary Damp Threshold" +msgstr "Sekundární práh tlumení" + +msgid "Secondary Positive Limit Angle" +msgstr "Sekundární pozitivní úhlový limit" + +msgid "Secondary Positive Damp Threshold" +msgstr "Sekundární pozitivní práh tlumení" + +msgid "Secondary Negative Limit Angle" +msgstr "Sekundární negativní úhlový limit" + +msgid "Secondary Negative Damp Threshold" +msgstr "Sekundární negativní práh tlumení" + msgid "Use 3D Avoidance" msgstr "Použít 3D vyhýbání" @@ -2321,15 +6044,36 @@ msgstr "Viditelnost" msgid "Visible" msgstr "Viditelný" +msgid "Bake" +msgstr "Vypálit" + msgid "Rotation Mode" msgstr "Režim otáčení" +msgid "Use Model Front" +msgstr "Použít předek modelu" + +msgid "Tilt Enabled" +msgstr "Náklon povolen" + msgid "Wind" msgstr "Vítr" msgid "Force Magnitude" msgstr "Velikost síly" +msgid "Ray Pickable" +msgstr "Vybíratelný paprskem" + +msgid "Capture on Drag" +msgstr "Zachytit při táhnutí" + +msgid "Debug Fill" +msgstr "Výplň ladění" + +msgid "Relaxation" +msgstr "Uvolnění" + msgid "Linear Limit" msgstr "Lineární limit" @@ -2366,9 +6110,63 @@ msgstr "Parametry" msgid "Max Impulse" msgstr "Maximální impuls" +msgid "Solver Priority" +msgstr "Priorita řešitele" + +msgid "Exclude Nodes From Collision" +msgstr "Vyloučit uzly z kolizí" + +msgid "Debug Shape" +msgstr "Tvar ladění" + +msgid "Per-Wheel Motion" +msgstr "Pohyb na kolo" + +msgid "Engine Force" +msgstr "Síla motoru" + +msgid "Brake" +msgstr "Brzda" + +msgid "Steering" +msgstr "Řízení" + +msgid "VehicleBody3D Motion" +msgstr "Pohyb VehicleBody3D" + +msgid "Use as Traction" +msgstr "Použít jako trakci" + +msgid "Use as Steering" +msgstr "Použít jako řízení" + +msgid "Wheel" +msgstr "Kolo" + +msgid "Roll Influence" +msgstr "Vliv válení" + +msgid "Friction Slip" +msgstr "Skluz tření" + +msgid "Suspension" +msgstr "Odpružení" + msgid "Travel" msgstr "Cestovat" +msgid "Max Force" +msgstr "Maximální síla" + +msgid "Mesh LOD Threshold" +msgstr "Práh LOD sítě" + +msgid "Profile" +msgstr "Profil" + +msgid "Animate Physical Bones" +msgstr "Animovat fyzické kosti" + msgid "Root Bone" msgstr "Kořenová kost" @@ -2378,38 +6176,329 @@ msgstr "Špičková kost" msgid "Target" msgstr "Cíl" +msgid "Active" +msgstr "Aktivní" + +msgid "Influence" +msgstr "Vliv" + +msgid "Pinned Points" +msgstr "Připnuté body" + +msgid "Attachments" +msgstr "Přípojky" + +msgid "Point Index" +msgstr "Index bodu" + +msgid "Spatial Attachment Path" +msgstr "Cesta k prostorové přípojce" + +msgid "Parent Collision Ignore" +msgstr "Rodič ignorovaný kolizemi" + +msgid "Simulation Precision" +msgstr "Přesnost simulace" + +msgid "Total Mass" +msgstr "Celková hmotnost" + +msgid "Linear Stiffness" +msgstr "Lineární tuhost" + +msgid "Pressure Coefficient" +msgstr "Koeficient tlaku" + +msgid "Damping Coefficient" +msgstr "Koeficient tlumení" + +msgid "Drag Coefficient" +msgstr "Koeficient odporu vzduchu" + msgid "Position Offset" msgstr "Offset pozice" +msgid "Rotation Offset" +msgstr "Offset rotace" + msgid "Track Physics Step" -msgstr "Sledovat fyzikální snímek" +msgstr "Sledovat fyzikální krok" + +msgid "Sorting" +msgstr "Řazení" msgid "Use AABB Center" msgstr "Použít střed AABB" +msgid "Geometry" +msgstr "Geometrie" + +msgid "Material Override" +msgstr "Přepis materiálu" + +msgid "Material Overlay" +msgstr "Překryv materiálu" + +msgid "Transparency" +msgstr "Průhlednost" + +msgid "Extra Cull Margin" +msgstr "Dodatečné rozpětí vyřazování" + msgid "Custom AABB" msgstr "Vlastní AABB" +msgid "LOD Bias" +msgstr "Preference LOD" + +msgid "Ignore Occlusion Culling" +msgstr "Ignorovat vyřazování zakrytím" + +msgid "Global Illumination" +msgstr "Globální osvětlení" + +msgid "Lightmap Texel Scale" +msgstr "Měřítko texelů světelné mapy" + +msgid "Lightmap Scale" +msgstr "Měřítko světelné mapy" + +msgid "Dynamic Range" +msgstr "Dynamický rozsah" + +msgid "Propagation" +msgstr "Propagace" + +msgid "Use Two Bounces" +msgstr "Použít dva odrazy" + +msgid "Body Tracker" +msgstr "Sledovač těla" + +msgid "Face Tracker" +msgstr "Sledovač obličeje" + +msgid "Hand Tracker" +msgstr "Sledovač rukou" + +msgid "Tracker" +msgstr "Sledovač" + +msgid "Pose" +msgstr "Póza" + +msgid "Show When Tracked" +msgstr "Zobrazit při sledování" + +msgid "World Scale" +msgstr "Měřítko světa" + +msgid "Play Mode" +msgstr "Režim přehrávání" + +msgid "Advance on Start" +msgstr "Postoupit při startu" + +msgid "Use Custom Timeline" +msgstr "Použít vlastní časovou osu" + +msgid "Timeline Length" +msgstr "Délka časové osy" + +msgid "Stretch Time Scale" +msgstr "Roztáhnout časovou osu" + msgid "Sync" msgstr "Synchronizovat" +msgid "Mix Mode" +msgstr "Režim směšování" + +msgid "Fadein Time" +msgstr "Čas odhalení" + +msgid "Fadein Curve" +msgstr "Křivka odhalení" + +msgid "Fadeout Time" +msgstr "Čas vyblednutí" + +msgid "Fadeout Curve" +msgstr "Křivka vyblednutí" + +msgid "Break Loop at End" +msgstr "Přerušit smyčku na konci" + +msgid "Auto Restart" +msgstr "Automatický restart" + +msgid "Autorestart" +msgstr "Automaticky restartovat" + +msgid "Delay" +msgstr "Zpoždění" + +msgid "Random Delay" +msgstr "Náhodné zpodění" + +msgid "Explicit Elapse" +msgstr "Explicitní uběhnutí" + +msgid "Xfade Time" +msgstr "Čas přechodu" + +msgid "Xfade Curve" +msgstr "Křivka přechodu" + +msgid "Allow Transition to Self" +msgstr "Povolit přechod na sama sebe" + msgid "Input Count" msgstr "Počet vstupů" msgid "Request" msgstr "Žádost" +msgid "Transition Request" +msgstr "Požadavek přechodu" + +msgid "Libraries" +msgstr "Knihovny" + +msgid "Deterministic" +msgstr "Deterministické" + +msgid "Reset on Save" +msgstr "Resetovat při uložení" + +msgid "Root Node" +msgstr "Kořenový uzel" + +msgid "Root Motion" +msgstr "Pohyb kořenového uzlu" + +msgid "Track" +msgstr "Stopa" + +msgid "Local" +msgstr "Místní" + +msgid "Callback Mode" +msgstr "Režim zpětného volání" + +msgid "Method" +msgstr "Metoda" + +msgid "Discrete" +msgstr "Diskrétní" + msgid "Reset" msgstr "Resetovat" +msgid "Condition" +msgstr "Podmínka" + +msgid "Expression" +msgstr "Výraz" + +msgid "Auto Capture Transition Type" +msgstr "Automaticky zachytit typ přechodu" + +msgid "Button Pressed" +msgstr "Tlačítko stisknuto" + +msgid "Action Mode" +msgstr "Režim akce" + +msgid "Keep Pressed Outside" +msgstr "Držet stisknuté mimo" + msgid "Button Group" msgstr "Skupina tlačítek" +msgid "Shortcut Feedback" +msgstr "Zpětná vazba zkratky" + +msgid "Shortcut in Tooltip" +msgstr "Zkratka v nápovědě" + +msgid "Button Shortcut Feedback Highlight Time" +msgstr "Čas zvýraznění zpětná vazby tlačítka na zkratku" + +msgid "Allow Unpress" +msgstr "Povolit odstisknutí" + +msgid "Text Overrun Behavior" +msgstr "Chování při přetečení textu" + +msgid "Clip Text" +msgstr "Oříznout text" + +msgid "Code Completion" +msgstr "Doplňování kódu" + +msgid "Indentation" +msgstr "Odsazení" + +msgid "Auto Brace Completion" +msgstr "Automatické doplňování závorek" + +msgid "Edit Alpha" +msgstr "Upravit průhlednost (alpha)" + +msgid "Color Mode" +msgstr "Režim barvy" + +msgid "Deferred Mode" +msgstr "Odložený režim" + +msgid "Picker Shape" +msgstr "Tvar pole výběru" + +msgid "Can Add Swatches" +msgstr "Lze přidat vzorníky" + +msgid "Customization" +msgstr "Přizpůsobení" + +msgid "Sampler Visible" +msgstr "Vzorkovač viditelný" + +msgid "Color Modes Visible" +msgstr "Režimy barvy viditelné" + +msgid "Sliders Visible" +msgstr "Posuvníky viditelné" + +msgid "Hex Visible" +msgstr "Hex viditelný" + +msgid "Presets Visible" +msgstr "Profily viditelné" + +msgid "Theme Overrides" +msgstr "Přepisy motivu" + +msgid "Constants" +msgstr "Konstanty" + +msgid "Font Sizes" +msgstr "Velikosti fontu" + +msgid "Styles" +msgstr "Styly" + +msgid "Clip Contents" +msgstr "Oříznout obsah" + +msgid "Custom Minimum Size" +msgstr "Vlastní minimální velikost" + msgid "Layout Direction" -msgstr "Směr rozložení" +msgstr "Směr rozvržení" msgid "Layout Mode" -msgstr "Režim rozložení" +msgstr "Režim rozvržení" msgid "Anchors Preset" msgstr "Profil ukotvení" @@ -2423,15 +6512,42 @@ msgstr "Offsety ukotvení" msgid "Grow Direction" msgstr "Směr růstu" +msgid "Pivot Offset" +msgstr "Offset pivotu" + +msgid "Container Sizing" +msgstr "Velikost kontejneru" + msgid "Stretch Ratio" msgstr "Poměr roztažení" msgid "Localization" msgstr "Lokalizace" +msgid "Localize Numeral System" +msgstr "Lokalizovat systém číslic" + +msgid "Tooltip" +msgstr "Nápověda" + +msgid "Auto Translate Mode" +msgstr "Režim automatického překladu" + msgid "Focus" msgstr "Zaměření" +msgid "Neighbor Left" +msgstr "Levý soused" + +msgid "Neighbor Top" +msgstr "Horní soused" + +msgid "Neighbor Right" +msgstr "Pravý soused" + +msgid "Neighbor Bottom" +msgstr "Spodní soused" + msgid "Next" msgstr "Další" @@ -2441,9 +6557,18 @@ msgstr "Předchozí" msgid "Mouse" msgstr "Myš" +msgid "Force Pass Scroll Events" +msgstr "Nucené předávání událostí posouvání" + msgid "Default Cursor Shape" msgstr "Výchozí tvar kurzoru" +msgid "Shortcut Context" +msgstr "Kontext zkratky" + +msgid "Type Variation" +msgstr "Variace typu" + msgid "OK Button Text" msgstr "Text tlačítka OK" @@ -2468,12 +6593,66 @@ msgstr "Použít nativní dialog" msgid "Show Grid" msgstr "Zobrazit mřížku" +msgid "Snapping Enabled" +msgstr "Přichytávání povoleno" + +msgid "Snapping Distance" +msgstr "Vzdálenost přichytávání" + +msgid "Panning Scheme" +msgstr "Schéma posuvu" + +msgid "Right Disconnects" +msgstr "Odpojení zprava" + +msgid "Connection Lines" +msgstr "Spojovací linky" + msgid "Curvature" msgstr "Zakřivení" +msgid "Connections" +msgstr "Spojení" + +msgid "Zoom Min" +msgstr "Minimální přiblížení" + +msgid "Zoom Max" +msgstr "Maximální přiblížení" + +msgid "Zoom Step" +msgstr "Krok přiblížení" + +msgid "Toolbar Menu" +msgstr "Nabídka panelu nástrojů" + msgid "Show Menu" msgstr "Zobrazit nabídku" +msgid "Show Zoom Label" +msgstr "Zobrazit štítek přiblížení" + +msgid "Show Zoom Buttons" +msgstr "Zobrazit tlačítka přiblížení" + +msgid "Show Grid Buttons" +msgstr "Zobrazit tlačítka mřížky" + +msgid "Show Minimap Button" +msgstr "Zobrazit tlačítka minimapy" + +msgid "Show Arrange Button" +msgstr "Zobrazit tlačítko Uspořádat" + +msgid "Title" +msgstr "Nadpis" + +msgid "Tint Color Enabled" +msgstr "Povolena barva odstínu" + +msgid "Tint Color" +msgstr "Barva odstínu" + msgid "Select Mode" msgstr "Režim výběru" @@ -2495,18 +6674,111 @@ msgstr "Pevná šířka sloupce" msgid "Icon Mode" msgstr "Režim ikony" +msgid "Label Settings" +msgstr "Nastavení popisku" + +msgid "Paragraph Separator" +msgstr "Oddělovač odstavců" + +msgid "Ellipsis Char" +msgstr "Znak výpustky" + +msgid "Tab Stops" +msgstr "Zarážky tabulátoru" + +msgid "Displayed Text" +msgstr "Zobrazený text" + msgid "Lines Skipped" msgstr "Přeskočené řádky" +msgid "Max Lines Visible" +msgstr "Maximální počet viditelných řádků" + +msgid "Visible Characters" +msgstr "Viditelné znaky" + +msgid "Visible Characters Behavior" +msgstr "Chování viditelných znaků" + +msgid "Visible Ratio" +msgstr "Viditelný poměr" + msgid "Max Length" msgstr "Maximální délka" +msgid "Keep Editing on Text Submit" +msgstr "Pokračovat v upravování při potvrzení textu" + +msgid "Deselect on Focus Loss Enabled" +msgstr "Povolit zrušení výběru při ztrátě zaměření" + +msgid "Min Value" +msgstr "Minimální hodnota" + +msgid "Max Value" +msgstr "Maximální hodnota" + msgid "Step" msgstr "Krok" msgid "Page" msgstr "Strana" +msgid "Exp Edit" +msgstr "Exponenciální upravování" + +msgid "Rounded" +msgstr "Zaokrouhlené" + +msgid "Allow Greater" +msgstr "Povolit větší" + +msgid "Allow Lesser" +msgstr "Povolit menší" + +msgid "Threaded" +msgstr "Threaded" + +msgid "Follow Focus" +msgstr "Sledovat zaměření" + +msgid "Draw Focus Border" +msgstr "Kreslit okraj zaměření" + +msgid "Horizontal Custom Step" +msgstr "Horizontální vlastní krok" + +msgid "Vertical Custom Step" +msgstr "Vertikální vlastní krok" + +msgid "Horizontal Scroll Mode" +msgstr "Režim horizontálního posouvání" + +msgid "Vertical Scroll Mode" +msgstr "Režim vertikálního posouvání" + +msgid "Scroll Deadzone" +msgstr "Mrtvá zóna posouvání" + +msgid "Default Scroll Deadzone" +msgstr "Výchozí mrtvá zóna posouvání" + +msgid "Stretch Shrink" +msgstr "Roztáhnout změnšený" + +msgid "Mouse Target" +msgstr "Cíl myši" + +msgid "Clip Tabs" +msgstr "Oříznout záložky" + +msgid "Deselect Enabled" +msgstr "Povolit zrušení výběru" + +msgid "Empty Selection Clipboard Enabled" +msgstr "Prázdný výběr do schránky povolen" + msgid "Multiple" msgstr "Vynásobit" @@ -2543,6 +6815,9 @@ msgstr "Audio stopa" msgid "Paused" msgstr "Pozastavený" +msgid "Clip Children" +msgstr "Oříznout potomky" + msgid "Light Mask" msgstr "Maska světla" @@ -2564,23 +6839,47 @@ msgstr "Stáhnout soubor" msgid "Max Redirects" msgstr "Maximální počet přesměrování" +msgid "Thread Group" +msgstr "Skupina vláken" + msgid "Multiplayer Poll" msgstr "Hlasování více hráčů" msgid "Shapes" msgstr "Tvary" +msgid "Screen Space AA" +msgstr "Vyhlazování prostoru obrazovky" + +msgid "Use TAA" +msgstr "Použít časové vyhlazování" + +msgid "Use Debanding" +msgstr "Použít odpáskování" + +msgid "Use Occlusion Culling" +msgstr "Použít vyřazování zakrytím" + msgid "Snap" msgstr "Přichytit" +msgid "Snap 2D Transforms to Pixel" +msgstr "Přichytit 2D transformace k pixelům" + +msgid "Snap 2D Vertices to Pixel" +msgstr "Přichytit 2D vrcholy k pixelům" + msgid "SDF" msgstr "SDF" +msgid "Oversize" +msgstr "Nadměrná velikost" + msgid "Default Environment" msgstr "Výchozí prostředí" msgid "Enable Object Picking" -msgstr "Povolit výběr objektů" +msgstr "Povolit vybírání objektů" msgid "Menu" msgstr "Nabídka" @@ -2591,24 +6890,120 @@ msgstr "Čas čekání" msgid "Autostart" msgstr "Automatický start" +msgid "Ignore Time Scale" +msgstr "Ignorovat časové měřítko" + +msgid "Viewport Path" +msgstr "Cesta k Viewportu" + +msgid "Disable 3D" +msgstr "Deaktivovat 3D" + msgid "Use XR" msgstr "Použít XR" +msgid "Own World 3D" +msgstr "Vlastní 3D světa" + +msgid "World 3D" +msgstr "3D světa" + msgid "Transparent BG" msgstr "Průhledné pozadí" +msgid "Handle Input Locally" +msgstr "Zpracovat vstup lokálně" + +msgid "MSAA 2D" +msgstr "2D MSAA" + +msgid "MSAA 3D" +msgstr "3D MSAA" + +msgid "Debug Draw" +msgstr "Kreslit ladění" + msgid "Use HDR 2D" msgstr "Použít HDR 2D" msgid "Scaling 3D" msgstr "3D škálování" +msgid "Scaling 3D Mode" +msgstr "Režim 3D škálování" + +msgid "Scaling 3D Scale" +msgstr "Měřítko 3D škálování" + +msgid "Texture Mipmap Bias" +msgstr "Preference mipmap textur" + +msgid "Anisotropic Filtering Level" +msgstr "Úroveň anizotropického filtrování" + +msgid "FSR Sharpness" +msgstr "Ostrost FSR" + +msgid "Variable Rate Shading" +msgstr "Stínování s proměnnou rychlostí" + msgid "Canvas Items" -msgstr "Předměty Canvas" +msgstr "Předměty plátna" msgid "Audio Listener" msgstr "Posluchač zvuku" +msgid "Enable 2D" +msgstr "Povolit 2D" + +msgid "Enable 3D" +msgstr "Povolit 3D" + +msgid "Object Picking" +msgstr "Vybírání objektů" + +msgid "Object Picking Sort" +msgstr "Řazení vybírání objektů" + +msgid "Object Picking First Only" +msgstr "Vybírání pouze prvních objektů" + +msgid "Disable Input" +msgstr "Deaktivovat vstup" + +msgid "Positional Shadow Atlas" +msgstr "Polohovaný stínový atlas" + +msgid "16 Bits" +msgstr "16 bitů" + +msgid "Quad 0" +msgstr "Kvadrant 0" + +msgid "Quad 1" +msgstr "Kvadrant 1" + +msgid "Quad 2" +msgstr "Kvadrant 2" + +msgid "Quad 3" +msgstr "Kvadrant 3" + +msgid "Canvas Cull Mask" +msgstr "Maska vyřazení plátna" + +msgid "Size 2D Override" +msgstr "Přepis 2D velikosti" + +msgid "Size 2D Override Stretch" +msgstr "Přepis roztažení 2D velikosti" + +msgid "Render Target" +msgstr "Cíl vykreslování" + +msgid "Clear Mode" +msgstr "Obnovit režim" + msgid "Current Screen" msgstr "Aktuální obrazovka" @@ -2621,6 +7016,9 @@ msgstr "3D fyzika" msgid "B" msgstr "B" +msgid "Physical Bone Chain Length" +msgstr "Délka řetězu fyzických kostí" + msgid "Left Corner" msgstr "Levý roh" @@ -2639,6 +7037,12 @@ msgstr "Terény" msgid "Custom Data" msgstr "Vlastní data" +msgid "Tile Layout" +msgstr "Odstranit rozvržení" + +msgid "UV Clipping" +msgstr "Ořez UV" + msgid "Physics Layers" msgstr "Fyzické vrstvy" @@ -2660,12 +7064,24 @@ msgstr "Kost" msgid "Frames" msgstr "Snímky" +msgid "Filter Clip" +msgstr "Ořez filtrem" + msgid "Format" msgstr "Formát" msgid "Multiplier" msgstr "Více hráčů" +msgid "Far Transition" +msgstr "Daleký přechod" + +msgid "Near Transition" +msgstr "Blízký přechod" + +msgid "Particles Anim Loop" +msgstr "Smyčka animace částic" + msgid "Source" msgstr "Zdroj" @@ -2684,6 +7100,9 @@ msgstr "Shader" msgid "Operator" msgstr "Operátor" +msgid "Keep Scale" +msgstr "Zachovat měřítko" + msgid "H Frames" msgstr "H snímky" @@ -2720,24 +7139,117 @@ msgstr "Vlevo dole" msgid "File" msgstr "Soubor" +msgid "Output Port for Preview" +msgstr "Výstupní port pro náhled" + +msgid "Modes" +msgstr "Režimy" + +msgid "Input Name" +msgstr "Název vstupu" + +msgid "Parameter Name" +msgstr "Název parametru" + +msgid "Qualifier" +msgstr "Kvalifikátor" + +msgid "Autoshrink" +msgstr "Automatické zmenšení" + +msgid "Varying Name" +msgstr "Název interpolované proměnné" + +msgid "Varying Type" +msgstr "Typ interpolované proměnné" + +msgid "Op Type" +msgstr "Typ operace" + msgid "Constant" msgstr "Konstantní" +msgid "Texture Type" +msgstr "Typ textury" + +msgid "Texture Array" +msgstr "Pole textur" + +msgid "Cube Map" +msgstr "Krychlová mapa" + +msgid "Function" +msgstr "Funkce" + +msgid "Hint" +msgstr "Nápověda" + +msgid "Default Value Enabled" +msgstr "Povolena výchozí hodnota" + +msgid "Default Value" +msgstr "Výchozí hodnota" + +msgid "Enum Names" +msgstr "Názvy výčtu" + +msgid "Color Default" +msgstr "Výchozí barva" + +msgid "Texture Repeat" +msgstr "Opakování textury" + +msgid "Texture Source" +msgstr "Zdroj textury" + +msgid "Billboard Type" +msgstr "Typ billboardu" + +msgid "Mode 2D" +msgstr "2D režim" + +msgid "Use All Surfaces" +msgstr "Použít všechny povrchy" + +msgid "Surface Index" +msgstr "Index povrchu" + msgid "Degrees Mode" msgstr "Režim stupňů" msgid "Underline Spacing" msgstr "Mezera podtržení" +msgid "Caret Width" +msgstr "Šířka kurzoru" + msgid "Clear" msgstr "Promazat" +msgid "Completion Color BG" +msgstr "Barva pozadí doplnění" + +msgid "Completion Lines" +msgstr "Řádky doplnění" + +msgid "Completion Max Width" +msgstr "Maximální šířka doplnění" + +msgid "Completion Scroll Width" +msgstr "Šířka posuvníku doplnění" + msgid "Close" msgstr "Zavřít" msgid "Reload" msgstr "Znovu načíst" +msgid "Toggle Hidden" +msgstr "Přepnout skryté" + +msgid "Toggle Filename Filter" +msgstr "Přepnout filtr názvů souborů" + msgid "Submenu" msgstr "Podmenu" @@ -2753,6 +7265,18 @@ msgstr "Přidat profil" msgid "Node" msgstr "Uzel" +msgid "Default Font Subpixel Positioning" +msgstr "Výchozí subpixelové polohování fontů" + +msgid "LCD Subpixel Layout" +msgstr "Odstranit rozvržení" + +msgid "Soft Clip dB" +msgstr "dB měkkého oříznutí" + +msgid "Soft Clip Ratio" +msgstr "Poměr měkkého oříznutí" + msgid "Msec" msgstr "Msek" @@ -2783,6 +7307,18 @@ msgstr "Zakázat V-Sync" msgid "Default Cell Size" msgstr "Výchozí velikost buňky" +msgid "Avoidance Use Multiple Threads" +msgstr "Použít více vláken pro vyhýbání" + +msgid "Avoidance Use High Priority Threads" +msgstr "Použít vysokoprioritní vlákna pro vyhýbání" + +msgid "Baking Use Multiple Threads" +msgstr "Použít více vláken pro vypalování" + +msgid "Baking Use High Priority Threads" +msgstr "Použít vysokoprioritní vlákna pro vypalování" + msgid "Physics Engine" msgstr "Fyzikální engine" @@ -2804,15 +7340,30 @@ msgstr "ID" msgid "Constant ID" msgstr "Konstantní ID" +msgid "Render Loop Enabled" +msgstr "Smyčka vykreslování povolena" + +msgid "Use Physical Light Units" +msgstr "Použít fyzikální jednotky světla" + msgid "Reflections" msgstr "Odrazy" msgid "Overrides" msgstr "Přepisuje" +msgid "Screen Space Roughness Limiter" +msgstr "Omezovač hrubosti prostoru obrazovky" + +msgid "Occlusion Rays per Thread" +msgstr "Počet stínících paprsků na vlákno" + msgid "Upscale Mode" msgstr "Režim Škálování" +msgid "Screen Space Reflection" +msgstr "Odrazivost prostoru obrazovky" + msgid "Update Speed" msgstr "Aktualizovat Rychlost" @@ -2822,11 +7373,23 @@ msgstr "Velikost Texelu" msgid "Frames to Converge" msgstr "Snímky ke sblížení" +msgid "Threaded Cull Minimum Instances" +msgstr "Minimální počet instancí pro threaded vyřazování" + msgid "OpenGL" msgstr "OpenGL" msgid "Shaders" msgstr "Shadery" +msgid "Has Tracking Data" +msgstr "Má sledovací data" + +msgid "Hand Tracking Source" +msgstr "Zdroj sledování rukou" + msgid "AR" msgstr "AR" + +msgid "Tracking Confidence" +msgstr "Spolehlivost sledování" diff --git a/engine/editor/translations/properties/de.po b/engine/editor/translations/properties/de.po index d760ad13..002358f4 100644 --- a/engine/editor/translations/properties/de.po +++ b/engine/editor/translations/properties/de.po @@ -876,9 +876,6 @@ msgstr "Anfrage-Zeitüberschreitung" msgid "Sync Breakpoints" msgstr "Sync-Haltepunkte" -msgid "Default Feature Profile" -msgstr "Default-Feature-Profil" - msgid "Label" msgstr "Label" @@ -2680,9 +2677,6 @@ msgstr "Plugin-Name" msgid "Autoload on Startup" msgstr "Autoload beim Start" -msgid "Use Favorites Root Selection" -msgstr "Lesezeichen-Root-Auswahl verwenden" - msgid "Flush stdout on Print" msgstr "stdout bei Print flushen" @@ -2902,15 +2896,15 @@ msgstr "Versatz des Tooltips" msgid "Show Image" msgstr "Bild anzeigen" -msgid "Image" -msgstr "Bild" - msgid "Fullsize" msgstr "Orginalgröße" msgid "Use Filter" msgstr "Filter verwenden" +msgid "Image" +msgstr "Bild" + msgid "Minimum Display Time" msgstr "Minimale Anzeigedauer" @@ -3613,9 +3607,6 @@ msgstr "Vulkan VRS" msgid "Min Radius" msgstr "Min-Radius" -msgid "Spawnable Scenes" -msgstr "Spawnbare Szenen" - msgid "Spawn Path" msgstr "Spawn-Pfad" @@ -7591,23 +7582,14 @@ msgstr "Max. angezeigte Kontakte" msgid "Draw 2D Outlines" msgstr "2D-Umrisse zeichnen" -msgid "Anti Aliasing" -msgstr "Antialiasing" - -msgid "MSAA 2D" -msgstr "MSAA 2D" - -msgid "MSAA 3D" -msgstr "MSAA 3D" - msgid "Viewport" msgstr "Viewport" msgid "Transparent Background" msgstr "Transparenter Hintergrund" -msgid "HDR 2D" -msgstr "HDR 2D" +msgid "Anti Aliasing" +msgstr "Antialiasing" msgid "Screen Space AA" msgstr "Screen-Space AA" @@ -7651,9 +7633,6 @@ msgstr "Positionsschatten" msgid "Atlas Size" msgstr "Atlasgröße" -msgid "Atlas 16 Bits" -msgstr "Atlas 16 Bits" - msgid "Atlas Quadrant 0 Subdiv" msgstr "Atlas-Quadrant 0 Subdiv" @@ -7708,6 +7687,12 @@ msgstr "Transparenter HG" msgid "Handle Input Locally" msgstr "Eingaben lokal behandeln" +msgid "MSAA 2D" +msgstr "MSAA 2D" + +msgid "MSAA 3D" +msgstr "MSAA 3D" + msgid "Debug Draw" msgstr "Debug-Zeichnen" @@ -10501,6 +10486,9 @@ msgstr "Physikalische Lichteinheiten verwenden" msgid "Soft Shadow Filter Quality" msgstr "Weichschattenfilterqualität" +msgid "Atlas 16 Bits" +msgstr "Atlas 16 Bits" + msgid "Shadow Atlas" msgstr "Schattenatlas" @@ -10600,6 +10588,9 @@ msgstr "Fade-Out von" msgid "Fadeout To" msgstr "Fade-Out nach" +msgid "HDR 2D" +msgstr "HDR 2D" + msgid "Screen Space Roughness Limiter" msgstr "Screen-Space-Grobheitsbegrenzer" diff --git a/engine/editor/translations/properties/es.po b/engine/editor/translations/properties/es.po index 7895a395..0f1d9d32 100644 --- a/engine/editor/translations/properties/es.po +++ b/engine/editor/translations/properties/es.po @@ -14,7 +14,7 @@ # Diego López <diegodario21@gmail.com>, 2017. # eon-s <emanuel.segretin@gmail.com>, 2018, 2019, 2020. # Gustavo Leon <gleondiaz@gmail.com>, 2017-2018. -# Javier Ocampos <xavier.ocampos@gmail.com>, 2018, 2019, 2020, 2021, 2022, 2023, 2024. +# Javier Ocampos <xavier.ocampos@gmail.com>, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025. # Jose Maria Martinez <josemar1992@hotmail.com>, 2018. # Juan Quiroga <juanquiroga9@gmail.com>, 2017. # Kiji Pixel <raccoon.fella@gmail.com>, 2017. @@ -115,8 +115,8 @@ msgstr "" "Project-Id-Version: Godot Engine properties\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2025-02-06 23:02+0000\n" -"Last-Translator: José Andrés Urdaneta <urdaneta7834@gmail.com>\n" +"PO-Revision-Date: 2025-03-02 02:51+0000\n" +"Last-Translator: Javier <xavier.ocampos@gmail.com>\n" "Language-Team: Spanish <https://hosted.weblate.org/projects/godot-engine/" "godot-properties/es/>\n" "Language: es\n" @@ -124,7 +124,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 5.10-dev\n" +"X-Generator: Weblate 5.10.3-dev\n" msgid "Application" msgstr "Aplicación" @@ -157,10 +157,10 @@ msgid "Disable stderr" msgstr "Desactivar stderr" msgid "Print Header" -msgstr "Cabecera de Impresión" +msgstr "Imprimir Encabezado" msgid "Enable Alt Space Menu" -msgstr "Habilitar menú Alt Espacio" +msgstr "Activar Menú Alt Espacio" msgid "Use Hidden Project Data Directory" msgstr "Usar Directorio de Datos Ocultos del Proyecto" @@ -172,19 +172,19 @@ msgid "Custom User Dir Name" msgstr "Nombre de Directorio de Usuario Personalizado" msgid "Project Settings Override" -msgstr "Anulación de la Configuración del Proyecto" +msgstr "Anular Configuración del Proyecto" msgid "Main Loop Type" msgstr "Tipo de Bucle Principal" msgid "Auto Accept Quit" -msgstr "Aceptar Cierre Del Programa Automáticamente" +msgstr "Auto Aceptar Salir" msgid "Quit on Go Back" -msgstr "Salir y volver" +msgstr "Salir al Volver Atrás" msgid "Display" -msgstr "Monitor" +msgstr "Visualización" msgid "Window" msgstr "Ventana" @@ -202,22 +202,22 @@ msgid "Mode" msgstr "Modo" msgid "Initial Position Type" -msgstr "Tipo de posición inicial" +msgstr "Tipo de Posición Inicial" msgid "Initial Position" -msgstr "Posición inicial" +msgstr "Posición Inicial" msgid "Initial Screen" -msgstr "Pantalla inicial" +msgstr "Pantalla Inicial" msgid "Resizable" msgstr "Redimensionable" msgid "Borderless" -msgstr "Sin bordes" +msgstr "Sin Bordes" msgid "Always on Top" -msgstr "Siempre encima" +msgstr "Siempre en Primer Plano" msgid "Transparent" msgstr "Transparente" @@ -226,7 +226,10 @@ msgid "Extend to Title" msgstr "Extender al Título" msgid "No Focus" -msgstr "Sin foco" +msgstr "Sin Foco" + +msgid "Sharp Corners" +msgstr "Esquinas Afiladas" msgid "Window Width Override" msgstr "Sobreescribir Ancho de Ventana" @@ -259,7 +262,7 @@ msgid "Buses" msgstr "Buses" msgid "Default Bus Layout" -msgstr "Esquema de bus por defecto" +msgstr "Diseño de Bus Predeterminado" msgid "General" msgstr "General" @@ -268,22 +271,22 @@ msgid "Default Playback Type" msgstr "Tipo de Reproducción Predeterminado" msgid "Text to Speech" -msgstr "Texto a voz" +msgstr "Texto a Voz" msgid "2D Panning Strength" -msgstr "Fuerza de panoramización 2D" +msgstr "Fuerza de Paneo 2D" msgid "3D Panning Strength" -msgstr "Fuerza de panoramización 3D" +msgstr "Fuerza de Paneo 3D" msgid "iOS" msgstr "iOS" msgid "Session Category" -msgstr "Categoría de la sesión" +msgstr "Categoría Sesión" msgid "Mix With Others" -msgstr "Mezclar con otros" +msgstr "Mezclar Con Otros" msgid "Subwindows" msgstr "Subventanas" @@ -291,9 +294,18 @@ msgstr "Subventanas" msgid "Embed Subwindows" msgstr "Incrustar Subventanas" +msgid "Frame Pacing" +msgstr "Cadencia de Fotogramas" + msgid "Android" msgstr "Android" +msgid "Enable Frame Pacing" +msgstr "Activar Cadencia de Fotogramas" + +msgid "Swappy Mode" +msgstr "Modo Swappy" + msgid "Physics" msgstr "Físicas" @@ -316,7 +328,7 @@ msgid "Scale" msgstr "Escala" msgid "Scale Mode" -msgstr "Modo de Escala" +msgstr "Modo Escala" msgid "Debug" msgstr "Depurar" @@ -358,7 +370,7 @@ msgid "Gzip" msgstr "Gzip" msgid "Crash Handler" -msgstr "Manejador de fallos" +msgstr "Gestor de Fallos" msgid "Message" msgstr "Mensaje" @@ -367,7 +379,7 @@ msgid "Rendering" msgstr "Renderizado" msgid "Occlusion Culling" -msgstr "Eliminación por oclusión" +msgstr "Occlusion Culling" msgid "BVH Build Quality" msgstr "Calidad de Construcción BVH" @@ -382,10 +394,10 @@ msgid "Force Right to Left Layout Direction" msgstr "Forzar Dirección de Layout de Derecha a Izquierda" msgid "Root Node Layout Direction" -msgstr "Dirección de Layout del Nodo Raíz" +msgstr "Dirección de Diseño del Nodo Raíz" msgid "Root Node Auto Translate" -msgstr "Auto Traducir Nodo Raíz" +msgstr "Autotraducir Nodo Raíz" msgid "GUI" msgstr "GUI" @@ -400,7 +412,7 @@ msgid "Tooltip Delay (sec)" msgstr "Retraso de Tooltip (sec)" msgid "Common" -msgstr "Más información" +msgstr "Común" msgid "Snap Controls to Pixels" msgstr "Ajustar Controles a Píxeles" @@ -438,6 +450,9 @@ msgstr "Tamaño Máximo (MB)" msgid "Texture Upload Region Size Px" msgstr "Tamaño de región de carga de textura en píxeles" +msgid "Texture Download Region Size Px" +msgstr "Tamaño Región Descarga Textura (Px)" + msgid "Pipeline Cache" msgstr "Caché de tubería" @@ -499,7 +514,7 @@ msgid "Enable Pan and Scale Gestures" msgstr "Habilitar Gestos de Desplazamiento y Escalado" msgid "Rotary Input Scroll Axis" -msgstr "Eje de Desplazamiento de Entrada Rotativo" +msgstr "Eje Desplazamiento Entrada Rotatoria" msgid "Low Processor Usage Mode" msgstr "Modo de Bajo Uso del Procesador" @@ -513,6 +528,9 @@ msgstr "Suavizando Delta" msgid "Print Error Messages" msgstr "Imprimir Mensajes de Error" +msgid "Print to stdout" +msgstr "Imprimir en salida estándar" + msgid "Physics Ticks per Second" msgstr "Ticks de Física por Segundo" @@ -546,6 +564,21 @@ msgstr "Compatibilidad" msgid "Legacy Just Pressed Behavior" msgstr "Comportamiento de Pulsación Reciente Heredado" +msgid "Sensors" +msgstr "Sensores" + +msgid "Enable Accelerometer" +msgstr "Activar Acelerómetro" + +msgid "Enable Gravity" +msgstr "Activar Gravedad" + +msgid "Enable Gyroscope" +msgstr "Activar Giróscopo" + +msgid "Enable Magnetometer" +msgstr "Activar Magnetómetro" + msgid "Device" msgstr "Dispositivo" @@ -882,15 +915,18 @@ msgstr "Tiempo de espera de solicitud" msgid "Sync Breakpoints" msgstr "Sincronización de Puntos de Interrupción" -msgid "Default Feature Profile" -msgstr "Perfil de Características Predeterminado" - msgid "Label" msgstr "Etiqueta" msgid "Read Only" msgstr "Sólo Lectura" +msgid "Draw Label" +msgstr "Mostrar Etiqueta" + +msgid "Draw Background" +msgstr "Mostrar Fondo" + msgid "Checkable" msgstr "Chequeable" @@ -909,6 +945,12 @@ msgstr "Eliminable" msgid "Selectable" msgstr "Seleccionable" +msgid "Use Folding" +msgstr "Usar Plegado" + +msgid "Name Split Ratio" +msgstr "Ratio de División Nombre" + msgid "Distraction Free Mode" msgstr "Modo Sin Distracciones" @@ -981,6 +1023,9 @@ msgstr "Posicionamiento Subpíxel de Fuentes" msgid "Font Disable Embedded Bitmaps" msgstr "Deshabilitar Fuentes en Mapas de Bits Incrustados" +msgid "Font Allow MSDF" +msgstr "Usar MSDF en Fuente" + msgid "Main Font" msgstr "Fuente Principal" @@ -1038,6 +1083,9 @@ msgstr "Paneles" msgid "Scene Tree" msgstr "Árbol de Escenas" +msgid "Ask Before Revoking Unique Name" +msgstr "Avisar Antes de Revocar Nombre Único" + msgid "Inspector" msgstr "Inspector" @@ -1173,8 +1221,26 @@ msgstr "Modo de Visualización" msgid "Thumbnail Size" msgstr "Tamaño de las Miniaturas" +msgid "Quick Open Dialog" +msgstr "Diálogo Abrir Rápido" + msgid "Max Results" -msgstr "Resultados Máximos" +msgstr "Máximo Resultados" + +msgid "Show Search Highlight" +msgstr "Mostrar Búsqueda Resaltado" + +msgid "Enable Fuzzy Matching" +msgstr "Activar Coincidencia Difusa" + +msgid "Max Fuzzy Misses" +msgstr "Máximo Errores Difusos" + +msgid "Include Addons" +msgstr "Incluir Complementos" + +msgid "Default Display Mode" +msgstr "Modo Predeterminado de Visualización" msgid "Import" msgstr "Importar" @@ -1218,12 +1284,18 @@ msgstr "Auto Expandir a Seleccionado" msgid "Center Node on Reparent" msgstr "Centrar Nodo al Reemparentar" +msgid "Hide Filtered Out Parents" +msgstr "Ocultar Padres Filtrados" + msgid "Always Show Folders" msgstr "Siempre Mostrar Carpetas" msgid "TextFile Extensions" msgstr "Extensiones de Archivos de Texto" +msgid "Other File Extensions" +msgstr "Otras Extensiones de Archivo" + msgid "Property Editor" msgstr "Editor de Propiedades" @@ -1314,6 +1386,9 @@ msgstr "Dibujar Espacios" msgid "Behavior" msgstr "Comportamiento" +msgid "Empty Selection Clipboard" +msgstr "Selección de Portapapeles Vacío" + msgid "Navigation" msgstr "Navegación" @@ -1383,6 +1458,12 @@ msgstr "Recarga Automática y Análisis de Scripts al Guardar" msgid "Open Dominant Script on Scene Change" msgstr "Abrir el Script Dominante en el Cambio de Escena" +msgid "Documentation" +msgstr "Documentación" + +msgid "Enable Tooltips" +msgstr "Activar Tooltips" + msgid "Script List" msgstr "Lista de Scripts" @@ -1398,6 +1479,9 @@ msgstr "Temperatura del Script Activada" msgid "Script Temperature History Size" msgstr "Tamaño de Historial de Temperatura del Script" +msgid "Highlight Scene Scripts" +msgstr "Resaltar Scripts de Escena" + msgid "Group Help Pages" msgstr "Páginas de Ayuda para Grupos" @@ -1422,6 +1506,9 @@ msgstr "Completar" msgid "Idle Parse Delay" msgstr "Espera de Análisis Después de Inactividad" +msgid "Idle Parse Delay With Errors Found" +msgstr "Retraso de Parseo Inactivo: Errores" + msgid "Auto Brace Complete" msgstr "Autocompletar Paréntesis" @@ -1548,6 +1635,18 @@ msgstr "Hueso Seleccionado" msgid "CSG" msgstr "CSG" +msgid "GridMap Grid" +msgstr "Cuadrícula GridMap" + +msgid "Spring Bone Joint" +msgstr "Articulación de Hueso Muelle" + +msgid "Spring Bone Collision" +msgstr "Colisión de Hueso Muelle" + +msgid "Spring Bone Inside Collision" +msgstr "Hueso Resorte Colisión Interior" + msgid "Gizmo Settings" msgstr "Configuración del Gizmo" @@ -1599,6 +1698,9 @@ msgstr "Sensación de Navegación" msgid "Orbit Sensitivity" msgstr "Sensibilidad de Órbita" +msgid "Translation Sensitivity" +msgstr "Sensibilidad de Traslación" + msgid "Orbit Inertia" msgstr "Inercia de Órbita" @@ -1794,6 +1896,9 @@ msgstr "Líneas Máximas" msgid "Platforms" msgstr "Plataformas" +msgid "Linux/*BSD" +msgstr "Linux/*BSD" + msgid "Prefer Wayland" msgstr "Preferir Wayland" @@ -1818,6 +1923,9 @@ msgstr "Tamaño del Historial del Perfilador de Fotogramas" msgid "Profiler Frame Max Functions" msgstr "Máximo de Funciones del Cuadro del Profiler" +msgid "Profiler Target FPS" +msgstr "FPS Objetivo del Profiler" + msgid "Remote Scene Tree Refresh Interval" msgstr "Intervalo de Refresco del Árbol de Escenas Remoto" @@ -1840,7 +1948,7 @@ msgid "Input" msgstr "Entrada" msgid "Buffering" -msgstr "Buffering" +msgstr "Búfer" msgid "Agile Event Flushing" msgstr "Evento Ágil de Vaciado" @@ -2070,6 +2178,9 @@ msgstr "Plano" msgid "Hide Slider" msgstr "Ocultar Deslizador" +msgid "Editing Integer" +msgstr "Edición de Entero" + msgid "Zoom" msgstr "Zoom" @@ -2103,9 +2214,18 @@ msgstr "Normalizar la Posición de las Pistas" msgid "Reset All Bone Poses After Import" msgstr "Restablecer Todas las Poses de Hueso Después de Importar" +msgid "Retarget Method" +msgstr "Método de Retargeting" + msgid "Keep Global Rest on Leftovers" msgstr "Mantener el Descanso Global sobre las Sobras" +msgid "Use Global Pose" +msgstr "Usar Pose Global" + +msgid "Original Skeleton Name" +msgstr "Nombre de Esqueleto Original" + msgid "Fix Silhouette" msgstr "Reparar la Silueta" @@ -2136,6 +2256,15 @@ msgstr "Generar Tangentes" msgid "Generate LODs" msgstr "Generar LODs" +msgid "Generate Shadow Mesh" +msgstr "Generar Malla de Sombra" + +msgid "Generate Lightmap UV2" +msgstr "Generar Mapa de Luces UV2" + +msgid "Generate Lightmap UV2 Texel Size" +msgstr "Generar Tamaño Texel Mapa de Luces UV2" + msgid "Scale Mesh" msgstr "Escalar Mesh" @@ -2337,6 +2466,9 @@ msgstr "Escala de Raíz" msgid "Import as Skeleton Bones" msgstr "Importar como Huesos de Esqueleto" +msgid "Use Node Type Suffixes" +msgstr "Usar Sufijos de Tipo de Nodo" + msgid "Meshes" msgstr "Meshes" @@ -2406,6 +2538,9 @@ msgstr "Sugerencias" msgid "Subpixel Positioning" msgstr "Posicionamiento de Subpixeles" +msgid "Keep Rounding Remainders" +msgstr "Mantener Restos de Redondeo" + msgid "Oversampling" msgstr "Sobremuestreo" @@ -2608,6 +2743,9 @@ msgstr "Grupo Actual Idx" msgid "Current Bone Idx" msgstr "Hueso Actual Idx" +msgid "Particles Emission Shape" +msgstr "Forma de Emisión de Partículas" + msgid "ID" msgstr "ID" @@ -2686,9 +2824,6 @@ msgstr "Nombre del Plugin" msgid "Autoload on Startup" msgstr "Carga Automática al Iniciar" -msgid "Use Favorites Root Selection" -msgstr "Usar Selección de Raíces Favoritas" - msgid "Flush stdout on Print" msgstr "Vaciar stdout Al Imprimir" @@ -2908,15 +3043,15 @@ msgstr "Offset de Posición del Tooltip" msgid "Show Image" msgstr "Mostrar Imagen" -msgid "Image" -msgstr "imagen" - msgid "Fullsize" msgstr "Tamaño completo" msgid "Use Filter" msgstr "Usar Filtro" +msgid "Image" +msgstr "imagen" + msgid "Minimum Display Time" msgstr "Tiempo Mínimo de Visualización" @@ -2951,7 +3086,7 @@ msgid "Static Max" msgstr "Límite Estático" msgid "Msg Buf Max" -msgstr "Límite del Búfer de Mensajes" +msgstr "Máximo Búfer Mensajes" msgid "Object" msgstr "Objeto" @@ -2966,7 +3101,7 @@ msgid "Orphan Nodes" msgstr "Nodos huérfanos" msgid "Raster" -msgstr "Rasterizador" +msgstr "Raster" msgid "Total Objects Drawn" msgstr "Objetos dibujados totales" @@ -3182,7 +3317,10 @@ msgid "Max Call Stack" msgstr "Tamaño Máximo de la Pila de Llamadas" msgid "Exclude Addons" -msgstr "Excluir Addons" +msgstr "Excluir Complementos" + +msgid "Renamed in Godot 4 Hint" +msgstr "Renombrado en Godot 4 (Pista)" msgid "Language Server" msgstr "Servidor de Lenguaje" @@ -3448,6 +3586,15 @@ msgstr "Hijos" msgid "Light" msgstr "Luz" +msgid "glTF to Godot Expression" +msgstr "Expresión glTF a Godot" + +msgid "Godot to glTF Expression" +msgstr "Expresión Godot a glTF" + +msgid "Object Model Type" +msgstr "Tipo de Modelo de Objeto" + msgid "Joints" msgstr "Articulaciones" @@ -3529,6 +3676,48 @@ msgstr "Tiempo de Desvanecimiento" msgid "Stream Count" msgstr "Conteo de Transmisiones" +msgid "Use Enhanced Internal Edge Removal" +msgstr "Usar Eliminación Mejorada de Bordes Internos" + +msgid "Areas Detect Static Bodies" +msgstr "Áreas Detectan Cuerpos Estáticos" + +msgid "Generate All Kinematic Contacts" +msgstr "Generar Todos los Contactos Cinemáticos" + +msgid "Baumgarte Stabilization Factor" +msgstr "Factor de Estabilización de Baumgarte" + +msgid "Bounce Velocity Threshold" +msgstr "Umbral de Velocidad de Rebote" + +msgid "Continuous CD Movement Threshold" +msgstr "Umbral de Movimiento de Detección Continua de Colisiones" + +msgid "Continuous CD Max Penetration" +msgstr "Penetración Máxima en Detección Continua de Colisiones" + +msgid "Body Pair Contact Cache Enabled" +msgstr "Activar Caché de Contactos de Pares de Cuerpos" + +msgid "Body Pair Contact Cache Distance Threshold" +msgstr "Umbral de Distancia del Caché de Contactos de Pares de Cuerpos" + +msgid "Body Pair Contact Cache Angle Threshold" +msgstr "Umbral de Ángulo del Caché de Contactos de Pares de Cuerpos" + +msgid "Queries" +msgstr "Consultas" + +msgid "Enable Ray Cast Face Index" +msgstr "Activar Índice de Cara de Ray Cast" + +msgid "World Boundary Shape Size" +msgstr "Tamaño de la Forma del Límite del Mundo" + +msgid "Max Body Pairs" +msgstr "Máximo de Pares de Cuerpos" + msgid "Lightmapping" msgstr "Mapeo de Luz" @@ -3619,9 +3808,6 @@ msgstr "Vulkan VRS" msgid "Min Radius" msgstr "Radio Mínimo" -msgid "Spawnable Scenes" -msgstr "Escenas Generables" - msgid "Spawn Path" msgstr "Ruta del Generador" @@ -3760,6 +3946,15 @@ msgstr "Interacción con la Ruta del Perfil" msgid "Runtime Paths" msgstr "Rutas de Ejecución" +msgid "Is Sticky" +msgstr "Es Pegajoso" + +msgid "On Haptic" +msgstr "Activado Háptico" + +msgid "Off Haptic" +msgstr "Desactivado Háptico" + msgid "Display Refresh Rate" msgstr "Mostrar Tasa de Refresco" @@ -4012,6 +4207,9 @@ msgstr "Características del XR" msgid "XR Mode" msgstr "Modo XR" +msgid "Swipe to Dismiss" +msgstr "Deslizar para Descartar" + msgid "Screen" msgstr "Pantalla" @@ -4144,6 +4342,9 @@ msgstr "Eliminar Archivos de Exportación Obsoletos Incondicionalmente" msgid "Entitlements" msgstr "Derechos" +msgid "Increased Memory Limit" +msgstr "Límite de Memoria Aumentado" + msgid "Push Notifications" msgstr "Notificaciones Push" @@ -4544,7 +4745,7 @@ msgid "D3D12 Agility SDK Multiarch" msgstr "SDK de Agilidad D2D12 Multiarq" msgid "Sprite Frames" -msgstr "Sprite Frames" +msgstr "Frames de Sprite" msgid "Frame" msgstr "Fotograma" @@ -5108,7 +5309,7 @@ msgid "Autoscroll" msgstr "Desplazamiento Automático" msgid "Repeat Times" -msgstr "Número de Repeticiones" +msgstr "Veces de Repetición" msgid "Begin" msgstr "Comienzo" @@ -5922,9 +6123,39 @@ msgstr "Datos de Iluminación" msgid "Target Node" msgstr "Nodo Objetivo" +msgid "Use Secondary Rotation" +msgstr "Usar Rotación Secundaria" + msgid "From" msgstr "Desde" +msgid "Symmetry Limitation" +msgstr "Limitación de Simetría" + +msgid "Primary Positive Limit Angle" +msgstr "Límite de Ángulo Primario Positivo" + +msgid "Primary Positive Damp Threshold" +msgstr "Umbral de Amortiguación Primario Positivo" + +msgid "Primary Negative Limit Angle" +msgstr "Límite de Ángulo Primario Negativo" + +msgid "Primary Negative Damp Threshold" +msgstr "Umbral de Amortiguación Primario Negativo" + +msgid "Secondary Positive Limit Angle" +msgstr "Límite de Ángulo Secundario Positivo" + +msgid "Secondary Positive Damp Threshold" +msgstr "Umbral de Amortiguación Secundario Positivo" + +msgid "Secondary Negative Limit Angle" +msgstr "Límite de Ángulo Secundario Negativo" + +msgid "Secondary Negative Damp Threshold" +msgstr "Umbral de Amortiguación Secundario Negativo" + msgid "Surface Material Override" msgstr "Anulación de Material de Superficie" @@ -6357,6 +6588,9 @@ msgstr "Coeficiente de resistencia" msgid "Position Offset" msgstr "Ajuste de Posición" +msgid "Inside" +msgstr "Interior" + msgid "Track Physics Step" msgstr "Paso de Física de Pistas" @@ -6424,7 +6658,7 @@ msgid "Pose" msgstr "Pose" msgid "Show When Tracked" -msgstr "Mostrar Cuando se Rastree" +msgstr "Mostrar Cuando Rastreado" msgid "World Scale" msgstr "Escala del Mundo" @@ -6474,6 +6708,9 @@ msgstr "Retraso" msgid "Random Delay" msgstr "Retraso Aleatorio" +msgid "Explicit Elapse" +msgstr "Lapso Explícito" + msgid "Xfade Time" msgstr "Tiempo de Fundido Cruzado" @@ -6975,6 +7212,9 @@ msgstr "Líneas de Texto Máximas" msgid "Auto Height" msgstr "Altura Automática" +msgid "Wraparound Items" +msgstr "Ítems Envolventes" + msgid "Items" msgstr "Elementos" @@ -7029,6 +7269,9 @@ msgstr "Texto de Marcador de Posición" msgid "Max Length" msgstr "Máxima Longitud" +msgid "Keep Editing on Text Submit" +msgstr "Mantener Edición al Enviar Texto" + msgid "Expand to Text Length" msgstr "Expandir a la Longitud del Texto" @@ -7597,23 +7840,14 @@ msgstr "Máximo de Contactos Mostrados" msgid "Draw 2D Outlines" msgstr "Dibujar Contornos 2D" -msgid "Anti Aliasing" -msgstr "Anti Aliasing" - -msgid "MSAA 2D" -msgstr "MSAA 2D" - -msgid "MSAA 3D" -msgstr "MSAA 3D" - msgid "Viewport" msgstr "Viewport" msgid "Transparent Background" msgstr "Fondo Transparente" -msgid "HDR 2D" -msgstr "Alto Rango Dinámico 2D (HDR)" +msgid "Anti Aliasing" +msgstr "Anti Aliasing" msgid "Screen Space AA" msgstr "Espacio de Pantalla AA" @@ -7657,9 +7891,6 @@ msgstr "Sombra Posicional" msgid "Atlas Size" msgstr "Tamaño de Atlas" -msgid "Atlas 16 Bits" -msgstr "Atlas de 16 Bits" - msgid "Atlas Quadrant 0 Subdiv" msgstr "Subdivisión del Cuadrante 0 del Atlas" @@ -7714,6 +7945,12 @@ msgstr "Fondo Transparente" msgid "Handle Input Locally" msgstr "Manejar Entradas Localmente" +msgid "MSAA 2D" +msgstr "MSAA 2D" + +msgid "MSAA 3D" +msgstr "MSAA 3D" + msgid "Debug Draw" msgstr "Depurar Dibujo" @@ -9119,7 +9356,7 @@ msgid "Qualifier" msgstr "Calificador" msgid "Autoshrink" -msgstr "Autoshrink" +msgstr "Autoreducir" msgid "Varying Name" msgstr "Nombre de la Varying" @@ -9415,6 +9652,18 @@ msgstr "Ajuste de Manija" msgid "Updown" msgstr "Reducción" +msgid "Up" +msgstr "Arriba" + +msgid "Down" +msgstr "Abajo" + +msgid "Up Pressed Icon Modulate" +msgstr "Modulación de Icono Pulsado Arriba" + +msgid "Set Min Buttons Width From Icons" +msgstr "Fijar Ancho Mínimo de Botones Desde Iconos" + msgid "Embedded Border" msgstr "Borde Enbebido" @@ -9472,6 +9721,9 @@ msgstr "Recargar" msgid "Toggle Hidden" msgstr "Oculto" +msgid "Toggle Filename Filter" +msgstr "Alternar Filtro de Nombre de Archivo" + msgid "Folder" msgstr "Carpeta" @@ -10507,12 +10759,18 @@ msgstr "Usar Unidades de Luz Física" msgid "Soft Shadow Filter Quality" msgstr "Calidad del Filtro de Sombras Suaves" +msgid "Atlas 16 Bits" +msgstr "Atlas de 16 Bits" + msgid "Shadow Atlas" msgstr "Sombra del Atlas" msgid "Item Buffer Size" msgstr "Tamaño del Búfer de Ítems" +msgid "Uniform Set Cache Size" +msgstr "Tamaño de Caché de Conjunto Uniforme" + msgid "Shader Compiler" msgstr "Compilador de Shader" @@ -10606,6 +10864,9 @@ msgstr "Desvanecimiento desde" msgid "Fadeout To" msgstr "Desvanecimiento hasta" +msgid "HDR 2D" +msgstr "Alto Rango Dinámico 2D (HDR)" + msgid "Screen Space Roughness Limiter" msgstr "Limitador de Rugosidad en Espacio de Pantalla" @@ -10741,5 +11002,8 @@ msgstr "Fuerza VRS" msgid "World Origin" msgstr "Origen del Mundo" +msgid "Camera Locked to Origin" +msgstr "Cámara Bloqueada al Origen" + msgid "Primary Interface" msgstr "Interfaz Principal" diff --git a/engine/editor/translations/properties/et.po b/engine/editor/translations/properties/et.po index fab51a86..1659079a 100644 --- a/engine/editor/translations/properties/et.po +++ b/engine/editor/translations/properties/et.po @@ -625,9 +625,6 @@ msgstr "Päringu Ajalõpp" msgid "Sync Breakpoints" msgstr "Sünkroniseeri Katkepunktid" -msgid "Default Feature Profile" -msgstr "Vaikimisi funktsiooniprofiil" - msgid "Label" msgstr "Silt" @@ -1852,9 +1849,6 @@ msgstr "Teisenda Tekstiressursid Binaarseks" msgid "Plugin Name" msgstr "Pistikprogrammi Nimi" -msgid "Use Favorites Root Selection" -msgstr "Kasutage Lemmikute Juurvalikut" - msgid "Low Processor Mode" msgstr "Madal Protsessorirežiim" @@ -1966,15 +1960,15 @@ msgstr "Hiire Kursor" msgid "Show Image" msgstr "Näita Pilti" -msgid "Image" -msgstr "Pilt" - msgid "Fullsize" msgstr "Täissuurus" msgid "Use Filter" msgstr "Kasuta Filtrit" +msgid "Image" +msgstr "Pilt" + msgid "Minimum Display Time" msgstr "Minimaalne Näitamise Aeg" diff --git a/engine/editor/translations/properties/fa.po b/engine/editor/translations/properties/fa.po index 8bf3b480..96d3cedc 100644 --- a/engine/editor/translations/properties/fa.po +++ b/engine/editor/translations/properties/fa.po @@ -51,7 +51,7 @@ msgstr "" "Project-Id-Version: Godot Engine properties\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2025-02-01 02:30+0000\n" +"PO-Revision-Date: 2025-02-27 22:41+0000\n" "Last-Translator: Atur <aturaseman9@gmail.com>\n" "Language-Team: Persian <https://hosted.weblate.org/projects/godot-engine/" "godot-properties/fa/>\n" @@ -60,7 +60,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 5.10-dev\n" +"X-Generator: Weblate 5.10.2-rc\n" msgid "Application" msgstr "برنامه" @@ -84,7 +84,7 @@ msgid "Run" msgstr "اجرا" msgid "Main Scene" -msgstr "پردهٔ اصلی" +msgstr "صحنهٔ اصلی" msgid "Disable stdout" msgstr "ازکاراندازی stdout" @@ -96,7 +96,7 @@ msgid "Print Header" msgstr "پرینت هدر ها" msgid "Enable Alt Space Menu" -msgstr "بکاراندازی گزینگان Alt + Space" +msgstr "بهکاراندازی گزینگان Alt + Space" msgid "Use Hidden Project Data Directory" msgstr "بهکارگیری پوشهدان دادهٔ پروژهٔ پنهانشده" @@ -105,7 +105,7 @@ msgid "Use Custom User Dir" msgstr "استفاده از Custom User Dir" msgid "Custom User Dir Name" -msgstr "نام دلخواه برای دایرکتوری کاربر" +msgstr "نام دلخواه برای پوشهدان کاربر" msgid "Project Settings Override" msgstr "لغو تنظیمات پروژه" @@ -120,7 +120,7 @@ msgid "Quit on Go Back" msgstr "خروج در بازگشت" msgid "Display" -msgstr "نمایش" +msgstr "نمایشگر" msgid "Window" msgstr "پنجره" @@ -129,10 +129,10 @@ msgid "Size" msgstr "اندازه" msgid "Viewport Width" -msgstr "طول صفحه" +msgstr "پهنای دیدگستره (viewport)" msgid "Viewport Height" -msgstr "عرض صفحه" +msgstr "بلندای دیدگستره (viewport)" msgid "Mode" msgstr "حالت" @@ -159,16 +159,19 @@ msgid "Transparent" msgstr "شفاف" msgid "Extend to Title" -msgstr "گسترش به تایل" +msgstr "گسترش تا عنوان" msgid "No Focus" msgstr "بدون تمرکز" +msgid "Sharp Corners" +msgstr "گوشههای تیز" + msgid "Window Width Override" -msgstr "لغو عرض پنجره" +msgstr "بازنویسی پهنای پنجره" msgid "Window Height Override" -msgstr "بازنویسی عرض صفحه" +msgstr "بازنویسی بلندای پنجره" msgid "Energy Saving" msgstr "ذخیره انرژی" @@ -183,10 +186,10 @@ msgid "Warnings" msgstr "هشدارها" msgid "Check Invalid Track Paths" -msgstr "مسیر های نامعتبر را بررسی کنید" +msgstr "بررسی مسیرهای نامعتبر نوار" msgid "Check Angle Interpolation Type Conflicting" -msgstr "تعارض نوع درونیابی زاویه ( Angle Interpolation)را بررسی کنید" +msgstr "بررسی ناسازگاری گونهٔ میانیابی زاویه" msgid "Audio" msgstr "صدا" @@ -207,10 +210,10 @@ msgid "Text to Speech" msgstr "نوشتار به گفتار" msgid "2D Panning Strength" -msgstr "قدرت حرکت دو بعدی" +msgstr "قدرت سراسرنمایی دوبعدی" msgid "3D Panning Strength" -msgstr "قدرت حرکت سه بعدی" +msgstr "قدرت سراسرنمایی سهبعدی" msgid "iOS" msgstr "آیاواس" @@ -219,13 +222,13 @@ msgid "Session Category" msgstr "دستهبندی نشست" msgid "Mix With Others" -msgstr "مخلوط کردن با دیگران" +msgstr "آمیزش با دیگران" msgid "Subwindows" msgstr "زیر پنجره ها" msgid "Embed Subwindows" -msgstr "جاسازی زیر پنجره ها" +msgstr "نهادینهسازی زیرپنجرهها" msgid "Android" msgstr "اندروید" @@ -234,19 +237,19 @@ msgid "Physics" msgstr "فیزیک" msgid "2D" -msgstr "۲بعدی" +msgstr "دوبعدی" msgid "Run on Separate Thread" msgstr "اجرا روی ریسهٔ جدا" msgid "3D" -msgstr "۳بعدی" +msgstr "سهبعدی" msgid "Stretch" msgstr "کشش" msgid "Aspect" -msgstr "جنبه" +msgstr "نما" msgid "Scale" msgstr "مقیاس" @@ -291,7 +294,7 @@ msgid "Gzip" msgstr "Gzip" msgid "Crash Handler" -msgstr "کنترلکننده کرش" +msgstr "گردانندهٔ سرنگونی" msgid "Message" msgstr "پیام" @@ -305,6 +308,9 @@ msgstr "گردآوری بندآمدگی" msgid "BVH Build Quality" msgstr "کیفیت ساخت BVH" +msgid "Internationalization" +msgstr "بینالمللیسازی" + msgid "Force Right to Left Layout Direction" msgstr "واداشتن سوی راست به چپ به چیدمان" @@ -354,7 +360,7 @@ msgid "Pipeline Cache" msgstr "کش" msgid "Enable" -msgstr "بکاراندازی" +msgstr "بهکاراندازی" msgid "Save Chunk Size (MB)" msgstr "اندازه" @@ -381,7 +387,7 @@ msgid "Input Devices" msgstr "دستگاههای درونداد" msgid "Enable Long Press as Right Click" -msgstr "بکاراندازی فشار دراز بعنوان راست کلیک" +msgstr "بهکاراندازی فشار دراز بهعنوان راست کلیک" msgid "Low Processor Usage Mode" msgstr "حالت کاربرد کم پردازنده" @@ -389,6 +395,9 @@ msgstr "حالت کاربرد کم پردازنده" msgid "Low Processor Usage Mode Sleep (µsec)" msgstr "خواب حالت کاربرد کم پردازنده (میکروثانیه)" +msgid "Delta Smoothing" +msgstr "یکنواختسازی دلتا" + msgid "Print Error Messages" msgstr "چاپ کردن پیام خطا" @@ -399,7 +408,7 @@ msgid "Max Physics Steps per Frame" msgstr "بیشینهٔ گام فیزیکی بر فریم" msgid "Max FPS" -msgstr "بیشترین نرخ فریم" +msgstr "فریم بر ثانیهٔ بیشینه" msgid "Time Scale" msgstr "مقیاس زمانی" @@ -416,6 +425,18 @@ msgstr "بکاربردن درونداد انباشته" msgid "Compatibility" msgstr "سازگاری" +msgid "Sensors" +msgstr "حسگرها" + +msgid "Enable Accelerometer" +msgstr "بهکاراندازی شتابسنج" + +msgid "Enable Gravity" +msgstr "بهکاراندازی گرانش" + +msgid "Enable Gyroscope" +msgstr "بهکاراندازی ژیروسکوپ" + msgid "Device" msgstr "دستگاه" @@ -434,6 +455,12 @@ msgstr "Ctrl فشرده شد" msgid "Pressed" msgstr "فشردهشده" +msgid "Keycode" +msgstr "کد کلید" + +msgid "Physical Keycode" +msgstr "کد کلید فیزیکی" + msgid "Key Label" msgstr "برچسب کلید" @@ -482,6 +509,9 @@ msgstr "نسبت" msgid "Velocity" msgstr "سرعت" +msgid "Screen Velocity" +msgstr "سرعت صفحه" + msgid "Axis" msgstr "محور" @@ -525,7 +555,10 @@ msgid "Events" msgstr "رویدادها" msgid "Include Navigational" -msgstr "دربرگرفتن رهیابانه" +msgstr "دربرگیری ناوبریوار" + +msgid "Include Hidden" +msgstr "دربرگیری پنهانشده" msgid "Big Endian" msgstr "اندیان بزرگ" @@ -555,7 +588,7 @@ msgid "Resource" msgstr "بنمایه" msgid "Local to Scene" -msgstr "بومی پرده" +msgstr "بومی صحنه" msgid "Path" msgstr "مسیر" @@ -578,6 +611,9 @@ msgstr "اندازه سلول" msgid "Jumping Enabled" msgstr "پرش بکارافتاده" +msgid "Diagonal Mode" +msgstr "حالت قطر" + msgid "Seed" msgstr "دانه" @@ -593,6 +629,9 @@ msgstr "محدودیتها" msgid "Message Queue" msgstr "صف پیام" +msgid "Max Steps" +msgstr "بیشینهٔ گامها" + msgid "Network" msgstr "شبکه" @@ -630,7 +669,10 @@ msgid "Pseudolocalization" msgstr "بومیسازی نمایشی" msgid "Use Pseudolocalization" -msgstr "بکارگیری بومیسازی نمایشی" +msgstr "بهکارگیری بومیسازی نمایشی" + +msgid "Replace With Accents" +msgstr "جایگزینی با آکسانها" msgid "Double Vowels" msgstr "جفت واکهها" @@ -674,15 +716,18 @@ msgstr "انحراف آغازین" msgid "Request Timeout" msgstr "درخواست وقفه" -msgid "Default Feature Profile" -msgstr "پروفایل ویژگی پیشفرض" - msgid "Label" msgstr "برچسب" msgid "Read Only" msgstr "فقط مطالعه" +msgid "Draw Label" +msgstr "کشیدن برچسب" + +msgid "Draw Background" +msgstr "کشیدن پسزمینه" + msgid "Checkable" msgstr "قابل بررسی" @@ -696,13 +741,16 @@ msgid "Keying" msgstr "کلیدزدن" msgid "Deletable" -msgstr "قابل حذف" +msgstr "زدایشپذیر" + +msgid "Selectable" +msgstr "گزینشپذیر" msgid "Distraction Free Mode" msgstr "حالت بدون حواسپرتی" msgid "Movie Maker Enabled" -msgstr "فیلمساز بکارافتاده" +msgstr "فیلمساز بهکارافتاده" msgid "Base Type" msgstr "نوع پایه" @@ -726,7 +774,7 @@ msgid "Asset Library" msgstr "کتابخانهٔ دارایی" msgid "Use Threads" -msgstr "بکارگیری ریسهها" +msgstr "بهکارگیری ریسهها" msgid "Localize Settings" msgstr "بومیسازی تنظیمات" @@ -735,7 +783,7 @@ msgid "UI Layout Direction" msgstr "سوی چیدمان میانای کاربری" msgid "Display Scale" -msgstr "نمایاندن مقیاس" +msgstr "مقیاس نمایشگر" msgid "Custom Display Scale" msgstr "مقیاس نمایشگر سفارشی" @@ -746,6 +794,9 @@ msgstr "صفحهٔ ویراستار" msgid "Project Manager Screen" msgstr "صفحه مدیر پروژه" +msgid "Use Embedded Menu" +msgstr "بهکارگیری گزینگان نهادینهشده" + msgid "Main Font" msgstr "قلم اصلی" @@ -759,7 +810,7 @@ msgid "Single Window Mode" msgstr "حالت تکپنجره" msgid "Save Each Scene on Quit" -msgstr "ذخیرهسازی هر پرده هنگام برونرفت" +msgstr "ذخیرهسازی هر صحنه هنگام برونرفت" msgid "Show Update Spinner" msgstr "نمایش چرخنده بهروزرسانی" @@ -777,13 +828,16 @@ msgid "Editors" msgstr "ویراستارها" msgid "Show Scene Tree Root Selection" -msgstr "نمایش برگزیدگان ریشهٔ درخت پرده" +msgstr "نمایش برگزیدگان ریشهٔ درخت صحنه" msgid "Docks" msgstr "داکها" msgid "Scene Tree" -msgstr "درخت پرده" +msgstr "درخت صحنه" + +msgid "Ask Before Revoking Unique Name" +msgstr "پیش از ریواندن (معزول کردن) نام یکتا بپرس" msgid "Inspector" msgstr "بازرس" @@ -828,19 +882,19 @@ msgid "Touchscreen" msgstr "صفحه لمسی" msgid "Scene Tabs" -msgstr "زبانههای پرده" +msgstr "زبانههای صحنه" msgid "Display Close Button" msgstr "نمایش دکمه خروج" msgid "Maximum Width" -msgstr "حداکثر طول" +msgstr "پهنای بیشینه" msgid "Show Script Button" msgstr "نمایش دکمه اسکریپت" msgid "Restore Scenes on Load" -msgstr "برگرداندن پردهها هنگام بارکردن" +msgstr "برگرداندن صحنهها هنگام بارکردن" msgid "FileSystem" msgstr "سامانهٔ پرونده" @@ -873,14 +927,29 @@ msgid "Show Hidden Files" msgstr "نمایش پروندههای پنهان شده" msgid "Display Mode" -msgstr "حالت نمایش" +msgstr "حالت نمایشگر" msgid "Max Results" msgstr "نتایج بیشینه" +msgid "Show Search Highlight" +msgstr "نمایش برجستههای جستجو" + +msgid "Include Addons" +msgstr "دربرگیری برافزاها" + +msgid "Default Display Mode" +msgstr "حالت پیشفرض نمایشگر" + msgid "Import" msgstr "درونبرد" +msgid "Blender" +msgstr "درآمیزی" + +msgid "Blender Path" +msgstr "مسیر بلندر" + msgid "FBX" msgstr "افبیاکس (FBX)" @@ -893,6 +962,9 @@ msgstr "ابزارها" msgid "OIDN" msgstr "OIDN" +msgid "Auto Expand to Selected" +msgstr "گسترش خودکار به برگزیده" + msgid "Always Show Folders" msgstr "همیشه پوشهها نمایش داده شوند" @@ -929,11 +1001,14 @@ msgstr "خطوط" msgid "Autowrap Mode" msgstr "حالت پوشانیدن خودکار" +msgid "Draw Spaces" +msgstr "کشیدن فاصلهها" + msgid "Behavior" msgstr "رفتار" msgid "Navigation" -msgstr "رهیابی" +msgstr "ناوبری" msgid "Move Caret on Right Click" msgstr "جابهجایی هشتک هنگام راستکلیک" @@ -944,14 +1019,17 @@ msgstr "پیمایش یکنواخت" msgid "V Scroll Speed" msgstr "تندی پیمایش عمودی" +msgid "Drag and Drop Selection" +msgstr "کشاندن و انداختن برگزیده" + msgid "Stay in Script Editor on Node Selected" msgstr "ماندن درون ویراستار اسکریپت هنگام گزینش گره" msgid "Use Default Word Separators" -msgstr "بکارگیری جداگرهای واژه پیشفرض" +msgstr "بهکارگیری جداگرهای واژه پیشفرض" msgid "Use Custom Word Separators" -msgstr "بکارگیری جداگرهای واژهٔ سفارشی" +msgstr "بهکارگیری جداگرهای واژهٔ سفارشی" msgid "Custom Word Separators" msgstr "جداگرهای واژهٔ سفارشی" @@ -963,16 +1041,25 @@ msgid "Auto Indent" msgstr "تورفتگی خودکار" msgid "Files" -msgstr "فایلها" +msgstr "پروندهها" msgid "Restore Scripts on Load" msgstr "برگرداندن اسکریپتها هنگام بارکردن" +msgid "Convert Indent on Save" +msgstr "تبدیل کردن تورفتگی هنگام ذخیرهسازی" + msgid "Auto Reload Scripts on External Change" msgstr "بازبارکردن خودکار اسکریپتها هنگام دگرش بیرونی" msgid "Open Dominant Script on Scene Change" -msgstr "گشودن اسکریپت چیره بر دگرگونی پرده" +msgstr "گشودن اسکریپت چیره بر دگرگونی صحنه" + +msgid "Documentation" +msgstr "مستندات" + +msgid "Enable Tooltips" +msgstr "بهکاراندازی پندابزار" msgid "Script List" msgstr "فهرست اسکریپت" @@ -989,6 +1076,9 @@ msgstr "حرارت اسکریپت فعال شد" msgid "Script Temperature History Size" msgstr "اندازه تاریخچه حرارت اسکریپت" +msgid "Highlight Scene Scripts" +msgstr "برجستهسازی اسکریپتهای صحنه" + msgid "Group Help Pages" msgstr "گروهبندی صفحات کمکی" @@ -996,7 +1086,7 @@ msgid "Sort Scripts By" msgstr "چینش اسکریپتها بر پایهٔ" msgid "List Script Names As" -msgstr "فهرست کردن نام اسکریپتها بعنوان" +msgstr "فهرست کردن نام اسکریپتها بهعنوان" msgid "External" msgstr "خارجی" @@ -1013,6 +1103,9 @@ msgstr "بهکارگیری ویراستار خارجی" msgid "Help" msgstr "راهنما" +msgid "Show Help Index" +msgstr "نمایش اندیس راهنما" + msgid "Sort Functions Alphabetically" msgstr "چینش تابعها بر پایهٔ الفبا" @@ -1022,6 +1115,12 @@ msgstr "گیزموهای سهبعدی" msgid "Gizmo Colors" msgstr "رنگهای گیزمو" +msgid "Instantiated" +msgstr "نمونهسازیشده" + +msgid "Joint" +msgstr "مفصل" + msgid "AABB" msgstr "ایایبیبی" @@ -1049,15 +1148,24 @@ msgstr "مفصل بدن B" msgid "Occluder" msgstr "بندآور" +msgid "Reflection Probe" +msgstr "کاوَند بازتاب" + msgid "Skeleton" msgstr "اسکلت" +msgid "Selected Bone" +msgstr "استخوان برگزیده" + msgid "CSG" msgstr "سی.اس.جی" msgid "Bone Shape" msgstr "شکل استخوان" +msgid "Translation Sensitivity" +msgstr "حساسیت انتقال" + msgid "Translation Inertia" msgstr "ماندگری انتقال" @@ -1103,6 +1211,15 @@ msgstr "نشاندن" msgid "Error" msgstr "خطا" +msgid "Panning" +msgstr "سراسرنمایی" + +msgid "Simple Panning" +msgstr "سراسرنمایی ساده" + +msgid "2D Editor Pan Speed" +msgstr "تندی سراسرنمایی ویراستار دوبعدی" + msgid "Tiles Editor" msgstr "ویراستار کاشیها" @@ -1266,7 +1383,7 @@ msgid "Binary Format" msgstr "چارچوب باینری" msgid "Embed PCK" -msgstr "جاسازی PCK" +msgstr "نهادینهسازی پی.سی.کی" msgid "Texture Format" msgstr "چارچوب بافت" @@ -1290,10 +1407,10 @@ msgid "Bone Renamer" msgstr "بازنامگذار استخوان" msgid "Unique Node" -msgstr "گرهٔ بیهمتا" +msgstr "گرهٔ یکتا" msgid "Make Unique" -msgstr "بیهمتا سازی" +msgstr "یکتا سازی" msgid "Apply Node Transforms" msgstr "بکاربستن ترادیسیهای گره" @@ -1389,13 +1506,16 @@ msgid "Root Scale" msgstr "مقیاس ریشه" msgid "Import as Skeleton Bones" -msgstr "درونبرد بعنوان استخوانهای استخوانبندی" +msgstr "درونبرد بهعنوان استخوانهای استخوانبندی" msgid "Meshes" msgstr "مشها" +msgid "Light Baking" +msgstr "پخت نور" + msgid "FPS" -msgstr "لحظه بر ثانیه" +msgstr "فریم بر ثانیه" msgid "Trimming" msgstr "در حال تراشیدن" @@ -1458,7 +1578,7 @@ msgid "Process" msgstr "فرآیند" msgid "HDR as sRGB" -msgstr "HDR بعنوان sRGB" +msgstr "HDR بهعنوان sRGB" msgid "SVG" msgstr "SVG" @@ -1518,17 +1638,20 @@ msgstr "شناسهٔ دگرگزین" msgid "Speed" msgstr "سرعت" +msgid "Duration" +msgstr "مدت" + msgid "Script" msgstr "اسکریپت" msgid "Naming" -msgstr "نامگذاشتن" +msgstr "نامگذاری" msgid "Reimport Missing Imported Files" -msgstr "وارد کردن دوباره فایل های وارد شده پیدانشده" +msgstr "دوباره درونبرد کردن پروندههای درونبردشدهٔ از جا افتاده" msgid "Use Multiple Threads" -msgstr "بکارگیری چندین ریسه" +msgstr "بهکارگیری چندین ریسه" msgid "Plugin Name" msgstr "نام افزایه" @@ -1542,6 +1665,9 @@ msgstr "حالت کم پردازنده" msgid "Print FPS" msgstr "چاپ FPS" +msgid "Print GPU Profile" +msgstr "چاپ نمایهٔ کارت گرفیک" + msgid "Physics Interpolation" msgstr "میانیابی فیزیکی" @@ -1554,6 +1680,9 @@ msgstr "بیشینهٔ هشدار بر ثانیه" msgid "Driver" msgstr "درایور" +msgid "GL Compatibility" +msgstr "سازگاری با جی.ال" + msgid "Renderer" msgstr "نماپرداز" @@ -1569,6 +1698,9 @@ msgstr "مجاز" msgid "Threads" msgstr "ریسهها" +msgid "Display Server" +msgstr "سرور نمایشگر" + msgid "Handheld" msgstr "دستی" @@ -1593,21 +1725,27 @@ msgstr "جستجو در پسوند پرونده" msgid "Mouse Cursor" msgstr "نشانگر موس" +msgid "Custom Image" +msgstr "تصویر سفارشی" + msgid "Tooltip Position Offset" msgstr "بازه از مبدای نهشت پندابزار" msgid "Show Image" msgstr "نمایش تصویر" -msgid "Image" -msgstr "عکس" - msgid "Fullsize" msgstr "اندازه کامل" msgid "Use Filter" msgstr "بکاربردن پالایه" +msgid "Image" +msgstr "عکس" + +msgid "Minimum Display Time" +msgstr "کمینهٔ زمان نمایش" + msgid "Dotnet" msgstr "داتنت" @@ -1621,7 +1759,7 @@ msgid "Physics Process" msgstr "فرآیند فیزیک" msgid "Navigation Process" -msgstr "فرآیند رهیابی" +msgstr "فرآیند ناوبری" msgid "Resources" msgstr "بنمایهها" @@ -1630,13 +1768,13 @@ msgid "Video" msgstr "ویدیو" msgid "Physics 2D" -msgstr "فیزیک ۲بعدی" +msgstr "فیزیک دوبعدی" msgid "Islands" msgstr "جزایر" msgid "Physics 3D" -msgstr "فیزیک ۳بعدی" +msgstr "فیزیک سهبعدی" msgid "Active Maps" msgstr "نقشههای فعال" @@ -1657,7 +1795,7 @@ msgid "Collision" msgstr "برخوردگاه" msgid "Use Collision" -msgstr "بکارگیری برخوردگاه" +msgstr "بهکارگیری برخوردگاه" msgid "Collision Layer" msgstr "لایهٔ برخوردگاه" @@ -1723,7 +1861,10 @@ msgid "Language Server" msgstr "سرور زبان" msgid "Use Thread" -msgstr "بکارگیری ریسه" +msgstr "بهکارگیری ریسه" + +msgid "Bake FPS" +msgstr "پخت فریم بر ثانیه" msgid "glTF" msgstr "glTF" @@ -1762,7 +1903,7 @@ msgid "Materials" msgstr "جنس" msgid "Scene Name" -msgstr "نام پرده" +msgstr "نام صحنه" msgid "Root Nodes" msgstr "گرههای ریشهای" @@ -1780,10 +1921,10 @@ msgid "Lights" msgstr "نورها" msgid "Unique Names" -msgstr "نامهای بیهمتا" +msgstr "نامهای یکتا" msgid "Unique Animation Names" -msgstr "نامهای بیهمتای پویانمایی" +msgstr "نامهای یکتای پویانمایی" msgid "Skeletons" msgstr "استخوانبندیها" @@ -1834,20 +1975,35 @@ msgid "Priority" msgstr "الویت" msgid "Bake Navigation" -msgstr "پخت رهیابی" +msgstr "پخت ناوبری" msgid "Fade Time" msgstr "زمان پریدگی" +msgid "Jolt Physics 3D" +msgstr "فیزیک جولت سهبعدی" + +msgid "World Node" +msgstr "گرهٔ جهان" + msgid "Region Size" msgstr "اندازهٔ دامنه" +msgid "Enable TLS V 1" +msgstr "بهکاراندازی تی.ال.اس نسخهٔ ۱" + msgid "Loop Offset" msgstr "بازه از مبدای چرخه" msgid "IOD" msgstr "آیاودی" +msgid "Display Width" +msgstr "پهنای نمایشگر" + +msgid "Vulkan VRS" +msgstr "وی.آر.اس وولکان" + msgid "Visibility Update Mode" msgstr "حالت بهروزرسانی پدیداری" @@ -1861,13 +2017,25 @@ msgid "Fractal" msgstr "برخالی" msgid "Width" -msgstr "عرض" +msgstr "پهنا" + +msgid "In 3D Space" +msgstr "در فضای سهبعدی" msgid "Seamless" msgstr "یکپارچه" +msgid "Display Refresh Rate" +msgstr "نرخ نوگردانی نمایشگر" + +msgid "Layer Viewport" +msgstr "دیدگسترهٔ لایه" + +msgid "Aspect Ratio" +msgstr "نسبت نما" + msgid "Central Angle" -msgstr "زاویهٔ کانونی" +msgstr "زاویهٔ مرکزی" msgid "Motion Range" msgstr "برد جنبش" @@ -1912,7 +2080,7 @@ msgid "Code" msgstr "کد" msgid "Unique Name" -msgstr "نام بیهمتا" +msgstr "نام یکتا" msgid "Graphics" msgstr "گرافیک" @@ -2052,6 +2220,12 @@ msgstr "HTML" msgid "File Version" msgstr "نسخهٔ پرونده" +msgid "Product Version" +msgstr "نسخهٔ فرآورده" + +msgid "Company Name" +msgstr "نام شرکت" + msgid "Product Name" msgstr "نام کالا" @@ -2073,6 +2247,9 @@ msgstr "پخش خودکار" msgid "Attenuation" msgstr "کاهانش" +msgid "Panning Strength" +msgstr "قدرت سراسرنمایی" + msgid "Playback Type" msgstr "گونهٔ بازنواخت" @@ -2239,7 +2416,7 @@ msgid "Energy" msgstr "انرژی" msgid "Blend Mode" -msgstr "حالت درآمیختن" +msgstr "حالت درآمیزی" msgid "Z Min" msgstr "کمینهٔ Z" @@ -2292,8 +2469,14 @@ msgstr "حالت مفصل" msgid "Border" msgstr "مرز" +msgid "Pathfinding" +msgstr "مسیریابی" + msgid "Navigation Layers" -msgstr "لایههای رهیابی" +msgstr "لایههای ناوبری" + +msgid "Pathfinding Algorithm" +msgstr "الگوریتم مسیریابی" msgid "Path Postprocessing" msgstr "پسپردازش مسیر" @@ -2307,12 +2490,27 @@ msgstr "سادهسازی مسیر" msgid "Simplify Epsilon" msgstr "سادهسازی اپسیلون" +msgid "Avoidance" +msgstr "پرهیز" + +msgid "Avoidance Enabled" +msgstr "پرهیزِ بهکارافتاده" + msgid "Max Neighbors" msgstr "بیشینهی همسایگان" msgid "Max Speed" msgstr "تندی بیشینه" +msgid "Avoidance Layers" +msgstr "لایهها پرهیز" + +msgid "Avoidance Mask" +msgstr "ماسک پرهیز" + +msgid "Avoidance Priority" +msgstr "اولویت پرهیز" + msgid "Use Custom" msgstr "بکاربردن سفارشی" @@ -2329,10 +2527,10 @@ msgid "Vertices" msgstr "رئوس" msgid "NavigationMesh" -msgstr "مش رهیابی" +msgstr "مش ناوبری" msgid "Navigation Polygon" -msgstr "چندضلعی رهیابی" +msgstr "چندضلعی ناوبری" msgid "Skew" msgstr "کجی" @@ -2416,7 +2614,7 @@ msgid "Point" msgstr "نقطه" msgid "Point Center" -msgstr "کانون نقطه" +msgstr "مرکز نقطه" msgid "Linear Damp" msgstr "میرایی خطی" @@ -2461,7 +2659,7 @@ msgid "Safe Margin" msgstr "لبهٔ امن" msgid "Disable Mode" -msgstr "حالت ازکارانداختن" +msgstr "حالت ازکاراندازی" msgid "Pickable" msgstr "برداشتنی" @@ -2491,7 +2689,7 @@ msgid "Node B" msgstr "گرهٔ B" msgid "Disable Collision" -msgstr "ازکارانداختن برخوردگاه" +msgstr "ازکاراندازی برخوردگاه" msgid "Softness" msgstr "نرمی" @@ -2509,10 +2707,10 @@ msgid "Target Velocity" msgstr "سرعت هدف" msgid "Bone 2D Nodepath" -msgstr "مسیر گرهٔ استخوان ۲بعدی" +msgstr "مسیر گرهٔ استخوان دوبعدی" msgid "Bone 2D Index" -msgstr "اندیس استخوان ۲بعدی" +msgstr "اندیس استخوان دوبعدی" msgid "Auto Configure Joint" msgstr "پیکربندی خودکار مفصل" @@ -2560,7 +2758,7 @@ msgid "Freeze Mode" msgstr "حالت یخزدگی" msgid "Solver" -msgstr "چارهجو" +msgstr "حلکننده" msgid "Linear" msgstr "خطی" @@ -2624,16 +2822,16 @@ msgid "Collision Visibility Mode" msgstr "حالت پدیداری برخوردگاه" msgid "Navigation Visibility Mode" -msgstr "حالت پدیداری رهیابی" +msgstr "حالت پدیداری ناوبری" msgid "Collision Enabled" -msgstr "بکاراندازی برخوردگاه" +msgstr "بهکاراندازی برخوردگاه" msgid "Use Kinematic Bodies" msgstr "بکاربردن بدنهای جنبشی" msgid "Navigation Enabled" -msgstr "رهیابی بکارانداخته شده" +msgstr "ناوبری بکارانداخته شده" msgid "Texture Normal" msgstr "بهنجاری بافت" @@ -2674,6 +2872,9 @@ msgstr "نام استخوان" msgid "Override Pose" msgstr "ژست بازنویسی" +msgid "Keep Aspect" +msgstr "نگهداری نما" + msgid "Cull Mask" msgstr "گردآوری ماسک" @@ -2690,7 +2891,7 @@ msgid "Rotate Y" msgstr "چرخش Y" msgid "Disable Z" -msgstr "ازکارانداختن Z" +msgstr "ازکاراندازی Z" msgid "Flatness" msgstr "تختی" @@ -2813,7 +3014,13 @@ msgid "Bounces" msgstr "واگشتها" msgid "Use Texture for Bounces" -msgstr "بکارگیری بافت برای واگشتها" +msgstr "بهکارگیری بافت برای واگشتها" + +msgid "Use Denoiser" +msgstr "بهکارگیری نوفهزدا" + +msgid "Denoiser Range" +msgstr "برد نوفهزدا" msgid "Max Texture Size" msgstr "بیشینهٔ اندازهٔ بافت" @@ -2824,6 +3031,12 @@ msgstr "هدف گره" msgid "From" msgstr "از" +msgid "Transition Type" +msgstr "گونهٔ گذار" + +msgid "Use 3D Avoidance" +msgstr "بهکارگیری پرهیز سهبعدی" + msgid "Quaternion" msgstr "کواترنیون" @@ -2884,6 +3097,12 @@ msgstr "سفر" msgid "Max Force" msgstr "نیروی بیشینه" +msgid "Blend Distance" +msgstr "فاصلهٔ درآمیزی" + +msgid "Reflection Mask" +msgstr "لایهٔ بازتاب" + msgid "Deprecated" msgstr "منسوخ" @@ -2902,11 +3121,14 @@ msgstr "هندسه" msgid "Custom AABB" msgstr "AABB سفارشی" +msgid "Global Illumination" +msgstr "روشنایی جهانی" + msgid "Dynamic Range" msgstr "برد پویا" msgid "Use Two Bounces" -msgstr "بکارگیری دو واگشت" +msgstr "بهکارگیری دو واگشت" msgid "Body Tracker" msgstr "ردگیر بدن" @@ -2944,6 +3166,12 @@ msgstr "دیرکرد" msgid "Input Count" msgstr "شمار درونداد" +msgid "Request" +msgstr "درخواست" + +msgid "Blend Amount" +msgstr "مقدار درآمیزی" + msgid "Current Index" msgstr "اندیس کنونی" @@ -2971,6 +3199,9 @@ msgstr "پویانمایی کنونی" msgid "Playback Options" msgstr "گزینههای بازنواخت" +msgid "Default Blend Time" +msgstr "زمان درآمیزی پیشفرض" + msgid "Animation Path" msgstr "مسیر پویانمایی" @@ -2989,6 +3220,9 @@ msgstr "میانبر در پندابزار" msgid "Text Behavior" msgstr "رفتار نوشتار" +msgid "Icon Behavior" +msgstr "رفتار آیکن" + msgid "Use Top Left" msgstr "بکاربردن چپ بالا" @@ -3076,6 +3310,9 @@ msgstr "نمایش توری" msgid "Snapping Enabled" msgstr "چفت بکار افتاده" +msgid "Panning Scheme" +msgstr "طرح سراسرنمایی" + msgid "Connection Lines" msgstr "خطهای اتصال" @@ -3202,6 +3439,9 @@ msgstr "روی" msgid "Progress Offset" msgstr "بازه از مبدای پیشرفت" +msgid "Expand Mode" +msgstr "حالت گسترش" + msgid "Scroll Horizontal Enabled" msgstr "پیمایش افقی بکارافتاده" @@ -3233,7 +3473,7 @@ msgid "Z Index" msgstr "اندیس Z" msgid "Z as Relative" -msgstr "Z بعنوان نسبی" +msgstr "Z بهعنوان نسبی" msgid "Y Sort Enabled" msgstr "چینش Y فعال است" @@ -3253,6 +3493,9 @@ msgstr "بارگیری اندازهٔ چانک" msgid "Body Size Limit" msgstr "محدودیت اندازهٔ بدن" +msgid "Timeout" +msgstr "وقفه" + msgid "Transfer Mode" msgstr "حالت انتقال" @@ -3271,18 +3514,24 @@ msgstr "ترجمهٔ خودکار" msgid "Editor Description" msgstr "شرح ویراستار" +msgid "Time Left" +msgstr "زمان بازمانده" + msgid "Shapes" msgstr "شکلها" +msgid "Geometry Width" +msgstr "پهنای هندسه" + msgid "Draw 2D Outlines" msgstr "کشیدن پیراخطهای دوبعدی" +msgid "Viewport" +msgstr "دیدگستره (viewport)" + msgid "Anti Aliasing" msgstr "نادندانگی" -msgid "HDR 2D" -msgstr "(HDR) ۲بعدی" - msgid "Use TAA" msgstr "بکاربردن TAA" @@ -3293,25 +3542,52 @@ msgid "Snap 2D Transforms to Pixel" msgstr "چفت ترادیسیهای دوبعدی به پیکسل" msgid "Snap 2D Vertices to Pixel" -msgstr "چفت رأسها به پیکسل" +msgstr "چفت رأسهای دوبعدی به پیکسل" + +msgid "VRS" +msgstr "وی.آر.اس" + +msgid "Lights and Shadows" +msgstr "نورها و سایهها" msgid "SDF" msgstr "اسدیاف" +msgid "Viewport Path" +msgstr "مسیر دیدگستره" + +msgid "Disable 3D" +msgstr "ازکاراندازی سهبعدی" + +msgid "World 3D" +msgstr "جهان سهبعدی" + msgid "Handle Input Locally" msgstr "بومی رسیدگی کردن به درونداد" msgid "Use HDR 2D" -msgstr "بکاربردن (HDR) ۲بعدی" +msgstr "بهکارگیری اچ.دی.آر دوبعدی" msgid "FSR Sharpness" msgstr "تیزی FSR" +msgid "Canvas Items" +msgstr "موارد بوم" + msgid "Audio Listener" msgstr "شونده صوتی" +msgid "Enable 2D" +msgstr "بهکاراندازی دوبعدی" + +msgid "Enable 3D" +msgstr "بهکاراندازی سهبعدی" + msgid "Disable Input" -msgstr "ازکارانداختن درونداد" +msgstr "ازکاراندازی درونداد" + +msgid "Size 2D Override" +msgstr "بازنویسی اندازهٔ دوبعدی" msgid "Render Target" msgstr "هدف نماپردازش" @@ -3322,17 +3598,26 @@ msgstr "صفحه کنونی" msgid "Exclusive" msgstr "انحصاری" +msgid "Layer Names" +msgstr "نام لایهها" + msgid "2D Render" -msgstr "نماپردازش ۲بعدی" +msgstr "نماپردازش دوبعدی" msgid "3D Render" -msgstr "نماپردازش ۳بعدی" +msgstr "نماپردازش سهبعدی" msgid "2D Physics" -msgstr "فیزیک ۲بعدی" +msgstr "فیزیک دوبعدی" + +msgid "2D Navigation" +msgstr "ناوبری دوبعدی" msgid "3D Physics" -msgstr "فیزیک ۳بعدی" +msgstr "فیزیک سهبعدی" + +msgid "3D Navigation" +msgstr "ناوبری سهبعدی" msgid "Cells" msgstr "یاختهها" @@ -3343,6 +3628,9 @@ msgstr "A" msgid "B" msgstr "بایت" +msgid "Bone 2D Node" +msgstr "گرهٔ استخوان دوبعدی" + msgid "Right Corner" msgstr "گوشهٔ راست" @@ -3365,10 +3653,10 @@ msgid "Custom Data Layers" msgstr "لایههای سفارشی داده" msgid "Scenes" -msgstr "پردهها" +msgstr "صحنهها" msgid "Scene" -msgstr "پرده" +msgstr "صحنه" msgid "Texture Origin" msgstr "خاستگاه بافت" @@ -3389,7 +3677,7 @@ msgid "Mesh Transform" msgstr "ترادیسی مش" msgid "Navigation Mesh Transform" -msgstr "ترادیسی مش رهیابی" +msgstr "ترادیسی مش ناوبری" msgid "Preview" msgstr "پیش نمایش" @@ -3406,6 +3694,9 @@ msgstr "استخوان" msgid "Sky" msgstr "آسمان" +msgid "Horizon Color" +msgstr "رنگ افق" + msgid "Panorama" msgstr "پانوراما" @@ -3424,12 +3715,18 @@ msgstr "چارچوب" msgid "Stereo" msgstr "استریو" +msgid "Sensitivity" +msgstr "حساسیت" + msgid "Far Transition" msgstr "گذار دور" msgid "Near Transition" msgstr "گذار نزدیک" +msgid "Min Sensitivity" +msgstr "کمینهٔ حساسیت" + msgid "Camera Is Active" msgstr "دوربین فعال است" @@ -3526,6 +3823,9 @@ msgstr "روشنایی" msgid "Contrast" msgstr "تضاد" +msgid "Saturation" +msgstr "سیری" + msgid "Features" msgstr "ویژگیها" @@ -3592,14 +3892,20 @@ msgstr "MSDF" msgid "Pixel Range" msgstr "برد پیکسل" +msgid "Blend Shape Mode" +msgstr "حالت شکل درآمیزی" + msgid "Base Texture" msgstr "بافت پایه" msgid "Transform Format" msgstr "چارچوب ترادیسی" +msgid "Baking AABB" +msgstr "پخت ای.ای.بی.بی" + msgid "Damping as Friction" -msgstr "میرایی بعنوان اصطحکاک" +msgstr "میرایی بهعنوان اصطحکاک" msgid "Scale Curve" msgstr "کمانهٔ مقیاس" @@ -3623,7 +3929,7 @@ msgid "Process Mode" msgstr "حالت پردازش" msgid "Blend" -msgstr "درآمیختن" +msgstr "درآمیزی" msgid "Top Left" msgstr "چپ بالا" @@ -3673,6 +3979,9 @@ msgstr "تابع" msgid "Hint" msgstr "راهنمایی" +msgid "Mode 2D" +msgstr "حالت دوبعدی" + msgid "Font Outline Color" msgstr "رنگ پیراخط قلم" @@ -3682,12 +3991,18 @@ msgstr "پیکان" msgid "Arrow Margin" msgstr "لبهٔ پیکان" +msgid "Unchecked" +msgstr "بررسینشده" + msgid "Shadow Outline Size" msgstr "اندازهٔ پیراخط سایه" msgid "Minimum Character Width" msgstr "کمینهٔ پهنای نویسه" +msgid "Caret Width" +msgstr "پهنای هشتک" + msgid "Clear" msgstr "پاک کردن" @@ -3703,6 +4018,12 @@ msgstr "تیک" msgid "Updown" msgstr "بالاپایین" +msgid "Embedded Border" +msgstr "مرز نهادینهشده" + +msgid "Embedded Unfocused Border" +msgstr "مرز نامتمرکز نهادینهشده" + msgid "Title Outline Size" msgstr "اندازهٔ پیراخط عنوان" @@ -3718,6 +4039,9 @@ msgstr "جداگر" msgid "Submenu" msgstr "زیرگزینگان" +msgid "Font Separator" +msgstr "جداگر قلم" + msgid "Font Separator Outline Color" msgstr "رنگ پیراخط جداگر قلم" @@ -3845,7 +4169,7 @@ msgid "Predelay" msgstr "پیشدیرکرد" msgid "Enable Input" -msgstr "بکاراندازی درونداد" +msgstr "بهکاراندازی درونداد" msgid "Output Device" msgstr "دستگاه برونداد" @@ -3859,17 +4183,26 @@ msgstr "مقیاس تندی بازنواخت" msgid "Is Active" msgstr "فعال است" +msgid "Movie Writer" +msgstr "فیلمنویس" + msgid "Metadata Flags" msgstr "پرچمهای فراداده" msgid "Default Link Connection Radius" msgstr "شعاع پیشفرض پیوند اتصال" +msgid "World" +msgstr "جهان" + +msgid "Baking" +msgstr "پخت" + msgid "Link Connection Color" msgstr "رنگ پیوند اتصال" msgid "Enable Link Connections" -msgstr "بکاراندازی پیوند اتصالات" +msgstr "بهکاراندازی پیوند اتصالات" msgid "Inverse Inertia" msgstr "ماندگری وارونه" @@ -3877,6 +4210,12 @@ msgstr "ماندگری وارونه" msgid "Canvas Instance ID" msgstr "شناسهٔ بوم نمونه" +msgid "Default Gravity" +msgstr "گرانش پیشفرض" + +msgid "Default Gravity Vector" +msgstr "بردار گرانش پیشفرض" + msgid "Default Linear Damp" msgstr "میرایی خطی پیشفرض" @@ -3931,11 +4270,20 @@ msgstr "کامپایلر سایهزن" msgid "Shader Cache" msgstr "کش سایهزن" +msgid "Reflections" +msgstr "بازتابها" + +msgid "Sky Reflections" +msgstr "بازتابهای آسمان" + msgid "Texture Array Reflections" msgstr "بازتابهای آرایهٔ بافت" +msgid "Reflection Size" +msgstr "اندازهٔ بازتاب" + msgid "Reflection Count" -msgstr "تعداد بازتاب" +msgstr "شمار بازتاب" msgid "Use Half Resolution" msgstr "استفاده از وضوح نیمه" @@ -3952,6 +4300,9 @@ msgstr "اندازه نیمه" msgid "Adaptive Target" msgstr "هدف سازوار" +msgid "HDR 2D" +msgstr "اچ.دی.آر دوبعدی" + msgid "Decals" msgstr "برگردانها" @@ -3977,7 +4328,7 @@ msgid "Shader Language" msgstr "زبان سایهزن" msgid "Treat Warnings as Errors" -msgstr "رفتار کردن با هشدارها بعنوان خطا" +msgstr "رفتار کردن با هشدارها بهعنوان خطا" msgid "Has Tracking Data" msgstr "دادهٔ ردیابیشده دارد" @@ -3985,9 +4336,18 @@ msgstr "دادهٔ ردیابیشده دارد" msgid "Body Flags" msgstr "پرچمهای بدن" +msgid "Blend Shapes" +msgstr "شکلهای درآمیزی" + msgid "Hand Tracking Source" msgstr "سرچشمهٔ ردیابی دست" +msgid "VRS Min Radius" +msgstr "کمینهٔ شعاع وی.آر.اس" + +msgid "VRS Strength" +msgstr "قدرت وی.آر.اس" + msgid "World Origin" msgstr "خاستگاه جهان" diff --git a/engine/editor/translations/properties/fr.po b/engine/editor/translations/properties/fr.po index 1ce30a0b..8aed68ae 100644 --- a/engine/editor/translations/properties/fr.po +++ b/engine/editor/translations/properties/fr.po @@ -908,9 +908,6 @@ msgstr "Délai de requête expiré (Timeout)" msgid "Sync Breakpoints" msgstr "Synchroniser les point d'arrêts" -msgid "Default Feature Profile" -msgstr "Profil de fonctionalités par défaut" - msgid "Label" msgstr "Label" @@ -2712,9 +2709,6 @@ msgstr "Nom du plugin" msgid "Autoload on Startup" msgstr "Chargement automatique au démarrage" -msgid "Use Favorites Root Selection" -msgstr "Utiliser la sélection racine des favoris" - msgid "Flush stdout on Print" msgstr "Vider stdout à l'impression" @@ -2931,15 +2925,15 @@ msgstr "Décalage de la position des info-bulles" msgid "Show Image" msgstr "Afficher l'image" -msgid "Image" -msgstr "Image" - msgid "Fullsize" msgstr "Pleine taille" msgid "Use Filter" msgstr "Utiliser le filtrage" +msgid "Image" +msgstr "Image" + msgid "Minimum Display Time" msgstr "Temps d'affichage minimum" @@ -3627,9 +3621,6 @@ msgstr "Vulkan VRS" msgid "Min Radius" msgstr "Rayon minimal" -msgid "Spawnable Scenes" -msgstr "Scènes pouvant apparaitre" - msgid "Spawn Path" msgstr "Chemin d'apparition" @@ -7500,21 +7491,15 @@ msgstr "Contacts affichés maximum" msgid "Draw 2D Outlines" msgstr "Dessiner les contours 2D" -msgid "Anti Aliasing" -msgstr "Anticrénelage" - -msgid "MSAA 2D" -msgstr "2D MSAA" - -msgid "MSAA 3D" -msgstr "3D MSAA" - msgid "Viewport" msgstr "Fenêtre d'affichage" msgid "Transparent Background" msgstr "Transparence d'arrière-plan" +msgid "Anti Aliasing" +msgstr "Anticrénelage" + msgid "Screen Space AA" msgstr "Écran d'espace AA" @@ -7554,9 +7539,6 @@ msgstr "Ombre positionnelle" msgid "Atlas Size" msgstr "Taille de l'Atlas" -msgid "Atlas 16 Bits" -msgstr "Atlas 16 bits" - msgid "SDF" msgstr "CDS" @@ -7599,6 +7581,12 @@ msgstr "Arrière-plan transparent" msgid "Handle Input Locally" msgstr "Gérer les entrées localement" +msgid "MSAA 2D" +msgstr "2D MSAA" + +msgid "MSAA 3D" +msgstr "3D MSAA" + msgid "Debug Draw" msgstr "Déboguer appel de dessin" @@ -10014,6 +10002,9 @@ msgstr "Utiliser les unités de lumière physique" msgid "Soft Shadow Filter Quality" msgstr "Filtre de qualité d'ombre douce" +msgid "Atlas 16 Bits" +msgstr "Atlas 16 bits" + msgid "Shadow Atlas" msgstr "Atlas d'ombres" diff --git a/engine/editor/translations/properties/ga.po b/engine/editor/translations/properties/ga.po index 71d68d15..641097d8 100644 --- a/engine/editor/translations/properties/ga.po +++ b/engine/editor/translations/properties/ga.po @@ -3,12 +3,12 @@ # Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. # This file is distributed under the same license as the Godot source code. # Rónán Quill <ronan085@gmail.com>, 2019, 2020. -# Aindriú Mac Giolla Eoin <aindriu80@gmail.com>, 2024. +# Aindriú Mac Giolla Eoin <aindriu80@gmail.com>, 2024, 2025. msgid "" msgstr "" "Project-Id-Version: Godot Engine properties\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" -"PO-Revision-Date: 2024-08-14 13:00+0000\n" +"PO-Revision-Date: 2025-02-27 18:37+0000\n" "Last-Translator: Aindriú Mac Giolla Eoin <aindriu80@gmail.com>\n" "Language-Team: Irish <https://hosted.weblate.org/projects/godot-engine/godot-" "properties/ga/>\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : (n>2 && n<7) ? 2 :(n>6 " "&& n<11) ? 3 : 4;\n" -"X-Generator: Weblate 5.7-dev\n" +"X-Generator: Weblate 5.10.2-rc\n" msgid "Application" msgstr "Iarratas" @@ -121,6 +121,9 @@ msgstr "Leathnaigh go Teideal" msgid "No Focus" msgstr "Gan Fócas" +msgid "Sharp Corners" +msgstr "Cúinní Géar" + msgid "Window Width Override" msgstr "Sáraigh Leithead na Fuinneoige" @@ -184,9 +187,18 @@ msgstr "Fofhuinneoga" msgid "Embed Subwindows" msgstr "Leabú Subwindows" +msgid "Frame Pacing" +msgstr "Pacáil Fráma" + msgid "Android" msgstr "Android" +msgid "Enable Frame Pacing" +msgstr "Cumasaigh Pacáil Fráma" + +msgid "Swappy Mode" +msgstr "Mód Swappy" + msgid "Physics" msgstr "Fisic" @@ -331,6 +343,9 @@ msgstr "Uasmhéid (MB)" msgid "Texture Upload Region Size Px" msgstr "Uigeacht Uaslódáil Réigiún Méid Px" +msgid "Texture Download Region Size Px" +msgstr "Uigeacht Íoslódáil Réigiún Méid Px" + msgid "Pipeline Cache" msgstr "Taisce píblíne" @@ -406,6 +421,9 @@ msgstr "Smúdú Delta" msgid "Print Error Messages" msgstr "Priontáil Teachtaireachtaí Earráide" +msgid "Print to stdout" +msgstr "Priontáil chuig stdout" + msgid "Physics Ticks per Second" msgstr "Ticeanna Fisice in aghaidh an tSoicind" @@ -439,6 +457,21 @@ msgstr "Comhoiriúnacht" msgid "Legacy Just Pressed Behavior" msgstr "Oidhreacht Díreach Brúite Iompar" +msgid "Sensors" +msgstr "Braiteoirí" + +msgid "Enable Accelerometer" +msgstr "Cumasaigh méadair luasghéaraithe" + +msgid "Enable Gravity" +msgstr "Cumasaigh Domhantarraingt" + +msgid "Enable Gyroscope" +msgstr "Cumasaigh Gíreascóip" + +msgid "Enable Magnetometer" +msgstr "Cumasaigh Maighnéadiméadar" + msgid "Device" msgstr "Gléas" @@ -775,15 +808,18 @@ msgstr "Teorainn ama a iarraidh" msgid "Sync Breakpoints" msgstr "Sioncrónaigh Brisphointí" -msgid "Default Feature Profile" -msgstr "Próifíl Gné Réamhshocraithe" - msgid "Label" msgstr "Lipéad" msgid "Read Only" msgstr "Léigh Amháin" +msgid "Draw Label" +msgstr "Tarraing Lipéad" + +msgid "Draw Background" +msgstr "Tarraing Cúlra" + msgid "Checkable" msgstr "Inseiceáilte" @@ -802,6 +838,12 @@ msgstr "In-scriosta" msgid "Selectable" msgstr "Inroghnaithe" +msgid "Use Folding" +msgstr "Úsáid Fillte" + +msgid "Name Split Ratio" +msgstr "Cóimheas Scoilte Ainm" + msgid "Distraction Free Mode" msgstr "Mód Saor in Aisce Distraction" @@ -874,6 +916,9 @@ msgstr "Suíomh Fophicteilíní Cló" msgid "Font Disable Embedded Bitmaps" msgstr "Cló Díchumasaigh Mapaí Giotán Leabaithe" +msgid "Font Allow MSDF" +msgstr "Cló Ceadaigh MSDF" + msgid "Main Font" msgstr "Príomhchló" @@ -931,6 +976,9 @@ msgstr "Dugaí" msgid "Scene Tree" msgstr "Crann Radhairc" +msgid "Ask Before Revoking Unique Name" +msgstr "Fiafraigh Roimh duit Ainm Uathúil a Chúlghairm" + msgid "Inspector" msgstr "Cigire" @@ -1066,9 +1114,27 @@ msgstr "Mód Taispeána" msgid "Thumbnail Size" msgstr "Méid na Mionsamhlacha" +msgid "Quick Open Dialog" +msgstr "Dialóg Oscailte Tapa" + msgid "Max Results" msgstr "Torthaí Uasta" +msgid "Show Search Highlight" +msgstr "Taispeáin Aibhsiú an Chuardaigh" + +msgid "Enable Fuzzy Matching" +msgstr "Cumasaigh Meaitseáil Doiléir" + +msgid "Max Fuzzy Misses" +msgstr "Uas Fuzzy Misses" + +msgid "Include Addons" +msgstr "Cuir Addons san áireamh" + +msgid "Default Display Mode" +msgstr "Mód Taispeána Réamhshocraithe" + msgid "Import" msgstr "Iompórtáil" @@ -1111,12 +1177,18 @@ msgstr "Leathnaigh go hUathoibríoch go Roghnaithe" msgid "Center Node on Reparent" msgstr "Nód Ionaid ar Reparent" +msgid "Hide Filtered Out Parents" +msgstr "Folaigh Tuismitheoirí Scagtha Amach" + msgid "Always Show Folders" msgstr "Taispeáin Fillteáin i gCónaí" msgid "TextFile Extensions" msgstr "Iarmhíreanna Téacschomhaid" +msgid "Other File Extensions" +msgstr "Eisínteachtaí Comhad Eile" + msgid "Property Editor" msgstr "Eagarthóir Maoine" @@ -1207,6 +1279,9 @@ msgstr "Tarraing Spásanna" msgid "Behavior" msgstr "Oibriú" +msgid "Empty Selection Clipboard" +msgstr "Gearrthaisce Roghnú Folamh" + msgid "Navigation" msgstr "Nascleanúint" @@ -1276,6 +1351,12 @@ msgstr "Athluchtaigh agus Parsáil Scripteanna go hUathoibríoch ar Sábháil" msgid "Open Dominant Script on Scene Change" msgstr "Oscail Script Cheannasach ar Athrú Radhairc" +msgid "Documentation" +msgstr "Doiciméadúchán" + +msgid "Enable Tooltips" +msgstr "Cumasaigh Leideanna Uirlisí" + msgid "Script List" msgstr "Liosta Scripteanna" @@ -1291,6 +1372,9 @@ msgstr "Teocht na Scripte Cumasaithe" msgid "Script Temperature History Size" msgstr "Script Teocht Stair Méid" +msgid "Highlight Scene Scripts" +msgstr "Scripteanna Radharc Aibhsigh" + msgid "Group Help Pages" msgstr "Leathanaigh Chabhrach Ghrúpa" @@ -1315,6 +1399,9 @@ msgstr "Críochnú" msgid "Idle Parse Delay" msgstr "Moill pharsála díomhaoin" +msgid "Idle Parse Delay With Errors Found" +msgstr "Moill Parse Díomhaoin Le Earráidí Aimsithe" + msgid "Auto Brace Complete" msgstr "Auto Brace Críochnaithe" @@ -1441,6 +1528,18 @@ msgstr "Cnámh Roghnaithe" msgid "CSG" msgstr "CSGName" +msgid "GridMap Grid" +msgstr "Eangach GreilleLéarscáil" + +msgid "Spring Bone Joint" +msgstr "Comhpháirteach Cnámh Earraigh" + +msgid "Spring Bone Collision" +msgstr "Imbhualadh Cnámh an Earraigh" + +msgid "Spring Bone Inside Collision" +msgstr "Imbhualadh Taobh istigh Cnámh Earraigh" + msgid "Gizmo Settings" msgstr "Socruithe Gizmo" @@ -1492,6 +1591,9 @@ msgstr "Mothú Nascleanúna" msgid "Orbit Sensitivity" msgstr "Íogaireacht na Fithise" +msgid "Translation Sensitivity" +msgstr "Íogaireacht Aistriúcháin" + msgid "Orbit Inertia" msgstr "Táimhe na Fithise" @@ -1687,6 +1789,9 @@ msgstr "Uaslínte" msgid "Platforms" msgstr "Ardáin" +msgid "Linux/*BSD" +msgstr "Linux/*BSD" + msgid "Prefer Wayland" msgstr "Is fearr Wayland" @@ -1711,6 +1816,9 @@ msgstr "Méid Stair an Fhráma Próifíleora" msgid "Profiler Frame Max Functions" msgstr "Feidhmeanna Max Fráma Próifíleora" +msgid "Profiler Target FPS" +msgstr "Próifíleoir Sprioc FPS" + msgid "Remote Scene Tree Refresh Interval" msgstr "Eatramh Athnuachana Crann Radharc Cianda" @@ -1963,6 +2071,9 @@ msgstr "Maol" msgid "Hide Slider" msgstr "Folaigh an Sleamhnán" +msgid "Editing Integer" +msgstr "Slánuimhir á Eagarthóireacht" + msgid "Zoom" msgstr "Súmáil" @@ -1996,9 +2107,18 @@ msgstr "Normalú Rianta Suímh" msgid "Reset All Bone Poses After Import" msgstr "Athshocraigh gach cnámh tar éis na hiompórtála" +msgid "Retarget Method" +msgstr "Modh Retarget" + msgid "Keep Global Rest on Leftovers" msgstr "Coinnigh Scíth Dhomhanda ar Leftovers" +msgid "Use Global Pose" +msgstr "Úsáid Global Pose" + +msgid "Original Skeleton Name" +msgstr "Ainm Cnámharlach Bunaidh" + msgid "Fix Silhouette" msgstr "Deisigh Scáthchruth" @@ -2029,6 +2149,15 @@ msgstr "Gin Tangents" msgid "Generate LODs" msgstr "Gin LODanna" +msgid "Generate Shadow Mesh" +msgstr "Gin Mogall Scáth" + +msgid "Generate Lightmap UV2" +msgstr "Gin Lightmap UV2" + +msgid "Generate Lightmap UV2 Texel Size" +msgstr "Gin Lightmap UV2 Méid Texel" + msgid "Scale Mesh" msgstr "Mogalra Scála" @@ -2230,6 +2359,9 @@ msgstr "Fréamhscála" msgid "Import as Skeleton Bones" msgstr "Iompórtáil mar chnámha cnámharlaigh" +msgid "Use Node Type Suffixes" +msgstr "Úsáid Iarmhíreanna Cineál Nód" + msgid "Meshes" msgstr "Mogalraí" @@ -2299,6 +2431,9 @@ msgstr "Leidiú" msgid "Subpixel Positioning" msgstr "Suíomh Subpixel" +msgid "Keep Rounding Remainders" +msgstr "Coinnigh na hIarmhíreanna Slánaithe" + msgid "Oversampling" msgstr "Róshampláil" @@ -2501,6 +2636,9 @@ msgstr "Idx an Ghrúpa Reatha" msgid "Current Bone Idx" msgstr "Idx Cnámh Reatha" +msgid "Particles Emission Shape" +msgstr "Cruth Astaíochta Cáithníní" + msgid "ID" msgstr "Aitheantas" @@ -2579,9 +2717,6 @@ msgstr "Ainm an Bhreiseáin" msgid "Autoload on Startup" msgstr "Uathluchtaigh ag am tosaithe" -msgid "Use Favorites Root Selection" -msgstr "Úsáid Roghnú Fréimhe Ceanán" - msgid "Flush stdout on Print" msgstr "Stdout Flush ar Priontáil" @@ -2603,6 +2738,9 @@ msgstr "Stdout briathartha" msgid "Physics Interpolation" msgstr "Idirshuíomh Fisice" +msgid "Enable Warnings" +msgstr "Cumasaigh Rabhaidh" + msgid "Max Chars per Second" msgstr "Max Chars in aghaidh an tSoicind" @@ -2636,6 +2774,9 @@ msgstr "Fallback go Vulkan" msgid "Fallback to D3D12" msgstr "Fallback go D3D12" +msgid "Fallback to OpenGL 3" +msgstr "Fill ar ais go OpenGL 3" + msgid "GL Compatibility" msgstr "Comhoiriúnacht GL" @@ -2648,6 +2789,9 @@ msgstr "Fallback go Uillinn" msgid "Fallback to Native" msgstr "Fallback go Dúchasach" +msgid "Fallback to GLES" +msgstr "Till ar ais go GLES" + msgid "Force Angle on Devices" msgstr "Fórsáil Uillinn ar Ghléasanna" @@ -2744,15 +2888,36 @@ msgstr "Foláireamh Tosaithe" msgid "Extensions" msgstr "Iarmhíreanna" +msgid "Debug Utils" +msgstr "Utils dífhabhtaithe" + +msgid "Debug Message Types" +msgstr "Cineálacha Teachtaireachtaí Dífhabhtaithe" + msgid "Hand Tracking" msgstr "Rianú Láimhe" +msgid "Hand Tracking Unobstructed Data Source" +msgstr "Rianú Láimhe Foinse Sonraí Gan Bhac" + +msgid "Hand Tracking Controller Data Source" +msgstr "Foinse Sonraí Rialaitheora Rianaithe Láimhe" + msgid "Hand Interaction Profile" msgstr "Próifíl Idirghníomhaíochta Láimhe" msgid "Eye Gaze Interaction" msgstr "Idirghníomhaíocht Súl" +msgid "Binding Modifiers" +msgstr "Mionathraitheoirí Ceangailteacha" + +msgid "Analog Threshold" +msgstr "Tairseach Analógach" + +msgid "Dpad Binding" +msgstr "Ceangal Dpad" + msgid "Boot Splash" msgstr "Splancscáileán Tosaithe" @@ -2801,15 +2966,15 @@ msgstr "Fritháireamh Suímh Leideanna" msgid "Show Image" msgstr "Taispeáin Íomhá" -msgid "Image" -msgstr "Íomhá" - msgid "Fullsize" msgstr "Lánmhéid" msgid "Use Filter" msgstr "Úsáid scagaire" +msgid "Image" +msgstr "Íomhá" + msgid "Minimum Display Time" msgstr "Am Taispeána Íosta" @@ -2924,6 +3089,27 @@ msgstr "Imill Ceangailte" msgid "Edges Free" msgstr "Imill Saor in Aisce" +msgid "Obstacles" +msgstr "Constaicí" + +msgid "Pipeline" +msgstr "Píblíne" + +msgid "Compilations Canvas" +msgstr "Canbhás Tiomsú" + +msgid "Compilations Mesh" +msgstr "Mogalra Tiomsú" + +msgid "Compilations Surface" +msgstr "Dromchla Tiomsú" + +msgid "Compilations Draw" +msgstr "Tiomsuithe Tarraingthe" + +msgid "Compilations Specialization" +msgstr "Speisialtóireacht Tiomsú" + msgid "Operation" msgstr "Oibríocht" @@ -3005,6 +3191,9 @@ msgstr "Conair Shimpliú Uillinn" msgid "Path Rotation" msgstr "Rothlú an Chosáin" +msgid "Path Rotation Accurate" +msgstr "Rothlú Conair Cruinn" + msgid "Path Local" msgstr "Conair Logánta" @@ -3077,6 +3266,9 @@ msgstr "Uasmhéid Carn Glaonna" msgid "Exclude Addons" msgstr "Ná Cuir Breiseáin as an áireamh" +msgid "Renamed in Godot 4 Hint" +msgstr "Athainmníodh i Godot 4 Hint" + msgid "Language Server" msgstr "Freastalaí Teanga" @@ -3341,6 +3533,24 @@ msgstr "Leanaí" msgid "Light" msgstr "Solas" +msgid "glTF to Godot Expression" +msgstr "glTF a Slonn Godot" + +msgid "Godot to glTF Expression" +msgstr "Godot go glTF Slonn" + +msgid "Node Paths" +msgstr "Cosáin Nód" + +msgid "Object Model Type" +msgstr "Cineál Múnla Oibiachta" + +msgid "Json Pointers" +msgstr "Leideanna Json" + +msgid "Variant Type" +msgstr "Cineál Athróg" + msgid "Joints" msgstr "Ailt" @@ -3422,6 +3632,114 @@ msgstr "Am Céimnithe" msgid "Stream Count" msgstr "Líon na Sruthanna" +msgid "Jolt Physics 3D" +msgstr "Jolt fisic 3#d" + +msgid "Simulation" +msgstr "Insamhladh" + +msgid "Velocity Steps" +msgstr "Céimeanna Treoluas" + +msgid "Position Steps" +msgstr "Céimeanna an tSuímh" + +msgid "Use Enhanced Internal Edge Removal" +msgstr "Bain úsáid as Baint Imeall Inmheánach Feabhsaithe" + +msgid "Areas Detect Static Bodies" +msgstr "Limistéir a Bhrath Comhlachtaí Statach" + +msgid "Generate All Kinematic Contacts" +msgstr "Gin Gach Teagmhálaí Cinematic" + +msgid "Penetration Slop" +msgstr "Fána Treá" + +msgid "Speculative Contact Distance" +msgstr "Fad Teagmhála Amhantrach" + +msgid "Baumgarte Stabilization Factor" +msgstr "Fachtóir Cobhsaíochta Baumgarte" + +msgid "Soft Body Point Radius" +msgstr "Ga Bogphointe Coirp" + +msgid "Bounce Velocity Threshold" +msgstr "Tairseach Treoluas Preab" + +msgid "Allow Sleep" +msgstr "Ceadaigh Codladh" + +msgid "Sleep Velocity Threshold" +msgstr "Tairseach Treoluas Codlata" + +msgid "Sleep Time Threshold" +msgstr "Tairseach Am Codlata" + +msgid "Continuous CD Movement Threshold" +msgstr "Tairseach Gluaiseachta CD Leanúnach" + +msgid "Continuous CD Max Penetration" +msgstr "Treá uasta CD leanúnach" + +msgid "Body Pair Contact Cache Enabled" +msgstr "Cumasaíodh Taisce Teagmhála Péire Coirp" + +msgid "Body Pair Contact Cache Distance Threshold" +msgstr "Coirp Péire Teagmhála Taisce Cian-thairseach" + +msgid "Body Pair Contact Cache Angle Threshold" +msgstr "Péire Coirp Teagmháil Taisce Uillinn Tairseach" + +msgid "Queries" +msgstr "Ceisteanna" + +msgid "Enable Ray Cast Face Index" +msgstr "Cumasaigh Innéacs Aghaidh Ray Cast" + +msgid "Motion Queries" +msgstr "Ceisteanna Tairisceana" + +msgid "Recovery Iterations" +msgstr "Atriallta Aisghabhála" + +msgid "Recovery Amount" +msgstr "Méid Aisghabhála" + +msgid "Collisions" +msgstr "Imbhuailtí" + +msgid "Collision Margin Fraction" +msgstr "Codán Corrlach Imbhuailte" + +msgid "Active Edge Threshold" +msgstr "Tairseach Imeall Gníomhach" + +msgid "World Node" +msgstr "Nód Domhanda" + +msgid "Temporary Memory Buffer Size" +msgstr "Méid Maolán Cuimhne Sealadach" + +msgid "World Boundary Shape Size" +msgstr "Méid Cruth na Teorann Domhanda" + +msgid "Max Linear Velocity" +msgstr "Luas Líneach Uasta" + +msgid "Max Angular Velocity" +msgstr "Uasta treoluas uilleach" + +msgid "Max Bodies" +msgstr "Comhlachtaí Uas" + +msgid "Max Body Pairs" +msgstr "Uas Péirí Coirp" + +msgid "Max Contact Constraints" +msgstr "Srianta Teagmhála Uasta" + msgid "Lightmapping" msgstr "Mapáil solais" @@ -3449,6 +3767,9 @@ msgstr "Ghathanna Max in aghaidh an Phas" msgid "Region Size" msgstr "Méid an Réigiúin" +msgid "Max Transparency Rays" +msgstr "Ghathanna Trédhearcachta Uas" + msgid "Low Quality Probe Ray Count" msgstr "Líon Ray Probe Cáilíochta Íseal" @@ -3470,6 +3791,9 @@ msgstr "Dífuaimiú" msgid "Denoiser" msgstr "DenoiserName" +msgid "Enable TLS V 1" +msgstr "Cumasaigh TLS V 1" + msgid "BPM" msgstr "BPM" @@ -3512,9 +3836,6 @@ msgstr "Vulkan VRS" msgid "Min Radius" msgstr "Ga Min" -msgid "Spawnable Scenes" -msgstr "Radhairc Sceite" - msgid "Spawn Path" msgstr "Conair Sceite" @@ -3647,12 +3968,45 @@ msgstr "Cineál Gnímh" msgid "Toplevel Paths" msgstr "Cosáin Toplevel" +msgid "Binding Path" +msgstr "Cosán Ceangailteacha" + msgid "Interaction Profile Path" msgstr "Conair Phróifíl Idirghníomhaíochta" msgid "Runtime Paths" msgstr "Cosáin Am Rith" +msgid "Action Set" +msgstr "Tacar Gníomhaíochta" + +msgid "Input Path" +msgstr "Cosán Ionchuir" + +msgid "Threshold Released" +msgstr "Tairseach Eisithe" + +msgid "Center Region" +msgstr "Réigiún Lár" + +msgid "Wedge Angle" +msgstr "Uillinn Ding" + +msgid "Is Sticky" +msgstr "An bhfuil Greamaitheach" + +msgid "On Haptic" +msgstr "Ar Haptic" + +msgid "Off Haptic" +msgstr "As Haptic" + +msgid "On Threshold" +msgstr "Ar Tairseach" + +msgid "Off Threshold" +msgstr "Lasmuigh den Tairseach" + msgid "Display Refresh Rate" msgstr "Taispeáin Ráta Athnuachana" @@ -3662,6 +4016,12 @@ msgstr "Rindreáil Iolraitheoir Spriocmhéid" msgid "Layer Viewport" msgstr "Amharcphort na Sraithe" +msgid "Use Android Surface" +msgstr "Úsáid Dromchla Android" + +msgid "Android Surface Size" +msgstr "Méid Dromchla Android" + msgid "Sort Order" msgstr "Ord Sórtála" @@ -3770,6 +4130,9 @@ msgstr "Teorainn Ama Handshake" msgid "Max Queued Packets" msgstr "Paicéid Ciúáilte Uasta" +msgid "Heartbeat Interval" +msgstr "Eatramh buille croí" + msgid "Session Mode" msgstr "Mód Seisiúin" @@ -3818,6 +4181,9 @@ msgstr "Tulra Oiriúnaitheach 432 x 432" msgid "Adaptive Background 432 X 432" msgstr "Cúlra oiriúnaitheach 432 x 432" +msgid "Adaptive Monochrome 432 X 432" +msgstr "Monacrómach Oiriúnaitheach 432 X 432" + msgid "Gradle Build" msgstr "Tógáil Gradle" @@ -3905,6 +4271,12 @@ msgstr "Gnéithe XR" msgid "XR Mode" msgstr "Mód XR" +msgid "Gesture" +msgstr "Gothaí" + +msgid "Swipe to Dismiss" +msgstr "Svaidhpeáil chun é a dhífhostú" + msgid "Screen" msgstr "Scáileán" @@ -3968,9 +4340,18 @@ msgstr "Fógra 40 X 40" msgid "Notification 60 X 60" msgstr "Fógra 60 X 60" +msgid "Notification 76 X 76" +msgstr "Fógra 76 X 76" + +msgid "Notification 114 X 114" +msgstr "Fógra 114 X 114" + msgid "Spotlight 80 X 80" msgstr "Spotsolas 80 X 80" +msgid "Spotlight 120 X 120" +msgstr "Spotsolas 120X120" + msgid "iPhone 120 X 120" msgstr "iPhone 120 X 120" @@ -3983,6 +4364,15 @@ msgstr "iPad 167 X 167" msgid "iPad 152 X 152" msgstr "iPad 152 X 152" +msgid "iOS 128 X 128" +msgstr "iOS 128 X 128" + +msgid "iOS 192 X 192" +msgstr "iOS 192 X 192" + +msgid "iOS 136 X 136" +msgstr "iOS 136 X 136" + msgid "App Store 1024 X 1024" msgstr "Siopa Aipeanna 1024 X 1024" @@ -4004,6 +4394,12 @@ msgstr "Próifíl Soláthair UUID Dífhabhtaithe" msgid "Provisioning Profile UUID Release" msgstr "Próifíl Soláthair Scaoileadh UUID" +msgid "Provisioning Profile Specifier Debug" +msgstr "Dífhabhtaithe Sonraitheora Próifíl Soláthair" + +msgid "Provisioning Profile Specifier Release" +msgstr "Eisiúint Sonróra Próifíl Soláthair" + msgid "Export Method Release" msgstr "Scaoileadh modh easpórtála" @@ -4037,9 +4433,18 @@ msgstr "Scrios Seanchomhaid Easpórtála gan choinníoll" msgid "Entitlements" msgstr "Teidlíochtaí" +msgid "Increased Memory Limit" +msgstr "Teorainn Mhéadaithe Cuimhne" + +msgid "Game Center" +msgstr "Ionad Cluiche" + msgid "Push Notifications" msgstr "Fógraí Brú" +msgid "Additional" +msgstr "Breise" + msgid "Capabilities" msgstr "Cumais" @@ -4088,6 +4493,15 @@ msgstr "Rianú Cumasaithe" msgid "Tracking Domains" msgstr "Fearainn Rianaithe" +msgid "Icon 1024 X 1024" +msgstr "Deilbhín 1024X 1024" + +msgid "Icon 1024 X 1024 Dark" +msgstr "Deilbhín 1024 X 1024 Dorcha" + +msgid "Icon 1024 X 1024 Tinted" +msgstr "Deilbhín 1024 X 1024 Tinted" + msgid "Storyboard" msgstr "Clár scéalaíochta" @@ -4130,6 +4544,12 @@ msgstr "Cineál Dáilte" msgid "Copyright Localized" msgstr "Cóipcheart Logánaithe" +msgid "Min macOS Version x86 64" +msgstr "Min macOS Leagan x86 64" + +msgid "Min macOS Version arm64" +msgstr "Min macOS Leagan arm64" + msgid "Export Angle" msgstr "Easpórtáil Uillinn" @@ -4595,6 +5015,9 @@ msgstr "Pléascán" msgid "Randomness" msgstr "Randamacht" +msgid "Use Fixed Seed" +msgstr "Úsáid Síl Seasta" + msgid "Lifetime Randomness" msgstr "Randamacht Saoil" @@ -5373,6 +5796,9 @@ msgstr "Mód Infheictheachta Imbhuailtí" msgid "Navigation Visibility Mode" msgstr "Mód Infheictheachta Nascleanúna" +msgid "Occlusion Enabled" +msgstr "Occlusion Cumasaithe" + msgid "Y Sort Origin" msgstr "Y Sórtáil Origin" @@ -5502,6 +5928,9 @@ msgstr "Ga Fáinne" msgid "Ring Inner Radius" msgstr "Fáinne Ga Istigh" +msgid "Ring Cone Angle" +msgstr "Uillinn Cón Fáinne" + msgid "Rotate Y" msgstr "Rothlaigh Y" @@ -5575,6 +6004,9 @@ msgstr "Mód Nuashonraithe" msgid "Follow Camera Enabled" msgstr "Lean an Ceamara Cumasaithe" +msgid "Heightfield Mask" +msgstr "Masc Airde" + msgid "Directionality" msgstr "Treoíocht" @@ -5722,6 +6154,9 @@ msgstr "Teimhneacht" msgid "Blur" msgstr "Doiléirigh" +msgid "Caster Mask" +msgstr "Masc Caster" + msgid "Directional Shadow" msgstr "Scáth Treoch" @@ -5758,9 +6193,21 @@ msgstr "Spota" msgid "Angle Attenuation" msgstr "Maolú uillinne" +msgid "Lightmap Textures" +msgstr "Uigeachtaí Lightmap" + +msgid "Shadowmask Textures" +msgstr "Uigeachtaí Shadowmask" + msgid "Quality" msgstr "Cáilíocht" +msgid "Supersampling" +msgstr "Sárshampláil" + +msgid "Supersampling Factor" +msgstr "Fachtóir Sárshamplála" + msgid "Bounces" msgstr "Preabanna" @@ -5770,6 +6217,9 @@ msgstr "Preab Fuinneamh Indíreach" msgid "Directional" msgstr "Treo" +msgid "Shadowmask Mode" +msgstr "Mód Shadowmask" + msgid "Use Texture for Bounces" msgstr "Úsáid uigeacht le haghaidh preabanna" @@ -5815,9 +6265,78 @@ msgstr "Sonraí Solais" msgid "Target Node" msgstr "Sprioc nód" +msgid "Forward Axis" +msgstr "Ais ar Aghaidh" + +msgid "Primary Rotation Axis" +msgstr "Ais Rothlaithe Príomhúil" + +msgid "Use Secondary Rotation" +msgstr "Úsáid Rothlú Tánaisteach" + +msgid "Origin Settings" +msgstr "Socruithe Bunús" + msgid "From" msgstr "Ó" +msgid "External Node" +msgstr "Nód Seachtrach" + +msgid "Time Based Interpolation" +msgstr "Idirshuíomh Ambhunaithe" + +msgid "Transition Type" +msgstr "Cineál Aistrithe" + +msgid "Ease Type" +msgstr "Cineál Éasca" + +msgid "Angle Limitation" +msgstr "Teorainn Uillinn" + +msgid "Use Angle Limitation" +msgstr "Úsáid Teorainn Uillinn" + +msgid "Symmetry Limitation" +msgstr "Teorainn Siméadrachta" + +msgid "Primary Limit Angle" +msgstr "Uillinn Teorainn Phríomhúil" + +msgid "Primary Damp Threshold" +msgstr "Buntairseach Taise" + +msgid "Primary Positive Limit Angle" +msgstr "Uillinn Teorainn Dhearfach Bunscoile" + +msgid "Primary Positive Damp Threshold" +msgstr "Príomhthairseach Taise Dearfach" + +msgid "Primary Negative Limit Angle" +msgstr "Uillinn Teorainn Dhiúltach Bunscoile" + +msgid "Primary Negative Damp Threshold" +msgstr "Buntairseach Taise Diúltach" + +msgid "Secondary Limit Angle" +msgstr "Uillinn Teorainn Tánaisteach" + +msgid "Secondary Damp Threshold" +msgstr "Tairseach Taise Tánaisteach" + +msgid "Secondary Positive Limit Angle" +msgstr "Uillinn Teorainn Dearfach Tánaisteach" + +msgid "Secondary Positive Damp Threshold" +msgstr "Tairseach Taise Dearfach Tánaisteach" + +msgid "Secondary Negative Limit Angle" +msgstr "Uillinn Teorainn Dhiúltach Tánaisteach" + +msgid "Secondary Negative Damp Threshold" +msgstr "Tairseach Taise Diúltach Tánaisteach" + msgid "Surface Material Override" msgstr "Sáraigh Ábhar Dromchla" @@ -5893,6 +6412,9 @@ msgstr "Ráiteoir Roghnaithe" msgid "Capture on Drag" msgstr "Gabháil ar Tarraing" +msgid "Debug Fill" +msgstr "Líonadh Dífhabhtaithe" + msgid "Swing Span" msgstr "Réise Luascáin" @@ -6142,6 +6664,9 @@ msgstr "Taisteal" msgid "Max Force" msgstr "Fórsa Uasta" +msgid "Blend Distance" +msgstr "Cumasc Fad" + msgid "Origin Offset" msgstr "Fritháireamh Tionscnaimh" @@ -6250,6 +6775,12 @@ msgstr "Tarraing Comhéifeacht" msgid "Position Offset" msgstr "Fritháireamh Suímh" +msgid "Rotation Offset" +msgstr "Fritháireamh Rothlaithe" + +msgid "Inside" +msgstr "Laistigh" + msgid "Track Physics Step" msgstr "Céim na Fisice Riain" @@ -6286,6 +6817,9 @@ msgstr "Déan neamhaird de Culling Occlusion" msgid "Global Illumination" msgstr "Soilsiú Domhanda" +msgid "Lightmap Texel Scale" +msgstr "Scála Lightmap Texel" + msgid "Lightmap Scale" msgstr "Scála Mapa Solais" @@ -6325,6 +6859,9 @@ msgstr "Scála Domhanda" msgid "Play Mode" msgstr "Mód Seinnte" +msgid "Advance on Start" +msgstr "Chun cinn ar Tosaigh" + msgid "Use Custom Timeline" msgstr "Úsáid Amlíne Shaincheaptha" @@ -6367,6 +6904,9 @@ msgstr "Moill" msgid "Random Delay" msgstr "Moill Randamach" +msgid "Explicit Elapse" +msgstr "Éalú follasach" + msgid "Xfade Time" msgstr "Am Xfade" @@ -6424,6 +6964,9 @@ msgstr "Gluaisne Fréimhe" msgid "Track" msgstr "Amhrán" +msgid "Local" +msgstr "Áitiúil" + msgid "Callback Mode" msgstr "Mód aisghlaoigh" @@ -6559,6 +7102,9 @@ msgstr "Úsáid Barr ar Chlé" msgid "Symbol Lookup on Click" msgstr "Siombail Lookup ar Cliceáil" +msgid "Symbol Tooltip on Hover" +msgstr "Leid Uirlis Siombail ar Ainlíonn" + msgid "Line Folding" msgstr "Líne Fillte" @@ -6703,6 +7249,9 @@ msgstr "Logánaigh Córas Uimhriúil" msgid "Tooltip" msgstr "Leid Uirlisí" +msgid "Auto Translate Mode" +msgstr "Mód Aistrithe Uathoibríoch" + msgid "Focus" msgstr "Fócas" @@ -6763,6 +7312,9 @@ msgstr "Sáraíonn an Mód Teideal" msgid "Root Subfolder" msgstr "Fofhillteán Fréimhe" +msgid "Filename Filter" +msgstr "Scagaire Ainm Comhaid" + msgid "Use Native Dialog" msgstr "Úsáid Dialóg Dhúchasach" @@ -6793,6 +7345,9 @@ msgstr "Línte ceangail" msgid "Curvature" msgstr "Cuaire" +msgid "Connections" +msgstr "Naisc" + msgid "Zoom Min" msgstr "Zúmáil Min" @@ -6865,9 +7420,15 @@ msgstr "Ceadaigh Cuardach" msgid "Max Text Lines" msgstr "Uaslínte Téacs" +msgid "Auto Width" +msgstr "Leithead Uathoibríoch" + msgid "Auto Height" msgstr "Airde Uathoibríoch" +msgid "Wraparound Items" +msgstr "Míreanna Timfhilleadh" + msgid "Items" msgstr "Míreanna" @@ -6892,6 +7453,9 @@ msgstr "Méid na nDeilbhíní Seasta" msgid "Label Settings" msgstr "Socruithe Lipéid" +msgid "Paragraph Separator" +msgstr "Míreanna Timfhilleadh" + msgid "Ellipsis Char" msgstr "Éilipsis Char" @@ -6922,12 +7486,18 @@ msgstr "Téacs an Ionadchoinneálaí" msgid "Max Length" msgstr "Fad Uasta" +msgid "Keep Editing on Text Submit" +msgstr "Coinnigh an Eagarthóireacht ar Seol Téacs" + msgid "Expand to Text Length" msgstr "Leathnaigh go Fad an Téacs" msgid "Context Menu Enabled" msgstr "Roghchlár Comhthéacs Cumasaithe" +msgid "Emoji Menu Enabled" +msgstr "Roghchlár Emoji Cumasaithe" + msgid "Virtual Keyboard Enabled" msgstr "Méarchlár Fíorúil Cumasaithe" @@ -7138,6 +7708,9 @@ msgstr "Céim Shaincheaptha" msgid "Follow Focus" msgstr "Lean Fócas" +msgid "Draw Focus Border" +msgstr "Tarraing Teorainn Fócas" + msgid "Horizontal Custom Step" msgstr "Céim Shaincheaptha Chothrománach" @@ -7177,12 +7750,30 @@ msgstr "Fritháireamh Scoilte" msgid "Collapsed" msgstr "Tite as a chéile" +msgid "Dragging Enabled" +msgstr "Tarraingt Cumasaithe" + msgid "Dragger Visibility" msgstr "Infheictheacht Dragger" +msgid "Drag Area" +msgstr "Ceantar Tarraing" + +msgid "Margin Begin" +msgstr "Imeall Tosaigh" + +msgid "Margin End" +msgstr "Deireadh Imeall" + +msgid "Highlight in Editor" +msgstr "Buaicphointe san Eagarthóir" + msgid "Stretch Shrink" msgstr "Sín Laghdaigh" +msgid "Mouse Target" +msgstr "Sprioc Luiche" + msgid "Current Tab" msgstr "Cluaisín Reatha" @@ -7234,6 +7825,9 @@ msgstr "Bain úsáid as cluaisíní i bhfolach le haghaidh méid min" msgid "Tab Focus Mode" msgstr "Mód Fócas Cluaisíní" +msgid "Empty Selection Clipboard Enabled" +msgstr "Gearrthaisce Roghnúcháin Folamh Cumasaithe" + msgid "Wrap Mode" msgstr "Timfhilleadh Mód" @@ -7246,6 +7840,9 @@ msgstr "Deireadh an Chomhaid Roimhe Seo" msgid "Fit Content Height" msgstr "Oiriúnaigh Airde an Ábhair" +msgid "Fit Content Width" +msgstr "Leithead Ábhar Fit" + msgid "Draw" msgstr "Tarraing" @@ -7349,6 +7946,9 @@ msgstr "Scrollaigh Cothrománach Cumasaithe" msgid "Scroll Vertical Enabled" msgstr "Scrollaigh Ingearach Cumasaithe" +msgid "Auto Tooltip" +msgstr "Leid Uathoibríoch" + msgid "Audio Track" msgstr "Rian Fuaime" @@ -7490,23 +8090,14 @@ msgstr "Uasteagmhálacha ar taispeáint" msgid "Draw 2D Outlines" msgstr "Tarraing Imlíne 2T" -msgid "Anti Aliasing" -msgstr "Frithailiasáil" - -msgid "MSAA 2D" -msgstr "MSAA 2D" - -msgid "MSAA 3D" -msgstr "MSAA 3D" - msgid "Viewport" msgstr "Amharcphort" msgid "Transparent Background" msgstr "Cúlra Trédhearcach" -msgid "HDR 2D" -msgstr "HDR 2D" +msgid "Anti Aliasing" +msgstr "Frithailiasáil" msgid "Screen Space AA" msgstr "Spás Scáileáin AA" @@ -7550,9 +8141,6 @@ msgstr "Scáth Suímh" msgid "Atlas Size" msgstr "Atlas Méid" -msgid "Atlas 16 Bits" -msgstr "Atlas 16 giotán" - msgid "Atlas Quadrant 0 Subdiv" msgstr "Ceathrúchán Atláis 0 Fo-roinn" @@ -7586,6 +8174,9 @@ msgstr "Am Feithimh" msgid "Autostart" msgstr "Uath- thosaithe" +msgid "Ignore Time Scale" +msgstr "Déan neamhaird de Scála Ama" + msgid "Viewport Path" msgstr "Conair an Phoirt Amhairc" @@ -7607,6 +8198,12 @@ msgstr "BG Trédhearcach" msgid "Handle Input Locally" msgstr "Láimhseáil Ionchur go hÁitiúil" +msgid "MSAA 2D" +msgstr "MSAA 2D" + +msgid "MSAA 3D" +msgstr "MSAA 3D" + msgid "Debug Draw" msgstr "Tarraingt Dífhabhtaithe" @@ -7721,6 +8318,9 @@ msgstr "Preabfhuinneog" msgid "Mouse Passthrough" msgstr "Passthrough Luiche" +msgid "Exclude From Capture" +msgstr "Eisia Ó Gabháil" + msgid "Force Native" msgstr "Fórsa Dúchasach" @@ -8000,6 +8600,9 @@ msgstr "Mír" msgid "Mesh Transform" msgstr "Mogalra Trasfhoirmigh" +msgid "Mesh Cast Shadow" +msgstr "Scáth Cast Mogall" + msgid "Navigation Mesh Transform" msgstr "Nascleanúint mogalra Trasfhoirmigh" @@ -8261,6 +8864,12 @@ msgstr "Éifeachtaí Compositor" msgid "Load Path" msgstr "Luchtaigh Conair" +msgid "Min Domain" +msgstr "Fearann Íosta" + +msgid "Max Domain" +msgstr "Fearann Uas" + msgid "Bake Resolution" msgstr "Rún Bácála" @@ -8531,6 +9140,9 @@ msgstr "Úsáid HDR" msgid "To" msgstr "Chun" +msgid "Paragraph Spacing" +msgstr "Spásáil Alt" + msgid "Next Pass" msgstr "An Chéad Phas Eile" @@ -8822,6 +9434,9 @@ msgstr "Ga Fáinne Astaíochta" msgid "Emission Ring Inner Radius" msgstr "Ga istigh fáinne astaíochta" +msgid "Emission Ring Cone Angle" +msgstr "Uillinn Cón Fáinne Astaíochta" + msgid "Inherit Velocity Ratio" msgstr "Cóimheas treoluais oidhreachta" @@ -8894,6 +9509,9 @@ msgstr "Méid ag deireadh" msgid "Amount at Collision" msgstr "Méid ag Imbhualadh" +msgid "Amount at Start" +msgstr "Méid ag Tosaigh" + msgid "Keep Velocity" msgstr "Coinnigh treoluas" @@ -9047,6 +9665,9 @@ msgstr "Luach Réamhshocraithe Cumasaithe" msgid "Default Value" msgstr "Luach Réamhshocraithe" +msgid "Enum Names" +msgstr "Ainmneacha Enum" + msgid "Color Default" msgstr "Réamhshocrú datha" @@ -9245,6 +9866,9 @@ msgstr "Réigiún Cód Fillte" msgid "Folded EOL Icon" msgstr "Deilbhín EOL Fillte" +msgid "Completion Color BG" +msgstr "Dath Críochnaithe BG" + msgid "Completion Lines" msgstr "Línte Críochnaithe" @@ -9308,6 +9932,96 @@ msgstr "Fritháireamh Grabber" msgid "Updown" msgstr "Suas an Dún" +msgid "Up" +msgstr "Suas" + +msgid "Up Hover" +msgstr "Aoibhneas Suas" + +msgid "Up Pressed" +msgstr "Suas Brúite" + +msgid "Up Disabled" +msgstr "Suas faoi Mhíchumas" + +msgid "Down" +msgstr "Síos" + +msgid "Down Hover" +msgstr "Dún Hobhair" + +msgid "Down Pressed" +msgstr "Síos Brúite" + +msgid "Down Disabled" +msgstr "Síos Díchumasaithe" + +msgid "Up Background" +msgstr "Cúlra Suas" + +msgid "Up Background Hovered" +msgstr "Cúlra Suas Folaithe" + +msgid "Up Background Pressed" +msgstr "Cúlra Suas Brúite" + +msgid "Up Background Disabled" +msgstr "Cúlra Suas Díchumasaithe" + +msgid "Down Background" +msgstr "Cúlra Síos" + +msgid "Down Background Hovered" +msgstr "Cúlra Dúin Folaithe" + +msgid "Down Background Pressed" +msgstr "Cúlra an Dúin Brúite" + +msgid "Down Background Disabled" +msgstr "Cúlra an Dúin Díchumasaithe" + +msgid "Up Icon Modulate" +msgstr "Modúl Icon Suas" + +msgid "Up Hover Icon Modulate" +msgstr " " + +msgid "Up Pressed Icon Modulate" +msgstr "Modulate Icon Brúite Suas" + +msgid "Up Disabled Icon Modulate" +msgstr "Suas Modulate Icon Díchumasaithe" + +msgid "Down Icon Modulate" +msgstr "Dúin Icon Modulate" + +msgid "Down Hover Icon Modulate" +msgstr "Modulate Icon Down Hover" + +msgid "Down Pressed Icon Modulate" +msgstr "Dúin Brúigh Icon Modulate" + +msgid "Down Disabled Icon Modulate" +msgstr "Síos Díchumasaithe Deilbhín Modhnaigh" + +msgid "Field and Buttons Separator" +msgstr "Réimse agus Deighilteoir Cnaipí" + +msgid "Up Down Buttons Separator" +msgstr "Deighilteoir Cnaipí Suas Síos" + +msgid "Buttons Vertical Separation" +msgstr "Cnaipí Scaradh Ingearach" + +msgid "Field and Buttons Separation" +msgstr "Scaradh Réimse agus Cnaipí" + +msgid "Buttons Width" +msgstr "Cnaipí Leithead" + +msgid "Set Min Buttons Width From Icons" +msgstr "Socraigh Leithead Mionchnaipí Ó Dheilbhíní" + msgid "Embedded Border" msgstr "Teorainn Leabaithe" @@ -9350,6 +10064,12 @@ msgstr "Dún Fritháireamh V" msgid "Buttons Separation" msgstr "Scaradh Cnaipí" +msgid "Load" +msgstr "Luchtaigh" + +msgid "Save" +msgstr "Sábháil" + msgid "Parent Folder" msgstr "Máthairfhillteán" @@ -9365,6 +10085,9 @@ msgstr "Athluchtaigh" msgid "Toggle Hidden" msgstr "Scoránaigh i bhfolach" +msgid "Toggle Filename Filter" +msgstr "Scoránaigh an Scagaire Ainm Comhaid" + msgid "Folder" msgstr "Fillteán" @@ -9446,6 +10169,9 @@ msgstr "Fritháireamh Phort H" msgid "Hovered" msgstr "Ag Dul Ar" +msgid "Hovered Dimmed" +msgstr "Ag faoileáil doiléir" + msgid "Selected Focus" msgstr "Fócas Roghnaithe" @@ -9455,6 +10181,9 @@ msgstr "Cúrsóir" msgid "Cursor Unfocused" msgstr "Cúrsóir Neamhdhírithe" +msgid "Button Hover" +msgstr "Cnaipe ag faoileáil" + msgid "Title Button Normal" msgstr "Cnaipe Teidil Gnáth" @@ -9497,6 +10226,9 @@ msgstr "Dath an Chnaipe Teidil" msgid "Font Hovered Color" msgstr "Dath ainlithe cló" +msgid "Font Hovered Dimmed Color" +msgstr "Cló Ag faoileáil Dath Tosaithe" + msgid "Guide Color" msgstr "Dath treorach" @@ -9578,6 +10310,15 @@ msgstr "Scrollbharra V Scaradh" msgid "Icon Margin" msgstr "Imeall Deilbhíní" +msgid "Font Hovered Selected Color" +msgstr "Cló Ag faoileáil Dath Roghnaithe" + +msgid "Hovered Selected" +msgstr "Ag faoileáil Roghnaithe" + +msgid "Hovered Selected Focus" +msgstr "Ag faoileáil Fócas Roghnaithe" + msgid "Tab Selected" msgstr "Táb roghnaithe" @@ -9632,6 +10373,9 @@ msgstr "Leithead an Lipéid" msgid "Center Slider Grabbers" msgstr "Grabbers Sleamhnán Ionad" +msgid "Menu Option" +msgstr "Rogha Roghchláir" + msgid "Folded Arrow" msgstr "Saighead Fillte" @@ -9668,6 +10412,9 @@ msgstr "Saighead Bharra" msgid "Picker Cursor" msgstr "Cúrsóir an Roghnóra" +msgid "Picker Cursor BG" +msgstr "Cúrsóir Roghnaithe BG" + msgid "Color Hue" msgstr "Lí Datha" @@ -9755,6 +10502,9 @@ msgstr "Tiús Grab Íosta" msgid "Autohide" msgstr "Uathíde" +msgid "Split Bar Background" +msgstr "Cúlra an Bharra Scoilte" + msgid "Zoom Out" msgstr "Zúmáil Amach" @@ -9794,6 +10544,9 @@ msgstr "Gníomhaíocht" msgid "Connection Hover Tint Color" msgstr "Ceangal Hover Tint Dath" +msgid "Connection Hover Thickness" +msgstr "Ceangal Hover Tiús" + msgid "Connection Valid Target Tint Color" msgstr "Ceangal Bailí Sprioc Tint Dath" @@ -9965,6 +10718,9 @@ msgstr "Tarraingt Ama (ms)" msgid "Surround" msgstr "Timpeall" +msgid "Mix Rate Mode" +msgstr "Mód Ráta Meascáin" + msgid "Enable Input" msgstr "Cumasaigh Ionchur" @@ -10040,6 +10796,12 @@ msgstr "Réamhshocrú" msgid "Merge Rasterizer Cell Scale" msgstr "Cumaisc Scála Cille Rasterizer" +msgid "World" +msgstr "Domhain" + +msgid "Map Use Async Iterations" +msgstr "Léarscáil Úsáid Async Iterations" + msgid "Avoidance Use Multiple Threads" msgstr "Seachaint Úsáid Snáitheanna Il" @@ -10376,6 +11138,12 @@ msgstr "Iompórtáil S3TC BPTC" msgid "Import ETC2 ASTC" msgstr "Iompórtáil ASTC ETC2" +msgid "Compress With GPU" +msgstr "Comhbhrúigh Le GPU" + +msgid "Cache GPU Compressor" +msgstr "Comhbhrúiteoir GPU Taisce" + msgid "Lossless Compression" msgstr "Comhbhrú gan chailliúint" @@ -10400,12 +11168,21 @@ msgstr "Úsáid Aonaid Solais Fhisiciúla" msgid "Soft Shadow Filter Quality" msgstr "Caighdeán scagaire scáth bog" +msgid "Atlas 16 Bits" +msgstr "Atlas 16 giotán" + msgid "Shadow Atlas" msgstr "Atlas Scáth" +msgid "Batching" +msgstr "Baisceáil" + msgid "Item Buffer Size" msgstr "Méid an mhaoláin míre" +msgid "Uniform Set Cache Size" +msgstr "Méid Taisce Socraigh Éide" + msgid "Shader Compiler" msgstr "Tiomsaitheoir Scáthaigh" @@ -10499,6 +11276,9 @@ msgstr "Céimnigh amach ó" msgid "Fadeout To" msgstr "Céimnigh go" +msgid "HDR 2D" +msgstr "HDR 2D" + msgid "Screen Space Roughness Limiter" msgstr "Scáileán Spás Roughness Limiter" @@ -10547,6 +11327,12 @@ msgstr "Mogalraí Primitive" msgid "Texel Size" msgstr "Méid Texel" +msgid "Lightmap GI" +msgstr "Solas-léarscáil GI" + +msgid "Use Bicubic Filter" +msgstr "Úsáid Scagaire Bicúbach" + msgid "Probe Ray Count" msgstr "Líon Ray Probe" @@ -10631,8 +11417,14 @@ msgstr "VRS Min Ga" msgid "VRS Strength" msgstr "Neart VRS" +msgid "VRS Render Region" +msgstr "Réigiún Rindreála VRS" + msgid "World Origin" msgstr "Bunús an Domhain" +msgid "Camera Locked to Origin" +msgstr "Ceamara Glasáilte go Bunús" + msgid "Primary Interface" msgstr "Comhéadan Bunscoile" diff --git a/engine/editor/translations/properties/id.po b/engine/editor/translations/properties/id.po index b5fbb11c..798daf87 100644 --- a/engine/editor/translations/properties/id.po +++ b/engine/editor/translations/properties/id.po @@ -783,9 +783,6 @@ msgstr "Permintaan diluar Batas Waktu" msgid "Sync Breakpoints" msgstr "Sinkronisasi Breakpoint" -msgid "Default Feature Profile" -msgstr "Profil Fitur Default" - msgid "Label" msgstr "Label" @@ -2352,9 +2349,6 @@ msgstr "Nama Plugin" msgid "Autoload on Startup" msgstr "Muat Otomatis Saat Memulai" -msgid "Use Favorites Root Selection" -msgstr "Gunakan Pemilihan Root Favorit" - msgid "Flush stdout on Print" msgstr "Flush stdout pada Print" @@ -2532,15 +2526,15 @@ msgstr "Offset Posisi Tooltip" msgid "Show Image" msgstr "Tampilkan Gambar" -msgid "Image" -msgstr "Gambar" - msgid "Fullsize" msgstr "Ukuran penuh" msgid "Use Filter" msgstr "Gunakan Filter" +msgid "Image" +msgstr "Gambar" + msgid "Minimum Display Time" msgstr "Waktu Tampilan Minimal" @@ -3072,9 +3066,6 @@ msgstr "K1" msgid "K2" msgstr "K2" -msgid "Spawnable Scenes" -msgstr "Adegan yang Dapat Dimunculkan" - msgid "Spawn Path" msgstr "Path Spawn" @@ -6684,21 +6675,15 @@ msgstr "Kontak Maks Ditampilkan" msgid "Draw 2D Outlines" msgstr "Gambar Garis Besar 2D" -msgid "Anti Aliasing" -msgstr "Anti Alias" - -msgid "MSAA 2D" -msgstr "MSAA 2D" - -msgid "MSAA 3D" -msgstr "MSAA 3D" - msgid "Viewport" msgstr "Viewport" msgid "Transparent Background" msgstr "Latar Belakang Transparan" +msgid "Anti Aliasing" +msgstr "Anti Alias" + msgid "Screen Space AA" msgstr "Ruang Layar AA" @@ -6741,9 +6726,6 @@ msgstr "Bayangan Posisi" msgid "Atlas Size" msgstr "Ukuran Atlas" -msgid "Atlas 16 Bits" -msgstr "Atlas 16 Bit" - msgid "Atlas Quadrant 0 Subdiv" msgstr "Subdivisi Kuadran 0 Atlas" @@ -6798,6 +6780,12 @@ msgstr "BG transparan" msgid "Handle Input Locally" msgstr "Tangani Input Secara Lokal" +msgid "MSAA 2D" +msgstr "MSAA 2D" + +msgid "MSAA 3D" +msgstr "MSAA 3D" + msgid "Debug Draw" msgstr "Debug Gambar" @@ -9264,6 +9252,9 @@ msgstr "Gunakan Satuan Cahaya Fisik" msgid "Soft Shadow Filter Quality" msgstr "Kualitas Filter Bayangan Lembut" +msgid "Atlas 16 Bits" +msgstr "Atlas 16 Bit" + msgid "Shadow Atlas" msgstr "Atlas Bayangan" diff --git a/engine/editor/translations/properties/it.po b/engine/editor/translations/properties/it.po index 98ed2138..75effa2c 100644 --- a/engine/editor/translations/properties/it.po +++ b/engine/editor/translations/properties/it.po @@ -61,7 +61,7 @@ # Daniele Basso <tiziodcaio@gmail.com>, 2021. # Riteo Siuga <riteo@posteo.net>, 2021, 2022. # Luigi <luibass92@live.it>, 2021. -# Micky <micheledevita2@gmail.com>, 2021, 2022, 2024. +# Micky <micheledevita2@gmail.com>, 2021, 2022, 2024, 2025. # Fabio Plos <altre0cose@gmail.com>, 2021. # Theraloss <danilo.polani@gmail.com>, 2021. # Pietro Grungo <pietro.grungo@libero.it>, 2021. @@ -89,12 +89,13 @@ # Alessandro Muscio <muscioalex30@gmail.com>, 2024. # Stefano siser <stefano.siser@gmail.com>, 2024. # Dark Space <darkspace.lvcnr@gmail.com>, 2024. +# SG <s.gallerini@users.noreply.hosted.weblate.org>, 2025. msgid "" msgstr "" "Project-Id-Version: Godot Engine properties\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2024-12-28 01:45+0000\n" +"PO-Revision-Date: 2025-02-24 16:25+0000\n" "Last-Translator: Micky <micheledevita2@gmail.com>\n" "Language-Team: Italian <https://hosted.weblate.org/projects/godot-engine/" "godot-properties/it/>\n" @@ -103,7 +104,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 5.10-dev\n" +"X-Generator: Weblate 5.10.1-dev\n" msgid "Application" msgstr "Applicazione" @@ -519,6 +520,12 @@ msgstr "Compatibilità" msgid "Legacy Just Pressed Behavior" msgstr "Comportamento tradizionale di \"just pressed\"" +msgid "Enable Accelerometer" +msgstr "Abilita Accelerometro" + +msgid "Enable Magnetometer" +msgstr "Abilita Magnetometro" + msgid "Device" msgstr "Dispositivo" @@ -855,9 +862,6 @@ msgstr "Scadenza delle richieste (Timeout)" msgid "Sync Breakpoints" msgstr "Sincronizza punti di interruzione" -msgid "Default Feature Profile" -msgstr "Profilo di funzionalità predefinito" - msgid "Label" msgstr "Etichetta" @@ -1344,8 +1348,14 @@ msgstr "Ricarica e analizza automaticamente gli script al salvataggio" msgid "Open Dominant Script on Scene Change" msgstr "Apri lo script dominante al cambio di scena" +msgid "Documentation" +msgstr "Documentazione" + +msgid "Enable Tooltips" +msgstr "Abilita Tooltips" + msgid "Script List" -msgstr "Elenco di script" +msgstr "Elenco degli script" msgid "Show Members Overview" msgstr "Mostra riepilogo dei membri" @@ -1359,8 +1369,11 @@ msgstr "Abilita temperatura degli script" msgid "Script Temperature History Size" msgstr "Dimensione cronologia della temperatura degli script" +msgid "Highlight Scene Scripts" +msgstr "Evidenzia Script della scena" + msgid "Group Help Pages" -msgstr "Raggruppa Pagine di Aiuto" +msgstr "Raggruppa Pagine della Guida" msgid "Sort Scripts By" msgstr "Ordina script per" @@ -1381,7 +1394,7 @@ msgid "Completion" msgstr "Completamento" msgid "Idle Parse Delay" -msgstr "Ritardo di elaborazione dopo inattività" +msgstr "Ritardo di analisi dopo inattività" msgid "Auto Brace Complete" msgstr "Completa parentesi automaticamente" @@ -1740,6 +1753,9 @@ msgstr "Righe massime" msgid "Platforms" msgstr "Piattaforme" +msgid "Linux/*BSD" +msgstr "Linux/*BSD" + msgid "Prefer Wayland" msgstr "Preferisci Wayland" @@ -2837,15 +2853,15 @@ msgstr "Offset della posizione dei suggerimenti" msgid "Show Image" msgstr "Mostra immagine" -msgid "Image" -msgstr "Immagine" - msgid "Fullsize" msgstr "Dimensioni intere" msgid "Use Filter" msgstr "Usa filtro" +msgid "Image" +msgstr "Immagine" + msgid "Minimum Display Time" msgstr "Tempo minimo di visualizzazione" @@ -3530,9 +3546,6 @@ msgstr "Vulkan VRS" msgid "Min Radius" msgstr "Raggio minimo" -msgid "Spawnable Scenes" -msgstr "Scene generabili" - msgid "Spawn Path" msgstr "Percorso di generazione" @@ -5794,6 +5807,9 @@ msgstr "Dati di luce" msgid "Target Node" msgstr "Nodo obiettivo" +msgid "Use Secondary Rotation" +msgstr "Usa Rotazione Secondaria" + msgid "From" msgstr "Da" @@ -6223,6 +6239,9 @@ msgstr "Coefficiente di resistenza" msgid "Position Offset" msgstr "Offset della posizione" +msgid "Inside" +msgstr "Dentro" + msgid "Track Physics Step" msgstr "Traccia fotogramma fisico" @@ -7439,23 +7458,14 @@ msgstr "Contatti visualizzati massimi" msgid "Draw 2D Outlines" msgstr "Disegna contorni 2D" -msgid "Anti Aliasing" -msgstr "Antialiasing" - -msgid "MSAA 2D" -msgstr "2D MSAA" - -msgid "MSAA 3D" -msgstr "3D MSAA" - msgid "Viewport" msgstr "Viewport" msgid "Transparent Background" msgstr "Sfondo trasparente" -msgid "HDR 2D" -msgstr "Alta gamma dinamica 2D (HDR)" +msgid "Anti Aliasing" +msgstr "Antialiasing" msgid "Screen Space AA" msgstr "Antialiasing nello spazio dello schermo" @@ -7499,9 +7509,6 @@ msgstr "Ombre posizionali" msgid "Atlas Size" msgstr "Grandezza dell'atlante" -msgid "Atlas 16 Bits" -msgstr "Atlante a 16 bit" - msgid "Atlas Quadrant 0 Subdiv" msgstr "Suddivisione del quadrante n.0 nell'atlante" @@ -7556,6 +7563,12 @@ msgstr "Sfondo trasparente" msgid "Handle Input Locally" msgstr "Gestisci gli input localmente" +msgid "MSAA 2D" +msgstr "2D MSAA" + +msgid "MSAA 3D" +msgstr "3D MSAA" + msgid "Debug Draw" msgstr "Disegno per debug" @@ -9257,6 +9270,12 @@ msgstr "Offset del grabber" msgid "Updown" msgstr "Alto/Basso" +msgid "Up" +msgstr "Su" + +msgid "Down" +msgstr "Giù" + msgid "Embedded Border" msgstr "Bordo incorporato" @@ -10334,6 +10353,9 @@ msgstr "Usa unità di luce fisica" msgid "Soft Shadow Filter Quality" msgstr "Qualità del filtro di ombre morbide" +msgid "Atlas 16 Bits" +msgstr "Atlante a 16 bit" + msgid "Shadow Atlas" msgstr "Atlas delle ombre" @@ -10433,6 +10455,9 @@ msgstr "Dissolvenza da" msgid "Fadeout To" msgstr "Dissolvenza a" +msgid "HDR 2D" +msgstr "Alta gamma dinamica 2D (HDR)" + msgid "Screen Space Roughness Limiter" msgstr "Limitatore di rugosità nello spazio dello schermo" diff --git a/engine/editor/translations/properties/ja.po b/engine/editor/translations/properties/ja.po index c1f68823..3762cd2b 100644 --- a/engine/editor/translations/properties/ja.po +++ b/engine/editor/translations/properties/ja.po @@ -786,9 +786,6 @@ msgstr "リクエスト失敗、タイムアウト" msgid "Sync Breakpoints" msgstr "ブレークポイントの同期" -msgid "Default Feature Profile" -msgstr "デフォルト機能プロファイル" - msgid "Label" msgstr "ラベル" @@ -2277,9 +2274,6 @@ msgstr "エクスポート時にテキストリソースをバイナリに変換 msgid "Plugin Name" msgstr "プラグイン名" -msgid "Use Favorites Root Selection" -msgstr "お気に入りのルート選択対象を使用" - msgid "Flush stdout on Print" msgstr "Print時にstdoutをフラッシュ" @@ -2454,15 +2448,15 @@ msgstr "ツールチップ位置のオフセット" msgid "Show Image" msgstr "画像を表示" -msgid "Image" -msgstr "画像" - msgid "Fullsize" msgstr "フルサイズ" msgid "Use Filter" msgstr "フィルターを使用" +msgid "Image" +msgstr "画像" + msgid "Minimum Display Time" msgstr "最小表示時間" @@ -3540,12 +3534,12 @@ msgstr "ノード名の命名規則" msgid "Shapes" msgstr "シェイプ" -msgid "Anti Aliasing" -msgstr "アンチエイリアス" - msgid "Viewport" msgstr "ビューポート" +msgid "Anti Aliasing" +msgstr "アンチエイリアス" + msgid "Screen Space AA" msgstr "スクリーンスペースAA" diff --git a/engine/editor/translations/properties/ka.po b/engine/editor/translations/properties/ka.po index 0fa77c86..d4885f77 100644 --- a/engine/editor/translations/properties/ka.po +++ b/engine/editor/translations/properties/ka.po @@ -6,13 +6,13 @@ # George Dzavashvili <dzavashviligeorge@gmail.com>, 2018. # დემეტრე შონია <blender.animation.maker@gmail.com>, 2019. # Rati Nikolaishvili <rati.nikolaishvili@gmail.com>, 2019. -# Temuri Doghonadze <temuri.doghonadze@gmail.com>, 2023, 2024. +# Temuri Doghonadze <temuri.doghonadze@gmail.com>, 2023, 2024, 2025. msgid "" msgstr "" "Project-Id-Version: Godot Engine properties\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2024-08-03 08:09+0000\n" +"PO-Revision-Date: 2025-02-11 01:03+0000\n" "Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n" "Language-Team: Georgian <https://hosted.weblate.org/projects/godot-engine/" "godot-properties/ka/>\n" @@ -21,7 +21,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.7-dev\n" +"X-Generator: Weblate 5.10-dev\n" msgid "Application" msgstr "აპლიკაცია" @@ -707,9 +707,6 @@ msgstr "მოთხოვნის მოლოდინის ვადა" msgid "Sync Breakpoints" msgstr "წყვეტის წერტილების სინქრონიზაცია" -msgid "Default Feature Profile" -msgstr "ნაგულისხმევი თვისების პროფილი" - msgid "Label" msgstr "ჭდე" @@ -1836,12 +1833,12 @@ msgstr "ხელით მითითებული გამოსახუ msgid "Show Image" msgstr "გამოსახულების ჩვენება" -msgid "Image" -msgstr "გამოსახულება" - msgid "Use Filter" msgstr "ფილტრის გამოყენება" +msgid "Image" +msgstr "გამოსახულება" + msgid "Minimum Display Time" msgstr "მინიმალური ჩვენების დრო" @@ -4533,23 +4530,14 @@ msgstr "გეომეტრიის სიგანე" msgid "Max Contacts Displayed" msgstr "მაქს ნაჩვენები კონტაქტები" -msgid "Anti Aliasing" -msgstr "მომრგვალება" - -msgid "MSAA 2D" -msgstr "MSAA 2D" - -msgid "MSAA 3D" -msgstr "MSAA 3D" - msgid "Viewport" msgstr "ჩვენების არე" msgid "Transparent Background" msgstr "გამჭვირვალე ფონი" -msgid "HDR 2D" -msgstr "HDR 2D" +msgid "Anti Aliasing" +msgstr "მომრგვალება" msgid "Snap" msgstr "მიბმა" @@ -4563,9 +4551,6 @@ msgstr "VRS" msgid "Positional Shadow" msgstr "პოზიციური ჩრდილი" -msgid "Atlas 16 Bits" -msgstr "Atlas 16 Bits" - msgid "SDF" msgstr "SDF" @@ -4590,6 +4575,12 @@ msgstr "3D-ის გათიშვა" msgid "World 3D" msgstr "სამყარო 3D" +msgid "MSAA 2D" +msgstr "MSAA 2D" + +msgid "MSAA 3D" +msgstr "MSAA 3D" + msgid "Scaling 3D" msgstr "3D-ის დამასშტაბება" @@ -5211,6 +5202,9 @@ msgstr "ტექსტურის არხი" msgid "Operator" msgstr "ოპერატორი" +msgid "Rim" +msgstr "ფერსო" + msgid "Clearcoat" msgstr "გამჭვირვალე ზედაპირი" @@ -6408,6 +6402,9 @@ msgstr "შეკუმშვის მეთოდი" msgid "Lossless Compression Factor" msgstr "კარგვისგარეშე შეკუმშვის ფაქტორი" +msgid "Atlas 16 Bits" +msgstr "Atlas 16 Bits" + msgid "Shader Compiler" msgstr "შეიდერის კომპილატორი" @@ -6474,6 +6471,9 @@ msgstr "მინავლება საიდან" msgid "Fadeout To" msgstr "მინავლება სადამდე" +msgid "HDR 2D" +msgstr "HDR 2D" + msgid "Light Projectors" msgstr "სინათლის პროექტორები" diff --git a/engine/editor/translations/properties/ko.po b/engine/editor/translations/properties/ko.po index b88df66e..c468f457 100644 --- a/engine/editor/translations/properties/ko.po +++ b/engine/editor/translations/properties/ko.po @@ -795,9 +795,6 @@ msgstr "요청 타임아웃" msgid "Sync Breakpoints" msgstr "중단점 동기화" -msgid "Default Feature Profile" -msgstr "기본 기능 프로필" - msgid "Label" msgstr "레이블" @@ -2376,9 +2373,6 @@ msgstr "플러그인 이름" msgid "Autoload on Startup" msgstr "시작 시 오토로드" -msgid "Use Favorites Root Selection" -msgstr "즐겨찾기 루트 선택 사용" - msgid "Flush stdout on Print" msgstr "출력 시 stdout 플러시" @@ -2556,15 +2550,15 @@ msgstr "툴팁 위치 오프셋" msgid "Show Image" msgstr "이미지 표시" -msgid "Image" -msgstr "영상" - msgid "Fullsize" msgstr "전체 크기" msgid "Use Filter" msgstr "필터 사용" +msgid "Image" +msgstr "영상" + msgid "Minimum Display Time" msgstr "최소 표시 시간" @@ -3084,9 +3078,6 @@ msgstr "K1" msgid "K2" msgstr "K2" -msgid "Spawnable Scenes" -msgstr "소환 가능한 씬" - msgid "Spawn Path" msgstr "소환 경로" @@ -6126,21 +6117,15 @@ msgstr "표시할 최대 접촉 수" msgid "Draw 2D Outlines" msgstr "2D 윤곽선 그리기" -msgid "Anti Aliasing" -msgstr "안티 앨리어싱" - -msgid "MSAA 2D" -msgstr "MSAA 2D" - -msgid "MSAA 3D" -msgstr "MSAA 3D" - msgid "Viewport" msgstr "뷰포트" msgid "Transparent Background" msgstr "투명한 배경색" +msgid "Anti Aliasing" +msgstr "안티 앨리어싱" + msgid "Screen Space AA" msgstr "화면공간 AA" @@ -6180,6 +6165,12 @@ msgstr "빛과 그림자" msgid "SDF" msgstr "SDF" +msgid "MSAA 2D" +msgstr "MSAA 2D" + +msgid "MSAA 3D" +msgstr "MSAA 3D" + msgid "Audio Listener" msgstr "오디오 리스너" diff --git a/engine/editor/translations/properties/pl.po b/engine/editor/translations/properties/pl.po index 1f3f6527..acb3ae45 100644 --- a/engine/editor/translations/properties/pl.po +++ b/engine/editor/translations/properties/pl.po @@ -95,12 +95,14 @@ # User <user938193@gmail.com>, 2024. # Piotr Wieczorek <wieczorek.piotr.praga@protonmail.com>, 2024. # Cyprian Klimaszewski <cyprian.klimaszewski@gmail.com>, 2024. +# Kordian Lipiecki <kordian.lipiecki4@gmail.com>, 2025. +# Piotr Jurczak <piotr5jurczak@gmail.com>, 2025. msgid "" msgstr "" "Project-Id-Version: Godot Engine properties\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2025-01-16 14:00+0000\n" +"PO-Revision-Date: 2025-02-26 15:06+0000\n" "Last-Translator: Tomek <kobewi4e@gmail.com>\n" "Language-Team: Polish <https://hosted.weblate.org/projects/godot-engine/godot-" "properties/pl/>\n" @@ -110,7 +112,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" -"X-Generator: Weblate 5.10-dev\n" +"X-Generator: Weblate 5.10.2-dev\n" msgid "Application" msgstr "Aplikacja" @@ -214,6 +216,9 @@ msgstr "Rozszerz do tytułu" msgid "No Focus" msgstr "Bez skupienia" +msgid "Sharp Corners" +msgstr "Ostre krawędzie" + msgid "Window Width Override" msgstr "Nadpisanie szerokości okna" @@ -277,9 +282,18 @@ msgstr "Okna podrzędne" msgid "Embed Subwindows" msgstr "Osadź okna podrzędne" +msgid "Frame Pacing" +msgstr "Tempo klatek" + msgid "Android" msgstr "Android" +msgid "Enable Frame Pacing" +msgstr "Włącz tempo klatek" + +msgid "Swappy Mode" +msgstr "Tryb Swappy" + msgid "Physics" msgstr "Fizyka" @@ -424,6 +438,9 @@ msgstr "Maks. rozmiar (MB)" msgid "Texture Upload Region Size Px" msgstr "Rozmiar regionu przesyłania tekstur (w piks.)" +msgid "Texture Download Region Size Px" +msgstr "Rozmiar regionu pobierania tekstur (w piks.)" + msgid "Pipeline Cache" msgstr "Pamięć podręczna Pipeline-u" @@ -484,6 +501,9 @@ msgstr "Włącz długie naciśnięcie jako kliknięcie prawym przyciskiem myszy" msgid "Enable Pan and Scale Gestures" msgstr "Włącz gesty obrotu i skalowania" +msgid "Rotary Input Scroll Axis" +msgstr "Oś przewijania obrotowego wejścia" + msgid "Low Processor Usage Mode" msgstr "Tryb niskiego wykorzystania procesora" @@ -496,6 +516,9 @@ msgstr "Wygładzanie delty" msgid "Print Error Messages" msgstr "Wyświetlaj komunikaty o błędach" +msgid "Print to stdout" +msgstr "Wypisuj na stdout" + msgid "Physics Ticks per Second" msgstr "Ticki Fizyki na Sekundę" @@ -529,6 +552,21 @@ msgstr "Kompatybilny" msgid "Legacy Just Pressed Behavior" msgstr "Stare zachowanie Just Pressed" +msgid "Sensors" +msgstr "Sensory" + +msgid "Enable Accelerometer" +msgstr "Włącz akcelerometr" + +msgid "Enable Gravity" +msgstr "Zezwól na Grawitację" + +msgid "Enable Gyroscope" +msgstr "Zezwól na Żyroskop" + +msgid "Enable Magnetometer" +msgstr "Włącz magnetometr" + msgid "Device" msgstr "Urządzenie" @@ -865,15 +903,18 @@ msgstr "Przekroczono limit czasu żądania" msgid "Sync Breakpoints" msgstr "Synchronizuj punkty przerwania" -msgid "Default Feature Profile" -msgstr "Profil domyślnych funkcji" - msgid "Label" msgstr "Etykieta" msgid "Read Only" msgstr "Tylko do odczytu" +msgid "Draw Label" +msgstr "Rysuj Etykietę" + +msgid "Draw Background" +msgstr "Rysuj Tło" + msgid "Checkable" msgstr "Zaznaczalne" @@ -889,6 +930,15 @@ msgstr "Kluczowanie" msgid "Deletable" msgstr "Usuwalne" +msgid "Selectable" +msgstr "Możliwe do zaznaczenia" + +msgid "Use Folding" +msgstr "Użyj zawijania" + +msgid "Name Split Ratio" +msgstr "Współczynnik podziału nazwy" + msgid "Distraction Free Mode" msgstr "Tryb bez rozproszeń" @@ -961,6 +1011,9 @@ msgstr "Pozycjonowanie subpikselowe czcionki" msgid "Font Disable Embedded Bitmaps" msgstr "Wyłącz wbudowane bitmapy czcionki" +msgid "Font Allow MSDF" +msgstr "Zezwól MSDF w czcionkach" + msgid "Main Font" msgstr "Główna czcionka" @@ -1018,6 +1071,9 @@ msgstr "Doki" msgid "Scene Tree" msgstr "Drzewo sceny" +msgid "Ask Before Revoking Unique Name" +msgstr "Pytaj przed unieważnieniem unikalnej nazwy" + msgid "Inspector" msgstr "Inspektor" @@ -1154,6 +1210,27 @@ msgstr "Tryb wyświetlania" msgid "Thumbnail Size" msgstr "Rozmiar miniaturki" +msgid "Quick Open Dialog" +msgstr "Dialog szybkiego otwierania" + +msgid "Max Results" +msgstr "Maksymalna liczba wyników" + +msgid "Show Search Highlight" +msgstr "Pokaż podświetlenie szukania" + +msgid "Enable Fuzzy Matching" +msgstr "Włącz dopasowanie rozmyte" + +msgid "Max Fuzzy Misses" +msgstr "Maksymalna niedokładność rozmycia" + +msgid "Include Addons" +msgstr "Zawrzyj Dodatki" + +msgid "Default Display Mode" +msgstr "Domyślny Tryb wyświetlania" + msgid "Import" msgstr "Zaimportuj" @@ -1196,12 +1273,18 @@ msgstr "Automatycznie rozwijaj do wybranego" msgid "Center Node on Reparent" msgstr "Wyśrodkuj element przy zmianie rodzica" +msgid "Hide Filtered Out Parents" +msgstr "Ukryj odfiltrowane węzły nadrzędne" + msgid "Always Show Folders" msgstr "Zawsze pokazuj foldery" msgid "TextFile Extensions" msgstr "Rozszerzenia plików tekstowych" +msgid "Other File Extensions" +msgstr "Inne rozszerzenia plików tekstowych" + msgid "Property Editor" msgstr "Edytor właściwości" @@ -1292,6 +1375,9 @@ msgstr "Rysuj spacje" msgid "Behavior" msgstr "Zachowanie" +msgid "Empty Selection Clipboard" +msgstr "Schowek pustego zaznaczenia" + msgid "Navigation" msgstr "Nawigacja" @@ -1355,9 +1441,18 @@ msgstr "Konwertuj wcięcia przy zapisie" msgid "Auto Reload Scripts on External Change" msgstr "Automatyczne przeładuj skrypty po zewnętrznych zmianach" +msgid "Auto Reload and Parse Scripts on Save" +msgstr "Automatycznie przeładuj i zanalizuj skrypty przy zapisie" + msgid "Open Dominant Script on Scene Change" msgstr "Otwórz główny skrypt przy zmianie sceny" +msgid "Documentation" +msgstr "Dokumentacja" + +msgid "Enable Tooltips" +msgstr "Włącz podpowiedzi" + msgid "Script List" msgstr "Lista skryptów" @@ -1373,6 +1468,9 @@ msgstr "Włącz temperaturę skryptów" msgid "Script Temperature History Size" msgstr "Rozmiar historii temperatury skryptów" +msgid "Highlight Scene Scripts" +msgstr "Podświetl skrypty sceny" + msgid "Group Help Pages" msgstr "Grupuj strony pomocy" @@ -1397,6 +1495,9 @@ msgstr "Uzupełnianie" msgid "Idle Parse Delay" msgstr "Opóźnienie interpretacji" +msgid "Idle Parse Delay With Errors Found" +msgstr "Opóźnienie interpretacji ze znalezionymi błędami" + msgid "Auto Brace Complete" msgstr "Automatyczne zamykanie nawiasów" @@ -1445,6 +1546,9 @@ msgstr "Mapa siatek" msgid "Pick Distance" msgstr "Dystans łapania" +msgid "Palette Min Width" +msgstr "Minimalna szerokość palety" + msgid "Selection Box Color" msgstr "Kolor prostopadłościanu zaznaczenia" @@ -1520,6 +1624,18 @@ msgstr "Zaznaczona kość" msgid "CSG" msgstr "CSG" +msgid "GridMap Grid" +msgstr "Siatka GridMap" + +msgid "Spring Bone Joint" +msgstr "Złączenie kości sprężynowej" + +msgid "Spring Bone Collision" +msgstr "Kolizja kości sprężynowej" + +msgid "Spring Bone Inside Collision" +msgstr "Kolizja wewnętrzna kości sprężynowej" + msgid "Gizmo Settings" msgstr "Ustawienia uchwytów" @@ -1571,6 +1687,9 @@ msgstr "Preferencje nawigacji" msgid "Orbit Sensitivity" msgstr "Czułość orbity" +msgid "Translation Sensitivity" +msgstr "Czułość przesuwania" + msgid "Orbit Inertia" msgstr "Bezwładność orbity" @@ -1766,6 +1885,9 @@ msgstr "Maksymalne linie" msgid "Platforms" msgstr "Platformy" +msgid "Linux/*BSD" +msgstr "Linux/*BSD" + msgid "Prefer Wayland" msgstr "Preferuj Wayland" @@ -1790,6 +1912,9 @@ msgstr "Rozmiar historii klatek profilera" msgid "Profiler Frame Max Functions" msgstr "Maksymalna ilość funkcji klatki profilera" +msgid "Profiler Target FPS" +msgstr "Docelowy FPS profilera" + msgid "Remote Scene Tree Refresh Interval" msgstr "Częstotliwość odświeżania zdalnej struktury scen" @@ -2042,6 +2167,9 @@ msgstr "Płaski" msgid "Hide Slider" msgstr "Ukryj suwak" +msgid "Editing Integer" +msgstr "Edytowanie liczby całkowitej" + msgid "Zoom" msgstr "Przybliż" @@ -2625,9 +2753,6 @@ msgstr "Nazwa wtyczki" msgid "Autoload on Startup" msgstr "Automatyczne ładowanie podczas uruchamiania" -msgid "Use Favorites Root Selection" -msgstr "Użyj wybierania ulubionych korzeni sceny" - msgid "Flush stdout on Print" msgstr "Wyczyść stdout podczas używania Print" @@ -2700,6 +2825,9 @@ msgstr "Wątki" msgid "Thread Model" msgstr "Model wątkowy" +msgid "Display Server" +msgstr "Serwer wyświetlania" + msgid "Handheld" msgstr "Konsola przenośna" @@ -2784,15 +2912,15 @@ msgstr "Przesunięcie pozycji podpowiedzi" msgid "Show Image" msgstr "Pokaż obraz" -msgid "Image" -msgstr "Obraz" - msgid "Fullsize" msgstr "Pełny rozmiar" msgid "Use Filter" msgstr "Użyj filtra" +msgid "Image" +msgstr "Obraz" + msgid "Minimum Display Time" msgstr "Minimalny czas wyświetlania" @@ -3018,6 +3146,9 @@ msgstr "Liczba" msgid "Sparse Indices Buffer View" msgstr "Parsowanie bufora indeksów rzadkich" +msgid "Sparse Indices Component Type" +msgstr "Parsowanie Geometrii" + msgid "Loop" msgstr "Zapętl" @@ -3289,7 +3420,7 @@ msgid "Current" msgstr "Bieżący" msgid "Max Distance" -msgstr "Odległość maks." +msgstr "Odległość maksymalna" msgid "Rect" msgstr "Prostokąt" @@ -3388,7 +3519,10 @@ msgid "Navigation Layers" msgstr "Warstwy nawigacji" msgid "Max Speed" -msgstr "Szybkość maks." +msgstr "Szybkość maksymalna" + +msgid "Skew" +msgstr "Skośność" msgid "Repeat" msgstr "Powtórz" @@ -3507,6 +3641,9 @@ msgstr "Rozmazanie" msgid "Quality" msgstr "Jakość" +msgid "Shadowmask Mode" +msgstr "Tryb maski cieni" + msgid "Use Denoiser" msgstr "Używaj odszumiacza" @@ -3534,6 +3671,9 @@ msgstr "Precyzja symulacji" msgid "Ignore Occlusion Culling" msgstr "Ignoruj usuwanie niewidocznych powierzchni" +msgid "Global Illumination" +msgstr "Globalne oświetlenie" + msgid "Pose" msgstr "Poza" @@ -3795,6 +3935,9 @@ msgstr "Bliskie przejście" msgid "Shutter Speed" msgstr "Szybkość migawki" +msgid "Max Domain" +msgstr "Odległość maksymalna" + msgid "Source" msgstr "Źródło" diff --git a/engine/editor/translations/properties/pt.po b/engine/editor/translations/properties/pt.po index 4692a95a..e4447c41 100644 --- a/engine/editor/translations/properties/pt.po +++ b/engine/editor/translations/properties/pt.po @@ -47,13 +47,14 @@ # JulianoV <ventolajuliano@gmail.com>, 2024. # 100Nome <100nome.portugal@gmail.com>, 2024. # Ruan Victor <ruanvictordossantoscorrea128@gmail.com>, 2024. +# rtvr5656 <rtvr5656@gmail.com>, 2025. msgid "" msgstr "" "Project-Id-Version: Godot Engine properties\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2024-11-18 23:02+0000\n" -"Last-Translator: Ruan Victor <ruanvictordossantoscorrea128@gmail.com>\n" +"PO-Revision-Date: 2025-02-21 01:36+0000\n" +"Last-Translator: rtvr5656 <rtvr5656@gmail.com>\n" "Language-Team: Portuguese <https://hosted.weblate.org/projects/godot-engine/" "godot-properties/pt/>\n" "Language: pt\n" @@ -61,7 +62,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 5.9-dev\n" +"X-Generator: Weblate 5.10.1-dev\n" msgid "Application" msgstr "Aplicação" @@ -231,6 +232,9 @@ msgstr "Incorporar subjanelas" msgid "Android" msgstr "Android" +msgid "Swappy Mode" +msgstr "Modo Swappy" + msgid "Physics" msgstr "Física" @@ -819,9 +823,6 @@ msgstr "Tempo Limite de Solicitação" msgid "Sync Breakpoints" msgstr "Pontos de Quebra de Sincronismo" -msgid "Default Feature Profile" -msgstr "Perfil de Funcionalidades padrão" - msgid "Label" msgstr "Texto" @@ -2385,9 +2386,6 @@ msgstr "Nome do Plugin" msgid "Autoload on Startup" msgstr "Autorrecarregar na Inicialização" -msgid "Use Favorites Root Selection" -msgstr "Seleção de favoritos da raíz" - msgid "Low Processor Mode" msgstr "Modo de Baixo Uso do Processador" @@ -2562,15 +2560,15 @@ msgstr "Deslocamento de Posição da Dica" msgid "Show Image" msgstr "Mostrar Imagem" -msgid "Image" -msgstr "Imagem" - msgid "Fullsize" msgstr "Tamanho Máximo" msgid "Use Filter" msgstr "Usar Filtro" +msgid "Image" +msgstr "Imagem" + msgid "Minimum Display Time" msgstr "Tempo mínimo de exibição" @@ -3132,9 +3130,6 @@ msgstr "K1" msgid "K2" msgstr "K2" -msgid "Spawnable Scenes" -msgstr "Geração de Cenas" - msgid "Spawn Path" msgstr "Caminho Salvamento Spawn" @@ -5553,15 +5548,6 @@ msgstr "Cor da Geometria" msgid "Anti Aliasing" msgstr "Anti Serrilhamento" -msgid "MSAA 2D" -msgstr "'MSAA 2D'" - -msgid "MSAA 3D" -msgstr "'MSAA 3D'" - -msgid "HDR 2D" -msgstr "HDR 2D" - msgid "Use Debanding" msgstr "Usar Debanding" @@ -5619,6 +5605,12 @@ msgstr "Mundo 3D" msgid "Transparent BG" msgstr "Fundo Transparente" +msgid "MSAA 2D" +msgstr "'MSAA 2D'" + +msgid "MSAA 3D" +msgstr "'MSAA 3D'" + msgid "Debug Draw" msgstr "Desenho da Depuração" @@ -6939,6 +6931,9 @@ msgstr "Usar Filtro Mipmap Mais Próximo" msgid "Depth of Field Use Jitter" msgstr "Usar Jitter para Profundidade de Campo" +msgid "HDR 2D" +msgstr "HDR 2D" + msgid "Screen Space Roughness Limiter" msgstr "Limitador de Rugosidade de Espaço de Tela" diff --git a/engine/editor/translations/properties/pt_BR.po b/engine/editor/translations/properties/pt_BR.po index e26b9d69..79dbcb1e 100644 --- a/engine/editor/translations/properties/pt_BR.po +++ b/engine/editor/translations/properties/pt_BR.po @@ -904,9 +904,6 @@ msgstr "Tempo Limite de Solicitação" msgid "Sync Breakpoints" msgstr "Pontos de Quebra de Sincronismo" -msgid "Default Feature Profile" -msgstr "Perfil de funcionalidade Padrão" - msgid "Label" msgstr "Rótulo" @@ -2383,9 +2380,6 @@ msgstr "Usar Threads Múltiplas" msgid "Plugin Name" msgstr "Nome do Plugin" -msgid "Use Favorites Root Selection" -msgstr "Seleção de favoritos da raíz" - msgid "Low Processor Mode" msgstr "Modo Processamento Baixo" @@ -2554,15 +2548,15 @@ msgstr "Deslocamento de Posição da Dica de Ferramenta" msgid "Show Image" msgstr "Mostrar Imagem" -msgid "Image" -msgstr "Imagem" - msgid "Fullsize" msgstr "Tamanho Inteiro" msgid "Use Filter" msgstr "Usar Filtro" +msgid "Image" +msgstr "Imagem" + msgid "Minimum Display Time" msgstr "Tempo mínimo de exibição" @@ -3064,9 +3058,6 @@ msgstr "K1" msgid "K2" msgstr "K2" -msgid "Spawnable Scenes" -msgstr "Geração de Cenas" - msgid "Spawn Path" msgstr "Caminho Salvamento Spawn" @@ -5313,15 +5304,6 @@ msgstr "Cor da Geometria" msgid "Anti Aliasing" msgstr "Anti Serrilhamento" -msgid "MSAA 2D" -msgstr "'MSAA 2D'" - -msgid "MSAA 3D" -msgstr "'MSAA 3D'" - -msgid "HDR 2D" -msgstr "HDR 2D(High Dynamic Range 2d / Alto Alcance Dinâmico 2d)" - msgid "Use Debanding" msgstr "Usar Debanding" @@ -5364,6 +5346,12 @@ msgstr "Início Automático" msgid "Transparent BG" msgstr "Fundo Transparente" +msgid "MSAA 2D" +msgstr "'MSAA 2D'" + +msgid "MSAA 3D" +msgstr "'MSAA 3D'" + msgid "Debug Draw" msgstr "Desenho da Depuração" @@ -6534,6 +6522,9 @@ msgstr "Usar Filtro Mipmap Mais Próximo" msgid "Depth of Field Use Jitter" msgstr "Profundidade de campo usando jitter" +msgid "HDR 2D" +msgstr "HDR 2D(High Dynamic Range 2d / Alto Alcance Dinâmico 2d)" + msgid "Screen Space Roughness Limiter" msgstr "Limitador de rugosidade do espaço da tela" diff --git a/engine/editor/translations/properties/ru.po b/engine/editor/translations/properties/ru.po index f9a096a0..0cdd6416 100644 --- a/engine/editor/translations/properties/ru.po +++ b/engine/editor/translations/properties/ru.po @@ -176,13 +176,14 @@ # Full name <nkalinin2020@gmail.com>, 2024. # Mikhail <mikhail.khadzhaev832@gmail.com>, 2024. # Olesya_Gerasimenko <gammaray@basealt.ru>, 2024. +# Mister Ky <afanasievsergiy3524@gmail.com>, 2025. msgid "" msgstr "" "Project-Id-Version: Godot Engine properties\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2024-08-08 16:10+0000\n" -"Last-Translator: Olesya_Gerasimenko <gammaray@basealt.ru>\n" +"PO-Revision-Date: 2025-02-08 02:28+0000\n" +"Last-Translator: Mister Ky <afanasievsergiy3524@gmail.com>\n" "Language-Team: Russian <https://hosted.weblate.org/projects/godot-engine/" "godot-properties/ru/>\n" "Language: ru\n" @@ -191,7 +192,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: Weblate 5.7-dev\n" +"X-Generator: Weblate 5.10-dev\n" msgid "Application" msgstr "Приложение" @@ -295,6 +296,9 @@ msgstr "Расширить до названия" msgid "No Focus" msgstr "Не фокусировать" +msgid "Sharp Corners" +msgstr "Острые углы" + msgid "Window Width Override" msgstr "Переопределение ширины окна" @@ -332,7 +336,7 @@ msgid "General" msgstr "Основное" msgid "Default Playback Type" -msgstr "Стандартный тип воспроизведения" +msgstr "Тип воспроизведения по умолчанию" msgid "Text to Speech" msgstr "Синтез речи" @@ -358,6 +362,9 @@ msgstr "Подокна" msgid "Embed Subwindows" msgstr "Встроить подокна" +msgid "Frame Pacing" +msgstr "Скорость кадров" + msgid "Android" msgstr "Android" @@ -505,6 +512,9 @@ msgstr "Макс. размер (МБ)" msgid "Texture Upload Region Size Px" msgstr "Размер области для отправки текстуры, пкс" +msgid "Texture Download Region Size Px" +msgstr "Размер области загрузки текстуры Px" + msgid "Pipeline Cache" msgstr "Кэш конвейера" @@ -613,6 +623,21 @@ msgstr "Совместимость" msgid "Legacy Just Pressed Behavior" msgstr "Поведение при нажатии (устаревшее)" +msgid "Sensors" +msgstr "Датчики" + +msgid "Enable Accelerometer" +msgstr "Включить акселерометр" + +msgid "Enable Gravity" +msgstr "Включить гравитацию" + +msgid "Enable Gyroscope" +msgstr "Включить гироскоп" + +msgid "Enable Magnetometer" +msgstr "Включить магнитометр" + msgid "Device" msgstr "Устройство" @@ -949,15 +974,15 @@ msgstr "Время ожидания запроса" msgid "Sync Breakpoints" msgstr "Синхронизация точек останова" -msgid "Default Feature Profile" -msgstr "Профиль возможностей по умолчанию" - msgid "Label" msgstr "Подпись" msgid "Read Only" msgstr "Только чтение" +msgid "Draw Background" +msgstr "Нарисуйте фон" + msgid "Checkable" msgstr "Отмечаемый" @@ -1246,6 +1271,12 @@ msgstr "Размер миниатюр" msgid "Max Results" msgstr "Макс. кол-во результатов" +msgid "Include Addons" +msgstr "Включать дополнения" + +msgid "Default Display Mode" +msgstr "Режим отображения по умолчанию" + msgid "Import" msgstr "Импорт" @@ -1288,12 +1319,18 @@ msgstr "Автораскрыть дерево до выбранного элем msgid "Center Node on Reparent" msgstr "Центрировать узел при смене родительского элемента" +msgid "Hide Filtered Out Parents" +msgstr "Скрыть отфильтрованных родителей" + msgid "Always Show Folders" msgstr "Всегда показывать папки" msgid "TextFile Extensions" msgstr "Расширения текстовых файлов" +msgid "Other File Extensions" +msgstr "Другие расширения файлов" + msgid "Property Editor" msgstr "Редактор свойств" @@ -1468,6 +1505,9 @@ msgstr "Включить температуру скриптов" msgid "Script Temperature History Size" msgstr "Размер истории температуры скриптов" +msgid "Highlight Scene Scripts" +msgstr "Выделите сценарии сцен" + msgid "Group Help Pages" msgstr "Группировать страницы справки" @@ -1618,6 +1658,9 @@ msgstr "Выбранная кость" msgid "CSG" msgstr "CSG" +msgid "GridMap Grid" +msgstr "Сетка GridMap" + msgid "Gizmo Settings" msgstr "Параметры гизмо" @@ -1669,6 +1712,9 @@ msgstr "Поведение навигации" msgid "Orbit Sensitivity" msgstr "Орбитальная чувствительность" +msgid "Translation Sensitivity" +msgstr "Чувствительность к переводу" + msgid "Orbit Inertia" msgstr "Орбитальная инерция" @@ -1864,6 +1910,9 @@ msgstr "Макс. кол-во строк" msgid "Platforms" msgstr "Платформы" +msgid "Linux/*BSD" +msgstr "Linux/*BSD" + msgid "Prefer Wayland" msgstr "Предпочитать Wayland" @@ -2140,6 +2189,9 @@ msgstr "Плоская" msgid "Hide Slider" msgstr "Скрыть ползунок" +msgid "Editing Integer" +msgstr "Редактирование целого числа" + msgid "Zoom" msgstr "Масштабирование" @@ -2206,6 +2258,12 @@ msgstr "Генерировать касательные" msgid "Generate LODs" msgstr "Генерировать уровни детализации" +msgid "Generate Shadow Mesh" +msgstr "Создать теневую сетку" + +msgid "Generate Lightmap UV2" +msgstr "Создать Lightmap UV2" + msgid "Scale Mesh" msgstr "Масштаб сетки" @@ -2222,7 +2280,7 @@ msgid "Generate" msgstr "Генерировать" msgid "NavMesh" -msgstr "NavMesh" +msgstr "Навигационная сетка" msgid "Body Type" msgstr "Тип тела" @@ -2758,9 +2816,6 @@ msgstr "Имя модуля" msgid "Autoload on Startup" msgstr "Автозагрузка системы управления версиями при запуске" -msgid "Use Favorites Root Selection" -msgstr "Использовать закладки выбора корневого узла" - msgid "Flush stdout on Print" msgstr "Сбрасывать буфер выходного потока при печати каждой строки" @@ -2782,6 +2837,9 @@ msgstr "Подробный стандартный вывод" msgid "Physics Interpolation" msgstr "Интерполяция физики" +msgid "Enable Warnings" +msgstr "Включить предупреждения" + msgid "Max Chars per Second" msgstr "Макс. кол-во символов в секунду" @@ -2815,6 +2873,9 @@ msgstr "Использовать запасной вариант (Vulkan)" msgid "Fallback to D3D12" msgstr "Использовать запасной вариант (D3D12)" +msgid "Fallback to OpenGL 3" +msgstr "Возврат к OpenGL 3" + msgid "GL Compatibility" msgstr "GL-совместимость" @@ -2827,6 +2888,9 @@ msgstr "Использовать запасной вариант (Angle)" msgid "Fallback to Native" msgstr "Использовать запасной вариант (нативный)" +msgid "Fallback to GLES" +msgstr "Возврат к GLES" + msgid "Force Angle on Devices" msgstr "Принудительное использование Angle устройствами" @@ -2923,6 +2987,12 @@ msgstr "Модальное окно в случае сбоя инициализ msgid "Extensions" msgstr "Расширения" +msgid "Debug Utils" +msgstr "Отладочные утилиты" + +msgid "Debug Message Types" +msgstr "Типы отладочных сообщений" + msgid "Hand Tracking" msgstr "Отслеживание положения и ориентации рук" @@ -2932,6 +3002,15 @@ msgstr "Профиль взаимодействия рук" msgid "Eye Gaze Interaction" msgstr "Взаимодействие взгляда" +msgid "Binding Modifiers" +msgstr "Модификаторы привязки" + +msgid "Analog Threshold" +msgstr "Аналоговый порог" + +msgid "Dpad Binding" +msgstr "Dpad Привязка" + msgid "Boot Splash" msgstr "Загрузочная заставка" @@ -2980,15 +3059,15 @@ msgstr "Смещение позиции всплывающей подсказк msgid "Show Image" msgstr "Показать изображение" -msgid "Image" -msgstr "Изображение" - msgid "Fullsize" msgstr "Полноразмерный" msgid "Use Filter" msgstr "Использовать фильтр" +msgid "Image" +msgstr "Изображение" + msgid "Minimum Display Time" msgstr "Минимальное время отображения заставки" @@ -3103,6 +3182,12 @@ msgstr "Края соединены" msgid "Edges Free" msgstr "Края свободны" +msgid "Obstacles" +msgstr "Препятствия" + +msgid "Compilations Draw" +msgstr "Розыгрыш компиляций" + msgid "Operation" msgstr "Операция" @@ -3520,6 +3605,15 @@ msgstr "Дочерние элементы" msgid "Light" msgstr "Свет" +msgid "Node Paths" +msgstr "Пути к узлам" + +msgid "Json Pointers" +msgstr "Json Указатели" + +msgid "Variant Type" +msgstr "Тип варианта" + msgid "Joints" msgstr "Суставы" @@ -3601,6 +3695,12 @@ msgstr "Время затухания" msgid "Stream Count" msgstr "Количество потоков" +msgid "Jolt Physics 3D" +msgstr "Jolt Physics 3D" + +msgid "Simulation" +msgstr "Симуляция" + msgid "Lightmapping" msgstr "Карты освещения" @@ -3691,9 +3791,6 @@ msgstr "Vulkan VRS" msgid "Min Radius" msgstr "Мин. радиус" -msgid "Spawnable Scenes" -msgstr "Доступные для порождения сцены" - msgid "Spawn Path" msgstr "Путь порождения" @@ -7675,23 +7772,14 @@ msgstr "Макс. кол-во отображаемых контактов" msgid "Draw 2D Outlines" msgstr "Рисовать контуры 2D" -msgid "Anti Aliasing" -msgstr "Сглаживание" - -msgid "MSAA 2D" -msgstr "2D MSAA" - -msgid "MSAA 3D" -msgstr "3D MSAA" - msgid "Viewport" msgstr "Окно просмотра" msgid "Transparent Background" msgstr "Прозрачный фон" -msgid "HDR 2D" -msgstr "2D HDR" +msgid "Anti Aliasing" +msgstr "Сглаживание" msgid "Screen Space AA" msgstr "Сглаживание экранного пространства" @@ -7735,9 +7823,6 @@ msgstr "Позиционные тени" msgid "Atlas Size" msgstr "Размер атласа" -msgid "Atlas 16 Bits" -msgstr "Атлас 16 бит" - msgid "Atlas Quadrant 0 Subdiv" msgstr "Размер квадранта 0 атласа для сопоставления теней" @@ -7792,6 +7877,12 @@ msgstr "Прозрачный фон" msgid "Handle Input Locally" msgstr "Обрабатывать ввод локально" +msgid "MSAA 2D" +msgstr "2D MSAA" + +msgid "MSAA 3D" +msgstr "3D MSAA" + msgid "Debug Draw" msgstr "Отладка рисовки" @@ -10579,6 +10670,9 @@ msgstr "Импорт S3TC BPTC" msgid "Import ETC2 ASTC" msgstr "Импорт ETC2 ASTC" +msgid "Cache GPU Compressor" +msgstr "Кэш-компрессор GPU" + msgid "Lossless Compression" msgstr "Сжатие без потерь" @@ -10603,6 +10697,9 @@ msgstr "Использовать для источников света един msgid "Soft Shadow Filter Quality" msgstr "Качество фильтра мягких теней" +msgid "Atlas 16 Bits" +msgstr "Атлас 16 бит" + msgid "Shadow Atlas" msgstr "Атлас теней" @@ -10702,6 +10799,9 @@ msgstr "Исчезание от" msgid "Fadeout To" msgstr "Исчезание до" +msgid "HDR 2D" +msgstr "2D HDR" + msgid "Screen Space Roughness Limiter" msgstr "Ограничитель шероховатости экранного пространства" diff --git a/engine/editor/translations/properties/ta.po b/engine/editor/translations/properties/ta.po index 1a3ed998..d9a62493 100644 --- a/engine/editor/translations/properties/ta.po +++ b/engine/editor/translations/properties/ta.po @@ -775,9 +775,6 @@ msgstr "நேரம் முடிந்தது" msgid "Sync Breakpoints" msgstr "பிரேக் பாயிண்ட்சை ஒத்திசைக்கவும்" -msgid "Default Feature Profile" -msgstr "இயல்புநிலை அம்ச சுயவிவரம்" - msgid "Label" msgstr "சிட்டை" @@ -2579,9 +2576,6 @@ msgstr "சொருகி பெயர்" msgid "Autoload on Startup" msgstr "தொடக்கத்தில் ஆட்டோலோட்" -msgid "Use Favorites Root Selection" -msgstr "பிடித்தவை ரூட் தேர்வைப் பயன்படுத்தவும்" - msgid "Flush stdout on Print" msgstr "அச்சில் stdout ஐ பறிக்கவும்" @@ -2801,15 +2795,15 @@ msgstr "உதவிக்குறிப்பு நிலை ஆஃப்ச msgid "Show Image" msgstr "படத்தைக் காட்டு" -msgid "Image" -msgstr "படம்" - msgid "Fullsize" msgstr "ஃபுல்ச்" msgid "Use Filter" msgstr "வடிகட்டியைப் பயன்படுத்தவும்" +msgid "Image" +msgstr "படம்" + msgid "Minimum Display Time" msgstr "குறைந்தபட்ச காட்சி நேரம்" @@ -3512,9 +3506,6 @@ msgstr "எரிமலை Vs" msgid "Min Radius" msgstr "குறைந்தபட்ச ஆரம்" -msgid "Spawnable Scenes" -msgstr "உருவான காட்சிகள்" - msgid "Spawn Path" msgstr "ச்பான் பாதை" @@ -7490,23 +7481,14 @@ msgstr "அதிகபட்ச தொடர்புகள் காட்ட msgid "Draw 2D Outlines" msgstr "2 டி திட்டவட்டங்களை வரையவும்" -msgid "Anti Aliasing" -msgstr "எதிர்ப்பு மாற்றுப்பெயர்" - -msgid "MSAA 2D" -msgstr "மாலை" - -msgid "MSAA 3D" -msgstr "மாலை எண்ணிக்கை" - msgid "Viewport" msgstr "வியூபோர்ட்" msgid "Transparent Background" msgstr "வெளிப்படையான பின்னணி" -msgid "HDR 2D" -msgstr "எச்டிஆர் 2 டி" +msgid "Anti Aliasing" +msgstr "எதிர்ப்பு மாற்றுப்பெயர்" msgid "Screen Space AA" msgstr "திரை இடம் AA" @@ -7550,9 +7532,6 @@ msgstr "நிலை நிழல்" msgid "Atlas Size" msgstr "அட்லச் அளவு" -msgid "Atlas 16 Bits" -msgstr "அட்லச் 16 பிட்கள்" - msgid "Atlas Quadrant 0 Subdiv" msgstr "அட்லச் குவாட்ரண்ட் 0 துணைப்பிரிவு" @@ -7607,6 +7586,12 @@ msgstr "வெளிப்படையான பி.சி." msgid "Handle Input Locally" msgstr "உள்ளீட்டை உள்ளீட்டைக் கையாளவும்" +msgid "MSAA 2D" +msgstr "மாலை" + +msgid "MSAA 3D" +msgstr "மாலை எண்ணிக்கை" + msgid "Debug Draw" msgstr "பிழைத்திருத்த டிரா" @@ -10400,6 +10385,9 @@ msgstr "உடல் ஒளி அலகுகளைப் பயன்படு msgid "Soft Shadow Filter Quality" msgstr "மென்மையான நிழல் வடிகட்டி தகுதி" +msgid "Atlas 16 Bits" +msgstr "அட்லச் 16 பிட்கள்" + msgid "Shadow Atlas" msgstr "நிழல் அட்லச்" @@ -10499,6 +10487,9 @@ msgstr "இருந்து மங்கலானது" msgid "Fadeout To" msgstr "Fadeout க்கு" +msgid "HDR 2D" +msgstr "எச்டிஆர் 2 டி" + msgid "Screen Space Roughness Limiter" msgstr "திரை விண்வெளி கடினத்தன்மை வரம்பு" diff --git a/engine/editor/translations/properties/tr.po b/engine/editor/translations/properties/tr.po index f5d8f36e..1e9b9507 100644 --- a/engine/editor/translations/properties/tr.po +++ b/engine/editor/translations/properties/tr.po @@ -89,20 +89,20 @@ # Dream Drunk <myemailpoly149@gmail.com>, 2022. # alpdenthedev <ekrem_ekrem_45@hotmail.com>, 2022. # Muhammed Said Gülberk <msgulberk@gmail.com>, 2022. -# Yılmaz Durmaz <yilmaz_durmaz@hotmail.com>, 2023, 2024. +# Yılmaz Durmaz <yilmaz_durmaz@hotmail.com>, 2023, 2024, 2025. # Black <ebubekir23atalay@gmail.com>, 2023. # Mertcan YILDIRIM <mertcanyildirim463@gmail.com>, 2023. # Ufuk SARIALTIN <sarialtinufuk@gmail.com>, 2023. # Haoyu Qiu <timothyqiu32@gmail.com>, 2023. # Ahmet <ahmet2006ozbay@gmail.com>, 2023. -# ulk <ulk.info@gmail.com>, 2024. +# ulk <ulk.info@gmail.com>, 2024, 2025. msgid "" msgstr "" "Project-Id-Version: Godot Engine properties\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2024-12-29 05:09+0000\n" -"Last-Translator: Yılmaz Durmaz <yilmaz_durmaz@hotmail.com>\n" +"PO-Revision-Date: 2025-03-01 20:22+0000\n" +"Last-Translator: ulk <ulk.info@gmail.com>\n" "Language-Team: Turkish <https://hosted.weblate.org/projects/godot-engine/" "godot-properties/tr/>\n" "Language: tr\n" @@ -110,7 +110,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 5.10-dev\n" +"X-Generator: Weblate 5.10.3-dev\n" msgid "Application" msgstr "Uygulama" @@ -214,6 +214,9 @@ msgstr "Başlığa Genişlet" msgid "No Focus" msgstr "Odak Yok" +msgid "Sharp Corners" +msgstr "Keskin Köşeler" + msgid "Window Width Override" msgstr "Pencere Genişliğinin Üzerine Yaz" @@ -257,10 +260,10 @@ msgid "Text to Speech" msgstr "Metin Okuma" msgid "2D Panning Strength" -msgstr "2D Kaydırma Keskinliği" +msgstr "2B Kaydırma Keskinliği" msgid "3D Panning Strength" -msgstr "3D Kaydırma Keskinliği" +msgstr "3B Kaydırma Keskinliği" msgid "iOS" msgstr "iOS" @@ -277,9 +280,18 @@ msgstr "Altpencereler" msgid "Embed Subwindows" msgstr "Altpencereleri Göm" +msgid "Frame Pacing" +msgstr "Kare İlerleme Hızı" + msgid "Android" msgstr "Android" +msgid "Enable Frame Pacing" +msgstr "Kare İlerleme Hızını Etkinleştir" + +msgid "Swappy Mode" +msgstr "Swappy Modu" + msgid "Physics" msgstr "Fizik" @@ -371,7 +383,7 @@ msgid "Root Node Layout Direction" msgstr "Kök Düğüm Yerleşim Düzeni Yönü" msgid "Root Node Auto Translate" -msgstr "Kök Düğüm Otomatik Yer Değiştirme" +msgstr "Kök Düğüm Otomatik Çeviri" msgid "GUI" msgstr "Grafiksel Kullanıcı Arayüzü (GUI)" @@ -424,6 +436,9 @@ msgstr "En Büyük Boyut (MB)" msgid "Texture Upload Region Size Px" msgstr "Doku Yükleme Bölgesi Boyutu Px (piksel)" +msgid "Texture Download Region Size Px" +msgstr "Doku İndirme Bölge Boyutu Px" + msgid "Pipeline Cache" msgstr "İşlem Kuyruğu Önbelleği" @@ -482,7 +497,7 @@ msgid "Enable Long Press as Right Click" msgstr "Uzun Basmayı Sağ Tıklama Olarak Algıla" msgid "Enable Pan and Scale Gestures" -msgstr "Kaydırma ve Ölçekleme Hareketlerini Etkileştir" +msgstr "Kaydırma ve Ölçekleme Parmak Hareketlerini Etkileştir" msgid "Rotary Input Scroll Axis" msgstr "Döner Giriş Kaydırma Ekseni" @@ -499,6 +514,9 @@ msgstr "Delta Yumuşatması" msgid "Print Error Messages" msgstr "Hata Mesajlarını Yazdır" +msgid "Print to stdout" +msgstr "stdout'a yazdır" + msgid "Physics Ticks per Second" msgstr "Saniyedeki Fizik Tıklamaları" @@ -532,6 +550,21 @@ msgstr "Uyumluluk" msgid "Legacy Just Pressed Behavior" msgstr "Eski Sadece Basıldı Davranışı" +msgid "Sensors" +msgstr "Algılayıcılar" + +msgid "Enable Accelerometer" +msgstr "İvmeölçeri Etkinleştir" + +msgid "Enable Gravity" +msgstr "Yerçekimini Etkinleştir" + +msgid "Enable Gyroscope" +msgstr "Jiroskopu Etkinleştir" + +msgid "Enable Magnetometer" +msgstr "Manyetometreyi Etkinleştir" + msgid "Device" msgstr "Aygıt" @@ -868,15 +901,18 @@ msgstr "İstek Zaman Aşımı" msgid "Sync Breakpoints" msgstr "Kesme Noktalarını Eşle" -msgid "Default Feature Profile" -msgstr "Varsayılan Özellik Profili" - msgid "Label" msgstr "Etiket" msgid "Read Only" msgstr "Salt Okunur" +msgid "Draw Label" +msgstr "Etiket Çiz" + +msgid "Draw Background" +msgstr "Arkaplanı Çiz" + msgid "Checkable" msgstr "Denetlenebilir" @@ -895,6 +931,12 @@ msgstr "Silinebilir" msgid "Selectable" msgstr "Seçilebilir" +msgid "Use Folding" +msgstr "Katlama Kullan" + +msgid "Name Split Ratio" +msgstr "İsim Bölünme Oranı" + msgid "Distraction Free Mode" msgstr "Dikkat Dağıtmayan Kip" @@ -967,6 +1009,9 @@ msgstr "Yazı Tipi Alt-piksel Konumlandırması" msgid "Font Disable Embedded Bitmaps" msgstr "Yazı Tipi Gömülü Bitmapleri Devre Dışı Bırak" +msgid "Font Allow MSDF" +msgstr "Yazı Tipi MSDF'ye İzin Ver" + msgid "Main Font" msgstr "Ana Yazı Tipi" @@ -1024,6 +1069,9 @@ msgstr "Yuvalar" msgid "Scene Tree" msgstr "Sahne Ağacı" +msgid "Ask Before Revoking Unique Name" +msgstr "Benzersiz Adı İptal Etmeden Önce Sor" + msgid "Inspector" msgstr "Denetleyici" @@ -1159,9 +1207,27 @@ msgstr "Görüntüleme Kipi" msgid "Thumbnail Size" msgstr "Küçük Resim Boyutu" +msgid "Quick Open Dialog" +msgstr "Hızlı Açma Penceresi" + msgid "Max Results" msgstr "En Fazla Sonuç" +msgid "Show Search Highlight" +msgstr "Arama Vurgusunu Göster" + +msgid "Enable Fuzzy Matching" +msgstr "Bulanık Eşleştirmeyi Etkinleştir" + +msgid "Max Fuzzy Misses" +msgstr "En Fazla Bulanık Kayıp" + +msgid "Include Addons" +msgstr "Eklentileri Dahil Et" + +msgid "Default Display Mode" +msgstr "Varsayılan Görüntü Modu" + msgid "Import" msgstr "İçe Aktar" @@ -1204,12 +1270,18 @@ msgstr "Seçilene Otomatik Genişlet" msgid "Center Node on Reparent" msgstr "Üst-öğe değişiminde Düğümü Merkeze Ortala" +msgid "Hide Filtered Out Parents" +msgstr "Filtrelenmiş Üst Öğeleri Gizle" + msgid "Always Show Folders" msgstr "Klasörleri Her Zaman Göster" msgid "TextFile Extensions" msgstr "Metin Dosyası Uzantıları" +msgid "Other File Extensions" +msgstr "Diğer Dosya Uzantıları" + msgid "Property Editor" msgstr "Özellik Düzenleyici" @@ -1300,6 +1372,9 @@ msgstr "Boşluk Karakterlerini Çiz" msgid "Behavior" msgstr "Davranış" +msgid "Empty Selection Clipboard" +msgstr "Seçim Panosunu Boşalt" + msgid "Navigation" msgstr "Gezinti" @@ -1369,6 +1444,12 @@ msgstr "Kaydederken Betikleri Otomatik Tekrar Yükle ve Çözümle" msgid "Open Dominant Script on Scene Change" msgstr "Sahne Değişiminde Baskın Betiği Aç" +msgid "Documentation" +msgstr "Belgeler" + +msgid "Enable Tooltips" +msgstr "Araç İpuçlarını Etkinleştir" + msgid "Script List" msgstr "Betik Listesi" @@ -1384,6 +1465,9 @@ msgstr "Betik Sıcaklığı Etkin" msgid "Script Temperature History Size" msgstr "Betik Sıcaklığı Geçmiş Boyutu" +msgid "Highlight Scene Scripts" +msgstr "Sahne Betiklerini Vurgula" + msgid "Group Help Pages" msgstr "Yardım Sayfalarını Grupla" @@ -1408,6 +1492,9 @@ msgstr "Tamamlanma" msgid "Idle Parse Delay" msgstr "Boşta Çözümleme Gecikmesi" +msgid "Idle Parse Delay With Errors Found" +msgstr "Hatalar Bulunduğunda Boşta Ayrıştırma Gecikmesi" + msgid "Auto Brace Complete" msgstr "Otomatik Parantez Eşleme" @@ -1534,6 +1621,18 @@ msgstr "Seçili İskelet" msgid "CSG" msgstr "CSG" +msgid "GridMap Grid" +msgstr "IzgaraHaritası Izgara" + +msgid "Spring Bone Joint" +msgstr "Yaylanan Kemik Eklem" + +msgid "Spring Bone Collision" +msgstr "Yaylanan Kemik Çarpışma" + +msgid "Spring Bone Inside Collision" +msgstr "Yaylanan Kemik Çarpışma İçinde" + msgid "Gizmo Settings" msgstr "Alet Ayarları" @@ -1585,6 +1684,9 @@ msgstr "Gezinti Hissi" msgid "Orbit Sensitivity" msgstr "Yörünge Hassasiyeti" +msgid "Translation Sensitivity" +msgstr "Yer Değiştirme Hassasiyeti" + msgid "Orbit Inertia" msgstr "Yörünge Ataleti" @@ -1700,7 +1802,7 @@ msgid "Show Previous Outline" msgstr "Önceki Anahatı Göster" msgid "Auto Bake Delay" -msgstr "Otomatik Pişirme Gecikmesi" +msgstr "Otomatik Fırınlama Gecikmesi" msgid "Autorename Animation Tracks" msgstr "Animasyon İzlerini Otomatik Yeniden Adlandır" @@ -1780,6 +1882,9 @@ msgstr "En Fazla Çizgi Sayısı" msgid "Platforms" msgstr "Platformlar" +msgid "Linux/*BSD" +msgstr "Linux/*BSD" + msgid "Prefer Wayland" msgstr "Wayland Tercih Et" @@ -1804,6 +1909,9 @@ msgstr "Profil Oluşturucu Kare Geçmişi Boyutu" msgid "Profiler Frame Max Functions" msgstr "Profil Oluşturucu Kare En Fazla Fonksiyon Sayısı" +msgid "Profiler Target FPS" +msgstr "Profil Oluşturucu Hedef FPS" + msgid "Remote Scene Tree Refresh Interval" msgstr "Uzak Sahne Ağacı Yenileme Sıklığı" @@ -2056,6 +2164,9 @@ msgstr "Düz" msgid "Hide Slider" msgstr "Kaydırıcıyı Gizle" +msgid "Editing Integer" +msgstr "Tamsayı Düzenleme" + msgid "Zoom" msgstr "Yakınlaştır" @@ -2089,9 +2200,18 @@ msgstr "Konum İzlerini Normalize Et" msgid "Reset All Bone Poses After Import" msgstr "İçe Aktarım Sonrası Tüm Kemik Pozlarını Sıfırla" +msgid "Retarget Method" +msgstr "Yeniden Hedefleme Yöntemi" + msgid "Keep Global Rest on Leftovers" msgstr "Genel Rahat Duruşu Artıkların üzerinde Tut" +msgid "Use Global Pose" +msgstr "Genel Duruşu Kullan" + +msgid "Original Skeleton Name" +msgstr "Orijinal İskelet İsmi" + msgid "Fix Silhouette" msgstr "Taslağı Düzelt" @@ -2122,6 +2242,15 @@ msgstr "Teğetler Oluştur" msgid "Generate LODs" msgstr "Detay Seviyeleri Oluştur" +msgid "Generate Shadow Mesh" +msgstr "Gölge Örgüsü Oluştur" + +msgid "Generate Lightmap UV2" +msgstr "Işık Haritası UV2 Oluştur" + +msgid "Generate Lightmap UV2 Texel Size" +msgstr "Işık Haritası UV2 Oluştur Texel Boyutu" + msgid "Scale Mesh" msgstr "Örgüyü Ölçekle" @@ -2323,6 +2452,9 @@ msgstr "Kök Ölçeği" msgid "Import as Skeleton Bones" msgstr "İskelet Kemikleri Olarak İçe Aktar" +msgid "Use Node Type Suffixes" +msgstr "Düğüm Türü Son-eklerini Kullan" + msgid "Meshes" msgstr "Örgüler" @@ -2333,7 +2465,7 @@ msgid "Create Shadow Meshes" msgstr "Gölge Örgüleri Oluştur" msgid "Light Baking" -msgstr "Işık Pişirme" +msgstr "Işık Fırınlama" msgid "Lightmap Texel Size" msgstr "Işık Haritası Texel Boyutu" @@ -2392,6 +2524,9 @@ msgstr "İpucu" msgid "Subpixel Positioning" msgstr "Alt-Piksel Konumlandırma" +msgid "Keep Rounding Remainders" +msgstr "Kalanları Yuvarlamaya Devam Et" + msgid "Oversampling" msgstr "Sıkörnekleme" @@ -2594,6 +2729,9 @@ msgstr "Geçerli Grup İndeksi" msgid "Current Bone Idx" msgstr "Geçerli Kemik İndeksi" +msgid "Particles Emission Shape" +msgstr "Parçacıkların Yayılma Şekli" + msgid "ID" msgstr "ID" @@ -2672,9 +2810,6 @@ msgstr "Eklenti İsmi" msgid "Autoload on Startup" msgstr "Başlangıçta Otomatik Yükle" -msgid "Use Favorites Root Selection" -msgstr "Sık Kullanılan Kök Seçimini Kullan" - msgid "Flush stdout on Print" msgstr "Print kullanınca stdout'u temizle" @@ -2696,6 +2831,9 @@ msgstr "Ayrıntılı stdout" msgid "Physics Interpolation" msgstr "Fizik Ara Değerleme" +msgid "Enable Warnings" +msgstr "Uyarıları Etkinleştir" + msgid "Max Chars per Second" msgstr "Saniyede En Fazla Karakter" @@ -2729,6 +2867,9 @@ msgstr "Son Çare Vulkan'a Geri Dön" msgid "Fallback to D3D12" msgstr "Son Çare D3D12'ye Geri Dön" +msgid "Fallback to OpenGL 3" +msgstr "Son Çare OpenGL 3'e Geri Dön" + msgid "GL Compatibility" msgstr "GL Uyumluluğu" @@ -2741,6 +2882,9 @@ msgstr "Son Çare Angle'a Geri Dön" msgid "Fallback to Native" msgstr "Son Çare Yerel'e Geri Dön" +msgid "Fallback to GLES" +msgstr "Son Çare GLES'e Geri Dön" + msgid "Force Angle on Devices" msgstr "Cihazlarda Angle kullanımını Zorla" @@ -2799,7 +2943,7 @@ msgid "Hide Status Bar" msgstr "Durum Çubuğunu Gizle" msgid "Suppress UI Gesture" -msgstr "Arayüz El Hareketlerini Baskıla" +msgstr "Arayüz Parmak Hareketlerini Baskıla" msgid "XR" msgstr "Genişletilmiş Gerçeklik (XR)" @@ -2837,15 +2981,36 @@ msgstr "Başlangıç Uyarısı" msgid "Extensions" msgstr "Uzantılar" +msgid "Debug Utils" +msgstr "Hata Ayıklama Araçlar" + +msgid "Debug Message Types" +msgstr "Hata Ayıklama Mesaj Türleri" + msgid "Hand Tracking" msgstr "El Takibi" +msgid "Hand Tracking Unobstructed Data Source" +msgstr "Elle İzleme Görüşü Engellenmemiş Veri Kaynağı" + +msgid "Hand Tracking Controller Data Source" +msgstr "El İzleme Denetleyici Veri Kaynağı" + msgid "Hand Interaction Profile" msgstr "El Etkileşim Profili" msgid "Eye Gaze Interaction" msgstr "Göz Bakış Etkileşimi" +msgid "Binding Modifiers" +msgstr "Bağlama Değiştiricileri" + +msgid "Analog Threshold" +msgstr "Analog Eşik Değeri" + +msgid "Dpad Binding" +msgstr "Dpad Bağlama" + msgid "Boot Splash" msgstr "Açılış Resmi" @@ -2894,15 +3059,15 @@ msgstr "Araç İpucu Konumu Kaydırması" msgid "Show Image" msgstr "Resim Göster" -msgid "Image" -msgstr "Resim" - msgid "Fullsize" msgstr "Tam boyut" msgid "Use Filter" msgstr "Filtre Kullan" +msgid "Image" +msgstr "Resim" + msgid "Minimum Display Time" msgstr "En Az Görüntüleme Süresi" @@ -3017,6 +3182,27 @@ msgstr "Bağlanan Kenarlar" msgid "Edges Free" msgstr "Boştaki Kenarlar" +msgid "Obstacles" +msgstr "Engeller" + +msgid "Pipeline" +msgstr "İşlem Kuyruğu" + +msgid "Compilations Canvas" +msgstr "Derlemeler Kanvas" + +msgid "Compilations Mesh" +msgstr "Derlemeler Örgü" + +msgid "Compilations Surface" +msgstr "Derlemeler Yüzey" + +msgid "Compilations Draw" +msgstr "Derlemeler Çizim" + +msgid "Compilations Specialization" +msgstr "Derlemeler Uzmanlık" + msgid "Operation" msgstr "İşlem" @@ -3098,6 +3284,9 @@ msgstr "Yol Basitleştirme Açısı" msgid "Path Rotation" msgstr "Yol Dönme" +msgid "Path Rotation Accurate" +msgstr "Yol Dönme Kesinlik" + msgid "Path Local" msgstr "Yol Yerel" @@ -3170,6 +3359,9 @@ msgstr "En Fazla Çağrı Yığını" msgid "Exclude Addons" msgstr "Eklentileri Hariç Tut" +msgid "Renamed in Godot 4 Hint" +msgstr "Godot 4 İpucu'nda yeniden adlandırıldı" + msgid "Language Server" msgstr "Dil Sunucusu" @@ -3189,7 +3381,7 @@ msgid "Copyright" msgstr "Telif Hakkı" msgid "Bake FPS" -msgstr "Pişirme FPS'si" +msgstr "Fırınlama FPS'si" msgid "glTF" msgstr "glTF" @@ -3434,6 +3626,24 @@ msgstr "Alt-öğeler" msgid "Light" msgstr "Işık" +msgid "glTF to Godot Expression" +msgstr "glTF'den Godot İfadesi'ne" + +msgid "Godot to glTF Expression" +msgstr "Godot'dan glTF İfadesi'ne" + +msgid "Node Paths" +msgstr "Düğüm Yolları" + +msgid "Object Model Type" +msgstr "Nesne Modeli Türü" + +msgid "Json Pointers" +msgstr "Json İşaretçileri" + +msgid "Variant Type" +msgstr "Değişen Türü" + msgid "Joints" msgstr "Eklemler" @@ -3498,7 +3708,7 @@ msgid "Priority" msgstr "Öncelik" msgid "Bake Navigation" -msgstr "Gezintiyi Pişir" +msgstr "Gezintiyi Fırınla" msgid "Clip Count" msgstr "Parça Sayısı" @@ -3515,11 +3725,119 @@ msgstr "Solma Süresi" msgid "Stream Count" msgstr "Akış Sayısı" +msgid "Jolt Physics 3D" +msgstr "Jolt Fizik Motoru 3B" + +msgid "Simulation" +msgstr "Benzetim" + +msgid "Velocity Steps" +msgstr "Hız Adımları" + +msgid "Position Steps" +msgstr "Konum Adımları" + +msgid "Use Enhanced Internal Edge Removal" +msgstr "Geliştirilmiş Dahili Kenar Kaldırmayı Kullan" + +msgid "Areas Detect Static Bodies" +msgstr "Alanlar Statik Cisimleri Tespit Et" + +msgid "Generate All Kinematic Contacts" +msgstr "Tüm Kinematik Temasları Üret" + +msgid "Penetration Slop" +msgstr "İçe Girme Eğimi" + +msgid "Speculative Contact Distance" +msgstr "Tahmini Temas Mesafesi" + +msgid "Baumgarte Stabilization Factor" +msgstr "Baumgarte Dengeleme Çarpanı" + +msgid "Soft Body Point Radius" +msgstr "Yumuşak Cisim Nokta Yarıçapı" + +msgid "Bounce Velocity Threshold" +msgstr "Sıçrama Hızı Eşik Değeri" + +msgid "Allow Sleep" +msgstr "Uykuya İzin Ver" + +msgid "Sleep Velocity Threshold" +msgstr "Uyku Hız Eşik Değeri" + +msgid "Sleep Time Threshold" +msgstr "Uyku Süre Eşik Değeri" + +msgid "Continuous CD Movement Threshold" +msgstr "Sürekli ÇA Hareket Eşik Değeri" + +msgid "Continuous CD Max Penetration" +msgstr "Sürekli ÇA En Fazla İçe Girme" + +msgid "Body Pair Contact Cache Enabled" +msgstr "Cisim Çifti Temas Önbelleği Etkin" + +msgid "Body Pair Contact Cache Distance Threshold" +msgstr "Cisim Çifti Temas Önbelleği Mesafe Eşik Değeri" + +msgid "Body Pair Contact Cache Angle Threshold" +msgstr "Cisim Çifti Temas Önbelleği Açı Eşik Değeri" + +msgid "Queries" +msgstr "Sorgular" + +msgid "Enable Ray Cast Face Index" +msgstr "Işın Yayma Yüz İndeksini Etkinleştir" + +msgid "Motion Queries" +msgstr "Hareket Sorguları" + +msgid "Recovery Iterations" +msgstr "Kurtarma Yinelemeleri" + +msgid "Recovery Amount" +msgstr "Kurtarma Miktarı" + +msgid "Collisions" +msgstr "Çarpışmalar" + +msgid "Collision Margin Fraction" +msgstr "Çarpışma Kenar Boşluğu Oranı" + +msgid "Active Edge Threshold" +msgstr "Aktif Kenar Eşik Değeri" + +msgid "World Node" +msgstr "Dünya Düğümü" + +msgid "Temporary Memory Buffer Size" +msgstr "Geçici Bellek Arabellek Boyutu" + +msgid "World Boundary Shape Size" +msgstr "Dünya Sınır Şekli Boyutu" + +msgid "Max Linear Velocity" +msgstr "En Fazla Doğrusal Hız" + +msgid "Max Angular Velocity" +msgstr "En Fazla Açısal Hız" + +msgid "Max Bodies" +msgstr "En Fazla Cisim Sayısı" + +msgid "Max Body Pairs" +msgstr "En Fazla Cisim Çifti" + +msgid "Max Contact Constraints" +msgstr "En fazla Temas Kısıtlamaları" + msgid "Lightmapping" msgstr "Işıkharitalama" msgid "Bake Quality" -msgstr "Pişirme Kalitesi" +msgstr "Fırınlama Kalitesi" msgid "Low Quality Ray Count" msgstr "Düşük Kalite Işın Sayısı" @@ -3534,7 +3852,7 @@ msgid "Ultra Quality Ray Count" msgstr "Çok Yüksek Kalite Işın Sayısı" msgid "Bake Performance" -msgstr "Pişirme Verimliliği" +msgstr "Fırınlama Verimliliği" msgid "Max Rays per Pass" msgstr "Geçiş Başına En Fazla Işın" @@ -3542,6 +3860,9 @@ msgstr "Geçiş Başına En Fazla Işın" msgid "Region Size" msgstr "Bölge Boyutu" +msgid "Max Transparency Rays" +msgstr "En Fazla Şeffaflık Işınları" + msgid "Low Quality Probe Ray Count" msgstr "Düşük Kalite Sonda Işın Sayısı" @@ -3563,6 +3884,9 @@ msgstr "Gürültü Giderme" msgid "Denoiser" msgstr "Gürültü Giderici" +msgid "Enable TLS V 1" +msgstr "TLS V 1'i etkinleştir" + msgid "BPM" msgstr "Dakika Başına Vuruş (BPM)" @@ -3588,7 +3912,7 @@ msgid "Display to Lens" msgstr "Merceğe Görüntüle" msgid "Offset Rect" -msgstr "Kaydırma Dörtgeni" +msgstr "Kaydırma Dikdörtgeni" msgid "Oversample" msgstr "Sıkörnek" @@ -3605,9 +3929,6 @@ msgstr "Vulkan VRS" msgid "Min Radius" msgstr "En Düşük Yarıçap" -msgid "Spawnable Scenes" -msgstr "Oluşturulabilir Sahneler" - msgid "Spawn Path" msgstr "Oluşturma Yolu" @@ -3740,12 +4061,45 @@ msgstr "Eylem Türü" msgid "Toplevel Paths" msgstr "Üstseviye Yollar" +msgid "Binding Path" +msgstr "Bağlama Yolu" + msgid "Interaction Profile Path" msgstr "Etkileşim Profili Yolu" msgid "Runtime Paths" msgstr "Çalışma Zamanı Yolları" +msgid "Action Set" +msgstr "Eylem Seti" + +msgid "Input Path" +msgstr "Giriş Yolu" + +msgid "Threshold Released" +msgstr "Eşik Serbest Bırakıldı" + +msgid "Center Region" +msgstr "Merkez Bölge" + +msgid "Wedge Angle" +msgstr "Kama Açısı" + +msgid "Is Sticky" +msgstr "Yapışkan mı" + +msgid "On Haptic" +msgstr "Dokunsalın Üzerinde" + +msgid "Off Haptic" +msgstr "Dokunsalın dışında" + +msgid "On Threshold" +msgstr "Eşik Değerinde" + +msgid "Off Threshold" +msgstr "Eşik Değeri dışında" + msgid "Display Refresh Rate" msgstr "Görüntü Tazeleme Oranı" @@ -3755,6 +4109,12 @@ msgstr "İşleme Hedefi Boyut Çoklayıcı" msgid "Layer Viewport" msgstr "Katman Çerçevesi" +msgid "Use Android Surface" +msgstr "Android Surface kullanın" + +msgid "Android Surface Size" +msgstr "Android Surface Boyut" + msgid "Sort Order" msgstr "Sıralama Düzeni" @@ -3863,6 +4223,9 @@ msgstr "Tokalaşma Zaman Aşımı" msgid "Max Queued Packets" msgstr "Sıraya Alınabilecek En Fazla Paket" +msgid "Heartbeat Interval" +msgstr "Kalp Atışı Aralığı" + msgid "Session Mode" msgstr "Oturum Kipi" @@ -3911,6 +4274,9 @@ msgstr "Uyarlanabilir Önplan 432 X 432" msgid "Adaptive Background 432 X 432" msgstr "Uyarlanabilir Arkaplan 432 X 432" +msgid "Adaptive Monochrome 432 X 432" +msgstr "Uyarlanabilir Tekrenkli 432 X 432" + msgid "Gradle Build" msgstr "Gradle Derlemesi" @@ -3998,6 +4364,12 @@ msgstr "XR Özellikleri" msgid "XR Mode" msgstr "XR Kipi" +msgid "Gesture" +msgstr "Parmak Hareketleri" + +msgid "Swipe to Dismiss" +msgstr "Kapatmak için Kaydır" + msgid "Screen" msgstr "Ekran" @@ -4061,9 +4433,18 @@ msgstr "Bildirim 40 X 40" msgid "Notification 60 X 60" msgstr "Bildirim 60 X 60" +msgid "Notification 76 X 76" +msgstr "Bildirim 76 X 76" + +msgid "Notification 114 X 114" +msgstr "Bildirim 114 X 114" + msgid "Spotlight 80 X 80" msgstr "Spot ışığı 80 X 80" +msgid "Spotlight 120 X 120" +msgstr "Spot Işığı 120 X 120" + msgid "iPhone 120 X 120" msgstr "iPhone 120 X 120" @@ -4076,6 +4457,15 @@ msgstr "iPad 167 X 167" msgid "iPad 152 X 152" msgstr "iPad 152 X 152" +msgid "iOS 128 X 128" +msgstr "iOS 128 X 128" + +msgid "iOS 192 X 192" +msgstr "iOS 192 X 192" + +msgid "iOS 136 X 136" +msgstr "iOS 136 X 136" + msgid "App Store 1024 X 1024" msgstr "App Store 1024 X 1024" @@ -4097,6 +4487,12 @@ msgstr "Önhazırlık Profili Benzersiz Kimliği Hata Ayıklama" msgid "Provisioning Profile UUID Release" msgstr "Ön hazırlık Profil Benzersiz Kimliği Yayınlama" +msgid "Provisioning Profile Specifier Debug" +msgstr "ÖnHazırlık Profili Belirleyicisi Hata Ayıklama" + +msgid "Provisioning Profile Specifier Release" +msgstr "ÖnHazırlık Profili Belirleyicisi Yayın" + msgid "Export Method Release" msgstr "Dışa Aktarma Yöntemi Yayınlama" @@ -4130,9 +4526,18 @@ msgstr "Eski Dışa Aktarma Dosyalarını Koşulsuz Sil" msgid "Entitlements" msgstr "Yetkilendirmeler" +msgid "Increased Memory Limit" +msgstr "Artırılmış Bellek Sınırı" + +msgid "Game Center" +msgstr "Oyun Merkezi" + msgid "Push Notifications" msgstr "Anlık Bildirimler" +msgid "Additional" +msgstr "Ek" + msgid "Capabilities" msgstr "Yetenekler" @@ -4181,6 +4586,15 @@ msgstr "İzleme Etkinleştirildi" msgid "Tracking Domains" msgstr "İzleme Etki Alanları" +msgid "Icon 1024 X 1024" +msgstr "Simge 1024 X 1024" + +msgid "Icon 1024 X 1024 Dark" +msgstr "Simge 1024 X 1024 Koyu" + +msgid "Icon 1024 X 1024 Tinted" +msgstr "Simge 1024 X 1024 Renkli" + msgid "Storyboard" msgstr "Hikaye tahtası" @@ -4223,6 +4637,12 @@ msgstr "Dağıtım Türü" msgid "Copyright Localized" msgstr "Telif Hakkı Yerelleştirilmiş" +msgid "Min macOS Version x86 64" +msgstr "En küçük macOS Sürümü x86 64" + +msgid "Min macOS Version arm64" +msgstr "En küçük macOS Sürümü arm64" + msgid "Export Angle" msgstr "Açıyı Dışa Aktar" @@ -4530,7 +4950,7 @@ msgid "D3D12 Agility SDK Multiarch" msgstr "D3D12 Agility SDK Çoklumimari" msgid "Sprite Frames" -msgstr "Grafik Öğe Kareleri" +msgstr "Resimcik Kareleri" msgid "Frame" msgstr "Kare" @@ -4688,6 +5108,9 @@ msgstr "Patlayıcılık" msgid "Randomness" msgstr "Rastgelelik" +msgid "Use Fixed Seed" +msgstr "Sabit Tohumlama Kullan" + msgid "Lifetime Randomness" msgstr "Yaşam süresi Rastgeleliği" @@ -5364,7 +5787,7 @@ msgid "Custom Integrator" msgstr "Özel Toplayıcı" msgid "Continuous CD" -msgstr "Sürekli Çarpışma Algılayıcı" +msgstr "Sürekli Çarpışma Algılayıcı (ÇA)" msgid "Contact Monitor" msgstr "Temas İzleyici" @@ -5466,6 +5889,9 @@ msgstr "Çarpışma Görünürlük Kipi" msgid "Navigation Visibility Mode" msgstr "Gezinti Görünürlük Kipi" +msgid "Occlusion Enabled" +msgstr "Perdeleme Etkin" + msgid "Y Sort Origin" msgstr "Y Sıralama Kökeni" @@ -5595,6 +6021,9 @@ msgstr "Halka Yarıçapı" msgid "Ring Inner Radius" msgstr "Halka İç Yarıçapı" +msgid "Ring Cone Angle" +msgstr "Halka Konisi Açısı" + msgid "Rotate Y" msgstr "Döndür Y" @@ -5660,7 +6089,7 @@ msgid "Thickness" msgstr "Kalınlık" msgid "Bake Mask" -msgstr "Maske Pişir" +msgstr "Maske Fırınla" msgid "Update Mode" msgstr "Güncelleme Kipi" @@ -5668,6 +6097,9 @@ msgstr "Güncelleme Kipi" msgid "Follow Camera Enabled" msgstr "Kamera Takip Etkin" +msgid "Heightfield Mask" +msgstr "Yükseklik Alanı Maskesi" + msgid "Directionality" msgstr "Yönlülük" @@ -5798,7 +6230,7 @@ msgid "Specular" msgstr "Yansıtıcı" msgid "Bake Mode" -msgstr "Pişirme Kipi" +msgstr "Fırınlama Kipi" msgid "Normal Bias" msgstr "Normal Sapması" @@ -5815,6 +6247,9 @@ msgstr "Şeffaflık" msgid "Blur" msgstr "Bulanıklık" +msgid "Caster Mask" +msgstr "Yayıcı Maskesi" + msgid "Directional Shadow" msgstr "Yönlü Gölge" @@ -5851,9 +6286,21 @@ msgstr "Noktasal" msgid "Angle Attenuation" msgstr "Açısal Zayıflama" +msgid "Lightmap Textures" +msgstr "Işık Haritası Dokuları" + +msgid "Shadowmask Textures" +msgstr "Gölge Maskesi Dokuları" + msgid "Quality" msgstr "Kalite" +msgid "Supersampling" +msgstr "Süper örnekleme" + +msgid "Supersampling Factor" +msgstr "Süper Örnekleme Çarpanı" + msgid "Bounces" msgstr "Sekmeli" @@ -5863,6 +6310,9 @@ msgstr "Dolaylı Enerjiyi Sektir" msgid "Directional" msgstr "Yönlü" +msgid "Shadowmask Mode" +msgstr "Gölge Maskesi Modu" + msgid "Use Texture for Bounces" msgstr "Sektirme için Doku Kullan" @@ -5908,9 +6358,78 @@ msgstr "Işık Verisi" msgid "Target Node" msgstr "Hedef Düğüm" +msgid "Forward Axis" +msgstr "İleri Eksen" + +msgid "Primary Rotation Axis" +msgstr "Birincil Dönme Ekseni" + +msgid "Use Secondary Rotation" +msgstr "İkincil Dönmeyi Kullan" + +msgid "Origin Settings" +msgstr "Sıfır Noktası Ayarları" + msgid "From" msgstr "Şuradan" +msgid "External Node" +msgstr "Harici Düğüm" + +msgid "Time Based Interpolation" +msgstr "Zaman Temelli Ara Değerleme" + +msgid "Transition Type" +msgstr "Geçiş Tipi" + +msgid "Ease Type" +msgstr "Yumuşatma Tipi" + +msgid "Angle Limitation" +msgstr "Açı Sınırlama" + +msgid "Use Angle Limitation" +msgstr "Açı Sınırlama Kullan" + +msgid "Symmetry Limitation" +msgstr "Simetri Sınırlaması" + +msgid "Primary Limit Angle" +msgstr "Birincil Sınır Açısı" + +msgid "Primary Damp Threshold" +msgstr "Birincil Yavaşlatma Eşiği" + +msgid "Primary Positive Limit Angle" +msgstr "Birincil Pozitif Limit Açısı" + +msgid "Primary Positive Damp Threshold" +msgstr "Birincil Pozitif Yavaşlatma Eşiği" + +msgid "Primary Negative Limit Angle" +msgstr "Birincil Negatif Sınır Açısı" + +msgid "Primary Negative Damp Threshold" +msgstr "Birincil Negatif Yavaşlatma Eşiği" + +msgid "Secondary Limit Angle" +msgstr "İkincil Sınır Açısı" + +msgid "Secondary Damp Threshold" +msgstr "İkincil Yavaşlatma Eşiği" + +msgid "Secondary Positive Limit Angle" +msgstr "İkincil Pozitif Limit Açısı" + +msgid "Secondary Positive Damp Threshold" +msgstr "İkincil Pozitif Yavaşlatma Eşiği" + +msgid "Secondary Negative Limit Angle" +msgstr "İkincil Negatif Sınır Açısı" + +msgid "Secondary Negative Damp Threshold" +msgstr "İkincil Negatif Yavaşlatma Eşiği" + msgid "Surface Material Override" msgstr "Yüzey Malzemesi Üzerine Yaz" @@ -5951,7 +6470,7 @@ msgid "Visibility Parent" msgstr "Görünürlük Üst Öğesi" msgid "Bake" -msgstr "Pişir" +msgstr "Fırınla" msgid "Rotation Mode" msgstr "Dönme Kipi" @@ -5986,11 +6505,14 @@ msgstr "Işın Seçilebilir" msgid "Capture on Drag" msgstr "Sürüklerken Yakala" +msgid "Debug Fill" +msgstr "Hata Ayıklama Dolgusu" + msgid "Swing Span" msgstr "Sallanma Genişliği" msgid "Twist Span" -msgstr "Kıvırma Genişliği" +msgstr "Burulma Genişliği" msgid "Relaxation" msgstr "Gevşeme" @@ -6235,6 +6757,9 @@ msgstr "Seyahat" msgid "Max Force" msgstr "En Fazla Kuvvet" +msgid "Blend Distance" +msgstr "Harmanlama Mesafesi" + msgid "Origin Offset" msgstr "Sıfır Noktası Kayması" @@ -6343,6 +6868,12 @@ msgstr "Sürükleme Katsayısı" msgid "Position Offset" msgstr "Konum Kayması" +msgid "Rotation Offset" +msgstr "Döndürme Kayması" + +msgid "Inside" +msgstr "İçinde" + msgid "Track Physics Step" msgstr "Fizik Adımını Takip Et" @@ -6379,6 +6910,9 @@ msgstr "Perdeleme Kaldırmayı Gözardı Et" msgid "Global Illumination" msgstr "Genel Aydınlatma" +msgid "Lightmap Texel Scale" +msgstr "Lightmap Texel Ölçeği" + msgid "Lightmap Scale" msgstr "Işık Haritası Ölçeği" @@ -6418,11 +6952,14 @@ msgstr "Dünya Ölçeği" msgid "Play Mode" msgstr "Oynatma Kipi" +msgid "Advance on Start" +msgstr "Başlangıçta İlerle" + msgid "Use Custom Timeline" -msgstr "Özel Zaman Çizelgesi Kullan" +msgstr "Özel Kurgu Şeridi Kullan" msgid "Timeline Length" -msgstr "Zaman Çizelgesi Uzunluğu" +msgstr "Kurgu Şeridi Uzunluğu" msgid "Stretch Time Scale" msgstr "Zaman Ölçeğini Esnet" @@ -6517,6 +7054,9 @@ msgstr "Kök Hareketi" msgid "Track" msgstr "İz" +msgid "Local" +msgstr "Yerel" + msgid "Callback Mode" msgstr "Geriçağır Kipi" @@ -6652,6 +7192,9 @@ msgstr "Sol Üst Kullan" msgid "Symbol Lookup on Click" msgstr "Tıklayınca Simge Arama" +msgid "Symbol Tooltip on Hover" +msgstr "Üzerine Gelindiğinde Simge Araç İpucu" + msgid "Line Folding" msgstr "Satır Katlama" @@ -6796,6 +7339,9 @@ msgstr "Sayı Sistemini Yerelleştir" msgid "Tooltip" msgstr "Araçipucu" +msgid "Auto Translate Mode" +msgstr "Otomatik Çeviri Modu" + msgid "Focus" msgstr "Odak" @@ -6856,6 +7402,9 @@ msgstr "Kip Başlığın Üzerine Yazar" msgid "Root Subfolder" msgstr "Kök Altklasör" +msgid "Filename Filter" +msgstr "Dosya Adı Filtresi" + msgid "Use Native Dialog" msgstr "Yerel Diyaloğu Kullan" @@ -6886,6 +7435,9 @@ msgstr "Bağlantı Çizgileri" msgid "Curvature" msgstr "Eğrilik" +msgid "Connections" +msgstr "Bağlantılar" + msgid "Zoom Min" msgstr "Yaklaştırma En Düşük" @@ -6958,9 +7510,15 @@ msgstr "Aramaya İzin Ver" msgid "Max Text Lines" msgstr "En Fazla Metin Satırları" +msgid "Auto Width" +msgstr "Otomatik Genişlik" + msgid "Auto Height" msgstr "Otomatik Yükseklik" +msgid "Wraparound Items" +msgstr "Öğeleri Sarmala" + msgid "Items" msgstr "Öğeler" @@ -6985,6 +7543,9 @@ msgstr "Sabit Simge Boyu" msgid "Label Settings" msgstr "Etiket Ayarları" +msgid "Paragraph Separator" +msgstr "Paragraf Ayırıcı" + msgid "Ellipsis Char" msgstr "Üç Nokta Karakteri" @@ -7015,12 +7576,18 @@ msgstr "Yer Tutucu Metin" msgid "Max Length" msgstr "En Fazla Uzunluk" +msgid "Keep Editing on Text Submit" +msgstr "Metin Gönderme sonrasında Düzenlemeye Devam Et" + msgid "Expand to Text Length" msgstr "Metin Uzunluğuna Genişlet" msgid "Context Menu Enabled" msgstr "İçerik Menüsü Etkin" +msgid "Emoji Menu Enabled" +msgstr "Emoji Menüsü Etkinleştirildi" + msgid "Virtual Keyboard Enabled" msgstr "Sanal Klavye Etkin" @@ -7231,6 +7798,9 @@ msgstr "Özel Adım" msgid "Follow Focus" msgstr "Odağı Takip Et" +msgid "Draw Focus Border" +msgstr "Odak Kenarlığı Çiz" + msgid "Horizontal Custom Step" msgstr "Yatay Özel Adım" @@ -7270,12 +7840,30 @@ msgstr "Kaymayı Bölümlendir" msgid "Collapsed" msgstr "Daraltılmış" +msgid "Dragging Enabled" +msgstr "Sürükleme Etkin" + msgid "Dragger Visibility" -msgstr "Kaydırıcı Görünürlüğü" +msgstr "Sürükleyici Görünürlüğü" + +msgid "Drag Area" +msgstr "Sürükleme Alanı" + +msgid "Margin Begin" +msgstr "Kenar Boşluğu Başlangıç" + +msgid "Margin End" +msgstr "Kenar Boşluğu Bitiş" + +msgid "Highlight in Editor" +msgstr "Düzenleyicide Vurgula" msgid "Stretch Shrink" msgstr "Esnetme Daraltma" +msgid "Mouse Target" +msgstr "Fare Hedefi" + msgid "Current Tab" msgstr "Geçerli Sekme" @@ -7327,6 +7915,9 @@ msgstr "En Küçük Boy için Gizli Sekmeler Kullan" msgid "Tab Focus Mode" msgstr "Sekme Odak Kipi" +msgid "Empty Selection Clipboard Enabled" +msgstr "Seçim Panosu Boşaltma Etkin" + msgid "Wrap Mode" msgstr "Sarma Kipi" @@ -7339,6 +7930,9 @@ msgstr "Dosyanın Sonundan Öteye" msgid "Fit Content Height" msgstr "İçeriğin Yükseliğini Uydur" +msgid "Fit Content Width" +msgstr "İçerik Genişliğine Uydur" + msgid "Draw" msgstr "Çiz" @@ -7442,6 +8036,9 @@ msgstr "Yatay Kaydırma Etkin" msgid "Scroll Vertical Enabled" msgstr "Dikey Kaydırma Etkin" +msgid "Auto Tooltip" +msgstr "Otomatik Araç İpucu" + msgid "Audio Track" msgstr "Ses İzi" @@ -7539,7 +8136,7 @@ msgid "Messages" msgstr "İletiler" msgid "Auto Translate" -msgstr "Otomatik Taşı" +msgstr "Otomatik Çeviri" msgid "Editor Description" msgstr "Düzenleyici Açıklaması" @@ -7583,23 +8180,14 @@ msgstr "Görüntülenen En Fazla Bağlantılar" msgid "Draw 2D Outlines" msgstr "2D Anahatları Çiz" -msgid "Anti Aliasing" -msgstr "Kusur Düzeltme" - -msgid "MSAA 2D" -msgstr "2B Çok Örnekli Kenar Düzeltme" - -msgid "MSAA 3D" -msgstr "3B Çok Örnekli Kenar Düzeltme" - msgid "Viewport" msgstr "Çerçeve" msgid "Transparent Background" msgstr "Şeffaf Arkaplan" -msgid "HDR 2D" -msgstr "HDR 2B" +msgid "Anti Aliasing" +msgstr "Kusur Düzeltme" msgid "Screen Space AA" msgstr "Ekran Alanı Kenar Düzeltme" @@ -7643,9 +8231,6 @@ msgstr "Konumsal Gölge" msgid "Atlas Size" msgstr "Atlas Boyutu" -msgid "Atlas 16 Bits" -msgstr "Atlas 16 Bitlik" - msgid "Atlas Quadrant 0 Subdiv" msgstr "Atlas Çeyreği 0 Altbölüm" @@ -7679,6 +8264,9 @@ msgstr "Bekleme Süresi" msgid "Autostart" msgstr "Otomatik başlatma" +msgid "Ignore Time Scale" +msgstr "Zaman Ölçeğini Görmezden Gel" + msgid "Viewport Path" msgstr "Çerçeve Yolu" @@ -7700,6 +8288,12 @@ msgstr "Şeffaf Arkaplan" msgid "Handle Input Locally" msgstr "Girdiyi Yerel Olarak İşle" +msgid "MSAA 2D" +msgstr "2B Çok Örnekli Kenar Düzeltme" + +msgid "MSAA 3D" +msgstr "3B Çok Örnekli Kenar Düzeltme" + msgid "Debug Draw" msgstr "Hata Ayıklama Çizimi" @@ -7814,6 +8408,9 @@ msgstr "Açılır Pencere" msgid "Mouse Passthrough" msgstr "Fare İçindengeçmesi" +msgid "Exclude From Capture" +msgstr "Yakalamanın Dışında Tut" + msgid "Force Native" msgstr "Özgünü Zorla" @@ -7878,10 +8475,10 @@ msgid "Cells" msgstr "Hücreler" msgid "Baking Rect" -msgstr "Dörtgen Pişiriliyor" +msgstr "Dörtgen Fırınlanıyor" msgid "Baking Rect Offset" -msgstr "Dörtgen Kayması Pişiriliyor" +msgstr "Dörtgen Kayması Fırınlanıyor" msgid "A" msgstr "A" @@ -8093,6 +8690,9 @@ msgstr "Öğe" msgid "Mesh Transform" msgstr "Ögrü Dönüştürme" +msgid "Mesh Cast Shadow" +msgstr "Örgü Gölge Yayma" + msgid "Navigation Mesh Transform" msgstr "Gezinti Örgüsü Dönüştürme" @@ -8354,11 +8954,17 @@ msgstr "Kompozitör Efektleri" msgid "Load Path" msgstr "Yükleme Yolu" +msgid "Min Domain" +msgstr "En Düşük Etki Alanı" + +msgid "Max Domain" +msgstr "En Fazla Etki Alanı" + msgid "Bake Resolution" -msgstr "Pişirme Çözünürlüğü" +msgstr "Fırınlama Çözünürlüğü" msgid "Bake Interval" -msgstr "Pişirme Aralığı" +msgstr "Fırınlama Aralığı" msgid "Up Vector" msgstr "Üst Vektör" @@ -8624,6 +9230,9 @@ msgstr "HDR Kullan" msgid "To" msgstr "Şuraya" +msgid "Paragraph Spacing" +msgstr "Paragraf Aralığı" + msgid "Next Pass" msgstr "Sonraki Geçiş" @@ -8868,10 +9477,10 @@ msgid "Walkable Low Height Spans" msgstr "Yürünebilir Düşük Yükseklik Açıklığı" msgid "Baking AABB" -msgstr "AABB Pişirme" +msgstr "AABB Fırınlama" msgid "Baking AABB Offset" -msgstr "AABB Kayması Pişirme" +msgstr "AABB Kayması Fırınlama" msgid "Damping as Friction" msgstr "Sönümlemeyi Sürtünme Olarak Al" @@ -8895,7 +9504,7 @@ msgid "Emission Point Texture" msgstr "Yayılma Noktası Dokusu" msgid "Emission Normal Texture" -msgstr "Yayılmaz Normali Dokusu" +msgstr "Yayılım Normali Dokusu" msgid "Emission Color Texture" msgstr "Yayılma Rengi Dokusu" @@ -8915,6 +9524,9 @@ msgstr "Yayılma Halkası Yarıçapı" msgid "Emission Ring Inner Radius" msgstr "Yayılma Halkası İç Yarıçapı" +msgid "Emission Ring Cone Angle" +msgstr "Yayılım Halkası Koni Açısı" + msgid "Inherit Velocity Ratio" msgstr "Hız Oranını Miras Al" @@ -8987,6 +9599,9 @@ msgstr "Sondaki Miktar" msgid "Amount at Collision" msgstr "Çarpışmadaki Miktar" +msgid "Amount at Start" +msgstr "Başlangıçtaki Miktar" + msgid "Keep Velocity" msgstr "Hızı Koru" @@ -9140,6 +9755,9 @@ msgstr "Varsayılan Değer Etkin" msgid "Default Value" msgstr "Varsayılan Değer" +msgid "Enum Names" +msgstr "Numaralandırma İsimleri" + msgid "Color Default" msgstr "Renk Varsayılanı" @@ -9297,7 +9915,7 @@ msgid "Clear Button Color" msgstr "Temizle Düğmesi Rengi" msgid "Clear Button Color Pressed" -msgstr "Temizle Düğmesi Rengi Basılmış" +msgstr "Temizle Düğmesi Rengi Basıldı" msgid "Minimum Character Width" msgstr "En Az Karakter Genişliği" @@ -9338,6 +9956,9 @@ msgstr "Katlanmış Kod Bölgesi" msgid "Folded EOL Icon" msgstr "Katlanmış Satır Sonu Simgesi" +msgid "Completion Color BG" +msgstr "Tamamlama Rengi ArkaPlan" + msgid "Completion Lines" msgstr "Tamamlanma Satırları" @@ -9401,6 +10022,96 @@ msgstr "Kavrayıcı Kaydırması" msgid "Updown" msgstr "Üst-alt" +msgid "Up" +msgstr "Yukarı" + +msgid "Up Hover" +msgstr "Yukarı Üzerine Gelindi" + +msgid "Up Pressed" +msgstr "Yukarı Basıldı" + +msgid "Up Disabled" +msgstr "Yukarı Devre Dışı" + +msgid "Down" +msgstr "Aşağı" + +msgid "Down Hover" +msgstr "Aşağı Üzerine Gelme" + +msgid "Down Pressed" +msgstr "Aşağı Basıldı" + +msgid "Down Disabled" +msgstr "Aşağı Devre Dışı" + +msgid "Up Background" +msgstr "Yukarı Arka Plan" + +msgid "Up Background Hovered" +msgstr "Yukarı Arka Plan Üzerine Gelindi" + +msgid "Up Background Pressed" +msgstr "Yukarı Arka Plan Basıldı" + +msgid "Up Background Disabled" +msgstr "Yukarı Arka Plan Devre Dışı" + +msgid "Down Background" +msgstr "Aşağı Arka Plan" + +msgid "Down Background Hovered" +msgstr "Aşağı Arka Plan Üzerine Gelindi" + +msgid "Down Background Pressed" +msgstr "Aşağı Arka Plan Basıldı" + +msgid "Down Background Disabled" +msgstr "Aşağı Arka Plan Devre Dışı" + +msgid "Up Icon Modulate" +msgstr "Yukarı Simge Ton Değiştir" + +msgid "Up Hover Icon Modulate" +msgstr "Yukarı Üzerine Gelme Simge Ton Değiştirme" + +msgid "Up Pressed Icon Modulate" +msgstr "Yukarı Basıldı Simge Ton Değiştir" + +msgid "Up Disabled Icon Modulate" +msgstr "Yukarı Devre Dışı Simge Ton Değiştirme" + +msgid "Down Icon Modulate" +msgstr "Aşağı Simge Ton Değiştirme" + +msgid "Down Hover Icon Modulate" +msgstr "Aşağı Üzerine Gelme Simge Ton Değiştirme" + +msgid "Down Pressed Icon Modulate" +msgstr "Aşağı Basıldı Simge Ton Değiştirme" + +msgid "Down Disabled Icon Modulate" +msgstr "Aşağı Devre Dışı Simge Ton Değiştirme" + +msgid "Field and Buttons Separator" +msgstr "Alan ve Düğmeler Ayırıcı" + +msgid "Up Down Buttons Separator" +msgstr "Yukarı Aşağı Düğmeleri Ayırıcı" + +msgid "Buttons Vertical Separation" +msgstr "Düğmeler Dikey Ayırma" + +msgid "Field and Buttons Separation" +msgstr "Alan ve Düğmeler Ayırma" + +msgid "Buttons Width" +msgstr "Düğmeler Genişlik" + +msgid "Set Min Buttons Width From Icons" +msgstr "En Az Düğme Genişliğini Simgelerden Ayarla" + msgid "Embedded Border" msgstr "Gömülü Kenar" @@ -9443,6 +10154,12 @@ msgstr "Kapat Dikey Kayması" msgid "Buttons Separation" msgstr "Düğmeler Aralığı" +msgid "Load" +msgstr "Yükle" + +msgid "Save" +msgstr "Kaydet" + msgid "Parent Folder" msgstr "Ana Klasör" @@ -9458,6 +10175,9 @@ msgstr "Yeniden Yükle" msgid "Toggle Hidden" msgstr "Gizlileri Aç/Kapat" +msgid "Toggle Filename Filter" +msgstr "Dosya Adı Filtresini Aç/Kapat" + msgid "Folder" msgstr "Klasör" @@ -9539,6 +10259,9 @@ msgstr "Port Yatay Kayması" msgid "Hovered" msgstr "Üzerine Gelindi" +msgid "Hovered Dimmed" +msgstr "Üzerine Gelindi Solgun" + msgid "Selected Focus" msgstr "Seçili Odak" @@ -9548,6 +10271,9 @@ msgstr "İmleç" msgid "Cursor Unfocused" msgstr "İmleç Odak Dışı" +msgid "Button Hover" +msgstr "Düğme Üzerine Gelme" + msgid "Title Button Normal" msgstr "Başlık Düğmesi Normal" @@ -9590,6 +10316,9 @@ msgstr "Başlık Düğmesi Rengi" msgid "Font Hovered Color" msgstr "Yazı Tipi Üzerine Gelindi Rengi" +msgid "Font Hovered Dimmed Color" +msgstr "Yazı Tipi Üzerine Gelindi Solgun Rengi" + msgid "Guide Color" msgstr "Rehber Rengi" @@ -9671,6 +10400,15 @@ msgstr "Kaydırma Çubuğu Dikey Ayırım" msgid "Icon Margin" msgstr "Simge Kenar Boşluğu" +msgid "Font Hovered Selected Color" +msgstr "Yazı Tipi Üzerine Gelindi Seçili Renk" + +msgid "Hovered Selected" +msgstr "Üzerine Gelindi Seçili" + +msgid "Hovered Selected Focus" +msgstr "Üzerine Gelindi Seçili Odaklı" + msgid "Tab Selected" msgstr "Sekme Seçildi" @@ -9723,7 +10461,10 @@ msgid "Label Width" msgstr "Etiket Genişliği" msgid "Center Slider Grabbers" -msgstr "Kaydırıcı Kavrayıcıları Ortala" +msgstr "Kaydırıcı Tutamaçlarını Ortala" + +msgid "Menu Option" +msgstr "Menü Seçeneği" msgid "Folded Arrow" msgstr "Katlanmış Ok" @@ -9761,6 +10502,9 @@ msgstr "Çubuk Ok" msgid "Picker Cursor" msgstr "Seçici İmleci" +msgid "Picker Cursor BG" +msgstr "Seçici İmleci Arka Plan" + msgid "Color Hue" msgstr "Renk Tonu" @@ -9848,6 +10592,9 @@ msgstr "En Az Yakalama Kalınlığı" msgid "Autohide" msgstr "Otomatik Gizle" +msgid "Split Bar Background" +msgstr "Ayırma Çubuğu Arka Plan" + msgid "Zoom Out" msgstr "Uzaklaştır" @@ -9887,6 +10634,9 @@ msgstr "Etkinlik" msgid "Connection Hover Tint Color" msgstr "Bağlantı Üstünde Durma Tonlama Rengi" +msgid "Connection Hover Thickness" +msgstr "Bağlantı Üstüne Gelme Kalınlığı" + msgid "Connection Valid Target Tint Color" msgstr "Bağlantı Geçerli Hedef Tonlama Rengi" @@ -10058,6 +10808,9 @@ msgstr "Zaman Çekilmesi (ms)" msgid "Surround" msgstr "Etrafını Saran" +msgid "Mix Rate Mode" +msgstr "Karıştırma Oranı Modu" + msgid "Enable Input" msgstr "Girişi Etkinleştir" @@ -10133,6 +10886,12 @@ msgstr "Varsayılan Yukarı" msgid "Merge Rasterizer Cell Scale" msgstr "Pikselleştirici Hücre Ölçeğini Birleştir" +msgid "World" +msgstr "Dünya" + +msgid "Map Use Async Iterations" +msgstr "Harita Eşzamansız Yinelemeler Kullan" + msgid "Avoidance Use Multiple Threads" msgstr "Kaçınma için Çoklu İş Parcacıkları Kullan" @@ -10140,16 +10899,16 @@ msgid "Avoidance Use High Priority Threads" msgstr "Kaçınma için Yüksek Öncelikli İş Parcacıkları Kullan" msgid "Baking" -msgstr "Pişirme" +msgstr "Fırınlama" msgid "Use Crash Prevention Checks" msgstr "Çarpışma Önleme Kontrollerini Kullan" msgid "Baking Use Multiple Threads" -msgstr "Pişirme Çoklu İş Parçacıklarını Kullan" +msgstr "Fırınlama Çoklu İş Parçacıklarını Kullan" msgid "Baking Use High Priority Threads" -msgstr "Pişirme Yüksek Öncelikli İş Parçacıklarını Kullan" +msgstr "Fırınlama Yüksek Öncelikli İş Parçacıklarını Kullan" msgid "Edge Connection Color" msgstr "Kenar Bağlantısı Rengi" @@ -10469,6 +11228,12 @@ msgstr "S3TC BPTC İçe Aktar" msgid "Import ETC2 ASTC" msgstr "ETC2 ASTC İçe Aktar" +msgid "Compress With GPU" +msgstr "GPU ile Sıkıştır" + +msgid "Cache GPU Compressor" +msgstr "Önbellek GPU Sıkıştırıcı" + msgid "Lossless Compression" msgstr "Kayıpsız Sıkıştırma" @@ -10493,12 +11258,21 @@ msgstr "Fiziksel Işık Birimlerini Kullan" msgid "Soft Shadow Filter Quality" msgstr "Yumuşak Gölge Filtresi Kalitesi" +msgid "Atlas 16 Bits" +msgstr "Atlas 16 Bitlik" + msgid "Shadow Atlas" msgstr "Gölge Atlası" +msgid "Batching" +msgstr "Yığınlama" + msgid "Item Buffer Size" msgstr "Öğe Arabellek Boyutu" +msgid "Uniform Set Cache Size" +msgstr "Düzenli Önbellek Boyutunu Ayarla" + msgid "Shader Compiler" msgstr "Gölgelendirici Derleyicisi" @@ -10542,7 +11316,7 @@ msgid "GI" msgstr "GI" msgid "Use Half Resolution" -msgstr "Yarım Çözünürlük Kullan" +msgstr "Yarı Çözünürlük Kullan" msgid "Overrides" msgstr "Üzerine Yazmalar" @@ -10578,7 +11352,7 @@ msgid "Depth of Field Use Jitter" msgstr "Alan Derinliği Titreşme Kullan" msgid "Half Size" -msgstr "Yarım Boyut" +msgstr "Yarı Boyut" msgid "Adaptive Target" msgstr "Uyumsal Hedef" @@ -10592,6 +11366,9 @@ msgstr "Şuradan Solma" msgid "Fadeout To" msgstr "Şuraya Solma" +msgid "HDR 2D" +msgstr "HDR 2B" + msgid "Screen Space Roughness Limiter" msgstr "Ekran Uzayı Pürüzlülük Limitleyici" @@ -10640,6 +11417,12 @@ msgstr "İlkel Örgüler" msgid "Texel Size" msgstr "Dokupiksel Boyutu" +msgid "Lightmap GI" +msgstr "Işık Haritası Genel Işıklandırma (GI)" + +msgid "Use Bicubic Filter" +msgstr "Çift-kübik Filtre Kullan" + msgid "Probe Ray Count" msgstr "Sonda Işın Sayısı" @@ -10724,8 +11507,14 @@ msgstr "VRS En Az Yarıçap" msgid "VRS Strength" msgstr "VRS Güç" +msgid "VRS Render Region" +msgstr "VRS İşleme Bölgesi" + msgid "World Origin" msgstr "Dünya Sıfır Noktası" +msgid "Camera Locked to Origin" +msgstr "Kamera Sıfır Noktasına Kilitlendi" + msgid "Primary Interface" msgstr "Birincil Arayüz" diff --git a/engine/editor/translations/properties/uk.po b/engine/editor/translations/properties/uk.po index e66192d5..3bcac40a 100644 --- a/engine/editor/translations/properties/uk.po +++ b/engine/editor/translations/properties/uk.po @@ -36,13 +36,14 @@ # Veni Vid <venivid28@gmail.com>, 2024. # Oleksandr <galaxynarium@gmail.com>, 2024. # Максим Горпиніч <mgorpinic2005@gmail.com>, 2024. +# Максим Горпиніч <maksimgorpinic2005a@gmail.com>, 2025. msgid "" msgstr "" "Project-Id-Version: Ukrainian (Godot Engine)\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2024-09-26 20:15+0000\n" -"Last-Translator: Максим Горпиніч <mgorpinic2005@gmail.com>\n" +"PO-Revision-Date: 2025-02-21 19:26+0000\n" +"Last-Translator: Максим Горпиніч <maksimgorpinic2005a@gmail.com>\n" "Language-Team: Ukrainian <https://hosted.weblate.org/projects/godot-engine/" "godot-properties/uk/>\n" "Language: uk\n" @@ -51,10 +52,10 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: Weblate 5.8-dev\n" +"X-Generator: Weblate 5.10.1-dev\n" msgid "Application" -msgstr "застосування" +msgstr "Застосування" msgid "Config" msgstr "Налаштування" @@ -155,6 +156,9 @@ msgstr "Розширити до Заголовка" msgid "No Focus" msgstr "Без Фокусу" +msgid "Sharp Corners" +msgstr "Гострі кути" + msgid "Window Width Override" msgstr "Перевизначення ширини вікна" @@ -218,9 +222,18 @@ msgstr "Підвікна" msgid "Embed Subwindows" msgstr "Вставити підвікна" +msgid "Frame Pacing" +msgstr "Швидкість кадрів" + msgid "Android" msgstr "Android" +msgid "Enable Frame Pacing" +msgstr "Увімкнути частоту кадрів" + +msgid "Swappy Mode" +msgstr "Режим Swappy" + msgid "Physics" msgstr "Фізика" @@ -365,6 +378,9 @@ msgstr "Максимальний розмір (Мб)" msgid "Texture Upload Region Size Px" msgstr "Розмір області завантаження текстури Px" +msgid "Texture Download Region Size Px" +msgstr "Текстура Завантажити Регіон Розмір Px" + msgid "Pipeline Cache" msgstr "Кеш конвеєра" @@ -408,7 +424,7 @@ msgid "Default Texture Repeat" msgstr "Повторення текстури за замовчуванням" msgid "Collada" -msgstr "Collada" +msgstr "Колада" msgid "Use Ambient" msgstr "Використовувати адаптивний" @@ -440,6 +456,9 @@ msgstr "Дельта-згладжування" msgid "Print Error Messages" msgstr "Виводити повідомлення про помилки" +msgid "Print to stdout" +msgstr "Друк у stdout" + msgid "Physics Ticks per Second" msgstr "Фізичні тіки на секунду" @@ -473,6 +492,21 @@ msgstr "Сумісність" msgid "Legacy Just Pressed Behavior" msgstr "спадщина просто натиснула поведінка" +msgid "Sensors" +msgstr "Датчики" + +msgid "Enable Accelerometer" +msgstr "Увімкнути акселерометр" + +msgid "Enable Gravity" +msgstr "Увімкніть гравітацію" + +msgid "Enable Gyroscope" +msgstr "Увімкнути гіроскоп" + +msgid "Enable Magnetometer" +msgstr "Увімкнути магнітометр" + msgid "Device" msgstr "Пристрій" @@ -809,15 +843,18 @@ msgstr "Час очікування запиту минув" msgid "Sync Breakpoints" msgstr "Точки розриву синхронізації" -msgid "Default Feature Profile" -msgstr "Типовий профіль можливостей" - msgid "Label" msgstr "Мітка" msgid "Read Only" msgstr "Лише для читання" +msgid "Draw Label" +msgstr "Накладна етикетка" + +msgid "Draw Background" +msgstr "Малюнок фон" + msgid "Checkable" msgstr "Можна позначати" @@ -836,6 +873,12 @@ msgstr "Видалити" msgid "Selectable" msgstr "Можливість вибору" +msgid "Use Folding" +msgstr "Використовуйте складування" + +msgid "Name Split Ratio" +msgstr "Коефіцієнт розподілу імені" + msgid "Distraction Free Mode" msgstr "Режим без відволікання" @@ -908,6 +951,9 @@ msgstr "Позиціонування субпікселів шрифту" msgid "Font Disable Embedded Bitmaps" msgstr "Шрифт Вимкнути вбудовані растрові зображення" +msgid "Font Allow MSDF" +msgstr "Дозволити шрифт MSDF" + msgid "Main Font" msgstr "Основний шрифт" @@ -965,6 +1011,9 @@ msgstr "Панелі" msgid "Scene Tree" msgstr "Ієрархія сцен" +msgid "Ask Before Revoking Unique Name" +msgstr "Запитувати перед відкликанням унікального імені" + msgid "Inspector" msgstr "Інспектор" @@ -1100,14 +1149,32 @@ msgstr "Режим показу" msgid "Thumbnail Size" msgstr "Розмір мініатюр" +msgid "Quick Open Dialog" +msgstr "Діалогове вікно швидкого відкриття" + msgid "Max Results" msgstr "Максимальний результат" +msgid "Show Search Highlight" +msgstr "Показати підсвічування пошуку" + +msgid "Enable Fuzzy Matching" +msgstr "Увімкнути нечітку відповідність" + +msgid "Max Fuzzy Misses" +msgstr "Макс Фазі промахується" + +msgid "Include Addons" +msgstr "Включати додатки" + +msgid "Default Display Mode" +msgstr "Режим відображення за замовчуванням" + msgid "Import" msgstr "Імпорт" msgid "Blender" -msgstr "блендер" +msgstr "Блендер" msgid "Blender Path" msgstr "Шлях Blender" @@ -1145,12 +1212,18 @@ msgstr "Автоматичне розширення до вибраного" msgid "Center Node on Reparent" msgstr "Центральний вузол на Reparent" +msgid "Hide Filtered Out Parents" +msgstr "Приховати відфільтровані батьківські елементи" + msgid "Always Show Folders" msgstr "Завжди показувати теки" msgid "TextFile Extensions" msgstr "Розширення TextFile" +msgid "Other File Extensions" +msgstr "Інші розширення файлів" + msgid "Property Editor" msgstr "Редактор властивостей" @@ -1241,6 +1314,9 @@ msgstr "Візуалізація пробілів" msgid "Behavior" msgstr "Поведінка" +msgid "Empty Selection Clipboard" +msgstr "Очистити буфер обміну" + msgid "Navigation" msgstr "Навігація" @@ -1310,6 +1386,12 @@ msgstr "Автоматичне перезавантаження та аналі msgid "Open Dominant Script on Scene Change" msgstr "Відкрийте домінуючий сценарій під час зміни сцени" +msgid "Documentation" +msgstr "Документація" + +msgid "Enable Tooltips" +msgstr "Увімкнути підказки" + msgid "Script List" msgstr "Список скриптів" @@ -1325,6 +1407,9 @@ msgstr "Виберіть файл шаблону" msgid "Script Temperature History Size" msgstr "Розмір журналу температури скриптів" +msgid "Highlight Scene Scripts" +msgstr "Виділіть сценарії сцени" + msgid "Group Help Pages" msgstr "Згрупувати позначені" @@ -1349,6 +1434,9 @@ msgstr "Завершення" msgid "Idle Parse Delay" msgstr "Затримка відкладеної обробки" +msgid "Idle Parse Delay With Errors Found" +msgstr "Затримка неактивного аналізу зі знайденими помилками" + msgid "Auto Brace Complete" msgstr "Автоматичне доповнення дужок" @@ -1475,6 +1563,18 @@ msgstr "Вибрана кістка" msgid "CSG" msgstr "CSG" +msgid "GridMap Grid" +msgstr "Сітка GridMap" + +msgid "Spring Bone Joint" +msgstr "Весняний кістковий суглоб" + +msgid "Spring Bone Collision" +msgstr "Весна Зіткнення Кістки" + +msgid "Spring Bone Inside Collision" +msgstr "Зіткнення пружинної кістки всередині" + msgid "Gizmo Settings" msgstr "Налаштування Gizmo" @@ -1526,6 +1626,9 @@ msgstr "Поведінка навігації" msgid "Orbit Sensitivity" msgstr "Чутливість орбіти" +msgid "Translation Sensitivity" +msgstr "Чутливість перекладу" + msgid "Orbit Inertia" msgstr "Інерція орбіти" @@ -1721,6 +1824,9 @@ msgstr "Макс ліній" msgid "Platforms" msgstr "Платформи" +msgid "Linux/*BSD" +msgstr "Linux/*BSD" + msgid "Prefer Wayland" msgstr "Віддайте перевагу Wayland" @@ -1745,6 +1851,9 @@ msgstr "Розмір журналу панелі засобу профілюва msgid "Profiler Frame Max Functions" msgstr "Перейменувати функцію" +msgid "Profiler Target FPS" +msgstr "Профільний цільовий FPS" + msgid "Remote Scene Tree Refresh Interval" msgstr "Інтервал оновлення ієрархії віддаленої сцени" @@ -1997,6 +2106,9 @@ msgstr "Плоска" msgid "Hide Slider" msgstr "Приховати повзунок" +msgid "Editing Integer" +msgstr "Редагування цілого числа" + msgid "Zoom" msgstr "Масштаб" @@ -2030,9 +2142,18 @@ msgstr "Нормалізація доріжок позиції" msgid "Reset All Bone Poses After Import" msgstr "Скинути всі пози кісток після імпорту" +msgid "Retarget Method" +msgstr "Метод перенацілювання" + msgid "Keep Global Rest on Leftovers" msgstr "Зберігайте Global Rest на залишках" +msgid "Use Global Pose" +msgstr "Використовуйте глобальну позу" + +msgid "Original Skeleton Name" +msgstr "Оригінальна назва скелета" + msgid "Fix Silhouette" msgstr "Виправити силует" @@ -2063,6 +2184,15 @@ msgstr "Згенерувати точки" msgid "Generate LODs" msgstr "Згенерувати LOD(и)" +msgid "Generate Shadow Mesh" +msgstr "Створіть тіньову сітку" + +msgid "Generate Lightmap UV2" +msgstr "Створіть Lightmap UV2" + +msgid "Generate Lightmap UV2 Texel Size" +msgstr "Створіть розмір текселів Lightmap UV2" + msgid "Scale Mesh" msgstr "Масштабувати сітку" @@ -2264,6 +2394,9 @@ msgstr "Root Scale (Шкала кореня)" msgid "Import as Skeleton Bones" msgstr "Імпортувати як кістки скелета" +msgid "Use Node Type Suffixes" +msgstr "Використовуйте суфікси типів вузлів" + msgid "Meshes" msgstr "Меші" @@ -2333,6 +2466,9 @@ msgstr "Уточнення" msgid "Subpixel Positioning" msgstr "Розташування субпікселів" +msgid "Keep Rounding Remainders" +msgstr "Продовжуйте округлювати залишки" + msgid "Oversampling" msgstr "Передискретизація" @@ -2535,6 +2671,9 @@ msgstr "Поточний ідентифікатор групи" msgid "Current Bone Idx" msgstr "Поточний Bone Idx" +msgid "Particles Emission Shape" +msgstr "Форма випромінювання частинок" + msgid "ID" msgstr "Ідентифікатор" @@ -2613,9 +2752,6 @@ msgstr "Назва додатка" msgid "Autoload on Startup" msgstr "Автозавантаження при запуску" -msgid "Use Favorites Root Selection" -msgstr "Кадрувати вибране" - msgid "Flush stdout on Print" msgstr "Очистити stdout під час друку" @@ -2637,6 +2773,9 @@ msgstr "Детальне виведення до stdout" msgid "Physics Interpolation" msgstr "Інтерполяція фізики" +msgid "Enable Warnings" +msgstr "Увімкнути попередження" + msgid "Max Chars per Second" msgstr "Максимальна кількість символів за секунду" @@ -2670,6 +2809,9 @@ msgstr "Повернення до Вулкану" msgid "Fallback to D3D12" msgstr "Повернення до D3D12" +msgid "Fallback to OpenGL 3" +msgstr "Повернення до OpenGL 3" + msgid "GL Compatibility" msgstr "GL Сумісність" @@ -2682,6 +2824,9 @@ msgstr "Повернення до Angle" msgid "Fallback to Native" msgstr "Повернення до Native" +msgid "Fallback to GLES" +msgstr "Повернення до GLES" + msgid "Force Angle on Devices" msgstr "Силовий кут на приладах" @@ -2778,15 +2923,36 @@ msgstr "Сповіщення про запуск" msgid "Extensions" msgstr "Розширення" +msgid "Debug Utils" +msgstr "Налагодження Утилс" + +msgid "Debug Message Types" +msgstr "Типи повідомлень налагодження" + msgid "Hand Tracking" msgstr "Відстеження рук" +msgid "Hand Tracking Unobstructed Data Source" +msgstr "Безперешкодне джерело даних відстеження руки" + +msgid "Hand Tracking Controller Data Source" +msgstr "Джерело даних контролера відстеження рук" + msgid "Hand Interaction Profile" msgstr "Профіль взаємодії рук" msgid "Eye Gaze Interaction" msgstr "Взаємодія погляду очей" +msgid "Binding Modifiers" +msgstr "Модифікатори прив'язки" + +msgid "Analog Threshold" +msgstr "Аналоговий поріг" + +msgid "Dpad Binding" +msgstr "Dpad Біндінг" + msgid "Boot Splash" msgstr "Вітання системи" @@ -2835,20 +3001,20 @@ msgstr "Відступ позиції підказки" msgid "Show Image" msgstr "Показати зображення" -msgid "Image" -msgstr "Зображення" - msgid "Fullsize" msgstr "Повний розмір" msgid "Use Filter" msgstr "Фільтрування" +msgid "Image" +msgstr "Зображення" + msgid "Minimum Display Time" msgstr "Мінімальний час показу" msgid "Dotnet" -msgstr "дотнет" +msgstr "Дотнет" msgid "Project" msgstr "Проєкт" @@ -2893,7 +3059,7 @@ msgid "Orphan Nodes" msgstr "Орфанні вузли" msgid "Raster" -msgstr "растрові" +msgstr "Растрові" msgid "Total Objects Drawn" msgstr "Загальна кількість намальованих об’єктів" @@ -2905,7 +3071,7 @@ msgid "Total Draw Calls" msgstr "Загальна кількість викликів" msgid "Video" -msgstr "відео" +msgstr "Відео" msgid "Video Mem" msgstr "Відео пам'ять" @@ -2926,7 +3092,7 @@ msgid "Collision Pairs" msgstr "Зіткнення пар" msgid "Islands" -msgstr "острови" +msgstr "Острови" msgid "Physics 3D" msgstr "Фізика 3D" @@ -2958,6 +3124,27 @@ msgstr "Краї з'єднані" msgid "Edges Free" msgstr "Краї вільні" +msgid "Obstacles" +msgstr "Перешкоди" + +msgid "Pipeline" +msgstr "Трубопровід" + +msgid "Compilations Canvas" +msgstr "Компіляції Полотно" + +msgid "Compilations Mesh" +msgstr "Компіляції Mesh" + +msgid "Compilations Surface" +msgstr "Поверхня компіляції" + +msgid "Compilations Draw" +msgstr "Розіграш компіляцій" + +msgid "Compilations Specialization" +msgstr "Спеціалізація збірників" + msgid "Operation" msgstr "Дія" @@ -3039,6 +3226,9 @@ msgstr "Кут спрощення контуру" msgid "Path Rotation" msgstr "Обертання контуру" +msgid "Path Rotation Accurate" +msgstr "Точне обертання шляху" + msgid "Path Local" msgstr "Локальний контур" @@ -3111,6 +3301,9 @@ msgstr "Максимальний стек викликів" msgid "Exclude Addons" msgstr "Виключити додатки" +msgid "Renamed in Godot 4 Hint" +msgstr "Перейменовано в Godot 4 Підказка" + msgid "Language Server" msgstr "Сервер мови" @@ -3375,6 +3568,24 @@ msgstr "Дочірні" msgid "Light" msgstr "Світло" +msgid "glTF to Godot Expression" +msgstr "glTF у вираз Годо" + +msgid "Godot to glTF Expression" +msgstr "Вираз Годо до glTF" + +msgid "Node Paths" +msgstr "Шляхи вузлів" + +msgid "Object Model Type" +msgstr "Тип моделі об’єкта" + +msgid "Json Pointers" +msgstr "Покажчики Json" + +msgid "Variant Type" +msgstr "Тип варіанту" + msgid "Joints" msgstr "Суглоби" @@ -3456,6 +3667,114 @@ msgstr "Зникнути час" msgid "Stream Count" msgstr "Кількість потоків" +msgid "Jolt Physics 3D" +msgstr "Jolt Physics 3D" + +msgid "Simulation" +msgstr "Симуляція" + +msgid "Velocity Steps" +msgstr "Кроки швидкості" + +msgid "Position Steps" +msgstr "Позиційні кроки" + +msgid "Use Enhanced Internal Edge Removal" +msgstr "Використовуйте покращене видалення внутрішніх країв" + +msgid "Areas Detect Static Bodies" +msgstr "Області виявлення статичних тіл" + +msgid "Generate All Kinematic Contacts" +msgstr "Створити всі кінематичні контакти" + +msgid "Penetration Slop" +msgstr "Проникнення Slop" + +msgid "Speculative Contact Distance" +msgstr "Спекулятивна контактна відстань" + +msgid "Baumgarte Stabilization Factor" +msgstr "Коефіцієнт стабілізації Баумгарта" + +msgid "Soft Body Point Radius" +msgstr "Радіус точки м'якого тіла" + +msgid "Bounce Velocity Threshold" +msgstr "Поріг швидкості відскоку" + +msgid "Allow Sleep" +msgstr "Дозволити сплячий режим" + +msgid "Sleep Velocity Threshold" +msgstr "Поріг швидкості сну" + +msgid "Sleep Time Threshold" +msgstr "Поріг часу сну" + +msgid "Continuous CD Movement Threshold" +msgstr "Поріг безперервного руху CD" + +msgid "Continuous CD Max Penetration" +msgstr "Безперервне проникнення CD Max" + +msgid "Body Pair Contact Cache Enabled" +msgstr "Кеш контактів пар тіла ввімкнено" + +msgid "Body Pair Contact Cache Distance Threshold" +msgstr "Порогове значення кеш-пам’яті контактів пари тіла" + +msgid "Body Pair Contact Cache Angle Threshold" +msgstr "Порогове значення кута кеша контакту пари тіла" + +msgid "Queries" +msgstr "Запити" + +msgid "Enable Ray Cast Face Index" +msgstr "Увімкнути Ray Cast Face Index" + +msgid "Motion Queries" +msgstr "Запити руху" + +msgid "Recovery Iterations" +msgstr "Ітерації відновлення" + +msgid "Recovery Amount" +msgstr "Сума відшкодування" + +msgid "Collisions" +msgstr "Зіткнення" + +msgid "Collision Margin Fraction" +msgstr "Частка межі зіткнення" + +msgid "Active Edge Threshold" +msgstr "Поріг активного краю" + +msgid "World Node" +msgstr "Світовий вузол" + +msgid "Temporary Memory Buffer Size" +msgstr "Розмір буфера тимчасової пам'яті" + +msgid "World Boundary Shape Size" +msgstr "Розмір форми межі світу" + +msgid "Max Linear Velocity" +msgstr "Максимальна лінійна швидкість" + +msgid "Max Angular Velocity" +msgstr "Максимальна кутова швидкість" + +msgid "Max Bodies" +msgstr "Макс Тіла" + +msgid "Max Body Pairs" +msgstr "Максимальна кількість пар тіла" + +msgid "Max Contact Constraints" +msgstr "Максимальні контактні обмеження" + msgid "Lightmapping" msgstr "Карта освітлення" @@ -3483,6 +3802,9 @@ msgstr "Макс. променів за прохід" msgid "Region Size" msgstr "Розмір регіону" +msgid "Max Transparency Rays" +msgstr "Максимальна прозорість променів" + msgid "Low Quality Probe Ray Count" msgstr "Підрахунок променів зонда низької якості" @@ -3504,6 +3826,9 @@ msgstr "Усунення шуму" msgid "Denoiser" msgstr "Деноайзер" +msgid "Enable TLS V 1" +msgstr "Увімкніть TLS V1" + msgid "BPM" msgstr "BPM" @@ -3546,9 +3871,6 @@ msgstr "Vulkan VRS" msgid "Min Radius" msgstr "Мінімальний радіус" -msgid "Spawnable Scenes" -msgstr "Сцени, що створюються" - msgid "Spawn Path" msgstr "Шлях нересту" @@ -3622,7 +3944,7 @@ msgid "Distance Function" msgstr "Функція відстані" msgid "Jitter" -msgstr "джиттер" +msgstr "Джиттер" msgid "Return Type" msgstr "Тип результату" @@ -3681,12 +4003,45 @@ msgstr "Тип дії" msgid "Toplevel Paths" msgstr "Шляхи верхнього рівня" +msgid "Binding Path" +msgstr "Шлях прив'язки" + msgid "Interaction Profile Path" msgstr "Шлях до профілю взаємодії" msgid "Runtime Paths" msgstr "Шляхи виконання" +msgid "Action Set" +msgstr "Набір дій" + +msgid "Input Path" +msgstr "Вхідний шлях" + +msgid "Threshold Released" +msgstr "Порогове значення звільнено" + +msgid "Center Region" +msgstr "Район Центр" + +msgid "Wedge Angle" +msgstr "Клиновий кут" + +msgid "Is Sticky" +msgstr "Є липким" + +msgid "On Haptic" +msgstr "Увімкнено Haptic" + +msgid "Off Haptic" +msgstr "Вимкнено Haptic" + +msgid "On Threshold" +msgstr "На порозі" + +msgid "Off Threshold" +msgstr "Поза порогом" + msgid "Display Refresh Rate" msgstr "Частота оновлення дисплея" @@ -3696,6 +4051,12 @@ msgstr "Множник цільового розміру візуалізаці msgid "Layer Viewport" msgstr "Вікно перегляду шару" +msgid "Use Android Surface" +msgstr "Використовуйте Android Surface" + +msgid "Android Surface Size" +msgstr "Розмір поверхні Android" + msgid "Sort Order" msgstr "Порядок сортування" @@ -3804,6 +4165,9 @@ msgstr "Перевищення часу початкового етапу обм msgid "Max Queued Packets" msgstr "Максимальна кількість пакетів у черзі" +msgid "Heartbeat Interval" +msgstr "Інтервал серцебиття" + msgid "Session Mode" msgstr "Режим області" @@ -3852,6 +4216,9 @@ msgstr "Адаптивний передній план 432 X 432" msgid "Adaptive Background 432 X 432" msgstr "Адаптивний фон 432 X 432" +msgid "Adaptive Monochrome 432 X 432" +msgstr "Адаптивний монохромний 432 X 432" + msgid "Gradle Build" msgstr "Збірка Gradle" @@ -3939,6 +4306,12 @@ msgstr "Можливості XR" msgid "XR Mode" msgstr "Режим XR" +msgid "Gesture" +msgstr "Жест" + +msgid "Swipe to Dismiss" +msgstr "Проведіть пальцем, щоб відхилити" + msgid "Screen" msgstr "Екран" @@ -4002,9 +4375,18 @@ msgstr "Сповіщення 40 X 40" msgid "Notification 60 X 60" msgstr "Сповіщення 60 X 60" +msgid "Notification 76 X 76" +msgstr "Сповіщення 76 X 76" + +msgid "Notification 114 X 114" +msgstr "Сповіщення 114 X 114" + msgid "Spotlight 80 X 80" msgstr "Прожектор 80 X 80" +msgid "Spotlight 120 X 120" +msgstr "Прожектор 120 X 120" + msgid "iPhone 120 X 120" msgstr "IPhone 120 X 120" @@ -4017,8 +4399,17 @@ msgstr "IPad 167 X 167" msgid "iPad 152 X 152" msgstr "IPad 152 X 152" +msgid "iOS 128 X 128" +msgstr "iOS 128 X 128" + +msgid "iOS 192 X 192" +msgstr "iOS 192 X 192" + +msgid "iOS 136 X 136" +msgstr "iOS 136 X 136" + msgid "App Store 1024 X 1024" -msgstr "app store 1024 X 1024" +msgstr "App Store 1024 X 1024" msgid "App Store Team ID" msgstr "Ідентифікатор команди App Store" @@ -4038,6 +4429,12 @@ msgstr "Налагодження профілю UUID" msgid "Provisioning Profile UUID Release" msgstr "Випуск UUID профілю надання" +msgid "Provisioning Profile Specifier Debug" +msgstr "Налагодження специфікатора профілю надання" + +msgid "Provisioning Profile Specifier Release" +msgstr "Випуск специфікатора профілю надання" + msgid "Export Method Release" msgstr "Випуск методу експортування" @@ -4071,9 +4468,18 @@ msgstr "Видалити старі файли експорту без умов" msgid "Entitlements" msgstr "Права" +msgid "Increased Memory Limit" +msgstr "Збільшений ліміт пам'яті" + +msgid "Game Center" +msgstr "Ігровий центр" + msgid "Push Notifications" msgstr "Імпульсні сповіщення" +msgid "Additional" +msgstr "Додатковий" + msgid "Capabilities" msgstr "Можливості" @@ -4122,6 +4528,15 @@ msgstr "Відстеження ввімкнено" msgid "Tracking Domains" msgstr "Відстеження доменів" +msgid "Icon 1024 X 1024" +msgstr "Значок 1024 X 1024" + +msgid "Icon 1024 X 1024 Dark" +msgstr "Значок 1024 X 1024 Темний" + +msgid "Icon 1024 X 1024 Tinted" +msgstr "Значок 1024 X 1024 Тонований" + msgid "Storyboard" msgstr "Розкадрування" @@ -4164,6 +4579,12 @@ msgstr "Тип розподілу" msgid "Copyright Localized" msgstr "Авторське право локалізовано" +msgid "Min macOS Version x86 64" +msgstr "Мінімальна версія macOS x86 64" + +msgid "Min macOS Version arm64" +msgstr "Мінімальна версія macOS arm64" + msgid "Export Angle" msgstr "Кут експорту" @@ -4629,6 +5050,9 @@ msgstr "Вибуховість" msgid "Randomness" msgstr "Випадковість" +msgid "Use Fixed Seed" +msgstr "Використовуйте фіксоване насіння" + msgid "Lifetime Randomness" msgstr "Довічна випадковість" @@ -4852,7 +5276,7 @@ msgid "Filter Smooth" msgstr "Згладжування фільтрування" msgid "Texture Scale" -msgstr "TextureRegion" +msgstr "Шкала текстури" msgid "Closed" msgstr "Замкнено" @@ -5407,6 +5831,9 @@ msgstr "Режим видимості зіткнення" msgid "Navigation Visibility Mode" msgstr "Режим видимості навігації" +msgid "Occlusion Enabled" +msgstr "Оклюзію ввімкнено" + msgid "Y Sort Origin" msgstr "Y Походження сортування" @@ -5536,6 +5963,9 @@ msgstr "Радіус кільця" msgid "Ring Inner Radius" msgstr "Внутрішній радіус кільця" +msgid "Ring Cone Angle" +msgstr "Кільцевий кут конуса" + msgid "Rotate Y" msgstr "Обертання навколо Y" @@ -5553,10 +5983,10 @@ msgstr "Альбедо" msgctxt "Geometry" msgid "Normal" -msgstr "нормальний" +msgstr "Нормальний" msgid "Orm" -msgstr "орм" +msgstr "Орм" msgid "Emission" msgstr "Випромінювання" @@ -5609,6 +6039,9 @@ msgstr "Режим повороту" msgid "Follow Camera Enabled" msgstr "Слідкуйте за камерою" +msgid "Heightfield Mask" +msgstr "Маска Heightfield" + msgid "Directionality" msgstr "Спрямованість" @@ -5700,7 +6133,7 @@ msgid "Justification Flags" msgstr "Прапори обґрунтування" msgid "BiDi" -msgstr "БІДІ" +msgstr "BiDi" msgid "Text Direction" msgstr "Напрямок тексту" @@ -5727,7 +6160,7 @@ msgid "Volumetric Fog Energy" msgstr "Об'ємна енергія туману" msgid "Projector" -msgstr "проектор" +msgstr "Проектор" msgid "Angular Distance" msgstr "Кутова відстань" @@ -5756,6 +6189,9 @@ msgstr "Непрозорість" msgid "Blur" msgstr "Розмиття" +msgid "Caster Mask" +msgstr "Маска Кастер" + msgid "Directional Shadow" msgstr "Спрямована тінь" @@ -5792,9 +6228,21 @@ msgstr "Пляма" msgid "Angle Attenuation" msgstr "Затримування кута" +msgid "Lightmap Textures" +msgstr "Текстури Lightmap" + +msgid "Shadowmask Textures" +msgstr "Текстури Тіньова маска" + msgid "Quality" msgstr "Якість" +msgid "Supersampling" +msgstr "Суперсемплінг" + +msgid "Supersampling Factor" +msgstr "Коефіцієнт супердискретизації" + msgid "Bounces" msgstr "Відскоки" @@ -5804,6 +6252,9 @@ msgstr "Непряма енергія відскоку" msgid "Directional" msgstr "Спрямований" +msgid "Shadowmask Mode" +msgstr "Режим тіньової маски" + msgid "Use Texture for Bounces" msgstr "Використовуйте текстуру для відскоків" @@ -5849,9 +6300,78 @@ msgstr "З даними" msgid "Target Node" msgstr "Цільовий вузол" +msgid "Forward Axis" +msgstr "Передня вісь" + +msgid "Primary Rotation Axis" +msgstr "Основна вісь обертання" + +msgid "Use Secondary Rotation" +msgstr "Використовуйте вторинне обертання" + +msgid "Origin Settings" +msgstr "Налаштування джерела" + msgid "From" msgstr "Від" +msgid "External Node" +msgstr "Зовнішній вузол" + +msgid "Time Based Interpolation" +msgstr "Інтерполяція на основі часу" + +msgid "Transition Type" +msgstr "Тип переходу" + +msgid "Ease Type" +msgstr "Тип легкості" + +msgid "Angle Limitation" +msgstr "Обмеження кута" + +msgid "Use Angle Limitation" +msgstr "Використовуйте обмеження кута" + +msgid "Symmetry Limitation" +msgstr "Обмеження симетрії" + +msgid "Primary Limit Angle" +msgstr "Первинний граничний кут" + +msgid "Primary Damp Threshold" +msgstr "Первинний поріг вологості" + +msgid "Primary Positive Limit Angle" +msgstr "Первинний додатний граничний кут" + +msgid "Primary Positive Damp Threshold" +msgstr "Первинний позитивний поріг вологості" + +msgid "Primary Negative Limit Angle" +msgstr "Первинний негативний граничний кут" + +msgid "Primary Negative Damp Threshold" +msgstr "Первинний негативний поріг вологості" + +msgid "Secondary Limit Angle" +msgstr "Вторинний граничний кут" + +msgid "Secondary Damp Threshold" +msgstr "Поріг вторинної вологості" + +msgid "Secondary Positive Limit Angle" +msgstr "Вторинний додатний граничний кут" + +msgid "Secondary Positive Damp Threshold" +msgstr "Вторинний позитивний поріг вологості" + +msgid "Secondary Negative Limit Angle" +msgstr "Вторинний негативний граничний кут" + +msgid "Secondary Negative Damp Threshold" +msgstr "Вторинний негативний поріг вологості" + msgid "Surface Material Override" msgstr "Перевизначення матеріалу поверхні" @@ -5892,7 +6412,7 @@ msgid "Visibility Parent" msgstr "Батьківський елемент видимості" msgid "Bake" -msgstr "випікати" +msgstr "Випікати" msgid "Rotation Mode" msgstr "Режим повороту" @@ -5927,6 +6447,9 @@ msgstr "Рей Пікабель" msgid "Capture on Drag" msgstr "Захоплення з перетягуванням" +msgid "Debug Fill" +msgstr "Заповнення налагодження" + msgid "Swing Span" msgstr "Діапазон гойдання" @@ -6176,6 +6699,9 @@ msgstr "Подорож" msgid "Max Force" msgstr "Максимальна сила" +msgid "Blend Distance" +msgstr "Відстань змішування" + msgid "Origin Offset" msgstr "Зсув початку координат" @@ -6284,6 +6810,12 @@ msgstr "Коефіцієнт опору" msgid "Position Offset" msgstr "Зміщення позиції" +msgid "Rotation Offset" +msgstr "Зсув обертання" + +msgid "Inside" +msgstr "Всередині" + msgid "Track Physics Step" msgstr "Крок стеження за фізикою" @@ -6320,6 +6852,9 @@ msgstr "Ігнорувати відбір оклюзії" msgid "Global Illumination" msgstr "Глобальне освітлення" +msgid "Lightmap Texel Scale" +msgstr "Шкала текселів Lightmap" + msgid "Lightmap Scale" msgstr "Приготування карти освітлення" @@ -6359,6 +6894,9 @@ msgstr "Масштаб світу" msgid "Play Mode" msgstr "Режим гри" +msgid "Advance on Start" +msgstr "Перехід на старт" + msgid "Use Custom Timeline" msgstr "Використовуйте спеціальну шкалу часу" @@ -6401,6 +6939,9 @@ msgstr "Затримка" msgid "Random Delay" msgstr "Випадкова затримка" +msgid "Explicit Elapse" +msgstr "Явне закінчення" + msgid "Xfade Time" msgstr "Час X-Fade" @@ -6414,7 +6955,7 @@ msgid "Input Count" msgstr "Підрахунок введення" msgid "Request" -msgstr "запит" +msgstr "Запит" msgid "Internal Active" msgstr "Внутрішній активний" @@ -6458,11 +6999,14 @@ msgstr "Рух коренів" msgid "Track" msgstr "Доріжка" +msgid "Local" +msgstr "Місцевий" + msgid "Callback Mode" msgstr "Режим зворотного виклику" msgid "Method" -msgstr "метод" +msgstr "Метод" msgid "Discrete" msgstr "Дискретний" @@ -6593,6 +7137,9 @@ msgstr "Згори ліворуч" msgid "Symbol Lookup on Click" msgstr "Пошук символів при клацанні" +msgid "Symbol Tooltip on Hover" +msgstr "Підказка під час наведення курсора" + msgid "Line Folding" msgstr "Лінійне складання" @@ -6737,6 +7284,9 @@ msgstr "Локалізація системи числення" msgid "Tooltip" msgstr "Підказка" +msgid "Auto Translate Mode" +msgstr "Режим автоматичного перекладу" + msgid "Focus" msgstr "Фокусування" @@ -6797,6 +7347,9 @@ msgstr "Режим перевизначення заголовків" msgid "Root Subfolder" msgstr "Коренева підпапка" +msgid "Filename Filter" +msgstr "Фільтр імен файлів" + msgid "Use Native Dialog" msgstr "Використовувати рідне діалогове вікно" @@ -6827,6 +7380,9 @@ msgstr "Лінії з'єднання" msgid "Curvature" msgstr "Кривизна" +msgid "Connections" +msgstr "Зв'язки" + msgid "Zoom Min" msgstr "Мін. масштабу" @@ -6899,9 +7455,15 @@ msgstr "Дозволити пошук" msgid "Max Text Lines" msgstr "Макс. к-то рядків тексту" +msgid "Auto Width" +msgstr "Автоматична ширина" + msgid "Auto Height" msgstr "Автоматична висота" +msgid "Wraparound Items" +msgstr "Обгортання предметів" + msgid "Items" msgstr "Елементи" @@ -6926,6 +7488,9 @@ msgstr "Фіксований розмір піктограм" msgid "Label Settings" msgstr "Налаштування мітки" +msgid "Paragraph Separator" +msgstr "Роздільник абзаців" + msgid "Ellipsis Char" msgstr "Еліпсис симв" @@ -6956,12 +7521,18 @@ msgstr "Текст-заповнювач" msgid "Max Length" msgstr "Максимальна довжина" +msgid "Keep Editing on Text Submit" +msgstr "Продовжуйте редагувати надсилання тексту" + msgid "Expand to Text Length" msgstr "Розгорнути до довжини тексту" msgid "Context Menu Enabled" msgstr "Увімкнено контекстне меню" +msgid "Emoji Menu Enabled" +msgstr "Меню Emoji увімкнено" + msgid "Virtual Keyboard Enabled" msgstr "Увімкнено віртуальну клавіатуру" @@ -7172,6 +7743,9 @@ msgstr "Нетиповий вузол" msgid "Follow Focus" msgstr "Слідувати за фокусом" +msgid "Draw Focus Border" +msgstr "Намалюйте межу фокуса" + msgid "Horizontal Custom Step" msgstr "Горизонтальний настроюваний крок" @@ -7211,12 +7785,30 @@ msgstr "Відступ поділу" msgid "Collapsed" msgstr "Згорнуто" +msgid "Dragging Enabled" +msgstr "Перетягування ввімкнено" + msgid "Dragger Visibility" msgstr "Перемкнути видимість" +msgid "Drag Area" +msgstr "Область перетягування" + +msgid "Margin Begin" +msgstr "Маржа Початок" + +msgid "Margin End" +msgstr "Кінець поля" + +msgid "Highlight in Editor" +msgstr "Виділіть у редакторі" + msgid "Stretch Shrink" msgstr "Стягування розтягування" +msgid "Mouse Target" +msgstr "Ціль миші" + msgid "Current Tab" msgstr "Поточна вкладка" @@ -7268,6 +7860,9 @@ msgstr "Використовуйте приховані вкладки для м msgid "Tab Focus Mode" msgstr "Режим фокусування вкладки" +msgid "Empty Selection Clipboard Enabled" +msgstr "Пустий буфер обміну виділених увімкнено" + msgid "Wrap Mode" msgstr "Режим обтікання" @@ -7280,6 +7875,9 @@ msgstr "Попередній кінець файлу" msgid "Fit Content Height" msgstr "Висота підбирання за вмістом" +msgid "Fit Content Width" +msgstr "За розміром вмісту" + msgid "Draw" msgstr "Креслення" @@ -7290,7 +7888,7 @@ msgid "Move on Right Click" msgstr "Перемістіть правою кнопкою миші" msgid "Multiple" -msgstr "множинний" +msgstr "Множинний" msgid "Syntax Highlighter" msgstr "Засіб підсвічування синтаксису" @@ -7312,7 +7910,7 @@ msgstr "Текст Редагувати Скасувати Максимальн msgctxt "Ordinary" msgid "Normal" -msgstr "нормальний" +msgstr "Нормальний" msgid "Hover" msgstr "Наведення" @@ -7383,6 +7981,9 @@ msgstr "Горизонтальне прокручування ввімкнено msgid "Scroll Vertical Enabled" msgstr "Вертикальна прокрутка ввімкнена" +msgid "Auto Tooltip" +msgstr "Автоматична підказка" + msgid "Audio Track" msgstr "Доріжка" @@ -7426,7 +8027,7 @@ msgid "Use Parent Material" msgstr "Батьківський матеріал" msgid "Diffuse" -msgstr "дифузний" +msgstr "Дифузний" msgid "NormalMap" msgstr "Нормальна карта" @@ -7524,23 +8125,14 @@ msgstr "Максимальна кількість відображених ко msgid "Draw 2D Outlines" msgstr "Створити контур" -msgid "Anti Aliasing" -msgstr "Згладжування" - -msgid "MSAA 2D" -msgstr "MSAA 2D" - -msgid "MSAA 3D" -msgstr "MSAA 3D" - msgid "Viewport" msgstr "Видове вікно" msgid "Transparent Background" msgstr "прозорий фон" -msgid "HDR 2D" -msgstr "HDR 2D" +msgid "Anti Aliasing" +msgstr "Згладжування" msgid "Screen Space AA" msgstr "Екранний простір AA" @@ -7584,9 +8176,6 @@ msgstr "Позиційна тінь" msgid "Atlas Size" msgstr "Розмір атласу" -msgid "Atlas 16 Bits" -msgstr "Атлас 16 біт" - msgid "Atlas Quadrant 0 Subdiv" msgstr "Квадрант Атласу 0 Підрозділ" @@ -7620,6 +8209,9 @@ msgstr "Намалювати плитку" msgid "Autostart" msgstr "Автозапуск" +msgid "Ignore Time Scale" +msgstr "Ігнорувати шкалу часу" + msgid "Viewport Path" msgstr "Шлях до панелі перегляду" @@ -7641,6 +8233,12 @@ msgstr "Прозоре тло" msgid "Handle Input Locally" msgstr "Обробляти введення локально" +msgid "MSAA 2D" +msgstr "MSAA 2D" + +msgid "MSAA 3D" +msgstr "MSAA 3D" + msgid "Debug Draw" msgstr "Діагностика" @@ -7755,6 +8353,9 @@ msgstr "Спливаюче вікно" msgid "Mouse Passthrough" msgstr "Прохід миші" +msgid "Exclude From Capture" +msgstr "Виключити із захоплення" + msgid "Force Native" msgstr "Сила рідна" @@ -8034,6 +8635,9 @@ msgstr "Елемент" msgid "Mesh Transform" msgstr "Перетворення сітки" +msgid "Mesh Cast Shadow" +msgstr "Сітка рол Тіні" + msgid "Navigation Mesh Transform" msgstr "Перетворення сітки навігації" @@ -8098,7 +8702,7 @@ msgid "Bind" msgstr "Зв'язати" msgid "Bone" -msgstr "кістка" +msgstr "Кістка" msgid "Sky" msgstr "Небо" @@ -8295,6 +8899,12 @@ msgstr "Ефекти композитора" msgid "Load Path" msgstr "Завантажити шаблон" +msgid "Min Domain" +msgstr "Мій домен" + +msgid "Max Domain" +msgstr "Максимальний домен" + msgid "Bake Resolution" msgstr "Половина роздільності" @@ -8356,7 +8966,7 @@ msgid "SSAO" msgstr "SSAO" msgid "Power" -msgstr "потужність" +msgstr "Потужність" msgid "Detail" msgstr "Подробиці" @@ -8565,6 +9175,9 @@ msgstr "HDR" msgid "To" msgstr "До" +msgid "Paragraph Spacing" +msgstr "Інтервал між абзацами" + msgid "Next Pass" msgstr "Наступна площина" @@ -8659,7 +9272,7 @@ msgid "Skin Mode" msgstr "Режим шкіри" msgid "Transmittance" -msgstr "пропускання" +msgstr "Пропускання" msgid "Boost" msgstr "Підвищення" @@ -8734,7 +9347,7 @@ msgid "Pixel Range" msgstr "Діапазон пікселів" msgid "Convex Hull Downsampling" -msgstr "ФЗменшення роздільної здатності Convex Hull" +msgstr "Зменшення роздільної здатності Convex Hull" msgid "Convex Hull Approximation" msgstr "Апроксимація опуклої оболонки" @@ -8743,10 +9356,10 @@ msgid "Lightmap Size Hint" msgstr "Підказка розміру карти освітлення" msgid "Blend Shape Mode" -msgstr "ФРежим змішування форми" +msgstr "Режим змішування форми" msgid "Shadow Mesh" -msgstr "Й" +msgstr "Тіньова сітка" msgid "Base Texture" msgstr "Вилучити текстуру" @@ -8856,6 +9469,9 @@ msgstr "Радіус емісійного кільця" msgid "Emission Ring Inner Radius" msgstr "Внутрішній радіус емісійного кільця" +msgid "Emission Ring Cone Angle" +msgstr "Кут конуса емісійного кільця" + msgid "Inherit Velocity Ratio" msgstr "Успадкувати коефіцієнт швидкості" @@ -8928,6 +9544,9 @@ msgstr "Сума в кінці" msgid "Amount at Collision" msgstr "Сума при зіткненні" +msgid "Amount at Start" +msgstr "Сума на початку" + msgid "Keep Velocity" msgstr "Зберігайте швидкість" @@ -8935,7 +9554,7 @@ msgid "Rough" msgstr "Грубо" msgid "Absorbent" -msgstr "абсорбент" +msgstr "Асорбент" msgid "Size Override" msgstr "Перевизначення розміру" @@ -9081,6 +9700,9 @@ msgstr "Увімкнено типове значення" msgid "Default Value" msgstr "Типове значення" +msgid "Enum Names" +msgstr "Імена Enum" + msgid "Color Default" msgstr "Завантажити типовий" @@ -9279,6 +9901,9 @@ msgstr "Область зі згорнутим кодом" msgid "Folded EOL Icon" msgstr "Складений значок EOL" +msgid "Completion Color BG" +msgstr "Колір комплектації BG" + msgid "Completion Lines" msgstr "Лінії завершення" @@ -9342,6 +9967,96 @@ msgstr "Зсув граббера" msgid "Updown" msgstr "Вгору вниз" +msgid "Up" +msgstr "Вгору" + +msgid "Up Hover" +msgstr "Наведення вгору" + +msgid "Up Pressed" +msgstr "Вгору натиснуто" + +msgid "Up Disabled" +msgstr "Вгору вимкнено" + +msgid "Down" +msgstr "Вниз" + +msgid "Down Hover" +msgstr "Наведення вниз" + +msgid "Down Pressed" +msgstr "Вниз натиснуто" + +msgid "Down Disabled" +msgstr "Вниз вимкнено" + +msgid "Up Background" +msgstr "Вгору фону" + +msgid "Up Background Hovered" +msgstr "Наведений фон вгору" + +msgid "Up Background Pressed" +msgstr "Вгору фон натиснуто" + +msgid "Up Background Disabled" +msgstr "Фон угору вимкнено" + +msgid "Down Background" +msgstr "Вниз фону" + +msgid "Down Background Hovered" +msgstr "Наведені фон вниз" + +msgid "Down Background Pressed" +msgstr "Натиснутий фон внизу" + +msgid "Down Background Disabled" +msgstr "Фон вниз вимкнено" + +msgid "Up Icon Modulate" +msgstr "Модулювати піктограму вгору" + +msgid "Up Hover Icon Modulate" +msgstr "Модулювати піктограму вгору" + +msgid "Up Pressed Icon Modulate" +msgstr "Натиснута піктограма Модуляція" + +msgid "Up Disabled Icon Modulate" +msgstr "Включена ікона Модуляція" + +msgid "Down Icon Modulate" +msgstr "Модулювати піктограму вниз" + +msgid "Down Hover Icon Modulate" +msgstr "Модулювати піктограму вниз" + +msgid "Down Pressed Icon Modulate" +msgstr "Модуляція натиснутої піктограми" + +msgid "Down Disabled Icon Modulate" +msgstr "Модуляція піктограми вниз" + +msgid "Field and Buttons Separator" +msgstr "Роздільник полів і кнопок" + +msgid "Up Down Buttons Separator" +msgstr "Роздільник кнопок вгору вниз" + +msgid "Buttons Vertical Separation" +msgstr "Вертикальне розділення кнопок" + +msgid "Field and Buttons Separation" +msgstr "Розділення полів і кнопок" + +msgid "Buttons Width" +msgstr "Ширина кнопок" + +msgid "Set Min Buttons Width From Icons" +msgstr "Установіть мінімальну ширину кнопок від значків" + msgid "Embedded Border" msgstr "Вбудована рамка" @@ -9384,6 +10099,12 @@ msgstr "Закрити V Offset" msgid "Buttons Separation" msgstr "Розділення кнопок" +msgid "Load" +msgstr "Завантаження" + +msgid "Save" +msgstr "Зберегти" + msgid "Parent Folder" msgstr "Батьківська тека" @@ -9399,6 +10120,9 @@ msgstr "Перезавантажити" msgid "Toggle Hidden" msgstr "Переслати папку" +msgid "Toggle Filename Filter" +msgstr "Увімкнути фільтр імен файлів" + msgid "Folder" msgstr "Тека" @@ -9480,6 +10204,9 @@ msgstr "Зсув порту H" msgid "Hovered" msgstr "Зависла" +msgid "Hovered Dimmed" +msgstr "Зависли Потьмяніли" + msgid "Selected Focus" msgstr "Фокус позначення" @@ -9489,6 +10216,9 @@ msgstr "Курсор" msgid "Cursor Unfocused" msgstr "Курсор не сфокусований" +msgid "Button Hover" +msgstr "Наведення курсора кнопки" + msgid "Title Button Normal" msgstr "Звичайна кнопка заголовка" @@ -9531,6 +10261,9 @@ msgstr "Колір кнопки заголовка" msgid "Font Hovered Color" msgstr "Колір наведеного шрифту" +msgid "Font Hovered Dimmed Color" +msgstr "Шрифт наведений затемнений колір" + msgid "Guide Color" msgstr "Керівний колір" @@ -9612,6 +10345,15 @@ msgstr "Смуга прокрутки V Розділення" msgid "Icon Margin" msgstr "Поле піктограми" +msgid "Font Hovered Selected Color" +msgstr "Вибраний колір наведеного шрифту" + +msgid "Hovered Selected" +msgstr "Вибране при наведенні" + +msgid "Hovered Selected Focus" +msgstr "Вибраний фокус наведено" + msgid "Tab Selected" msgstr "Вибрана вкладка" @@ -9666,6 +10408,9 @@ msgstr "Ширина мітки" msgid "Center Slider Grabbers" msgstr "Захоплювачі центрального повзунка" +msgid "Menu Option" +msgstr "Опція меню" + msgid "Folded Arrow" msgstr "Складена стрілка" @@ -9702,6 +10447,9 @@ msgstr "Бар Стрілка" msgid "Picker Cursor" msgstr "Курсор вибору" +msgid "Picker Cursor BG" +msgstr "Курсор вибору BG" + msgid "Color Hue" msgstr "Відтінок кольору" @@ -9789,6 +10537,9 @@ msgstr "Мінімальна товщина захоплення" msgid "Autohide" msgstr "Автоприховування" +msgid "Split Bar Background" +msgstr "Спліт бар фону" + msgid "Zoom Out" msgstr "Зменшити" @@ -9828,6 +10579,9 @@ msgstr "Діяльність" msgid "Connection Hover Tint Color" msgstr "Колір відтінку підключення" +msgid "Connection Hover Thickness" +msgstr "Товщина підключення" + msgid "Connection Valid Target Tint Color" msgstr "Дійсний колір цільового відтінку підключення" @@ -9895,7 +10649,7 @@ msgid "Dry" msgstr "Сухий" msgid "Wet" -msgstr "мокрий" +msgstr "Мокрий" msgid "Voice" msgstr "Голос" @@ -9925,10 +10679,10 @@ msgid "Sidechain" msgstr "Сайдчейн" msgid "Tap 1" -msgstr "удар" +msgstr "Торкніться 1" msgid "Tap 2" -msgstr "удар" +msgstr "Торкніться 2" msgid "Feedback" msgstr "Зворотній зв’язок" @@ -9999,6 +10753,9 @@ msgstr "Відтягування часу (мс)" msgid "Surround" msgstr "Об'ємний 7.1" +msgid "Mix Rate Mode" +msgstr "Режим швидкості змішування" + msgid "Enable Input" msgstr "Увімкнути введення" @@ -10074,6 +10831,12 @@ msgstr "За замовчуванням вгору" msgid "Merge Rasterizer Cell Scale" msgstr "Об’єднати шкалу клітинок растеризера" +msgid "World" +msgstr "Світ" + +msgid "Map Use Async Iterations" +msgstr "Карта Використовуйте асинхронні ітерації" + msgid "Avoidance Use Multiple Threads" msgstr "Уникнення використання кількох потоків" @@ -10306,7 +11069,7 @@ msgid "Base Error" msgstr "Основна помилка" msgid "IDs" -msgstr "ідентифікатори" +msgstr "Ідентифікатори" msgid "Constant ID" msgstr "Постійний ID" @@ -10410,6 +11173,12 @@ msgstr "Імпорт S3TC BPTC" msgid "Import ETC2 ASTC" msgstr "Імпорт ETC2 ASTC" +msgid "Compress With GPU" +msgstr "Стиснути за допомогою GPU" + +msgid "Cache GPU Compressor" +msgstr "Кеш-компресор GPU" + msgid "Lossless Compression" msgstr "Стискання без втрат" @@ -10434,12 +11203,21 @@ msgstr "Використовуйте фізичні світлові одини msgid "Soft Shadow Filter Quality" msgstr "Якість фільтра м'яких тіней" +msgid "Atlas 16 Bits" +msgstr "Атлас 16 біт" + msgid "Shadow Atlas" msgstr "Новий атлас" +msgid "Batching" +msgstr "Дозування" + msgid "Item Buffer Size" msgstr "Розмір буфера елемента" +msgid "Uniform Set Cache Size" +msgstr "Уніфікований розмір кешу" + msgid "Shader Compiler" msgstr "Компілятор шейдерів" @@ -10533,6 +11311,9 @@ msgstr "Згасання з" msgid "Fadeout To" msgstr "Згасання до" +msgid "HDR 2D" +msgstr "HDR 2D" + msgid "Screen Space Roughness Limiter" msgstr "Обмежувач шорсткості простору на екрані" @@ -10581,6 +11362,12 @@ msgstr "Примітивні сітки" msgid "Texel Size" msgstr "Розмір текселів" +msgid "Lightmap GI" +msgstr "Lightmap GI" + +msgid "Use Bicubic Filter" +msgstr "Використовуйте бікубічний фільтр" + msgid "Probe Ray Count" msgstr "Підрахунок променів зонда" @@ -10651,7 +11438,7 @@ msgid "Play Area Mode" msgstr "Режим ігрової зони" msgid "AR" -msgstr "ar" +msgstr "AR" msgid "Is Anchor Detection Enabled" msgstr "Чи ввімкнено виявлення прив’язки" @@ -10665,8 +11452,14 @@ msgstr "Мінімальний радіус VRS" msgid "VRS Strength" msgstr "Сила VRS" +msgid "VRS Render Region" +msgstr "Регіон візуалізації VRS" + msgid "World Origin" msgstr "Походження світу" +msgid "Camera Locked to Origin" +msgstr "Камера заблокована до джерела" + msgid "Primary Interface" msgstr "Основний інтерфейс" diff --git a/engine/editor/translations/properties/vi.po b/engine/editor/translations/properties/vi.po index 3eb9c486..2f9b9451 100644 --- a/engine/editor/translations/properties/vi.po +++ b/engine/editor/translations/properties/vi.po @@ -1498,12 +1498,12 @@ msgstr "Biểu tượng gốc Windows" msgid "Custom Image Hotspot" msgstr "Điểm phát sóng hình ảnh tùy chỉnh" -msgid "Image" -msgstr "Ảnh" - msgid "Fullsize" msgstr "Kích thước đầy đủ" +msgid "Image" +msgstr "Ảnh" + msgid "Dotnet" msgstr "Dotnet" @@ -2998,15 +2998,6 @@ msgstr "Màu hình học" msgid "Anti Aliasing" msgstr "Chống răng cưa" -msgid "MSAA 2D" -msgstr "MSAA 2D" - -msgid "MSAA 3D" -msgstr "MSAA 3D" - -msgid "HDR 2D" -msgstr "HDR 2D" - msgid "Screen Space AA" msgstr "Khoảng cách màn hình AA" @@ -3037,6 +3028,12 @@ msgstr "Menu" msgid "Own World 3D" msgstr "Thế giới riêng 3D" +msgid "MSAA 2D" +msgstr "MSAA 2D" + +msgid "MSAA 3D" +msgstr "MSAA 3D" + msgid "Anisotropic Filtering Level" msgstr "Mức lọc dị hướng" @@ -3841,6 +3838,9 @@ msgstr "Sử dụng Bộ lọc Mipmap gần nhất" msgid "Depth of Field Use Jitter" msgstr "Độ sâu trường ảnh sử dụng Độ rung" +msgid "HDR 2D" +msgstr "HDR 2D" + msgid "Screen Space Roughness Limiter" msgstr "Bộ giới hạn độ nhám không gian màn hình" diff --git a/engine/editor/translations/properties/zh_CN.po b/engine/editor/translations/properties/zh_CN.po index 6a5f0f3a..510db99c 100644 --- a/engine/editor/translations/properties/zh_CN.po +++ b/engine/editor/translations/properties/zh_CN.po @@ -58,7 +58,7 @@ # idleman <1524328475@qq.com>, 2019. # king <wangding1992@126.com>, 2019. # silentbird <silentbird520@outlook.com>, 2019. -# Haoyu Qiu <timothyqiu32@gmail.com>, 2019, 2020, 2021, 2022, 2023, 2024. +# Haoyu Qiu <timothyqiu32@gmail.com>, 2019, 2020, 2021, 2022, 2023, 2024, 2025. # Revan Ji <jiruifancr@gmail.com>, 2020. # nieyuanhong <15625988003@163.com>, 2020. # binotaliu <binota@protonmail.ch>, 2020. @@ -92,13 +92,14 @@ # David Wong <heptaspirit@gmail.com>, 2023. # bay <xinkangzhou96@gmail.com>, 2023. # Arsvine Zhu <2162371684@qq.com>, 2023. +# J_aphasiac <japhasiac@163.com>, 2025. msgid "" msgstr "" "Project-Id-Version: Chinese (Simplified) (Godot Engine)\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: 2018-01-20 12:15+0200\n" -"PO-Revision-Date: 2024-12-01 06:39+0000\n" -"Last-Translator: 风青山 <idleman@yeah.net>\n" +"PO-Revision-Date: 2025-02-21 19:26+0000\n" +"Last-Translator: Haoyu Qiu <timothyqiu32@gmail.com>\n" "Language-Team: Chinese (Simplified Han script) <https://hosted.weblate.org/" "projects/godot-engine/godot-properties/zh_Hans/>\n" "Language: zh_CN\n" @@ -106,7 +107,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 5.9-dev\n" +"X-Generator: Weblate 5.10.1-dev\n" msgid "Application" msgstr "应用" @@ -210,6 +211,9 @@ msgstr "延伸至标题" msgid "No Focus" msgstr "关闭聚焦" +msgid "Sharp Corners" +msgstr "直角" + msgid "Window Width Override" msgstr "窗口宽度覆盖" @@ -273,9 +277,18 @@ msgstr "子窗口" msgid "Embed Subwindows" msgstr "嵌入式子窗口" +msgid "Frame Pacing" +msgstr "帧间隔节奏" + msgid "Android" msgstr "Android" +msgid "Enable Frame Pacing" +msgstr "启用帧间隔节奏" + +msgid "Swappy Mode" +msgstr "Swappy 模式" + msgid "Physics" msgstr "物理" @@ -418,7 +431,10 @@ msgid "Max Size (MB)" msgstr "最大大小(MB)" msgid "Texture Upload Region Size Px" -msgstr "纹理上传区域像素大小" +msgstr "纹理上传区域像素大小(px)" + +msgid "Texture Download Region Size Px" +msgstr "纹理下载区域像素大小(px)" msgid "Pipeline Cache" msgstr "管线缓存" @@ -495,6 +511,9 @@ msgstr "增量平滑" msgid "Print Error Messages" msgstr "打印错误消息" +msgid "Print to stdout" +msgstr "打印至标准输出" + msgid "Physics Ticks per Second" msgstr "每秒物理周期数" @@ -528,6 +547,21 @@ msgstr "兼容" msgid "Legacy Just Pressed Behavior" msgstr "旧有刚刚按下行为" +msgid "Sensors" +msgstr "传感器" + +msgid "Enable Accelerometer" +msgstr "启用加速计" + +msgid "Enable Gravity" +msgstr "启用重力计" + +msgid "Enable Gyroscope" +msgstr "启用陀螺仪" + +msgid "Enable Magnetometer" +msgstr "启用磁力计" + msgid "Device" msgstr "设备" @@ -864,15 +898,18 @@ msgstr "请求超时" msgid "Sync Breakpoints" msgstr "同步断点" -msgid "Default Feature Profile" -msgstr "默认功能配置" - msgid "Label" msgstr "标签" msgid "Read Only" msgstr "只读" +msgid "Draw Label" +msgstr "绘制标签" + +msgid "Draw Background" +msgstr "绘制背景" + msgid "Checkable" msgstr "可勾选" @@ -891,6 +928,12 @@ msgstr "可删除" msgid "Selectable" msgstr "可选中" +msgid "Use Folding" +msgstr "使用折叠" + +msgid "Name Split Ratio" +msgstr "名称占比" + msgid "Distraction Free Mode" msgstr "专注模式" @@ -963,6 +1006,9 @@ msgstr "字体次像素定位" msgid "Font Disable Embedded Bitmaps" msgstr "字体禁用嵌入式点阵" +msgid "Font Allow MSDF" +msgstr "字体允许 MSDF" + msgid "Main Font" msgstr "主字体" @@ -1020,6 +1066,9 @@ msgstr "停靠面板" msgid "Scene Tree" msgstr "场景树" +msgid "Ask Before Revoking Unique Name" +msgstr "唯一名称废除前询问" + msgid "Inspector" msgstr "检查器" @@ -1155,9 +1204,27 @@ msgstr "显示模式" msgid "Thumbnail Size" msgstr "缩略图大小" +msgid "Quick Open Dialog" +msgstr "快速打开对话框" + msgid "Max Results" msgstr "最大结果" +msgid "Show Search Highlight" +msgstr "显示搜索高亮" + +msgid "Enable Fuzzy Matching" +msgstr "启用模糊匹配" + +msgid "Max Fuzzy Misses" +msgstr "最大模糊数" + +msgid "Include Addons" +msgstr "包含插件" + +msgid "Default Display Mode" +msgstr "默认显示模式" + msgid "Import" msgstr "导入" @@ -1200,12 +1267,18 @@ msgstr "自动展开至选定项" msgid "Center Node on Reparent" msgstr "重设父节点时居中" +msgid "Hide Filtered Out Parents" +msgstr "隐藏被排除的父节点" + msgid "Always Show Folders" msgstr "总是显示文件夹" msgid "TextFile Extensions" msgstr "文本文件扩展名" +msgid "Other File Extensions" +msgstr "其他文件扩展名" + msgid "Property Editor" msgstr "属性编辑器" @@ -1296,6 +1369,9 @@ msgstr "绘制空格" msgid "Behavior" msgstr "行为" +msgid "Empty Selection Clipboard" +msgstr "空选剪贴板" + msgid "Navigation" msgstr "导航" @@ -1365,6 +1441,12 @@ msgstr "保存时自动重新加载并解析脚本" msgid "Open Dominant Script on Scene Change" msgstr "场景变化时打开主导脚本" +msgid "Documentation" +msgstr "文档" + +msgid "Enable Tooltips" +msgstr "启用工具提示" + msgid "Script List" msgstr "脚本列表" @@ -1380,6 +1462,9 @@ msgstr "启用脚本热度" msgid "Script Temperature History Size" msgstr "脚本热度历史大小" +msgid "Highlight Scene Scripts" +msgstr "高亮场景脚本" + msgid "Group Help Pages" msgstr "帮助页分组" @@ -1404,6 +1489,9 @@ msgstr "补全" msgid "Idle Parse Delay" msgstr "空闲解析延迟" +msgid "Idle Parse Delay With Errors Found" +msgstr "空闲解析出错延迟" + msgid "Auto Brace Complete" msgstr "自动补全括号" @@ -1530,6 +1618,18 @@ msgstr "选中骨骼" msgid "CSG" msgstr "CSG" +msgid "GridMap Grid" +msgstr "GridMap 栅格" + +msgid "Spring Bone Joint" +msgstr "弹簧骨骼关节" + +msgid "Spring Bone Collision" +msgstr "弹簧骨骼碰撞" + +msgid "Spring Bone Inside Collision" +msgstr "弹簧骨骼关节内部碰撞" + msgid "Gizmo Settings" msgstr "小工具设置" @@ -1581,6 +1681,9 @@ msgstr "导航体验" msgid "Orbit Sensitivity" msgstr "环绕灵敏度" +msgid "Translation Sensitivity" +msgstr "平移灵敏度" + msgid "Orbit Inertia" msgstr "环绕惯性" @@ -1776,6 +1879,9 @@ msgstr "最大行数" msgid "Platforms" msgstr "平台" +msgid "Linux/*BSD" +msgstr "Linux/*BSD" + msgid "Prefer Wayland" msgstr "首选 Wayland" @@ -1800,6 +1906,9 @@ msgstr "性能分析器帧历史大小" msgid "Profiler Frame Max Functions" msgstr "性能分析器帧最大函数数" +msgid "Profiler Target FPS" +msgstr "性能分析器目标 FPS" + msgid "Remote Scene Tree Refresh Interval" msgstr "远程场景树刷新间隔" @@ -2052,6 +2161,9 @@ msgstr "扁平" msgid "Hide Slider" msgstr "隐藏滑动条" +msgid "Editing Integer" +msgstr "编辑整数" + msgid "Zoom" msgstr "缩放" @@ -2085,9 +2197,18 @@ msgstr "归一化位置轨道" msgid "Reset All Bone Poses After Import" msgstr "导入后重置所有骨骼姿势" +msgid "Retarget Method" +msgstr "重定向方法" + msgid "Keep Global Rest on Leftovers" msgstr "残留项保持全局放松" +msgid "Use Global Pose" +msgstr "使用全局姿势" + +msgid "Original Skeleton Name" +msgstr "原始骨架名称" + msgid "Fix Silhouette" msgstr "修复剪影" @@ -2118,6 +2239,15 @@ msgstr "生成切线" msgid "Generate LODs" msgstr "生成 LOD" +msgid "Generate Shadow Mesh" +msgstr "生成阴影网格" + +msgid "Generate Lightmap UV2" +msgstr "生成光照贴图 UV2" + +msgid "Generate Lightmap UV2 Texel Size" +msgstr "生成光照贴图 UV2 纹素大小" + msgid "Scale Mesh" msgstr "缩放网格" @@ -2319,6 +2449,9 @@ msgstr "根缩放" msgid "Import as Skeleton Bones" msgstr "作为骨架骨骼导入" +msgid "Use Node Type Suffixes" +msgstr "使用节点类型后缀" + msgid "Meshes" msgstr "网格" @@ -2388,6 +2521,9 @@ msgstr "微调" msgid "Subpixel Positioning" msgstr "次像素定位" +msgid "Keep Rounding Remainders" +msgstr "保持舍入余数" + msgid "Oversampling" msgstr "过采样" @@ -2590,6 +2726,9 @@ msgstr "当前分组索引" msgid "Current Bone Idx" msgstr "当前骨骼索引" +msgid "Particles Emission Shape" +msgstr "粒子发射形状" + msgid "ID" msgstr "ID" @@ -2668,9 +2807,6 @@ msgstr "插件名" msgid "Autoload on Startup" msgstr "启动时自动加载" -msgid "Use Favorites Root Selection" -msgstr "使用收藏根选择" - msgid "Flush stdout on Print" msgstr "打印时清空标准输出" @@ -2692,6 +2828,9 @@ msgstr "冗长标准输出" msgid "Physics Interpolation" msgstr "物理插值" +msgid "Enable Warnings" +msgstr "启用警告" + msgid "Max Chars per Second" msgstr "每秒最大字符数" @@ -2725,6 +2864,9 @@ msgstr "回退至 Vulkan" msgid "Fallback to D3D12" msgstr "回退至 D3D12" +msgid "Fallback to OpenGL 3" +msgstr "回退至 OpenGL 3" + msgid "GL Compatibility" msgstr "GL 兼容性" @@ -2737,6 +2879,9 @@ msgstr "回退至 Angle" msgid "Fallback to Native" msgstr "回退至原生" +msgid "Fallback to GLES" +msgstr "回退至 GLES" + msgid "Force Angle on Devices" msgstr "在设备上强制 Angle" @@ -2833,15 +2978,36 @@ msgstr "启动警报" msgid "Extensions" msgstr "扩展" +msgid "Debug Utils" +msgstr "调试工具" + +msgid "Debug Message Types" +msgstr "调试消息类型" + msgid "Hand Tracking" msgstr "手部跟踪" +msgid "Hand Tracking Unobstructed Data Source" +msgstr "手部跟踪实际数据源" + +msgid "Hand Tracking Controller Data Source" +msgstr "手部跟踪控制器数据源" + msgid "Hand Interaction Profile" msgstr "手部交互配置" msgid "Eye Gaze Interaction" msgstr "眼动交互" +msgid "Binding Modifiers" +msgstr "绑定修改器" + +msgid "Analog Threshold" +msgstr "模拟阈值" + +msgid "Dpad Binding" +msgstr "十字键绑定" + msgid "Boot Splash" msgstr "启动画面" @@ -2890,15 +3056,15 @@ msgstr "工具提示位置偏移" msgid "Show Image" msgstr "显示图像" -msgid "Image" -msgstr "图像" - msgid "Fullsize" msgstr "完整大小" msgid "Use Filter" msgstr "使用过滤" +msgid "Image" +msgstr "图像" + msgid "Minimum Display Time" msgstr "最短显示时间" @@ -3013,6 +3179,27 @@ msgstr "连接边界" msgid "Edges Free" msgstr "自由边界" +msgid "Obstacles" +msgstr "障碍物" + +msgid "Pipeline" +msgstr "管线" + +msgid "Compilations Canvas" +msgstr "画布编译次数" + +msgid "Compilations Mesh" +msgstr "网格编译次数" + +msgid "Compilations Surface" +msgstr "表面编译次数" + +msgid "Compilations Draw" +msgstr "绘制编译次数" + +msgid "Compilations Specialization" +msgstr "特化编译次数" + msgid "Operation" msgstr "操作" @@ -3094,6 +3281,9 @@ msgstr "路径简化角" msgid "Path Rotation" msgstr "路径旋转" +msgid "Path Rotation Accurate" +msgstr "路径精准旋转" + msgid "Path Local" msgstr "路径本地" @@ -3166,6 +3356,9 @@ msgstr "最大调用堆栈" msgid "Exclude Addons" msgstr "排除插件" +msgid "Renamed in Godot 4 Hint" +msgstr "在Godot 4提示中重命名" + msgid "Language Server" msgstr "语言服务器" @@ -3430,6 +3623,24 @@ msgstr "子节点" msgid "Light" msgstr "灯光" +msgid "glTF to Godot Expression" +msgstr "glTF 至 Godot 表达式" + +msgid "Godot to glTF Expression" +msgstr "Godot 至 glTF 表达式" + +msgid "Node Paths" +msgstr "节点路径" + +msgid "Object Model Type" +msgstr "对象模型类型" + +msgid "Json Pointers" +msgstr "Json 指针" + +msgid "Variant Type" +msgstr "Variant 类型" + msgid "Joints" msgstr "关节" @@ -3511,6 +3722,114 @@ msgstr "过渡时间" msgid "Stream Count" msgstr "流数量" +msgid "Jolt Physics 3D" +msgstr "Jolt Physics 3D" + +msgid "Simulation" +msgstr "模拟" + +msgid "Velocity Steps" +msgstr "速度步数" + +msgid "Position Steps" +msgstr "位置步数" + +msgid "Use Enhanced Internal Edge Removal" +msgstr "使用增强的内部边移除" + +msgid "Areas Detect Static Bodies" +msgstr "区域检测静态物体" + +msgid "Generate All Kinematic Contacts" +msgstr "生成所有动态约束" + +msgid "Penetration Slop" +msgstr "穿透度" + +msgid "Speculative Contact Distance" +msgstr "推测接触距离" + +msgid "Baumgarte Stabilization Factor" +msgstr "鲍姆加特稳定性因子" + +msgid "Soft Body Point Radius" +msgstr "柔体点半径" + +msgid "Bounce Velocity Threshold" +msgstr "弹跳速度阈值" + +msgid "Allow Sleep" +msgstr "允许睡眠" + +msgid "Sleep Velocity Threshold" +msgstr "睡眠速度阈值" + +msgid "Sleep Time Threshold" +msgstr "睡眠时间阈值" + +msgid "Continuous CD Movement Threshold" +msgstr "连续碰撞检测运动阈值" + +msgid "Continuous CD Max Penetration" +msgstr "连续碰撞检测最大穿透" + +msgid "Body Pair Contact Cache Enabled" +msgstr "物体对接触缓存已启用" + +msgid "Body Pair Contact Cache Distance Threshold" +msgstr "物体对接触缓存距离阈值" + +msgid "Body Pair Contact Cache Angle Threshold" +msgstr "物体对接触缓存角度阈值" + +msgid "Queries" +msgstr "查询" + +msgid "Enable Ray Cast Face Index" +msgstr "启用光线投射面索引" + +msgid "Motion Queries" +msgstr "运动查询" + +msgid "Recovery Iterations" +msgstr "恢复迭代数" + +msgid "Recovery Amount" +msgstr "恢复数量" + +msgid "Collisions" +msgstr "碰撞" + +msgid "Collision Margin Fraction" +msgstr "碰撞边距小数" + +msgid "Active Edge Threshold" +msgstr "活动边缘阈值" + +msgid "World Node" +msgstr "世界节点" + +msgid "Temporary Memory Buffer Size" +msgstr "临时内存缓冲区大小" + +msgid "World Boundary Shape Size" +msgstr "世界边缘形状尺寸" + +msgid "Max Linear Velocity" +msgstr "最大线速度" + +msgid "Max Angular Velocity" +msgstr "最大角速度" + +msgid "Max Bodies" +msgstr "最大物体数" + +msgid "Max Body Pairs" +msgstr "最大物体对" + +msgid "Max Contact Constraints" +msgstr "最大接触约束" + msgid "Lightmapping" msgstr "光照贴图" @@ -3538,6 +3857,9 @@ msgstr "单通道最大射线数" msgid "Region Size" msgstr "区域大小" +msgid "Max Transparency Rays" +msgstr "最大透明射线数" + msgid "Low Quality Probe Ray Count" msgstr "低等质量探针射线数" @@ -3559,6 +3881,9 @@ msgstr "降噪" msgid "Denoiser" msgstr "降噪器" +msgid "Enable TLS V 1" +msgstr "启用 TLSv1" + msgid "BPM" msgstr "BPM" @@ -3601,9 +3926,6 @@ msgstr "Vulkan VRS" msgid "Min Radius" msgstr "最小半径" -msgid "Spawnable Scenes" -msgstr "可出生场景" - msgid "Spawn Path" msgstr "出生路径" @@ -3736,12 +4058,45 @@ msgstr "动作类型" msgid "Toplevel Paths" msgstr "顶层路径" +msgid "Binding Path" +msgstr "绑定路径" + msgid "Interaction Profile Path" msgstr "交互配置路径" msgid "Runtime Paths" msgstr "运行时路径" +msgid "Action Set" +msgstr "动作集" + +msgid "Input Path" +msgstr "输入路径" + +msgid "Threshold Released" +msgstr "松开阈值" + +msgid "Center Region" +msgstr "中央区域" + +msgid "Wedge Angle" +msgstr "楔形角度" + +msgid "Is Sticky" +msgstr "粘性" + +msgid "On Haptic" +msgstr "启用触觉反馈" + +msgid "Off Haptic" +msgstr "关闭触觉反馈" + +msgid "On Threshold" +msgstr "打开阈值" + +msgid "Off Threshold" +msgstr "关闭阈值" + msgid "Display Refresh Rate" msgstr "显示刷新率" @@ -3751,6 +4106,12 @@ msgstr "渲染目标大小倍数" msgid "Layer Viewport" msgstr "层视口" +msgid "Use Android Surface" +msgstr "使用 Android 表面" + +msgid "Android Surface Size" +msgstr "Android 表面大小" + msgid "Sort Order" msgstr "排序方式" @@ -3859,6 +4220,9 @@ msgstr "握手超时" msgid "Max Queued Packets" msgstr "最大排队数据包数" +msgid "Heartbeat Interval" +msgstr "心跳间隔" + msgid "Session Mode" msgstr "会话模式" @@ -3907,6 +4271,9 @@ msgstr "自适应前景 432×432" msgid "Adaptive Background 432 X 432" msgstr "自适应背景 432×432" +msgid "Adaptive Monochrome 432 X 432" +msgstr "自适应单色 432×432" + msgid "Gradle Build" msgstr "Gradle 构建" @@ -3994,6 +4361,12 @@ msgstr "XR 特性" msgid "XR Mode" msgstr "XR 模式" +msgid "Gesture" +msgstr "手势" + +msgid "Swipe to Dismiss" +msgstr "滑动关闭" + msgid "Screen" msgstr "屏幕" @@ -4057,9 +4430,18 @@ msgstr "通知 40 X 40" msgid "Notification 60 X 60" msgstr "通知 60 X 60" +msgid "Notification 76 X 76" +msgstr "通知 76 X 76" + +msgid "Notification 114 X 114" +msgstr "通知 114 X 114" + msgid "Spotlight 80 X 80" msgstr "Spotlight 80×80" +msgid "Spotlight 120 X 120" +msgstr "Spotlight 120×120" + msgid "iPhone 120 X 120" msgstr "iPhone 120×120" @@ -4072,6 +4454,15 @@ msgstr "iPad 167×167" msgid "iPad 152 X 152" msgstr "iPad 152×152" +msgid "iOS 128 X 128" +msgstr "iOS 128×128" + +msgid "iOS 192 X 192" +msgstr "iOS 192×192" + +msgid "iOS 136 X 136" +msgstr "iOS 136×136" + msgid "App Store 1024 X 1024" msgstr "App Store 1024×1024" @@ -4088,10 +4479,16 @@ msgid "Code Sign Identity Release" msgstr "发布代码签名身份" msgid "Provisioning Profile UUID Debug" -msgstr "调试配置 UUID" +msgstr "预置描述文件调试 UUID" msgid "Provisioning Profile UUID Release" -msgstr "发布配置 UUID" +msgstr "预置描述文件发布 UUID" + +msgid "Provisioning Profile Specifier Debug" +msgstr "预置描述文件指定调试" + +msgid "Provisioning Profile Specifier Release" +msgstr "预置描述文件指定发布" msgid "Export Method Release" msgstr "发布导出方法" @@ -4126,9 +4523,18 @@ msgstr "无条件删除旧导出文件" msgid "Entitlements" msgstr "授权" +msgid "Increased Memory Limit" +msgstr "提升的内存限制" + +msgid "Game Center" +msgstr "游戏中心" + msgid "Push Notifications" msgstr "推送通知" +msgid "Additional" +msgstr "额外" + msgid "Capabilities" msgstr "能力" @@ -4177,6 +4583,15 @@ msgstr "启用追踪" msgid "Tracking Domains" msgstr "追踪域" +msgid "Icon 1024 X 1024" +msgstr "图标 1024×1024" + +msgid "Icon 1024 X 1024 Dark" +msgstr "图标 1024×1024 深色" + +msgid "Icon 1024 X 1024 Tinted" +msgstr "图标 1024×1024 着色" + msgid "Storyboard" msgstr "Storyboard" @@ -4219,6 +4634,12 @@ msgstr "分发类型" msgid "Copyright Localized" msgstr "版权本地化" +msgid "Min macOS Version x86 64" +msgstr "最低 macOS 版本 x86 64" + +msgid "Min macOS Version arm64" +msgstr "最低 macOS 版本 arm64" + msgid "Export Angle" msgstr "导出 Angle" @@ -4684,6 +5105,9 @@ msgstr "爆炸性" msgid "Randomness" msgstr "随机性" +msgid "Use Fixed Seed" +msgstr "使用固定种子" + msgid "Lifetime Randomness" msgstr "生命期随机性" @@ -5462,6 +5886,9 @@ msgstr "碰撞可见性模式" msgid "Navigation Visibility Mode" msgstr "导航可见性模式" +msgid "Occlusion Enabled" +msgstr "启用遮挡" + msgid "Y Sort Origin" msgstr "Y 排序原点" @@ -5591,6 +6018,9 @@ msgstr "环半径" msgid "Ring Inner Radius" msgstr "环内径" +msgid "Ring Cone Angle" +msgstr "环锥体角" + msgid "Rotate Y" msgstr "旋转 Y" @@ -5664,6 +6094,9 @@ msgstr "更新模式" msgid "Follow Camera Enabled" msgstr "启用跟随相机" +msgid "Heightfield Mask" +msgstr "高度图遮罩" + msgid "Directionality" msgstr "方向性" @@ -5811,6 +6244,9 @@ msgstr "不透明度" msgid "Blur" msgstr "模糊" +msgid "Caster Mask" +msgstr "投射体遮罩" + msgid "Directional Shadow" msgstr "方向阴影" @@ -5847,9 +6283,21 @@ msgstr "聚光" msgid "Angle Attenuation" msgstr "角度衰减" +msgid "Lightmap Textures" +msgstr "光照贴图纹理" + +msgid "Shadowmask Textures" +msgstr "阴影遮罩纹理" + msgid "Quality" msgstr "质量" +msgid "Supersampling" +msgstr "超采样" + +msgid "Supersampling Factor" +msgstr "超采样系数" + msgid "Bounces" msgstr "反弹" @@ -5859,6 +6307,9 @@ msgstr "反弹间接能量" msgid "Directional" msgstr "定向" +msgid "Shadowmask Mode" +msgstr "阴影遮罩模式" + msgid "Use Texture for Bounces" msgstr "反弹使用纹理" @@ -5904,9 +6355,78 @@ msgstr "光照数据" msgid "Target Node" msgstr "目标节点" +msgid "Forward Axis" +msgstr "前进轴" + +msgid "Primary Rotation Axis" +msgstr "主旋转轴" + +msgid "Use Secondary Rotation" +msgstr "使用次级旋转" + +msgid "Origin Settings" +msgstr "原点设置" + msgid "From" msgstr "起点" +msgid "External Node" +msgstr "外部节点" + +msgid "Time Based Interpolation" +msgstr "基于时间插值" + +msgid "Transition Type" +msgstr "过渡类型" + +msgid "Ease Type" +msgstr "缓动类型" + +msgid "Angle Limitation" +msgstr "角度限制" + +msgid "Use Angle Limitation" +msgstr "使用角度限制" + +msgid "Symmetry Limitation" +msgstr "对称性限度" + +msgid "Primary Limit Angle" +msgstr "初级角度限制" + +msgid "Primary Damp Threshold" +msgstr "初级阻尼阈值" + +msgid "Primary Positive Limit Angle" +msgstr "初级正限位角" + +msgid "Primary Positive Damp Threshold" +msgstr "初级正阻尼阈值" + +msgid "Primary Negative Limit Angle" +msgstr "初级负限位角" + +msgid "Primary Negative Damp Threshold" +msgstr "初级负阻尼阈值" + +msgid "Secondary Limit Angle" +msgstr "次级角度限制" + +msgid "Secondary Damp Threshold" +msgstr "次级阻尼阈值" + +msgid "Secondary Positive Limit Angle" +msgstr "次级正限位角" + +msgid "Secondary Positive Damp Threshold" +msgstr "次级正阻尼阈值" + +msgid "Secondary Negative Limit Angle" +msgstr "次级负限位角" + +msgid "Secondary Negative Damp Threshold" +msgstr "次级负阻尼阈值" + msgid "Surface Material Override" msgstr "表面材质覆盖" @@ -5982,6 +6502,9 @@ msgstr "射线可拾取" msgid "Capture on Drag" msgstr "拖拽时捕获" +msgid "Debug Fill" +msgstr "调试填充" + msgid "Swing Span" msgstr "摆动范围" @@ -6231,6 +6754,9 @@ msgstr "行程" msgid "Max Force" msgstr "最大力度" +msgid "Blend Distance" +msgstr "混合距离" + msgid "Origin Offset" msgstr "原点偏移" @@ -6339,6 +6865,12 @@ msgstr "阻力系数" msgid "Position Offset" msgstr "位置偏移" +msgid "Rotation Offset" +msgstr "旋转偏移" + +msgid "Inside" +msgstr "内部" + msgid "Track Physics Step" msgstr "跟踪物理迭代" @@ -6375,6 +6907,9 @@ msgstr "忽略遮挡剔除" msgid "Global Illumination" msgstr "全局照明" +msgid "Lightmap Texel Scale" +msgstr "光照贴图纹素缩放" + msgid "Lightmap Scale" msgstr "光照贴图缩放" @@ -6414,6 +6949,9 @@ msgstr "世界缩放" msgid "Play Mode" msgstr "播放模式" +msgid "Advance on Start" +msgstr "启动时前进" + msgid "Use Custom Timeline" msgstr "使用自定义时间轴" @@ -6456,6 +6994,9 @@ msgstr "延迟" msgid "Random Delay" msgstr "随机延迟" +msgid "Explicit Elapse" +msgstr "显式用时" + msgid "Xfade Time" msgstr "淡入淡出时间" @@ -6513,6 +7054,9 @@ msgstr "根运动" msgid "Track" msgstr "轨道" +msgid "Local" +msgstr "局部" + msgid "Callback Mode" msgstr "回调模式" @@ -6648,6 +7192,9 @@ msgstr "使用左上角" msgid "Symbol Lookup on Click" msgstr "点击查询符号" +msgid "Symbol Tooltip on Hover" +msgstr "悬停符号工具提示" + msgid "Line Folding" msgstr "折叠行" @@ -6792,6 +7339,9 @@ msgstr "本地化记数系统" msgid "Tooltip" msgstr "工具提示" +msgid "Auto Translate Mode" +msgstr "自动翻译模式" + msgid "Focus" msgstr "聚焦" @@ -6852,6 +7402,9 @@ msgstr "模式覆盖标题" msgid "Root Subfolder" msgstr "根部子文件夹" +msgid "Filename Filter" +msgstr "文件名筛选" + msgid "Use Native Dialog" msgstr "使用原生对话框" @@ -6882,6 +7435,9 @@ msgstr "连接线" msgid "Curvature" msgstr "曲率" +msgid "Connections" +msgstr "连接" + msgid "Zoom Min" msgstr "缩放下限" @@ -6954,9 +7510,15 @@ msgstr "允许搜索" msgid "Max Text Lines" msgstr "最大文本行数" +msgid "Auto Width" +msgstr "自动宽度" + msgid "Auto Height" msgstr "自动高度" +msgid "Wraparound Items" +msgstr "围绕项" + msgid "Items" msgstr "列表项" @@ -6981,6 +7543,9 @@ msgstr "固定图标大小" msgid "Label Settings" msgstr "标签设置" +msgid "Paragraph Separator" +msgstr "段落分隔符" + msgid "Ellipsis Char" msgstr "省略字符" @@ -7011,12 +7576,18 @@ msgstr "占位符文本" msgid "Max Length" msgstr "最大长度" +msgid "Keep Editing on Text Submit" +msgstr "文本提交时保持编辑" + msgid "Expand to Text Length" msgstr "扩展至文本长度" msgid "Context Menu Enabled" msgstr "上下文菜单启用" +msgid "Emoji Menu Enabled" +msgstr "Emoji 菜单启用" + msgid "Virtual Keyboard Enabled" msgstr "虚拟键盘启用" @@ -7227,6 +7798,9 @@ msgstr "自定义步长" msgid "Follow Focus" msgstr "跟随焦点" +msgid "Draw Focus Border" +msgstr "绘制聚焦边框" + msgid "Horizontal Custom Step" msgstr "自定义水平步长" @@ -7266,12 +7840,30 @@ msgstr "拆分偏移" msgid "Collapsed" msgstr "折叠" +msgid "Dragging Enabled" +msgstr "启用拖拽" + msgid "Dragger Visibility" msgstr "拖动器可见性" +msgid "Drag Area" +msgstr "拖拽区域" + +msgid "Margin Begin" +msgstr "开头边距" + +msgid "Margin End" +msgstr "末尾边距" + +msgid "Highlight in Editor" +msgstr "编辑器中高亮" + msgid "Stretch Shrink" msgstr "拉伸收缩" +msgid "Mouse Target" +msgstr "鼠标目标" + msgid "Current Tab" msgstr "当前选项卡" @@ -7323,6 +7915,9 @@ msgstr "最小大小考虑隐藏选项卡" msgid "Tab Focus Mode" msgstr "选项卡聚焦模式" +msgid "Empty Selection Clipboard Enabled" +msgstr "启用空选剪贴板" + msgid "Wrap Mode" msgstr "包裹模式" @@ -7335,6 +7930,9 @@ msgstr "超过文件末尾" msgid "Fit Content Height" msgstr "适配内容高度" +msgid "Fit Content Width" +msgstr "适配内容宽度" + msgid "Draw" msgstr "绘制" @@ -7438,6 +8036,9 @@ msgstr "启用水平滚动" msgid "Scroll Vertical Enabled" msgstr "启用垂直滚动" +msgid "Auto Tooltip" +msgstr "自动工具提示" + msgid "Audio Track" msgstr "音频轨道" @@ -7579,23 +8180,14 @@ msgstr "最大显示接触数" msgid "Draw 2D Outlines" msgstr "绘制 2D 轮廓" -msgid "Anti Aliasing" -msgstr "抗锯齿" - -msgid "MSAA 2D" -msgstr "MSAA 2D" - -msgid "MSAA 3D" -msgstr "MSAA 3D" - msgid "Viewport" msgstr "视口" msgid "Transparent Background" msgstr "透明背景" -msgid "HDR 2D" -msgstr "HDR 2D" +msgid "Anti Aliasing" +msgstr "抗锯齿" msgid "Screen Space AA" msgstr "屏幕空间 AA" @@ -7639,9 +8231,6 @@ msgstr "位置阴影" msgid "Atlas Size" msgstr "图集大小" -msgid "Atlas 16 Bits" -msgstr "16 位图集" - msgid "Atlas Quadrant 0 Subdiv" msgstr "图集象限 0 细分" @@ -7675,6 +8264,9 @@ msgstr "等待时间" msgid "Autostart" msgstr "自动开始" +msgid "Ignore Time Scale" +msgstr "忽略时间缩放" + msgid "Viewport Path" msgstr "Viewport 路径" @@ -7696,6 +8288,12 @@ msgstr "透明背景" msgid "Handle Input Locally" msgstr "输入本地处理" +msgid "MSAA 2D" +msgstr "MSAA 2D" + +msgid "MSAA 3D" +msgstr "MSAA 3D" + msgid "Debug Draw" msgstr "调试绘制" @@ -7810,6 +8408,9 @@ msgstr "弹出窗口" msgid "Mouse Passthrough" msgstr "鼠标穿透" +msgid "Exclude From Capture" +msgstr "在捕获中排除" + msgid "Force Native" msgstr "强制原生" @@ -8089,6 +8690,9 @@ msgstr "项目" msgid "Mesh Transform" msgstr "网格变换" +msgid "Mesh Cast Shadow" +msgstr "网格投射阴影" + msgid "Navigation Mesh Transform" msgstr "导航网格变换" @@ -8350,6 +8954,12 @@ msgstr "合成器效果" msgid "Load Path" msgstr "加载路径" +msgid "Min Domain" +msgstr "最小域" + +msgid "Max Domain" +msgstr "最大域" + msgid "Bake Resolution" msgstr "烘焙分辨率" @@ -8620,6 +9230,9 @@ msgstr "使用 HDR" msgid "To" msgstr "终点" +msgid "Paragraph Spacing" +msgstr "段间距" + msgid "Next Pass" msgstr "下一阶段" @@ -8911,6 +9524,9 @@ msgstr "发射环半径" msgid "Emission Ring Inner Radius" msgstr "发射环内径" +msgid "Emission Ring Cone Angle" +msgstr "发射环椎体内角" + msgid "Inherit Velocity Ratio" msgstr "继承速度比" @@ -8983,6 +9599,9 @@ msgstr "结束时数量" msgid "Amount at Collision" msgstr "碰撞时数量" +msgid "Amount at Start" +msgstr "开始时数量" + msgid "Keep Velocity" msgstr "保持速度" @@ -9136,6 +9755,9 @@ msgstr "启用默认值" msgid "Default Value" msgstr "默认值" +msgid "Enum Names" +msgstr "枚举名称" + msgid "Color Default" msgstr "颜色默认" @@ -9334,6 +9956,9 @@ msgstr "折叠代码区域" msgid "Folded EOL Icon" msgstr "折叠 EOL 图标" +msgid "Completion Color BG" +msgstr "补全颜色背景" + msgid "Completion Lines" msgstr "补全行数" @@ -9397,6 +10022,96 @@ msgstr "抓取器偏移" msgid "Updown" msgstr "上下" +msgid "Up" +msgstr "向上按钮" + +msgid "Up Hover" +msgstr "向上按钮悬停" + +msgid "Up Pressed" +msgstr "向上按钮按下" + +msgid "Up Disabled" +msgstr "向上按钮禁用" + +msgid "Down" +msgstr "向下按钮" + +msgid "Down Hover" +msgstr "向下按钮悬停" + +msgid "Down Pressed" +msgstr "向下按钮按下" + +msgid "Down Disabled" +msgstr "向下按钮禁用" + +msgid "Up Background" +msgstr "向上按钮背景" + +msgid "Up Background Hovered" +msgstr "向上按钮背景悬停" + +msgid "Up Background Pressed" +msgstr "向上按钮背景按下" + +msgid "Up Background Disabled" +msgstr "向上按钮背景禁用" + +msgid "Down Background" +msgstr "向下按钮背景" + +msgid "Down Background Hovered" +msgstr "向下按钮背景悬停" + +msgid "Down Background Pressed" +msgstr "向下按钮背景按下" + +msgid "Down Background Disabled" +msgstr "向下按钮背景禁用" + +msgid "Up Icon Modulate" +msgstr "向上按钮图标调色" + +msgid "Up Hover Icon Modulate" +msgstr "向上按钮悬停图标调色" + +msgid "Up Pressed Icon Modulate" +msgstr "向上按钮按下图标调色" + +msgid "Up Disabled Icon Modulate" +msgstr "向上按钮禁用图标调色" + +msgid "Down Icon Modulate" +msgstr "向下按钮图标调色" + +msgid "Down Hover Icon Modulate" +msgstr "向下按钮悬停图标调色" + +msgid "Down Pressed Icon Modulate" +msgstr "向下按钮按下图标调色" + +msgid "Down Disabled Icon Modulate" +msgstr "向下按钮禁用图标调色" + +msgid "Field and Buttons Separator" +msgstr "输入框与按钮分隔" + +msgid "Up Down Buttons Separator" +msgstr "上下按钮按钮分隔" + +msgid "Buttons Vertical Separation" +msgstr "按钮垂直间距" + +msgid "Field and Buttons Separation" +msgstr "输入框与按钮间距" + +msgid "Buttons Width" +msgstr "按钮宽度" + +msgid "Set Min Buttons Width From Icons" +msgstr "根据图标设置按钮最小宽度" + msgid "Embedded Border" msgstr "嵌入式边框" @@ -9439,6 +10154,12 @@ msgstr "关闭垂直偏移" msgid "Buttons Separation" msgstr "按钮间距" +msgid "Load" +msgstr "加载" + +msgid "Save" +msgstr "保存" + msgid "Parent Folder" msgstr "父文件夹" @@ -9454,6 +10175,9 @@ msgstr "重新加载" msgid "Toggle Hidden" msgstr "切换隐藏" +msgid "Toggle Filename Filter" +msgstr "切换文件名过滤器" + msgid "Folder" msgstr "文件夹" @@ -9535,6 +10259,9 @@ msgstr "端口水平偏移" msgid "Hovered" msgstr "悬停" +msgid "Hovered Dimmed" +msgstr "悬停变暗" + msgid "Selected Focus" msgstr "选中项聚焦" @@ -9544,6 +10271,9 @@ msgstr "光标" msgid "Cursor Unfocused" msgstr "光标未聚焦" +msgid "Button Hover" +msgstr "按钮悬停" + msgid "Title Button Normal" msgstr "标题按钮正常" @@ -9586,6 +10316,9 @@ msgstr "标题按钮颜色" msgid "Font Hovered Color" msgstr "字体悬停颜色" +msgid "Font Hovered Dimmed Color" +msgstr "字体悬停颜色变暗" + msgid "Guide Color" msgstr "参考线颜色" @@ -9667,6 +10400,15 @@ msgstr "滚动条垂直间距" msgid "Icon Margin" msgstr "图标边距" +msgid "Font Hovered Selected Color" +msgstr "字体悬停选中颜色" + +msgid "Hovered Selected" +msgstr "悬停选中" + +msgid "Hovered Selected Focus" +msgstr "悬停选中聚焦" + msgid "Tab Selected" msgstr "选项卡已选" @@ -9721,6 +10463,9 @@ msgstr "标签宽度" msgid "Center Slider Grabbers" msgstr "滑块居中" +msgid "Menu Option" +msgstr "菜单选项" + msgid "Folded Arrow" msgstr "折叠箭头" @@ -9757,6 +10502,9 @@ msgstr "条形箭头" msgid "Picker Cursor" msgstr "选取器光标" +msgid "Picker Cursor BG" +msgstr "选取器光标背景" + msgid "Color Hue" msgstr "颜色色相" @@ -9844,6 +10592,9 @@ msgstr "最小抓取厚度" msgid "Autohide" msgstr "自动隐藏" +msgid "Split Bar Background" +msgstr "拆分条背景" + msgid "Zoom Out" msgstr "缩小" @@ -9883,6 +10634,9 @@ msgstr "活动" msgid "Connection Hover Tint Color" msgstr "连接悬停着色" +msgid "Connection Hover Thickness" +msgstr "连接悬停宽度" + msgid "Connection Valid Target Tint Color" msgstr "连接有效目标着色" @@ -10054,6 +10808,9 @@ msgstr "撤离时间(毫秒)" msgid "Surround" msgstr "环绕" +msgid "Mix Rate Mode" +msgstr "混音率模式" + msgid "Enable Input" msgstr "启用输入" @@ -10129,6 +10886,12 @@ msgstr "默认上方" msgid "Merge Rasterizer Cell Scale" msgstr "合并光栅器单元格缩放" +msgid "World" +msgstr "世界" + +msgid "Map Use Async Iterations" +msgstr "地图使用异步迭代" + msgid "Avoidance Use Multiple Threads" msgstr "避障使用多线程" @@ -10465,6 +11228,12 @@ msgstr "导入 S3TC BPTC" msgid "Import ETC2 ASTC" msgstr "导入 ETC2 ASTC" +msgid "Compress With GPU" +msgstr "使用 GPU 压缩" + +msgid "Cache GPU Compressor" +msgstr "缓存 GPU 压缩器" + msgid "Lossless Compression" msgstr "无损压缩" @@ -10489,12 +11258,21 @@ msgstr "使用物理光线单位" msgid "Soft Shadow Filter Quality" msgstr "柔和阴影过滤质量" +msgid "Atlas 16 Bits" +msgstr "16 位图集" + msgid "Shadow Atlas" msgstr "阴影图集" +msgid "Batching" +msgstr "合批" + msgid "Item Buffer Size" msgstr "项目缓冲区大小" +msgid "Uniform Set Cache Size" +msgstr "Uniform 集缓存大小" + msgid "Shader Compiler" msgstr "着色器编译器" @@ -10588,6 +11366,9 @@ msgstr "淡出起点" msgid "Fadeout To" msgstr "淡出终点" +msgid "HDR 2D" +msgstr "HDR 2D" + msgid "Screen Space Roughness Limiter" msgstr "屏幕空间粗糙度限制器" @@ -10636,6 +11417,12 @@ msgstr "基本网格" msgid "Texel Size" msgstr "纹素大小" +msgid "Lightmap GI" +msgstr "光照贴图 GI" + +msgid "Use Bicubic Filter" +msgstr "使用双三次过滤" + msgid "Probe Ray Count" msgstr "探针射线数" @@ -10720,8 +11507,14 @@ msgstr "VRS 最小半径" msgid "VRS Strength" msgstr "VRS 强度" +msgid "VRS Render Region" +msgstr "VRS 渲染区域" + msgid "World Origin" msgstr "世界原点" +msgid "Camera Locked to Origin" +msgstr "相机锁定到原点" + msgid "Primary Interface" msgstr "主接口" diff --git a/engine/editor/translations/properties/zh_TW.po b/engine/editor/translations/properties/zh_TW.po index 7823dc19..6870dab0 100644 --- a/engine/editor/translations/properties/zh_TW.po +++ b/engine/editor/translations/properties/zh_TW.po @@ -748,9 +748,6 @@ msgstr "要求失敗,逾時" msgid "Sync Breakpoints" msgstr "同步中斷點" -msgid "Default Feature Profile" -msgstr "預設功能設定檔" - msgid "Label" msgstr "標籤" @@ -2338,9 +2335,6 @@ msgstr "外掛名稱" msgid "Autoload on Startup" msgstr "啟動時自動載入" -msgid "Use Favorites Root Selection" -msgstr "使用我的最愛根選擇" - msgid "Flush stdout on Print" msgstr "列印時刷新標準輸出" @@ -2527,15 +2521,15 @@ msgstr "工具提示位置偏移" msgid "Show Image" msgstr "顯示圖像" -msgid "Image" -msgstr "圖像" - msgid "Fullsize" msgstr "全尺寸" msgid "Use Filter" msgstr "使用篩選器" +msgid "Image" +msgstr "圖像" + msgid "Minimum Display Time" msgstr "最短顯示時間" @@ -3097,9 +3091,6 @@ msgstr "K1" msgid "K2" msgstr "K2" -msgid "Spawnable Scenes" -msgstr "可生成場景" - msgid "Spawn Path" msgstr "生成路徑" @@ -6793,23 +6784,14 @@ msgstr "最大顯示接觸數" msgid "Draw 2D Outlines" msgstr "繪製 2D 輪廓" -msgid "Anti Aliasing" -msgstr "抗鋸齒" - -msgid "MSAA 2D" -msgstr "MSAA 2D" - -msgid "MSAA 3D" -msgstr "MSAA 3D" - msgid "Viewport" msgstr "檢視區" msgid "Transparent Background" msgstr "透明背景" -msgid "HDR 2D" -msgstr "HDR 2D" +msgid "Anti Aliasing" +msgstr "抗鋸齒" msgid "Screen Space AA" msgstr "螢幕空間 AA" @@ -6853,9 +6835,6 @@ msgstr "位置陰影" msgid "Atlas Size" msgstr "合集大小" -msgid "Atlas 16 Bits" -msgstr "16 點陣合集" - msgid "Atlas Quadrant 0 Subdiv" msgstr "合集象限 0 細分" @@ -6910,6 +6889,12 @@ msgstr "透明背景" msgid "Handle Input Locally" msgstr "輸入本地處理" +msgid "MSAA 2D" +msgstr "MSAA 2D" + +msgid "MSAA 3D" +msgstr "MSAA 3D" + msgid "Debug Draw" msgstr "除錯繪製" @@ -9520,6 +9505,9 @@ msgstr "使用物理光線單位" msgid "Soft Shadow Filter Quality" msgstr "柔和陰影篩選品質" +msgid "Atlas 16 Bits" +msgstr "16 點陣合集" + msgid "Shadow Atlas" msgstr "陰影合集" @@ -9619,6 +9607,9 @@ msgstr "淡出起點" msgid "Fadeout To" msgstr "淡出終點" +msgid "HDR 2D" +msgstr "HDR 2D" + msgid "Screen Space Roughness Limiter" msgstr "螢幕空間粗糙度極限器" diff --git a/engine/editor/uid_upgrade_tool.cpp b/engine/editor/uid_upgrade_tool.cpp index 4d888ac2..1d44471c 100644 --- a/engine/editor/uid_upgrade_tool.cpp +++ b/engine/editor/uid_upgrade_tool.cpp @@ -74,7 +74,7 @@ void UIDUpgradeTool::finish_upgrade() { int step = 0; for (const String &file_path : resave_paths) { - Ref<Resource> res = ResourceLoader::load(file_path); + Ref<Resource> res = ResourceLoader::load(file_path, "", ResourceFormatLoader::CACHE_MODE_REPLACE); ep.step(TTR("Attempting to re-save ") + file_path, step++); if (res.is_valid()) { ResourceSaver::save(res); diff --git a/engine/main/main.cpp b/engine/main/main.cpp index bf5f9dfe..10064b35 100644 --- a/engine/main/main.cpp +++ b/engine/main/main.cpp @@ -979,6 +979,10 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph String project_path = "."; bool upwards = false; String debug_uri = ""; +#if defined(TOOLS_ENABLED) && defined(WINDOWS_ENABLED) + bool test_rd_creation = false; + bool test_rd_support = false; +#endif bool skip_breakpoints = false; String main_pack; bool quiet_stdout = false; @@ -1666,6 +1670,12 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph debug_canvas_item_redraw = true; } else if (arg == "--debug-stringnames") { StringName::set_debug_stringnames(true); +#endif +#if defined(TOOLS_ENABLED) && defined(WINDOWS_ENABLED) + } else if (arg == "--test-rd-support") { + test_rd_support = true; + } else if (arg == "--test-rd-creation") { + test_rd_creation = true; #endif } else if (arg == "--remote-debug") { if (N) { @@ -1870,6 +1880,30 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph #endif } +#if defined(TOOLS_ENABLED) && defined(WINDOWS_ENABLED) + if (test_rd_support) { + // Test Rendering Device creation and exit. + + OS::get_singleton()->set_crash_handler_silent(); + if (OS::get_singleton()->_test_create_rendering_device()) { + exit_err = ERR_HELP; + } else { + exit_err = ERR_UNAVAILABLE; + } + goto error; + } else if (test_rd_creation) { + // Test OpenGL context and Rendering Device simultaneous creation and exit. + + OS::get_singleton()->set_crash_handler_silent(); + if (OS::get_singleton()->_test_create_rendering_device_and_gl()) { + exit_err = ERR_HELP; + } else { + exit_err = ERR_UNAVAILABLE; + } + goto error; + } +#endif + #ifdef TOOLS_ENABLED if (editor) { Engine::get_singleton()->set_editor_hint(true); @@ -2030,14 +2064,20 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph Logger::set_flush_stdout_on_print(GLOBAL_GET("application/run/flush_stdout_on_print")); + // Rendering drivers configuration. + + // Always include all supported drivers as hint, as this is used by the editor host platform + // for project settings. For example, a Linux user should be able to configure that they want + // to export for D3D12 on Windows and Metal on macOS even if their host platform can't use those. + { - // For now everything defaults to vulkan when available. This can change in future updates. - GLOBAL_DEF_RST("rendering/rendering_device/driver", "auto"); - GLOBAL_DEF_RST(PropertyInfo(Variant::STRING, "rendering/rendering_device/driver.windows", PROPERTY_HINT_ENUM, "auto,vulkan,d3d12"), "auto"); - GLOBAL_DEF_RST(PropertyInfo(Variant::STRING, "rendering/rendering_device/driver.linuxbsd", PROPERTY_HINT_ENUM, "auto,vulkan"), "auto"); - GLOBAL_DEF_RST(PropertyInfo(Variant::STRING, "rendering/rendering_device/driver.android", PROPERTY_HINT_ENUM, "auto,vulkan"), "auto"); - GLOBAL_DEF_RST(PropertyInfo(Variant::STRING, "rendering/rendering_device/driver.ios", PROPERTY_HINT_ENUM, "auto,metal,vulkan"), "auto"); - GLOBAL_DEF_RST(PropertyInfo(Variant::STRING, "rendering/rendering_device/driver.macos", PROPERTY_HINT_ENUM, "auto,metal,vulkan"), "auto"); + // RenderingDevice driver overrides per platform. + GLOBAL_DEF_RST("rendering/rendering_device/driver", "vulkan"); + GLOBAL_DEF_RST(PropertyInfo(Variant::STRING, "rendering/rendering_device/driver.windows", PROPERTY_HINT_ENUM, "vulkan,d3d12"), "vulkan"); + GLOBAL_DEF_RST(PropertyInfo(Variant::STRING, "rendering/rendering_device/driver.linuxbsd", PROPERTY_HINT_ENUM, "vulkan"), "vulkan"); + GLOBAL_DEF_RST(PropertyInfo(Variant::STRING, "rendering/rendering_device/driver.android", PROPERTY_HINT_ENUM, "vulkan"), "vulkan"); + GLOBAL_DEF_RST(PropertyInfo(Variant::STRING, "rendering/rendering_device/driver.ios", PROPERTY_HINT_ENUM, "metal,vulkan"), "metal"); + GLOBAL_DEF_RST(PropertyInfo(Variant::STRING, "rendering/rendering_device/driver.macos", PROPERTY_HINT_ENUM, "metal,vulkan"), "metal"); GLOBAL_DEF_RST("rendering/rendering_device/fallback_to_vulkan", true); GLOBAL_DEF_RST("rendering/rendering_device/fallback_to_d3d12", true); @@ -2045,13 +2085,14 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph } { - GLOBAL_DEF_RST("rendering/gl_compatibility/driver", "auto"); - GLOBAL_DEF_RST(PropertyInfo(Variant::STRING, "rendering/gl_compatibility/driver.windows", PROPERTY_HINT_ENUM, "auto,opengl3,opengl3_angle"), "auto"); - GLOBAL_DEF_RST(PropertyInfo(Variant::STRING, "rendering/gl_compatibility/driver.linuxbsd", PROPERTY_HINT_ENUM, "auto,opengl3,opengl3_es"), "auto"); - GLOBAL_DEF_RST(PropertyInfo(Variant::STRING, "rendering/gl_compatibility/driver.web", PROPERTY_HINT_ENUM, "auto,opengl3"), "auto"); - GLOBAL_DEF_RST(PropertyInfo(Variant::STRING, "rendering/gl_compatibility/driver.android", PROPERTY_HINT_ENUM, "auto,opengl3"), "auto"); - GLOBAL_DEF_RST(PropertyInfo(Variant::STRING, "rendering/gl_compatibility/driver.ios", PROPERTY_HINT_ENUM, "auto,opengl3"), "auto"); - GLOBAL_DEF_RST(PropertyInfo(Variant::STRING, "rendering/gl_compatibility/driver.macos", PROPERTY_HINT_ENUM, "auto,opengl3,opengl3_angle"), "auto"); + // GL Compatibility driver overrides per platform. + GLOBAL_DEF_RST("rendering/gl_compatibility/driver", "opengl3"); + GLOBAL_DEF_RST(PropertyInfo(Variant::STRING, "rendering/gl_compatibility/driver.windows", PROPERTY_HINT_ENUM, "opengl3,opengl3_angle"), "opengl3"); + GLOBAL_DEF_RST(PropertyInfo(Variant::STRING, "rendering/gl_compatibility/driver.linuxbsd", PROPERTY_HINT_ENUM, "opengl3,opengl3_es"), "opengl3"); + GLOBAL_DEF_RST(PropertyInfo(Variant::STRING, "rendering/gl_compatibility/driver.web", PROPERTY_HINT_ENUM, "opengl3"), "opengl3"); + GLOBAL_DEF_RST(PropertyInfo(Variant::STRING, "rendering/gl_compatibility/driver.android", PROPERTY_HINT_ENUM, "opengl3"), "opengl3"); + GLOBAL_DEF_RST(PropertyInfo(Variant::STRING, "rendering/gl_compatibility/driver.ios", PROPERTY_HINT_ENUM, "opengl3"), "opengl3"); + GLOBAL_DEF_RST(PropertyInfo(Variant::STRING, "rendering/gl_compatibility/driver.macos", PROPERTY_HINT_ENUM, "opengl3,opengl3_angle"), "opengl3"); GLOBAL_DEF_RST("rendering/gl_compatibility/nvidia_disable_threaded_optimization", true); GLOBAL_DEF_RST("rendering/gl_compatibility/fallback_to_angle", true); @@ -2385,30 +2426,6 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph // always convert to lower case for consistency in the code rendering_driver = rendering_driver.to_lower(); - if (rendering_method == "gl_compatibility") { -#ifdef GLES3_ENABLED - if (rendering_driver == "auto") { - rendering_driver = "opengl3"; - } -#endif - } else { -#ifdef METAL_ENABLED - if (rendering_driver == "auto") { - rendering_driver = "metal"; - } -#endif -#ifdef VULKAN_ENABLED - if (rendering_driver == "auto") { - rendering_driver = "vulkan"; - } -#endif -#ifdef D3D12_ENABLED - if (rendering_driver == "auto") { - rendering_driver = "d3d12"; - } -#endif - } - OS::get_singleton()->set_current_rendering_driver_name(rendering_driver); OS::get_singleton()->set_current_rendering_method(rendering_method); diff --git a/engine/modules/bcdec/image_decompress_bcdec.cpp b/engine/modules/bcdec/image_decompress_bcdec.cpp index 6d97ca38..ad0c1729 100644 --- a/engine/modules/bcdec/image_decompress_bcdec.cpp +++ b/engine/modules/bcdec/image_decompress_bcdec.cpp @@ -158,9 +158,12 @@ void image_decompress_bcdec(Image *p_image) { // Compressed images' dimensions should be padded to the upper multiple of 4. // If they aren't, they need to be realigned (the actual data is correctly padded though). - if (width % 4 != 0 || height % 4 != 0) { - int new_width = width + (4 - (width % 4)); - int new_height = height + (4 - (height % 4)); + const bool need_width_realign = width % 4 != 0; + const bool need_height_realign = height % 4 != 0; + + if (need_width_realign || need_height_realign) { + int new_width = need_width_realign ? width + (4 - (width % 4)) : width; + int new_height = need_height_realign ? height + (4 - (height % 4)) : height; print_verbose(vformat("Compressed image's dimensions are not multiples of 4 (%dx%d), aligning to (%dx%d)", width, height, new_width, new_height)); diff --git a/engine/modules/gltf/gltf_document.cpp b/engine/modules/gltf/gltf_document.cpp index dd27fef7..45778b07 100644 --- a/engine/modules/gltf/gltf_document.cpp +++ b/engine/modules/gltf/gltf_document.cpp @@ -1198,10 +1198,11 @@ Error GLTFDocument::_encode_buffer_view(Ref<GLTFState> p_state, const double *p_ dst_i++; } } - int64_t old_size = gltf_buffer.size(); - gltf_buffer.resize(old_size + (buffer.size() * sizeof(int8_t))); - memcpy(gltf_buffer.ptrw() + old_size, buffer.ptrw(), buffer.size() * sizeof(int8_t)); - bv->byte_length = buffer.size() * sizeof(int8_t); + const int64_t old_size = gltf_buffer.size(); + const size_t buffer_size = buffer.size() * sizeof(int8_t); + gltf_buffer.resize(old_size + buffer_size); + memcpy(gltf_buffer.ptrw() + old_size, buffer.ptrw(), buffer_size); + bv->byte_length = buffer_size; } break; case GLTFAccessor::COMPONENT_TYPE_UNSIGNED_BYTE: { Vector<uint8_t> buffer; @@ -1223,7 +1224,8 @@ Error GLTFDocument::_encode_buffer_view(Ref<GLTFState> p_state, const double *p_ } } gltf_buffer.append_array(buffer); - bv->byte_length = buffer.size() * sizeof(uint8_t); + const size_t buffer_size = buffer.size() * sizeof(uint8_t); + bv->byte_length = buffer_size; } break; case GLTFAccessor::COMPONENT_TYPE_SIGNED_SHORT: { Vector<int16_t> buffer; @@ -1244,10 +1246,11 @@ Error GLTFDocument::_encode_buffer_view(Ref<GLTFState> p_state, const double *p_ dst_i++; } } - int64_t old_size = gltf_buffer.size(); - gltf_buffer.resize(old_size + (buffer.size() * sizeof(int16_t))); - memcpy(gltf_buffer.ptrw() + old_size, buffer.ptrw(), buffer.size() * sizeof(int16_t)); - bv->byte_length = buffer.size() * sizeof(int16_t); + const int64_t old_size = gltf_buffer.size(); + const size_t buffer_size = buffer.size() * sizeof(int16_t); + gltf_buffer.resize(old_size + buffer_size); + memcpy(gltf_buffer.ptrw() + old_size, buffer.ptrw(), buffer_size); + bv->byte_length = buffer_size; } break; case GLTFAccessor::COMPONENT_TYPE_UNSIGNED_SHORT: { Vector<uint16_t> buffer; @@ -1268,10 +1271,11 @@ Error GLTFDocument::_encode_buffer_view(Ref<GLTFState> p_state, const double *p_ dst_i++; } } - int64_t old_size = gltf_buffer.size(); - gltf_buffer.resize(old_size + (buffer.size() * sizeof(uint16_t))); - memcpy(gltf_buffer.ptrw() + old_size, buffer.ptrw(), buffer.size() * sizeof(uint16_t)); - bv->byte_length = buffer.size() * sizeof(uint16_t); + const int64_t old_size = gltf_buffer.size(); + const size_t buffer_size = buffer.size() * sizeof(uint16_t); + gltf_buffer.resize(old_size + buffer_size); + memcpy(gltf_buffer.ptrw() + old_size, buffer.ptrw(), buffer_size); + bv->byte_length = buffer_size; } break; case GLTFAccessor::COMPONENT_TYPE_SIGNED_INT: { Vector<int32_t> buffer; @@ -1288,10 +1292,11 @@ Error GLTFDocument::_encode_buffer_view(Ref<GLTFState> p_state, const double *p_ dst_i++; } } - int64_t old_size = gltf_buffer.size(); - gltf_buffer.resize(old_size + (buffer.size() * sizeof(uint32_t))); - memcpy(gltf_buffer.ptrw() + old_size, buffer.ptrw(), buffer.size() * sizeof(uint32_t)); - bv->byte_length = buffer.size() * sizeof(uint32_t); + const int64_t old_size = gltf_buffer.size(); + const size_t buffer_size = buffer.size() * sizeof(int32_t); + gltf_buffer.resize(old_size + buffer_size); + memcpy(gltf_buffer.ptrw() + old_size, buffer.ptrw(), buffer_size); + bv->byte_length = buffer_size; } break; case GLTFAccessor::COMPONENT_TYPE_UNSIGNED_INT: { Vector<uint32_t> buffer; @@ -1308,10 +1313,11 @@ Error GLTFDocument::_encode_buffer_view(Ref<GLTFState> p_state, const double *p_ dst_i++; } } - int64_t old_size = gltf_buffer.size(); - gltf_buffer.resize(old_size + (buffer.size() * sizeof(uint32_t))); - memcpy(gltf_buffer.ptrw() + old_size, buffer.ptrw(), buffer.size() * sizeof(uint32_t)); - bv->byte_length = buffer.size() * sizeof(uint32_t); + const int64_t old_size = gltf_buffer.size(); + const size_t buffer_size = buffer.size() * sizeof(uint32_t); + gltf_buffer.resize(old_size + buffer_size); + memcpy(gltf_buffer.ptrw() + old_size, buffer.ptrw(), buffer_size); + bv->byte_length = buffer_size; } break; case GLTFAccessor::COMPONENT_TYPE_SINGLE_FLOAT: { Vector<float> buffer; @@ -1328,10 +1334,11 @@ Error GLTFDocument::_encode_buffer_view(Ref<GLTFState> p_state, const double *p_ dst_i++; } } - int64_t old_size = gltf_buffer.size(); - gltf_buffer.resize(old_size + (buffer.size() * sizeof(float))); - memcpy(gltf_buffer.ptrw() + old_size, buffer.ptrw(), buffer.size() * sizeof(float)); - bv->byte_length = buffer.size() * sizeof(float); + const int64_t old_size = gltf_buffer.size(); + const size_t buffer_size = buffer.size() * sizeof(float); + gltf_buffer.resize(old_size + buffer_size); + memcpy(gltf_buffer.ptrw() + old_size, buffer.ptrw(), buffer_size); + bv->byte_length = buffer_size; } break; case GLTFAccessor::COMPONENT_TYPE_DOUBLE_FLOAT: { Vector<double> buffer; @@ -1348,10 +1355,11 @@ Error GLTFDocument::_encode_buffer_view(Ref<GLTFState> p_state, const double *p_ dst_i++; } } - int64_t old_size = gltf_buffer.size(); - gltf_buffer.resize(old_size + (buffer.size() * sizeof(double))); - memcpy(gltf_buffer.ptrw() + old_size, buffer.ptrw(), buffer.size() * sizeof(double)); - bv->byte_length = buffer.size() * sizeof(double); + const int64_t old_size = gltf_buffer.size(); + const size_t buffer_size = buffer.size() * sizeof(double); + gltf_buffer.resize(old_size + buffer_size); + memcpy(gltf_buffer.ptrw() + old_size, buffer.ptrw(), buffer_size); + bv->byte_length = buffer_size; } break; case GLTFAccessor::COMPONENT_TYPE_HALF_FLOAT: { ERR_FAIL_V_MSG(ERR_UNAVAILABLE, "glTF: Half float not supported yet."); @@ -1372,10 +1380,11 @@ Error GLTFDocument::_encode_buffer_view(Ref<GLTFState> p_state, const double *p_ dst_i++; } } - int64_t old_size = gltf_buffer.size(); - gltf_buffer.resize(old_size + (buffer.size() * sizeof(int64_t))); - memcpy(gltf_buffer.ptrw() + old_size, buffer.ptrw(), buffer.size() * sizeof(int64_t)); - bv->byte_length = buffer.size() * sizeof(int64_t); + const int64_t old_size = gltf_buffer.size(); + const size_t buffer_size = buffer.size() * sizeof(int64_t); + gltf_buffer.resize(old_size + buffer_size); + memcpy(gltf_buffer.ptrw() + old_size, buffer.ptrw(), buffer_size); + bv->byte_length = buffer_size; } break; case GLTFAccessor::COMPONENT_TYPE_UNSIGNED_LONG: { Vector<uint64_t> buffer; @@ -1393,10 +1402,11 @@ Error GLTFDocument::_encode_buffer_view(Ref<GLTFState> p_state, const double *p_ dst_i++; } } - int64_t old_size = gltf_buffer.size(); - gltf_buffer.resize(old_size + (buffer.size() * sizeof(uint64_t))); - memcpy(gltf_buffer.ptrw() + old_size, buffer.ptrw(), buffer.size() * sizeof(uint64_t)); - bv->byte_length = buffer.size() * sizeof(uint64_t); + const int64_t old_size = gltf_buffer.size(); + const size_t buffer_size = buffer.size() * sizeof(uint64_t); + gltf_buffer.resize(old_size + buffer_size); + memcpy(gltf_buffer.ptrw() + old_size, buffer.ptrw(), buffer_size); + bv->byte_length = buffer_size; } break; } ERR_FAIL_COND_V(buffer_end > bv->byte_length, ERR_INVALID_DATA); diff --git a/engine/modules/mbedtls/register_types.cpp b/engine/modules/mbedtls/register_types.cpp index c0eca6ee..a38e833a 100644 --- a/engine/modules/mbedtls/register_types.cpp +++ b/engine/modules/mbedtls/register_types.cpp @@ -52,7 +52,7 @@ void initialize_mbedtls_module(ModuleInitializationLevel p_level) { return; } - GLOBAL_DEF("network/tls/enable_tls_v1.3", false); + GLOBAL_DEF("network/tls/enable_tls_v1.3", true); #if MBEDTLS_VERSION_MAJOR >= 3 int status = psa_crypto_init(); diff --git a/engine/modules/mbedtls/tls_context_mbedtls.cpp b/engine/modules/mbedtls/tls_context_mbedtls.cpp index f7d3422f..01e52efc 100644 --- a/engine/modules/mbedtls/tls_context_mbedtls.cpp +++ b/engine/modules/mbedtls/tls_context_mbedtls.cpp @@ -32,6 +32,10 @@ #include "core/config/project_settings.h" +#ifdef TOOLS_ENABLED +#include "editor/editor_settings.h" +#endif // TOOLS_ENABLED + static void my_debug(void *ctx, int level, const char *file, int line, const char *str) { @@ -148,8 +152,17 @@ Error TLSContextMbedTLS::init_server(int p_transport, Ref<TLSOptions> p_options, } #if MBEDTLS_VERSION_MAJOR >= 3 - if (Engine::get_singleton()->is_editor_hint() || !(bool)GLOBAL_GET("network/tls/enable_tls_v1.3")) { - mbedtls_ssl_conf_max_tls_version(&conf, MBEDTLS_SSL_VERSION_TLS1_2); +#ifdef TOOLS_ENABLED + if (Engine::get_singleton()->is_editor_hint()) { + if (!EditorSettings::get_singleton()->get_setting("network/tls/enable_tls_v1.3").operator bool()) { + mbedtls_ssl_conf_max_tls_version(&conf, MBEDTLS_SSL_VERSION_TLS1_2); + } + } else +#endif + { + if (!GLOBAL_GET("network/tls/enable_tls_v1.3").operator bool()) { + mbedtls_ssl_conf_max_tls_version(&conf, MBEDTLS_SSL_VERSION_TLS1_2); + } } #endif @@ -197,8 +210,17 @@ Error TLSContextMbedTLS::init_client(int p_transport, const String &p_hostname, } #if MBEDTLS_VERSION_MAJOR >= 3 - if (Engine::get_singleton()->is_editor_hint() || !(bool)GLOBAL_GET("network/tls/enable_tls_v1.3")) { - mbedtls_ssl_conf_max_tls_version(&conf, MBEDTLS_SSL_VERSION_TLS1_2); +#ifdef TOOLS_ENABLED + if (Engine::get_singleton()->is_editor_hint()) { + if (!EditorSettings::get_singleton()->get_setting("network/tls/enable_tls_v1.3").operator bool()) { + mbedtls_ssl_conf_max_tls_version(&conf, MBEDTLS_SSL_VERSION_TLS1_2); + } + } else +#endif + { + if (!GLOBAL_GET("network/tls/enable_tls_v1.3").operator bool()) { + mbedtls_ssl_conf_max_tls_version(&conf, MBEDTLS_SSL_VERSION_TLS1_2); + } } #endif diff --git a/engine/modules/mobile_vr/doc_classes/MobileVRInterface.xml b/engine/modules/mobile_vr/doc_classes/MobileVRInterface.xml index 61d802ae..6974576e 100644 --- a/engine/modules/mobile_vr/doc_classes/MobileVRInterface.xml +++ b/engine/modules/mobile_vr/doc_classes/MobileVRInterface.xml @@ -12,6 +12,7 @@ if interface and interface.initialize(): get_viewport().use_xr = true [/codeblock] + [b]Note:[/b] For Android, [member ProjectSettings.input_devices/sensors/enable_accelerometer], [member ProjectSettings.input_devices/sensors/enable_gravity], [member ProjectSettings.input_devices/sensors/enable_gyroscope] and [member ProjectSettings.input_devices/sensors/enable_magnetometer] must be enabled. </description> <tutorials> </tutorials> diff --git a/engine/modules/mono/editor/hostfxr_resolver.cpp b/engine/modules/mono/editor/hostfxr_resolver.cpp index 9c37ac81..76047b19 100644 --- a/engine/modules/mono/editor/hostfxr_resolver.cpp +++ b/engine/modules/mono/editor/hostfxr_resolver.cpp @@ -135,7 +135,7 @@ typedef BOOL(WINAPI *LPFN_ISWOW64PROCESS)(HANDLE, PBOOL); BOOL is_wow64() { BOOL wow64 = FALSE; - LPFN_ISWOW64PROCESS fnIsWow64Process = (LPFN_ISWOW64PROCESS)GetProcAddress(GetModuleHandle(TEXT("kernel32")), "IsWow64Process"); + LPFN_ISWOW64PROCESS fnIsWow64Process = (LPFN_ISWOW64PROCESS)(void *)GetProcAddress(GetModuleHandle(TEXT("kernel32")), "IsWow64Process"); if (fnIsWow64Process) { if (!fnIsWow64Process(GetCurrentProcess(), &wow64)) { diff --git a/engine/modules/openxr/openxr_api.cpp b/engine/modules/openxr/openxr_api.cpp index 17ee09e2..f4320925 100644 --- a/engine/modules/openxr/openxr_api.cpp +++ b/engine/modules/openxr/openxr_api.cpp @@ -3641,10 +3641,10 @@ void OpenXRAPI::set_emulate_environment_blend_mode_alpha_blend(bool p_enabled) { } OpenXRAPI::OpenXRAlphaBlendModeSupport OpenXRAPI::is_environment_blend_mode_alpha_blend_supported() { - if (is_environment_blend_mode_supported(XR_ENVIRONMENT_BLEND_MODE_ALPHA_BLEND)) { - return OPENXR_ALPHA_BLEND_MODE_SUPPORT_REAL; - } else if (emulate_environment_blend_mode_alpha_blend) { + if (emulate_environment_blend_mode_alpha_blend) { return OPENXR_ALPHA_BLEND_MODE_SUPPORT_EMULATING; + } else if (is_environment_blend_mode_supported(XR_ENVIRONMENT_BLEND_MODE_ALPHA_BLEND)) { + return OPENXR_ALPHA_BLEND_MODE_SUPPORT_REAL; } return OPENXR_ALPHA_BLEND_MODE_SUPPORT_NONE; } diff --git a/engine/platform/android/export/export_plugin.cpp b/engine/platform/android/export/export_plugin.cpp index 0f50f725..13d721da 100644 --- a/engine/platform/android/export/export_plugin.cpp +++ b/engine/platform/android/export/export_plugin.cpp @@ -856,9 +856,9 @@ bool EditorExportPlatformAndroid::_has_manage_external_storage_permission(const } bool EditorExportPlatformAndroid::_uses_vulkan() { - String current_renderer = GLOBAL_GET("rendering/renderer/rendering_method.mobile"); - bool uses_vulkan = (current_renderer == "forward_plus" || current_renderer == "mobile") && GLOBAL_GET("rendering/rendering_device/driver.android") == "vulkan"; - return uses_vulkan; + String rendering_method = GLOBAL_GET("rendering/renderer/rendering_method.mobile"); + String rendering_driver = GLOBAL_GET("rendering/rendering_device/driver.android"); + return (rendering_method == "forward_plus" || rendering_method == "mobile") && rendering_driver == "vulkan"; } void EditorExportPlatformAndroid::_notification(int p_what) { diff --git a/engine/platform/android/game_menu_utils_jni.cpp b/engine/platform/android/game_menu_utils_jni.cpp index 085e1d8f..5ff8f712 100644 --- a/engine/platform/android/game_menu_utils_jni.cpp +++ b/engine/platform/android/game_menu_utils_jni.cpp @@ -34,13 +34,20 @@ #include "editor/editor_interface.h" #include "editor/editor_node.h" #include "editor/plugins/game_view_plugin.h" + +static GameViewPlugin *_get_game_view_plugin() { + ERR_FAIL_NULL_V(EditorNode::get_singleton(), nullptr); + ERR_FAIL_NULL_V(EditorNode::get_singleton()->get_editor_main_screen(), nullptr); + return Object::cast_to<GameViewPlugin>(EditorNode::get_singleton()->get_editor_main_screen()->get_plugin_by_name("Game")); +} + #endif extern "C" { JNIEXPORT void JNICALL Java_org_godotengine_godot_utils_GameMenuUtils_setSuspend(JNIEnv *env, jclass clazz, jboolean enabled) { #ifdef TOOLS_ENABLED - GameViewPlugin *game_view_plugin = Object::cast_to<GameViewPlugin>(EditorNode::get_singleton()->get_editor_main_screen()->get_plugin_by_name("Game")); + GameViewPlugin *game_view_plugin = _get_game_view_plugin(); if (game_view_plugin != nullptr && game_view_plugin->get_debugger().is_valid()) { game_view_plugin->get_debugger()->set_suspend(enabled); } @@ -49,7 +56,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_utils_GameMenuUtils_setSuspend JNIEXPORT void JNICALL Java_org_godotengine_godot_utils_GameMenuUtils_nextFrame(JNIEnv *env, jclass clazz) { #ifdef TOOLS_ENABLED - GameViewPlugin *game_view_plugin = Object::cast_to<GameViewPlugin>(EditorNode::get_singleton()->get_editor_main_screen()->get_plugin_by_name("Game")); + GameViewPlugin *game_view_plugin = _get_game_view_plugin(); if (game_view_plugin != nullptr && game_view_plugin->get_debugger().is_valid()) { game_view_plugin->get_debugger()->next_frame(); } @@ -58,7 +65,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_utils_GameMenuUtils_nextFrame( JNIEXPORT void JNICALL Java_org_godotengine_godot_utils_GameMenuUtils_setNodeType(JNIEnv *env, jclass clazz, jint type) { #ifdef TOOLS_ENABLED - GameViewPlugin *game_view_plugin = Object::cast_to<GameViewPlugin>(EditorNode::get_singleton()->get_editor_main_screen()->get_plugin_by_name("Game")); + GameViewPlugin *game_view_plugin = _get_game_view_plugin(); if (game_view_plugin != nullptr && game_view_plugin->get_debugger().is_valid()) { game_view_plugin->get_debugger()->set_node_type(type); } @@ -67,7 +74,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_utils_GameMenuUtils_setNodeTyp JNIEXPORT void JNICALL Java_org_godotengine_godot_utils_GameMenuUtils_setSelectMode(JNIEnv *env, jclass clazz, jint mode) { #ifdef TOOLS_ENABLED - GameViewPlugin *game_view_plugin = Object::cast_to<GameViewPlugin>(EditorNode::get_singleton()->get_editor_main_screen()->get_plugin_by_name("Game")); + GameViewPlugin *game_view_plugin = _get_game_view_plugin(); if (game_view_plugin != nullptr && game_view_plugin->get_debugger().is_valid()) { game_view_plugin->get_debugger()->set_select_mode(mode); } @@ -76,7 +83,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_utils_GameMenuUtils_setSelectM JNIEXPORT void JNICALL Java_org_godotengine_godot_utils_GameMenuUtils_setSelectionVisible(JNIEnv *env, jclass clazz, jboolean visible) { #ifdef TOOLS_ENABLED - GameViewPlugin *game_view_plugin = Object::cast_to<GameViewPlugin>(EditorNode::get_singleton()->get_editor_main_screen()->get_plugin_by_name("Game")); + GameViewPlugin *game_view_plugin = _get_game_view_plugin(); if (game_view_plugin != nullptr && game_view_plugin->get_debugger().is_valid()) { game_view_plugin->get_debugger()->set_selection_visible(visible); } @@ -85,7 +92,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_utils_GameMenuUtils_setSelecti JNIEXPORT void JNICALL Java_org_godotengine_godot_utils_GameMenuUtils_setCameraOverride(JNIEnv *env, jclass clazz, jboolean enabled) { #ifdef TOOLS_ENABLED - GameViewPlugin *game_view_plugin = Object::cast_to<GameViewPlugin>(EditorNode::get_singleton()->get_editor_main_screen()->get_plugin_by_name("Game")); + GameViewPlugin *game_view_plugin = _get_game_view_plugin(); if (game_view_plugin != nullptr && game_view_plugin->get_debugger().is_valid()) { game_view_plugin->get_debugger()->set_camera_override(enabled); } @@ -94,7 +101,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_utils_GameMenuUtils_setCameraO JNIEXPORT void JNICALL Java_org_godotengine_godot_utils_GameMenuUtils_setCameraManipulateMode(JNIEnv *env, jclass clazz, jint mode) { #ifdef TOOLS_ENABLED - GameViewPlugin *game_view_plugin = Object::cast_to<GameViewPlugin>(EditorNode::get_singleton()->get_editor_main_screen()->get_plugin_by_name("Game")); + GameViewPlugin *game_view_plugin = _get_game_view_plugin(); if (game_view_plugin != nullptr && game_view_plugin->get_debugger().is_valid()) { game_view_plugin->get_debugger()->set_camera_manipulate_mode(static_cast<EditorDebuggerNode::CameraOverride>(mode)); } @@ -103,7 +110,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_utils_GameMenuUtils_setCameraM JNIEXPORT void JNICALL Java_org_godotengine_godot_utils_GameMenuUtils_resetCamera2DPosition(JNIEnv *env, jclass clazz) { #ifdef TOOLS_ENABLED - GameViewPlugin *game_view_plugin = Object::cast_to<GameViewPlugin>(EditorNode::get_singleton()->get_editor_main_screen()->get_plugin_by_name("Game")); + GameViewPlugin *game_view_plugin = _get_game_view_plugin(); if (game_view_plugin != nullptr && game_view_plugin->get_debugger().is_valid()) { game_view_plugin->get_debugger()->reset_camera_2d_position(); } @@ -112,7 +119,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_utils_GameMenuUtils_resetCamer JNIEXPORT void JNICALL Java_org_godotengine_godot_utils_GameMenuUtils_resetCamera3DPosition(JNIEnv *env, jclass clazz) { #ifdef TOOLS_ENABLED - GameViewPlugin *game_view_plugin = Object::cast_to<GameViewPlugin>(EditorNode::get_singleton()->get_editor_main_screen()->get_plugin_by_name("Game")); + GameViewPlugin *game_view_plugin = _get_game_view_plugin(); if (game_view_plugin != nullptr && game_view_plugin->get_debugger().is_valid()) { game_view_plugin->get_debugger()->reset_camera_3d_position(); } @@ -121,7 +128,9 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_utils_GameMenuUtils_resetCamer JNIEXPORT void JNICALL Java_org_godotengine_godot_utils_GameMenuUtils_playMainScene(JNIEnv *env, jclass clazz) { #ifdef TOOLS_ENABLED - EditorInterface::get_singleton()->play_main_scene(); + if (EditorInterface::get_singleton()) { + EditorInterface::get_singleton()->play_main_scene(); + } #endif } } diff --git a/engine/platform/android/java/editor/src/main/res/values/themes.xml b/engine/platform/android/java/editor/src/main/res/values/themes.xml index ec0ad980..e14a4a4e 100644 --- a/engine/platform/android/java/editor/src/main/res/values/themes.xml +++ b/engine/platform/android/java/editor/src/main/res/values/themes.xml @@ -1,7 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> <resources> <style name="GodotEditorTheme" parent="@android:style/Theme.DeviceDefault.NoActionBar.Fullscreen"> - <item name ="android:windowDrawsSystemBarBackgrounds">false</item> + <item name="android:statusBarColor">@android:color/transparent</item> + <item name ="android:navigationBarColor">@android:color/transparent</item> </style> <style name="GodotEditorSplashScreenTheme" parent="Theme.SplashScreen.IconBackground"> diff --git a/engine/platform/android/java/lib/src/org/godotengine/godot/Godot.kt b/engine/platform/android/java/lib/src/org/godotengine/godot/Godot.kt index 32e5ad3f..550fbe94 100644 --- a/engine/platform/android/java/lib/src/org/godotengine/godot/Godot.kt +++ b/engine/platform/android/java/lib/src/org/godotengine/godot/Godot.kt @@ -664,6 +664,8 @@ class Godot(private val context: Context) { * Configuration change callback */ fun onConfigurationChanged(newConfig: Configuration) { + renderView?.inputHandler?.onConfigurationChanged(newConfig) + val newDarkMode = newConfig.uiMode.and(Configuration.UI_MODE_NIGHT_MASK) == Configuration.UI_MODE_NIGHT_YES if (darkMode != newDarkMode) { darkMode = newDarkMode @@ -823,10 +825,11 @@ class Godot(private val context: Context) { * Returns true if `Vulkan` is used for rendering. */ private fun usesVulkan(): Boolean { - var rendererSource = "ProjectSettings" - var renderer = GodotLib.getGlobal("rendering/renderer/rendering_method") + val rendererInfo = GodotLib.getRendererInfo() var renderingDeviceSource = "ProjectSettings" - var renderingDevice = GodotLib.getGlobal("rendering/rendering_device/driver") + var renderingDevice = rendererInfo[0] + var rendererSource = "ProjectSettings" + var renderer = rendererInfo[1] val cmdline = getCommandLine() var index = cmdline.indexOf("--rendering-method") if (index > -1 && cmdline.size > index + 1) { diff --git a/engine/platform/android/java/lib/src/org/godotengine/godot/GodotLib.java b/engine/platform/android/java/lib/src/org/godotengine/godot/GodotLib.java index 9bccf762..d70915a9 100644 --- a/engine/platform/android/java/lib/src/org/godotengine/godot/GodotLib.java +++ b/engine/platform/android/java/lib/src/org/godotengine/godot/GodotLib.java @@ -189,6 +189,15 @@ public class GodotLib { */ public static native String getGlobal(String p_key); + /** + * Used to get info about the current rendering system. + * + * @return A String array with two elements: + * [0] Rendering driver name. + * [1] Rendering method. + */ + public static native String[] getRendererInfo(); + /** * Used to access Godot's editor settings. * @param settingKey Setting key diff --git a/engine/platform/android/java/lib/src/org/godotengine/godot/input/GodotInputHandler.java b/engine/platform/android/java/lib/src/org/godotengine/godot/input/GodotInputHandler.java index 36bee6ef..6f036c15 100644 --- a/engine/platform/android/java/lib/src/org/godotengine/godot/input/GodotInputHandler.java +++ b/engine/platform/android/java/lib/src/org/godotengine/godot/input/GodotInputHandler.java @@ -37,6 +37,7 @@ import org.godotengine.godot.GodotLib; import org.godotengine.godot.GodotRenderView; import android.content.Context; +import android.content.res.Configuration; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; @@ -86,6 +87,8 @@ public class GodotInputHandler implements InputManager.InputDeviceListener, Sens private int rotaryInputAxis = ROTARY_INPUT_VERTICAL_AXIS; + private int cachedRotation = -1; + public GodotInputHandler(Context context, Godot godot) { this.godot = godot; mInputManager = (InputManager)context.getSystemService(Context.INPUT_SERVICE); @@ -741,10 +744,14 @@ public class GodotInputHandler implements InputManager.InputDeviceListener, Sens return; } + if (cachedRotation == -1) { + updateCachedRotation(); + } + float rotatedValue0 = 0f; float rotatedValue1 = 0f; float rotatedValue2 = 0f; - switch (windowManager.getDefaultDisplay().getRotation()) { + switch (cachedRotation) { case Surface.ROTATION_0: rotatedValue0 = values[0]; rotatedValue1 = values[1]; @@ -776,4 +783,12 @@ public class GodotInputHandler implements InputManager.InputDeviceListener, Sens @Override public void onAccuracyChanged(Sensor sensor, int accuracy) {} + + private void updateCachedRotation() { + cachedRotation = windowManager.getDefaultDisplay().getRotation(); + } + + public void onConfigurationChanged(Configuration newConfig) { + updateCachedRotation(); + } } diff --git a/engine/platform/android/java_godot_lib_jni.cpp b/engine/platform/android/java_godot_lib_jni.cpp index b56a9dbd..054c809c 100644 --- a/engine/platform/android/java_godot_lib_jni.cpp +++ b/engine/platform/android/java_godot_lib_jni.cpp @@ -474,6 +474,17 @@ JNIEXPORT jstring JNICALL Java_org_godotengine_godot_GodotLib_getGlobal(JNIEnv * return env->NewStringUTF(setting_value.utf8().get_data()); } +JNIEXPORT jobjectArray JNICALL Java_org_godotengine_godot_GodotLib_getRendererInfo(JNIEnv *env, jclass clazz) { + String rendering_driver = RenderingServer::get_singleton()->get_current_rendering_driver_name(); + String rendering_method = RenderingServer::get_singleton()->get_current_rendering_method(); + + jobjectArray result = env->NewObjectArray(2, env->FindClass("java/lang/String"), nullptr); + env->SetObjectArrayElement(result, 0, env->NewStringUTF(rendering_driver.utf8().get_data())); + env->SetObjectArrayElement(result, 1, env->NewStringUTF(rendering_method.utf8().get_data())); + + return result; +} + JNIEXPORT jstring JNICALL Java_org_godotengine_godot_GodotLib_getEditorSetting(JNIEnv *env, jclass clazz, jstring p_setting_key) { String editor_setting_value = ""; #ifdef TOOLS_ENABLED diff --git a/engine/platform/android/java_godot_lib_jni.h b/engine/platform/android/java_godot_lib_jni.h index c5d68b1a..22fd9ae5 100644 --- a/engine/platform/android/java_godot_lib_jni.h +++ b/engine/platform/android/java_godot_lib_jni.h @@ -61,6 +61,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_gyroscope(JNIEnv *env JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_focusin(JNIEnv *env, jclass clazz); JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_focusout(JNIEnv *env, jclass clazz); JNIEXPORT jstring JNICALL Java_org_godotengine_godot_GodotLib_getGlobal(JNIEnv *env, jclass clazz, jstring path); +JNIEXPORT jobjectArray JNICALL Java_org_godotengine_godot_GodotLib_getRendererInfo(JNIEnv *env, jclass clazz); JNIEXPORT jstring JNICALL Java_org_godotengine_godot_GodotLib_getEditorSetting(JNIEnv *env, jclass clazz, jstring p_setting_key); JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_setEditorSetting(JNIEnv *env, jclass clazz, jstring p_key, jobject p_data); JNIEXPORT jobject JNICALL Java_org_godotengine_godot_GodotLib_getEditorProjectMetadata(JNIEnv *env, jclass clazz, jstring p_section, jstring p_key, jobject p_default_value); diff --git a/engine/platform/ios/export/export_plugin.cpp b/engine/platform/ios/export/export_plugin.cpp index f253e11e..84bf722d 100644 --- a/engine/platform/ios/export/export_plugin.cpp +++ b/engine/platform/ios/export/export_plugin.cpp @@ -2540,7 +2540,9 @@ bool EditorExportPlatformIOS::has_valid_export_configuration(const Ref<EditorExp } } - if (GLOBAL_GET("rendering/rendering_device/driver.ios") == "metal") { + String rendering_method = GLOBAL_GET("rendering/renderer/rendering_method.mobile"); + String rendering_driver = GLOBAL_GET("rendering/rendering_device/driver.ios"); + if ((rendering_method == "forward_plus" || rendering_method == "mobile") && rendering_driver == "metal") { float version = p_preset->get("application/min_ios_version").operator String().to_float(); if (version < 14.0) { err += TTR("Metal renderer require iOS 14+.") + "\n"; diff --git a/engine/platform/linuxbsd/crash_handler_linuxbsd.cpp b/engine/platform/linuxbsd/crash_handler_linuxbsd.cpp index 446fe5c7..a56a6876 100644 --- a/engine/platform/linuxbsd/crash_handler_linuxbsd.cpp +++ b/engine/platform/linuxbsd/crash_handler_linuxbsd.cpp @@ -57,6 +57,10 @@ static void handle_crash(int sig) { abort(); } + if (OS::get_singleton()->is_crash_handler_silent()) { + std::_Exit(0); + } + void *bt_buffer[256]; size_t size = backtrace(bt_buffer, 256); String _execpath = OS::get_singleton()->get_executable_path(); diff --git a/engine/platform/linuxbsd/x11/display_server_x11.cpp b/engine/platform/linuxbsd/x11/display_server_x11.cpp index a186c83e..26c94bf2 100644 --- a/engine/platform/linuxbsd/x11/display_server_x11.cpp +++ b/engine/platform/linuxbsd/x11/display_server_x11.cpp @@ -2171,7 +2171,10 @@ void DisplayServerX11::window_set_current_screen(int p_screen, WindowID p_window return; } - ERR_FAIL_COND_MSG(wd.embed_parent, "Embedded window can't be moved to another screen."); + if (wd.embed_parent) { + print_line("Embedded window can't be moved to another screen."); + return; + } if (window_get_mode(p_window) == WINDOW_MODE_FULLSCREEN || window_get_mode(p_window) == WINDOW_MODE_MAXIMIZED) { Point2i position = screen_get_position(p_screen); @@ -2330,7 +2333,10 @@ void DisplayServerX11::window_set_position(const Point2i &p_position, WindowID p ERR_FAIL_COND(!windows.has(p_window)); WindowData &wd = windows[p_window]; - ERR_FAIL_COND_MSG(wd.embed_parent, "Embedded window can't be moved."); + if (wd.embed_parent) { + print_line("Embedded window can't be moved."); + return; + } int x = 0; int y = 0; @@ -2364,7 +2370,10 @@ void DisplayServerX11::window_set_max_size(const Size2i p_size, WindowID p_windo ERR_FAIL_COND(!windows.has(p_window)); WindowData &wd = windows[p_window]; - ERR_FAIL_COND_MSG(wd.embed_parent, "Embedded windows can't have a maximum size."); + if (wd.embed_parent) { + print_line("Embedded windows can't have a maximum size."); + return; + } if ((p_size != Size2i()) && ((p_size.x < wd.min_size.x) || (p_size.y < wd.min_size.y))) { ERR_PRINT("Maximum window size can't be smaller than minimum window size!"); @@ -2391,7 +2400,10 @@ void DisplayServerX11::window_set_min_size(const Size2i p_size, WindowID p_windo ERR_FAIL_COND(!windows.has(p_window)); WindowData &wd = windows[p_window]; - ERR_FAIL_COND_MSG(wd.embed_parent, "Embedded windows can't have a minimum size."); + if (wd.embed_parent) { + print_line("Embedded windows can't have a minimum size."); + return; + } if ((p_size != Size2i()) && (wd.max_size != Size2i()) && ((p_size.x > wd.max_size.x) || (p_size.y > wd.max_size.y))) { ERR_PRINT("Minimum window size can't be larger than maximum window size!"); @@ -2422,7 +2434,10 @@ void DisplayServerX11::window_set_size(const Size2i p_size, WindowID p_window) { WindowData &wd = windows[p_window]; - ERR_FAIL_COND_MSG(wd.embed_parent, "Embedded window can't be resized."); + if (wd.embed_parent) { + print_line("Embedded window can't be resized."); + return; + } if (wd.size.width == size.width && wd.size.height == size.height) { return; @@ -2842,7 +2857,10 @@ void DisplayServerX11::window_set_mode(WindowMode p_mode, WindowID p_window) { return; // do nothing } - ERR_FAIL_COND_MSG(p_mode != WINDOW_MODE_WINDOWED && wd.embed_parent, "Embedded window only supports Windowed mode."); + if (p_mode != WINDOW_MODE_WINDOWED && wd.embed_parent) { + print_line("Embedded window only supports Windowed mode."); + return; + } // Remove all "extra" modes. switch (old_mode) { @@ -2944,7 +2962,10 @@ void DisplayServerX11::window_set_flag(WindowFlags p_flag, bool p_enabled, Windo switch (p_flag) { case WINDOW_FLAG_RESIZE_DISABLED: { - ERR_FAIL_COND_MSG(p_enabled && wd.embed_parent, "Embedded window resize can't be disabled."); + if (p_enabled && wd.embed_parent) { + print_line("Embedded window resize can't be disabled."); + return; + } wd.resize_disabled = p_enabled; _update_size_hints(p_window); @@ -2971,7 +2992,10 @@ void DisplayServerX11::window_set_flag(WindowFlags p_flag, bool p_enabled, Windo } break; case WINDOW_FLAG_ALWAYS_ON_TOP: { ERR_FAIL_COND_MSG(wd.transient_parent != INVALID_WINDOW_ID, "Can't make a window transient if the 'on top' flag is active."); - ERR_FAIL_COND_MSG(p_enabled && wd.embed_parent, "Embedded window can't become on top."); + if (p_enabled && wd.embed_parent) { + print_line("Embedded window can't become on top."); + return; + } if (p_enabled && wd.fullscreen) { _set_wm_maximized(p_window, true); } @@ -3013,7 +3037,10 @@ void DisplayServerX11::window_set_flag(WindowFlags p_flag, bool p_enabled, Windo ERR_FAIL_COND_MSG(p_window == MAIN_WINDOW_ID, "Main window can't be popup."); ERR_FAIL_COND_MSG((xwa.map_state == IsViewable) && (wd.is_popup != p_enabled), "Popup flag can't changed while window is opened."); - ERR_FAIL_COND_MSG(p_enabled && wd.embed_parent, "Embedded window can't be popup."); + if (p_enabled && wd.embed_parent) { + print_line("Embedded window can't be popup."); + return; + } wd.is_popup = p_enabled; } break; default: { diff --git a/engine/platform/macos/crash_handler_macos.mm b/engine/platform/macos/crash_handler_macos.mm index bc83c077..49dc863a 100644 --- a/engine/platform/macos/crash_handler_macos.mm +++ b/engine/platform/macos/crash_handler_macos.mm @@ -81,6 +81,10 @@ static void handle_crash(int sig) { abort(); } + if (OS::get_singleton()->is_crash_handler_silent()) { + std::_Exit(0); + } + void *bt_buffer[256]; size_t size = backtrace(bt_buffer, 256); String _execpath = OS::get_singleton()->get_executable_path(); diff --git a/engine/platform/macos/display_server_macos.mm b/engine/platform/macos/display_server_macos.mm index 346faef8..556c4c96 100644 --- a/engine/platform/macos/display_server_macos.mm +++ b/engine/platform/macos/display_server_macos.mm @@ -3791,8 +3791,11 @@ DisplayServerMacOS::DisplayServerMacOS(const String &p_rendering_driver, WindowM #if defined(VULKAN_ENABLED) #if defined(__x86_64__) bool fallback_to_vulkan = GLOBAL_GET("rendering/rendering_device/fallback_to_vulkan"); + if (!fallback_to_vulkan) { + WARN_PRINT("Metal is not supported on Intel Macs, switching to Vulkan."); + } // Metal rendering driver not available on Intel. - if (fallback_to_vulkan && rendering_driver == "metal") { + if (rendering_driver == "metal") { rendering_driver = "vulkan"; OS::get_singleton()->set_current_rendering_driver_name(rendering_driver); } diff --git a/engine/platform/windows/crash_handler_windows_seh.cpp b/engine/platform/windows/crash_handler_windows_seh.cpp index a6015092..b760440a 100644 --- a/engine/platform/windows/crash_handler_windows_seh.cpp +++ b/engine/platform/windows/crash_handler_windows_seh.cpp @@ -41,6 +41,7 @@ // Backtrace code based on: https://stackoverflow.com/questions/6205981/windows-c-stack-trace-from-a-running-app #include <algorithm> +#include <cstdlib> #include <iterator> #include <string> #include <vector> @@ -127,6 +128,10 @@ DWORD CrashHandlerException(EXCEPTION_POINTERS *ep) { return EXCEPTION_CONTINUE_SEARCH; } + if (OS::get_singleton()->is_crash_handler_silent()) { + std::_Exit(0); + } + String msg; const ProjectSettings *proj_settings = ProjectSettings::get_singleton(); if (proj_settings) { diff --git a/engine/platform/windows/crash_handler_windows_signal.cpp b/engine/platform/windows/crash_handler_windows_signal.cpp index ebc89a81..e26cd780 100644 --- a/engine/platform/windows/crash_handler_windows_signal.cpp +++ b/engine/platform/windows/crash_handler_windows_signal.cpp @@ -41,6 +41,7 @@ #include <cxxabi.h> #include <signal.h> #include <algorithm> +#include <cstdlib> #include <iterator> #include <string> #include <vector> @@ -133,6 +134,10 @@ extern void CrashHandlerException(int signal) { return; } + if (OS::get_singleton()->is_crash_handler_silent()) { + std::_Exit(0); + } + String msg; const ProjectSettings *proj_settings = ProjectSettings::get_singleton(); if (proj_settings) { diff --git a/engine/platform/windows/detect.py b/engine/platform/windows/detect.py index 6f57b880..bbdcb9e7 100644 --- a/engine/platform/windows/detect.py +++ b/engine/platform/windows/detect.py @@ -732,7 +732,7 @@ def configure_mingw(env: "SConsEnvironment"): if env["use_static_cpp"]: env.Append(LINKFLAGS=["-static"]) - if env["arch"] in ["x86_32", "x86_64"]: + if env["arch"] == "x86_32": env["x86_libtheora_opt_gcc"] = True env.Append(CCFLAGS=["-ffp-contract=off"]) diff --git a/engine/platform/windows/display_server_windows.cpp b/engine/platform/windows/display_server_windows.cpp index fff237f1..20b9236e 100644 --- a/engine/platform/windows/display_server_windows.cpp +++ b/engine/platform/windows/display_server_windows.cpp @@ -83,11 +83,6 @@ #define WM_INDICATOR_CALLBACK_MESSAGE (WM_USER + 1) -#if defined(__GNUC__) -// Workaround GCC warning from -Wcast-function-type. -#define GetProcAddress (void *)GetProcAddress -#endif - static String format_error_message(DWORD id) { LPWSTR messageBuffer = nullptr; size_t size = FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, @@ -1294,7 +1289,7 @@ static int QueryDpiForMonitor(HMONITOR hmon, _MonitorDpiType dpiType = MDT_Defau if (Shcore == nullptr) { Shcore = LoadLibraryW(L"Shcore.dll"); - getDPIForMonitor = Shcore ? (GetDPIForMonitor_t)GetProcAddress(Shcore, "GetDpiForMonitor") : nullptr; + getDPIForMonitor = Shcore ? (GetDPIForMonitor_t)(void *)GetProcAddress(Shcore, "GetDpiForMonitor") : nullptr; if ((Shcore == nullptr) || (getDPIForMonitor == nullptr)) { if (Shcore) { @@ -1974,7 +1969,10 @@ void DisplayServerWindows::window_set_current_screen(int p_screen, WindowID p_wi return; } const WindowData &wd = windows[p_window]; - ERR_FAIL_COND_MSG(wd.parent_hwnd, "Embedded window can't be moved to another screen."); + if (wd.parent_hwnd) { + print_line("Embedded window can't be moved to another screen."); + return; + } if (wd.fullscreen) { Point2 pos = screen_get_position(p_screen) + _get_screens_origin(); Size2 size = screen_get_size(p_screen); @@ -2055,7 +2053,10 @@ void DisplayServerWindows::window_set_position(const Point2i &p_position, Window ERR_FAIL_COND(!windows.has(p_window)); WindowData &wd = windows[p_window]; - ERR_FAIL_COND_MSG(wd.parent_hwnd, "Embedded window can't be moved."); + if (wd.parent_hwnd) { + print_line("Embedded window can't be moved."); + return; + } if (wd.fullscreen || wd.maximized) { return; @@ -2141,7 +2142,10 @@ void DisplayServerWindows::window_set_max_size(const Size2i p_size, WindowID p_w ERR_FAIL_COND(!windows.has(p_window)); WindowData &wd = windows[p_window]; - ERR_FAIL_COND_MSG(wd.parent_hwnd, "Embedded windows can't have a maximum size."); + if (wd.parent_hwnd) { + print_line("Embedded windows can't have a maximum size."); + return; + } if ((p_size != Size2()) && ((p_size.x < wd.min_size.x) || (p_size.y < wd.min_size.y))) { ERR_PRINT("Maximum window size can't be smaller than minimum window size!"); @@ -2164,7 +2168,10 @@ void DisplayServerWindows::window_set_min_size(const Size2i p_size, WindowID p_w ERR_FAIL_COND(!windows.has(p_window)); WindowData &wd = windows[p_window]; - ERR_FAIL_COND_MSG(wd.parent_hwnd, "Embedded windows can't have a minimum size."); + if (wd.parent_hwnd) { + print_line("Embedded windows can't have a minimum size."); + return; + } if ((p_size != Size2()) && (wd.max_size != Size2()) && ((p_size.x > wd.max_size.x) || (p_size.y > wd.max_size.y))) { ERR_PRINT("Minimum window size can't be larger than maximum window size!"); @@ -2187,7 +2194,10 @@ void DisplayServerWindows::window_set_size(const Size2i p_size, WindowID p_windo ERR_FAIL_COND(!windows.has(p_window)); WindowData &wd = windows[p_window]; - ERR_FAIL_COND_MSG(wd.parent_hwnd, "Embedded window can't be resized."); + if (wd.parent_hwnd) { + print_line("Embedded window can't be resized."); + return; + } if (wd.fullscreen || wd.maximized) { return; @@ -2345,7 +2355,10 @@ void DisplayServerWindows::window_set_mode(WindowMode p_mode, WindowID p_window) ERR_FAIL_COND(!windows.has(p_window)); WindowData &wd = windows[p_window]; - ERR_FAIL_COND_MSG(p_mode != WINDOW_MODE_WINDOWED && wd.parent_hwnd, "Embedded window only supports Windowed mode."); + if (p_mode != WINDOW_MODE_WINDOWED && wd.parent_hwnd) { + print_line("Embedded window only supports Windowed mode."); + return; + } bool was_fullscreen = wd.fullscreen; wd.was_fullscreen_pre_min = false; @@ -2480,7 +2493,10 @@ void DisplayServerWindows::window_set_flag(WindowFlags p_flag, bool p_enabled, W WindowData &wd = windows[p_window]; switch (p_flag) { case WINDOW_FLAG_RESIZE_DISABLED: { - ERR_FAIL_COND_MSG(p_enabled && wd.parent_hwnd, "Embedded window resize can't be disabled."); + if (p_enabled && wd.parent_hwnd) { + print_line("Embedded window resize can't be disabled."); + return; + } wd.resizable = !p_enabled; _update_window_style(p_window); } break; @@ -2492,7 +2508,10 @@ void DisplayServerWindows::window_set_flag(WindowFlags p_flag, bool p_enabled, W } break; case WINDOW_FLAG_ALWAYS_ON_TOP: { ERR_FAIL_COND_MSG(wd.transient_parent != INVALID_WINDOW_ID && p_enabled, "Transient windows can't become on top."); - ERR_FAIL_COND_MSG(p_enabled && wd.parent_hwnd, "Embedded window can't become on top."); + if (p_enabled && wd.parent_hwnd) { + print_line("Embedded window can't become on top."); + return; + } wd.always_on_top = p_enabled; _update_window_style(p_window); } break; @@ -2552,7 +2571,10 @@ void DisplayServerWindows::window_set_flag(WindowFlags p_flag, bool p_enabled, W case WINDOW_FLAG_POPUP: { ERR_FAIL_COND_MSG(p_window == MAIN_WINDOW_ID, "Main window can't be popup."); ERR_FAIL_COND_MSG(IsWindowVisible(wd.hWnd) && (wd.is_popup != p_enabled), "Popup flag can't changed while window is opened."); - ERR_FAIL_COND_MSG(p_enabled && wd.parent_hwnd, "Embedded window can't be popup."); + if (p_enabled && wd.parent_hwnd) { + print_line("Embedded window can't be popup."); + return; + } wd.is_popup = p_enabled; } break; default: @@ -3000,6 +3022,7 @@ Error DisplayServerWindows::embed_process(WindowID p_window, OS::ProcessID p_pid } if (p_grab_focus) { + SetForegroundWindow(ep->window_handle); SetFocus(ep->window_handle); } @@ -3136,7 +3159,7 @@ Error DisplayServerWindows::dialog_show(String p_title, String p_description, Ve if (comctl) { typedef HRESULT(WINAPI * TaskDialogIndirectPtr)(const TASKDIALOGCONFIG *pTaskConfig, int *pnButton, int *pnRadioButton, BOOL *pfVerificationFlagChecked); - TaskDialogIndirectPtr task_dialog_indirect = (TaskDialogIndirectPtr)GetProcAddress(comctl, "TaskDialogIndirect"); + TaskDialogIndirectPtr task_dialog_indirect = (TaskDialogIndirectPtr)(void *)GetProcAddress(comctl, "TaskDialogIndirect"); int button_pressed; if (task_dialog_indirect && SUCCEEDED(task_dialog_indirect(&config, &button_pressed, nullptr, nullptr))) { @@ -6591,9 +6614,9 @@ DisplayServerWindows::DisplayServerWindows(const String &p_rendering_driver, Win HMODULE nt_lib = LoadLibraryW(L"ntdll.dll"); if (nt_lib) { - WineGetVersionPtr wine_get_version = (WineGetVersionPtr)GetProcAddress(nt_lib, "wine_get_version"); // Do not read Windows build number under Wine, it can be set to arbitrary value. + WineGetVersionPtr wine_get_version = (WineGetVersionPtr)(void *)GetProcAddress(nt_lib, "wine_get_version"); // Do not read Windows build number under Wine, it can be set to arbitrary value. if (!wine_get_version) { - RtlGetVersionPtr RtlGetVersion = (RtlGetVersionPtr)GetProcAddress(nt_lib, "RtlGetVersion"); + RtlGetVersionPtr RtlGetVersion = (RtlGetVersionPtr)(void *)GetProcAddress(nt_lib, "RtlGetVersion"); if (RtlGetVersion) { RtlGetVersion(&os_ver); } @@ -6604,28 +6627,28 @@ DisplayServerWindows::DisplayServerWindows(const String &p_rendering_driver, Win // Load Shell API. HMODULE shellapi_lib = LoadLibraryW(L"shlwapi.dll"); if (shellapi_lib) { - load_indirect_string = (SHLoadIndirectStringPtr)GetProcAddress(shellapi_lib, "SHLoadIndirectString"); + load_indirect_string = (SHLoadIndirectStringPtr)(void *)GetProcAddress(shellapi_lib, "SHLoadIndirectString"); } // Load UXTheme, available on Windows 10+ only. if (os_ver.dwBuildNumber >= 10240) { HMODULE ux_theme_lib = LoadLibraryW(L"uxtheme.dll"); if (ux_theme_lib) { - ShouldAppsUseDarkMode = (ShouldAppsUseDarkModePtr)GetProcAddress(ux_theme_lib, MAKEINTRESOURCEA(132)); - GetImmersiveColorFromColorSetEx = (GetImmersiveColorFromColorSetExPtr)GetProcAddress(ux_theme_lib, MAKEINTRESOURCEA(95)); - GetImmersiveColorTypeFromName = (GetImmersiveColorTypeFromNamePtr)GetProcAddress(ux_theme_lib, MAKEINTRESOURCEA(96)); - GetImmersiveUserColorSetPreference = (GetImmersiveUserColorSetPreferencePtr)GetProcAddress(ux_theme_lib, MAKEINTRESOURCEA(98)); + ShouldAppsUseDarkMode = (ShouldAppsUseDarkModePtr)(void *)GetProcAddress(ux_theme_lib, MAKEINTRESOURCEA(132)); + GetImmersiveColorFromColorSetEx = (GetImmersiveColorFromColorSetExPtr)(void *)GetProcAddress(ux_theme_lib, MAKEINTRESOURCEA(95)); + GetImmersiveColorTypeFromName = (GetImmersiveColorTypeFromNamePtr)(void *)GetProcAddress(ux_theme_lib, MAKEINTRESOURCEA(96)); + GetImmersiveUserColorSetPreference = (GetImmersiveUserColorSetPreferencePtr)(void *)GetProcAddress(ux_theme_lib, MAKEINTRESOURCEA(98)); if (os_ver.dwBuildNumber >= 17763) { // Windows 10 Redstone 5 (1809)+ only. AllowDarkModeForAppPtr AllowDarkModeForApp = nullptr; SetPreferredAppModePtr SetPreferredAppMode = nullptr; FlushMenuThemesPtr FlushMenuThemes = nullptr; if (os_ver.dwBuildNumber < 18362) { // Windows 10 Redstone 5 (1809) and 19H1 (1903) only. - AllowDarkModeForApp = (AllowDarkModeForAppPtr)GetProcAddress(ux_theme_lib, MAKEINTRESOURCEA(135)); + AllowDarkModeForApp = (AllowDarkModeForAppPtr)(void *)GetProcAddress(ux_theme_lib, MAKEINTRESOURCEA(135)); } else { // Windows 10 19H2 (1909)+ only. - SetPreferredAppMode = (SetPreferredAppModePtr)GetProcAddress(ux_theme_lib, MAKEINTRESOURCEA(135)); - FlushMenuThemes = (FlushMenuThemesPtr)GetProcAddress(ux_theme_lib, MAKEINTRESOURCEA(136)); + SetPreferredAppMode = (SetPreferredAppModePtr)(void *)GetProcAddress(ux_theme_lib, MAKEINTRESOURCEA(135)); + FlushMenuThemes = (FlushMenuThemesPtr)(void *)GetProcAddress(ux_theme_lib, MAKEINTRESOURCEA(136)); } - RefreshImmersiveColorPolicyStatePtr RefreshImmersiveColorPolicyState = (RefreshImmersiveColorPolicyStatePtr)GetProcAddress(ux_theme_lib, MAKEINTRESOURCEA(104)); + RefreshImmersiveColorPolicyStatePtr RefreshImmersiveColorPolicyState = (RefreshImmersiveColorPolicyStatePtr)(void *)GetProcAddress(ux_theme_lib, MAKEINTRESOURCEA(104)); if (ShouldAppsUseDarkMode) { bool dark_mode = ShouldAppsUseDarkMode(); if (SetPreferredAppMode) { @@ -6658,10 +6681,10 @@ DisplayServerWindows::DisplayServerWindows(const String &p_rendering_driver, Win // Note: DPI conversion API, available on Windows 8.1+ only. HMODULE user32_lib = LoadLibraryW(L"user32.dll"); if (user32_lib) { - win8p_GetPointerType = (GetPointerTypePtr)GetProcAddress(user32_lib, "GetPointerType"); - win8p_GetPointerPenInfo = (GetPointerPenInfoPtr)GetProcAddress(user32_lib, "GetPointerPenInfo"); - win81p_LogicalToPhysicalPointForPerMonitorDPI = (LogicalToPhysicalPointForPerMonitorDPIPtr)GetProcAddress(user32_lib, "LogicalToPhysicalPointForPerMonitorDPI"); - win81p_PhysicalToLogicalPointForPerMonitorDPI = (PhysicalToLogicalPointForPerMonitorDPIPtr)GetProcAddress(user32_lib, "PhysicalToLogicalPointForPerMonitorDPI"); + win8p_GetPointerType = (GetPointerTypePtr)(void *)GetProcAddress(user32_lib, "GetPointerType"); + win8p_GetPointerPenInfo = (GetPointerPenInfoPtr)(void *)GetProcAddress(user32_lib, "GetPointerPenInfo"); + win81p_LogicalToPhysicalPointForPerMonitorDPI = (LogicalToPhysicalPointForPerMonitorDPIPtr)(void *)GetProcAddress(user32_lib, "LogicalToPhysicalPointForPerMonitorDPI"); + win81p_PhysicalToLogicalPointForPerMonitorDPI = (PhysicalToLogicalPointForPerMonitorDPIPtr)(void *)GetProcAddress(user32_lib, "PhysicalToLogicalPointForPerMonitorDPI"); winink_available = win8p_GetPointerType && win8p_GetPointerPenInfo; } @@ -6673,11 +6696,11 @@ DisplayServerWindows::DisplayServerWindows(const String &p_rendering_driver, Win // Note: Wacom WinTab driver API for pen input, for devices incompatible with Windows Ink. HMODULE wintab_lib = LoadLibraryW(L"wintab32.dll"); if (wintab_lib) { - wintab_WTOpen = (WTOpenPtr)GetProcAddress(wintab_lib, "WTOpenW"); - wintab_WTClose = (WTClosePtr)GetProcAddress(wintab_lib, "WTClose"); - wintab_WTInfo = (WTInfoPtr)GetProcAddress(wintab_lib, "WTInfoW"); - wintab_WTPacket = (WTPacketPtr)GetProcAddress(wintab_lib, "WTPacket"); - wintab_WTEnable = (WTEnablePtr)GetProcAddress(wintab_lib, "WTEnable"); + wintab_WTOpen = (WTOpenPtr)(void *)GetProcAddress(wintab_lib, "WTOpenW"); + wintab_WTClose = (WTClosePtr)(void *)GetProcAddress(wintab_lib, "WTClose"); + wintab_WTInfo = (WTInfoPtr)(void *)GetProcAddress(wintab_lib, "WTInfoW"); + wintab_WTPacket = (WTPacketPtr)(void *)GetProcAddress(wintab_lib, "WTPacket"); + wintab_WTEnable = (WTEnablePtr)(void *)GetProcAddress(wintab_lib, "WTEnable"); wintab_available = wintab_WTOpen && wintab_WTClose && wintab_WTInfo && wintab_WTPacket && wintab_WTEnable; } @@ -6715,7 +6738,7 @@ DisplayServerWindows::DisplayServerWindows(const String &p_rendering_driver, Win if (Shcore != nullptr) { typedef HRESULT(WINAPI * SetProcessDpiAwareness_t)(SHC_PROCESS_DPI_AWARENESS); - SetProcessDpiAwareness_t SetProcessDpiAwareness = (SetProcessDpiAwareness_t)GetProcAddress(Shcore, "SetProcessDpiAwareness"); + SetProcessDpiAwareness_t SetProcessDpiAwareness = (SetProcessDpiAwareness_t)(void *)GetProcAddress(Shcore, "SetProcessDpiAwareness"); if (SetProcessDpiAwareness) { SetProcessDpiAwareness(SHC_PROCESS_SYSTEM_DPI_AWARE); @@ -6726,7 +6749,7 @@ DisplayServerWindows::DisplayServerWindows(const String &p_rendering_driver, Win HMODULE comctl32 = LoadLibraryW(L"comctl32.dll"); if (comctl32) { typedef BOOL(WINAPI * InitCommonControlsExPtr)(_In_ const INITCOMMONCONTROLSEX *picce); - InitCommonControlsExPtr init_common_controls_ex = (InitCommonControlsExPtr)GetProcAddress(comctl32, "InitCommonControlsEx"); + InitCommonControlsExPtr init_common_controls_ex = (InitCommonControlsExPtr)(void *)GetProcAddress(comctl32, "InitCommonControlsEx"); // Fails if the incorrect version was loaded. Probably not a big enough deal to print an error about. if (init_common_controls_ex) { @@ -6763,24 +6786,30 @@ DisplayServerWindows::DisplayServerWindows(const String &p_rendering_driver, Win _register_raw_input_devices(INVALID_WINDOW_ID); #if defined(RD_ENABLED) + [[maybe_unused]] bool fallback_to_vulkan = GLOBAL_GET("rendering/rendering_device/fallback_to_vulkan"); + [[maybe_unused]] bool fallback_to_d3d12 = GLOBAL_GET("rendering/rendering_device/fallback_to_d3d12"); + #if defined(VULKAN_ENABLED) if (rendering_driver == "vulkan") { rendering_context = memnew(RenderingContextDriverVulkanWindows); tested_drivers.set_flag(DRIVER_ID_RD_VULKAN); } +#else + fallback_to_d3d12 = true; // Always enable fallback if engine was built w/o other driver support. #endif #if defined(D3D12_ENABLED) if (rendering_driver == "d3d12") { rendering_context = memnew(RenderingContextDriverD3D12); tested_drivers.set_flag(DRIVER_ID_RD_D3D12); } +#else + fallback_to_vulkan = true; // Always enable fallback if engine was built w/o other driver support. #endif if (rendering_context) { if (rendering_context->initialize() != OK) { bool failed = true; #if defined(VULKAN_ENABLED) - bool fallback_to_vulkan = GLOBAL_GET("rendering/rendering_device/fallback_to_vulkan"); if (failed && fallback_to_vulkan && rendering_driver != "vulkan") { memdelete(rendering_context); rendering_context = memnew(RenderingContextDriverVulkanWindows); @@ -6794,7 +6823,6 @@ DisplayServerWindows::DisplayServerWindows(const String &p_rendering_driver, Win } #endif #if defined(D3D12_ENABLED) - bool fallback_to_d3d12 = GLOBAL_GET("rendering/rendering_device/fallback_to_d3d12"); if (failed && fallback_to_d3d12 && rendering_driver != "d3d12") { memdelete(rendering_context); rendering_context = memnew(RenderingContextDriverD3D12); @@ -6843,7 +6871,7 @@ DisplayServerWindows::DisplayServerWindows(const String &p_rendering_driver, Win #else typedef BOOL(WINAPI * IsWow64Process2Ptr)(HANDLE, USHORT *, USHORT *); - IsWow64Process2Ptr IsWow64Process2 = (IsWow64Process2Ptr)GetProcAddress(GetModuleHandle(TEXT("kernel32")), "IsWow64Process2"); + IsWow64Process2Ptr IsWow64Process2 = (IsWow64Process2Ptr)(void *)GetProcAddress(GetModuleHandle(TEXT("kernel32")), "IsWow64Process2"); if (IsWow64Process2) { USHORT process_arch = 0; USHORT machine_arch = 0; diff --git a/engine/platform/windows/gl_manager_windows_native.cpp b/engine/platform/windows/gl_manager_windows_native.cpp index 7d2af4f9..2a66ce00 100644 --- a/engine/platform/windows/gl_manager_windows_native.cpp +++ b/engine/platform/windows/gl_manager_windows_native.cpp @@ -50,11 +50,6 @@ #define _WGL_CONTEXT_DEBUG_BIT_ARB 0x0001 -#if defined(__GNUC__) -// Workaround GCC warning from -Wcast-function-type. -#define GetProcAddress (void *)GetProcAddress -#endif - typedef HGLRC(APIENTRY *PFNWGLCREATECONTEXT)(HDC); typedef BOOL(APIENTRY *PFNWGLDELETECONTEXT)(HGLRC); typedef BOOL(APIENTRY *PFNWGLMAKECURRENT)(HDC, HGLRC); @@ -364,10 +359,10 @@ Error GLManagerNative_Windows::_create_context(GLWindow &win, GLDisplay &gl_disp if (!module) { return ERR_CANT_CREATE; } - gd_wglCreateContext = (PFNWGLCREATECONTEXT)GetProcAddress(module, "wglCreateContext"); - gd_wglMakeCurrent = (PFNWGLMAKECURRENT)GetProcAddress(module, "wglMakeCurrent"); - gd_wglDeleteContext = (PFNWGLDELETECONTEXT)GetProcAddress(module, "wglDeleteContext"); - gd_wglGetProcAddress = (PFNWGLGETPROCADDRESS)GetProcAddress(module, "wglGetProcAddress"); + gd_wglCreateContext = (PFNWGLCREATECONTEXT)(void *)GetProcAddress(module, "wglCreateContext"); + gd_wglMakeCurrent = (PFNWGLMAKECURRENT)(void *)GetProcAddress(module, "wglMakeCurrent"); + gd_wglDeleteContext = (PFNWGLDELETECONTEXT)(void *)GetProcAddress(module, "wglDeleteContext"); + gd_wglGetProcAddress = (PFNWGLGETPROCADDRESS)(void *)GetProcAddress(module, "wglGetProcAddress"); if (!gd_wglCreateContext || !gd_wglMakeCurrent || !gd_wglDeleteContext || !gd_wglGetProcAddress) { return ERR_CANT_CREATE; } diff --git a/engine/platform/windows/joypad_windows.cpp b/engine/platform/windows/joypad_windows.cpp index 7a4cc08f..15afaea6 100644 --- a/engine/platform/windows/joypad_windows.cpp +++ b/engine/platform/windows/joypad_windows.cpp @@ -33,11 +33,6 @@ #include <oleauto.h> #include <wbemidl.h> -#if defined(__GNUC__) -// Workaround GCC warning from -Wcast-function-type. -#define GetProcAddress (void *)GetProcAddress -#endif - DWORD WINAPI _xinput_get_state(DWORD dwUserIndex, XINPUT_STATE *pState) { return ERROR_DEVICE_NOT_CONNECTED; } @@ -597,8 +592,8 @@ void JoypadWindows::load_xinput() { // (LPCSTR)100 is the magic number to get XInputGetStateEx, which also provides the state for the guide button LPCSTR get_state_func_name = legacy_xinput ? "XInputGetState" : (LPCSTR)100; - XInputGetState_t func = (XInputGetState_t)GetProcAddress((HMODULE)xinput_dll, get_state_func_name); - XInputSetState_t set_func = (XInputSetState_t)GetProcAddress((HMODULE)xinput_dll, "XInputSetState"); + XInputGetState_t func = (XInputGetState_t)(void *)GetProcAddress((HMODULE)xinput_dll, get_state_func_name); + XInputSetState_t set_func = (XInputSetState_t)(void *)GetProcAddress((HMODULE)xinput_dll, "XInputSetState"); if (!func || !set_func) { unload_xinput(); return; @@ -608,7 +603,7 @@ void JoypadWindows::load_xinput() { winmm_dll = LoadLibrary("Winmm.dll"); if (winmm_dll) { - joyGetDevCaps_t caps_func = (joyGetDevCaps_t)GetProcAddress((HMODULE)winmm_dll, "joyGetDevCapsW"); + joyGetDevCaps_t caps_func = (joyGetDevCaps_t)(void *)GetProcAddress((HMODULE)winmm_dll, "joyGetDevCapsW"); if (caps_func) { winmm_get_joycaps = caps_func; } else { diff --git a/engine/platform/windows/os_windows.cpp b/engine/platform/windows/os_windows.cpp index 7846cc40..7ef3de2d 100644 --- a/engine/platform/windows/os_windows.cpp +++ b/engine/platform/windows/os_windows.cpp @@ -62,6 +62,24 @@ #include <wbemcli.h> #include <wincrypt.h> +#if defined(RD_ENABLED) +#include "servers/rendering/rendering_device.h" +#endif + +#if defined(GLES3_ENABLED) +#include "gl_manager_windows_native.h" +#endif + +#if defined(VULKAN_ENABLED) +#include "rendering_context_driver_vulkan_windows.h" +#endif +#if defined(D3D12_ENABLED) +#include "drivers/d3d12/rendering_context_driver_d3d12.h" +#endif +#if defined(GLES3_ENABLED) +#include "drivers/gles3/rasterizer_gles3.h" +#endif + #ifdef DEBUG_ENABLED #pragma pack(push, before_imagehlp, 8) #include <imagehlp.h> @@ -88,11 +106,6 @@ __declspec(dllexport) void NoHotPatch() {} // Disable Nahimic code injection. #define DWRITE_FONT_WEIGHT_SEMI_LIGHT (DWRITE_FONT_WEIGHT)350 #endif -#if defined(__GNUC__) -// Workaround GCC warning from -Wcast-function-type. -#define GetProcAddress (void *)GetProcAddress -#endif - static String fix_path(const String &p_path) { String path = p_path; if (p_path.is_relative_path()) { @@ -485,8 +498,8 @@ Error OS_Windows::open_dynamic_library(const String &p_path, void *&p_library_ha typedef DLL_DIRECTORY_COOKIE(WINAPI * PAddDllDirectory)(PCWSTR); typedef BOOL(WINAPI * PRemoveDllDirectory)(DLL_DIRECTORY_COOKIE); - PAddDllDirectory add_dll_directory = (PAddDllDirectory)GetProcAddress(GetModuleHandle("kernel32.dll"), "AddDllDirectory"); - PRemoveDllDirectory remove_dll_directory = (PRemoveDllDirectory)GetProcAddress(GetModuleHandle("kernel32.dll"), "RemoveDllDirectory"); + PAddDllDirectory add_dll_directory = (PAddDllDirectory)(void *)GetProcAddress(GetModuleHandle("kernel32.dll"), "AddDllDirectory"); + PRemoveDllDirectory remove_dll_directory = (PRemoveDllDirectory)(void *)GetProcAddress(GetModuleHandle("kernel32.dll"), "RemoveDllDirectory"); bool has_dll_directory_api = ((add_dll_directory != nullptr) && (remove_dll_directory != nullptr)); DLL_DIRECTORY_COOKIE cookie = nullptr; @@ -585,7 +598,7 @@ String OS_Windows::get_distribution_name() const { } String OS_Windows::get_version() const { - RtlGetVersionPtr version_ptr = (RtlGetVersionPtr)GetProcAddress(GetModuleHandle("ntdll.dll"), "RtlGetVersion"); + RtlGetVersionPtr version_ptr = (RtlGetVersionPtr)(void *)GetProcAddress(GetModuleHandle("ntdll.dll"), "RtlGetVersion"); if (version_ptr != nullptr) { RTL_OSVERSIONINFOEXW fow; ZeroMemory(&fow, sizeof(fow)); @@ -598,7 +611,7 @@ String OS_Windows::get_version() const { } String OS_Windows::get_version_alias() const { - RtlGetVersionPtr version_ptr = (RtlGetVersionPtr)GetProcAddress(GetModuleHandle("ntdll.dll"), "RtlGetVersion"); + RtlGetVersionPtr version_ptr = (RtlGetVersionPtr)(void *)GetProcAddress(GetModuleHandle("ntdll.dll"), "RtlGetVersion"); if (version_ptr != nullptr) { RTL_OSVERSIONINFOEXW fow; ZeroMemory(&fow, sizeof(fow)); @@ -771,7 +784,7 @@ bool OS_Windows::get_user_prefers_integrated_gpu() const { HMODULE kernel32 = GetModuleHandleW(L"kernel32.dll"); if (kernel32) { using GetCurrentApplicationUserModelIdPtr = LONG(WINAPI *)(UINT32 * length, PWSTR id); - GetCurrentApplicationUserModelIdPtr GetCurrentApplicationUserModelId = (GetCurrentApplicationUserModelIdPtr)GetProcAddress(kernel32, "GetCurrentApplicationUserModelId"); + GetCurrentApplicationUserModelIdPtr GetCurrentApplicationUserModelId = (GetCurrentApplicationUserModelIdPtr)(void *)GetProcAddress(kernel32, "GetCurrentApplicationUserModelId"); if (GetCurrentApplicationUserModelId) { UINT32 length = sizeof(value_name) / sizeof(value_name[0]); @@ -973,7 +986,7 @@ Dictionary OS_Windows::get_memory_info() const { GetPerformanceInfo(&pref_info, sizeof(pref_info)); typedef void(WINAPI * PGetCurrentThreadStackLimits)(PULONG_PTR, PULONG_PTR); - PGetCurrentThreadStackLimits GetCurrentThreadStackLimits = (PGetCurrentThreadStackLimits)GetProcAddress(GetModuleHandleA("kernel32.dll"), "GetCurrentThreadStackLimits"); + PGetCurrentThreadStackLimits GetCurrentThreadStackLimits = (PGetCurrentThreadStackLimits)(void *)GetProcAddress(GetModuleHandleA("kernel32.dll"), "GetCurrentThreadStackLimits"); ULONG_PTR LowLimit = 0; ULONG_PTR HighLimit = 0; @@ -2346,6 +2359,99 @@ void OS_Windows::add_frame_delay(bool p_can_draw) { } } +bool OS_Windows::_test_create_rendering_device() const { + // Tests Rendering Device creation. + + bool ok = false; +#if defined(RD_ENABLED) + Error err; + RenderingContextDriver *rcd = nullptr; + +#if defined(VULKAN_ENABLED) + rcd = memnew(RenderingContextDriverVulkan); +#endif +#ifdef D3D12_ENABLED + if (rcd == nullptr) { + rcd = memnew(RenderingContextDriverD3D12); + } +#endif + if (rcd != nullptr) { + err = rcd->initialize(); + if (err == OK) { + RenderingDevice *rd = memnew(RenderingDevice); + err = rd->initialize(rcd); + memdelete(rd); + rd = nullptr; + if (err == OK) { + ok = true; + } + } + memdelete(rcd); + rcd = nullptr; + } +#endif + + return ok; +} + +bool OS_Windows::_test_create_rendering_device_and_gl() const { + // Tests OpenGL context and Rendering Device simultaneous creation. This function is expected to crash on some NVIDIA drivers. + + WNDCLASSEXW wc_probe; + memset(&wc_probe, 0, sizeof(WNDCLASSEXW)); + wc_probe.cbSize = sizeof(WNDCLASSEXW); + wc_probe.style = CS_OWNDC | CS_DBLCLKS; + wc_probe.lpfnWndProc = (WNDPROC)::DefWindowProcW; + wc_probe.cbClsExtra = 0; + wc_probe.cbWndExtra = 0; + wc_probe.hInstance = GetModuleHandle(nullptr); + wc_probe.hIcon = LoadIcon(nullptr, IDI_WINLOGO); + wc_probe.hCursor = nullptr; + wc_probe.hbrBackground = nullptr; + wc_probe.lpszMenuName = nullptr; + wc_probe.lpszClassName = L"Engine probe window"; + + if (!RegisterClassExW(&wc_probe)) { + return false; + } + + HWND hWnd = CreateWindowExW(WS_EX_WINDOWEDGE, L"Engine probe window", L"", WS_OVERLAPPEDWINDOW, 0, 0, 800, 600, nullptr, nullptr, GetModuleHandle(nullptr), nullptr); + if (!hWnd) { + UnregisterClassW(L"Engine probe window", GetModuleHandle(nullptr)); + return false; + } + + bool ok = true; +#ifdef GLES3_ENABLED + GLManagerNative_Windows *test_gl_manager_native = memnew(GLManagerNative_Windows); + if (test_gl_manager_native->window_create(DisplayServer::MAIN_WINDOW_ID, hWnd, GetModuleHandle(nullptr), 800, 600) == OK) { + RasterizerGLES3::make_current(true); + } else { + ok = false; + } +#endif + + MSG msg = {}; + while (PeekMessageW(&msg, nullptr, 0, 0, PM_REMOVE)) { + TranslateMessage(&msg); + DispatchMessageW(&msg); + } + + if (ok) { + ok = _test_create_rendering_device(); + } + +#ifdef GLES3_ENABLED + if (test_gl_manager_native) { + memdelete(test_gl_manager_native); + } +#endif + + DestroyWindow(hWnd); + UnregisterClassW(L"Engine probe window", GetModuleHandle(nullptr)); + return ok; +} + OS_Windows::OS_Windows(HINSTANCE _hInstance) { hInstance = _hInstance; diff --git a/engine/platform/windows/os_windows.h b/engine/platform/windows/os_windows.h index 9f5eef49..c46d86a6 100644 --- a/engine/platform/windows/os_windows.h +++ b/engine/platform/windows/os_windows.h @@ -252,6 +252,9 @@ public: void set_main_window(HWND p_main_window) { main_window = p_main_window; } + virtual bool _test_create_rendering_device_and_gl() const override; + virtual bool _test_create_rendering_device() const override; + HINSTANCE get_hinstance() { return hInstance; } OS_Windows(HINSTANCE _hInstance); ~OS_Windows(); diff --git a/engine/platform/windows/wgl_detect_version.cpp b/engine/platform/windows/wgl_detect_version.cpp index 12dd6f6e..f0892f8d 100644 --- a/engine/platform/windows/wgl_detect_version.cpp +++ b/engine/platform/windows/wgl_detect_version.cpp @@ -53,11 +53,6 @@ #define WGL_RENDERER 0x1F01 #define WGL_VERSION 0x1F02 -#if defined(__GNUC__) -// Workaround GCC warning from -Wcast-function-type. -#define GetProcAddress (void *)GetProcAddress -#endif - typedef HGLRC(APIENTRY *PFNWGLCREATECONTEXT)(HDC); typedef BOOL(APIENTRY *PFNWGLDELETECONTEXT)(HGLRC); typedef BOOL(APIENTRY *PFNWGLMAKECURRENT)(HDC, HGLRC); @@ -80,10 +75,10 @@ Dictionary detect_wgl() { if (!module) { return gl_info; } - gd_wglCreateContext = (PFNWGLCREATECONTEXT)GetProcAddress(module, "wglCreateContext"); - gd_wglMakeCurrent = (PFNWGLMAKECURRENT)GetProcAddress(module, "wglMakeCurrent"); - gd_wglDeleteContext = (PFNWGLDELETECONTEXT)GetProcAddress(module, "wglDeleteContext"); - gd_wglGetProcAddress = (PFNWGLGETPROCADDRESS)GetProcAddress(module, "wglGetProcAddress"); + gd_wglCreateContext = (PFNWGLCREATECONTEXT)(void *)GetProcAddress(module, "wglCreateContext"); + gd_wglMakeCurrent = (PFNWGLMAKECURRENT)(void *)GetProcAddress(module, "wglMakeCurrent"); + gd_wglDeleteContext = (PFNWGLDELETECONTEXT)(void *)GetProcAddress(module, "wglDeleteContext"); + gd_wglGetProcAddress = (PFNWGLGETPROCADDRESS)(void *)GetProcAddress(module, "wglGetProcAddress"); if (!gd_wglCreateContext || !gd_wglMakeCurrent || !gd_wglDeleteContext || !gd_wglGetProcAddress) { return gl_info; } @@ -143,7 +138,7 @@ Dictionary detect_wgl() { HGLRC new_hRC = gd_wglCreateContextAttribsARB(hDC, nullptr, attribs); if (new_hRC) { if (gd_wglMakeCurrent(hDC, new_hRC)) { - PFNWGLGETSTRINGPROC gd_wglGetString = (PFNWGLGETSTRINGPROC)GetProcAddress(module, "glGetString"); + PFNWGLGETSTRINGPROC gd_wglGetString = (PFNWGLGETSTRINGPROC)(void *)GetProcAddress(module, "glGetString"); if (gd_wglGetString) { const char *prefixes[] = { "OpenGL ES-CM ", diff --git a/engine/scene/gui/label.cpp b/engine/scene/gui/label.cpp index c3fe9283..9a9d09ca 100644 --- a/engine/scene/gui/label.cpp +++ b/engine/scene/gui/label.cpp @@ -91,7 +91,15 @@ int Label::get_line_height(int p_line) const { int font_size = settings.is_valid() ? settings->get_font_size() : theme_cache.font_size; int font_h = font->get_height(font_size); if (p_line >= 0 && p_line < total_line_count) { - return MAX(font_h, TS->shaped_text_get_size(get_line_rid(p_line)).y); + RID rid = get_line_rid(p_line); + double asc = TS->shaped_text_get_ascent(rid); + double dsc = TS->shaped_text_get_descent(rid); + if (asc + dsc < font_h) { + double diff = font_h - (asc + dsc); + asc += diff / 2; + dsc += diff - (diff / 2); + } + return asc + dsc; } else if (total_line_count > 0) { int h = font_h; for (const Paragraph ¶ : paragraphs) { @@ -357,7 +365,14 @@ void Label::_update_visible() const { break; } for (int i = start; i < end; i++) { - minsize.height += MAX(font_h, TS->shaped_text_get_size(para.lines_rid[i]).y) + line_spacing; + double asc = TS->shaped_text_get_ascent(para.lines_rid[i]); + double dsc = TS->shaped_text_get_descent(para.lines_rid[i]); + if (asc + dsc < font_h) { + double diff = font_h - (asc + dsc); + asc += diff / 2; + dsc += diff - (diff / 2); + } + minsize.height += asc + dsc + line_spacing; } minsize.height += paragraph_spacing; line_index += para.lines_rid.size(); @@ -454,8 +469,16 @@ Rect2 Label::_get_line_rect(int p_para, int p_line) const { int font_size = settings.is_valid() ? settings->get_font_size() : theme_cache.font_size; int font_h = font->get_height(font_size); Size2 size = get_size(); - Size2 line_size = TS->shaped_text_get_size(paragraphs[p_para].lines_rid[p_line]); - line_size.y = MAX(font_h, line_size.y); + RID rid = paragraphs[p_para].lines_rid[p_line]; + Size2 line_size = TS->shaped_text_get_size(rid); + double asc = TS->shaped_text_get_ascent(rid); + double dsc = TS->shaped_text_get_descent(rid); + if (asc + dsc < font_h) { + double diff = font_h - (asc + dsc); + asc += diff / 2; + dsc += diff - (diff / 2); + } + line_size.y = asc + dsc; Vector2 offset; switch (horizontal_alignment) { case HORIZONTAL_ALIGNMENT_FILL: @@ -508,8 +531,15 @@ int Label::get_layout_data(Vector2 &r_offset, int &r_last_line, int &r_line_spac } else { int start = (line_index < lines_skipped) ? lines_skipped - line_index : 0; for (int i = start; i < para.lines_rid.size(); i++) { - total_h += MAX(font_h, TS->shaped_text_get_size(para.lines_rid[i]).y) + line_spacing; - if (total_h > (get_size().height - style->get_minimum_size().height + line_spacing)) { + double asc = TS->shaped_text_get_ascent(para.lines_rid[i]); + double dsc = TS->shaped_text_get_descent(para.lines_rid[i]); + if (asc + dsc < font_h) { + double diff = font_h - (asc + dsc); + asc += diff / 2; + dsc += diff - (diff / 2); + } + total_h += asc + dsc + line_spacing; + if (total_h > Math::ceil(get_size().height - style->get_minimum_size().height + line_spacing)) { break; } lines_visible++; @@ -539,7 +569,14 @@ int Label::get_layout_data(Vector2 &r_offset, int &r_last_line, int &r_line_spac break; } for (int i = start; i < end; i++) { - total_h += MAX(font_h, TS->shaped_text_get_size(para.lines_rid[i]).y) + line_spacing; + double asc = TS->shaped_text_get_ascent(para.lines_rid[i]); + double dsc = TS->shaped_text_get_descent(para.lines_rid[i]); + if (asc + dsc < font_h) { + double diff = font_h - (asc + dsc); + asc += diff / 2; + dsc += diff - (diff / 2); + } + total_h += asc + dsc + line_spacing; total_glyphs += TS->shaped_text_get_glyph_count(para.lines_rid[i]) + TS->shaped_text_get_ellipsis_glyph_count(para.lines_rid[i]); } total_h += paragraph_spacing; @@ -710,10 +747,10 @@ void Label::_notification(int p_what) { Vector2 line_offset = _get_line_rect(p, i).position; ofs.x = line_offset.x; - int asc = TS->shaped_text_get_ascent(line_rid); - int dsc = TS->shaped_text_get_descent(line_rid); + double asc = TS->shaped_text_get_ascent(line_rid); + double dsc = TS->shaped_text_get_descent(line_rid); if (asc + dsc < font_h) { - int diff = font_h - (asc + dsc); + double diff = font_h - (asc + dsc); asc += diff / 2; dsc += diff - (diff / 2); } @@ -879,7 +916,14 @@ Rect2 Label::get_character_bounds(int p_pos) const { } gl_off += glyphs[j].advance * glyphs[j].repeat; } - ofs.y += MAX(font_h, TS->shaped_text_get_ascent(line_rid) + TS->shaped_text_get_descent(line_rid)) + line_spacing; + double asc = TS->shaped_text_get_ascent(line_rid); + double dsc = TS->shaped_text_get_descent(line_rid); + if (asc + dsc < font_h) { + double diff = font_h - (asc + dsc); + asc += diff / 2; + dsc += diff - (diff / 2); + } + ofs.y += asc + dsc + line_spacing; } ofs.y += paragraph_spacing; line_index += para.lines_rid.size(); @@ -948,8 +992,15 @@ int Label::get_visible_line_count() const { } else { int start = (line_index < lines_skipped) ? lines_skipped - line_index : 0; for (int i = start; i < para.lines_rid.size(); i++) { - total_h += MAX(font_h, TS->shaped_text_get_size(para.lines_rid[i]).y) + line_spacing; - if (total_h > (get_size().height - style->get_minimum_size().height + line_spacing)) { + double asc = TS->shaped_text_get_ascent(para.lines_rid[i]); + double dsc = TS->shaped_text_get_descent(para.lines_rid[i]); + if (asc + dsc < font_h) { + double diff = font_h - (asc + dsc); + asc += diff / 2; + dsc += diff - (diff / 2); + } + total_h += asc + dsc + line_spacing; + if (total_h > Math::ceil(get_size().height - style->get_minimum_size().height + line_spacing)) { break; } lines_visible++; diff --git a/engine/scene/gui/tree.cpp b/engine/scene/gui/tree.cpp index 8ecc4758..cd6c51de 100644 --- a/engine/scene/gui/tree.cpp +++ b/engine/scene/gui/tree.cpp @@ -5487,15 +5487,14 @@ Tree::FindColumnButtonResult Tree::_find_column_and_button_at_pos(int p_x, const } } - if (x > col_width) { - col_ofs += col_width; - x -= col_width; - limit_w -= col_width; - continue; + if (x < col_width) { + col = i; + break; } - col = i; - break; + col_ofs += col_width; + x -= col_width; + limit_w -= col_width; } if (col >= 0) { diff --git a/engine/scene/property_utils.cpp b/engine/scene/property_utils.cpp index dc9a56a2..75c16a42 100644 --- a/engine/scene/property_utils.cpp +++ b/engine/scene/property_utils.cpp @@ -306,5 +306,12 @@ Ref<Script> PropertyUtils::get_custom_type_script(const Object *p_object) { return script_object; } #endif + ResourceUID::ID id = ResourceUID::get_singleton()->text_to_id(custom_script); + if (unlikely(id == ResourceUID::INVALID_ID || !ResourceUID::get_singleton()->has_id(id))) { + const_cast<Object *>(p_object)->remove_meta(SceneStringName(_custom_type_script)); + ERR_FAIL_V_MSG(Ref<Script>(), vformat("Invalid custom type script UID: %s. Removing.", custom_script.operator String())); + } else { + custom_script = ResourceUID::get_singleton()->get_id_path(id); + } return ResourceLoader::load(custom_script); } diff --git a/engine/servers/display_server.cpp b/engine/servers/display_server.cpp index 6dd90446..c9399d9c 100644 --- a/engine/servers/display_server.cpp +++ b/engine/servers/display_server.cpp @@ -1316,8 +1316,87 @@ void DisplayServer::_input_set_custom_mouse_cursor_func(const Ref<Resource> &p_i singleton->cursor_set_custom_image(p_image, (CursorShape)p_shape, p_hotspot); } +bool DisplayServer::is_rendering_device_supported() { +#if defined(RD_ENABLED) + RenderingDevice *device = RenderingDevice::get_singleton(); + if (device) { + return true; + } + + if (supported_rendering_device == RenderingDeviceCreationStatus::SUCCESS) { + return true; + } else if (supported_rendering_device == RenderingDeviceCreationStatus::FAILURE) { + return false; + } + + Error err; + +#ifdef WINDOWS_ENABLED + // On some NVIDIA drivers combining OpenGL and RenderingDevice can result in crash, offload the check to the subprocess. + List<String> arguments; + arguments.push_back("--test-rd-support"); + + String pipe; + int exitcode = 0; + err = OS::get_singleton()->execute(OS::get_singleton()->get_executable_path(), arguments, &pipe, &exitcode); + if (err == OK && exitcode == 0) { + supported_rendering_device = RenderingDeviceCreationStatus::SUCCESS; + return true; + } else { + supported_rendering_device = RenderingDeviceCreationStatus::FAILURE; + } +#else // WINDOWS_ENABLED + + RenderingContextDriver *rcd = nullptr; + +#if defined(VULKAN_ENABLED) + rcd = memnew(RenderingContextDriverVulkan); +#endif +#ifdef D3D12_ENABLED + if (rcd == nullptr) { + rcd = memnew(RenderingContextDriverD3D12); + } +#endif +#ifdef METAL_ENABLED + if (rcd == nullptr) { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunguarded-availability" + // Eliminate "RenderingContextDriverMetal is only available on iOS 14.0 or newer". + rcd = memnew(RenderingContextDriverMetal); +#pragma clang diagnostic pop + } +#endif + + if (rcd != nullptr) { + err = rcd->initialize(); + if (err == OK) { + RenderingDevice *rd = memnew(RenderingDevice); + err = rd->initialize(rcd); + memdelete(rd); + rd = nullptr; + if (err == OK) { + // Creating a RenderingDevice is quite slow. + // Cache the result for future usage, so that it's much faster on subsequent calls. + supported_rendering_device = RenderingDeviceCreationStatus::SUCCESS; + memdelete(rcd); + rcd = nullptr; + return true; + } else { + supported_rendering_device = RenderingDeviceCreationStatus::FAILURE; + } + } + + memdelete(rcd); + rcd = nullptr; + } + +#endif // WINDOWS_ENABLED +#endif // RD_ENABLED + return false; +} + bool DisplayServer::can_create_rendering_device() { - if (get_singleton()->get_name() == "headless") { + if (get_singleton() && get_singleton()->get_name() == "headless") { return false; } @@ -1334,6 +1413,23 @@ bool DisplayServer::can_create_rendering_device() { } Error err; + +#ifdef WINDOWS_ENABLED + // On some NVIDIA drivers combining OpenGL and RenderingDevice can result in crash, offload the check to the subprocess. + List<String> arguments; + arguments.push_back("--test-rd-creation"); + + String pipe; + int exitcode = 0; + err = OS::get_singleton()->execute(OS::get_singleton()->get_executable_path(), arguments, &pipe, &exitcode); + if (err == OK && exitcode == 0) { + created_rendering_device = RenderingDeviceCreationStatus::SUCCESS; + return true; + } else { + created_rendering_device = RenderingDeviceCreationStatus::FAILURE; + } +#else // WINDOWS_ENABLED + RenderingContextDriver *rcd = nullptr; #if defined(VULKAN_ENABLED) @@ -1377,6 +1473,7 @@ bool DisplayServer::can_create_rendering_device() { rcd = nullptr; } +#endif // WINDOWS_ENABLED #endif // RD_ENABLED return false; } diff --git a/engine/servers/display_server.h b/engine/servers/display_server.h index 79cf9ffc..80bba689 100644 --- a/engine/servers/display_server.h +++ b/engine/servers/display_server.h @@ -652,9 +652,11 @@ public: // Used to cache the result of `can_create_rendering_device()` when RenderingDevice isn't currently being used. // This is done as creating a RenderingDevice is quite slow. static inline RenderingDeviceCreationStatus created_rendering_device = RenderingDeviceCreationStatus::UNKNOWN; - static bool can_create_rendering_device(); + static inline RenderingDeviceCreationStatus supported_rendering_device = RenderingDeviceCreationStatus::UNKNOWN; + static bool is_rendering_device_supported(); + DisplayServer(); ~DisplayServer(); }; diff --git a/engine/servers/rendering/renderer_rd/storage_rd/material_storage.cpp b/engine/servers/rendering/renderer_rd/storage_rd/material_storage.cpp index 6008a4d3..34ddb287 100644 --- a/engine/servers/rendering/renderer_rd/storage_rd/material_storage.cpp +++ b/engine/servers/rendering/renderer_rd/storage_rd/material_storage.cpp @@ -799,7 +799,7 @@ void MaterialStorage::MaterialData::update_uniform_buffer(const HashMap<StringNa } else if (E.value.default_value.size()) { //default value - _fill_std140_ubo_value(E.value.type, E.value.default_value, data, p_use_linear_color); + _fill_std140_ubo_value(E.value.type, E.value.default_value, data, E.value.hint == ShaderLanguage::ShaderNode::Uniform::HINT_SOURCE_COLOR && p_use_linear_color); //value=E.value.default_value; } else { //zero because it was not provided diff --git a/engine/servers/rendering/renderer_rd/storage_rd/texture_storage.cpp b/engine/servers/rendering/renderer_rd/storage_rd/texture_storage.cpp index 5707b993..02b28473 100644 --- a/engine/servers/rendering/renderer_rd/storage_rd/texture_storage.cpp +++ b/engine/servers/rendering/renderer_rd/storage_rd/texture_storage.cpp @@ -1292,7 +1292,12 @@ RID TextureStorage::texture_create_from_native_handle(RS::TextureType p_type, Im // Assumed to be a color attachment - see note above. uint64_t usage_flags = RD::TEXTURE_USAGE_SAMPLING_BIT | RD::TEXTURE_USAGE_COLOR_ATTACHMENT_BIT; - return RD::get_singleton()->texture_create_from_extension(type, format, RD::TEXTURE_SAMPLES_1, usage_flags, p_native_handle, p_width, p_height, p_depth, p_layers); + RID rd_texture = RD::get_singleton()->texture_create_from_extension(type, format, RD::TEXTURE_SAMPLES_1, usage_flags, p_native_handle, p_width, p_height, p_depth, p_layers); + + RID texture = texture_allocate(); + texture_rd_initialize(texture, rd_texture, p_layered_type); + + return texture; } void TextureStorage::_texture_2d_update(RID p_texture, const Ref<Image> &p_image, int p_layer, bool p_immediate) { diff --git a/engine/thirdparty/README.md b/engine/thirdparty/README.md index 16a7661f..309508fc 100644 --- a/engine/thirdparty/README.md +++ b/engine/thirdparty/README.md @@ -627,6 +627,7 @@ File extracted from upstream release tarball: Patches: - `0001-msvc-2019-psa-redeclaration.patch` (GH-90535) +- `0002-pr-9981-defragment-incoming-tls-handshake-messages.patch` (GH-103247) ## meshoptimizer diff --git a/engine/thirdparty/mbedtls/include/mbedtls/ssl.h b/engine/thirdparty/mbedtls/include/mbedtls/ssl.h index 42fffbf8..597da257 100644 --- a/engine/thirdparty/mbedtls/include/mbedtls/ssl.h +++ b/engine/thirdparty/mbedtls/include/mbedtls/ssl.h @@ -1724,7 +1724,16 @@ struct mbedtls_ssl_context { int MBEDTLS_PRIVATE(early_data_state); #endif - unsigned MBEDTLS_PRIVATE(badmac_seen); /*!< records with a bad MAC received */ + /** Multipurpose field. + * + * - DTLS: records with a bad MAC received. + * - TLS: accumulated length of handshake fragments (up to \c in_hslen). + * + * This field is multipurpose in order to preserve the ABI in the + * Mbed TLS 3.6 LTS branch. Until 3.6.2, it was only used in DTLS + * and called `badmac_seen`. + */ + unsigned MBEDTLS_PRIVATE(badmac_seen_or_in_hsfraglen); #if defined(MBEDTLS_X509_CRT_PARSE_C) /** Callback to customize X.509 certificate chain verification */ diff --git a/engine/thirdparty/mbedtls/library/ssl_misc.h b/engine/thirdparty/mbedtls/library/ssl_misc.h index 98668798..bfadac7b 100644 --- a/engine/thirdparty/mbedtls/library/ssl_misc.h +++ b/engine/thirdparty/mbedtls/library/ssl_misc.h @@ -1829,10 +1829,11 @@ void mbedtls_ssl_set_timer(mbedtls_ssl_context *ssl, uint32_t millisecs); MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_check_timer(mbedtls_ssl_context *ssl); -void mbedtls_ssl_reset_in_out_pointers(mbedtls_ssl_context *ssl); +void mbedtls_ssl_reset_in_pointers(mbedtls_ssl_context *ssl); +void mbedtls_ssl_update_in_pointers(mbedtls_ssl_context *ssl); +void mbedtls_ssl_reset_out_pointers(mbedtls_ssl_context *ssl); void mbedtls_ssl_update_out_pointers(mbedtls_ssl_context *ssl, mbedtls_ssl_transform *transform); -void mbedtls_ssl_update_in_pointers(mbedtls_ssl_context *ssl); MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_session_reset_int(mbedtls_ssl_context *ssl, int partial); diff --git a/engine/thirdparty/mbedtls/library/ssl_msg.c b/engine/thirdparty/mbedtls/library/ssl_msg.c index ef722d7b..08d197e0 100644 --- a/engine/thirdparty/mbedtls/library/ssl_msg.c +++ b/engine/thirdparty/mbedtls/library/ssl_msg.c @@ -25,6 +25,7 @@ #include "constant_time_internal.h" #include "mbedtls/constant_time.h" +#include <limits.h> #include <string.h> #if defined(MBEDTLS_USE_PSA_CRYPTO) @@ -3220,13 +3221,17 @@ static uint32_t ssl_get_hs_total_len(mbedtls_ssl_context const *ssl) int mbedtls_ssl_prepare_handshake_record(mbedtls_ssl_context *ssl) { - if (ssl->in_msglen < mbedtls_ssl_hs_hdr_len(ssl)) { + /* First handshake fragment must at least include the header. */ + if (ssl->in_msglen < mbedtls_ssl_hs_hdr_len(ssl) && ssl->in_hslen == 0) { MBEDTLS_SSL_DEBUG_MSG(1, ("handshake message too short: %" MBEDTLS_PRINTF_SIZET, ssl->in_msglen)); return MBEDTLS_ERR_SSL_INVALID_RECORD; } - ssl->in_hslen = mbedtls_ssl_hs_hdr_len(ssl) + ssl_get_hs_total_len(ssl); + if (ssl->in_hslen == 0) { + ssl->in_hslen = mbedtls_ssl_hs_hdr_len(ssl) + ssl_get_hs_total_len(ssl); + ssl->badmac_seen_or_in_hsfraglen = 0; + } MBEDTLS_SSL_DEBUG_MSG(3, ("handshake message: msglen =" " %" MBEDTLS_PRINTF_SIZET ", type = %u, hslen = %" @@ -3292,10 +3297,67 @@ int mbedtls_ssl_prepare_handshake_record(mbedtls_ssl_context *ssl) } } else #endif /* MBEDTLS_SSL_PROTO_DTLS */ - /* With TLS we don't handle fragmentation (for now) */ - if (ssl->in_msglen < ssl->in_hslen) { - MBEDTLS_SSL_DEBUG_MSG(1, ("TLS handshake fragmentation not supported")); - return MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; + if (ssl->badmac_seen_or_in_hsfraglen <= ssl->in_hslen) { + int ret; + const size_t hs_remain = ssl->in_hslen - ssl->badmac_seen_or_in_hsfraglen; + MBEDTLS_SSL_DEBUG_MSG(3, + ("handshake fragment: %u .. %" + MBEDTLS_PRINTF_SIZET " of %" + MBEDTLS_PRINTF_SIZET " msglen %" MBEDTLS_PRINTF_SIZET, + ssl->badmac_seen_or_in_hsfraglen, + (size_t) ssl->badmac_seen_or_in_hsfraglen + + (hs_remain <= ssl->in_msglen ? hs_remain : ssl->in_msglen), + ssl->in_hslen, ssl->in_msglen)); + if (ssl->in_msglen < hs_remain) { + /* ssl->in_msglen is a 25-bit value since it is the sum of the + * header length plus the payload length, the header length is 4 + * and the payload length was received on the wire encoded as + * 3 octets. We don't support 16-bit platforms; more specifically, + * we assume that both unsigned and size_t are at least 32 bits. + * Therefore there is no possible integer overflow here. + */ + ssl->badmac_seen_or_in_hsfraglen += (unsigned) ssl->in_msglen; + ssl->in_hdr = ssl->in_msg + ssl->in_msglen; + ssl->in_msglen = 0; + mbedtls_ssl_update_in_pointers(ssl); + return MBEDTLS_ERR_SSL_CONTINUE_PROCESSING; + } + if (ssl->badmac_seen_or_in_hsfraglen > 0) { + /* + * At in_first_hdr we have a sequence of records that cover the next handshake + * record, each with its own record header that we need to remove. + * Note that the reassembled record size may not equal the size of the message, + * there may be more messages after it, complete or partial. + */ + unsigned char *in_first_hdr = ssl->in_buf + MBEDTLS_SSL_SEQUENCE_NUMBER_LEN; + unsigned char *p = in_first_hdr, *q = NULL; + size_t merged_rec_len = 0; + do { + mbedtls_record rec; + ret = ssl_parse_record_header(ssl, p, mbedtls_ssl_in_hdr_len(ssl), &rec); + if (ret != 0) { + return ret; + } + merged_rec_len += rec.data_len; + p = rec.buf + rec.buf_len; + if (q != NULL) { + memmove(q, rec.buf + rec.data_offset, rec.data_len); + q += rec.data_len; + } else { + q = p; + } + } while (merged_rec_len < ssl->in_hslen); + ssl->in_hdr = in_first_hdr; + mbedtls_ssl_update_in_pointers(ssl); + ssl->in_msglen = merged_rec_len; + /* Adjust message length. */ + MBEDTLS_PUT_UINT16_BE(merged_rec_len, ssl->in_len, 0); + ssl->badmac_seen_or_in_hsfraglen = 0; + MBEDTLS_SSL_DEBUG_BUF(4, "reassembled record", + ssl->in_hdr, mbedtls_ssl_in_hdr_len(ssl) + merged_rec_len); + } + } else { + return MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; } return 0; @@ -4640,6 +4702,16 @@ static int ssl_consume_current_message(mbedtls_ssl_context *ssl) return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } + if (ssl->badmac_seen_or_in_hsfraglen != 0) { + /* Not all handshake fragments have arrived, do not consume. */ + MBEDTLS_SSL_DEBUG_MSG(3, + ("waiting for more fragments (%u of %" + MBEDTLS_PRINTF_SIZET ", %" MBEDTLS_PRINTF_SIZET " left)", + ssl->badmac_seen_or_in_hsfraglen, ssl->in_hslen, + ssl->in_hslen - ssl->badmac_seen_or_in_hsfraglen)); + return 0; + } + /* * Get next Handshake message in the current record */ @@ -4665,6 +4737,7 @@ static int ssl_consume_current_message(mbedtls_ssl_context *ssl) ssl->in_msglen -= ssl->in_hslen; memmove(ssl->in_msg, ssl->in_msg + ssl->in_hslen, ssl->in_msglen); + MBEDTLS_PUT_UINT16_BE(ssl->in_msglen, ssl->in_len, 0); MBEDTLS_SSL_DEBUG_BUF(4, "remaining content in record", ssl->in_msg, ssl->in_msglen); @@ -4967,10 +5040,12 @@ static int ssl_get_next_record(mbedtls_ssl_context *ssl) return ret; } - if (ssl->conf->badmac_limit != 0 && - ++ssl->badmac_seen >= ssl->conf->badmac_limit) { - MBEDTLS_SSL_DEBUG_MSG(1, ("too many records with bad MAC")); - return MBEDTLS_ERR_SSL_INVALID_MAC; + if (ssl->conf->badmac_limit != 0) { + ++ssl->badmac_seen_or_in_hsfraglen; + if (ssl->badmac_seen_or_in_hsfraglen >= ssl->conf->badmac_limit) { + MBEDTLS_SSL_DEBUG_MSG(1, ("too many records with bad MAC")); + return MBEDTLS_ERR_SSL_INVALID_MAC; + } } /* As above, invalid records cause @@ -5345,7 +5420,7 @@ void mbedtls_ssl_update_in_pointers(mbedtls_ssl_context *ssl) } else #endif { - ssl->in_ctr = ssl->in_hdr - MBEDTLS_SSL_SEQUENCE_NUMBER_LEN; + ssl->in_ctr = ssl->in_buf; ssl->in_len = ssl->in_hdr + 3; #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) ssl->in_cid = ssl->in_len; @@ -5361,24 +5436,35 @@ void mbedtls_ssl_update_in_pointers(mbedtls_ssl_context *ssl) * Setup an SSL context */ -void mbedtls_ssl_reset_in_out_pointers(mbedtls_ssl_context *ssl) +void mbedtls_ssl_reset_in_pointers(mbedtls_ssl_context *ssl) +{ +#if defined(MBEDTLS_SSL_PROTO_DTLS) + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { + ssl->in_hdr = ssl->in_buf; + } else +#endif /* MBEDTLS_SSL_PROTO_DTLS */ + { + ssl->in_hdr = ssl->in_buf + MBEDTLS_SSL_SEQUENCE_NUMBER_LEN; + } + + /* Derive other internal pointers. */ + mbedtls_ssl_update_in_pointers(ssl); +} + +void mbedtls_ssl_reset_out_pointers(mbedtls_ssl_context *ssl) { /* Set the incoming and outgoing record pointers. */ #if defined(MBEDTLS_SSL_PROTO_DTLS) if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { ssl->out_hdr = ssl->out_buf; - ssl->in_hdr = ssl->in_buf; } else #endif /* MBEDTLS_SSL_PROTO_DTLS */ { ssl->out_ctr = ssl->out_buf; - ssl->out_hdr = ssl->out_buf + 8; - ssl->in_hdr = ssl->in_buf + 8; + ssl->out_hdr = ssl->out_buf + MBEDTLS_SSL_SEQUENCE_NUMBER_LEN; } - /* Derive other internal pointers. */ mbedtls_ssl_update_out_pointers(ssl, NULL /* no transform enabled */); - mbedtls_ssl_update_in_pointers(ssl); } /* diff --git a/engine/thirdparty/mbedtls/library/ssl_tls.c b/engine/thirdparty/mbedtls/library/ssl_tls.c index c773365b..7f742482 100644 --- a/engine/thirdparty/mbedtls/library/ssl_tls.c +++ b/engine/thirdparty/mbedtls/library/ssl_tls.c @@ -344,12 +344,13 @@ static void handle_buffer_resizing(mbedtls_ssl_context *ssl, int downsizing, size_t out_buf_new_len) { int modified = 0; - size_t written_in = 0, iv_offset_in = 0, len_offset_in = 0; + size_t written_in = 0, iv_offset_in = 0, len_offset_in = 0, hdr_in = 0; size_t written_out = 0, iv_offset_out = 0, len_offset_out = 0; if (ssl->in_buf != NULL) { written_in = ssl->in_msg - ssl->in_buf; iv_offset_in = ssl->in_iv - ssl->in_buf; len_offset_in = ssl->in_len - ssl->in_buf; + hdr_in = ssl->in_hdr - ssl->in_buf; if (downsizing ? ssl->in_buf_len > in_buf_new_len && ssl->in_left < in_buf_new_len : ssl->in_buf_len < in_buf_new_len) { @@ -381,7 +382,10 @@ static void handle_buffer_resizing(mbedtls_ssl_context *ssl, int downsizing, } if (modified) { /* Update pointers here to avoid doing it twice. */ - mbedtls_ssl_reset_in_out_pointers(ssl); + ssl->in_hdr = ssl->in_buf + hdr_in; + mbedtls_ssl_update_in_pointers(ssl); + mbedtls_ssl_reset_out_pointers(ssl); + /* Fields below might not be properly updated with record * splitting or with CID, so they are manually updated here. */ ssl->out_msg = ssl->out_buf + written_out; @@ -1409,7 +1413,8 @@ int mbedtls_ssl_setup(mbedtls_ssl_context *ssl, goto error; } - mbedtls_ssl_reset_in_out_pointers(ssl); + mbedtls_ssl_reset_in_pointers(ssl); + mbedtls_ssl_reset_out_pointers(ssl); #if defined(MBEDTLS_SSL_DTLS_SRTP) memset(&ssl->dtls_srtp_info, 0, sizeof(ssl->dtls_srtp_info)); @@ -1474,7 +1479,8 @@ void mbedtls_ssl_session_reset_msg_layer(mbedtls_ssl_context *ssl, /* Cancel any possibly running timer */ mbedtls_ssl_set_timer(ssl, 0); - mbedtls_ssl_reset_in_out_pointers(ssl); + mbedtls_ssl_reset_in_pointers(ssl); + mbedtls_ssl_reset_out_pointers(ssl); /* Reset incoming message parsing */ ssl->in_offt = NULL; @@ -1485,6 +1491,12 @@ void mbedtls_ssl_session_reset_msg_layer(mbedtls_ssl_context *ssl, ssl->keep_current_message = 0; ssl->transform_in = NULL; + /* TLS: reset in_hsfraglen, which is part of message parsing. + * DTLS: on a client reconnect, don't reset badmac_seen. */ + if (!partial) { + ssl->badmac_seen_or_in_hsfraglen = 0; + } + #if defined(MBEDTLS_SSL_PROTO_DTLS) ssl->next_record_offset = 0; ssl->in_epoch = 0; @@ -5014,7 +5026,7 @@ static const unsigned char ssl_serialized_context_header[] = { * uint8 in_cid<0..2^8-1> // Connection ID: expected incoming value * uint8 out_cid<0..2^8-1> // Connection ID: outgoing value to use * // fields from ssl_context - * uint32 badmac_seen; // DTLS: number of records with failing MAC + * uint32 badmac_seen_or_in_hsfraglen; // DTLS: number of records with failing MAC * uint64 in_window_top; // DTLS: last validated record seq_num * uint64 in_window; // DTLS: bitmask for replay protection * uint8 disable_datagram_packing; // DTLS: only one record per datagram @@ -5156,7 +5168,7 @@ int mbedtls_ssl_context_save(mbedtls_ssl_context *ssl, */ used += 4; if (used <= buf_len) { - MBEDTLS_PUT_UINT32_BE(ssl->badmac_seen, p, 0); + MBEDTLS_PUT_UINT32_BE(ssl->badmac_seen_or_in_hsfraglen, p, 0); p += 4; } @@ -5386,7 +5398,7 @@ static int ssl_context_load(mbedtls_ssl_context *ssl, return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } - ssl->badmac_seen = MBEDTLS_GET_UINT32_BE(p, 0); + ssl->badmac_seen_or_in_hsfraglen = MBEDTLS_GET_UINT32_BE(p, 0); p += 4; #if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY) diff --git a/engine/thirdparty/mbedtls/library/ssl_tls12_server.c b/engine/thirdparty/mbedtls/library/ssl_tls12_server.c index 03722ac3..67df4284 100644 --- a/engine/thirdparty/mbedtls/library/ssl_tls12_server.c +++ b/engine/thirdparty/mbedtls/library/ssl_tls12_server.c @@ -1057,28 +1057,6 @@ read_record_header: MBEDTLS_SSL_DEBUG_MSG(1, ("bad client hello message")); return MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE; } - { - size_t handshake_len = MBEDTLS_GET_UINT24_BE(buf, 1); - MBEDTLS_SSL_DEBUG_MSG(3, ("client hello v3, handshake len.: %u", - (unsigned) handshake_len)); - - /* The record layer has a record size limit of 2^14 - 1 and - * fragmentation is not supported, so buf[1] should be zero. */ - if (buf[1] != 0) { - MBEDTLS_SSL_DEBUG_MSG(1, ("bad client hello message: %u != 0", - (unsigned) buf[1])); - return MBEDTLS_ERR_SSL_DECODE_ERROR; - } - - /* We don't support fragmentation of ClientHello (yet?) */ - if (msg_len != mbedtls_ssl_hs_hdr_len(ssl) + handshake_len) { - MBEDTLS_SSL_DEBUG_MSG(1, ("bad client hello message: %u != %u + %u", - (unsigned) msg_len, - (unsigned) mbedtls_ssl_hs_hdr_len(ssl), - (unsigned) handshake_len)); - return MBEDTLS_ERR_SSL_DECODE_ERROR; - } - } #if defined(MBEDTLS_SSL_PROTO_DTLS) if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { diff --git a/engine/thirdparty/mbedtls/patches/0002-pr-9981-defragment-incoming-tls-handshake-messages.patch b/engine/thirdparty/mbedtls/patches/0002-pr-9981-defragment-incoming-tls-handshake-messages.patch new file mode 100644 index 00000000..406bb14f --- /dev/null +++ b/engine/thirdparty/mbedtls/patches/0002-pr-9981-defragment-incoming-tls-handshake-messages.patch @@ -0,0 +1,373 @@ +diff --git a/thirdparty/README.md b/thirdparty/README.md +index 16a7661f5b..7ad8524e1a 100644 +--- a/thirdparty/README.md ++++ b/thirdparty/README.md +@@ -627,6 +627,7 @@ File extracted from upstream release tarball: + Patches: + + - `0001-msvc-2019-psa-redeclaration.patch` (GH-90535) ++- `0002-pr-9981-defragment-incoming-tls-handshake-messages.patch` (GH-102770) + + + ## meshoptimizer +diff --git a/thirdparty/mbedtls/include/mbedtls/ssl.h b/thirdparty/mbedtls/include/mbedtls/ssl.h +index 42fffbf860..597da2571f 100644 +--- a/thirdparty/mbedtls/include/mbedtls/ssl.h ++++ b/thirdparty/mbedtls/include/mbedtls/ssl.h +@@ -1724,7 +1724,16 @@ struct mbedtls_ssl_context { + int MBEDTLS_PRIVATE(early_data_state); + #endif + +- unsigned MBEDTLS_PRIVATE(badmac_seen); /*!< records with a bad MAC received */ ++ /** Multipurpose field. ++ * ++ * - DTLS: records with a bad MAC received. ++ * - TLS: accumulated length of handshake fragments (up to \c in_hslen). ++ * ++ * This field is multipurpose in order to preserve the ABI in the ++ * Mbed TLS 3.6 LTS branch. Until 3.6.2, it was only used in DTLS ++ * and called `badmac_seen`. ++ */ ++ unsigned MBEDTLS_PRIVATE(badmac_seen_or_in_hsfraglen); + + #if defined(MBEDTLS_X509_CRT_PARSE_C) + /** Callback to customize X.509 certificate chain verification */ +diff --git a/thirdparty/mbedtls/library/ssl_misc.h b/thirdparty/mbedtls/library/ssl_misc.h +index 98668798a8..bfadac7be3 100644 +--- a/thirdparty/mbedtls/library/ssl_misc.h ++++ b/thirdparty/mbedtls/library/ssl_misc.h +@@ -1829,10 +1829,11 @@ void mbedtls_ssl_set_timer(mbedtls_ssl_context *ssl, uint32_t millisecs); + MBEDTLS_CHECK_RETURN_CRITICAL + int mbedtls_ssl_check_timer(mbedtls_ssl_context *ssl); + +-void mbedtls_ssl_reset_in_out_pointers(mbedtls_ssl_context *ssl); ++void mbedtls_ssl_reset_in_pointers(mbedtls_ssl_context *ssl); ++void mbedtls_ssl_update_in_pointers(mbedtls_ssl_context *ssl); ++void mbedtls_ssl_reset_out_pointers(mbedtls_ssl_context *ssl); + void mbedtls_ssl_update_out_pointers(mbedtls_ssl_context *ssl, + mbedtls_ssl_transform *transform); +-void mbedtls_ssl_update_in_pointers(mbedtls_ssl_context *ssl); + + MBEDTLS_CHECK_RETURN_CRITICAL + int mbedtls_ssl_session_reset_int(mbedtls_ssl_context *ssl, int partial); +diff --git a/thirdparty/mbedtls/library/ssl_msg.c b/thirdparty/mbedtls/library/ssl_msg.c +index ef722d7bdc..08d197e08c 100644 +--- a/thirdparty/mbedtls/library/ssl_msg.c ++++ b/thirdparty/mbedtls/library/ssl_msg.c +@@ -25,6 +25,7 @@ + #include "constant_time_internal.h" + #include "mbedtls/constant_time.h" + ++#include <limits.h> + #include <string.h> + + #if defined(MBEDTLS_USE_PSA_CRYPTO) +@@ -3220,13 +3221,17 @@ static uint32_t ssl_get_hs_total_len(mbedtls_ssl_context const *ssl) + + int mbedtls_ssl_prepare_handshake_record(mbedtls_ssl_context *ssl) + { +- if (ssl->in_msglen < mbedtls_ssl_hs_hdr_len(ssl)) { ++ /* First handshake fragment must at least include the header. */ ++ if (ssl->in_msglen < mbedtls_ssl_hs_hdr_len(ssl) && ssl->in_hslen == 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("handshake message too short: %" MBEDTLS_PRINTF_SIZET, + ssl->in_msglen)); + return MBEDTLS_ERR_SSL_INVALID_RECORD; + } + +- ssl->in_hslen = mbedtls_ssl_hs_hdr_len(ssl) + ssl_get_hs_total_len(ssl); ++ if (ssl->in_hslen == 0) { ++ ssl->in_hslen = mbedtls_ssl_hs_hdr_len(ssl) + ssl_get_hs_total_len(ssl); ++ ssl->badmac_seen_or_in_hsfraglen = 0; ++ } + + MBEDTLS_SSL_DEBUG_MSG(3, ("handshake message: msglen =" + " %" MBEDTLS_PRINTF_SIZET ", type = %u, hslen = %" +@@ -3292,10 +3297,67 @@ int mbedtls_ssl_prepare_handshake_record(mbedtls_ssl_context *ssl) + } + } else + #endif /* MBEDTLS_SSL_PROTO_DTLS */ +- /* With TLS we don't handle fragmentation (for now) */ +- if (ssl->in_msglen < ssl->in_hslen) { +- MBEDTLS_SSL_DEBUG_MSG(1, ("TLS handshake fragmentation not supported")); +- return MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; ++ if (ssl->badmac_seen_or_in_hsfraglen <= ssl->in_hslen) { ++ int ret; ++ const size_t hs_remain = ssl->in_hslen - ssl->badmac_seen_or_in_hsfraglen; ++ MBEDTLS_SSL_DEBUG_MSG(3, ++ ("handshake fragment: %u .. %" ++ MBEDTLS_PRINTF_SIZET " of %" ++ MBEDTLS_PRINTF_SIZET " msglen %" MBEDTLS_PRINTF_SIZET, ++ ssl->badmac_seen_or_in_hsfraglen, ++ (size_t) ssl->badmac_seen_or_in_hsfraglen + ++ (hs_remain <= ssl->in_msglen ? hs_remain : ssl->in_msglen), ++ ssl->in_hslen, ssl->in_msglen)); ++ if (ssl->in_msglen < hs_remain) { ++ /* ssl->in_msglen is a 25-bit value since it is the sum of the ++ * header length plus the payload length, the header length is 4 ++ * and the payload length was received on the wire encoded as ++ * 3 octets. We don't support 16-bit platforms; more specifically, ++ * we assume that both unsigned and size_t are at least 32 bits. ++ * Therefore there is no possible integer overflow here. ++ */ ++ ssl->badmac_seen_or_in_hsfraglen += (unsigned) ssl->in_msglen; ++ ssl->in_hdr = ssl->in_msg + ssl->in_msglen; ++ ssl->in_msglen = 0; ++ mbedtls_ssl_update_in_pointers(ssl); ++ return MBEDTLS_ERR_SSL_CONTINUE_PROCESSING; ++ } ++ if (ssl->badmac_seen_or_in_hsfraglen > 0) { ++ /* ++ * At in_first_hdr we have a sequence of records that cover the next handshake ++ * record, each with its own record header that we need to remove. ++ * Note that the reassembled record size may not equal the size of the message, ++ * there may be more messages after it, complete or partial. ++ */ ++ unsigned char *in_first_hdr = ssl->in_buf + MBEDTLS_SSL_SEQUENCE_NUMBER_LEN; ++ unsigned char *p = in_first_hdr, *q = NULL; ++ size_t merged_rec_len = 0; ++ do { ++ mbedtls_record rec; ++ ret = ssl_parse_record_header(ssl, p, mbedtls_ssl_in_hdr_len(ssl), &rec); ++ if (ret != 0) { ++ return ret; ++ } ++ merged_rec_len += rec.data_len; ++ p = rec.buf + rec.buf_len; ++ if (q != NULL) { ++ memmove(q, rec.buf + rec.data_offset, rec.data_len); ++ q += rec.data_len; ++ } else { ++ q = p; ++ } ++ } while (merged_rec_len < ssl->in_hslen); ++ ssl->in_hdr = in_first_hdr; ++ mbedtls_ssl_update_in_pointers(ssl); ++ ssl->in_msglen = merged_rec_len; ++ /* Adjust message length. */ ++ MBEDTLS_PUT_UINT16_BE(merged_rec_len, ssl->in_len, 0); ++ ssl->badmac_seen_or_in_hsfraglen = 0; ++ MBEDTLS_SSL_DEBUG_BUF(4, "reassembled record", ++ ssl->in_hdr, mbedtls_ssl_in_hdr_len(ssl) + merged_rec_len); ++ } ++ } else { ++ return MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + } + + return 0; +@@ -4640,6 +4702,16 @@ static int ssl_consume_current_message(mbedtls_ssl_context *ssl) + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; + } + ++ if (ssl->badmac_seen_or_in_hsfraglen != 0) { ++ /* Not all handshake fragments have arrived, do not consume. */ ++ MBEDTLS_SSL_DEBUG_MSG(3, ++ ("waiting for more fragments (%u of %" ++ MBEDTLS_PRINTF_SIZET ", %" MBEDTLS_PRINTF_SIZET " left)", ++ ssl->badmac_seen_or_in_hsfraglen, ssl->in_hslen, ++ ssl->in_hslen - ssl->badmac_seen_or_in_hsfraglen)); ++ return 0; ++ } ++ + /* + * Get next Handshake message in the current record + */ +@@ -4665,6 +4737,7 @@ static int ssl_consume_current_message(mbedtls_ssl_context *ssl) + ssl->in_msglen -= ssl->in_hslen; + memmove(ssl->in_msg, ssl->in_msg + ssl->in_hslen, + ssl->in_msglen); ++ MBEDTLS_PUT_UINT16_BE(ssl->in_msglen, ssl->in_len, 0); + + MBEDTLS_SSL_DEBUG_BUF(4, "remaining content in record", + ssl->in_msg, ssl->in_msglen); +@@ -4967,10 +5040,12 @@ static int ssl_get_next_record(mbedtls_ssl_context *ssl) + return ret; + } + +- if (ssl->conf->badmac_limit != 0 && +- ++ssl->badmac_seen >= ssl->conf->badmac_limit) { +- MBEDTLS_SSL_DEBUG_MSG(1, ("too many records with bad MAC")); +- return MBEDTLS_ERR_SSL_INVALID_MAC; ++ if (ssl->conf->badmac_limit != 0) { ++ ++ssl->badmac_seen_or_in_hsfraglen; ++ if (ssl->badmac_seen_or_in_hsfraglen >= ssl->conf->badmac_limit) { ++ MBEDTLS_SSL_DEBUG_MSG(1, ("too many records with bad MAC")); ++ return MBEDTLS_ERR_SSL_INVALID_MAC; ++ } + } + + /* As above, invalid records cause +@@ -5345,7 +5420,7 @@ void mbedtls_ssl_update_in_pointers(mbedtls_ssl_context *ssl) + } else + #endif + { +- ssl->in_ctr = ssl->in_hdr - MBEDTLS_SSL_SEQUENCE_NUMBER_LEN; ++ ssl->in_ctr = ssl->in_buf; + ssl->in_len = ssl->in_hdr + 3; + #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) + ssl->in_cid = ssl->in_len; +@@ -5361,24 +5436,35 @@ void mbedtls_ssl_update_in_pointers(mbedtls_ssl_context *ssl) + * Setup an SSL context + */ + +-void mbedtls_ssl_reset_in_out_pointers(mbedtls_ssl_context *ssl) ++void mbedtls_ssl_reset_in_pointers(mbedtls_ssl_context *ssl) ++{ ++#if defined(MBEDTLS_SSL_PROTO_DTLS) ++ if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { ++ ssl->in_hdr = ssl->in_buf; ++ } else ++#endif /* MBEDTLS_SSL_PROTO_DTLS */ ++ { ++ ssl->in_hdr = ssl->in_buf + MBEDTLS_SSL_SEQUENCE_NUMBER_LEN; ++ } ++ ++ /* Derive other internal pointers. */ ++ mbedtls_ssl_update_in_pointers(ssl); ++} ++ ++void mbedtls_ssl_reset_out_pointers(mbedtls_ssl_context *ssl) + { + /* Set the incoming and outgoing record pointers. */ + #if defined(MBEDTLS_SSL_PROTO_DTLS) + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { + ssl->out_hdr = ssl->out_buf; +- ssl->in_hdr = ssl->in_buf; + } else + #endif /* MBEDTLS_SSL_PROTO_DTLS */ + { + ssl->out_ctr = ssl->out_buf; +- ssl->out_hdr = ssl->out_buf + 8; +- ssl->in_hdr = ssl->in_buf + 8; ++ ssl->out_hdr = ssl->out_buf + MBEDTLS_SSL_SEQUENCE_NUMBER_LEN; + } +- + /* Derive other internal pointers. */ + mbedtls_ssl_update_out_pointers(ssl, NULL /* no transform enabled */); +- mbedtls_ssl_update_in_pointers(ssl); + } + + /* +diff --git a/thirdparty/mbedtls/library/ssl_tls.c b/thirdparty/mbedtls/library/ssl_tls.c +index c773365bf6..7f74248252 100644 +--- a/thirdparty/mbedtls/library/ssl_tls.c ++++ b/thirdparty/mbedtls/library/ssl_tls.c +@@ -344,12 +344,13 @@ static void handle_buffer_resizing(mbedtls_ssl_context *ssl, int downsizing, + size_t out_buf_new_len) + { + int modified = 0; +- size_t written_in = 0, iv_offset_in = 0, len_offset_in = 0; ++ size_t written_in = 0, iv_offset_in = 0, len_offset_in = 0, hdr_in = 0; + size_t written_out = 0, iv_offset_out = 0, len_offset_out = 0; + if (ssl->in_buf != NULL) { + written_in = ssl->in_msg - ssl->in_buf; + iv_offset_in = ssl->in_iv - ssl->in_buf; + len_offset_in = ssl->in_len - ssl->in_buf; ++ hdr_in = ssl->in_hdr - ssl->in_buf; + if (downsizing ? + ssl->in_buf_len > in_buf_new_len && ssl->in_left < in_buf_new_len : + ssl->in_buf_len < in_buf_new_len) { +@@ -381,7 +382,10 @@ static void handle_buffer_resizing(mbedtls_ssl_context *ssl, int downsizing, + } + if (modified) { + /* Update pointers here to avoid doing it twice. */ +- mbedtls_ssl_reset_in_out_pointers(ssl); ++ ssl->in_hdr = ssl->in_buf + hdr_in; ++ mbedtls_ssl_update_in_pointers(ssl); ++ mbedtls_ssl_reset_out_pointers(ssl); ++ + /* Fields below might not be properly updated with record + * splitting or with CID, so they are manually updated here. */ + ssl->out_msg = ssl->out_buf + written_out; +@@ -1409,7 +1413,8 @@ int mbedtls_ssl_setup(mbedtls_ssl_context *ssl, + goto error; + } + +- mbedtls_ssl_reset_in_out_pointers(ssl); ++ mbedtls_ssl_reset_in_pointers(ssl); ++ mbedtls_ssl_reset_out_pointers(ssl); + + #if defined(MBEDTLS_SSL_DTLS_SRTP) + memset(&ssl->dtls_srtp_info, 0, sizeof(ssl->dtls_srtp_info)); +@@ -1474,7 +1479,8 @@ void mbedtls_ssl_session_reset_msg_layer(mbedtls_ssl_context *ssl, + /* Cancel any possibly running timer */ + mbedtls_ssl_set_timer(ssl, 0); + +- mbedtls_ssl_reset_in_out_pointers(ssl); ++ mbedtls_ssl_reset_in_pointers(ssl); ++ mbedtls_ssl_reset_out_pointers(ssl); + + /* Reset incoming message parsing */ + ssl->in_offt = NULL; +@@ -1485,6 +1491,12 @@ void mbedtls_ssl_session_reset_msg_layer(mbedtls_ssl_context *ssl, + ssl->keep_current_message = 0; + ssl->transform_in = NULL; + ++ /* TLS: reset in_hsfraglen, which is part of message parsing. ++ * DTLS: on a client reconnect, don't reset badmac_seen. */ ++ if (!partial) { ++ ssl->badmac_seen_or_in_hsfraglen = 0; ++ } ++ + #if defined(MBEDTLS_SSL_PROTO_DTLS) + ssl->next_record_offset = 0; + ssl->in_epoch = 0; +@@ -5014,7 +5026,7 @@ static const unsigned char ssl_serialized_context_header[] = { + * uint8 in_cid<0..2^8-1> // Connection ID: expected incoming value + * uint8 out_cid<0..2^8-1> // Connection ID: outgoing value to use + * // fields from ssl_context +- * uint32 badmac_seen; // DTLS: number of records with failing MAC ++ * uint32 badmac_seen_or_in_hsfraglen; // DTLS: number of records with failing MAC + * uint64 in_window_top; // DTLS: last validated record seq_num + * uint64 in_window; // DTLS: bitmask for replay protection + * uint8 disable_datagram_packing; // DTLS: only one record per datagram +@@ -5156,7 +5168,7 @@ int mbedtls_ssl_context_save(mbedtls_ssl_context *ssl, + */ + used += 4; + if (used <= buf_len) { +- MBEDTLS_PUT_UINT32_BE(ssl->badmac_seen, p, 0); ++ MBEDTLS_PUT_UINT32_BE(ssl->badmac_seen_or_in_hsfraglen, p, 0); + p += 4; + } + +@@ -5386,7 +5398,7 @@ static int ssl_context_load(mbedtls_ssl_context *ssl, + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } + +- ssl->badmac_seen = MBEDTLS_GET_UINT32_BE(p, 0); ++ ssl->badmac_seen_or_in_hsfraglen = MBEDTLS_GET_UINT32_BE(p, 0); + p += 4; + + #if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY) +diff --git a/thirdparty/mbedtls/library/ssl_tls12_server.c b/thirdparty/mbedtls/library/ssl_tls12_server.c +index 03722ac33c..67df4284a4 100644 +--- a/thirdparty/mbedtls/library/ssl_tls12_server.c ++++ b/thirdparty/mbedtls/library/ssl_tls12_server.c +@@ -1057,28 +1057,6 @@ read_record_header: + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client hello message")); + return MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE; + } +- { +- size_t handshake_len = MBEDTLS_GET_UINT24_BE(buf, 1); +- MBEDTLS_SSL_DEBUG_MSG(3, ("client hello v3, handshake len.: %u", +- (unsigned) handshake_len)); +- +- /* The record layer has a record size limit of 2^14 - 1 and +- * fragmentation is not supported, so buf[1] should be zero. */ +- if (buf[1] != 0) { +- MBEDTLS_SSL_DEBUG_MSG(1, ("bad client hello message: %u != 0", +- (unsigned) buf[1])); +- return MBEDTLS_ERR_SSL_DECODE_ERROR; +- } +- +- /* We don't support fragmentation of ClientHello (yet?) */ +- if (msg_len != mbedtls_ssl_hs_hdr_len(ssl) + handshake_len) { +- MBEDTLS_SSL_DEBUG_MSG(1, ("bad client hello message: %u != %u + %u", +- (unsigned) msg_len, +- (unsigned) mbedtls_ssl_hs_hdr_len(ssl), +- (unsigned) handshake_len)); +- return MBEDTLS_ERR_SSL_DECODE_ERROR; +- } +- } + + #if defined(MBEDTLS_SSL_PROTO_DTLS) + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { diff --git a/engine/version.py b/engine/version.py index 93c61fd2..e08a28ec 100644 --- a/engine/version.py +++ b/engine/version.py @@ -3,7 +3,7 @@ name = "Godot Engine" major = 4 minor = 4 patch = 0 -status = "rc" +status = "stable" module_config = "" website = "https://godotengine.org" -docs = "latest" +docs = "4.4"