Sync Sphinx and Weblate templates with current docs (4.5)

This commit is contained in:
Rémi Verschelde
2025-09-08 16:20:52 +02:00
parent 0c54d1bcbe
commit 7790529164
53 changed files with 6169 additions and 5430 deletions

2
docs

Submodule docs updated: 897f6ab7d9...2df068f087

View File

@@ -1386,286 +1386,294 @@ msgstr ""
msgid "Support for advertisements using third-party modules."
msgstr ""
#: ../../docs/about/list_of_features.rst:656
#: ../../docs/about/list_of_features.rst:658
msgid "XR support (AR and VR)"
msgstr ""
#: ../../docs/about/list_of_features.rst:658
#: ../../docs/about/list_of_features.rst:660
msgid "Out of the box :ref:`support for OpenXR <doc_setting_up_xr>`."
msgstr ""
#: ../../docs/about/list_of_features.rst:660
#: ../../docs/about/list_of_features.rst:662
msgid "Including support for popular desktop headsets like the Valve Index, WMR headsets, and Quest over Link."
msgstr ""
#: ../../docs/about/list_of_features.rst:662
#: ../../docs/about/list_of_features.rst:664
msgid "Support for :ref:`Android-based headsets <doc_deploying_to_android>` using OpenXR through a plugin."
msgstr ""
#: ../../docs/about/list_of_features.rst:664
#: ../../docs/about/list_of_features.rst:666
msgid "Including support for popular stand alone headsets like the Meta Quest 1/2/3 and Pro, Pico 4, Magic Leap 2, and Lynx R1."
msgstr ""
#: ../../docs/about/list_of_features.rst:666
msgid "Other devices supported through an XR plugin structure."
msgstr ""
#: ../../docs/about/list_of_features.rst:667
msgid "Various advanced toolkits are available that implement common features required by XR applications."
#: ../../docs/about/list_of_features.rst:668
msgid "Out of the box limited support for visionOS Apple headsets."
msgstr ""
#: ../../docs/about/list_of_features.rst:670
msgid "GUI system"
msgid "Currently only exporting an application for use on a flat plane within the headset is supported. Immersive experiences are not supported."
msgstr ""
#: ../../docs/about/list_of_features.rst:672
msgid "Godot's GUI is built using the same Control nodes used to make games in Godot. The editor UI can easily be extended in many ways using add-ons."
#: ../../docs/about/list_of_features.rst:673
msgid "Other devices supported through an XR plugin structure."
msgstr ""
#: ../../docs/about/list_of_features.rst:675
msgid "**Nodes:**"
#: ../../docs/about/list_of_features.rst:674
msgid "Various advanced toolkits are available that implement common features required by XR applications."
msgstr ""
#: ../../docs/about/list_of_features.rst:677
msgid "Buttons."
msgstr ""
#: ../../docs/about/list_of_features.rst:678
msgid "Checkboxes, check buttons, radio buttons."
msgid "GUI system"
msgstr ""
#: ../../docs/about/list_of_features.rst:679
msgid "Text entry using :ref:`class_LineEdit` (single line) and :ref:`class_TextEdit` (multiple lines). TextEdit also supports code editing features such as displaying line numbers and syntax highlighting."
msgid "Godot's GUI is built using the same Control nodes used to make games in Godot. The editor UI can easily be extended in many ways using add-ons."
msgstr ""
#: ../../docs/about/list_of_features.rst:682
msgid "Dropdown menus using :ref:`class_PopupMenu` and :ref:`class_OptionButton`."
msgstr ""
#: ../../docs/about/list_of_features.rst:683
msgid "Scrollbars."
msgid "**Nodes:**"
msgstr ""
#: ../../docs/about/list_of_features.rst:684
msgid "Labels."
msgid "Buttons."
msgstr ""
#: ../../docs/about/list_of_features.rst:685
msgid "RichTextLabel for :ref:`text formatted using BBCode <doc_bbcode_in_richtextlabel>`, with support for animated custom effects."
msgid "Checkboxes, check buttons, radio buttons."
msgstr ""
#: ../../docs/about/list_of_features.rst:687
msgid "Trees (can also be used to represent tables)."
msgstr ""
#: ../../docs/about/list_of_features.rst:688
msgid "Color picker with RGB and HSV modes."
#: ../../docs/about/list_of_features.rst:686
msgid "Text entry using :ref:`class_LineEdit` (single line) and :ref:`class_TextEdit` (multiple lines). TextEdit also supports code editing features such as displaying line numbers and syntax highlighting."
msgstr ""
#: ../../docs/about/list_of_features.rst:689
msgid "Controls can be rotated and scaled."
msgid "Dropdown menus using :ref:`class_PopupMenu` and :ref:`class_OptionButton`."
msgstr ""
#: ../../docs/about/list_of_features.rst:690
msgid "Scrollbars."
msgstr ""
#: ../../docs/about/list_of_features.rst:691
msgid "**Sizing:**"
msgid "Labels."
msgstr ""
#: ../../docs/about/list_of_features.rst:693
msgid "Anchors to keep GUI elements in a specific corner, edge or centered."
#: ../../docs/about/list_of_features.rst:692
msgid "RichTextLabel for :ref:`text formatted using BBCode <doc_bbcode_in_richtextlabel>`, with support for animated custom effects."
msgstr ""
#: ../../docs/about/list_of_features.rst:694
msgid "Containers to place GUI elements automatically following certain rules."
msgid "Trees (can also be used to represent tables)."
msgstr ""
#: ../../docs/about/list_of_features.rst:695
msgid "Color picker with RGB and HSV modes."
msgstr ""
#: ../../docs/about/list_of_features.rst:696
msgid ":ref:`Stack <class_BoxContainer>` layouts."
msgstr ""
#: ../../docs/about/list_of_features.rst:697
msgid ":ref:`Grid <class_GridContainer>` layouts."
msgid "Controls can be rotated and scaled."
msgstr ""
#: ../../docs/about/list_of_features.rst:698
msgid ":ref:`Flow <class_FlowContainer>` layouts (similar to autowrapping text)."
msgid "**Sizing:**"
msgstr ""
#: ../../docs/about/list_of_features.rst:699
msgid ":ref:`Margin <class_MarginContainer>`, :ref:`centered <class_CenterContainer>` and :ref:`aspect ratio <class_AspectRatioContainer>` layouts."
#: ../../docs/about/list_of_features.rst:700
msgid "Anchors to keep GUI elements in a specific corner, edge or centered."
msgstr ""
#: ../../docs/about/list_of_features.rst:701
msgid ":ref:`Draggable splitter <class_SplitContainer>` layouts."
msgid "Containers to place GUI elements automatically following certain rules."
msgstr ""
#: ../../docs/about/list_of_features.rst:703
msgid "Scale to :ref:`multiple resolutions <doc_multiple_resolutions>` using the ``canvas_items`` or ``viewport`` stretch modes."
msgid ":ref:`Stack <class_BoxContainer>` layouts."
msgstr ""
#: ../../docs/about/list_of_features.rst:704
msgid ":ref:`Grid <class_GridContainer>` layouts."
msgstr ""
#: ../../docs/about/list_of_features.rst:705
msgid ":ref:`Flow <class_FlowContainer>` layouts (similar to autowrapping text)."
msgstr ""
#: ../../docs/about/list_of_features.rst:706
msgid ":ref:`Margin <class_MarginContainer>`, :ref:`centered <class_CenterContainer>` and :ref:`aspect ratio <class_AspectRatioContainer>` layouts."
msgstr ""
#: ../../docs/about/list_of_features.rst:708
msgid ":ref:`Draggable splitter <class_SplitContainer>` layouts."
msgstr ""
#: ../../docs/about/list_of_features.rst:710
msgid "Scale to :ref:`multiple resolutions <doc_multiple_resolutions>` using the ``canvas_items`` or ``viewport`` stretch modes."
msgstr ""
#: ../../docs/about/list_of_features.rst:712
msgid "Support any aspect ratio using anchors and the ``expand`` stretch aspect."
msgstr ""
#: ../../docs/about/list_of_features.rst:707
#: ../../docs/about/list_of_features.rst:714
msgid "**Theming:**"
msgstr ""
#: ../../docs/about/list_of_features.rst:709
#: ../../docs/about/list_of_features.rst:716
msgid "Built-in theme editor."
msgstr ""
#: ../../docs/about/list_of_features.rst:711
#: ../../docs/about/list_of_features.rst:718
msgid "Generate a theme based on the current editor theme settings."
msgstr ""
#: ../../docs/about/list_of_features.rst:713
#: ../../docs/about/list_of_features.rst:720
msgid "Procedural vector-based theming using :ref:`class_StyleBoxFlat`."
msgstr ""
#: ../../docs/about/list_of_features.rst:715
#: ../../docs/about/list_of_features.rst:722
msgid "Supports rounded/beveled corners, drop shadows, per-border widths and antialiasing."
msgstr ""
#: ../../docs/about/list_of_features.rst:717
#: ../../docs/about/list_of_features.rst:724
msgid "Texture-based theming using :ref:`class_StyleBoxTexture`."
msgstr ""
#: ../../docs/about/list_of_features.rst:719
#: ../../docs/about/list_of_features.rst:726
msgid "Godot's small distribution size can make it a suitable alternative to frameworks like Electron or Qt."
msgstr ""
#: ../../docs/about/list_of_features.rst:723
#: ../../docs/about/list_of_features.rst:730
msgid "Animation"
msgstr ""
#: ../../docs/about/list_of_features.rst:725
#: ../../docs/about/list_of_features.rst:732
msgid "Direct kinematics and inverse kinematics."
msgstr ""
#: ../../docs/about/list_of_features.rst:726
#: ../../docs/about/list_of_features.rst:733
msgid "Support for animating any property with customizable interpolation."
msgstr ""
#: ../../docs/about/list_of_features.rst:727
#: ../../docs/about/list_of_features.rst:734
msgid "Support for calling methods in animation tracks."
msgstr ""
#: ../../docs/about/list_of_features.rst:728
#: ../../docs/about/list_of_features.rst:735
msgid "Support for playing sounds in animation tracks."
msgstr ""
#: ../../docs/about/list_of_features.rst:729
#: ../../docs/about/list_of_features.rst:736
msgid "Support for Bézier curves in animation."
msgstr ""
#: ../../docs/about/list_of_features.rst:732
#: ../../docs/about/list_of_features.rst:739
msgid "File formats"
msgstr ""
#: ../../docs/about/list_of_features.rst:734
#: ../../docs/about/list_of_features.rst:741
msgid "Scenes and resources can be saved in :ref:`text-based <doc_tscn_file_format>` or binary formats."
msgstr ""
#: ../../docs/about/list_of_features.rst:736
#: ../../docs/about/list_of_features.rst:743
msgid "Text-based formats are human-readable and more friendly to version control."
msgstr ""
#: ../../docs/about/list_of_features.rst:737
#: ../../docs/about/list_of_features.rst:744
msgid "Binary formats are faster to save/load for large scenes/resources."
msgstr ""
#: ../../docs/about/list_of_features.rst:739
#: ../../docs/about/list_of_features.rst:746
msgid "Read and write text or binary files using :ref:`class_FileAccess`."
msgstr ""
#: ../../docs/about/list_of_features.rst:741
#: ../../docs/about/list_of_features.rst:748
msgid "Can optionally be compressed or encrypted."
msgstr ""
#: ../../docs/about/list_of_features.rst:743
#: ../../docs/about/list_of_features.rst:750
msgid "Read and write :ref:`class_JSON` files."
msgstr ""
#: ../../docs/about/list_of_features.rst:744
#: ../../docs/about/list_of_features.rst:751
msgid "Read and write INI-style configuration files using :ref:`class_ConfigFile`."
msgstr ""
#: ../../docs/about/list_of_features.rst:746
#: ../../docs/about/list_of_features.rst:753
msgid "Can (de)serialize any Godot datatype, including Vector2/3, Color, ..."
msgstr ""
#: ../../docs/about/list_of_features.rst:748
#: ../../docs/about/list_of_features.rst:755
msgid "Read XML files using :ref:`class_XMLParser`."
msgstr ""
#: ../../docs/about/list_of_features.rst:749
#: ../../docs/about/list_of_features.rst:756
msgid ":ref:`Load and save images, audio/video, fonts and ZIP archives <doc_runtime_loading_and_saving>` in an exported project without having to go through Godot's import system."
msgstr ""
#: ../../docs/about/list_of_features.rst:751
#: ../../docs/about/list_of_features.rst:758
msgid "Pack game data into a PCK file (custom format optimized for fast seeking), into a ZIP archive, or directly into the executable for single-file distribution."
msgstr ""
#: ../../docs/about/list_of_features.rst:753
#: ../../docs/about/list_of_features.rst:760
msgid ":ref:`Export additional PCK files<doc_exporting_pcks>` that can be read by the engine to support mods and DLCs."
msgstr ""
#: ../../docs/about/list_of_features.rst:757
#: ../../docs/about/list_of_features.rst:764
msgid "Miscellaneous"
msgstr ""
#: ../../docs/about/list_of_features.rst:759
#: ../../docs/about/list_of_features.rst:766
msgid ":ref:`Video playback <doc_playing_videos>` with built-in support for Ogg Theora."
msgstr ""
#: ../../docs/about/list_of_features.rst:760
#: ../../docs/about/list_of_features.rst:767
msgid ":ref:`Movie Maker mode <doc_creating_movies>` to record videos from a running project with synchronized audio and perfect frame pacing."
msgstr ""
#: ../../docs/about/list_of_features.rst:762
#: ../../docs/about/list_of_features.rst:769
msgid ":ref:`Low-level access to servers <doc_using_servers>` which allows bypassing the scene tree's overhead when needed."
msgstr ""
#: ../../docs/about/list_of_features.rst:764
#: ../../docs/about/list_of_features.rst:771
msgid ":ref:`Command line interface <doc_command_line_tutorial>` for automation."
msgstr ""
#: ../../docs/about/list_of_features.rst:766
#: ../../docs/about/list_of_features.rst:773
msgid "Export and deploy projects using continuous integration platforms."
msgstr ""
#: ../../docs/about/list_of_features.rst:767
#: ../../docs/about/list_of_features.rst:774
msgid "`Shell completion scripts <https://github.com/godotengine/godot/tree/master/misc/dist/shell>`__ are available for Bash, zsh and fish."
msgstr ""
#: ../../docs/about/list_of_features.rst:769
#: ../../docs/about/list_of_features.rst:776
msgid "Print colored text to standard output on all platforms using :ref:`print_rich <class_@GlobalScope_method_print_rich>`."
msgstr ""
#: ../../docs/about/list_of_features.rst:772
#: ../../docs/about/list_of_features.rst:779
msgid "Support for :ref:`C++ modules <doc_custom_modules_in_cpp>` statically linked into the engine binary."
msgstr ""
#: ../../docs/about/list_of_features.rst:774
#: ../../docs/about/list_of_features.rst:781
msgid "Engine and editor written in C++17."
msgstr ""
#: ../../docs/about/list_of_features.rst:776
#: ../../docs/about/list_of_features.rst:783
msgid "Can be :ref:`compiled <doc_introduction_to_the_buildsystem>` using GCC, Clang and MSVC. MinGW is also supported."
msgstr ""
#: ../../docs/about/list_of_features.rst:778
#: ../../docs/about/list_of_features.rst:785
msgid "Friendly towards packagers. In most cases, system libraries can be used instead of the ones provided by Godot. The build system doesn't download anything. Builds can be fully reproducible."
msgstr ""
#: ../../docs/about/list_of_features.rst:782
#: ../../docs/about/list_of_features.rst:789
msgid "Licensed under the permissive MIT license."
msgstr ""
#: ../../docs/about/list_of_features.rst:784
#: ../../docs/about/list_of_features.rst:791
msgid "Open development process with :ref:`contributions welcome <doc_ways_to_contribute>`."
msgstr ""
#: ../../docs/about/list_of_features.rst:788
#: ../../docs/about/list_of_features.rst:795
msgid "The `Godot proposals repository <https://github.com/godotengine/godot-proposals>`__ lists features that have been requested by the community and may be implemented in future Godot releases."
msgstr ""

View File

@@ -98,7 +98,7 @@ msgstr ""
#: ../../docs/about/system_requirements.rst:45
#: ../../docs/about/system_requirements.rst:228
#: ../../docs/about/system_requirements.rst:233
msgid "*Example: Intel HD Graphics 5500 (Broadwell), AMD Radeon R5 Graphics (Kaveri)*"
msgid "*Example: Intel HD Graphics 510 (Skylake), AMD Radeon R5 Graphics (Kaveri)*"
msgstr ""
#: ../../docs/about/system_requirements.rst:43

View File

@@ -253,7 +253,7 @@ msgid "You can apply ``ruff`` manually to one or more files with the following c
msgstr ""
#: ../../docs/contributing/development/code_style_guidelines.rst:298
msgid "``-l 120`` means that the allowed number of characters per line is 120. This number was agreed upon by the developers."
msgid "``--line-length 120`` means that the allowed number of characters per line is 120. This number was agreed upon by the developers."
msgstr ""
#: ../../docs/contributing/development/code_style_guidelines.rst:300

View File

@@ -206,7 +206,7 @@ msgid "Building export templates"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_linuxbsd.rst:332
msgid "Linux binaries usually won't run on distributions that are older than the distribution they were built on. If you wish to distribute binaries that work on most distributions, you should build them on an old distribution such as Ubuntu 16.04. You can use a virtual machine or a container to set up a suitable build environment."
msgid "Linux binaries usually won't run on distributions that are older than the distribution they were built on. If you wish to distribute binaries that work on most distributions, you should build them on an old distribution such as Ubuntu 20.04. You can use a virtual machine or a container to set up a suitable build environment."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_linuxbsd.rst:340
@@ -250,7 +250,7 @@ msgid "To cross-compile Godot for RISC-V devices, we need to setup the following
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_linuxbsd.rst:396
msgid "`riscv-gnu-toolchain <https://github.com/riscv-collab/riscv-gnu-toolchain/releases>`__. While we are not going to use this directly, it provides us with a sysroot, as well as header and libraries files that we will need. There are many versions to choose from, however, the older the toolchain, the more compatible our final binaries will be. If in doubt, `use this version <https://github.com/riscv-collab/riscv-gnu-toolchain/releases/tag/2021.12.22>`__, and download ``riscv64-glibc-ubuntu-18.04-nightly-2021.12.22-nightly.tar.gz``. Extract it somewhere and remember its path."
msgid "`riscv-gnu-toolchain <https://github.com/riscv-collab/riscv-gnu-toolchain/releases>`__. While we are not going to use this directly, it provides us with a sysroot, as well as header and libraries files that we will need. There are many versions to choose from, however, the older the toolchain, the more compatible our final binaries will be. If in doubt, `use this version <https://github.com/riscv-collab/riscv-gnu-toolchain/releases/tag/2023.07.07>`__, and download ``riscv64-glibc-ubuntu-20.04-gcc-nightly-2023.07.07-nightly.tar.gz``. Extract it somewhere and remember its path."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_linuxbsd.rst:403

View File

@@ -0,0 +1,28 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014-present Juan Linietsky, Ariel Manzur and the Godot community (CC BY 3.0)
# This file is distributed under the same license as the Godot Engine package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine latest\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../docs/contributing/development/compiling/compiling_for_visionos.rst:4
msgid "Compiling for visionOS"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_visionos.rst:8
msgid "This page describes how to compile visionOS export template binaries from source. If you're looking to export your project to visionOS instead, see :ref:`doc_exporting_for_visionos`."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_visionos.rst:11
msgid "Compiling instructions for visionOS are currently identical to :ref:`doc_compiling_for_ios`, except you should replace instances of ``platform=ios`` with ``platform=visionos`` in the SCons options. See the linked page for details."
msgstr ""

View File

@@ -67,338 +67,338 @@ msgstr ""
msgid "If you have `MSYS2 <https://www.msys2.org/>`_ installed, you can easily install MinGW and other dependencies using the following command:"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:56
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:55
msgid "For each MSYS2 MinGW subsystem, you should then run `pip3 install scons` in its shell."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:59
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:58
msgid "To get the Godot source code for compiling, see :ref:`doc_getting_source`."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:62
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:61
msgid "For a general overview of SCons usage for Godot, see :ref:`doc_introduction_to_the_buildsystem`."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:66
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:65
msgid "Setting up SCons"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:68
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:67
msgid "To install SCons, open the command prompt and run the following command:"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:74
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:73
msgid "If you are prompted with the message ``Defaulting to user installation because normal site-packages is not writeable``, you may have to run that command again using elevated permissions. Open a new command prompt as an Administrator then run the command again to ensure that SCons is available from the ``PATH``."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:80
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:79
msgid "To check whether you have installed Python and SCons correctly, you can type ``python --version`` and ``scons --version`` into a command prompt (``cmd.exe``)."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:84
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:83
msgid "If the commands above don't work, make sure to add Python to your ``PATH`` environment variable after installing it, then check again. You can do so by running the Python installer again and enabling the option to add Python to the ``PATH``."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:89
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:88
msgid "If SCons cannot detect your Visual Studio installation, it might be that your SCons version is too old. Update it to the latest version with ``python -m pip install --upgrade scons``."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:96
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:95
msgid "Downloading Godot's source"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:98
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:97
msgid "Refer to :ref:`doc_getting_source` for detailed instructions."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:100
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:99
msgid "The tutorial will assume from now on that you placed the source code in ``C:\\godot``."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:105
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:104
msgid "To prevent slowdowns caused by continuous virus scanning during compilation, add the Godot source folder to the list of exceptions in your antivirus software."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:109
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:108
msgid "For Windows Defender, hit the :kbd:`Windows` key, type \"Windows Security\" then hit :kbd:`Enter`. Click on **Virus & threat protection** on the left panel. Under **Virus & threat protection settings** click on **Manage Settings** and scroll down to **Exclusions**. Click **Add or remove exclusions** then add the Godot source folder."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:116
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:115
msgid "Compiling"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:119
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:118
msgid "Selecting a compiler"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:121
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:120
msgid "SCons will automatically find and use an existing Visual Studio installation. If you do not have Visual Studio installed, it will attempt to use MinGW instead. If you already have Visual Studio installed and want to use MinGW-w64, pass ``use_mingw=yes`` to the SCons command line. Note that MSVC builds cannot be performed from the MSYS2 or MinGW shells. Use either ``cmd.exe`` or PowerShell instead. If you are using MinGW-LLVM, pass both ``use_mingw=yes`` and ``use_llvm=yes`` to the SCons command line."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:131
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:130
msgid "During development, using the Visual Studio compiler is usually a better idea, as it links the Godot binary much faster than MinGW. However, MinGW can produce more optimized binaries using link-time optimization (see below), making it a better choice for production use. This is particularly the case for the GDScript VM which performs much better with MinGW compared to MSVC. Therefore, it's recommended to use MinGW to produce builds that you distribute to players."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:139
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:138
msgid "All official Godot binaries are built in `custom containers <https://github.com/godotengine/build-containers>`__ using MinGW."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:144
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:143
msgid "Running SCons"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:146
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:145
msgid "After opening a command prompt, change to the root directory of the engine source code (using ``cd``) and type:"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:153
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:152
msgid "When compiling with multiple CPU threads, SCons may warn about pywin32 being missing. You can safely ignore this warning."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:157
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:156
msgid "If you are compiling Godot to make changes or contribute to the engine, you may want to use the SCons options ``dev_build=yes`` or ``dev_mode=yes``. See :ref:`doc_introduction_to_the_buildsystem_development_and_production_aliases` for more info."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:162
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:161
msgid "If all goes well, the resulting binary executable will be placed in ``C:\\godot\\bin\\`` with the name ``godot.windows.editor.x86_32.exe`` or ``godot.windows.editor.x86_64.exe``. By default, SCons will build a binary matching your CPU architecture, but this can be overridden using ``arch=x86_64``, ``arch=x86_32``, or ``arch=arm64``."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:168
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:167
msgid "This executable file contains the whole engine and runs without any dependencies. Running it will bring up the Project Manager."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:171
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:170
msgid "If you are compiling Godot for production use, you can make the final executable smaller and faster by adding the SCons option ``production=yes``. This enables additional compiler optimizations and link-time optimization."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:176
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:175
msgid "LTO takes some time to run and requires up to 30 GB of available RAM while compiling (depending on toolchain). If you're running out of memory with the above option, use ``production=yes lto=none`` or ``production=yes lto=thin`` (LLVM only) for a lightweight but less effective form of LTO."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:181
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:180
msgid "If you want to use separate editor settings for your own Godot builds and official releases, you can enable :ref:`doc_data_paths_self_contained_mode` by creating a file called ``._sc_`` or ``_sc_`` in the ``bin/`` folder."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:187
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:186
msgid "Compiling with support for Direct3D 12"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:189
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:188
msgid "By default, builds of Godot do not contain support for the Direct3D 12 graphics API."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:192
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:191
msgid "You can install the required dependencies by running ``python misc/scripts/install_d3d12_sdk_windows.py`` in the Godot source repository. After running this script, add the ``d3d12=yes`` SCons option to enable Direct3D 12 support. This will use the default paths for the various dependencies, which match the ones used in the script."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:198
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:197
msgid "You can find the detailed steps below if you wish to set up dependencies manually, but the above script handles everything for you (including the optional PIX and Agility SDK components)."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:202
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:201
msgid "`godot-nir-static library <https://github.com/godotengine/godot-nir-static/releases/>`_. We compile the Mesa libraries you will need into a static library. Download it anywhere, unzip it and remember the path to the unzipped folder, you will need it below."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:207
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:206
msgid "You can optionally build the godot-nir-static libraries yourself with the following steps:"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:210
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:209
msgid "Install the Python package `mako <https://www.makotemplates.org>`_ which is needed to generate some files."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:212
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:211
msgid "Clone the `godot-nir-static <https://github.com/godotengine/godot-nir-static>`_ directory and navigate to it."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:214
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:213
msgid "Run the following:"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:235
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:234
msgid "Optionally, you can compile with the following for additional features:"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:237
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:236
msgid "`PIX <https://devblogs.microsoft.com/pix/download>`_ is a performance tuning and debugging application for Direct3D12 applications. If you compile-in support for it, you can get much more detailed information through PIX that will help you optimize your game and troubleshoot graphics bugs. To use it, download the WinPixEventRuntime package. You will be taken to a NuGet package page where you can click \"Download package\" to get it. Once downloaded, change the file extension to .zip and unzip the file to some path."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:244
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:243
msgid "`Agility SDK <https://devblogs.microsoft.com/directx/directx12agility>`_ can be used to provide access to the latest Direct3D 12 features without relying on driver updates. To use it, download the latest Agility SDK package. You will be taken to a NuGet package page where you can click \"Download package\" to get it. Once downloaded, change the file extension to .zip and unzip the file to some path."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:251
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:250
msgid "If you use a preview version of the Agility SDK, remember to enable developer mode in Windows; otherwise it won't be used."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:254
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:253
msgid "If you want to use a PIX with MinGW build, navigate to PIX runtime directory and use the following commands to generate import library:"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:267
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:266
msgid "When building Godot, you will need to tell SCons to use Direct3D 12 and where to look for the additional libraries:"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:274
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:273
msgid "Or, with all options enabled:"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:280
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:279
msgid "For the Agility SDK's DLLs you have to explicitly choose the kind of workflow. Single-arch is the default (DLLs copied to ``bin/``). If you pass ``agility_sdk_multi_arch=yes`` to SCons, you'll opt-in for multi-arch. DLLs will be copied to the appropriate ``bin/<arch>/`` subdirectories and at runtime the right one will be loaded."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:287
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:286
msgid "Compiling with ANGLE support"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:289
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:288
msgid "ANGLE provides a translation layer from OpenGL ES 3.x to Direct3D 11 and can be used to improve support for the Compatibility renderer on some older GPUs with outdated OpenGL drivers and on Windows for ARM."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:293
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:292
msgid "By default, Godot is built with dynamically linked ANGLE, you can use it by placing ``libEGL.dll`` and ``libGLESv2.dll`` alongside the executable."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:296
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:295
msgid "You can use dynamically linked ANGLE with export templates as well, rename aforementioned DLLs to ``libEGL.{architecture}.dll`` and ``libGLESv2.{architecture}.dll`` and place them alongside export template executables, and libraries will be automatically copied during the export process."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:301
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:300
msgid "To compile Godot with statically linked ANGLE:"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:303
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:302
msgid "Download pre-built static libraries from `godot-angle-static library <https://github.com/godotengine/godot-angle-static/releases>`_, and unzip them."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:304
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:303
msgid "When building Godot, add ``angle_libs={path}`` to tell SCons where to look for the ANGLE libraries:"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:310
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:309
msgid "You can optionally build the godot-angle-static libraries yourself with the following steps:"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:313
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:312
msgid "Clone the `godot-angle-static <https://github.com/godotengine/godot-angle-static>`_ directory and navigate to it."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:315
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:314
msgid "Run the following command:"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:337
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:336
msgid "Development in Visual Studio"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:339
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:338
msgid "Using an IDE is not required to compile Godot, as SCons takes care of everything. But if you intend to do engine development or debugging of the engine's C++ code, you may be interested in configuring a code editor or an IDE."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:343
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:342
msgid "Folder-based editors don't require any particular setup to start working with Godot's codebase. To edit projects with Visual Studio they need to be set up as a solution."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:346
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:345
msgid "You can create a Visual Studio solution via SCons by running SCons with the ``vsproj=yes`` parameter, like this:"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:353
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:352
msgid "You will be able to open Godot's source in a Visual Studio solution now, and able to build Godot using Visual Studio's **Build** button."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:356
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:355
msgid "See :ref:`doc_configuring_an_ide_vs` for further details."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:359
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:358
msgid "Cross-compiling for Windows from other operating systems"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:361
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:360
msgid "If you are a Linux or macOS user, you need to install `MinGW-w64 <https://www.mingw-w64.org/>`__, which typically comes in 32-bit and 64-bit variants, or `MinGW-LLVM <https://github.com/mstorsjo/llvm-mingw/releases>`_, which comes as a single archive for all target architectures. The package names may differ based on your distribution, here are some known ones:"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:368
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:367
msgid "**Arch Linux**"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:372
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:371
msgid "**Debian** / **Ubuntu**"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:376
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:375
msgid "**Fedora**"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:381
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:380
msgid "**macOS**"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:385
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:384
msgid "**Mageia**"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:391
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:390
msgid "Before attempting the compilation, SCons will check for the following binaries in your ``PATH`` environment variable:"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:405
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:404
msgid "If the binaries are not located in the ``PATH`` (e.g. ``/usr/bin``), you can define the following environment variable to give a hint to the build system:"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:413
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:412
msgid "Where ``/path/to/mingw`` is the path containing the ``bin`` directory where ``i686-w64-mingw32-gcc`` and ``x86_64-w64-mingw32-gcc`` are located (e.g. ``/opt/mingw-w64`` if the binaries are located in ``/opt/mingw-w64/bin``)."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:417
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:416
msgid "To make sure you are doing things correctly, executing the following in the shell should result in a working compiler (the version output may differ based on your system):"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:426
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:425
msgid "If you are building with MinGW-LLVM, add ``use_llvm=yes`` to the ``scons`` command."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:427
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:426
msgid "When cross-compiling for Windows using MinGW-w64, keep in mind only ``x86_64`` and ``x86_32`` architectures are supported. MinGW-LLVM supports ``arm64`` as well. Be sure to specify the right ``arch=`` option when invoking SCons if building from a different architecture."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:433
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:432
msgid "Troubleshooting"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:435
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:434
msgid "Cross-compiling from some Ubuntu versions may lead to `this bug <https://github.com/godotengine/godot/issues/9258>`_, due to a default configuration lacking support for POSIX threading."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:439
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:438
msgid "You can change that configuration following those instructions, for 64-bit:"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:448
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:447
msgid "And for 32-bit:"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:458
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:457
msgid "Creating Windows export templates"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:460
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:459
msgid "Windows export templates are created by compiling Godot without the editor, with the following flags:"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:472
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:471
msgid "If you plan on replacing the standard export templates, copy these to the following location, replacing ``<version>`` with the version identifier (such as ``4.2.1.stable`` or ``4.3.dev``):"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:480
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:479
msgid "With the following names:"
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:497
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:496
msgid "However, if you are using custom modules or custom engine code, you may instead want to configure your binaries as custom export templates in the project export menu. You must have **Advanced Options** enabled to set this."
msgstr ""
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:504
#: ../../docs/contributing/development/compiling/compiling_for_windows.rst:503
msgid "You don't need to copy them in this case, just reference the resulting files in the ``bin\\`` directory of your Godot source folder, so the next time you build, you will automatically have the custom templates referenced."
msgstr ""

View File

@@ -51,10 +51,10 @@ msgstr ""
msgid "Other compilation targets and options"
msgstr ""
#: ../../docs/contributing/development/compiling/index.rst:61
#: ../../docs/contributing/development/compiling/index.rst:62
msgid "Some additional universal compilation options require further setup. Namely, while Godot does have C#/.NET support as a part of its main codebase, it does not get compiled by default to reduce the executable size for users who don't need C# for their projects."
msgstr ""
#: ../../docs/contributing/development/compiling/index.rst:65
#: ../../docs/contributing/development/compiling/index.rst:66
msgid "Articles below explain how to configure the buildsystem for cases like this, and also cover some optimization techniques."
msgstr ""

View File

@@ -108,7 +108,7 @@ msgid "Click **Add** to create a new launch configuration."
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/kdevelop.rst:78
msgid "Select **Executable** option and specify the path to your executable located in the ``<Godot root directory>/bin`` folder. The name depends on your build configuration, e.g. ``godot.linuxbsd.editor.dev.x86_64`` for 64-bit LinuxBSD platform with ``platform=editor`` and ``dev_build=yes``."
msgid "Select **Executable** option and specify the path to your executable located in the ``<Godot root directory>/bin`` folder. The name depends on your build configuration, e.g. ``godot.linuxbsd.editor.dev.x86_64`` for 64-bit LinuxBSD platform with ``platform=linuxbsd``, ``target=editor``, and ``dev_build=yes``."
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/kdevelop.rst:87

View File

@@ -20,157 +20,157 @@ msgid "Visual Studio Code"
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:8
msgid "This documentation is for contributions to the game engine, and not using Visual Studio Code as a C# or GDScript editor. To code C# or GDScript in an external editor, see :ref:`the C# guide to configure an external editor <doc_c_sharp_setup_external_editor>`."
msgid "This documentation is for contributions to the game engine, and not using Visual Studio Code as a C# or GDScript editor. To code C# or GDScript in an external editor, see :ref:`the C# guide to configure an external editor <doc_c_sharp_setup_external_editor>` or :ref:`the GDScript guide to using an external text editor <doc_external_editor>`."
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:12
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:13
msgid "`Visual Studio Code <https://code.visualstudio.com>`_ is a free cross-platform code editor by `Microsoft <https://microsoft.com>`_ (not to be confused with :ref:`doc_configuring_an_ide_vs`)."
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:16
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:17
msgid "Importing the project"
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:18
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:19
msgid "Make sure the C/C++ extension is installed. You can find instructions in the `official documentation <https://code.visualstudio.com/docs/languages/cpp>`_. Alternatively, `clangd <https://open-vsx.org/extension/llvm-vs-code-extensions/vscode-clangd>`_ can be used instead."
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:22
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:23
msgid "When using the clangd extension, run ``scons compiledb=yes``."
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:23
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:24
msgid "From the Visual Studio Code's main screen open the Godot root folder with **File > Open Folder...**."
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:25
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:26
msgid "Press :kbd:`Ctrl + Shift + P` to open the command prompt window and enter *Configure Task*."
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:30
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:31
msgid "Select the **Create tasks.json file from template** option."
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:35
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:36
msgid "Then select **Others**."
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:40
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:41
msgid "If there is no such option as **Create tasks.json file from template** available, either delete the file if it already exists in your folder or create a ``.vscode/tasks.json`` file manually. See `Tasks in Visual Studio Code <https://code.visualstudio.com/docs/editor/tasks#_custom-tasks>`_ for more details on tasks."
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:42
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:43
msgid "Within the ``tasks.json`` file find the ``\"tasks\"`` array and add a new section to it:"
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:44
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:45
msgid ".vscode/tasks.json"
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:63
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:64
msgid "An example of a filled out ``tasks.json``."
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:65
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:66
msgid "Arguments can be different based on your own setup and needs. See :ref:`doc_introduction_to_the_buildsystem` for a full list of arguments."
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:69
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:70
msgid "Debugging the project"
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:71
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:72
msgid "To run and debug the project you need to create a new configuration in the ``launch.json`` file."
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:73
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:74
msgid "Press :kbd:`Ctrl + Shift + D` to open the Run panel."
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:74
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:75
msgid "If ``launch.json`` file is missing you will be prompted to create a new one."
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:79
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:80
msgid "Select **C++ (GDB/LLDB)**. There may be another platform-specific option here. If selected, adjust the configuration example provided accordingly."
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:81
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:82
msgid "Within the ``launch.json`` file find the ``\"configurations\"`` array and add a new section to it:"
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:181
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:182
msgid "An example of a filled out ``launch.json``."
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:186
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:187
msgid "Due to sporadic performance issues, it is recommended to use LLDB over GDB on Unix-based systems. Make sure that the `CodeLLDB extension <https://marketplace.visualstudio.com/items?itemName=vadimcn.vscode-lldb>`_ is installed for configurations using `lldb`."
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:190
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:191
msgid "If you encounter issues with lldb, you may consider using gdb (see the LinuxBSD_gdb configuration)."
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:192
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:193
msgid "Do note that lldb may work better with LLVM-based builds. See :ref:`doc_compiling_for_linuxbsd` for further information."
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:194
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:195
msgid "The name under ``program`` depends on your build configuration, e.g. ``godot.linuxbsd.editor.dev.x86_64`` for 64-bit LinuxBSD platform with ``target=editor`` and ``dev_build=yes``."
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:199
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:200
msgid "Configuring Intellisense"
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:201
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:202
msgid "For the C/C++ extension:"
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:203
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:204
msgid "To fix include errors you may be having, you need to configure some settings in the ``c_cpp_properties.json`` file."
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:205
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:206
msgid "First, make sure to build the project since some files need to be generated."
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:207
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:208
msgid "Edit the C/C++ Configuration file either with the UI or with text:"
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:212
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:213
msgid "Add an include path for your platform, for example, ``${workspaceFolder}/platform/windows``."
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:214
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:215
msgid "Add defines for the editor ``TOOLS_ENABLED``, debug builds ``DEBUG_ENABLED``, and tests ``TESTS_ENABLED``."
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:216
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:217
msgid "Make sure the compiler path is configured correctly to the compiler you are using. See :ref:`doc_introduction_to_the_buildsystem` for further information on your platform."
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:218
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:219
msgid "The ``c_cpp_properties.json`` file should look similar to this for Windows:"
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:220
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:221
msgid ".vscode/c_cpp_properties.json"
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:249
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:250
msgid "Alternatively, you can use the scons argument ``compiledb=yes`` and set the compile commands setting ``compileCommands`` to ``compile_commands.json``, found in the advanced section of the C/C++ Configuration UI."
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:251
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:252
msgid "This argument can be added to your build task in ``tasks.json`` since it will need to be run whenever files are added or moved."
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:253
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:254
msgid "If you run into any issues, ask for help in one of `Godot's community channels <https://godotengine.org/community>`__."
msgstr ""
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:258
#: ../../docs/contributing/development/configuring_an_ide/visual_studio_code.rst:259
msgid "To get linting on class reference XML files, install the `vscode-xml extension <https://marketplace.visualstudio.com/items?itemName=redhat.vscode-xml>`__."
msgstr ""

View File

@@ -60,53 +60,65 @@ msgid "If the user has configured their editor to use a light theme, Godot will
msgstr ""
#: ../../docs/contributing/development/editor/creating_icons.rst:47
msgid "Icon optimization"
msgid "To enable color conversion for light editor themes:"
msgstr ""
#: ../../docs/contributing/development/editor/creating_icons.rst:48
msgid ":ui:`Import > Import As > Texture2D`"
msgstr ""
#: ../../docs/contributing/development/editor/creating_icons.rst:49
msgid "Set ``editor/convert_colors_with_editor_theme`` to ``true``"
msgstr ""
#: ../../docs/contributing/development/editor/creating_icons.rst:52
msgid "Icon optimization"
msgstr ""
#: ../../docs/contributing/development/editor/creating_icons.rst:54
msgid "Because the editor renders SVGs once at load time, they need to be small in size so they can be efficiently parsed. When the :ref:`pre-commit hook <doc_code_style_guidelines_pre_commit_hook>` runs, it automatically optimizes the SVG using `svgo <https://github.com/svg/svgo>`_."
msgstr ""
#: ../../docs/contributing/development/editor/creating_icons.rst:56
#: ../../docs/contributing/development/editor/creating_icons.rst:61
msgid "While this optimization step won't impact the icon's quality noticeably, it will still remove editor-only information such as guides. Therefore, it's recommended to keep the source SVG around if you need to make further changes."
msgstr ""
#: ../../docs/contributing/development/editor/creating_icons.rst:62
#: ../../docs/contributing/development/editor/creating_icons.rst:67
msgid "Integrating and sharing the icons"
msgstr ""
#: ../../docs/contributing/development/editor/creating_icons.rst:64
#: ../../docs/contributing/development/editor/creating_icons.rst:69
msgid "If you're contributing to the engine itself, you should make a pull request to add optimized icons to ``editor/icons`` in the main repository. Recompile the engine to make it pick up new icons for classes."
msgstr ""
#: ../../docs/contributing/development/editor/creating_icons.rst:68
#: ../../docs/contributing/development/editor/creating_icons.rst:73
msgid "It's also possible to create custom icons within a module. If you're creating your own module and don't plan to integrate it with Godot, you don't need to make a separate pull request for your icons to be available within the editor as they can be self-contained."
msgstr ""
#: ../../docs/contributing/development/editor/creating_icons.rst:73
#: ../../docs/contributing/development/editor/creating_icons.rst:78
msgid "For specific instructions on how to create module icons, refer to :ref:`Creating custom module icons<doc_custom_module_icons>`."
msgstr ""
#: ../../docs/contributing/development/editor/creating_icons.rst:77
#: ../../docs/contributing/development/editor/creating_icons.rst:82
msgid "Troubleshooting"
msgstr ""
#: ../../docs/contributing/development/editor/creating_icons.rst:79
#: ../../docs/contributing/development/editor/creating_icons.rst:84
msgid "If icons don't appear in the editor, make sure that:"
msgstr ""
#: ../../docs/contributing/development/editor/creating_icons.rst:81
#: ../../docs/contributing/development/editor/creating_icons.rst:86
msgid "Each icon's filename matches the naming requirement as described previously."
msgstr ""
#: ../../docs/contributing/development/editor/creating_icons.rst:83
#: ../../docs/contributing/development/editor/creating_icons.rst:88
msgid "``modules/svg`` is enabled (it should be enabled by default). Without it, icons won't appear in the editor at all."
msgstr ""
#: ../../docs/contributing/development/editor/creating_icons.rst:87
#: ../../docs/contributing/development/editor/creating_icons.rst:92
msgid "References"
msgstr ""
#: ../../docs/contributing/development/editor/creating_icons.rst:89
#: ../../docs/contributing/development/editor/creating_icons.rst:94
msgid "`editor/icons <https://github.com/godotengine/godot/tree/master/editor/icons>`__"
msgstr ""

View File

@@ -40,7 +40,7 @@ msgid "Click *Import* to open the project in the editor."
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:29
msgid "A window notifying you that the project was generated by an older Godot version may appear. Click *Convert Full Project* to convert the project to your current Godot version."
msgid "A window notifying you that the project was generated by an older Godot version may appear. Click *OK* to convert the project to your current Godot version."
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:34
@@ -140,7 +140,7 @@ msgid "We need to move and rotate the :ref:`DirectionalLight3D <class_Directiona
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:150
msgid "In the *Inspector*, turn on *Shadow -> Enabled* by clicking the checkbox."
msgid "In the *Inspector*, turn on *Shadow* by clicking the checkbox."
msgstr ""
#: ../../docs/getting_started/first_3d_game/01.game_setup.rst:154

View File

@@ -27,7 +27,7 @@ msgstr ""
msgid "|image0|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:348
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:346
msgid "image0"
msgstr ""
@@ -47,7 +47,7 @@ msgstr ""
msgid "|image1|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:349
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:347
msgid "image1"
msgstr ""
@@ -56,14 +56,14 @@ msgid "If you still have *Input Map* open, switch to the *General* tab."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:23
msgid "In the left menu, navigate down to *Display -> Window*. On the right, set the *Width* to ``720`` and the *Height* to ``540``."
msgid "In the left menu, navigate down to *Display -> Window*. On the right, set the *Viewport Width* to ``720`` and the *Viewport Height* to ``540``."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:26
msgid "|image2|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:350
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:348
msgid "image2"
msgstr ""
@@ -87,7 +87,7 @@ msgstr ""
msgid "|image3|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:351
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:349
msgid "image3"
msgstr ""
@@ -103,7 +103,7 @@ msgstr ""
msgid "|image4|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:352
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:350
msgid "image4"
msgstr ""
@@ -115,7 +115,7 @@ msgstr ""
msgid "|image5|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:353
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:351
msgid "image5"
msgstr ""
@@ -127,7 +127,7 @@ msgstr ""
msgid "|image6|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:354
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:352
msgid "image6"
msgstr ""
@@ -139,7 +139,7 @@ msgstr ""
msgid "|image7|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:355
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:353
msgid "image7"
msgstr ""
@@ -151,7 +151,7 @@ msgstr ""
msgid "|image8|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:356
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:354
msgid "image8"
msgstr ""
@@ -163,7 +163,7 @@ msgstr ""
msgid "|image9|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:357
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:355
msgid "image9"
msgstr ""
@@ -179,7 +179,7 @@ msgstr ""
msgid "|image10|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:358
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:356
msgid "image10"
msgstr ""
@@ -191,7 +191,7 @@ msgstr ""
msgid "|image11|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:359
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:357
msgid "image11"
msgstr ""
@@ -211,7 +211,7 @@ msgstr ""
msgid "|image12|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:360
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:358
msgid "image12"
msgstr ""
@@ -223,234 +223,234 @@ msgstr ""
msgid "|image13|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:361
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:359
msgid "image13"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:111
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:109
msgid "Click the sphere icon to open the material resource. You get a preview of the material and a long list of sections filled with properties. You can use these to create all sorts of surfaces, from metal to rock or water."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:115
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:113
msgid "Expand the *Albedo* section."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:119
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:117
msgid "Set the color to something that contrasts with the background, like a bright orange."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:122
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:120
msgid "|image14|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:362
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:360
msgid "image14"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:124
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:122
msgid "We can now use the cylinders as guides. Fold them in the *Scene* dock by clicking the grey arrow next to them. Moving forward, you can also toggle their visibility by clicking the eye icon next to *Cylinders*."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:128
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:126
msgid "|image15|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:363
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:361
msgid "image15"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:130
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:128
msgid "Add a child node :ref:`Path3D <class_Path3D>` to ``Main`` node. In the toolbar, four icons appear. Click the *Add Point* tool, the icon with the green \"+\" sign."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:133
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:131
msgid "|image16|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:364
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:362
msgid "image16"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:135
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:133
msgid "You can hover any icon to see a tooltip describing the tool."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:137
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:135
msgid "Click in the center of each cylinder to create a point. Then, click the *Close Curve* icon in the toolbar to close the path. If any point is a bit off, you can click and drag on it to reposition it."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:141
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:139
msgid "|image17|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:365
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:363
msgid "image17"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:143
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:141
msgid "Your path should look like this."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:145
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:143
msgid "|image18|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:366
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:364
msgid "image18"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:147
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:145
msgid "To sample random positions on it, we need a :ref:`PathFollow3D <class_PathFollow3D>` node. Add a :ref:`PathFollow3D <class_PathFollow3D>` as a child of the ``Path3D``. Rename the two nodes to ``SpawnLocation`` and ``SpawnPath``, respectively. It's more descriptive of what we'll use them for."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:151
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:149
msgid "|image19|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:367
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:365
msgid "image19"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:153
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:151
msgid "With that, we're ready to code the spawn mechanism."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:156
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:154
msgid "Spawning monsters randomly"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:158
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:156
msgid "Right-click on the ``Main`` node and attach a new script to it."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:160
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:158
msgid "We first export a variable to the *Inspector* so that we can assign ``mob.tscn`` or any other monster to it."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:182
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:180
msgid "We want to spawn mobs at regular time intervals. To do this, we need to go back to the scene and add a timer. Before that, though, we need to assign the ``mob.tscn`` file to the ``mob_scene`` property above (otherwise it's null!)"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:186
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:184
msgid "Head back to the 3D screen and select the ``Main`` node. Drag ``mob.tscn`` from the *FileSystem* dock to the *Mob Scene* slot in the *Inspector*."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:189
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:187
msgid "|image20|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:368
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:366
msgid "image20"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:191
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:189
msgid "Add a new :ref:`Timer <class_Timer>` node as a child of ``Main``. Name it ``MobTimer``."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:193
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:191
msgid "|image21|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:369
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:367
msgid "image21"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:195
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:193
msgid "In the *Inspector*, set its *Wait Time* to ``0.5`` seconds and turn on *Autostart* so it automatically starts when we run the game."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:198
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:196
msgid "|image22|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:370
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:368
msgid "image22"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:200
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:198
msgid "Timers emit a ``timeout`` signal every time they reach the end of their *Wait Time*. By default, they restart automatically, emitting the signal in a cycle. We can connect to this signal from the *Main* node to spawn monsters every ``0.5`` seconds."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:205
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:203
msgid "With the *MobTimer* still selected, head to the *Node* dock on the right, and double-click the ``timeout`` signal."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:208
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:206
msgid "|image23|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:371
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:369
msgid "image23"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:210
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:208
msgid "Connect it to the *Main* node."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:212
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:210
msgid "|image24|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:372
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:370
msgid "image24"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:214
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:212
msgid "This will take you back to the script, with a new empty ``_on_mob_timer_timeout()`` function."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:217
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:215
msgid "Let's code the mob spawning logic. We're going to:"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:219
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:217
msgid "Instantiate the mob scene."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:220
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:218
msgid "Sample a random position on the spawn path."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:221
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:219
msgid "Get the player's position."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:222
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:220
msgid "Call the mob's ``initialize()`` method, passing it the random position and the player's position."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:224
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:222
msgid "Add the mob as a child of the *Main* node."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:266
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:264
msgid "Above, ``randf()`` produces a random value between ``0`` and ``1``, which is what the *PathFollow* node's ``progress_ratio`` expects: 0 is the start of the path, 1 is the end of the path. The path we have set is around the camera's viewport, so any random value between 0 and 1 is a random position alongside the edges of the viewport!"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:272
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:270
msgid "Note that if you remove the ``Player`` from the main scene, the following line"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:284
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:282
msgid "gives an error because there is no $Player!"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:286
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:284
msgid "Here is the complete ``main.gd`` script so far, for reference."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:340
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:338
msgid "You can test the scene by pressing :kbd:`F6`. You should see the monsters spawn and move in a straight line."
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:343
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:341
msgid "|image25|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:373
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:371
msgid "image25"
msgstr ""
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:345
#: ../../docs/getting_started/first_3d_game/05.spawning_mobs.rst:343
msgid "For now, they bump and slide against one another when their paths cross. We'll address this in the next part."
msgstr ""

View File

@@ -67,7 +67,7 @@ msgstr ""
msgid "|image0|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:370
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:375
msgid "image0"
msgstr ""
@@ -79,7 +79,7 @@ msgstr ""
msgid "|image1|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:371
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:376
msgid "image1"
msgstr ""
@@ -99,7 +99,7 @@ msgstr ""
msgid "|image2|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:372
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:377
msgid "image2"
msgstr ""
@@ -111,7 +111,7 @@ msgstr ""
msgid "|image3|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:373
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:378
msgid "image3"
msgstr ""
@@ -127,7 +127,7 @@ msgstr ""
msgid "|image4|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:374
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:379
msgid "image4"
msgstr ""
@@ -143,7 +143,7 @@ msgstr ""
msgid "|image5|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:375
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:380
msgid "image5"
msgstr ""
@@ -159,7 +159,7 @@ msgstr ""
msgid "|image6|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:376
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:381
msgid "image6"
msgstr ""
@@ -216,109 +216,129 @@ msgid "We need to detect collisions with a monster and to differentiate them fro
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:181
msgid "Open the scene ``mob.tscn`` again and select the *Mob* node. Go to the *Node* dock on the right to see a list of signals. The *Node* dock has two tabs: *Signals*, which you've already used, and *Groups*, which allows you to assign tags to nodes."
msgid "Open the scene ``mob.tscn`` again and select the *Mob* node. Go to the *Node* dock on the right to see a list of signals. The *Node* dock has two tabs: *Signals*, which you've already used, and *Groups*, which allows you to assign tags to nodes. Click on the *+* button to open the *Create new Group* dialog."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:186
msgid "Click on it to reveal a field where you can write a tag name. Enter \"mob\" in the field and click the *Add* button."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:189
msgid "|image7|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:377
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:382
msgid "image7"
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:191
msgid "An icon appears in the *Scene* dock to indicate the node is part of at least one group."
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:188
msgid "Enter \"mob\" in the *Name* field and click the *Ok* button."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:194
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:190
msgid "|image8|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:378
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:383
msgid "image8"
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:192
msgid "The \"mob\" group is now shown under the *Scene Groups* section."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:194
msgid "|image9|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:384
msgid "image9"
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:196
msgid "An icon appears in the *Scene* dock to indicate the node is part of at least one group."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:199
msgid "|image10|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:385
msgid "image10"
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:201
msgid "We can now use the group from the code to distinguish collisions with monsters from collisions with the floor."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:200
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:205
msgid "Coding the squash mechanic"
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:202
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:207
msgid "Head back to the *Player* script to code the squash and bounce."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:204
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:209
msgid "At the top of the script, we need another property, ``bounce_impulse``. When squashing an enemy, we don't necessarily want the character to go as high up as when jumping."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:223
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:228
msgid "Then, after the **Jumping** codeblock we added above in ``_physics_process()``, add the following loop. With ``move_and_slide()``, Godot makes the body move sometimes multiple times in a row to smooth out the character's motion. So we have to loop over all collisions that may have happened."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:228
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:233
msgid "In every iteration of the loop, we check if we landed on a mob. If so, we kill it and bounce."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:231
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:236
msgid "With this code, if no collisions occurred on a given frame, the loop won't run."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:293
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:298
msgid "That's a lot of new functions. Here's some more information about them."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:295
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:300
msgid "The functions ``get_slide_collision_count()`` and ``get_slide_collision()`` both come from the :ref:`CharacterBody3D <class_CharacterBody3D>` class and are related to ``move_and_slide()``."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:299
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:304
msgid "``get_slide_collision()`` returns a :ref:`KinematicCollision3D<class_KinematicCollision3D>` object that holds information about where and how the collision occurred. For example, we use its ``get_collider`` property to check if we collided with a \"mob\" by calling ``is_in_group()`` on it: ``collision.get_collider().is_in_group(\"mob\")``."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:307
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:312
msgid "The method ``is_in_group()`` is available on every :ref:`Node<class_Node>`."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:309
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:314
msgid "To check that we are landing on the monster, we use the vector dot product: ``Vector3.UP.dot(collision.get_normal()) > 0.1``. The collision normal is a 3D vector that is perpendicular to the plane where the collision occurred. The dot product allows us to compare it to the up direction."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:314
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:319
msgid "With dot products, when the result is greater than ``0``, the two vectors are at an angle of fewer than 90 degrees. A value higher than ``0.1`` tells us that we are roughly above the monster."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:318
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:323
msgid "After handling the squash and bounce logic, we terminate the loop early via the ``break`` statement to prevent further duplicate calls to ``mob.squash()``, which may otherwise result in unintended bugs such as counting the score multiple times for one kill."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:322
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:327
msgid "We are calling one undefined function, ``mob.squash()``, so we have to add it to the Mob class."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:325
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:330
msgid "Open the script ``mob.gd`` by double-clicking on it in the *FileSystem* dock. At the top of the script, we want to define a new signal named ``squashed``. And at the bottom, you can add the squash function, where we emit the signal and destroy the mob."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:361
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:366
msgid "When using C#, Godot will create the appropriate events automatically for all Signals ending with `EventHandler`, see :ref:`C# Signals <doc_c_sharp_signals>`."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:363
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:368
msgid "We will use the signal to add points to the score in the next lesson."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:365
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:370
msgid "With that, you should be able to kill monsters by jumping on them. You can press :kbd:`F5` to try the game and set ``main.tscn`` as your project's main scene."
msgstr ""
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:368
#: ../../docs/getting_started/first_3d_game/06.jump_and_squash.rst:373
msgid "However, the player won't die yet. We'll work on that in the next part."
msgstr ""

View File

@@ -27,7 +27,7 @@ msgstr ""
msgid "|image0|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:618
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:616
msgid "image0"
msgstr ""
@@ -55,7 +55,7 @@ msgstr ""
msgid "|image1|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:619
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:617
msgid "image1"
msgstr ""
@@ -71,7 +71,7 @@ msgstr ""
msgid "|image2|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:620
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:618
msgid "image2"
msgstr ""
@@ -83,7 +83,7 @@ msgstr ""
msgid "|image3|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:621
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:619
msgid "image3"
msgstr ""
@@ -95,7 +95,7 @@ msgstr ""
msgid "|image4|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:622
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:620
msgid "image4"
msgstr ""
@@ -107,7 +107,7 @@ msgstr ""
msgid "To do so, you can click the autoplay button (|Autoplay|) in the animation toolbar and the looping arrows, respectively."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:644
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:641
msgid "Autoplay"
msgstr ""
@@ -115,7 +115,7 @@ msgstr ""
msgid "|image5|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:623
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:621
msgid "image5"
msgstr ""
@@ -127,7 +127,7 @@ msgstr ""
msgid "|image6|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:624
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:622
msgid "image6"
msgstr ""
@@ -136,341 +136,333 @@ msgid "Set the animation duration to ``1.2`` seconds in the top-right of the doc
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:59
msgid "|image7|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:625
msgid "image7"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:61
msgid "You should see the gray ribbon widen a bit. It shows you the start and end of your animation and the vertical blue line is your time cursor."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:62
msgid "|image7|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:623
msgid "image7"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:64
msgid "|image8|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:626
msgid "image8"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:66
msgid "You can click and drag the slider in the bottom-right to zoom in and out of the timeline."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:69
msgid "|image9|"
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:67
msgid "|image8|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:627
msgid "image9"
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:624
msgid "image8"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:72
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:70
msgid "The float animation"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:74
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:72
msgid "With the animation player node, you can animate most properties on as many nodes as you need. Notice the key icon next to properties in the *Inspector*. You can click any of them to create a keyframe, a time and value pair for the corresponding property. The keyframe gets inserted where your time cursor is in the timeline."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:80
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:78
msgid "Let's insert our first keys. Here, we will animate both the position and the rotation of the ``Character`` node."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:83
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:81
msgid "Select the ``Character`` and in the *Inspector* expand the *Transform* section. Click the key icon next to *Position*, and *Rotation*."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:85
msgid "|image10|"
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:83
msgid "|image9|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:628
msgid "image10"
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:625
msgid "image9"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:89
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:87
msgid "For this tutorial, just create RESET Track(s) which is the default choice"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:91
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:89
msgid "Two tracks appear in the editor with a diamond icon representing each keyframe."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:91
msgid "|image10|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:626
msgid "image10"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:93
msgid "|image11|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:629
msgid "image11"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:95
msgid "You can click and drag on the diamonds to move them in time. Move the position key to ``0.3`` seconds and the rotation key to ``0.1`` seconds."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:96
msgid "|image11|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:627
msgid "image11"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:98
msgid "|image12|"
msgid "Move the time cursor to ``0.5`` seconds by clicking and dragging on the gray timeline, or by entering it into the input field."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:630
msgid "image12"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:100
msgid "Move the time cursor to ``0.5`` seconds by clicking and dragging on the gray timeline."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:103
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:101
msgid "|timeline_05_click|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:643
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:640
msgid "timeline_05_click"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:105
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:103
msgid "In the *Inspector*, set the *Position*'s *Y* axis to ``0.65`` meters and the *Rotation*' *X* axis to ``8``."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:108
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:106
msgid "If you don't see the properties in the *Inspector* panel, first click on the ``Character`` node again in the *Scene* dock."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:109
msgid "|image12|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:628
msgid "image12"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:111
msgid "|image13|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:631
msgid "image13"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:113
msgid "Create a keyframe for both properties"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:115
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:113
msgid "|second_keys_both|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:642
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:639
msgid "second_keys_both"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:117
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:115
msgid "Now, move the position keyframe to ``0.7`` seconds by dragging it on the timeline."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:120
msgid "|image14|"
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:118
msgid "|image13|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:632
msgid "image14"
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:629
msgid "image13"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:124
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:122
msgid "A lecture on the principles of animation is beyond the scope of this tutorial. Just note that you don't want to time and space everything evenly. Instead, animators play with timing and spacing, two core animation principles. You want to offset and contrast in your character's motion to make them feel alive."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:130
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:128
msgid "Move the time cursor to the end of the animation, at ``1.2`` seconds. Set the Y position to about ``0.35`` and the X rotation to ``-9`` degrees. Once again, create a key for both properties."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:134
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:132
msgid "|animation_final_keyframes|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:641
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:638
msgid "animation_final_keyframes"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:136
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:134
msgid "You can preview the result by clicking the play button or pressing :kbd:`Shift + D`. Click the stop button or press :kbd:`S` to stop playback."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:137
msgid "|image14|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:630
msgid "image14"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:139
msgid "|image15|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:633
msgid "image15"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:141
msgid "You can see that the engine interpolates between your keyframes to produce a continuous animation. At the moment, though, the motion feels very robotic. This is because the default interpolation is linear, causing constant transitions, unlike how living things move in the real world."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:146
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:144
msgid "We can control the transition between keyframes using easing curves."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:148
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:146
msgid "Click and drag around the first two keys in the timeline to box select them."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:148
msgid "|image15|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:631
msgid "image15"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:150
msgid "|image16|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:634
msgid "image16"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:152
msgid "You can edit the properties of both keys simultaneously in the *Inspector*, where you can see an *Easing* property."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:153
msgid "|image16|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:632
msgid "image16"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:155
msgid "|image17|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:635
msgid "image17"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:157
msgid "Click and drag on the curve, pulling it towards the left. This will make it ease-out, that is to say, transition fast initially and slow down as the time cursor reaches the next keyframe."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:159
msgid "|image17|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:633
msgid "image17"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:161
msgid "|image18|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:636
msgid "image18"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:163
msgid "Play the animation again to see the difference. The first half should already feel a bit bouncier."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:166
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:164
msgid "Apply an ease-out to the second keyframe in the rotation track."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:166
msgid "|image18|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:634
msgid "image18"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:168
msgid "|image19|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:637
msgid "image19"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:170
msgid "Do the opposite for the second position keyframe, dragging it to the right."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:170
msgid "|image19|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:635
msgid "image19"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:172
msgid "|image20|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:638
msgid "image20"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:174
msgid "Your animation should look something like this."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:176
msgid "|image21|"
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:174
msgid "|image20|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:639
msgid "image21"
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:636
msgid "image20"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:180
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:178
msgid "Animations update the properties of the animated nodes every frame, overriding initial values. If we directly animated the *Player* node, it would prevent us from moving it in code. This is where the *Pivot* node comes in handy: even though we animated the *Character*, we can still move and rotate the *Pivot* and layer changes on top of the animation in a script."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:187
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:185
msgid "If you play the game, the player's creature will now float!"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:189
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:187
msgid "If the creature is a little too close to the floor, you can move the ``Pivot`` up to offset it."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:193
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:191
msgid "Controlling the animation in code"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:195
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:193
msgid "We can use code to control the animation playback based on the player's input. Let's change the animation speed when the character is moving."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:198
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:196
msgid "Open the ``Player``'s script by clicking the script icon next to it."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:198
msgid "|image21|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:637
msgid "image21"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:200
msgid "|image22|"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:640
msgid "image22"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:202
msgid "In ``_physics_process()``, after the line where we check the ``direction`` vector, add the following code."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:232
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:230
msgid "This code makes it so when the player moves, we multiply the playback speed by ``4``. When they stop, we reset it to normal."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:235
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:233
msgid "We mentioned that the ``Pivot`` could layer transforms on top of the animation. We can make the character arc when jumping using the following line of code. Add it at the end of ``_physics_process()``."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:256
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:254
msgid "Animating the mobs"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:258
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:256
msgid "Here's another nice trick with animations in Godot: as long as you use a similar node structure, you can copy them to different scenes."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:261
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:259
msgid "For example, both the ``Mob`` and the ``Player`` scenes have a ``Pivot`` and a ``Character`` node, so we can reuse animations between them."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:264
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:262
msgid "Open the *Player* scene, select the AnimationPlayer node and then click on **Animation > Manage Animations...**. Click the *Copy animation to clipboard* button (two small squares) alongside the *float* animation. Click OK to close the window."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:268
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:266
msgid "Then open ``mob.tscn``, create an :ref:`AnimationPlayer <class_AnimationPlayer>` child node and select it. Click **Animation > Manage Animations**, then **New Library**. You should see the message \"Global library will be created.\" Leave the text field blank and click OK. Click the *Paste* icon (clipboard) and it should appear in the window. Click OK to close the window."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:274
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:272
msgid "Next, make sure that the autoplay button (|Autoplay|) and the looping arrows (Animation looping) are also turned on in the animation editor in the bottom panel. That's it; all monsters will now play the float animation."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:278
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:276
msgid "We can change the playback speed based on the creature's ``random_speed``. Open the *Mob*'s script and at the end of the ``initialize()`` function, add the following line."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:296
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:294
msgid "And with that, you finished coding your first complete 3D game."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:298
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:296
msgid "**Congratulations**!"
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:300
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:298
msgid "In the next part, we'll quickly recap what you learned and give you some links to keep learning more. But for now, here are the complete ``player.gd`` and ``mob.gd`` so you can check your code against them."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:304
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:302
msgid "Here's the *Player* script."
msgstr ""
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:519
#: ../../docs/getting_started/first_3d_game/09.adding_animations.rst:517
msgid "And the *Mob*'s script."
msgstr ""

View File

@@ -60,185 +60,185 @@ msgid "Let's use instancing in practice to see how it works in Godot. We invite
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:54
msgid "Extract the archive on your computer. To import it, you need the Project Manager. The Project Manager is accessed by opening Godot, or if you already have Godot opened, click on *Project -> Quit to Project List* (:kbd:`Ctrl + Shift + Q`, :kbd:`Ctrl + Option + Cmd + Q` on macOS)"
msgid "Extract the archive on your computer. To import it, you need the Project Manager. The Project Manager is accessed by opening Godot, or if you already have Godot opened, click on :menu:`Project > Quit to Project List` (:kbd:`Ctrl + Shift + Q`, :kbd:`Ctrl + Option + Cmd + Q` on macOS)"
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:57
msgid "In the Project Manager, click the *Import* button to import the project."
#: ../../docs/getting_started/step_by_step/instancing.rst:58
msgid "In the Project Manager, click the :button:`Import` button to import the project."
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:61
#: ../../docs/getting_started/step_by_step/instancing.rst:62
msgid "In the pop-up that appears navigate to the folder you extracted. Double-click the ``project.godot`` file to open it."
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:66
msgid "Finally, click the Import & Edit button."
#: ../../docs/getting_started/step_by_step/instancing.rst:67
msgid "Finally, click the :button:`Import` button."
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:70
msgid "A window notifying you that the project was last opened in an older Godot version may appear, that's not an issue. Click *Ok* to open the project."
#: ../../docs/getting_started/step_by_step/instancing.rst:71
msgid "A window notifying you that the project was last opened in an older Godot version may appear, that's not an issue. Click :button:`Ok` to open the project."
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:73
#: ../../docs/getting_started/step_by_step/instancing.rst:74
msgid "The project contains two packed scenes: ``main.tscn``, containing walls against which the ball collides, and ``ball.tscn``. The Main scene should open automatically. If you're seeing an empty 3D scene instead of the main scene, click the 2D button at the top of the screen."
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:81
#: ../../docs/getting_started/step_by_step/instancing.rst:82
msgid "Let's add a ball as a child of the Main node. In the Scene dock, select the Main node. Then, click the link icon at the top of the scene dock. This button allows you to add an instance of a scene as a child of the currently selected node."
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:87
#: ../../docs/getting_started/step_by_step/instancing.rst:88
msgid "Double-click the ball scene to instance it."
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:91
#: ../../docs/getting_started/step_by_step/instancing.rst:92
msgid "The ball appears in the top-left corner of the viewport."
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:95
#: ../../docs/getting_started/step_by_step/instancing.rst:96
msgid "Click on it and drag it towards the center of the view."
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:99
#: ../../docs/getting_started/step_by_step/instancing.rst:100
msgid "Play the game by pressing :kbd:`F5` (:kbd:`Cmd + B` on macOS). You should see it fall."
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:101
#: ../../docs/getting_started/step_by_step/instancing.rst:102
msgid "Now, we want to create more instances of the Ball node. With the ball still selected, press :kbd:`Ctrl + D` (:kbd:`Cmd + D` on macOS) to call the duplicate command. Click and drag to move the new ball to a different location."
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:107
#: ../../docs/getting_started/step_by_step/instancing.rst:108
msgid "You can repeat this process until you have several in the scene."
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:111
#: ../../docs/getting_started/step_by_step/instancing.rst:112
msgid "Play the game again. You should now see every ball fall independently from one another. This is what instances do. Each is an independent reproduction of a template scene."
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:116
#: ../../docs/getting_started/step_by_step/instancing.rst:117
msgid "Editing scenes and instances"
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:118
#: ../../docs/getting_started/step_by_step/instancing.rst:119
msgid "There is more to instances. With this feature, you can:"
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:120
msgid "Change the properties of one ball without affecting the others using the Inspector."
#: ../../docs/getting_started/step_by_step/instancing.rst:121
msgid "Change the properties of one ball without affecting the others using the :ui:`Inspector`."
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:122
#: ../../docs/getting_started/step_by_step/instancing.rst:123
msgid "Change the default properties of every Ball by opening the ``ball.tscn`` scene and making a change to the Ball node there. Upon saving, all instances of the Ball in the project will see their values update."
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:126
#: ../../docs/getting_started/step_by_step/instancing.rst:127
msgid "Changing a property on an instance always overrides values from the corresponding packed scene."
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:129
#: ../../docs/getting_started/step_by_step/instancing.rst:130
msgid "Let's try this. Double-click ``ball.tscn`` in the FileSystem to open it."
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:133
msgid "In the Scene dock on the left, select the Ball node. Then, in the Inspector on the right, click on the PhysicsMaterial property to expand it."
#: ../../docs/getting_started/step_by_step/instancing.rst:134
msgid "In the Scene dock on the left, select the Ball node. Then, in the :ui:`Inspector` on the right, click on the :inspector:`PhysicsMaterial` property to expand it."
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:138
#: ../../docs/getting_started/step_by_step/instancing.rst:139
msgid "Set its Bounce property to ``0.5`` by clicking on the number field, typing ``0.5``, and pressing :kbd:`Enter`."
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:143
#: ../../docs/getting_started/step_by_step/instancing.rst:144
msgid "Play the game by pressing :kbd:`F5` (:kbd:`Cmd + B` on macOS) and notice how all balls now bounce a lot more. As the Ball scene is a template for all instances, modifying it and saving causes all instances to update accordingly."
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:147
#: ../../docs/getting_started/step_by_step/instancing.rst:148
msgid "Let's now adjust an individual instance. Head back to the Main scene by clicking on the corresponding tab above the viewport."
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:152
msgid "Select one of the instanced Ball nodes and, in the Inspector, set its Gravity Scale value to ``10``."
#: ../../docs/getting_started/step_by_step/instancing.rst:153
msgid "Select one of the instanced Ball nodes and, in the :ui:`Inspector`, set its :inspector:`Gravity Scale` value to ``10``."
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:157
#: ../../docs/getting_started/step_by_step/instancing.rst:158
msgid "A grey \"revert\" button appears next to the adjusted property."
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:161
#: ../../docs/getting_started/step_by_step/instancing.rst:162
msgid "This icon indicates you are overriding a value from the source packed scene. Even if you modify the property in the original scene, the value override will be preserved in the instance. Clicking the revert icon will restore the property to the value in the saved scene."
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:166
#: ../../docs/getting_started/step_by_step/instancing.rst:167
msgid "Rerun the game and notice how this ball now falls much faster than the others."
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:170
msgid "You may notice you are unable to change the values of the PhysicsMaterial of the ball. This is because PhysicsMaterial is a *resource*, and needs to be made unique before you can edit it in a scene that is linking to its original scene. To make a resource unique for one instance, right-click on the **Physics Material** property in the Inspector and click **Make Unique** in the context menu."
#: ../../docs/getting_started/step_by_step/instancing.rst:171
msgid "You may notice you are unable to change the values of the :inspector:`PhysicsMaterial` of the ball. This is because :inspector:`PhysicsMaterial` is a *resource*, and needs to be made unique before you can edit it in a scene that is linking to its original scene. To make a resource unique for one instance, right-click on the :inspector:`Physics Material` property in the :ui:`Inspector` and click :button:`Make Unique` in the context menu."
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:177
#: ../../docs/getting_started/step_by_step/instancing.rst:178
msgid "Resources are another essential building block of Godot games we will cover in a later lesson."
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:181
#: ../../docs/getting_started/step_by_step/instancing.rst:182
msgid "Scene instances as a design language"
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:183
#: ../../docs/getting_started/step_by_step/instancing.rst:184
msgid "Instances and scenes in Godot offer an excellent design language, setting the engine apart from others out there. We designed Godot around this concept from the ground up."
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:187
#: ../../docs/getting_started/step_by_step/instancing.rst:188
msgid "We recommend dismissing architectural code patterns when making games with Godot, such as Model-View-Controller (MVC) or Entity-Relationship diagrams. Instead, you can start by imagining the elements players will see in your game and structure your code around them."
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:192
#: ../../docs/getting_started/step_by_step/instancing.rst:193
msgid "For example, you could break down a shooter game like so:"
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:196
#: ../../docs/getting_started/step_by_step/instancing.rst:197
msgid "You can come up with a diagram like this for almost any type of game. Each rectangle represents an entity that's visible in the game from the player's perspective. The arrows point towards the instantiator of each scene."
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:200
#: ../../docs/getting_started/step_by_step/instancing.rst:201
msgid "Once you have a diagram, we recommend creating a scene for each element listed in it to develop your game. You'll use instancing, either by code or directly in the editor, to build your tree of scenes."
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:204
#: ../../docs/getting_started/step_by_step/instancing.rst:205
msgid "Programmers tend to spend a lot of time designing abstract architectures and trying to fit components into it. Designing based on scenes makes development faster and more straightforward, allowing you to focus on the game logic itself. Because most game components map directly to a scene, using a design based on scene instantiation means you need little other architectural code."
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:210
#: ../../docs/getting_started/step_by_step/instancing.rst:211
msgid "Here's the example of a scene diagram for an open-world game with tons of assets and nested elements:"
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:215
#: ../../docs/getting_started/step_by_step/instancing.rst:216
msgid "Imagine we started by creating the room. We could make a couple of different room scenes, with unique arrangements of furniture in them. Later, we could make a house scene that uses multiple room instances for the interior. We would create a citadel out of many instanced houses and a large terrain on which we would place the citadel. Each of these would be a scene instancing one or more sub-scenes."
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:221
#: ../../docs/getting_started/step_by_step/instancing.rst:222
msgid "Later, we could create scenes representing guards and add them to the citadel. They would be indirectly added to the overall game world."
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:224
#: ../../docs/getting_started/step_by_step/instancing.rst:225
msgid "With Godot, it's easy to iterate on your game like this, as all you need to do is create and instantiate more scenes. We designed the editor to be accessible to programmers, designers, and artists alike. A typical team development process can involve 2D or 3D artists, level designers, game designers, and animators, all working with the Godot editor."
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:231
#: ../../docs/getting_started/step_by_step/instancing.rst:232
msgid "Summary"
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:233
#: ../../docs/getting_started/step_by_step/instancing.rst:234
msgid "Instancing, the process of producing an object from a blueprint, has many handy uses. With scenes, it gives you:"
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:236
#: ../../docs/getting_started/step_by_step/instancing.rst:237
msgid "The ability to divide your game into reusable components."
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:237
#: ../../docs/getting_started/step_by_step/instancing.rst:238
msgid "A tool to structure and encapsulate complex systems."
msgstr ""
#: ../../docs/getting_started/step_by_step/instancing.rst:238
#: ../../docs/getting_started/step_by_step/instancing.rst:239
msgid "A language to think about your game project's structure in a natural way."
msgstr ""

View File

@@ -100,7 +100,7 @@ msgid "Let's create our first scene with a single node. To do so, you will need
msgstr ""
#: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:75
msgid "In an empty scene, the Scene dock on the left shows several options to add a root node quickly. :button:`2D Scene` adds a :ref:`Node2D <class_Node2D>` node, :button:`3D Scene` adds a :ref:`Node3D <class_Node3D>` node, and :button:`User Interface` adds a :ref:`Control <class_Control>` node. These presets are here for convenience; they are not mandatory. :button:`Other Node` lets you select any node to be the root node. In an empty scene, :button:`Other Node` is equivalent to pressing the :button:`Add Child Node` button at the top-left of the Scene dock, which usually adds a new node as a child of the currently selected node."
msgid "In an empty scene, the :ui:`Scene` dock on the left shows several options to add a root node quickly. :button:`2D Scene` adds a :ref:`Node2D <class_Node2D>` node, :button:`3D Scene` adds a :ref:`Node3D <class_Node3D>` node, and :button:`User Interface` adds a :ref:`Control <class_Control>` node. These presets are here for convenience; they are not mandatory. :button:`Other Node` lets you select any node to be the root node. In an empty scene, :button:`Other Node` is equivalent to pressing the :button:`Add Child Node` button at the top-left of the Scene dock, which usually adds a new node as a child of the currently selected node."
msgstr ""
#: ../../docs/getting_started/step_by_step/nodes_and_scenes.rst:85

View File

@@ -40,7 +40,7 @@ msgid "Please :ref:`create a new project <doc_creating_and_importing_projects>`
msgstr ""
#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:44
msgid "We need to create a Sprite2D node to display it in the game. In the Scene dock, click the **Other Node** button."
msgid "We need to create a Sprite2D node to display it in the game. In the :ui:`Scene` dock, click the :button:`Other Node` button."
msgstr ""
#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:49
@@ -48,11 +48,11 @@ msgid "Type \"Sprite2D\" in the search bar to filter nodes and double-click on S
msgstr ""
#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:54
msgid "Your Scene tab should now only have a Sprite2D node."
msgid "Your :ui:`Scene` tab should now only have a Sprite2D node."
msgstr ""
#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:58
msgid "A Sprite2D node needs a texture to display. In the Inspector on the right, you can see that the **Texture** property says ``<empty>``. To display the Godot icon, click and drag the file ``icon.svg`` from the FileSystem dock onto the Texture slot."
msgid "A Sprite2D node needs a texture to display. In the :ui:`Inspector` on the right, you can see that the :inspector:`Texture` property says ``<empty>``. To display the Godot icon, click and drag the file ``icon.svg`` from the FileSystem dock onto the Texture slot."
msgstr ""
#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:67
@@ -68,15 +68,15 @@ msgid "Creating a new script"
msgstr ""
#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:77
msgid "To create and attach a new script to our node, right-click on Sprite2D in the Scene dock and select **Attach Script**."
msgid "To create and attach a new script to our node, right-click on Sprite2D in the Scene dock and select :button:`Attach Script`."
msgstr ""
#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:82
msgid "The **Attach Node Script** window appears. It allows you to select the script's language and file path, among other options."
msgid "The :ui:`Attach Node Script` window appears. It allows you to select the script's language and file path, among other options."
msgstr ""
#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:85
msgid "Change the **Template** field from ``Node: Default`` to ``Object: Empty`` to start with a clean file. Leave the other options set to their default values and click the **Create** button to create the script."
msgid "Change the :ui:`Template` field from ``Node: Default`` to ``Object: Empty`` to start with a clean file. Leave the other options set to their default values and click the :button:`Create` button to create the script."
msgstr ""
#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:93
@@ -84,7 +84,7 @@ msgid "C# script names need to match their class name. In this case, you should
msgstr ""
#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:96
msgid "The Script workspace should appear with your new ``sprite_2d.gd`` file open and the following line of code:"
msgid "The :ui:`Script` workspace should appear with your new ``sprite_2d.gd`` file open and the following line of code:"
msgstr ""
#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:113
@@ -96,15 +96,15 @@ msgid "In GDScript, if you omit the line with the ``extends`` keyword, your clas
msgstr ""
#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:123
msgid "Inherited properties include the ones you can see in the Inspector dock, like our node's ``texture``."
msgid "Inherited properties include the ones you can see in the :ui:`Inspector` dock, like our node's ``texture``."
msgstr ""
#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:128
msgid "By default, the Inspector displays a node's properties in \"Title Case\", with capitalized words separated by a space. In GDScript code, these properties are in \"snake_case\", which is lowercase with words separated by an underscore."
msgid "By default, the :ui:`Inspector` displays a node's properties in \"Title Case\", with capitalized words separated by a space. In GDScript code, these properties are in \"snake_case\", which is lowercase with words separated by an underscore."
msgstr ""
#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:132
msgid "You can hover over any property's name in the Inspector to see a description and its identifier in code."
msgid "You can hover over any property's name in the :ui:`Inspector` to see a description and its identifier in code."
msgstr ""
#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:136
@@ -128,7 +128,7 @@ msgid "GDScript is an indent-based language. The tab at the start of the line th
msgstr ""
#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:167
msgid "Save the scene as ``sprite_2d.tscn`` if you haven't already, then press :kbd:`F6` (:kbd:`Cmd + R` on macOS) to run it. Look at the **Output** bottom panel that expands. It should display \"Hello, world!\"."
msgid "Save the scene as ``sprite_2d.tscn`` if you haven't already, then press :kbd:`F6` (:kbd:`Cmd + R` on macOS) to run it. Look at the :ui:`Output` bottom panel that expands. It should display \"Hello, world!\"."
msgstr ""
#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:173
@@ -140,7 +140,7 @@ msgid "Turning around"
msgstr ""
#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:179
msgid "It's time to make our node move and rotate. To do so, we're going to add two member variables to our script: the movement speed in pixels per second and the angular speed in radians per second. Add the following after the ``extends Sprite2D`` line."
msgid "It's time to make our node move and rotate. To do so, we're going to add two member variables to our script: the movement speed in pixels per second and the angular speed in radians per second. Add the following after the ``extends Sprite2D`` line."
msgstr ""
#: ../../docs/getting_started/step_by_step/scripting_first_script.rst:194

View File

@@ -60,7 +60,7 @@ msgid "The two actions we use above, \"ui_left\" and \"ui_right\", are predefine
msgstr ""
#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:77
msgid "You can see and edit input actions in your project by going to Project -> Project Settings and clicking on the Input Map tab."
msgid "You can see and edit input actions in your project by going to :menu:`Project > Project Settings` and clicking on the :ui:`Input Map` tab."
msgstr ""
#: ../../docs/getting_started/step_by_step/scripting_player_input.rst:80

View File

@@ -68,11 +68,11 @@ msgid "To add a button to our game, we will create a new scene which will includ
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:61
msgid "Create a new scene by going to the menu Scene -> New Scene."
msgid "Create a new scene by going to the menu :menu:`Scene > New Scene`."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:65
msgid "In the Scene dock, click the 2D Scene button. This will add a :ref:`Node2D <class_Node2D>` as our root."
msgid "In the Scene dock, click the :button:`2D Scene` button. This will add a :ref:`Node2D <class_Node2D>` as our root."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:70
@@ -80,7 +80,7 @@ msgid "In the FileSystem dock, click and drag the ``sprite_2d.tscn`` file you sa
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:75
msgid "We want to add another node as a sibling of the Sprite2D. To do so, right-click on Node2D and select Add Child Node."
msgid "We want to add another node as a sibling of the Sprite2D. To do so, right-click on Node2D and select :button:`Add Child Node`."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:80
@@ -100,7 +100,7 @@ msgid "Click and drag on the button itself to move it closer to the sprite."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:95
msgid "You can also write a label on the Button by editing its Text property in the Inspector. Enter ``Toggle motion``."
msgid "You can also write a label on the Button by editing its :inspector:`Text` property in the :ui:`Inspector`. Enter ``Toggle motion``."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:100
@@ -120,201 +120,201 @@ msgid "Here, we want to connect the Button's \"pressed\" signal to our Sprite2D,
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:117
msgid "You can connect signals in the Node dock. Select the Button node and, on the right side of the editor, click on the tab named \"Node\" next to the Inspector."
msgid "You can connect signals in the :ui:`Node` dock. Select the Button node and, on the right side of the editor, click on the tab named :ui:`Node` next to the :ui:`Inspector`."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:122
#: ../../docs/getting_started/step_by_step/signals.rst:123
msgid "The dock displays a list of signals available on the selected node."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:126
#: ../../docs/getting_started/step_by_step/signals.rst:127
msgid "Double-click the \"pressed\" signal to open the node connection window."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:130
#: ../../docs/getting_started/step_by_step/signals.rst:131
msgid "There, you can connect the signal to the Sprite2D node. The node needs a receiver method, a function that Godot will call when the Button emits the signal. The editor generates one for you. By convention, we name these callback methods \"_on_node_name_signal_name\". Here, it'll be \"_on_button_pressed\"."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:137
#: ../../docs/getting_started/step_by_step/signals.rst:138
msgid "When connecting signals via the editor's Node dock, you can use two modes. The simple one only allows you to connect to nodes that have a script attached to them and creates a new callback function on them."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:143
msgid "The advanced view lets you connect to any node and any built-in function, add arguments to the callback, and set options. You can toggle the mode in the window's bottom-right by clicking the Advanced button."
#: ../../docs/getting_started/step_by_step/signals.rst:144
msgid "The advanced view lets you connect to any node and any built-in function, add arguments to the callback, and set options. You can toggle the mode in the window's bottom-right by clicking the :button:`Advanced` button."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:150
#: ../../docs/getting_started/step_by_step/signals.rst:151
msgid "If you are using an external editor (such as VS Code), this automatic code generation might not work. In this case, you need to connect the signal via code as explained in the next section."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:154
msgid "Click the Connect button to complete the signal connection and jump to the Script workspace. You should see the new method with a connection icon in the left margin."
#: ../../docs/getting_started/step_by_step/signals.rst:155
msgid "Click the :button:`Connect` button to complete the signal connection and jump to the :ui:`Script` workspace. You should see the new method with a connection icon in the left margin."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:160
#: ../../docs/getting_started/step_by_step/signals.rst:161
msgid "If you click the icon, a window pops up and displays information about the connection. This feature is only available when connecting nodes in the editor."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:165
#: ../../docs/getting_started/step_by_step/signals.rst:166
msgid "Let's replace the line with the ``pass`` keyword with code that'll toggle the node's motion."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:168
#: ../../docs/getting_started/step_by_step/signals.rst:169
msgid "Our Sprite2D moves thanks to code in the ``_process()`` function. Godot provides a method to toggle processing on and off: :ref:`Node.set_process() <class_Node_method_set_process>`. Another method of the Node class, ``is_processing()``, returns ``true`` if idle processing is active. We can use the ``not`` keyword to invert the value."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:188
#: ../../docs/getting_started/step_by_step/signals.rst:189
msgid "This function will toggle processing and, in turn, the icon's motion on and off upon pressing the button."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:191
#: ../../docs/getting_started/step_by_step/signals.rst:192
msgid "Before trying the game, we need to simplify our ``_process()`` function to move the node automatically and not wait for user input. Replace it with the following code, which we saw two lessons ago:"
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:212
#: ../../docs/getting_started/step_by_step/signals.rst:213
msgid "Your complete ``sprite_2d.gd`` code should look like the following."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:255
#: ../../docs/getting_started/step_by_step/signals.rst:256
msgid "Run the current scene by pressing :kbd:`F6` (:kbd:`Cmd + R` on macOS), and click the button to see the sprite start and stop."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:259
#: ../../docs/getting_started/step_by_step/signals.rst:260
msgid "Connecting a signal via code"
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:261
#: ../../docs/getting_started/step_by_step/signals.rst:262
msgid "You can connect signals via code instead of using the editor. This is necessary when you create nodes or instantiate scenes inside of a script."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:264
#: ../../docs/getting_started/step_by_step/signals.rst:265
msgid "Let's use a different node here. Godot has a :ref:`Timer <class_Timer>` node that's useful to implement skill cooldown times, weapon reloading, and more."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:267
#: ../../docs/getting_started/step_by_step/signals.rst:268
msgid "Head back to the 2D workspace. You can either click the \"2D\" text at the top of the window or press :kbd:`Ctrl + F1` (:kbd:`Ctrl + Cmd + 1` on macOS)."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:270
#: ../../docs/getting_started/step_by_step/signals.rst:271
msgid "In the Scene dock, right-click on the Sprite2D node and add a new child node. Search for Timer and add the corresponding node. Your scene should now look like this."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:276
msgid "With the Timer node selected, go to the Inspector and enable the **Autostart** property."
#: ../../docs/getting_started/step_by_step/signals.rst:277
msgid "With the Timer node selected, go to the :ui:`Inspector` and enable the :inspector:`Autostart` property."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:281
#: ../../docs/getting_started/step_by_step/signals.rst:282
msgid "Click the script icon next to Sprite2D to jump back to the scripting workspace."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:285
#: ../../docs/getting_started/step_by_step/signals.rst:286
msgid "We need to do two operations to connect the nodes via code:"
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:287
#: ../../docs/getting_started/step_by_step/signals.rst:288
msgid "Get a reference to the Timer from the Sprite2D."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:288
#: ../../docs/getting_started/step_by_step/signals.rst:289
msgid "Call the ``connect()`` method on the Timer's \"timeout\" signal."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:290
#: ../../docs/getting_started/step_by_step/signals.rst:291
msgid "To connect to a signal via code, you need to call the ``connect()`` method of the signal you want to listen to. In this case, we want to listen to the Timer's \"timeout\" signal."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:294
#: ../../docs/getting_started/step_by_step/signals.rst:295
msgid "We want to connect the signal when the scene is instantiated, and we can do that using the :ref:`Node._ready() <class_Node_private_method__ready>` built-in function, which is called automatically by the engine when a node is fully instantiated."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:298
#: ../../docs/getting_started/step_by_step/signals.rst:299
msgid "To get a reference to a node relative to the current one, we use the method :ref:`Node.get_node() <class_Node_method_get_node>`. We can store the reference in a variable."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:315
#: ../../docs/getting_started/step_by_step/signals.rst:316
msgid "The function ``get_node()`` looks at the Sprite2D's children and gets nodes by their name. For example, if you renamed the Timer node to \"BlinkingTimer\" in the editor, you would have to change the call to ``get_node(\"BlinkingTimer\")``."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:321
#: ../../docs/getting_started/step_by_step/signals.rst:322
msgid "We can now connect the Timer to the Sprite2D in the ``_ready()`` function."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:338
#: ../../docs/getting_started/step_by_step/signals.rst:339
msgid "The line reads like so: we connect the Timer's \"timeout\" signal to the node to which the script is attached. When the Timer emits ``timeout``, we want to call the function ``_on_timer_timeout()``, that we need to define. Let's add it at the bottom of our script and use it to toggle our sprite's visibility."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:343
#: ../../docs/getting_started/step_by_step/signals.rst:344
msgid "By convention, we name these callback methods in GDScript as \"_on_node_name_signal_name\" and in C# as \"OnNodeNameSignalName\". Here, it'll be \"_on_timer_timeout\" for GDScript and OnTimerTimeout() for C#."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:360
#: ../../docs/getting_started/step_by_step/signals.rst:361
msgid "The ``visible`` property is a boolean that controls the visibility of our node. The line ``visible = not visible`` toggles the value. If ``visible`` is ``true``, it becomes ``false``, and vice-versa."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:364
#: ../../docs/getting_started/step_by_step/signals.rst:365
msgid "If you run the Node2D scene now, you will see that the sprite blinks on and off, at one second intervals."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:368
#: ../../docs/getting_started/step_by_step/signals.rst:369
msgid "Complete script"
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:370
#: ../../docs/getting_started/step_by_step/signals.rst:371
msgid "That's it for our little moving and blinking Godot icon demo! Here is the complete ``sprite_2d.gd`` file for reference."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:435
#: ../../docs/getting_started/step_by_step/signals.rst:436
msgid "Custom signals"
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:437
#: ../../docs/getting_started/step_by_step/signals.rst:438
msgid "This section is a reference on how to define and use your own signals, and does not build upon the project created in previous lessons."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:440
#: ../../docs/getting_started/step_by_step/signals.rst:441
msgid "You can define custom signals in a script. Say, for example, that you want to show a game over screen when the player's health reaches zero. To do so, you could define a signal named \"died\" or \"health_depleted\" when their health reaches 0."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:466
#: ../../docs/getting_started/step_by_step/signals.rst:467
msgid "As signals represent events that just occurred, we generally use an action verb in the past tense in their names."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:469
msgid "Your signals work the same way as built-in ones: they appear in the Node tab and you can connect to them like any other."
#: ../../docs/getting_started/step_by_step/signals.rst:470
msgid "Your signals work the same way as built-in ones: they appear in the :ui:`Node` tab and you can connect to them like any other."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:474
#: ../../docs/getting_started/step_by_step/signals.rst:475
msgid "To emit a signal in your scripts, call ``emit()`` on the signal."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:496
#: ../../docs/getting_started/step_by_step/signals.rst:497
msgid "A signal can optionally declare one or more arguments. Specify the argument names between parentheses:"
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:522
#: ../../docs/getting_started/step_by_step/signals.rst:523
msgid "The signal arguments show up in the editor's node dock, and Godot can use them to generate callback functions for you. However, you can still emit any number of arguments when you emit signals. So it's up to you to emit the correct values."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:527
#: ../../docs/getting_started/step_by_step/signals.rst:528
msgid "To emit values along with the signal, add them as extra arguments to the ``emit()`` function:"
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:548
#: ../../docs/getting_started/step_by_step/signals.rst:549
msgid "Summary"
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:550
#: ../../docs/getting_started/step_by_step/signals.rst:551
msgid "Any node in Godot emits signals when something specific happens to them, like a button being pressed. Other nodes can connect to individual signals and react to selected events."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:554
#: ../../docs/getting_started/step_by_step/signals.rst:555
msgid "Signals have many uses. With them, you can react to a node entering or exiting the game world, to a collision, to a character entering or leaving an area, to an element of the interface changing size, and much more."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:558
#: ../../docs/getting_started/step_by_step/signals.rst:559
msgid "For example, an :ref:`Area2D <class_Area2D>` representing a coin emits a ``body_entered`` signal whenever the player's physics body enters its collision shape, allowing you to know when the player collected it."
msgstr ""
#: ../../docs/getting_started/step_by_step/signals.rst:562
#: ../../docs/getting_started/step_by_step/signals.rst:563
msgid "In the next section, :ref:`doc_your_first_2d_game`, you'll create a complete 2D game and put everything you learned so far into practice."
msgstr ""

View File

@@ -76,5 +76,5 @@ msgid "The default values are good enough for many cases, but you can change gro
msgstr ""
#: ../../docs/tutorials/2d/2d_meshes.rst:52
msgid "Finally, push the ``Convert 2D Mesh`` button and your Sprite2D will be replaced:"
msgid "Finally, push the :button:`Convert 2D Mesh` button and your Sprite2D will be replaced:"
msgstr ""

View File

@@ -172,7 +172,7 @@ msgid "SDF collision nodes create a `signed distance field <https://www.reddit.c
msgstr ""
#: ../../docs/tutorials/3d/particles/collision.rst:144
msgid "To create an SDF collision node, add a new child node to your scene and select ``GPUParticlesCollisionSDF3D`` from the list of available nodes. SDF collision nodes have to be baked in order to have any effect on particles in the level. To do that, click the ``Bake SDF`` button in the viewport toolbar while the SDF collision node is selected and choose a directory to store the baked data. Since SDF collision needs to be baked in the editor, it's static and cannot change at runtime."
msgid "To create an SDF collision node, add a new child node to your scene and select ``GPUParticlesCollisionSDF3D`` from the list of available nodes. SDF collision nodes have to be baked in order to have any effect on particles in the level. To do that, click the :button:`Bake SDF` button in the viewport toolbar while the SDF collision node is selected and choose a directory to store the baked data. Since SDF collision needs to be baked in the editor, it's static and cannot change at runtime."
msgstr ""
#: ../../docs/tutorials/3d/particles/collision.rst:150

View File

@@ -104,165 +104,177 @@ msgid "The baked cell size of the NavigationMesh must match the NavigationServer
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:93
msgid "MeshLibrary format"
msgid "Lightmaps"
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:95
msgid "To summarize the specific constraints of the MeshLibrary format, a MeshLibrary scene has a Node3D as the root node, and several child nodes which will become MeshLibrary items. Each child of the root node should:"
msgid "It is possible to bake lightmaps onto a GridMap. Lightmap UV2 data will be reused from meshes if already present. If UV2 data is not present, then it will be automatically generated on bake with a lightmap texel size of 0.1 units. To generate UV2 data with a different lightmap texel size, you can set the global illumination mode in the Import dock to **Static Lightmaps** and specify the texel size there. This option must be changed *before* the scene is converted to a MeshLibrary, as changing it later on will not affect the existing MeshLibrary data."
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:99
msgid "Be a :ref:`class_MeshInstance3D`, which will become the MeshLibrary item. Only this visual mesh will be exported."
#: ../../docs/tutorials/3d/using_gridmaps.rst:104
msgid "Aside from this peculiarity, the lightmap baking process is the same as for any other 3D scene. See :ref:`doc_using_lightmap_gi` for more information about lightmap baking."
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:101
msgid "Have a material, in the mesh's material slot, *not* the MeshInstance3D's material slots."
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:103
msgid "Have up to one :ref:`class_StaticBody3D` child, for collision. The StaticBody3D should have one or more :ref:`class_CollisionShape3D` children."
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:105
msgid "Have up to one :ref:`class_NavigationRegion3D` child, for navigation. The NavigationRegion3D can have one or more additional :ref:`class_MeshInstance3D` children, which can be baked for navigation, but won't be exported as a visual mesh."
#: ../../docs/tutorials/3d/using_gridmaps.rst:108
msgid "MeshLibrary format"
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:110
msgid "Only this specific format is recognized. Other node types placed as children will not be recognized and exported. GridMap is not a general-purpose system for placing *nodes* on a grid, but rather a specific, optimized system, designed to place *meshes* with collisions and navigation."
msgid "To summarize the specific constraints of the MeshLibrary format, a MeshLibrary scene has a Node3D as the root node, and several child nodes which will become MeshLibrary items. Each child of the root node should:"
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:114
msgid "Be a :ref:`class_MeshInstance3D`, which will become the MeshLibrary item. Only this visual mesh will be exported."
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:116
msgid "Exporting the MeshLibrary"
msgid "Have a material, in the mesh's material slot, *not* the MeshInstance3D's material slots."
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:118
msgid "Have up to one :ref:`class_StaticBody3D` child, for collision. The StaticBody3D should have one or more :ref:`class_CollisionShape3D` children."
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:120
msgid "Have up to one :ref:`class_NavigationRegion3D` child, for navigation. The NavigationRegion3D can have one or more additional :ref:`class_MeshInstance3D` children, which can be baked for navigation, but won't be exported as a visual mesh."
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:125
msgid "Only this specific format is recognized. Other node types placed as children will not be recognized and exported. GridMap is not a general-purpose system for placing *nodes* on a grid, but rather a specific, optimized system, designed to place *meshes* with collisions and navigation."
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:131
msgid "Exporting the MeshLibrary"
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:133
msgid "To export the library, click on **Scene > Export As... > MeshLibrary...**, and save it as a resource."
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:123
msgid "You can find an already exported MeshLibrary in the project named \"MeshLibrary.tres\"."
#: ../../docs/tutorials/3d/using_gridmaps.rst:138
msgid "You can find an already exported MeshLibrary in the project named ``MeshLibrary.tres``."
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:126
#: ../../docs/tutorials/3d/using_gridmaps.rst:141
msgid "Using GridMap"
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:128
#: ../../docs/tutorials/3d/using_gridmaps.rst:143
msgid "Create a new scene and add a GridMap node. Add the mesh library by dragging the resource file from the FileSystem dock and dropping it in the **Mesh Library** property in the Inspector."
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:135
#: ../../docs/tutorials/3d/using_gridmaps.rst:150
msgid "Inspector properties"
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:137
#: ../../docs/tutorials/3d/using_gridmaps.rst:152
msgid "The **Physics Material** setting allows you to override the physics material for every mesh in the NavigationMesh."
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:140
#: ../../docs/tutorials/3d/using_gridmaps.rst:155
msgid "Under **Cells**, the **Size** property should be set to the size of your meshes. You can leave it at the default value for the demo. Uncheck the **Center Y** property."
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:143
#: ../../docs/tutorials/3d/using_gridmaps.rst:158
msgid "The **Collision** options allow you to set the collision layer, collision mask, and priority for the entire grid. For more information on how those work see the :ref:`doc_physics_index` section."
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:147
#: ../../docs/tutorials/3d/using_gridmaps.rst:162
msgid "Under **Navigation** is the \"Bake Navigation\" option. If enabled it creates a navigation region for each cell that uses a mesh library item with a navigation mesh."
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:151
#: ../../docs/tutorials/3d/using_gridmaps.rst:166
msgid "If you click on the MeshLibrary itself in the inspector you can adjust settings for individual meshes, such as their navigation mesh, navigation layers, or if the mesh casts shadows."
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:158
#: ../../docs/tutorials/3d/using_gridmaps.rst:173
msgid "GridMap panel"
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:160
#: ../../docs/tutorials/3d/using_gridmaps.rst:175
msgid "At the bottom of the editor is the GridMap panel, which should have opened automatically when you added the GridMap node."
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:165
#: ../../docs/tutorials/3d/using_gridmaps.rst:180
msgid "From left to right in the toolbar:"
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:167
#: ../../docs/tutorials/3d/using_gridmaps.rst:182
msgid "**Transform**: Adds a gizmo to the scene that allows you to change the relative position and rotation of the gridmap in the scene."
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:169
#: ../../docs/tutorials/3d/using_gridmaps.rst:184
msgid "**Selection**: While active you can select an area in the viewport, click and drag to select more than one space on the grid."
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:171
#: ../../docs/tutorials/3d/using_gridmaps.rst:186
msgid "**Erase**: While active, click in the viewport and delete meshes."
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:172
#: ../../docs/tutorials/3d/using_gridmaps.rst:187
msgid "**Paint**: While active, click in the viewport and add whatever mesh is currently selected in the GridMap panel to the scene."
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:174
#: ../../docs/tutorials/3d/using_gridmaps.rst:189
msgid "**Pick**: While active, clicking on a gridmap mesh in the viewport will cause it to be selected in the GridMap panel."
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:176
#: ../../docs/tutorials/3d/using_gridmaps.rst:191
msgid "**Fill**: Fill the area that has been selected in the viewport with whatever mesh is selected in the GridMap bottom panel."
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:178
#: ../../docs/tutorials/3d/using_gridmaps.rst:193
msgid "**Move**: Move whatever mesh or meshes are currently selected in the viewport."
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:179
#: ../../docs/tutorials/3d/using_gridmaps.rst:194
msgid "**Duplicate**: Create a copy of whatever the selected mesh or meshes in the GridMap are."
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:181
#: ../../docs/tutorials/3d/using_gridmaps.rst:196
msgid "**Delete**: Similar to erase, but for the entire selected area."
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:182
#: ../../docs/tutorials/3d/using_gridmaps.rst:197
msgid "**Cursor Rotate X**: While the paint tool is selected, this will rotate the mesh that will be painted on the X-axis. This will also rotate selected areas if they are being moved."
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:185
#: ../../docs/tutorials/3d/using_gridmaps.rst:200
msgid "**Cursor Rotate Y**: While the paint tool is selected, this will rotate the mesh that will be painted on the Y-axis. This will also rotate selected areas if they are being moved."
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:188
#: ../../docs/tutorials/3d/using_gridmaps.rst:203
msgid "**Cursor Rotate Z**: While the paint tool is selected, this will rotate the mesh that will be painted on the Z-axis. This will also rotate selected areas if they are being moved."
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:191
#: ../../docs/tutorials/3d/using_gridmaps.rst:206
msgid "**Change Grid Floor**: Adjusts what floor is currently being worked on, can be changed with the arrows or typing"
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:193
#: ../../docs/tutorials/3d/using_gridmaps.rst:208
msgid "**Filter Meshes**: Used to search for a specific mesh in the bottom panel."
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:194
#: ../../docs/tutorials/3d/using_gridmaps.rst:209
msgid "**Zoom**: Controls the zoom level on meshes in the bottom panel."
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:195
#: ../../docs/tutorials/3d/using_gridmaps.rst:210
msgid "**Layout toggles**: These two buttons toggle between different layouts for meshes in the bottom panel."
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:197
#: ../../docs/tutorials/3d/using_gridmaps.rst:212
msgid "**Tools dropdown**: This button opens a dropdown menu with a few more options."
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:201
#: ../../docs/tutorials/3d/using_gridmaps.rst:216
msgid "Clicking on **Settings** in that dropdown brings up a window that allows you to change the **Pick Distance**, which is the maximum distance at which tiles can be placed on a GridMap, relative to the camera position (in meters)."
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:206
#: ../../docs/tutorials/3d/using_gridmaps.rst:221
msgid "Using GridMap in code"
msgstr ""
#: ../../docs/tutorials/3d/using_gridmaps.rst:208
#: ../../docs/tutorials/3d/using_gridmaps.rst:223
msgid "See :ref:`class_GridMap` for details on the node's methods and member variables."
msgstr ""

View File

@@ -152,7 +152,7 @@ msgid "Keep going and build the whole skeleton:"
msgstr ""
#: ../../docs/tutorials/animation/2d_skeletons.rst:144
msgid "You will notice that all bones raise a warning about a missing rest pose. A rest pose is the default pose for a skeleton, you can come back to it anytime you want (which is very handy for animating). To set one click on the *skeleton* node in the scene tree, then click on the ``Skeleton2D`` button in the toolbar, and select ``Overwrite Rest Pose`` from the dropdown menu."
msgid "You will notice that all bones raise a warning about a missing rest pose. A rest pose is the default pose for a skeleton, you can come back to it anytime you want (which is very handy for animating). To set one click on the *skeleton* node in the scene tree, then click on the :button:`Skeleton2D` button in the toolbar, and select ``Overwrite Rest Pose`` from the dropdown menu."
msgstr ""
#: ../../docs/tutorials/animation/2d_skeletons.rst:152

View File

@@ -108,7 +108,7 @@ msgid "When you make an ``AnimationNodeBlendTree``, you get an empty 2d graph in
msgstr ""
#: ../../docs/tutorials/animation/animation_tree.rst:66
msgid "In order for animations to play, a node has to be connected to to the output. You can add nodes from the **Add Node..** menu or by right clicking an empty space:"
msgid "In order for animations to play, a node has to be connected to the output. You can add nodes from the **Add Node..** menu or by right clicking an empty space:"
msgstr ""
#: ../../docs/tutorials/animation/animation_tree.rst:70

View File

@@ -89,328 +89,364 @@ msgid "Movie Maker mode is disabled, click the \"movie reel\" icon to enable"
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:69
msgid "The icon gets a background matching the accent color when Movie Maker mode is enabled:"
msgid "A menu will be displayed with options to enable Movie Maker mode and to go to the settings. The icon gets a background matching the accent color when Movie Maker mode is enabled:"
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:72
#: ../../docs/tutorials/animation/creating_movies.rst:76
#: ../../docs/tutorials/animation/creating_movies.rst:73
#: ../../docs/tutorials/animation/creating_movies.rst:77
msgid "Movie Maker mode is enabled, click the \"movie reel\" icon again to disable"
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:78
#: ../../docs/tutorials/animation/creating_movies.rst:79
msgid "Movie Maker status is **not** persisted when the editor quits, so you must re-enable Movie Maker mode again after restarting the editor if needed."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:83
#: ../../docs/tutorials/animation/creating_movies.rst:84
msgid "Toggling Movie Maker mode while running the project will not have any effect until the project is restarted."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:86
#: ../../docs/tutorials/animation/creating_movies.rst:87
msgid "Before you can record video by running the project, you still need to configure the output file path. This path can be set for all scenes in the Project Settings:"
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:89
#: ../../docs/tutorials/animation/creating_movies.rst:93
#: ../../docs/tutorials/animation/creating_movies.rst:90
#: ../../docs/tutorials/animation/creating_movies.rst:94
msgid "Movie Maker project settings (with Advanced toggle enabled)"
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:95
#: ../../docs/tutorials/animation/creating_movies.rst:96
msgid "Alternatively, you can set the output file path on a per-scene basis by adding a String metadata with the name ``movie_file`` to the scene's **root node**. This is only used when the main scene is set to the scene in question, or when running the scene directly by pressing :kbd:`F6` (:kbd:`Cmd + R` on macOS)."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:100
#: ../../docs/tutorials/animation/creating_movies.rst:104
#: ../../docs/tutorials/animation/creating_movies.rst:101
#: ../../docs/tutorials/animation/creating_movies.rst:105
msgid "Inspector view after creating a ``movie_file`` metadata of type String"
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:106
#: ../../docs/tutorials/animation/creating_movies.rst:107
msgid "The path specified in the project settings or metadata can be either absolute, or relative to the project root."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:109
#: ../../docs/tutorials/animation/creating_movies.rst:110
msgid "Once you've configured and enabled Movie Maker mode, it will be automatically used when running the project from the editor."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:113
#: ../../docs/tutorials/animation/creating_movies.rst:114
msgid "Command line usage"
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:115
#: ../../docs/tutorials/animation/creating_movies.rst:116
msgid "Movie Maker can also be enabled from the :ref:`command line <doc_command_line_tutorial>`:"
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:121
#: ../../docs/tutorials/animation/creating_movies.rst:122
msgid "If the output path is relative, then it is **relative to the project folder**, not the current working directory. In the above example, the file will be written to ``/path/to/your_project/output.avi``. This behavior is similar to the ``--export-release`` command line argument."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:126
#: ../../docs/tutorials/animation/creating_movies.rst:127
msgid "Since Movie Maker's output resolution is set by the viewport size, you can adjust the window size on startup to override it if the project uses the ``disabled`` or ``canvas_items`` :ref:`stretch mode <doc_multiple_resolutions>`:"
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:134
#: ../../docs/tutorials/animation/creating_movies.rst:135
msgid "Note that the window size is clamped by your display's resolution. See :ref:`doc_creating_movies_recording_at_higher_resolution` if you need to record a video at a higher resolution than the screen resolution."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:138
#: ../../docs/tutorials/animation/creating_movies.rst:139
msgid "The recording FPS can also be overridden on the command line, without having to edit the Project Settings:"
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:147
#: ../../docs/tutorials/animation/creating_movies.rst:148
msgid "The ``--write-movie`` and ``--fixed-fps`` command line arguments are both available in exported projects. Movie Maker mode cannot be toggled while the project is running, but you can use the :ref:`OS.execute() <class_OS_method_execute>` method to run a second instance of the exported project that will record a video file."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:153
#: ../../docs/tutorials/animation/creating_movies.rst:154
msgid "Choosing an output format"
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:155
msgid "Output formats are provided by the :ref:`MovieWriter <class_MovieWriter>` class. Godot has 2 built-in :ref:`MovieWriters <class_MovieWriter>`, and more can be implemented by extensions:"
#: ../../docs/tutorials/animation/creating_movies.rst:156
msgid "Output formats are provided by the :ref:`MovieWriter <class_MovieWriter>` class. Godot has 3 built-in :ref:`MovieWriters <class_MovieWriter>`, and more can be implemented by extensions:"
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:160
msgid "AVI (recommended)"
#: ../../docs/tutorials/animation/creating_movies.rst:161
msgid "OGV (recommended)"
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:162
msgid "AVI container with MJPEG for video and uncompressed audio. Features lossy video compression, resulting in medium file sizes and fast encoding. The lossy compression quality can be adjusted by changing **Editor > Movie Writer > MJPEG Quality**."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:167
msgid "The resulting file can be viewed in most video players, but it must be converted to another format for viewing on the web or by Godot with the VideoStreamPlayer node. MJPEG does not support transparency. AVI output is currently limited to a file of 4 GB in size at most."
#: ../../docs/tutorials/animation/creating_movies.rst:163
msgid "OGV container with Theora for video and Vorbis for audio. Features lossy video and audio compression with a good balance of file size and encoding speed, with a better image quality than MJPEG. It has 4 speed levels that can be adjusted by changing **Editor > Movie Writer > Encoding Speed** with the fastest one being around as fast as AVI with better compression. At slower speed levels, it can compress even better while keeping the same image quality. The lossy compression quality can be adjusted by changing **Editor > Movie Writer > Video Quality** for video and **Editor > Movie Writer > Audio Quality** for audio."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:172
msgid "To use AVI, specify a path to a ``.avi`` file to be created in the **Editor > Movie Writer > Movie File** project setting."
msgid "The Keyframe Interval can be adjusted by changing **Editor > Movie Writer > Keyframe Interval**. In some cases, increasing this setting can improve compression efficiency without downsides."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:176
msgid "PNG"
msgid "The resulting file can be viewed in Godot with :ref:`VideoStreamPlayer <class_VideoStreamPlayer>` and most video players but not web browsers. OGV does not support transparency."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:178
msgid "PNG image sequence for video and WAV for audio. Features lossless video compression, at the cost of large file sizes and slow encoding. This is designed to be :ref:`encoded to a video file with an external tool after recording <doc_creating_movies_converting_avi>`."
#: ../../docs/tutorials/animation/creating_movies.rst:180
msgid "To use OGV, specify a path to a ``.ogv`` file to be created in the **Editor > Movie Writer > Movie File** project setting."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:183
msgid "Transparency is supported, but the root viewport **must** have its ``transparent_bg`` property set to ``true`` for transparency to be visible on the output image. This can be achieved by enabling the **Rendering > Transparent Background** advanced project setting. **Display > Window > Size > Transparent** and **Display > Window > Per Pixel Transparency > Enabled** can optionally be enabled to allow transparency to be previewed while recording the video, but they do not have to be enabled for the output image to contain transparency."
#: ../../docs/tutorials/animation/creating_movies.rst:185
msgid "OGV can only be recorded in editor builds. On the other hand, :ref:`OGV playback <doc_playing_videos>` is possible in both editor and export template builds."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:191
msgid "To use PNG, specify a ``.png`` file to be created in the **Editor > Movie Writer > Movie File** project setting. The generated ``.wav`` file will have the same name as the ``.png`` file (minus the extension)."
#: ../../docs/tutorials/animation/creating_movies.rst:190
msgid "AVI"
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:196
msgid "Custom"
#: ../../docs/tutorials/animation/creating_movies.rst:192
msgid "AVI container with MJPEG for video and uncompressed audio. Features lossy video compression, resulting in medium file sizes and fast encoding. The lossy compression quality can be adjusted by changing **Editor > Movie Writer > Video Quality**."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:198
msgid "If you need to encode directly to a different format or pipe a stream through third-party software, you can extend the MovieWriter class to create your own movie writers. This should typically be done using GDExtension for performance reasons."
#: ../../docs/tutorials/animation/creating_movies.rst:197
msgid "The resulting file can be viewed in most video players, but it must be converted to another format for viewing on the web or by Godot with the VideoStreamPlayer node. MJPEG does not support transparency. AVI output is currently limited to a file of 4 GB in size at most."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:204
msgid "Configuration"
#: ../../docs/tutorials/animation/creating_movies.rst:202
msgid "To use AVI, specify a path to a ``.avi`` file to be created in the **Editor > Movie Writer > Movie File** project setting."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:206
msgid "PNG"
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:208
msgid "PNG image sequence for video and WAV for audio. Features lossless video compression, at the cost of large file sizes and slow encoding. This is designed to be :ref:`encoded to a video file with an external tool after recording <doc_creating_movies_converting_avi>`."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:213
msgid "Transparency is supported, but the root viewport **must** have its ``transparent_bg`` property set to ``true`` for transparency to be visible on the output image. This can be achieved by enabling the **Rendering > Transparent Background** advanced project setting. **Display > Window > Size > Transparent** and **Display > Window > Per Pixel Transparency > Enabled** can optionally be enabled to allow transparency to be previewed while recording the video, but they do not have to be enabled for the output image to contain transparency."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:221
msgid "To use PNG, specify a ``.png`` file to be created in the **Editor > Movie Writer > Movie File** project setting. The generated ``.wav`` file will have the same name as the ``.png`` file (minus the extension)."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:226
msgid "Custom"
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:228
msgid "If you need to encode directly to a different format or pipe a stream through third-party software, you can extend the MovieWriter class to create your own movie writers. This should typically be done using GDExtension for performance reasons."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:234
msgid "Configuration"
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:236
msgid "In the **Editor > Movie Writer** section of the Project Settings, there are several options you can configure. Some of them are only visible after enabling the **Advanced** toggle in the top-right corner of the Project Settings dialog."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:210
#: ../../docs/tutorials/animation/creating_movies.rst:240
msgid "**Mix Rate Hz:** The audio mix rate to use in the recorded audio when writing a movie. This can be different from the project's mix rate, but this value must be divisible by the recorded FPS to prevent audio from desynchronizing over time."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:214
#: ../../docs/tutorials/animation/creating_movies.rst:244
msgid "**Speaker Mode:** The speaker mode to use in the recorded audio when writing a movie (stereo, 5.1 surround or 7.1 surround)."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:216
msgid "**MJPEG Quality:** The JPEG quality to use when writing a video to an AVI file, between ``0.01`` and ``1.0`` (inclusive). Higher quality values result in better-looking output at the cost of larger file sizes. Recommended quality values are between ``0.75`` and ``0.9``. Even at quality ``1.0``, JPEG compression remains lossy. This setting does not affect audio quality and is ignored when writing to a PNG image sequence."
#: ../../docs/tutorials/animation/creating_movies.rst:246
msgid "**Video Quality:** The image quality to use when writing a video to an OGV or AVI file, between ``0.01`` and ``1.0`` (inclusive). Higher quality values result in better-looking output at the cost of larger file sizes. Recommended quality values are between ``0.75`` and ``0.9``. Even at quality ``1.0``, compression remains lossy. This setting does not affect audio quality and is ignored when writing to a PNG image sequence."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:222
#: ../../docs/tutorials/animation/creating_movies.rst:252
msgid "**Movie File:** The output path for the movie. This can be absolute or relative to the project root."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:224
#: ../../docs/tutorials/animation/creating_movies.rst:254
msgid "**Disable V-Sync:** If enabled, requests V-Sync to be disabled when writing a movie. This can speed up video writing if the hardware is fast enough to render, encode and save the video at a framerate higher than the monitor's refresh rate. This setting has no effect if the operating system or graphics driver forces V-Sync with no way for applications to disable it."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:229
#: ../../docs/tutorials/animation/creating_movies.rst:259
msgid "**FPS:** The rendered frames per second in the output movie. Higher values result in smoother animation, at the cost of longer rendering times and larger output file sizes. Most video hosting platforms do not support FPS values higher than 60, but you can use a higher value and use that to generate motion blur."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:237
#: ../../docs/tutorials/animation/creating_movies.rst:264
msgid "**Audio Quality:** The audio quality to use when writing a video to an OGV file, between ``-0.1`` and ``1.0`` (inclusive). Higher quality values result in better audio quality at the cost of very slightly larger file sizes. Recommended quality values are between ``0.3`` and ``0.5``. Even at quality ``1.0``, compression remains lossy."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:269
msgid "**Encoding Speed:** The speed level to use when writing a video to an OGV file. Faster speed levels have less compression efficiency. The image quality stays barely the same."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:272
msgid "**Keyframe Interval:** Also known as GOP (Group Of Pictures), the maximum number of inter-frames to use when writing to an OGV file. Higher values can improve compression efficiency without quality loss but at the cost of slower video seeks."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:279
msgid "When using the ``disabled`` or ``2d`` :ref:`stretch modes <doc_multiple_resolutions>`, the output file's resolution is set by the window size. Make sure to resize the window *before* the splash screen has ended. For this purpose, it's recommended to adjust the **Display > Window > Size > Window Width Override** and **Window Height Override** advanced project settings."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:244
#: ../../docs/tutorials/animation/creating_movies.rst:286
msgid "See also :ref:`doc_creating_movies_recording_at_higher_resolution`."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:247
#: ../../docs/tutorials/animation/creating_movies.rst:289
msgid "Quitting Movie Maker mode"
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:249
#: ../../docs/tutorials/animation/creating_movies.rst:291
msgid "To safely quit a project that is using Movie Maker mode, use the X button at the top of the window, or call ``get_tree().quit()`` in a script. You can also use the ``--quit-after N`` command line argument where ``N`` is the number of frames to render before quitting."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:254
msgid "Pressing :kbd:`F8` (:kbd:`Cmd + .` on macOS) or pressing :kbd:`Ctrl + C` on the terminal running Godot is **not recommended**, as it will result in an improperly formatted AVI file with no duration information. For PNG image sequences, PNG images will not be negatively altered, but the associated WAV file will still lack duration information."
#: ../../docs/tutorials/animation/creating_movies.rst:296
msgid "Pressing :kbd:`F8` (:kbd:`Cmd + .` on macOS) or pressing :kbd:`Ctrl + C` on the terminal running Godot is **not recommended**, as it will result in an improperly formatted AVI file with no duration information. For PNG image sequences, PNG images will not be negatively altered, but the associated WAV file will still lack duration information. OGV files might end up with slightly different duration video and audio tracks but still valid."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:260
#: ../../docs/tutorials/animation/creating_movies.rst:303
msgid "Some video players may still be able to play the AVI or WAV file with working video and audio. However, software that makes use of the AVI or WAV file such as video editors may not be able to open the file. :ref:`Using a video converter program <doc_creating_movies_converting_avi>` can help in those cases."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:266
#: ../../docs/tutorials/animation/creating_movies.rst:309
msgid "If you're using an AnimationPlayer to control a \"main action\" in the scene (such as camera movement), you can enable the **Movie Quit On Finish** property on the AnimationPlayer node in question. When enabled, this property will make Godot quit on its own when an animation is done playing *and* the engine is running in Movie Maker mode. Note that *this property has no effect on looping animations*. Therefore, you need to make sure that the animation is set as non-looping."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:274
#: ../../docs/tutorials/animation/creating_movies.rst:317
msgid "Using high-quality graphics settings"
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:276
#: ../../docs/tutorials/animation/creating_movies.rst:319
msgid "The ``movie`` :ref:`feature tag <doc_feature_tags>` can be used to override specific project settings. This is useful to enable high-quality graphics settings that wouldn't be fast enough to run in real-time speeds on your hardware. Remember that putting every setting to its maximum value can still slow down movie saving speed, especially when recording at higher resolutions. Therefore, it's still recommended to only increase graphics settings if they make a meaningful difference in the output image."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:284
#: ../../docs/tutorials/animation/creating_movies.rst:327
msgid "This feature tag can also be queried in a script to increase quality settings that are set in the Environment resource. For example, to further improve SDFGI detail and reduce light leaking:"
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:321
#: ../../docs/tutorials/animation/creating_movies.rst:364
msgid "Rendering at a higher resolution than the screen resolution"
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:323
#: ../../docs/tutorials/animation/creating_movies.rst:366
msgid "The overall rendering quality can be improved significantly by rendering at high resolutions such as 4K or 8K."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:328
#: ../../docs/tutorials/animation/creating_movies.rst:371
msgid "For 3D rendering, Godot provides a **Rendering > Scaling 3D > Scale** advanced project setting, which can be set above ``1.0`` to obtain *supersample antialiasing*. The 3D rendering is then *downsampled* when it's drawn on the viewport. This provides an expensive but high-quality form of antialiasing, without increasing the final output resolution."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:334
#: ../../docs/tutorials/animation/creating_movies.rst:377
msgid "Consider using this project setting first, as it avoids slowing down movie writing speeds and increasing output file size compared to actually increasing the output resolution."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:338
#: ../../docs/tutorials/animation/creating_movies.rst:381
msgid "If you wish to render 2D at a higher resolution, or if you actually need the higher raw pixel output for 3D rendering, you can increase the resolution above what the screen allows."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:342
#: ../../docs/tutorials/animation/creating_movies.rst:385
msgid "By default, Godot uses the ``disabled`` :ref:`stretch modes <doc_multiple_resolutions>` in projects. If using ``disabled`` or ``canvas_items`` stretch mode, the window size dictates the output video resolution."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:346
#: ../../docs/tutorials/animation/creating_movies.rst:389
msgid "On the other hand, if the project is configured to use the ``viewport`` stretch mode, the viewport resolution dictates the output video resolution. The viewport resolution is set using the **Display > Window > Size > Viewport Width** and **Viewport Height** project settings. This can be used to render a video at a higher resolution than the screen resolution."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:352
#: ../../docs/tutorials/animation/creating_movies.rst:395
msgid "To make the window smaller during recording without affecting the output video resolution, you can set the **Display > Window > Size > Window Width Override** and **Window Height Override** advanced project settings to values greater than ``0``."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:357
#: ../../docs/tutorials/animation/creating_movies.rst:400
msgid "To apply a resolution override only when recording a movie, you can override those settings with the ``movie`` :ref:`feature tag <doc_feature_tags>`."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:361
#: ../../docs/tutorials/animation/creating_movies.rst:404
msgid "Post-processing steps"
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:363
#: ../../docs/tutorials/animation/creating_movies.rst:406
msgid "Some common post-processing steps are listed below."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:367
#: ../../docs/tutorials/animation/creating_movies.rst:410
msgid "When using several post-processing steps, try to perform all of them in a single FFmpeg command. This will save encoding time and improve quality by avoiding multiple lossy encoding steps."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:374
msgid "Converting AVI video to MP4"
#: ../../docs/tutorials/animation/creating_movies.rst:417
msgid "Converting OGV/AVI video to MP4"
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:376
#: ../../docs/tutorials/animation/creating_movies.rst:419
msgid "While some platforms such as YouTube support uploading the AVI file directly, many others will require a conversion step beforehand. `HandBrake <https://handbrake.fr/>`__ (GUI) and `FFmpeg <https://ffmpeg.org/>`__ (CLI) are popular open source tools for this purpose. FFmpeg has a steeper learning curve, but it's more powerful."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:381
msgid "The command below converts an AVI video to an MP4 (H.264) video with a Constant Rate Factor (CRF) of 15. This results in a relatively large file, but is well-suited for platforms that will re-encode your videos to reduce their size (such as most video sharing websites):"
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:390
msgid "To get a smaller file at the cost of quality, *increase* the CRF value in the above command."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:393
msgid "To get a file with a better size/quality ratio (at the cost of slower encoding times), add ``-preset veryslow`` before ``-crf 15`` in the above command. On the contrary, ``-preset veryfast`` can be used to achieve faster encoding at the cost of a worse size/quality ratio."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:401
msgid "Converting PNG image sequence + WAV audio to a video"
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:403
msgid "If you chose to record a PNG image sequence with a WAV file beside it, you need to convert it to a video before you can use it elsewhere."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:406
msgid "The filename for the PNG image sequence generated by Godot always contains 8 digits, starting at 0 with zero-padded numbers. If you specify an output path ``folder/example.png``, Godot will write ``folder/example00000000.png``, ``folder/example00000001.png``, and so on in that folder. The audio will be saved at ``folder/example.wav``."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:412
msgid "The FPS is specified using the ``-r`` argument. It should match the FPS specified during recording. Otherwise, the video will appear to be slowed down or sped up, and audio will be out of sync with the video."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:420
msgid "If you recorded a PNG image sequence with transparency enabled, you need to use a video format that supports storing transparency. MP4/H.264 doesn't support storing transparency, so you can use WebM/VP9 as an alternative:"
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:431
msgid "Cutting video"
#: ../../docs/tutorials/animation/creating_movies.rst:424
msgid "The command below converts an OGV/AVI video to an MP4 (H.264) video with a Constant Rate Factor (CRF) of 15. This results in a relatively large file, but is well-suited for platforms that will re-encode your videos to reduce their size (such as most video sharing websites):"
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:433
msgid "To get a smaller file at the cost of quality, *increase* the CRF value in the above command."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:436
msgid "To get a file with a better size/quality ratio (at the cost of slower encoding times), add ``-preset veryslow`` before ``-crf 15`` in the above command. On the contrary, ``-preset veryfast`` can be used to achieve faster encoding at the cost of a worse size/quality ratio."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:444
msgid "Converting PNG image sequence + WAV audio to a video"
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:446
msgid "If you chose to record a PNG image sequence with a WAV file beside it, you need to convert it to a video before you can use it elsewhere."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:449
msgid "The filename for the PNG image sequence generated by Godot always contains 8 digits, starting at 0 with zero-padded numbers. If you specify an output path ``folder/example.png``, Godot will write ``folder/example00000000.png``, ``folder/example00000001.png``, and so on in that folder. The audio will be saved at ``folder/example.wav``."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:455
msgid "The FPS is specified using the ``-r`` argument. It should match the FPS specified during recording. Otherwise, the video will appear to be slowed down or sped up, and audio will be out of sync with the video."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:463
msgid "If you recorded a PNG image sequence with transparency enabled, you need to use a video format that supports storing transparency. MP4/H.264 doesn't support storing transparency, so you can use WebM/VP9 as an alternative:"
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:474
msgid "Cutting video"
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:476
msgid "You can trim parts of the video you don't want to keep after the video is recorded. For example, to discard everything before 12.1 seconds and keep only 5.2 seconds of video after that point:"
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:441
#: ../../docs/tutorials/animation/creating_movies.rst:484
msgid "Cutting videos can also be done with the GUI tool `LosslessCut <https://mifi.github.io/lossless-cut/>`__."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:445
#: ../../docs/tutorials/animation/creating_movies.rst:488
msgid "Resizing video"
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:447
#: ../../docs/tutorials/animation/creating_movies.rst:490
msgid "The following command resizes a video to be 1080 pixels tall (1080p), while preserving its existing aspect ratio:"
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:458
#: ../../docs/tutorials/animation/creating_movies.rst:501
msgid "Reducing framerate"
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:460
#: ../../docs/tutorials/animation/creating_movies.rst:503
msgid "The following command changes a video's framerate to 30 FPS, dropping some of the original frames if there are more in the input video:"
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:468
#: ../../docs/tutorials/animation/creating_movies.rst:511
msgid "Generating accumulation motion blur with FFmpeg"
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:470
#: ../../docs/tutorials/animation/creating_movies.rst:513
msgid "Godot does not have built-in support for motion blur, but it can still be created in recorded videos."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:473
#: ../../docs/tutorials/animation/creating_movies.rst:516
msgid "If you record the video at a multiple of the original framerate, you can blend the frames together then reduce the frameate to produce a video with *accumulation motion blur*. This motion blur can look very good, but it can take a long time to generate since you have to render many more frames per second (on top of the time spent on post-processing)."
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:479
#: ../../docs/tutorials/animation/creating_movies.rst:522
msgid "Example with a 240 FPS source video, generating 4× motion blur and decreasing its output framerate to 60 FPS:"
msgstr ""
#: ../../docs/tutorials/animation/creating_movies.rst:486
#: ../../docs/tutorials/animation/creating_movies.rst:529
msgid "This also makes effects that converge over several frames (such as temporal antialiasing, SDFGI and volumetric fog) converge faster and therefore look better, since they'll be able to work with more data at a given time. See :ref:`doc_creating_movies_reducing_framerate` if you want to get this benefit without adding motion blur."
msgstr ""

View File

@@ -85,6 +85,7 @@ msgid "**Apply Root Scale:** If enabled, **Root Scale** will be *applied* on the
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:75
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:201
msgid "**Meshes**"
msgstr ""
@@ -133,6 +134,7 @@ msgid "Together, this information is enough to tell Godot how to use the bone po
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:129
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:232
msgid "**Animation**"
msgstr ""
@@ -184,120 +186,208 @@ msgstr ""
msgid "**Embedded Texture Handling:** Controls how textures embedded within fbx scenes should be handled. **Discard All Textures** will not import any textures, which is useful if you wish to manually set up materials in Godot instead. **Extract Textures** extracts textures to external images, resulting in smaller file sizes and more control over import options. **Embed as Basis Universal** and **Embed as Uncompressed** keeps the textures embedded in the imported scene, with and without VRAM compression respectively."
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:180
msgid "Using import scripts for automation"
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:177
msgid "**Blender-specific options**"
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:182
msgid "A special script to process the whole scene after import can be provided. This is great for post-processing, changing materials, doing funny stuff with the geometry, and more."
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:179
msgid "Only visible for ``.blend`` files."
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:186
msgid "Create a script that is not attached to any node by right-clicking in the FileSystem dock and choosing **New > Script…**. In the script editor, write the following:"
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:181
msgid "**Nodes**"
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:212
msgid "The ``_post_import(scene: Node)`` function takes the imported scene as argument (the parameter is actually the root node of the scene). The scene that will finally be used **must** be returned (even if the scene can be entirely different)."
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:183
msgid "**Visible:** **All** imports everything, even invisible objects. **Visible Only** only imports visible objects. **Renderable** only imports objects that are marked as renderable in Blender, regardless of whether they are actually visible. In Blender, renderability is toggled by clicking the camera icon next to each object in the Outliner, while visibility is toggled by the eye icon."
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:216
msgid "To use your script, locate the script in the import tab's \"Path\" option under the \"Import Script\" category."
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:188
msgid "**Active Collection Only:** If checked, only imports nodes that are in the active collection in Blender."
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:190
msgid "**Punctual Lights:** If checked, imports lights (directional, omni, and spot) from Blender. \"Punctual\" is not to be confused with \"positional\", which is why directional lights are also included."
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:193
msgid "**Cameras:** If checked, imports cameras from Blender."
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:194
msgid "**Custom Properties:** If checked, imports custom properties from Blender as glTF extras. This data can then be used from an editor plugin that uses :ref:`GLTFDocument.register_gltf_document_extension() <class_GLTFDocument_method_register_gltf_document_extension>`, which can set node metadata on import (among other use cases)."
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:198
msgid "**Modifiers:** If set to **No Modifiers**, object modifiers are ignored on import. If set to **All Modifiers**, applies modifiers to objects on import."
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:203
msgid "**Colors:** If checked, imports vertex colors from Blender."
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:204
msgid "**UVs:** If checked, imports vertex UV1 and UV2 from Blender."
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:205
msgid "**Normals:** If checked, imports vertex normals from Blender."
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:206
msgid "**Export Geometry Nodes Instances:** If checked, imports `geometry node <https://docs.blender.org/manual/en/latest/modeling/geometry_nodes/introduction.html>`__ instances from Blender."
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:209
msgid "**Tangents:** If checked, imports vertex tangents from Blender."
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:210
msgid "**Skins:** **None** skips skeleton skin data import from Blender. **4 Influences (Compatible)** imports skin data to be compatible with all renderers, at the cost of lower precision for certain rigs. **All Influences** imports skin data with all influences (up to 8 in Godot), which is more precise but may not be compatible with all renderers."
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:214
msgid "**Export Bones Deforming Mesh Only:** If checked, only imports bones that deform the mesh from Blender."
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:217
msgid "**Materials**"
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:219
msgid "Using animation libraries"
msgid "**Unpack Enabled:** If checked, unpacks the original images to the Godot filesystem and uses them. This allows changing image import settings like VRAM compression. If unchecked, allows Blender to convert the original images, such as repacking roughness and metallic into one roughness + metallic texture. In most cases, this option should be left checked, but if the ``.blend`` file's images aren't in the correct format, this must be disabled for correct behavior."
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:221
msgid "As of Godot 4.0, you can choose to import **only** animations from a glTF file and nothing else. This is used in some asset pipelines to distribute animations separately from models. For example, this allows you to use one set of animations for several characters, without having to duplicate animation data in every character."
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:225
msgid "**Export Materials:** If set to **Placeholder**, does not import materials, but keeps surface slots so that separate materials can be assigned to different surfaces. If set to **Export**, imports materials as-is (note that procedural Blender materials may not work correctly). If set to **Named Placeholder**, imports materials, but doesn't import images that are packed into the ``.blend`` file. Textures will have to be reassigned manually in the imported materials."
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:227
msgid "To do so, select the glTF file in the FileSystem dock, then change the import mode to Animation Library in the Import dock:"
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:230
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:234
msgid "Changing the import type to Animation Library in the Import dock"
msgid "**Limit Playback:** If checked, limits animation import to the playback range defined in Blender (the **Start** and **End** options at the right of the animation timeline in Blender). This can avoid including unused animation data, making the imported scene smaller and faster to load. However, this can also result in missing animation data if the playback range is not set correctly in Blender."
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:236
msgid "Click **Reimport** and restart the editor when prompted. After restarting, the glTF file will be imported as an :ref:`class_AnimationLibrary` instead of a :ref:`class_PackedScene`. This animation library can then be referenced in an :ref:`class_AnimationPlayer` node."
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:239
msgid "**Always Sample:** If checked, forces animation sampling on import to ensure consistency between how Blender and glTF perform animation interpolation, at the cost of larger file sizes. If unchecked, there may be differences in how animations are interpolated between what you see in Blender and the imported scene in Godot, due to different interpolation semantics between both."
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:241
msgid "The import options that are visible after changing the import mode to Animation Library act the same as when using the Scene import mode. See :ref:`doc_importing_3d_scenes_using_the_import_dock` for more information."
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:244
msgid "**Group Tracks:** If checked, imports animations (actives and on NLA tracks) as separate tracks. If unchecked, all the currently assigned actions become one glTF animation."
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:246
msgid "Filter script"
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:250
msgid "Using import scripts for automation"
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:248
msgid "It is possible to specify a filter script in a special syntax to decide which tracks from which animations should be kept."
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:252
msgid "A special script to process the whole scene after import can be provided. This is great for post-processing, changing materials, doing funny stuff with the geometry, and more."
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:251
msgid "The filter script is executed against each imported animation. The syntax consists of two types of statements, the first for choosing which animations to filter, and the second for filtering individual tracks within the matched animation. All name patterns are performed using a case-insensitive expression match, with support for ``?`` and ``*`` wildcards (using :ref:`String.matchn() <class_String_method_matchn>` under the hood)."
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:256
msgid "Create a script that is not attached to any node by right-clicking in the FileSystem dock and choosing **New > Script…**. In the script editor, write the following:"
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:258
msgid "The script must start with an animation filter statement (as denoted by the line beginning with an ``@``). For example, if we would like to apply filters to all imported animations which have a name ending in ``\"_Loop\"``:"
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:266
msgid "Similarly, additional patterns can be added to the same line, separated by commas. Here is a modified example to additionally *include* all animations with names that begin with ``\"Arm_Left\"``, but also *exclude* all animations which have names ending in ``\"Attack\"``:"
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:275
msgid "Following the animation selection filter statement, we add track filtering patterns to indicate which animation tracks should be kept or discarded. If no track filter patterns are specified, then all tracks within the matched animations will be discarded!"
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:280
msgid "It's important to note that track filter statements are applied in order for each track within the animation, this means that one line may include a track, a later rule can still discard it. Similarly, a track excluded by an early rule may then be re-included once again by a filter rule further down in the filter script."
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:282
msgid "The ``_post_import(scene: Node)`` function takes the imported scene as argument (the parameter is actually the root node of the scene). The scene that will finally be used **must** be returned (even if the scene can be entirely different)."
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:286
msgid "For example: include all tracks in animations with names ending in ``\"_Loop\"``, but discard any tracks affecting a ``\"Skeleton\"`` which end in ``\"Control\"``, unless they have ``\"Arm\"`` in their name:"
msgid "To use your script, locate the script in the import tab's \"Path\" option under the \"Import Script\" category."
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:289
msgid "Using animation libraries"
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:291
msgid "As of Godot 4.0, you can choose to import **only** animations from a glTF file and nothing else. This is used in some asset pipelines to distribute animations separately from models. For example, this allows you to use one set of animations for several characters, without having to duplicate animation data in every character."
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:297
msgid "In the above example, tracks like ``\"Skeleton:Leg_Control\"`` would be discarded, while tracks such as ``\"Skeleton:Head\"`` or ``\"Skeleton:Arm_Left_Control\"`` would be retained."
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:301
msgid "Any track filter lines that do not begin with a ``+`` or ``-`` are ignored."
msgid "To do so, select the glTF file in the FileSystem dock, then change the import mode to Animation Library in the Import dock:"
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:300
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:304
msgid "Scene inheritance"
msgid "Changing the import type to Animation Library in the Import dock"
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:306
msgid "Click **Reimport** and restart the editor when prompted. After restarting, the glTF file will be imported as an :ref:`class_AnimationLibrary` instead of a :ref:`class_PackedScene`. This animation library can then be referenced in an :ref:`class_AnimationPlayer` node."
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:311
msgid "The import options that are visible after changing the import mode to Animation Library act the same as when using the Scene import mode. See :ref:`doc_importing_3d_scenes_using_the_import_dock` for more information."
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:316
msgid "Filter script"
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:318
msgid "It is possible to specify a filter script in a special syntax to decide which tracks from which animations should be kept."
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:321
msgid "The filter script is executed against each imported animation. The syntax consists of two types of statements, the first for choosing which animations to filter, and the second for filtering individual tracks within the matched animation. All name patterns are performed using a case-insensitive expression match, with support for ``?`` and ``*`` wildcards (using :ref:`String.matchn() <class_String_method_matchn>` under the hood)."
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:328
msgid "The script must start with an animation filter statement (as denoted by the line beginning with an ``@``). For example, if we would like to apply filters to all imported animations which have a name ending in ``\"_Loop\"``:"
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:336
msgid "Similarly, additional patterns can be added to the same line, separated by commas. Here is a modified example to additionally *include* all animations with names that begin with ``\"Arm_Left\"``, but also *exclude* all animations which have names ending in ``\"Attack\"``:"
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:345
msgid "Following the animation selection filter statement, we add track filtering patterns to indicate which animation tracks should be kept or discarded. If no track filter patterns are specified, then all tracks within the matched animations will be discarded!"
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:350
msgid "It's important to note that track filter statements are applied in order for each track within the animation, this means that one line may include a track, a later rule can still discard it. Similarly, a track excluded by an early rule may then be re-included once again by a filter rule further down in the filter script."
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:356
msgid "For example: include all tracks in animations with names ending in ``\"_Loop\"``, but discard any tracks affecting a ``\"Skeleton\"`` which end in ``\"Control\"``, unless they have ``\"Arm\"`` in their name:"
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:367
msgid "In the above example, tracks like ``\"Skeleton:Leg_Control\"`` would be discarded, while tracks such as ``\"Skeleton:Head\"`` or ``\"Skeleton:Arm_Left_Control\"`` would be retained."
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:371
msgid "Any track filter lines that do not begin with a ``+`` or ``-`` are ignored."
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:374
msgid "Scene inheritance"
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:376
msgid "In many cases, it may be desired to make manual modifications to the imported scene. By default, this is not possible because if the source 3D asset changes, Godot will re-import the *whole* scene."
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:310
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:380
msgid "However, it is possible to make local modifications by using *scene inheritance*. If you try to open the imported scene using **Scene > Open Scene…** or **Scene > Quick Open Scene…**, the following dialog will appear:"
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:314
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:318
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:384
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:388
msgid "Dialog when opening an imported 3D scene in the editor"
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:320
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:390
msgid "In inherited scenes, the only limitations for modification are:"
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:322
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:392
msgid "Nodes from the base scene can't be removed, but additional nodes can be added anywhere."
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:324
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:394
msgid "Subresources can't be edited. Instead, you need to save them externally as described above."
msgstr ""
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:327
#: ../../docs/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst:397
msgid "Other than that, everything is allowed."
msgstr ""

View File

@@ -0,0 +1,32 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2014-present Juan Linietsky, Ariel Manzur and the Godot community (CC BY 3.0)
# This file is distributed under the same license as the Godot Engine package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine latest\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../docs/tutorials/export/exporting_for_visionos.rst:4
msgid "Exporting for visionOS"
msgstr ""
#: ../../docs/tutorials/export/exporting_for_visionos.rst:8
msgid "This page describes how to export a Godot project to visionOS. If you're looking to compile export template binaries from source instead, see :ref:`doc_compiling_for_visionos`."
msgstr ""
#: ../../docs/tutorials/export/exporting_for_visionos.rst:12
msgid "Exporting instructions for visionOS are currently identical to :ref:`doc_compiling_for_ios`, except you should add a **visionOS** export preset instead of **iOS**. See the linked page for details."
msgstr ""
#: ../../docs/tutorials/export/exporting_for_visionos.rst:18
msgid "Note that currently, only exporting an application for use on a flat plane within the headset is supported. Immersive experiences are not supported."
msgstr ""

View File

@@ -452,7 +452,7 @@ msgid "**shader_baker**"
msgstr ""
#: ../../docs/tutorials/export/feature_tags.rst:135
msgid "Project was exported with shader baking enabled (only applies to the exported project, not when running in the editor)"
msgid "Project was exported with :ref:`shader baking <doc_pipeline_compilations_shader_baker>` enabled (only applies to the exported project, not when running in the editor)"
msgstr ""
#: ../../docs/tutorials/export/feature_tags.rst:138

View File

@@ -196,181 +196,181 @@ msgid "The same text in different languages can vary greatly in length. For this
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:243
msgid "To check whether your UI can accommodate translations with longer strings than the original, you can enable *pseudolocalization* in the advanced Project Settings. This will replace all your localizable strings with longer versions of themselves, while also replacing some characters in the original strings with accented versions (while still being readable). Placeholders are kept as-is, so that they keep working when pseudolocalization is enabled."
msgid "To check whether your UI can accommodate translations with longer strings than the original, you can enable :ref:`pseudolocalization <doc_pseudolocalization>` in the advanced Project Settings. This will replace all your localizable strings with longer versions of themselves, while also replacing some characters in the original strings with accented versions (while still being readable). Placeholders are kept as-is, so that they keep working when pseudolocalization is enabled."
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:250
#: ../../docs/tutorials/i18n/internationalizing_games.rst:251
msgid "For example, the string ``Hello world, this is %s!`` becomes ``[Ĥéłłô ŵôŕłd́, ŧh̀íš íš %s!]`` when pseudolocalization is enabled."
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:253
#: ../../docs/tutorials/i18n/internationalizing_games.rst:254
msgid "While looking strange at first, pseudolocalization has several benefits:"
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:255
#: ../../docs/tutorials/i18n/internationalizing_games.rst:256
msgid "It lets you spot non-localizable strings quickly, so you can go over them and make them localizable (if it makes sense to do so)."
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:257
#: ../../docs/tutorials/i18n/internationalizing_games.rst:258
msgid "It lets you check UI elements that can't fit long strings. Many languages will feature much longer translations than the source text, so it's important to ensure your UI can accommodate longer-than-usual strings."
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:260
#: ../../docs/tutorials/i18n/internationalizing_games.rst:261
msgid "It lets you check whether your font contains all the characters required to support various languages. However, since the goal of pseudolocalization is to keep the original strings readable, it's not an effective test for checking whether a font can support :abbr:`CJK (Chinese, Japanese, Korean)` or right-to-left languages."
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:266
#: ../../docs/tutorials/i18n/internationalizing_games.rst:267
msgid "The project settings allow you to tune pseudolocalization behavior, so that you can disable parts of it if desired."
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:270
#: ../../docs/tutorials/i18n/internationalizing_games.rst:271
msgid "TranslationServer"
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:272
#: ../../docs/tutorials/i18n/internationalizing_games.rst:273
msgid "Godot has a server handling low-level translation management called the :ref:`TranslationServer <class_TranslationServer>`. Translations can be added or removed during runtime; the current language can also be changed at runtime."
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:280
#: ../../docs/tutorials/i18n/internationalizing_games.rst:281
msgid "Bidirectional text and UI Mirroring"
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:282
#: ../../docs/tutorials/i18n/internationalizing_games.rst:283
msgid "Arabic and Hebrew are written from right to left (except for the numbers and Latin words mixed in), and the user interface for these languages should be mirrored as well. In some languages the shape of a glyph changes depending on the surrounding characters."
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:286
#: ../../docs/tutorials/i18n/internationalizing_games.rst:287
msgid "Support for bidirectional writing systems and UI mirroring is transparent, you don't usually need to change anything or have any knowledge of the specific writing system."
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:289
#: ../../docs/tutorials/i18n/internationalizing_games.rst:290
msgid "For RTL languages, Godot will automatically do the following changes to the UI:"
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:291
#: ../../docs/tutorials/i18n/internationalizing_games.rst:292
msgid "Mirrors left/right anchors and margins."
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:292
#: ../../docs/tutorials/i18n/internationalizing_games.rst:293
msgid "Swaps left and right text alignment."
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:293
#: ../../docs/tutorials/i18n/internationalizing_games.rst:294
msgid "Mirrors horizontal order of the child controls in the containers, and items in Tree/ItemList controls."
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:294
#: ../../docs/tutorials/i18n/internationalizing_games.rst:295
msgid "Uses mirrored order of the internal control elements (e.g. OptionButton dropdown button, checkbox alignment, List column order, Tree item icons and connecting line alignment, e.t.c.), in some cases mirrored controls use separate theme styles."
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:295
#: ../../docs/tutorials/i18n/internationalizing_games.rst:296
msgid "Coordinate system is not mirrored, and non-UI nodes (sprites, e.t.c) are not affected."
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:297
#: ../../docs/tutorials/i18n/internationalizing_games.rst:298
msgid "It is possible to override text and control layout direction by using the following control properties:"
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:299
#: ../../docs/tutorials/i18n/internationalizing_games.rst:300
msgid "``text_direction``, sets the base text direction. When set to \"auto\", direction depends on the first strong directional character in the text according to the Unicode Bidirectional Algorithm,"
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:300
#: ../../docs/tutorials/i18n/internationalizing_games.rst:301
msgid "``language``, overrides current project locale."
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:301
#: ../../docs/tutorials/i18n/internationalizing_games.rst:302
msgid "``structured_text_bidi_override`` property and ``_structured_text_parser`` callback, enables special handling for structured text."
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:302
#: ../../docs/tutorials/i18n/internationalizing_games.rst:303
msgid "``layout_direction``, overrides control mirroring."
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:308
#: ../../docs/tutorials/i18n/internationalizing_games.rst:309
msgid "You can see how right-to-left typesetting works in action using the `BiDI and Font Features demo project <https://github.com/godotengine/godot-demo-projects/tree/master/gui/bidi_and_font_features>`__."
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:312
#: ../../docs/tutorials/i18n/internationalizing_games.rst:313
msgid "Adding break iterator data to exported project"
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:314
#: ../../docs/tutorials/i18n/internationalizing_games.rst:315
msgid "Some languages are written without spaces. In those languages, word and line breaking require more than rules over character sequences. Godot includes ICU rule and dictionary-based break iterator data, but this data is not included in exported projects by default."
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:319
#: ../../docs/tutorials/i18n/internationalizing_games.rst:320
msgid "To include it, go to **Project → Project Settings**, enable **Internationalization → Locale → Include Text Server Data**, then export the project. Break iterator data is about 4 MB in size."
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:323
#: ../../docs/tutorials/i18n/internationalizing_games.rst:324
msgid "Structured text BiDi override"
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:325
#: ../../docs/tutorials/i18n/internationalizing_games.rst:326
msgid "Unicode BiDi algorithm is designed to work with natural text and it's incapable of handling text with the higher level order, like file names, URIs, email addresses, regular expressions or source code."
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:331
#: ../../docs/tutorials/i18n/internationalizing_games.rst:332
msgid "For example, the path for this shown directory structure will be displayed incorrectly (top \"LineEdit\" control). \"File\" type structured text override splits text into segments, then BiDi algorithm is applied to each of them individually to correctly display directory names in any language and preserve correct order of the folders (bottom \"LineEdit\" control)."
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:336
#: ../../docs/tutorials/i18n/internationalizing_games.rst:337
msgid "Custom callbacks provide a way to override BiDi for the other types of structured text."
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:339
#: ../../docs/tutorials/i18n/internationalizing_games.rst:340
msgid "Localizing numbers"
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:341
#: ../../docs/tutorials/i18n/internationalizing_games.rst:342
msgid "Controls specifically designed for number input or output (e.g. ProgressBar, SpinBox) will use localized numbering system automatically, for the other control :ref:`TextServer.format_number(string, language) <class_TextServer_method_format_number>` can be used to convert Western Arabic numbers (0..9) to the localized numbering system and :ref:`TextServer.parse_number(string, language) <class_TextServer_method_parse_number>` to convert it back."
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:349
#: ../../docs/tutorials/i18n/internationalizing_games.rst:350
msgid "Localizing icons and images"
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:351
#: ../../docs/tutorials/i18n/internationalizing_games.rst:352
msgid "Icons with left and right pointing arrows which may need to be reversed for Arabic and Hebrew locales, in case they indicate movement or direction (e.g. back/forward buttons). Otherwise, they can remain the same."
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:356
#: ../../docs/tutorials/i18n/internationalizing_games.rst:357
msgid "Testing translations"
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:358
#: ../../docs/tutorials/i18n/internationalizing_games.rst:359
msgid "You may want to test a project's translation before releasing it. Godot provides three ways to do this."
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:361
#: ../../docs/tutorials/i18n/internationalizing_games.rst:362
msgid "First, in the Project Settings, under :menu:`Internationalization > Locale` (with advanced settings enabled), there is a **Test** property. Set this property to the locale code of the language you want to test. Godot will run the project with that locale when the project is run (either from the editor or when exported)."
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:368
#: ../../docs/tutorials/i18n/internationalizing_games.rst:369
msgid "Keep in mind that since this is a project setting, it will show up in version control when it is set to a non-empty value. Therefore, it should be set back to an empty value before committing changes to version control."
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:372
#: ../../docs/tutorials/i18n/internationalizing_games.rst:373
msgid "Second, from within the editor go to the top bar and click on :button:`View` on the top bar, then go down to :ui:`Preview Translation` and select the language you want to preview."
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:377
#: ../../docs/tutorials/i18n/internationalizing_games.rst:378
msgid "All text in scenes in the editor should now be displayed using the selected language."
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:379
#: ../../docs/tutorials/i18n/internationalizing_games.rst:380
msgid "Translations can also be tested when :ref:`running Godot from the command line <doc_command_line_tutorial>`. For example, to test a game in French, the following argument can be supplied:"
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:388
#: ../../docs/tutorials/i18n/internationalizing_games.rst:389
msgid "Translating the project name"
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:390
#: ../../docs/tutorials/i18n/internationalizing_games.rst:391
msgid "The project name becomes the app name when exporting to different operating systems and platforms. To specify the project name in more than one language go to **Project > Project Settings> Application > Config**. From here click on the button that says ``Localizable String (Size 0)``. Now there should be a button below that which says ``Add Translation``. Click on that and it will take you to a page where you can choose the language (and country if needed) for your project name translation. After doing that you can now type in the localized name."
msgstr ""
#: ../../docs/tutorials/i18n/internationalizing_games.rst:401
#: ../../docs/tutorials/i18n/internationalizing_games.rst:402
msgid "If you are unsure about the language code to use, refer to the :ref:`list of locale codes <doc_locales>`."
msgstr ""

View File

@@ -44,52 +44,52 @@ msgid "**Source compatible** - Source code will compile successfully without cha
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:25
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:157
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:176
msgid "Core"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:28
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:64
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:78
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:88
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:124
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:136
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:83
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:97
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:107
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:143
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:155
msgid "Change"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:28
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:64
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:78
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:88
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:124
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:136
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:83
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:97
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:107
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:143
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:155
msgid "GDScript Compatible"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:28
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:64
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:78
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:88
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:124
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:136
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:83
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:97
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:107
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:143
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:155
msgid "C# Binary Compatible"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:28
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:64
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:78
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:88
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:124
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:136
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:83
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:97
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:107
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:143
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:155
msgid "C# Source Compatible"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:28
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:64
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:78
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:88
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:124
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:136
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:83
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:97
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:107
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:143
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:155
msgid "Introduced"
msgstr ""
@@ -121,28 +121,28 @@ msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:51
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:53
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:55
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:67
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:68
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:70
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:81
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:91
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:93
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:95
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:97
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:99
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:101
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:102
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:103
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:105
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:107
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:108
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:86
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:87
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:89
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:100
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:110
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:112
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:114
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:116
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:118
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:120
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:121
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:122
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:124
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:126
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:127
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:129
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:139
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:140
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:141
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:131
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:146
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:148
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:158
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:159
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:160
msgid "|✔️|"
msgstr ""
@@ -153,25 +153,25 @@ msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:51
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:53
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:55
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:67
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:68
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:70
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:81
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:91
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:93
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:95
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:97
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:99
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:86
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:87
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:89
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:100
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:101
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:102
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:103
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:105
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:127
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:129
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:139
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:140
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:141
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:110
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:112
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:114
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:116
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:118
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:119
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:120
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:121
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:122
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:124
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:146
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:148
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:158
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:159
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:160
msgid "|✔️ with compat|"
msgstr ""
@@ -198,14 +198,14 @@ msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:44
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:45
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:48
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:71
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:100
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:107
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:108
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:110
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:112
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:143
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:145
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:90
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:119
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:126
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:127
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:129
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:131
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:162
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:164
msgid "|❌|"
msgstr ""
@@ -340,296 +340,312 @@ msgid "`GH-98972`_"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:58
msgid "**Export annotations**"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:62
msgid "The behavior of ``@export_file`` changed in Godot 4.4. When assigning a new value from the Inspector, the path is now stored and returned as a ``uid://`` reference instead of the traditional ``res://`` path(`GH-97912`_). This is a **breaking change** and may cause issues if you're expecting ``res://``-based paths in scripts or serialized files."
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:68
msgid "For example, exported arrays of files may now contain a mix of ``uid://`` and ``res://`` paths, especially if they were partially edited in the Inspector."
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:71
msgid "In 4.4, the only way to retain the ``res://`` format is to **manually edit** the `.tscn` or `.tres` files in a text editor. Starting in Godot 4.5, a new annotation ``@export_file_path`` can be used to explicitly retain the old behavior and export raw ``res://`` paths."
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:76
msgid "Default buffer size in 4.3 is ``1024``."
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:61
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:80
msgid "GUI nodes"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:66
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:85
msgid "**RichTextLabel**"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:67
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:86
msgid "Method ``push_meta`` adds a new ``tooltip`` optional parameter"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:67
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:86
msgid "`GH-99481`_"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:68
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:87
msgid "Method ``set_table_column_expand`` adds a new ``shrink`` optional parameter"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:68
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:87
msgid "`GH-101482`_"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:69
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:88
msgid "**GraphEdit**"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:70
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:89
msgid "Method ``connect_node`` adds a new ``keep_alive`` optional parameter"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:70
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:89
msgid "`GH-97449`_"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:71
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:90
msgid "Signal ``frame_rect_changed`` changes ``new_rect`` parameter type from ``Vector2`` to ``Rect2``"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:71
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:90
msgid "`GH-102796`_"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:75
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:94
msgid "Physics"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:80
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:99
msgid "**SoftBody3D**"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:81
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:100
msgid "Method ``set_point_pinned`` adds a new ``insert_at`` optional parameter"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:81
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:100
msgid "`GH-94684`_"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:85
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:165
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:104
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:184
msgid "Rendering"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:90
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:109
msgid "**CPUParticles2D**"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:91
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:93
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:95
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:97
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:110
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:112
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:114
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:116
msgid "Method ``restart`` adds a new ``keep_seed`` optional parameter"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:91
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:93
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:95
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:97
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:110
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:112
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:114
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:116
msgid "`GH-92089`_"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:92
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:111
msgid "**CPUParticles3D**"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:94
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:113
msgid "**GPUParticles2D**"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:96
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:115
msgid "**GPUParticles3D**"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:98
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:117
msgid "**RenderingDevice**"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:99
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:118
msgid "Method ``draw_list_begin`` adds a new ``breadcrumb`` optional parameter"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:99
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:118
msgid "`GH-90993`_"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:100
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:119
msgid "Method ``draw_list_begin`` removes many parameters"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:100
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:119
msgid "`GH-98670`_"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:101
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:120
msgid "Method ``index_buffer_create`` adds a new ``enable_device_address`` optional parameter"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:101
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:102
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:103
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:120
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:121
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:122
msgid "`GH-100062`_"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:102
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:121
msgid "Method ``uniform_buffer_create`` adds a new ``enable_device_address`` optional parameter"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:103
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:122
msgid "Method ``vertex_buffer_create`` adds a new ``enable_device_address`` optional parameter"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:104
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:123
msgid "**RenderingServer**"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:105
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:124
msgid "Method ``multimesh_allocate_data`` adds a new ``use_indirect`` optional parameter"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:105
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:124
msgid "`GH-99455`_"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:106
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:125
msgid "**Shader**"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:107
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:126
msgid "Method ``get_default_texture_parameter`` changes return type from ``Texture2D`` to ``Texture``"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:107
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:108
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:110
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:112
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:126
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:127
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:129
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:131
msgid "`GH-95126`_"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:108
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:127
msgid "Method ``set_default_texture_parameter`` changes ``texture`` parameter type from ``Texture2D`` to ``Texture``"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:109
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:128
msgid "**VisualShaderNodeCubemap**"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:110
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:129
msgid "Property ``cube_map`` changes type from ``Cubemap`` to ``TextureLayered``"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:111
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:130
msgid "**VisualShaderNodeTexture2DArray**"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:112
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:131
msgid "Property ``texture_array`` changes type from ``Texture2DArray`` to ``TextureLayered``"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:117
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:136
msgid "In C#, the enum ``RenderingDevice.StorageBufferUsage`` breaks compatibility because of the way the bindings generator detects the enum prefix. New members where added in `GH-100062`_ to the enum that caused the enum members to be renamed."
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:121
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:140
msgid "Navigation"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:126
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:145
msgid "**NavigationServer2D**"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:127
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:129
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:146
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:148
msgid "Method ``query_path`` adds a new ``callback`` optional parameter"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:127
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:129
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:146
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:148
msgid "`GH-100129`_"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:128
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:147
msgid "**NavigationServer3D**"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:133
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:152
msgid "Editor plugins"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:138
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:157
msgid "**EditorInterface**"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:139
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:158
msgid "Method ``open_scene_from_path`` adds a new ``set_inherited`` optional parameter"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:139
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:158
msgid "`GH-90057`_"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:140
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:159
msgid "Method ``popup_node_selector`` adds a new ``current_value`` optional parameter"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:140
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:141
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:159
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:160
msgid "`GH-94323`_"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:141
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:160
msgid "Method ``popup_property_selector`` adds a new ``current_value`` optional parameter"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:142
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:161
msgid "**EditorSceneFormatImporter**"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:143
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:162
msgid "Method ``_get_import_flags`` removed"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:143
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:162
msgid "`GH-101531`_"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:144
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:163
msgid "**EditorTranslationParserPlugin**"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:145
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:164
msgid "Method ``_parse_file`` changes return type to ``Array`` and removes ``msgids`` and ``msgids_context_plural`` parameters"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:145
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:164
msgid "`GH-99297`_"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:150
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:169
msgid "The method ``_get_import_flags`` was never used by the engine. It was removed despite the compatibility breakage as there's no way for users to rely on this affecting engine behavior."
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:154
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:173
msgid "Behavior changes"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:161
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:180
msgid "The ``Curve`` resource now enforces its value range, so ``min_value`` and ``max_value`` need to be changed if any of the points fall outside of the default ``[0, 1]`` range."
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:169
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:188
msgid "The ``VisualShaderNodeVec4Constant`` shader node had its input type changed to ``Vector4``. Users need to recreate the values in their constants."
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:173
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:192
msgid "CSG"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:177
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:196
msgid "The CSG implementation now uses Emmett Lalish's `Manifold <https://github.com/elalish/manifold>`_ library (`GH-94321`_). The new implementation is more consistent with manifold definitions and fixes a number of bugs and stability issues. As a result, non-manifold meshes are no longer supported. You can use ``MeshInstance3D`` for rendering non-manifold geometry, such as quads or planes."
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:183
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:202
msgid "Android"
msgstr ""
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:187
#: ../../docs/tutorials/migrating/upgrading_to_godot_4.4.rst:206
msgid "Android sensor events are no longer enabled by default (`GH-94799`_). Projects that use sensor events can enable them as needed in Project Settings under **Input Devices > Sensors**."
msgstr ""

View File

@@ -217,7 +217,7 @@ msgid "Click on the region node and add a new NavigationPolygon Resource to the
msgstr ""
#: ../../docs/tutorials/navigation/navigation_introduction_2d.rst:102
msgid "Define the movable navigation area with the NavigationPolygon draw tool. Then click the `Bake NavigationPolygon`` button on the toolbar."
msgid "Define the movable navigation area with the NavigationPolygon draw tool. Then click the :button:`Bake NavigationPolygon` button on the toolbar."
msgstr ""
#: ../../docs/tutorials/navigation/navigation_introduction_2d.rst:109

View File

@@ -92,7 +92,7 @@ msgid "Baking navigation meshes at runtime should always be done in a background
msgstr ""
#: ../../docs/tutorials/navigation/navigation_optimizing_performance.rst:53
msgid "Complexity of source geometry data parsed from scene tree nodes has big impact on baking performance as everything needs to be mapped to a grid / voxels. For runtime baking performance the NavigationMesh cell size and cell height should be set as high as possible without causing navigation mesh quality problems for a game. If cell size or cell height is set too low the baking is forced to create an excessive amount of voxels to process the source geometry. If the source geometry spans over a very large game world it is even possible that the baking process runs out off memory in the middle and crashes the game. The partition type can also be lowered depending on how complex the games source geometry is to gain some performance. E.g. games with mostly flat surfaces with blocky geometry can get away with the monotone or layers mode that are a lot faster to bake (e.g. because they require no distance field pass)."
msgid "Complexity of source geometry data parsed from scene tree nodes has big impact on baking performance as everything needs to be mapped to a grid / voxels. For runtime baking performance the NavigationMesh cell size and cell height should be set as high as possible without causing navigation mesh quality problems for a game. If cell size or cell height is set too low the baking is forced to create an excessive amount of voxels to process the source geometry. If the source geometry spans over a very large game world it is even possible that the baking process runs out of memory in the middle and crashes the game. The partition type can also be lowered depending on how complex the games source geometry is to gain some performance. E.g. games with mostly flat surfaces with blocky geometry can get away with the monotone or layers mode that are a lot faster to bake (e.g. because they require no distance field pass)."
msgstr ""
#: ../../docs/tutorials/navigation/navigation_optimizing_performance.rst:60

View File

@@ -198,3 +198,59 @@ msgstr ""
#: ../../docs/tutorials/performance/pipeline_compilations.rst:206
msgid "For example, if the player character is able to cause some sort of explosion, you can attach the effect as a child of the player as an invisible node. Make sure to disable the script attached to the hidden node or to hide any other nodes that could cause issues, which can be done by enabling **Editable Children** on the node."
msgstr ""
#: ../../docs/tutorials/performance/pipeline_compilations.rst:215
msgid "Shader baker"
msgstr ""
#: ../../docs/tutorials/performance/pipeline_compilations.rst:217
msgid "Since Godot 4.5, you can choose to bake shaders on export to improve initial startup time. This will generally not resolve existing stutters, but it will reduce the time it takes to load the game for the first time. This is especially the case when using Direct3D 12 or Metal, which have significantly slower initial shader compilation times than Vulkan due to the conversion step required. Godot's own shaders use GLSL and SPIR-V, but Direct3D 12 and Metal use different formats."
msgstr ""
#: ../../docs/tutorials/performance/pipeline_compilations.rst:227
msgid "The shader baker can only bake the source into the intermediate format (SPIR-V for Vulkan, DXIL for Direct3D 12, MIL for Metal). It cannot bake the intermediate format into the final pipeline, as this is dependent on the GPU driver and the hardware."
msgstr ""
#: ../../docs/tutorials/performance/pipeline_compilations.rst:232
msgid "The shader baker is not a replacement for pipeline precompilation, but it aims to complement it."
msgstr ""
#: ../../docs/tutorials/performance/pipeline_compilations.rst:235
msgid "When enabled, the shader baker will bundle compiled shader code into the PCK, which results in the shader compilation step being skipped entirely. The downside is that exporting will take slightly longer. The PCK file will be larger by a few megabytes."
msgstr ""
#: ../../docs/tutorials/performance/pipeline_compilations.rst:240
msgid "The shader baker is disabled by default, but you can enable it in each export preset in the Export dialog by ticking the :ui:`Shader Baker > Enabled` export option."
msgstr ""
#: ../../docs/tutorials/performance/pipeline_compilations.rst:244
msgid "Note that shader baking will only be able to export shaders for drivers supported by the platform the editor is currently running on:"
msgstr ""
#: ../../docs/tutorials/performance/pipeline_compilations.rst:247
msgid "The editor running on Windows can export shaders for Vulkan and Direct3D 12."
msgstr ""
#: ../../docs/tutorials/performance/pipeline_compilations.rst:248
msgid "The editor running on macOS can export shaders for Vulkan and Metal."
msgstr ""
#: ../../docs/tutorials/performance/pipeline_compilations.rst:249
msgid "The editor running on Linux can export shaders for Vulkan only."
msgstr ""
#: ../../docs/tutorials/performance/pipeline_compilations.rst:250
msgid "The editor running on Android can export shaders for Vulkan only."
msgstr ""
#: ../../docs/tutorials/performance/pipeline_compilations.rst:252
msgid "The shader baker will only export shaders that match the ``rendering/rendering_device/driver`` project setting for the target platform."
msgstr ""
#: ../../docs/tutorials/performance/pipeline_compilations.rst:257
msgid "The shader baker is only supported for the Forward+ and Mobile renderers. It will have no effect if the project uses the Compatibility renderer, or for users who make use of the Compatibility fallback due to their hardware not supporting the Forward+ or Mobile renderer."
msgstr ""
#: ../../docs/tutorials/performance/pipeline_compilations.rst:262
msgid "This also means the shader baker is not supported on the web platform, as the web platform only supports the Compatibility renderer."
msgstr ""

View File

@@ -48,317 +48,309 @@ msgid "There are many differences between the existing Godot Physics engine and
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:36
msgid "Area3D and static bodies"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:37
msgid "When using Jolt, :ref:`class_Area3D` will not detect overlaps with :ref:`class_StaticBody3D` (nor a :ref:`class_RigidBody3D` frozen with ``FREEZE_MODE_STATIC``) by default, for performance reasons. If you have many/large :ref:`class_Area3D` overlapping with complex static geometry, such as :ref:`class_ConcavePolygonShape3D` or :ref:`class_HeightMapShape3D`, you can end up wasting a significant amount of CPU performance and memory without realizing it."
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:45
msgid "Joint properties"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:47
#: ../../docs/tutorials/physics/using_jolt_physics.rst:38
msgid "The current interfaces for the 3D joint nodes don't quite line up with the interface of Jolt's own joints. As such, there are a number of joint properties that are not supported, mainly ones related to configuring the joint's soft limits."
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:51
#: ../../docs/tutorials/physics/using_jolt_physics.rst:42
msgid "The unsupported properties are:"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:53
#: ../../docs/tutorials/physics/using_jolt_physics.rst:44
msgid "PinJoint3D: ``bias``, ``damping``, ``impulse_clamp``"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:54
#: ../../docs/tutorials/physics/using_jolt_physics.rst:45
msgid "HingeJoint3D: ``bias``, ``softness``, ``relaxation``"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:55
#: ../../docs/tutorials/physics/using_jolt_physics.rst:46
msgid "SliderJoint3D: ``angular_\\*``, ``\\*_limit/softness``, ``\\*_limit/restitution``, ``\\*_limit/damping``"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:56
#: ../../docs/tutorials/physics/using_jolt_physics.rst:47
msgid "ConeTwistJoint3D: ``bias``, ``relaxation``, ``softness``"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:57
#: ../../docs/tutorials/physics/using_jolt_physics.rst:48
msgid "Generic6DOFJoint3D: ``*_limit_*/softness``, ``*_limit_*/restitution``, ``*_limit_*/damping``, ``*_limit_*/erp``"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:59
#: ../../docs/tutorials/physics/using_jolt_physics.rst:50
msgid "Currently a warning is emitted if you set these properties to anything but their default values."
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:63
#: ../../docs/tutorials/physics/using_jolt_physics.rst:54
msgid "Single-body joints"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:65
#: ../../docs/tutorials/physics/using_jolt_physics.rst:56
msgid "You can, in Godot, omit one of the joint bodies for a two-body joint and effectively have \"the world\" be the other body. However, the node path that you assign your body to (:ref:`node_a<class_Joint3D_property_node_a>` vs :ref:`node_b<class_Joint3D_property_node_b>`) is ignored. Godot Physics will always behave as if you assigned it to ``node_a``, and since ``node_a`` is also what defines the frame of reference for the joint limits, you end up with inverted limits and a potentially strange limit shape, especially if your limits allow both linear and angular degrees of freedom."
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:74
#: ../../docs/tutorials/physics/using_jolt_physics.rst:65
msgid "Jolt will behave as if you assigned the body to ``node_b`` instead, with ``node_a`` representing \"the world\". There is a project setting called :ref:`Physics > Jolt Physics 3D > Joints > World Node<class_ProjectSettings_property_physics/jolt_physics_3d/joints/world_node>` that lets you toggle this behavior, if you need compatibility for an existing project."
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:79
#: ../../docs/tutorials/physics/using_jolt_physics.rst:70
msgid "Collision margins"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:81
#: ../../docs/tutorials/physics/using_jolt_physics.rst:72
msgid "Jolt (and other similar physics engines) uses something that Jolt refers to as \"convex radius\" to help improve the performance and behavior of the types of collision detection that Jolt relies on for convex shapes. Other physics engines (Godot included) might refer to these as \"collision margins\" instead. Godot exposes these as the ``margin`` property on every Shape3D-derived class, but Godot Physics itself does not use them for anything."
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:88
#: ../../docs/tutorials/physics/using_jolt_physics.rst:79
msgid "What these collision margins sometimes do in other engines (as described in Godot's documentation) is effectively add a \"shell\" around the shape, slightly increasing its size while also rounding off any edges/corners. In Jolt however, these margins are first used to shrink the shape, and then the \"shell\" is applied, resulting in edges/corners being similarly rounded off, but without increasing the size of the shape."
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:95
#: ../../docs/tutorials/physics/using_jolt_physics.rst:86
msgid "To prevent having to tweak this margin property manually, since its default value can be problematic for smaller shapes, the Jolt module exposes a project setting called :ref:`Physics > Jolt Physics 3D > Collisions > Collision Margin Fraction<class_ProjectSettings_property_physics/jolt_physics_3d/collisions/collision_margin_fraction>` which is multiplied with the smallest axis of the shape's AABB to calculate the actual margin. The margin property of the shape is then instead used as an upper bound."
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:102
#: ../../docs/tutorials/physics/using_jolt_physics.rst:93
msgid "These margins should, for most use-cases, be more or less transparent, but can sometimes result in odd collision normals when performing shape queries. You can lower the above mentioned project setting to mitigate some of this, including setting it to ``0.0``, but too small of a margin can also cause odd collision results, so is generally not recommended."
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:109
#: ../../docs/tutorials/physics/using_jolt_physics.rst:100
msgid "Baumgarte stabilization"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:111
#: ../../docs/tutorials/physics/using_jolt_physics.rst:102
msgid "Baumgarte stabilization is a method to resolve penetrating bodies and push them to a state where they are just touching. In Godot Physics this works like a spring. This means that bodies can accelerate and may cause the bodies to overshoot and separate completely. With Jolt, the stabilization is only applied to the position and not to the velocity of the body. This means it cannot overshoot but it may take longer to resolve the penetration."
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:118
#: ../../docs/tutorials/physics/using_jolt_physics.rst:109
msgid "The strength of this stabilization can be tweaked using the project setting :ref:`Physics > Jolt Physics 3D > Simulation > Baumgarte Stabilization Factor<class_ProjectSettings_property_physics/jolt_physics_3d/simulation/baumgarte_stabilization_factor>`. Setting this project setting to ``0.0`` will turn Baumgarte stabilization off. Setting it to ``1.0`` will resolve penetration in 1 simulation step. This is fast but often also unstable."
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:125
#: ../../docs/tutorials/physics/using_jolt_physics.rst:116
msgid "Ghost collisions"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:127
#: ../../docs/tutorials/physics/using_jolt_physics.rst:118
msgid "Jolt employs two techniques to mitigate ghost collisions, meaning collisions with internal edges of shapes/bodies that result in collision normals that oppose the direction of movement."
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:131
#: ../../docs/tutorials/physics/using_jolt_physics.rst:122
msgid "The first technique, called \"active edge detection\", marks edges of triangles in :ref:`class_ConcavePolygonShape3D` or :ref:`class_HeightMapShape3D` as either \"active\" or \"inactive\", based on the angle to the neighboring triangle. When a collision happens with an inactive edge the collision normal will be replaced with the triangle's normal instead, to lessen the effect of ghost collisions."
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:137
#: ../../docs/tutorials/physics/using_jolt_physics.rst:128
msgid "The angle threshold for this active edge detection is configurable through the project setting :ref:`Physics >Jolt Physics 3D > Collisions > Active Edge Threshold<class_ProjectSettings_property_physics/jolt_physics_3d/collisions/active_edge_threshold>`."
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:140
#: ../../docs/tutorials/physics/using_jolt_physics.rst:131
msgid "The second technique, called \"enhanced internal edge removal\", instead adds runtime checks to detect whether an edge is active or inactive, based on the contact points of the two bodies. This has the benefit of applying not only to collisions with :ref:`class_ConcavePolygonShape3D` and :ref:`class_HeightMapShape3D`, but also edges between any shapes within the same body."
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:146
#: ../../docs/tutorials/physics/using_jolt_physics.rst:137
msgid "Enhanced internal edge removal can be toggled on and off for the various contexts to which it's applied, using the :ref:`Physics >Jolt Physics 3D > Simulation > Use Enhanced Internal Edge Removal<class_ProjectSettings_property_physics/jolt_physics_3d/simulation/use_enhanced_internal_edge_removal>`, project setting, and the similar settings for :ref:`queries<class_ProjectSettings_property_physics/jolt_physics_3d/queries/use_enhanced_internal_edge_removal>` and :ref:`motion queries<class_ProjectSettings_property_physics/jolt_physics_3d/motion_queries/use_enhanced_internal_edge_removal>`."
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:151
#: ../../docs/tutorials/physics/using_jolt_physics.rst:142
msgid "Note that neither the active edge detection nor enhanced internal edge removal apply when dealing with ghost collisions between two different bodies."
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:155
#: ../../docs/tutorials/physics/using_jolt_physics.rst:146
msgid "Memory usage"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:157
#: ../../docs/tutorials/physics/using_jolt_physics.rst:148
msgid "Jolt uses a stack allocator for temporary allocations within its simulation step. This stack allocator requires allocating a set amount of memory up front, which can be configured using the :ref:`Physics > Jolt Physics 3D > Limits > Temporary Memory Buffer Size<class_ProjectSettings_property_physics/jolt_physics_3d/limits/temporary_memory_buffer_size>` project setting."
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:163
#: ../../docs/tutorials/physics/using_jolt_physics.rst:154
msgid "Ray-cast face index"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:165
#: ../../docs/tutorials/physics/using_jolt_physics.rst:156
msgid "The ``face_index`` property returned in the results of :ref:`intersect_ray()<class_PhysicsDirectSpaceState3D_method_intersect_ray>` and RayCast3D will by default always be ``-1`` with Jolt. The project setting :ref:`Physics > Jolt Physics 3D > Queries > Enable Ray Cast Face Index<class_ProjectSettings_property_physics/jolt_physics_3d/queries/enable_ray_cast_face_index>` will enable them."
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:169
#: ../../docs/tutorials/physics/using_jolt_physics.rst:160
msgid "Note that enabling this setting will increase the memory requirement of :ref:`class_ConcavePolygonShape3D` with about 25%."
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:173
#: ../../docs/tutorials/physics/using_jolt_physics.rst:164
msgid "Kinematic RigidBody3D contacts"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:175
#: ../../docs/tutorials/physics/using_jolt_physics.rst:166
msgid "When using Jolt, a :ref:`class_RigidBody3D` frozen with :ref:`FREEZE_MODE_KINEMATIC<class_RigidBody3D_constant_FREEZE_MODE_KINEMATIC>` will by default not report contacts from collisions with other static/kinematic bodies, for performance reasons, even when setting a non-zero :ref:`max_contacts_reported<class_RigidBody3D_property_max_contacts_reported>`. If you have many/large kinematic bodies overlapping with complex static geometry, such as :ref:`class_ConcavePolygonShape3D` or :ref:`class_HeightMapShape3D`, you can end up wasting a significant amount of CPU performance and memory without realizing it."
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:183
#: ../../docs/tutorials/physics/using_jolt_physics.rst:174
msgid "For this reason this behavior is opt-in through the project setting :ref:`Physics > Jolt Physics 3D > Simulation > Generate All Kinematic Contacts<class_ProjectSettings_property_physics/jolt_physics_3d/simulation/generate_all_kinematic_contacts>`."
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:187
#: ../../docs/tutorials/physics/using_jolt_physics.rst:178
msgid "Contact impulses"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:189
#: ../../docs/tutorials/physics/using_jolt_physics.rst:180
msgid "Due to limitations internal to Jolt, the contact impulses provided by :ref:`PhysicsDirectBodyState3D.get_contact_impulse()<class_physicsdirectbodystate3d_method_get_contact_impulse>` are estimated ahead of time based on things like the contact manifold and velocities of the colliding bodies. This means that the reported impulses will only be accurate in cases where the two bodies in question are not colliding with any other bodies."
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:195
#: ../../docs/tutorials/physics/using_jolt_physics.rst:186
msgid "Area3D and SoftBody3D"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:197
#: ../../docs/tutorials/physics/using_jolt_physics.rst:188
msgid "Jolt does not currently support any interactions between :ref:`class_SoftBody3D` and :ref:`class_Area3D`, such as overlap events, or the wind properties found on :ref:`class_Area3D`."
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:202
#: ../../docs/tutorials/physics/using_jolt_physics.rst:193
msgid "WorldBoundaryShape3D"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:204
#: ../../docs/tutorials/physics/using_jolt_physics.rst:195
msgid ":ref:`class_WorldBoundaryShape3D`, which is meant to represent an infinite plane, is implemented a bit differently in Jolt compared to Godot Physics. Both engines have an upper limit for how big the effective size of this plane can be, but this size is much smaller when using Jolt, in order to avoid precision issues."
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:209
#: ../../docs/tutorials/physics/using_jolt_physics.rst:200
msgid "You can configure this size using the :ref:`Physics > Jolt Physics 3D > Limits > World Boundary Shape Size<class_ProjectSettings_Property_physics/jolt_physics_3d/limits/world_boundary_shape_size>` project setting."
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:213
#: ../../docs/tutorials/physics/using_jolt_physics.rst:204
msgid "Notable differences to the Godot Jolt extension"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:215
#: ../../docs/tutorials/physics/using_jolt_physics.rst:206
msgid "While the built-in Jolt module is largely a straight port of the Godot Jolt extension, there are a few things that are different."
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:219
#: ../../docs/tutorials/physics/using_jolt_physics.rst:210
msgid "Project settings"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:221
#: ../../docs/tutorials/physics/using_jolt_physics.rst:212
msgid "All project settings have been moved from the ``physics/jolt_3d`` category to ``physics/jolt_physics_3d``."
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:224
#: ../../docs/tutorials/physics/using_jolt_physics.rst:215
msgid "On top of that, there's been some renaming and refactoring of the individual project settings as well. These include:"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:227
#: ../../docs/tutorials/physics/using_jolt_physics.rst:218
msgid "``sleep/enabled`` is now ``simulation/allow_sleep.``"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:228
#: ../../docs/tutorials/physics/using_jolt_physics.rst:219
msgid "``sleep/velocity_threshold`` is now ``simulation/sleep_velocity_threshold.``"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:229
#: ../../docs/tutorials/physics/using_jolt_physics.rst:220
msgid "``sleep/time_threshold`` is now ``simulation/sleep_time_threshold.``"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:230
#: ../../docs/tutorials/physics/using_jolt_physics.rst:221
msgid "``collisions/use_shape_margins`` is now ``collisions/collision_margin_fraction``, where a value of 0 is equivalent to disabling it."
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:232
#: ../../docs/tutorials/physics/using_jolt_physics.rst:223
msgid "``collisions/use_enhanced_internal_edge_removal`` is now ``simulation/use_enhanced_internal_edge_removal.``"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:233
#: ../../docs/tutorials/physics/using_jolt_physics.rst:224
msgid "``collisions/areas_detect_static_bodies`` is now ``simulation/areas_detect_static_bodies.``"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:234
#: ../../docs/tutorials/physics/using_jolt_physics.rst:225
msgid "``collisions/report_all_kinematic_contacts`` is now ``simulation/generate_all_kinematic_contacts.``"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:235
#: ../../docs/tutorials/physics/using_jolt_physics.rst:226
msgid "``collisions/soft_body_point_margin`` is now ``simulation/soft_body_point_radius.``"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:236
#: ../../docs/tutorials/physics/using_jolt_physics.rst:227
msgid "``collisions/body_pair_cache_enabled is now simulation/body_pair_contact_cache_enabled.``"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:237
#: ../../docs/tutorials/physics/using_jolt_physics.rst:228
msgid "``collisions/body_pair_cache_distance_threshold`` is ``now simulation/body_pair_contact_cache_distance_threshold.``"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:238
#: ../../docs/tutorials/physics/using_jolt_physics.rst:229
msgid "``collisions/body_pair_cache_angle_threshold is now simulation/body_pair_contact_cache_angle_threshold.``"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:239
#: ../../docs/tutorials/physics/using_jolt_physics.rst:230
msgid "``continuous_cd/movement_threshold`` is now ``simulation/continuous_cd_movement_threshold``, but expressed as a fraction instead of a percentage."
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:241
#: ../../docs/tutorials/physics/using_jolt_physics.rst:232
msgid "``continuous_cd/max_penetration`` is now ``simulation/continuous_cd_max_penetration``, but expressed as a fraction instead of a percentage."
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:243
#: ../../docs/tutorials/physics/using_jolt_physics.rst:234
msgid "``kinematics/use_enhanced_internal_edge_removal`` is now ``motion_queries/use_enhanced_internal_edge_removal.``"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:244
#: ../../docs/tutorials/physics/using_jolt_physics.rst:235
msgid "``kinematics/recovery_iterations`` is now ``motion_queries/recovery_iterations``, but expressed as a fraction instead of a percentage."
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:246
#: ../../docs/tutorials/physics/using_jolt_physics.rst:237
msgid "``kinematics/recovery_amount`` is now ``motion_queries/recovery_amount.``"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:247
#: ../../docs/tutorials/physics/using_jolt_physics.rst:238
msgid "``queries/use_legacy_ray_casting`` has been removed."
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:248
#: ../../docs/tutorials/physics/using_jolt_physics.rst:239
msgid "``solver/position_iterations`` is now ``simulation/position_steps.``"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:249
#: ../../docs/tutorials/physics/using_jolt_physics.rst:240
msgid "``solver/velocity_iterations`` is now ``simulation/velocity_steps.``"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:250
#: ../../docs/tutorials/physics/using_jolt_physics.rst:241
msgid "``solver/position_correction`` is now ``simulation/baumgarte_stabilization_factor``, but expressed as a fraction instead of a percentage."
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:252
#: ../../docs/tutorials/physics/using_jolt_physics.rst:243
msgid "``solver/active_edge_threshold`` is now ``collisions/active_edge_threshold.``"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:253
#: ../../docs/tutorials/physics/using_jolt_physics.rst:244
msgid "``solver/bounce_velocity_threshold`` is now ``simulation/bounce_velocity_threshold.``"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:254
#: ../../docs/tutorials/physics/using_jolt_physics.rst:245
msgid "``solver/contact_speculative_distance`` is now ``simulation/speculative_contact_distance.``"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:255
#: ../../docs/tutorials/physics/using_jolt_physics.rst:246
msgid "``solver/contact_allowed_penetration`` is now ``simulation/penetration_slop.``"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:256
#: ../../docs/tutorials/physics/using_jolt_physics.rst:247
msgid "``limits/max_angular_velocity`` is now stored as radians instead."
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:257
#: ../../docs/tutorials/physics/using_jolt_physics.rst:248
msgid "``limits/max_temporary_memory`` is now ``limits/temporary_memory_buffer_size.``"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:260
#: ../../docs/tutorials/physics/using_jolt_physics.rst:251
msgid "Joint nodes"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:262
#: ../../docs/tutorials/physics/using_jolt_physics.rst:253
msgid "The joint nodes that are exposed in the Godot Jolt extension (JoltPinJoint3D, JoltHingeJoint3D, JoltSliderJoint3D, JoltConeTwistJoint3D, and JoltGeneric6DOFJoint) have not been included in the Jolt module."
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:267
#: ../../docs/tutorials/physics/using_jolt_physics.rst:258
msgid "Thread safety"
msgstr ""
#: ../../docs/tutorials/physics/using_jolt_physics.rst:269
#: ../../docs/tutorials/physics/using_jolt_physics.rst:260
msgid "Unlike the Godot Jolt extension, the Jolt module does have thread-safety, including support for the :ref:`Physics > 3D > Run On Separate Thread<class_ProjectSettings_Property_physics/3d/run_on_separate_thread>` project setting. However this has not been tested very thoroughly, so it should be considered experimental."
msgstr ""

View File

@@ -20,7 +20,7 @@ msgid "Android in-app purchases"
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:6
msgid "Godot offers a first-party ``GodotGooglePlayBilling`` Android plugin compatible with Godot 4 which uses the `Google Play Billing library <https://developer.android.com/google/play/billing>`_."
msgid "Godot offers a first-party ``GodotGooglePlayBilling`` Android plugin compatible with Godot 4.2+ which uses the `Google Play Billing library <https://developer.android.com/google/play/billing>`_."
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:10
@@ -59,166 +59,166 @@ msgstr ""
msgid "Initialization example:"
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:46
msgid "The API must be in a connected state prior to use. The ``connected`` signal is sent when the connection process succeeds. You can also use ``isReady()`` to determine if the plugin is ready for use. The ``get_connection_state()`` function returns the current connection state of the plugin."
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:44
msgid "The API must be in a connected state prior to use. The ``connected`` signal is sent when the connection process succeeds. You can also use ``is_ready()`` to determine if the plugin is ready for use. The ``get_connection_state()`` function returns the current connection state of the plugin."
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:51
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:49
msgid "Return values for ``get_connection_state()``:"
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:66
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:64
msgid "Query available items"
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:68
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:66
msgid "Once the API has connected, query product IDs using `query_product_details()`. You must successfully complete a product details query before calling the ``purchase()``, ``purchase_subscription()``, or ``update_subscription()`` functions, or they will return an error. ``query_product_details()`` takes two parameters: an array of product ID strings and the type of product being queried. The product type should be ``BillingClient.ProductType.INAPP`` for normal in-app purchases or ``BillingClient.ProductType.SUBS`` for subscriptions. The ID strings in the array should match the product IDs defined in the Google Play Console entry for your app."
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:76
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:74
msgid "Example use of ``query_product_details()``:"
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:94
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:92
msgid "Query user purchases"
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:96
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:94
msgid "To retrieve a user's purchases, call the ``query_purchases()`` function passing a product type to query. The product type should be ``BillingClient.ProductType.INAPP`` for normal in-app purchases or ``BillingClient.ProductType.SUBS`` for subscriptions. The ``query_purchases_response`` signal is sent with the result. The signal has a single parameter: a :ref:`Dictionary <class_Dictionary>` with a response code and either an array of purchases or a debug message. Only active subscriptions and non-consumed one-time purchases are included in the purchase array."
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:105
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:103
msgid "Example use of ``query_purchases()``:"
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:123
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:121
msgid "Purchase an item"
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:125
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:123
msgid "To launch the billing flow for an item: - Use ``purchase()`` for in-app products, passing the product ID string. - Use ``purchase_subscription()`` for subscriptions, passing the product ID and base plan ID. You may also optionally provide an offer ID."
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:129
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:127
msgid "For both ``purchase()`` and ``purchase_subscription()``, you can optionally pass a boolean to indicate whether offers are `personallised <https://developer.android.com/google/play/billing/integrate#personalized-price>`_"
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:132
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:130
msgid "Reminder: you **must** query the product details for an item before you can pass it to ``purchase()``. This method returns a dictionary indicating whether the billing flow was successfully launched. It includes a response code and either an array of purchases or a debug message."
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:137
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:135
msgid "Example use of ``purchase()``:"
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:149
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:147
msgid "The result of the purchase will be sent through the ``on_purchases_updated`` signal."
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:164
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:162
msgid "Processing a purchase item"
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:166
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:164
msgid "The ``query_purchases_response`` and ``on_purchases_updated`` signals provide an array of purchases in :ref:`Dictionary <class_Dictionary>` format. The purchase Dictionary includes keys that map to values of the Google Play Billing `Purchase <https://developer.android.com/reference/com/android/billingclient/api/Purchase>`_ class."
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:171
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:169
msgid "Purchase fields:"
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:189
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:187
msgid "Check purchase state"
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:191
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:189
msgid "Check the ``purchase_state`` value of a purchase to determine if a purchase was completed or is still pending."
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:194
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:192
msgid "PurchaseState values:"
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:207
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:205
msgid "If a purchase is in a ``PENDING`` state, you should not award the contents of the purchase or do any further processing of the purchase until it reaches the ``PURCHASED`` state. If you have a store interface, you may wish to display information about pending purchases needing to be completed in the Google Play Store. For more details on pending purchases, see `Handling pending transactions <https://developer.android.com/google/play/billing/integrate#pending>`_ in the Google Play Billing Library documentation."
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:217
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:215
msgid "Consumables"
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:219
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:217
msgid "If your in-app item is not a one-time purchase but a consumable item (e.g. coins) which can be purchased multiple times, you can consume an item by calling ``consume_purchase()`` passing the ``purchase_token`` value from the purchase dictionary. Calling ``consume_purchase()`` automatically acknowledges a purchase. Consuming a product allows the user to purchase it again, it will no longer appear in subsequent ``query_purchases()`` calls unless it is repurchased."
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:226
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:224
msgid "Example use of ``consume_purchase()``:"
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:251
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:249
msgid "Acknowledging purchases"
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:253
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:251
msgid "If your in-app item is a one-time purchase, you must acknowledge the purchase by calling the ``acknowledge_purchase()`` function, passing the ``purchase_token`` value from the purchase dictionary. If you do not acknowledge a purchase within three days, the user automatically receives a refund, and Google Play revokes the purchase. If you are calling ``comsume_purchase()`` it automatically acknowledges the purchase and you do not need to call ``acknowledge_purchase()``."
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:260
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:258
msgid "Example use of ``acknowledge_purchase()``:"
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:287
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:285
msgid "Subscriptions"
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:289
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:287
msgid "Subscriptions work mostly like regular in-app items. Use ``BillingClient.ProductType.SUBS`` as the second argument to ``query_product_details()`` to get subscription details. Pass ``BillingClient.ProductType.SUBS`` to ``query_purchases()`` to get subscription purchase details."
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:293
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:291
msgid "You can check ``is_auto_renewing`` in the a subscription purchase returned from ``query_purchases()`` to see if a user has cancelled an auto-renewing subscription."
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:297
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:295
msgid "You need to acknowledge new subscription purchases, but not automatic subscription renewals."
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:300
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:298
msgid "If you support upgrading or downgrading between different subscription levels, you should use ``update_subscription()`` to use the subscription update flow to change an active subscription. Like ``purchase()``, results are returned by the ``on_purchases_updated`` signal. These are the parameters of ``update_subscription()``:"
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:306
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:304
msgid "old_purchase_token: The purchase token of the currently active subscription"
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:307
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:305
msgid "replacement_mode: The replacement mode to apply to the subscription"
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:308
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:306
msgid "product_id: The product ID of the new subscription to switch to"
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:309
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:307
msgid "base_plan_id: The base plan ID of the target subscription"
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:310
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:308
msgid "offer_id: The offer ID under the base plan (optional)"
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:311
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:309
msgid "is_offer_personalized: Whether to enable personalized pricing (optional)"
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:313
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:311
msgid "The replacement modes values are defined as:"
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:341
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:339
msgid "Default behavior is ``WITH_TIME_PRORATION``."
msgstr ""
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:343
#: ../../docs/tutorials/platform/android/android_in_app_purchases.rst:341
msgid "Example use of ``update_subscription``:"
msgstr ""

View File

@@ -90,3 +90,15 @@ msgstr ""
#: ../../docs/tutorials/platform/android/javaclasswrapper_and_androidruntimeplugin.rst:105
msgid "Java inner classes can be accessed using the ``$`` sign:"
msgstr ""
#: ../../docs/tutorials/platform/android/javaclasswrapper_and_androidruntimeplugin.rst:118
msgid "Example: Calling a constructor"
msgstr ""
#: ../../docs/tutorials/platform/android/javaclasswrapper_and_androidruntimeplugin.rst:120
msgid "A constructor is invoked by calling a method with the same name as the class."
msgstr ""
#: ../../docs/tutorials/platform/android/javaclasswrapper_and_androidruntimeplugin.rst:122
msgid "This example creates an intent to send a text:"
msgstr ""

View File

@@ -44,7 +44,7 @@ msgid "The first thing you need for the editor to identify a new plugin is to cr
msgstr ""
#: ../../docs/tutorials/plugins/editor/making_plugins.rst:33
msgid "In the main toolbar, click the ``Project`` dropdown. Then click ``Project Settings...``. Go to the ``Plugins`` tab and then click on the ``Create New Plugin`` button in the top-right."
msgid "In the main toolbar, click the ``Project`` dropdown. Then click ``Project Settings...``. Go to the ``Plugins`` tab and then click on the :button:`Create New Plugin` button in the top-right."
msgstr ""
#: ../../docs/tutorials/plugins/editor/making_plugins.rst:37

View File

@@ -151,99 +151,99 @@ msgstr ""
msgid "You then want to connect the signal when a new resource is set:"
msgstr ""
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:405
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:409
msgid "Lastly, remember to disconnect the signal as the old resource being used and changed somewhere else would cause unneeded updates."
msgstr ""
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:438
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:446
msgid "Reporting node configuration warnings"
msgstr ""
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:440
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:448
msgid "Godot uses a *node configuration warning* system to warn users about incorrectly configured nodes. When a node isn't configured correctly, a yellow warning sign appears next to the node's name in the Scene dock. When you hover or click on the icon, a warning message pops up. You can use this feature in your scripts to help you and your team avoid mistakes when setting up scenes."
msgstr ""
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:446
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:454
msgid "When using node configuration warnings, when any value that should affect or remove the warning changes, you need to call :ref:`update_configuration_warnings<class_Node_method_update_configuration_warnings>` . By default, the warning only updates when closing and reopening the scene."
msgstr ""
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:483
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:491
msgid "Running one-off scripts using EditorScript"
msgstr ""
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:485
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:493
msgid "Sometimes, you need to run code just one time to automate a certain task that is not available in the editor out of the box. Some examples might be:"
msgstr ""
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:488
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:496
msgid "Use as a playground for GDScript or C# scripting without having to run a project. ``print()`` output is displayed in the editor Output panel."
msgstr ""
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:490
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:498
msgid "Scale all light nodes in the currently edited scene, as you noticed your level ends up looking too dark or too bright after placing lights where desired."
msgstr ""
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:492
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:500
msgid "Replace nodes that were copy-pasted with scene instances to make them easier to modify later."
msgstr ""
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:495
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:503
msgid "This is available in Godot by extending :ref:`class_EditorScript` in a script. This provides a way to run individual scripts in the editor without having to create an editor plugin."
msgstr ""
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:499
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:507
msgid "To create an EditorScript, right-click a folder or empty space in the FileSystem dock then choose **New > Script...**. In the script creation dialog, click the tree icon to choose an object to extend from (or enter ``EditorScript`` directly in the field on the left, though note this is case-sensitive):"
msgstr ""
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:504
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:508
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:512
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:516
msgid "Creating an editor script in the script editor creation dialog"
msgstr ""
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:510
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:518
msgid "This will automatically select a script template that is suited for EditorScripts, with a ``_run()`` method already inserted:"
msgstr ""
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:522
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:530
msgid "This ``_run()`` method is executed when you use **File > Run** or the keyboard shortcut :kbd:`Ctrl + Shift + X` while the EditorScript is the currently open script in the script editor. This keyboard shortcut is only effective when currently focused on the script editor."
msgstr ""
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:527
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:535
msgid "Scripts that extend EditorScript must be ``@tool`` scripts to function."
msgstr ""
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:531
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:539
msgid "EditorScripts can only be run from the Godot script editor. If you are using an external editor, open the script inside the Godot script editor to run it."
msgstr ""
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:536
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:544
msgid "EditorScripts have no undo/redo functionality, so **make sure to save your scene before running one** if the script is designed to modify any data."
msgstr ""
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:539
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:547
msgid "To access nodes in the currently edited scene, use the :ref:`EditorScript.get_scene <class_EditorScript_method_get_scene>` method which returns the root Node of the currently edited scene. Here's an example that recursively gets all nodes in the currently edited scene and doubles the range of all OmniLight3D nodes:"
msgstr ""
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:572
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:580
msgid "You can change the currently edited scene at the top of the editor even while the Script view is open. This will affect the return value of :ref:`EditorScript.get_scene <class_EditorScript_method_get_scene>`, so make sure you've selected the scene you intend to iterate upon before running the script."
msgstr ""
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:579
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:587
msgid "Instancing scenes"
msgstr ""
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:581
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:589
msgid "You can instantiate packed scenes normally and add them to the scene currently opened in the editor. By default, nodes or scenes added with :ref:`Node.add_child(node) <class_Node_method_add_child>` are **not** visible in the Scene tree dock and are **not** persisted to disk. If you wish the node or scene to be visible in the scene tree dock and persisted to disk when saving the scene, you need to set the child node's :ref:`owner <class_Node_property_owner>` property to the currently edited scene root."
msgstr ""
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:589
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:597
msgid "If you are using ``@tool``:"
msgstr ""
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:614
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:622
msgid "If you are using :ref:`EditorScript<class_EditorScript>`:"
msgstr ""
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:645
#: ../../docs/tutorials/plugins/running_code_in_the_editor.rst:653
msgid "Using ``@tool`` improperly can yield many errors. It is advised to first write the code how you want it, and only then add the ``@tool`` annotation to the top. Also, make sure to separate code that runs in-editor from code that runs in-game. This way, you can find bugs more easily."
msgstr ""

View File

@@ -490,17 +490,9 @@ msgid "However, if your 3D game is intended to be played in portrait mode, it ma
msgstr ""
#: ../../docs/tutorials/rendering/multiple_resolutions.rst:560
msgid "Scaling 2D and 3D elements differently using Viewports"
msgid "Scaling 2D and 3D elements differently"
msgstr ""
#: ../../docs/tutorials/rendering/multiple_resolutions.rst:562
msgid "Using multiple Viewport nodes, you can have different scales for various elements. For instance, you can use this to render the 3D world at a low resolution while keeping 2D elements at the native resolution. This can improve performance significantly while keeping the HUD and other 2D elements crisp."
msgstr ""
#: ../../docs/tutorials/rendering/multiple_resolutions.rst:567
msgid "This is done by using the root Viewport node only for 2D elements, then creating a Viewport node to display the 3D world and displaying it using a SubViewportContainer or TextureRect node. There will effectively be two viewports in the final project. One upside of using TextureRect over SubViewportContainer is that it allows enable linear filtering. This makes scaled 3D viewports look better in many cases."
msgstr ""
#: ../../docs/tutorials/rendering/multiple_resolutions.rst:574
msgid "See the `3D viewport scaling demo <https://github.com/godotengine/godot-demo-projects/tree/master/viewport/3d_scaling>`__ for examples."
msgid "To render 3D at a different resolution from 2D elements (such as the UI), use Godot's :ref:`resolution scaling <doc_resolution_scaling>` functionality. This allows you to control the resolution scale factor used for 3D without needing to use a separate Viewport node. This can either be used to improve performance by rendering 3D at a lower resolution, or improve quality via supersampling."
msgstr ""

View File

@@ -16,7 +16,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
#: ../../docs/tutorials/rendering/renderers.rst:4
msgid "Renderers"
msgid "Overview of renderers"
msgstr ""
#: ../../docs/tutorials/rendering/renderers.rst:8
@@ -308,11 +308,7 @@ msgid "✔️ Yes. Recommended for standalone headsets."
msgstr ""
#: ../../docs/tutorials/rendering/renderers.rst:154
msgid "✔️ Yes. Recommended for"
msgstr ""
#: ../../docs/tutorials/rendering/renderers.rst:155
msgid "desktop headsets."
msgid "✔️ Yes. Recommended for desktop headsets."
msgstr ""
#: ../../docs/tutorials/rendering/renderers.rst:158

View File

@@ -336,50 +336,46 @@ msgstr ""
msgid "Using the generic ``Godot.Collections.Dictionary<TKey, TValue>`` allows specifying the types of the key and value elements of the dictionary."
msgstr ""
#: ../../docs/tutorials/scripting/c_sharp/c_sharp_exports.rst:585
msgid "Typed dictionaries are currently unsupported in the Godot editor, so the Inspector will not restrict the types that can be assigned, potentially resulting in runtime exceptions."
msgstr ""
#: ../../docs/tutorials/scripting/c_sharp/c_sharp_exports.rst:594
#: ../../docs/tutorials/scripting/c_sharp/c_sharp_exports.rst:588
msgid "The default value of Godot dictionaries is null. A different default can be specified:"
msgstr ""
#: ../../docs/tutorials/scripting/c_sharp/c_sharp_exports.rst:607
#: ../../docs/tutorials/scripting/c_sharp/c_sharp_exports.rst:601
msgid "Exporting C# arrays"
msgstr ""
#: ../../docs/tutorials/scripting/c_sharp/c_sharp_exports.rst:609
#: ../../docs/tutorials/scripting/c_sharp/c_sharp_exports.rst:603
msgid "C# arrays can exported as long as the element type is a :ref:`Variant-compatible type <c_sharp_variant_compatible_types>`."
msgstr ""
#: ../../docs/tutorials/scripting/c_sharp/c_sharp_exports.rst:619
#: ../../docs/tutorials/scripting/c_sharp/c_sharp_exports.rst:613
msgid "The default value of C# arrays is null. A different default can be specified:"
msgstr ""
#: ../../docs/tutorials/scripting/c_sharp/c_sharp_exports.rst:631
#: ../../docs/tutorials/scripting/c_sharp/c_sharp_exports.rst:625
msgid "Setting exported variables from a tool script"
msgstr ""
#: ../../docs/tutorials/scripting/c_sharp/c_sharp_exports.rst:633
#: ../../docs/tutorials/scripting/c_sharp/c_sharp_exports.rst:627
msgid "When changing an exported variable's value from a script in :ref:`doc_gdscript_tool_mode`, the value in the inspector won't be updated automatically. To update it, call :ref:`NotifyPropertyListChanged() <class_Object_method_notify_property_list_changed>` after setting the exported variable's value."
msgstr ""
#: ../../docs/tutorials/scripting/c_sharp/c_sharp_exports.rst:640
#: ../../docs/tutorials/scripting/c_sharp/c_sharp_exports.rst:634
msgid "Advanced exports"
msgstr ""
#: ../../docs/tutorials/scripting/c_sharp/c_sharp_exports.rst:642
#: ../../docs/tutorials/scripting/c_sharp/c_sharp_exports.rst:636
msgid "Not every type of export can be provided on the level of the language itself to avoid unnecessary design complexity. The following describes some more or less common exporting features which can be implemented with a low-level API."
msgstr ""
#: ../../docs/tutorials/scripting/c_sharp/c_sharp_exports.rst:646
#: ../../docs/tutorials/scripting/c_sharp/c_sharp_exports.rst:640
msgid "Before reading further, you should get familiar with the way properties are handled and how they can be customized with :ref:`_Set() <class_Object_private_method__set>`, :ref:`_Get() <class_Object_private_method__get>`, and :ref:`_GetPropertyList() <class_Object_private_method__get_property_list>` methods as described in :ref:`doc_accessing_data_or_logic_from_object`."
msgstr ""
#: ../../docs/tutorials/scripting/c_sharp/c_sharp_exports.rst:653
#: ../../docs/tutorials/scripting/c_sharp/c_sharp_exports.rst:647
msgid "For binding properties using the above methods in C++, see :ref:`doc_binding_properties_using_set_get_property_list`."
msgstr ""
#: ../../docs/tutorials/scripting/c_sharp/c_sharp_exports.rst:656
#: ../../docs/tutorials/scripting/c_sharp/c_sharp_exports.rst:650
msgid "The script must operate in the ``tool`` mode so the above methods can work from within the editor."
msgstr ""

View File

@@ -108,11 +108,11 @@ msgid "For example:"
msgstr ""
#: ../../docs/tutorials/scripting/creating_script_templates.rst:75
msgid "``template_scripts/Node/smooth_camera.gd``"
msgid "``script_templates/Node/smooth_camera.gd``"
msgstr ""
#: ../../docs/tutorials/scripting/creating_script_templates.rst:76
msgid "``template_scripts/CharacterBody3D/platformer_movement.gd``"
msgid "``script_templates/CharacterBody3D/platformer_movement.gd``"
msgstr ""
#: ../../docs/tutorials/scripting/creating_script_templates.rst:79

View File

@@ -204,217 +204,217 @@ msgid "To define the type of an ``Array``, enclose the type name in ``[]``."
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:220
msgid "An array's type applies to ``for`` loop variables, as well as some operators like ``[]``, ``[]=``, and ``+``. Array methods (such as ``push_back``) and other operators (such as ``==``) are still untyped. Built-in types, native and custom classes, and enums may be used as element types. Nested array types (like ``Array[Array[int]]``) are not supported."
msgid "An array's type applies to ``for`` loop variables, as well as some operators like ``[]``, ``[...] =`` (assignment), and ``+``. Array methods (such as ``push_back``) and other operators (such as ``==``) are still untyped. Built-in types, native and custom classes, and enums may be used as element types. Nested array types (like ``Array[Array[int]]``) are not supported."
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:243
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:244
msgid "Since Godot 4.2, you can also specify a type for the loop variable in a ``for`` loop. For instance, you can write:"
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:252
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:253
msgid "The array will remain untyped, but the ``name`` variable within the ``for`` loop will always be of ``String`` type."
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:256
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:257
msgid "Specify the element type of a ``Dictionary``"
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:258
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:259
msgid "To define the type of a ``Dictionary``'s keys and values, enclose the type name in ``[]`` and separate the key and value type with a comma."
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:261
msgid "A dictionary's value type applies to ``for`` loop variables, as well as some operators like ``[]`` and ``[]=``. Dictionary methods that return values and other operators (such as ``==``) are still untyped. Built-in types, native and custom classes, and enums may be used as element types. Nested typed collections (like ``Dictionary[String, Dictionary[String, int]]``) are not supported."
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:262
msgid "A dictionary's value type applies to ``for`` loop variables, as well as some operators like ``[]`` and ``[...] =`` (assignment). Dictionary methods that return values and other operators (such as ``==``) are still untyped. Built-in types, native and custom classes, and enums may be used as element types. Nested typed collections (like ``Dictionary[String, Dictionary[String, int]]``) are not supported."
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:285
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:286
msgid "Type casting"
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:287
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:288
msgid "Type casting is an important concept in typed languages. Casting is the conversion of a value from one type to another."
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:290
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:291
msgid "Imagine an ``Enemy`` in your game, that ``extends Area2D``. You want it to collide with the ``Player``, a ``CharacterBody2D`` with a script called ``PlayerController`` attached to it. You use the ``body_entered`` signal to detect the collision. With typed code, the body you detect is going to be a generic ``PhysicsBody2D``, and not your ``PlayerController`` on the ``_on_body_entered`` callback."
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:296
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:297
msgid "You can check if this ``PhysicsBody2D`` is your ``Player`` with the ``as`` keyword, and using the colon ``:`` again to force the variable to use this type. This forces the variable to stick to the ``PlayerController`` type:"
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:309
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:310
msgid "As we're dealing with a custom type, if the ``body`` doesn't extend ``PlayerController``, the ``player`` variable will be set to ``null``. We can use this to check if the body is the player or not. We will also get full autocompletion on the player variable thanks to that cast."
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:316
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:317
msgid "The ``as`` keyword silently casts the variable to ``null`` in case of a type mismatch at runtime, without an error/warning. While this may be convenient in some cases, it can also lead to bugs. Use the ``as`` keyword only if this behavior is intended. A safer alternative is to use the ``is`` keyword:"
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:332
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:333
msgid "You can also simplify the code by using the ``is not`` operator:"
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:339
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:340
msgid "Alternatively, you can use the ``assert()`` statement:"
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:354
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:355
msgid "If you try to cast with a built-in type and it fails, Godot will throw an error."
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:359
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:360
msgid "Safe lines"
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:361
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:362
msgid "You can also use casting to ensure safe lines. Safe lines are a tool to tell you when ambiguous lines of code are type-safe. As you can mix and match typed and dynamic code, at times, Godot doesn't have enough information to know if an instruction will trigger an error or not at runtime."
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:366
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:367
msgid "This happens when you get a child node. Let's take a timer for example: with dynamic code, you can get the node with ``$Timer``. GDScript supports `duck-typing <https://stackoverflow.com/a/4205163/8125343>`__, so even if your timer is of type ``Timer``, it is also a ``Node`` and an ``Object``, two classes it extends. With dynamic GDScript, you also don't care about the node's type as long as it has the methods you need to call."
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:373
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:374
msgid "You can use casting to tell Godot the type you expect when you get a node: ``($Timer as Timer)``, ``($Player as CharacterBody2D)``, etc. Godot will ensure the type works and if so, the line number will turn green at the left of the script editor."
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:378
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:379
msgid "Unsafe vs Safe Line"
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:381
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:382
msgid "Unsafe line (line 7) vs Safe Lines (line 6 and 8)"
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:385
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:386
msgid "Safe lines do not always mean better or more reliable code. See the note above about the ``as`` keyword. For example:"
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:393
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:394
msgid "Even though ``node_2`` declaration is marked as an unsafe line, it is more reliable than ``node_1`` declaration. Because if you change the node type in the scene and accidentally forget to change it in the script, the error will be detected immediately when the scene is loaded. Unlike ``node_1``, which will be silently cast to ``null`` and the error will be detected later."
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:401
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:402
msgid "You can turn off safe lines or change their color in the editor settings."
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:404
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:405
msgid "Typed or dynamic: stick to one style"
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:406
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:407
msgid "Typed GDScript and dynamic GDScript can coexist in the same project. But it's recommended to stick to either style for consistency in your codebase, and for your peers. It's easier for everyone to work together if you follow the same guidelines, and faster to read and understand other people's code."
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:411
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:412
msgid "Typed code takes a little more writing, but you get the benefits we discussed above. Here's an example of the same, empty script, in a dynamic style:"
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:426
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:427
msgid "And with static typing:"
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:440
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:441
msgid "As you can see, you can also use types with the engine's virtual methods. Signal callbacks, like any methods, can also use types. Here's a ``body_entered`` signal in a dynamic style:"
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:449
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:450
msgid "And the same callback, with type hints:"
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:451
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:452
msgid "::"
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:452
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:453
msgid "func _on_area_2d_body_entered(body: PhysicsBody2D) -> void:"
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:453
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:454
msgid "pass"
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:456
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:457
msgid "Warning system"
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:460
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:461
msgid "Detailed documentation about the GDScript warning system has been moved to :ref:`doc_gdscript_warning_system`."
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:463
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:464
msgid "Godot gives you warnings about your code as you write it. The engine identifies sections of your code that may lead to issues at runtime, but lets you decide whether or not you want to leave the code as it is."
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:467
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:468
msgid "We have a number of warnings aimed specifically at users of typed GDScript. By default, these warnings are disabled, you can enable them in Project Settings (**Debug > GDScript**, make sure **Advanced Settings** is enabled)."
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:471
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:472
msgid "You can enable the ``UNTYPED_DECLARATION`` warning if you want to always use static types. Additionally, you can enable the ``INFERRED_DECLARATION`` warning if you prefer a more readable and reliable, but more verbose syntax."
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:475
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:476
msgid "``UNSAFE_*`` warnings make unsafe operations more noticeable, than unsafe lines. Currently, ``UNSAFE_*`` warnings do not cover all cases that unsafe lines cover."
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:479
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:480
msgid "Common unsafe operations and their safe counterparts"
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:482
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:483
msgid "``UNSAFE_PROPERTY_ACCESS`` and ``UNSAFE_METHOD_ACCESS`` warnings"
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:484
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:485
msgid "In this example, we aim to set a property and call a method on an object that has a script attached with ``class_name MyScript`` and that ``extends Node2D``. If we have a reference to the object as a ``Node2D`` (for instance, as it was passed to us by the physics system), we can first check if the property and method exist and then set and call them if they do:"
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:498
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:499
msgid "However, this code will produce ``UNSAFE_PROPERTY_ACCESS`` and ``UNSAFE_METHOD_ACCESS`` warnings as the property and method are not present in the referenced type - in this case a ``Node2D``. To make these operations safe, you can first check if the object is of type ``MyScript`` using the ``is`` keyword and then declare a variable with the type ``MyScript`` on which you can set its properties and call its methods:"
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:512
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:513
msgid "Alternatively, you can declare a variable and use the ``as`` operator to try to cast the object. You'll then want to check whether the cast was successful by confirming that the variable was assigned:"
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:524
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:525
msgid "``UNSAFE_CAST`` warning"
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:526
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:527
msgid "In this example, we would like the label connected to an object entering our collision area to show the area's name. Once the object enters the collision area, the physics system sends a signal with a ``Node2D`` object, and the most straightforward (but not statically typed) solution to do what we want could be achieved like this:"
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:537
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:538
msgid "This piece of code produces an ``UNSAFE_PROPERTY_ACCESS`` warning because ``label`` is not defined in ``Node2D``. To solve this, we could first check if the ``label`` property exist and cast it to type ``Label`` before settings its text property like so:"
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:548
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:549
msgid "However, this produces an ``UNSAFE_CAST`` warning because ``body.label`` is of a ``Variant`` type. To safely get the property in the type you want, you can use the ``Object.get()`` method which returns the object as a ``Variant`` value or returns ``null`` if the property doesn't exist. You can then determine whether the property contains an object of the right type using the ``is`` keyword, and finally declare a statically typed variable with the object:"
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:564
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:565
msgid "Cases where you can't specify types"
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:568
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:569
msgid "To wrap up this introduction, let's mention cases where you can't use type hints. This will trigger a **syntax error**."
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:571
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:572
msgid "You can't specify the type of individual elements in an array or a dictionary:"
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:582
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:583
msgid "Nested types are not currently supported:"
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:589
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:590
msgid "Summary"
msgstr ""
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:594
#: ../../docs/tutorials/scripting/gdscript/static_typing.rst:595
msgid "Typed GDScript is a powerful tool. It helps you write more structured code, avoid common errors, and create scalable and reliable systems. Static types improve GDScript performance and more optimizations are planned for the future."
msgstr ""

View File

@@ -228,5 +228,5 @@ msgid "With that, you have everything you need to get started working with compu
msgstr ""
#: ../../docs/tutorials/shaders/compute_shaders.rst:384
msgid "The demo projects repository contains a `Compute Shader Heightmap demo <https://github.com/godotengine/godot-demo-projects/tree/master/misc/compute_shader_heightmap>`__ This project performs heightmap image generation on the CPU and GPU separately, which lets you compare how a similar algorithm can be implemented in two different ways (with the GPU implementation being faster in most cases)."
msgid "The demo projects repository contains a `Compute Shader Heightmap demo <https://github.com/godotengine/godot-demo-projects/tree/master/compute/heightmap>`__ This project performs heightmap image generation on the CPU and GPU separately, which lets you compare how a similar algorithm can be implemented in two different ways (with the GPU implementation being faster in most cases)."
msgstr ""

View File

@@ -39,8 +39,8 @@ msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:58
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:108
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:218
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:292
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:352
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:299
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:359
msgid "Description"
msgstr ""
@@ -147,7 +147,7 @@ msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:58
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:108
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:218
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:292
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:299
msgid "Built-in"
msgstr ""
@@ -256,18 +256,18 @@ msgid "Instance custom data."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:126
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:234
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:238
msgid "in bool **AT_LIGHT_PASS**"
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:126
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:234
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:238
msgid "Always ``false``."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:128
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:230
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:307
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:234
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:314
msgid "in vec2 **TEXTURE_PIXEL_SIZE**"
msgstr ""
@@ -276,7 +276,7 @@ msgid "Normalized pixel size of default 2D texture. For a Sprite2D with a textur
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:132
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:256
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:263
msgid "inout vec2 **VERTEX**"
msgstr ""
@@ -301,7 +301,7 @@ msgid "Normalized texture coordinates. Range from ``0.0`` to ``1.0``."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:140
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:263
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:270
msgid "inout vec4 **COLOR**"
msgstr ""
@@ -379,12 +379,12 @@ msgid "Similarly, if a normal map is used in the :ref:`CanvasTexture <class_Canv
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:220
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:294
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:301
msgid "in vec4 **FRAGCOORD**"
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:220
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:294
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:301
msgid "Coordinate of pixel center. In screen space. ``xy`` specifies position in viewport. Upper-left of the viewport is the origin, ``(0.0, 0.0)``."
msgstr ""
@@ -397,291 +397,299 @@ msgid "Size of individual pixels. Equal to inverse of resolution."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:226
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:313
msgid "in vec2 **POINT_COORD**"
msgid "in vec4 **REGION_RECT**"
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:226
msgid "Coordinate for drawing points."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:228
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:305
msgid "sampler2D **TEXTURE**"
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:228
msgid "Default 2D texture."
msgid "Visible area of the sprite region in format ``(x, y, width, height)``. Varies according to Sprite2D's ``region_enabled`` property."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:230
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:320
msgid "in vec2 **POINT_COORD**"
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:230
msgid "Coordinate for drawing points."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:232
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:312
msgid "sampler2D **TEXTURE**"
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:232
msgid "Default 2D texture."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:234
msgid "Normalized pixel size of default 2D texture. For a Sprite2D with a texture of size 64x32px, ``TEXTURE_PIXEL_SIZE`` = ``vec2(1/64, 1/32)``"
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:236
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:240
msgid "sampler2D **SPECULAR_SHININESS_TEXTURE**"
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:236
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:240
msgid "Specular shininess texture of this object."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:238
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:333
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:242
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:340
msgid "in vec4 **SPECULAR_SHININESS**"
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:238
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:242
msgid "Specular shininess color, as sampled from the texture."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:240
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:302
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:244
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:309
msgid "in vec2 **UV**"
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:240
msgid "UV from the ``vertex()`` function."
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:244
msgid "UV from the ``vertex()`` function. For Sprite2D with region enabled, this will sample the entire texture. Use ``REGION_RECT`` instead to sample only the region defined in the Sprite2D's properties."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:242
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:311
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:249
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:318
msgid "in vec2 **SCREEN_UV**"
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:242
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:311
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:249
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:318
msgid "Screen UV coordinate for current pixel."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:244
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:251
msgid "sampler2D **SCREEN_TEXTURE**"
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:244
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:251
msgid "Removed in Godot 4. Use a ``sampler2D`` with ``hint_screen_texture`` instead."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:247
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:254
msgid "inout vec3 **NORMAL**"
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:247
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:254
msgid "Normal read from ``NORMAL_TEXTURE``. Writable."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:249
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:256
msgid "sampler2D **NORMAL_TEXTURE**"
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:249
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:256
msgid "Default 2D normal texture."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:251
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:258
msgid "out vec3 **NORMAL_MAP**"
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:251
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:258
msgid "Configures normal maps meant for 3D for use in 2D. If used, overrides ``NORMAL``."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:254
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:261
msgid "out float **NORMAL_MAP_DEPTH**"
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:254
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:261
msgid "Normal map depth for scaling."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:256
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:263
msgid "Pixel position in screen space."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:258
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:265
msgid "inout vec2 **SHADOW_VERTEX**"
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:258
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:265
msgid "Same as ``VERTEX`` but can be written to alter shadows."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:260
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:267
msgid "inout vec3 **LIGHT_VERTEX**"
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:260
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:267
msgid "Same as ``VERTEX`` but can be written to alter lighting. Z component represents height."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:263
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:270
msgid "``COLOR`` from the ``vertex()`` function multiplied by the ``TEXTURE`` color. Also output color value."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:268
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:275
msgid "Light built-ins"
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:270
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:277
msgid "Light processor functions work differently in Godot 4.x than they did in Godot 3.x. In Godot 4.x all lighting is done during the regular draw pass. In other words, Godot no longer draws the object again for each light."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:274
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:281
msgid "Use the ``unshaded`` render mode if you do not want the ``light()`` function to run. Use the ``light_only`` render mode if you only want to see the impact of lighting on an object; this can be useful when you only want the object visible where it is covered by light."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:279
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:286
msgid "If you define a ``light()`` function it will replace the built-in light function, even if your light function is empty."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:282
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:289
msgid "Below is an example of a light shader that takes a CanvasItem's normal map into account:"
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:298
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:305
msgid "in vec3 **NORMAL**"
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:298
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:305
msgid "Input normal."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:300
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:307
msgid "in vec4 **COLOR**"
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:300
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:307
msgid "Input color. This is the output of the ``fragment()`` function."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:302
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:309
msgid "UV from the ``vertex()`` function, equivalent to the UV in the ``fragment()`` function."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:305
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:312
msgid "Current texture in use for CanvasItem."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:307
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:314
msgid "Normalized pixel size of ``TEXTURE``. For a Sprite2D with a ``TEXTURE`` of size ``64x32`` pixels, **TEXTURE_PIXEL_SIZE** = ``vec2(1/64, 1/32)``"
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:313
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:320
msgid "UV for Point Sprite."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:315
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:322
msgid "in vec4 **LIGHT_COLOR**"
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:315
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:322
msgid ":ref:`Color<class_Light2D_property_color>` of the :ref:`class_Light2D`. If the light is a :ref:`class_PointLight2D`, multiplied by the light's :ref:`texture<class_PointLight2D_property_texture>`."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:319
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:326
msgid "in float **LIGHT_ENERGY**"
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:319
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:326
msgid ":ref:`Energy multiplier<class_Light2D_property_energy>` of the :ref:`class_Light2D`."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:322
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:329
msgid "in vec3 **LIGHT_POSITION**"
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:322
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:329
msgid "Position of the :ref:`class_Light2D` in screen space. If using a :ref:`class_DirectionalLight2D` this is always ``(0.0, 0.0, 0.0)``."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:325
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:332
msgid "in vec3 **LIGHT_DIRECTION**"
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:325
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:332
msgid "Direction of the :ref:`class_Light2D` in screen space."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:327
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:334
msgid "in bool **LIGHT_IS_DIRECTIONAL**"
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:327
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:334
msgid "``true`` if this pass is a :ref:`class_DirectionalLight2D`."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:329
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:336
msgid "in vec3 **LIGHT_VERTEX**"
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:329
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:336
msgid "Pixel position, in screen space as modified in the ``fragment()`` function."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:331
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:338
msgid "inout vec4 **LIGHT**"
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:331
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:338
msgid "Output color for this :ref:`class_Light2D`."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:333
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:340
msgid "Specular shininess, as set in the object's texture."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:335
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:342
msgid "out vec4 **SHADOW_MODULATE**"
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:335
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:342
msgid "Multiply shadows cast at this point by this color."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:339
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:346
msgid "SDF functions"
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:341
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:348
msgid "There are a few additional functions implemented to sample an automatically generated Signed Distance Field texture. These functions available for the ``fragment()`` and ``light()`` functions of CanvasItem shaders. Custom functions may also use them as long as they called from supported functions."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:346
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:353
msgid "The signed distance field is generated from :ref:`class_LightOccluder2D` nodes present in the scene with the **SDF Collision** property enabled (which is the default). See the :ref:`2D lights and shadows <doc_2d_lights_and_shadows_setting_up_shadows>` documentation for more information."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:352
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:359
msgid "Function"
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:354
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:361
msgid "float **texture_sdf** (vec2 sdf_pos)"
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:354
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:361
msgid "Performs an SDF texture lookup."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:356
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:363
msgid "vec2 **texture_sdf_normal** (vec2 sdf_pos)"
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:356
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:363
msgid "Calculates a normal from the SDF texture."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:358
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:365
msgid "vec2 **sdf_to_screen_uv** (vec2 sdf_pos)"
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:358
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:365
msgid "Converts an SDF to screen UV."
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:360
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:367
msgid "vec2 **screen_uv_to_sdf** (vec2 uv)"
msgstr ""
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:360
#: ../../docs/tutorials/shaders/shader_reference/canvas_item_shader.rst:367
msgid "Converts screen UV to an SDF."
msgstr ""

File diff suppressed because it is too large Load Diff

View File

@@ -32,7 +32,7 @@ msgid "The first step we need to do is to add a helper node to our :ref:`XROrigi
msgstr ""
#: ../../docs/tutorials/xr/basic_xr_locomotion.rst:16
msgid "Select your :ref:`XROrigin3D <class_xrorigin3d>` node and click on the ``instantiate Child Scene`` button to add a child scene. Select ``addons/godot-xr-tools/player/player_body.tscn`` and add this node."
msgid "Select your :ref:`XROrigin3D <class_xrorigin3d>` node and click on the :button:`Instantiate Child Scene` button to add a child scene. Select ``addons/godot-xr-tools/player/player_body.tscn`` and add this node."
msgstr ""
#: ../../docs/tutorials/xr/basic_xr_locomotion.rst:20

View File

@@ -380,25 +380,33 @@ msgid "Now you can add things to this controller node such as a raycast, and con
msgstr ""
#: ../../docs/tutorials/xr/openxr_settings.rst:303
msgid "Binding Modifiers"
msgid "Render Models"
msgstr ""
#: ../../docs/tutorials/xr/openxr_settings.rst:305
msgid "These control whether or not binding modifiers can be used. Binding modifiers are used to apply thresholds or offset values. You can find information on how to use and set them up on the XR action map page :ref:`here <doc_binding_modifiers>`."
msgid "This extension is used to query the XR runtime for 3D assets of the hardware being used, usually a controller, as well as the position of that hardware. You can find a detailed guide on how to use it :ref:`here <doc_openxr_render_models>`."
msgstr ""
#: ../../docs/tutorials/xr/openxr_settings.rst:310
msgid "Analog Threshold"
msgid "Binding Modifiers"
msgstr ""
#: ../../docs/tutorials/xr/openxr_settings.rst:312
msgid "Allow analog threshold binding modifiers."
msgstr ""
#: ../../docs/tutorials/xr/openxr_settings.rst:315
msgid "Dpad Binding"
msgid "These control whether or not binding modifiers can be used. Binding modifiers are used to apply thresholds or offset values. You can find information on how to use and set them up on the XR action map page :ref:`here <doc_binding_modifiers>`."
msgstr ""
#: ../../docs/tutorials/xr/openxr_settings.rst:317
msgid "Analog Threshold"
msgstr ""
#: ../../docs/tutorials/xr/openxr_settings.rst:319
msgid "Allow analog threshold binding modifiers."
msgstr ""
#: ../../docs/tutorials/xr/openxr_settings.rst:322
msgid "Dpad Binding"
msgstr ""
#: ../../docs/tutorials/xr/openxr_settings.rst:324
msgid "Allow D-pad binding modifiers."
msgstr ""

View File

@@ -28,129 +28,129 @@ msgid "Godot provides a modular XR system that abstracts many of the different X
msgstr ""
#: ../../docs/tutorials/xr/setting_up_xr.rst:12
msgid "Each supported XR platform is implemented as an :ref:`XRInterface <class_xrinterface>`. Supported interfaces register themselves with the :ref:`XRServer <class_xrserver>` and can be queried with the ``find_interface`` method on the :ref:`XRServer <class_xrserver>`. When the desired interface is found it can be initialized by calling ``initialize`` on the interface."
msgstr ""
#: ../../docs/tutorials/xr/setting_up_xr.rst:15
msgid "A registered interface means nothing more than that the interface is available, if the interface is not supported by the host system, initialization may fail and return ``false``. This can have many reasons and sadly the reasons differ from platform to platform. It can be because the user hasn't installed the required software, or that the user simply hasn't plugged in their headset. You as a developer must thus react properly on an interface failing to initialize."
msgstr ""
#: ../../docs/tutorials/xr/setting_up_xr.rst:17
msgid "Due to the special requirements for output in XR, especially for head mounted devices that supply different images to each eye, the :ref:`XRServer <class_xrserver>` in Godot will override various features in the rendering system. For stand-alone devices this means the final output is handled by the :ref:`XRInterface <class_xrinterface>` and Godot's usual output system is disabled. For desktop XR devices that work as a second screen it is possible to dedicate a separate :ref:`Viewport <class_viewport>` to handle the XR output, leaving the main Godot window available for displaying alternative content."
msgid "Each supported XR platform is implemented as an :ref:`XRInterface <class_xrinterface>`. A list of supported platforms can be found on the list of features page :ref:`here <doc_xr_support>`. Supported interfaces register themselves with the :ref:`XRServer <class_xrserver>` and can be queried with the ``find_interface`` method on the :ref:`XRServer <class_xrserver>`. When the desired interface is found it can be initialized by calling ``initialize`` on the interface."
msgstr ""
#: ../../docs/tutorials/xr/setting_up_xr.rst:20
msgid "Note that only one interface can be responsible for handling the output to an XR device, this is known as the primary interface and by default will be the first interface that is initialized. Godot currently thus only supports implementations with a single headset. It is possible, but increasingly uncommon, to have a secondary interface, for example to add tracking to an otherwise 3DOF only device."
msgid "A registered interface means nothing more than that the interface is available, if the interface is not supported by the host system, initialization may fail and return ``false``. This can have many reasons and sadly the reasons differ from platform to platform. It can be because the user hasn't installed the required software, or that the user simply hasn't plugged in their headset. You as a developer must thus react properly on an interface failing to initialize."
msgstr ""
#: ../../docs/tutorials/xr/setting_up_xr.rst:23
msgid "There are three XR specific node types that you will find in nearly all XR applications:"
#: ../../docs/tutorials/xr/setting_up_xr.rst:22
msgid "Due to the special requirements for output in XR, especially for head mounted devices that supply different images to each eye, the :ref:`XRServer <class_xrserver>` in Godot will override various features in the rendering system. For stand-alone devices this means the final output is handled by the :ref:`XRInterface <class_xrinterface>` and Godot's usual output system is disabled. For desktop XR devices that work as a second screen it is possible to dedicate a separate :ref:`Viewport <class_viewport>` to handle the XR output, leaving the main Godot window available for displaying alternative content."
msgstr ""
#: ../../docs/tutorials/xr/setting_up_xr.rst:25
msgid "Note that only one interface can be responsible for handling the output to an XR device, this is known as the primary interface and by default will be the first interface that is initialized. Godot currently thus only supports implementations with a single headset. It is possible, but increasingly uncommon, to have a secondary interface, for example to add tracking to an otherwise 3DOF only device."
msgstr ""
#: ../../docs/tutorials/xr/setting_up_xr.rst:28
msgid "There are three XR specific node types that you will find in nearly all XR applications:"
msgstr ""
#: ../../docs/tutorials/xr/setting_up_xr.rst:30
msgid ":ref:`XROrigin3D <class_xrorigin3d>` represents, for all intents and purposes, the center point of your play space. That is an oversimplified statement but we'll go into more detail later. All objects tracked in physical space by the XR platform are positioned in relation to this point."
msgstr ""
#: ../../docs/tutorials/xr/setting_up_xr.rst:26
#: ../../docs/tutorials/xr/setting_up_xr.rst:31
msgid ":ref:`XRCamera3D <class_xrcamera3d>` represents the (stereo) camera that is used when rendering output for the XR device. The positioning of this node is controlled by the XR system and updated automatically using the tracking information provided by the XR platform."
msgstr ""
#: ../../docs/tutorials/xr/setting_up_xr.rst:27
#: ../../docs/tutorials/xr/setting_up_xr.rst:32
msgid ":ref:`XRController3D <class_xrcontroller3d>` represents a controller used by the player, commonly there are two, one held in each hand. These nodes give access to various states on these controllers and send out signals when the player presses buttons on them. The positioning of this node is controlled by the XR system and updated automatically using the tracking information provided by the XR platform."
msgstr ""
#: ../../docs/tutorials/xr/setting_up_xr.rst:29
#: ../../docs/tutorials/xr/setting_up_xr.rst:34
msgid "There are other XR related nodes and there is much more to say about these three nodes, but we'll get into that later on."
msgstr ""
#: ../../docs/tutorials/xr/setting_up_xr.rst:32
#: ../../docs/tutorials/xr/setting_up_xr.rst:37
msgid "Which Renderer to use"
msgstr ""
#: ../../docs/tutorials/xr/setting_up_xr.rst:34
#: ../../docs/tutorials/xr/setting_up_xr.rst:39
msgid "Godot has 3 renderer options for projects: Compatibility, Mobile, and Forward+. The current recommendation is to use the Mobile renderer for any desktop VR project, and use the Compatibility renderer for any project running on a standalone headset like the Meta Quest 3. XR projects will run with the Forward+ renderer, but it isn't well optimized for XR right now compared to the other two."
msgstr ""
#: ../../docs/tutorials/xr/setting_up_xr.rst:41
#: ../../docs/tutorials/xr/setting_up_xr.rst:46
msgid "OpenXR"
msgstr ""
#: ../../docs/tutorials/xr/setting_up_xr.rst:43
#: ../../docs/tutorials/xr/setting_up_xr.rst:48
msgid "OpenXR is a new industry standard that allows different XR platforms to present themselves through a standardised API to XR applications. This standard is an open standard maintained by the Khronos Group and thus aligns very well with Godot's interests."
msgstr ""
#: ../../docs/tutorials/xr/setting_up_xr.rst:45
#: ../../docs/tutorials/xr/setting_up_xr.rst:50
msgid "The Vulkan implementation of OpenXR is closely integrated with Vulkan, taking over part of the Vulkan system. This requires tight integration of certain core graphics features in the Vulkan renderer which are needed before the XR system is setup. This was one of the main deciding factors to include OpenXR as a core interface."
msgstr ""
#: ../../docs/tutorials/xr/setting_up_xr.rst:47
#: ../../docs/tutorials/xr/setting_up_xr.rst:52
msgid "This also means OpenXR needs to be enabled when Godot starts in order to set things up correctly. Check the :ref:`Enabled<class_ProjectSettings_property_xr/openxr/enabled>` setting in your project settings under **XR > OpenXR**."
msgstr ""
#: ../../docs/tutorials/xr/setting_up_xr.rst:53
#: ../../docs/tutorials/xr/setting_up_xr.rst:58
msgid "You can find several other settings related to OpenXR here as well. These can't be changed while your application is running. The default settings will get us started, but for more information on what's here see :ref:`doc_openxr_settings`."
msgstr ""
#: ../../docs/tutorials/xr/setting_up_xr.rst:57
#: ../../docs/tutorials/xr/setting_up_xr.rst:62
msgid "You'll also need to go to **XR > Shaders** in the project settings and check the :ref:`Enabled<class_ProjectSettings_property_xr/shaders/enabled>` box to enable them. Once you've done that click the **Save & Restart** button."
msgstr ""
#: ../../docs/tutorials/xr/setting_up_xr.rst:64
#: ../../docs/tutorials/xr/setting_up_xr.rst:69
msgid "Many post process effects have not yet been updated to support stereoscopic rendering. Using these will have adverse effects."
msgstr ""
#: ../../docs/tutorials/xr/setting_up_xr.rst:68
#: ../../docs/tutorials/xr/setting_up_xr.rst:73
msgid "Setting up the XR scene"
msgstr ""
#: ../../docs/tutorials/xr/setting_up_xr.rst:70
#: ../../docs/tutorials/xr/setting_up_xr.rst:75
msgid "Every XR application needs at least an :ref:`XROrigin3D <class_xrorigin3d>` and an :ref:`XRCamera3D <class_xrcamera3d>` node. Most will have two :ref:`XRController3D <class_xrcontroller3d>`, one for the left hand and one for the right. Keep in mind that the camera and controller nodes should be children of the origin node. Add these nodes to a new scene and rename the controller nodes to ``LeftHand`` and ``RightHand``, your scene should look something like this:"
msgstr ""
#: ../../docs/tutorials/xr/setting_up_xr.rst:74
#: ../../docs/tutorials/xr/setting_up_xr.rst:79
msgid "The warning icons are expected and should go away after you configure the controllers. Select the left hand and set it up as follows:"
msgstr ""
#: ../../docs/tutorials/xr/setting_up_xr.rst:79
#: ../../docs/tutorials/xr/setting_up_xr.rst:84
msgid "And the right hand:"
msgstr ""
#: ../../docs/tutorials/xr/setting_up_xr.rst:83
#: ../../docs/tutorials/xr/setting_up_xr.rst:88
msgid "Right now all these nodes are on the floor, they will be positioned correctly in runtime. To help during development, it can be helpful to move the camera upwards so its ``y`` is set to ``1.7``, and move the controller nodes to ``-0.5, 1.0, -0.5`` and ``0.5, 1.0, -0.5`` for respectively the left and right hand."
msgstr ""
#: ../../docs/tutorials/xr/setting_up_xr.rst:85
#: ../../docs/tutorials/xr/setting_up_xr.rst:90
msgid "Next we need to add a script to our root node. Add the following code into this script:"
msgstr ""
#: ../../docs/tutorials/xr/setting_up_xr.rst:135
#: ../../docs/tutorials/xr/setting_up_xr.rst:140
msgid "This code fragment assumes we are using OpenXR, if you wish to use any of the other interfaces you can change the ``find_interface`` call."
msgstr ""
#: ../../docs/tutorials/xr/setting_up_xr.rst:139
#: ../../docs/tutorials/xr/setting_up_xr.rst:144
msgid "As you can see in the code snippet above, we turn off v-sync. When using OpenXR you are outputting the rendering results to an HMD that often requires us to run at 90Hz or higher. If your monitor is a 60hz monitor and v-sync is turned on, you will limit the output to 60 frames per second."
msgstr ""
#: ../../docs/tutorials/xr/setting_up_xr.rst:143
#: ../../docs/tutorials/xr/setting_up_xr.rst:148
msgid "XR interfaces like OpenXR perform their own sync."
msgstr ""
#: ../../docs/tutorials/xr/setting_up_xr.rst:145
#: ../../docs/tutorials/xr/setting_up_xr.rst:150
msgid "Also note that by default the physics engine runs at 60Hz as well and this can result in choppy physics. You should set ``Engine.physics_ticks_per_second`` to a higher value."
msgstr ""
#: ../../docs/tutorials/xr/setting_up_xr.rst:148
#: ../../docs/tutorials/xr/setting_up_xr.rst:153
msgid "If you run your project at this point in time, everything will work but you will be in a dark world. So to finish off our starting point add a :ref:`DirectionalLight3D <class_directionallight3d>` and a :ref:`WorldEnvironment <class_worldenvironment>` node to your scene. You may wish to also add a mesh instance as a child to each controller node just to temporarily visualise them. Make sure you configure a sky in your world environment."
msgstr ""
#: ../../docs/tutorials/xr/setting_up_xr.rst:152
#: ../../docs/tutorials/xr/setting_up_xr.rst:157
msgid "Now run your project, you should be floating somewhere in space and be able to look around."
msgstr ""
#: ../../docs/tutorials/xr/setting_up_xr.rst:156
#: ../../docs/tutorials/xr/setting_up_xr.rst:161
msgid "While traditional level switching can definitely be used with XR applications, where this scene setup is repeated in each level, most find it easier to set this up once and loading levels as a subscene. If you do switch scenes and replicate the XR setup in each one, do make sure you do not run ``initialize`` multiple times. The effect can be unpredictable depending on the XR interface used."
msgstr ""
#: ../../docs/tutorials/xr/setting_up_xr.rst:158
#: ../../docs/tutorials/xr/setting_up_xr.rst:163
msgid "For the rest of this basic tutorial series we will create a game that uses a single scene."
msgstr ""

View File

@@ -152,7 +152,7 @@ msgid "For your first XR game/application we highly recommend starting with just
msgstr ""
#: ../../docs/tutorials/xr/xr_action_map.rst:123
msgid "For our walkthrough in this document we will thus create a single action set called ``my_first_action_set``. We do this by pressing the ``Add action set`` button:"
msgid "For our walkthrough in this document we will thus create a single action set called ``my_first_action_set``. We do this by pressing the :button:`Add action set` button:"
msgstr ""
#: ../../docs/tutorials/xr/xr_action_map.rst:129
@@ -580,7 +580,7 @@ msgstr ""
#: ../../docs/tutorials/xr/xr_action_map.rst:519
#: ../../docs/tutorials/xr/xr_action_map.rst:586
msgid "You can add a new modifier by pressing the ``Add binding modifier`` button."
msgid "You can add a new modifier by pressing the :button:`Add binding modifier` button."
msgstr ""
#: ../../docs/tutorials/xr/xr_action_map.rst:522

View File

@@ -166,17 +166,18 @@ tutorials/export/index.pot
tutorials/export/exporting_projects.pot
tutorials/export/exporting_pcks.pot
tutorials/export/feature_tags.pot
tutorials/export/exporting_for_windows.pot
tutorials/export/exporting_for_linux.pot
tutorials/export/exporting_for_macos.pot
tutorials/export/running_on_macos.pot
tutorials/export/exporting_for_windows.pot
tutorials/export/changing_application_icon_for_windows.pot
tutorials/export/exporting_for_ios.pot
tutorials/export/exporting_for_android.pot
tutorials/export/android_gradle_build.pot
tutorials/export/exporting_for_ios.pot
tutorials/export/exporting_for_visionos.pot
tutorials/export/exporting_for_web.pot
tutorials/export/exporting_for_dedicated_servers.pot
tutorials/export/changing_application_icon_for_windows.pot
tutorials/export/running_on_macos.pot
tutorials/export/android_gradle_build.pot
tutorials/export/one-click_deploy.pot
tutorials/export/exporting_for_dedicated_servers.pot
tutorials/io/index.pot
tutorials/io/background_loading.pot
tutorials/io/data_paths.pot
@@ -287,11 +288,11 @@ tutorials/plugins/editor/inspector_plugins.pot
tutorials/plugins/editor/visual_shader_plugins.pot
tutorials/plugins/running_code_in_the_editor.pot
tutorials/rendering/index.pot
tutorials/rendering/renderers.pot
tutorials/rendering/viewports.pot
tutorials/rendering/multiple_resolutions.pot
tutorials/rendering/jitter_stutter.pot
tutorials/rendering/compositor.pot
tutorials/rendering/renderers.pot
tutorials/scripting/index.pot
tutorials/scripting/gdscript/index.pot
tutorials/scripting/gdscript/gdscript_basics.pot
@@ -448,8 +449,9 @@ contributing/development/compiling/compiling_for_linuxbsd.pot
contributing/development/compiling/compiling_for_macos.pot
contributing/development/compiling/compiling_for_android.pot
contributing/development/compiling/compiling_for_ios.pot
contributing/development/compiling/cross-compiling_for_ios_on_linux.pot
contributing/development/compiling/compiling_for_visionos.pot
contributing/development/compiling/compiling_for_web.pot
contributing/development/compiling/cross-compiling_for_ios_on_linux.pot
contributing/development/compiling/compiling_with_dotnet.pot
contributing/development/compiling/compiling_with_script_encryption_key.pot
contributing/development/compiling/optimizing_for_size.pot

File diff suppressed because it is too large Load Diff